]> code.delx.au - gnu-emacs/commitdiff
Merge from emacs-24
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 30 Sep 2014 23:19:31 +0000 (19:19 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 30 Sep 2014 23:19:31 +0000 (19:19 -0400)
12 files changed:
1  2 
etc/ChangeLog
lisp/ChangeLog
lisp/emacs-lisp/package.el
lisp/erc/ChangeLog
lisp/mh-e/ChangeLog
lisp/progmodes/python.el
src/ChangeLog
src/dispnew.c
src/w32fns.c
src/w32term.c
src/window.c
src/xdisp.c

diff --cc etc/ChangeLog
index 05f4dcade278ae44df35fcd4f87fb1a16401ae2a,a1a8e258b1154164f2fb4cf9cf835d7cdc5f09eb..b27e85e86f87f06554d1b22d3dffa5669d38ffce
@@@ -1,48 -1,17 +1,62 @@@
 -2014-09-29  Fabrice Niessen  <fniessen@pirilampo.org>
+ 2014-09-30  Bill Wohler        <wohler@newt.com>
+       Release MH-E version 8.6
+       * NEWS, MH-E-NEWS: Update for MH-E release 8.6.
 -2014-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>
++2014-09-30  Fabrice Niessen  <fniessen@pirilampo.org>
+       * themes/leuven-theme.el: Updates.
++2014-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+       * package-keyring.gpg: New file.
 +2014-09-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * TODO: Remove char/unsigned char, long long, IRIX unexelf.c.
 +      The first two are done, and IRIX support has been dropped.
 +
 +2014-09-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * refcards/ru-refcard.tex: Bump version to 25.0.50.
 +
 +      * refcards/emacsver.tex: Bump version to 25.0.50.
 +
 +2014-09-14  Daniel Colascione  <dancol@dancol.org>
 +
 +      * NEWS: Mention changes to `insert-register'
 +
 +2014-09-13  Christopher Schmidt  <ch@ristopher.com>
 +
 +      * NEWS: Mention nil `calendar-mode-line-format' will not modify
 +      the mode line of the calendar buffer.  (Bug#18467)
 +
 +2014-09-06  Leo Liu  <sdl.web@gmail.com>
 +
 +      * NEWS: Mention vector qpattern for pcase.  (Bug#18327).
 +
 +2014-09-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * NEWS: Mention that ls-lisp uses string-collate-lessp.
 +
 +2014-09-01  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      --enable-silent-rules now suppresses more chatter.
 +      * NEWS: Document this.
 +
 +2014-08-29  Leo Liu  <sdl.web@gmail.com>
 +
 +      * NEWS: Mention (:append FUN) to minibuffer-with-setup-hook.
 +
 +2014-08-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * NEWS: Mention w32-collate-ignore-punctuation.
 +
 +2014-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * NEWS: Mention that `sort' can handle vectors.
 +
  2014-08-28  Glenn Morris  <rgm@gnu.org>
  
        * emacs.appdata.xml: New file; description from Emacs's homepage.
diff --cc lisp/ChangeLog
index 745346a903a5dbf23484774ea527e5c47bccbe67,9ac4f6b1bf128125cfd0905af7651b1dddfb921d..e9db9891714673395c4a28a7365710ba18e02a85
 -2014-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+ 2014-09-30  Leonardo Nobrega  <leonobr@gmail.com>  (tiny change)
+       * progmodes/python.el (python-fill-paren): Don't inf-loop at EOB
+       (bug#18462).
 -2014-09-18  Kan-Ru Chen  <kanru@kanru.info>
++2014-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+       * emacs-lisp/package.el (package-check-signature): Default to nil if
+       GPG is not available.
+       (package-refresh-contents): Don't mess with the keyring if we won't
+       check the signatures anyway.
 +2014-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * ses.el (ses--row, ses--col): New dyn-scoped vars, to replace row&col.
 +      (ses-center, ses-center-span): Use them.
 +      (ses-print-cell): Bind them while calling the printer.
 +      (row, col, maxrow, maxcol): Don't declare as dynamically scoped.
 +      (ses-dorange): Revert last change.
 +      (ses-calculate-cell): Don't bind row&col dynamically while evaluating
 +      the formula.
 +      (ses-set-cell): Avoid `eval'.
 +      (ses--time-check): Rename it from ses-time-check and turn it into
 +      a macro.
 +
 +      * ses.el (ses-setup): Don't assume modifying the iteration var of
 +      dotimes affects the iteration (bug#18191).
 +
 +2014-09-30  Vincent Belaïche  <vincentb1@users.sourceforge.net>
 +
 +      * ses.el (ses-calculate-cell): Bind row and col dynamically to
 +      their values with 'cl-progv'.
 +      (ses-dorange): Bind row, col, maxrow and maxcol dynamically to
 +      their values with 'cl-progv', also use non-interned symbols for
 +      row, minrow, maxrow, mincol and maxcol.
 +      (maxrow maxcol): New defvar, to make the compiler happy.
 +
 +2014-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion-at-point): Emit warning for ill-behaved
 +      completion functions.
 +
 +2014-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * ses.el (ses--letref): Quote value before it gets re-evaluated.
 +
 +2014-09-28  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      Font-lock `cl-flet*', too.
 +      * emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2):
 +      Add "flet*" to intermediate var `cl-lib-kw'.
 +
 +2014-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * epg-config.el (epg-gpg-program): Use the plain program names rather
 +      than their absolute file name.
 +
 +      * subr.el (track-mouse): New macro.
 +      * emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form):
 +      Remove track-mouse case.
 +      * emacs-lisp/bytecomp.el (byte-compile-track-mouse): Remove.
 +
 +2014-09-27  Leo Liu  <sdl.web@gmail.com>
 +
 +      * progmodes/elisp-mode.el (elisp--eldoc-last-data): Use defvar.
 +
 +      * emacs-lisp/eldoc.el (eldoc-mode): Fix thinko.
 +
 +2014-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/pcase.el (pcase--split-match, pcase--app-subst-match):
 +      Handle the case where `match' is :pcase--succeed or :pcase--fail
 +      (bug#18554).
 +
 +      Introduce global-eldoc-mode.  Move Elisp-specific code to elisp-mode.el.
 +      * emacs-lisp/eldoc.el (global-eldoc-mode): New minor mode.
 +      (eldoc-schedule-timer): Obey it.
 +      (eldoc-documentation-function): Default to nil.
 +      (eldoc-mode): Don't enable if eldoc-documentation-function is not set.
 +      (eldoc-documentation-function-default, eldoc-get-fnsym-args-string)
 +      (eldoc-highlight-function-argument, eldoc-get-var-docstring)
 +      (eldoc-last-data-store, eldoc-docstring-first-line)
 +      (eldoc-docstring-format-sym-doc, eldoc-fnsym-in-current-sexp)
 +      (eldoc-beginning-of-sexp, eldoc-current-symbol)
 +      (eldoc-function-argstring): Move to elisp-mode.el.
 +      (eldoc-symbol-function): Remove, unused.
 +      * progmodes/elisp-mode.el: New file.  Rename all "eldoc-*" to "elisp--*".
 +      (elisp-completion-at-point): Rename from lisp-completion-at-point.
 +      (elisp--preceding-sexp): Rename from preceding-sexp.
 +      * loadup.el: Load new file progmodes/elisp-mode.
 +      * ielm.el (inferior-emacs-lisp-mode): Set eldoc-documentation-function.
 +      * emacs-lisp/lisp.el (lisp--local-variables-1, lisp--local-variables)
 +      (lisp--local-variables-completion-table, lisp--expect-function-p)
 +      (lisp--form-quoted-p, lisp--company-doc-buffer)
 +      (lisp--company-doc-string, lisp--company-location)
 +      (lisp-completion-at-point): Move to elisp-mode.el.
 +      * emacs-lisp/lisp-mode.el (lisp--mode-syntax-table): New syntax-table,
 +      extracted from emacs-lisp-mode-syntax-table.
 +      (emacs-lisp-mode-abbrev-table, emacs-lisp-mode-syntax-table): Move to
 +      elisp-mode.el.
 +      (lisp-imenu-generic-expression): Add comments to document what comes
 +      from which Lisp dialect.
 +      (emacs-lisp-mode-map, emacs-lisp-byte-compile)
 +      (emacs-lisp-byte-compile-and-load, emacs-lisp-mode-hook)
 +      (emacs-lisp-mode, emacs-list-byte-code-comment-re)
 +      (emacs-lisp-byte-code-comment)
 +      (emacs-lisp-byte-code-syntax-propertize, emacs-lisp-byte-code-mode)
 +      (lisp-interaction-mode-map, lisp-interaction-mode)
 +      (eval-print-last-sexp, last-sexp-setup-props)
 +      (last-sexp-toggle-display, prin1-char, preceding-sexp)
 +      (eval-last-sexp-1, eval-last-sexp-print-value)
 +      (eval-last-sexp-fake-value, eval-sexp-add-defvars, eval-last-sexp)
 +      (eval-defun-1, eval-defun-2, eval-defun): Move to elisp-mode.el.
 +
 +2014-09-26  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * progmodes/grep.el (grep-regexp-alist): Use more-accurate regexp.
 +      Do not match file names that end in '/', as they cannot be 'grep'
 +      hits nowadays.  This prevents confusion when 'grep -r' reports a
 +      match in a file whose basename is ':12345:'.  Conversely, do not
 +      require exactly the same sequence of spaces and tabs after both
 +      colons, and allow spaces or tabs before the second colon, as per
 +      the POSIX spec for 'grep' output.
 +
 +2014-09-26  Leo Liu  <sdl.web@gmail.com>
 +
 +      Add cl-parse-integer based on parse-integer (Bug#18557)
 +      * calendar/parse-time.el (parse-time-digits): Remove.
 +      (digit-char-p, parse-integer) Moved to cl-lib.el.
 +      (parse-time-tokenize, parse-time-rules, parse-time-string):
 +      Use cl-parse-integer.
 +
 +      * emacs-lisp/cl-extra.el (cl-parse-integer): New function.
 +
 +      * emacs-lisp/cl-lib.el (cl-digit-char-table): New var.
 +      (cl-digit-char-p): New function.
 +
 +2014-09-25  Juri Linkov  <juri@jurta.org>
 +
 +      * vc/add-log.el (change-log-next-buffer): Don't create an empty
 +      buffer "ChangeLog" when the current buffer doesn't match ChangeLog.[0-9].
 +      Return the current buffer if no files match the default pattern
 +      ChangeLog.[0-9].  Signal "end of multi" when file is nil. (Bug#18547)
 +
 +2014-09-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * net/tramp-sh.el (tramp-sh-handle-vc-registered): Don't modify
 +      the global vc-handled-backends (bug#18535).
 +
 +2014-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * find-cmd.el (find-cmd): Use grep's `find-program' (bug#18518).
 +      Suggested by <lompik@voila.fr>.
 +
 +2014-09-24  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * net/newst-treeview.el (newsticker--treeview-do-get-node-by-id):
 +      Rename from `newsticker--treeview-do-get-node'.
 +      (newsticker--treeview-get-node-by-id):
 +      Rename from `newsticker--treeview-get-node'.
 +      (newsticker--treeview-buffer-init)
 +      (newsticker--treeview-buffer-init): Disable buffer undo.
 +      (newsticker--treeview-unfold-node): Adapt to modified
 +      `newsticker--group-find-parent-group'.
 +      (newsticker--group-do-find-group):
 +      Rename from `newsticker--group-do-find-group-for-feed'.
 +      Now works for both, groups and feeds.
 +      (newsticker--group-find-parent-group):
 +      Rename from `newsticker--group-find-group-for-feed'.
 +      Now works for both, groups and feeds.
 +      (newsticker--group-do-get-parent-group)
 +      (newsticker--group-get-parent-group): Remove.
 +      (newsticker-group-add-group): Change interactive prompts.
 +      (newsticker-group-add-group): Finally jump to added group.
 +      (newsticker-group-delete-group): Finally jump to current feed.
 +      (newsticker--group-do-rename-group, newsticker-group-rename-group)
 +      (newsticker--get-group-names, newsticker--group-names): New.
 +      (newsticker-group-move-feed): Finally jump to moved feed.
 +      (newsticker-group-shift-feed-down, newsticker-group-shift-feed-up)
 +      (newsticker-group-shift-group-down)
 +      (newsticker-group-shift-group-up, newsticker--group-shift): New.
 +      (newsticker-treeview-mode-map): New keybindings for new shift commands.
 +
 +      * net/newst-backend.el (newsticker--item-list)
 +      (newsticker--item-position, newsticker--prev-message)
 +      (newsticker--scrollable-text): Move to newst-ticker.el.
 +
 +      * net/newst-ticker.el (newsticker--item-list)
 +      (newsticker--item-position, newsticker--prev-message)
 +      (newsticker--scrollable-text): Move from newst-backend.el.
 +
 +2014-09-22  Kan-Ru Chen  <kanru@kanru.info>
  
        * window.el (fit-window-to-buffer): When counting buffer width,
        count the whole visible buffer.  Correctly convert the body-height
Simple merge
index b5dd3f2f3593b291a9b263db7888c200aa2c3306,b3cdb067d1329696b5fe4dc84f38aa8550516db7..1ea79dbbc1a8e849bf1fda100b11f24958aa1219
@@@ -1,55 -1,9 +1,63 @@@
 -2014-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>
++2014-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+       * erc-track.el (erc-modified-channels-display): Update all mode lines
+       if needed (bug#18510).  Remove call to erc-modified-channels-object
+       where we ignored the return value.
 -      (erc-modified-channels-update): Don't force-mode-line-update here any more.
++      (erc-modified-channels-update): Don't force-mode-line-update here
++      any more.
++
 +2014-09-26  Kelvin White  <kwhite@gnu.org>
 +
 +      * erc.el (erc-format-nick): Fix code regression - Bug #18551
 +
 +2014-09-25  Kelvin White  <kwhite@gnu.org>
 +
 +      * erc.el: Follow Emacs version instead of tracking it seperately.
 +      (erc-quit/part-reason-default) : Clean up quit/part message
 +      functions by abstracting repetitive code, change version string.
 +      (erc-quit-reason-various, erc-quit-reason-normal, erc-quit-reason-zippy)
 +      (erc-part-reason-normal, erc-part-reason-zippy, erc-part-reason-various)
 +      (erc-cmd-SV, erc-ctcp-query-VERSION, erc-version, erc-version-string):
 +      Change version string.
 +
- 2014-08-13  Kelvin White  <kwhite@gnu.org> 
++2014-08-13  Kelvin White  <kwhite@gnu.org>
 +
 +      * erc.el (erc-send-input): Disable display commands in current buffer
 +      (erc-format-target-and/or-network): Fix cases when buffer name is set
 +
 +2014-08-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * erc-stamp.el (erc-timestamp-intangible): Disable by default because
 +      `intangible' is evil.
 +
 +2014-08-07  Kelvin White  <kwhite@gnu.org>
 +
 +      * erc.el (erc-channel-receive-names): Fix variable names
 +      (erc-format-target-and/or-network): Rename server-buffers to
 +      network name if possible
 +
 +2014-07-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * erc.el (erc-channel-receive-names): Reduce redundancy.
 +
 +2014-06-19  Kelvin White  <kwhite@gnu.org>
 +
 +      * erc-backend.el: Handle user modes in relevant server responses
 +      * erc.el: Better user mode support.
 +      (erc-channel-user): Add members for new modes.
 +      (erc-channel-member-halfop-p, erc-channel-user-admin-p)
 +      (erc-channel-user-owner-p): Use new struct members.
 +      (erc-format-nick, erc-format-@nick): Display user modes as nick prefix.
 +      (erc-nick-prefix-face, erc-my-nick-prefix-face): Add new faces
 +      (erc-get-user-mode-prefix): Return symbol for mode prefix.
 +      (erc-update-channel-member, erc-update-current-channel-member)
 +      (erc-channel-receive-names): Update channel users.
 +      (erc-nick-at-point): Return correct user info.
 +
 +2014-04-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * erc.el (erc-invite-only-mode, erc-toggle-channel-mode): Simplify.
 +      (erc-load-script): Tighten a regexp.
  
  2014-02-25  Julien Danjou  <julien@danjou.info>
  
index 6e482280a9f1f0007f6898726d2427f148fe2554,e0beeef46de3f309b05646c06541e6413b7b8db0..8008f07c700bc9910bee6ddbf7573ba24494434f
@@@ -9,8 -9,8 +9,8 @@@
        * mh-comp.el (mh-insert-x-face): Ensure that mh-x-face-file is a
        string before trying to use it (closes SF #474).
        (mh-bare-components): New function to create a temporary initial
--      components file; replaces mh-find-components. Improve the temp
--      folder and file names as per a suggestion from Bill Wohler. Also
++      components file; replaces mh-find-components.  Improve the temp
++      folder and file names as per a suggestion from Bill Wohler.  Also
        address XEmacs compatibility issues: use mm-make-temp-file instead
        of make-temp-file, and only pass one argument to delete-directory.
        (mh-edit-again, mh-send-sub): Use mh-bare-components instead of
Simple merge
diff --cc src/ChangeLog
index 7dfa2f80775409b668e418c12020233dc1fa8d47,fdc30da96b6458fde284f42c8549f357f1df7258..257cc34c90949b3e5cbc27b402175df43d3da85c
 -2014-09-29  Eli Zaretskii  <eliz@gnu.org>
+ 2014-09-30  Eli Zaretskii  <eliz@gnu.org>
+       * w32fns.c (w32_createwindow): Accept an additional argument, an
+       array of 2 values specifying the coordinates of the frame's
+       top-left corner.  Use these values instead of calling x_get_arg,
+       which can cons Lisp objects, and therefore cannot be called except
+       from the main thread.  Remove redundant tests for the default
+       values.
+       (my_create_window): Move the calculation of the coordinates of the
+       frame's top-left edge here.  Pass them to the input thread via the
+       second parameter of the WM_EMACS_CREATEWINDOW message.  See
+       http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00892.html
+       for the details.
 -2014-09-24  Eli Zaretskii  <eliz@gnu.org>
++2014-09-30  Eli Zaretskii  <eliz@gnu.org>
+       * xdisp.c (cursor_row_fully_visible_p): Update commentary.
+       (redisplay_window): Treat the frame's frozen_window_starts flag
+       the same way as the optional_new_start flag for the window: only
+       obey it if the glyph row showing point will be fully visible.
+       Likewise when the window start is in a continuation line.  If,
+       after trying everything under the 'force_start' label, point is
+       still not fully visible, give up and scroll the window.  Add
+       debugging traces.  (Bug#18545)
+       * window.c (Frecenter): Set the window's redisplay flag.
++2014-09-30  Eli Zaretskii  <eliz@gnu.org>
+       * w32term.c (w32_read_socket): Don't use frame dimensions for
+       resizing if GetClientRect returned an empty (0, 0, 0, 0)
+       rectangle.  Check the return value of GetClientRect, and don't use
+       the results if it didn't succeed.
+       * dispnew.c (change_frame_size_1): Recompute the frame dimensions
+       in columns and lines after correcting the pixel dimensions in
+       check_frame_size.
+       (adjust_decode_mode_spec_buffer): Add assertion to avoid passing
+       negative values to xrealloc.  (Bug#18528)
 +2014-09-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * alloc.c: Remove now-unnecessary check.
 +      Suggested by Dmitry Antipov in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00891.html
 +
 +      * xterm.c (x_term_init): Allocate temps on stack, not on heap.
 +
 +      * frame.c (x_set_frame_parameters): Port --enable-gcc-warnings
 +      to Ubuntu 14.04.1 x86-64.
 +
 +      Simplify stack-allocated Lisp objects, and make them more portable.
 +      The build_local_string macro was used in two ways: (1) string
 +      literals for which scoped allocation suffices, and (2) file name
 +      components, where it's not safe in general to assume bounded-size
 +      ASCII data.  Simplify by defining a new macro SCOPED_STRING that
 +      allocates a block-scope string, and by using SCOPED_STRING for (1)
 +      and build_string for (2).  Furthermore, actually use stack
 +      allocation only for objects known to have sufficient alignment.
 +      This simpler implementation means Emacs can make
 +      USE_STACK_LISP_OBJECTS the default unless GC_MARK_STACK !=
 +      GC_MAKE_GCPROS_NOOPS.
 +      * lisp.h (GCALIGNED): Align even if !USE_STACK_LISP_OBJECTS,
 +      for fewer differences among implementations.
 +      (struct Lisp_String): Now GCALIGNED.
 +      (USE_STACK_LISP_OBJECTS): Default to true, since the
 +      implementation no longer insists on a nonempty GCALIGNED.
 +      But make it false if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS.
 +      (SCOPED_CONS_INITIALIZER): Remove, since it's no longer needed
 +      separately.  Move definiens to scoped_cons.  The old definition
 +      was incorrect when GCALIGNED was defined to be empty.
 +      (union Aligned_String): New type.
 +      (USE_STACK_CONS, USE_STACK_STRING): New constants, so that the
 +      implementation ports to compilers that don't align strictly enough.
 +      Don't worry about the union sizes; it's not worth bothering about.
 +      (scoped_cons, scoped_list1, scoped_list3, scoped_list4):
 +      Rewrite using USE_STACK_CONS.
 +      (scoped_cons): Assume the use of union Aligned_Cons.
 +      (lisp_string_size, make_local_string, build_local_string): Remove.
 +      Unless otherwise specified, all callers of build_local_string
 +      changed to use SCOPED_STRING.
 +      (SCOPED_STRING): New macro.
 +      * data.c (wrong_choice):
 +      * menu.c (single_menu_item):
 +      * process.c (Fformat_network_address):
 +      Hoist use of SCOPED_STRING out of a scope, so that its returned
 +      object lives long enough.
 +      * fileio.c (Fexpand_file_name): Use build_string, not SCOPED_STRING,
 +      as the string might be long or might not be ASCII.
 +
 +2014-09-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdos.c (internal_terminal_init): Bump version to 25.
 +
 +2014-09-29  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Keep stack-allocated Lisp objects fast rather than versatile.
 +      * lisp.h (union Aligned_Cons) [!GCALIGNED]: Define as such.
 +      (SCOPED_CONS_INITIALIZER): New macro.
 +      (scoped_cons) [USE_STACK_LISP_OBJECTS]: Use it.
 +      (USE_LOCAL_ALLOCA): Remove.
 +      (local_cons, local_list1, local_list2, local_list3, local_list4):
 +      Remove.  Stack overflow checking makes them too slow.
 +      (make_local_vector): Likewise.  Also we just don't have enough
 +      users for it.
 +      (enum LISP_STRING_OVERHEAD): Remove.
 +      (local_string_init, local_vector_init): Remove prototypes.
 +      (make_local_string, build_local_string): Redesign to target short
 +      compile-time string constants, fall back to regular string allocation
 +      where appropriate.
 +      (lisp_string_size): New function.
 +      (verify_ascii) [ENABLE_CHECKING]: Add prototype.
 +      * alloc.c (local_string_init, local_vector_init): Remove.
 +      (verify_ascii) [ENABLE_CHECKING]: New function.
 +      * buffer.c, charset.c, chartab.c, data.c, editfns.c, emacs.c, fileio.c:
 +      * fns.c, font.c, fontset.c, frame.c, keyboard.c, keymap.c, lread.c:
 +      * menu.c, minibuf.c, process.c, textprop.c, xdisp.c, xfns.c, xfont.c:
 +      * xselect.c, xterm.c: All related users changed.
 +
 +2014-09-28  Ken Brown  <kbrown@cornell.edu>
 +
 +      * sheap.c (bss_sbrk_buffer_beg): Remove redundant variable.
 +      * gmalloc.c [CYGWIN]: Adapt to change in sheap.c.
 +
 +2014-09-27  Ken Brown  <kbrown@cornell.edu>
 +
 +      Fix implementation of HYBRID_MALLOC on Cygwin.
 +      * sheap.c (bss_sbrk_buffer_end): Cast to void *.
 +      (bss_sbrk_buffer_beg): New variable.  Use it...
 +      * gmalloc.c (ALLOCATED_BEFORE_DUMPING) [CYGWIN]: ...here, to fix
 +      incorrect definition.
 +
 +2014-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keyboard.c (track-mouse): Rename to internal--track-mouse.
 +      Make it into a function and change arg to be a function.
 +
 +      * lisp.mk (lisp): Add elisp-mode.elc.
 +
 +2014-09-26  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * xfns.c (x_default_scroll_bar_color_parameter):
 +      Use USE_LOCAL_ALLOCA only if USE_TOOLKIT_SCROLL_BARS,
 +      to pacify --enable-gcc-warnings in non-scrollbar builds.
 +
 +2014-09-26  Ken Brown  <kbrown@cornell.edu>
 +
 +      * w32term.h (ALIGN_STACK): Fix the cpp condition.
 +
 +2014-09-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * lisp.h (USE_STACK_LISP_OBJECTS): Default to false for 32-bit
 +      MinGW builds that use GCC before 4.2.
 +
 +      Default to stack objects on DOS_NT platforms as well.
 +      * w32term.h (ALIGN_STACK) [__GNUC__]: Define to
 +      __attribute__((force_align_arg_pointer)) for GCC 4.2 and later.
 +
 +      * lisp.h (USE_STACK_LISP_OBJECTS): Remove the !DOS_NT condition.
 +
 +      * w32proc.c (enum_locale_fn, enum_codepage_fn): Add the
 +      ALIGN_STACK attribute.
 +
 +      * w32fns.c (w32_monitor_enum): Add the ALIGN_STACK attribute.
 +
 +      * w32uniscribe.c (add_opentype_font_name_to_list): Add the
 +      ALIGN_STACK attribute.
 +
 +      * w32font.c (add_font_name_to_list, add_font_entity_to_list)
 +      (add_one_font_entity_to_list): Add the ALIGN_STACK attribute.
 +
 +2014-09-25  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (frame_inhibit_resize):
 +      * widget.c (EmacsFrameResize):
 +      * window.c (resize_frame_windows, Fset_window_configuration):
 +      * xdisp.c (expose_frame):
 +      * xfns.c (x_change_tool_bar_height):
 +      * xmenu.c (update_frame_menubar):
 +      * xterm.c (handle_one_xevent, x_new_font, x_set_window_size_1):
 +      Remove code left dead after 2014-07-27 changes.
 +
 +2014-09-25  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix local_cons etc. to not exhaust the stack when in a loop.
 +      Problem reported in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00696.html
 +      * buffer.c (Fother_buffer, other_buffer_safely, init_buffer):
 +      * charset.c (load_charset_map_from_file, Ffind_charset_region)
 +      (Ffind_charset_string):
 +      * chartab.c (uniprop_encode_value_numeric, uniprop_table):
 +      * data.c (wrong_range):
 +      * editfns.c (Fpropertize, format2):
 +      * emacs.c (init_cmdargs, decode_env_path):
 +      * fileio.c (auto_save_error):
 +      * fns.c (Fyes_or_no_p):
 +      * font.c (font_style_to_value, font_parse_xlfd)
 +      (font_parse_family_registry, font_delete_unmatched)
 +      (font_add_log):
 +      * fontset.c (Fset_fontset_font):
 +      * frame.c (x_get_arg):
 +      * keyboard.c (echo_dash, safe_run_hooks_error, parse_menu_item)
 +      (read_char_minibuf_menu_prompt):
 +      * keymap.c (silly_event_symbol_error, describe_vector):
 +      * lread.c (load_warn_old_style_backquotes):
 +      * menu.c (single_menu_item):
 +      * minibuf.c (Fread_buffer):
 +      * process.c (status_message, Fformat_network_address)
 +      (server_accept_connection):
 +      * textprop.c (copy_text_properties):
 +      * xdisp.c (Fcurrent_bidi_paragraph_direction):
 +      * xfns.c (x_default_scroll_bar_color_parameter):
 +      * xfont.c (xfont_open):
 +      * xselect.c (x_clipboard_manager_error_1):
 +      * xterm.c (x_term_init):
 +      Put USE_LOCAL_ALLOCA at the start of the function.
 +      * fns.c (maybe_resize_hash_table): Use build_string instead of
 +      build_local_string, since we'd otherwise need a conditional
 +      USE_LOCAL_ALLOCA here, but this is just debugging output and is
 +      not worth the bother of optimization.
 +      * font.c (font_delete_unmatched): Remove by-hand code that
 +      observed MAX_ALLOCA limit, since it's now done automatically.
 +      * keymap.c (Fsingle_key_description): Put USE_SAFE_ALLOCA at top,
 +      since build_local_string needs its sa_alloc.
 +      * lisp.h (lisp_word_count): New function.
 +      (SAFE_ALLOCA_LISP): Use it.
 +      (USE_LOCAL_ALLOCA): New macro.
 +      (local_cons, make_local_vector, make_local_string):
 +      Observe the MAX_ALLOCA limit.
 +      (LISP_STRING_OVERHEAD): New constant.
 +      (make_local_string): Use it.
 +
 +2014-09-24  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Default to stack objects on non-GNU/Linux, non-DOS_NT platforms.
 +      * lisp.h (USE_STACK_LISP_OBJECTS): Also default to true
 +      if !defined DOS_NT && !defined GNU_LINUX.  I've tested this on AIX
 +      and Solaris and it's likely to work on similar platforms.
 +
 +      Avoid signed integer overflow when converting Time to ptrdiff_t.
 +      * keyboard.c (INPUT_EVENT_POS_MAX, INPUT_EVENT_POS_MIN):
 +      New macros.
 +      (position_to_Time, Time_to_position): New functions.
 +      (gen_help_event, kbd_buffer_get_event): Use them.
 +      * systime.h (Time) [emacs && !HAVE_X_WINDOWS]:
 +      Go back to plain 'unsigned long', so that 'Time' is the same
 +      for both X and non-X builds; this is less likely to cause surprise.
 +      * termhooks.h: Remove compile-time check that Time and ptrdiff_t
 +      are the same size; this is no longer required.
 +
 +      * keyboard.c (make_lispy_event): Avoid unnecessary tests
 +      of bit 28 and of whether an unsigned value is negative.
 +      This simplifies the code a bit, and pacifies clang 3.4.
 +
 +2014-09-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * systime.h (Time): Define as size_t, to be consistent with 64-bit
 +      Windows builds, where 'long' is a 32-bit type.
 +
 +      * w32inevt.h (w32_console_mouse_position): Update the argument
 +      types to use 'Time'.
 +
 +      * w32term.c (w32_mouse_position)
 +      (x_horizontal_scroll_bar_report_motion)
 +      (x_scroll_bar_report_motion): Update the argument types to use
 +      'Time'.
 +
 +2014-09-24  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * termhooks.h (enum scroll_bar_part): Begin from 0 to allow...
 +      (struct input_event): ...unsigned bitfields.  Likewise for
 +      `event_kind' member.  Prefer unsigned for `code' and 'modifiers'.
 +      Use `timestamp' for HELP_EVENT position.  Add compile-time assert.
 +      * keyboard.c (gen_help_event, kbd_buffer_store_help_event)
 +      (kbd_buffer_get_event): Adjust users.
 +      (scroll_bar_parts): Add Qnil to match scroll_bar_nowhere.
 +      (make_scroll_bar_position): New function, refactored out of...
 +      (make_lispy_event): ...adjusted user.
 +      * nsterm.h (EmacsScroller): Use enum for `last_hit_part' member.
 +      * nsterm.m (ns_mouse_position, mouseUp):
 +      * term.c (term_mouse_position):
 +      * w32inevt.c (w32_console_mouse_position):
 +      * w32term.c (w32_mouse_position):
 +      * xterm.c (XTmouse_position): Use scroll_bar_above_handle.
 +      (x_send_scroll_bar_event, xm_scroll_callback, xg_scroll_callback):
 +      Prefer enum and explicit enum members to integers and numeric values.
 +
 +      * chartab.c (uniprop_encode_value_numeric):
 +      * font.c (font_style_to_value): Use make_local_vector.
 +      (font_delete_unmatched): Use local_cons but respect MAX_ALLOCA.
 +      * keymap.c (append_key): Use scoped_list1.
 +
 +      * lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUX
 +      && __GNUC__ && !__clang__.  Mention known problems.  Adjust comment.
 +
 +2014-09-24  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix some slow uses and misuses of strcat.
 +      * doc.c (get_doc_string):
 +      * gtkutil.c (get_utf8_string):
 +      * xsmfns.c (x_session_initialize):
 +      Avoid recomputation of string length.
 +      * ftfont.c (ftfont_spec_pattern):
 +      * xfns.c (xic_create_fontsetname):
 +      Don't assume output buffer is initially zero.
 +
 +2014-09-23  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * lisp.h (lispstpcpy): Rename from lispstrcpy, and act like stpcpy.
 +      All callers changed.
 +      * xterm.c (x_term_init): Use new functionality to avoid two needs
 +      to compute a string length.
 +
 +      * dispextern.h, xdisp.c (window_box_right_offset): Now static.
 +
 +2014-09-23  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Use known length of a Lisp string to copy it faster.
 +      * lisp.h (lispstrcpy): New function.  Add comment.
 +      * callproc.c (child_setup):
 +      * dbusbind.c (xd_append_arg):
 +      * doc.c (get_doc_string):
 +      * font.c (Ffont_xlfd_name):
 +      * frame.c (xrdb_get_resource):
 +      * process.c (Fmake_network_process, network_interface_info):
 +      * w32fns.c (Fx_open_connection):
 +      * w32proc.c (sys_spawnve):
 +      * xfns.c (select_visual):
 +      * xfont.c (xfont_list):
 +      * xsmfns.c (x_session_initialize):
 +      * xterm.c (x_term_init): Use it.
 +
 +2014-09-23  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix SAFE_ALLOCA to not exhaust the stack when in a loop.
 +      Problem reported by Dmitry Antipov in thread leading to:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00713.html
 +      This patch fixes only SAFE_ALLOCA, SAFE_NALLOCA, and SAFE_ALLOCA_LISP;
 +      the experimental local_* macros enabled by USE_LOCAL_ALLOCATORS
 +      remain unfixed.
 +      * callproc.c (call_process): Save and restore sa_avail.
 +      * lisp.h (USE_SAFE_ALLOCA): Define sa_avail.
 +      (AVAIL_ALLOCA): New macro.
 +      (SAFE_ALLOCA, SAFE_NALLOCA, SAFE_ALLOCA_LISP):
 +      Use it, and check against sa_avail rather than MAX_ALLOCA.
 +
  2014-09-22  Dmitry Antipov  <dmantipov@yandex.ru>
  
        On OSX, do not free font-specific data more than once (Bug#18501).
diff --cc src/dispnew.c
Simple merge
diff --cc src/w32fns.c
index 0a8bde1f6616e77da24a6b58a45125df88107362,bc95005f52a368d2291cf7d0ddd130c0a7a25590..98eb8e9f97b00c66f1f0a42023423ae45259a523
@@@ -1946,17 -1910,8 +1946,17 @@@ w32_createvscrollbar (struct frame *f, 
                       FRAME_W32_WINDOW (f), NULL, hinst, NULL);
  }
  
 +static HWND
 +w32_createhscrollbar (struct frame *f, struct scroll_bar * bar)
 +{
 +  return CreateWindow ("SCROLLBAR", "", SBS_HORZ | WS_CHILD | WS_VISIBLE,
 +                     /* Position and size of scroll bar.  */
 +                     bar->left, bar->top, bar->width, bar->height,
 +                     FRAME_W32_WINDOW (f), NULL, hinst, NULL);
 +}
 +
  static void
- w32_createwindow (struct frame *f)
+ w32_createwindow (struct frame *f, int *coords)
  {
    HWND hwnd;
    RECT rect;
diff --cc src/w32term.c
index 4f8482736c34a441c704abc091f67867d21f996a,5a053b4fc0d3181bfcddc1cceaffa69f193763c5..2a4c30af12d370690728e30d57204816f37fda1b
@@@ -5144,30 -4754,42 +5144,38 @@@ w32_read_socket (struct terminal *termi
              RECT rect;
              int rows, columns, width, height, text_width, text_height;
  
-             GetClientRect (msg.msg.hwnd, &rect);
-             height = rect.bottom - rect.top;
-             width = rect.right - rect.left;
-             text_width = FRAME_PIXEL_TO_TEXT_WIDTH (f, width);
-             text_height = FRAME_PIXEL_TO_TEXT_HEIGHT (f, height);
-             /* rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, height); */
-             /* columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width); */
-             /* TODO: Clip size to the screen dimensions.  */
-             /* Even if the number of character rows and columns has
-                not changed, the font size may have changed, so we need
-                to check the pixel dimensions as well.  */
-             if (width != FRAME_PIXEL_WIDTH (f)
-                 || height != FRAME_PIXEL_HEIGHT (f)
-                 || text_width != FRAME_TEXT_WIDTH (f)
-                 || text_height != FRAME_TEXT_HEIGHT (f))
+             if (GetClientRect (msg.msg.hwnd, &rect)
+                 /* GetClientRect evidently returns (0, 0, 0, 0) if
+                    called on a minimized frame.  Such "dimensions"
+                    aren't useful anyway.  */
+                 && !(rect.bottom == 0
+                      && rect.top == 0
+                      && rect.left == 0
+                      && rect.right == 0))
                {
-                 change_frame_size (f, text_width, text_height, 0, 1, 0, 1);
-                 SET_FRAME_GARBAGED (f);
-                 cancel_mouse_face (f);
-                 f->win_gravity = NorthWestGravity;
+                 height = rect.bottom - rect.top;
+                 width = rect.right - rect.left;
+                 text_width = FRAME_PIXEL_TO_TEXT_WIDTH (f, width);
+                 text_height = FRAME_PIXEL_TO_TEXT_HEIGHT (f, height);
 -                rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, height);
 -                columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width);
++                /* rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, height); */
++                /* columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width); */
+                 /* TODO: Clip size to the screen dimensions.  */
+                 /* Even if the number of character rows and columns
+                    has not changed, the font size may have changed,
+                    so we need to check the pixel dimensions as well.  */
+                 if (width != FRAME_PIXEL_WIDTH (f)
+                     || height != FRAME_PIXEL_HEIGHT (f)
+                     || text_width != FRAME_TEXT_WIDTH (f)
+                     || text_height != FRAME_TEXT_HEIGHT (f))
+                   {
+                     change_frame_size (f, text_width, text_height, 0, 1, 0, 1);
+                     SET_FRAME_GARBAGED (f);
+                     cancel_mouse_face (f);
 -                    /* Do we want to set these here ????  */
 -                    /**               FRAME_PIXEL_WIDTH (f) = width; **/
 -                    /**               FRAME_TEXT_WIDTH (f) = text_width; **/
 -                    /**               FRAME_PIXEL_HEIGHT (f) = height; **/
+                     f->win_gravity = NorthWestGravity;
+                   }
                }
            }
  
diff --cc src/window.c
index f05ea5612632d6cb986a7aa2202ae2adf4ff1183,2210d5bc86892b6de1d8de05f68d52c6d326ef3c..456a8bce6914b150f97f8656df55b62b4ea92d26
@@@ -5911,9 -5894,12 +5911,11 @@@ and redisplay normally--don't erase an
  
    w->optional_new_start = 1;
  
 -  w->start_at_line_beg = (bytepos == BEGV_BYTE ||
 -                        FETCH_BYTE (bytepos - 1) == '\n');
 +  w->start_at_line_beg = (bytepos == BEGV_BYTE
 +                        || FETCH_BYTE (bytepos - 1) == '\n');
  
 -  set_buffer_internal (obuf);
+   wset_redisplay (w);
    return Qnil;
  }
  
diff --cc src/xdisp.c
Simple merge