]> code.delx.au - gnu-emacs/commitdiff
Merge from origin/emacs-24
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 18 Mar 2015 18:45:36 +0000 (11:45 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 18 Mar 2015 18:45:36 +0000 (11:45 -0700)
1a941d6 Fix incorrect usage of @key in the User Manual  (Bug#20135)
14c47d3 doc/misc/efaq-w32.texi: Spell-check.
ac85901 doc/misc/efaq-w32.texi: Remove outdated information and update.
c43762d Fix description of fullscreen mode on MS-Windows (Bug#20110).
ea8cab3 doc/lispref/minibuf.texi (Basic Completion): Fix a typo.  (Bug#20108)
2fdec80 Improve indexing in Emacs manual  (Bug#20105)
cc11321 Fix --no-bitmap-icon

Conflicts:
doc/emacs/ChangeLog
doc/lispref/ChangeLog
doc/misc/ChangeLog
src/ChangeLog

13 files changed:
1  2 
doc/emacs/ChangeLog
doc/emacs/display.texi
doc/emacs/misc.texi
doc/emacs/msdos-xtra.texi
doc/emacs/msdos.texi
doc/emacs/programs.texi
doc/lispref/ChangeLog
doc/lispref/minibuf.texi
doc/misc/ChangeLog
doc/misc/efaq-w32.texi
doc/misc/efaq.texi
src/ChangeLog
src/frame.h

diff --combined doc/emacs/ChangeLog
index 13536406158d7929d8069fefdf7b0deae3d27101,aba1e92bbfa54414ebf402f887a2a0a1887a313f..644281c76b77ca2ecd0ee07b0f504ec7d8dfba65
@@@ -1,4 -1,24 +1,24 @@@
 -2015-03-14  Eli Zaretskii  <eliz@gnu.org>
+ 2015-03-18  Eli Zaretskii  <eliz@gnu.org>
+       * misc.texi (Term Mode):
+       * programs.texi (Basic Indent, Custom C Indent):
+       * mini.texi (Minibuffer History):
+       * text.texi (Org Mode):
+       * display.texi (View Mode): Use @kbd where @key was mistakenly
+       used.  (Bug#20135)
 -2015-01-31  Eli Zaretskii  <eliz@gnu.org>
++2015-03-18  Eli Zaretskii  <eliz@gnu.org>
+       * basic.texi (Moving Point): Improve indexing for HOME and END.
+       * cmdargs.texi (General Variables): Improve indexing for
+       environment variables.
+       * msdog.texi (Windows HOME):
+       * msdog-xtra.texi (MS-DOS File Names): Remove markup from HOME in
+       the index entries.  (Bug#20105)
 +2015-02-26  Eli Zaretskii  <eliz@gnu.org>
  
        * msdog.texi (Windows Files): Document characters invalid in
        Windows file names.  (Bug#19463)
        * programs.texi (Hungry Delete): Fix a typo: "C-d" instead of
        "C-c C-d" in hungry-delete mode.
  
 -2015-01-29  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-26  Eli Zaretskii  <eliz@gnu.org>
  
        * mule.texi (Language Environments): Work around refill bug in
        makeinfo 4.x.  (Bug#19697)
  
 -2015-01-26  Eli Zaretskii  <eliz@gnu.org>
 +2015-01-28  Eli Zaretskii  <eliz@gnu.org>
  
        * cmdargs.texi (Action Arguments): Clarify into which buffer
        '--insert' inserts.  (Bug#19694)
  
 -2015-01-21  Eli Zaretskii  <eliz@gnu.org>
 -
        * programs.texi (Custom C Indent): Fix a typo.  (Bug#19647)
  
 -2014-12-22  Eli Zaretskii  <eliz@gnu.org>
 +2015-01-27  Ivan Shmakov  <ivan@siamics.net>
 +
 +      * files.texi (File Archives): Document "I" for tar-new-entry.
 +      (Bug#19274)
 +
 +2014-12-31  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Less 'make' chatter for Emacs doc
 +      * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_GEN, am__v_GEN_)
 +      (am__v_GEN_0, am__v_GEN_1): New macros, from ../../src/Makefile.in.
 +      (ENVADD, $(buildinfodir)/emacs.info, emacs.html):
 +      Use them.
 +
 +2014-12-27  Eli Zaretskii  <eliz@gnu.org>
  
        * buffers.texi (Kill Buffer): Improve indexing.
  
 -2014-11-19  Paul Eggert  <eggert@cs.ucla.edu>
 +2014-12-24  Stephen Leake  <stephen_leake@stephe-leake.org>
 +
 +      * trouble.texi: Move user-level information from CONTRIBUTE here.
 +
 +2014-12-14  Alan Mackenzie  <acm@muc.de>
 +
 +      * display.texi (Scrolling): fast-but-imprecise-scrolling.
 +      Describe new variable.
 +
 +2014-12-14  Cameron Desautels  <camdez@gmail.com>
 +
 +      * custom.texi (Saving Customizations): Mention
 +      `custom-prompt-customize-unsaved-options'.
 +
 +2014-12-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * misc.texi (Network Security): Mention the new protocol-level
 +      `high' NSM checks.
 +
 +2014-12-08  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * maintaining.texi: Suopport fo Arch has been moved to obosolete,
 +      remove references that imply otherwise.
 +
 +2014-11-29  Paul Eggert  <eggert@cs.ucla.edu>
  
        Lessen focus on ChangeLog files, as opposed to change log entries.
        * maintaining.texi (Change Log): Mention that ChangeLog files may
        be copied to or from a version control system.
        * trouble.texi (Sending Patches): Point to the commit messages.
  
 -2014-11-19  Eli Zaretskii  <eliz@gnu.org>
 +2014-11-29  Eli Zaretskii  <eliz@gnu.org>
  
        * maintaining.texi (Switching Branches): Mention "C-x v r".
        Correct commands for switching branches in various VCSs.
  
 -2014-11-16  Tassilo Horn  <tsdh@gnu.org>
 +2014-11-27  Tassilo Horn  <tsdh@gnu.org>
  
        * misc.texi (DocView Slicing): Describe how to slice with the
        mouse.  Fix command mentioned by slice by BoundingBox paragraph.
        (Bug#18040)
  
 +2014-11-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * misc.texi (Network Security): Use "untrustworthy" instead of
 +      "unsafe".
 +
 +2014-11-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * misc.texi (Network Security): Improve wording and indexing of
 +      last change.
 +
 +2014-11-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * misc.texi (Gnus Summary Buffer): Move the Network Security
 +      Manager stuff here from the lispref manual.
 +
 +2014-11-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * maintaining.texi (Version Control Systems): Move "@end itemize"
 +      past the last @item.
 +
 +2014-11-21  H. Dieter Wilhelm  <dieter@duenenhof-wilhelm.de>
 +
 +      * maintaining.texi (Version Control Systems): Fix a typo.
 +
 +2014-11-20  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * maintaining.texi: Document SRC support.
 +
 +2014-11-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (top_srcdir, version): New, set by configure.
 +      (doc-emacsver): New rule.
 +      (bootstrap-clean, maintainer-clean): Delete emacsver.texi.
 +      (emacsver.texi.in): Rename from emacsver.texi.
 +
 +2014-11-09  Juri Linkov  <juri@jurta.org>
 +
 +      * search.texi (Other Repeating Search): Add documentation for
 +      multi-isearch-files and multi-isearch-files-regexp.  (Bug#13592)
 +
  2014-11-09  Glenn Morris  <rgm@gnu.org>
  
        * Makefile.in (version): Remove variable.
        (clean): No longer delete dist tarfile.
        (dist): Remove rule; replace with code in admin.el.
  
 -2014-11-01  Glenn Morris  <rgm@gnu.org>
 +2014-11-03  Glenn Morris  <rgm@gnu.org>
  
        * programs.texi (Misc for Programs): Fix typo.
  
 -2014-10-24  Eli Zaretskii  <eliz@gnu.org>
 +2014-10-30  Eli Zaretskii  <eliz@gnu.org>
  
        * frames.texi (Scroll Bars): Improve indexing of faces.
  
        * display.texi (Standard Faces, Text Display)
        (Useless Whitespace): Improve indexing of faces.
  
 -2014-10-23  Tassilo Horn  <tsdh@gnu.org>
 -
 -      * misc.texi (Document View): Adapt to latest doc-view changes wrt
 -      viewing the document's plain text contents.  [Backport]
 -
 -2014-10-23  Eli Zaretskii  <eliz@gnu.org>
 -
        * frames.texi (Frame Commands): Document and index
        'frame-resize-pixelwise'.
  
        * windows.texi (Split Window): Document and index
        'window-resize-pixelwise'.
  
 -2014-10-20  Glenn Morris  <rgm@gnu.org>
 +2014-10-22  Tassilo Horn  <tsdh@gnu.org>
  
 -      * ack.texi (Acknowledgments): Remove some obsolete items.
 -      * misc.texi (Emulation): Remove section.
 +      * misc.texi (Document View): Adapt to latest doc-view changes wrt
 +      viewing the document's plain text contents.
  
  2014-10-20  Glenn Morris  <rgm@gnu.org>
  
 -      * Version 24.4 released.
 +      * Merge in all changes up to 24.4 release.
  
  2014-10-13  Glenn Morris  <rgm@gnu.org>
  
        * Makefile.in (dist): Update for new output variables.
  
 -2014-10-06  Glenn Morris  <rgm@gnu.org>
 +2014-10-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * macos.texi (Mac OS / GNUstep, Mac / GNUstep Basics)
 +      (Mac / GNUstep Customization): Mac OS X 10.6 or later now required.
 +
 +2014-10-09  Glenn Morris  <rgm@gnu.org>
  
        * package.texi (Package Menu): The package list was changed to not
        say "unsigned" any more.
  
 -2014-10-04  Glenn Morris  <rgm@gnu.org>
 +2014-10-05  Glenn Morris  <rgm@gnu.org>
  
        * misc.texi (Sorting):
        * search.texi (Query Replace): Markup fixes.
  
 +2014-10-04  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frames.texi (Scroll Bars): Describe use of horizontal scroll bars.
 +
 +2014-10-04  Glenn Morris  <rgm@gnu.org>
 +
        * cmdargs.texi (Misc X):
        * display.texi (Optional Mode Line):
        * misc.texi (emacsclient Options):
  
        * frames.texi (Frame Commands):
        * cmdargs.texi (Window Size X): Mention the use of
 -      `frame-resize-pixelwise' to make frames truly fullscreen or
 -      maximized.
 +      `frame-resize-pixelwise' to make frames truly fullscreen or maximized.
  
 -2014-10-01  Glenn Morris  <rgm@gnu.org>
 +2014-10-02  Glenn Morris  <rgm@gnu.org>
  
        * package.texi (Package Installation): Mention etc/package-keyring.gpg.
  
 +2014-09-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * emacsver.texi (EMACSVER): Bump to 20.0.50.
 +
 +2014-09-15  Daniel Colascione  <dancol@dancol.org>
 +
 +      * regs.texi (Text Registers): Update end-user documentation
 +      to reflect `insert-register' interface change.
 +
 +2014-08-07  Reuben Thomas  <rrt@sc3d.org>
 +
 +      * programs.texi (Program Modes): Don't advertise VMS DCL support
 +      any more.
 +
 +2014-08-07  Reuben Thomas  <rrt@sc3d.org>
 +
 +      Refer to MS-DOS using the same name everywhere.
 +
 +      * Makefile.in (EMACSSOURCES): ``MS-DOG'', ``MSDOG'' and ``msdog''
 +      become ``MS-DOS''; ``msdog'' in filenames becomes ``msdos''.
 +      * emacs-xtra.texi: ditto.
 +      * emacs.texi: ditto.
 +      * makefile.w32-in: ditto.
 +      * msdog-xtra.texi: ditto, and rename file.
 +      * msdog.texi: ditto, and rename file.
 +
  2014-07-21  Glenn Morris  <rgm@gnu.org>
  
        * emacs.texi (Intro): Workaround makeinfo 4 @acronym bug.  (Bug#18040)
  
 -2014-07-03  Juri Linkov  <juri@jurta.org>
 +2014-07-09  Juri Linkov  <juri@jurta.org>
  
        * search.texi (Regexp Search): Update lax space matching that is
        not active in regexp search by default now.  (Bug#17901)
  
 -2014-06-29  Glenn Morris  <rgm@gnu.org>
 +2014-07-03  Glenn Morris  <rgm@gnu.org>
  
        * help.texi (Misc Help):
        * trouble.texi (Checklist): "Online" help doesn't mean what it
        used to any more.
  
 +2014-06-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (%.texi): Disable implicit rules.
 +      (mkinfodir): Remove.
 +      (.dvi.ps): Replace with pattern rule.
 +      (${buildinfodir}): New rule.
 +      ($(buildinfodir)/emacs.info): Use order-only prereq for output dir.
 +      Use $<.
 +      (emacs.dvi, emacs.pdf, emacs.html, emacs-xtra.dvi, emacs-xtra.pdf):
 +      Use $<.
 +      (%.ps): New rule.
 +
 +2014-06-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (bootstrap-clean): New.
 +
 +2014-06-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (INFO_EXT): Remove and replace by ".info" throughout.
 +      (INFO_OPTS): Set directly rather than with configure.
 +
  2014-06-08  Glenn Morris  <rgm@gnu.org>
  
        * entering.texi (Entering Emacs): Small fix re initial-buffer-choice.
        * ack.texi (Acknowledgments):
        * emacs.texi (Acknowledgments): Updates.
  
 -2014-06-07  Glenn Morris  <rgm@gnu.org>
 +2014-06-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * ack.texi (Acknowledgments):
 +      * emacs.texi (Acknowledgments): Updates.
  
        * programs.texi (Prettifying Symbols): Remove node.
        (Misc for Programs): Mention more briefly here.
        * emacs.texi (Top): Update menu.
  
 -2014-06-05  Glenn Morris  <rgm@gnu.org>
 -
        * package.texi (Package Menu, Package Installation):
        Mention signed packages.
 -
 -2014-06-03  Glenn Morris  <rgm@gnu.org>
 -
 -      * package.texi (Package Installation): Mention package-pinned-packages.
 +      (Package Installation): Mention package-pinned-packages.
  
  2014-06-02  Glenn Morris  <rgm@gnu.org>
  
 +      * ack.texi (Acknowledgments): Remove some obsolete items.
        * misc.texi [iftex]: Update chapter summary.
 -      (Emulation): Remove ludicrously outdated claim.
 -
 -2014-05-29  Glenn Morris  <rgm@gnu.org>
 +      (Emulation): Remove section.
  
        * macos.texi (Mac / GNUstep Customization): Mention ns custom group.
        (Customization options specific to Mac OS / GNUstep): Remove section.
  
 -2014-05-28  Glenn Morris  <rgm@gnu.org>
 -
 -      * macos.texi (Mac / GNUstep Customization): Mention some new features.
 -
 -2014-05-27  Glenn Morris  <rgm@gnu.org>
 -
        * abbrevs.texi (Expanding Abbrevs): Update re abbrev-expand-function.
  
 -2014-05-21  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-26  Eli Zaretskii  <eliz@gnu.org>
  
        * frames.texi (Fonts): Clarify which frames are affected by
        setting font from the menu and in default-frame-alist.
        (Bug#17532)
  
 -2014-05-12  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-14  Eli Zaretskii  <eliz@gnu.org>
  
 -      * mule.texi (Language Environments): Remove unused @anchor.
 -      (Bug#17479)
 +      * mule.texi (Language Environments): Remove unused @anchor.  (Bug#17479)
  
 -2014-05-02  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-04  Eli Zaretskii  <eliz@gnu.org>
  
        * trouble.texi (Lossage, DEL Does Not Delete, Stuck Recursive)
        (Screen Garbled, Text Garbled, After a Crash, Emergency Escape)
        (Bug Criteria, Understanding Bug Reporting, Checklist, Service):
        Improve indexing.
  
 -2014-04-29  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-04  Leo Liu  <sdl.web@gmail.com>
 +
 +      * cal-xtra.texi (Non-Gregorian Diary): Document new features for
 +      Chinese calendar and diary.
 +
 +2014-04-30  Eli Zaretskii  <eliz@gnu.org>
  
        * trouble.texi (Quitting, DEL Does Not Delete, Emergency Escape)
        (Bug Criteria): Fix usage of @kbd and @key.  (Bug#17362)
  
        * anti.texi (Antinews): Fix usage of @kbd and @key.
  
 -2014-04-26  Eli Zaretskii  <eliz@gnu.org>
 -
        * sending.texi (Mail Signature): Document signature variables used
        by Message mode.  (Bug#17308)
  
 -2014-04-21  Eli Zaretskii  <eliz@gnu.org>
 +2014-04-22  Eli Zaretskii  <eliz@gnu.org>
  
        * buffers.texi (Uniquify): Clarify the default uniquification.
  
        EMACSLOADPATH.  Index all the environment variables.
        (Misc Variables): Index all the environment variables.
  
 -2014-04-13  Eli Zaretskii  <eliz@gnu.org>
 +2014-04-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * Makefile.in (infoclean): Be consistent about reporting failures.
 +      Do not fail merely because the info directory does not exist,
 +      but do fail if it exists and can't be cleaned.
 +
 +2014-04-16  Eli Zaretskii  <eliz@gnu.org>
  
        * display.texi (Cursor Display): Explain better how to customize
        'blink-cursor-blinks'.
  
 -2014-04-05  Glenn Morris  <rgm@gnu.org>
 +2014-04-07  Glenn Morris  <rgm@gnu.org>
  
        * trouble.texi (Checklist): Dribble files may contain passwords.
  
 -2014-04-04  Glenn Morris  <rgm@gnu.org>
 -
        * files.texi (Backup Names):
        * arevert-xtra.texi (Supporting additional buffers):
        Update for default values of some -function vars no longer being nil.
        (Supporting additional buffers):
        Update for buffer-stale-function also applying to file-buffers.
  
 +2014-03-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * custom.texi (Terminal Init): Mention term-file-aliases.
 +
 +2014-03-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * ack.texi (Acknowledgments): Remove reference to obsolete file.
 +
 +2014-03-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * help.texi (Help Files): Update C-h g description.
 +
  2014-03-16  Dmitry Gutov  <dgutov@yandex.ru>
  
        * programs.texi (Matching): Update the missed spot.  (Bug#17008)
  
  2014-03-13  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * mule.texi (International, Language Environments): Update
 -      the list of language environments to what Emacs currently
 +      * mule.texi (International, Language Environments):
 +      Update the list of language environments to what Emacs currently
        supports.  Add the full list to the index.  Suggest C-h L for
        details rather than trying to give very brief details here.
  
  
        * indent.texi (Tab Stops): Mention recent changes about `tab-stop-list'.
  
 -      * frames.texi (Scroll Bars): Document
 -      `scroll-bar-adjust-thumb-portion'.
 +      * frames.texi (Scroll Bars):
 +      Document `scroll-bar-adjust-thumb-portion'.
  
  2013-12-21  Chong Yidong  <cyd@gnu.org>
  
  
        * entering.texi: Document `initial-buffer-choice' changes.
  
 -      * misc.texi (emacsclient Options): Document
 -      `initial-buffer-choice' changes.
 +      * misc.texi (emacsclient Options):
 +      Document `initial-buffer-choice' changes.
  
        * help.texi: Document that `?' now also shows subcommands of
        prefix keys.
  
        * misc.texi (Terminal emulator): Document Term mode faces.
  
 -      * mini.texi (Basic Minibuffer): New node.  Document
 -      minibuffer-electric-default-mode.
 +      * mini.texi (Basic Minibuffer): New node.
 +      Document minibuffer-electric-default-mode.
  
        * display.texi (Visual Line Mode): Fix index entry.
  
  
        * Makefile.in (MAKEINFO): Now controlled by `configure'.
        (MAKEINFO_OPTS): New variable.  Use it where appropriate.
 -      (ENVADD): Updated.
 +      (ENVADD): Update.
  
  2011-01-18  Glenn Morris  <rgm@gnu.org>
  
  
        * text.texi (Format Faces): Replace old M-g key prefix with M-o.
  
 -      * emacs.texi (Acknowledgments): Updated.
 +      * emacs.texi (Acknowledgments): Update.
  
        * anti.texi: Total rewrite.
  
  
        * frames.texi (Dialog Boxes): Add use-file-dialog.
  
 -2003-11-22  Martin Stjernholm  <bug-cc-mode@gnu.org>
 +2003-11-22  Martin Stjernholm  <mast@lysator.liu.se>
  
        * ack.texi: Note that Alan Mackenzie contributed the AWK support
        in CC Mode.
diff --combined doc/emacs/display.texi
index 38acc20955e3fc349887c47a0db93326dc677723,4046d696b662a9645573d30fb9918bcf07a2a0eb..083bb2e2170250218921037c76c0d673df94cf86
@@@ -127,19 -127,6 +127,19 @@@ the mouse wheel (@pxref{Mouse Commands}
  command that has a non-@code{nil} @code{scroll-command} property.
  @xref{Property Lists,,, elisp, The Emacs Lisp Reference Manual}.
  
 +@vindex fast-but-imprecise-scrolling
 +  Sometimes, particularly when you hold down keys such as @kbd{C-v}
 +and @kbd{M-v}, activating keyboard auto-repeat, Emacs fails to keep up
 +with the rapid rate of scrolling requested; the display doesn't update
 +and Emacs can become unresponsive to input for quite a long time.  You
 +can counter this sluggishness by setting the variable
 +@code{fast-but-imprecise-scrolling} to a non-@code{nil} value.  This
 +instructs the scrolling commands not to fontify (@pxref{Font Lock})
 +any unfontified text they scroll over, instead to assume it has the
 +default face.  This can cause Emacs to scroll to somewhat wrong buffer
 +positions when the faces in use are not all the same size, even with
 +single (i.e., without auto-repeat) scrolling operations.
 +
  @vindex scroll-up
  @vindex scroll-down
  @findex scroll-up-line
@@@ -441,7 -428,7 +441,7 @@@ it.  @xref{Disabling}
  screenfuls.  It provides commands for scrolling through the buffer
  conveniently but not for changing it.  Apart from the usual Emacs
  cursor motion commands, you can type @key{SPC} to scroll forward one
- windowful, @key{S-@key{SPC}} or @key{DEL} to scroll backward, and @kbd{s} to
+ windowful, @kbd{S-@key{SPC}} or @key{DEL} to scroll backward, and @kbd{s} to
  start an incremental search.
  
  @kindex q @r{(View mode)}
diff --combined doc/emacs/misc.texi
index e12fca7ebddb7bef445114d04479e979482da2ad,b3f83252657ed7fa7c67a53669590a9fda1afe04..46585ed52d79ee0543434f57f8a5ba9b0acab9fe
@@@ -6,12 -6,12 +6,12 @@@
  @chapter Miscellaneous Commands
  
    This chapter contains several brief topics that do not fit anywhere
 -else: viewing ``document files'', reading Usenet news, running shell
 -commands and shell subprocesses, using a single shared Emacs for
 -utilities that expect to run an editor as a subprocess, printing
 -hardcopy, sorting text, editing binary files, saving an Emacs session
 -for later resumption, following hyperlinks, emulating other editors,
 -and various diversions and amusements.
 +else: reading Usenet news, viewing PDFs and other such documents, web
 +browsing, running shell commands and shell subprocesses, using a
 +single shared Emacs for utilities that expect to run an editor as a
 +subprocess, printing, sorting text, editing binary files, saving an
 +Emacs session for later resumption, recursive editing level, following
 +hyperlinks, and various diversions and amusements.
  
  @end iftex
  
@@@ -249,126 -249,6 +249,126 @@@ Search forward for articles containing 
  Exit the summary buffer and return to the group buffer.
  @end table
  
 +
 +@node Network Security
 +@section Network Security
 +@cindex network security manager
 +@cindex NSM
 +@cindex encryption
 +@cindex SSL
 +@cindex TLS
 +@cindex STARTTLS
 +
 +Whenever Emacs establishes any network connection, it passes the
 +established connection to the @dfn{Network Security Manager}
 +(@acronym{NSM}).  @acronym{NSM} is responsible for enforcing the
 +network security under your control.
 +
 +@vindex network-security-level
 +The @code{network-security-level} variable determines the security
 +level that @acronym{NSM} enforces.  If its value is @code{low}, no
 +security checks are performed.
 +
 +If this variable is @code{medium} (which is the default), a number of
 +checks will be performed.  If as result @acronym{NSM} determines that
 +the network connection might not be trustworthy, it will make you
 +aware of that, and will ask you what to do about the network
 +connection.
 +
 +You can decide to register a permanent security exception for an
 +unverified connection, a temporary exception, or refuse the connection
 +entirely.
 +
 +Below is a list of the checks done on the @code{medium} level.
 +
 +@table @asis
 +
 +@item unable to verify a @acronym{TLS} certificate
 +If the connection is a @acronym{TLS}, @acronym{SSL} or
 +@acronym{STARTTLS} connection, @acronym{NSM} will check whether
 +the certificate used to establish the identity of the server we're
 +connecting to can be verified.
 +
 +While an invalid certificate is often the cause for concern (there
 +could be a Man-in-the-Middle hijacking your network connection and
 +stealing your password), there may be valid reasons for going ahead
 +with the connection anyway.  For instance, the server may be using a
 +self-signed certificate, or the certificate may have expired.  It's up
 +to you to determine whether it's acceptable to continue with the
 +connection.
 +
 +@item a self-signed certificate has changed
 +If you've previously accepted a self-signed certificate, but it has
 +now changed, that could mean that the server has just changed the
 +certificate, but it might also mean that the network connection has
 +been hijacked.
 +
 +@item previously encrypted connection now unencrypted
 +If the connection is unencrypted, but it was encrypted in previous
 +sessions, this might mean that there is a proxy between you and the
 +server that strips away @acronym{STARTTLS} announcements, leaving the
 +connection unencrypted.  This is usually very suspicious.
 +
 +@item talking to an unencrypted service when sending a password
 +When connecting to an @acronym{IMAP} or @acronym{POP3} server, these
 +should usually be encrypted, because it's common to send passwords
 +over these connections.  Similarly, if you're sending email via
 +@acronym{SMTP} that requires a password, you usually want that
 +connection to be encrypted.  If the connection isn't encrypted,
 +@acronym{NSM} will warn you.
 +
 +@end table
 +
 +If @code{network-security-level} is @code{high}, the following checks
 +will be made, in addition to the above:
 +
 +@table @asis
 +@item a validated certificate changes the public key
 +Servers change their keys occasionally, and that is normally nothing
 +to be concerned about.  However, if you are worried that your network
 +connections are being hijacked by agencies who have access to pliable
 +Certificate Authorities which issue new certificates for third-party
 +services, you may want to keep track of these changes.
 +
 +@item Diffie-Hellman low prime bits
 +When doing the public key exchange, the number of ``prime bits''
 +should be high to ensure that the channel can't be eavesdropped on by
 +third parties.  If this number is too low, you will be warned.
 +
 +@item @acronym{RC4} stream cipher
 +The @acronym{RC4} stream cipher is believed to be of low quality and
 +may allow eavesdropping by third parties.
 +
 +@item @acronym{SSL1}, @acronym{SSL2} and @acronym{SSL3}
 +The protocols older than @acronym{TLS1.0} are believed to be
 +vulnerable to a variety of attacks, and you may want to avoid using
 +these if what you're doing requires higher security.
 +@end table
 +
 +Finally, if @code{network-security-level} is @code{paranoid}, you will
 +also be notified the first time @acronym{NSM} sees any new
 +certificate.  This will allow you to inspect all the certificates from
 +all the connections that Emacs makes.
 +
 +The following additional variables can be used to control details of
 +@acronym{NSM} operation:
 +
 +@table @code
 +@item nsm-settings-file
 +@vindex nsm-settings-file
 +This is the file where @acronym{NSM} stores details about connections.
 +It defaults to @file{~/.emacs.d/network-security.data}.
 +
 +@item nsm-save-host-names
 +@vindex nsm-save-host-names
 +By default, host names will not be saved for non-@code{STARTTLS}
 +connections.  Instead a host/port hash is used to identify connections.
 +This means that one can't casually read the settings file to see what
 +servers the user has connected to.  If this variable is @code{t},
 +@acronym{NSM} will also save host names in the nsm-settings-file.
 +@end table
 +
 +
  @node Document View
  @section Document Viewing
  @cindex DVI file
@@@ -1426,7 -1306,7 +1426,7 @@@ char mode
  
  @table @kbd
  @item C-c C-c
- Send a literal @key{C-c} to the sub-shell.
+ Send a literal @kbd{C-c} to the sub-shell.
  
  @item C-c @var{char}
  This is equivalent to @kbd{C-x @var{char}} in normal Emacs.  For
@@@ -2415,7 -2295,7 +2415,7 @@@ the order you choose
  @cindex vi
  @cindex WordStar
  
 -  GNU Emacs can be programmed to emulate (more or less) some other
 +  GNU Emacs can be programmed to emulate (more or less) most other
  editors.  Standard facilities can emulate these:
  
  @table @asis
index b0fa3e919d5d32ef2977f4e301b639f967d618df,304039e6bf2da5861e44012b19dd2fecb7573796..9996158f16186a93532b6dd2dc8e38b6df41d55b
@@@ -6,18 -6,19 +6,18 @@@
  @c printed version) or in the main Emacs manual (for the on-line version).
  @node MS-DOS
  @section Emacs and MS-DOS
 -@cindex MS-DOG
  @cindex MS-DOS peculiarities
  
    This section briefly describes the peculiarities of using Emacs on
 -the MS-DOS ``operating system'' (also known as ``MS-DOG'').
 +the MS-DOS ``operating system''.
  @iftex
  Information about Emacs and Microsoft's current operating system
 -Windows (also known as ``Losedows'') is in the main Emacs manual
 +Windows is in the main Emacs manual
  (@pxref{Microsoft Windows,,, emacs, the Emacs Manual}).
  @end iftex
  @ifnottex
  Information about peculiarities common to MS-DOS and Microsoft's
 -current operating systems Windows (also known as ``Losedows'') is in
 +current operating systems Windows is in
  @ref{Microsoft Windows}.
  @end ifnottex
  
@@@ -351,7 -352,7 +351,7 @@@ long file name support, set the environ
  DOS programs to access long file names, so Emacs built for MS-DOS will
  only see their short 8+3 aliases.
  
- @cindex @env{HOME} directory under MS-DOS
+ @cindex HOME directory under MS-DOS
    MS-DOS has no notion of home directory, so Emacs on MS-DOS pretends
  that the directory where it is installed is the value of the @env{HOME}
  environment variable.  That is, if your Emacs binary,
diff --combined doc/emacs/msdos.texi
index 10e792369385436f4e140a16c5181a4a8802a74a,a17d87543d9ee0b0c05574a4a0986fbbf13f4ccd..f1cdb26a0eb0b8d8ef7645f1ad4f0ee2d93653ec
@@@ -9,7 -9,7 +9,7 @@@
  
    This section describes peculiarities of using Emacs on Microsoft
  Windows.  Some of these peculiarities are also relevant to Microsoft's
 -older MS-DOS ``operating system'' (also known as ``MS-DOG'').
 +older MS-DOS operating system.
  However, Emacs features that are relevant @emph{only} to MS-DOS are
  described in a separate
  @iftex
@@@ -425,7 -425,7 +425,7 @@@ names, which might cause misalignment o
  
  @node Windows HOME
  @section HOME and Startup Directories on MS-Windows
- @cindex @code{HOME} directory on MS-Windows
+ @cindex HOME directory on MS-Windows
  
    The Windows equivalent of @code{HOME} is the @dfn{user-specific
  application data directory}.  The actual location depends on the
@@@ -1021,5 -1021,5 +1021,5 @@@ click-to-focus policy
  @end ifnottex
  
  @ifnottex
 -@include msdog-xtra.texi
 +@include msdos-xtra.texi
  @end ifnottex
diff --combined doc/emacs/programs.texi
index 73aed087f450910ef80dc03a5c35fb5021de1821,ff7bed03ea1e646ef54b1032c757a72dfd1a7185..b161a0cc63b542f5a2bea1c7c80b304489fba339
@@@ -88,8 -88,8 +88,8 @@@ Fortran, Icon, IDL (CORBA), IDLWAVE, Ja
  Octave, Pascal, Perl, Pike, PostScript, Prolog, Python, Ruby, Simula, Tcl,
  and VHDL@.  An alternative mode for Perl is called CPerl mode.  Modes are
  also available for the scripting languages of the common GNU and Unix
 -shells, VMS DCL, and MS-DOS/MS-Windows @samp{BAT} files, and for
 -makefiles, DNS master files, and various sorts of configuration files.
 +shells, and MS-DOS/MS-Windows @samp{BAT} files, and for makefiles,
 +DNS master files, and various sorts of configuration files.
  
    Ideally, Emacs should have a major mode for each programming
  language that you might want to edit.  If it doesn't have a mode for
@@@ -383,7 -383,7 +383,7 @@@ the preceding lines; if the region is a
  line within the region, not just the current line.
  
    The command @key{RET} (@code{newline}), which was documented in
- @ref{Inserting Text}, does the same as @key{C-j} followed by
+ @ref{Inserting Text}, does the same as @kbd{C-j} followed by
  @key{TAB}: it inserts a new line, then adjusts the line's indentation.
  
    When indenting a line that starts within a parenthetical grouping,
@@@ -559,7 -559,7 +559,7 @@@ predefined styles, including @code{gnu}
  styles are primarily intended for one language, but any of them can be
  used with any of the languages supported by these modes.  To find out
  what a style looks like, select it and reindent some code, e.g., by
- typing @key{C-M-q} at the start of a function definition.
+ typing @kbd{C-M-q} at the start of a function definition.
  
  @kindex C-c . @r{(C mode)}
  @findex c-set-style
diff --combined doc/lispref/ChangeLog
index 260656c6cf76fff62e8bbd1b4f4c71d26ae391b1,319386d9f6c76c05b20df924dce394f7b7d63554..3644d40fabf69162e8503be9204d94ef7b8acafd
 -2015-03-14  Eli Zaretskii  <eliz@gnu.org>
++2015-03-18  Eli Zaretskii  <eliz@gnu.org>
+       * minibuf.texi (Basic Completion): Fix a typo.  (Bug#20108)
 -2015-02-07  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-09  Nicolas Petton <nicolas@petton.fr>
 +
 +      * sequences.texi (seq-into): Add documentation for the new
 +      seq-into function.
 +
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * processes.texi (Synchronous Processes): Update documentation of
        call-process-shell-command and process-file-shell-command.
  
 -2015-01-24  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Daniel Colascione  <dancol@dancol.org>
 +
 +      * control.texi (Generators): Correct missing word.  Clarify which
 +      forms are legal in which parts of `unwind-protect'.  Fix orphaned
 +      close parenthesis.
 +
 +      * objects.texi (Finalizer Type): New section for finalizer objects.
 +      (Type Predicates): Mention finalizers in `type-of' documentation.
 +      * elisp.texi (Top): Link to finalizer type.
 +
 +2015-03-02  Daniel Colascione  <dancol@dancol.org>
 +
 +      * control.texi (Generators): New section
 +      * elisp.text: Reference new section.
 +
 +2015-02-28  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * searching.texi (Char Classes): Update the documentation of
 +      [:alpha:] and [:alnum:].  (Bug#19878)
 +
 +2015-02-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * os.texi (Startup Summary):
 +      * display.texi (Window Systems): Mention peculiarities of daemon
 +      mode on MS-Windows.
 +
 +2015-02-11  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frames.texi (Size Parameters): Update description of
 +      fullscreen frame parameter.  Describe `fullscreen-restore'
 +      parameter.
 +
 +2015-02-09 Nicolas Petton <nicolas@petton.fr>
 +
 +      * sequences.texi (Sequence Functions): Update documentation
 +      examples for seq-group-by.
 +
 +2015-02-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * positions.texi (Screen Lines): Update the documentation of
 +      vertical-motion to document the new additional argument.
 +
 +2015-02-06  Nicolas Petton <nicolas@petton.fr>
 +
 +      * sequences.texi (Sequence Functions): Add documentation for
 +      seq-mapcat, seq-partition and seq-group-by.
 +
 +2015-02-05  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * display.texi (Size of Displayed Text): Remove description of
 +      optional argument BUFFER of `window-text-pixel-size'.
 +
 +2015-02-01  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * display.texi (Size of Displayed Text): Describe optional
 +      argument BUFFER of `window-text-pixel-size'.
 +
 +2015-01-28  Eli Zaretskii  <eliz@gnu.org>
  
        * searching.texi (Regexp Search): Add a cross-reference to "Syntax
        of Regexps".  (Bug#19668)
  
 -2015-01-21  Daniel Koning  <dk@danielkoning.com>  (tiny change)
 +2015-01-28  Daniel Koning  <dk@danielkoning.com>  (tiny change)
  
        * commands.texi (Drag Events, Motion Events, Event Examples)
        (Accessing Mouse): Describe actual range of values that mouse
        position objects can have.
  
 -2015-01-20  Eli Zaretskii  <eliz@gnu.org>
 +2015-01-28  Eli Zaretskii  <eliz@gnu.org>
  
        * display.texi (Manipulating Buttons): Explain more about the
        'action' property.  (Bug#19628)
  
        * text.texi (Clickable Text): Improve indexing.  (Bug#19629)
  
 +      * variables.texi (Creating Buffer-Local): Improve indexing.  (Bug#19608)
 +
 +      * frames.texi (Display Feature Testing): Make the description of
 +      x-server-version and x-server-vendor less X-specific.  (Bug#19502)
 +
  2015-01-15  Eli Zaretskii  <eliz@gnu.org>
  
 -      * variables.texi (Creating Buffer-Local): Improve indexing.
 -      (Bug#19608)
 +      * streams.texi (Input Functions): Document 'set-binary-mode'.
 +      (Output Functions): Cross-reference to documentation of
 +      'set-binary-mode'.
  
 -2015-01-04  Eli Zaretskii  <eliz@gnu.org>
 +2015-01-04  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * frames.texi (Display Feature Testing): Make the description of
 -      x-server-version and x-server-vendor less X-specific.  (Bug#19502)
 +      batch write-region no longer says "Wrote FOO"
 +      * files.texi (Writing to Files): Document this.
 +
 +2014-12-31  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Less 'make' chatter for Emacs doc
 +      * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_GEN, am__v_GEN_)
 +      (am__v_GEN_0, am__v_GEN_1): New macros, from ../../src/Makefile.in.
 +      (ENVADD, $(buildinfodir)/elisp.info, elisp.html):
 +      Use them.
 +
 +2014-12-30  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * display.texi (Temporary Displays): Amend description of
 +      `with-temp-buffer-window'.  Add descriptions for
 +      `with-current-buffer-window', `with-displayed-buffer-window' and
 +      `temp-buffer-resize-mode', `temp-buffer-max-height' and
 +      `temp-buffer-max-width'.
 +
 +2014-12-29  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-12-24  Glenn Morris  <rgm@gnu.org>
 +      * os.texi (System Environment): Update for system-name changes.
 +
 +2014-12-27  Glenn Morris  <rgm@gnu.org>
  
        * control.texi (Pattern matching case statement):
        * os.texi (Desktop Notifications):
        * modes.texi (Defining Minor Modes, SMIE Lexer): Markup fixes.
  
 -2014-12-23  Eli Zaretskii  <eliz@gnu.org>
 +2014-12-27  Eli Zaretskii  <eliz@gnu.org>
  
        * windows.texi (Recombining Windows): Index subject of sections.
  
        * os.texi (Time of Day, Time Conversion, Time Parsing)
        (Time Calculations, Idle Timers): Index subject of sections.
  
 +2014-12-25  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * windows.texi (Windows): Resync @menu order with @node order.
 +
 +      * minibuf.texi (Minibuffer Windows): Add descriptions of
 +      `resize-mini-windows' and `max-mini-window-height'.
 +
 +2014-12-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * windows.texi (Windows): Sync @menu order with @node order.
 +
 +      * sequences.texi (Sequence Functions): Copyedits.
 +
 +      * control.texi (Pattern matching case statement):
 +      * positions.texi (List Motion):
 +      * streams.texi (Output Functions):
 +      * strings.texi (Text Comparison):
 +      * text.texi (Document Object Model): Markup fixes.
 +
 +2014-12-22  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Remove obsolete references to pre-C99 builds
 +      * internals.texi (C Integer Types): Don't mention pre-C99 compilers.
 +
 +2014-12-19  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * windows.texi (Resizing Windows): Describe new argument of
 +      `fit-window-to-buffer'.  Move description of `window-size-fixed'
 +      to new section below.
 +      (Preserving Window Sizes): New section describing
 +      `window-size-fixed' and `window-preserve-size'.
 +      (Display Action Functions): Describe `preserve-size' alist
 +      entry.
 +      (Window Parameters): Describe `preserved-size' parameter.
 +
 +2014-12-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * display.texi (Low-Level Font): Document font-info and query-font.
 +
  2014-12-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * display.texi (Forcing Redisplay): Remove references to
 -      redisplay-dont-pause and redisplay-preemption-period (which doesn't
 -      even exist).
 +        * display.texi (Forcing Redisplay): Remove references to
 +        redisplay-dont-pause and redisplay-preemption-period (which doesn't
 +        even exist).
 +
 +2014-12-16  Nicolas Petton  <petton.nicolas@gmail.com>
 +
 +      * sequences.texi (Seq Library): Add documentation for seq.el.
 +
 +2014-12-15  Alan Mackenzie  <acm@muc.de>
 +
 +      "Advice" is a mass noun.  Amend text accordingly.
 +      * functions.texi: (Advising Functions, Core Advising Primitives)
 +      (Advising Named Functions, Advice combinators)
 +      (Porting old advice): Replace, e.g., "an advice" with "advice".
 +
 +2014-12-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
  
 -2014-12-11  Eli Zaretskii  <eliz@gnu.org>
 +      * files.texi (Relative File Names): Mention `directory-name-p'.
 +
 +2014-12-13  Eli Zaretskii  <eliz@gnu.org>
  
        * text.texi (Comparing Text): Prevent a text string from being
        broken between 2 lines.  (Bug#19257)
  
 -2014-11-19  Paul Eggert  <eggert@cs.ucla.edu>
 +2014-12-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * files.texi (Contents of Directories):
 +      Document directory-files-recursively.
 +
 +2014-12-04  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * display.texi (Bidirectional Display):
 +      Document 'buffer-substring-with-bidi-context'.
 +
 +      * text.texi (Buffer Contents):
 +      Mention 'buffer-substring-with-bidi-context' with a cross-reference.
 +
 +2014-12-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * display.texi (Bidirectional Display):
 +      Document 'bidi-find-overridden-directionality'.
 +
 +2014-11-29  Paul Eggert  <eggert@cs.ucla.edu>
  
        Lessen focus on ChangeLog files, as opposed to change log entries.
        * intro.texi (Acknowledgments): ChangeLog file -> change log entries.
        * tips.texi (Library Headers): Emacs uses a version control system.
  
 +2014-11-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * text.texi (Document Object Model): Mention `dom-pp'.
 +
 +2014-11-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * text.texi (Document Object Model): New node to document dom.el.
 +
 +2014-11-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * processes.texi (Network Security): Made into its own section and
 +      fleshed out.
 +      (Network Security): Mention more NSM variables.
 +      (Processes): Move the Network Security Manager stuff to the Emacs
 +      manual.
 +
 +2014-11-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * processes.texi (Network): Mention the new :warn-unless-encrypted
 +      parameter to `open-network-stream'.
 +      (Network): Mention the Network Security Manager.
 +
 +2014-11-21  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * text.texi (Parsing HTML/XML): Document new optional parameter
 +      'discard-comments' of 'libxml-parse(html|xml)-region'.
 +
 +2014-11-18  Leo Liu  <sdl.web@gmail.com>
 +
 +      * functions.texi (Advising Named Functions):
 +      Document define-advice.
 +
 +2014-11-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Improve time stamp handling, and be more consistent about it.
 +      * os.texi (Time of Day, Time Conversion, Time Parsing)
 +      (Processor Run Time, Time Calculations):
 +      Document the new behavior, plus be clearer about the old behavior.
 +      (Idle Timers): Take advantage of new functionality.
 +
 +2014-11-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * text.texi (Special Properties): Mention `inhibit-read-only'.
 +
 +2014-11-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * os.texi (Time of Day):
 +      Use leading zero with 24-hour times less than 10:00.
 +
  2014-11-09  Glenn Morris  <rgm@gnu.org>
  
        * Makefile.in (version): Remove variable.
        (clean): No longer delete dist tarfile.
        (dist): Remove rule; replace with code in admin.el.
  
 +2014-11-07  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frames.texi (Size and Position): Rewrite description of
 +      `frame-inhibit-implied-resize'.
 +
 +2014-10-22  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frames.texi (Size Parameters): Replace "frame contents" by
 +      "frame's text area".  Add reference to Size and Position
 +      section.
 +      (Size and Position): Major rewrite.  Add explanations for
 +      frame's default font, text and display areas.  Add descriptions
 +      for `set-frame-font', `frame-text-height', `frame-text-width'
 +      and `frame-inhibit-implied-resize'.
 +
  2014-10-20  Glenn Morris  <rgm@gnu.org>
  
 -      * Version 24.4 released.
 +      * Merge in all changes up to 24.4 release.
 +
 +2014-10-20  Tom Tromey  <tom@tromey.com>
 +
 +      * objects.texi (Type Predicates): Don't mention display-table-p.
 +
 +2014-10-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * nonascii.texi (Character Properties): Document the new
 +      properties 'bracket-type' and 'paired-bracket'.
 +
 +      * display.texi (Bidirectional Display): Update the version of the
 +      UBA to which we are conforming.
  
  2014-10-13  Glenn Morris  <rgm@gnu.org>
  
        * Makefile.in (dist): Update for new output variables.
  
 -2014-10-09  Glenn Morris  <rgm@gnu.org>
 +2014-10-12  Glenn Morris  <rgm@gnu.org>
  
        * elisp.texi (DATE): Bump to October 2014.
  
 +2014-10-09  Glenn Morris  <rgm@gnu.org>
 +
        * frames.texi (Multiple Terminals): Copyedits.
  
 -2014-10-08  Eli Zaretskii  <eliz@gnu.org>
 +2014-10-09  Eli Zaretskii  <eliz@gnu.org>
  
        * frames.texi (Multiple Terminals): Improve the description of X
        display names.  Add index entries.
        frame might be positioned differently than specified by the frame
        parameters alist.
  
 +2014-10-08  Leo Liu  <sdl.web@gmail.com>
 +
 +      * streams.texi (Output Functions): Document new argument ENSURE to
 +      terpri.  (Bug#18652)
 +
 +2014-10-04  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * display.texi (Scroll Bars): Add description of horizontal scroll
 +      bars and associated functions.
 +      * frames.texi (Layout Parameters): Add horizontal scroll bar
 +      entries.  Remove paragraph on "combined fringe widths".
 +      * windows.texi (Window Sizes): Describe affects of horizontal
 +      scroll bars on window layout and sizes.  Fix description of
 +      window-full-height-p.
 +      (Resizing Windows): Mention horizontal scroll bar.
 +
  2014-10-04  Glenn Morris  <rgm@gnu.org>
  
        * commands.texi (Generic Commands): Copyedits.
  2014-10-03  Martin Rudalics  <rudalics@gmx.at>
  
        * frames.texi (Size Parameters, Size and Position): Mention that
 -      with some window managers you have to set
 -      `frame-resize-pixelwise' in order make a frame truly fullscreen
 -      or maximized.
 +      with some window managers you have to set `frame-resize-pixelwise'
 +      in order make a frame truly fullscreen or maximized.
 +
 +2014-10-01  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Improve doc for use of 'int', and discuss 'ssize_t'.
 +      * internals.texi (C Integer Types): Mention 'int' for other
 +      randomish values that lie in 'int' range.  Mention 'ssize_t'.  See:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00019.html
 +
 +      Use AUTO_CONS instead of SCOPED_CONS, etc.
 +      * internals.texi (Stack-allocated Objects):
 +      Adjust to match the revised, less error-prone macros.
 +
 +2014-09-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * internals.texi (Stack-allocated Objects): Further improvements.
 +      Give an example of misuse.
 +
 +2014-09-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * internals.texi (Stack-allocated Objects): Minor improvements of
 +      the wording and the indexing.
 +
 +2014-09-30  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * internals.texi (Stack-allocated Objects): Describe this feature.
 +
 +2014-09-15  Daniel Colascione  <dancol@dancol.org>
 +
 +      * text.texi (Registers): Make `insert-register' documentation
 +      reflect interface change.
 +
 +2014-09-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * functions.texi (Core Advising Primitives): Add a note about the
        confusing treatment of `interactive' for :filter-args (bug#18399).
  
 -2014-08-19  Eli Zaretskii  <eliz@gnu.org>
 +2014-09-07  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * strings.texi (Text Comparison): Describe `string-collate-equalp'
 +      and `string-collate-lessp'.
 +
 +2014-09-06  Leo Liu  <sdl.web@gmail.com>
 +
 +      * control.texi (Pattern matching case statement): Document vector
 +      qpattern.  (Bug#18327)
 +
 +2014-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * lists.texi (Functions that Rearrange Lists):
 +      Remove description of sort ...
 +      * sequences.texi (Sequence Functions): ... and generalize
 +      it for sequences.  Add an example.
 +
 +2014-08-28  Eli Zaretskii  <eliz@gnu.org>
  
        * display.texi (Bidirectional Display): Update the Emacs's class
        of bidirectional conformance.
  
 -2014-07-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2014-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * eval.texi (Eval): Mention possible recovery from stack overflow.
 +
 +2014-07-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * internals.texi (Garbage Collection): Fix last change.
 +
 +2014-07-11  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * internals.texi (Garbage Collection): Mention memory-info.
 +
 +2014-07-11  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * minibuf.texi (Intro to Minibuffers, Reading a Password):
 +      Password hiding is available in batch mode, do not mention it in
 +      the exclusion list.  Mention `read-hide-char'.  (Bug#17839)
 +
 +2014-07-09  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * debugging.texi (Function Debugging, Debugger Commands):
        Update debug-on-entry w.r.t behavior after redefinitions (bug#17902).
  
 -2014-06-29  Glenn Morris  <rgm@gnu.org>
 +2014-07-03  Glenn Morris  <rgm@gnu.org>
  
        * help.texi (Help Functions): "Online" help doesn't mean what it
        used to any more.
  
 -2014-06-26  Glenn Morris  <rgm@gnu.org>
 +2014-07-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keymaps.texi (Key Lookup): Remove mention of indirect entries.
 +      (Scanning Keymaps): Reword the `noindirect' argument.
 +
 +2014-06-28  Glenn Morris  <rgm@gnu.org>
  
        * minibuf.texi (Intro to Minibuffers): Batch mode is basic.
        (Reading a Password): Mention batch mode.  (Bug#17839)
  
 +2014-06-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (%.texi): Disable implicit rules.
 +      (mkinfodir): Remove.
 +      (.dvi.ps): Replace with explicit rule.
 +      (html): Declare as PHONY.
 +      (${buildinfodir}): New rule.
 +      ($(buildinfodir)/elisp.info): Use order-only prereq for output dir.
 +      Use $<.
 +      (elisp.dvi, elisp.html, elisp.pdf): Use $<.
 +      (elisp.ps): New rule.
 +
  2014-06-21  Eli Zaretskii  <eliz@gnu.org>
  
        * positions.texi (Screen Lines): Clarify how columns are counted
        by vertical-motion.
  
 -2014-06-14  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (bootstrap-clean): New.
 +
 +2014-06-15  Eli Zaretskii  <eliz@gnu.org>
  
        * commands.texi (Accessing Mouse): Improve the wording of the
        posn-col-row documentation.  (Bug#17768)
  
 +2014-06-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (INFO_EXT): Remove and replace by ".info" throughout.
 +      (INFO_OPTS): Set directly rather than with configure.
 +
 +2014-06-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Say (accept-process-output P)'s result pertains to P if P is non-nil.
 +      * processes.texi (Accepting Output): Mention that if PROCESS is non-nil,
 +      the return value is about PROCESS, not about other processes.
 +
  2014-06-08  Glenn Morris  <rgm@gnu.org>
  
        * os.texi (Startup Summary): Small fix for initial-buffer-choice.
  
        * numbers.texi (Comparison of Numbers): Copyedits.
  
 -2014-06-06  Glenn Morris  <rgm@gnu.org>
 +2014-06-08  Glenn Morris  <rgm@gnu.org>
  
        * display.texi (Window Systems): Remove window-setup-hook.
        * os.texi (Startup Summary, Init File):
  
        * display.texi (Overlay Properties): Update re priority.  (Bug#17234)
  
 -2014-06-05  Glenn Morris  <rgm@gnu.org>
 -
        * package.texi (Package Archives): Mention signing packages.
  
 -2014-05-27  Glenn Morris  <rgm@gnu.org>
 +2014-06-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * commands.texi (Click Events): Update contents of click event's
 +      position list due to last changes in make_lispy_position.
 +
 +2014-06-02  Glenn Morris  <rgm@gnu.org>
  
        * text.texi (Buffer Contents):
        Update for filter-buffer-substring changes.
        * abbrevs.texi (Abbrev Expansion): Update for expand-abbrev changes.
        * functions.texi (Advising Functions): Standardize menu case.
  
 -2014-05-17  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-26  Eli Zaretskii  <eliz@gnu.org>
  
        * display.texi (Invisible Text): Clarify the description of
        line-move-ignore-invisible.  (Bug#17511)
  
 -2014-05-07  Paul Eggert  <eggert@cs.ucla.edu>
 +2014-05-22  Leo Liu  <sdl.web@gmail.com>
 +
 +      * sequences.texi (Sequence Functions): Don't mention when and how
 +      SEQ to nreverse is mutated.
 +
 +2014-05-21  Leo Liu  <sdl.web@gmail.com>
 +
 +      * sequences.texi (Sequence Functions): Update nreverse.
 +
 +2014-05-19  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Allow any non-nil value to count as true in bool-vector.
 +      * sequences.texi (Bool-Vectors): Coalesce discussion of how to
 +      print them.  bool-vector's args need not be t or nil.
 +
 +2014-05-19  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * sequences.texi (Bool-vectors): Mention bool-vector.
 +
 +2014-05-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume C99 or later (Bug#17487).
 +      * internals.texi (C Dialect): Document this.
 +
 +2014-05-15  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * lists.texi (Building Cons Cells and Lists):
 +      Remove description of `reverse' and `'nreverse' to generalize them...
 +      * sequences.texi (Sequences): ...for sequences here.
 +
 +2014-05-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * files.texi (Changing Files): Mention with-file-modes.
 +
 +2014-05-08  Paul Eggert  <eggert@cs.ucla.edu>
  
        * internals.texi (C Dialect): New section.
        (C Integer Types): Mention bool_bf.
  
 -2014-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2014-04-30  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * processes.texi (Filter Functions, Sentinels): Advertise add-function.
  
 -2014-04-24  Eli Zaretskii  <eliz@gnu.org>
 +2014-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * windows.texi (Window Configurations, Window Configurations):
 +      Window configs don't store marks any more.
 +
 +2014-04-25  Eli Zaretskii  <eliz@gnu.org>
  
        * strings.texi (Text Comparison): Mention equal-including-properties
        for when text properties of the strings matter for comparison.
  
 -2014-04-21  Eli Zaretskii  <eliz@gnu.org>
 +2014-04-22  Eli Zaretskii  <eliz@gnu.org>
  
        * text.texi (Registers): Document register-read-with-preview.
  
        * internals.texi (Building Emacs): Improve indexing.
  
 -2014-04-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2014-04-17  Daniel Colascione  <dancol@dancol.org>
  
 -      * display.texi (Overlay Properties): Reword the doc of `priority'.
 -      (Finding Overlays): Document new arg of `overlays-at'.
 +      * frames.texi (Terminal Parameters): Document new
 +      tty-mode-set-strings and tty-mode-reset-strings terminal
 +      parameters.
  
 -2014-04-05  Glenn Morris  <rgm@gnu.org>
 +2014-04-17  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * os.texi (Recording Input): Dribble files may contain passwords.
 +      * Makefile.in (infoclean): Be consistent about reporting failures.
 +
 +2014-04-09  Daniel Colascione  <dancol@dancol.org>
 +
 +      * errors.texi (Standard Errors): Document required error
 +      parameters for `scan-error'.
 +
 +      * positions.texi (List Motion): Explain new `up-list' arguments.
 +      Mention `backward-up-list'.
 +
 +2014-04-08  Daniel Colascione  <dancol@dancol.org>
  
 -2014-04-04  Glenn Morris  <rgm@gnu.org>
 +      * minibuf.texi (Programmed Completion): Improve phrasing, remove
 +      incorrect bullet count.
 +
 +2014-04-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * os.texi (Recording Input): Dribble files may contain passwords.
  
        * backups.texi (Making Backups, Reverting):
        Update for default values of some -function vars no longer being nil.
        (Reverting): Update for buffer-stale-function
        also applying to file-buffers.
  
 -2014-03-25  Eli Zaretskii  <eliz@gnu.org>
 +2014-03-31  Daniel Colascione  <dancol@dancol.org>
 +
 +      * minibuf.texi (Completion in Buffers): Discuss using lazy
 +      completion tables for inline completion.
 +
 +2014-03-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * os.texi (Terminal-Specific): Mention term-file-aliases.
 +
 +2014-03-26  Eli Zaretskii  <eliz@gnu.org>
  
        * files.texi (Kinds of Files): Improve documentation of
        file-symlink-p.  (Bug#17073)  Add cross-references.
  
 -2014-03-24  Barry O'Reilly  <gundaetiapo@gmail.com>
 +2014-03-26  Barry O'Reilly  <gundaetiapo@gmail.com>
  
        * markers.texi (Moving Marker Positions): The 2014-03-02 doc
        change mentioning undo's inability to handle relocated markers no
        * text.texi (Undo): Expand documentation of (TEXT . POS) and
        (MARKER . ADJUSTMENT) undo elements.
  
 +2014-03-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * files.texi (File Locks): All systems support locking.
 +
  2014-03-22  Glenn Morris  <rgm@gnu.org>
  
 +      * commands.texi (Defining Commands):
 +      Mention that interactive-only also affects describe-function.
 +
 +      * functions.texi (Declare Form): Add interactive-only.
 +      * commands.texi (Defining Commands) Mention declare.
 +
        * commands.texi (Defining Commands): List interactive-only values.
  
  2014-03-22  Eli Zaretskii  <eliz@gnu.org>
        * functions.texi (Core Advising Primitives): Fix cross-reference
        in last change.
  
 -2014-03-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2014-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * functions.texi (Advising Functions): Explain a bit more how
        arguments work.
  
  1998-01-30  Richard Stallman  <rms@psilocin.gnu.org>
  
 -      * Makefile (SHELL): Defined.
 +      * Makefile (SHELL): Define.
  
  1998-01-27  Richard Stallman  <rms@psilocin.gnu.org>
  
diff --combined doc/lispref/minibuf.texi
index 4fec757393f53b288fc81e283fc5fe5701d5095d,fa4ee04c7697c9b35a31d0143ee40ba1ad9812b7..24c7559c7d9c21555efa5702ec495b4743e67d9d
@@@ -102,8 -102,8 +102,8 @@@ the minibuffer is in a separate frame
    When Emacs is running in batch mode, any request to read from the
  minibuffer actually reads a line from the standard input descriptor that
  was supplied when Emacs was started.  This supports only basic input:
 -none of the special minibuffer features (history, completion,
 -password hiding, etc.) are available in batch mode.
 +none of the special minibuffer features (history, completion, etc.)@:
 +are available in batch mode.
  
  @node Text from Minibuffer
  @section Reading Text Strings with the Minibuffer
@@@ -723,7 -723,7 +723,7 @@@ just one matching completion, and the m
  @code{t}.  Otherwise, it returns the longest initial sequence common
  to all possible matching completions.
  
- If @var{collection} is an list, the permissible completions are
+ If @var{collection} is a list, the permissible completions are
  specified by the elements of the list, each of which should be either
  a string, or a cons cell whose @sc{car} is either a string or a symbol
  (a symbol is converted to a string using @code{symbol-name}).  If the
@@@ -1738,7 -1738,7 +1738,7 @@@ possible match, and ignore the match i
  
  @item
  A flag specifying the type of completion operation to perform.  This
 -is one of the following four values:
 +flag may be one of the following values.
  
  @table @code
  @item nil
@@@ -1877,34 -1877,11 +1877,34 @@@ next function in @code{completion-at-po
  reporting a completion failure.
  @end table
  
 +Supplying a function for @var{collection} is strongly recommended if
 +generating the list of completions is an expensive operation.  Emacs
 +may internally call functions in @code{completion-at-point-functions}
 +many times, but care about the value of @var{collection} for only some
 +of these calls.  By supplying a function for @var{collection}, Emacs
 +can defer generating completions until necessary.  You can use
 +@var{completion-table-dynamic} to create a wrapper function:
 +
 +@smallexample
 +;; Avoid this pattern.
 +(let ((beg ...) (end ...) (my-completions (my-make-completions)))
 +  (list beg end my-completions))
 +
 +;; Use this instead.
 +(let ((beg ...) (end ...))
 +  (list beg
 +        end
 +        (completion-table-dynamic
 +          (lambda (_)
 +            (my-make-completions)))))
 +@end smallexample
 +
  A function in @code{completion-at-point-functions} may also return a
 -function.  In that case, that returned function is called, with no
 -argument, and it is entirely responsible for performing the
 -completion.  We discourage this usage; it is intended to help convert
 -old code to using @code{completion-at-point}.
 +function instead of a list as described above.  In that case, that
 +returned function is called, with no argument, and it is entirely
 +responsible for performing the completion.  We discourage this usage;
 +it is intended to help convert old code to using
 +@code{completion-at-point}.
  
  The first function in @code{completion-at-point-functions} to return a
  non-@code{nil} value is used by @code{completion-at-point}.  The
@@@ -2150,10 -2127,9 +2150,10 @@@ function @code{read-passwd}
  
  @defun read-passwd prompt &optional confirm default
  This function reads a password, prompting with @var{prompt}.  It does
 -not echo the password as the user types it; instead, it echoes @samp{.}
 -for each character in the password.  (Note that in batch mode, the
 -input is not hidden.)
 +not echo the password as the user types it; instead, it echoes
 +@samp{.}  for each character in the password.  If you want to apply
 +another character to hide the password, let-bind the variable
 +@code{read-hide-char} with that character.
  
  The optional argument @var{confirm}, if non-@code{nil}, says to read the
  password twice and insist it must be the same both times.  If it isn't
@@@ -2221,8 -2197,8 +2221,8 @@@ contents of the minibuffer before the p
  @section Minibuffer Windows
  @cindex minibuffer windows
  
 -  These functions access and select minibuffer windows
 -and test whether they are active.
 +These functions access and select minibuffer windows, test whether they
 +are active and control how they get resized.
  
  @defun active-minibuffer-window
  This function returns the currently active minibuffer window, or
@@@ -2263,29 -2239,6 +2263,29 @@@ This function returns non-@code{nil} i
  active minibuffer window.
  @end defun
  
 +The following two options control whether minibuffer windows are resized
 +automatically and how large they can get in the process.
 +
 +@defopt resize-mini-windows
 +This option specifies whether minibuffer windows are resized
 +automatically.  The default value is @code{grow-only}, which means that
 +a minibuffer window by default expands automatically to accommodate the
 +text it displays and shrinks back to one line as soon as the minibuffer
 +gets empty.  If the value is @code{t}, Emacs will always try to fit the
 +height of a minibuffer window to the text it displays (with a minimum of
 +one line).  If the value is @code{nil}, a minibuffer window never
 +changes size automatically.  In that case the window resizing commands
 +(@pxref{Resizing Windows}) can be used to adjust its height.
 +@end defopt
 +
 +@defopt max-mini-window-height
 +This option provides a maximum height for resizing minibuffer windows
 +automatically.  A floating-point number specifies a fraction of the
 +frame's height; an integer specifies the maximum number of lines.  The
 +default value is 0.25.
 +@end defopt
 +
 +
  @node Minibuffer Contents
  @section Minibuffer Contents
  @cindex access minibuffer contents
diff --combined doc/misc/ChangeLog
index fc85bd97f738786c4444dbfb7e3071fbc1682406,8bb094778a2a80bce697c0d5dfcdad0d10854975..62f565191dcb2481e08d6217fcb8ea8b379dff9d
 -2015-03-16  Eli Zaretskii  <eliz@gnu.org>
++2015-03-18  Eli Zaretskii  <eliz@gnu.org>
+       * efaq-w32.texi: Remove outdated information and update.
 -2015-03-15  Martin Rudalics  <rudalics@gmx.at>
++2015-03-18  Martin Rudalics  <rudalics@gmx.at>
+       * efaq.texi (Fullscreen mode on MS-Windows): Fix description (Bug#20110).
 -2015-02-04  Kelvin White  <kwhite@gnu.org>
 +2015-03-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (External methods) <adb>: Explain, when Tramp
 +      connects to devices.  Mention port numbers.
 +      (GVFS based methods, File name completion): Add index.
 +      (Multi-hops, Remote Programs, File name completion, Ad-hoc multi-hops):
 +      Improve wording.
 +
 +      * trampver.texi: Update release number.
 +
 +2015-03-03  Kelvin White  <kwhite@gnu.org>
  
        * erc.texi (Advanced Usage, Options): Add descriptions and examples
        for erc-format-nick-function and erc-rename-buffers options.
-       (Connecting): fix typo
+       (Connecting): Fix typo
  
 -2014-12-29  Michael Albinus  <michael.albinus@gmx.de>
 +2015-03-02  Daniel Colascione  <dancol@dancol.org>
  
 -      Sync with Tramp 2.2.11.
 +      * cl.texi (Iteration Clauses): Mention iterator support.
 +
 +2015-02-25  Tassilo Horn  <tsdh@gnu.org>
 +
 +      * reftex.texi (Multifile Documents): Document
 +      reftex-include-file-commands.
 +      (Options): Mention that non-customize changes might require
 +      calling reftex-compile-variables.
 +
 +2015-02-21  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * texinfo.tex: Update from gnulib.
 +
 +2015-02-10  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eww.texi (Basics): Mention eww-toggle-fonts.
 +
 +2015-02-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * auth.texi (Multiple GMail accounts with Gnus): Markup fix.
 +
 +2015-02-05  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * auth.texi (Multiple GMail accounts with Gnus): Add FAQ.
 +
 +2015-02-05  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Using IMAP): Fix menu node name.
 +
 +2015-02-05  Trevor Murphy  <trevor.m.murphy@gmail.com>
 +
 +      * gnus.texi (Support for IMAP Extensions): Document the Gmail label
 +      extension.
 +
 +2015-02-04  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * texinfo.tex: Update from gnulib.
  
 +2015-01-23  Thomas Fitzsimmons  <fitzsim@fitzsim.org>
 +
 +      * eudc.texi (LDAP Configuration): Rename from LDAP Requirements
 +      and provide configuration examples.
 +
 +2015-01-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eieio.texi (Slot Options): Document :protection as unsupported.
 +
 +2015-01-01  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Sync with Tramp 2.2.11.
        * trampver.texi: Update release number.
  
 -2014-11-10  Tassilo Horn  <tsdh@gnu.org>
 +2014-12-31  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * gnus.texi (HTML): Update section so that it mentions shr and w3m.
 -      Also link the full EWW manual that explains more on shr, too.
 +      Less 'make' chatter for Emacs doc
 +      * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_GEN, am__v_GEN_)
 +      (am__v_GEN_0, am__v_GEN_1): New macros, from ../../src/Makefile.in.
 +      (ENVADD, $(buildinfodir)/%.info, %.html, ${buildinfodir}/ccmode.info)
 +      (${buildinfodir}/efaq%.info, efaq%.html):
 +      Use them.
  
 -      * gnus-faq.texi (FAQ 4 - Reading messages, FAQ 4-16): Add Q&A on how to
 -      increase contrast when displaying HTML mail with shr.
 +2014-12-31  Filipp Gunbin  <fgunbin@fastmail.fm>
 +
 +      * info.texi (Create Info buffer): Mention info-display-manual prefix.
 +
 +2014-12-29  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * efaq.texi (Displaying the current file name in the titlebar):
 +      Prefer (system-name) to system-name.
 +      * smtpmail.texi (Server workarounds): Fix grammar.
 +
 +2014-12-18  Eric Abrahamsen  <eric@ericabrahamsen.net>
 +
 +      * gnus.texi (Gnus Registry Setup): Explain pruning changes.
 +      Mention gnus-registry-prune-factor. Explain sorting changes and
 +      gnus-registry-default-sort-function. Correct file extension.
 +
 +2014-12-17  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (About This Manual): Update instructions
 +      for building the manual.
 +
 +2014-12-15  Alan Mackenzie  <acm@muc.de>
 +
 +      "Advice" is a mass noun.  Amend text accordingly.
 +      * cl.texi (Obsolete Macros): Replace "an advice" with "advice".
 +
 +2014-12-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * texinfo.tex: Update from gnulib.
 +
 +2014-12-08  Andrey Kotlarski  <m00naticus@gmail.com>
 +
 +      * eww.texi (Basics): Document managing multiple eww buffers.
 +
 +2014-12-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eww.texi (Basics): Document eww PDF viewing.
 +
 +2014-11-23  Ivan Shmakov  <ivan@siamics.net>
 +
 +      * eww.texi (Advanced): Mention the Desktop stuff (bug#18010).
 +
 +2014-11-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Remote processes): Let-bind environment variables to
 +      `process-environment' when running `process-file' or
 +      `start-file-process'.
 +
 +2014-11-19  Ivan Shmakov  <ivan@siamics.net>
 +
 +      * eww.texi (Basics): Document `eww-history-limit'.
 +
 +2014-11-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * org.texi (The date/time prompt, Matching tags and properties):
 +      Use leading zero with 24-hour times less than 10:00.
 +
 +2014-11-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eww.texi (Variable Index): Mention `eww-after-render-hook'.
 +
 +2014-11-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eww.texi (Basics): Document `eww-readable'.
 +
 +2014-11-10  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (Top): Add missing `HTML' menu.
 +      (HTML): Fix xref to FAQ 4-16.
  
  2014-11-09  Glenn Morris  <rgm@gnu.org>
  
        (clean): No longer delete dist tarfile.
        (dist): Remove rule; replace with code in admin.el.
  
 -2014-11-08  Michael Albinus  <michael.albinus@gmx.de>
 +2014-11-08  Glenn Morris  <rgm@gnu.org>
  
 -      Backport Tramp changes from trunk.
 +      * Makefile.in (${buildinfodir}/ccmode.info)
 +      (${buildinfodir}/efaq%.info): Ensure output directory exists.
  
 -      * tramp.texi (Inline methods): Remove restriction on "telnet".
 -      Recommend sharing ssh connections for "plink".
 -      (External methods): Remove "sftp".  Merge "pscp" and "psftp"
 -      descriptions.  Recommend sharing ssh connections.  Add "nc" method.
 -      (GVFS based methods): Add "sftp".
 -      (Customizing Completion, External packages, Issues): Use @dots{}.
 -      (Remote shell setup): Explain, how to change command line
 -      arguments of remote "nc" listener.
 +2014-11-07  Tassilo Horn  <tsdh@gnu.org>
  
 -      * trampver.texi: Update release number.
 +      * gnus.texi (HTML): Update section so that it mentions shr and w3m.
 +      Also link the full EWW manual that explains more on shr, too.
  
 -2014-11-07  Tassilo Horn  <tsdh@gnu.org>
 +      * gnus-faq.texi (FAQ 4 - Reading messages, FAQ 4-16): Add Q&A on how to
 +      increase contrast when displaying HTML mail with shr.
  
        * eww.texi (Advanced): Document increasing contrast with
        shr-color-visible-distance-min and
        shr-color-visible-luminance-min.
  
 -2014-10-31  Eric S. Raymond  <esr@thyrsus.com>
 +2014-11-02  Teodor Zlatanov  <tzz@lifelogs.com>
  
 -      * efaq-w32.texi, gnus-coding.texi:
 -      Neutralize language specific to a repository type.
 +      * auth.texi (Help for users): Explain quoting rules better.
  
  2014-10-30  Glenn Morris  <rgm@gnu.org>
  
        * efaq.texi (Gnus does not work with NNTP): Remove; ancient.
  
 -2014-10-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2014-10-30  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * eieio.texi (Accessing Slots, CLOS compatibility): Adjust wording
        since `setf' is in core rather than in CL nowadays.
  
 -2014-10-20  Glenn Morris  <rgm@gnu.org>
 +2014-10-29  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * efaq.texi (Finding a package with particular functionality):
 -      Update example.
 -      * vip.texi: Mention this is obsolete.
 +      Simplify use of current-time and friends.
 +      * org.texi (Dynamic blocks): Omit unnecessary call to current-time
 +      in example.
 +
 +2014-10-28  Christopher Schmidt  <ch@ristopher.com>
 +
 +      * calc.texi (Quick Calculator): Mention prefix argument of
 +      `quick-calc'.
 +
 +2014-10-26  Eric S. Raymond  <esr@thyrsus.com>
 +
 +      * efaq-w32.texi: Neutralize language specific to a repository type.
 +
 +2014-10-25  Eric S. Raymond  <esr@thyrsus.com>
 +
 +      * gnus-coding.texi: Neutralize language specific to a repository type.
  
  2014-10-20  Glenn Morris  <rgm@gnu.org>
  
 -      * Version 24.4 released.
 +      * Merge in all changes up to 24.4 release.
  
  2014-10-13  Glenn Morris  <rgm@gnu.org>
  
        * Makefile.in (dist): Update for new output variables.
  
 +2014-10-08  Leo Liu  <sdl.web@gmail.com>
 +
 +      * cl.texi (Porting Common Lisp): Remove parse-integer.
 +
 +2014-10-06  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * newsticker.texi (Supported Formats): Fix order of subheading and
 +      itemize.
 +
  2014-10-04  Glenn Morris  <rgm@gnu.org>
  
        * vip.texi (Other Vi Commands): Markup fix.
  
 -2014-10-02  Bastien Guerry  <bzg@gnu.org>
 +2014-10-03  Bastien Guerry  <bzg@gnu.org>
  
 -      * org.texi (Key bindings and useful functions): Fix typo.  Use the
 -      correct function's name.
 +      * org.texi (Key bindings and useful functions): Fix typo.
 +      Use the correct function's name.
  
 -2014-10-02  Michael Brand  <michael.ch.brand@gmail.com>
 +2014-10-03  Michael Brand  <michael.ch.brand@gmail.com>
  
        * org.texi (Formula syntax for Calc): Add `f-1' to TBLFM example
        about `nan'.
  
 -2014-10-02  Nicolas Goaziou  <mail@nicolasgoaziou.fr>
 +2014-10-03  Nicolas Goaziou  <mail@nicolasgoaziou.fr>
  
        * org.texi (Export settings): Be more explicit about how output
        file name is built.
  
        * org.texi (Headings and sectioning structure): Document menus.
  
 -2014-10-02  Nicolas Goaziou  <n.goaziou@gmail.com>
 -
        * org.texi (Include files, Publishing options): Remove reference
 -      to inexistent variable.
 +      to nonexistent variable.
  
 -2014-07-25  Stephen Berman  <stephen.berman@gmx.net>
 +2014-10-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * erc.texi (Connecting): Remove stray "OA" that failed the manual
 +      build.
 +
 +2014-10-03  Kelvin White  <kwhite@gnu.org>
 +
 +      * erc.texi (Advanced Usage, Options): Add descriptions and examples
 +      for erc-format-nick-function and erc-rename-buffers options.
 +
 +2014-09-26  Leo Liu  <sdl.web@gmail.com>
 +
 +      * cl.texi (Predicates on Numbers): Document cl-digit-char-p.
 +      (Numerical Functions): Document cl-parse-integer.  (Bug#18557)
 +
 +2014-09-24  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * newsticker.texi: Reworked.  Document new treeview group
 +      commands.  Remove VERSION, UPDATED, use EMACSVER instead.
 +      Use term 'feed reader'.
 +
 +2014-09-04  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Less chatter in 'make' output.
 +      * Makefile.in (clean): Simplify, for shorter command line.
 +
 +2014-08-07  Reuben Thomas  <rrt@sc3d.org>
 +
 +      * ediff.texi (Merging and diff3): Don't mention lack of support
 +      for VMS diff, we no longer support VMS.
 +
 +2014-08-07  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Remote shell setup): Explain, how to change command
 +      line arguments of remote "nc" listener.
 +
 +2014-07-31  Tassilo Horn  <tsdh@gnu.org>
 +
 +      * gnus.texi (Group Parameters): Document that `gcc-self' may also be a
 +      list.
 +
 +2014-07-28  Stephen Berman  <stephen.berman@gmx.net>
  
        * todo-mode.texi (Marked Items): Correct omission of item deletion
        from commands applying to both todo and done items.
  
 -2014-07-04  Stephen Berman  <stephen.berman@gmx.net>
 +2014-07-18  Albert Krewinkel  <albert+gnus@zeitkraut.de>
 +
 +      * gnus.texi (Posting Styles): Document the possibility to perform
 +      string replacements when matching against headers.
 +
 +2014-07-09  Stephen Berman  <stephen.berman@gmx.net>
  
        * todo-mode.texi (Levels of Organization): Comment out statement
        that Emacs recognizes todo files by their extension, since this
        feature has been removed due to bug#17482.
  
 -2014-06-29  Glenn Morris  <rgm@gnu.org>
 +2014-07-03  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * trampver.texi: Update release number.
 +
 +2014-07-03  Glenn Morris  <rgm@gnu.org>
  
        * info.texi, mh-e.texi: "Online help" doesn't mean what it
        used to any more.
  
        * idlwave.texi (Introduction): Comment out dead http screenshot links.
  
 -2014-06-23  Leo Liu  <sdl.web@gmail.com>
 +2014-06-24  Leo Liu  <sdl.web@gmail.com>
  
 -      * dired-x.texi (Omitting Files in Dired, Omitting Variables): Fix
 -      key binding to dired-omit-mode.  (Bug#16354)
 +      * dired-x.texi (Omitting Files in Dired, Omitting Variables):
 +      Fix key binding to dired-omit-mode.  (Bug#16354)
  
 -2014-06-22  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-24  Eli Zaretskii  <eliz@gnu.org>
  
 -      * autotype.texi (Skeleton Language): Document the \n feature
 -      better.
 +      * autotype.texi (Skeleton Language): Document the \n feature better.
 +
 +2014-06-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (%.texi): Disable implicit rules.
 +
 +2014-06-22  Mario Lang  <mlang@delysid.org>
 +
 +      * srecode.texi (Base Arguments): The the -> to the.
 +
 +      * org.texi (Images in ODT export): The the -> the.
  
  2014-06-21  Eli Zaretskii  <eliz@gnu.org>
  
        * autotype.texi (Skeleton Language): Document the feature of \n
        when at eol.
  
 -2014-06-15  Michael Albinus  <michael.albinus@gmx.de>
 +2014-06-21  Michael Albinus  <michael.albinus@gmx.de>
  
        * dbus.texi (Type Conversion): Formatting edits in example.
  
 -2014-06-10  Glenn Morris  <rgm@gnu.org>
 +2014-06-15  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Sync with Tramp 2.2.10.
 +
 +      * tramp.texi (Inline methods): Remove restriction on "telnet".
 +      Recommend sharing ssh connections for "plink".
 +      (External methods): Remove "sftp".  Merge "pscp" and "psftp"
 +      descriptions.  Recommend sharing ssh connections.  Add "nc" method.
 +      (GVFS based methods): Add "sftp".
 +      (Customizing Completion, External packages, Issues):
 +      Use @dots{}.
 +
 +      * trampver.texi: Update release number.
 +
 +2014-06-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (bootstrap-clean): New.
 +
 +2014-06-12  Vincent Belaïche  <vincentb1@users.sourceforge.net>
 +
 +      * ses.texi: Adding documentation for SES local printer functions.
 +
 +2014-06-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in: Use GNU Make features to reduce duplication.
 +      (mkinfodir): Remove.
 +      (${buildinfodir}): Generate using an order-only prerequisite.
 +      (.dvi.ps): Replace with pattern rule.
 +      ($INFO_TARGETS): Mark as PHONY.
 +      (${buildinfodir}): New rule.
 +      (EXTRA_OPTS, need_emacsver, need_emacsver_prefix): New variables.
 +      (${buildinfodir}/%.info, %.dvi, %.pdf, %.html, %.ps):
 +      New pattern rules, replacing numerous previous explicit rules.
 +      (info_template): New definition.
 +      (gnus.dvi, gnus.pdf): Use distinct intermediate files.
 +      (mostlyclean): Adjust for above gnus change.
 +
 +2014-06-11  Glenn Morris  <rgm@gnu.org>
  
        * Makefile.in (INFO_INSTALL): Update for 2013-08-28 DOCMISC_W32 change.
  
 +2014-06-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (INFO_EXT): Remove and replace by ".info" throughout.
 +      (INFO_OPTS): Set directly rather than with configure.
 +
  2014-06-08  Karl Berry  <karl@gnu.org>
  
        * doc/info.texi (Help-^L): "mode line", "screenful",
        * todo-mode.texi (Moving and Deleting Items):
        * woman.texi (Navigation): Markup fixes re SPC, RET.
  
 -2014-05-24  Paul Eggert  <eggert@cs.ucla.edu>
 +2014-06-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * efaq.texi (Finding a package with particular functionality):
 +      Update example.
 +      * vip.texi: Mention this is obsolete.
 +
 +2014-05-27  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * texinfo.tex: Update from gnulib.
 +
 +2014-05-26  Paul Eggert  <eggert@cs.ucla.edu>
  
        Specify coding if Latin-1 Emacs would misinterpret (Bug#17575).
        * htmlfontify.texi, org.texi: Add "coding: utf-8".
  
 -2014-05-23  Stephen Berman  <stephen.berman@gmx.net>
 +2014-05-26  Stephen Berman  <stephen.berman@gmx.net>
  
        * todo-mode.texi: Update in light of changes due to bug#17482.
        Replace numerous mistaken uses of literal quotes with proper
        (Todo Mode Entry Points): Comment out reference to using find-file
        or Dired to visit Todo files, since this has been disabled (bug#17482).
  
 -2014-05-06  Michael Albinus  <michael.albinus@gmx.de>
 +2014-05-20  Leo Liu  <sdl.web@gmail.com>
 +
 +      * cl.texi (List Functions, Efficiency Concerns): Update cl-endp.
 +
 +2014-05-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * texinfo.tex: Update from gnulib.
 +
 +2014-05-08  Michael Albinus  <michael.albinus@gmx.de>
  
        * tramp.texi (Frequently Asked Questions): Mention HISTFILE
        setting in ~/.ssh/environment.
  
 -2014-05-02  Stephen Berman  <stephen.berman@gmx.net>
 +2014-05-04  Stephen Berman  <stephen.berman@gmx.net>
  
        * todo-mode.texi: Update, improve exposition, add cross
        references, fix typos.
        (Inserting New Items, Editing Item Headers and Text): Rewrite to
        document new user interface.
  
 -2014-05-01  Glenn Morris  <rgm@gnu.org>
 +2014-05-04  Glenn Morris  <rgm@gnu.org>
  
        * autotype.texi (Skeleton Language):
        * message.texi (Header Commands): Replace `iff'.
  
 +2014-05-02  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * vhdl-mode.texi: Add "@documentencoding UTF-8",
 +      since this is a toplevel .texi file.
 +
  2014-04-22  Bastien Guerry  <bzg@gnu.org>
  
        * org.texi (Installation): Be more clear on why installing Org
        * org.texi (Top, Exporting): Org has its own documentation and
        should therefore be removed from "Other build-in back-ends".
  
 +2014-04-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * cl.texi (Structures): Remove cl-struct-set-slot-value.
 +
 +2014-04-20  Daniel Colascione  <dancol@dancol.org>
 +
 +      * cl.texi (Declarations): Document changes to `cl-the' and defstruct functions.
 +
 +2014-04-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * Makefile.in (infoclean): Be consistent about reporting failures.
 +
 +2014-03-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (INFO_COMMON): Add vhdl-mode.
 +      (vhdl_mode_deps, vhdl-mode, $(buildinfodir)/vhdl-mode$(INFO_EXT))
 +      (vhdl-mode.dvi, vhdl-mode.pdf, vhdl-mode.html): New rules/variables.
 +
 +      * vhdl-mode.texi: General clean-up.  Set copyright to FSF, add license.
 +      Remove hand-written node pointers.  Remove info re old Emacs versions.
 +      Markup fixes.
 +      (Getting Connected): Remove irrelevant info.
 +      (Indentation Commands, Requirements): Remove empty/irrelevant nodes.
 +      (Frequently Asked Questions): Electric indent is now enabled.
 +
 +2014-03-27  Reto Zimmermann  <reto@gnu.org>
 +          Rod Whitby  <software.vhdl-mode@rwhitby.net>
 +
 +      * vhdl-mode.texi: New file, imported from upstream vhdl-mode.
 +
  2014-03-26  Paul Eggert  <eggert@cs.ucla.edu>
  
        * texinfo.tex: Update from gnulib.
  
 -2014-03-24  Michael Albinus  <michael.albinus@gmx.de>
 +2014-03-26  Michael Albinus  <michael.albinus@gmx.de>
  
        * tramp.texi (Frequently Asked Questions): Add fish shell settings.
  
 +2014-03-23  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (Ma Gnus): Mention header attachment buttons.
 +
 +2014-03-23  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * emacs-mime.texi (MML Definition): Document recipient-filename.
 +
 +2014-03-23  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (MIME Commands):
 +      Mention gnus-mime-buttonize-attachments-in-header and
 +      gnus-mime-display-attachment-buttons-in-header.
 +
 +2014-03-23  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * message.texi (Forwarding):
 +      Mention `message-forward-included-headers'.
 +
 +2014-03-23  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi: w3 is no longer supported by Gnus.
 +
 +2014-03-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * efaq.texi (Informational files for Emacs): Do not mention etc/GNU.
 +
  2014-03-21  Glenn Morris  <rgm@gnu.org>
  
        * ede.texi (ede-linux):
  2014-02-16  Michael Albinus  <michael.albinus@gmx.de>
  
        Sync with Tramp 2.2.9.
 -
        * trampver.texi: Update release number.
  
        * efaq-w32.texi (Tramp ssh): Remove also pscp1 and pscp2.
  
        * org.texi (Installation, Activation): Split from Installation and
        Activation.
 -      (Clocking work time): Documented new features.
 +      (Clocking work time): Document new features.
  
  2006-08-13  Alex Schroeder  <alex@gnu.org>
  
        * emacs-mime.texi (Flowed text): Add mm-fill-flowed.  (Sync
        2004-01-27 from the trunk).
  
 -2006-02-24  Alan Mackenzie  <bug-cc-mode@gnu.org>
 +2006-02-24  Alan Mackenzie  <acm@muc.de>
  
        * cc-mode.texi: Rename c-hungry-backspace to
        c-hungry-delete-backwards, at the request of RMS.  Leave the old
        name as an alias.
  
 -2006-02-24  Alan Mackenzie  <bug-cc-mode@gnu.org>
 +2006-02-24  Alan Mackenzie  <acm@muc.de>
  
        * cc-mode.texi: Correct the definition of c-beginning-of-defun, to
        include the function header within the defun.
  
 -2006-02-24  Alan Mackenzie  <bug-cc-mode@gnu.org>
 +2006-02-24  Alan Mackenzie  <acm@muc.de>
  
        * cc-mode.texi: Correct two typos.
  
 -2006-02-24  Alan Mackenzie  <bug-cc-mode@gnu.org>
 +2006-02-24  Alan Mackenzie  <acm@muc.de>
  
        * cc-mode.texi (Comment Commands): State that C-u M-; kills any
        existing comment.
        (MIME with Emacs mail packages): Delete section about the Emacs
        MIME FAQ (it's not reachable anymore).
  
 -2005-12-08  Alan Mackenzie  <bug-cc-mode@gnu.org>
 +2005-12-08  Alan Mackenzie  <acm@muc.de>
  
        * cc-mode.texi: The manual has been extensively revised: the
        information about using CC Mode has been separated from the larger
  
  2005-10-10  Carsten Dominik  <dominik@science.uva.nl>
  
 -      * org.texi (Workflow states): Documented that change in keywords
 +      * org.texi (Workflow states): Document that change in keywords
        becomes active only after restart of Emacs.
  
  2005-10-08  Michael Albinus  <michael.albinus@gmx.de>
  
        * Makefile.in (../info/tramp, tramp.dvi): Depend on trampver.texi.
  
 -2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>
 +2004-08-11  Martin Stjernholm  <mast@lysator.liu.se>
  
        * cc-mode.texi: Various updates for CC Mode 5.30.9.
  
  
        * eshell.texi (Known Problems): Add doc item.
  
 -2003-11-22  Martin Stjernholm  <bug-cc-mode@gnu.org>
 +2003-11-22  Martin Stjernholm  <mast@lysator.liu.se>
  
        * cc-mode.texi: Update for CC Mode 5.30.
  
diff --combined doc/misc/efaq-w32.texi
index 9691a731123153c116d9f1bd95469584cebd027a,3ef8d154e8a39ba30ec44ba8ea1e25b920b1acae..d95fa7e4790a0853d296e6af6a49af71c6d7a0da
@@@ -1,5 -1,5 +1,5 @@@
  \input texinfo    @c -*-coding:utf-8 -*-
 -@setfilename efaq-w32
 +@setfilename ../../info/efaq-w32.info
  @settitle GNU Emacs FAQ For MS Windows
  @setchapternewpage odd
  @syncodeindex pg cp
@@@ -128,10 -128,12 +128,12 @@@ systems
  @cindex supported versions of Windows
  
  Emacs @value{EMACSVER} is known to run on all versions of Windows from
- @c FIXME does it really still support Windows 98?  Does it matter?
- Windows 98 and Windows NT 4.0 through to Windows 7.  The Windows port is
- built using the Win32 API and supports most features of the X version,
- including variable width fonts, images and tooltips.
+ Windows 98 and Windows NT 4.0 through to Windows 8.1.  The Windows
+ port is built using the Win32 API and supports most features of the X
+ version, including variable width fonts, images and tooltips.
+ Emacs on Windows can be compiled as either a 32-bit or a 64-bit
+ executable, using the MinGW GCC compiler and development tools.
  
  @node Other versions of Emacs
  @section What other versions of Emacs run on Windows?
@@@ -163,10 -165,12 +165,12 @@@ instructions (requires DJGPP)
  @cindex where to get Emacs binaries
  Pre-compiled versions are distributed from
  @uref{http://ftpmirror.gnu.org/emacs/windows/, ftp.gnu.org mirrors}.
- Emacs binaries are distributed as zip files, digitally
- signed by the developer who built them.  Generally most users will
- want the file @file{emacs-@value{EMACSVER}-bin-i386.zip}, which
- contains everything you need to get started.
+ Emacs binaries are distributed as zip files, digitally signed by the
+ developer who built them.  Generally most users will want the file
+ @file{emacs-@value{EMACSVER}-bin-i686-pc-mingw.zip} for the 32-bit
+ build, and @file{emacs-@value{EMACSVER}-bin-x86_64-w64-mingw32.zip}
+ for the 64-bit build.  The zip archive contains everything you need to
+ get started.
  
  @cindex where to get sources
  @cindex Emacs source code
@@@ -187,17 -191,18 +191,18 @@@ development site
  @section How can I compile Emacs myself?
  @cindex compiling Emacs
  
- To compile Emacs on Windows, you will need the MingW or Cygwin port of
- GCC with MingW make, or a Microsoft C compiler with nmake and the
- single threaded C runtime library.  Recent versions of Microsoft
- Visual Studio no longer come with the single threaded C runtime
- library, which is required for certain POSIX compatibility, so MingW
- is usually the best choice.  Image support requires external
- libraries, the headers and import libraries for which will need to be
- installed where your compiler can find them.  You will also need ports
- of GNU @command{rm} and @command{cp}, as the Windows native
- equivalents are not consistent between versions.  GNU texinfo will be
- required to build the manuals.  @xref{Other useful ports}.
+ To compile Emacs on Windows, you will need the MinGW port of GCC and
+ Binutils, the MinGW runtime and development environment, and the MSYS
+ suite of tools.  For the details, see the file @file{nt/INSTALL} in
+ the Emacs source distribution.
+ Support for displaying images, as well as XML/HTML rendering and TLS
+ networking requires external libraries, the headers and import
+ libraries for which will need to be installed where your compiler can
+ find them.  Again, the details, including URLs of sites where you can
+ download these libraries are in @file{nt/INSTALL}.  @xref{Other useful
+ ports}, for auxiliary tools you may wish to install and use in
+ conjunction with Emacs.
  
  After unpacking the source, or checking out of the repository, be sure
  to read the instructions in @file{nt/README} and @file{nt/INSTALL}.
  By default, Emacs is compiled with debugging on, and optimizations enabled.
  The optimizations may interfere with some types of debugging; the debugger
  may not show clearly where it is, or may not be able to inspect certain
- variables.  If this is the case, reconfigure with @option{--no-opt}.
+ variables.  If this is the case, reconfigure with @kbd{CFLAGS='-O0 -g3'}
  
  The file @file{etc/DEBUG} contains general debugging hints, as well as
- specific notes about debugging Emacs with both gdb and Microsoft debuggers.
- @menu
- * GDB::
- * Microsoft Developer Studio::
- @end menu
+ specific notes about debugging Emacs.
  
- @node GDB
- @subsection GDB
- @cindex GDB, debugging Emacs with
  @cindex debugging Emacs with GDB
  GDB is the GNU debugger, which can be used to debug Emacs when it has
- been compiled with GCC.  The best results will be obtained if you
- start gdb from the @file{src} directory as @samp{gdb oo/i386/emacs.exe}.
- This will load the init file @file{.gdbinit} in that directory, to
- define some extra commands for working with lisp while debugging, and
- set up breakpoints to catch abnormal aborts.
- @node Microsoft Developer Studio
- @subsection Microsoft Developer Studio
- @cindex MSVC++, debugging Emacs with
- @cindex DevStudio, debugging Emacs with
- @cindex debugging Emacs with MS DevStudio
- MS DevStudio can be used to debug Emacs when it has been compiled with
- a Microsoft compiler.  To view lisp variables, you can call the
- function @code{debug_print} from the Quickwatch window.  Some
- @uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/debug.txt,
- old tips} are probably still valid.
+ been compiled with MinGW GCC.  The best results will be obtained if
+ you start gdb from the @file{src} directory as @kbd{gdb ./emacs.exe}.
+ This will load the init file @file{.gdbinit}@footnote{
+ Latest versions of GDB might refuse to load the init file for security
+ reasons, unless you customize GDB; alternatively, use an explicit
+ @kbd{source ./gdbinit} command after entering GDB.
+ } in that directory, to define some extra commands for working with
+ lisp while debugging, and set up breakpoints to catch abnormal
+ aborts.
+ A Windows port of GDB can be found on MinGW download sites and on some
+ others.
  
  @c ------------------------------------------------------------
  @node Installing Emacs
  
  @menu
  * Unpacking::
- * Installing::
+ * Installing binaries::
  * Image support::
  * Init file::
  * Location of init file::
  The binary distributions are distributed as zip files, which are handled
  natively by Windows XP and later.  For earlier versions, there are many
  tools that can handle the zip format, from InfoZip's command line unzip
- tool, to 7zip's multi-format graphical archive explorer.  Although
+ tool, to 7zip's multi-format graphical archive explorer.  (Although
  popular, WinZip has caused problems with line-ends in the past, and is not
- Free software, so we do not recommend it.
+ Free software, so we do not recommend it.)
  
- Source distributions are distributed as gzipped tar files.  7zip and
- similar multi-format graphical tools can handle these, or you can get
- Windows ports of the command line gzip and tar tools from multiple sources.
+ Source distributions are distributed as @file{.tar.gz} or
+ @file{.tar.xz} files.  7zip and similar multi-format graphical tools
+ can handle these, or you can get Windows ports of the command line
+ gzip and tar tools from multiple sources, or use @command{bsdtar}.
  @xref{Other useful ports}.
  
  The command to unpack a source distribution from the command line is:
  @example
  tar xzf emacs-@value{EMACSVER}.tar.gz
  @end example
  
  If this does not work with the versions of tar and gzip that you have,
  you may need to try a two step process:
  @example
- gzip -dc emacs-@value{EMACSVER}.tar.gz | tar xvf -
+ gzip -dc emacs-@value{EMACSVER}.tar.gz | tar xf -
  @end example
  
  You may see many messages from tar complaining about being unable to change
@@@ -304,8 -298,21 +298,21 @@@ the modification time on directories, a
  broken pipe.  These messages are usually harmless, caused by incomplete ports
  that are not fully aware of the limitations of Windows.
  
- @node Installing
- @section How do I install Emacs after unpacking?
+ And here's an example of using @command{bsdtar} (from the
+ @samp{libarchive} package) to unpack a @file{.tar.xz} archive:
+ @example
+ bsdtar -xf emacs-@value{EMACSVER}.tar.xz
+ @end example
+ Expect @command{bsdtar} to unpack the whole distribution without any
+ complaints.
+ Once you unpack the source distribution, look in @file{nt/INSTALL}
+ file for build instructions.
+ @node Installing binaries
+ @section How do I install Emacs after unpacking the binary zip?
  @cindex installing Emacs
  @pindex addpm
  @cindex Start Menu, creating icons for Emacs
  You can run Emacs without any extra steps, but if you want icons in your
  Start Menu, or for Emacs to detect the image libraries that are already
  installed on your system as part of GTK, then you should run the program
- @file{emacs-@value{EMACSVER}\bin\addpm.exe}.
+ @file{addpm.exe}, which is usually installed into the same @file{bin}
+ directory with @file{emacs.exe}.
  
  @node Image support
  @section How do I get image support?
  @cindex gif, installing image support in Emacs
  @cindex tiff, installing image support in Emacs
  @cindex xpm, installing image support in Emacs
+ @cindex rsvg, installing image support in Emacs
  @cindex toolbar, installing color icons in
  @cindex color images, installing support for images in Emacs
  @cindex monochrome images, getting color images in Emacs
  
  Emacs has built in support for XBM and PBM/PGM/PPM images.  This is
  sufficient to see the monochrome splash screen and tool-bar icons.
- Since 22.2, the official precompiled binaries for Windows have bundled
+ Since v22.2, the official precompiled binaries for Windows have bundled
  libXpm, which is required to display the color versions of those images.
  
- Emacs is compiled to recognize JPEG, PNG, GIF and TIFF images also,
- but displaying these image types require external DLLs which are not
- bundled with Emacs.  @xref{Other useful ports}.
+ Emacs is compiled to recognize JPEG, PNG, GIF, TIFF, and RSVG images
+ also, but displaying these image types require external DLLs which are
not bundled with Emacs.  @xref{Other useful ports}.
  
  @node Init file
  @section What is my init file?
  
  When Emacs starts up, it attempts to load and execute the contents of
  a file commonly called @file{.emacs} (though it may have other names,
- @pxref{Installing Emacs,,Where do I put my init file?}) which contains any
- customizations you have made.  You can manually add lisp code to your
.emacs, or you can use the Customization interface accessible from the
- @emph{Options} menu.  If the file does not exist, Emacs will start
- with the default settings.
+ @pxref{Location of init file,,Where do I put my init file?}) which
+ contains any customizations you have made.  You can manually add lisp
code to your .emacs, or you can use the Customization interface
+ accessible from the @emph{Options} menu.  If the file does not exist,
Emacs will start with the default settings.
  
  @node Location of init file
  @section Where do I put my init file?
  @cindex init.el
  @cindex registry, setting the HOME directory in
  
- On Windows, the .emacs file may be called _emacs for backward
- compatibility with DOS and FAT filesystems where filenames could not
- start with a dot.  Some users prefer to continue using such a name,
- because Explorer cannot create a file with a name starting with a dot,
- even though the filesystem and most other programs can handle it.
- In Emacs 22 and later, the init file may also be called
- @file{.emacs.d/init.el}.  Many of the other files that are created
- by lisp packages are now stored in the @file{.emacs.d} directory too,
so this keeps all your Emacs related files in one place.
+ On Windows, the @file{.emacs} file may be called @file{_emacs} for
+ backward compatibility with DOS and FAT filesystems where filenames
+ could not start with a dot.  Some users prefer to continue using such
+ a name due to historical problems various Windows tools had in the
+ past with file names that begin with a dot.  In Emacs 22 and later,
+ the init file may also be called @file{.emacs.d/init.el}.  Many of the
+ other files that are created by lisp packages are now stored in the
+ @file{.emacs.d} directory too, so this keeps all your Emacs related
+ files in one place.
  
  All the files mentioned above should go in your @env{HOME} directory.
  The @env{HOME} directory is determined by following the steps below:
@@@ -387,14 -396,14 +396,14 @@@ backward compatibility, as previous ver
  if @env{HOME} was not set.
  @item
  Use the user's AppData directory, usually a directory called
- @file{Application Data} under the user's profile directory, the location
+ @file{AppData} under the user's profile directory, the location
  of which varies according to Windows version and whether the computer is
  part of a domain.
  @end enumerate
  
  Within Emacs, @key{~} at the beginning of a file name is expanded to your
- @env{HOME} directory, so you can always find your .emacs file with
- @kbd{C-x C-f ~/.emacs}.
+ @env{HOME} directory, so you can always find your @file{.emacs} file
by typing the command @kbd{C-x C-f ~/.emacs}.
  
  @node Troubleshooting init file
  @section Troubleshooting init file problems
@@@ -409,15 -418,16 +418,16 @@@ to.  You can do this by evaluating the 
  @file{*scratch*} buffer using @kbd{C-x C-e}:
  
  @example
- (insert (getenv "HOME"))
+ (getenv "HOME")
  @end example
  
- Look carefully at what is printed and make sure the value is
- valid.  For example, if the value has trailing whitespace, Emacs won't
- be able to find the directory.  Also, be sure that the value isn't a
- relative drive letter (e.g., @file{d:} without a backslash); if it is,
- then @env{HOME} is going to be whatever the current directory on that
- drive is, which is likely not what you want to happen.
+ Look carefully at what is printed in the echo area, and make sure the
+ value is valid.  For example, if the value has trailing whitespace,
+ Emacs won't be able to find the directory.  Also, be sure that the
+ value isn't a relative drive letter (e.g., @file{d:} without a
+ backslash or a forward slash after the colon); if it is, then
+ @env{HOME} is going to be whatever the current directory on that drive
+ is, which is likely not what you want to happen.
  
  @node Associate files with Emacs
  @section How do I associate files with Emacs?
@@@ -488,9 -498,9 +498,9 @@@ Thanks to Jason Rumney and Sigbjorn Fin
  
  The location of the Desktop varies between different versions of
  Windows, and in a corporate environment can be moved around by the
- network administrator.  On NT derivatives, you can use the value of
- the @env{USERPROFILE} environment variable to find where the desktop
- might be:
+ network administrator.  On latest Windows versions, you can use the
+ value of the @env{USERPROFILE} environment variable to find where the
desktop might be:
  
  @example
  @kbd{C-x C-f $USERPROFILE/Desktop}
@@@ -512,7 -522,7 +522,7 @@@ menu by default).  Once you have a fil
  @end menu
  
  @node Focus follows mouse
- @subsection How do it make the active window follow the mouse?
+ @subsection How do I make the active window follow the mouse?
  @vindex focus-follows-mouse
  @cindex point to focus
  @cindex mouse over to focus
@@@ -524,6 -534,11 +534,11 @@@ even though Windows has a click to focu
  software available to change that though).  The latter can be used to
  make Emacs use a focus-follow-mouse policy within its own frames.
  
+ You can also change the Windows click-to-focus policy by changing
+ settings in the Registry.  The details vary according to your Windows
+ version; look on the Internet for instructions to enable ``active
+ window tracking'' for your version of Windows.
  @node Swap CapsLock and Control
  @subsection How do I swap CapsLock and Control?
  @cindex scan codes, modifying
@@@ -576,7 -591,7 +591,7 @@@ Date: 04 Dec 1996 14:36:21 -060
  Message-ID: <fawg21mm4hm.fsf@@mordor.rsn.hp.com>
  Subject: Re: Re[2]: problem with caps/ctrl swap on NT 4.0
  @end ignore
- @example
+ @smallexample
  It's a binary value that lets you map keystrokes in the low-level keyboard
  drivers in NT.  As a result you don't have to worry about applications
  bypassing mappings that you've done at a higher level (i.e. it just works).
@@@ -600,7 -615,7 +615,7 @@@ lock key will behave as caps-lock.  To 
  
  This registry value is system wide, and can't be made user-specific.  It
  also only takes affect on reboot.
- @end example
+ @end smallexample
  @item
  Ulfar Erlingsson has provided a registry file that sets the CapsLock key
  to be a Control key and the Windows key to be an Alt key:
@@@ -663,7 -678,8 +678,8 @@@ buffers etc. will instead act on the re
  to be reactivated to operate on it, unless @code{mark-even-if-inactive}
  is set.  Secondly, @code{transient-mark-mode} also highlights the
  region when it is active, providing the same visual clue that you get
- in other programs.
+ in other programs.  This mode is turned on by default in latest
+ versions of Emacs.
  
  In addition to seeing the highlighting, new Emacs users often expect
  editing commands to replace the region when it is active.  This behavior
@@@ -717,14 -733,16 +733,16 @@@ message as documented in Microsoft's AP
  @cindex delete Emacs directory
  
  Emacs does not come with an uninstall program.  No files are installed
- outside of the Emacs base directory, so deleting that directory is
- sufficient to clean away the files.  If you ran @command{addpm},
- you'll need to delete the Start Menu group too.  The registry entries
- inserted by @command{addpm} will not cause any problems if you leave
- them there, but for the sake of completeness, you can use @command{regedit}
- to remove the keys under @code{HKEY_LOCAL_MACHINE} orx
- @code{HKEY_CURRENT_USER}: @code{SOFTWARE\GNU\Emacs}, and the key
- @code{HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\emacs.exe} if it exists.
+ outside of the directories you find in the binary zip archive, so
+ deleting those directories is sufficient to clean away the files.  If
+ you ran @command{addpm}, you'll need to delete the Start Menu group
+ too.  The registry entries inserted by @command{addpm} will not cause
+ any problems if you leave them there, but for the sake of
+ completeness, you can use @command{regedit} to remove the keys under
+ @code{HKEY_LOCAL_MACHINE} or @code{HKEY_CURRENT_USER}:
+ @code{SOFTWARE\GNU\Emacs}, and the key
+ @code{HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App
+ Paths\emacs.exe} if it exists.
  
  @node Does not run
  @section When I run Emacs nothing happens
@@@ -751,9 -769,10 +769,10 @@@ been truncated to CONTRIBU or CONTRI~1
  corrupted while unpacking and Emacs will not start.
  @end enumerate
  
- If it is still not working, send mail to the list, describing what
- you've done, and what you are seeing. (The more information you send
- the more likely it is that you'll receive a helpful response..
+ If it is still not working, send mail to the
+ @email{help-gnu-emacs@@gnu.org} mailing list, describing what you've
+ done, and what you are seeing. (The more information you send the more
+ likely it is that you'll receive a helpful response.)
  
  @node Virus
  @section Does Emacs contain a virus?
@@@ -880,7 -899,6 +899,6 @@@ The doc string contains a list of the s
  * Font names::
  * Bold and italic::
  * Multilingual fonts::
- * BDF fonts::
  * Font menu::
  * Line ends::
  @end menu
@@@ -910,9 -928,9 +928,9 @@@ an indication of whether the font is ou
  based when fonts are listed, which may let you differentiate between two
  fonts with the same name and different technologies.
  
- From Emacs 23, the preferred font name format will be moving to the simpler
- and more flexible fontconfig format.  XLFD names will continue to be
- supported for backward compatibility.
+ Starting with Emacs 23, the preferred font name format will be moving
+ to the simpler and more flexible fontconfig format.  XLFD names will
continue to be supported for backward compatibility.
  
  @example
  XLFD: -*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-1
@@@ -959,6 -977,9 +977,9 @@@ and manually set the font for italic, b
  (set-face-font 'bold-italic "-*-Courier New-bold-i-*-*-11-*-*-*-c-*-iso8859-1")
  @end example
  
+ The @code{w32-enable-synthesized-fonts} variable is obsolete starting
+ from Emacs 24.4, as Emacs no longer has this limitation.
  @node Multilingual fonts
  @section Multilingual font support
  @cindex multilingual display, fonts
@@@ -985,11 -1006,8 +1006,8 @@@ require the BDF fonts from the GNU intl
  
  For many languages, native truetype fonts are sufficient, and in Emacs
  23 the need for BDF fonts will disappear for almost all languages.  At
- the time of writing, some Arabic characters in the HELLO file still do
- not display with native fonts, because they are pre-composed characters
- from MULE character sets rather than standard Unicode Arabic, but all
- other characters are able to be displayed with appropriate truetype or
- opentype fonts.
+ the time of writing, all supported characters are able to be displayed
+ with appropriate truetype or opentype fonts.
  
  @node Non-latin display
  @subsection How do I get Emacs to display non-latin characters?
@@@ -1025,6 -1043,12 +1043,12 @@@ new fontset with @code{create-fontset-f
   chinese-big5-2:-*-MingLiU-normal-r-*-*-12-*-*-*-c-*-big5-*" t)
  @end example
  
+ Alternatively, you can augment the default fontset with information of
+ which fonts to use for certain ranges of characters or for specific
+ scripts/character sets.  @xref{Modifying Fontsets,, Modifying
+ Fontsets, emacs, The GNU Emacs Manual}, for details and some useful
+ examples.
  @node International fonts
  @subsection Where can I find fonts for other languages?
  @cindex language support, finding fonts
  In addition to the wide range of fonts that come with the language
  support packages of various components of Windows itself, GNU/Linux
  distributions these days come with a number of Free truetype fonts
- that cover a wide range of languages.  The GNU intlfonts source
- distribution contains BDF fonts covering all of the languages that can
- be displayed by Emacs 22, and can be downloaded from
@uref{http://ftpmirror.gnu.org/intlfonts, ftp.gnu.org mirrors}.
+ that cover a wide range of languages.  The GNU Unifont project
+ contains glyphs for most of the Unicode codespace, and can be
+ downloaded from @uref{http://ftpmirror.gnu.org/unifont, ftp.gnu.org
+ mirrors}.
  
  @node Third-party multibyte
  @subsection How do I use third party programs to display multibyte characters?
@@@ -1058,12 -1082,6 +1082,6 @@@ for that language, but the third party 
  and using a different font behind the scenes).
  @xref{Non-latin display}.
  
- In addition to defining a fontset with the expected font, you may also need
- to disable unicode output with:
- @example
- (setq w32-enable-unicode-output nil)
- @end example
  @node Localized fonts
  @subsection Can I use a font with a name in my language?
  @cindex fonts, localized font names
@@@ -1073,87 -1091,9 +1091,9 @@@ Normally Emacs should initialize @code{
  based on your locale, which will let Emacs use font names in your local
  language successfully.
  
- @node BDF fonts
- @section How do I use bdf fonts with Emacs?
- @cindex BDF fonts, using
- @cindex GNU intlfonts, using
- @cindex intlfonts, using
- @vindex w32-bdf-filename-alist
- @vindex bdf-directory-alist
- @vindex font-encoding-alist
- @findex w32-find-bdf-fonts
- @findex set-frame-font
- To use bdf fonts with Emacs, you need to tell Emacs where the fonts
- are located, create fontsets for them, and then use them.  We'll use
- the 16 dot international fonts from @uref{http://ftpmirror.gnu.org/intlfonts,
- ftp.gnu.org/gnu/intlfonts} as an
- example put together by Jason Rumney.
- Download @file{16dots.tar.gz} and unpack it; I'll assume that they are in
- @file{c:\intlfonts}.  Then set @code{w32-bdf-filename-alist} to the list of
- fonts returned by using @code{w32-find-bdf-fonts} to enumerate all of
- the font files.  It is a good idea to set the variable
- @code{bdf-directory-list} at the same time so @code{ps-print} knows where
- to find the fonts:
- @example
- (setq bdf-directory-list
-       '("c:/intlfonts/Asian" "c:/intlfonts/Chinese"
-         "c:/intlfonts/Chinese-X" "c:/intlfonts/Ethiopic"
-       "c:/intlfonts/European" "c:/intlfonts/Japanese"
-         "c:/intlfonts/Japanese-X" "c:/intlfonts/Korean-X"
-       "c:/intlfonts/Misc/"))
- (setq w32-bdf-filename-alist (w32-find-bdf-fonts bdf-directory-list))
- @end example
- Then create fontsets for the BDF fonts:
- @example
- (create-fontset-from-fontset-spec
-  "-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf,
- japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*,
- katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
- latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
- japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*,
- thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1,
- lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1,
- tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1,
- ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode,
- tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0")
- @end example
- Many of the international bdf fonts from gnu.org are type 0, and therefore
- need to be added to font-encoding-alist:
- @example
- ;; Need to add some fonts to font-encoding-alist since the bdf fonts
- ;; are type 0 not the default type 1.
- (setq font-encoding-alist
-       (append '(("MuleTibetan-0" (tibetan . 0))
-                 ("GB2312"        (chinese-gb2312 . 0))
-                 ("JISX0208"      (japanese-jisx0208 . 0))
-                 ("JISX0212"      (japanese-jisx0212 . 0))
-                 ("VISCII"        (vietnamese-viscii-lower . 0))
-                 ("KSC5601"       (korean-ksc5601 . 0))
-                 ("MuleArabic-0"  (arabic-digit . 0))
-                 ("MuleArabic-1"  (arabic-1-column . 0))
-                 ("MuleArabic-2"  (arabic-2-column . 0))) font-encoding-alist))
- @end example
- You can now use the Emacs font menu (@pxref{Fonts and text
- translation,,How can I have Emacs use a font menu like on X?}) to
- select the @emph{bdf: 16-dot medium} fontset, or you can select it by
- setting the default font:
- @example
-     (set-frame-font "fontset-bdf")
- @end example
- Try loading the file @file{etc/HELLO}, and you should be able to see the
- various international fonts displayed (except for Hindi, which is not
- included in the 16-dot font distribution).
+ @c This feature disappeared in Emacs 23, but I'm keeping its
+ @c description here, since I think it was a mistake to remove it, and
+ @c resurrecting it doesn't sound too problematic.
  @node Font menu
  @section How can I have Emacs use a font menu like on X?
  @cindex fonts, displaying a menu
@@@ -1171,6 -1111,8 +1111,8 @@@ Place the following in your init file
  * Add fonts to menu::
  @end menu
  
+ @c This variable still exists, but will have no effect until
+ @c w32-use-w32-font-dialog support is resurrected, see above.
  @node Add fonts to menu
  @subsection How can I add my font to the font menu?
  @cindex font menu, adding fonts
@@@ -1204,7 -1146,6 +1146,6 @@@ this collection of email messages} on t
  
  @menu
  * Automatic line ends::
- * Line ends by filename::
  * Line ends by file system::
  @end menu
  
@@@ -1220,19 -1161,6 +1161,6 @@@ file in Unix (LF) mode with the Ctrl-M 
  It does this to be safe, as no data loss will occur if the file is really
  binary and the Ctrl-M characters are significant.
  
- @node Line ends by filename
- @subsection CR/LF translation by file extension
- @cindex line ends, determining by filename
- @cindex binary files, determining by file name
- @vindex file-name-buffer-file-type-alist
- The variable @code{file-name-buffer-file-type-alist} holds a list of
- filename patterns and their associated type; binary or text.  Files marked
- as binary will not have line-end detection performed on them, and instead
- will always be displayed as is.  With auto-detection in recent versions of
- Emacs, this is seldom useful for existing files, but can still be used
- to influence the choice of line ends for newly created files.
  @node Line ends by file system
  @subsection CR/LF translation by file system
  @cindex line ends, determining by filesystem
@@@ -1260,8 -1188,9 +1188,9 @@@ MS Windows, but this has still been ins
  changes in printing technology from text and postscript based printers
  connected via ports that can be accessed directly, to graphical
  printers that are only accessible via USB.  For details, see
- @uref{http://www.emacswiki.org/cgi-bin/wiki/PrintingFromEmacs, Emacs
- Wiki}.
+ @uref{http://www.emacswiki.org/emacs/PrintingFromEmacs, Emacs
+ Wiki}, @uref{http://www.emacswiki.org/emacs/PrintWithWebBrowser}, and
+ @uref{http://www.emacswiki.org/emacs/PrintFromWindowsExplorer}.
  
  @c ------------------------------------------------------------
  @node Sub-processes
  The quoting rules for native Windows shells and Cygwin shells have
  some subtle differences.  When Emacs spawns subprocesses, it tries to
  determine whether the process is a Cygwin program and changes its
- quoting mechanism appropriately.  See this
- @uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/shell-quoting,
- previous discussion} for details.
+ quoting mechanism appropriately.
  
  @node Subprocess hang
  @section Programs reading input hang
@@@ -1357,9 -1284,11 +1284,11 @@@ you can use @code{setbuf} and @code{set
  the buffering semantics.
  
  Some programs handle this by having an explicit flag to control their
- buffering behavior, typically @option{-i} for interactive.  Other
- programs manage to detect that they are running under Emacs, by
- using @samp{getenv("emacs")} internally.
+ buffering behavior, typically @option{-i} for interactive, or by a
+ special environment variable.  Other programs manage to detect that
+ they are running under Emacs, by using @samp{getenv("emacs")}
+ internally.  Look in the program's documentation for the way around
+ this issue.
  
  @menu
  * Perl script buffering::
@@@ -1428,6 -1357,7 +1357,7 @@@ this discussion} for more details
  @vindex explicit-shell-file-name
  
  You can start an interactive shell in Emacs by typing @kbd{M-x shell}.
+ By default, this will start the standard Windows shell @file{cmd.exe}.
  Emacs uses the @env{SHELL} environment variable to determine which
  program to use as the shell.  To instruct Emacs to use a non-default
  shell, you can either set this environment variable, or customize
@@@ -1467,11 -1397,6 +1397,6 @@@ default shell in Emacs, you can place t
  (add-hook 'shell-mode-hook 'my-shell-setup)
  @end example
  
- If you find that you are having trouble with Emacs tracking drive
- changes with bash, see Mike Fabian's
- @uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/drive-tracking,
- note}.
  WARNING: Some versions of bash set and use the environment variable
  PID.  For some as yet unknown reason, if @env{PID} is set and Emacs
  passes it on to bash subshells, bash dies (Emacs can inherit the
@@@ -1489,7 -1414,7 +1414,7 @@@ continue to use bash as your subshell
  @cindex cygwin mount points, using within Emacs
  
  The package
- @uref{http://www.emacswiki.org/cgi-bin/wiki/cygwin-mount.el,
+ @uref{http://www.emacswiki.org/emacs/cygwin-mount.el,
  cygwin-mount.el} teaches Emacs about Cygwin mount points.
  
  @node Dired ls
@@@ -1849,11 -1774,15 +1774,15 @@@ your type (@code{flyspell}).  Both pack
  @command{ispell} 3.2 or a compatible spell-checking program.
  GNU Aspell is a popular choice these days, Windows installers are
  available from the @uref{http://aspell.net/win32/, official site}.
+ Another possibility is Hunspell, which is available from
+ @uref{https://sourceforge.net/projects/ezwinports/files/?source=navbar,
+ the ezwinports site}.
  
  Once installed, you will need to configure @code{ispell-program-name}
- to tell ispell and flyspell to use @command{aspell} as a replacement for
- ispell.  You can include the full path to the @file{aspell} binary, which
- means you do not need to add its installation directory to the @env{PATH}.
+ to tell ispell and flyspell to use @command{aspell} or
+ @command{hunspell} as a replacement for ispell.  You can include the
+ full path to the @file{aspell}/@file{hunspell} binary, which means you
+ do not need to add its installation directory to the @env{PATH}.
  
  @node Encryption
  @section Emacs and encryption
@@@ -1942,6 -1871,13 +1871,13 @@@ of grep is to use @samp{findstr /n /r}
  @node Developing with Emacs
  @chapter Developing with Emacs
  
+ We recommend using the GNU Compiler Collection for developing C/C++
+ code from Emacs.  The MinGW development toolchain provides Windows
+ ports of GCC and other compilers.
+ The rest of this chapter describes other alternatives which you may
+ need to use.
  @menu
  * MSVC::
  * Borland C++ Builder::
@@@ -1971,7 -1907,7 +1907,7 @@@ tools to build your project
  
  Christopher Payne wrote a Visual Studio add-in that makes Emacs the
  default text editor, this has now been taken over by Jeff Paquette.
- See the following two URLS for details:
+ See the following two URLs for details:
  @itemize
  @item @uref{http://sourceforge.net/projects/visemacs/} for the latest version.
  @item @uref{http://www.smathers.net/VisEmacs.htm} for notes on usage.
@@@ -2178,6 -2114,7 +2114,7 @@@ suggestions} for improving the interact
  @menu
  * Cygwin::
  * MinGW::
+ * EZWinPorts::
  * UWIN::
  * GnuWin32::
  * GTK::
@@@ -2230,6 -2167,17 +2167,17 @@@ filesystem mapping to appear more POSI
  runs.  This is intended to complement the MinGW tools to make it easier
  to port software to Windows.
  
+ @node EZWinPorts
+ @section EZWinPorts
+ @cindex ezwinports
+ The @uref{https://sourceforge.net/projects/ezwinports/, EZWinPorts
+ project} provides many useful ports of recent versions of GNU and Unix
+ software.  This includes all the optional libraries used by Emacs
+ (image libraries, libxml2, GnuTLS), RCS, Texinfo, a clone of
+ @command{man} command, Grep, xz, bzip2, bsdtar, ID Utils, Findutils,
+ Hunspell, Gawk, GNU Make, Groff, GDB.
  @node UWIN
  @section UWIN
  @cindex uwin environment
@@@ -2251,8 -2199,8 +2199,8 @@@ is @command{ksh}, the Korn shell
  @uref{http://gnuwin32.sourceforge.net/}
  
  GnuWin32 provides precompiled native Windows ports of a wide selection
- of Free software and libraries.  Tools available here that are useful
- for Emacs include:
+ of Free software and libraries.  Unfortunately, the ports are
outdated.  Tools available here that are useful for Emacs include:
  
  @itemize
  @item Arc - used by @code{archive-mode} to edit .arc files.
@@@ -2302,7 -2250,8 +2250,8 @@@ Man pages for Emacs and other ported pr
  read using Emacs' built-in manual reader @code{woman}.  This
  requires no external programs, but if you do have a port of
  @command{man}, there is also an Emacs wrapper @code{man} that
- which may be slightly faster.
+ which may be slightly faster.  A Windows version of @command{man} is
+ available from the EZWinPorts site (@pxref{EZWinPorts}).
  
  @c ------------------------------------------------------------
  @node Further information
diff --combined doc/misc/efaq.texi
index 84178277aab0712287e2838ed71cc42daabc7d66,3078122d11c33d64d7389e34bc8f90784943d5f2..cdf944041b65ff695a48e53e1effd092018dd181
@@@ -1,6 -1,6 +1,6 @@@
  \input texinfo   @c -*- mode: texinfo; -*-
  @c %**start of header
 -@setfilename ../../info/efaq
 +@setfilename ../../info/efaq.info
  @settitle GNU Emacs FAQ
  @documentencoding UTF-8
  @c %**end of header
@@@ -861,6 -861,7 +861,6 @@@ You can get Tkinfo a
  @cindex Files included with Emacs
  @cindex @file{COPYING}, description of file
  @cindex @file{DISTRIB}, description of file
 -@cindex @file{GNU}, description of file
  @cindex @file{MACHINES}, description of file
  @cindex @file{NEWS}, description of file
  
@@@ -882,6 -883,9 +882,6 @@@ GNU General Public Licens
  @item DISTRIB
  Emacs Availability Information
  
 -@item GNU
 -The GNU Manifesto
 -
  @item MACHINES
  Status of Emacs on Various Machines and Systems
  
@@@ -1469,7 -1473,7 +1469,7 @@@ machine at which Emacs was invoked.  Th
  @code{frame-title-format} to the default value of
  
  @lisp
 -(multiple-frames "%b" ("" invocation-name "@@" system-name))
 +(multiple-frames "%b" ("" invocation-name "@@" (system-name)))
  @end lisp
  
  To modify the behavior such that frame titlebars contain the buffer's
@@@ -2674,8 -2678,16 +2674,16 @@@ variable in the environment
  @cindex Maximize frame
  @cindex Fullscreen mode
  
- Use the function @code{w32-send-sys-command}.  For example, you can
- put the following in your @file{.emacs} file:
+ Beginning with Emacs 24.4 either run Emacs with the @samp{--maximized}
+ command-line option or put the following form in your @file{.emacs}
+ file:
+ @lisp
+ (add-hook 'emacs-startup-hook 'toggle-frame-maximized)
+ @end lisp
+ With older versions use the function @code{w32-send-sys-command}.  For
+ example, you can put the following in your @file{.emacs} file:
  
  @lisp
  (add-hook 'emacs-startup-hook
diff --combined src/ChangeLog
index 1b1a9c59033a07af3a8cfdda52088e72aa89c3f6,90908fcf759bb0e4fe8a855425d39c04c9b61ac7..bdec3c9cde14a6fb88831afed693b153a1f74efb
 -2015-03-12  Glenn Morris  <rgm@gnu.org>
++2015-03-18  Glenn Morris  <rgm@gnu.org>
+       * frame.h (x_set_bitmap_icon): Don't set the icon if icon-type is
+       nil/not present in the parameter alist.  (Bug#19680)
 -2015-02-28  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * alloc.c (purecopy): Handle hash-tables.
 +
 +2015-03-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuf.c (Fread_buffer): Add `predicate' argument.
 +      * callint.c (Fcall_interactively): Adjust calls accordingly.
 +
 +2015-03-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (handle_invisible_prop): Fix up it->position even when
 +      we are going to load overlays at the beginning of the invisible text.
 +      (setup_for_ellipsis): Reset the ignore_overlay_strings_at_pos_p
 +      flag also here.
 +      (next_overlay_string): Set the overlay_strings_at_end_processed_p
 +      flag only if the overlays just processed were actually loaded at EOB.
 +
 +2015-03-14  Daniel Colascione  <dancol@dancol.org>
 +
 +      * emacs.c (standard_args): Add --no-x-resources.
 +      (usage_message): Document that -Q implies --no-x-resources.
 +
 +2015-03-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * frame.c (x_get_resource_string) [!USE_GTK]: Don't define.
 +
 +      * editfns.c, systime.h (mktime_z) [!HAVE_TZALLOC]: Now static.
 +
 +2015-03-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32font.c (font_supported_scripts): Add subranges for Latin
 +      Supplement, Latin Extended-A/B, Vai, Supplemental Punctuation, Tai
 +      Le, Buginese, Yijing Hexagrams, Ancient Greek Numbers, Tai Xuan
 +      Jing, Counting Rods, Sundanese, Lepcha, Ol Chiki, Saurashtra,
 +      Kayah Li, Rejang, Ancient Symbols, Phistos Disc, Carian, Lycian,
 +      Lydian, Dominoe Tiles, and Mahjong Tiles.  Break the Mathematical
 +      Alphanumeric Symbols into several "scripts" like fontset.el does.
 +      (Bug#19993)
 +      (syms_of_w32font): DEFSYM all the new script symbols.
 +
 +2015-03-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c <ImmReleaseContext_Proc, ImmSetCompositionWindow_Proc>:
 +      Fix typedefs to be consistent with the corresponding w32 API
 +      signatures.
 +      (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Don't invoke
 +      DefWindowProc if we successfully handled the message, as doing so
 +      causes problems in displaying selection dialogs.  (Bug#11732)
 +
 +2015-03-05  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Work around x86 glibc backtrace bug
 +      * sysdep.c (emacs_backtrace): Don't dump core on x86.
 +      Fixes: bug#19959
 +
 +2015-03-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * keyboard.c (make_lispy_position): When the click is on the
 +      right-side vertical scroll bar, pass the rightmost X coordinate to
 +      buffer_posn_from_coords, so that the returned text position
 +      reflects the closest point to the click.  Fixes region extension
 +      when mouse moves outside the Emacs frame that has scroll bars on
 +      the right.
 +
 +2015-03-04  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (x_set_font): Try to keep frame height and width
 +      unchanged if tool bar size changes with new font.
 +
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * search.c (find_newline): Avoid assertion violations in
        CHAR_TO_BYTE when a portion of the buffer was deleted and we look
        for newlines near the end of the buffer.  This happens in Rmail
 -      hen JIT font-lock fontifies a newly displayed portion of the
 +      when JIT font-lock fontifies a newly displayed portion of the
        buffer.
  
 -2015-02-23  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * w32fns.c (Fw32__menu_bar_in_use): New internal function.
        (Bug#19925)
  
 -2015-02-20  Glenn Morris  <rgm@gnu.org>
 +2015-03-03  Glenn Morris  <rgm@gnu.org>
  
        * fileio.c (Fmake_temp_name): Doc tweaks.  (Bug#19858)
  
 -2015-02-14  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * menu.c (Fx_popup_menu) [HAVE_X_WINDOWS]: Call
        mouse_position_for_popup only for X frames.  (Bug#19862)
  
 -2015-02-13  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * buffer.c (syms_of_buffer): Doc fix.  (Bug#19841)
  
 -2015-02-08  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * xfaces.c (map_tty_color): Use assoc_no_quit instead of
        assq_no_quit to fetch color definition by its string name.
        (Bug#19802)
  
 -2015-02-05  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (move_it_in_display_line_to): Handle the case where the
        last character of a screen line is whitespace, and we are under
        word-wrap with overflow-newline-into-fringe turned on.
        (Bug#19769)
  
 -2015-02-03  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (handle_stop, handle_single_display_spec)
        (next-element_from_image): Don't reset the
        after we've exhausted all the overlay strings at the current
        position.  (Bug#19307)
  
 -2015-02-02  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (set_iterator_to_next): Set value of stop_charpos
        according to the object we are about to resume iterating.
        * xdisp.c (redisplay_window): Don't avoid redisplay of a window
        whose update_mode_line flag is set.  (Bug#19721)
  
 -2015-01-30  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Eli Zaretskii  <eliz@gnu.org>
  
        * dispextern.h (FACE_FOR_CHAR): Fix the commentary.
  
 -2015-01-29  Hans Wennborg  <hwennborg@google.com>  (tiny change)
 -
 -      * emacs.c (decode_env_path): Add parentheses around ternary
 -      operator to increase readability and pacify compiler warnings.
 +2015-03-03  Daniel Colascione  <dancol@dancol.org>
  
 -2015-01-29  Eli Zaretskii  <eliz@gnu.org>
 +      * alloc.c (syms_of_alloc): Rename `gc-precise-p' to `gc-precise'.
  
 -      * w32.c (sys_readdir): Map ERROR_NOT_READY (as in "device not
 -      ready") to ENOENT.
 +2015-03-03  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2015-01-28  Eli Zaretskii  <eliz@gnu.org>
 +      * alloc.c (run_finalizers): Omit unused local.
 +      Also, redo newly-added code as per usual Emacs style.
  
 -      * dired.c (directory_files_internal, file_name_completion)
 -      [WINDOWSNT]: Signal an error when errno is set non-zero by
 -      'readdir', regardless of its value.
 +2015-03-03  Martin Rudalics  <rudalics@gmx.at>
  
 -      * w32.c (sys_readdir): Set errno to ENOENT when the directory
 -      doesn't exist and to EACCES when it's not accessible to the
 -      current user.  Set errno to zero when FindNextFile exhausts the
 -      directory, so that callers don't interpret that as an error and
 -      don't signal a file-error.
 -      (open_unc_volume): Set errno to ENOENT if WNetOpenEnum fails.
 +      * frame.c (adjust_frame_size): If the pixel sizes remain
 +      unchanged but the number of lines or columns of the frame
 +      changes, run `window--pixel-to-total' (Bug#19972).
 +      (Qwindow_pixel_to_total): DEFSYM it.
  
 -2015-01-27  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Daniel Colascione  <dancol@dancol.org>
  
 -      * dired.c (directory_files_internal) [WINDOWSNT]: If readdir
 -      returns NULL and errno is ENOTDIR, behave as if opendir failed to
 -      open the directory.  (Bug#19701)
 +      * print.c (print_object): Print whether a finalizer has
 +      been called.
  
 -      * w32.c (sys_readdir): If FindFirstFile fails because the
 -      directory doesn't exist, set errno to ENOTDIR.
 +      * data.c (Ftype_of): Make `type-of' work with finalizers.
 +      (syms_of_data): Register Qfinalizer.
  
 -2015-01-24  Jan Djärv  <jan.h.d@swipnet.se>
 +2015-03-02  Daniel Colascione  <dancol@dancol.org>
  
 -      * nsterm.m (drawRect:): Add block/unblock_input (Bug#19660).
 +      * print.c (print_object): Print finalizers.
  
 -2015-01-21  Paul Eggert  <eggert@cs.ucla.edu>
 +      * alloc.c:
 +      (finalizers, doomed_finalizers): New variables.
 +      (init_finalizer_list, finalizer_insert, unchain_finalizer)
 +      (mark_finalizer_list, queue_doomed_finalizers)
 +      (run_finalizer_handler, run_finalizer_function, run_finalizers):
 +      New functions.
 +      (garbage_collect_1, mark_object, sweep_misc)
 +      (init_alloc_once, syms_of_alloc): Support finalizers.
 +      (gc-precise-p): New Lisp variable.
  
 -      Fix coding.c subscript error
 -      * coding.c (CODING_ISO_INVOKED_CHARSET):
 -      Avoid undefined behavior if CODING_ISO_INVOCATION returns negative.
 +      * lisp.h (Lisp_Misc_Type): New value Lisp_Misc_Finalizer.
 +      (FINALIZERP, XFINALIZER): New functions.
 +      (Lisp_Finalizer): New structure.
  
 -      Backport: correct old fix for GTK font selection
 -      * gtkutil.c (xg_get_font): Fix off-by-2 typo.
 -      Fixes: bug#3228
 +2015-02-28  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2015-01-21  Jan Djärv  <jan.h.d@swipnet.se>
 +      * character.c (alphabeticp, decimalnump): Avoid undefined behavior
 +      if CATEGORY is not an integer, or is an integer out of
 +      unicode_category_t range.
  
 -        * nsterm.m (EV_TRAILER2): Set Vinhibit_quit to Qt (Bug#19531).
 +2015-02-28  Martin Rudalics  <rudalics@gmx.at>
  
 -2015-01-17  Eli Zaretskii  <eliz@gnu.org>
 +      * frame.c (make_initial_frame, Fmake_terminal_frame):
 +      Set can_x_set_window_size and after_make_frame (Bug#19962).
  
 -      * xdisp.c (produce_image_glyph): Fix display of images in R2L
 -      screen lines: prepend the new glyph to the ones already there
 -      instead of appending it.
 +2015-02-28  Eli Zaretskii  <eliz@gnu.org>
  
 -2015-01-14  Eli Zaretskii  <eliz@gnu.org>
 +      * character.c (alphabeticp, decimalnump): New functions.
 +      * character.h (alphabeticp, decimalnump): Add prototypes.
  
 -      * w32fns.c (w32_set_title_bar_text): New function, including
 -      support for titles with non-ASCII characters outside of the
 -      current system codepage.
 -      (x_set_name, x_set_title): Use it.  (Bug#19590)
 +      * regex.c (ISALNUM, ISALPHA): Check Unicode character properties
 +      for multibyte characters by calling alphabeticp and decimalnump.
 +      (BIT_ALPHA, BIT_ALNUM): New bit masks.
 +      (re_wctype_to_bit): Return them when the class is RECC_ALPHA or
 +      RECC_ALNUM.
 +      (re_match_2_internal): Call ISALPHA and ISALNUM when appropriate.
 +      (Bug#19878)
  
 -2015-01-10  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-27  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * indent.c (Fvertical_motion): Return zero if we started from ZV
 -      and there's an overlay after-string there.  (Bug#19553)
 +      * xterm.h (x_real_pos_and_offsets): Take outer_border as arg also.
  
 -2015-01-09  Eli Zaretskii  <eliz@gnu.org>
 +      * xmenu.c (x_menu_show): Adjust for new arg to x_real_pos_and_offsets.
  
 -      * emacs.c (usage_message): Fix the description of the -nl switch.
 -      (Bug#19542)
 +      * xfns.c (x_real_pos_and_offsets): Take outer_border as arg also.
 +      Initialize all args.  Get outer_border from window attributes.
 +      Fix typo for top_offset_y.
 +      (x_real_positions): Adjust for new arg to x_real_pos_and_offsets.
 +      (Fx_frame_geometry): Get outer_border also.  Use attrs.width/height.
  
 -2015-01-08  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-27  Mark Laws  <mdl@60hz.org>
  
 -      * dispnew.c (buffer_posn_from_coords): Fix the value of the column
 -      returned for right-to-left screen lines.  (Before the change on
 -      2014-12-30, the incorrectly-computed X pixel coordinate concealed
 -      this bug.)
 +      Support daemon mode on MS-Windows (bug#19688)
 +      * emacs.c <w32_daemon_event> [WINDOWSNT]: New global var.
 +      (main) [WINDOWSNT]: Initialize it to NULL.  Create the event to
 +      signal clients we are ready for connections.
 +      (Fdaemon_initialized): Use DAEMON_RUNNING.
 +      [WINDOWSNT]: MS-Windows specific code to signal clients we are
 +      ready for connections.
  
 -2015-01-05  Eli Zaretskii  <eliz@gnu.org>
 +      * lisp.h (DAEMON_RUNNING): New macro, encapsulates Posix and
 +      MS-Windows conditions for running in daemon mode.
  
 -      * xdisp.c (move_it_to, try_cursor_movement): Don't use the window
 -      end information if the window_end_valid flag is unset.
 -      (try_window_id): If the call to display_line invalidated the
 -      window end information, give up the try_window_id optimization.
 -      (Bug#19511)
 +      * minibuf.c (read_minibuf): Use DAEMON_RUNNING.
  
 -2015-01-04  Eli Zaretskii  <eliz@gnu.org>
 +      * keyboard.c (kbd_buffer_get_event): Use DAEMON_RUNNING.
  
 -      * w32fns.c (Fx_server_version, Fx_server_vendor): Doc fix.
 +      * dispnew.c (init_display) [WINDOWSNT]: Initialize frames/terminal
 +      even in daemon mode.
  
 -      * xfns.c (Fx_server_version, Fx_server_vendor): Doc fix.
 +2015-02-26  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * emacs.c (syms_of_emacs) <system-configuration>: Doc fix.
 -      (Bug#19502)
 +      * xmenu.c (create_and_show_popup_menu): Call XTranslateCoordinates,
 +      dont use OUTER_TO_INNER macros.
 +      (x_menu_show): Call x_real_pos_and_offsets, don't use
 +      OUTER_TO_INNER macros.
  
 -2014-12-30  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-26  Eli Zaretskii  <eliz@gnu.org>
  
 -      * xdisp.c (pos_visible_p): Fix up the X coordinate for
 -      right-to-left screen lines.  (Bug#19473)
 +      * dispextern.h (FACE_FOR_CHAR): Fix the commentary.
  
 -2014-12-28  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-26  Hans Wennborg  <hwennborg@google.com>  (tiny change)
  
 -      * w32proc.c (Fw32_get_codepage_charset): Doc fix.  (Bug#19458)
 +      * emacs.c (decode_env_path): Add parentheses around ternary
 +      operator to increase readability and pacify compiler warnings.
  
 -2014-12-28  Paul Eggert  <eggert@Penguin.CS.UCLA.EDU>
 +2015-02-26  Eli Zaretskii  <eliz@gnu.org>
  
 -      Port memory-full checking to GnuTLS 3.3
 -      Instead of using gnutls_global_set_mem_functions, check every call
 -      to a GnuTLS function that might return an indication of memory
 -      exhaustion.  Suggested by Dmitry Antipov in:
 -      http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg02056.html
 -      * gnutls.c (gnutls_global_set_mem_functions) [WINDOWSNT]: Remove.
 -      (init_gnutls_functions): Do not load gnutls_global_set_mem_functions.
 -      (fn_gnutls_global_set_mem_functions) [!WINDOWSNT]: Remove.
 -      All uses removed.
 -      (check_memory_full): New function.
 -      (emacs_gnutls_handshake, emacs_gnutls_handle_error)
 -      (gnutls_make_error, Fgnutls_boot): Use it.
 -      (emacs_gnutls_global_init): Avoid gnutls_global_set_mem_functions.
 +      * w32.c (sys_readdir): Map ERROR_NOT_READY (as in "device not
 +      ready") to ENOENT.
  
 -2014-12-25  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-26  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * xdisp.c (set_iterator_to_next) <GET_FROM_STRING>: Limit search in
 -      composition_compute_stop_pos to the number of characters in the
 -      string.  (Bug#19435)
 -      <GET_FROM_BUFFER, GET_FROM_STRING>: Simplify code.
 +      * xfns.c (x_real_pos_and_offsets): Fix pointer signedness.
  
 -      * composite.c (composition_compute_stop_pos): If no composition
 -      was found in a string before ENDPOS, and ENDPOS is the string end,
 -      no need to back up to a safe point.
 +2015-02-25  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * dispextern.h (struct it) <end_charpos>: Improve commentary.
 +      * xterm.h (struct x_output): Remove x_pixels_outer_diff,
 +      y_pixels_outer_diff, FRAME_OUTER_TO_INNER_DIFF_X,
 +      FRAME_OUTER_TO_INNER_DIFF_Y. Declare x_real_pos_and_offsets.
  
 -2014-12-24  Jan Djärv  <jan.h.d@swipnet.se>
 +      * xmenu.c (create_and_show_popup_menu): Use XTranslateCoordinates
 +      instead of OUTER_TO_INNER_DIFF macros.
  
 -      * nsimage.m (allocInitFromFile:): Initialize bmRep.
 -      (dealloc): Release bmRep.
 -        (setPixmapData): Make bmRep local so class member is not
 -        set (Bug#19133).
 -      (setPixmapData): Rename local variable bmRep to avoid compiler
 -      warning.
 +      * xfns.c (x_real_pos_and_offsets): New function, basically the code
 +      from x_real_positions.
 +      (x_real_positions): Call x_real_pos_and_offsets.
 +      (x_relative_mouse_position): Use XTranslateCoordinates instead of
 +      OUTER_TO_INNER_DIFF macros.
 +      (Fx_frame_geometry): Get offsets with x_real_pos_and_offsets,
 +      border from window attributes.  Adjust tool bar and menu widths.
  
 -2014-12-24  Jan Djärv  <jan.h.d@swipnet.se>
 +      * w32fns.c (x_real_positions): Remove setting of x_pixels_diff,
 +      y_pixels_diff.
  
 -      * nsterm.h (EmacsImage): Remove imageListNext, refCount, reference,
 -      imageListSetNext, imageListNext.
 +      * frame.h (struct frame): Remove x_pixels_diff, y_pixels_diff.
  
 -      * nsimage.m (ImageList, imageListNext, imageListSetNext:)
 -      (reference): Remove.
 -      (allocInitFromFile:): Remove searching ImageList and calling
 -      reference (Bug#18918).
 -      (dealloc): Remove handling if ImageList.
 +2015-02-25  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-12-22  Jan Djärv  <jan.h.d@swipnet.se>
 +      Backtrace after malloc arena is corrupted
 +      Without this change, if the malloc arena is corrupted and then
 +      'backtrace' is called, the backtrace can crash because 'backtrace'
 +      calls 'malloc'.  For more, please see:
 +      https://sourceware.org/ml/libc-alpha/2015-02/msg00678.html
 +      * emacs.c (main): Initialize tables used by 'backtrace'.
 +      * sysdep.c (emacs_backtrace): Document the newly used part of the API.
  
 -      * xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert
 -      when going to fullscreen (Bug#19427).
 +2015-02-22  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2014-12-18  Eli Zaretskii  <eliz@gnu.org>
 +      * nsfns.m (Fx_frame_geometry): New function.
 +      (syms_of_nsfns): Defsubr Sx_frame_geometry.
  
 -      * window.c (Fwindow_body_width): Doc fix.  (Bug#19395)
 +2015-02-22  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-12-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      Spelling fixes
 +      * lisp.h (DEFINE_NON_NIL_Q_SYMBOL_MACROS):
 +      Rename from DEFINE_NONNIL_Q_SYMBOL_MACROS.  All uses changed.
  
 -      * buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring.
 +2015-02-21  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-12-13  Eli Zaretskii  <eliz@gnu.org>
 +      * w32term.c (queue_notifications):
 +      * w32inevt.c (handle_file_notifications):
 +      * w32font.c (w32_enumfont_pattern_entity): Prefer 'Qfoo' to
 +      'intern ("foo")'.
  
 -      * gnutls.c (gnutls_init): Fix deprecation warning from GCC.
 +2015-02-21  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-12-12  Eli Zaretskii  <eliz@gnu.org>
 +      Prefer 'Qfoo' to 'intern ("foo")'
 +      * buffer.c (syms_of_buffer):
 +      * bytecode.c (exec_byte_code):
 +      * callint.c (Fcall_interactively):
 +      * callproc.c (create_temp_file):
 +      * charset.c (define_charset_internal):
 +      * coding.c (syms_of_coding):
 +      * editfns.c (syms_of_editfns):
 +      * emacs.c (main):
 +      * fns.c (syms_of_fns):
 +      * frame.c (delete_frame, Fframe_parameters):
 +      * keyboard.c (syms_of_keyboard):
 +      * keymap.c (syms_of_keymap):
 +      * minibuf.c (read_minibuf, syms_of_minibuf):
 +      * nsfns.m (ns_cursor_type_to_lisp):
 +      * textprop.c (syms_of_textprop):
 +      * xdisp.c (Fformat_mode_line, syms_of_xdisp):
 +      * xfns.c (x_create_tip_frame, Fx_select_font):
 +      * xml.c (parse_region):
 +      Prefer constants like 'Qfoo' to calls like 'intern ("foo")'.
 +      * buffer.c (syms_of_buffer): OK to do (put 'erase-buffer 'disabled
 +      t) here now ...
 +      (keys_of_buffer): ... instead of here.
 +      * ftfont.c (syms_of_ftfont): Move DEFSYM of Qmono from here ...
 +      * xfns.c (syms_of_xfns): ... to here, since ftfont.c is more
 +      optional than xfns.c.
  
 -      * gnutls.c (Fgnutls_available_p, syms_of_gnutls):
 -      Move gnutls-available-p out of the HAVE_GNUTLS conditional, and define
 -      them only once.
 +2015-02-20  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2014-12-11  Teodor Zlatanov  <tzz@lifelogs.com>
 +      * emacs.c (terminate_due_to_signal): Move totally_unblock_input after
 +      setting fatal_error_in_progress, so gobble_input and *read_socket are
 +      not read if there are pending_signals.
  
 -      * emacs.c (main): Always include gnutls.h and run syms_of_gnutls.
 +2015-02-20  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * gnutls.h: Always declare syms_of_gnutls.
 +      Simplify binary I/O configuration
 +      * lread.c (Fload): Prefer FOPEN_TEXT and FOPEN_BINARY to #ifdef DOS_NT.
 +      * sysstdio.h: Add copyright notice.  Include <fcntl.h>.
 +      (FOPEN_BINARY, FOPEN_TEXT): New macros.
 +      * xfaces.c (Fx_load_color_file): Use FOPEN_TEXT, since POSIX
 +      doesn't guarantee that "t" will work.
  
 -      * gnutls.c (Fgnutls_available_p syms_of_gnutls): Move later for
 -      clarity.  Let the availability check return Qnil when the GnuTLS
 -      integration is not available, instead of erroring out.
 -      (Bug#19346)
 +2015-02-19  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-12-10  Eli Zaretskii  <eliz@gnu.org>
 +      * keyboard.c (read_char): Make sure this_single_command_key_start
 +      is in sync with this_command_key_count, around the call to
 +      input-method-function.  (Bug#19774)
  
 -      * xdisp.c (move_it_in_display_line_to, display_line):
 -      Don't disallow overflow-newline-into-fringe when word-wrap is in
 -      effect.  (Bug#19300)
 +2015-02-19  Fujii Hironori  <fujii.hironori@gmail.com>  (tiny change)
  
 -2014-12-04  Lee Duhem  <lee.duhem@gmail.com>  (tiny change)
 +      * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Pass the
 +      message to DefWindowProc, after positioning the IME window, to
 +      trigger its display.  (Bug#11732)
  
 -      * eval.c (Fsignal): Remove duplicate test.
 -      (Fautoload_do_load): Fix up docstring.
 +2015-02-18  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-12-02  Jan Djärv  <jan.h.d@swipnet.se>
 +      * emacs.c (Fkill_emacs): Exit with specified exit code even if
 +      stdin is at EOF.  (Bug#19897)
  
 -      * nsterm.m (represented_filename, represented_frame): New variables.
 -      (ns_set_represented_filename): New function.
 -      (sendEvent:): Set represented filename here to avoid flicker,
 -      related to Bug#18757.
 +2015-02-18  Oscar Fuentes <ofv@wanadoo.es>
  
 -      * nsterm.h: Declare ns_set_represented_filename.
 +      * keyboard.c (read_char): When there is an input method function,
 +      do not restore the echo area if a prefix argument is being
 +      introduced.  (Bug#19875)
  
 -      * nsfns.m (ns_set_name_as_filename): Don't set represented filename
 -      at once, call ns_set_represented_filename instead.
 +2015-02-16  Kelly Dean  <kelly@prtime.org>
  
 -2014-11-27  Eli Zaretskii  <eliz@gnu.org>
 +      * src/keyboard.c (timer_check_2): Fix incorrect comment.
  
 -      * xdisp.c (handle_single_display_spec): When ignoring a fringe
 -      bitmap display, reset the ignore_overlay_strings_at_pos_p flag.
 -      (next_element_from_buffer): When done with overlays, reset the
 -      ignore_overlay_strings_at_pos_p flag.  (Bug#19201)
 +2015-02-14  Martin Rudalics  <rudalics@gmx.at>
  
 -2014-11-25  Eli Zaretskii  <eliz@gnu.org>
 +      * xterm.c (x_frame_normalize_before_maximize): Fix doc-string.
 +      Suggested by Alan Mackenzie <acm@muc.de>.
  
 -      * w32fns.c (Fw32_shell_execute): Convert forward slashes in
 -      DOCUMENT to backslashes, if DOCUMENT is a file.  (Bug#19141)
 +2015-02-14  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-11-25  Ulrich Müller  <ulm@gentoo.org>
 +      * menu.c (Fx_popup_menu) [HAVE_X_WINDOWS]: Call
 +      x_relative_mouse_position only for X frames.  (Bug#19862)
  
 -      * Makefile.in (temacs$(EXEEXT)): Use consistent flag settings
 -      for paxctl and setfattr. Fixes temacs startup failure with
 -      grsecurity/PaX enabled Linux kernel (bug#19067).
 +2015-02-13  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-11-17  Oscar Fuentes  <ofv@wanadoo.es>
 +      Better support for future plugins
 +      * lisp.h (DEFINE_LISP_SYMBOL): New macro, replacing and simplifying
 +      DEFINE_LISP_SYMBOL_BEGIN / DEFINE_LISP_SYMBOL_END.  All uses changed.
 +      (DEFINE_NONNIL_Q_SYMBOL_MACROS): New macro, defaulting to true.
  
 -      * src/w32.c: Use MINGW_W64 instead of _W64.
 +2015-02-11  Martin Rudalics  <rudalics@gmx.at>
  
 -      * src/w32term.c: Likewise.
 +      * w32term.c (w32_read_socket): In SIZE_MAXIMIZED and
 +      SIZE_RESTORED cases correctly handle `maximized' value for the
 +      `fullscreen' parameter.  Don't use 'maximized' frame parameter
 +      any more.
 +      (w32fullscreen_hook): Include menu bar height when calculating
 +      new text height in FULLSCREEN_BOTH case.
 +      * xterm.c (do_ewmh_fullscreen): Handle transition from
 +      FULLSCREEN_BOTH to FULLSCREEN_MAXIMIZED when
 +      x_frame_normalize_before_maximize is set.
 +
 +2015-02-10  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use bool for boolean in xdisp.c
 +      * dispextern.h (display_prop_intangible_p, resize_mini_window)
 +      (pixel_to_glyph_coords, mark_window_display_accurate)
 +      (compute_display_string_pos, handle_tool_bar_click)
 +      (x_intersect_rectangles, clear_mouse_face, display_tty_menu_item):
 +      * lisp.h (setup_echo_area_for_printing, message_with_string)
 +      (pos_visible_p): Use bool for boolean.
 +      * xdisp.c: Use bool, true, false intstead of int, 1, 0.
 +      Remove unnecessary forward decls.
 +      (trace_move) [DEBUG_TRACE_MOVE]: Now static.
 +      (CHECK_IT, CHECK_WINDOW_END):
 +      Now an inline function that is always defined.
 +      (check_it) [0]:
 +      (check_window_end) [oGLYPH_DEBUG && ENABLE_CHECKING]:
 +      Remove; no longer needed.
 +      (handle_stop): Prefer (X && !Y) to (X ? !Y : 0).
 +      (get_overlay_strings): Omit unnecessary casts.
 +      (forward_to_next_line_start):
 +      (Ftool_bar_height):
 +      Prefer !BOOL to (BOOL ? 0 : 1).
 +      (next_element_function): New typedef.
 +      (get_next_element): Use it.  Now const.
 +      (IT_POS_VALID_AFTER_MOVE_P): Prefer !X || Y==0 to (X ? Y==0 : 1).
 +      (vmessage): Now ATTRIBUTE_FORMAT_PRINTF (1, 0), to pacify GCC 4.9.2
 +      (display_echo_area): Prefer BOOLEXPR to BOOLEXPR ? 1 : 0.
 +      (tool_bar_item_info): Simplify.
 +      (invisible_prop): Rename from invisible_p, since it doesn't
 +      return bool.  All callers changed.
 +      (x_produce_glyphs): Simplify.
 +
 +2015-02-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Check for some overflows in vertical-motion
 +      * indent.c (window_column_x): New function.
 +      (Fvertical_motion): Use it to protect against integer overflow
 +      when computing column.  Prefer extract_float to doing things by hand.
 +      Avoid unnecessary casts.
 +
 +      * xfont.c: Minor style fixes
 +      (xfont_list_pattern): Reindent to 80 cols and use Emacs-style comments.
 +      Redo loop so that less indentation is needed.
 +
 +2015-02-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * indent.c (Fvertical_motion): Accept an additional argument
 +      CUR-COL and use it as the starting screen coordinate.
 +      * window.c (window_scroll_line_based, Fmove_to_window_line):
 +      All callers of vertical-motion changed.
 +
 +2015-02-09  Dima Kogan  <dima@secretsauce.net>
 +
 +      * font.c (font_score): Remove unused variable assignment.
 +
 +2015-02-09  Dima Kogan  <dima@secretsauce.net>
 +
 +      * xfaces.c (realize_basic_faces): Don't set Qscalable_fonts_allowed to
 +      t.
 +      * font.c (font_score): Try to find a font without scaling first,
 +      and only accept scalable fonts if we did not get a match (Bug#19117).
 +
 +2015-02-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keyboard.c (syms_of_keyboard): Use non-nil default value.
 +
 +2015-02-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use C99's INFINITY and NAN macros
 +      * lread.c: Include <math.h>.
 +      (string_to_number): Use INFINITY and NAN rather than rolling our own.
 +      This avoids some runtime diagnostics when building with
 +      gcc -fsanitize=undefined.
 +
 +      Fix bidi_explicit_dir_char undefined behavior
 +      * bidi.c (bidi_explicit_dir_char): Avoid subscript error when
 +      argument is BIDI_EOB.  This can happen in bidi_level_of_next_char.
 +
 +      Better distinguish infinite from invalid times
 +      * editfns.c (check_time_validity): New function.
 +      (decode_time_components): Return int, not bool.
 +      Return -1 (not 0) if the time is out of range.
 +      All callers changed.
 +      (lisp_time_struct, lisp_seconds_argument): Distinguish better
 +      between time overflow and invalid time values.
  
 -2014-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2015-02-08  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003).
 +      Minor tweaks to frame_size_history_add
 +      * frame.c (frame_size_history_add): Don't assume length fits in 'int'.
 +      Prefer XCAR and XCDR to Fcar and Fcdr when the arg is a cons.
 +      (Fframe_after_make_frame): Simplify.
 +      * gtkutil.c: Remove commented-out code.
 +      * xfns.c (Fx_create_frame): Fix indenting.
  
 -2014-11-15  Jan Djärv  <jan.h.d@swipnet.se>
 +2015-02-08  Eli Zaretskii  <eliz@gnu.org>
  
 -      * nsterm.m (ns_send_appdefined): Check for application defined
 -      event on Cocoa (Bug#18993).  Backport from trunk.
 +      * frame.c (Fframe_parameter): Don't replace a non-nil value of
 +      foreground-color or background-color parameters with a nil value.
 +      (Bug#19802)
  
 -2014-11-15  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * data.c (Findirect_function): Like `symbol-function', don't signal an
 +      error for void functions any more.
 +
 +2015-02-07  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (frame_size_history_add): New function.
 +      (frame_inhibit_resize): Consider frame_inhibit_implied_resize
 +      only after frame's after_make_frame slot is true.
 +      Inhibit resizing fullwidth-/height frames in one direction only.
 +      Update frame_size_history.
 +      (adjust_frame_size): Call frame_size_history_add.
 +      (make_frame): Initalize after_make_frame slot.
 +      (Fmake_terminal_frame): Adjust adjust_frame_size call.
 +      (Fcan_run_window_configuration_change_hook): Rename to
 +      Fframe_after_make_frame.  Set after_make_frame slot.
 +      Return second argument.
 +      (x_set_frame_parameters): Postpone handling fullscreen parameter
 +      until after width and height parameters have been set.
 +      Apply width and height changes only if can_x_set_window_size is true.
 +      Update frame_size_history.
 +      (Qadjust_frame_size_1, Qadjust_frame_size_2)
 +      (Qadjust_frame_size_3, QEmacsFrameResize, Qframe_inhibit_resize)
 +      (Qx_set_fullscreen, Qx_check_fullscreen, Qx_set_window_size_1)
 +      (Qxg_frame_resized, Qxg_frame_set_char_size_1)
 +      (Qxg_frame_set_char_size_2, Qxg_frame_set_char_size_3)
 +      (Qxg_change_toolbar_position, Qx_net_wm_state)
 +      (Qx_handle_net_wm_state, Qtb_size_cb, Qupdate_frame_tool_bar)
 +      (Qfree_frame_tool_bar): New symbol for updating frame_size_history.
 +      (Qtip_frame, Qterminal_frame): New symbols.
 +      (Vframe_adjust_size_history): Rename to frame_size_history.
 +      * frame.h (struct frame):
 +      Rename can_run_window_configuration_change_hook slot to
 +      after_make_frame.
 +      (frame_size_history_add): Extern.
 +      * gtkutil.c (xg_frame_resized): Call frame_size_history_add.
 +      Don't set FRAME_PIXEL_WIDTH and FRAME_PIXEL_HEIGHT here.
 +      (xg_frame_set_char_size): Try to preserve the status of
 +      fullwidth/-height frames.  Call frame_size_history_add.
 +      (tb_size_cb, update_frame_tool_bar, free_frame_tool_bar)
 +      (xg_change_toolbar_position): Call frame_size_history_add.
 +      * w32fns.c (x_change_tool_bar_height): Handle frame's fullscreen
 +      status.
 +      (Fx_create_frame): Process fullscreen parameter after frame has
 +      been resized.
 +      (x_create_tip_frame): Pass Qtip_frame to adjust_frame_size.
 +      (Fx_frame_geometry): Don't pollute pure storage.
 +      * w32term.c (w32_read_socket): For WM_WINDOWPOSCHANGED,
 +      WM_ACTIVATE and WM_ACTIVATEAPP set frame's visibility before
 +      calling w32fullscreen_hook.  For WM_DISPLAYCHANGE call
 +      w32fullscreen_hook immediately.
 +      (x_fullscreen_adjust, x_check_fullscreen): Remove.
 +      (w32fullscreen_hook): Call change_frame_size just as with a
 +      "normal" frame resize operation.  Call do_pending_window_change.
 +      (x_set_window_size): Try to handle fullwidth and fullheight more
 +      accurately.  Don't rely on w32_enable_frame_resize_hack.
 +      (w32_enable_frame_resize_hack): Remove variable.
 +      * widget.c (EmacsFrameResize): Remove dead code.
 +      Call frame_size_history_add
 +      * window.c (run_window_configuration_change_hook):
 +      Check f->after_make_frame instead of
 +      f->can_run_window_configuration_change_hook.
 +      * xfns.c (x_change_tool_bar_height): Handle frame's fullscreen status.
 +      (Fx_create_frame): Process fullscreen parameter after frame has
 +      been resized.
 +      (Fx_frame_geometry): Don't pollute pure storage.
 +      * xterm.c (x_net_wm_state, x_handle_net_wm_state):
 +      Call frame_size_history_add.
 +      (do_ewmh_fullscreen): Handle x_frame_normalize_before_maximize.
 +      (x_check_fullscreen): Count in menubar when calling
 +      XResizeWindow.  Wait for ConfigureNotify event.
 +      Call frame_size_history_add.
 +      (x_set_window_size_1): Remove PIXELWISE argument.  Try to handle
 +      changing a fullheight frame's width or a fullwidth frame's
 +      height.  Call frame_size_history_add.
 +      (x_set_window_size): Simplify xg_frame_set_char_size and
 +      x_set_window_size_1 calls.
 +      (x_frame_normalize_before_maximize): New variable.
 +
 +2015-02-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Remove no-longer-used cursor_in_echo_area code
 +      * dispnew.c (set_window_cursor_after_update, update_frame_1):
 +      Remove checks for negative cursor_in_echo_area, since this var is
 +      a boolean, and has been a boolean for some time.  Simplify.
 +      * dispnew.c (init_display):
 +      * xdisp.c (message3_nolog, vmessage): Use bool for boolean.
 +
 +2015-02-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eval.c (Ffunction): Handle the new (:documentation ...) form.
 +      (syms_of_eval): Declare `:documentation'.
 +
 +2015-02-05  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * xdisp.c (Fwindow_text_pixel_size): Remove optional BUFFER
 +      argument added on 2015-02-01.
 +
 +2015-02-04  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Remove no-longer-used two_byte_p calculations
 +      * dispextern.h (struct glyph_string): Remove member two_byte_p.
 +      All uses removed.
 +      * xdisp.c (get_glyph_face_and_encoding): Remove arg two_byte_p.
 +      All callers changed.
  
 -      * window.c (window_scroll_pixel_based): Avoid truncation/rounding
 -      errors in computing the number of pixels to scroll.
 -      Suggested by Kelly Dean <kelly@prtime.org>.  (Bug#19060)
 +2015-02-03  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-11-15  Jan Djärv  <jan.h.d@swipnet.se>
 +      Omit unnecessary var if GTK or NS
 +      * frame.c, frame.h (frame_default_tool_bar_height) [USE_GTK||HAVE_NS]:
 +      Now a constant zero on these platforms.
  
 -      * nsmenu.m (update_frame_tool_bar): If tool bar changes height,
 -      call updateFrameSize.
 +2015-02-01  Martin Rudalics  <rudalics@gmx.at>
  
 -      * nsterm.m (setFrame:): Remove call to display (Bug#18757).
 +      * xdisp.c (Fwindow_text_pixel_size): Add optional argument BUFFER.
  
 -2014-11-14  Jan Djärv  <jan.h.d@swipnet.se>
 +2015-01-31  Eli Zaretskii  <eliz@gnu.org>
  
 -      * nsfns.m (x_set_foreground_color, x_set_background_color)
 -      (x_set_cursor_color, Fxw_color_values): Block/unblock input,
 -      use SET_FRAME_GARBAGED instead of redraw_frame (Bug#19036).
 +      * coding.c (raw_text_coding_system_p): New function.
  
 -2014-11-09  Eli Zaretskii  <eliz@gnu.org>
 +      * keyboard.c (read_decoded_event_from_main_queue): Use it when the
 +      keyboard coding-system is 'raw-text'.  (Bug#19532)
  
 -      * fileio.c (Finsert_file_contents): Invalidate buffer caches also
 -      when the inserted text does not need decoding.  (Bug#18982)
 +      * coding.h (raw_text_coding_system_p): Add prototype.
  
 -      * w32heap.c (allocate_heap): Set the lower limit of heap at 8MB.
 -      (Bug#18995)
 +2015-01-31  Andreas Schwab  <schwab@linux-m68k.org>
  
 -2014-11-09  Jan Djärv  <jan.h.d@swipnet.se>
 +      * Makefile.in (gl-stamp): Generate globals.h through the use of
 +      move-if-change.
 +      (globals.h): Replace with empty command.
  
 -      * nsterm.h (EmacsScroller): judge returns bool.
 +2015-01-31  Eli Zaretskii  <eliz@gnu.org>
  
 -      * nsterm.m (ns_set_vertical_scroll_bar): Release bar.
 -      (ns_judge_scroll_bars): Only set removed if judge returns true.
 -      (judge): Returns bool == condemned.  Remove self from window.
 -      (setPosition:portion:whole:): Remove raise SIGIO (Bug#18757).
 +      * keyboard.c (kbd_buffer_store_event_hold): Ignore FOCUS_OUT_EVENT
 +      and ICONIFY_EVENT for the purposes of breaking while-no-input
 +      loops.  (Bug#19547)
  
 -2014-11-08  Jan Djärv  <jan.h.d@swipnet.se>
 +      * dired.c (read_dirent): Correct the "MSDOS hacks" hack: the
 +      special code for errno = ENOENT or EACCES is needed for WINDOWSNT,
 +      not for MSDOS.
  
 -      * nsterm.m (init): Replace OSX 10.9 check with IMPL_COCOA.
 -      (run): Ditto.  Only use non-system event loop if OSX version is
 -      exactly 10.9 (Bug#18993).
 -      (ns_set_vertical_scroll_bar): Don't call bar setPosition: unless
 -      needed (Bug#18757).
 +2015-01-31  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-11-07  Michael Albinus  <michael.albinus@gmx.de>
 +      Simplify read_dirent's MSDOS hacks
 +      * dired.c (read_dirent): Simplify by removing the need for the
 +      DIR_ENTRY argument.  All callers changed.  This separates the
 +      MS-DOS idiosyncrasies better from the rest of the code.
  
 -      * callproc.c (encode_current_directory): Support handling of file
 -      names prepended by "/:".  (Bug#18891)
 +2015-01-30  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-11-06  Alan Mackenzie  <acm@muc.de>
 +      * dired.c (read_dirent): Accept an additional argument
 +      FIRST_ENTRY.  If readdir fails with ENOENT or EACCES the first
 +      time it is called, report the error as if it happened in
 +      open_directory.
 +      (directory_files_internal, file_name_completion): Adjust callers
 +      or read_dirent.
  
 -      * syntax.c (back_comment): Fix off-by-one error (bug#18022).
 +2015-01-30  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-11-06  Dima Kogan  <dima@secretsauce.net>
 +      Refactor calls to opendir for simplicity
 +      * dired.c (open_directory): Accept Lisp_Object, not char *, for
 +      dirname.  Signal an error if the open fails.  All callers changed.
  
 -      * xgselect.c (xg_select): Use g_main_context_acquire (bug#18861).
 +2015-01-29  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-11-05  Michael Albinus  <michael.albinus@gmx.de>
 +      Report readdir failures
 +      Previously, on non-MS-Windows platforms the code treated most
 +      readdir failures as EOF.  This was incorrect, e.g., when readdir
 +      fails with errno == EOVERFLOW.  Signal an error instead.
 +      * dired.c (read_dirent):
 +      New function, which signals an error when readdir fails.
 +      (directory_files_internal, file_name_completion): Use it.
  
 -      * dired.c (Ffile_attributes): Return Qnil, if Fexpand_file_name
 -      raises an error.  (Bug#18891)
 +2015-01-29  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-11-03  Eli Zaretskii  <eliz@gnu.org>
 +      Use bool for boolean in w32menu.c, w32font.c, w32uniscribe.c.
 +      * w32uniscribe.c (uniscribe_list, uniscribe_match): Use bool where
 +      appropriate.
  
 -      * xdisp.c (Fdump_glyph_matrix, Fdump_frame_glyph_matrix): Doc fix.
 -      (Fdump_frame_glyph_matrix): Don't segfault if invoked on a GUI
 -      frame; instead, print an error message.
 +      * w32font.c (struct font_callback_data, w32font_list_internal)
 +      (w32font_driver, w32font_match_internal): Use bool where appropriate.
  
 -2014-11-03  Jan Djärv  <jan.h.d@swipnet.se>
 +      * w32menu.c (x_activate_menubar, set_frame_menubar)
 +      (w32_dialog_show, initialize_frame_menubar, w32_menu_show)
 +      (is_simple_dialog): Use bool where appropriate.
  
 -      * nsfns.m (ns_set_doc_edited): Check for FRAME_NS (Bug#18925).
 +2015-01-28  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-10-31  Jan Djärv  <jan.h.d@swipnet.se>
 +      Use bool, not int, to track face changes
 +      * xfaces.c (face_change): Rename from face_change_count, and
 +      change from int to bool.  The var is now true (instead of nonzero)
 +      if attributes have changed; this is simpler.  All uses changed.
 +      (Bug#19698)
  
 -      * macfont.m (macfont_glyph_extents): Turn off syntetic bold
 -      if force_integral_p (i.e. no antialias).
 -      (macfont_draw): Check ns_antialias_text, also turn off syntetic
 -      bold if no antialias (Bug#18876).
 +2015-01-28  Eli Zaretskii  <eliz@gnu.org>
  
 -      * emacs.c (main): Don't chdir to $HOME on Cocoa if --chdir
 -      was given (Bug#18846).
 +      * dired.c (directory_files_internal, file_name_completion)
 +      [WINDOWSNT]: Signal an error when errno is set non-zero by
 +      'readdir', regardless of its value.
  
 -2014-10-30  Jan Djärv  <jan.h.d@swipnet.se>
 +      * w32.c (sys_readdir): Set errno to ENOENT when the directory
 +      doesn't exist and to EACCES when it's not accessible to the
 +      current user.  Set errno to zero when FindNextFile exhausts the
 +      directory, so that callers don't interpret that as an error and
 +      don't signal a file-error.
 +      (open_unc_volume): Set errno to ENOENT if WNetOpenEnum fails.
  
 -      * nsterm.h (ns_set_doc_edited): Declare taking no args.
 +      * dired.c (directory_files_internal) [WINDOWSNT]: If readdir
 +      returns NULL and errno is ENOTDIR, behave as if opendir failed to
 +      open the directory.  (Bug#19701)
  
 -      * nsfns.m (ns_set_doc_edited): Do all logic (check frames) here
 -      instead of in xdisp.c, function now takes void. (Bug#18884).
 +      * w32.c (sys_readdir): If FindFirstFile fails because the
 +      directory doesn't exist, set errno to ENOTDIR.
  
 -      * xdisp.c (prepare_menu_bars): Remove HAVE_NS code.
 -      (redisplay_internal): Call ns_set_doc_edited if HAVE_NS (Bug#18884).
 +2015-01-28  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * nsterm.h (EmacsScroller): Replace Lisp_Object win with
 -      struct window* (Bug#18889).
 -      Remove getMouseMotionPart.
 -      (ns_output): Make icon_top/left int.
 +      * nsterm.m (drawRect:): Add block/unblock_input (Bug#19660).
  
 -      * nsfns.m (x_icon): icon_top/left is int.
 +2015-01-28  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * nsterm.m (ns_mouse_position): Remove unused code.
 -      (initFrame:window:, dealloc): Use window instead of win.
 -      (getMouseMotionPart:window:x:y:): Remove, unused.
 -      (sendScrollEventAtLoc:fromEvent:): Make Lisp_Object win from window.
 +      Fix coding.c subscript error
 +      * coding.c (CODING_ISO_INVOKED_CHARSET):
 +      Avoid undefined behavior if CODING_ISO_INVOCATION returns negative.
  
 -2014-10-30  Samuel Bronson  <naesten@gmail.com>
 +2015-01-28  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (produce_image_glyph): Fix display of images in R2L
 +      screen lines: prepend the new glyph to the ones already there
 +      instead of appending it.
 +
 +      * w32fns.c (w32_set_title_bar_text): New function, including
 +      support for titles with non-ASCII characters outside of the
 +      current system codepage.
 +      (x_set_name, x_set_title): Use it.  (Bug#19590)
 +
 +      * indent.c (Fvertical_motion): Return zero if we started from ZV
 +      and there's an overlay after-string there.  (Bug#19553)
 +
 +      * emacs.c (usage_message): Fix the description of the -nl switch.
 +      (Bug#19542)
 +
 +      * xdisp.c (move_it_to, try_cursor_movement): Don't use the window
 +      end information if the window_end_valid flag is unset.
 +      (try_window_id): If the call to display_line invalidated the
 +      window end information, give up the try_window_id optimization.
 +      (Bug#19511)
 +
 +      * w32fns.c (Fx_server_version, Fx_server_vendor): Doc fix.
 +      * xfns.c (Fx_server_version, Fx_server_vendor): Doc fix.
 +
 +      * emacs.c (syms_of_emacs) <system-configuration>: Doc fix.  (Bug#19502)
 +
 +2015-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lisp.mk (lisp): Add cl-preloaded.
 +
 +2015-01-27  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use bool for boolean in xfaces.c
 +      * dispextern.h: Adjust to signature changes.
 +      * font.c (font_at, font_range):
 +      * fontset.c (Finternal_char_font):
 +      * fringe.c (draw_fringe_bitmap_1):
 +      * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
 +      (get_next_display_element, highlight_trailing_whitespace)
 +      (display_string, calc_line_height_property)
 +      (note_mode_line_or_margin_highlight, note_mouse_highlight):
 +      * xfaces.c (tty_suppress_bold_inverse_default_colors_p)
 +      (menu_face_changed_default, recompute_basic_faces)
 +      (Fbitmap_spec_p, parse_rgb_list, tty_lookup_color)
 +      (tty_defined_color, defined_color, face_color_gray_p)
 +      (face_color_supported_p, load_color2, load_face_colors)
 +      (Fx_list_fonts, LFACEP, push_named_merge_point)
 +      (resolve_face_name, lface_from_face_name_no_resolve)
 +      (lface_from_face_name, get_lface_attributes_no_remap)
 +      (get_lface_attributes, lface_fully_specified_p)
 +      (set_lface_from_font, merge_face_vectors, merge_named_face)
 +      (merge_face_ref, Finternal_make_lisp_face)
 +      (Finternal_lisp_face_p, Finternal_copy_lisp_face)
 +      (Finternal_set_lisp_face_attribute)
 +      (update_face_from_frame_parameter, set_font_frame_param)
 +      (face_boolean_x_resource_value)
 +      (Finternal_set_lisp_face_attribute_from_resource)
 +      (x_update_menu_appearance, Finternal_get_lisp_face_attribute)
 +      (Finternal_merge_in_global_face, Fface_font, face_attr_equal_p)
 +      (lface_equal_p, Finternal_lisp_face_equal_p)
 +      (Finternal_lisp_face_empty_p, lface_same_font_attributes_p)
 +      (Fcolor_distance, lookup_named_face, lookup_basic_face)
 +      (lookup_derived_face, Fface_attributes_as_vector)
 +      (x_supports_face_attributes_p, tty_supports_face_attributes_p)
 +      (Fdisplay_supports_face_attributes_p, realize_basic_faces)
 +      (realize_default_face, realize_named_face)
 +      (realize_non_ascii_face, realize_x_face, map_tty_color)
 +      (realize_tty_face, compute_char_face, face_at_buffer_position)
 +      (face_for_overlay_string, face_at_string_position):
 +      Use bool for boolean.
 +      * xfaces.c (set_lface_from_font):
 +      Return void, since callers never use the result.
 +
 +2015-01-26  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * image.c (lookup_pixel_color): Reorder conditions that are
 +      written backwards.
 +      (x_to_xcolors): Likewise.
 +      (x_detect_edges): Likewise.
 +      (png_load_body): Likewise.
 +      (gif_close): Likewise.
 +      (gif_load): Likewise.
 +
 +2015-01-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Use bool for boolean in w32term.c
 +      * w32term.c (x_update_window_begin, x_update_window_end)
 +      (x_update_end, x_after_update_window_line)
 +      (x_set_glyph_string_gc, x_draw_glyph_string_background)
 +      (x_draw_glyph_string_foreground)
 +      (x_draw_composite_glyph_string_foreground)
 +      (x_draw_glyphless_glyph_string_foreground)
 +      (x_draw_image_glyph_string, x_draw_glyph_string)
 +      (x_draw_stretch_glyph_string, note_mouse_movement)
 +      (w32_mouse_position, x_scroll_bar_report_motion)
 +      (x_horizontal_scroll_bar_report_motion, w32_read_socket)
 +      (w32_set_vertical_scroll_bar, w32_set_horizontal_scroll_bar)
 +      (w32_draw_window_cursor, x_new_font, x_set_offset)
 +      (x_set_window_size, x_make_frame_invisible, x_iconify_frame):
 +      Use bool where appropriate.
 +
 +      Use bool for boolean in w32fns.c
 +      * w32fns.c (w32_defined_color, x_decode_color)
 +      (Fxw_color_defined_p, Fxw_color_values, x_set_icon_type)
 +      (x_set_menu_bar_lines, x_change_tool_bar_height)
 +      (x_set_internal_border_width, x_explicitly_set_name)
 +      (x_implicitly_set_name, Fx_create_frame, w32_window)
 +      (x_create_tip_frame, Fx_show_tip): Use bool where appropriate.
 +
 +2015-01-25  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use bool for boolean in xfns.c
 +      * xfaces.c (x_update_menu_appearance):
 +      * xfns.c (x_real_positions, x_defined_color, x_decode_color)
 +      (xg_set_icon, xg_set_icon_from_xpm_data, x_set_cursor_color)
 +      (x_set_icon_type, x_set_icon_name, x_set_menu_bar_lines)
 +      (x_change_tool_bar_height, x_set_internal_border_width)
 +      (x_encode_text, x_set_name_internal, x_explicitly_set_name)
 +      (x_implicitly_set_name, x_default_scroll_bar_color_parameter)
 +      (hack_wm_protocols, xic_create_fontsetname, xic_free_xfontset)
 +      (x_window, x_icon, Fx_wm_set_size_hint, Fx_create_frame)
 +      (Fxw_color_defined_p, Fxw_color_values, x_create_tip_frame)
 +      (Fx_show_tip, clean_up_file_dialog, Fx_file_dialog)
 +      (clean_up_dialog, syms_of_xfns):
 +      * xterm.h (xg_set_icon, xg_set_icon_from_xpm_data)
 +      (xic_create_fontsetname):
 +      Use bool for boolean.
 +      * xfns.c: Include bitmaps/gray.xbm unconditionally.
 +
 +      Count MANY function args more reliably
 +      * alloc.c (Fgc_status, purecopy, unbind_to, garbage_collect_1):
 +      * buffer.c (Fbuffer_list, Fkill_buffer):
 +      * callint.c (read_file_name, Fcall_interactively):
 +      * charset.c (Fset_charset_priority, syms_of_charset):
 +      * chartab.c (uniprop_encode_value_numeric):
 +      * coding.c (syms_of_coding):
 +      * composite.c (syms_of_composite):
 +      * data.c (wrong_range):
 +      * dbusbind.c (syms_of_dbusbind):
 +      * dired.c (file_attributes):
 +      * editfns.c (Fdecode_time, update_buffer_properties, format2):
 +      * eval.c (run_hook_with_args_2, apply1, call1, call2, call3)
 +      (call4, call5, call6, call7):
 +      * fileio.c (Finsert_file_contents, choose_write_coding_system)
 +      (Fcar_less_than_car, build_annotations, auto_save_error):
 +      * filelock.c (get_boot_time):
 +      * fns.c (internal_equal, nconc2, Fyes_or_no_p, Fwidget_apply):
 +      (maybe_resize_hash_table, secure_hash):
 +      * font.c (font_style_to_value, font_open_by_name, Flist_fonts):
 +      * fontset.c (fontset_add, Fset_fontset_font):
 +      * ftfont.c (ftfont_lookup_cache):
 +      * gtkutil.c (xg_get_font):
 +      * insdel.c (signal_before_change, signal_after_change):
 +      * keymap.c (append_key):
 +      * lread.c (load_warn_old_style_backquotes, Fload, init_lread):
 +      * minibuf.c (Fread_buffer):
 +      * print.c (print_preprocess):
 +      * process.c (Fformat_network_address, Fmake_network_process)
 +      (server_accept_connection):
 +      * sound.c (Fplay_sound_internal):
 +      * term.c (Fsuspend_tty, Fresume_tty):
 +      * window.c (window_list):
 +      * xdisp.c (run_redisplay_end_trigger_hook, add_to_log)
 +      (message_with_string):
 +      * xfaces.c (Fx_list_fonts):
 +      * xfont.c (syms_of_xfont):
 +      * xselect.c (x_handle_selection_request)
 +      (x_handle_selection_clear, x_clear_frame_selections)
 +      (x_clipboard_manager_error_1):
 +      Prefer CALLMANY and CALLN to counting args by hand.
 +      * doc.c (reread_doc_file): Remove unused code.
 +      * fns.c (concat2, concat3): Redo to avoid need for local-var vector.
 +      (cmpfn_user_defined, hashfn_user_defined, Fmaphash):
 +      Prefer call1 and call2 to Ffuncall.
 +      * keyboard.c (safe_run_hook_funcall, safe_run_hooks):
 +      Use struct literal rather than a local var, for simplicity.
 +      * keymap.c (where_is_internal): Use NULL rather than a pointer
 +      to unused args.
 +      * lisp.h (CALLMANY, CALLN): New macros.
 +      * sound.c (Fplay_sound_internal): Coalesce duplicate code.
 +      Fixes: bug#19634
 +
 +      Use gnustep-config if available
 +      * emacs.c [NS_IMPL_GNUSTEP]: Don't include <GNUstepBase/GSConfig.h>.
 +      It doesn't appear to be needed, and the inclusion breaks on
 +      Ubuntu 14.10 when 'configure' uses 'gnustep-config'.
 +
 +2015-01-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (init_iterator): Restore a comment lost in transition.
 +
 +2015-01-22  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use bool for boolean in xfont.c, xftfont.c, xgselect.c
 +      * xfont.c (xfont_driver, xfont_chars_supported)
 +      (xfont_text_extents):
 +      * xftfont.c (xftfont_get_colors, xftfont_open)
 +      (xftfont_prepare_face, xftfont_done_face)
 +      (xftfont_cached_font_ok):
 +      * xgselect.c (xg_select):
 +      Use bool for boolean.
 +
 +      Don't downcase system diagnostics' first letters
 +      * fileio.c (report_file_errno): Don't downcase, and simplify.
 +      Fixes: bug#19642
 +
 +      Isolate NIL_IS_ZERO-assuming code better
 +      Suggested by Stefan Monnier in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00588.html
 +      * alloc.c (allocate_pseudovector):
 +      Use memclear, not memsetnil, to remove a 'verify'.
 +      * callint.c (Fcall_interactively):
 +      * dispnew.c (realloc_glyph_pool):
 +      * xdisp.c (init_iterator):
 +      Use memclear, not memset, to remove a 'verify'.
 +      * lisp.h (memclear): Rename from memsetnil, and take a byte
 +      count rather than a word count.  All callers changed.
 +
 +2015-01-20  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Undo port to hypothetical nonzero Qnil case
 +      This mostly undoes the previous change in this area.  See:
 +      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00570.html
 +      * alloc.c (allocate_pseudovector):
 +      * callint.c (Fcall_interactively):
 +      * dispnew.c (realloc_glyph_pool):
 +      * fringe.c (init_fringe):
 +      * lisp.h (memsetnil):
 +      * xdisp.c (init_iterator):
 +      Simplify by assuming that Qnil is zero, but verify the assumption.
 +      * lisp.h (NIL_IS_ZERO): Revert back to this symbol, removing
 +      NIL_IS_NONZERO.  All uses changed.
 +
 +2015-01-20  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (EV_TRAILER2): Set Vinhibit_quit to Qt (Bug#19531).
 +
 +2015-01-20  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Prefer xlispstrdup to avoid dumb calls to strlen.
 +      * nsfont.m (ns_get_family):
 +      * nsterm.m (ns_term_init):
 +      * w32fns.c (w32_window):
 +      * xfns.c (x_window, Fx_select_font): Use xlispstrdup.
 +
 +2015-01-20  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Correct an old fix for GTK font selection
 +      * gtkutil.c (xg_get_font): Fix off-by-2 typo.
 +      Fixes: bug#3228
 +
 +      Fix minor bugs with printing null bytes
 +      * minibuf.c (read_minibuf_noninteractive):
 +      * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]:
 +      Work even if the Lisp string contains a null byte.
 +
 +      Port to hypothetical case where Qnil is nonzero
 +      * alloc.c (allocate_pseudovector):
 +      * callint.c (Fcall_interactively):
 +      * coding.c (syms_of_coding):
 +      * dispnew.c (realloc_glyph_pool):
 +      * fringe.c (init_fringe):
 +      * lisp.h (memsetnil):
 +      * xdisp.c (init_iterator):
 +      Port to the currently-hypothetical case where Qnil is nonzero.
 +      * dispnew.c (adjust_glyph_matrix): Remove unnecessary verification,
 +      as there are no Lisp_Object values in the data here.
 +      * lisp.h (NIL_IS_NONZERO): New symbol, replacing NIL_IS_ZERO.
 +      All uses changed.  Define only if not already defined, so that one
 +      can debug with -DNIL_IS_NONZERO.
 +      * xdisp.c (init_iterator): Remove unnecessary initializations to 0.
 +
 +2015-01-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (adjust_glyph_matrix, realloc_glyph_pool): Verify that
 +      Qnil is represented as zero, before using that to initialize parts
 +      of the glyph structure.
 +
 +      * xdisp.c (init_iterator): Verify that Qnil is represented as
 +      zero, before using that to initialize parts of the iterator
 +      structure.
 +
 +2015-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Prefer memset to repeatedly assigning Qnil
 +      * alloc.c (allocate_pseudovector): Catch more bogus values.
 +      * alloc.c (allocate_pseudovector):
 +      * callint.c (Fcall_interactively):
 +      * coding.c (syms_of_coding):
 +      * fringe.c (init_fringe):
 +      Verify that Qnil == 0.
 +      * callint.c (Fcall_interactively):
 +      * eval.c (Fapply, Ffuncall):
 +      * fns.c (mapcar1, larger_vector):
 +      * font.c (font_expand_wildcards):
 +      * fringe.c (init_fringe):
 +      Prefer memset to assigning zeros by hand.
 +      * callint.c (Fcall_interactively):
 +      Remove duplicate assignment of Qnil to args[i].
 +      * coding.c (syms_of_coding):
 +      Prefer LISP_INITIALLY_ZERO to assigning zeros by hand.
 +      * fileio.c (Ffile_selinux_context):
 +      Rewrite to avoid need for Lisp_Object array.
 +      * lisp.h (XLI_BUILTIN_LISPSYM): New macro.
 +      (DEFINE_LISP_SYMBOL_END): Use it.
 +      (NIL_IS_ZERO): New constant.
 +      (memsetnil): New function.
 +
 +2015-01-16  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Tune pseudovector allocation assuming Qnil == 0.
 +      * alloc.c (allocate_pseudovector): Use memset for both
 +      Lisp_Objects and regular slots.  Add zerolen arg.
 +      * lisp.h (allocate_pseudovector): Adjust prototype.
 +      (ALLOCATE_PSEUDOVECTOR): Adjust user.
 +      (ALLOCATE_ZEROED_PSEUDOVECTOR): New macro.
 +      (allocate_hash_table, allocate_window, allocate_frame)
 +      (allocate_process, allocate_terminal): Remove prototypes.
 +      * fns.c (allocate_hash_table): Now static here.
 +      * frame.c (allocate_frame):
 +      * process.c (allocate_process):
 +      * terminal.c (allocate_terminal):
 +      * window.c (allocate_window): Now static here.
 +      Use ALLOCATE_ZEROED_PSEUDOVECTOR.  Add comment.
 +
 +      * lisp.h (XTERMINAL): Add eassert.
 +      * process.c (make_lisp_proc): Now static here.
 +
 +      Prefer INLINE functions in font.h to match style used in lisp.h.
 +      * font.h (FONTP, FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P)
 +      (CHECK_FONT, CHECK_FONT_SPEC, CHECK_FONT_ENTITY, CHECK_FONT_OBJECT)
 +      (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT, CHECK_FONT_GET_OBJECT):
 +      Now functions.
 +      * font.c (Ffont_otf_alternates, Fquery_font, Ffont_get_glyphs):
 +      * ftfont.c (ftfont_shape):
 +      * macfont.m (macfont_shape):
 +      * w32uniscribe.c (uniscribe_shape):
 +      * xftfont.c (xftfont_shape): Adjust CHECK_FONT_GET_OBJECT users.
 +
 +2015-01-16  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Give up on -Wsuggest-attribute=const
 +      * decompress.c (Fzlib_available_p):
 +      * gnutls.c (Fgnutls_available_p):
 +      * gtkutil.h (xg_uses_old_file_dialog):
 +      * xdisp.c (Ftool_bar_height):
 +      * xmenu.c (popup_activated):
 +      No longer const, since it's not const on at lest some
 +      configurations, and we shouldn't lie to the compiler.
 +
 +2015-01-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fileio.c: Include binary-io.h.
 +      (Fset_binary_mode): New function.
 +      (syms_of_fileio): Defsubr it.
 +      (syms_of_fileio) <Qstdin, Qstdout, Qstderr>: DEFSYM them.
 +
 +2015-01-15  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnutls.c (init_gnutls_functions): Import gnutls_x509_crt_check_issuer.
 +      (Fgnutls_peer_status): Use it to set the :self-signed flag.
 +      Rename the previous :self-signed to :unknown-ca. (Bug#19404)
 +      (Fgnutls_peer_status_warning_describe): Explain :unknown-ca flag.
 +
 +2015-01-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c (w32_wnd_proc): Ignore MENUITEMINFO's dwItemData data
 +      when FLAGS indicate the item is not highlighted.  (Bug#19596)
 +
 +2015-01-14  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * xmenu.c (update_frame_menubar): Remove garbaged code.
 +
 +2015-01-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      remove_slash_colon need not be inline
 +      * process.c, process.h (remove_slash_colon): No longer inline.
 +      This saves text bytes without hurting runtime performance.
 +
 +2015-01-14  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Avoid extra multibyteness check in ENCODE_FILE users.
 +      * callproc.c (encode_current_directory, Fcall_process, call_process):
 +      * dired.c (directory_files_internal, file_name_completion):
 +      Do not check for STRING_MULTIBYTE because encode_file_name
 +      is a no-op for unibyte strings.
 +
 +      * process.h (remove_slash_colon): New function.
 +      * callproc.c (encode_current_directory, call_process):
 +      * process.c (Fstart_process): Use it.
 +
 +      Consistently handle time zone specification.
 +      * editfns.c (decode_time_zone): New function, refactored out from ...
 +      (Fencode_time): ... adjusted user.
 +      (Fset_time_zone_rule): Use decode_time_zone.
 +
 +      * editfns.c (make_buffer_string_both): If requested range intersects
 +      the gap, don't move the latter but copy in two regions, thus avoiding
 +      unnecessary relocation of buffer data.
 +
 +2015-01-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use bool for boolean in xmenu.c, xml.c
 +      * xmenu.c (x_menu_set_in_use, popup_get_selection)
 +      (Fx_menu_bar_open_internal, popup_widget_loop)
 +      (x_activate_menubar, xg_crazy_callback_abort)
 +      (update_frame_menubar, set_frame_menubar)
 +      (initialize_frame_menubar, free_frame_menubar)
 +      (create_and_show_popup_menu, x_menu_show)
 +      (create_and_show_dialog, x_dialog_show):
 +      * xml.c (libxml2_loaded_p, init_libxml2_functions, parse_region)
 +      (Flibxml_parse_html_region, Flibxml_parse_xml_region):
 +      * xrdb.c (main) [TESTRM]:
 +      * xsettings.c (init_gsettings):
 +      * xterm.c (XFillRectangle, xg_scroll_callback)
 +      (xg_end_scroll_callback):
 +      * xterm.h (x_menu_set_in_use) [USE_GTK || USE_MOTIF]:
 +      Use bool for boolean.
 +      * xmenu.c (TRUE): Remove; no longer used.
 +      (show_help_event): Remove long-unused code.
 +      (set_frame_menubar): Remove "#if 1" and corresponding "#endif" lines.
 +
 +2015-01-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Don't say Fnext_read_file_uses_dialog_p is const
 +      It's const only if a windowing system is not used; don't say it's
 +      const otherwise.  See:
 +      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00310.html
 +      * fileio.c (next_read_file_uses_dialog_p): Remove.
 +      Move guts back to ...
 +      (Fnext_read_file_uses_dialog_p): ... here.
 +      Don't declare as const, as make-docfile.c now has a special case
 +      for this function.  This is an ugly hack, but it's better than
 +      lying to the compiler.
 +
 +      Remove now-unnecessary forward XTYPE decl
 +      * lisp.h (XTYPE): Remove forward declaration.  The recent merge
 +      from emacs-24 fixed the problem in a better way, by moving XPNTR's
 +      definition to after XTYPE's.
 +
 +2015-01-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix problems with 32-bit wide-int build exposed by MinGW.
 +      * lisp.h (XPNTR): Move definition to after XTYPE, to avoid
 +      compilation error in an unoptimized build when !USE_LSB_TAG.
 +
 +      * w32heap.c (DUMPED_HEAP_SIZE): For 32-bit wide-int build, use the
 +      same larger value as for the 64-bit build.
 +
 +      * w32term.h (SCROLL_BAR_PACK): Cast the result to UINT_PTR to
 +      avoid compiler warnings.
 +
 +      * w32proc.c (Fw32_get_codepage_charset, Fw32_set_keyboard_layout):
 +      Avoid compiler warnings about cast from integer to pointer of
 +      different size.
 +
 +      * w32menu.c (menubar_selection_callback, w32_menu_show): Cast to
 +      UINT_PTR instead of EMACS_INT, to avoid compiler warnings about
 +      casting from integer to pointer of different size.
 +      (add_menu_item): Pass the help-echo string as a pointer to
 +      Lisp_String, not as a Lisp_Object.
 +      (w32_menu_display_help): Use make_lisp_ptr to reconstruct a Lisp
 +      string object from its C pointer.
 +
 +      * w32fns.c (w32_msg_pump) <WM_EMACS_UNREGISTER_HOT_KEY>: Use
 +      make_lisp_ptr instead of XIL, to reconstruct a Lisp_Cons from its
 +      C pointer.
 +      <WM_EMACS_TOGGLE_LOCK_KEY>: msg.lparam is now a C integer.
 +      (Fx_create_frame): Type-cast the result of XFASTINT to avoild
 +      compiler warnings about size differences.
 +      (Fw32_unregister_hot_key): Pass the tail of w32_grabbed_keys as a
 +      pointer to a Lisp_Cons struct, not as a disguised EMACS_INT.
 +      (Fw32_toggle_lock_key): Pass the new state of the key as a C
 +      integer; use -1 for nil.  Doc fix.
 +
 +      * .gdbinit (xgetsym): New subroutine.
 +      (xsymname, xsymbol): Use it.
 +      (xprintsym): No need to call xgetptr.
 +
 +2015-01-13  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (adjust_frame_size): Make sure new numbers of
 +      lines/columns get installed after font size change (Bug#19575).
 +
 +2015-01-13  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Add DEFUN attributes.
 +      * callint.c (Finteractive):
 +      * character.c (Fcharacterp, Fmax_char):
 +      * data.c (Feq, Fnull, Fconsp, Fatom, Flistp, Fnlistp, Fsymbolp)
 +      (Fstringp, Fchar_or_string_p, Fintegerp, Fnatnump, Fnumberp)
 +      (Ffloatp, Fbyteorder):
 +      * decompress.c (Fzlib_available_p):
 +      * fns.c (Fidentity):
 +      * frame.c (Fframe_windows_min_size):
 +      * gnutls.c (Fgnutls_error_p, Fgnutls_available_p):
 +      * window.c (Fwindow__sanitize_window_sizes):
 +      * xdisp.c (Ftool_bar_height):
 +      * xfaces.c (Fface_attribute_relative_p): Add const attribute.
 +      * emacs.c (Fkill_emacs):
 +      * eval.c (Fthrow):
 +      * keyboard.c (Ftop_level, Fexit_recursive_edit)
 +      (Fabor_recursive_edit): Add noreturn attribute.
 +
 +      * search.c (fast_string_match_internal): New function,
 +      consolidated from...
 +      (fast_string_match, fast_string_match_ignore_case): ...functions
 +      which are...
 +      * lisp.h (fast_string_match, fast_string_match_ignore_case):
 +      inlined from here now.
 +      (fast_string_match_internal): Add prototype.
 +      * dired.c (file_name_completion): Use fast_string_match_internal.
 +
 +      * fileio.c (next_read_file_uses_dialog_p): New workaround ...
 +      (Fnext_read_file_uses_dialog_p): ... called from here to avoid
 +      ATTRIBUTE_CONST dependency from #ifdefs.  For details, see
 +      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00289.html.
 +
 +2015-01-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Port to 32-bit MingGW --with-wide-int
 +      Problem reported by Eli Zaretskii in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00265.html
 +      * lisp.h (struct Lisp_Sub_Char_Table): Check that offset matches
 +      what we think it is, rather than checking only its alignment (and
 +      doing so incorrectly on MinGW).
 +
 +2015-01-12  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * fileio.c (Ffile_name_as_directory, Fdirectory_file_name):
 +      Remove dead NILP check.
 +      * image.c (Flookup_image): Use regular format for docstring.
 +      * keyboard.c (apply_modifiers_uncached): Use stpcpy.
 +
 +2015-01-12  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * dispnew.c (change_frame_size_1): Pass Qchange_frame_size to
 +      adjust_frame_size.
 +      * frame.c (frame_default_tool_bar_height): New variable.
 +      (adjust_frame_size): Possibly add requested adjustment to
 +      Vframe_adjust_size_history.
 +      (make_frame): Initialize tool_bar_redisplayed_once slot.
 +      (Fset_frame_height, Fset_frame_width, Fset_frame_size): Clarify
 +      doc-string.  Call adjust_frame_size unconditionally (the frame's
 +      text size may remain unaltered but the pixel size may change).
 +      (x_figure_window_size): If frame_default_tool_bar_height was
 +      set, use it instead of calculating the tool bar height from
 +      DEFAULT_TOOL_BAR_IMAGE_HEIGHT.  Don't set
 +      Vframe_initial_frame_tool_bar_height.
 +      (Qchange_frame_size, Qxg_frame_set_char_size)
 +      (Qset_window_configuration, Qx_create_frame_1)
 +      (Qx_create_frame_2): New symbols.
 +      (Vframe_initial_frame_tool_bar_height): Remove.
 +      (Vframe_adjust_size_history): New history variable for debugging
 +      frame size adjustments.
 +      * frame.h (struct frame): New boolean slot
 +      tool_bar_redisplayed_once.
 +      (frame_default_tool_bar_height): Extern.
 +      * gtkutil.c (xg_frame_set_char_size): Pass Qxg_frame_set_char_size
 +      to adjust_frame_size.
 +      * nsfns.m (Fx_create_frame): Pass Pass Qx_create_frame_1 and
 +      Qx_create_frame_2 to adjust_frame_size.
 +      * w32fns.c (x_change_tool_bar_height): Call adjust_frame_size with
 +      inhibit 1 when we have not redisplayed the tool bar yet.
 +      (Fx_create_frame): Pass Pass Qx_create_frame_1 and
 +      Qx_create_frame_2 to adjust_frame_size.
 +      * w32menu.c (set_frame_menubar): Simplify adjust_frame_size
 +      call.
 +      * window.c (Fset_window_configuration):
 +      Pass Qset_window_configuration to adjust_frame_size.
 +      * xdisp.c (redisplay_tool_bar): Assign new height to
 +      frame_default_tool_bar_height.
 +      (redisplay_internal): If we haven't redisplayed this frame's
 +      tool bar, call redisplay_tool_bar early so we can adjust the
 +      frame size accordingly.
 +      * xfns.c (x_change_tool_bar_height): Call adjust_frame_size with
 +      inhibit 1 when we have not redisplayed the tool bar yet.
 +      (Fx_create_frame): Pass Pass Qx_create_frame_1 and
 +      Qx_create_frame_2 to adjust_frame_size.
 +
 +2015-01-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Have 'make' output better GEN names
 +      * Makefile.in (gl-stamp, globals.h): Simplify by putting the new
 +      contents of globals.h into gl-stamp.  This lets us use AM_V_GEN
 +      more naturally so that 'make' can output more-accurate names.
 +
 +2015-01-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * buffer.c (init_buffer_once): Initialize buffer_local_flags before
 +      calling reset_buffer_local_variables, and make sure we initialize
 +      it completely.
 +
 +2015-01-11  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * coding.c (Fcoding_system_plist): Use common style for docstring.
 +
 +2015-01-11  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Port to MSB hosts without optimization
 +      E.g., when configuring --with-wide-int CFLAGS='-O0' on x86,
 +      the inline function XTYPE needs to be declared before being used.
 +      * lisp.h (XTYPE): New forward declaration.
 +
 +2015-01-10  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Port to 32-bit --with-wide-int
 +      Prefer symbol indexes to struct Lisp_Symbol * casted and then
 +      widened, as the latter had trouble with GCC on Fedora 21 when
 +      configured --with-wide-int and when used in static initializers.
 +      * alloc.c (garbage_collect_1, which_symbols):
 +      * lread.c (init_obarray):
 +      Prefer builtin_lisp_symbol when it can be used.
 +      * dispextern.h (struct image_type.type):
 +      * font.c (font_property_table.key):
 +      * frame.c (struct frame_parm_table.sym):
 +      * keyboard.c (scroll_bar_parts, struct event_head):
 +      * xdisp.c (struct props.name):
 +      Use the index of a builtin symbol rather than its address.
 +      All uses changed.
 +      * lisp.h (TAG_SYMPTR, XSYMBOL_INIT): Remove, replacing with ...
 +      (TAG_SYMOFFSET, SYMBOL_INDEX): ... new macros that deal with
 +      symbol indexes rather than pointers, and which work better on MSB
 +      hosts because they shift right before tagging.  All uses changed.
 +      (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
 +      No longer noops on wide-int hosts, since they work now.
 +      (builtin_lisp_symbol): New function.
 +
 +      Port to HAVE_FREETYPE && !HAVE_XFT
 +      * dispextern.h (struct face.extra) [HAVE_FREETYPE && !HAVE_XFT]:
 +      * font.h (syms_of_xftfont) [HAVE_FREETYPE && !HAVE_XFT]:
 +      Declare in this case too.
 +
 +2015-01-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c (Fw32_register_hot_key): Use XINT instead of XLI.
 +
 +      * w32notify.c (Fw32notify_add_watch, w32_get_watch_object):
 +      Use make_pointer_integer instead of XIL.
 +      (Fw32notify_rm_watch): Use XINTPTR instead of XLI.
 +
 +      * w32inevt.c (handle_file_notifications): Use make_pointer_integer
 +      instead of XIL.  Put a list of the descriptor, action, and file
 +      name in event->arg, instead of spreading them between event->code
 +      and event->arg.
 +
 +      * w32term.c (queue_notifications): Use make_pointer_integer
 +      instead of XIL.  Put a list of the descriptor, action, and file
 +      name in event->arg, instead of spreading them between event->code
 +      and event->arg.
 +
 +      * keyboard.c (kbd_buffer_get_event) [HAVE_W32NOTIFY]: Adjust Lisp
 +      event creation to changes in w32term.c and w32inevt.c above.
 +
 +2015-01-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Port Qnil==0 changes to 32-bit --with-wide-int
 +      * lisp.h (lisp_h_XSYMBOL, XSYMBOL): Assume USE_LSB_TAG in the
 +      macro-implemented version.  For the non-USE_LSB_TAG case, supply
 +      a new inline function that is the inverse of the new TAG_SYMPTR.
 +      (lisp_h_XUNTAGBASE, XUNTAGBASE): Remove.  All uses removed.
 +      (TAG_SYMPTR) [!USE_LSB_TAG]: If the pointer subtraction yields a
 +      negative number, don't allow sign bits to bleed into the encoded
 +      value.  Shift in zero bits instead.
 +
 +      Refactor pointer-to-integer conversion
 +      * gfilenotify.c (monitor_to_lisp, lisp_to_monitor):
 +      Rename and move to lisp.h.  All uses changed.
 +      * lisp.h (XINTPTR, make_pointer_integer): New inline functions,
 +      which are renamed from gfilenotify.c's lisp_to_monitor and
 +      monitor_to_lisp, and with more-generic void * signatures.
 +
 +2015-01-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (buffer_posn_from_coords): Fix the value of the column
 +      returned for right-to-left screen lines.  (Before the change on
 +      2014-12-30, the incorrectly-computed X pixel coordinate concealed
 +      this bug.)
 +
 +      * .gdbinit (xsymname): New subroutine.
 +      (xprintsym, initial-tbreak): Use it to access the name of a symbol
 +      in a way that doesn't cause GDB to barf when it tries to
 +      dereference a NULL pointer.
 +
 +      * xdisp.c (next_element_from_c_string): Use Lisp integer zero as
 +      the object.
 +      (set_cursor_from_row, try_cursor_movement, dump_glyph)
 +      (insert_left_trunc_glyphs, append_space_for_newline)
 +      (extend_face_to_end_of_line, highlight_trailing_whitespace)
 +      (find_row_edges, ROW_GLYPH_NEWLINE_P, Fmove_point_visually)
 +      (Fbidi_resolved_levels, produce_special_glyphs)
 +      (rows_from_pos_range, mouse_face_from_buffer_pos)
 +      (note_mouse_highlight): Use nil as the object for glyphs inserted
 +      by the display engine, and test with NILP instead of INTEGERP.
 +      (Bug#19535)
 +
 +      * w32fns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
 +      the display engine.
 +
 +      * xfns.c (Fx_show_tip): Use NILP to test for glyphs inserted by
 +      the display engine.
 +
 +      * dispextern.h (struct glyph, struct it): Update comments for the
 +      OBJECT members.
 +
 +2015-01-08  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Port new Lisp symbol init to x86 --with-wide-int
 +      * lisp.h (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END):
 +      Define to empty on platforms where EMACS_INT_MAX != INTPTR_MAX, as
 +      GCC (at least) does not allow a constant initializer to widen an
 +      address constant.
 +
 +      * lisp.h (TAG_SYMPTR): Don't do arithmetic on NULL.
 +      This is a followup to the "Port Qnil==0 XUNTAG to clang" patch.
 +      Although clang doesn't need it, some other compiler might, and
 +      it's easy enough to be safe.
 +
 +      * conf_post.h (ATTRIBUTE_ALLOC_SIZE): Port to clang 3.5.0.
 +      Apparently clang removed support for the alloc_size attribute.
 +
 +      Port Qnil==0 XUNTAG to clang
 +      clang has undefined behavior if the program subtracts an integer
 +      from (char *) 0.  Problem reported by YAMAMOTO Mitsuharu in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00132.html
 +      * lisp.h (lisp_h_XUNTAG) [USE_LSB_TAG]:
 +      (XUNTAG) [!USE_LSB_TAG]: Port to clang 3.5.0.
 +
 +      Port GFileMonitor * hack to Qnil==0 platforms
 +      Reported by Glenn Morris in: http://bugs.gnu.org/15880#112
 +      * gfilenotify.c (monitor_to_lisp, lisp_to_monitor): New functions.
 +      (dir_monitor_callback, Fgfile_add_watch, Fgfile_rm_watch): Use them.
 +
 +2015-01-06  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (x_set_window_size): Call updateFrameSize to get real
 +      size instead of using widht/height.  The frame may be
 +      constrained (Bug#19482).
 +
 +2015-01-05  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * lisp.h (XSYMBOL): Parenthesize id in forward decl.
 +      Needed when neither optimizing nor inlining.
 +      Also, sort decls alphabetically.
 +
 +2015-01-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32proc.c, w32.h, w32fns.c, w32font.c, w32menu.c, w32notify.c:
 +      * w32proc.c, w32select.c, w32term.c, w32uniscribe.c: Remove
 +      declarations of Q* variables that represent symbols.
 +
 +2015-01-05  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use 0 for Qnil
 +      Fixes Bug#15880.
 +      If USE_LSB_TAG, arrange for the representation of Qnil to be zero so
 +      that NILP (x) is equivalent to testing whether x is 0 at the
 +      machine level.  The overall effects of this and the previous patch
 +      shrink the size of the text segment by 2.3% and speeds up
 +      compilation of all the .elc files by about 0.5% on my platform,
 +      which is Fedora 20 x86-64.
 +      * lisp.h (lisp_h_XPNTR, lisp_h_XSYMBOL, lisp_h_XUNTAG)
 +      (make_lisp_symbol) [USE_LSB_TAG]:
 +      Symbols now tag the difference from lispsym, not the pointer.
 +      (lisp_h_XUNTAGBASE, TAG_SYMPTR): New macros.
 +      (Lisp_Int0, Lisp_Int1, Lisp_Symbol, Lisp_Misc, Lisp_String, Lisp_Cons):
 +      Renumber so that Lisp_Symbol is 0, so that Qnil is zero.
 +      (XSYMBOL): New forward decl.
 +      (XUNTAGBASE): New function.
 +      (XUNTAG): Use it.
 +
 +      Compute C decls for DEFSYMs automatically
 +      Fixes Bug#15880.
 +      This patch also makes Q constants (e.g., Qnil) constant addresses
 +      from the C point of view.
 +      * alloc.c, bidi.c, buffer.c, bytecode.c, callint.c, casefiddle.c:
 +      * casetab.c, category.c, ccl.c, charset.c, chartab.c, cmds.c, coding.c:
 +      * composite.c, data.c, dbusbind.c, decompress.c, dired.c, dispnew.c:
 +      * doc.c, editfns.c, emacs.c, eval.c, fileio.c, fns.c, font.c, fontset.c:
 +      * frame.c, fringe.c, ftfont.c, ftxfont.c, gfilenotify.c, gnutls.c:
 +      * image.c, inotify.c, insdel.c, keyboard.c, keymap.c, lread.c:
 +      * macfont.m, macros.c, minibuf.c, nsfns.m, nsfont.m, nsimage.m:
 +      * nsmenu.m, nsselect.m, nsterm.m, print.c, process.c, profiler.c:
 +      * search.c, sound.c, syntax.c, term.c, terminal.c, textprop.c, undo.c:
 +      * window.c, xdisp.c, xfaces.c, xfns.c, xftfont.c, xmenu.c, xml.c:
 +      * xselect.c, xsettings.c, xterm.c:
 +      Remove Q vars that represent symbols (e.g., Qnil, Qt, Qemacs).
 +      These names are now defined automatically by make-docfile.
 +      * alloc.c (init_symbol): New function.
 +      (Fmake_symbol): Use it.
 +      (c_symbol_p): New function.
 +      (valid_lisp_object_p, purecopy): Use it.
 +      * alloc.c (marked_pinned_symbols):
 +      Use make_lisp_symbol instead of make_lisp_ptr.
 +      (garbage_collect_1): Mark lispsym symbols.
 +      (CHECK_ALLOCATED_AND_LIVE_SYMBOL): New macro.
 +      (mark_object): Use it.
 +      (sweep_symbols): Sweep lispsym symbols.
 +      (symbol_uses_obj): New function.
 +      (which_symbols): Use it.  Work for lispsym symbols, too.
 +      (init_alloc_once): Initialize Vpurify_flag here; no need to wait,
 +      since Qt's address is already known now.
 +      (syms_of_alloc): Add lispsym count to symbols_consed.
 +      * buffer.c (init_buffer_once): Compare to Qnil, not to make_number (0),
 +      when testing whether storage is all bits zero.
 +      * dispextern.h (struct image_type):
 +      * font.c (font_property_table):
 +      * frame.c (struct frame_parm_table, frame_parms):
 +      * keyboard.c (scroll_bar_parts, struct event_head):
 +      * xdisp.c (struct props):
 +      Use XSYMBOL_INIT (Qfoo) and struct Lisp_Symbol * rather than &Qfoo and
 +      Lisp_Object *, since Qfoo is no longer an object whose address can be
 +      taken.  All uses changed.
 +      * eval.c (run_hook): New function.  Most uses of Frun_hooks changed to
 +      use it, so that they no longer need to take the address of a Lisp sym.
 +      (syms_of_eval): Don't use DEFSYM on Vrun_hooks, as it's a variable.
 +      * frame.c (syms_of_frame): Add defsyms for the frame_parms table.
 +      * keyboard.c (syms_of_keyboard): Don't DEFSYM Qmenu_bar here.
 +      DEFSYM Qdeactivate_mark before the corresponding var.
 +      * keymap.c (syms_of_keymap): Use DEFSYM for Qmenu_bar and Qmode_line
 +      instead of interning their symbols; this avoids duplicates.
 +      (LISP_INITIALLY, TAG_PTR)
 +      (DEFINE_LISP_SYMBOL_BEGIN, DEFINE_LISP_SYMBOL_END, XSYMBOL_INIT):
 +      New macros.
 +      (LISP_INITIALLY_ZERO): Use it.
 +      (enum symbol_interned, enum symbol_redirect, struct Lisp_Symbol)
 +      (EXFUN, DEFUN_ARGS_MANY, DEFUN_ARGS_UNEVALLED, DEFUN_ARGS_*):
 +      Move decls up, to avoid forward uses.  Include globals.h earlier, too.
 +      (make_lisp_symbol): New function.
 +      (XSETSYMBOL): Use it.
 +      (DEFSYM): Now just a placeholder for make-docfile.
 +      * lread.c (DEFINE_SYMBOLS): Define, for globals.h.
 +      (intern_sym): New function, with body taken from old intern_driver.
 +      (intern_driver): Use it.  Last arg is now Lisp integer, not ptrdiff_t.
 +      All uses changed.
 +      (define_symbol): New function.
 +      (init_obarray): Define the C symbols taken from lispsym.
 +      Use plain DEFSYM for Qt and Qnil.
 +      * syntax.c (init_syntax_once): No need to worry about
 +      Qchar_table_extra_slots.
 +
 +2015-01-04  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      'temacs -nw' should not call missing functions
 +      Without this patch, "temacs -nw" fails with the diagnostic
 +      "emacs: Symbol's function definition is void: frame-windows-min-size"
 +      and messes up the tty's state.
 +      * frame.c (Fframe_windows_min_size): New placeholder function.
 +      (syms_of_frame): Define it.
 +      * window.c (Fwindow__sanitize_window_sizes): New placeholder.
 +      (syms_of_window): Define it.
 +
 +      Less 'make' chatter for lisp dir
 +      * Makefile.in (%.elc): Adjust to compile-onefile change in
 +      ../lisp/Makefile.in.
 +
 +      batch write-region no longer says "Wrote FOO"
 +      This cuts down on 'make' chatter a bit.
 +      * fileio.c (Fwrite_region):
 +      Don't output "Wrote /whatever/foo.elc" if noninteractive.
 +
 +2015-01-03  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Revert previous change to produce_composite_glyph
 +      * term.c (produce_composite_glyph): Revert previous change (Bug#19496).
 +
 +      Pacify gcc -Wparentheses
 +      * frame.c (x_set_frame_parameters): Add parens (Bug#19428).
 +
 +2015-01-03  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (x_set_frame_parameters): Call Fset_frame_size only if
 +      f->can_x_set_window_size is true.
 +      * xterm.c (x_set_window_size_1): Call change_frame_size with
 +      text sizes instead of pixel sizes (Bug#19428).
 +
 +2015-01-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (pos_visible_p): Fix up the X coordinate for
 +      right-to-left screen lines.  (Bug#19473)
 +
 +2015-01-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32proc.c (Fw32_get_codepage_charset): Doc fix.  (Bug#19458)
 +
 +2014-12-31  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Simplify setfattr use by assuming GNU make
 +      * Makefile.in (PAXCTL_if_present, SETFATTR_if_present): New macros.
 +      (emacs$(EXEEXT), temacs$(EXEEXT), bootstrap-emacs$(EXEEXT)): Use them.
 +      Simplify by using GNU make rather than shell conditionals,
 +      by using ln -f rather than rm -f followed by ln,
 +      and by preferring $@ to spelling out the destination.
 +
 +2014-12-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * sysdep.c [WINDOWSNT]: Include sys/socket.h, without which this
 +      file doesn't compile on MS-Windows.
 +
 +2014-12-29  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Allow return value of system-name to vary.  (Bug#19438)
 +      * filelock.c (current_lock_owner):
 +      * xrdb.c (get_environ_db):
 +      * xterm.c (same_x_server):
 +      * xterm.c (x_term_init):
 +      Prefer (system-name) to system-name, and avoid naming
 +      locals 'system-name'.
 +      * editfns.c (cached_system_name): New static var.
 +      (init_and_cache_system_name): New function.
 +      (init_editfns, Fsystem_name): Use it.
 +      (syms_of_editfns): Initialize it and Vsystem_name to the same value.
 +      * sysdep.c [HAVE_SOCKETS]: Don't include <sys/socket.h>, <netdb.h>.
 +      (h_errno) [TRY_AGAIN && !HAVE_H_ERRNO]: Remove decl.
 +      (init_system_name) [HAVE_SOCKETS]: Don't canonicalize the name.
 +      Don't create a new string if the current value is already correct.
 +
 +2014-12-28  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix produce_composite_width typo
 +      * term.c (produce_composite_glyph):
 +      Fix typo that confused number of columns for pixel width.
 +
 +2014-12-28  Paul Eggert  <eggert@Penguin.CS.UCLA.EDU>
 +
 +      Wrap dll functions more simply
 +      * decompress.c, gnutls.c, image.c, xml.c:
 +      If WINDOWSNT, use '#define FOO fn_FOO' to wrap dll functions,
 +      rather than the inverse when not WINDOWSNT.  This isolates the
 +      fn_* business into the WINDOWSNT-specific section of the code,
 +      which makes it easier to maintain the generic code.
 +      * decompress.c (DEF_ZLIB_FN, LOAD_ZLIB_FN):
 +      * gnutls.c (DEF_GNUTLS_FN, LOAD_GNUTLS_FN):
 +      * image.c (DEF_IMGLIB_FN, LOAD_IMGLIB_FN):
 +      * xml.c (DEF_XML2_FN, LOAD_XML2_FN):
 +      Remove.  All uses replaced by DEF_DLL_FN.
 +      * decompress.c (inflateInit2): Remove; no longer needed.
 +      * w32.h (DEF_DLL_FN, LOAD_DLL_FN): New macros.
 +
 +      Port memory-full checking to GnuTLS 3.3
 +      Instead of using gnutls_global_set_mem_functions, check every call
 +      to a GnuTLS function that might return an indication of memory
 +      exhaustion.  Suggested by Dmitry Antipov in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg02056.html
 +      * gnutls.c (gnutls_global_set_mem_functions) [WINDOWSNT]: Remove.
 +      (init_gnutls_functions): Do not load gnutls_global_set_mem_functions.
 +      (fn_gnutls_global_set_mem_functions) [!WINDOWSNT]: Remove.
 +      All uses removed.
 +      (check_memory_full): New function.
 +      (emacs_gnutls_handshake, emacs_gnutls_handle_error)
 +      (gnutls_make_error, gnutls_certificate_details, Fgnutls_peer_status)
 +      (Fgnutls_boot): Use it.
 +      (emacs_gnutls_global_init): Avoid gnutls_global_set_mem_functions.
 +
 +2014-12-27  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix parse_settings to match internal documentation
 +      * xsettings.c (parse_settings): Return the number of settings seen.
 +      Count the settings changes accurately.
 +      (read_settings): Don't confuse number of settings changes with
 +      the return code from XGetWindowProperty.
 +
 +2014-12-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (set_iterator_to_next) <GET_FROM_STRING>: Limit search in
 +      composition_compute_stop_pos to the number of characters in the
 +      string.  (Bug#19435)
 +      <GET_FROM_BUFFER, GET_FROM_STRING>: Simplify code.
 +
 +      * composite.c (composition_compute_stop_pos): If no composition
 +      was found in a string before ENDPOS, and ENDPOS is the string end,
 +      no need to back up to a safe point.
 +
 +      * dispextern.h (struct it) <end_charpos>: Improve commentary.
 +
 +2014-12-27  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsimage.m (allocInitFromFile:): Initialize bmRep.
 +      (dealloc): Release bmRep.
 +        (setPixmapData): Make bmRep local so class member is not
 +        set (Bug#19133).
 +      (setPixmapData): Rename local variable bmRep to avoid compiler
 +      warning.
 +
 +2014-12-27  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert
 +      when going to fullscreen (Bug#0x180004f).
 +
 +2014-12-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * window.c (Fwindow_body_width): Doc fix.  (Bug#19395)
 +
 +2014-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring.
 +
 +2014-12-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * gnutls.c (gnutls_init): Fix deprecation warning from GCC.
 +
 +2014-12-26  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use bool for boolean in xselect.c, xsettings.c
 +      * xselect.c (x_get_local_selection, struct selection_data)
 +      (x_selection_request_lisp_error, struct prop_location)
 +      (x_handle_selection_request, x_convert_selection)
 +      (waiting_for_other_props_on_window, expect_property_change)
 +      (wait_for_property_change, x_handle_property_notify)
 +      (x_get_foreign_selection, x_get_window_property)
 +      (receive_incremental_selection)
 +      (x_get_window_property_as_lisp_data)
 +      (lisp_data_to_selection_data, Fx_get_selection_internal)
 +      (x_send_client_event):
 +      * xselect.c, xterm.h (x_handle_dnd_message):
 +      * xsettings.c (dpyinfo_valid, parse_settings, read_settings)
 +      (apply_xft_settings, read_and_apply_settings)
 +      (xft_settings_event, init_gsettings, init_xsettings)
 +      (syms_of_xsettings):
 +      Use bool for boolean.
 +      * xselect.c (x_get_window_property): Omit last arg, which was an
 +      unused boolean.
 +      * xsettings.c (apply_xft_settings): Remove 2nd arg, which was
 +      always true.  All callers changed.
 +
 +2014-12-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32proc.c (sys_spawnve, get_lcid_callback): Use strcpy instead
 +      of strcat.
 +
 +      * w32menu.c (add_menu_item): Use stpcpy instead of strcat.
 +
 +      * w32.c (sys_readdir, stat_worker, symlink): Use strcpy instead of
 +      strcat.
 +
 +2014-12-26  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use bool for boolean in xsmfns.c
 +      * xsmfns.c, xterm.h (x_session_have_connection):
 +      * xsmfns.c (doing_interact, smc_interact_CB, Fhandle_save_session):
 +      Use bool for boolean.
 +      (x_session_initialize, Fhandle_save_session):
 +      Prefer NILP (x) to EQ (x, Qnil).
 +
 +2014-12-25  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * callproc.c (child_setup):
 +      * dbusbind.c (xd_signature_cat):
 +      * doc.c (get_doc_string, Fsnarf_documentation):
 +      * editfns.c (Fuser_full_name):
 +      * frame.c (xrdb_get_resource):
 +      * gtkutil.c (xg_get_file_with_chooser):
 +      * tparam.c (tparam1):
 +      * xfns.c (xic_create_fontsetname):
 +      * xrdb.c (gethomedir, get_user_db, get_environ_db):
 +      * xsmfns.c (smc_save_yourself_CB):
 +      Rewrite to avoid the need for strcat, typically by using stpcpy
 +      and/or lispstpcpy.  strcat tends to be part of O(N**2) algorithms.
 +      * doc.c (sibling_etc):
 +      * xrdb.c (xdefaults):
 +      Now a top-level static constant.
 +
 +2014-12-23  Didier Verna  <didier@didierverna.net> (tiny change).
 +
 +      * nsselect.m (Fns_selection_owner_p): Return a Lisp boolean, not a
 +      C one (Bug#19396).
 +
 +2014-12-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (x_bitmap_icon): Partly revert change from 2014-03-21 which
 +      breaks icon setting for Gtk+ except for initial frame (Bug#19403).
 +
 +2014-12-22  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use bool for boolean in xterm.c
 +      * frame.h, nsterm.m, w32term.c, w32term.h, xterm.c:
 +      (x_set_window_size, x_bitmap_icon):
 +      * nsterm.m (ns_frame_raise_lower, x_new_font):
 +      * termhooks.h (struct terminal.toggle_invisible_pointer_hook)
 +      (struct terminal.frame_raise_lower_hook):
 +      * w32term.c (w32_frame_raise_lower):
 +      * xterm.c, xterm.h (x_text_icon):
 +      * xterm.c (x_update_window_begin, x_update_window_end)
 +      (x_update_end, x_after_update_window_line)
 +      (x_set_glyph_string_gc, x_draw_glyph_string_background)
 +      (x_draw_glyph_string_foreground)
 +      (x_draw_composite_glyph_string_foreground)
 +      (x_alloc_lighter_color, x_draw_relief_rect)
 +      (x_draw_glyph_string_box, x_draw_image_relief)
 +      (x_draw_image_glyph_string, x_draw_stretch_glyph_string)
 +      (x_draw_underwave, x_draw_glyph_string, x_show_hourglass)
 +      (x_hide_hourglass):
 +      (XFillRectangle) [HAVE_GTK3]:
 +      (XTtoggle_invisible_pointer, frame_highlight, frame_unhighlight)
 +      (x_focus_changed, x_find_modifier_meanings, note_mouse_movement)
 +      (XTmouse_position, xt_action_hook, xt_horizontal_action_hook)
 +      (x_send_scroll_bar_event, xm_scroll_callback)
 +      (xg_scroll_callback, xaw_jump_callback, xaw_scroll_callback)
 +      (x_create_toolkit_scroll_bar)
 +      (x_create_horizontal_toolkit_scroll_bar)
 +      (x_set_toolkit_horizontal_scroll_bar_thumb, x_scroll_bar_create)
 +      (x_scroll_bar_set_handle, XTset_vertical_scroll_bar)
 +      (XTset_horizontal_scroll_bar, x_scroll_bar_expose)
 +      (x_scroll_bar_handle_click, x_scroll_bar_note_movement)
 +      (x_scroll_bar_report_motion)
 +      (x_horizontal_scroll_bar_report_motion, x_net_wm_state)
 +      (handle_one_xevent, XTread_socket, x_draw_bar_cursor)
 +      (x_draw_window_cursor, x_clear_errors)
 +      (x_trace_wire, x_new_font, x_set_offset, wm_supports)
 +      (set_wm_state, x_set_sticky, get_current_wm_state)
 +      (do_ewmh_fullscreen, x_handle_net_wm_state)
 +      (x_check_expected_move, x_sync_with_move, x_wait_for_event)
 +      (x_set_window_size_1, XTframe_raise_lower)
 +      (x_make_frame_visible, x_iconify_frame)
 +      (x_timeout_atimer_activated_flag, same_x_server, x_display_ok)
 +      (x_term_init, x_process_timeouts, x_activate_timeout_atimer)
 +      (x_delete_terminal, x_initialize, syms_of_xterm):
 +      Use bool for boolean.
 +
 +2014-12-20  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * composite.h (struct composition.width): Now int
 +      instead of unsigned short, as we prefer signed integers.
 +
 +      Let charset tick grow past USHRT_MAX
 +      * charset.c, charset.h (charset_ordered_list_tick):
 +      Now EMACS_UINT, not unsigned short.
 +      * fontset.c (reorder_font_vector): Allow the tick to grow to the
 +      maximum representable Emacs integer value before wrapping it around.
 +
 +      Simplify unexec file mode setting
 +      * unexaix.c, unexcoff.c, unexelf.c, unexmacosx.c:
 +      Don't include <sys/stat.h> when no longer needed.
 +      (unexec): Create file with correct mode in the first place,
 +      rather than overwriting the mode later and fiddling with the
 +      global umask in the mean time.  Avoid bogus usage like
 +      'umask (777)', which should have been 'umask (0777)'.
 +      (mark_x): Remove. All callers removed.
 +
 +2014-12-19  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Minor cleanups for Lisp objects and symbols
 +      * alloc.c (next_vector, set_next_vector):
 +      * lisp.h (lisp_h_INTEGERP, make_number, XFASTINT, make_natnum):
 +      (lisp_h_make_number) [USE_LSB_TAG]:
 +      Use Lisp_Int0 instead of the mystery constant 0.
 +      * alloc.c (mark_object): Always set and use po; that's simpler.
 +      (CHECK_LIVE, CHECK_ALLOCATED_AND_LIVE):
 +      Properly parenthesize definientia.
 +      * bidi.c (bidi_initialize):
 +      * buffer.c (init_buffer_once):
 +      * nsfns.m (syms_of_nsfns):
 +      * nsmenu.m (syms_of_nsmenu):
 +      * nsselect.m (syms_of_nsselect):
 +      Prefer DEFSYM to defining by hand.
 +      * buffer.c (syms_of_buffer): Omit unneeded staticpros.
 +      * data.c: Fix too-long line.
 +      * lisp.h (DECLARE_GDB_SYM): New macro.
 +      (DEFINE_GDB_SYMBOL_BEGIN): Use it.
 +      (DEFINE_GDB_SYMBOL_BEGIN, DEFINE_GDB_SYMBOL_END) [!MAIN_PROGRAM]:
 +      Declare the symbol, so it's visible to everywhere lisp.h is included.
 +      Move forward decls as far forward as they can go,
 +      to allow future changes to use them.
 +
 +2014-12-18  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * gnutls.c: Include gnutls.h.
 +      This to check syms_of_gnutls's API even when !HAVE_GNUTLS.
 +      * image.c (svg_load): Fix pointer signedness.
 +
 +2014-12-18  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (frame_windows_min_size): New argument IGNORE.
 +      (adjust_frame_size): When called from change_frame_size call
 +      frame_windows_min_size with IGNORE Qt so we can ignore size
 +      restrictions.
 +
 +2014-12-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * font.c (Ffont_info): Add more font information to the vector
 +      returned by the function, inspired by query-font.  Doc fix.
 +      (Bug#19395)
 +
 +2014-12-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keyboard.c (input_was_pending): New var.
 +      (read_char): Use it to make sure we only skip redisplay when we can't
 +      keep up with the repeat rate.
 +
 +2014-12-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keyboard.c (swallow_events): Don't redisplay if there's input pending.
 +
 +2014-12-17  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * image.c (svg_load): Watch out for nil value of current buffer's
 +      filename.  Re-enable filename thing for not-a-file case.
 +
 +2014-12-17  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      Partially disabled previous change.
 +
 +      * image.c (svg_load): Temporarily disabled filename thing for
 +      not-a-file case as it can cause crashs.
 +
 +2014-12-17  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      Fix problem with images referenced within svg files. (bug#19373)
 +
 +      * image.c: Additional parameter 'filename' for
 +      svg_load_image. Include "buffer.h".  Define library function
 +      rsvg_handle_set_base_uri for WINDOWSNT.
 +      (init_svg_functions): Initialize rsvg_handle_set_base_uri.
 +      (fn_rsvg_handle_set_base_uri): Define fn_rsvg_handle_set_base_uri.
 +      (svg_load): Pass a filename to svg_load_image: either name of
 +      actual file or of current buffer's file.
 +      (svg_load_image): New parameter 'filename', used for setting
 +      base_uri, necessary for loading referenced images. (bug#19373)
 +
 +2014-12-16  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * lread.c (init_obarray): Declare Qt as special.
 +      This fixes a typo in the 2012-05-15 patch that
 +      tried to declare Qt as special.
 +
 +2014-12-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Various fixes to use bool type and constants.
 +      * dispnew.c (update_single_window): Remove arg `force_p' since it's
 +      always true.
 +      * xfaces.c (clear_face_cache): Use bool for the argument type.
 +
 +2014-12-15  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Correct same_at_end when restoring window points
 +      * fileio.c (Finsert_file_contents): Compute same_at_end character
 +      position using the old buffer size, not the new one, since
 +      restore_window_points wants the old size.
 +      Fixes: debbugs:19161
 +
 +2014-12-14  Alan Mackenzie  <acm@muc.de>
 +
 +      New feature optionally to accelerate auto-repeated scrolling.
 +
 +      * xdisp.c: Remove "static" from declaration of Qfontification_functions.
 +
 +      * window.c (window_scroll): Bind fontification-functions to nil
 +      when scrolling by whole screens and
 +      fast-but-imprecise-scrolling is non-nil.
 +      (syms_of_window): New DEFVAR_BOOL fast-but-imprecise-scrolling.
 +
 +      * lisp.h (bool): Declare Qfontification_functions extern.
 +
 +2014-12-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Load system's default trusted Certificate Authorities if available.
 +      * gnutls.c (gnutls_certificate_set_x509_system_trust)
 +      [GNUTLS >= 3.0.20]: Declare for WINDOWSNT.
 +      (init_gnutls_functions)(gnutls_certificate_set_x509_system_trust)
 +      [GNUTLS >= 3.0.20]: Load from shared library for WINDOWSNT.
 +      (fn_gnutls_certificate_set_x509_system_trust) [!WINDOWSNT]:
 +      Define new macro.
 +      (Fgnutls_boot) [GNUTLS >= 3.0.20]:
 +      Call gnutls_certificate_set_x509_system_trust.  Log an error message if
 +      it fails.
 +
 +2014-12-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * regex.c (analyze_first): Rename from analyze_first.
 +
 +2014-12-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * alloc.c (XMALLOC_BASE_ALIGNMENT): Use max_align_t instead of
 +      a hack involving a union.
 +
 +2014-12-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * gnutls.c (Fgnutls_available_p, syms_of_gnutls):
 +      Move gnutls-available-p out of the HAVE_GNUTLS conditional, and define
 +      them only once.
 +
 +2014-12-13  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * emacs.c (main): Always include gnutls.h and run syms_of_gnutls.
 +
 +      * gnutls.h: Always declare syms_of_gnutls.
 +
 +      * gnutls.c (Fgnutls_available_p syms_of_gnutls): Move later for
 +      clarity.  Let the availability check return Qnil when the GnuTLS
 +      integration is not available, instead of erroring out.
 +      (Bug#19346)
 +
 +2014-12-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (move_it_in_display_line_to, display_line):
 +      Don't disallow overflow-newline-into-fringe when word-wrap is in
 +      effect.  (Bug#19300)
 +
 +2014-12-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * fileio.c: Better preserve window-points during revert (bug#19161).
 +      (Qget_buffer_window_list): New var.
 +      (get_window_points_and_markers, restore_window_points): New functions.
 +      (Finsert_file_contents): Use them to save and restore window-points.
 +
 +2014-12-11  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xterm.c (x_delete_terminal): Call emacs_close for X connection
 +      descriptor if called from x_connection_closed and always delete
 +      this descriptor from keyboard waiting set (Bug#19147).
 +
 +2014-12-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (BIDI_CACHE_MAX_ELTS_PER_SLOT): New macro.
 +      (bidi_cache_max_elts): New global variable.
 +      (bidi_shelve_header_size): Add the sizeof bidi_cache_max_elts.
 +      (bidi_cache_shrink, bidi_initialize): Reset bidi_cache_max_elts to
 +      its initial value.
 +      (bidi_cache_search): Handle overflown cache.  Improve commentary.
 +      (bidi_cache_ensure_space): Limit allocations to the current value
 +      of bidi_cache_max_elts.  Force xpalloc not to over-allocate.
 +      If less than a full BIDI_CACHE_CHUNK is left to the limit, decrease
 +      the increment to not exceed the limit.
 +      (bidi_cache_iterator_state): Now returns non-zero if succeeded to
 +      cache, zero otherwise (meaning the cache overflowed).  In the
 +      latter case, set bidi_cache_last_idx to -1.
 +      (bidi_peek_at_next_level): Handle overflown cache.
 +      (bidi_push_it): Increase the cache limit for iterating the new object.
 +      (bidi_pop_it): Decrease the cache limit back to previous value.
 +      (bidi_shelve_cache): Shelve the current value of the cache limit.
 +      (bidi_unshelve_cache): Restore the value of cache limit.
 +      (bidi_find_bracket_pairs): If the cache overflows while looking
 +      for the paired bracket, give up and let bidi_resolve_neutrals
 +      process the bracket as a simple neutral.  (Bug#19322)
 +      (bidi_find_other_level_edge): If the cache overflows, fall back on
 +      Plan B, which effectively stops the reordering and restarts it on
 +      the next character (after resetting the cache).
 +      (bidi_move_to_visually_next): When the cache overflows, reset it
 +      after processing the last cached character.
 +
 +2014-12-10  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix glitches in gnutls.c, mostly memory-related
 +      * gnutls.c: Sort macro definitions by name.
 +      (fn_gnutls_transport_set_errno): Omit unreachable definition.
 +      (fn_gnutls_x509_crt_get_signature): Omit unused symbol.
 +      (gnutls_hex_string): Arg is now unsigned char *, to avoid a cast.
 +      Prefer ptrdiff_t for sizes.  Check for arithmetic overflow when
 +      calculating string length.  Use make_uninit_string, to avoid
 +      copying the string.  Cast the char, not the pointer.
 +      (gnutls_certificate_details): Use xmalloc and xfree, not malloc
 +      and free.  Work even for dates past the year 9999.  Use void *
 +      for buffers, to avoid casts.
 +
 +2014-12-09  Andy Moreton  <andrewjmoreton@gmail.com>  (tiny change)
 +
 +      * gnutls.c (gnutls_protocol_get_name): Fix a copy/paste typo.
 +
 +2014-12-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (Fgnutls_peer_status): Return the key exchange, cipher
 +      and MAC algorithms.
 +
 +2014-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * process.c: Whitespace and line-break nitpicks.
 +
 +2014-12-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (gnutls_certificate_details): The :signature isn't
 +      that useful, so remove it.
 +      (gnutls_certificate_details): Clean up whitespace slightly.
 +      (Fgnutls_peer_status): Return the Diffie-Hellman prime bits for
 +      the connection.
 +      (gnutls_certificate_details): Put :signature-algorithm back again,
 +      which was removed by mistake.
 +      (emacs_gnutls_handle_error): Fatal errors should be on level 1, so
 +      that they are not messaged by default (bug#16253).
 +      (Fgnutls_error_fatalp): Doc fix (bug#18210).
 +
 +      * gnutls.c: Add Windows specs for gnutls_dh_get_prime_bits.
 +
 +2014-12-07  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsimage.m (setPixmapData): Make bmRep local so class member is not
 +      set (Bug#19133).
 +
 +2014-12-05  Lee Duhem  <lee.duhem@gmail.com>  (tiny change)
 +
 +      * eval.c (Fsignal): Remove duplicate test.
 +      (Fautoload_do_load): Fix up docstring.
 +
 +2014-12-05  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (represented_filename, represented_frame): New variables.
 +      (ns_set_represented_filename): New function.
 +      (sendEvent:): Set represented filename here to avoid flicker,
 +      related to Bug#18757.
 +
 +      * nsterm.h: Declare ns_set_represented_filename.
 +
 +      * nsfns.m (ns_set_name_as_filename): Don't set represented filename
 +      at once, call ns_set_represented_filename instead.
 +
 +2014-12-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispextern.h (enum bidi_dir_t): Force NEUTRAL_DIR to be zero.
 +      (struct bidi_stack): Reduce size by using bit fields and by
 +      packing sos, override, and isolate_status into a single 8-bit
 +      byte called 'flags'.
 +
 +      * bidi.c (ISOLATE_STATUS, OVERRIDE): New macros.
 +      (bidi_push_embedding_level): Construct flags from individual
 +      bits.  Adapt to changes in prev_for_neutral and next_for_neutral
 +      members.
 +      (bidi_pop_embedding_level): Use ISOLATE_STATUS.  Extract 'sos'
 +      from flags.  Adapt to changes in prev_for_neutral,
 +      next_for_neutral, and last_strong members.
 +      (bidi_line_init): Initialize flags to zero.
 +      (bidi_resolve_explicit, bidi_resolve_weak, bidi_resolve_brackets)
 +      (bidi_resolve_neutral): Use ISOLATE_STATUS and OVERRIDE.
 +
 +2014-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eval.c (backtrace_eval_unrewind): Rewind also the excursions.
 +      (Fapply): Try and simplify the control flow.
 +
 +2014-12-03  Chris Zheng  <chriszheng99@gmail.com>  (tiny change)
 +
 +      * gnutls.c (init_gnutls_functions, gnutls_certificate_details):
 +      Use gnutls_sign_get_name directly because
 +      gnutls_sign_algorithm_get_name is a macro on MinGW (bug#19231).
 +      (init_gnutls_functions): Load missing gnutls_server_name_set.
 +
 +2014-12-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_find_first_overridden): New function.
 +
 +      * xdisp.c (Fbidi_find_overridden_directionality): New function.
 +      (syms_of_xdisp): Defsubr it.
 +
 +      * dispextern.h (bidi_find_first_overridden): Add prototype.
 +
 +2014-12-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsimage.m (initFromSkipXBM:width:height:flip:length:): Set bmRep
 +      to nil after release (Bug#9133).
 +
 +2014-11-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Port better to AddressSanitizer.
 +      These changes suffice for temacs on x86-64 with GCC 4.9.2 and
 +      -fsanitize=address.
 +      * alloc.c (valid_pointer_p) [ADDRESS_SANITIZER]:
 +      Return -1 or 0, as the pipe trick doesn't work.
 +      * alloc.c (relocatable_string_data_p, mark_object, sweep_symbols):
 +      * data.c (Ffset):
 +      * print.c (print_object):
 +      When a pointer-check primitive returns -1, do not assume this
 +      means the pointer is valid or that the underlying system has failed.
 +      It could just be that addresses are being sanitized so Emacs can't
 +      test for pointer validity.
 +      * lisp.h (defined_GC_CHECK_STRING_BYTES): New constant.
 +      (USE_STACK_STRING) [GC_CHECK_STRING_BYTES]: Now false, since the
 +      string validity checker doesn't work on stack-based strings.
 +
 +2014-11-29  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Improve clarity of USE_LSB_TAG definition.
 +      Reported by Lee Duhem.  Suggested by Andreas Schwab in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg02222.html
 +      * lisp.h (USE_LSB_TAG): Define in terms of the (simpler)
 +      VAL_MAX / 2 rather than in terms of the (more complicated)
 +      EMACS_INT_MAX >> GCTYPEBITS, and adjust commentary to match.
 +
 +2014-11-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (handle_single_display_spec): When ignoring a fringe
 +      bitmap display, reset the ignore_overlay_strings_at_pos_p flag.
 +      (next_element_from_buffer): When done with overlays, reset the
 +      ignore_overlay_strings_at_pos_p flag.  (Bug#19201)
 +
 +2014-11-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c (Fw32_shell_execute): Convert forward slashes in
 +      DOCUMENT to backslashes, if DOCUMENT is a file.  (Bug#19141)
 +
 +2014-11-29  Ulrich Müller  <ulm@gentoo.org>
 +
 +      * Makefile.in (temacs$(EXEEXT)): Use consistent flag settings
 +      for paxctl and setfattr. Fixes temacs startup failure with
 +      grsecurity/PaX enabled Linux kernel (bug#19067).
 +
 +2014-11-27  Oscar Fuentes  <ofv@wanadoo.es>
 +
 +      * w32.c, w32heap.c, w32term.c:
 +      Use MINGW_W64 instead of _W64.
 +
 +2014-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003).
 +
 +2014-11-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (gnutls_ip_address_p): New function.
 +      (Fgnutls_boot): Only send SNI if the host name is not an IP address.
 +
 +2014-11-26  Toke Høiland-Jørgensen  <toke@toke.dk>  (tiny change)
 +
 +      * gnutls.c (Fgnutls_boot): Send the server name over (bug#18208).
 +
 +2014-11-25  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix gnutls problems caught by static checking.
 +      * gnutls.c (Fgnutls_boot): Remove unused local.
 +      (Fgnutls_boot): Fix pointer signedness.
 +
 +2014-11-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (gnutls_certificate_details): Don't include certain
 +      certificate details on older gnutls versions (bug#19168).
 +      (syms_of_gnutls): Export gnutls_peer_status_warning_describe.
 +      (gnutls_certificate_details): Reversed check in last checkin.
 +
 +2014-11-25  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnutls.c (Fgnutls_peer_status): Check GNUTLS_INITSTAGE, not gnutls_p.
 +      (Fgnutls_peer_status_warning_describe): Add function to describe a
 +      peer verification warning symbol.
 +      (Fgnutls_peer_status): Use it.
 +      (Fgnutls_boot): Use it.  Minor logging fixes.
 +
 +2014-11-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c: Fix compilation warnings given fix --enable-gcc-warnings.
 +
 +2014-11-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.c (main) <--version>: Make use of PACKAGE_NAME.
 +
 +      * Makefile.in (emacs.res): Use ../nt rule, rather than duplicating it.
 +      (ntsource, WINDRES, EMACS_MANIFEST): Remove, now unused.
 +
 +2014-11-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c: Fix Windows function definition of
 +      gnutls_x509_crt_get_fingerprint.
 +
 +      * gnutls.c: Fix Windows return value for gnutls_pk_algorithm_get_name.
 +
 +      * gnutls.c (Fgnutls_boot): Save certificate for later inspection.
 +
 +      * process.h: Added more fields to Lisp_Process to track
 +      certificate details.
 +
 +      * gnutls.c (gnutls_hex_string, gnutls_certificate_details)
 +      (Fgnutls_peer_status): New functions to export TLS certificate
 +      details to Emacs Lisp.
 +
 +2014-11-23  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (gtk_adjustment_configure): Define for Gtk+ < 2.14.
 +      (xg_set_toolkit_horizontal_scroll_bar_thumb): Remove wrong version
 +      check for gtk_adjustment_configure (Bug#19149).
 +      (gtk_adjustment_configure): Don't use 2.14 functions (Bug#19149).
 +
 +2014-11-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (emacs.res): Add dependency on icons/hand.cur.  Use $<.
 +
 +2014-11-22  Martin Rudalics  <rudalics@gmx.at>
 +
 +      Don't shrink frame when using desktop-save-mode (Bug#19048).
 +      * w32fns.c (x_set_tool_bar_lines): Always call
 +      x_change_tool_bar_height (Bug#19048).
 +      (x_change_tool_bar_height): Mark frame as garbaged since
 +      adjust_frame_size might not have done that.
 +      * xfns.c (x_set_tool_bar_lines): Always call
 +      x_change_tool_bar_height (Bug#19048).
 +      (x_change_tool_bar_height): Mark frame as garbaged since
 +      adjust_frame_size might not have done that.
 +
 +2014-11-21  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * xml.c (parse_region): Take care of new optional parameter
 +      'discard-comments' of 'libxml-parse(html|xml)-region'.
 +      (Flibxml_parse_html_region, Flibxml_parse_xml_region):
 +      New optional parameter 'discard-comments'.
 +
 +2014-11-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Improve time stamp handling, and be more consistent about it.
 +      * editfns.c (invalid_time): New function.
 +      Use it instead of 'error ("Invalid time specification")'.
 +      (time_add, time_subtract, time_arith, Ftime_add, Ftime_less_p)
 +      (decode_float_time, lisp_to_timespec, lisp_time_struct):
 +      New functions.
 +      (make_time_tail, make_time): Remove.  All uses changed to use
 +      new functions or plain list4i.
 +      (disassemble_lisp_time): Return effective length if successful.
 +      Check that LOW is an integer, if it's combined with other components.
 +      (decode_time_components): Decode into struct lisp_time, not
 +      struct timespec, so that we can support a wide set of times
 +      regardless of whether time_t is signed.  Decode plain numbers
 +      as seconds since the Epoch, and nil as the current time.
 +      (lisp_time_argument, lisp_seconds_argument, Ffloat_time):
 +      Reimplement in terms of new functions.
 +      (Fencode_time): Just use list2i.
 +      (syms_of_editfns): Add time-add, time-subtract, time-less-p.
 +      * keyboard.c (decode_timer): Don't allow the new formats (floating
 +      point or nil) in timers.
 +      * systime.h (LO_TIME_BITS): New constant.  Use it everywhere in
 +      place of the magic number '16'.
 +      (struct lisp_time): New type.
 +      (decode_time_components): Use it.
 +      (lisp_to_timespec): New decl.
 +
 +2014-11-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * intervals.h (INTERVAL_WRITABLE_P): Check the `inhibit-read-only'
 +      text property.
 +
 +      * callint.c (Fcall_interactively): Pass in nil as argument to
 +      Fbarf_if_buffer_read_only.
 +
 +      * fileio.c (Finsert_file_contents): Ditto.
 +
 +      * insdel.c (prepare_to_modify_buffer_1): Pass start region in.
 +
 +      * textprop.c (verify_interval_modification): Check buffer
 +      readedness after the last interval.
 +
 +      * buffer.c (Fbarf_if_buffer_read_only): Don't raise an error if
 +      the text at POSITION (new optional argument) has the
 +      `inhibit-read-only' text property set.
 +
 +2014-11-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * window.c (window_scroll_pixel_based): Avoid truncation/rounding
 +      errors in computing the number of pixels to scroll.
 +      Suggested by Kelly Dean <kelly@prtime.org>.  (Bug#19060)
 +
 +2014-11-16  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsmenu.m (update_frame_tool_bar): If tool bar changes height,
 +      call updateFrameSize.
 +
 +      * nsterm.m (setFrame:): Remove call to display (Bug#18757).
 +
 +2014-11-16  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfns.m (x_set_foreground_color, x_set_background_color)
 +      (x_set_cursor_color, Fxw_color_values): Block/unblock input,
 +      use SET_FRAME_GARBAGED instead of redraw_frame (Bug#19036).
 +
 +2014-11-15  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (ns_send_appdefined): Check for application defined
 +      event on Cocoa (Bug#18993).
 +      (run): Restore code before the previous 18993 fix.
 +
 +2014-11-14  David Reitter  <david.reitter@gmail.com>
 +
 +      * nsterm.m (run): Set timeout for event loop to prevent hang.
 +      (Bug#18993)
 +
 +2014-11-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * .gitignore: Add emacs-[1-9]*, to ignore files like emacs-25.0.50.1.
 +
 +2014-11-14  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xfont.c (xfont_list_pattern): Do not allocate font entity object
 +      for each candidate font but attempt to reuse it from previous improper
 +      candidate, if any.
 +
 +2014-11-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Avoid undefined behavior in color table hashing.
 +      * image.c (CT_HASH_RGB) [COLOR_TABLE_SUPPORT]: Remove, replacing with ...
 +      (ct_hash_rgb) [COLOR_TABLE_SUPPORT]: New function.  All uses changed.
 +      This function avoids undefined behavior with signed shift overflow.
 +
 +2014-11-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fileio.c (Finsert_file_contents): Invalidate buffer caches also
 +      when the inserted text does not need decoding.  (Bug#18982)
 +
 +2014-11-10  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.h (EmacsScroller): judge returns bool.
 +
 +      * nsterm.m (ns_set_vertical_scroll_bar): Release bar.
 +      (ns_judge_scroll_bars): Only set removed if judge returns true.
 +      (judge): Returns bool == condemned.  Remove self from window.
 +      (setPosition:portion:whole:): Remove raise SIGIO (Bug#18757).
 +
 +2014-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keyboard.c (command_loop_1): Record this-command in recent-keys.
 +      (Frecent_keys): Rewrite. and add optional `include-cmds' arg.
 +
 +2014-11-09  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (ns_set_vertical_scroll_bar)
 +      (ns_set_horizontal_scroll_bar): Cleanup merge error.
 +
 +2014-11-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * xgselect.c (xg_select): Don't assume n_gfds is nonnegative
 +      merely because tmo_in_millisec is nonnegative.  The 1st call
 +      to g_main_context_query could succeed while the 2nd one fails.
 +
 +      * frame.c (Fcan_run_window_configuration_change_hook): Return a value.
 +
 +2014-11-08  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (run): Only use non-system event loop if OSX version is
 +      exactly 10.9 (Bug#18993).
 +      (ns_set_vertical_scroll_bar): Don't call bar setPosition: unless
 +      needed (Bug#18757).
 +
 +2014-11-08  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * callproc.c (encode_current_directory): Support handling of file
 +      names prepended by "/:".  (Bug#18891)
 +
 +2014-11-08  Alan Mackenzie  <acm@muc.de>
 +
 +      * syntax.c (back_comment): Fix off-by-one error (bug#18022).
 +
 +2014-11-08  Dima Kogan  <dima@secretsauce.net>
 +
 +      * xgselect.c (xg_select): Use g_main_context_acquire (bug#18861).
 +
 +2014-11-08  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dired.c (Ffile_attributes): Return Qnil, if Fexpand_file_name
 +      raises an error.  (Bug#18891)
 +
 +2014-11-08  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (adjust_frame_size): Call x_set_window_size only if
 +      f->can_x_set_window_size is set.
 +      (make_frame): Initialize f->can_x_set_window_size and
 +      f->can_run_window_configuration_change_hook.
 +      (Fcan_run_window_configuration_change_hook): New function.
 +      * frame.h (frame): Split `official' into `can_x_set_window_size'
 +      and `can_run_window_configuration_change_hook'.
 +      * nsfns.m (Fx_create_frame): Set f->can_x_set_window_size.
 +      * w32fns.c (Fx_create_frame, x_create_tip_frame):
 +      Set f->can_x_set_window_size.
 +      * window.c (run_window_configuration_change_hook):
 +      Return immediately if either f->can_x_set_window_size or
 +      f->can_run_window_configuration_change_hook are false.
 +      (Fset_window_configuration): Instead of f->official set
 +      f->can_x_set_window_size.
 +      * xfns.c (Fx_create_frame, x_create_tip_frame):
 +      Set f->can_x_set_window_size.
 +
 +2014-11-08  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (EmacsScroller.dealloc): Reinstate, removed at merge
 +      cleanup from 2014-11-01 (Bug#18972).
 +
 +2014-11-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keyboard.c: Call gui-set-selection instead of x-set-selection.
 +      * xdisp.c (window-scroll-functions): Improve docstring.
 +
 +2014-11-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Uniquify the 'size' symbol.
 +      * frame.c (Qsize):
 +      * w32notify.c (Qsize): Remove.
 +      * lisp.h (Qsize): New decl.
 +      * lread.c (Qsize): Now extern.
 +      * w32notify.c (syms_of_w32notify): No need to defsym.
 +
 +2014-11-07  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * dispnew.c (change_frame_size_1): Fix call of
 +      adjust_frame_size.
 +      * frame.c (Qsize, Qframe_position, Qframe_outer_size)
 +      (Qframe_inner_size, Qexternal_border_size, Qtitle_height)
 +      (Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external)
 +      (Qtool_bar_size): New constants.
 +      (frame_inhibit_resize, adjust_frame_size): New argument to
 +      handle case where frame_inhibit_implied_resize is a list.
 +      (Fmake_terminal_frame, Fset_frame_height, Fset_frame_width)
 +      (Fset_frame_size, x_set_left_fringe, x_set_right_fringe)
 +      (x_set_right_divider_width, x_set_bottom_divider_width)
 +      (x_set_vertical_scroll_bars, x_set_horizontal_scroll_bars)
 +      (x_set_scroll_bar_width, x_set_scroll_bar_height):
 +      Update callers.
 +      (frame-inhibit-implied-resize): Rewrite doc-string.
 +      * frame.h (frame_inhibit_resize, adjust_frame_size):
 +      Fix external declarations.
 +      (Qframe_position, Qframe_outer_size)
 +      (Qframe_inner_size, Qexternal_border_size, Qtitle_height)
 +      (Qmenu_bar_external, Qmenu_bar_size, Qtool_bar_external)
 +      (Qtool_bar_size): Extern them.
 +      * gtkutil.c (FRAME_TOTAL_PIXEL_HEIGHT, FRAME_TOTAL_PIXEL_WIDTH)
 +      (xg_height_or_width_changed): Remove.
 +      (xg_frame_set_char_size): Adjust adjust_frame_size calls.
 +      (menubar_map_cb, xg_update_frame_menubar, free_frame_menubar)
 +      (tb_size_cb, update_frame_tool_bar, free_frame_tool_bar)
 +      (xg_change_toolbar_position): Call adjust_frame_size directly.
 +      * nsfns.m (x_set_internal_border_width, Fx_create_frame):
 +      Fix calls of adjust_frame_size.
 +      * w32fns.c (x_set_internal_border_width, x_set_menu_bar_lines)
 +      (Fx_create_frame, x_create_tip_frame): Adjust adjust_frame_size calls.
 +      (x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that
 +      frame can get resized when tool-bar-lines parameter changes from
 +      or to zero.
 +      (Fw32_frame_menu_bar_size): Return fourth value.
 +      (Fw32_frame_rect): Block input around system calls
 +      (Fx_frame_geometry): New function.
 +      * w32menu.c (set_frame_menubar): Adjust adjust_frame_size call.
 +      * w32term.c (x_new_font): Adjust adjust_frame_size call.
 +      * widget.c (EmacsFrameSetCharSize): Adjust frame_inhibit_resize call.
 +      * window.c (Fset_window_configuration): Adjust adjust_frame_size call.
 +      * xfns.c (x_set_menu_bar_lines, x_set_internal_border_width)
 +      (Fx_create_frame): Adjust adjust_frame_size calls.
 +      (x_set_tool_bar_lines, x_change_tool_bar_height): Make sure that
 +      frame can get resized when tool-bar-lines parameter changes from
 +      or to zero.
 +      (Fx_frame_geometry): New function.
 +      * xmenu.c (update_frame_menubar): On Lucid call
 +      adjust_frame_size with one pixel less height to avoid that
 +      repeatedly adding/removing the menu bar grows the frame.
 +      (free_frame_menubar): On Motif arrange to optionally preserve
 +      the old frame height when removing the menu bar.
 +      * xterm.c (x_new_font): Adjust adjust_frame_size call.
 +
 +2014-11-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (Fdump_glyph_matrix, Fdump_frame_glyph_matrix): Doc fix.
 +      (Fdump_frame_glyph_matrix): Don't segfault if invoked on a GUI
 +      frame; instead, print an error message.
 +
 +2014-11-03  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfns.m (ns_set_doc_edited): Check for FRAME_NS (Bug#18925).
 +
 +2014-11-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsimage.m (allocInitFromFile:): Initialize bmRep.
 +      (dealloc): Release bmRep.
 +
 +      * nsterm.h (EmacsImage): Remove imageListNext, refCount, reference,
 +      imageListSetNext, imageListNext.
 +
 +      * nsimage.m (ImageList, imageListNext, imageListSetNext:)
 +      (reference): Remove.
 +      (allocInitFromFile:): Remove searching ImageList and calling
 +      reference (Bug#18918).
 +      (dealloc): Remove handling if ImageList.
 +
 +2014-11-02  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * process.c (catch_child_signal): Fix incorrect assertion.
 +
 +2014-11-01  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * macfont.m (macfont_draw):
 +      * nsterm.m (ns_mouse_position, judge): Clean up merge conflict.
 +
 +      * macfont.m (macfont_glyph_extents): Turn off synthetic bold
 +      if force_integral_p (i.e. no antialias).
 +      (macfont_draw): Check ns_antialias_text, also turn off synthetic
 +      bold if no antialias (Bug#18876).
 +
 +      * emacs.c (main): Don't chdir to $HOME on Cocoa if --chdir
 +      was given (Bug#18846).
 +
 +      * nsterm.h (ns_set_doc_edited): Declare taking no args.
 +
 +      * nsfns.m (ns_set_doc_edited): Do all logic (check frames) here
 +      instead of in xdisp.c, function now takes void. (Bug#18884).
 +
 +      * xdisp.c (prepare_menu_bars): Remove HAVE_NS code.
 +      (redisplay_internal): Call ns_set_doc_edited if HAVE_NS (Bug#18884).
 +
 +      * nsterm.h (EmacsScroller): Replace Lisp_Object win with
 +      struct window* (Bug#18889).
 +      Remove getMouseMotionPart.
 +      (ns_output): Make icon_top/left int.
 +
 +      * nsfns.m (x_icon): icon_top/left is int.
 +
 +      * nsterm.m (ns_mouse_position): Remove unused code.
 +      (initFrame:window:, dealloc): Use window instead of win.
 +      (getMouseMotionPart:window:x:y:): Remove, unused.
 +      (sendScrollEventAtLoc:fromEvent:): Make Lisp_Object win from window.
 +
 +2014-11-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * keyboard.c (readable_events): When FLAGS include
 +      READABLE_EVENTS_FILTER_EVENTS, ignore BUFFER_SWITCH_EVENT events.
 +      This avoids returning non-nil from input-pending-p when only such
 +      events are in the queue.  (Bug#18856)
 +
 +2014-11-01  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsselect.m (QCLIPBOARD, QSECONDARY, QTEXT, QFILE_NAME)
 +      (NXPrimaryPboard, NXSecondaryPboard): Declare static.
 +      (Qforeign_selection): Remove.
 +      (ns_get_local_selection): Identation fix.
 +      (syms_of_nsselect): Remove Qforeign_selection, ns-lost-selection-hooks
 +
 +      * nsselect.m (ns_get_local_selection): Remove calling of
 +      functions in Vselection_converter_alist (Bug#18911).
 +      (syms_of_nsselect): Remove Vselection_converter_alist.
 +
 +2014-10-31  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * font.c (copy_font_spec): Redesign to avoid Fcopy_alist
 +      and unnecessary initialization.  Adjust comments.
 +
 +2014-10-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_cache_reset_to): Invalidate bidi_cache_last_idx by
 +      setting it to -1.
 +      (bidi_find_bracket_pairs): Pass to bidi_cache_reset_to a relative
 +      index, not an absolute one, as that's what the function expects.
 +
 +2014-10-30  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to realize
 +      font on an initial frame when running as a daemon (Bug#18869).
 +
 +      * fontset.c (toplevel): Adjust comment to match 2014-06-19 change.
 +
 +2014-10-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fileio.c (Fexpand_file_name): Use make_unibyte_string, not
 +      build_string, when importing a home directory.  (Bug#18873)
 +
 +2014-12-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (buffer_posn_from_coords):
 +      Use WINDOW_WANTS_HEADER_LINE_P, not WINDOW_WANTS_MODELINE_P, to
 +      account for the header-line height.  (Bug#18839)
 +
 +2014-10-28  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * xml.c (parse_region): Do not forget the first document child.
 +
 +2014-10-25  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsselect.m: pasteboard_changecount is new.
 +      (ns_store_pb_change_count, ns_get_pb_change_count)
 +      (ns_get_our_change_count_for): New functions.
 +      (ns_string_to_pasteboard_internal): Correct comment.
 +      type => gtype in eassert, Call ns_store_pb_change_count.
 +      (Fns_own_selection_internal): Remove data, use value (Bug#18799).
 +      (Fns_disown_selection_internal, Fns_selection_owner_p):
 +      Replace Vselection_alist check, with change count check.
 +      (Fns_get_selection): Initialize val to Qnil.  Only get local
 +      selection if change counts match (Bug#18799).
 +      (nxatoms_of_nsselect): Initialize pasteboard_changecount.
 +
 +2014-10-25  Noam Postavsky  <npostavs@users.sourceforget.net>
 +
 +      * w32proc.c (create_child): If calling a quoted batch file,
 +      pass NULL for exe.  (Bug#18745)
 +
 +2014-10-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_resolve_explicit, bidi_find_bracket_pairs)
 +      (bidi_resolve_brackets): Use end of string position rather than ZV
 +      when iterating over a string.  (Bug#18815)
 +
 +2014-10-24  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * keyboard.c (make_lispy_position): Return coordinates also when
 +      on scroll bars, fringes, margins or not in a window.
 +      * xdisp.c (show_mouse_face): Don't change cursor face during
 +      mouse tracking.
 +
 +2014-10-23  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (Fset_frame_height, Fset_frame_width, Fset_frame_size)
 +      (frame_resize_pixelwise, frame_inhibit_implied_resize):
 +      Fix doc-strings (Bug#18789).
 +
 +2014-10-23  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * Makefile.in (ACLOCAL_INPUTS): Omit unnecessary use of 'wildcard'.
 +
 +2014-10-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Optimize redisplay of simple bracketed text.
 +      * bidi.c (bidi_cache_reset_to): New function.
 +      (bidi_cache_reset): Call it.
 +      (bidi_init_it, bidi_line_init): Initialize the bracket_pairing_pos
 +      member to -1.
 +      (bidi_resolve_explicit): Reset bracket_pairing_pos and
 +      bracket_enclosed_type only if bracket_pairing_pos's value is not
 +      ZV.
 +      (MAX_BPA_STACK): Make sure the value is signed.
 +      (PUSH_BPA_STACK): If the BPA stack overflows, don't bail out, but
 +      stop pushing values onto the stack.
 +      (bidi_find_bracket_pairs): If the bracketed text is only on the
 +      base embedding level, remove all the states cached by this
 +      function from the cache, and return zero, so that the brackets in
 +      this segment of text are processed as normal neutrals.
 +      (bidi_resolve_brackets): Detect the brackets that are to be
 +      processed as neutrals, and don't call bidi_find_bracket_pairs on
 +      them.  (Bug#18778)
 +
 +2014-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * w32select.c (Fw32_selection_exists_p): Rename from
 +      Fx_selection_exists_p.
 +      (syms_of_w32select): Adjust accordingly.
 +
 +      * w16select.c (Fw16_selection_exists_p): Rename from
 +      Fx_selection_exists_p.
 +      (syms_of_win16select): Adjust accordingly.
 +
 +      * nsselect.m (ns_get_local_selection): Signal error rather than `quit'.
 +      (Fns_own_selection_internal): Tighten scoping.
 +      (Fns_selection_exists_p): Rename from Fx_selection_exists_p.
 +      (Fns_get_selection): Rename from Fx_get_selection_internal.
 +      (Fns_get_selection_internal, Fns_store_selection_internal):
 +      Remove functions.
 +      (syms_of_nsselect): Adjust accordingly.
 +
 +2014-10-21  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * w32fns.c (Fw32_frame_menu_bar_size): New function.
 +      * w32term.c (x_set_window_size): Account for wrapped menu bar
 +      lines when setting up frame height (Bug#15174 and Bug#18720).
 +      (w32_add_wrapped_menu_bar_lines): New variable.
 +
 +2014-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
 +      move point.
 +
 +2014-10-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * Merge in all changes up to 24.4 release.
 +
 +2014-10-19  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_update_menubar, xg_update_menu_item): Only call
 +      g_object_notify for label if Gtk+ >= 2.16 (Bug#16522).
 +
 +      * xterm.h (x_output): Remove net_wm_state_hidden_seen.
 +
 +      * xterm.c (handle_one_xevent): Check return value from
 +      x_handle_net_wm_state, remove net_wm_state_hidden_seen (Bug#18722).
 +      (get_current_wm_state): Remove net_wm_state_hidden_seen setting.
 +
 +      * gtkutil.c (create_dialog): Don't use gtk_dialog_get_action_area on
 +      Gt+ >= 3.12, or gtk_misc_set_alignment on Gtk+ >= 3.14 (Bug#18674).
 +      (make_widget_for_menu_item): Don't use gtk_misc_set_alignment on
 +      Gtk+ >= 3.14 (Bug#18674).
 +      (update_frame_tool_bar): Don't use  gtk_misc_set_padding on
 +      Gtk+ >= 3.14 (Bug#18674).
 +
 +2014-10-18  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * gtkutil.c: Remove no-longer-used code.
 +      (xg_update_menubar): Remove unused local and unnecessary call to
 +      gtk_menu_item_get_submenu.
 +      (XG_TOOL_BAR_PROXY_BUTTON, xg_tool_bar_proxy_callback)
 +      (xg_get_tool_bar_widgets, xg_tool_bar_proxy_help_callback)
 +      (TOOLBAR_TOP_WIDGET): Remove; no longer used.
 +
 +2014-10-18  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xfns.c (syms_of_xfns): Remove x-gtk-whole-detached-tool-bar.
 +
 +      * xterm.h (handlebox_widget): Remove.
 +
 +      * xmenu.c (set_frame_menubar): Remove GTK block that calls
 +      xg_have_tear_offs.
 +
 +      * gtkutil.h (xg_have_tear_offs): Remove declaration.
 +
 +      * gtkutil.c (XG_TEXT_CANCEL, XG_TEXT_OPEN, XG_TEXT_OK): New defines
 +      to handle Gtk versions.
 +      (xg_get_file_with_chooser): Use them.
 +      (xg_have_tear_offs, tearoff_remove, tearoff_activate):
 +      Remove (create_menus): Remove teroff argument and code.
 +      Remove call to gtk_menu_set_title.
 +      (xg_update_menubar, xg_update_submenu): Remove tearoff code.
 +      Adjust args to create_menus.
 +      (xg_tool_bar_menu_proxy, xg_tool_bar_detach_callback)
 +      (xg_tool_bar_attach_callback, TOOLBAR_TOP_WIDGET): Remove.
 +      (xg_pack_tool_bar): Replace TOOLBAR_TOP_WIDGET, remove detach code.
 +      (xg_make_tool_item): Remove detach code.
 +      (xg_update_tool_bar_sizes): Replace TOOLBAR_TOP_WIDGET.
 +      (find_icon_from_name): New function.
 +      (update_frame_tool_bar): Remove GtkStockItem code, move to
 +      find_icon_from_name.  Let stock be a list of icon names to try.
 +      Only use gtk_image_new_from_stock on Gtk+ < 3.10.
 +      Replace TOOLBAR_TOP_WIDGET.
 +      (free_frame_tool_bar, xg_change_toolbar_position ):
 +      Replace TOOLBAR_TOP_WIDGET.
 +      (xg_initialize): Remove tearoff code.
 +
 +2014-10-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xterm.c (x_draw_bar_cursor, x_draw_hollow_cursor): Subtract 1
 +      pixel from the window's cursor glyph width, since X renders hollow
 +      blocks 1 pixel wider than the 'width' parameter.
 +
 +      * xdisp.c (get_phys_cursor_geometry): Don't subtract 1 pixel from
 +      glyph->pixel_width; this is now done in xterm.c.
 +
 +      Fix reordering of bracket characters in isolates.
 +      * bidi.c (bidi_cache_find): Rename the argument NEUTRALS_OK to
 +      RESOLVED_ONLY; when non-zero, return from the cache only fully
 +      resolved states.  All callers changed.
 +      (CANONICAL_EQU): New macro.
 +      (PUSH_BPA_STACK): Use it to push onto the BPA stack the canonical
 +      equivalent of the paired closing bracket character.
 +      (bidi_find_bracket_pairs): Set the bracket_pairing_pos member to
 +      the default non-negative value, to be checked later in
 +      bidi_resolve_brackets.  Use CANONICAL_EQU to test candidate
 +      characters against those pushed onto the BPA stack.
 +      (bidi_record_type_for_neutral): New function.
 +      (bidi_resolve_brackets): Record next_for_neutral and
 +      prev_for_neutral when embedding level gets pushed.  Force
 +      resolution of bracket pairs when entering a level run that was not
 +      yet BPA-resolved.
 +      (bidi_resolve_neutral): Add assertions before calling
 +      bidi_resolve_neutral_1.
 +      (bidi_level_of_next_char): Remove the code that attempted to
 +      resolve unresolved neutrals; that is now done by
 +      bidi_resolve_neutral.
 +
 +      * w32select.c (owner_callback): Mark with ALIGN_STACK attribute.
 +
 +2014-10-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xterm.c (x_draw_hollow_cursor): Fix display of hollow cursor on
 +      1-pixel R2L characters.
 +      Reported by Dmitry Antipov <dmantipov@yandex.ru>, see
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00518.html.
 +
 +2014-10-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_find_bracket_pairs): Avoid a loop that does nothing
 +      useful.
 +
 +2014-10-15  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * bidi.c (bidi_find_bracket_pairs): Initialize local var.
 +      This pacifies GCC 4.9.1 with --enable-gcc-warnings.
 +      It's not clear to me whether the initialization is needed,
 +      but it can't hurt so I played it safe.
 +
 +2014-10-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lisp.mk (lisp): Add emacs-lisp/eldoc.elc.
 +
 +2014-10-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Update the bidirectional reordering engine for Unicode 6.3 and 7.0.
 +      * bidi.c (bidi_ignore_explicit_marks_for_paragraph_level):
 +      Remove variable.
 +      (bidi_get_type): Return the isolate initiators and terminator types.
 +      (bidi_isolate_fmt_char, bidi_paired_bracket_type)
 +      (bidi_fetch_char_skip_isolates, find_first_strong_char)
 +      (bidi_find_bracket_pairs, bidi_resolve_brackets): New functions.
 +      (bidi_set_sos_type): Rename from bidi_set_sor_type and updated
 +      for the new features.
 +      (bidi_push_embedding_level, bidi_pop_embedding_level): Update to
 +      push and pop correctly for isolates.
 +      (bidi_remember_char): Modify to accept an additional argument
 +      and record the bidi type according to its value.
 +      (bidi_cache_iterator_state): Accept an additional argument to only
 +      update an existing state.  Handle the new members of struct bidi_it.
 +      (bidi_cache_find): Arguments changed: no longer accepts a level,
 +      instead accepts a flag telling it whether it is okay to return
 +      unresolved neutrals.
 +      (bidi_initialize): Initiate and staticpro the bracket-type uniprop
 +      table.  Initialize new isolate-related members.
 +      (bidi_paragraph_init): Some code factored out into
 +      find_first_strong_char.
 +      (bidi_resolve_explicit_1): Function deleted, its code incorporated
 +      into bidi_resolve_explicit.
 +      (bidi_resolve_explicit): Support the isolate initiators and
 +      terminator.  Fix handling of embeddings and overrides according to
 +      new UBA requirements.  Record information about previously seen
 +      characters here (moved from bidi_level_of_next_char).
 +      (bidi_resolve_weak): Adapt to changes in struct members.
 +      (FLAG_EMBEDDING_INSIDE, FLAG_OPPOSITE_INSIDE, MAX_BPA_STACK)
 +      (STORE_BRACKET_CHARPOS, PUSH_BPA_STACK): New macros.
 +      (bidi_resolve_neutral): Call bidi_resolve_brackets to handle the
 +      paired bracket resolution.  Handle isolate initiators and
 +      terminator.
 +      (bidi_type_of_next_char): Remove unneeded code for BN limit.
 +      (bidi_level_of_next_char): Move the code that records information
 +      about previous characters to bidi_resolve_explicit.  Fix logic of
 +      resolving neutrals and make sure their cache entries are updated.
 +      Remove now unneeded special handling of PDF level.
 +
 +      * dispextern.h (struct glyph): Enlarge the width of resolved_level.
 +      (BIDI_MAXDEPTH): New macro, renamed from BIDI_MAXLEVEL and
 +      enlarged per Unicode 6.3.
 +      (enum bidi_bracket_type_t): New data type.
 +      (struct bidi_saved_info): Leave only 2 type members out of 4.
 +      Remove bytepos.
 +      (struct bidi_stack): Add members necessary to support isolating
 +      sequences.
 +      (struct bidi_it): Add new members necessary to support isolating
 +      sequences and bracket pair resolution.
 +
 +      * xdisp.c (Fbidi_resolved_levels): New function.
 +      (syms_of_xdisp): Defsubr it.
 +      (append_glyph, append_composite_glyph, produce_image_glyph)
 +      (append_stretch_glyph, append_glyphless_glyph): Convert aborts to
 +      assertions.
 +      (syms_of_xdisp) <inhibit-bidi-mirroring>: New variable.
 +
 +      * term.c (append_glyph, append_composite_glyph)
 +      (append_glyphless_glyph): Convert aborts to assertions.
 +
 +      * .gdbinit (pgx): Display the character codepoint, resolved level,
 +      and bidi type also for glyphless glyphs.
 +
 +2014-10-15  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Avoid unwanted point motion in Fline_beginning_position.
 +      * lisp.h (scan_newline_from_point): Add prototype.
 +      * search.c (scan_newline_from_point): New function, refactored from...
 +      * cmds.c (Fforward_line): ...adjusted user.
 +      * editfns.c (Fline_beginning_position): Use scan_newline_from_point
 +      and simplify the former since the latter doesn't move point.
 +
 +2014-10-14  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Cleanup terminal handling code.
 +      * dispextern.h (get_named_tty): Remove prototype but...
 +      * termhooks.h (get_named_terminal): ...resurrect it under
 +      more meaningful name.
 +      (get_terminal): Likewise, but with...
 +      (decode_live_terminal): ...this name.
 +      (decode_tty_terminal): Add prototype.
 +      * term.c (get_tty_terminal): Remove.
 +      (get_named_tty): Remove.
 +      (Ftty_display_color_p, Ftty_display_color_cells, Ftty_type)
 +      (Fcontrolling_tty_p, Fsuspend_tty, Fresume_tty):
 +      Use decode_tty_terminal.
 +      (Ftty_no_underline, Ftty_top_frame): Use decode_live_terminal.
 +      * terminal.c (get_terminal): Refactor to...
 +      (decode_terminal, decode_live_terminal): ...new functions.
 +      (decode_tty_terminal): Replacement for get_tty_terminal.
 +      (get_named_terminal): Likewise for get_named_tty.
 +      * coding.c (Fset_terminal_coding_system_internal)
 +      (Fterminal_coding_system, Fset_keyboard_coding_system_internal):
 +      (Fkeyboard_coding_system):
 +      * composite.c (Fcomposition_get_gstring):
 +      * dispnew.c (Fsend_string_to_terminal):
 +      * frame.c (Fmake_terminal_frame):
 +      * nsfns.m (check_ns_display_info):
 +      * w32fns.c, xfns.c (check_x_display_info):
 +      * xselect.c (frame_for_x_selection): Use decode_live_terminal.
 +      * keyboard.c (handle_interrupt_signal, handle_interrupt)
 +      (Fset_quit_char): Use get_named_terminal.
 +      (Fset_output_flow_control, Fset_input_meta_mode):
 +      Use decode_tty_terminal.
 +
 +2014-10-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32term.h (ALIGN_STACK): Use _WIN64, not _W64, to distinguish
 +      between 32-bit and 64-bit MinGW builds.  (Bug#18699)
 +
 +2014-10-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix port to Debian GNU/kFreeBSD 7 (wheezy) (Bug#18666).
 +      * process.c (accept4) [!HAVE_ACCEPT4]: New macro.
 +
 +2014-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * frame.c (Fmouse_pixel_position): Call Vmouse_position_function
 +      (bug#18638).
 +
 +2014-10-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * editfns.c (dump_tz_string): No longer const.
 +      It might be modified.
 +
 +      * nsmenu.m (clear): Assume OS X 10.6 or later.
 +
 +2014-10-12  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * unexmacosx.c: Remove include ppc/reloc.h.
 +      (unrelocate, copy_dysymtab): Remove PPC code.
 +      (rebase_reloc_address): Remove, only used for PPC:
 +
 +      * nsterm.m: Always include macfont.h on COCOA.
 +      (ns_update_auto_hide_menu_bar, ns_draw_fringe_bitmap)
 +      (ns_dumpglyphs_image, ns_check_menu_open)
 +      (applicationDidFinishLaunching)
 +      (antialiasThresholdDidChange:)
 +      (keyDown:, toggleFullScreen:, setPosition:portion:whole:):
 +      Remove checks for OSX <= 10.5/10.6.
 +      (changeFont:): Use macfont on COCOA, nsfont on GNUSTEP.
 +      (syms_of_nsterm): Call syms_of_macfont on COCOA, syms_of_nsfont on
 +      GNUSTEP.
 +
 +      * nsterm.h (MAC_OS_X_VERSION_10_4, MAC_OS_X_VERSION_10_5): Remove.
 +      (NS_HAVE_NSINTEGER): Remove block.
 +      Remove >= OSX 10.6 tests.
 +
 +      * nsmenu.m (NSMenuDidBeginTrackingNotification): Remove.
 +      (x_activate_menubar, trackingNotification:): Remove check for
 +      OSX >= 10.5.
 +      (menuNeedsUpdate:): Remove check for OSX < 10.5.
 +
 +      * nsimage.m (allocInitFromFile:): Remove code for OSX < 10.6.
 +
 +      * nsfns.m: Always include macfont.h on COCOA.
 +      (ns_filename_from_panel, ns_directory_from_panel)
 +      (Fx_create_frame, Fns_popup_font_panel, ns_run_file_dialog)
 +      (Fns_read_file_name, Fns_list_services): Remove code for OSX < 10.6
 +
 +      * macfont.m: Remove >= 1050 check.
 +      (macfont_create_family_with_symbol)
 +      (macfont_get_glyph_for_character)
 +      (mac_font_get_glyphs_for_variants)
 +      (mac_ctfont_create_available_families, syms_of_macfont):
 +      Remove code for OSX < 10.6.
 +      (mac_font_family_group, mac_font_family_compare): Remove, only used
 +      for OSX < 10.6.
 +
 +      * macfont.h (MAC_FONT_FORMAT_ATTRIBUTE, MAC_FONT_FORMAT_BITMAP)
 +      (mac_font_copy_non_synthetic_table): Remove versions for OSX < 10.6
 +
 +      * Makefile.in: Replace nsfont.o macfont.o with ns_fontfile in
 +      comment.
 +
 +2014-10-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix putenv race conditions with undefined behavior (Bug#8705).
 +      Do all putenv calls before Emacs creates any threads.
 +      Use a safer way to modify the TZ environment variable in the
 +      presence of multiple threads.  For further thread-safety,
 +      prefer localtime_r and gmtime_r to localtime and gmtime,
 +      and prefer struct tm's tm_gmtoff (if available) to calling
 +      both localtime_r and gmtime_r.
 +      * dbusbind.c (Fdbus__init_bus): Move xputenv call from here ...
 +      (init_dbusbind): ... to this new function.
 +      * emacs.c (main) [HAVE_DBUS]: Call it before creating threads.
 +      * xterm.c (x_term_init): Move xputenv call from here ...
 +      (init_xterm): ... to this new function.
 +      * emacs.c (main) [USE_GTK]: Call it before creating threads.
 +      * editfns.c (HAVE_TM_GMTOFF): Default to false.
 +      (dump_tz_string): New constant.
 +      (init_editfns): Use it.  This centralizes the dump_tz stuff.
 +      Call set_time_zone_rule here, so that its xputenv is done
 +      before Emacs goes multithreaded.
 +      (mktime_z) [!HAVE_TZALLOC]: New function, which is typically
 +      thread-safe enough for Emacs.
 +      (format_time_string, Fdecode_time, Fcurrent_time_string)
 +      (Fcurrent_time_zone):
 +      Prefer localtime_r and gmtime_r, which are more thread-safe, to
 +      localtime and gmtime.  Remove now-unnecessary calls to block_input.
 +      (tm_gmtoff): New static function.
 +      (Fdecode_time, Fcurrent_time_zone): Use it.
 +      (Fencode_time): Use mktime_z, for better thread-safety.
 +      (set_time_zone_rule): Now static.  Rewrite to be mostly thread-safe,
 +      i.e., not quite thread-safe but good enough for Emacs typical usage.
 +      Do not reclaim storage that is in the environment; let it leak.
 +      Always call tzset, since localtime_r does not.
 +      * emacs.c (dump_tz, Fdump_emacs) [HAVE_TZSET]: Remove dump_tz stuff.
 +      This is now done in init_editfns.
 +      * systime.h (mktime_z, timezone_t, tzalloc, tzfree) [!HAVE_TZALLOC]:
 +      New macros and declarations, for platforms lacking tzalloc & friends.
 +
 +2014-10-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * lisp.h (USE_STACK_STRING): Now true only if USE_STACK CONS.
 +      On x86 platforms this works around GCC bug 63495
 +      <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63495>,
 +      and more generally should fix a portability problem in Emacs.
 +      Reported by Stefan Monnier in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00261.html
 +
 +2014-10-08  Leo Liu  <sdl.web@gmail.com>
 +
 +      Enhance terpri to allow conditionally output a newline.  (Bug#18652)
 +      * keymap.c (describe_vector_princ):
 +      * keyboard.c (Fcommand_error_default_function): Adapt to change to
 +      Fterpri.
 +
 +      * print.c (printchar_stdout_last): Declare.
 +      (printchar): Record the last char written to stdout.
 +      (Fterpri): Add optional argument ENSURE.
 +
 +2014-10-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32inevt.c (maybe_generate_resize_event): Pass non-zero as the
 +      DELAY argument to change_frame_size, so that the frame size
 +      changes, if any are needed, are delayed until the next redisplay.
 +      This is to avoid a too early QUIT inside change_frame_size, when
 +      it calls Lisp in frame_windows_min_size, in case one of the events
 +      we've read sets the quit-flag.  (Bug#18649)
 +
 +      * w32fns.c (check_x_display_info): Accept terminal objects as
 +      argument, to follow what xfns.c does.
 +
 +2014-10-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in ($(srcdir)/macuvs.h)
 +      ($(lispsource)/international/charprop.el): Add explicit FORCE.
 +
 +2014-10-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * decompress.c (init_zlib_functions): Move the message about zlib
 +      being unavailable from here...
 +      (Fzlib_decompress_region): ...to here.  (Bug#18650)
 +
 +2014-10-07  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * font.c (Ffont_get_glyphs): Use validate_subarray and fix
 +      the case where an optional string is used.  Adjust docstring.
 +
 +2014-10-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lisp.mk (lisp): Remove w32-common-fns.elc.
 +
 +2014-10-05  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * keyboard.c (Qleft, Qright): Remove duplicate definitions (Bug#9927).
 +      These were already defined in buffer.c, and the duplicate
 +      definitions cause problems on platforms like 'gcc -fno-common'.
 +      Reported by Peter Dyballa in: http://bugs.gnu.org/9927#137
 +
 +2014-10-05  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (updateFrameSize:): Only call update_frame_tool_bar
 +      if toolbar is visible.
 +
 +      * nsfont.m (nsfont_draw): Use CGFloat for GNUstep newer than
 +      0.23 (Bug#18030).
 +
 +      * nsterm.m (syms_of_nsterm): ns-use-fullscreen-animation is new.
 +      (toggleFullScreen:): Use ns-use-fullscreen-animation for animate.
 +      (ns_select, ns_read_socket): Use unwind_protect to decrease
 +      apploopnr (Bug#18345).
 +      (ns_draw_window_cursor): Adjust y for hbar cursor only if smaller than
 +      line height (Bug#17977).
 +
 +      * macfont.m: Fix indentation and import changes from macport 24.3.94.
 +      (macfont_closest_traits_index): New function.
 +      (macfont_closest_traits_index_p): Rename from
 +      macfont_closest_traits_index.
 +      (macfont_list): Use macfont_closest_traits_index_p.
 +
 +2014-10-05  K. Handa  <handa@gnu.org>
 +
 +      * coding.c (detect_coding_iso_2022): Set coding->rejected
 +      correctly when an invalid escape sequence is found (Bug#18610).
 +
 +2014-10-04  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (create_menus): Only add tearoffs to empty menus.
 +      (xg_update_submenu): Remove has_tearoff_p, pass 1 to create_menus
 +      for add_tearoff_p.
 +
 +2014-10-04  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * buffer.c (scroll_bar_width, scroll_bar_height):
 +      Fix doc-strings.
 +      * window.c (Fset_window_scroll_bars): Fix doc-string.
 +      (Fwindow_scroll_bars): Have it return what the doc-string says.
 +
 +2014-10-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (move_it_by_lines): Call reseat_1 after moving the
 +      iterator backwards, to resync the bidi iterator.  (Bug#18584)
 +
 +2014-10-03  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Consistently use min and max macros from lisp.h.
 +      * coding.c (min, max):
 +      * font.c (MAX):
 +      * unexhp9k800.c (min):
 +      * unexw32.c (min, max): Use definitions from lisp.h.
 +      * regex.c (MAX, MIN) [!emacs]: Define own max and min as such.
 +      Adjust users.
 +      * gmalloc.c (min): Tiny style change.
 +
 +      * fileio.c (emacs_readlinkat, Finsert_file_contents):
 +      * w32fns.c, xfns.c (x_create_tip_frame): Use AUTO_STRING.
 +
 +2014-10-03  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix x-focus-frame bug with "Not an in-range integer" (Bug#18586).
 +      * xselect.c (X_SHRT_MAX, X_SHRT_MIN, X_LONG_MAX, X_LONG_MIN)
 +      (X_ULONG_MAX): Move these macros to xterm.h.
 +      (x_fill_property_data): Be more generous about allowing either
 +      signed or unsigned data of the appropriate width.
 +      * xterm.h (x_display_set_last_user_time): New function.
 +      All setters of last_user_time changd to use this function.
 +      If ENABLE_CHECKING, check that the times are in range.
 +
 +2014-10-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (adjust_decode_mode_spec_buffer): Use 'int' instead of
 +      'ssize_t'.  Suggested by Paul Eggert <eggert@cs.ucla.edu>.
 +
 +2014-10-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to
 +      make a font_object from a tty frame (Bug#18573).
 +      (Finternal_set_lisp_face_attribute): Add FIXME comment.
 +
 +2014-10-02  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * alloc.c (mark_overlay): Assume that overlay boundaries are
 +      always markers.  Add comment.
 +      * lread.c (read_internal_start): Use convenient validate_subarray.
 +      Adjust docstring.
 +      (Fread_from_string): Adjust docstring.
 +
 +2014-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lisp.h: Fix up compilation for USE_STACK_LISP_OBJECTS=false.
 +
 +      * nsselect.m (ns-own-selection-internal, ns-disown-selection-internal):
 +      Rename from the "x-" prefix.
 +
 +2014-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * xselect.c (selection-converter-alist): Fix docstring.
 +
 +2014-10-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32proc.c (sys_spawnve): Avoid modification of the CMDNAME
 +      argument passed by the caller, when we mirror all slashes into
 +      backslashes.
 +
 +2014-10-01  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * gtkutil.c (xg_set_toolkit_horizontal_scroll_bar_thumb):
 +      Resurrect old code and fix compilation with GTK < 2.13.6.
 +
 +2014-10-01  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use AUTO_CONS instead of SCOPED_CONS, etc.
 +      * frame.h (AUTO_FRAME_ARG): Rename from FRAME_PARAMETER.
 +      * lisp.h (AUTO_CONS): Rename from scoped_cons.
 +      (AUTO_LIST1): Rename from scoped_list1.
 +      (AUTO_LIST2): Rename from scoped_list2.
 +      (AUTO_LIST3): Rename from scoped_list3.
 +      (AUTO_LIST4): Rename from scoped_list4.
 +      (AUTO_STRING): Rename from SCOPED_STRING.
 +      * frame.h (AUTO_FRAME_ARG):
 +      * lisp.h (AUTO_CONS, AUTO_LIST1, AUTO_LIST2, AUTO_LIST3)
 +      (AUTO_LIST4, AUTO_STRING):
 +      Prepend a new argument 'name'.
 +      Declare a variable instead of yielding a value.
 +      All uses changed.
 +      * lisp.h (STACK_CONS, AUTO_CONS_EXPR): New internal macros.
 +
 +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-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.
 +      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).
 +      * macfont.m (macfont_close): Release and free font-specific data
 +      only if it wasn't previously freed.
 +
 +2014-09-22  David Caldwell <david@porkrind.org>  (tiny change)
 +
 +      * unexmacosx.c (dump_it): Improve error message.
 +
 +2014-09-22  Juri Linkov  <juri@jurta.org>
 +
 +      * image.c (imagemagick_load_image): Add delay to imagemagick metadata.
 +      (Bug#10747, bug#18334)
 +
 +2014-09-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * frame.c (Fmouse_position, Fset_mouse_position): Clarify the
 +      units in which the position is measured.  (Bug#18493)
 +
 +      * xdisp.c (redisplay_internal): Force redisplay of all windows
 +      that show a buffer whose narrowing has changed.  (Bug#18490)
 +
 +2014-09-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor):
 +      * w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor): In R2L
 +      lines, draw the hollow-box and hbar cursors on the right side of
 +      cursor-glyph.  Thanks to martin rudalics <rudalics@gmx.at> for
 +      testing on X.
 +
 +      * xterm.c (x_draw_stretch_glyph_string):
 +      * w32term.c (x_draw_stretch_glyph_string): Fix a thinko that
 +      caused the block cursor to disappear on a TAB in R2L lines in
 +      every window except the leftmost one.  Reported by Martin Rudalics
 +      <rudalics@gmx.at>.
 +
 +2014-09-22  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Always use matched specpdl entry to record call arguments (Bug#18473).
 +      * lisp.h (record_in_backtrace): Adjust prototype.
 +      * eval.c (record_in_backtrace): Return current specpdl level.
 +      (set_backtrace_args, set_backtrace_nargs): Merge.  Adjust all users.
 +      (eval_sub, Ffuncall): Record call arguments in matched specpdl
 +      entry and use that entry in call to backtrace_debug_on_exit.
 +      (apply_lambda): Likewise.  Get current specpdl level as 3rd arg.
 +      (do_debug_on_call): Get current specpdl level as 2nd arg.
 +
 +      Prefer ptrdiff_t to int and avoid integer overflows.
 +      * fileio.c (make_temp_name):
 +      * font.c (font_parse_family_registry): Avoid integer
 +      overflow on string size calculation.
 +      * data.c (Faset): Likewise for byte index.
 +
 +2014-09-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix display of R2L lines in partial-width windows.
 +      * xdisp.c (init_iterator): Don't use it->bidi_p before it is
 +      assigned the correct value.
 +      (extend_face_to_end_of_line): Account for truncation and
 +      continuation glyphs in R2L rows when one of the fringes is not
 +      displayed.
 +      (display_line): Don't assign negative X offset to a row if we are
 +      going to produce a truncation glyph for it.  When handling
 +      truncated R2L rows, consider the width of the left fringe instead
 +      of the right one.
 +      (produce_special_glyphs): Fix bogus assignments.
 +
 +2014-09-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fileio.c (Fexpand_file_name) [DOS_NT]: Make sure newdirlim is
 +      always set to a valid value.  Make sure the size passed to alloca
 +      is always positive.  (Bug#18516)
 +
 +2014-09-22  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Avoid extra call to oblookup when interning symbols.
 +      * lisp.h (intern_driver): Add prototype.
 +      * lread.c (intern_driver): New function.
 +      (intern1, intern_c_string_1, Fintern):
 +      * font.c (font_intern_prop):
 +      * w32font.c (intern_font_name): Use it.
 +
 +2014-09-21  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Minor improvements to new stack-allocated Lisp objects.
 +      * frame.h (FRAME_PARAMETER):
 +      Prefer scoped_list1 to local_list1 where either would do.
 +      * lisp.h (scoped_list4): New macro.
 +      (local_cons, local_list1, local_list2, local_list3, local_list4)
 +      (make_local_vector, make_local_string, build_local_string):
 +      Prefer functions to macros where either would do.
 +      * xdisp.c (build_desired_tool_bar_string):
 +      Prefer scoped_list4 to local_list4 where either would do.
 +
 +2014-09-18  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      More and more stack-allocated Lisp objects if USE_LOCAL_ALLOCATORS.
 +      * lisp.h (local_list4) [USE_LOCAL_ALLOCATORS]: New macro.
 +      [!USE_LOCAL_ALLOCATORS]: Fall back to regular list4.
 +      * frame.h (FRAME_PARAMETER): New macro.
 +      * dispnew.c (init_display):
 +      * fontset.c (Fset_fontset_font):
 +      * frame.c (x_default_parameter):
 +      * xfaces.c (set_font_frame_param, Finternal_merge_in_global_face):
 +      * xfns.c (x_default_scroll_bar_color_parameter)
 +      (x_default_font_parameter, x_create_tip_frame): Use it.
 +      * editfns.c (Fpropertize): Use local_cons.
 +      * process.c (status_message): Use build_local_string.
 +      * xfont.c (xfont_open): Use make_local_string.
 +      * xdisp.c (build_desired_tool_bar_string): Use local_list4.
 +
 +2014-09-18  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Port USE_LOCAL_ALLOCATORS code to clang 3.4 x86-64.
 +      * lisp.h (USE_LOCAL_ALLOCATORS): Define only if __GNUC__ &&
 +      !__clang__.  This works with GCC and with clang and is safer for
 +      compilers we don't know about.
 +      (local_cons): Rename parameter to make capture less likely.
 +
 +2014-09-17  Samuel Bronson  <naesten@gmail.com>
  
        * unexmacosx.c (copy_data_segment): Port to GCC 4.6+ (Bug#9927).
  
 -2014-10-28  Eli Zaretskii  <eliz@gnu.org>
 +2014-09-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix minor problems found by static checking.
 +      * alloc.c, lisp.h (SAVE_TYPE_INT_OBJ, make_save_int_obj):
 +      Remove; now unused.
 +      * buffer.h (decode_buffer): Doc and indentation fixes.
 +      * fns.c (Qstring_collate_lessp, Qstring_collate_equalp): Now static.
 +
 +2014-09-17  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Avoid clang-specific warnings.
 +      * buffer.c (init_buffer): Shut up -Wself-assign.
 +      * process.c (server_accept_connection): Shut up -Wunsequenced.
 +
 +2014-09-16  Daniel Colascione  <dancol@dancol.org>
 +
 +      * fns.c (sxhash): For symbols, use address as hash code.
 +
 +2014-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      If USE_LOCAL_ALLOCATORS, allocate even more Lisp objects on stack.
 +      * charset.c (load_charset_map_from_file): Use scoped_list2
 +      and build_local_string.
 +      * buffer.c (Fother_buffer, other_buffer_safely, init_buffer):
 +      * emacs.c (init_cmdargs, decode_env_path):
 +      * fileio.c (Fexpand_file_name):
 +      * fns.c (maybe_resize_hash_table) [ENABLE_CHECKING]:
 +      * frame.c (x_get_arg):
 +      * keyboard.c (safe_run_hooks_error):
 +      * lread.c (load_warn_old_style_backquotes):
 +      * xdisp.c (Fcurrent_bidi_paragraph_direction):
 +      * xfns.c (x_default_scroll_bar_color_parameter, select_visual):
 +      * xselect.c (x_clipboard_manager_error_1)
 +      (x_clipboard_manager_save_all):
 +      * xterm.c (x_term_init): Use build_local_string.
 +
 +      Avoid more integer overflows on string size calculations.
 +      * category.c (Fmake_category_set):
 +      * xdisp.c (get_overlay_arrow_glyph_row):
 +      * w32font.c (intern_font_name): Prefer ptrdiff_t to int.
 +
 +2014-09-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * sound.c [WINDOWSNT]: Include w32common.h and mbstring.h.
 +      (SOUND_WARNING) [WINDOWSNT]: Include in do..while and improve the
 +      error message format.  Use message_with_string to have non-ASCII
 +      file names properly displayed.
 +      (do_play_sound) [WINDOWSNT]: Use Unicode APIs to play sound files
 +      when w32-unicode-filenames is non-nil, but not on Windows 9X,
 +      where these APIs are not available even in UNICOWS.DLL.
 +      Improve the format of error messages and include the file name in them
 +      where appropriate.
 +      (Fplay_sound_internal) [WINDOWSNT]: Make the MS-Windows branch
 +      call play-sound-functions, per documentation.
 +
 +      * w32.c (w32_get_long_filename, w32_get_short_filename):
 +      Constify the input file name arguments.
 +
 +      * w32.h (w32_get_long_filename, w32_get_short_filename):
 +      Update prototypes.
 +
 +2014-09-15  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      If USE_LOCAL_ALLOCATORS, allocate some Lisp objects on stack.
 +      * lisp.h (local_cons, local_list1, local_list2, local_list3)
 +      [USE_LOCAL_ALLOCATORS]: New macros.
 +      [!USE_LOCAL_ALLOCATORS]: Fall back to regular functions.
 +      (build_local_string): Avoid argument name expansion clash with
 +      make_local_string.
 +      * alloc.c (toplevel)
 +      [USE_LOCAL_ALLOCATORS && GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS]:
 +      Preprocessor guard to avoid impossible configuration.
 +      * charset.c (Ffind_charset_region, Ffind_charset_string):
 +      Use make_local_vector.
 +      * lread.c (read1, substitute_object_recurse): Use scoped_cons.
 +      * textprop.c (Fput_text_property, Fadd_face_text_property):
 +      Use scoped_list2.
 +      (copy_text_properties): Use local_cons and local_list3.
 +      * chartab.c (uniprop_table):
 +      * data.c (wrong_choice, wrong_range):
 +      * doc.c (get_doc_string):
 +      * editfns.c (format2):
 +      * fileio.c (Fexpand_file_name, auto_save_error):
 +      * fns.c (Fyes_or_no_p):
 +      * font.c (font_parse_xlfd, font_parse_family_registry, font_add_log):
 +      * fontset.c (Fset_fontset_font):
 +      * keyboard.c (echo_add_key, echo_dash, parse_menu_item)
 +      (read_char_minibuf_menu_prompt):
 +      * keymap.c (silly_event_symbol_error, describe_vector):
 +      * menu.c (single_menu_item):
 +      * minibuf.c (Fread_buffer):
 +      * process.c (status_message, Fformat_network_address)
 +      (server_accept_connection): Use make_local_string and
 +      build_local_string.  Prefer compound literals where appropriate.
 +
 +2014-09-15  Daniel Colascione  <dancol@dancol.org>
 +
 +      * fns.c (Fsort): Tweak sort docstring.
 +
 +2014-09-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (fcntl): Support O_NONBLOCK fcntl on the write side of pipes.
 +      (sys_write): When a write to a non-blocking pipe returns ENOSPC,
 +      set errno to EAGAIN instead, to allow the caller to retry the
 +      write after some waiting.  Fixes deadlocks when Emacs exchanges a
 +      lot of data through the pipe.  (Bug#18420)
 +
 +      * sound.c (Fplay_sound_internal): Encode the sound file name in
 +      the ANSI codepage.  Expand it against data-directory, as per docs,
 +      not against the current directory.  No need to make a local copy
 +      of the file name; pass the encoded file name directly to
 +      do_play_sound.  (Bug#18463)
 +
 +      * w32.c (ansi_encode_filename): If w32_get_short_filename returns
 +      NULL, and the file name is not encodable in ANSI codepage, return
 +      the string with "?" replacement characters, which will fail the
 +      caller.  This avoids returning a random value in that case.
 +
 +2014-09-15  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * window.c (Fresize_mini_window_internal): Set w->total_lines
 +      from w->pixel_height (Bug#18422).
 +
 +2014-09-15  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (updateFrameSize:, initFrameFromEmacs:)
 +      (toggleFullScreen:): Take frame_resize_pixelwise into account when
 +      setting resize increments (Bug#18435).
 +
 +2014-09-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (pos_visible_p): Properly save and restore the iterator
 +      state around the call to line_bottom, since it can move the
 +      iterator to another screen line.  This fixes off-by-one errors in
 +      the reported row in some rare cases.
 +
 +2014-09-14  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * callproc.c (init_callproc): Fix bug introduced at
 +      2014-09-07 (Bug#18474).
 +
 +2014-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Prefer ptrdiff_t to int and avoid integer overflows.
 +      * fileio.c (make_temp_name):
 +      * font.c (font_parse_family_registry): Avoid integer
 +      overflow on string size calculation.
 +      * data.c (Faset): Likewise for byte index.
 +
 +2014-09-12  Detlev Zundel  <dzu@member.fsf.org>
 +
 +      * buffer.c (syms_of_buffer): DEFSYM Qchoice (Bug#18337).
 +
 +2014-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * lisp.h (make_local_string): Nitpick indent.
 +      * print.c (Fprin1_to_string): Remove unused GCPROs.
 +
 +      More debugging aids around GCPROs.
 +      * lisp.h (struct gcpro) [DEBUG_GCPRO]: Add extra members.
 +      (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, GCPRO7):
 +      Minor restyle.  If DEBUG_GCPRO, initialize extra fields.
 +
 +      * lread.c (readevalloop_eager_expand_eval): Add GCPRO and fix
 +      bootstrap broken if GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
 +
 +      Remove redundant GCPROs around Ffuncall and Fapply calls.
 +      This is safe because Ffuncall protects all of its arguments by itself.
 +      * charset.c (map_charset_for_dump): Remove redundant GCPRO.
 +      * eval.c (Fapply, apply1, call0, call1, call2, call3, call4, call5)
 +      (call6, call7): Likewise.  Use compound literals where applicable.
 +      (run_hook_with_args_2): Use compound literal.
 +
 +2014-09-11  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Pacify --enable-gcc-warnings when no window system is used.
 +      These warnings found that subscript error, so they seem worthwhile.
 +      * composite.c (char_composable_p): Simplify a bit.
 +      * frame.c (x_set_frame_parameters): Add an IF_LINT.
 +      * frame.c (x_set_horizontal_scroll_bars, x_set_scroll_bar_height):
 +      * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS):
 +      * window.c (set_window_scroll_bars):
 +      Use USE_HORIZONTAL_SCROLL_BARS for simplicity.
 +      * frame.h [! USE_HORIZONTAL_SCROLL_BARS]:
 +      Ignore -Wsuggest-attribute=const.
 +      * window.h (USE_HORIZONTAL_SCROLL_BARS): New macro.
 +      (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Use it.
 +
 +2014-09-10  Paul Eggert  <eggert@penguin.cs.ucla.edu>
 +
 +      * charset.c (Fget_unused_iso_final_char): Fix subscript error.
 +      Use check_iso_charset_parameter instead of doing the checks by hand.
 +      (check_iso_charset_parameter): Move up.  Check parameters a bit
 +      more carefully, and return true for 96-char sets.  All callers changed.
 +
 +2014-09-10  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Simplify lisp.h by removing the __COUNTER__ business.
 +      Reported by Dmitry Antipov in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00220.html
 +      * lisp.h (make_local_vector, make_local_string)
 +      (build_local_string): Simplify by not bothering with __COUNTER__.
 +      The __COUNTER__ business wasn't working properly, and was needed
 +      only for hypothetical future expansion anyway.
 +
 +2014-09-10  Alp Aker  <alp.tekin.aker@gmail.com>
 +
 +      * nsterm.m (ns_draw_fringe_bitmap): Use the same logic as other
 +      terms to determine bitmap color.  (Bug#18437)
 +
 +2014-09-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (sys_write): Use SAFE_NALLOCA for the NL -> CRLF
 +      translation buffer.
 +
 +2014-09-10  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * xterm.c (handle_one_xevent): Add braces to pacify gcc -Wall.
 +
 +2014-09-10  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (handle_one_xevent): Detect iconified by looking at
 +      _NET_WM_STATE_HIDDEN.
 +
 +2014-09-10  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * lisp.h (DEFINE_GDB_SYMBOL_ENUM): Remove.
 +      These can generate a constant with the correct value but the wrong
 +      width, which doesn't work as a printf argument.  All uses removed.
 +      Reported by Dmitry Antipov in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00213.html
 +      (ENUMABLE): Remove; no longer needed.
 +      (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
 +      Remove; no longer needed because of the above change.
 +      Each definiens moved to the only use.
 +
 +      Improve the experimental local and scoped allocation.
 +      * alloc.c (local_string_init, local_vector_init):
 +      New functions, defined if USE_LOCAL_ALLOCATORS.
 +      Mostly, these are moved here from lisp.h, as it's not
 +      clear it's worth making them inline.
 +      * lisp.h (USE_STACK_LISP_OBJECTS): Default to false.
 +      (GCALIGNED): Depend on HAVE_STRUCT_ATTRIBUTE_ALIGNED and
 +      USE_STACK_LISP_OBJECTS, not on a laundry list.
 +      (local_string_init, local_vector_init): New decls.
 +      (union Aligned_Cons): New type.
 +      (scoped_cons): Use it.  Give up on the char trick, as it's a too
 +      much of a maintenance hassle; if someone wants this speedup
 +      they'll just need to convince their compiler to align properly.
 +      Conversely, use the speedup if struct Lisp_Cons happens to
 +      be aligned even without a directive.  Better yet, help it along
 +      by using union Aligned_Cons rather than struct Lisp_Cons.
 +      (pointer_valid_for_lisp_object): Remove.  This check is not
 +      necessary, since make_lisp_ptr is already doing it.  All uses removed.
 +      (local_vector_init, local_string_init): Move to alloc.c.
 +      (build_local_vector): Remove this awkward macro, replacing with ...
 +      (make_local_vector): New macro, which acts more like a function.
 +      Use statement expressions and use __COUNTER__ to avoid macro
 +      capture.  Fall back on functions if these features are not supported.
 +      (build_local_string, make_local_string): Likewise.
 +
 +2014-09-09  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xterm.c (x_term_init): Consolidate duplicated code.
 +      [USE_LUCID]: Revert 2014-04-02 change (Bug#18403).  Add comment.
 +      (x_delete_terminal): Do not close X connection fd (Bug#18403).
 +      Add eassert and mark dpyinfo as dead only if it was alive.
 +
 +      Add macros to allocate temporary Lisp objects with alloca.
 +      Respect MAX_ALLOCA and fall back to regular GC for large objects.
 +      * character.h (parse_str_as_multibyte): Move prototype to ...
 +      * lisp.h (parse_str_as_multibyte): ... here.
 +      (struct Lisp_Cons): Add GCALIGNED attribute if supported.
 +      (scoped_cons, scoped_list2, build_local_vector, build_local_string):
 +      New macros.
 +      (scoped_cons_init, pointer_valid_for_lisp_object, local_vector_init)
 +      (local_string_init): New functions.
 +      * alloc.c (verify_alloca) [ENABLE_CHECKING]: New function.
 +      (init_alloc_once): Call it.
 +
 +      Cleanup last change and make all new stuff conditional.
 +      * lisp.h (build_local_string): Rename to ...
 +      (make_local_string): ... this macro.
 +      (build_local_string, scoped_list1, scoped_list3): New macros.
 +      (toplevel) [USE_STACK_LISP_OBJECTS]: Define all new macros
 +      and functions as such, use regular fallbacks otherwise.
 +      * alloc.c (verify_alloca) [USE_STACK_LISP_OBJECTS]: Define
 +      conditionally.
 +
 +2014-09-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (prepare_desired_row): When MODE_LINE_P is zero,
 +      always make sure the marginal areas of the row are in sync with
 +      what the window wants.  (Bug#18419)
 +
 +      * data.c (set_internal): Use assq_no_quit, not Fassq, to find an
 +      existing binding of a variable, to avoid silently aborting
 +      commands that use specbind.  (Bug#18331)
 +
 +2014-09-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix bug uncovered by changing alloca to auto buffer (Bug#18410).
 +      * coding.c (growable_destination): New function.
 +      (produce_chars): Use it for sanity checks.  Do not fiddle with
 +      dst_end if the source and destination are both nil, as it's
 +      the caller's responsibility to avoid overlap.
 +      * keyboard.c (read_decoded_event_from_main_queue):
 +      The destination must be MAX_MULTIBYTE_LENGTH times the max source
 +      length, not 4 times, to prevent decode_coding_c_string from trying
 +      to reallocate a destination.  This removes the need for the FIXME.
 +
 +      * callproc.c (exec_failed) [DOS_NT]: Define a dummy.
 +      All callers simplified.  Add a comment about exec_failed, vfork,
 +      and alloca.
 +
 +      Adjust drag-and-drop fix when window is above top (Bug#18303).
 +      * xselect.c (x_fill_property_data): Don't let sign bit of negative
 +      XCDR bleed into XCAR's encoded value.  Improve checks for
 +      out-of-range data while we're at it.
 +
 +2014-09-07  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xselect.c (x_fill_property_data): Handle negative XCDR when data
 +      is CONSP (Bug#18303).
 +
 +2014-09-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * callproc.c (child_setup) [WINDOWSNT]: Don't call exec_failed if
 +      'alloca' gets passed arguments larger than MAX_ALLOCA.
 +
 +      * font.c (MAX): Define if not defined elsewhere.
 +
 +2014-09-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * keyboard.c (read_decoded_event_from_main_queue): Reinstitute alloca
 +      here for destination buffer, to work around what appears to be a
 +      bug in decode_coding_c_string when the source and destination are
 +      both C strings.
 +
 +      Use SAFE_ALLOCA etc. to avoid unbounded stack allocation (Bug#18410).
 +      This follows up on the recent thread in emacs-devel on alloca; see:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00042.html
 +      This patch also cleans up alloca-related glitches noted while
 +      examining the code looking for unbounded alloca.
 +      * alloc.c (listn):
 +      * callproc.c (init_callproc):
 +      Rewrite to avoid need for alloca.
 +      * buffer.c (mouse_face_overlay_overlaps)
 +      (report_overlay_modification):
 +      * buffer.h (GET_OVERLAYS_AT):
 +      * coding.c (make_subsidiaries):
 +      * doc.c (Fsnarf_documentation):
 +      * editfns.c (Fuser_full_name):
 +      * fileio.c (Ffile_name_directory, Fexpand_file_name)
 +      (search_embedded_absfilename, Fsubstitute_in_file_name):
 +      * fns.c (Fmake_hash_table):
 +      * font.c (font_vconcat_entity_vectors, font_update_drivers):
 +      * fontset.c (fontset_pattern_regexp, Ffontset_info):
 +      * frame.c (Fmake_terminal_frame, x_set_frame_parameters)
 +      (xrdb_get_resource, x_get_resource_string):
 +      * ftfont.c (ftfont_get_charset, ftfont_check_otf, ftfont_drive_otf):
 +      * ftxfont.c (ftxfont_draw):
 +      * image.c (xbm_load, xpm_load, jpeg_load_body):
 +      * keyboard.c (echo_add_key, menu_bar_items, tool_bar_items)
 +
 +      * keymap.c (Fdescribe_buffer_bindings, describe_map):
 +      * lread.c (openp):
 +      * menu.c (digest_single_submenu, find_and_call_menu_selection)
 +      (find_and_return_menu_selection):
 +      * print.c (PRINTFINISH):
 +      * process.c (Fformat_network_address):
 +      * scroll.c (do_scrolling, do_direct_scrolling, scrolling_1):
 +      * search.c (search_buffer, Fmatch_data, Fregexp_quote):
 +      * sound.c (wav_play, au_play):
 +      * syntax.c (skip_chars):
 +      * term.c (tty_menu_activate, tty_menu_show):
 +      * textprop.c (get_char_property_and_overlay):
 +      * window.c (Fset_window_configuration):
 +      * xdisp.c (safe__call, next_overlay_change, vmessage)
 +      (compute_overhangs_and_x, draw_glyphs, note_mouse_highlight):
 +      * xfaces.c (face_at_buffer_position):
 +      * xmenu.c (x_menu_show):
 +      Use SAFE_ALLOCA etc. instead of plain alloca, since the
 +      allocation size isn't bounded.
 +      * callint.c (Fcall_interactively): Redo memory_full check
 +      so that it can be done at compile-time on some platforms.
 +      * coding.c (MAX_LOOKUP_MAX): New constant.
 +      (get_translation_table): Use it.
 +      * callproc.c (call_process): Use SAFE_NALLOCA instead of
 +      SAFE_ALLOCA, to catch integer overflows on size calculation.
 +      (exec_failed) [!DOS_NT]: New function.
 +      (child_setup) [!DOS_NT]: Use it.
 +      * editfns.c (Ftranspose_regions):
 +      Hoist USE_SAFE_ALLOC + SAFE_FREE out of 'if'.
 +      * editfns.c (check_translation):
 +      Allocate larger buffers on the heap.
 +      * eval.c (internal_lisp_condition_case):
 +      Check for MAX_ALLOCA overflow.
 +      * fns.c (sort_vector): Use SAFE_ALLOCA_LISP rather than Fmake_vector.
 +      (Fbase64_encode_region, Fbase64_decode_region):
 +      Avoid unnecessary calls to SAFE_FREE before 'error'.
 +      * buffer.c (mouse_face_overlay_overlaps):
 +      * editfns.c (Fget_pos_property, check_translation):
 +      * eval.c (Ffuncall):
 +      * font.c (font_unparse_xlfd, font_find_for_lface):
 +      * ftfont.c (ftfont_drive_otf):
 +      * keyboard.c (echo_add_key, read_decoded_event_from_main_queue)
 +      (menu_bar_items, tool_bar_items):
 +      * sound.c (Fplay_sound_internal):
 +      * xdisp.c (load_overlay_strings, dump_glyph_row):
 +      Use an ordinary auto buffer rather than alloca, since the
 +      allocation size is fixed and small.
 +      * ftfont.c: Include <c-strcase.h>.
 +      (matching_prefix): New function.
 +      (get_adstyle_property): Use it, to avoid need for alloca.
 +      * keyboard.c (echo_add_key):
 +      * keymap.c (describe_map): Use ptrdiff_t, not int.
 +      * keyboard.c (echo_add_key): Prefer sizeof to strlen.
 +      * keymap.c (Fdescribe_buffer_bindings): Use SBYTES, not SCHARS,
 +      when counting bytes.
 +      * lisp.h (xlispstrdupa): Remove, replacing with ...
 +      (SAFE_ALLOCA_STRING): ... new macro with different API.
 +      This fixes a portability problem, namely, alloca result
 +      passed to another function.  All uses changed.
 +      (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Check for MAX_ALLOCA,
 +      not MAX_ALLOCA - 1.
 +      * regex.c (REGEX_USE_SAFE_ALLOCA, REGEX_SAFE_FREE)
 +      (REGEX_ALLOCATE): New macros.
 +      (REGEX_REALLOCATE, REGEX_ALLOCATE_STACK, REGEX_REALLOCATE_STACK)
 +      (REGEX_FREE_STACK, FREE_VARIABLES, re_match_2_internal):
 +      Use them.
 +      * xdisp.c (message3): Use SAFE_ALLOCA_STRING rather than doing it
 +      by hand.
 +      (decode_mode_spec_coding): Store directly into buf rather than
 +      into an alloca temporary and copying the temporary to the buf.
 +
 +2014-09-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * Makefile.in (EMACS_HEAPSIZE): Remove, no longer used.  (Bug#18416)
 +
 +2014-09-04  Jan D  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (x_term_init): Don't call x_session_initialize if running
 +      as a daemon (Bug#18375).
 +
 +      * xsmfns.c: Initialize ice_fd.
 +
 +2014-09-04  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Less chatter in 'make' output.
 +      * Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0, am__v_GEN_1, AM_V_at)
 +      (am__v_at_, am__v_at_0, am__v_at_1):  New macros, taken from Automake.
 +      ($(etc)/DOC, buildobj.h, gl-stamp): Use them.
 +
 +2014-09-03  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * buffer.c (scroll-bar-height): Fix typo in doc-string.
 +      * frame.c (Vdefault_frame_horizontal_scroll_bars):
 +      Remove variable.
 +      * nsfns.m (Fx_create_frame):
 +      * w32fns.c (Fx_create_frame):
 +      * xfns.c (Fx_create_frame): Default horizontal scroll bars to
 +      nil.
 +
 +2014-09-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (buffer_posn_from_coords): Fix an off-by-one error in
 +      the reported row in the case of a window with a header line, by
 +      improving on the fix committed in 2011-10-08T10:58:50Z!eliz@gnu.org
 +      eliz@gnu.org-20111008105850-ht4tvsayohvr1kjc.  (Bug#18384)
 +
 +2014-09-03  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * eval.c (internal_lisp_condition_case): Don't overrun the stack
 +      when configured --with-wide-int on typical 32-bit platforms.
 +
 +2014-09-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (display_and_set_cursor): Call erase_phys_cursor also
 +      when HPOS is negative, for the benefit of R2L glyph rows whose
 +      newline overflows into the fringe.
 +
 +2014-09-03  Ken Brown  <kbrown@cornell.edu>
 +
 +      * conf_post.h (strnicmp) [CYGWIN && HAVE_NTGUI]: Define.  (Bug#18366)
 +
 +2014-09-02  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Minor cleanup of recent strlen-avoiding patch.
 +      * fileio.c (CHECK_LENGTH): Remove.
 +      Rewrite callers so that they don't need it.
 +      (Fexpand_file_name) [DOS_NT]: Fix a case where directory length
 +      variable wasn't set.
 +
 +2014-09-02  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * fileio.c (CHECK_LENGTH): New macro.
 +      (Fexpand_file_name): Use it and get rid of a few more calls
 +      to strlen and strcat.
 +      * callproc.c (egetenv_internal): Add arg and rename from egetenv ...
 +      * lisp.h (egetenv): ... because of a new inline function used to
 +      avoid calls to strlen for a compile-time constants.
 +
 +      * buffer.h (decode_buffer): New function.
 +      * buffer.c (Fbuffer_name, Fbuffer_file_name, Fbuffer_base_buffer)
 +      (Fbuffer_local_variables, Fbuffer_modified_p, Fbuffer_modified_tick)
 +      (Fbuffer_chars_modified_tick, Fdelete_all_overlays):
 +      * data.c (Flocal_variables_p):
 +      * fileio.c (Fverify_visited_file_modtime):
 +      * marker.c (live_buffer): Use it.
 +
 +2014-09-01  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Avoid extra calls to strlen in filesystem I/O routines.
 +      * fileio.c (Fexpand_file_name): Avoid calls to strlen if
 +      the length of 'newdir' is known or may be precalculated.
 +      (file_accessible_directory_p): Prefer to pass Lisp_Object,
 +      not 'char *', and so use precalculated length.
 +      (Ffile_accessible_directory_p):
 +      * callproc.c (encode_current_directory, init_callproc):
 +      * charset.c (init_charset):
 +      * lread.c (load_path_check, load_path_default): Adjust users.
 +      * lisp.h (file_accessible_directory_p): Tweak prototype.
 +
 +2014-09-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32proc.c (w32_compare_strings): Support "C" and "POSIX"
 +      locales.
 +
 +2014-09-01  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      --enable-silent-rules now suppresses more chatter.
 +      * Makefile.in (AM_DEFAULT_VERBOSITY, AM_V_CC, am__v_CC_)
 +      (am__v_CC_0, am__v_CC_1, AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0)
 +      (am__v_CCLD_1): New macros, taken from Automake.
 +      (.c.o, .m.o, temacs$(EXEEXT)): Use them.
 +
 +      Clean up extern decls a bit.
 +      * bytecode.c: Include blockinput.h and keyboard.h rather
 +      than rolling their APIs by hand.
 +      * emacs.c: Include regex.h and rely on its and lisp.h's API
 +      rather than rolling them by hand.
 +      * lastfile.c: Include lisp.h, to check this file's API.
 +      * lisp.h (lisp_eval_depth, my_edata, my_endbss, my_endbss_static):
 +      New decls.
 +      * regex.h (re_max_failures): New decl.
 +      * unexcw.c, unexmacosx.c, unexw32.c:
 +      Rely on lisp.h's API rather than rolling it by hand.
 +      * vm-limit.c (__after_morecore_hook, __morecore, real_morecore):
 +      Declare at top level, to pacify GCC -Wnested-externs.
 +
 +2014-08-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (get_glyph_string_clip_rects): Don't let the width of a
 +      clipping rectangle become negative (i.e. large positive, since
 +      it's an unsigned data type).  This can happen in R2L hscrolled
 +      glyph rows, and caused us to draw the cursor glyph on the fringe.
 +      For the details, see
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00543.html.
 +
 +2014-08-31  Ken Brown  <kbrown@cornell.edu>
 +
 +      * gmalloc.c: Don't include <stdlib.h>.  Declare system malloc and
 +      friends before defining hybrid_malloc and friends if HYBRID_MALLOC
 +      is defined.  (Bug#18368)
 +
 +2014-08-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Vector-sorting fixes (Bug#18361).
 +      It's not safe to call qsort or qsort_r, since they have undefined
 +      behavior if the user-specified predicate is not a total order.
 +      Also, watch out for garbage-collection while sorting vectors.
 +      * fns.c: Include <vla.h>.
 +      (sort_vector_predicate) [!HAVE_QSORT_R]: Remove.
 +      (sort_vector_compare): Remove, replacing with ....
 +      (inorder, merge_vectors, sort_vector_inplace, sort_vector_copy):
 +      ... these new functions.
 +      (sort_vector): Rewrite to use the new functions.
 +      GCPRO locals, since the predicate can invoke the GC.
 +      Since it's in-place return void; caller changed.
 +      (merge): Use 'inorder', for clarity.
 +
 +      * sysdep.c (str_collate): Clear errno just before wcscoll(_l).
 +      One can't hoist this out of the 'if', because intervening calls to
 +      newlocale, twolower, etc. can change errno.
 +
 +2014-08-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * sysdep.c (str_collate) [__STDC_ISO_10646__]: Improve the
 +      wording of the error messages.
 +      (str_collate) [WINDOWSNT]: Signal an error if w32_compare_strings
 +      sets errno.
 +
 +      * w32proc.c (get_lcid_callback): Accept locale specifications
 +      without the country part, as in "enu" vs "enu_USA".
 +      (w32_compare_strings): Signal an error if a locale was specified,
 +      but couldn't be translated into a valid LCID.
 +
 +2014-08-29  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * sysdep.c (str_collate) [__STDC_ISO_10646__]: Move up setting errno.
 +
 +2014-08-29  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * sysdep.c (str_collate) [__STDC_ISO_10646__]: Do not look at
 +      errno after towlower_l.  errno's value is not specified after
 +      towlower_l.  Instead, assume that towlower_l returns its argument
 +      on failure, which is portable in practice.
 +
 +2014-08-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): Doc fix.
 +
 +      * w32proc.c (w32_compare_strings): Accept additional argument
 +      IGNORE_CASE.  Set up the flags for CompareStringW to ignore case
 +      if requested.  If w32-collate-ignore-punctuation is non-nil, add
 +      NORM_IGNORESYMBOLS to the flags.
 +      (LINGUISTIC_IGNORECASE): Define if not already defined.
 +      (syms_of_ntproc) <Vw32_collate_ignore_punctuation>: New variable.
 +
 +      * sysdep.c (str_collate) [WINDOWSNT]: Adapt to the interface
 +      change.
 +
 +2014-08-29  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * sysdep.c (LC_CTYPE, LC_CTYPE_MASK, towlower_l):
 +      Define substitutes for platforms that lack them.
 +      (str_collate): Add arguments locale and ignore_case.
 +
 +      * fns.c (Fstring_collate_lessp, Fstring_collate_equalp):
 +      Add optional arguments LOCALE and IGNORE-CASE.
 +
 +      * lisp.h (str_collate): Adapt argument list.
 +
 +2014-08-29  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Add vectors support to Fsort.
 +      * fns.c (sort_vector, sort_vector_compare): New functions.
 +      (sort_list): Likewise, refactored out of ...
 +      (Fsort): ... adjusted user.  Mention vectors in docstring.
 +      (sort_vector_predicate) [!HAVE_QSORT_R]: New variable.
 +      * alloc.c (make_save_int_obj): New function.
 +      * lisp.h (enum Lisp_Save_Type): New member SAVE_TYPE_INT_OBJ.
 +      (make_save_int_obj): Add prototype.
 +
 +      Fix last change to support Darwin/OSX and FreeBSD (Bug#18354).
 +      * sysdep.c (sort_vector_compare) [DARWIN_OS || __FreeBSD__]:
 +      Conditionally define to match system's qsort_r signature.
 +      (sort_vector) [DARWIN_OS || __FreeBSD__]: Likewise in call to qsort_r.
 +
 +2014-08-28  Ken Brown  <kbrown@cornell.edu>
 +
 +      Add support for HYBRID_MALLOC, allowing the use of gmalloc before
 +      dumping and the system malloc after dumping.  (Bug#18222)
 +
 +      * conf_post.h (malloc, realloc, calloc, free) [HYBRID_MALLOC]:
 +      Define as macros, expanding to hybrid_malloc, etc.
 +      (HYBRID_GET_CURRENT_DIR_NAME): New macro.
 +      (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Define as
 +      macro.
 +      * gmalloc.c: Set up the infrastructure for HYBRID_MALLOC, with a
 +      full implementation on Cygwin.  Remove Cygwin-specific code that
 +      is no longer needed.
 +      (malloc, realloc, calloc, free, aligned_alloc) [HYBRID_MALLOC]:
 +      Redefine as macros expanding to gmalloc, grealloc, etc.
 +      (DUMPED, ALLOCATED_BEFORE_DUMPING) [CYGWIN]: New macros.
 +      (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Undefine.
 +      (USE_PTHREAD, posix_memalign) [HYBRID_MALLOC]: Don't define.
 +      (hybrid_malloc, hybrid_calloc, hybrid_free, hybrid_realloc)
 +      [HYBRID_MALLOC]:
 +      (hybrid_get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
 +      (hybrid_aligned_alloc) [HYBRID_MALLOC && (HAVE_ALIGNED_ALLOC ||
 +      HAVE_POSIX_MEMALIGN)]: New functions.
 +      * alloc.c (aligned_alloc) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
 +      HAVE_POSIX_MEMALIGN)]: Define as macro expanding to
 +      hybrid_aligned_alloc; declare.
 +      (USE_ALIGNED_ALLOC) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
 +      HAVE_POSIX_MEMALIGN)]: Define.
 +      (refill_memory_reserve) [HYBRID_MALLOC]: Do nothing.
 +      * sysdep.c (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
 +      Define as macro, expanding to gget_current_dir_name, and define
 +      the latter.
 +      * emacs.c (main) [HYBRID_MALLOC]: Don't call memory_warnings() or
 +      malloc_enable_thread().  Don't initialize malloc.
 +      * lisp.h (NONPOINTER_BITS) [CYGWIN]: Define (because GNU_MALLOC is
 +      no longer defined on Cygwin).
 +      (refill_memory_reserve) [HYBRID_MALLOC]: Don't declare.
 +      * sheap.c (bss_sbrk_buffer_end): New variable.
 +      * unexcw.c (__malloc_initialized): Remove variable.
 +      * ralloc.c: Throughout, treat HYBRID_MALLOC the same as
 +      SYSTEM_MALLOC.
 +      * xdisp.c (decode_mode_spec) [HYBRID_MALLOC]: Don't check
 +      Vmemory_full.
 +
 +2014-08-28  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * w32term.c (w32_horizontal_scroll_bar_handle_click):
 +      In `event->y' return entire range (the size of the scroll bar minus
 +      that of the thumb).
 +      * xterm.c (xm_scroll_callback, xaw_jump_callback): In `whole'
 +      return entire range (the scaled size of the scroll bar minus
 +      that of the slider).  In `portion' return the scaled position of
 +      the slider.
 +      (xaw_jump_callback): Restore part of code for vertical scroll
 +      bar broken in change from 2014-07-27.
 +      (xaw_scroll_callback): Provide incremental scrolling with
 +      horizontal scroll bars.
 +
 +2014-08-28  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Don't define.
 +
 +      * indent.c (Fvertical_motion): Fix vertical motion up through a
 +      display property after a newline.  (Bug#18276)
 +
 +      * xdisp.c (display_line): Don't assume that the call to
 +      reseat_at_next_visible_line_start ends up at a character
 +      immediately following the newline on the previous line.
 +      Avoids setting the ends_at_zv_p flag on screen lines that are not at or
 +      beyond ZV, which causes infloop in redisplay.  For the details, see
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00368.html.
 +
 +      * dispnew.c (buffer_posn_from_coords): Fix mirroring of X
 +      coordinate for hscrolled R2L screen lines.  (Bug#18277)
 +
 +2014-08-28  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * sysdep.c (LC_COLLATE, LC_COLLATE_MASK): Give individual defaults
 +      (Bug#18051).
 +
 +2014-08-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * syntax.c (scan_lists): Don't examine positions before BEGV.
 +      (Bug#18339)
 +
 +2014-08-27  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Improve robustness of new string-collation code (Bug#18051).
 +      * sysdep.c (LC_COLLATE, LC_COLLATE_MASK, freelocale, locale_t)
 +      (newlocale, wcscoll_l): Define substitutes for platforms that
 +      lack them, so as to simplify the mainline code.
 +      (str_collate): Simplify the code by assuming the above definitions.
 +      Use wcscoll_l, not uselocale, as uselocale is too fragile.
 +      For example, the old version left the Emacs in the wrong locale if
 +      wcscoll reported an error.  Use 'int', not ptrdiff_t, for the int
 +      result.  Report an error if newlocale fails.
 +
 +2014-08-27  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * lisp.h (str_collate):
 +      * sysdep.c (str_collate): Return int.
 +      (str_collate) [__STDC_ISO_10646__]: Propagate error of wcscoll.
 +
 +2014-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Fix some glitches in previous change.
 +      * sysdep.c (stack_direction): Replace stack_grows_down
 +      to simplify calculation of stack boundaries.
 +      (handle_sigsegv): Check whether we really crash somewhere near
 +      to stack boundary, and handle fatal signal as usual if not.
 +      (init_sigsegv): Adjust accordingly.
 +      * keyboard.c (Vtop_level_message): Rename to
 +      Vinternal__top_level_message, as suggested by Stefan Monnier in
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00493.html
 +      All related users changed.
 +
 +2014-08-26  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Handle C stack overflow caused by too nested Lisp evaluation.
 +      * lisp.h (toplevel) [HAVE_STACK_OVERFLOW_HANDLING]: Declare
 +      siglongjmp point to transfer control from SIGSEGV handler.
 +      * keyboard.c (return_to_command_loop, recover_top_level_message)
 +      [HAVE_STACK_OVERFLOW_HANDLING]: New variables.
 +      (regular_top_level_message): New variable.
 +      (command_loop) [HAVE_STACK_OVERFLOW_HANDLING]: Handle non-local
 +      exit from SIGSEGV handler and adjust message displayed by Vtop_level
 +      if appropriate.
 +      (syms_of_keyboard): DEFVAR Vtop_level_message and initialize
 +      new variables described above.
 +      * sysdep.c [HAVE_SYS_RESOURCE_H]: Include sys/resource.h as such.
 +      (stack_grows_down, sigsegv_stack, handle_sigsegv)
 +      [HAVE_STACK_OVERFLOW_HANDLING]: New variables and function.
 +      (init_sigsegv): New function.
 +      (init_signals): Use it.
 +
 +2014-08-25  Ken Brown  <kbrown@cornell.edu>
 +
 +      * emacs.c (main): Remove use of obsolete macro
 +      G_SLICE_ALWAYS_MALLOC.
 +
 +2014-08-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Implement locale-sensitive string collation for MS-Windows.
 +      * w32proc.c (get_lcid_callback, get_lcid, w32_compare_strings):
 +      New functions.  (Bug#18051)
 +
 +      * w32.h (w32_compare_strings): Add prototype.
 +
 +      * w32.c <g_b_init_compare_string_w>: New global flag.
 +      (globals_of_w32): Initialize it.
 +
 +      * sysdep.c (str_collate) [WINDOWSNT]: Implementation for MS-Windows.
 +
 +      * fns.c (Fstring_collate_lessp, Fstring_collate_equalp)
 +      [WINDOWSNT]: Call str_collate on MS-Windows.
 +
 +2014-08-25  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      One more minor cleanup of font subsystem.
 +      * font.h (struct font_driver): Convert text_extents to
 +      return void because returned value is never actually used.
 +      * macfont.m (macfont_text_extents):
 +      * w32font.c (w32font_text_extents):
 +      * xftfont.c (xftfont_text_extents): Adjust to return void
 +      and assume that 'metrics' argument is always non-NULL.
 +      * ftfont.c (ftfont_text_extents):
 +      * xfont.c (xfont_text_extents): Likewise.  Avoid redundant memset.
 +
 +2014-08-25  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Minor cleanups of str_collate fix (Bug#18051).
 +      * fns.c (str_collate): Move decl from here ...
 +      * lisp.h (str_collate): ... to here.
 +      * sysdep.c (str_collate): Prune away some of the forest of ifdefs.
 +      Remove unnecessary casts.  Use SAFE_NALLOCA to avoid
 +      potential problems with integer overflow.  Don't assume
 +      setlocale succeeds.  Remove unnecessary test before restoring
 +      locale via setlocale, and free the copied setlocale string
 +      when done with it.
 +
 +2014-08-24  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * fns.c (Fstring_collate_lessp, Fstring_collate_equalp): New DEFUNs.
 +
 +      * sysdep.c (str_collate): New function.  (Bug#18051)
 +
 +2014-08-23  Karol Ostrovsky  <karol.ostrovsky@gmail.com>  (tiny change)
 +
 +      * Makefile.in (emacs$(EXEEXT)): Retry deletion of bootstrap-emacs
 +      if the initial "rm -f" fails.  This is for MinGW builds, where
 +      MS-Windows will not allow deleting the executable file of a
 +      running program.
 +
 +2014-08-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32term.c (w32_scroll_bar_handle_click)
 +      (w32_horizontal_scroll_bar_handle_click)
 +      (x_scroll_bar_report_motion)
 +      (x_horizontal_scroll_bar_report_motion): For SB_THUMBPOSITION and
 +      SB_THUMBTRACK, use the 32-bit position information returned by
 +      GetScrollInfo, not the 16-bit information returned in the Windows
 +      message sent to us.
 +
 +2014-08-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32term.c (w32_horizontal_scroll_bar_handle_click): Fix the
 +      second coordinate ('y') reported for dragging the horizontal
 +      scroll bar thumb.
 +
 +2014-08-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * xdisp.c (erase_phys_cursor): Fix confusion between window-relative
 +      and text area-relative x-coordinates.
 +
 +2014-08-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Avoid overwriting the reversed_p flags in the glyph matrices when
 +      init_iterator or start_display are called.
 +      * xdisp.c (init_iterator): Don't initialize the reversed_p flag of
 +      the glyph row here.
 +      (tool_bar_height, redisplay_tool_bar, try_window)
 +      (try_window_reusing_current_matrix, try_window_id)
 +      (get_overlay_arrow_glyph_row, display_menu_bar): Initialize the
 +      reversed_p flag of the iterator's glyph row where the glyph row
 +      is going to be redrawn.
 +
 +2014-08-16  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * xdisp.c (set_horizontal_scroll_bar): Don't use uninitialized local.
 +
 +2014-08-16  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * w32term.c (w32_horizontal_scroll_bar_handle_click): In y part
 +      of emacs_event return length from si.nPage to si.nMax.
 +      * xdisp.c (set_horizontal_scroll_bar): For right-to-left text
 +      interchange start and end of thumb.
 +
 +2014-08-15  Ken Brown  <kbrown@cornell.edu>
 +
 +      * gmalloc.c (_malloc_mutex, _aligned_blocks_mutex) [CYGWIN]: Use
 +      ERRORCHECK mutexes.  (Bug#18222)
 +
 +2014-08-12  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (set_menu_bar_lines_1): Remove.
 +      (set_menu_bar_lines): Call change_frame_size instead of
 +      set_menu_bar_lines_1.
 +
 +2014-08-11  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfns.m (Fx_create_frame): Call adjust_frame_size,
 +      set f->official.
 +
 +2014-08-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * fileio.c: Revert 2013-01-31 change, which chose coding system for
 +      writing before backing up, since it causes a more serious problem
 +      than the one it solves.  (Closes Bug#18141, reopens Bug#13522.)
 +      (choose_write_coding_system): No longer callable from Lisp.
 +      Move last piece back here from Fwrite_region.
 +      (Fwrite_region, syms_of_fileio): Update for above changes.
 +
 +2014-08-11  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * window.c (Fwindow_valid_p): Fix doc-string (Bug#18194).
 +      (Fwindow_new_total, Fwindow_normal_size, Fwindow_new_normal)
 +      (Fwindow_new_pixel, Fset_window_new_pixel)
 +      (Fset_window_new_total, Fset_window_new_normal)
 +      (Fwindow_resize_apply): Fix doc-strings (see Bug#18112).
 +      See also:
 +      http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-08/msg00287.html
 +
 +2014-08-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fontset.c (Finternal_char_font): Recompute basic faces if the
 +      frame's face cache was cleared.  (Bug#18162)
 +
 +2014-08-11  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Fix bug with uninitialized undo list of an indirect buffer (Bug#18180).
 +      * buffer.c (Fmake_indirect_buffer): Initialize undo list with the
 +      base buffer's undo list.
 +
 +2014-08-10  Reuben Thomas  <rrt@sc3d.org>
 +
 +      Fix a couple of recent inadvertent breaks of the MSDOS port.
 +      * msdos.c: include required menu.h
 +      * term.c: set correct menu_show_hook on MSDOS.
 +
 +2014-08-10  Martin Rudalics  <rudalics@gmx.at>
 +
 +      Fix handling of menu bar line on TTY frames (Bug#18136)
 +      (Bug#18196).
 +      * dispnew.c (handle_window_change_signal):
 +      * keyboard.c (Fsuspend_emacs): Call change_frame_size with
 +      frame's menu bar lines subtracted from height.
 +      * frame.c (frame_inhibit_resize): Inhibit resizing of TTY
 +      frames.
 +      (adjust_frame_size): Count in menu bar when setting FrameRows.
 +      (make_terminal_frame): When setting up the frame's lines and
 +      text height don't count in the menu bar.
 +      (Fmake_terminal_frame): Call adjust_frame_size with menu bar
 +      lines subtracted from height.
 +      (do_switch_frame): Set tty's FrameRows to number of total lines
 +      of frame.
 +      (Fframe_pixel_height, Fframe_pixel_width): If no window system
 +      is used, return total number of lines and columns.
 +      * menu.c (emulate_dialog_with_menu): Use FRAME_TOTAL_LINES instead
 +      of FRAME_LINES.
 +      * term.c (OUTPUT, tty_set_terminal_modes)
 +      (tty_set_terminal_window, tty_set_scroll_region)
 +      (tty_clear_to_end, tty_write_glyphs, tty_write_glyphs_with_face)
 +      (tty_ins_del_lines, tty_menu_display, tty_menu_activate):
 +      Use FRAME_TOTAL_LINES instead of FRAME_LINES.
 +      (Fresume_tty): Use FRAME_TOTAL_LINES instead of FRAME_LINES.
 +      Call change_frame_size with frame's menu bar lines subtracted
 +      from height.
 +      * w32console.c (w32con_clear_to_end, w32con_clear_frame)
 +      (w32con_ins_del_lines): Use FRAME_TOTAL_LINES instead of
 +      FRAME_LINES.
 +
 +2014-08-09  Reuben Thomas  <rrt@sc3d.org>
 +
 +      * alloc.c (Fmemory_info): Remove a stray brace.
 +
 +      * process.c: Fix a comment typo.
 +
 +      * msdos.c, dosfns.c (init_dosfns): Remove support for DJGPP < 2.02.
 +
 +2014-08-09  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * widgetprv.h (EmacsFramePart): Remove font.
 +
 +      * widget.c (DEFAULT_FACE_FONT, EmacsFrameSetValues, setup_frame_gcs)
 +      (resources, setup_frame_cursor_bits): Remove unused variables and
 +      functions, esp. wrt. font (Bug#18227).
 +
 +2014-08-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * xterm.c (x_delete_terminal): Plug file descriptor leak (Bug#17691).
 +
 +2014-08-07  Reuben Thomas  <rrt@sc3d.org>
 +
 +      Refer to MS-DOS using the same name everywhere.
 +
 +      * editfns.c: Fix a couple of ``MS-DOG''s missed in the previous
 +      commit.
 +      * xfaces.c: ditto.
 +
 +2014-08-05  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * w32term.c (w32_redeem_scroll_bar):
 +      * xterm.c (XTredeem_scroll_bar): Revert part of last change by
 +      not redeeming scroll bars that have been turned off.
 +
 +2014-08-05 Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * keyboard.c (safe_run_hooks): Follow the convenient style to bind
 +      inhibit-quit to t and pass 2 args to safe_run_hook_funcall.  See
 +      <http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00077.html>.
 +      (safe_run_hook_funcall): Adjust accordingly.
 +
 +2014-08-04  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS):
 +      Condition correctly according to toolkit used.
 +      * frame.c (make_initial_frame, make_terminal_frame)
 +      (x_set_horizontal_scroll_bars, x_set_scroll_bar_height)
 +      (Vdefault_frame_horizontal_scroll_bars): Correctly condition
 +      assignments according to presence of toolkit scrollbars.
 +      * window.h (WINDOW_HAS_HORIZONTAL_SCROLL_BAR):
 +      Condition correctly according to toolkit used.
 +      * window.c (set_window_scroll_bars): Set horizontal scroll bar
 +      only if toolkit supports it.
 +      * w32term.c (w32_redeem_scroll_bar): Always redeem scroll bar if
 +      present.
 +      * xterm.c (x_scroll_bar_create): Initialize horizontal slot for
 +      non-toolkit builds.
 +      (XTredeem_scroll_bar): Always redeem scroll bar if present.
 +
 +2014-08-04 Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * keyboard.c (safe_run_hook_funcall): Avoid consing around
 +      Vinhibit_quit and prefer internal_condition_case_n to pass args.
 +      (safe_run_hooks_error, safe_run_hooks_1): Adjust accordingly.
 +      (safe_run_hooks): Remove comment which is not relevant any more.
 +
 +2014-08-03  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Don't let big frames overrun the stack.
 +      * dispnew.c (mirrored_line_dance, mirror_line_dance, scrolling):
 +      Use SAFE_NALLOCA, not alloca.
 +
 +      Fix bug with clang + directory_files_internal + GC (Bug#16986).
 +      * dired.c (directory_files_internal): Use a volatile variable
 +      to prevent the compiler from optimizing away all copies of a local.
 +      I wonder how many other GC-related bugs like this lurk elsewhere?
 +
 +      Avoid 100% CPU utilization on ssh session exit (Bug#17691).
 +      * xterm.h (struct x_display_info): New member 'connection'.
 +      * xterm.c (x_term_init, x_delete_terminal): Set and use it,
 +      so that x_delete_terminal has a file descriptor to pass to
 +      delete_keyboard_wait_descriptor.
 +
 +      Don't mishandle year-9999 dates (Bug#18176).
 +      * editfns.c (decode_time_components): Store an invalid timespec
 +      on overflow, instead of returning false, so that the caller can
 +      distinguish overflow from other errors.
 +      (lisp_time_argument, lisp_seconds_argument): If the time is out
 +      of range, signal a time overflow instead of an invalid time spec.
 +      * keyboard.c (decode_timer): Treat time overflow like other
 +      timespec errors.
 +
 +      Avoid undefined behavior with signed left shift.
 +      Caught by 'gcc -fsanitize=undefined'.
 +      * dispextern.h, scroll.c (scrolling_max_lines_saved, scrolling_1):
 +      * dispnew.c (line_hash_code, scrolling):
 +      * scroll.c (calculate_scrolling, calculate_direct_scrolling):
 +      Use 'unsigned', not 'int', for line hashes.
 +      (scrolling_max_lines_saved): Avoid mystery constants for hash sizes.
 +
 +2014-08-02  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Make compare-strings more compatible with old behavior (Bug#17903).
 +      * fns.c (Fcompare_strings): Silently bring too-large ends into range.
 +
 +2014-08-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (create_dialog): Force min spacing 10 between buttons.
 +      Don't add label between left and right buttons (Bug#18129).
 +
 +2014-08-01  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Make functions static that no longer need to be extern.
 +      * frame.c, frame.h (set_menu_bar_lines):
 +      * keyboard.c (Qleftmost, Qrightmost):
 +      * xfns.c, frame.h, menu.h (x_set_menu_bar_lines, x_set_tool_bar_lines)
 +      (x_set_internal_border_width):
 +      Now static.
 +
 +2014-08-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix display of R2L lines when the last character fits only partially.
 +      See http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00476.html
 +      for the details.
 +      * xdisp.c (extend_face_to_end_of_line): If the last glyph of an
 +      R2L row is visible only partially, give the row a negative x
 +      offset.
 +      (display_line): Fix the calculation of the glyph whose pixel width
 +      is used to decide whether the last produced glyph fits on the
 +      line.  When the last glyph fits only partially, give the row a
 +      negative x offset.
 +
 +      Fix hscroll of R2L lines that begin with a TAB or another wide glyph.
 +      * xdisp.c (append_stretch_glyph): In a R2L glyph row, decrease the
 +      pixel width of the first glyph that is hscrolled from display.
 +      (display_line): In R2L glyph rows, don't give a negative offset to
 +      row->x when the first glyph begins before first_visible_x.
 +
 +      * xdisp.c (display_line): If called with iterator set up to write
 +      to a marginal area, delay the call to handle_line_prefix until we
 +      switch back to the text area.  (Bug#18035)
 +
 +      * .gdbinit (xwindow): The members total_cols, total_lines,
 +      left_col, and top_line are C integers (and has been so for the
 +      last 1.5 years).
 +
 +2014-08-01  Andreas Schwab  <schwab@suse.de>
 +
 +      * macros.c (Fstart_kbd_macro): Initialize kbd_macro_ptr and
 +      kbd_macro_end together with kbd_macro_buffer.  (Bug#18140)
 +
 +2014-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * atimer.c (toplevel) [HAVE_TIMERFD]: Include errno.h.
 +      (timerfd_callback): Ignore weird events with no data.  Add tight
 +      assertions and comments.
 +      (init_atimer) [HAVE_TIMERFD]: Add environment variable to optionally
 +      disable timerfd-based timer.  Use TFD_NONBLOCK for timer descriptor.
 +
 +2014-08-01  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * frame.c (x_set_frame_parameters): Fix typo in previous patch.
 +      I had confused && with ||.
 +
 +2014-07-31  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Simplify timerfd configuration and fix some minor glitches.
 +      * atimer.c (TIMERFD_CREATE_FLAGS): Remove; we now assume TFD_CLOEXEC.
 +      (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
 +      Fall back on timer_create if timerfd_create fails at runtime.
 +      (resolution) [HAVE_CLOCK_GETRES]: Remove; we now rely on the
 +      kernel primitives to do resolution.  All uses removed.
 +      (timerfd) [!HAVE_TIMERFD]: Define to be -1, for convenience.
 +      (turn_on_atimers): Clear timer_create-based timers too,
 +      for consistency.
 +
 +      * frame.c (x_set_frame_parameters): Don't use uninitialized locals.
 +      Without this change, the code can access the local variable 'width'
 +      even when it has not been initialized, and likewise for 'height';
 +      in either case this leads to undefined behavior.
 +
 +2014-07-30  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xrdb.c (x_load_resources) [USE_MOTIF]: Although not strictly
 +      necessary, put horizontal scroll bar resources as well.  See
 +      <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00430.html>.
 +      * xterm.c (x_sync_with_move): Really wait 0.5s, not 0.0005s.
 +
 +2014-07-29  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xrdb.c (x_load_resources) [!USE_MOTIF]: Put horizontal scroll bar
 +      background value to match the resource of its vertical counterpart.
 +
 +2014-07-29  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (adjust_frame_size): Use FRAME_WINDOW_P instead of
 +      FRAME_X_WINDOW when calling x_set_window_size (Bug#18138).
 +
 +2014-07-28  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * frame.c (x_set_frame_parameters): Revert part of 2014-07-24
 +      change that added the top margin height to the requested height
 +      and revert (undocumented) part of 2014-07-28 change that changed
 +      the logic of whether a size change occurred.
 +
 +2014-07-28  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * .gdbinit (xwindow): The members total_cols, total_lines,
 +      left_col, and top_line are C integers (and has been so for the
 +      last 1.5 years).
 +
 +      * .gdbinit (xsubchartable): The members 'depth' and 'min_char' are
 +      now C integers.
 +
 +2014-07-28  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      On GNU/Linux, use timerfd for asynchronous timers.
 +      * atimer.c (toplevel) [HAVE_TIMERFD]: Include sys/timerfd.h.
 +      (toplevel): Rename alarm_timer_ok to special_timer_available.
 +      [HAVE_TIMERFD]: Declare timerfd.
 +      [HAVE_CLOCK_GETRES]: Declare resolution.
 +      (start_atimer) [HAVE_CLOCK_GETRES]: Round up timestamp to
 +      system timer resolution.
 +      (set_alarm) [HAVE_TIMERFD]: Use timerfd_settime.
 +      (timerfd_callback) [HAVE_TIMERFD]: New function.
 +      (atimer_result, debug_timer_callback, Fdebug_timer_check)
 +      [ENABLE_CHECKING]: New function for the sake of automated tests.
 +      (init_atimer) [HAVE_TIMERFD]: Setup timerfd.
 +      [HAVE_CLOCK_GETRES]: Likewise for system timer resolution.
 +      [ENABLE_CHECKING]: Defsubr test function.
 +      * atimer.h (timerfd_callback) [HAVE_TIMERFD]: Add prototype.
 +      * lisp.h (add_timer_wait_descriptor) [HAVE_TIMERFD]: Likewise.
 +      * process.c (add_timer_wait_descriptor) [HAVE_TIMERFD]: New function.
 +
 +      Fix --without-x build and pacify --enable-gcc-warnings.
 +      Problems reported in Bug#18122 and Bug#18124.
 +      * frame.c (get_frame_param): Define even if !HAVE_WINDOW_SYSTEM.
 +      (frame_windows_min_size): Now static.
 +      * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS) [!HAVE_WINDOW_SYSTEM]:
 +      Define as no-op.
 +      (adjust_frame_size): Always declare prototype.
 +
 +      Fix Gnus-related issues reported by David Kastrup <dak@gnu.org> in
 +      <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00370.html>.
 +      * atimer.c (timerfd_callback): Always read expiration data.
 +      Add comment.
 +      (turn_on_atimers) [HAVE_TIMERFD]: Disarm timerfd timer.
 +      * process.c (add_timer_wait_descriptor): Add timer descriptor
 +      to input_wait_mask and non_process_wait_mask as well.
 +
 +2014-07-28  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * frame.c (x_set_frame_parameters): Don't use uninitialized locals.
 +
 +2014-07-27  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (applicationDidFinishLaunching antialiasThresholdDidChange):
 +      Reinstate code removed by the prevoius commit to this file.
 +
 +2014-07-27  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * buffer.h (struct buffer): New fields scroll_bar_height and
 +      horizontal_scroll_bar_type.
 +      * buffer.c (bset_scroll_bar_height)
 +      (bset_horizontal_scroll_bar_type): New functions.
 +      (Fbuffer_swap_text): Handle old_pointm field.
 +      (init_buffer_once): Set defaults for scroll_bar_height and
 +      horizontal_scroll_bar_type.
 +      (syms_of_buffer): New variables scroll_bar_height and
 +      horizontal_scroll_bar_type.
 +      * dispextern.h (window_part): Rename ON_SCROLL_BAR to
 +      ON_VERTICAL_SCROLL_BAR.  Add ON_HORIZONTAL_SCROLL_BAR.
 +      (set_vertical_scroll_bar): Remove prototype.
 +      (x_change_tool_bar_height): Add prototype.
 +      * dispnew.c (adjust_frame_glyphs_for_frame_redisplay)
 +      (window_to_frame_vpos, update_frame_1, scrolling, init_display):
 +      Use FRAME_TOTAL_COLS and FRAME_TOTAL_LINES instead of FRAME_COLS
 +      and FRAME_LINES.
 +      (adjust_frame_glyphs_for_window_redisplay): Rearrange lines.
 +      (update_window): Start mode_line_row->y after horizontal scroll
 +      bar.
 +      (change_frame_size_1): Call adjust_frame_size.
 +      (init_display): When changing the size of a tty frame do not
 +      pass height of menu bar.
 +      (Qframe_windows_min_size): New symbol.
 +      * frame.h (struct frame): List tool bar fields after menu bar
 +      fields.  Add official, total_lines, horizontal_scroll_bars,
 +      config_scroll_bar_height and config_scroll_bar_lines fields.
 +      (FRAME_HAS_HORIZONTAL_SCROLL_BARS)
 +      (FRAME_CONFIG_SCROLL_BAR_HEIGHT, FRAME_CONFIG_SCROLL_BAR_LINES)
 +      (FRAME_SCROLL_BAR_AREA_HEIGHT, FRAME_SCROLL_BAR_COLS)
 +      (FRAME_SCROLL_BAR_LINES, FRAME_TOTAL_LINES, SET_FRAME_LINES)
 +      (FRAME_WINDOWS_HEIGHT): New macros.
 +      (SET_FRAME_HEIGHT, FRAME_TEXT_LINES_TO_PIXEL_HEIGHT)
 +      (FRAME_PIXEL_Y_TO_LINE, FRAME_PIXEL_HEIGHT_TO_TEXT_LINES)
 +      (FRAME_TEXT_TO_PIXEL_HEIGHT): Separately count top margin and
 +      horizontal scroll bar.
 +      (frame_inhibit_resize, adjust_frame_size)
 +      (frame_windows_min_size): Add declarations.
 +      (Qscroll_bar_height, Qhorizontal_scroll_bars)
 +      (x_set_scroll_bar_default_height, x_set_left_fringe)
 +      (x_set_right_fringe, x_set_vertical_scroll_bars)
 +      (x_set_horizontal_scroll_bars, x_set_scroll_bar_width)
 +      (x_set_scroll_bar_height): Add external declarations.
 +      * frame.c: (frame_inhibit_resize, frame_windows_min_size)
 +      (adjust_frame_size): New functions.
 +      (make_frame): Initial horizontal_scroll_bars field.
 +      Use SET_FRAME_LINES.  Don't allow horizontal scroll bar in
 +      minibuffer window.
 +      (make_initial_frame, make_terminal_frame): No horizontal scroll
 +      bar in initial and terminal frames.  Use adjust_frame_size.
 +      (Fframe_total_cols): Fix doc-string.
 +      (Fframe_total_lines, Fscroll_bar_height): New Lisp functions.
 +      (Fset_frame_height, Fset_frame_width, Fset_frame_size):
 +      Rewrite using adjust_frame_size.
 +      (Qscroll_bar_height, Qhorizontal_scroll_bars)
 +      (Qframe_windows_min_size): New symbols.
 +      (x_set_frame_parameters): Remove call of check_frame_size.
 +      (x_report_frame_params): Return scroll_bar_height value.
 +      (x_set_left_fringe, x_set_right_fringe): New functions.
 +      (adjust_frame_height, x_set_internal_border_width)
 +      (x_set_fringe_width): Remove.
 +      (x_set_internal_border_width, x_set_vertical_scroll_bars)
 +      (x_set_scroll_bar_width, x_set_right_divider_width)
 +      (x_set_bottom_divider_width): Rewrite using adjust_frame_size.
 +      (x_set_horizontal_scroll_bars, x_set_scroll_bar_height):
 +      New functions.
 +      (x_figure_window_size): Rewrite to make frame display the
 +      expected number of lines.
 +      (Vdefault_frame_scroll_bars): Rewrite doc-string.
 +      (Vdefault_frame_horizontal_scroll_bars)
 +      (Vframe_initial_frame_tool_bar_height)
 +      (frame_inhibit_implied_resize): New variables.
 +      * fringe.c (compute_fringe_widths): Remove.
 +      * gtkutil.h (YG_SB_MIN, YG_SB_MAX, YG_SB_RANGE): Define.
 +      (xg_create_horizontal_scroll_bar)
 +      (xg_update_horizontal_scrollbar_pos)
 +      (xg_set_toolkit_horizontal_scroll_bar_thumb)
 +      (xg_get_default_scrollbar_height)
 +      (xg_clear_under_internal_border): Extern.
 +      * gtkutil.c (xg_frame_resized): Don't call
 +      do_pending_window_change.
 +      (xg_frame_set_char_size): Use adjust_frame_size.
 +      (style_changed_cb): Call update_theme_scrollbar_height and
 +      x_set_scroll_bar_default_height.
 +      (x_wm_set_size_hint): Don't call check_frame_size.
 +      (update_theme_scrollbar_height)
 +      (xg_get_default_scrollbar_height)
 +      (xg_create_horizontal_scroll_bar)
 +      (xg_update_horizontal_scrollbar_pos)
 +      (xg_set_toolkit_horizontal_scroll_bar_thumb): New functions.
 +      (xg_create_scroll_bar): Set horizontal slot of bar.
 +      (xg_initialize): Call update_theme_scrollbar_height.
 +      (xg_clear_under_internal_border): No more static.
 +      * insdel.c (adjust_suspend_auto_hscroll): New function.
 +      (adjust_markers_for_delete, adjust_markers_for_insert)
 +      (adjust_markers_for_replace): Call adjust_suspend_auto_hscroll.
 +      * keyboard.c (readable_events, discard_mouse_events)
 +      (make_lispy_event): Handle horizontal scroll bar click events.
 +      (Fsuspend_emacs): When changing the size of a tty frame do not
 +      pass height of menu bar.
 +      (Qbefore_handle, Qhorizontal_handle, Qafter_handle, Qleft)
 +      (Qright, Qleftmost, Qrightmost): New symbols.
 +      * menu.c (Fx_popup_dialog): Use FRAME_TOTAL_LINES instead of
 +      FRAME_LINES.
 +      * minibuf.c (read_minibuf): Initialize suspend_auto_hscroll.
 +      * nsfns.m (x_set_internal_border_width): New function.
 +      * nsterm.m (ns_draw_fringe_bitmap, ns_set_vertical_scroll_bar):
 +      Remove extended fringe code.
 +      (x_set_window_size, x_new_font): Don't call
 +      compute_fringe_widths.
 +      * term.c (Fresume_tty): When changing the size of a tty frame do
 +      not pass height of menu bar.
 +      (clear_tty_hooks, set_tty_hooks):
 +      Clear horizontal_scroll_bar_hook.
 +      (init_tty): Frame has no horizontal scroll bars.
 +      * termhooks.h (enum scroll_bar_part): Add scroll_bar_move_ratio,
 +      scroll_bar_before_handle, scroll_bar_horizontal_handle,
 +      scroll_bar_after_handle, scroll_bar_left_arrow,
 +      scroll_bar_right_arrow, scroll_bar_to_leftmost and
 +      scroll_bar_to_rightmost entries.
 +      (enum event_kind): Add HORIZONTAL_SCROLL_BAR_CLICK_EVENT
 +      (struct terminal): Add set_horizontal_scroll_bar_hook.
 +      * w32console.c (initialize_w32_display):
 +      Clear horizontal_scroll_bar_hook.
 +      * w32fns.c (x_set_mouse_color): Use FRAME_W32_DISPLAY instead of
 +      FRAME_X_DISPLAY.
 +      (x_clear_under_internal_border, x_set_internal_border_width):
 +      New functions.
 +      (x_set_menu_bar_lines): Rewrite using frame_inhibit_resize.
 +      Set windows_or_buffers_changed when adding the menu bar.
 +      (x_set_tool_bar_lines): Rewrite using adjust_frame_size.
 +      (x_change_tool_bar_height, x_set_scroll_bar_default_height)
 +      (w32_createhscrollbar): New functions.
 +      (w32_createscrollbar): Rename to w32_createvscrollbar.
 +      (w32_createwindow): Init WND_HSCROLLBAR_INDEX.
 +      (w32_name_of_message): Replace WM_EMACS_CREATESCROLLBAR by
 +      WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR.
 +      Add WM_EMACS_SHOWCURSOR.
 +      (w32_wnd_proc): Handle WM_HSCROLL case.  In WM_WINDOWPOSCHANGING
 +      case do not artificially impose WM size hints.
 +      Handle WM_EMACS_SHOWCURSOR case.  Replace WM_EMACS_CREATESCROLLBAR case
 +      by WM_EMACS_CREATEVSCROLLBAR and WM_EMACS_CREATEHSCROLLBAR
 +      cases.
 +      (my_create_tip_window): Replace WND_SCROLLBAR_INDEX by
 +      WND_VSCROLLBAR_INDEX and WND_HSCROLLBAR_INDEX.
 +      (unwind_create_frame_1): Remove.
 +      (Fx_create_frame): Make both scrollbars the system standard
 +      width and height.  Use official field of frame structure to
 +      inhibit running window-configuration-change-hook.
 +      (x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
 +      pixelwise.  Handle frame's official field.
 +      (w32_frame_parm_handlers): Remove x_set_fringe_width
 +      entries. Add x_set_scroll_bar_height,
 +      x_set_horizontal_scroll_bars, x_set_left_fringe and
 +      x_set_right_fringe.
 +      * w32inevt.c (resize_event, maybe_generate_resize_event): Do not
 +      pass height of menu bar to change_frame_size.
 +      * w32menu.c (set_frame_menubar): Rewrite using
 +      frame_inhibit_resize.
 +      * w32term.h (struct w32_display_info):
 +      Add horizontal_scroll_bar_cursor and cursor_display_counter.
 +      (struct scroll_bar): Add horizontal.
 +      (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
 +      (HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
 +      (HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH)
 +      (HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
 +      (HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
 +      (HORIZONTAL_SCROLL_BAR_TOP_BORDER)
 +      (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
 +      (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): New macros.
 +      (WM_EMACS_CREATEVSCROLLBAR, WM_EMACS_CREATEHSCROLLBAR):
 +      Define instead of WM_EMACS_CREATESCROLLBAR.
 +      (WND_VSCROLLBAR_INDEX, WND_HSCROLLBAR_INDEX): Define instead of
 +      WND_SCROLLBAR_INDEX.
 +      * w32term.c (horizontal_scroll_bar_min_handle)
 +      (horizontal_scroll_bar_left_border)
 +      (horizontal_scroll_bar_right_border): New integers.
 +      (x_set_frame_alpha): Replace x_highlight_frame by
 +      w32_focus_frame.
 +      (x_window_to_scroll_bar): New argument "type".  Update callers
 +      accordingly.
 +      (w32_set_horizontal_scroll_bar_thumb)
 +      (x_horizontal_scroll_bar_report_motion)
 +      (w32_set_horizontal_scroll_bar)
 +      (w32_horizontal_scroll_bar_handle_click)
 +      (x_horizontal_scroll_bar_report_motion): New functions.
 +      (w32_mouse_position): Discriminate horizontal and vertical
 +      scrollbar cases.
 +      (my_create_scrollbar): Replace with two new functions
 +      my_create_vscrollbar and my_create_hscrollbar.
 +      (x_scroll_bar_create): New argument "horizontal".
 +      Update callers accordingly.
 +      (x_scroll_bar_remove, w32_condemn_scroll_bars)
 +      (w32_redeem_scroll_bar, x_scroll_bar_clear): Handle horizontal
 +      scroll bar case.
 +      (w32_read_socket): Handle WM_HSCROLL cae.
 +      (x_new_font): Don't recompute fringe widths.
 +      Use frame_inhibit_resize.  Calculate new menu bar height iff we
 +      build without toolkit.  Always clear under internal border.
 +      (x_set_window_size): Don't check frame size or recompute
 +      fringes.  Reset fullscreen status before applying sizes.
 +      Always resize as requested by pixelwise argument.  Don't call
 +      do_pending_window_change.
 +      (x_wm_set_size_hint): Add call for FRAME_SCROLL_BAR_AREA_HEIGHT.
 +      (w32_initialize_display_info): Initialize dpyinfo's
 +      horizontal_scroll_bar_cursor entry.
 +      (w32_create_terminal): Add set_horizontal_scroll_bar_hook.
 +      (w32_initialize): Init horizontal_scroll_bar_min_handle and
 +      horizontal_scroll_bar_left_border.
 +      (w32fullscreen_hook): Intermittently resize window to normal
 +      when switching from fullscreen to maximized state.
 +      (run_window_configuration_change_hook): Don't run it if frame is
 +      not official yet.
 +      (unwind_change_frame): Remove.
 +      (Fset_window_configuration): Rewrite using frame's official field.
 +      * widget.c (set_frame_size): Don't call compute_fringe_widths.
 +      (EmacsFrameSetCharSize): Obey frame_inhibit_resize.
 +      * window.h (struct window): New fields old_pointm,
 +      horizontal_scroll_bar, horizontal_scroll_bar_type, hscroll_whole,
 +      scroll_bar_height and suspend_auto_hscroll.
 +      (wset_horizontal_scroll_bar, wset_horizontal_scroll_bar_type):
 +      New functions.
 +      (sanitize_window_sizes): Extern.
 +      (MINI_NON_ONLY_WINDOW_P, MINI_ONLY_WINDOW_P, WINDOW_PSEUDO_P)
 +      (WINDOW_TOPMOST_P, WINDOW_HAS_HORIZONTAL_SCROLL_BAR)
 +      (WINDOW_CONFIG_SCROLL_BAR_HEIGHT)
 +      (WINDOW_CONFIG_SCROLL_BAR_LINES)
 +      (WINDOW_SCROLL_BAR_LINES, WINDOW_SCROLL_BAR_AREA_HEIGHT):
 +      New macros.
 +      (WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS)
 +      (WINDOW_FRINGE_COLS, WINDOW_FRINGE_EXTENDED_P): Remove macros.
 +      (WINDOW_VERTICAL_SCROLL_BAR_TYPE)
 +      (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT)
 +      (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT)
 +      (WINDOW_HAS_VERTICAL_SCROLL_BAR): Minor rewrite.
 +      (WINDOW_BOX_HEIGHT_NO_MODE_LINE, WINDOW_BOX_TEXT_HEIGHT)
 +      (WINDOW_SCROLL_BAR_AREA_Y): Count in scroll bar height.
 +      * window.c (wset_old_pointm, Fwindow_scroll_bar_height)
 +      (Fwindow_old_point, sanitize_window_sizes): New functions.
 +      (Qwindow_sanitize_window_sizes): New symbol.
 +      (window_body_height): Count in horizontal scroll bar.
 +      (set_window_hscroll, Fscroll_left, Fscroll_right):
 +      Set suspend_auto_hscroll slot.
 +      (Fwindow_inside_edges): Count fringes pixelwise.
 +      (coordinates_in_window, Fcoordinates_in_window_p):
 +      Consider horizontal scroll bar.
 +      (check_frame_size, adjust_window_margins): Remove functions and
 +      corresponding calls.
 +      (set_window_buffer): Initialize old_pointm and horizontal scroll bars.
 +      (temp_output_buffer_show): Reset hscroll related fields.
 +      Initialize old_pointm.
 +      (make_parent_window): Initialize old_pointm.
 +      (make_window): Initialize old_pointm, horizontal scroll bar type,
 +      and scroll bar height.
 +      (resize_frame_windows): Don't count top margin in new sizes.
 +      Don't use safe sizes when shrinking a frame; let the window
 +      manager do the clipping.
 +      (Fsplit_window_internal): Inherit horizontal scroll bar type and
 +      height.
 +      (Fdelete_window_internal): Unchain old_pointm marker.
 +      (window_scroll_pixel_based, Fscroll_other_window):
 +      Adjust old_pointm.
 +      (Fwindow_text_width, Fwindow_text_height): New argument
 +      "pixelwise".
 +      (struct saved_window): New fields, old_pointm, hscroll_whole,
 +      suspend_auto_hscroll, scroll_bar_height and
 +      horizontal_scroll_bar_type.
 +      (Fset_window_configuration, save_window_save): Set new fields of
 +      saved_window.
 +      (apply_window_adjustment): Don't call adjust_window_margins.
 +      (set_window_margins): Don't change margins if new sizes don't
 +      fit into window.
 +      (set_window_scroll_bars): New argument "horizontal_type".
 +      Handle horizontal scroll bars.  Don't change scroll bars if they
 +      don't fit into window.
 +      (Fset_window_scroll_bars): New argument "horizontal_type".
 +      (Fwindow_scroll_bars): Return values for horizontal scroll bars.
 +      (compare_window_configurations): Compare horizontal scroll bar
 +      settings.
 +      * xdisp.c (window_text_bottom_y, window_box_height): Count in
 +      horizontal scroll bar height.
 +      (pixel_to_glyph_coords, init_xdisp): Use FRAME_TOTAL_LINES
 +      instead of FRAME_LINES.
 +      (remember_mouse_glyph): Case ON_SCROLL_BAR changed to
 +      ON_VERTICAL_SCROLL_BAR.
 +      (with_echo_area_buffer): Initialize old_pointm.
 +      (with_echo_area_buffer_unwind_data): Store old_pointm values in
 +      vector.
 +      (unwind_with_echo_area_buffer): Handle old_pointm.
 +      (update_tool_bar): Set do_update when the tool bar window has at
 +      least one line (since this is what the user sets).
 +      (MAX_FRAME_TOOL_BAR_HEIGHT): Remove macro.
 +      (redisplay_tool_bar): Return early when toolbar has zero lines.
 +      Call x_change_tool_bar_height.  Don't use max_tool_bar_height.
 +      (hscroll_window_tree): Handle suspension of auto_hscroll and
 +      old_pointm.
 +      (set_horizontal_scroll_bar): New function.
 +      (redisplay_window): Set ignore_mouse_drag_p when tool bar has
 +      more than one line.  Handle horizontal scroll bars.
 +      (note_mouse_highlight): Handle horizontal scrol bars.
 +      (expose_frame): Set dimensions of XRectangle from frame's text
 +      sizes.
 +      (Vvoid_text_area_pointer): Update doc-string.
 +      * xfns.c (x_set_menu_bar_lines): Use adjust_frame_size.
 +      (x_change_tool_bar_height, x_set_scroll_bar_default_height)
 +      (x_set_internal_border_width): New functions.
 +      (x_set_tool_bar_lines): Call x_change_tool_bar_height.
 +      (unwind_create_frame_1): Remove.
 +      (Fx_create_frame): Handle horizontal scroll bars.  Use official
 +      field of frame structure to inhibit running
 +      window-configuration-change-hook.
 +      (x_create_tip_frame): Call SET_FRAME_LINES and change_frame_size
 +      pixelwise.  Handle frame's official field.
 +      (x_frame_parm_handlers): Add x_set_scroll_bar_height,
 +      x_set_horizontal_scroll_bars, x_set_left_fringe,
 +      x_set_right_fringe.
 +      * xmenu.c (update_frame_menubar, free_frame_menubar):
 +      Use adjust_frame_size.
 +      * xterm.h (struct x_display_info):
 +      Add horizontal_scroll_bar_cursor and Xatom_Horizontal_Scrollbar
 +      slots.
 +      (struct scroll_bar): Add horizontal slot.
 +      (HORIZONTAL_SCROLL_BAR_INSIDE_HEIGHT)
 +      (HORIZONTAL_SCROLL_BAR_LEFT_RANGE)
 +      (HORIZONTAL_SCROLL_BAR_INSIDE_WIDTH): New macros.
 +      (HORIZONTAL_SCROLL_BAR_LEFT_BORDER)
 +      (HORIZONTAL_SCROLL_BAR_RIGHT_BORDER)
 +      (HORIZONTAL_SCROLL_BAR_TOP_BORDER)
 +      (HORIZONTAL_SCROLL_BAR_BOTTOM_BORDER)
 +      (HORIZONTAL_SCROLL_BAR_MIN_HANDLE): Define.
 +      (x_clear_under_internal_border): Remove.
 +      * xterm.c (XTmouse_position): Handle horizontal scroll bars.
 +      (x_window_to_scroll_bar): New argument TYPE.  Update callers.
 +      (x_send_scroll_bar_event, x_scroll_bar_create): New arguments
 +      HORIZONTAL.  Update callers.
 +      (horizontal_action_hook_id): New action hook id.
 +      (x_horizontal_scroll_bar_to_input_event)
 +      (x_create_horizontal_toolkit_scroll_bar)
 +      (xt_horizontal_action_hook)
 +      (x_set_toolkit_horizontal_scroll_bar_thumb)
 +      (XTset_horizontal_scroll_bar, x_net_wm_state)
 +      (x_horizontal_scroll_bar_report_motion): New functions.
 +      (xg_scroll_callback, x_scroll_bar_handle_click):
 +      Handle horizontal scroll bars.
 +      (SCROLL_BAR_HORIZONTAL_NAME): Define.
 +      (XTset_vertical_scroll_bar): Attempt to clear areas not covered
 +      by scroll bar.
 +      (XTcondemn_scroll_bars, XTredeem_scroll_bar): Rewrite.
 +      Handle horizontal scroll bars.
 +      (handle_one_xevent): Handle horizontal scroll bar events.
 +      Call x_net_wm_state.
 +      (x_set_window_size_1, x_wm_set_size_hint): Don't call
 +      check_frame_size.
 +      (x_set_window_size): Don't call check_frame_size and
 +      do_pending_window_change.
 +      (x_term_init): Init horizontal_scroll_bar_cursor display info.
 +      (x_create_terminal): Add set_horizontal_scroll_bar_hook.
 +      (x_scroll_bar_set_handle): Add some checks when calling
 +      x_clear_area.
 +
 +2014-07-26  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Revert previous change.
 +      There is certainly nothing wrong with writing code like 'lo <= i
 +      && i <= hi', even if LO happens to a constant.  There isn't even
 +      anything wrong in general with writing 'a <= b' if A happens to
 +      be a constant.  At any rate stylistic changes shouldn't
 +      be done like this without discussion.
 +
 +2014-07-26  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * alloc.c (xnmalloc, xnrealloc, xpalloc, make_save_value)
 +      (Fgarbage_collect): Reorder conditions that are written backwards.
 +      * data.c (cons_to_unsigned): Likewise.
 +      * dispnew.c (update_frame_1, sit_for): Likewise.
 +      * fileio.c (file_offset): Likewise.
 +      * filelock.c (read_lock_data, lock_file): Likewise.
 +      * fns.c (larger_vector, make_hash_table, Fmake_hash_table):
 +      Likewise.
 +      * font.c (font_intern_prop, font_style_symbolic): Likewise.
 +      * lisp.h (FIXNUM_OVERFLOW_P): Likewise.
 +      * lread.c (read1): Likewise.
 +      * minibuf.c (read_minibuf_noninteractive): Likewise.
 +      * nsterm.m (x_set_frame_alpha): Likewise.
 +      * process.c (wait_reading_process_output): Likewise.
 +      * region-cache.c (delete_cache_boundaries): Likewise.
 +      * xterm.c (x_set_frame_alpha): Likewise.
 +
 +2014-07-25  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * dispextern.h, xdisp.c (hourglass_shown_p, hourglass_atimer):
 +      Now static.
 +
 +2014-07-26  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * atimer.c (set_alarm) [HAVE_ITIMERSPEC]: Use TIMER_ABSTIME
 +      because atimer expiration is absolute rather than relative.
 +
 +2014-07-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32term.h (current_popup_menu, menubar_in_use):
 +      Move declarations from w32term.c.
 +
 +2014-07-25  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * w32fns.c (menubar_in_use): No more static.
 +      * w32term.c (current_popup_menu, menubar_in_use): Declare.
 +
 +2014-07-25  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Move hourglass machinery to RIF.
 +      * dispextern.h (struct redisplay_interface): New members
 +      show_hourglass and hide_hourglass.  Indent comments.
 +      (show_hourglass, hide_hourglass): Remove prototypes.
 +      * nsterm.m (show_hourgass, hide_hourglass): Refactor to ...
 +      (ns_show_hourglass, ns_hide_hourglass): ... new no-ops.
 +      (ns_redisplay_interface): Add them.
 +      * w32fns.c (show_hourglass, hide_hourglass): Refactor to ...
 +      * w32term.c (w32_show_hourglass, w32_hide_hourglass): ... these.
 +      (w32_arrow_cursor): New function to hack around non-GUI frames.
 +      (w32_redisplay_interface): Add new functions.
 +      * w32term.h (w32_arror_cursor): Add prototype.
 +      * xdisp.c (show_hourglass): New function, refactored out from
 +      platform-dependent code.
 +      (cancel_hourglass): Now call to RIF function.
 +      * xfns.c (show_hourglass, hide_hourglass): Refactor to ...
 +      * xterm.c (x_show_hourglass, x_hide_hourglass): ... these.
 +      (x_redisplay_interface): Add new functions.
 +
 +2014-07-24  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Fix error reported by Angelo Graziosi <angelo.graziosi@alice.it> in
 +      <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00274.html>
 +      and complete previous change.
 +      * frame.c (adjust_frame_height): New function.
 +      (Fset_frame_height, Fset_frame_size): Use it.
 +      (x_set_frame_parameters): Take frame top margin into account.
 +
 +2014-07-23  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * frame.c (Fset_frame_height): Take frame top margin into account.
 +      Incorrect behavior was reported by Martin Rudalics <rudalics@gmx.at> in
 +      <http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00258.html>
 +
 +2014-07-22  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xterm.h (struct x_output) [USE_X_TOOLKIT || USE_GTK]: Define
 +      menubar_height as such.  Tweak comment.
 +      [USE_LUCID && USE_TOOLKIT_SCROLL_BARS]: Likewise for
 +      scroll_bar_top_shadow_pixel and scroll_bar_bottom_shadow_pixel.
 +      All related users changed.
 +      (FRAME_MENUBAR_HEIGHT) [!USE_X_TOOLKIT && !USE_GTK]: No-op.
 +      * xterm.c (handle_one_xevent):
 +      * gtkutil.c (xg_event_is_for_menubar):
 +      * xfns.c (x_window) [USE_X_TOOLKIT]:
 +      * xmenu.c (set_frame_menubar, free_frame_menubar):
 +      Prefer to use FRAME_MENUBAR_HEIGHT.
 +
 +2014-07-21  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * frame.c (Fframe_parameters): Always report frame height without
 +      menu and tool bar lines.
 +
 +2014-07-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (applicationDidFinishLaunching:): Call
 +      antialiasThresholdDidChange, register for antialias changes (Bug#17534).
 +      (antialiasThresholdDidChange:): New method for EmacsApp.
 +
 +      * nsterm.h (EmacsApp): Add antialiasThresholdDidChange.
 +
 +      * macfont.m (macfont_update_antialias_threshold): Remove static.
 +
 +      * macfont.h (macfont_update_antialias_threshold): Declare.
 +
 +2014-07-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32select.c (setup_windows_coding_system):
 +      Apply CODING_ANNOTATION_MASK to the common_flags member of struct
 +      coding_system.  Reported by martin rudalics <rudalics@gmx.at>.
 +
 +      * w16select.c (Fw16_get_clipboard_data):
 +      Apply CODING_ANNOTATION_MASK to the common_flags member of struct
 +      coding_system.
 +
 +      * xdisp.c (init_iterator): Initialize it->stop_charpos to the
 +      buffer position where we are to start the iteration.
 +      (handle_invisible_prop): Record in it->stop_charpos the position
 +      where the invisible text ends.  (Bug#18035)
 +      (hscroll_window_tree): Don't try hscrolling windows whose cursor
 +      row has zero buffer position as their start position.
 +      Reported by martin rudalics <rudalics@gmx.at>.
 +
 +      * xdisp.c (move_it_vertically_backward, move_it_by_lines): Prevent
 +      infinite looping in redisplay when display lines don't have enough
 +      space to display even a single character.  (Bug#18036)
 +
 +2014-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * frame.h (struct frame) [USE_X_TOOLKIT]: New member shell_position.
 +      * xfns.c (x_window): Use it to allow xfree later.
 +      (x_encode_text): Drop 3rd arg; unused.  Tweak comment and adjust users
 +      where appropriate.  Use bool for booleans and remove redundant checks.
 +      (Fx_backspace_delete_keys_p): Use XkbFreeKeyboard; explain why.
 +      * xterm.c (x_free_frame_resources): Free shell_position.
 +
 +2014-07-19  K. Handa  <handa@gnu.org>
 +
 +      * xfaces.c (realize_x_face): Call font_load_for_lface with no
 +      mandatory font spec (Bug#17973).
 +
 +2014-07-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * font.c (font_score): Return the worst score if the size of
 +      ENTITY is wrong by more than a factor 2 (Bug#17973).
 +
 +2014-07-18  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * frame.c (frame_unspecified_color): New function
 +      refactored out from ...
 +      (Fframe_parameters, Fframe_parameter): ... adjusted users.
 +      (x_fullscreen_adjust, set_frame_param): Move Windows-specific
 +      function to ...
 +      * w32term.c (x_fullscreen_adjust, set_frame_param): ... static here.
 +      * frame.h (x_fullscreen_adjust) [HAVE_NTGUI]:
 +      * lisp.h (set_frame_param): Remove prototype.
 +      * xterm.c (x_display_pixel_width, x_display_pixel_height): Now ...
 +      * xterm.h (x_display_pixel_width, x_display_pixel_height): ...
 +      inlined from here.
 +
 +      Prefer 'x_display_info *' to 'Display *' in X selection code.
 +      This helps to avoid unneeded calls to x_display_info_for_display.
 +      * xterm.h (struct selection_input_event): Record 'x_display_info *'
 +      instead of 'Display *'.
 +      (SELECTION_EVENT_DPYINFO): New macro.
 +      (SELECTION_EVENT_DISPLAY): Now inline function to prohibit using
 +      it as an lvalue.  Mention this in comment.
 +      * xterm.c (handle_one_xevent): Use SELECTION_EVENT_DPYINFO.
 +      * xselect.c (x_get_window_property_as_lisp_data, x_atom_to_symbol)
 +      (selection_data_to_lisp_data, receive_incremental_selection):
 +      Convert to use 'x_display_info *'.  Adjust users where appropriate.
 +      (lisp_data_to_selection_data): Likewise.  Also pass 'struct
 +      selection data *' as last arg to not return values in args.
 +      (unexpect_property_change): Use common removal technique.
 +
 +2014-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * print.c (print_preprocess): Adjust to match changed
 +      sub char-table structure and avoid crash (Bug#18038).
 +
 +      * data.c (wrong_choice): Not static any more.
 +      * lisp.h (wrong_choice): Add prototype.
 +      * frame.h (struct frame) [USE_X_TOOLKIT || HAVE_NTGUI]:
 +      Declare namebuf as such.  Tweak comment.
 +      [USE_GTK]: Likewise for tool_bar_position.
 +      (fset_tool_bar_position) [USE_GTK]: Ditto.
 +      (FRAME_TOOL_BAR_POSITION): New macro.
 +      * frame.c (x_report_frame_params):
 +      * gtkutil.c (update_frame_tool_bar):
 +      * xfns.c (Fx_create_frame): Use it.
 +      (x_set_tool_bar_position): Add meaningful diagnostic messages.
 +
 +2014-07-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (decode_mode_spec): Call file-remote-p on the current
 +      buffer's default-directory only if it is a string.  (Bug#17986)
 +
 +2014-07-16  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      More precise control over values of some buffer-local variables.
 +      * keyboard.c (Qvertical_scroll_bar):
 +      * frame.c (Qleft, Qright): Move to ...
 +      * buffer.c (Qleft, Qright, Qvertical_scroll_bar): ... here.
 +      * buffer.c (Qchoice, Qrange, Qoverwrite_mode, Qfraction): New symbols.
 +      (syms_of_buffer): DEFSYM all of the above, attach special properties.
 +      Use special symbols to DEFVAR_PER_BUFFER overwrite-mode,
 +      vertical-scroll-bar, scroll-up-aggressively
 +      and scroll-down-aggressively.
 +      * buffer.h (Qchoice, Qrange, Qleft, Qright, Qvertical_scroll_bar):
 +      Add declarations.
 +      * nsfns.m, frame.h (Qleft, Qright):
 +      * nsterm.m (Qleft): Remove declarations.
 +      * gtkutil.c (toplevel): Include buffer.h.
 +      * data.c (wrong_choice, wrong_range): New functions.
 +      (store_symval_forwarding): Handle special properties of buffer-local
 +      variables and use functions from the above to signal error, if any.
 +
 +      * frame.h (enum fullscreen_type) [HAVE_WINDOW_SYSTEM]: Use more natural
 +      values.  Add comment.
 +      (struct frame): Re-arrange layout to avoid extra padding and use bit
 +      fields for output_method, want_fullscreen and vertical_scroll_bar_type.
 +      (FRAME_VERTICAL_SCROLL_BAR_TYPE, FRAME_HAS_VERTICAL_SCROLL_BARS)
 +      (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT)
 +      (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT) [!HAVE_WINDOW_SYSTEM]:
 +      Define as no-ops because there are no scroll bars anyway.
 +      * frame.c (make_frame, make_terminal_frame, make_initial_frame):
 +      Adjust users.
 +
 +      * font.c (fset_font_data) [HAVE_XFT || HAVE_FREETYPE]:
 +      Add convenient setter.
 +      (font_put_frame_data, font_get_frame_data): Use it.
 +
 +2014-07-15  Daiki Ueno  <ueno@gnu.org>
 +
 +      * nsgui.h (XCHAR2B_BYTE1): Add missing parentheses around
 +      pointer argument, before dereferencing.
 +      (XCHAR2B_BYTE2): Likewise.
 +
 +2014-07-15  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xmenu.c (toplevel): Use LWLIB_ID for next_menubar_widget_id.
 +      (pop_down_menu) [USE_X_TOOLKIT]: Accept integer arg.
 +      (create_and_show_popup_menu, create_and_show_dialog) [USE_X_TOOLKIT]:
 +      Use record_unwind_protect_int and avoid consing.
 +      (syms_of_xmenu) [USE_X_TOOLKIT]: Declare WIDGET_ID_TICK_START.
 +
 +      * regex.c (re_search_2): Use ssize_t to avoid integer overflow.
 +
 +2014-07-14  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use binary-io module, O_BINARY, and "b" flag (Bug#18006).
 +      * callproc.c (create_temp_file): Use mkostemp's O_BINARY flag.
 +      * emacs.c [MSDOS]:
 +      * emacs.c (main) [DOS_NT]: Don't mess with _fmode.
 +      (main) [MSDOS]: Use SET_BINARY instead of setmode.
 +      * minibuf.c: Include binary-io.h instead of fcntl.h.
 +      (read_minibuf_noninteractive):
 +      Use set_binary_mode instead of handcrafted code.
 +      Don't call emacs_set_tty if emacs_get_tty failed.
 +      * sysdep.c, systty.h (emacs_get_tty): Return int, not void.
 +      * sysdep.c (emacs_open, emacs_pipe): Use O_BINARY.
 +      * w32.c (pipe2): Adjust eassert to include O_BINARY.
 +
 +      * macros.c (Fstart_kbd_macro): Avoid need for overflow check.
 +      This works around a GCC compiler bug when Emacs is configured with
 +      --enable-gcc-warnings.
 +
 +2014-07-14  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * lisp.h (CHECK_VECTOR_OR_STRING): Return number of elements
 +      or characters in string, respectively.  Add comment.
 +      * fringe.c (Fdefine_fringe_bitmap):
 +      * fns.c (Fsubstring, substring_both): Use it.
 +      * keymap.c (Fdefine_key, Flookup_key):
 +      * macros.c (Fstart_kbd_macro): Likewise.  Avoid call to Flength.
 +
 +      * term.c (tty_menu_add_pane, tty_menu_add_selection):
 +      Use menu_item_width.
 +      (tty_menu_show): Simplify because tty_menu_create never return NULL.
 +
 +2014-07-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Improve behavior of 'bzr up; cd src; make -k'.
 +      * Makefile.in (top_srcdir): New var.
 +      (ntsource, lispsource, ALL_CFLAGS, gl-stamp, emacs.res):
 +      Use '$(top_srcdir)' instead of '$(srcdir)/..';
 +      its expansion is a bit shorter.
 +      (../config.status): Actually build config.status instead of
 +      just complaining.
 +      (ACLOCAL_INPUTS, AUTOCONF_INPUTS):
 +      New macros, copied and relocated from ../Makefile.in.
 +      ($(top_srcdir)/aclocal.m4, $(top_srcdir)/configure, config.in)
 +      (../config.status, Makefile): New dependencies and rules,
 +      copied with relocation from ../Makefile.in.  This should be more
 +      likely to rebuild the build machinery properly if you do a 'make'
 +      in the src directory.
 +
 +2014-07-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (display_line): Don't call FETCH_BYTE with argument less
 +      than 1.  (Bug#17962)
 +
 +      * w32fns.c (Fx_file_dialog): Mention in the doc string the
 +      behavior on Windows 7 and later when the function is repeatedly
 +      invoked with the same value of DIR.  (Bug#17950)
 +
 +      * xfns.c (Fx_file_dialog) [USE_MOTIF, USE_GTK]: Update the doc
 +      string to match the one in w32fns.c.
 +
 +      * minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Switch
 +      stdin to binary mode only if it is connected to a terminal.
 +
 +2014-07-11  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Coalesce extern decls.
 +      * minibuf.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty):
 +      * sysdep.c (emacs_get_tty, emacs_set_tty):
 +      Move duplicate extern decls from here ...
 +      * systty.h: ... to here, so that there's just one copy.
 +
 +2014-07-11  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (changeFont:): Add ifdef NS_IMPL_COCOA.
 +
 +      * nsfns.m (Fns_popup_font_panel): Ditto.
 +
 +2014-07-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * minibuf.c (read_minibuf_noninteractive): Finish reading on '\r',
 +      not only on '\n'.
 +      [WINDOWSNT]: Switch stdin to binary mode when not echoing input.
 +
 +      * sysdep.c (emacs_get_tty, emacs_set_tty, suppress_echo_on_tty)
 +      [DOS_NT]: Implement for WINDOWSNT.
 +
 +      * systty.h (struct emacs_tty) [DOS_NT]: The struct member is now
 +      unsigned.
 +
 +2014-07-11  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * sysdep.c (suppress_echo_on_tty): New function.
 +      * minibuf.c (read_minibuf_noninteractive): Use it.
 +
 +2014-07-11  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * alloc.c (Fmemory_info) [HAVE_LINUX_SYSINFO]: Return nil if
 +      sysinfo failed.  Adjust docstring.
 +
 +2014-07-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Implement memory-info for MS-DOS.
 +      * dosfns.c (dos_memory_info): New function.
 +      * dosfns.h (dos_memory_info): Add prototype.
 +      * alloc.c (Fmemory_info) [MSDOS]: Call dos_memory_info.
 +      * vm-limit.c (get_lim_data) [MSDOS]: Call dos_memory_info, instead
 +      of doing some of its job.
 +
 +      * minibuf.c (read_minibuf_noninteractive) [WINDOWSNT]: Don't
 +      reference termios structure members.
 +
 +2014-07-11  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * sysdep.c (emacs_get_tty, emacs_set_tty): Make them externally visible.
 +
 +      * minibuf.c (top): Include systty.h.  Declare external
 +      emacs_get_tty and emacs_set_tty.
 +      (Vread_hide_char): New lisp variable.
 +      (read_minibuf_noninteractive): Hide characters with
 +      Vread_hide_char if it is a character.  (Bug#17839)
 +
 +2014-07-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Implement memory-info for MS-Windows.
 +      * w32.c (w32_memory_info): New function.
 +      * w32.h (w32_memory_info): Prototype it.
 +      * alloc.c (Fmemory_info) [WINDOWSNT]: Call it.
 +
 +2014-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * coding.h (struct coding_system): Remove 'error_positions' (unused)
 +      and 'errors' (set but unused) fields.  Use bitfields for 'eol_seen',
 +      'mode', 'common_flags' and 'result' fields, adjust layout to avoid
 +      extra padding and shrink struct coding_system by 56 bytes (x86_64).
 +      * coding.c (decode_coding_utf_8, decode_coding_utf_16)
 +      (decode_coding_emacs_mule, decode_coding_iso_2022, decode_coding_sjis)
 +      (decode_coding_big5, decode_coding_charset, decode_coding)
 +      (encode_coding): Adjust users.
 +
 +      * alloc.c (Fmemory_info): New function.
 +
 +2014-07-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * syntax.c (back_comment): Use more-natural location for label.
 +
 +      * font.c, font.h (font_unparse_fcname): Now static.
 +      Define only if HAVE_XFT || HAVE_FREETYPE || HAVE_NS.
 +
 +2014-07-09  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Next minor cleanup of font subsystem.
 +      * font.h (enum font_property_index): Remove FONT_ENTITY_INDEX (no
 +      users) and FONT_FORMAT_INDEX (set by a few font drivers but never
 +      really used).
 +      (FONT_ENTITY_NOT_LOADABLE, FONT_ENTITY_SET_NOT_LOADABLE): Remove;
 +      unused.
 +      * ftfont.h (ftfont_font_format): Remove prototype.
 +      * ftfont.c (ftfont_font_format): Remove; now unused.
 +      (ftfont_open):
 +      * nsfont.m (nsfont_open):
 +      * w32font.c (w32font_open_internal):
 +      * w32uniscribe.c (uniscribe_open):
 +      * xfont.c (xfont_open):
 +      * xftfont.c (xftfont_open): All users changed.
 +
 +      * coding.c (ALLOC_CONVERSION_WORK_AREA): Prefer ptrdiff_t to int and
 +      so avoid integer overflow if decoded gap size exceeds INT_MAX bytes.
 +
 +2014-07-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (move_it_to): Adjust calculation of line_start_x to what
 +      x_produce_glyphs does when it generates a stretch glyph that
 +      represents a TAB.  (Bug#17969)
 +
 +      * xdisp.c (pos_visible_p): If CHARPOS is at beginning of window,
 +      and there is a display property at that position, don't call
 +      move_it_to to move to a position before window start.  (Bug#17942)
 +      Fix condition for finding CHARPOS by the first call to move_it_to.
 +      (Bug#17944)
 +
 +2014-07-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * syntax.c (find_defun_start): Try the cache even
 +      if !open_paren_in_column_0_is_defun_start.
 +      (back_comment): If find_defun_start was pessimistic, use the
 +      scan_sexps_forward result to improve the cache (bug#16526).
 +
 +2014-07-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (redisplay_window): If redisplay of a window ends up
 +      with point in a partially visible line at end of the window, make
 +      sure the amended position of point actually has smaller Y
 +      coordinate; if not, give up and scroll the display.  (Bug#17905)
 +
 +      * window.c (window_scroll_pixel_based): When point ends up at the
 +      last fully visible line, don't let move_it_to stop at the left
 +      edge of the line and dupe us into thinking point is inside the
 +      scroll margin.
  
 -      * fileio.c (Fexpand_file_name): Use make_unibyte_string, not
 -      build_string, when importing a home directory.  (Bug#18873)
 +      * w32.c (network_interface_info): Make sure the argument is a
 +      Lisp string.
  
 -2014-10-26  Eli Zaretskii  <eliz@gnu.org>
 +2014-07-08  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * dispnew.c (buffer_posn_from_coords):
 -      Use WINDOW_WANTS_HEADER_LINE_P, not WINDOW_WANTS_MODELINE_P, to
 -      account for the header-line height.  (Bug#18839)
 +      * process.c (read_and_dispose_of_process_output): Fix typo
 +      in previous patch: we want nonnegative fds, not nonzero fds.
  
 -2014-10-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2014-07-08  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
 -      [Backport]
 -      (erase_phys_cursor): Fix confusion between window-relative and
 -      text area-relative x-coordinates.  [Backport]
 +      * chartab.c (char_table_translate): Move to...
 +      * character.h (char_table_translate): ... inline function here.
 +      Avoid Faref and assume that args are always valid.  This helps to
 +      speedup search, which is especially important for a huge buffers.
 +      * lisp.h (char_table_translate): Remove prototype.
  
 -2014-10-20  Glenn Morris  <rgm@gnu.org>
 +      * nsfont.m (nsfont_close): Free glyphs and metrics arrays as well.
 +      * font.c (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
 +      New function, with an intention to avoid code duplication between
 +      a few font drivers.
 +      * font.h (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
 +      Add prototype.
 +      * ftfont.c (ftfont_open):
 +      * macfont.m (macfont_open):
 +      * xftfont.c (xftfont_open): Use it.
 +
 +2014-07-08  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * process.c: Add sanity checks for file descriptors (Bug#17844).
 +      (wait_reading_process_output, Fprocess_filter_multibyte_p):
 +      Check that infd is nonnegative before using it as an fd.
 +      (read_and_dispose_of_process_output, Fprocess_send_eof):
 +      Likewise, for outfd.
 +      (wait_reading_process_output): Omit unnecessary check of infd.
 +
 +2014-07-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Minor fixups related to usage of the 'long' type.
 +      * gnutls.c (emacs_gnutls_handshake):
 +      * xfaces.c (dump_realized_face):
 +      Work even if 'long' is narrower than 'void *'.
 +      * termcap.c (scan_file):
 +      * xselect.c (x_decline_selection_request)
 +      (x_reply_selection_request, x_get_window_property):
 +      * xterm.c (x_set_frame_alpha):
 +      Remove unnecessary 'L' suffixes of integer constants.
 +      * xfns.c (hack_wm_protocols):
 +      * xselect.c (x_fill_property_data):
 +      * xterm.c (x_set_offset, x_set_window_size_1, x_make_frame_invisible):
 +      Remove unnecessary casts to 'long'.
 +      (set_machine_and_pid_properties): Don't assume pid_t fits in 32 bits.
 +
 +      Minor ImageMagick safety fixes.
 +      * image.c (imagemagick_compute_animated_image):
 +      Remove useless assignment to local.  Avoid problems if dest_width is 0.
 +      (imagemagick_load_image): Use int for pixel counts that can't
 +      exceed INT_MAX.  Avoid problem if PixelGetNextIteratorRow returns
 +      a row width greater than the image width (or greater than LONG_MAX!).
 +
 +2014-07-04  K. Handa  <handa@gnu.org>
 +
 +      * coding.c (MIN_CHARBUF_SIZE): Delete it.
 +      (MAX_CHARBUF_EXTRA_SIZE): New macro.
 +      (ALLOC_CONVERSION_WORK_AREA): Use MAX_CHARBUF_EXTRA_SIZE.
 +
 +2014-07-04  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * font.h (struct font_driver): Remove get_outline and free_outline;
 +      not used by any font driver.
 +      * ftfont.c (ftfont_driver):
 +      * macfont.m (macfont_driver):
 +      * nsfont.m (nsfont_driver):
 +      * w32font.c (w32font_driver):
 +      * w32uniscribe.c (uniscribe_font_driver):
 +      * xfont.c (xfont_driver): Related users changed.
 +      * xselect.c (x_get_window_property): Use convenient xmalloc.
 +      Call to xfree only if some data was really allocated.
 +
 +2014-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      On MS-Windows, display busy cursor on all GUI frames.
 +      This is similar to what we have on X.  Quickly tested by Dani Moncayo.
 +      * w32fns.c (toplevel): Remove hourglass_hwnd; no longer used.
 +      (w32_show_hourglass, w32_hide_hourglass, w32_note_current_window):
 +      Likewise.
 +      (hide_hourglass, show_hourglass): Redesign to match X counterparts.
 +      * xdisp.c (start_hourglass): Remove Windows-specific bits.
 +
 +2014-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Use convenient alists to manage per-frame font driver-specific data.
 +      * frame.h (struct frame): Rename font_data_list to...
 +      [HAVE_XFT || HAVE_FREETYPE]: ... font_data, which is a Lisp_Object now.
 +      * font.h (struct font_data_list): Remove; no longer need a special
 +      data type.
 +      (font_put_frame_data, font_get_frame_data) [HAVE_XFT || HAVE_FREETYPE]:
 +      Adjust prototypes.
 +      * font.c (font_put_frame_data, font_get_frame_data)
 +      [HAVE_XFT || HAVE_FREETYPE]: Prefer alist functions to ad-hoc list
 +      management.
 +      * xftfont.c (xftfont_get_xft_draw, xftfont_end_for_frame):
 +      Related users changed.
 +      * ftxfont.c (ftxfont_get_gcs, ftxfont_end_for_frame): Likewise.
 +      Prefer convenient xmalloc and xfree.
  
 -      * minibuf.c (history-length): Increase default from 30 to 100.
 -      [Backport]
 +2014-07-03  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-10-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * dispnew.c (prepare_desired_row): Accept 2 additional arguments:
 +      the window whose glyph row is being prepared and a flag whether it
 +      is for mode/header line.  Make sure the glyph row's marginal areas
 +      are in sync with what the window wants.
 +      (Bug#17892)
  
 -      * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
 -      move point.
 +      * xdisp.c (display_line, display_mode_line):
 +      Call prepare_desired_row with additional arguments, as appropriate.
  
 -2014-10-20  Glenn Morris  <rgm@gnu.org>
 +      * dispextern.h (prepare_desired_row): Adjust prototype.
  
 -      * Version 24.4 released.
 +2014-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-10-17  Eli Zaretskii  <eliz@gnu.org>
 +      * xfaces.c (init_frame_faces): Always realize basic faces (Bug#17889).
 +      * menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash
 +      caused by xw_popup_dialog in daemon mode (Bug#17891).
  
 -      * xterm.c (x_draw_hollow_cursor): Fix display of hollow cursor on
 -      1-pixel R2L characters.
 -      Reported by Dmitry Antipov <dmantipov@yandex.ru>, see
 -      http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00518.html.
 +2014-07-03  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-10-10  Paul Eggert  <eggert@cs.ucla.edu>
 +      * frame.c (do_switch_frame): When switching to another TTY frame,
 +      make sure FrameCols and FrameRows are in sync with the new frame's
 +      data.  (Bug#17875)
  
 -      Fix port to Debian GNU/kFreeBSD 7 (wheezy) (Bug#18666).
 -      * process.c (accept4) [!HAVE_ACCEPT4]: New macro.
 +2014-07-02  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Shrink Lisp_Sub_Char_Table by preferring C integers to Lisp_Objects.
 +      * lisp.h (struct Lisp_Sub_Char_Table): Use C integers for depth and
 +      min_char slots.  Adjust comment.
 +      (enum char_table_specials): Rename from CHAR_TABLE_STANDARD_SLOTS.
 +      Add SUB_CHAR_TABLE_OFFSET member.
 +      (make_uninit_sub_char_table): New function.
 +      (toplevel): Add compile-time assert to verify suitable member layout
 +      in Lisp_Sub_Char_Table.
 +      * alloc.c (mark_char_table): Add extra argument to denote char table
 +      subtype.  Adjust to match new layout of sub char-table.
 +      (mark_object): Always mark sub char-tables with mark_char_table.
 +      * chartab.c (make_sub_char_table, copy_sub_char_table)
 +      (sub_char_table_ref, sub_char_table_ref_and_range, sub_char_table_set)
 +      (sub_char_table_set_range, optimize_sub_char_table, map_sub_char_table)
 +      (map_sub_char_table_for_charset, uniprop_table_uncompress):
 +      All related users changed.
 +      * lread.c (read1): Adjust to match new layout of sub char-table.
 +      * print.c (print_object): Likewise (Bug#17898).
  
 -2014-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2014-07-02  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * frame.c (Fmouse_pixel_position): Call Vmouse_position_function
 -      (bug#18638).
 +      * keymap.c (get_keyelt): Simplify.
 +      (copy_keymap_item): Remove left-over code for when we had
 +      key-shortcut caches.
  
 -2014-10-08  K. Handa  <handa@gnu.org>
 +2014-06-30  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * coding.c (detect_coding_iso_2022): Set coding->rejected
 -      correctly when an invalid escape sequence is found (Bug#18610).
 +      * nsterm.m (judge): EmacsScroller: Move dealloc code here.
 +      (dealloc): Remove for EmacsScroller.
  
 -2014-10-03  Dmitry Antipov  <dmantipov@yandex.ru>
 +      * nsterm.h (EmacsScroller): Remove dealloc.
  
 -      * font.c (font_list_entities): Do not add empty vector to font cache.
 -      (font_matching_entity): Likewise.  If matching entity is found, insert
 -      1-item vector with this entity instead of an entity itself (Bug#17125).
 +2014-06-30  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-10-02  Eli Zaretskii  <eliz@gnu.org>
 +      * coding.c (MIN_CHARBUF_SIZE): Enlarge to 32.  (Bug#17881)
  
 -      * xdisp.c (move_it_by_lines): Call reseat_1 after moving the
 -      iterator backwards, to resync the bidi iterator.  (Bug#18584)
 +2014-06-30  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2014-10-01  Jan Djärv  <jan.h.d@swipnet.se>
 +      * nsmenu.m (update_frame_tool_bar): Set wait_for_tool_bar to NO
 +      when setNeedsDisplay is called so we don't trigger redisplay for every
 +      tool bar update.
  
 -      * xfaces.c (Finternal_set_lisp_face_attribute): Don't try to
 -      make a font_object from a tty frame (Bug#18573).
 -      (Finternal_set_lisp_face_attribute): Add FIXME comment.
 +      * nsterm.m (any_help_event_p): New variable.
 +      (mouseMoved:): Set any_help_event_p to YES if help event is
 +      generated.  Remove else with empty help event that triggered redisplay
 +      for every mouse move.
 +      (windowDidResignKey:): If any_help_event_p, generate empty help event.
  
 -2014-09-30  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-29  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * 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.
 +      * xfns.c (Qsuppress_icon): Remove; no real users.
 +      (syms_of_xfns): Don't DEFSYM it.  Remove ancient comments.
 +      * w32fns.c (Qsuppress_icon): Remove, for the same reason.
 +      (syms_of_w32fns): Don't DEFSYM it.
  
 -2014-09-29  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-29  Glenn Morris  <rgm@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)
 +      * Makefile.in (ns-app): Mark as PHONY.
  
 -      * window.c (Frecenter): Set the window's redisplay flag.
 +2014-06-28  Glenn Morris  <rgm@gnu.org>
  
 -2014-09-24  Eli Zaretskii  <eliz@gnu.org>
 +      * Makefile.in (mostlyclean): There are no libXMenu11.a,
 +      liblw.a in this directory.
  
 -      * 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.
 +2014-06-28  Andreas Schwab  <schwab@linux-m68k.org>
  
 -      * 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)
 +      * coding.c (encode_coding_utf_8): Correctly count produced_chars
 +      also in unibyte case.  (Bug#17865)
  
 -2014-09-22  Dmitry Antipov  <dmantipov@yandex.ru>
 +2014-06-28  K. Handa  <handa@gnu.org>
  
 -      On OSX, do not free font-specific data more than once (Bug#18501).
 -      * macfont.m (macfont_close): Release and free font-specific data
 -      only if it wasn't previously freed.
 +      * coding.c (MAX_CHARBUF_SIZE): Rename from CHARBUF_SIZE.
 +      (MIN_CHARBUF_SIZE): New macro.
 +      (ALLOC_CONVERSION_WORK_AREA): New arg SIZE.  Callers changed.
  
 -2014-09-21  David Caldwell <david@porkrind.org>  (tiny change)
 +2014-06-27  Glenn Morris  <rgm@gnu.org>
  
 -      * unexmacosx.c (dump_it): Improve error message.
 +      * Makefile.in: Replace BOOTSTRAPEMACS sleight-of-hand
 +      with an order-only dependence on bootstrap-emacs.  (Bug#2151)
 +      (.el.elc): Replace suffix rule with pattern rule.
 +      (%.elc): New pattern rule, with order-only prerequisite.
 +      ($(lisp)): No more need to depend on BOOTSTRAPEMACS.
 +      ($(lispsource)/loaddefs.el): Use an order-only prerequisite
 +      in place of BOOTSTRAPEMACS.
  
 -2014-09-18  Juri Linkov  <juri@jurta.org>
 +2014-06-26  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * image.c (imagemagick_load_image): Add delay to imagemagick metadata.
 -      (Bug#10747, bug#18334)
 +      * fns.c (Fcompare_strings): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.
  
 -2014-09-18  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-25  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * frame.c (Fmouse_position, Fset_mouse_position): Clarify the
 -      units in which the position is measured.  (Bug#18493)
 +      Consistently use validate_subarray to verify substring.
 +      * fns.c (validate_substring): Not static any more.  Adjust to
 +      use ptrdiff_t, not EMACS_INT, because string and vector limits
 +      can't exceed ptrdiff_t even if EMACS_INT is wider.
 +      (Fcompare_strings, Fsubstring, Fsubstring_no_properties)
 +      (secure_hash): Adjust user.
 +      * lisp.h (validate_subarray): Add prototype.
 +      * coding.c (Fundecodable_char_position):
 +      * composite.c (Fcomposition_get_gstring, Fcompose_string_internal):
 +      Use validate_subarray.  Adjust comment to mention substring.
  
 -      * xdisp.c (redisplay_internal): Force redisplay of all windows
 -      that show a buffer whose narrowing has changed.  (Bug#18490)
 +2014-06-25  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-09-16  Eli Zaretskii  <eliz@gnu.org>
 +      Do not allow out-of-range character position in Fcompare_strings.
 +      * fns.c (validate_subarray): Add prototype.
 +      (Fcompare_substring): Use validate_subarray to check ranges.
 +      Adjust comment to mention that the semantics was changed.  Also see
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00447.html.
  
 -      * xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor):
 -      * w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor): In R2L
 -      lines, draw the hollow-box and hbar cursors on the right side of
 -      cursor-glyph.  Thanks to martin rudalics <rudalics@gmx.at> for
 -      testing on X.
 +2014-06-24  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * xterm.c (x_draw_stretch_glyph_string):
 -      * w32term.c (x_draw_stretch_glyph_string): Fix a thinko that
 -      caused the block cursor to disappear on a TAB in R2L lines in
 -      every window except the leftmost one.  Reported by Martin Rudalics
 -      <rudalics@gmx.at>.
 +      Be more consistent about the 'Qfoo' naming convention.
 +      * image.c (Fimagemagick_types):
 +      * lisp.h (lisp_h_CHECK_TYPE, CHECK_TYPE, CHECK_ARRAY):
 +      * process.c (Fmake_network_process):
 +      Rename C local identifier 'Qfoo to avoid giving the false
 +      impression that it stands for the symbol 'foo'.
  
 -2014-09-16  Dmitry Antipov  <dmantipov@yandex.ru>
 +2014-06-23  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      Always use matched specpdl entry to record call arguments (Bug#18473).
 -      * lisp.h (record_in_backtrace): Adjust prototype.
 -      * eval.c (record_in_backtrace): Return current specpdl level.
 -      (set_backtrace_args, set_backtrace_nargs): Merge.  Adjust all users.
 -      (eval_sub, Ffuncall): Record call arguments in matched specpdl
 -      entry and use that entry in call to backtrace_debug_on_exit.
 -      (apply_lambda): Likewise.  Get current specpdl level as 3rd arg.
 -      (do_debug_on_call): Get current specpdl level as 2nd arg.
 +      Simplify and cleanup character conversion stuff.
 +      * lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe):
 +      Remove prototypes.
 +      * character.c (multibyte_char_to_unibyte)
 +      (multibyte_char_to_unibyte_safe): Remove; no longer used.
 +      * character.h (make_char): Remove; unused.
 +      (CHAR_TO_BYTE8, CHAR_TO_BYTE_SAFE): Simplify.
 +      (ASCII_BYTE_P): Remove; ASCII_CHAR_P does the same thing.
 +      * buffer.c, charset.c, charset.h, cmds.c, coding.c, editfns.c:
 +      * fileio.c, indent.c, insdel.c, keyboard.c, lread.c, print.c:
 +      * search.c, term.c, xdisp.c, xterm.c: Related users changed.
 +
 +2014-06-22  Mario Lang  <mlang@delysid.org>
 +
 +      * w32fns.c (Fw32_shell_execute): The the -> the.
 +
 +2014-06-22  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * xmenu.c (mouse_position_for_popup):
 +      * xselect.c (mouse_position_for_drop): Do not duplicate ...
 +      * xfns.c (x_relative_mouse_position): ... and prefer this function.
 +      * menu.c (Fx_popup_menu):
 +      * xselect.c (x_handle_dnd_message): Adjust users.
 +      * menu.h (mouse_position_for_popup): Remove prototype.
 +      * xterm.h (x_relative_mouse_position): Add prototype.
 +      * xterm.c (x_find_topmost_parent): Break from the loop and do not
 +      call XFree if XQueryTree returns zero.
  
 -      Prefer ptrdiff_t to int and avoid integer overflows.
 -      * fileio.c (make_temp_name):
 -      * font.c (font_parse_family_registry): Avoid integer
 -      overflow on string size calculation.
 -      * data.c (Faset): Likewise for byte index.
 +2014-06-21  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-09-15  Eli Zaretskii  <eliz@gnu.org>
 +      * indent.c (Fvertical_motion): Doc fix.
 +      Move to the goal column, if any, with a single call to
 +      move_it_in_display_line, not in two calls.  Doing this with two
 +      calls causes move_it_in_display_line apply the line-prefix
 +      handling twice instead of just once.  (Bug#17823)
  
 -      Fix display of R2L lines in partial-width windows.
 -      * xdisp.c (init_iterator): Don't use it->bidi_p before it is
 -      assigned the correct value.
 -      (extend_face_to_end_of_line): Account for truncation and
 -      continuation glyphs in R2L rows when one of the fringes is not
 -      displayed.
 -      (display_line): Don't assign negative X offset to a row if we are
 -      going to produce a truncation glyph for it.  When handling
 -      truncated R2L rows, consider the width of the left fringe instead
 -      of the right one.
 -      (produce_special_glyphs): Fix bogus assignments.
 +2014-06-21  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-09-14  Eli Zaretskii  <eliz@gnu.org>
 +      Port to OS X ACLs (Bug#17810).
 +      * fileio.c (Ffile_acl): Port to OS X, where acl_get_file (...,
 +      ACL_TYPE_ACCESS) doesn't work.
  
 -      * w32.c (fcntl): Support O_NONBLOCK fcntl on the write side of
 -      pipes.
 -      (sys_write): When a write to a non-blocking pipe returns ENOSPC,
 -      set errno to EAGAIN instead, to allow the caller to retry the
 -      write after some waiting.  Fixes deadlocks when Emacs exchanges a
 -      lot of data through the pipe.  (Bug#18420)
 +2014-06-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2014-09-13  Eli Zaretskii  <eliz@gnu.org>
 +      * keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
 +      before checking key-translation-map (bug#17659).
  
 -      * sound.c (Fplay_sound_internal): Encode the sound file name in
 -      the ANSI codepage.  Expand it against data-directory, as per docs,
 -      not against the current directory.  No need to make a local copy
 -      of the file name; pass the encoded file name directly to
 -      do_play_sound.  (Bug#18463)
 +2014-06-21  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * w32.c (ansi_encode_filename): If w32_get_short_filename returns
 -      NULL, and the file name is not encodable in ANSI codepage, return
 -      the string with "?" replacement characters, which will fail the
 -      caller.  This avoids returning a random value in that case.
 +      * font.c (font_make_object): Avoid dangling pointer which may
 +      crash GC (Bug#17771).
  
 -2014-09-11  Martin Rudalics  <rudalics@gmx.at>
 +2014-06-21  Eli Zaretskii  <eliz@gnu.org>
  
 -      * window.c (Fresize_mini_window_internal): Set w->total_lines
 -      from w->pixel_height (Bug#18422).
 +      * image.c [5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)]: Declare the
 +      prototype of DGifCloseFile as appropriate for older and newer
 +      versions of giflib.
 +      (gif_close): New function, encapsulates the differences in the
 +      calling sequence of DGifCloseFile before v5.1.0 and after it.
 +      (gif_load): Call gif_close instead of DGifCloseFile.  Divulge the
 +      error string where appropriate.  (Bug#17790)
  
 -2014-09-09  Jan Djärv  <jan.h.d@swipnet.se>
 +      * xdisp.c (Fmove_point_visually): Instead of testing for keyboard
 +      macro execution, make sure point didn't move since last complete
 +      redisplay, as the condition for using the glyph matrix
 +      information.  (Bug#17777)
  
 -      * nsterm.m (updateFrameSize:, initFrameFromEmacs:)
 -      (toggleFullScreen:): Take frame_resize_pixelwise into account when
 -      setting resize increments (Bug#18435).
 +2014-06-19  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-09-09  Eli Zaretskii  <eliz@gnu.org>
 +      Minor cleanup of fonset code.
 +      * fontset.c (FONTSET_ID, set_fontset_id, FONTSET_NAME)
 +      (set_fontset_name, FONTSET_ASCII, set_fontset_ascii)
 +      (FONTSET_BASE, set_fontset_base, FONTSET_FRAME)
 +      (set_fontset_frame, FONTSET_NOFONT_FACE, set_fontset_nofont_face)
 +      (FONTSET_DEFAULT, set_fontset_default, FONTSET_FALLBACK)
 +      (set_fontset_fallback): Reorder extra slots and avoid unused slots.
 +      (free_realized_fontset): Remove because a no-op since 2008.
 +      (free_face_fontset): Adjust user.
 +      (syms_of_fontset): Shrink fontset by one extra slot.
 +
 +2014-06-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Omit redundant extern decls.
 +      Most of this patch is from Dmitry Antipov, in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00263.html
 +      * commands.h (update_mode_lines):
 +      * frame.h (Qbackground_color, Qforeground_color)
 +      (x_set_menu_bar_lines):
 +      * ftfont.c (ftfont_font_format):
 +      * intervals.h (Qkeymap, Qfont):
 +      * keyboard.c (timer_check, safe_run_hooks, Qregion_extract_function):
 +      * lisp.h (Ffboundp, Qnil, Qt, Qlambda, Qintegerp, Qwholenump)
 +      (Qsymbolp, Qlisp, Qconsp, Qstringp, Qarrayp, Qbufferp, Qmarkerp)
 +      (Qvectorp, Qbuffer_or_string_p, Qchar_table_p, Qvector_or_char_table_p)
 +      (Qfloatp, Qnumberp, Qfont_spec, Qfont_entity, Qfont_object)
 +      (Fbyteorder, wrong_type_argument, Fmax_char, syms_of_composite)
 +      (Fidentity, extract_float, init_display, syms_of_display, Qdisplay):
 +      (Qimage, Qbox, redisplay_preserve_echo_area, char_table_ref)
 +      (char_table_set, char_table_translate, Qautoload, Qbottom, Qtop)
 +      (Qvisible, Qfont, Qfront_sticky, Qrear_nonsticky, init_sigio)
 +      (Qtool_bar, Qheader_line):
 +      * macros.c (Fexecute_kbd_macro):
 +      * xdisp.c (Ftool_bar_height, Ftool_bar_height):
 +      * xterm.c (x_delete_terminal, XSetIMValues):
 +      * xterm.h (x_set_window_size, x_query_color, x_get_focus_frame)
 +      (x_implicitly_set_name, popup_activated)
 +      (widget_store_internal_border):
 +      Remove redundant decls.
 +      * frame.c [USE_X_TOOLKIT]: Include widget.h.
 +      * keyboard.c (Fexit_recursive_edit, Fabort_recursive_edit):
 +      Remove _Noreturn, as make-docfile now does that for us.
 +      * lisp.h (DEFUN): Don't declare fnname here; rely on make-docfile.
 +      (Qregion_extract_function): New decl.
 +      * window.c, xfns.c: Include menu.h.
 +
 +2014-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * callint.c (Fcall_interactively): Fix up last change (bug#17701).
 +
 +2014-06-17  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * fileio.c (Fread_file_name): Do not pass redundant args and ...
 +      * callint.c (read_file_name): ... convert to static here.
 +      * lisp.h (Fread_file_name): Do not EXFUN it.
 +      (STRING_COPYIN): Remove; unused.
 +      * composite.c (CHAR_COMPOSABLE_P): Replace unsafe macro with ...
 +      (char_composable_p): ... static function.  All users changed.
 +      * eval.c (toplevel): Remove redundant #include directives.
 +      * xterm.c (x_initialize): Add static to match prototype.
 +      * ccl.c (Fccl_execute_on_string):
 +      * font.c (fon_intern_prop): Use make_specified_string.
  
 -      * xdisp.c (pos_visible_p): Properly save and restore the iterator
 -      state around the call to line_bottom, since it can move the
 -      iterator to another screen line.  This fixes off-by-one errors in
 -      the reported row in some rare cases.
 +2014-06-16  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-09-07  Eli Zaretskii  <eliz@gnu.org>
 +      * Makefile.in (ns-app): Fix typo that broke build on OS X.
 +      Reported by David Caldwell in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00251.html
  
 -      * dispnew.c (prepare_desired_row): When MODE_LINE_P is zero,
 -      always make sure the marginal areas of the row are in sync with
 -      what the window wants.  (Bug#18419)
 +2014-06-16  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-09-04  Eli Zaretskii  <eliz@gnu.org>
 +      Do not ask for XRender extension each time XFT font is opened.
 +      * xftfont.c (xftfont_open): Move call to XRenderQueryExtension ...
 +      * xterm.c (x_term_init) [HAVE_XFT]: ... to here.  Adjust comment.
  
 -      * data.c (set_internal): Use assq_no_quit, not Fassq, to find an
 -      existing binding of a variable, to avoid silently aborting
 -      commands that use specbind.  (Bug#18331)
 +2014-06-15  Glenn Morris  <rgm@gnu.org>
  
 -2014-09-02  Eli Zaretskii  <eliz@gnu.org>
 +      * Makefile.in: Use `make -C' rather than `cd && make' throughout.
  
 -      * dispnew.c (buffer_posn_from_coords): Fix an off-by-one error in
 -      the reported row in the case of a window with a header line, by
 -      improving on the fix committed in 2011-10-08T10:58:50Z!eliz@gnu.org
 -      eliz@gnu.org-20111008105850-ht4tvsayohvr1kjc.  (Bug#18384)
 +2014-06-15  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-09-02  Paul Eggert  <eggert@cs.ucla.edu>
 +      * xdisp.c (Fmove_point_visually): Don't use the glyph matrix
 +      information if we are in the middle of executing a keyboard macro,
 +      since redisplay doesn't update the screen until the macro is
 +      finished.  (Bug#17777)
  
 -      * eval.c (internal_lisp_condition_case): Don't overrun the stack
 -      when configured --with-wide-int on typical 32-bit platforms.
 +      * alloc.c (cleanup_vector): Don't dereference a font driver
 +      pointer if it is NULL.  (Bug#17771)
  
 -2014-08-31  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-13  Glenn Morris  <rgm@gnu.org>
  
 -      * xdisp.c (display_and_set_cursor): Call erase_phys_cursor also
 -      when HPOS is negative, for the benefit of R2L glyph rows whose
 -      newline overflows into the fringe.
 +      * Makefile.in ($(leimdir)/leim-list.el, $(srcdir)/macuvs.h)
 +      ($(lispsource)/international/charprop.el)
 +      ($(libsrc)/make-docfile$(EXEEXT), $(lwlibdir)/liblw.a)
 +      ($(oldXMenudir)/libXMenu11.a, ns-app, .el.elc)
 +      ($(lispsource)/loaddefs.el, bootstrap-emacs$(EXEEXT)):
 +      GNU make automatically passes command-line arguments to sub-makes.
 +
 +2014-06-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Avoid hangs in accept-process-output (Bug#17647).
 +      * lisp.h, process.c (wait_reading_process_input):
 +      Return int, not bool.  All uses changed.
 +      * process.c (SELECT_CANT_DO_WRITE_MASK):
 +      Remove macro, replacing with ...
 +      (SELECT_CAN_DO_WRITE_MASK): ... new constant, with inverted sense.
 +      All uses changed.
 +      (status_notify): New arg WAIT_PROC.  Return int, not void.
 +      All uses changed.
 +
 +2014-06-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * menu.c (Fx_popup_menu): Don't call the frame's menu_show_hook if
 +      the frame is the initial frame, because the hook is not set up
 +      then, and Emacs crashes.
 +      Reported by Fabrice Popineau <fabrice.popineau@gmail.com>.
 +
 +2014-06-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keymap.c (silly_event_symbol_error): Don't recommend the use
 +      of strings.
 +
 +2014-06-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (set_cursor_from_row): Fix an off-by-one error when
 +      matching overlay strings with 'cursor' property against buffer
 +      positions traversed in the glyph row.  (Bug#17744)
 +
 +2014-06-11  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.h (EmacsApp): Always compile in shouldKeepRunning, isFirst
 +      on Cocoa.
 +
 +      * nsterm.m (run): Always compile for Cocoa.  Use runtime check to
 +      determine 10.9 (Bug#17751).
 +
 +      * macfont.m (macfont_draw): Positions were not freed.
 +
 +2014-06-10  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Remove as a duplicate of ...
 +      * xfaces.c (prepare_face_for_display) [HAVE_WINDOW_SYSTEM]: ... this
 +      function.  Also adjust comment.
 +      * fringe.c, w32term.c, xdisp.c, xterm.c: All users changed.
 +
 +      * dispextern.h (struct face) [HAVE_XFT]: Ifdef 'extra' member.
 +      * font.c (font_done_for_face):
 +      * xfaces.c (realize_non_ascii_face): Adjust user.
 +      * font.h (struct font_driver): Convert 'prepare_face' to return
 +      void because its return value is never used anyway.
 +      * xfont.c (xfont_prepare_face): Return void.
 +      * xftfont.c (xftfont_prepare_face): Likewise.  Use xmalloc.
 +      (xftfont_done_face): Use xfree.
 +
 +      * dispextern.h (last_tool_bar_item): Remove declaration.
 +      * frame.h (struct frame): New member last_tool_bar_item.
 +      * frame.c (make_frame): Initialize it.
 +      * xdisp.c (toplevel): Remove last_tool_bar_item.
 +      (handle_tool_bar_click, note_tool_bar_highlight):
 +      * w32term.c (w32_read_socket, w32_initialize):
 +      * xterm.c (handle_one_xevent, x_initialize): Adjust users.
 +
 +      * frame.h (window_system_available) [!HAVE_WINDOW_SYSTEM]: Always false.
 +      * frame.c (window_system_available) [HAVE_WINDOW_SYSTEM]: Now here.
 +
 +2014-06-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Say (accept-process-output P)'s result pertains to P if P is non-nil.
 +      * process.c (Faccept_process_output)
 +      (wait_reading_process_output): Mention that if PROCESS is non-nil,
 +      the return value is about PROCESS, not about other processes.
 +
 +2014-06-09  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Further adjustments to mark_object and friends.
 +      Now the mark_object's stack is just 32 bytes on a 64-bit
 +      system, which means extra 20% off the stack usage.
 +      * alloc.c (mark_save_value): As before, refactored out from ...
 +      (mark_object): ... adjusted user.  Also add comment.
 +
 +2014-06-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix core dump after a dropped X connection (Bug#17704).
 +      * sysdep.c (stuff_char): Don't abort merely because the selected frame
 +      is dead, as we may be shutting down.
 +
 +2014-06-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * fileio.c (write-region-inhibit-fsync): Doc tweak.
 +
 +      * data.c (Flss, Fgtr, Fleq, Fgeq): Doc tweaks.
 +
 +2014-06-08  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      If a C name must be extern on some platforms, make it extern on all.
 +      * dispextern.h (set_vertical_scroll_bar, erase_phys_cursor)
 +      (load_color):
 +      * font.h (ftxfont_driver) [HAVE_XFT]:
 +      * keyboard.h (menu_items_inuse, ignore_mouse_drag_p, make_ctrl_char):
 +      * lisp.h (get_frame_param):
 +      * menu.h (tty_menu_show):
 +      * process.h (conv_sockaddr_to_lisp, catch_child_signal):
 +      * termhooks.h (encode_terminal_code):
 +      * xterm.h (x_menu_wait_for_event):
 +      Always declare.
 +      * frame.c (get_frame_param):
 +      * fringe.c (max_used_fringe_bitmap):
 +      * ftxfont.c (ftxfont_driver):
 +      * keyboard.c (ignore_mouse_drag_p, make_ctrl_char):
 +      * menu.c (menu_items_inuse):
 +      * process.c (conv_sockaddr_to_lisp, catch_child_signal):
 +      * term.c (encode_terminal_code, tty_menu_show):
 +      * xdisp.c (set_vertical_scroll_bar, erase_phys_cursor):
 +      * xfaces.c (load_color):
 +      * xmenu.c (x_menu_wait_for_event):
 +      Now always extern.
 +
 +2014-06-08  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Change object marking routines to minimize stack usage.
 +      This change moves a few cold paths from mark_object to NO_INLINE
 +      functions and adjusts symbol marking loop.  According to GCC 4.8.2
 +      -Wstack-usage, this reduces mark_object's stack usage from 80 to
 +      48 bytes on a 64-bit system.  For a long byte-force-recompile runs,
 +      stack usage at the mark phase is reduced up to 28%.  Surprisingly,
 +      it also gains up to 3% in speed (with default '-O2 -g3' flags).
 +      * alloc.c (mark_compiled, mark_localized_symbol): New functions,
 +      refactored out from ...
 +      (mark_object): ... adjusted user.  Also mark symbols in a tight
 +      inner loop.
 +      (mark_face_cache): Add NO_INLINE.
 +
 +2014-06-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * sysdep.c (reset_sys_modes): Use cursorX, not curX, as the latter
 +      contains garbage on WINDOWSNT (which could potentially infloop at
 +      exit).
  
 -2014-08-30  Ken Brown  <kbrown@cornell.edu>
 +      Minimize cursor motion during TTY menu updates.
 +      * term.c (tty_menu_display): Don't position cursor here.
 +      Instead, pass the cursor coordinates to update_frame_with_menu.
 +      (tty_menu_activate): Send the hide cursor command only once in an
 +      iteration through the outer 'while' loop.
  
 -      * conf_post.h (strnicmp) [CYGWIN && HAVE_NTGUI]: Define.
 -      (Bug#18366)
 +      * dispnew.c (update_frame_1): Accept an additional argument
 +      SET_CURSOR_P, and position the cursor at the end of the frame
 +      update only if that argument is non-zero.  All callers changed to
 +      provide the additional argument as non-zero, except for
 +      update_frame_with_menu.
 +      (update_frame_with_menu): Accept 2 additional arguments ROW and
 +      COL; if they are non-negative, instruct update_frame_1 not to
 +      position the cursor, and instead position it according to ROW and COL.
  
 -2014-08-28  Eli Zaretskii  <eliz@gnu.org>
 +      * dispextern.h (update_frame_with_menu): Update prototype.
  
 -      * syntax.c (scan_lists): Don't examine positions before BEGV.
 -      (Bug#18339)
 +2014-06-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2014-08-25  Eli Zaretskii  <eliz@gnu.org>
 +      * callproc.c (call_process): Don't check read-only if we don't insert
 +      anything (bug#17666).
  
 -      * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Don't define.
 +2014-06-08  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-08-18  Eli Zaretskii  <eliz@gnu.org>
 +      * dispnew.c (update_frame_with_menu): Set display_completed.
  
 -      * xdisp.c (handle_stop): Improve commentary.
 +2014-06-07  Eli Zaretskii  <eliz@gnu.org>
  
 -      * indent.c (Fvertical_motion): Fix vertical motion up through a
 -      display property after a newline.  (Bug#18276)
 +      * term.c (tty_menu_show) [WINDOWSNT]: Make tty_menu_show extern
 +      only for WINDOWSNT.
 +      * menu.h (tty_menu_show) [WINDOWSNT]: Declare extern only for WINDOWSNT.
  
 -2014-08-17  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-06  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * xdisp.c (display_line): Don't assume that the call to
 -      reseat_at_next_visible_line_start ends up at a character
 -      immediately following the newline on the previous line.
 -      Avoids setting the ends_at_zv_p flag on screen lines that are not at or
 -      beyond ZV, which causes infloop in redisplay.  For the details, see
 -      http://lists.gnu.org/archive/html/emacs-devel/2014-08/msg00368.html.
 +      * term.c (tty_menu_show) [!HAVE_NTGUI]: Now static.
 +      * menu.h (tty_menu_show) [!HAVE_NTGUI]: Omit extern decl.
  
 -      * dispnew.c (buffer_posn_from_coords): Fix mirroring of X
 -      coordinate for hscrolled R2L screen lines.  (Bug#18277)
 +2014-06-06  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2014-08-11  Ken Brown  <kbrown@cornell.edu>
 +      * window.c (Frecenter): Signal an error if window-buffer is not
 +      current-buffer.
  
 -      * gmalloc.c (_malloc_mutex, _aligned_blocks_mutex) [CYGWIN]: Use
 -      ERRORCHECK mutexes.  (Bug#18222)
 +      * keyboard.c (make_lispy_position): Don't include a buffer position in
 +      mode/header-line mouse events.
  
 -2014-08-11  Glenn Morris  <rgm@gnu.org>
 +      * keyboard.c (read_char): Handle (t . <event>) in the second use of
 +      Vunread_command_events (bug#17650).
  
 -      * fileio.c: Revert 2013-01-31 change, which chose coding system for
 -      writing before backing up, since it causes a more serious problem
 -      than the one it solves.  (Closes Bug#18141, reopens Bug#13522.)
 -      (choose_write_coding_system): No longer callable from Lisp.
 -      Move last piece back here from Fwrite_region.
 -      (Fwrite_region, syms_of_fileio): Update for above changes.
 +2014-06-06  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-08-09  Martin Rudalics  <rudalics@gmx.at>
 +      * xterm.c (x_setup_pointer_blanking):
 +      Conditionally probe Xfixes until this stuff is stabilized (Bug#17609).
  
 -      * window.c (Fwindow_new_total, Fwindow_new_normal)
 -      (Fwindow_new_pixel, Fset_window_new_pixel)
 -      (Fset_window_new_total, Fset_window_new_normal): Second attempt
 -      to fix the doc-strings of these functions.  See:
 -      http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-08/msg00287.html
 +2014-06-05  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-08-08  Martin Rudalics  <rudalics@gmx.at>
 +      * keyboard.c, process.c: Do not define POLL_FOR_INPUT here
 +      because it will be defined in generated config.h if needed.
  
 -      * window.c (Fwindow_valid_p): Fix doc-string (Bug#18194).
 -      (Fwindow_new_total, Fwindow_normal_size, Fwindow_new_normal)
 -      (Fwindow_new_pixel, Fset_window_new_pixel)
 -      (Fset_window_new_total, Fset_window_new_normal)
 -      (Fwindow_resize_apply): Fix doc-strings (see Bug#18112).
 +2014-06-04  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-08-07  Eli Zaretskii  <eliz@gnu.org>
 +      Use terminal-specific hooks to display popup dialogs.
 +      * termhooks.h (struct terminal): New field popup_dialog_hook.
 +      * menu.c (emulate_dialog_with_menu): New function, refactored from ...
 +      (Fx_popup_dialog): ... adjusted user.  Also remove old #if 0
 +      code and use popup_dialog_hook.
 +      * nsmenu.m (ns_popup_dialog): Make hook-compatible.
 +      * nsterm.h (ns_popup_dialog): Adjust prototype.
 +      * nsterm.m (ns_create_terminal):
 +      * w32term.c (w32_create_terminal):
 +      * xterm.c (x_create_terminal) [USE_X_TOOLKIT || USE_GTK]:
 +      Setup popup_dialog_hook.
  
 -      * fontset.c (Finternal_char_font): Recompute basic faces if the
 -      frame's face cache was cleared.  (Bug#18162)
 +2014-06-04  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-08-05  Dmitry Antipov  <dmantipov@yandex.ru>
 +      * w32heap.c (report_temacs_memory_usage): Improve the report by
 +      reporting the large blocks that are actually occupied at dump time.
  
 -      Fix bug with uninitialized undo list of an indirect buffer (Bug#18180).
 -      * buffer.c (Fmake_indirect_buffer): Initialize undo list with the
 -      base buffer's undo list.
 +      * w32console.c (initialize_w32_display): Set the console
 +      menu_show_hook, otherwise TTY menus are broken on w32.
  
 -2014-08-03  Dmitry Antipov  <dmantipov@yandex.ru>
 +2014-06-04  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      Fix bug with an attempt to select uninitialized frame (Bug#18161).
 -      * xfns.c (Fx_create_frame): Move call to change_frame_size to
 -      a section where Lisp evaluation is disabled.  This way a pointer
 -      to uninitialized frame is not accessible from Lisp, which becomes
 -      critical if following call to x_figure_window_size throws an error.
 +      Use terminal-specific hooks to display menus.
 +      * termhooks.h (struct terminal): New field menu_show_hook.
 +      * menu.h (<anonymous enum>): Bit flags for menu hooks.
 +      (x_menu_show, w32_menu_show, ns_menu_show, tty_menu_show):
 +      Adjust prototypes.
 +      * menu.c (Fx_popup_menu): Use bit flags and menu_show_hook.
 +      * nsmenu.m (ns_menu_show):
 +      * w32menu.c (w32_menu_show):
 +      * xmenu.c (x_menu_show):
 +      * term.c (tty_menu_show): Adjust to use bit flags.
 +      (set_tty_hooks): Set menu_show_hook.
 +      * xterm.c (x_create_terminal):
 +      * nsterm.m (ns_create_terminal):
 +      * msdos.c (initialize_msdos_display):
 +      * w32term.c (w32_create_terminal): Likewise.
  
 -2014-08-02  Paul Eggert  <eggert@cs.ucla.edu>
 +2014-06-03  Juanma Barranquero  <lekktu@gmail.com>
  
 -      Fix bug with clang + directory_files_internal + GC (Bug#16986).
 -      * dired.c (directory_files_internal): Use a volatile variable
 -      to prevent the compiler from optimizing away all copies of a local.
 -      I wonder how many other GC-related bugs like this lurk elsewhere?
 +      * w32heap.c (DUMPED_HEAP_SIZE) [!_WIN64]: Reduce to 11 MB.
  
 -      Avoid 100% CPU utilization on ssh session exit (Bug#17691).
 -      * xterm.h (struct x_display_info): New member 'connection'.
 -      * xterm.c (x_term_init, x_delete_terminal): Set and use it,
 -      so that x_delete_terminal has a file descriptor to pass to
 -      delete_keyboard_wait_descriptor.
 +2014-06-03  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-08-01  Eli Zaretskii  <eliz@gnu.org>
 +      * sysselect.h (fd_CLR, fd_ISSET, fd_SET, FD_CLR, FD_ISSET)
 +      (FD_SET): Don't define on WINDOWSNT.
  
 -      Fix display of R2L lines when the last character fits only partially.
 -      See http://lists.gnu.org/archive/html/emacs-devel/2014-07/msg00476.html
 -      for the details.
 -      * xdisp.c (extend_face_to_end_of_line): If the last glyph of an
 -      R2L row is visible only partially, give the row a negative x
 -      offset.
 -      (display_line): Fix the calculation of the glyph whose pixel width
 -      is used to decide whether the last produced glyph fits on the
 -      line.  When the last glyph fits only partially, give the row a
 -      negative x offset.
 +2014-06-03  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-07-29  Eli Zaretskii  <eliz@gnu.org>
 +      * emacs.c: Include "sysselect.h", to define its inline functions.
 +      Reported by Glenn Morris in:
 +      http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00077.html
  
 -      Fix hscroll of R2L lines that begin with a TAB or another wide glyph.
 -      * xdisp.c (append_stretch_glyph): In a R2L glyph row, decrease the
 -      pixel width of the first glyph that is hscrolled from display.
 -      (display_line): In R2L glyph rows, don't give a negative offset to
 -      row->x when the first glyph begins before first_visible_x.
 +      Do not require libXt-devel when building with gtk.
 +      * gtkutil.h, menu.h: Include lwlib-widget.h, not lwlib-h, to avoid
 +      dependency on libXt-devel.
 +      * menu.h [HAVE_NTGUI]: Include lwlib-widget.h in this case too.
 +      (enum button_type, widget_value) [HAVE_NTGUI]: Remove, as
 +      lwlib-widget.h now does this.
 +      * nsmenu.m (ns_menu_show): "enabled" -> "enable" to fix typo.
  
 -2014-07-29  Andreas Schwab  <schwab@suse.de>
 +2014-06-03  Paul Eggert  <eggert@penguin.cs.ucla.edu>
  
 -      * macros.c (Fstart_kbd_macro): Initialize kbd_macro_ptr and
 -      kbd_macro_end together with kbd_macro_buffer.  (Bug#18140)
 +      If ENABLE_CHECKING, range-check args of FD_CLR, FD_ISSET, FD_SET.
 +      * process.c (add_read_fd, delete_read_fd, add_write_fd)
 +      (delete_write_fd, wait_reading_process_output):
 +      Remove now-redundant easserts.
 +      * sysselect.h (SYSSELECT_H): New macro, to avoid double-inclusion woes.
 +      Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
 +      (fd_CLR, fd_ISSET, fd_SET): New inline functions.
 +      (FD_CLR, FD_ISSET, FD_SET): Redefine in terms of these functions.
  
 -2014-07-28  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-03  Eli Zaretskii  <eliz@gnu.org>
  
 -      * xdisp.c (display_line): If called with iterator set up to write
 -      to a marginal area, delay the call to handle_line_prefix until we
 -      switch back to the text area.  (Bug#18035)
 +      * w32heap.c (DUMPED_HEAP_SIZE): Move from w32heap.h.  Don't use
 +      HEAPSIZE; instead, define separate values for the 32- and 64-bit builds.
 +      (calloc): Don't undef, it is never defined.
 +      (HEAP_ENTRY_SHIFT): Remove unused macro.
  
 -      * .gdbinit (xwindow): The members total_cols, total_lines,
 -      left_col, and top_line are C integers (and has been so for the
 -      last 1.5 years).
 +      * Makefile.in (C_HEAP_SWITCH): Remove.
 +      (ALL_CFLAGS): Don't use $(C_HEAP_SWITCH).
  
 -2014-07-20  Jan Djärv  <jan.h.d@swipnet.se>
 +      Fix MS-Windows build broken by menu changes on 2014-06-02.
 +      * w32menu.c (w32_menu_show): Fix a typo that broke compilation.
  
 -      * nsterm.m (applicationDidFinishLaunching:): Call
 -      antialiasThresholdDidChange, register for antialias changes (Bug#17534).
 -      (antialiasThresholdDidChange:): New method for EmacsApp.
 +      * menu.h (enum button_type, struct _widget_value) [HAVE_NTGUI]:
 +      Define instead of including ../lwlib/lwlib.h, which causes
 +      compilation errors due to missing X11 headers.
  
 -      * nsterm.h (EmacsApp): Add antialiasThresholdDidChange.
 +2014-06-03  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * macfont.m (macfont_update_antialias_threshold): Remove static.
 +      * process.c (wait_reading_process_output): Omit incorrect test of
 +      p->infd against zero.  Add easserts for infd having a plausible value.
  
 -      * macfont.h (macfont_update_antialias_threshold): Declare.
 +2014-06-02  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-07-17  Eli Zaretskii  <eliz@gnu.org>
 +      Adjust to match recent lwlib changes.
 +      * menu.h (xmalloc_widget_value): Replace by ...
 +      (make_widget_value): ... new prototype.
 +      * menu.c (xmalloc_widget_value): Replace by ...
 +      (make_widget_value): ... new function.
 +      (free_menubar_widget_value_tree, digest_single_submenu): Adjust users.
 +      * gtkutil.c (malloc_widget_value, free_widget_value):
 +      (widget_value_free_list, malloc_cpt): Remove old lwlib-compatible code.
 +      * keyboard.h (enum button_type, struct _widget_value):
 +      * gtkutil.h, nsgui.h, w32gui.h (malloc_widget_value, free_widget_value):
 +      Likewise.
 +      * nsmenu.m (ns_update_menubar, ns_menu_show):
 +      * w32menu.c (set_frame_menubar, w32_menu_show, w32_dialog_show):
 +      * xmenu.c (set_frame_menubar, xmenu_show, x_dialog_show): Adjust users.
 +      * xterm.h (XtParent) [USE_GTK]: Remove unused macro.
  
 -      * w32select.c (setup_windows_coding_system):
 -      Apply CODING_ANNOTATION_MASK to the common_flags member of struct
 -      coding_system.  Reported by martin rudalics <rudalics@gmx.at>.
 +2014-06-02  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * w16select.c (Fw16_get_clipboard_data):
 -      Apply CODING_ANNOTATION_MASK to the common_flags member of struct
 -      coding_system.
 +      * image.c (x_query_frame_background_color)
 +      [HAVE_PNG || HAVE_NS || HAVE_IMAGEMAGICK || HAVE_RSVG]:
 +      Fix --enable-gcc-warnings compilation without image libraries.
  
 -      * xdisp.c (init_iterator): Initialize it->stop_charpos to the
 -      buffer position where we are to start the iteration.
 -      (handle_invisible_prop): Record in it->stop_charpos the position
 -      where the invisible text ends.  (Bug#18035)
 -      (hscroll_window_tree): Don't try hscrolling windows whose cursor
 -      row has zero buffer position as their start position.
 -      Reported by martin rudalics <rudalics@gmx.at>.
 +2014-06-02  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-07-16  Eli Zaretskii  <eliz@gnu.org>
 +      * w32heap.c (malloc_after_dump, realloc_after_dump): Update the
 +      emulated break value only if it goes up.
 +      (sbrk): Add assertion that the INCREMENT argument is strictly
 +      zero.  Improve and correct the commentary.
  
 -      * xdisp.c (move_it_vertically_backward, move_it_by_lines): Prevent
 -      infinite looping in redisplay when display lines don't have enough
 -      space to display even a single character.  (Bug#18036)
 +2014-06-02  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-07-13  Eli Zaretskii  <eliz@gnu.org>
 +      Improve AIX-related merge from emacs-24.
 +      * conf_post.h (FLEXIBLE_ARRAY_MEMBER): Fix comment.
 +      * lisp.h (ENUMABLE) [!_AIX]: Don't define to 0 merely because we're
 +      not on AIX; since we're on the trunk we can use enums more broadly.
  
 -      * xdisp.c (decode_mode_spec): Call file-remote-p on the current
 -      buffer's default-directory only if it is a string.  (Bug#17986)
 +      * frame.c (x_set_frame_parameters): Don't read uninitialized storage.
  
 -2014-07-12  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-02  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xdisp.c (display_line): Don't call FETCH_BYTE with argument less
 -      than 1.  (Bug#17962)
 +      * xterm.c (xg_scroll_callback): Remove position, for jump set portion
 +      to min(value, whole).
  
 -      * w32fns.c (Fx_file_dialog): Mention in the doc string the
 -      behavior on Windows 7 and later when the function is repeatedly
 -      invoked with the same value of DIR.  (Bug#17950)
 +2014-06-02  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * xfns.c (Fx_file_dialog) [USE_MOTIF, USE_GTK]: Update the doc
 -      string to match the one in w32fns.c.
 +      Bring back the changes to GDB-visible symbols, but only on AIX.
 +      And only if it's not pre-4.2 GCC.
 +      * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
 +      (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
 +      (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
 +      New macros.
  
 -2014-07-08  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-02  Eli Zaretskii  <eliz@gnu.org>
  
 -      * xdisp.c (move_it_to): Adjust calculation of line_start_x to what
 -      x_produce_glyphs does when it generates a stretch glyph that
 -      represents a TAB.  (Bug#17969)
 +      * fileio.c (Finsert_file_contents): Call prepare_to_modify_buffer
 +      with PT, not GPT.  (Bug#16433)
  
 -2014-07-05  Eli Zaretskii  <eliz@gnu.org>
 +      Revert last changes to GDB-visible symbols.
 +      * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): Delete macros.
 +      (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Don't use them.
 +      (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
 +      Delete macros.
  
 -      * xdisp.c (pos_visible_p): If CHARPOS is at beginning of window,
 -      and there is a display property at that position, don't call
 -      move_it_to to move to a position before window start.  (Bug#17942)
 -      Fix condition for finding CHARPOS by the first call to move_it_to.
 -      (Bug#17944)
 +2014-06-02  Glenn Morris  <rgm@gnu.org>
  
 -2014-07-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * cmds.c (Fself_insert_command): Allow zero repeat count.  (Bug#17649)
  
 -      * syntax.c (find_defun_start): Try the cache even
 -      if !open_paren_in_column_0_is_defun_start.
 -      (back_comment): If find_defun_start was pessimistic, use the
 -      scan_sexps_forward result to improve the cache (bug#16526).
 +2014-06-02  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-07-04  Daniel Colascione  <dancol@dancol.org>
 +      Fix port to 32-bit AIX with xlc (Bug#17598).
 +      * alloc.c (gdb_make_enums_visible): Remove FLOAT_TO_STRING_BUFSIZE.
 +      * conf_post.h (FLEXIBLE_ARRAY_MEMBER) [__IBMC__]: Don't define to empty.
 +      * lisp.h (FLOAT_TO_STRING_BUFSIZE): Make it a macro, instead of an enum,
 +      to work around a compiler bug in IBM xlc 12.1.
  
 -      Backport from trunk.
 -      * xfns.c (create_frame_xic): Pass XNStatusAttributes to XCreateIC
 -      only if xic_style calls for it.  This change allows Emacs to work
 -      with ibus.  Also, don't leak resources if create_frame_xic fails,
 -      and stop caching xic_style across different displays (Bug#17928).
 -      (supported_xim_styles): Make const.
 -      (best_xim_style): Remove first parameter: it's always just
 -      supported_xim_styles.  Change to look at supported_xim_styles directly.
 +2014-06-02  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-07-04  Eli Zaretskii  <eliz@gnu.org>
 +      * xterm.c (x_update_window_end): Don't invalidate the entire
 +      mouse-highlight info, just signal frame_up_to_date_hook that mouse
 +      highlight needs to be redisplayed.  (Bug#17588)
  
 -      * xdisp.c (redisplay_window): If redisplay of a window ends up
 -      with point in a partially visible line at end of the window, make
 -      sure the amended position of point actually has smaller Y
 -      coordinate; if not, give up and scroll the display.  (Bug#17905)
 +2014-06-02  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * window.c (window_scroll_pixel_based): When point ends up at the
 -      last fully visible line, don't let move_it_to stop at the left
 -      edge of the line and dupe us into thinking point is inside the
 -      scroll margin.
 +      Port the GDB-visible symbols to AIX.
 +      Without them, GDB doesn't work to debug Emacs, since the AIX linker
 +      optimizes away the relevant external symbols.  Use enums instead;
 +      this suffices for the AIX port, which is 32-bit-only anyway.
 +      * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
 +      (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
 +      (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
 +      New macros.
  
 -      * w32.c (network_interface_info): Make sure the argument is a
 -      Lisp string.
 +      Include sources used to create macuvs.h.
 +      * Makefile.in ($(srcdir)/macuvs.h): New rule.
 +      * macuvs.h: Use automatically-generated header.
  
 -2014-07-01  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-01  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * dispnew.c (prepare_desired_row): Accept 2 additional arguments:
 -      the window whose glyph row is being prepared and a flag whether it
 -      is for mode/header line.  Make sure the glyph row's marginal areas
 -      are in sync with what the window wants.
 -      (Bug#17892)
 +      Port signal-handling to DragonFly BSD (Bug#17646).
 +      * callproc.c, sysdep.c (block_child_signal, unblock_child_signal):
 +      Move implementations from callproc.c to sysdep.c.
 +      * process.h, syssignal.h (block_child_signal, unblock_child_signal):
 +      Move declarations from process.h to syssignal.h.
  
 -      * xdisp.c (display_line, display_mode_line):
 -      Call prepare_desired_row with additional arguments, as appropriate.
 +2014-06-01  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * dispextern.h (prepare_desired_row): Adjust prototype.
 +      * callint.c (Ffuncall_interactively): Add usage.
  
 -2014-07-01  Dmitry Antipov  <dmantipov@yandex.ru>
 +2014-06-01  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xfaces.c (init_frame_faces): Always realize basic faces (Bug#17889).
 -      * menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash
 -      caused by xw_popup_dialog in daemon mode (Bug#17891).
 +      * nsfns.m (ns_appkit_version_str): Add os version for Cocoa.
  
 -2014-06-30  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-30  Eli Zaretskii  <eliz@gnu.org>
  
 -      * frame.c (do_switch_frame): When switching to another TTY frame,
 -      make sure FrameCols and FrameRows are in sync with the new frame's
 -      data.  (Bug#17875)
 +      * w32heap.c (malloc_before_dump, malloc_after_dump)
 +      (malloc_before_dump, realloc_after_dump, realloc_before_dump)
 +      (mmap_alloc, mmap_realloc): Check for errors more thoroughly and
 +      set errno where appropriate to emulate CRT functions.
  
 -2014-06-28  Andreas Schwab  <schwab@linux-m68k.org>
 +2014-05-30  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * coding.c (encode_coding_utf_8): Correctly count produced_chars
 -      also in unibyte case.  (Bug#17865)
 +      Debugging facility to check whether 'const char *' points to
 +      relocatable data of non-pure Lisp string.
 +      * alloc.c (maybe_lisp_pointer): New function, refactored out of ...
 +      (mark_maybe_pointer): ... adjusted user.
 +      (relocatable_string_data_p): New function.
 +      * lisp.h (relocatable_string_data_p): Add prototype.
 +      * xdisp.c (message_with_string): If ENABLE_CHECKING, make sure
 +      the pointer to relocatable Lisp data is not used.
  
 -2014-06-25  Glenn Morris  <rgm@gnu.org>
 +2014-05-30  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * puresize.h (BASE_PURESIZE): Increase a bit.  (Bug#17846)
 +      Don't let SIGINT handling block SIGCHLD indefinitely (Bug#17561).
 +      * atimer.c (block_atimers):
 +      * callproc.c (block_child_signal): Block SIGINT too;
 +      otherwise, its handler might now unblock signals that it shouldn't.
 +      * keyboard.c (read_char): Clear signal mask, since we may
 +      be in a SIGINT handler, and many signals may be masked.
 +      * keyboard.c (handle_interrupt):
 +      * sysdep.c (handle_arith_signal):
 +      Clear signal mask instead of just unblocking the signal that
 +      was received, since several signals may be blocked at this point.
  
 -2014-06-21  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-29  Eli Zaretskii  <eliz@gnu.org>
  
 -      * indent.c (Fvertical_motion): Doc fix.
 -      Move to the goal column, if any, with a single call to
 -      move_it_in_display_line, not in two calls.  Doing this with two
 -      calls causes move_it_in_display_line apply the line-prefix
 -      handling twice instead of just once.  (Bug#17823)
 +      * Makefile.in (TEMACS_POST_LINK): Remove target.
 +      (emacs$(EXEEXT)): Remove $(ADDSECTION) from prerequisites.
 +      (temacs$(EXEEXT)): Remove $(TEMACS_POST_LINK) from the recipe.
  
 -2014-06-21  Paul Eggert  <eggert@cs.ucla.edu>
 +2014-05-29  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      Port to OS X ACLs (Bug#17810).
 -      * fileio.c (Ffile_acl): Port to OS X, where acl_get_file (...,
 -      ACL_TYPE_ACCESS) doesn't work.
 +      * xmenu.c (xdialog_show): Remove prototype, rename to
 +      x_dialog_show, remove 2nd arg because it's always zero
 +      and simplify accordingly.
 +      (xw_popup_dialog): Adjust user.
 +      * w32menu.c (w32_dialog_show): Adjust prototype, remove
 +      2nd arg because it's always zero and simplify accordingly.
 +      (w32_popup_dialog): Adjust user.
  
 -2014-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2014-05-29  Eli Zaretskii  <eliz@gnu.org>
  
 -      * keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
 -      before checking key-translation-map (bug#17659).
 +      * w32heap.c (report_temacs_memory_usage): New function.
  
 -2014-06-19  Dmitry Antipov  <dmantipov@yandex.ru>
 +      * unexw32.c (unexec) [ENABLE_CHECKING]:
 +      Call report_temacs_memory_usage.
  
 -      * font.c (font_make_object): Avoid dangling pointer which may
 -      crash GC (Bug#17771).
 +      * w32heap.h (report_temacs_memory_usage): Add prototype.
  
 -2014-06-18  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-29  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * image.c [5 < GIFLIB_MAJOR + (1 <= GIFLIB_MINOR)]: Declare the
 -      prototype of DGifCloseFile as appropriate for older and newer
 -      versions of giflib.
 -      (gif_close): New function, encapsulates the differences in the
 -      calling sequence of DGifCloseFile before v5.1.0 and after it.
 -      (gif_load): Call gif_close instead of DGifCloseFile.  Divulge the
 -      error string where appropriate.  (Bug#17790)
 +      Don't substitute sigprocmask for pthread_sigmask (Bug#17561).
 +      * Makefile.in (LIB_PTHREAD_SIGMASK): Remove; all uses removed.
  
 -2014-06-16  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-29  Eli Zaretskii  <eliz@gnu.org>
  
 -      * xdisp.c (Fmove_point_visually): Instead of testing for keyboard
 -      macro execution, make sure point didn't move since last complete
 -      redisplay, as the condition for using the glyph matrix
 -      information.  (Bug#17777)
 +      * buffer.c (init_buffer): Accept an argument 'initialized'.
 +      [USE_MMAP_FOR_BUFFERS]: If 'initialized' is non-zero, reset
 +      mmap_regions and mmap_fd, to avoid referencing stale data from the
 +      dump phase.  Add an assertion for buffer text of buffers created
 +      in temacs before this function is called.  (Bug#17622)
 +      (mmap_regions_1, mmap_fd_1): Remove unused variables.
  
 -2014-06-14  Eli Zaretskii  <eliz@gnu.org>
 +      * lisp.h (init_buffer): Update prototype.
  
 -      * xdisp.c (Fmove_point_visually): Don't use the glyph matrix
 -      information if we are in the middle of executing a keyboard macro,
 -      since redisplay doesn't update the screen until the macro is
 -      finished.  (Bug#17777)
 +      * emacs.c (main): Pass 'initialized' as the argument to init_buffer.
  
 -2014-06-13  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-29  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * alloc.c (cleanup_vector): Don't dereference a font driver
 -      pointer if it is NULL.  (Bug#17771)
 +      * alloc.c (Fgarbage_collect): Fix compilation with
 +      GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
  
 -2014-06-11  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-29  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * xdisp.c (set_cursor_from_row): Fix an off-by-one error when
 -      matching overlay strings with 'cursor' property against buffer
 -      positions traversed in the glyph row.  (Bug#17744)
 +      * frame.c, frame.h (frame_char_to_pixel_position)
 +      (frame_set_mouse_position): Now static, and made private in
 +      frame.c rather than public in frame.h.
  
 -2014-06-08  Glenn Morris  <rgm@gnu.org>
 +2014-05-28  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * fileio.c (write-region-inhibit-fsync): Doc tweak.
 +      Refactor mouse positioning stuff to avoid code duplication.
 +      * frame.h (frame_char_to_pixel_position): New function.
 +      (x_set_mouse_position): Rename to...
 +      (frame_set_mouse_position): ...new function.
 +      (frame_set_mouse_pixel_position): Add prototype.
 +      * nsterm.m, w32term.c, xterm.c (x_set_mouse_pixel_position):
 +      Rename to frame_set_mouse_pixel_position.
 +      * frame.c (Fset_mouse_pixel_position, Fset_mouse_position):
 +      Adjust users.
 +      * xterm.h, w32term.h ( x_set_mouse_position)
 +      (x_set_mouse_pixel_position): Remove prototypes.
  
 -      * data.c (Flss, Fgtr, Fleq, Fgeq): Doc tweaks.
 +2014-05-28  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-06-04  Eli Zaretskii  <eliz@gnu.org>
 +      On X, always make pointer visible when deleting frame (Bug#17609).
 +      * frame.c (frame_make_pointer_visible, frame_make_pointer_invisible):
 +      Pass frame as arg.
 +      * frame.h (frame_make_pointer_visible, frame_make_pointer_invisible):
 +      Adjust prototypes.
 +      * cmds.c (Fself_insert_command): Use SELECTED_FRAME.
 +      * keyboard.c (gobble_input): If there is no terminal input error,
 +      make sure the pointer is visible for all frames on this terminal.
 +      * xterm.c (x_free_frame_resources): Enable pointer visibility if
 +      it was previously disabled.
  
 -      * sysdep.c (reset_sys_modes): Use cursorX, not curX, as the latter
 -      contains garbage on WINDOWSNT (which could potentially infloop at
 -      exit).
 +2014-05-28  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      Minimize cursor motion during TTY menu updates.
 -      * term.c (tty_menu_display): Don't position cursor here.  Instead,
 -      pass the cursor coordinates to update_frame_with_menu.
 -      (tty_menu_activate): Send the hide cursor command only once in an
 -      iteration through the outer 'while' loop.
 +      * data.c (Fzerop): Move to Elisp.
 +      (syms_of_data): Don't defsubr it.
 +      * keyboard.c (echo_keystrokes_p): New function.
 +      (read_char, record_menu_key, read_key_sequence): Use it.
  
 -      * dispnew.c (update_frame_1): Accept an additional argument
 -      SET_CURSOR_P, and position the cursor at the end of the frame
 -      update only if that argument is non-zero.  All callers changed to
 -      provide the additional argument as non-zero, except for
 -      update_frame_with_menu.
 -      (update_frame_with_menu): Accept 2 additional arguments ROW and
 -      COL; if they are non-negative, instruct update_frame_1 not to
 -      position the cursor, and instead position it according to ROW and
 -      COL.
 +      * callint.c (Qfuncall_interactively): New var.
 +      (Qcall_interactively): Remove.
 +      (Ffuncall_interactively): New function.
 +      (Fcall_interactively): Use it.
 +      (syms_of_callint): Defsubr it.
  
 -      * dispextern.h (update_frame_with_menu): Update prototype.
 +2014-05-27  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2014-06-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * bytecode.c (FETCH) [BYTE_CODE_SAFE]: Check the bytecode wasn't
 +      relocated from under us.
  
 -      * callproc.c (call_process): Don't check read-only if we don't insert
 -      anything (bug#17666).
 +2014-05-27  Fabrice Popineau  <fabrice.popineau@gmail.com>
  
 -2014-06-02  Eli Zaretskii  <eliz@gnu.org>
 +      Use mmap(2) emulation for allocating buffer text on MS-Windows.
 +      * Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from
 +      configure, not from HEAPSIZE.
 +      (ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used.
  
 -      * dispnew.c (update_frame_with_menu): Set display_completed.
 +      * lisp.h (NONPOINTER_BITS): Modify the condition to define to zero
 +      for MinGW, since it no longer uses gmalloc.
  
 -2014-06-01  Paul Eggert  <eggert@cs.ucla.edu>
 +      * buffer.c: Do not define mmap allocations functions for Windows.
 +      Remove mmap_find which is unused. Remove mmap_set_vars which does
 +      nothing useful.
 +      [WINDOWSNT]: Include w32heap.h.
 +      (init_buffer): Always allocate new memory for buffers.
  
 -      * frame.c (x_set_frame_parameters): Don't read uninitialized storage.
 +      * emacs.c: Remove mmap_set_vars calls.
  
 -2014-06-01  Jan Djärv  <jan.h.d@swipnet.se>
 +      * image.c (free_image): Undef free for Windows because it is
 +      redirected to our private version.
  
 -      * xterm.c (xg_scroll_callback): Remove position, for jump set portion
 -      to min(value, whole).
 +      * unexw32.c (COPY_PROC_CHUNK): Use %p format for 64bits compatibility.
 +      (copy_executable_and_dump_data): Remove dumping the heap section.
 +      (unexec): Restore using_dynamic_heap after dumping.
  
 -2014-06-01  Paul Eggert  <eggert@cs.ucla.edu>
 +      * w32heap.c (dumped_data_commit, malloc_after_dump)
 +      (malloc_before_dump, realloc_after_dump, realloc_before_dump)
 +      (free_after_dump, free_before_dump, mmap_alloc, mmap_realloc)
 +      (mmap_free): New functions.
  
 -      Bring back the changes to GDB-visible symbols, but only on AIX.
 -      And only if it's not pre-4.2 GCC.
 -      * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
 -      (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
 -      (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
 -      New macros.
 +      * w32heap.h: Declare dumped_data and mmap_* function prototypes.
  
 -2014-05-31  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-27  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * fileio.c (Finsert_file_contents): Call prepare_to_modify_buffer
 -      with PT, not GPT.  (Bug#16433)
 +      * image.c (imagemagick_load_image): Use MagickRealType for local
 +      'color_scale', instead of double, to avoid a GCC warning about
 +      double promotion.
  
 -      Revert last changes to GDB-visible symbols.
 -      * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): Delete macros.
 -      (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Don't use them.
 -      (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
 -      Delete macros.
 +      * xfns.c (Fx_window_property): Remove unused local.
  
 -2014-05-31  Glenn Morris  <rgm@gnu.org>
 +      Don't kill already-reaped process (Bug#17561).
 +      * process.c (process_send_signal): Fix race condition where a
 +      subprocess was reaped by a signal handler between the check for
 +      liveness and calling 'kill', which meant that Emacs could in
 +      theory kill an innocent bystander process.  Do the fix by blocking
 +      SIGCHLD in a critical section that checks liveness before killing.
  
 -      * cmds.c (Fself_insert_command): Allow zero repeat count.  (Bug#17649)
 +2014-05-26  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-05-30  Paul Eggert  <eggert@cs.ucla.edu>
 +      * w32.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Define only if undefined.
  
 -      Fix port to 32-bit AIX with xlc (Bug#17598).
 -      * alloc.c (gdb_make_enums_visible): Remove FLOAT_TO_STRING_BUFSIZE.
 -      * conf_post.h (FLEXIBLE_ARRAY_MEMBER) [__IBMC__]: Don't define to empty.
 -      * lisp.h (FLOAT_TO_STRING_BUFSIZE): Make it a macro, instead of an enum,
 -      to work around a compiler bug in IBM xlc 12.1.
 +2014-05-26  Ken Brown  <kbrown@cornell.edu>
  
 -2014-05-29  Eli Zaretskii  <eliz@gnu.org>
 +      * w32term.c (x_delete_display): Don't free dpyinfo->w32_id_name,
 +      even if !CYGWIN (see bug#17510).
  
 -      * xterm.c (x_update_window_end): Don't invalidate the entire
 -      mouse-highlight info, just signal frame_up_to_date_hook that mouse
 -      highlight needs to be redisplayed.  (Bug#17588)
 +2014-05-26  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2014-05-29  Paul Eggert  <eggert@cs.ucla.edu>
 +      * nsfns.m (Fns_do_applescript): Surround NSApp run
 +      with calls to ns_init_events, ns_finish_events (Bug#17424).
  
 -      Port the GDB-visible symbols to AIX.
 -      Without them, GDB doesn't work to debug Emacs, since the AIX linker
 -      optimizes away the relevant external symbols.  Use enums instead;
 -      this suffices for the AIX port, which is 32-bit-only anyway.
 -      * lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
 -      (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
 -      (ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
 -      New macros.
 +      * nsterm.h (ns_init_events, ns_finish_events): Declare.
  
 -2014-05-26  Paul Eggert  <eggert@cs.ucla.edu>
 +      * nsterm.m (ns_init_events, ns_finish_events): New functions.
 +      (ns_read_socket, ns_select): Call ns_init_events, ns_finish_events.
  
 -      Include sources used to create macuvs.h.
 -      * Makefile.in ($(srcdir)/macuvs.h): New rule.
 -      * macuvs.h: Use automatically-generated header.
 +      * nsfns.m (ns_do_applescript): Surround executeAndReturnError
 +      with calls to ns_init_events, ns_finish_events (Bug#17424).
  
 -2014-05-25  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-26  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (move_it_in_display_line_to): Don't record wrap position
        if we are iterating over an object that generates glyphs for
        marginal areas.  (Bug#17585)
  
 -2014-05-24  Paul Eggert  <eggert@cs.ucla.edu>
 +2014-05-26  Paul Eggert  <eggert@cs.ucla.edu>
  
        * xdisp.c (safe__call1, safe__eval): Now static.
  
 -2014-05-24  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-26  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (safe__call): Accept va_list argument instead of '...'.
        (safe_call, safe__call1): Construct a va_list argument for safe_call.
        (safe_call1): Call safe_call instead of safe__call directly.
  
 -2014-05-24  Ken Brown  <kbrown@cornell.edu>
 +2014-05-26  Ken Brown  <kbrown@cornell.edu>
  
        * w32term.c (x_delete_display) [CYGWIN]: Don't free
        dpyinfo->w32_id_name, to make sure it doesn't get freed more than
        once.  (Bug#17510)
  
 -2014-05-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2014-05-26  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * xdisp.c: Bind inhibit-quit during pre-redisplay-function.
        (safe__call, safe__call1, safe__eval): New functions.
        (prepare_menu_bars): Use it for pre-redisplay-function (bug#17577).
        (display_mode_element): Same for `:eval'.
  
 -2014-05-22  Paul Eggert  <eggert@cs.ucla.edu>
 +2014-05-26  Paul Eggert  <eggert@cs.ucla.edu>
  
        Fix port to 32-bit AIX (Bug#17540).
        * unexaix.c (copy_text_and_data): Don't add text_scnptr to ptr
        twice.  _text already includes this offset.
        (unrelocate_symbols): Don't cast 64-bit integer to pointer.
  
 -2014-05-21  Eli Zaretskii  <eliz@gnu.org>
 +2014-05-26  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (move_it_in_display_line_to): Avoid infinite recursion:
        when closest_pos is identical to to_charpos, don't recurse, since
        we already tried that, and failed.  (Bug#17539)
  
 -2014-05-20  Eli Zaretskii  <eliz@gnu.org>
 -
        * w32fns.c (unwind_create_frame) [GLYPH_DEBUG]: If we are
        unwinding when frame's faces were not initialized yet, increment
        the frame's image-cache reference count before calling
        x_free_frame_resources.  Don't dereference
        dpyinfo->terminal->image_cache if it is NULL.  (Bug#17524)
  
 -2014-05-11  Glenn Morris  <rgm@gnu.org>
 +2014-05-25  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfont.m (nsfont_draw): Simplify as arguments are adjusted in
 +      nsterm.m now.
 +
 +      * nsterm.m (ns_draw_glyph_string): Move isComposite and end from
 +      macfont.m, call draw with adjusted arguments so font drivers
 +      don't need to do that.
 +
 +      * macfont.m (macfont_draw): Merge changes from Macport.
 +
 +2014-05-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * alloc.c (garbage_collect_1): New function, with all of the guts
 +      of Fgarbage_collect.
 +      (mark_stack): Accept an argument END and don't mark Lisp objects
 +      on the stack beyond the address given by END.  Calculation of END
 +      was moved to Fgarbage_collect.
 +      (Fgarbage_collect): Calculate the end address of the stack portion
 +      that needs to be examined by mark_stack, and pass that address to
 +      garbage_collect_1, which will pass it to mark_stack.
 +      See http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00270.html
 +      for more details about the underlying problems.  In particular,
 +      this avoids dumping Emacs with the large hash-table whose value is
 +      held in purify-flag for most of the time loadup.el runs.
 +
 +2014-05-24  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xfns.c (x_window_property_intern): New function (code from
 +      x_window_property).
 +      (Fx_window_property): Call x_window_property_intern.  If property
 +      not found and NILP (source) and outer window != inner window,
 +      check outer window for property (Bug#17537).
 +
 +2014-05-22  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Supply malloc and alloc_size attributes for extern allocators.
 +      This documents the C API, and helps GCC generate a bit better code.
 +      * conf_post.h (ATTRIBUTE_MALLOC, ATTRIBUTE_ALLOC_SIZE)
 +      (ATTRIBUTE_MALLOC_SIZE): New macros.
 +      * gmalloc.c (malloc, realloc, calloc):
 +      * gtkutil.h (malloc_widget_value):
 +      * lisp.h (ralloc, r_re_alloc, xmalloc, xzalloc, xrealloc, xnmalloc)
 +      (xnrealloc, xstrdup, xlispstrdup, record_xmalloc):
 +      Use them.
 +
 +2014-05-21  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Don't assume that ImageMagick uses a 16-bit quantum (Bug#17519).
 +      * image.c (imagemagick_load_image): Port to hosts that do not use
 +      a 16-bit quantum, i.e., QuantumRange does not equal 65535.
 +
 +2014-05-21  Leo Liu  <sdl.web@gmail.com>
 +
 +      * fns.c (Fnreverse): Accept strings for SEQ and update doc-string.
 +
 +2014-05-20  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (xd_signature): Revert last 2 patches.
 +
 +2014-05-19  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Allow any non-nil value to count as true in bool-vector.
 +      Likewise for xd_signature in dbusbind.c.
 +      This is more consistent with the usual practice in Emacs, which is
 +      that any non-nil value counts as true.
 +      * alloc.c (Fbool_vector): Don't require args to be t or nil.
 +      * dbusbind.c (xd_signature): Likewise, for booleans.
 +      * data.c, lisp.h (Qbooleanp):
 +      * lisp.h (CHECK_BOOLEAN): Remove.  All uses removed.
 +
 +2014-05-19  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * lisp.h (CHECK_BOOLEAN): New function.
 +      * alloc.c (Fbool_vector): New function.
 +      (syms_of_alloc): Defsubr it.
 +      * data.c (Qbooleanp): New symbol.
 +      (syms_of_data): DEFSYM it.
 +      * dbusbind.c (xd_signature): Use CHECK_BOOLEAN.
 +
 +      * font.c (font_matching_entity): Extract font-entity object
 +      from the vector of matching entities (Bug#17486).
 +
 +2014-05-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume C99 or later (Bug#17487).
 +      * bytecode.c (B__dummy__): Remove.
 +      * conf_post.h (bool_bf) [!NS_IMPL_GNUSTEP]: Use bool.
 +      (FLEXIBLE_ARRAY_MEMBER): Now always empty.
 +      * dbusbind.c (XD_DEBUG_MESSAGE) [!DBUS_DEBUG]:
 +      * regex.c (DEBUG_PRINT): Assume varargs macros.
 +      * lisp.h (DEFUN_FUNCTION_INIT): Remove.  All uses now assume C99.
 +
 +2014-05-17  Fabrice Popineau  <fabrice.popineau@gmail.com>
 +
 +      * buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: Always map new
 +      memory for every buffer that was dumped.
 +
 +2014-05-15  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * fns.c (Freverse): Allow vectors, bool vectors and strings.
 +      (Fnreverse): Allow vectors and bool vectors.
 +
 +2014-05-14  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      Minor cleanup for terminal setup.
 +      * termhooks.h (create_terminal): Adjust prototype.
 +      * terminal.c (create_terminal): Pass output method and RIF as args.
 +      (init_initial_terminal):
 +      * nsterm.m (ns_create_terminal):
 +      * term.c (init_tty):
 +      * w32term.c (w32_create_terminal):
 +      * xterm.c (x_create_terminal): Adjust users.
 +      Avoid redundant NULL initializers and add comments.
 +
 +2014-05-13  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * keyboard.c (Qdeactivate_mark): Now static.
 +
 +2014-05-13  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      If available, use Xfixes extension to do pointer blanking.
 +      * Makefile.in (XFIXES_CFLAGS, XFIXES_LIBS): New var.
 +      * xfns.c (x_set_mouse_color): Do not call make_invisible_cursor here.
 +      (make_invisible_cursor): Move to...
 +      * xterm.c (make_invisible_cursor): ...here.
 +      (x_probe_xfixes_extension, xfixes_toggle_visible_pointer)
 +      (x_toggle_visible_pointer, x_setup_pointer_blanking): New functions.
 +      (x_term_init): Call to x_setup_pointer_blanking.
 +      (XTtoggle_invisible_pointer): Use blanking specific to this display.
 +      * xterm.h (struct x_display_info): New member toggle_visible_pointer.
 +
 +2014-05-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
 +
 +2014-05-12  Glenn Morris  <rgm@gnu.org>
  
        * fileio.c (Ffile_executable_p): Doc tweak.
  
 -2014-05-10  Jan Djärv  <jan.h.d@swipnet.se>
 +2014-05-12  Jan Djärv  <jan.h.d@swipnet.se>
  
        * xsettings.c (init_gsettings): Use g_settings_schema_source_lookup
        instead of deprecated g_settings_list_schemas if possible (Bug#17434).
  
 -2014-05-07  Paul Eggert  <eggert@cs.ucla.edu>
 +2014-05-08  Paul Eggert  <eggert@cs.ucla.edu>
  
        * minibuf.c (read_minibuf): Avoid C99ism in previous patch (Bug#17430).
  
 -2014-05-07  Jarek Czekalski  <jarekczek@poczta.onet.pl>
 +2014-05-08  Jarek Czekalski  <jarekczek@poczta.onet.pl>
  
        Fix initialization of minibuffer history variable (Bug#17430).
        * minibuf.c (read_minibuf): Initialize histval to Qnil if unbound.
        Move the initialization up to prevent any "value void" message.
  
 -2014-05-06  Samuel Bronson  <naesten@gmail.com>
 +2014-05-08  Samuel Bronson  <naesten@gmail.com>
  
        * keyboard.c (Frecursive_edit): Ensure inc&dec of command_loop_level
        are matched (bug#17413).
  
 -2014-05-06  Jarek Czekalski  <jarekczek@poczta.onet.pl>
 +2014-05-08  Jarek Czekalski  <jarekczek@poczta.onet.pl>
  
        Stop tooltips pulling Emacs window to front (Bug#17408).
        * w32fns.c (Fx_show_tip): Add SWP_NOOWNERZORDER flag to
        SetWindowPos invocations.
  
 -2014-05-05  Jan Djärv  <jan.h.d@swipnet.se>
 +2014-05-08  Jan Djärv  <jan.h.d@swipnet.se>
  
        * nsselect.m (Fx_selection_exists_p): Just return Qnil if window system
        not initialized (Bug#17398).
  
 +2014-05-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * image.c: Include <png.h> before <setjmp.h> (Bug#17429).
 +
 +2014-05-06  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * image.c: Do not use libpng if HAVE_NS, as NS does its own thing.
 +      [HAVE_NS]: Do not include png.h.
 +      (x_query_frame_background_color): New function.
 +      (png_load_body, imagemagick_load_image, svg_load_image): Use it.
 +      (png_load_body): Coalesce duplicate code.
 +
  2014-05-04  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      Revert recent libpng changes (Bug#17339).
 -      * Makefile.in (PNG_CFLAGS): Remove; all uses removed.
 -      * image.c [HAVE_LIBPNG_PNG_H]: Include <libpng/png.h>, not <png.h>.
 +      Consult libpng-config more consistently (Bug#17339).
 +      * Makefile.in (PNG_CFLAGS): New var.
 +      (ALL_CFLAGS): Use it.
 +      * image.c [HAVE_PNG]: Don't worry about <libpng/png.h>, as
 +      CFLAGS now handles this.
  
  2014-05-03  Paul Eggert  <eggert@cs.ucla.edu>
  
  
        * buffer.c (overlay_strings): Fix the wording of the commentary.
  
 -2014-05-02  Paul Eggert  <eggert@cs.ucla.edu>
 -
 -      Consult libpng-config more consistently (Bug#17339).
 -      * Makefile.in (PNG_CFLAGS): New var.
 -      (ALL_CFLAGS): Use it.
 -      * image.c [HAVE_PNG]: Don't worry about <libpng/png.h>, as
 -      CFLAGS now handles this.
 -
  2014-05-01  Glenn Morris  <rgm@gnu.org>
  
        * floatfns.c (Fisnan):
        GCC 4.9.0 warned about this, and I couldn't easily prove to my own
        satisfaction that they would always be initialized.
  
 -2014-04-29  Eli Zaretskii  <eliz@gnu.org>
 +2014-04-30  Eli Zaretskii  <eliz@gnu.org>
  
        * term.c (tty_menu_display): Move the cursor to the active menu item.
        (tty_menu_activate): Return the cursor to the active menu item
        for the details of why this is needed by screen readers and
        Braille displays.
  
 -2014-04-29  Glenn Morris  <rgm@gnu.org>
 +2014-04-30  Glenn Morris  <rgm@gnu.org>
  
        * process.c (handle_child_signal):
        Handle systems without WCONTINUED.  (Bug#15110, 17339)
  
 -2014-04-23  Eli Zaretskii  <eliz@gnu.org>
 +2014-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * window.c (struct saved_window): Remove mark.
 +      (Fset_window_configuration, save_window_save)
 +      (compare_window_configurations): Don't touch marks any more.
 +
 +2014-04-28  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Use bits_word for gcmarkbits.
 +      * alloc.c (struct cons_block, struct float_block): On 64-bit hosts,
 +      bits_word is typically a tad more efficient for mark bits than
 +      unsigned is, so use bits_word.  All uses changed.
 +      * lisp.h (BITS_PER_INT): Remove; no longer used.
 +
 +      Avoid undefined behavior in signed left shift.
 +      This ports to GCC 4.9.0 with -fsanitize=undefined.
 +      * alloc.c (bool_vector_fill, SETMARKBIT, UNSETMARKBIT):
 +      * data.c (Fash):
 +      * regex.c (extract_number):
 +      * lisp.h (make_number, XINT):
 +      Do not shift a 1 bit left into a sign bit.
 +      * alloc.c (struct cons_block, struct float_block): Use unsigned,
 +      not int, for gcmarkbits.  All uses changed.
 +
 +2014-04-25  Eli Zaretskii  <eliz@gnu.org>
  
        * search.c (Fnewline_cache_check): Don't try to count newlines
        outside the buffer's restriction, as find_newline doesn't support that.
  
 +2014-04-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * window.c (Fset_window_configuration): Deactivate the mark before
 +      unsetting the mark.
 +      (set_window_buffer): Ignore window_initialized.
 +      (window_initialized): Remove.
 +      * keyboard.c (Qdeactivate_mark): Not static any more.
 +      * buffer.c (buffer_local_value): Rename from buffer_local_value_1.
 +      Update all callers.
 +
 +2014-04-23  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0
 +      and to clang 3.4, which have fixed the bug.  This should let us
 +      run a bit faster on these platforms when address sanitization is
 +      in effect.
 +
  2014-04-22  Paul Eggert  <eggert@cs.ucla.edu>
  
        Port to GCC 4.9.0 with --enable-gcc-warnings.
        (Fnewline_cache_check): New function.
        (syms_of_search): Defsubr it.
  
 -2014-04-21  Jarek Czekalski  <jarekczek@poczta.onet.pl>
 +2014-04-22  Jarek Czekalski  <jarekczek@poczta.onet.pl>
  
        Fix freezing with scroll bars of GTK3 Toolkit (bug#15801).
        * keyboard.c (unblock_input): Add comment.
        * xgselect.c (xg_select): Prevent Glib main loop recursion.
  
 +2014-04-22  Daniel Colascione  <dancol@dancol.org>
 +
 +      * lread.c (readevalloop_eager_expand_eval): New function
 +      that can recurse into toplevel forms.
 +      (readevalloop): Call it.
 +      * lisp.h: Declare Qprogn.
 +      * callint.c (Qprogn): No longer static.
 +
  2014-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * intervals.c (rotate_right, rotate_left): Fix up length computation.
        Also change identifiers to match the comments, and add more assertions
        (bug#16234).
  
 -2014-04-18  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xdisp.c (insert_left_trunc_glyphs): Ensure the left truncation
 -      glyph is written to TEXT_AREA of the temporary glyph_row.
 -      (Bug#17288)
 -
  2014-04-18  Paul Eggert  <eggert@cs.ucla.edu>
  
        * emacs.c (close_output_streams): Don't clear and restore errno.
  
 -2014-04-17  Jan Djärv  <jan.h.d@swipnet.se>
 +2014-04-18  Jan Djärv  <jan.h.d@swipnet.se>
  
        * xterm.c (x_make_frame_visible): Prevent endless loop when frame
        never becomes visible, i.e. using XMonad  (Bug#17237).
  
 -2014-04-17  Eli Zaretskii  <eliz@gnu.org>
 +2014-04-18  Eli Zaretskii  <eliz@gnu.org>
  
 -      * xdisp.c (Fline_pixel_height): Don't assume that the current
 -      buffer and the selected window's buffer are one and the same.
 -      (Bug#17281)
 +      * xdisp.c (insert_left_trunc_glyphs): Ensure the left truncation
 +      glyph is written to TEXT_AREA of the temporary glyph_row.  (Bug#17288)
 +      (Fline_pixel_height): Don't assume that the current buffer and the
 +      selected window's buffer are one and the same.  (Bug#17281)
  
        * insdel.c (invalidate_buffer_caches): Invalidate the bidi
        paragraph-start cache before the newline cache.  (Bug#17269)
  
 +2014-04-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * term.c (tty_send_additional_strings): No need to fflush here,
 +      as callers fflush.
 +      (tty_set_terminal_modes): fflush after sending additional strings,
 +      not before.
 +
 +2014-04-17  Daniel Colascione  <dancol@dancol.org>
 +
 +      * term.c (Qtty_mode_set_strings, Qtty_mode_reset_strings):
 +      New symbols.
 +      (tty_send_additional_strings): New function.
 +      (tty_set_terminal_modes, tty_reset_terminal_modes): Use it.
 +      (syms_of_term): Intern tty-mode-set-strings and
 +      tty-mode-reset-strings.
 +
  2014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * window.c (save_window_save): Lookup window_point_insertion_type in
        Move vfork-related portions under #ifndef MSDOS.
        (syms_of_callproc): Unify templates of MSDOS and WINDOWSNT.
  
 -2014-04-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * buffer.c (Foverlays_at): Add argument `sorted'.
  
 -2014-04-14  Eli Zaretskii  <eliz@gnu.org>
 +2014-04-16  Eli Zaretskii  <eliz@gnu.org>
  
        * insdel.c (invalidate_buffer_caches): When deleting or replacing
        text, invalidate the bidi_paragraph_cache upto and including the
        preceding newline.
  
 -2014-04-13  Paul Eggert  <eggert@cs.ucla.edu>
 +2014-04-16  Paul Eggert  <eggert@cs.ucla.edu>
  
        Port to IRIX 6.5 (Bug#9684).
 -      * alloc.c (TAGGABLE_NULL): New constant,
 -      for porting to hosts with nontrivial DATA_SEG_BITS settings.
 -      (next_vector, set_next_vector): Use it.
        * conf_post.h (INET6) [IRIX6_5]: Define.
        (HAVE_GETADDRINFO) [IRIX6_5]: Undef.
        * data.c (BITS_PER_ULL): Don't assume ULLONG_MAX is defined.
 -      * lisp.h (lisp_h_XPNTR): Don't OR in bits that aren't masked out,
 -      for consistency with how TAGGABLE_NULL is computed.
  
 -2014-04-13  Eli Zaretskii  <eliz@gnu.org>
 +2014-04-16  Eli Zaretskii  <eliz@gnu.org>
  
        * keyboard.c (Fopen_dribble_file): Encode the dribble file-name
        before passing it to system APIs.
  
 -      * puresize.h (BASE_PURESIZE): Bump by 1K.  (Bug#17255)
 -
 -2014-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2014-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * bytecode.c (exec_byte_code): Rework the volatiles.  Most importantly,
        make sure stack.byte_string_start is not de-adjusted by pushhandler.
  
 -2014-04-12  Paul Eggert  <eggert@cs.ucla.edu>
 +2014-04-16  Paul Eggert  <eggert@cs.ucla.edu>
  
        * keyboard.c (Fopen_dribble_file): Avoid some races.  (Bug#17187)
  
 +2014-04-15  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Remove DATA_SEG_BITS.
 +      The DATA_SEG_BITS hack was needed for older 32 bit platforms.
 +      As a result of this change, Emacs won't work on IRIX 6.5 with IRIX
 +      cc, but that platform is so old that SGI itself stopped supporting
 +      it in December 2013.  If you still need Emacs on IRIX, please
 +      either compile with GCC and port the undumping code, or run
 +      './configure --with-wide-int'.
 +      * alloc.c (gdb_make_enums_visible): Update to match lisp.h.
 +      * lisp.h (GCTYPEBITS): Move definition up, and switch to the
 +      DEFINE_GDB_SYMBOL_START way to define it.
 +      (NONPOINTER_BITS): New macro.
 +      (EMACS_INT): Use it.
 +      [!USE_LSB_TAG && !WIDE_EMACS_INT]: Fail, and suggest reporting
 +      the problem and/or configuring --with-wide-int.
 +      (USE_LSB_TAG): Simplify, based on above changes.
 +      (gdb_DATA_SEG_BITS): Remove.  All uses removed.
 +      * vm-limit.c (exceeds_lisp_ptr): Remove.  All uses removed.
 +
  2014-04-12  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (move_it_by_lines): If a large portion of buffer text is
        * indent.c (Fvertical_motion): Handle correctly the case when the
        display string is preceded by an empty line.
  
 -2014-04-11  Eli Zaretskii  <eliz@gnu.org>
 -
        * w32.c (sys_umask) <WRITE_USER>: Remove redundant constant, and
        use S_IWRITE instead.
  
  
        * keyboard.c (Fopen_dribble_file): Make file private.  (Bug#17187)
  
 -2014-04-09  Ken Brown  <kbrown@cornell.edu>
 +2014-04-11  Ken Brown  <kbrown@cornell.edu>
  
        * Makefile.in (EMACS_MANIFEST): Revert last change.
  
 +2014-04-10  Daniel Colascione  <dancol@dancol.org>
 +
 +      * puresize.h (BASE_PURESIZE): Increase.
 +
 +2014-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keyboard.c (syms_of_keyboard): Make deactivate-mark buffer-local.
 +
 +      * insdel.c (prepare_to_modify_buffer_1): Cancel lock-file checks and
 +      region handling (and don't call signal_before_change) if
 +      inhibit_modification_hooks is set.
 +      (signal_before_change): Don't check inhibit_modification_hooks any more.
 +
 +2014-04-08  Daniel Colascione  <dancol@dancol.org>
 +
 +      * alloc.c (sweep_symbols, mark_object): Assert that symbol
 +      function cells contain valid lisp objects.  (Modified version of
 +      patch from Dmitry).
 +
 +      * alloc.c (detect_suspicious_free): Split actual stack capturing
 +      out into new function for easier breakpoint setting.
 +      (note_suspicious_free): New function.
 +
  2014-04-07  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * lisp.h (struct Lisp_Symbol): New bitfield `pinned'.
        (Fgarbage_collect): Use it.
        (gc_sweep): Remove hack made unnecessary.
  
 -2014-04-05  Glenn Morris  <rgm@gnu.org>
 +2014-04-07  Glenn Morris  <rgm@gnu.org>
  
        * keyboard.c (Fopen_dribble_file): Doc tweak.
  
 -2014-04-04  Jan Djärv  <jan.h.d@swipnet.se>
 +2014-04-07  Ken Brown  <kbrown@cornell.edu>
  
 -      Backport from trunk.
 -      * nsterm.m (updateFrameSize:): If waiting for the tool bar and tool
 -      bar is zero height, just return (Bug#16976).
 -      (initFrameFromEmacs:): Initialize wait_for_tool_bar.
 -      * nsterm.h (EmacsView): Add wait_for_tool_bar.
 -      * nsmenu.m (update_frame_tool_bar): Return early if view or toolbar
 -      is nil.  If waiting for toolbar to complete, force a redraw.
 -      (free_frame_tool_bar): Set wait_for_tool_bar = NO (Bug#16976).
 +      * Makefile.in (EMACS_MANIFEST): Update comment.  (Bug#17176)
  
 -2014-04-03  Ken Brown  <kbrown@cornell.edu>
 +2014-04-07  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * Makefile.in (EMACS_MANIFEST): Update comment.  (Bug#17176)
 +      * alloc.c: Simplify by removing use of HAVE_EXECINFO_H.
 +      We have a substitute execinfo.h on hosts that lack it.
 +      (suspicious_free_history): Make it EXTERNALLY_VISIBLE so it
 +      isn't optimized away.
 +
 +2014-04-05  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Prefer 'ARRAYELTS (x)' to 'sizeof x / sizeof *x'.
 +      * alloc.c (memory_full):
 +      * charset.c (syms_of_charset):
 +      * doc.c (Fsnarf_documentation):
 +      * emacs.c (main):
 +      * font.c (BUILD_STYLE_TABLE):
 +      * keyboard.c (make_lispy_event):
 +      * profiler.c (setup_cpu_timer):
 +      * xgselect.c (xg_select):
 +      * xterm.c (record_event, STORE_KEYSYM_FOR_DEBUG):
 +      Use ARRAYELTS.
 +      * font.c (FONT_PROPERTY_TABLE_SIZE): Remove.
 +      Replace the only use with ARRAYELTS (font_property_table).
 +      * xfaces.c (DIM): Remove.  All uses replaced by ARRAYELTS.
 +
 +2014-04-03  Daniel Colascione  <dancol@dancol.org>
 +
 +      * xterm.c (x_term_init):
 +      * xfns.c (best_xim_style):
 +      * xfaces.c (Fdump_colors):
 +      * w32fns.c (w32_default_color_map):
 +      * w32.c (init_environment, N_ENV_VARS):
 +      * unexcw.c (read_exe_header):
 +      * term.c (term_get_fkeys_1):
 +      * sysdep.c (init_baud_rate):
 +      * nsterm.m (ns_convert_key):
 +      * nsfns.m (get_geometry_from_preferences):
 +      * msdos.c (dos_set_window_size, init_environment):
 +      * macfont.m (mac_font_get_glyph_for_cid)
 +      (macfont_store_descriptor_attributes)
 +      (macfont_create_attributes_with_spec, mac_ctfont_get_glyph_for_cid):
 +      * keyboard.c (command_loop_1, read_menu_command, make_lispy_event)
 +      (NUM_MOD_NAMES, read_key_sequence_vs, Fcurrent_input_mode)
 +      (syms_of_keyboard):
 +      * image.c (xpm_str_to_color_key):
 +      * fringe.c (MAX_STANDARD_FRINGE_BITMAPS):
 +      * frame.c (x_set_frame_parameters):
 +      * fileio.c (Ffile_selinux_context):
 +      * emacs.c (sort_args):
 +      * dosfns.c (msdos_stdcolor_name):
 +      * dired.c (file_attributes):
 +      * chartab.c (uniprop_decoder_count, uniprop_encode_count):
 +      Change expressions of the form sizeof(arr) / sizeof(arr[0])
 +      to ARRAYELTS (arr).
 +
 +2014-04-02  Daniel Colascione  <dancol@dancol.org>
 +
 +      * data.c (Ffset): Abort if we're trying to set a function call to
 +      a dead lisp object.
 +
 +      * lisp.h (ARRAYELTS): New macro.
 +
 +      * alloc.c: Include execinfo.h if available.
 +      (SUSPICIOUS_OBJECT_CHECKING): New macro; define unconditionally.
 +      (suspicious_free_record): New structure.
 +      (suspicious_objects, suspicious_object_index)
 +      (suspicious_free_history, suspicious_free_history_index):
 +      New variables.
 +      (find_suspicious_object_in_range, detect_suspicious_free)
 +      (Fsuspicious_object): New functions.
 +      (cleanup_vector): Call find_suspicious_object_in_range.
  
  2014-04-02  Martin Rudalics  <rudalics@gmx.at>
  
        * xterm.c (x_new_font): Don't calculate non-toolkit scrollbar
        width from font width (Bug#17163).
  
 -2014-03-30  Martin Rudalics  <rudalics@gmx.at>
 -
        * frame.c (x_set_frame_parameters): Calculate default values of
        new frame sizes only after all other frame parameters have been
        processed (Bug#17142).
  
 -2014-03-28  Ken Brown  <kbrown@cornell.edu>
 +2014-04-02  Ken Brown  <kbrown@cornell.edu>
  
        * conf_post.h (SYSTEM_PURESIZE_EXTRA) [CYGWIN]: Set to 10000.
        (Bug#17112)
  
 -2014-03-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2014-04-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
        * xterm.c (x_draw_image_glyph_string): Adjust image background
        width accordingly when its x position is adjusted.  (Bug#17115)
  
 +2014-04-02  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * font.c (font_list_entities): Do not add empty vector to font cache.
 +      (font_matching_entity): Likewise.  If matching entity is found, insert
 +      1-item vector with this entity instead of entity itself (Bug#17125).
 +
 +      * xterm.c (x_term_init) [USE_LUCID]: Fix minor memory leak.
 +
 +2014-04-01  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * fns.c (validate_subarray): Rename from validate_substring,
 +      since it works for vectors too.  New arg ARRAY.  Optimize for the
 +      non-nil case.  Instead of returning bool, throw an error if out of
 +      range, so that the caller needn't do that.  All uses changed.
 +      Report original values if out of range.
 +      (Fsubstring, Fsubstring_no_properties, secure_hash):
 +      Also optimize the case where FROM is 0 or TO is the size.
 +
 +2014-03-31  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * search.c (Freplace_match): Use make_specified_string.
 +      * xterm.c, w32term.c (x_set_glyph_string_gc): Use emacs_abort
 +      to catch bogus override face of glyph strings.
 +      * fns.c (Fsubstring, Fsubstring_no_properties, secure_hash):
 +      Move common substring range checking code to...
 +      (validate_substring): ...this function.
 +
 +2014-03-31  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsmenu.m (free_frame_tool_bar): Set wait_for_tool_bar = NO (Bug#16976)
 +
 +2014-03-30  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (updateFrameSize:): If waiting for the tool bar and tool
 +      bar is zero height, just return (Bug#16976).
 +      (initFrameFromEmacs:): Initialize wait_for_tool_bar.
 +
 +      * nsterm.h (EmacsView): Add wait_for_tool_bar.
 +
 +      * nsmenu.m (update_frame_tool_bar): Return early if view or toolbar
 +      is nil.  If waiting for toolbar to complete, force a redraw.
 +
 +2014-03-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.c (emacs_version): Use PACKAGE_VERSION rather than VERSION.
 +      (emacs_bugreport): New variable.
 +      (usage_message): Use PACKAGE_BUGREPORT.
 +      (syms_of_emacs) <report-emacs-bug-address>: New variable.
 +
 +      * emacs.c (syms_of_emacs) <system-configuration-features>: New var.
 +
 +2014-03-27  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Port recent signal-related changes to FreeBSD.
 +      Reported by Herbert J. Skuhra.
 +      * lisp.h (block_tty_out_signal, unblock_tty_out_signal):
 +      Move decls from here ...
 +      * syssignal.h: ... to here, so that lisp.h doesn't depend on signal.h.
 +
  2014-03-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
        * w32term.c (x_draw_image_glyph_string): Fix computation of height
        and width of image background when it is displayed with a 'box'
        face.  (Bug#17115)
  
 -2014-03-26  Paul Eggert  <eggert@penguin.cs.ucla.edu>
 +2014-03-27  Paul Eggert  <eggert@penguin.cs.ucla.edu>
  
        More backward-compatible fix to char-equal core dump (Bug#17011).
        * editfns.c (Fchar_equal): In unibyte buffers, assume values in
        range 128-255 are raw bytes.  Suggested by Eli Zaretskii.
  
 +2014-03-27  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * image.c (init_svg_functions): When loading SVG-related libraries,
 +      free already loaded libraries if the initialization fails.
 +      (rsvg_handle_set_size_callback): Remove declaration, unused.
 +
 +2014-03-26  Paul Eggert  <eggert@cs.ucla.edu>
 +
        Fix core dump in char-equal (Bug#17011).
        * editfns.c (Fchar_equal): Do not use MAKE_CHAR_MULTIBYTE in
        unibyte buffers, as we can't tell whether the characters are
  
        * insdel.c (adjust_markers_for_delete): Remove unused local.
  
 -2014-03-24  Barry O'Reilly  <gundaetiapo@gmail.com>
 +2014-03-26  Barry O'Reilly  <gundaetiapo@gmail.com>
  
        Have (MARKER . ADJUSTMENT) undo records always be immediately
        after their corresponding (TEXT . POS) record in undo list.
        (record_point): at_boundary calculation no longer needs to account
        for marker adjustments.
  
 -2014-03-24  Martin Rudalics  <rudalics@gmx.at>
 +2014-03-26  Martin Rudalics  <rudalics@gmx.at>
  
        * w32term.c (x_set_window_size): Refine fix from 2014-03-14
        (Bug#17077).
  
 -2014-03-23  Glenn Morris  <rgm@gnu.org>
 +2014-03-26  Glenn Morris  <rgm@gnu.org>
  
        * fileio.c (Ffile_symlink_p): Doc fix. (Bug#17073)
  
 -2014-03-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2014-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * buffer.c (struct sortvec): Add field `spriority'.
        (compare_overlays): Use it.
        (sort_overlays): Set it.
  
 -2014-03-23  Eli Zaretskii  <eliz@gnu.org>
 +2014-03-26  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (redisplay_window): If all previous attempts to find the
        cursor row failed, try a few alternatives before falling back to
        the top-most row of the window.  Use row_containing_pos.  (Bug#17047)
  
 -2014-03-22  Daniel Colascione  <dancol@dancol.org>
 +2014-03-26  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * process.c (conv_sockaddr_to_lisp): When extracting the string
 -      names of AF_LOCAL sockets, stop before reading uninitialized
 -      memory.
 +      * image.c (x_bitmap_height, x_bitmap_width) [HAVE_X_WINDOWS]:
 +      * sysdep.c (reset_sigio) [!DOS_NT]: Declare conditionally.
 +
 +      * keyboard.c (read_decoded_event_from_main_queue): #ifdef out
 +      variables on Windows.
 +
 +      * w32fns.c (Ffile_system_info): Use parenthesis in and/or expression.
 +
 +      * w32.c (unsetenv): Remove unused var `retval'.
 +      (emacs_gnutls_pull): Remove unused vars `fdset' and `timeout'.
 +
 +      * w32notify.c (watch_worker): Remove unnecesary var sleep_result.
 +      (start_watching): Remove unused var `thr'.
 +
 +      * w32proc.c (sys_spawnve): Comment out unused vars `first', `last'.
 +      (find_child_console): Remove unnecesary var `thread_id'.
 +
 +      * w32term.c (w32_read_socket): Comment out unused vars `row', `columns'.
 +      (x_focus_frame): #ifdef 0 unused variable `dpyinfo'.
 +
 +2014-03-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * filelock.c (Flock_buffer): Doc tweak.
 +
 +      * buffer.c (Frestore_buffer_modified_p, Fkill_buffer):
 +      * emacs.c (shut_down_emacs):
 +      * fileio.c (Finsert_file_contents, write_region):
 +      * filelock.c (top-level, syms_of_filelock):
 +      * insdel.c (prepare_to_modify_buffer_1):
 +      CLASH_DETECTION is always defined now.
 +
 +2014-03-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (w32_delayed_load): Call DisableThreadLibraryCalls on the
 +      DLL handle, to speed up thread startup.
 +
 +2014-03-25  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Handle sigmask better with nested signal handlers  (Bug#15561).
 +      * atimer.c (sigmask_atimers): Remove.
 +      Remaining use rewritten to use body of this function.
 +      * atimer.c (block_atimers, unblock_atimers):
 +      * callproc.c (block_child_signal, unblock_child_signal):
 +      * sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
 +      New arg OLDSET.  All callers changed.
 +      * atimer.c (block_atimers, unblock_atimers):
 +      * callproc.c (block_child_signal, unblock_child_signal):
 +      * keyboard.c (handle_interrupt):
 +      * sound.c (vox_configure, vox_close):
 +      Restore the old signal mask rather than unilaterally clearing bits
 +      from the mask, in case a handler is running within another
 +      handler.  All callers changed.
 +      * lisp.h, process.c, process.h, term.c:
 +      Adjust decls and callers to match new API.
 +      * sysdep.c (emacs_sigaction_init): Don't worry about masking SIGFPE;
 +      signal handlers aren't supposed to use floating point anyway.
 +      (handle_arith_signal): Unblock just SIGFPE rather than clearing mask.
 +
 +2014-03-23  Daniel Colascione  <dancol@dancol.org>
 +
 +      Split gc_sweep into discrete functions for legibility and better
 +      stack traces.
 +
 +      * alloc.c (sweep_strings, sweep_vectors): Add NO_INLINE
 +      (sweep_vectors): Fix typo in comment.
 +      (sweep_conses, sweep_floats, sweep_intervals)
 +      (sweep_symbols, sweep_misc, sweep_buffers): New functions.
 +      (gc_sweep): Call new functions, to which existing functionality is
 +      moved.
 +      * fns.c (sweep_weak_hash_tables): Add NO_INLINE.
 +
 +2014-03-23  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32fns.c (Fw32_shell_execute): Declare `result' only on Cygwin.
 +
 +2014-03-23  Daniel Colascione  <dancol@dancol.org>
 +
 +      * xfns.c (create_frame_xic): Pass XNStatusAttributes to XCreateIC
 +      only if xic_style calls for it.  This change allows Emacs to work
 +      with ibus.  Also, don't leak resources if create_frame_xic fails,
 +      and stop caching xic_style across different displays.
 +      (supported_xim_styles): Make const.
 +      (best_xim_style): Remove first parameter: it's always just
 +      supported_xim_styles.  Change to look at supported_xim_styles
 +      directly.
 +
 +2014-03-23  Daniel Colascione  <dancol@dancol.org>
 +
 +      * term.c (init_tty): Rearrange condition for clarity; print
 +      appropriate diagnostic.
  
  2014-03-23  Daniel Colascione  <dancol@dancol.org>
  
        * process.c (DATAGRAM_CONN_P): Don't underflow datagram_address
        array.  (ASAN caught.)
  
 +2014-03-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * callproc.c (init_callproc): In etc, look for NEWS rather than GNU.
 +
 +2014-03-22  Daniel Colascione  <dancol@dancol.org>
 +
 +      * process.c (conv_sockaddr_to_lisp): When extracting the string
 +      names of AF_LOCAL sockets, stop before reading uninitialized memory.
 +
  2014-03-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
        Fix regression introduced by patch for Bug#10500.
        constrain frame size in SW_SHOWMAXIMIZED case so we can truly
        maximize a frame for odd default fonts.
  
 +2014-03-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * minibuf.c (history-length): Increase default from 30 to 100.
 +
 +2014-03-21  Daniel Colascione  <dancol@dancol.org>
 +
 +      * xterm.c (x_bitmap_icon): Stop reading the icon bitmap from disk
 +      every time we switch to minibuffer.
 +
 +      * alloc.c (lisp_align_malloc, allocate_string_data)
 +      (allocate_vectorlike): Allow mmap allocation of lisp objects.
 +      (pointers_fit_in_lispobj_p, mmap_lisp_allowed_p): New functions.
 +
 +2014-03-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c (Fw32_shell_execute) [!CYGWIN]: Use ShellExecuteEx, to
 +      support more "verbs".
 +
 +2014-03-21  Daniel Colascione  <dancol@dancol.org>
 +
 +      Always prohibit dumping a dumped Emacs.
 +
 +      * emacs.c (might_dump): New variable.
 +      (Fdump_emacs): Always prohibit dumping of dumped Emacs.
 +      * lisp.h (might_dump): Declare.
 +      * unexcw.c (unexec): Remove now-redundant multiple-dump detection code.
 +
  2014-03-20  Paul Eggert  <eggert@cs.ucla.edu>
  
        * doc.c (store_function_docstring): Fix pointer signedness mismatch.
        * doc.c (store_function_docstring): Warn when we don't know where to
        put a docstring.
        (Fsubstitute_command_keys): Don't advertise the fact that
 -      text-properties are dropped, since we think it's a bug that we'll fix
 -      in 24.5.
 +      text-properties are dropped, since we think it's a bug that we'll fix.
  
        * frame.h (SET_FRAME_VISIBLE): Keep frame_garbaged up to date.
        * xterm.c (handle_one_xevent) <MapNotify>: Don't garbage the frame.
  2014-01-20  Paul Eggert  <eggert@cs.ucla.edu>
  
        Avoid undefined behavior by initializing buffer redisplay bit.
 -      Problem reported by Dmitry Antipov in
 +      Reported by Dmitry Antipov in
        <http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01756.html>.
        * buffer.c (Fget_buffer_create): Initialize redisplay bit.
  
  2013-11-21  Paul Eggert  <eggert@cs.ucla.edu>
  
        Fix some dependency problems that cause unnecessary recompiles.
 -      Problem reported by RMS in
 +      Reported by RMS in
        <http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00421.html>.
        * Makefile.in (OLDXMENU_TARGET, OLDXMENU, OLDXMENU_DEPS)
        (really-lwlib, really-oldXMenu, stamp-oldxmenu)
  
  2013-10-23  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      Port to Solaris 10 and its bundled GCC.
 -      Problem reported by Timothy C. Burt.
 +      Port to Solaris 10 and its bundled GCC.  Reported by Timothy C. Burt.
        * floatfns.c (isfinite, isnan): Redefine unconditionally.
  
  2013-10-21  Dmitry Antipov  <dmantipov@yandex.ru>
        so it shouldn't be used all the time.  Perhaps we need two
        flavors of 'eassert', one for where 'assume' is far more likely
        to help or to hurt; but that can be done later.
 -      Problem reported by Dmitry Antipov in
 +      Reported by Dmitry Antipov in
        <http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00276.html>.
        Also, don't include <verify.h>; no longer needed.
  
        (imagemagick_get_animation_cache): Fix a double-free error.
        (imagemagick_load_image): Remove the ping_wand code, which only
        apparently saved time on invalid animated images, and slowed down
 -      everything else.  Optimise for the common case.
 +      everything else.  Optimize for the common case.
  
  2013-08-16  Xue Fuqiao  <xfq.free@gmail.com>
  
  
  2013-07-07  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      Port to Ubuntu 10 (Bug#14803).
 -      Problem reported by T.V. Raman.
 +      Port to Ubuntu 10 (Bug#14803).  Reported by T.V. Raman.
        * process.c (close_on_exec, accept4, process_socket):
        Define these if !HAVE_ACCEPT4, not if !SOCK_CLOEXEC.
  
        * emacs.c (malloc_enable_thread): Hoist extern decl to top level.
        (main) [HAVE_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
        Invoke malloc_enable_thread even when not interactive.
 -      Problem reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
 +      Reported by Ken Brown in <http://bugs.gnu.org/14569#275>.
        * process.c (init_process_emacs) [CYGWIN]: Tickle glib even
        in this case, since the underlying bug has now been fixed.
  
        * unexelf.c: Don't assume ElfW (Half) fits in int.
        (entry_address, find_section, unexec): Use ptrdiff_t, not int,
        when dealing with ElfW (Half) values, since they can exceed 2**31
 -      on 64-bit OpenBSD hosts.  Problem reported privately by Han Boetes.
 +      on 64-bit OpenBSD hosts.  Reported by Han Boetes (privately).
        (entry_address): Omit unused NUM arg.  All uses changed.
  
  2013-05-07  Juri Linkov  <juri@jurta.org>
diff --combined src/frame.h
index ddbf93e98f5b3fbd53ac1e47f9b71c3650be9f30,bc49cfa44ecf0f9dc078b41b089b0224716dac8e..d4dfd1c8f949a6389a0f02fcdf56a4643a11225d
@@@ -36,22 -36,16 +36,22 @@@ enum vertical_scroll_bar_typ
    vertical_scroll_bar_right
  };
  
 +#ifdef HAVE_WINDOW_SYSTEM
 +
  enum fullscreen_type
  {
    FULLSCREEN_NONE,
 -  FULLSCREEN_WIDTH     = 0x001,
 -  FULLSCREEN_HEIGHT    = 0x002,
 -  FULLSCREEN_BOTH      = 0x003,
 -  FULLSCREEN_MAXIMIZED = 0x013,
 -  FULLSCREEN_WAIT      = 0x100
 +  FULLSCREEN_WIDTH     = 0x1,
 +  FULLSCREEN_HEIGHT    = 0x2,
 +  FULLSCREEN_BOTH      = 0x3, /* Not a typo but means "width and height".  */
 +  FULLSCREEN_MAXIMIZED = 0x4,
 +#ifdef HAVE_NTGUI
 +  FULLSCREEN_WAIT      = 0x8
 +#endif
  };
  
 +#endif /* HAVE_WINDOW_SYSTEM */
 +
  /* The structure representing a frame.  */
  
  struct frame
    /* Desired and current tool-bar items.  */
    Lisp_Object tool_bar_items;
  
 -  /* Where tool bar is, can be left, right, top or bottom.  The native
 -     tool bar only supports top.  */
 +#ifdef USE_GTK
 +  /* Where tool bar is, can be left, right, top or bottom.
 +     Except with GTK, the only supported position is `top'.  */
    Lisp_Object tool_bar_position;
 +#endif
 +
 +#if defined (HAVE_XFT) || defined (HAVE_FREETYPE)
 +  /* List of data specific to font-driver and frame, but common to faces.  */
 +  Lisp_Object font_data;
 +#endif
  
    /* Beyond here, there should be no more Lisp_Object components.  */
  
    /* Cache of realized faces.  */
    struct face_cache *face_cache;
  
 +#if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS)
 +  /* Tool-bar item index of the item on which a mouse button was pressed.  */
 +  int last_tool_bar_item;
 +#endif
 +
    /* Number of elements in `menu_bar_vector' that have meaningful data.  */
    int menu_bar_items_used;
  
 -  /* A buffer to hold the frame's name.  We can't use the Lisp
 -     string's pointer (`name', above) because it might get relocated.  */
 +#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI)
 +  /* A buffer to hold the frame's name.  Since this is used by the
 +     window system toolkit, we can't use the Lisp string's pointer
 +     (`name', above) because it might get relocated.  */
    char *namebuf;
 +#endif
 +
 +#ifdef USE_X_TOOLKIT
 +  /* Used to pass geometry parameters to toolkit functions.  */
 +  char *shell_position;
 +#endif
  
    /* Glyph pool and matrix.  */
    struct glyph_pool *current_pool;
    struct glyph_matrix *desired_matrix;
    struct glyph_matrix *current_matrix;
  
 +  /* Bitfield area begins here.  Keep them together to avoid extra padding.  */
 +
    /* True means that glyphs on this frame have been initialized so it can
       be used for output.  */
    bool_bf glyphs_initialized_p : 1;
    /* True if it needs to be redisplayed.  */
    bool_bf redisplay : 1;
  
 -  /* Margin at the top of the frame.  Used to display the tool-bar.  */
 +#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI)   \
 +    || defined (HAVE_NS) || defined (USE_GTK)
 +  /* True means using a menu bar that comes from the X toolkit.  */
 +  bool_bf external_menu_bar : 1;
 +#endif
 +
 +  /* Next two bitfields are mutually exclusive.  They might both be
 +     zero if the frame has been made invisible without an icon.  */
 +
 +  /* Nonzero if the frame is currently displayed; we check
 +     it to see if we should bother updating the frame's contents.
 +
 +     On ttys and on Windows NT/9X, to avoid wasting effort updating
 +     visible frames that are actually completely obscured by other
 +     windows on the display, we bend the meaning of visible slightly:
 +     if equal to 2, then the frame is obscured - we still consider
 +     it to be "visible" as seen from lisp, but we don't bother
 +     updating it.  */
 +  unsigned visible : 2;
 +
 +  /* True if the frame is currently iconified.  Do not
 +     set this directly, use SET_FRAME_ICONIFIED instead.  */
 +  bool_bf iconified : 1;
 +
 +  /* True if this frame should be fully redisplayed.  Disables all
 +     optimizations while rebuilding matrices and redrawing.  */
 +  bool_bf garbaged : 1;
 +
 +  /* False means, if this frame has just one window,
 +     show no modeline for that window.  */
 +  bool_bf wants_modeline : 1;
 +
 +  /* True means raise this frame to the top of the heap when selected.  */
 +  bool_bf auto_raise : 1;
 +
 +  /* True means lower this frame to the bottom of the stack when left.  */
 +  bool_bf auto_lower : 1;
 +
 +  /* True if frame's root window can't be split.  */
 +  bool_bf no_split : 1;
 +
 +  /* If this is set, then Emacs won't change the frame name to indicate
 +     the current buffer, etcetera.  If the user explicitly sets the frame
 +     name, this gets set.  If the user sets the name to Qnil, this is
 +     cleared.  */
 +  bool_bf explicit_name : 1;
 +
 +  /* True if size of some window on this frame has changed.  */
 +  bool_bf window_sizes_changed : 1;
 +
 +  /* True if the mouse has moved on this display device
 +     since the last time we checked.  */
 +  bool_bf mouse_moved : 1;
 +
 +  /* True means that the pointer is invisible.  */
 +  bool_bf pointer_invisible : 1;
 +
 +  /* True means that all windows except mini-window and
 +     selected window on this frame have frozen window starts.  */
 +  bool_bf frozen_window_starts : 1;
 +
 +  /* The output method says how the contents of this frame are
 +     displayed.  It could be using termcap, or using an X window.
 +     This must be the same as the terminal->type. */
 +  ENUM_BF (output_method) output_method : 3;
 +
 +#ifdef HAVE_WINDOW_SYSTEM
 +  /* See FULLSCREEN_ enum on top.  */
 +  ENUM_BF (fullscreen_type) want_fullscreen : 4;
 +
 +  /* If not vertical_scroll_bar_none, we should actually
 +     display the scroll bars of this type on this frame.  */
 +  ENUM_BF (vertical_scroll_bar_type) vertical_scroll_bar_type : 2;
 +
 +  /* Nonzero if we should actually display horizontal scroll bars on this frame.  */
 +  bool_bf horizontal_scroll_bars : 1;
 +#endif /* HAVE_WINDOW_SYSTEM */
 +
 +  /* Whether new_height and new_width shall be interpreted
 +     in pixels.  */
 +  bool_bf new_pixelwise : 1;
 +
 +  /* True means x_set_window_size requests can be processed for this
 +     frame.  */
 +  bool_bf can_x_set_window_size : 1;
 +
 +  /* Set to true after this frame was made by `make-frame'.  */
 +  bool_bf after_make_frame : 1;
 +
 +  /* True means tool bar has been redisplayed at least once in current
 +     session.  */
 +  bool_bf tool_bar_redisplayed_once : 1;
 +
 +  /* Bitfield area ends here.  */
 +
 +  /* Number of lines (rounded up) of tool bar.  REMOVE THIS  */
    int tool_bar_lines;
  
 -  /* Pixel height of tool bar.  */
 +  /* Height of frame internal tool bar in pixels.  */
    int tool_bar_height;
  
    int n_tool_bar_rows;
    /* Cost of deleting n lines on this frame.  */
    int *delete_n_lines_cost;
  
 -  /* Text width of this frame (excluding fringes, scroll bars and
 -     internal border width) and text height (excluding internal border
 -     width) in units of canonical characters.  */
 +  /* Text width of this frame (excluding fringes, vertical scroll bar
 +     and internal border widths) and text height (excluding menu bar,
 +     tool bar, horizontal scroll bar and internal border widths) in
 +     units of canonical characters.  */
    int text_cols, text_lines;
  
 -  /* Total width of this frame (including fringes and scroll bars) in
 +  /* Total width of this frame (including fringes, vertical scroll bar
 +     and internal border widths) and total height (including menu bar,
 +     tool bar, horizontal scroll bar and internal border widths) in
       units of canonical characters.  */
 -  int total_cols;
 +  int total_cols, total_lines;
  
 -  /* Text width of this frame (excluding fringes, scroll bars and
 -     internal border width) and text height (excluding internal border
 -     width) in pixels.  */
 +  /* Text width of this frame (excluding fringes, vertical scroll bar
 +     and internal border widths) and text height (excluding menu bar,
 +     tool bar, horizontal scroll bar and internal border widths) in
 +     pixels.  */
    int text_width, text_height;
  
    /* New text height and width for pending size change.  0 if no change
       text width/height of the frame.  */
    int new_width, new_height;
  
 -  /* Whether new_height and new_width shall be interpreted
 -     in pixels.  */
 -  bool new_pixelwise;
 -
    /* Pixel position of the frame window (x and y offsets in root window).  */
    int left_pos, top_pos;
  
 -  /* Size of the frame window (including internal border widths) in
 -     pixels.  */
 +  /* Total width of this frame (including fringes, vertical scroll bar
 +     and internal border widths) and total height (including internal
 +     menu and tool bars, horizontal scroll bar and internal border
 +     widths) in pixels.  */
    int pixel_width, pixel_height;
  
 -  /* These many pixels are the difference between the outer window (i.e. the
 -     left and top of the window manager decoration) and FRAME_X_WINDOW.  */
 -  int x_pixels_diff, y_pixels_diff;
 -
    /* This is the gravity value for the specified window position.  */
    int win_gravity;
  
       a highlighting is displayed inside the internal border.  */
    int internal_border_width;
  
 -  /* Width of borders between this frame's windows.  */
 -  int right_divider_width;
 -  int bottom_divider_width;
 +  /* Widths of dividers between this frame's windows in pixels.  */
 +  int right_divider_width, bottom_divider_width;
 +
 +  /* Widths of fringes in pixels.  */
 +  int left_fringe_width, right_fringe_width;
 +
 +  /* Total width of fringes reserved for drawing truncation bitmaps,
 +     continuation bitmaps and alike - REMOVE THIS !!!!.    */
 +  int fringe_cols;
 +
 +  /* Number of lines of menu bar.  */
 +  int menu_bar_lines;
 +
 +  /* Pixel height of menubar.  */
 +  int menu_bar_height;
  
    /* Canonical X unit.  Width of default font, in pixels.  */
    int column_width;
    /* Canonical Y unit.  Height of a line, in pixels.  */
    int line_height;
  
 -  /* The output method says how the contents of this frame are
 -     displayed.  It could be using termcap, or using an X window.
 -     This must be the same as the terminal->type. */
 -  enum output_method output_method;
 -
    /* The terminal device that this frame uses.  If this is NULL, then
       the frame has been deleted.  */
    struct terminal *terminal;
  
    /* List of font-drivers available on the frame.  */
    struct font_driver_list *font_driver_list;
 -  /* List of data specific to font-driver and frame, but common to
 -     faces.  */
 -  struct font_data_list *font_data_list;
 -
 -  /* Total width of fringes reserved for drawing truncation bitmaps,
 -     continuation bitmaps and alike.  The width is in canonical char
 -     units of the frame.  This must currently be the case because window
 -     sizes aren't pixel values.  If it weren't the case, we wouldn't be
 -     able to split windows horizontally nicely.  */
 -  int fringe_cols;
 -
 -  /* The extra width (in pixels) currently allotted for fringes.  */
 -  int left_fringe_width, right_fringe_width;
 -
 -  /* See FULLSCREEN_ enum below.  */
 -  enum fullscreen_type want_fullscreen;
 -
 -  /* Number of lines of menu bar.  */
 -  int menu_bar_lines;
 -
 -  /* Pixel height of menubar.  */
 -  int menu_bar_height;
  
  #if defined (HAVE_X_WINDOWS)
    /* Used by x_wait_for_event when watching for an X event on this frame.  */
    int wait_event_type;
  #endif
  
 -#if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \
 -    || defined (HAVE_NS) || defined (USE_GTK)
 -  /* True means using a menu bar that comes from the X toolkit.  */
 -  bool_bf external_menu_bar : 1;
 -#endif
 -
 -  /* Next two bitfields are mutually exclusive.  They might both be
 -     zero if the frame has been made invisible without an icon.  */
 -
 -  /* Nonzero if the frame is currently displayed; we check
 -     it to see if we should bother updating the frame's contents.
 -
 -     On ttys and on Windows NT/9X, to avoid wasting effort updating
 -     visible frames that are actually completely obscured by other
 -     windows on the display, we bend the meaning of visible slightly:
 -     if equal to 2, then the frame is obscured - we still consider
 -     it to be "visible" as seen from lisp, but we don't bother
 -     updating it.  */
 -  unsigned visible : 2;
 -
 -  /* True if the frame is currently iconified.  Do not
 -     set this directly, use SET_FRAME_ICONIFIED instead.  */
 -  bool_bf iconified : 1;
 -
 -  /* True if this frame should be fully redisplayed.  Disables all
 -     optimizations while rebuilding matrices and redrawing.  */
 -  bool_bf garbaged : 1;
 -
 -  /* False means, if this frame has just one window,
 -     show no modeline for that window.  */
 -  bool_bf wants_modeline : 1;
 -
 -  /* True means raise this frame to the top of the heap when selected.  */
 -  bool_bf auto_raise : 1;
 -
 -  /* True means lower this frame to the bottom of the stack when left.  */
 -  bool_bf auto_lower : 1;
 -
 -  /* True if frame's root window can't be split.  */
 -  bool_bf no_split : 1;
 -
 -  /* If this is set, then Emacs won't change the frame name to indicate
 -     the current buffer, etcetera.  If the user explicitly sets the frame
 -     name, this gets set.  If the user sets the name to Qnil, this is
 -     cleared.  */
 -  bool_bf explicit_name : 1;
 -
 -  /* True if size of some window on this frame has changed.  */
 -  bool_bf window_sizes_changed : 1;
 -
 -  /* True if the mouse has moved on this display device
 -     since the last time we checked.  */
 -  bool_bf mouse_moved : 1;
 -
 -  /* True means that the pointer is invisible.  */
 -  bool_bf pointer_invisible : 1;
 -
 -  /* True means that all windows except mini-window and
 -     selected window on this frame have frozen window starts.  */
 -  bool_bf frozen_window_starts : 1;
 -
 -  /* Nonzero if we should actually display the scroll bars on this frame.  */
 -  enum vertical_scroll_bar_type vertical_scroll_bar_type;
 -
    /* What kind of text cursor should we draw in the future?
       This should always be filled_box_cursor or bar_cursor.  */
    enum text_cursor_kinds desired_cursor;
    int config_scroll_bar_width;
    int config_scroll_bar_cols;
  
 +  /* Configured height of the scroll bar, in pixels and in characters.
 +     config_scroll_bar_lines tracks config_scroll_bar_height if the
 +     latter is positive; a zero value in config_scroll_bar_height means
 +     to compute the actual width on the fly, using
 +     config_scroll_bar_lines and the current font width.  */
 +  int config_scroll_bar_height;
 +  int config_scroll_bar_lines;
 +
    /* The baud rate that was used to calculate costs for this frame.  */
    int cost_calculation_baud_rate;
  
@@@ -593,13 -543,11 +593,13 @@@ fset_tool_bar_items (struct frame *f, L
  {
    f->tool_bar_items = val;
  }
 +#ifdef USE_GTK
  INLINE void
  fset_tool_bar_position (struct frame *f, Lisp_Object val)
  {
    f->tool_bar_position = val;
  }
 +#endif /* USE_GTK */
  #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS)
  INLINE void
  fset_tool_bar_window (struct frame *f, Lisp_Object val)
@@@ -734,7 -682,8 +734,7 @@@ default_pixels_per_inch_y (void
  /* Pixel width of frame F.  */
  #define FRAME_PIXEL_WIDTH(f) ((f)->pixel_width)
  
 -/* Pixel height of frame F, including non-toolkit menu bar and
 -   non-toolkit tool bar lines.  */
 +/* Pixel height of frame F.  */
  #define FRAME_PIXEL_HEIGHT(f) ((f)->pixel_height)
  
  /* Width of frame F, measured in canonical character columns,
  #define FRAME_TEXT_WIDTH(f) (f)->text_width
  
  /* Height of frame F, measured in pixels not including the height
 -   for internal borders.  */
 +   for scroll bar and internal borders.  */
  #define FRAME_TEXT_HEIGHT(f) (f)->text_height
  
  /* Number of lines of frame F used for menu bar.
  #define FRAME_EXTERNAL_TOOL_BAR(f) false
  #endif
  
 +/* This is really supported only with GTK.  */
 +#ifdef USE_GTK
 +#define FRAME_TOOL_BAR_POSITION(f) (f)->tool_bar_position
 +#else
 +#define FRAME_TOOL_BAR_POSITION(f) ((void) f, Qtop)
 +#endif
 +
  /* Number of lines of frame F used for the tool-bar.  */
  #define FRAME_TOOL_BAR_LINES(f) (f)->tool_bar_lines
  
  #else
  #define FRAME_EXTERNAL_MENU_BAR(f) false
  #endif
 +
 +/* True if frame F is currently visible.  */
  #define FRAME_VISIBLE_P(f) (f)->visible
  
  /* True if frame F is currently visible but hidden.  */
  #define FRAME_DELETEN_COST(f) (f)->delete_n_lines_cost
  #define FRAME_FOCUS_FRAME(f) f->focus_frame
  
 +#ifdef HAVE_WINDOW_SYSTEM
 +
  /* This frame slot says whether scroll bars are currently enabled for frame F,
     and which side they are on.  */
  #define FRAME_VERTICAL_SCROLL_BAR_TYPE(f) ((f)->vertical_scroll_bar_type)
  #define FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT(f) \
    ((f)->vertical_scroll_bar_type == vertical_scroll_bar_right)
  
 +#else /* not HAVE_WINDOW_SYSTEM */
 +
 +/* If there is no window system, there are no scroll bars.  */
 +#define FRAME_VERTICAL_SCROLL_BAR_TYPE(f) ((void) f, vertical_scroll_bar_none)
 +#define FRAME_HAS_VERTICAL_SCROLL_BARS(f) ((void) f, 0)
 +#define FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT(f) ((void) f, 0)
 +#define FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT(f) ((void) f, 0)
 +
 +#endif /* HAVE_WINDOW_SYSTEM */
 +
 +/* Whether horizontal scroll bars are currently enabled for frame F.  */
 +#if USE_HORIZONTAL_SCROLL_BARS
 +#define FRAME_HAS_HORIZONTAL_SCROLL_BARS(f) \
 +  ((f)->horizontal_scroll_bars)
 +#else
 +#define FRAME_HAS_HORIZONTAL_SCROLL_BARS(f) ((void) f, 0)
 +#endif
 +
  /* Width that a scroll bar in frame F should have, if there is one.
     Measured in pixels.
     If scroll bars are turned off, this is still nonzero.  */
  #define FRAME_CONFIG_SCROLL_BAR_WIDTH(f) ((f)->config_scroll_bar_width)
  
 +/* Height that a scroll bar in frame F should have, if there is one.
 +   Measured in pixels.
 +   If scroll bars are turned off, this is still nonzero.  */
 +#define FRAME_CONFIG_SCROLL_BAR_HEIGHT(f) ((f)->config_scroll_bar_height)
 +
  /* Width that a scroll bar in frame F should have, if there is one.
     Measured in columns (characters).
     If scroll bars are turned off, this is still nonzero.  */
  #define FRAME_CONFIG_SCROLL_BAR_COLS(f) ((f)->config_scroll_bar_cols)
  
 -/* Width of a scroll bar in frame F, measured in columns (characters),
 -   but only if scroll bars are on the left.  If scroll bars are on
 -   the right in this frame, or there are no scroll bars, value is 0.  */
 -
 -#define FRAME_LEFT_SCROLL_BAR_COLS(f)                 \
 -  (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f)         \
 -   ? FRAME_CONFIG_SCROLL_BAR_COLS (f)                 \
 -   : 0)
 +/* Height that a scroll bar in frame F should have, if there is one.
 +   Measured in lines (characters).
 +   If scroll bars are turned off, this is still nonzero.  */
 +#define FRAME_CONFIG_SCROLL_BAR_LINES(f) ((f)->config_scroll_bar_lines)
  
  /* Width of a left scroll bar in frame F, measured in pixels */
 -
  #define FRAME_LEFT_SCROLL_BAR_AREA_WIDTH(f)                           \
    (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f)                         \
     ? FRAME_CONFIG_SCROLL_BAR_WIDTH (f)                                        \
     : 0)
  
 -/* Width of a scroll bar in frame F, measured in columns (characters),
 -   but only if scroll bars are on the right.  If scroll bars are on
 -   the left in this frame, or there are no scroll bars, value is 0.  */
 -
 -#define FRAME_RIGHT_SCROLL_BAR_COLS(f)                        \
 -  (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (f)                \
 -   ? FRAME_CONFIG_SCROLL_BAR_COLS (f)                 \
 -   : 0)
 -
  /* Width of a right scroll bar area in frame F, measured in pixels */
 -
  #define FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH(f)                          \
    (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (f)                                \
     ? FRAME_CONFIG_SCROLL_BAR_WIDTH (f)                                        \
     : 0)
  
 -/* Actual width of a scroll bar in frame F, measured in columns.  */
 +/* Width of a left scroll bar in frame F, measured in columns
 +   (characters), but only if scroll bars are on the left.  If scroll
 +   bars are on the right in this frame, or there are no scroll bars,
 +   value is 0.  */
 +#define FRAME_LEFT_SCROLL_BAR_COLS(f)                 \
 +  (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f)         \
 +   ? FRAME_CONFIG_SCROLL_BAR_COLS (f)                 \
 +   : 0)
  
 -#define FRAME_SCROLL_BAR_COLS(f)                      \
 -  (FRAME_HAS_VERTICAL_SCROLL_BARS (f)                 \
 +/* Width of a right scroll bar in frame F, measured in columns
 +   (characters), but only if scroll bars are on the right.  If scroll
 +   bars are on the left in this frame, or there are no scroll bars,
 +   value is 0.  */
 +#define FRAME_RIGHT_SCROLL_BAR_COLS(f)                        \
 +  (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (f)                \
     ? FRAME_CONFIG_SCROLL_BAR_COLS (f)                 \
     : 0)
  
 -/* Actual width of a scroll bar area in frame F, measured in pixels.  */
 +/* Width of a vertical scroll bar area in frame F, measured in
 +   pixels.  */
 +#define FRAME_SCROLL_BAR_AREA_WIDTH(f)                \
 +  (FRAME_HAS_VERTICAL_SCROLL_BARS (f)         \
 +   ? FRAME_CONFIG_SCROLL_BAR_WIDTH (f)                \
 +   : 0)
  
 -#define FRAME_SCROLL_BAR_AREA_WIDTH(f)                                        \
 -  (FRAME_HAS_VERTICAL_SCROLL_BARS (f)                                 \
 -   ? FRAME_CONFIG_SCROLL_BAR_WIDTH (f)                                        \
 +/* Height of horizontal scroll bar area in frame F, measured in
 +   pixels.  */
 +#define FRAME_SCROLL_BAR_AREA_HEIGHT(f) \
 +  (FRAME_HAS_HORIZONTAL_SCROLL_BARS (f) \
 +   ? FRAME_CONFIG_SCROLL_BAR_HEIGHT (f) \
 +   : 0)
 +
 +/* Width of vertical scroll bar in frame F, measured in columns.  */
 +#define FRAME_SCROLL_BAR_COLS(f)      \
 +  (FRAME_HAS_VERTICAL_SCROLL_BARS (f) \
 +   ? FRAME_CONFIG_SCROLL_BAR_COLS (f) \
 +   : 0)
 +
 +/* Height of horizontal scroll bar in frame F, measured in lines.  */
 +#define FRAME_SCROLL_BAR_LINES(f)     \
 +  (FRAME_HAS_HORIZONTAL_SCROLL_BARS (f) \
 +   ? FRAME_CONFIG_SCROLL_BAR_LINES (f)        \
     : 0)
  
  /* Total width of frame F, in columns (characters),
     including the width used by scroll bars if any.  */
  #define FRAME_TOTAL_COLS(f) ((f)->total_cols)
  
 +/* Total height of frame F, in lines (characters),
 +   including the height used by scroll bars if any.  */
 +#define FRAME_TOTAL_LINES(f) ((f)->total_lines)
 +
  /* Set the character widths of frame F.  WIDTH specifies a nominal
     character text width.  */
  #define SET_FRAME_COLS(f, width)                                      \
                      + FRAME_SCROLL_BAR_COLS (f)                       \
                      + FRAME_FRINGE_COLS (f)))
  
 -/* Set the pixel widths of frame F.  WIDTH specifies a nominal pixel
 -   text width.  */
 +/* Set the character heights of frame F.  HEIGHT specifies a nominal
 +   character text height.  */
 +#define SET_FRAME_LINES(f, height)                                    \
 +  ((f)->text_lines = (height),                                                \
 +   (f)->total_lines = ((height)                                               \
 +                     + FRAME_TOP_MARGIN (f)                           \
 +                     + FRAME_SCROLL_BAR_LINES (f)))
 +
 +/* Set the widths of frame F.  WIDTH specifies a nominal pixel text
 +   width.  */
  #define SET_FRAME_WIDTH(f, width)                                     \
    ((f)->text_width = (width),                                         \
     (f)->pixel_width = ((width)                                                \
                       + FRAME_TOTAL_FRINGE_WIDTH (f)                   \
                       + 2 * FRAME_INTERNAL_BORDER_WIDTH (f)))
  
 -/* Set the pixel heights of frame F.  HEIGHT specifies a nominal pixel
 -   text width.  */
 +/* Set the heights of frame F.  HEIGHT specifies a nominal pixel text
 +   height.  */
  #define SET_FRAME_HEIGHT(f, height)                                   \
    ((f)->text_height = (height),                                               \
     (f)->pixel_height = ((height)                                      \
 -                     + 2 * FRAME_INTERNAL_BORDER_WIDTH (f)))
 +                      + FRAME_TOP_MARGIN_HEIGHT (f)                   \
 +                      + FRAME_SCROLL_BAR_AREA_HEIGHT (f)              \
 +                      + 2 * FRAME_INTERNAL_BORDER_WIDTH (f)))
  
  /* Maximum + 1 legitimate value for FRAME_CURSOR_X.  */
 -
  #define FRAME_CURSOR_X_LIMIT(f) \
    (FRAME_COLS (f) + FRAME_LEFT_SCROLL_BAR_COLS (f))
  
 +/* Nonzero if frame F has scroll bars.  */
  #define FRAME_SCROLL_BARS(f) (f->scroll_bars)
 -
  #define FRAME_CONDEMNED_SCROLL_BARS(f) (f->condemned_scroll_bars)
 +
  #define FRAME_MENU_BAR_ITEMS(f) (f->menu_bar_items)
  #define FRAME_COST_BAUD_RATE(f) ((f)->cost_calculation_baud_rate)
  
        }                                                               \
    } while (false)
  
 +/* Handy macro to construct an argument to Fmodify_frame_parameters.  */
 +
 +#define AUTO_FRAME_ARG(name, parameter, value)        \
 +  AUTO_LIST1 (name, AUTO_CONS_EXPR (parameter, value))
 +
  /* False means there are no visible garbaged frames.  */
  extern bool frame_garbaged;
  
@@@ -1094,11 -975,13 +1094,11 @@@ SET_FRAME_VISIBLE (struct frame *f, in
    (f)->iconified = (eassert (0 <= (i) && (i) <= 1), (i))
  
  extern Lisp_Object selected_frame;
 -extern Lisp_Object Qframep, Qframe_live_p;
 -extern Lisp_Object Qtty, Qtty_type;
 -extern Lisp_Object Qtty_color_mode;
 -extern Lisp_Object Qterminal;
 -extern Lisp_Object Qnoelisp;
  
 -extern void set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
 +#if ! (defined USE_GTK || defined HAVE_NS)
 +extern int frame_default_tool_bar_height;
 +#endif
 +
  extern struct frame *decode_window_system_frame (Lisp_Object);
  extern struct frame *decode_live_frame (Lisp_Object);
  extern struct frame *decode_any_frame (Lisp_Object);
@@@ -1109,18 -992,12 +1109,18 @@@ extern struct frame *make_minibuffer_fr
  extern struct frame *make_frame_without_minibuffer (Lisp_Object,
                                                      struct kboard *,
                                                      Lisp_Object);
 -#endif /* HAVE_WINDOW_SYSTEM */
  extern bool window_system_available (struct frame *);
 +#else /* not HAVE_WINDOW_SYSTEM */
 +#define window_system_available(f) ((void) (f), false)
 +#endif /* HAVE_WINDOW_SYSTEM */
  extern void check_window_system (struct frame *);
 -extern void frame_make_pointer_invisible (void);
 -extern void frame_make_pointer_visible (void);
 +extern void frame_make_pointer_invisible (struct frame *);
 +extern void frame_make_pointer_visible (struct frame *);
  extern Lisp_Object delete_frame (Lisp_Object, Lisp_Object);
 +extern bool frame_inhibit_resize (struct frame *, bool, Lisp_Object);
 +extern void adjust_frame_size (struct frame *, int, int, int, bool, Lisp_Object);
 +extern void frame_size_history_add (struct frame *f, Lisp_Object fun_symbol,
 +                                  int width, int height, Lisp_Object rest);
  
  extern Lisp_Object Vframe_list;
  
  /* Canonical y-unit on frame F.
     This value currently equals the line height of the frame (which is
     the height of the default font of F).  */
 -
  #define FRAME_LINE_HEIGHT(F) ((F)->line_height)
  
  /* Canonical x-unit on frame F.
     This value currently equals the average width of the default font of F.  */
 -
  #define FRAME_COLUMN_WIDTH(F) ((F)->column_width)
  
  /* Pixel width of areas used to display truncation marks, continuation
     units of the frame.  This must currently be the case because window
     sizes aren't pixel values.  If it weren't the case, we wouldn't be
     able to split windows horizontally nicely.  */
 -
  #define FRAME_FRINGE_COLS(F) ((F)->fringe_cols)
  
  /* Pixel-width of the left and right fringe.  */
  /* Convert canonical value X to pixels.  F is the frame whose
     canonical char width is to be used.  X must be a Lisp integer or
     float.  Value is a C integer.  */
 -
  #define FRAME_PIXEL_X_FROM_CANON_X(F, X)              \
    (INTEGERP (X)                                               \
     ? XINT (X) * FRAME_COLUMN_WIDTH (F)                        \
  /* Convert canonical value Y to pixels.  F is the frame whose
     canonical character height is to be used.  X must be a Lisp integer
     or float.  Value is a C integer.  */
 -
  #define FRAME_PIXEL_Y_FROM_CANON_Y(F, Y)              \
    (INTEGERP (Y)                                               \
     ? XINT (Y) * FRAME_LINE_HEIGHT (F)                 \
     canonical character width is to be used.  X is a C integer.  Result
     is a Lisp float if X is not a multiple of the canon width,
     otherwise it's a Lisp integer.  */
 -
  #define FRAME_CANON_X_FROM_PIXEL_X(F, X)                      \
    ((X) % FRAME_COLUMN_WIDTH (F) != 0                          \
     ? make_float ((double) (X) / FRAME_COLUMN_WIDTH (F))               \
     canonical character height is to be used.  Y is a C integer.
     Result is a Lisp float if Y is not a multiple of the canon width,
     otherwise it's a Lisp integer.  */
 -
  #define FRAME_CANON_Y_FROM_PIXEL_Y(F, Y)                      \
    ((Y) % FRAME_LINE_HEIGHT (F)                                        \
     ? make_float ((double) (Y) / FRAME_LINE_HEIGHT (F))                \
  
     Return the upper/left pixel position of the character cell on frame F
     at ROW/COL.  */
 -
  #define FRAME_LINE_TO_PIXEL_Y(f, row)                                 \
    (((row) < FRAME_TOP_MARGIN (f) ? 0 : FRAME_INTERNAL_BORDER_WIDTH (f))       \
     + (row) * FRAME_LINE_HEIGHT (f))
  
  /* Return the pixel width/height of frame F if it has
     COLS columns/LINES rows.  */
 -
  #define FRAME_TEXT_COLS_TO_PIXEL_WIDTH(f, cols) \
 -  (FRAME_COL_TO_PIXEL_X (f, cols)             \
 +  ((cols) * FRAME_COLUMN_WIDTH (f)            \
     + FRAME_SCROLL_BAR_AREA_WIDTH (f)          \
     + FRAME_TOTAL_FRINGE_WIDTH (f)             \
 -   + FRAME_INTERNAL_BORDER_WIDTH (f))
 +   + 2 * FRAME_INTERNAL_BORDER_WIDTH (f))
  
  #define FRAME_TEXT_LINES_TO_PIXEL_HEIGHT(f, lines) \
    ((lines) * FRAME_LINE_HEIGHT (f)               \
 +   + FRAME_TOP_MARGIN_HEIGHT (f)                 \
 +   + FRAME_SCROLL_BAR_AREA_HEIGHT (f)            \
     + 2 * FRAME_INTERNAL_BORDER_WIDTH (f))
  
  /* Return the row/column (zero-based) of the character cell containing
     the pixel on FRAME at Y/X.  */
 -
  #define FRAME_PIXEL_Y_TO_LINE(f, y)                                   \
    (((y) < FRAME_TOP_MARGIN_HEIGHT (f)                                 \
      ? (y)                                                             \
 -    : ((y) < FRAME_TOP_MARGIN_HEIGHT (f) + FRAME_INTERNAL_BORDER_WIDTH (f) \
 -       ? (y) - (FRAME_TOP_MARGIN_HEIGHT (f) + FRAME_INTERNAL_BORDER_WIDTH (f) \
 +    : ((y) < (FRAME_TOP_MARGIN_HEIGHT (f)                             \
 +            + FRAME_INTERNAL_BORDER_WIDTH (f))                        \
 +       ? (y) - (FRAME_TOP_MARGIN_HEIGHT (f)                           \
 +              + FRAME_INTERNAL_BORDER_WIDTH (f)                       \
                /* Arrange for the division to round down.  */          \
                + FRAME_LINE_HEIGHT (f) - 1)                            \
         : (y) - FRAME_INTERNAL_BORDER_WIDTH (f)))                      \
     / FRAME_COLUMN_WIDTH (f))
  
  /* How many columns/rows of text can we fit in WIDTH/HEIGHT pixels on
 -   frame F?  */
 -
 +   frame F (so we round down)?  */
  #define FRAME_PIXEL_WIDTH_TO_TEXT_COLS(f, width)                      \
 -  (FRAME_PIXEL_X_TO_COL (f, ((width)                                  \
 -                           - FRAME_INTERNAL_BORDER_WIDTH (f)          \
 -                           - FRAME_TOTAL_FRINGE_WIDTH (f)             \
 -                           - FRAME_SCROLL_BAR_AREA_WIDTH (f))))       \
 +  (((width)                                                           \
 +    - FRAME_TOTAL_FRINGE_WIDTH (f)                                    \
 +    - FRAME_SCROLL_BAR_AREA_WIDTH (f)                                 \
 +    - 2 * FRAME_INTERNAL_BORDER_WIDTH (f))                            \
 +   / FRAME_COLUMN_WIDTH (f))                                          \
  
  #define FRAME_PIXEL_HEIGHT_TO_TEXT_LINES(f, height)                   \
 -  (FRAME_PIXEL_Y_TO_LINE (f, ((height)                                        \
 -                            - FRAME_INTERNAL_BORDER_WIDTH (f))))
 +  (((height)                                                          \
 +    - FRAME_TOP_MARGIN_HEIGHT (f)                                     \
 +    - FRAME_SCROLL_BAR_AREA_HEIGHT (f)                                        \
 +    - 2 * FRAME_INTERNAL_BORDER_WIDTH (f))                            \
 +   / FRAME_LINE_HEIGHT (f))
  
  /* Return the pixel width/height of frame F with a text size of
     width/height.  */
 -
  #define FRAME_TEXT_TO_PIXEL_WIDTH(f, width)     \
    ((width)                                      \
     + FRAME_SCROLL_BAR_AREA_WIDTH (f)            \
     + 2 * FRAME_INTERNAL_BORDER_WIDTH (f))
  
  #define FRAME_TEXT_TO_PIXEL_HEIGHT(f, height)      \
 -  ((height) + 2 * FRAME_INTERNAL_BORDER_WIDTH (f))
 +  ((height)                                        \
 +   + FRAME_TOP_MARGIN_HEIGHT (f)                   \
 +   + FRAME_SCROLL_BAR_AREA_HEIGHT (f)              \
 +   + 2 * FRAME_INTERNAL_BORDER_WIDTH (f))
  
  /* Return the text width/height of frame F with a pixel size of
     width/height.  */
 -
  #define FRAME_PIXEL_TO_TEXT_WIDTH(f, width)     \
    ((width)                                      \
     - FRAME_SCROLL_BAR_AREA_WIDTH (f)            \
     - 2 * FRAME_INTERNAL_BORDER_WIDTH (f))
  
  #define FRAME_PIXEL_TO_TEXT_HEIGHT(f, height)         \
 -  ((height) - 2 * FRAME_INTERNAL_BORDER_WIDTH (f))
 +  ((height)                                           \
 +   - FRAME_TOP_MARGIN_HEIGHT (f)                      \
 +   - FRAME_SCROLL_BAR_AREA_HEIGHT (f)                 \
 +   - 2 * FRAME_INTERNAL_BORDER_WIDTH (f))
  
 -/* Value is the smallest width of any character in any font on frame F.  */
 +/* Return the width/height reserved for the windows of frame F.  */
 +#define FRAME_WINDOWS_WIDTH(f)                        \
 +  (FRAME_PIXEL_WIDTH (f)                      \
 +   - 2 * FRAME_INTERNAL_BORDER_WIDTH (f))
  
 +#define FRAME_WINDOWS_HEIGHT(f)                       \
 +  (FRAME_PIXEL_HEIGHT (f)                     \
 +   - FRAME_TOP_MARGIN_HEIGHT (f)              \
 +   - 2 * FRAME_INTERNAL_BORDER_WIDTH (f))
 +
 +/* Value is the smallest width of any character in any font on frame F.  */
  #define FRAME_SMALLEST_CHAR_WIDTH(f)          \
    FRAME_DISPLAY_INFO (f)->smallest_char_width
  
  /* Value is the smallest height of any font on frame F.  */
 -
  #define FRAME_SMALLEST_FONT_HEIGHT(f)         \
    FRAME_DISPLAY_INFO (f)->smallest_font_height
  
                                Frame Parameters
   ***********************************************************************/
  
 -extern Lisp_Object Qauto_raise, Qauto_lower;
 -extern Lisp_Object Qborder_color, Qborder_width;
 -extern Lisp_Object Qbuffer_predicate;
 -extern Lisp_Object Qcursor_color, Qcursor_type;
 -extern Lisp_Object Qfont;
 -extern Lisp_Object Qbackground_color, Qforeground_color;
 -extern Lisp_Object Qicon, Qicon_name, Qicon_type, Qicon_left, Qicon_top;
 -extern Lisp_Object Qinternal_border_width;
 -extern Lisp_Object Qright_divider_width, Qbottom_divider_width;
 -extern Lisp_Object Qtooltip;
 -extern Lisp_Object Qmenu_bar_lines, Qtool_bar_lines, Qtool_bar_position;
 -extern Lisp_Object Qmouse_color;
 -extern Lisp_Object Qname, Qtitle;
 -extern Lisp_Object Qparent_id;
 -extern Lisp_Object Qunsplittable, Qvisibility;
 -extern Lisp_Object Qscroll_bar_width, Qvertical_scroll_bars;
 -extern Lisp_Object Qscroll_bar_foreground, Qscroll_bar_background;
 -extern Lisp_Object Qscreen_gamma;
 -extern Lisp_Object Qline_spacing;
 -extern Lisp_Object Qwait_for_wm;
 -extern Lisp_Object Qfullscreen;
 -extern Lisp_Object Qfullwidth, Qfullheight, Qfullboth, Qmaximized;
 -extern Lisp_Object Qsticky;
 -extern Lisp_Object Qfont_backend;
 -extern Lisp_Object Qalpha;
 -
 -extern Lisp_Object Qleft_fringe, Qright_fringe;
 -extern Lisp_Object Qheight, Qwidth;
 -extern Lisp_Object Qminibuffer, Qmodeline;
 -extern Lisp_Object Qx, Qw32, Qpc, Qns;
 -extern Lisp_Object Qvisible;
 -extern Lisp_Object Qdisplay_type;
 -
 -extern Lisp_Object Qx_resource_name;
 -
 -extern Lisp_Object Qleft, Qright, Qtop, Qbox, Qbottom;
 -extern Lisp_Object Qdisplay;
 -
 -extern Lisp_Object Qrun_hook_with_args;
 -
  #ifdef HAVE_WINDOW_SYSTEM
  
  /* The class of this X application.  */
  #define EMACS_CLASS "Emacs"
  
 -/* These are in xterm.c, w32term.c, etc.  */
 -
  extern void x_set_scroll_bar_default_width (struct frame *);
 +extern void x_set_scroll_bar_default_height (struct frame *);
  extern void x_set_offset (struct frame *, int, int, int);
  extern void x_wm_set_size_hint (struct frame *f, long flags, bool user_position);
 -
  extern Lisp_Object x_new_font (struct frame *, Lisp_Object, int);
 -
 -
 -extern Lisp_Object Qface_set_after_frame_default;
 -
 -#ifdef HAVE_NTGUI
 -extern void x_fullscreen_adjust (struct frame *f, int *, int *,
 -                                 int *, int *);
 -#endif
 -
  extern void x_set_frame_parameters (struct frame *, Lisp_Object);
 -
  extern void x_set_fullscreen (struct frame *, Lisp_Object, Lisp_Object);
  extern void x_set_line_spacing (struct frame *, Lisp_Object, Lisp_Object);
  extern void x_set_screen_gamma (struct frame *, Lisp_Object, Lisp_Object);
  extern void x_set_font (struct frame *, Lisp_Object, Lisp_Object);
  extern void x_set_font_backend (struct frame *, Lisp_Object, Lisp_Object);
 -extern void x_set_fringe_width (struct frame *, Lisp_Object, Lisp_Object);
 +extern void x_set_left_fringe (struct frame *, Lisp_Object, Lisp_Object);
 +extern void x_set_right_fringe (struct frame *, Lisp_Object, Lisp_Object);
  extern void x_set_border_width (struct frame *, Lisp_Object, Lisp_Object);
 -extern void x_set_internal_border_width (struct frame *, Lisp_Object,
 -                                         Lisp_Object);
  extern void x_set_right_divider_width (struct frame *, Lisp_Object,
                                       Lisp_Object);
  extern void x_set_bottom_divider_width (struct frame *, Lisp_Object,
@@@ -1371,10 -1292,10 +1371,10 @@@ extern void x_set_visibility (struct fr
  extern void x_set_autoraise (struct frame *, Lisp_Object, Lisp_Object);
  extern void x_set_autolower (struct frame *, Lisp_Object, Lisp_Object);
  extern void x_set_unsplittable (struct frame *, Lisp_Object, Lisp_Object);
 -extern void x_set_vertical_scroll_bars (struct frame *, Lisp_Object,
 -                                        Lisp_Object);
 -extern void x_set_scroll_bar_width (struct frame *, Lisp_Object,
 -                                    Lisp_Object);
 +extern void x_set_vertical_scroll_bars (struct frame *, Lisp_Object, Lisp_Object);
 +extern void x_set_horizontal_scroll_bars (struct frame *, Lisp_Object, Lisp_Object);
 +extern void x_set_scroll_bar_width (struct frame *, Lisp_Object, Lisp_Object);
 +extern void x_set_scroll_bar_height (struct frame *, Lisp_Object, Lisp_Object);
  
  extern long x_figure_window_size (struct frame *, Lisp_Object, bool);
  
@@@ -1389,14 -1310,17 +1389,14 @@@ extern Lisp_Object display_x_get_resour
                                           Lisp_Object subclass);
  
  extern void set_frame_menubar (struct frame *f, bool first_time, bool deep_p);
 -extern void x_set_window_size (struct frame *f, int change_grav,
 +extern void x_set_window_size (struct frame *f, bool change_gravity,
                               int width, int height, bool pixelwise);
  extern Lisp_Object x_get_focus_frame (struct frame *);
 -extern void x_set_mouse_position (struct frame *f, int h, int v);
 -extern void x_set_mouse_pixel_position (struct frame *f, int pix_x, int pix_y);
 +extern void frame_set_mouse_pixel_position (struct frame *f, int pix_x, int pix_y);
  extern void x_make_frame_visible (struct frame *f);
  extern void x_make_frame_invisible (struct frame *f);
  extern void x_iconify_frame (struct frame *f);
  extern void x_set_frame_alpha (struct frame *f);
 -extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
 -extern void x_set_tool_bar_lines (struct frame *, Lisp_Object, Lisp_Object);
  extern void x_activate_menubar (struct frame *);
  extern void x_real_positions (struct frame *, int *, int *);
  extern void free_frame_menubar (struct frame *);
@@@ -1416,7 -1340,7 +1416,7 @@@ extern void x_focus_frame (struct fram
  
  #ifndef HAVE_NS
  
 -extern int x_bitmap_icon (struct frame *, Lisp_Object);
 +extern bool x_bitmap_icon (struct frame *, Lisp_Object);
  
  /* Set F's bitmap icon, if specified among F's parameters.  */
  
@@@ -1425,11 -1349,12 +1425,11 @@@ x_set_bitmap_icon (struct frame *f
  {
    Lisp_Object obj = assq_no_quit (Qicon_type, f->param_alist);
  
-   if (CONSP (obj))
+   if (CONSP (obj) && !NILP (XCDR (obj)))
      x_bitmap_icon (f, XCDR (obj));
  }
  
  #endif /* !HAVE_NS */
 -
  #endif /* HAVE_WINDOW_SYSTEM */
  
  INLINE void
@@@ -1465,11 -1390,4 +1465,11 @@@ extern Lisp_Object make_monitor_attribu
  
  INLINE_HEADER_END
  
 +/* Suppress -Wsuggest-attribute=const if there are no scroll bars.
 +   This is for functions like x_set_horizontal_scroll_bars that have
 +   no effect in this case.  */
 +#if ! USE_HORIZONTAL_SCROLL_BARS && 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
 +# pragma GCC diagnostic ignored "-Wsuggest-attribute=const"
 +#endif
 +
  #endif /* not EMACS_FRAME_H */