]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from origin/emacs-24
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 3 Mar 2015 22:29:22 +0000 (14:29 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 3 Mar 2015 22:29:22 +0000 (14:29 -0800)
ec26c23 authors.el: Add missing ignored and renamed files
e589765 A more thorough fix for bug#19307
4e8d586 Fix last commit
d6fee01 Tramp: Don't use a tempfile for ControlPath.
27e11c0 Fix display of overlay strings with faces after ellipsis  (Bug#19307)
e9a7e10 Fix redrawing of mode lines when exposed  (Bug#19721)
50f3811 net/tramp.el (tramp-ssh-controlmaster-options): Use "%C"

Conflicts:
lisp/ChangeLog
src/ChangeLog
src/xdisp.c

1  2 
admin/authors.el
lisp/ChangeLog
lisp/net/tramp.el
src/ChangeLog
src/dispnew.c
src/xdisp.c

index afab6f0e1e804c728b66bf729440323b8031daf5,0000000000000000000000000000000000000000..d214ff281b7af714d324288136c67d71b6684de3
mode 100644,000000..100644
--- /dev/null
@@@ -1,1426 -1,0 +1,1428 @@@
 +;;; authors.el --- utility for maintaining Emacs's AUTHORS file -*-coding: utf-8 -*-
 +
 +;; Copyright (C) 2000-2015 Free Software Foundation, Inc.
 +
 +;; Author: Gerd Moellmann <gerd@gnu.org>
 +;; Maintainer: Kim F. Storm <storm@cua.dk>
 +;; Keywords: maint
 +;; Package: emacs
 +
 +;; This file is part of GNU Emacs.
 +
 +;; GNU Emacs is free software: you can redistribute it and/or modify
 +;; it under the terms of the GNU General Public License as published by
 +;; the Free Software Foundation, either version 3 of the License, or
 +;; (at your option) any later version.
 +
 +;; GNU Emacs is distributed in the hope that it will be useful,
 +;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +;; GNU General Public License for more details.
 +
 +;; You should have received a copy of the GNU General Public License
 +;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 +
 +;;; Commentary:
 +
 +;; Use M-x authors RET to create an *Authors* buffer that can used as
 +;; or merged with Emacs's AUTHORS file.
 +
 +;;; Code:
 +
 +(defvar authors-coding-system 'utf-8
 +  "Coding system used in the AUTHORS file.")
 +
 +(defconst authors-many-files 20
 +  "Maximum number of files for which to print individual information.
 +If an author has modified more files, only the names of the most
 +frequently modified files are printed and a count of the additional
 +files.")
 +
 +(defconst authors-aliases
 +  '(
 +    (nil "A\\. N\\. Other")  ; unknown author 2014-12-03, later removed
 +    ("Aaron S. Hawley" "Aaron Hawley")
 +    ("Alexandru Harsanyi" "Alex Harsanyi")
 +    ("Andrew Csillag" "Drew Csillag")
 +    ("Anna M. Bigatti" "Anna Bigatti")
 +    ("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc."
 +     "Barry A. Warsaw, ITB" "Barry Warsaw")
 +    ("Bill Carpenter" "WJ Carpenter")
 +    ("Bill Mann" "William F. Mann")
 +    ("Bill Rozas" "Guillermo J. Rozas")
 +    ("Björn Torkelsson" "Bjorn Torkelsson")
 +    ("Brian Fox" "Brian J. Fox")
 +    ("Brian P Templeton" "BT Templeton")
 +    ("Brian Sniffen" "Brian T. Sniffen")
 +    ("David Abrahams" "Dave Abrahams")
 +    ("David J. Biesack" "David Biesack")
 +    ("David De La Harpe Golden" "David Golden")
 +    ("David Gillespie" "Dave Gillespie")
 +    ("David Kågedal" "David K..edal")
 +    ("David M. Koppelman" "David Koppelman")
 +    ("David M. Smith" "David Smith" "David M Smith")
 +    ("David O'Toole" "David T. O'Toole")
 +    ("Deepak Goel" "D. Goel")
 +    ("Ed L. Cashin" "Ed L Cashin")
 +    ("Edward M. Reingold" "Ed\\(ward\\( M\\)?\\)? Reingold" "Reingold Edward M")
 +    ("Emilio C. Lopes" "Emilio Lopes")
 +    ("Eric M. Ludlam" "Eric Ludlam")
 +    ("Eric S. Raymond" "Eric Raymond")
 +    ("Fabián Ezequiel Gallina" "Fabian Ezequiel Gallina" "Fabi.n E\\. Gallina")
 +    ("Francis J. Wright" "Dr Francis J. Wright" "Francis Wright")
 +    ("François Pinard" "Francois Pinard")
 +    ("Francesco Potortì" "Francesco Potorti" "Francesco Potorti`")
 +    ("Frederic Pierresteguy" "Fred Pierresteguy")
 +    ("Gerd Möllmann" "Gerd Moellmann")
 +    ("Hallvard B. Furuseth" "Hallvard B Furuseth" "Hallvard Furuseth")
 +    ("Hrvoje Nikšić" "Hrvoje Niksic")
 +    ;; lisp/org/ChangeLog 2010-11-11.
 +    (nil "aaa bbb")
 +    (nil "Code Extracted") ; lisp/newcomment.el's "Author:" header
 +    ("Jaeyoun Chung" "Jae-youn Chung" "Jae-you Chung" "Chung Jae-youn")
 +    ("Jan Djärv" "Jan D." "Jan Djarv")
 +    ("Jay K. Adams" "Jay Adams")
 +    ("Jérôme Marant" "Jérôme Marant" "Jerome Marant")
 +    ("Jens-Ulrik Holger Petersen" "Jens-Ulrik Petersen")
 +    ("Jeremy Bertram Maitin-Shepard" "Jeremy Maitin-Shepard")
 +    ("Johan Bockgård" "Johan Bockgard")
 +    ("John J Foerch" "John Foerch")
 +    ("John W. Eaton" "John Eaton")
 +    ("Jonathan I. Kamens" "Jonathan Kamens")
 +    ("Jorgen Schäfer" "Jorgen Schaefer")
 +    ("Joseph Arceneaux" "Joe Arceneaux")
 +    ("Joseph M. Kelsey" "Joe Kelsey") ; FIXME ?
 +    ("Juan León Lahoz García" "Juan-Leon Lahoz Garcia")
 +    ("Jürgen Hötzel" "Juergen Hoetzel")
 +    ("K. Shane Hartman" "Shane Hartman")
 +    ("Kai Großjohann" "Kai Grossjohann")
 +    ("Karl Berry" "K. Berry")
 +    ("Károly Lőrentey" "Károly Lőrentey" "Lőrentey Károly")
 +    ("Kazushi Marukawa" "Kazushi (Jam) Marukawa")
 +    ("Ken Manheimer" "Kenneth Manheimer")
 +    ("Kenichi Handa" "Ken'ichi Handa" "Kenichi HANDA" "K\\. Handa")
 +    ("Kevin Greiner" "Kevin J. Greiner")
 +    ("Kim F. Storm" "Kim Storm")
 +    ("Kyle Jones" "Kyle E. Jones")
 +    ("Lars Magne Ingebrigtsen" "Lars Ingebrigtsen")
 +    ("Marcus G. Daniels" "Marcus Daniels")
 +    ("Mark D. Baushke" "Mark D Baushke")
 +    ("Mark E. Shoulson" "Mark Shoulson")
 +    ("Marko Kohtala" "Kohtala Marko")
 +    ("Agustín Martín" "Agustin Martin" "Agustín Martín Domingo")
 +    ("Martin Lorentzon" "Martin Lorentzson")
 +    ("Matt Swift" "Matthew Swift")
 +    ("Maxime Edouard Robert Froumentin" "Max Froumentin")
 +    ("Michael R. Mauger" "Michael Mauger")
 +    ("Michael D. Ernst" "Michael Ernst")
 +    ("Michaël Cadilhac" "Michael Cadilhac")
 +    ("Michael I. Bushnell" "Michael I Bushnell" "Michael I. Bushnell, p/BSG")
 +    ("Michael R. Cook" "Michael Cook")
 +    ("Michael Sperber" "Michael Sperber \\[Mr. Preprocessor\\]")
 +    ("Mikio Nakajima" "Nakajima Mikio")
 +    ("Nelson Jose dos Santos Ferreira" "Nelson Ferreira")
 +    ("Noorul Islam" "Noorul Islam K M")
 +;;;    ("Tetsurou Okazaki" "OKAZAKI Tetsurou") ; FIXME?
 +    ("Paul Eggert" "Paul R\\. Eggert")
 +    ("Pavel Janík" "Pavel Janík Ml." "Pavel Janik Ml." "Pavel Janik")
 +    ("Pavel Kobiakov" "Pavel Kobyakov")
 +    ("Per Abrahamsen" "Per Abhiddenware")
 +    ("Per Starbäck" "Per Starback")
 +    ("Peter J. Weisberg" "PJ Weisberg")
 +    ("Peter S. Galbraith" "Peter S Galbraith" "Peter Galbraith")
 +    ("Peter Runestig" "Peter 'luna' Runestig")
 +    ("Piotr Zieliński" "Piotr Zielinski")
 +    ("Rainer Schöpf" "Rainer Schoepf")
 +    ("Raja R. Harinath" "Raja R Harinath")
 +    ("Richard G. Bielawski" "Richard G Bielawski" "Richard Bielawski")
 +    ("Richard King" "Dick King")
 +    ("Richard M. Stallman" "Richard Stallman" "rms@gnu.org")
 +    ("Robert J. Chassell" "Bob Chassell")
 +    ("Roberto Huelga Díaz" "Roberto Huelga")
 +    ("Roland B. Roberts" "Roland B Roberts" "Roland Roberts")
 +    ("Rui-Tao Dong" "Rui-Tao Dong ~{6-HpLN~}")
 +    ("Sacha Chua" "Sandra Jean Chua")
 +    ("Sam Steingold" "Sam Shteingold")
 +    ("Satyaki Das" "Indexed search by Satyaki Das")
 +    ("Sébastien Vauban" "Sebastien Vauban")
 +    ("Sergey Litvinov" "Litvinov Sergey")
 +    ;; There are other Stefans.
 +;;;    ("Stefan Monnier" "Stefan")
 +    ("Steven L. Baur" "SL Baur" "Steven L Baur")
 +    ("Stewart M. Clamen" "Stewart Clamen")
 +    ("Stuart D. Herring" "Stuart Herring" "Davis Herring")
 +    ("T.V. Raman" "T\\. V\\. Raman")
 +    ("Taichi Kawabata" "KAWABATA,? Taichi")
 +    ("Takaaki Ota" "Tak Ota")
 +    ("Takahashi Naoto" "Naoto Takahashi")
 +    ("Teodor Zlatanov" "Ted Zlatanov")
 +    ("Thomas Dye" "Tom Dye")
 +    ("Thomas Horsley" "Tom Horsley")  ; FIXME ?
 +    ("Thomas Wurgler" "Tom Wurgler")
 +    ("Toby Cubitt" "Toby S\\. Cubitt")
 +    ("Tomohiko Morioka" "MORIOKA Tomohiko")
 +    ("Torbjörn Axelsson" "Torbjvrn Axelsson")
 +    ("Torbjörn Einarsson" "Torbj.*rn Einarsson")
 +    ("Toru Tomabechi" "Toru TOMABECHI")
 +    ("Tsugutomo Enami" "enami tsugutomo")
 +    ("Ulrich Müller" "Ulrich Mueller")
 +    ("Vincent Del Vecchio" "Vince Del Vecchio")
 +    ("William M. Perry" "Bill Perry")
 +    ("Wlodzimierz Bzyl" "W.*dek Bzyl")
 +    ("Yoni Rabkin" "Yoni Rabkin Katzenell")
 +    ("Yoshinori Koseki" "KOSEKI Yoshinori" "小関 吉則")
 +    ("Yutaka NIIBE" "NIIBE Yutaka")
 +    )
 +  "Alist of author aliases.
 +
 +Each entry is of the form (REALNAME REGEXP...).  If an author's name
 +matches one of the REGEXPs, use REALNAME instead.
 +If REALNAME is nil, ignore that author.")
 +
 +;; FIXME seems it would be less fragile to check for O', Mc, etc.
 +(defconst authors-fixed-case
 +  '("Barry O'Reilly"
 +    "Brian van den Broek"
 +    "Bryan O'Sullivan"
 +    "Christian von Roques"
 +    "Christophe de Dinechin"
 +    "Craig McDaniel"
 +    "Daniel LaLiberte"
 +    "David J. MacKenzie"
 +    "David McCabe"
 +    "David O'Toole"
 +    "Devon Sean McCullough"
 +    "Dominique de Waleffe"
 +    "Edward O'Connor"
 +    "Exal de Jesus Garcia Carrillo"
 +    "George McNinch"
 +    "Greg McGary"
 +    "Hans de Graaff"
 +    "Ivan Vilata i Balaguer"
 +    "Jae-hyeon Park"
 +    "James TD Smith"
 +    "Jay McCarthy"
 +    "Joel N. Weber II"
 +    "Matt McClure"
 +    "Mike McLean"
 +    "Michael McNamara"
 +    "Mike McEwan"
 +    "Nelson Jose dos Santos Ferreira"
 +    "Peter von der Ahe"
 +    "Peter O'Gorman"
 +    "Piet van Oostrum"
 +    "Roland McGrath"
 +    "Santiago Payà i Miralta"
 +    "Sean O'Halpin"
 +    "Sean O'Rourke"
 +    "Shun-ichi Goto"
 +    "Thomas DeWeese"
 +    "Tijs van Bakel"
 +    "Yu-ji Hosokawa")
 +  "List of authors whose names cannot be simply capitalized.")
 +
 +(defvar authors-public-domain-files
 +  '("emerge\\.el"
 +    "vi\\.el"
 +    "feedmail\\.el"
 +    "mailpost\\.el"
 +    "hanoi\\.el"
 +    "meese\\.el"
 +    "studly\\.el"
 +    "modula2\\.el"
 +    "nnmaildir\\.el"
 +    "nnil\\.el"
 +    "b2m\\.c"
 +    "unexhp9k800\\.c"
 +    "emacsclient\\.1"
 +    "check-doc-strings")
 +  "List of regexps matching files for which the FSF doesn't need papers.")
 +
 +
 +(defvar authors-obsolete-files-regexps
 +  '(".*loaddefs.el$"                  ; not obsolete, but auto-generated
 +    "\\.\\(bzr\\|cvs\\|git\\)ignore$"         ; obsolete or uninteresting
 +    "\\.arch-inventory$"
 +    "automated/data/"            ; not interesting
 +    ;; TODO lib/? Matches other things?
 +    "build-aux/" "m4/" "Emacs.xcodeproj" "mapfiles" "\\.map\\'"
 +    "preferences\\.\\(nib\\|gorm\\)"
 +    ;; Generated files that have since been removed.
 +    "\\(refcard\\(-de\\|-pl\\)?\\|calccard\\|dired-ref\\|orgcard\\|\
 +gnus-booklet\\|fr-drdref\\)\\.p\\(df\\|s\\)\\'")
 +  "List of regexps matching obsolete files.
 +Changes to files matching one of the regexps in this list are not listed.")
 +
 +(defconst authors-no-scan-regexps
 +  '("etc/nxml/"
 +    "automated/data/")
 +  "Lists of regexps matching files not to scan for authorship.")
 +
 +(defconst authors-ignored-files
 +  '("external-lisp"
 +    "lock" "share-lib" "local-lisp"
 +    "noleim-Makefile.in"
 +    "NEWS" "ORDERS" "PROBLEMS" "FAQ" "AUTHORS" "FOR-RELEASE" "TODO" "todo"
 +    "MACHINES" "SERVICE"
 +    "README.unicode" "README.multi-tty" "TUTORIAL.translators"
 +    "NEWS.unicode" "COPYING.DJ" "Makefile.old" "Makefile.am"
 +    "NEWS.1" "OOOOONEWS...OONEWS" "OOOONEWS" "etc/NEWS"
 +    "NEWS.1-17" "NEWS.18" "NEWS.19" "NEWS.20" "NEWS.21" "NEWS.22"
 +    "MAINTAINERS" "MH-E-NEWS"
 +    "install.sh" "install-sh" "missing" "mkinstalldirs"
 +    "termcap.dat" "termcap.src" "termcap.ucb" "termcap"
 +    "ChangeLog.nextstep" "Emacs.clr" "spec.txt"
 +    "gfdl.1"
 +    "texi/Makefile.in"
 +    "Imakefile" "icons/sink.ico" "aixcc.lex"
 +    "nxml/char-name/unicode"
 +    "spec.txt"
 +    "js2-mode.el"      ; only installed very briefly, replaced by js.el
 +    ;; In the old imported lisp/url ChangeLog, but never in Emacs.
 +    "mule-sysdp.el"
 +    ;; Only briefly present.
 +    "tests/gnustest-nntp.el" "tests/gnustest-registry.el"
 +    "cedet/tests/testtemplates.cpp"
 +    "cedet/tests/testusing.cpp"
 +    "cedet/tests/scopetest.cpp"
 +    "cedet/tests/scopetest.java"
 +    "cedet/tests/test.cpp"
 +    "cedet/tests/test.py"
 +    "cedet/tests/teststruct.cpp"
 +    "*.el"
 +    ;; Autogen:
 +    "cus-load.el" "finder-inf.el" "ldefs-boot.el" "loaddefs-boot.el"
 +    "compile" "config.guess" "config.sub" "depcomp"
 +    "autogen/compile" "autogen/config.guess" "autogen/config.in"
 +    "autogen/config.sub" "autogen/depcomp" "autogen/install-sh"
 +    "autogen/missing" "autogen"
 +    "autogen/copy_autogen" ; not generated, but trivial and now removed
 +    "dir_top"
 +    ;; Only existed briefly, then renamed:
 +    "images/icons/allout-widgets-dark-bg"
 +    "images/icons/allout-widgets-light-bg"
 +    ;; Never had any meaningful changes logged, now deleted:
 +    "lib/stdarg.in.h" "lib/stdbool.in.h"
 +    "unidata/bidimirror.awk" "unidata/biditype.awk"
 +    "split-man" "Xkeymap.txt" "ms-7bkermit" "ulimit.hack"
 +    "gnu-hp300" "refcard.bit" "ledit.l" "forms.README" "forms-d2.dat"
 +    "CXTERM-DIC/PY.tit" "CXTERM-DIC/ZIRANMA.tit"
 +    "CXTERM-DIC/CTLau.tit" "CXTERM-DIC/CTLauB.tit"
 +    "copying.paper" "celibacy.1" "condom.1" "echo.msg" "sex.6"
 +    "COOKIES" "INTERVIEW" "MAILINGLISTS" "MOTIVATION"
 +    "NICKLES.WORTH" "INTERVAL.IDEAS" "RCP"
 +    "3B-MAXMEM" "AIX.DUMP" "SUN-SUPPORT" "XENIX"
 +    "CODINGS" "CHARSETS"
 +    "calc/INSTALL" "calc/Makefile" "calc/README.prev"
 +    "vms-pp.trans" "_emacs" "batcomp.com" "notes/cpp" ; admin/
 +    "notes/BRANCH" "notes/exit-value"
 +    "emacsver.texi.in"
 +    "vpath.sed"
 +    "Cocoa/Emacs.base/Contents/Info.plist"
 +    "Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings"
 +    "GNUstep/Emacs.base/Resources/Info-gnustep.plist"
 +    "GNUstep/Emacs.base/Resources/Emacs.desktop"
 +    "Cocoa/Emacs.base/Contents/Resources/English.lproj"
 +    ;; Only existed briefly, then deleted:
 +    "coccinelle/overlay.cocci" "coccinelle/symbol.cocci"
 +    ;; MH-E stuff not in Emacs:
 +    "import-emacs" "release-utils"
 +    ;; Erc stuff not in Emacs:
 +    "ChangeLog.2001" "ChangeLog.2002" "ChangeLog.2003" "ChangeLog.2004"
 +    "ChangeLog.2005"
 +    "README.extras" "dir-template" "mkChangeLog" "MkChangeLog" "erc-auto.in"
 +    "CREDITS" "HACKING"
 +    "debian/changelog"
 +    "debian/control"
 +    "debian/copyright"
 +    "debian/maint/conffiles"
 +    "debian/maint/conffiles.in"
 +    "debian/maint/postinst"
 +    "debian/maint/postinst.in"
 +    "debian/maint/prerm"
 +    "debian/maint/prerm.in"
 +    "debian/README.Debian"
 +    "debian/README.erc-speak"
 +    "debian/rules"
 +    "debian/scripts/install"
 +    "debian/scripts/install.in"
 +    "debian/scripts/remove"
 +    "debian/scripts/remove.in"
 +    "debian/scripts/startup"
 +    "debian/scripts/startup.erc"
 +    "debian/scripts/startup.erc-speak"
 +    ;; Used to be in admin, not very interesting.
 +    "emacs-pretesters" "make-announcement" "make-changelog-diff"
 +    ;; Textual comments that are not files.
 +    "All" "Version" "Everywhere" "Many" "Various" "files"
 +    ;; Directories.
 +    "vms" "mac" "url" "tree-widget"
++    "info/dir"
 +    )
 +  "List of files and directories to ignore.
 +Changes to files in this list are not listed.")
 +
 +;; List via: find . -name '*.el' | sed 's/.*\///g' | sort | uniq -d
 +;; FIXME It would be better to discover these dynamically.
 +(defconst authors-ambiguous-files
 +  '("Makefile.in"
 +    "makefile.w32-in"
 +    "chart.el"
 +    "cl-lib.el"
 +    "compile.el"
 +    "complete.el"
 +    "cpp.el"
 +    "ctxt.el"
 +    "custom.el"
 +    "cyrillic.el"
 +    "czech.el"
 +    "debug.el"
 +    "dired.el"
 +    "el.el"
 +    "eshell.el"
 +    "ethiopic.el"
 +    "f90.el"
 +    "files.el"
 +    "find.el"
 +    "format.el"
 +    "generic.el"
 +    "georgian.el"
 +    "grammar.el"
 +    "greek.el"
 +    "grep.el"
 +    "hebrew.el"
 +    "imenu.el"
 +    "indian.el"
 +    "info-xref.el"
 +    "japanese.el"
 +    "java.el"
 +    "lao.el"
 +    "linux.el"
 +    "locate.el"
 +    "make.el"
 +    "mode.el"
 +    "mule-util.el"
 +    "python.el"
 +    "rmailmm.el"
 +    "semantic.el"
 +    "shell.el"
 +    "simple.el"
 +    "slovak.el"
 +    "sort.el"
 +    "speedbar.el"
 +    "srecode.el"
 +    "table.el"
 +    "texi.el"
 +    "thai.el"
 +    "thingatpt.el"
 +    "tibetan.el"
 +    "util.el"
 +    "vc-bzr.el"
 +    "wisent.el")
 +  "List of basenames occurring more than once in the source.")
 +
 +;; FIXME :cowrote entries here can be overwritten by :wrote entries
 +;; derived from a file's Author: header (eg mh-e).  This really means
 +;; the Author: header is erroneous.
 +(defconst authors-fixed-entries
 +  '(("Richard M. Stallman" :wrote "[The original GNU Emacs and numerous files]")
 +    ("Joseph Arceneaux" :wrote "xrdb.c")
 +    ;; This refers to the obsolete Willisson (qv) version.
 +;;;    ("Blitz Product Development Corporation" :wrote "ispell.el")
 +    ("Frank Bresz" :wrote "diff.el")
 +    ("David M. Brown" :wrote "array.el")
 +    ;; No longer distributed.
 +;;;    ("Gary Byers" :changed "xenix.h")
 +    ;; No longer distributed: freebsd.h
 +    ;; Only trivial pieces remain, merged into configure.ac.
 +    ("Shawn M. Carey" :wrote "[some early FreeBSD support]")
 +    ;; hp800.h renamed from hp9000s800.h, hpux.h merged into hpux10-20.h.
 +    ;; FIXME overwritten by Author:.
 +    ("Satyaki Das" :cowrote "mh-search.el")
 +    ;; No longer distributed: hp800.h, hpux10-20.h.
 +    ;; Only trivial pieces remain, merged into configure.ac.
 +    ("Eric Decker" :changed "sysdep.c (and other files for HP-UX support)")
 +    ("Lawrence R. Dodd" :cowrote "dired-x.el")
 +    ;; No longer distributed.
 +;;;    ("Viktor Dukhovni" :wrote "unexsunos4.c")
 +    ("Paul Eggert" :wrote "rcs2log") ; "vcdiff"
 +    ("Fred Fish" :changed "unexcoff.c")
 +    ;; No longer distributed.
 +;;;    ("Tim Fleehart" :wrote "makefile.nt")
 +    ("Keith Gabryelski" :wrote "hexl.c")
 +    ("Kevin Gallagher" :wrote "flow-ctrl.el")
 +    ;; Also wrote an earlier version of disp-table.el, since replaced
 +    ;; by Erik Naggum's version; also iso-syntax.el, later renamed to
 +    ;; latin-1.el, since deleted.
 +    ("Howard Gayle" :wrote "casetab.c")
 +    ;; :wrote mh-pick.el, since merged into mh-search.el.
 +    ;; Originally wrote mh-funcs.el, but it has been rewritten since.
 +    ("Stephen Gildea" :wrote "refcard.tex"
 +     :cowrote "mh-funcs.el" "mh-search.el")
 +    ;; cl.texinfo renamed to cl.texi.
 +    ("David Gillespie" :wrote "cl.texi")
 +    ;; No longer distributed: emacsserver.c.
 +    ("Hewlett-Packard" :changed "emacsclient.c" "server.el" "keyboard.c")
 +    ;; No longer distributed.
 +;;;    ("Thomas Horsley" :wrote "cxux.h" "cxux7.h")
 +    ("Indiana University Foundation" :changed "buffer.c" "buffer.h"
 +     "indent.c" "search.c" "xdisp.c" "region-cache.c" "region-cache.h")
 +    ;; ibmrt.h, ibmrt-aix.h no longer distributed.
 +    ("International Business Machines" :changed "emacs.c" "fileio.c"
 +     "process.c" "sysdep.c" "unexcoff.c")
 +    ;; No longer distributed.
 +;;;    ("Ishikawa Chiaki" :changed "aviion.h" "dgux.h")
 +    ;; No longer distributed: ymakefile, intel386.h, mem-limits.h, template.h,
 +    ;; linux.h (was renamed to lignux.h, then to gnu-linux.h, then removed)
 +    ("Michael K. Johnson" :changed "configure.ac" "emacs.c"
 +     "process.c" "sysdep.c" "syssignal.h" "systty.h" "unexcoff.c")
 +    ;; No longer distributed.
 +;;;    ("Kyle Jones" :wrote "mldrag.el")
 +    ("Henry Kautz" :wrote "bib-mode.el")
 +    ;; No longer distributed: vms-pwd.h, vmsfns.c, uaf.h,
 +    ;; dir.h (was renamed to vmsdir.h, then removed)
 +    ("Joseph M. Kelsey" :changed "fileio.c")
 +    ("Sam Kendall" :changed "etags.c" "etags.el")
 +    ;; ack.texi: "We're not using his backquote.el any more."
 +    ("Richard King" :wrote "userlock.el" "filelock.c")
 +    ("Sebastian Kremer" :changed "add-log.el")
 +    ("Mark Lambert" :changed "process.c" "process.h")
 +    ("Aaron Larson" :changed "bibtex.el")
 +    ;; It was :wrote, but it has been rewritten since.
 +    ("James R. Larus" :cowrote "mh-e.el")
 +    ("Lars Lindberg" :changed "dabbrev.el" :cowrote "imenu.el")
 +    ;; No longer distributed: lselect.el.
 +    ("Lucid, Inc." :changed "bytecode.c" "byte-opt.el" "byte-run.el"
 +     "bytecomp.el" "delsel.el" "disass.el" "faces.el" "font-lock.el"
 +     "lmenu.el" "mailabbrev.el" "select.el" "xfaces.c" "xselect.c")
 +    ;; MCC.  No longer distributed: emacsserver.c.
 +    ("Microelectronics and Computer Technology Corporation"
 +     :changed "etags.c" "emacsclient.c" "movemail.c"
 +     "rmail.el" "rmailedit.el" "rmailkwd.el"
 +     "rmailmsc.el" "rmailout.el" "rmailsum.el" "scribe.el"
 +     ;; It was :wrote for xmenu.c, but it has been rewritten since.
 +     "server.el" "lisp.h" "sysdep.c" "unexcoff.c" "xmenu.c")
 +    ("Niall Mansfield" :changed "etags.c")
 +    ("Brian Marick" :cowrote "hideif.el")
 +    ("Marko Kohtala" :changed "info.el")
 +    ("Sidney Markowitz" :changed "doctor.el")
 +    ;; No longer distributed: env.c.
 +    ("Richard Mlynarik" :wrote "ehelp.el")
 +    ("Mosur Mohan" :changed "etags.c")
 +    ("Jeff Morgenthaler" :changed "flow-ctrl.el" "vt200.el" "vt201.el"
 +     "vt220.el" "vt240.el")
 +    ("Motorola" :changed "buff-menu.el")
 +    ("Hiroshi Nakano" :changed "ralloc.c")
 +    ;; File removed in Emacs 24.1.
 +;;;    ("Sundar Narasimhan" :changed "rnewspost.el")
 +    ;; No longer distributed.
 +;;;    ("NeXT, Inc." :wrote "unexnext.c")
 +    ("Mark Neale" :changed "fortran.el")
 +    ;; Renamed from sc.el.
 +    ("Martin Neitzel" :changed "supercite.el")
 +    ("Andrew Oram" :changed "calendar.texi (and other doc files)")
 +    ("Frederic Pierresteguy" :wrote "widget.c")
 +    ("Michael D. Prange" :changed "tex-mode.el")
 +    ;; No longer distributed (dgux5-4r3.h was renamed to dgux5-4-3.h).
 +;;;    ("Paul Reilly" :wrote "gux5-4r2.h" "dgux5-4-3.h")
 +    ("Rob Riepel" :wrote "tpu-edt.doc")
 +    ("Roland B. Roberts" :changed "files.el" "sort.el"
 +     "buffer.h" "callproc.c" "dired.c" "process.c" "sysdep.c" "systty.h")
 +     ;; No longer distributed.
 +;;;     "vmspaths.h" "build.com" "compile.com" "kepteditor.com" "precomp.com"
 +;;;     "vmsproc.el" :wrote "logout.com" "mailemacs.com")
 +;;;    ("Guillermo J. Rozas" :wrote "fakemail.c")
 +    ("Wolfgang Rupprecht" :changed "lisp-mode.el" "loadup.el"
 +     "sort.el" "alloc.c" "callint.c"
 +     ;; config.in renamed from config.h.in, now a generated file.
 +     ;; ecrt0.c renamed from crt0.c, then removed.
 +     "data.c" "fns.c"
 +     "lisp.h" "lread.c" ; "sun3.h" "ymakefile" - no longer distributed
 +     "print.c" :wrote "float-sup.el" "floatfns.c")
 +    ("Schlumberger Technology Corporation" :changed "gud.el")
 +    ;; Replaced by tcl.el.
 +;;;    ("Gregor Schmid" :wrote "tcl-mode.el")
 +    ;; No longer distributed since 24.1.
 +;;;    ("Rainer Schöpf" :wrote "alpha.h" "unexalpha.c")
 +    ;; No longer distributed: emacsserver.c.
 +    ("William Sommerfeld" :wrote "emacsclient.c" "scribe.el")
 +    ;; No longer distributed: emacsserver.c.
 +    ("Leigh Stoller" :changed "emacsclient.c" "server.el")
 +    ("Steve Strassmann" :wrote "spook.el")
 +    ("Shinichirou Sugou" :changed "etags.c")
 +    ;; No longer distributed: emacsserver.c.
 +    ("Sun Microsystems, Inc" :changed "emacsclient.c" "server.el"
 +     :wrote "emacs.icon" "sun.el")
 +    ;; No longer distributed.
 +;;;     "emacstool.1" "emacstool.c" "sun-curs.el"
 +;;;     "sun-fns.el" "sun-mouse.el" "sunfns.c")
 +    ;; Renamed from sc.el.
 +    ("Kayvan Sylvan" :changed "supercite.el")
 +    ;; No longer distributed: emacsserver.c, tcp.c.
 +    ("Spencer Thomas" :changed "emacsclient.c" "server.el"
 +     "dabbrev.el" "unexcoff.c" "gnus.texi")
 +    ("Jonathan Vail" :changed "vc.el")
 +    ;; No longer distributed: usg5-4.h
 +    ("James Van Artsdalen" :changed "unexcoff.c")
 +    ;; No longer distributed: src/makefile.nt, lisp/makefile.nt
 +    ;; winnt.el renamed to w32-fns.el; nt.[ch] to w32.[ch];
 +    ;; ntheap.[ch] to w32heap.[ch]; ntinevt.c to w32inevt.c;
 +    ;; ntproc.c to w32proc.c; ntterm.c to w32term.c;
 +    ;; windowsnt.h to ms-w32.h.
 +    ("Geoff Voelker" :wrote "w32-fns.el" "w32.c" "w32.h" "w32heap.c"
 +     "w32heap.h" "w32inevt.c" "w32proc.c" "w32term.c" "ms-w32.h")
 +    ("Morten Welinder" :wrote "dosfns.c" "[many MS-DOS files]" "msdos.h")
 +    ("Eli Zaretskii" :wrote "bidi.c" "[bidirectional display in xdisp.c]"
 +     "[tty menus in term.c]")
 +    ;; Not using this version any more.
 +;;;    ("Pace Willisson" :wrote "ispell.el")
 +    ;; FIXME overwritten by Author:.
 +    ("Bill Wohler" :cowrote "mh-e.el")
 +    ("Garrett Wollman" :changed "sendmail.el")
 +    ("Dale R. Worley" :changed "mail-extr.el")
 +    ("Jamie Zawinski" :changed "bytecode.c" :wrote "tar-mode.el"
 +     :cowrote "disass.el"))
 +  "Actions taken from the original, manually (un)maintained AUTHORS file.")
 +
 +
 +(defconst authors-valid-file-names
 +  '("aclocal.m4"
 +    "build-ins.in"
 +    "Makefile"
 +    "Makefile.noleim"
 +    "makedist.bat"
 +    "makefile.def"
 +    "makefile.nt"
 +    "ns.mk"
 +    "README"
 +    ;; There were a few of these, not just the generated top-level one.
 +    "configure" "config.h"
 +    "is_exec.c" "sigaction.c"
 +    ;; nt/
 +    "ebuild.bat" "install.bat" "fast-install.bat"
 +    "debug.bat.in" "emacs.bat.in" "addsection.c"
 +    "inc/sys/dir.h" "inc/gettext.h"
 +    ".gdbinit-union"
 +    "alloca.s"
 +    "make-delta"
 +    "config.w95"
 +    "msysconfig.sh"
 +    "emacstool.1"
 +    "align.umax"
 +    "cxux-crt0.s"
 +    "gould-sigvec.s"
 +    "getdate.y"
 +    "ymakefile"
 +    "permute-index" "index.perm"
 +    "ibmrs6000.inp"
 +    "b2m.c" "b2m.1" "b2m.pl" "rcs-checkin.1"
 +    "emacs.bash" "emacs.csh" "ms-kermit"
 +    "emacs.ico"
 +    "emacs21.ico"
 +    "emacs.py" "emacs2.py" "emacs3.py"
 +    "BABYL" "LPF" "LEDIT" "OTHER.EMACSES"
 +    "emacs16_mac.png" "emacs24_mac.png"
 +    "emacs256_mac.png" "emacs32_mac.png"
 +    "emacs48_mac.png" "emacs512_mac.png"
 +    "ps-prin2.ps" "ps-prin3.ps"
 +    "emacs.xbm" "gnu.xpm" "gnus-pointer.xbm" "gnus-pointer.xpm"
 +    ;; Moved from etc/ to etc/images, and/or removed.
 +    "gnus.pbm" "gnus.xbm" "gnus.xpm" "letter.pbm" "letter.xbm" "letter.xpm"
 +    "splash.pbm" "splash.xbm" "splash.xpm" "splash8.xpm"
 +    "images/execute.pbm" "images/execute.xpm" "images/fld-open.pbm"
 +    "images/fld-open.xpm" "images/highlight.pbm" "images/highlight.xpm"
 +    "images/mail.pbm" "images/mail.xpm" "images/mail/alias.pbm"
 +    "images/mail/alias.xpm" "images/mail/refile.pbm"
 +    "images/mail/refile.xpm" "images/page-down.pbm"
 +    "images/page-down.xpm" "images/widen.pbm" "images/widen.xpm"
 +    "images/gnus/bar.xbm" "images/gnus/bar.xpm"
 +    "images/gnus/reverse-smile.xpm"
 +    "notes/commits" "notes/changelogs"
 +    "revdiff"                         ; admin/
 +    "vcdiff" "rcs-checkin" "tindex.pl"
 +    "mainmake" "sed1.inp" "sed2.inp" "sed3.inp" ; msdos/
 +    "mac-fix-env.m"
 +    ;; Deleted vms stuff:
 +    "temacs.opt" "descrip.mms" "compile.com" "link.com"
 +    "compact.el" "fadr.el"
 +    "calc/calc-maint.el"
 +    "emacs-lisp/cl-specs.el"
 +    "emacs-lisp/eieio-comp.el"
 +    "erc-hecomplete.el"
 +    "eshell/esh-maint.el"
 +    "language/persian.el"
 +    "ledit.el" "meese.el" "iswitchb.el" "longlines.el"
 +    "mh-exec.el" "mh-init.el" "mh-customize.el"
 +    "net/zone-mode.el" "xesam.el"
 +    "term/mac-win.el" "sup-mouse.el"
 +    "term/vt102.el" "term/vt201.el" "term/vt220.el" "term/vt300.el"
 +    "term/vt320.el" "term/vt400.el" "term/vt420.el"
 +    "url-https.el"
 +    "org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el"
 +    "org-mks.el" "org-remember.el" "org-xoxo.el" "org-docbook.el"
 +    "org-freemind.el" "ox-jsinfo.el"
 +    "org-exp-blocks.el"                    ; maybe this is ob-exp now? dunno
 +    "org-lparse.el"
 +    "org-special-blocks.el" "org-taskjuggler.el"
 +    "progmodes/cap-words.el"
 +    "w32-common-fns.el"
 +    ;; gnus
 +    "nnwfm.el" "nnlistserv.el" "nnkiboze.el" "nndb.el" "nnsoup.el"
 +    "netrc.el" "password.el" "sasl-cram.el" "sasl-digest.el" "sasl-ntlm.el"
 +    "sasl.el" "dig.el" "dns.el" "hex-util.el" "sha1.el" "md4.el"
 +    "hmac-def.el" "hmac-md5.el" "ntlm.el" "hashcash.el" "smime-ldap.el"
 +    "assistant.el" "gnus-utils.el" "tls.el" "pgg-def.el" "pgg-gpg.el"
 +    "gnus-compat.el" "pgg-parse.el" "pgg-pgp.el" "pgg-pgp5.el" "pgg.el"
 +    "dns-mode.el" "run-at-time.el" "gnus-encrypt.el" "sha1-el.el"
 +    "gnus-gl.el" "gnus.sum.el" "proto-stream.el" "color.el" "color-lab.el"
 +    "eww.el" "shr-color.el" "shr.el" "earcon.el" "gnus-audio.el" "encrypt.el"
 +    "format-spec.el" "gnus-move.el"
 +    ;; doc
 +    "getopt.c" "texindex.c" "news.texi" "vc.texi" "vc2-xtra.texi"
 +    "back.texi" "vol1.texi" "vol2.texi" "elisp-covers.texi" "two.el"
 +    "front-cover-1.texi" "locals.texi" "calendar.texi" "info-stnd.texi"
 +    "tasks.texi"
 +    "advice.texi" "picture.texi" "texinfo.tex"
 +    ;; lwlib:
 +    "dispatch.c" "dispatch.h" "xrdb-cpp.c" "xrdb.c"
 +    "lwlib-Xol.c" "lwlib-Xol.h" "lwlib-Xolmb.c" "lwlib-Xolmb.h"
 +    "lwlib-XolmbP.h"
 +    ;; lib/
 +    "lib/stdio.c" "lib/gl_openssl.h" "lib/sigprocmask.c"
 +    "lib/pthread_sigprocmask.c" "lib/ldtoastr.c" "lib/dummy.c"
 +    "lib/ignore-value.h"
 +    ;; lib-src/
 +    "cvtmail.c" "digest-doc.c" "emacsserver.c" "emacstool.c" "env.c"
 +    "etags-vmslib.c" "fakemail.c" "getdate.c" "getopt.h" "getopt1.c"
 +    "getopt_.h" "getopt_int.h" "gettext.h" "leditcfns.c" "loadst.c"
 +    "make-path.c" "qsort.c" "sorted-doc.c" "tcp.c" "timer.c" "wakeup.c"
 +    "yow.c" "grep-changelog" "grep-changelog.1"
 +    ;; etc/
 +    "emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c"
 +    "test-distrib.c" "testfile"
 +    "tpu-edt.doc"                     ; see below
 +    )
 +  "File names which are valid, but no longer exist (or cannot be found)
 +in the repository.")
 +
 +;; Note that any directory part on the RHS is retained.
 +;; Cf authors-renamed-files-regexps.
 +;; NB So only add a directory if needed to disambiguate.
 +;; FIXME?
 +;; Although perhaps we could let authors-disambiguate-file-name do that?
 +(defconst authors-renamed-files-alist
 +  '(("nt.c" . "w32.c") ("nt.h" . "w32.h")
 +    ("ntheap.c" . "w32heap.c") ("ntheap.h" . "w32heap.h")
 +    ("ntinevt.c" . "w32inevt.c") ("ntinevt.h" . "w32inevt.h")
 +    ("ntproc.c" . "w32proc.c")
 +    ("w32console.c" . "w32term.c")
 +    ("unexnt.c" . "unexw32.c")
 +    ("s/windowsnt.h" . "s/ms-w32.h")
 +    ("s/ms-w32.h" . "inc/ms-w32.h")
 +    ("src/config.h" . "config.h")
 +    ("winnt.el" . "w32-fns.el")
 +    ("linux.h" . "gnu-linux.h")
 +    ("emacs.manifest" . "emacs-x86.manifest")
 +    ("config.emacs" . "configure")
 +    ("configure.in" . "configure.ac")
 +    ("config.h.dist" . "config.in")
 +    ("config.h-dist" . "config.in")
 +    ("config.h.in" . "config.in")
 +    ("debug.bat" . "debug.bat.in")
 +    ("emacs.bat" . "emacs.bat.in")
 +    ;; paths.h.dist -> paths.h-dist -> paths.h.in -> paths.in -> epaths.in.
 +    ("paths.h.dist" . "epaths.in")
 +    ("paths.h-dist" . "epaths.in")
 +    ("paths.h.in" . "epaths.in")
 +    ("paths.in" . "epaths.in")
 +    ("emacs.rc" . "emacs.rc.in")
 +    ("emacsclient.rc" . "emacsclient.rc.in")
 +    ("patch1" . "sed1.inp")
 +    ("INSTALL.MSYS" . "INSTALL")
 +    ("server.c" . "emacsserver.c")
 +    ("lib-src/etags.c" . "etags.c")
 +    ;; msdos/
 +    ("is-exec.c" . "is_exec.c")
 +    ("enriched.doc" . "enriched.txt")
 +    ("GETTING.GNU.SOFTWARE" . "FTP")
 +    ("etc/MACHINES" . "MACHINES")
 +    ("ONEWS" . "NEWS.19")
 +    ("ONEWS.1" . "NEWS.1-17")
 +    ("ONEWS.2" . "NEWS.1-17")
 +    ("ONEWS.3" . "NEWS.18")
 +    ("ONEWS.4" . "NEWS.18")
 +    ("ORDERS.USA" . "ORDERS")
 +    ("EUROPE" . "ORDERS")
 +    ("DIFF" . "OTHER.EMACSES")
 +    ("CCADIFF" . "OTHER.EMACSES")
 +    ("GOSDIFF" . "OTHER.EMACSES")
 +    ;; Moved from lisp/tpu-doc.el to etc/tpu-edt.doc in Emacs 19.29.
 +    ;; Removed in Emacs 19.30, replaced by new file etc/edt-user.doc
 +    ;; (no associated ChangeLog entry).
 +    ("tpu-doc.el" . "tpu-edt.doc")
 +    ("Makefile.in.in" . "Makefile.in")
 +    ("leim-Makefile" . "leim/Makefile")
 +    ("leim-Makefile.in" . "leim/Makefile.in")
 +    ("emacs-lisp/testcover-ses.el" . "tcover-ses.el")
 +    ("emacs-lisp/testcover-unsafep.el" . "tcover-unsafep.el")
 +    ("progmodes/dos.el" . "bat-mode.el")
 +    ;; index and pick merged into search.
 +    ("mh-index.el" . "mh-search.el")
 +    ("mh-pick.el" . "mh-search.el")
 +    ("font-setting.el" . "dynamic-setting.el")
 +    ("help-funs.el" . "help-fns.el")
 +    ("erc-notifications.el" . "erc-desktop-notifications.el")
 +    ("org-complete.el" . "org-pcomplete.el")
 +    ("org-export.el" . "ox.el")               ; ?
 +    ;; Was definitely renamed to org-latex.el, then... ?
 +    ("org-export-latex.el" . "ox-latex.el") ; ?
 +    ("org-exp.el" . "ox.el")              ; ?
 +    ("progmodes/cfengine3.el" . "cfengine.el")
 +    ("progmodes/delphi.el" . "opascal.el")
 +    ("octave-inf.el" . "octave.el")
 +    ("octave-mod.el" . "octave.el")
 +    ("progmodes/octave-inf.el" . "octave.el")
 +    ("progmodes/octave-mod.el" . "octave.el")
 +    ;; Obsolete.
 +    ("emacs-lisp/assoc.el" . "assoc.el")
 +    ("emacs-lisp/cust-print.el" . "cust-print.el")
 +    ("emacs-lisp/gulp.el" . "gulp.el")
 +    ("emulation/crisp.el" . "crisp.el")
 +    ("emulation/tpu-edt.el" . "tpu-edt.el")
 +    ("emulation/tpu-extras.el" . "tpu-extras.el")
 +    ("emulation/vi.el" . "vi.el")
 +    ("emulation/vip.el" . "vip.el")
 +    ("emulation/ws-mode.el" . "ws-mode.el")
 +    ("mail/mailpost.el" . "mailpost.el")
 +    ("play/bruce.el" . "bruce.el")
 +    ("play/yow.el" . "yow.el")
 +    ("patcomp.el" . "patcomp.el")
++    ("emulation/ws-mode.el" . "ws-mode.el")
 +    ;; From lisp to etc/forms.
 +    ("forms-d2.el" . "forms-d2.el")
 +    ("forms-pass.el" . "forms-pass.el")
 +    ;; From lisp/ to etc/nxml.
 +    ("nxml/test.invalid.xml" . "test-invalid.xml")
 +    ("nxml/test.valid.xml" . "test-valid.xml")
 +    ;; The one in lisp is eshell/eshell.el.
 +    ("eshell.el" . "automated/eshell.el")
 +    ("eshell/esh-test.el" . "automated/eshell.el")
 +    ("automated/cl-lib.el" . "automated/cl-lib-tests.el")
 +    ("automated/package-x-test.el" . "automated/package-test.el")
 +    ;; INSTALL-CVS -> .CVS -> .BZR -> .REPO
 +    ("INSTALL-CVS" . "INSTALL.REPO")
 +    ("INSTALL.CVS" . "INSTALL.REPO")
 +    ("INSTALL.BZR" . "INSTALL.REPO")
 +    ("gnus-logo.eps" . "gnus-logo.eps")       ; moved to refcards/
 +    ("build-install" . "build-ins.in")
 +    ("build-install.in" . "build-ins.in")
 +    ("unidata/Makefile" . "unidata/Makefile.in")
 +    ("mac/uvs.el" . "unidata/uvs.el")
 +    ;; Moved from top to etc/
 +    ("CONTRIBUTE" . "CONTRIBUTE")
 +    ("FTP" . "FTP")
 +    ;; Moved from top to build-aux/
 +    ("move-if-change" . "move-if-change")
 +    ("update-subdirs" . "update-subdirs")
 +    ("emacs.tex" . "emacs.texi")
 +    ("faq.texi" . "efaq.texi")
 +    ("major.texi" . "modes.texi")
 +    ("msdog-xtra.texi" . "msdos-xtra.texi")
 +    ("msdog.texi" . "msdos.texi")
 +    ;; And from emacs/ to misc/ and back again.
 +    ("ns-emacs.texi" . "macos.texi")
 +    ("overrides.texi" . "gnus-overrides.texi")
 +    ("xresmini.texi" . "xresources.texi")
 +    ;; Not renamed, but we only have the latter in the Emacs repo.
 +    ("trampver.texi.in" . "trampver.texi")
 +    ;; Renamed with same directory.
 +    ("e/eterm" . "eterm-color")
 +    ("e/eterm.ti" . "eterm-color.ti")
 +    ("README.txt" . "README")
 +    ("emacs.names" . "JOKES")
 +    ("ED.WORSHIP" . "JOKES")
 +    ("GNU.JOKES" . "JOKES")
 +    ("CHARACTERS" . "TODO")
 +    ("images/gnus/mail_send.xpm" . "mail-send.xpm") ; still in images/gnus
 +    ;; Renamed within same directory.
 +    ("schema/xhtml-basic-form.rnc" . "xhtml-bform.rnc" )
 +    ("schema/xhtml-basic-table.rnc" . "xhtml-btable.rnc")
 +    ("schema/xhtml-list.rnc" . "xhtml-lst.rnc")
 +    ("schema/xhtml-target.rnc" . "xhtml-tgt.rnc")
 +    ("schema/xhtml-style.rnc" . "xhtml-xstyle.rnc")
 +    ("schema/docbook-dyntbl.rnc" . "docbk-dyntbl.rnc")
 +    ("schema/docbook-soextbl.rnc" . "docbk-soextbl.rn" )
 +    ("edt-user.doc" . "edt.texi")
 +    ("DEV-NOTES" . "nextstep")
 +    ("org/COPYRIGHT-AND-LICENSE" . "org/README")
 +    ;; Moved to different directories.
 +    ("ctags.1" . "ctags.1")
 +    ("etags.1" . "etags.1")
 +    ("emacs.1" . "emacs.1")
 +    ("emacsclient.1" . "emacsclient.1")
 +    ("icons/emacs21.ico" . "emacs21.ico")
 +    ("ja-dic" . "leim/ja-dic")
 +    ("quail" . "leim/quail")
 +    ;; Moved from autogen/ to admin/.
 +    ("autogen/update_autogen" . "update_autogen")
 +    ;; Moved from etc/ to admin/.
 +    ("grammars" . "grammars")
 +    ;; Moved from lisp/emacs-lisp/ to admin/.
 +    ("emacs-lisp/authors.el" . "authors.el")
 +    ;; From etc to lisp/cedet/semantic/.
 +    ("grammars/bovine-grammar.el" . "bovine/grammar.el")
 +    ("grammars/wisent-grammar.el" . "wisent/grammar.el")
 +    ;; Moved from admin/nt/ to nt/.
 +    ("nt/README.W32" . "README.W32")
 +    ("notes/BRANCH" . "notes/repo")
 +    ("notes/bzr" . "notes/repo")
 +    )
 +  "Alist of files which have been renamed during their lifetime.
 +Elements are (OLDNAME . NEWNAME).")
 +
 +;; Should still test that the renamed file exists.  Does it?
 +;; But it might be relative to a different ChangeLog...
 +;;
 +;; Note that only the basename of the RHS is used.
 +;; Cf authors-renamed-files-alist.
 +(defconst authors-renamed-files-regexps
 +  '(("\\`\\(arg-nonnull\\|c\\+\\+defs\\|warn-on-use\\)\\.h\\'"
 +     "build-aux/snippet/\\&")
 +    ("\\`\\(ebuild\\|emacs\\|install\\|fast-install\\)\\.cmd\\'" "\\1.bat")
 +    ("\\`\\(book-spine\\|cl\\|forms\\|functions\\|gnus\\|sc\\|texinfo\\|vip\\)\
 +\\.texinfo\\'" "\\1.texi")
 +    ("\\`\\(\\(calc\\|org\\|vip\\)card\\|viperCard\\|\
 +\\(\\(cs\\|fr\\|sk\\)-\\)?dired-ref\\|\
 +\\(\\(cs\\|de\\|fr\\|gnus\\|pl\\|pt-br\\|ru\\|sk\\)-\\)?refcard\\|\
 +\\(\\(cs\\|fr\\|sk\\)-\\)?survival\\)\\.tex\\'" "refcards/\\&")
 +    ("\\`refcard-\\(de\\|pl\\)\\.tex\\'" "refcards/\\1-refcard.tex")
 +    ("\\`\\(refcards/\\)?fr-drdref\\.tex\\'" "refcards/fr-dired-ref.tex")
 +    ("^\\(TUTORIAL[^/]*\\)" "tutorials/\\1")
 +    ("\\`themes/dev-\\(tsdh-\\(?:light\\|dark\\)-theme\\.el\\)\\'"
 +     "themes/\\1")
 +    ;; Moved from lisp/toolbar to etc/images.
 +    ("\\`toolbar/\\(back\\|fwd\\|left\\|right\\|up\\)_arrow\
 +\\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/\\1-arrow\\2")
 +    ("\\`toolbar/lc-\\(back\\|fwd\\|left\\|right\\|up\\)_arrow\
 +\\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/low-color/\\1-arrow\\2")
 +    ("\\`toolbar/mail_\\(compose\\|send\\)\\(\\.[xp]bm\\)\\'"
 +     "images/mail/\\1")
 +    ("\\`toolbar/jump_to\\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/jump-to\\1")
 +    ("\\`toolbar/lc-jump_to\\(\\.\\(?:pb\\|xp\\)m\\)\\'"
 +     "images/low-color/jump-to\\1")
 +    ("\\`toolbar/\\(attach\\|cancel\\|close\\|copy\\|cut\\|\
 +diropen\\|exit\\|help\\|home\\|index\\|info\\|mail\\|new\\|open\\|\
 +paste\\|preferences\\|print\\|save\\|saveas\\|search\\|search-replace\\|\
 +spell\\|undo\\)\\(\\.\\(?:pb\\|xp\\)m\\)\\'" "images/\\1\\2")
 +    ("\\`toolbar/gud-\\(break\\|cont\\|down\\|finish\\|print\\|pstar\\|\
 +remove\\|run\\|until\\|up\\|watch\\)\\(\\.\\(?:pb\\|xp\\)m\\)\\'"
 +     "images/gud/\\1\\2")
 +    ("\\`\\(toolbar/gud-\\|images/gud/\\)n\\(i\\)?\\(\\.\\(?:pb\\|xp\\)m\\)\\'"
 +     "images/gud/next\\2\\3")
 +    ("\\`\\(toolbar/gud-\\|images/gud/\\)s\\(i\\)?\\(\\.\\(?:pb\\|xp\\)m\\)\\'"
 +     "images/gud/step\\2\\3")
 +    ("\\`toolbar/lc-\\([-a-z]+\\.xpm\\)\\'" "images/low-color/\\1")
 +    ("^\\(tree-widget/\\(?:default\\|folder\\)/[-a-z]+\\.\\(png\\|xpm\\)\\)$"
 +     "images/\\1")
 +    ("^\\(images/icons/\\)mac\\(emacs\\)_\\([0-9]+\\)\\(\\.png\\)"
 +     "\\1\\2\\3_mac\\4")
 +    ("\\(images/icons/\\)emacs_\\([0-9][0-9]\\)\\.png"
 +     "\\1hicolor/\\2x\\2/apps/emacs.png")
 +    ;; Moved from leim/ to lisp/leim/.
 +    ("\\`quail/[-a-z0-9]+\\.el\\'" "leim/\\&")
 +    ("\\`ja-dic/ja-dic\\.el\\'" "leim/\\&")
 +    ("\\`vc-\\(rcs\\|cvs\\|sccs\\)-hooks\\.el\\'" "vc/vc-\\1.el")
 +    ("\\`vc-\\(annotate\\|arch\\|bzr\\|cvs\\|dav\\|dir\\|dispatcher\\|\
 +git\\|hg\\|hooks\\|mtn\\|rcs\\|sccs\\|svn\\)\\.el\\'" "vc/\\&")
 +    ("\\`ediff-\\(diff\\|help\\|hook\\|init\\|merg\\|mult\\|ptch\\|util\\|\
 +vers\\|wind\\)\\.el\\'" "vc/\\&")
 +    ("\\`pcvs-\\(defs\\|info\\|parse\\|util\\)\\.el\\'" "vc/\\&")
 +    ("\\`\\(add-log\\|compare-w\\|cvs-status\\|diff-mode\\|diff\\|\
 +ediff\\|emerge\\|log-edit\\|log-view\\|pcvs\\|smerge-mode\\|vc\\)\\.el\\'"
 +     "vc/\\&")
 +    ("\\`\\(emacs-lisp/\\)?helpers\\.el\\'" "emacs-lisp/subr-x.el")
 +    ;; I assume this is (essentially) what happened, org/ChangeLog is vague.
 +    ("\\`org-\\(ascii\\|beamer\\|html\\|icalendar\\|jsinfo\\|latex\
 +\\|odt\\|publish\\)\\.el\\'" "ox-\\1.el")
 +    ;; From test/ to test/automated/.
 +    ("comint-testsuite.el" "automated/\\&")
 +    ("\\`\\(bytecomp\\|font-parse\\|icalendar\\|occur\\|newsticker\\)\
 +-testsuite\\.el" "automated/\\1-tests.el")
 +    ("automated/flymake/warnpred/\\(Makefile\\|test\\.\\(?:c\\|pl\\)\\)\\'"
 +     "automated/data/flymake/\\1")
 +    ;; NB lax rules should come last.
 +    ("^m/m-\\(.*\\.h\\)$" "m/\\1" t)
 +    ("^m-\\(.*\\.h\\)$" "\\1" t)
 +    ("^s/s-\\(.*\\.h\\)$" "s/\\1" t)
 +    ("^s-\\(.*\\.h\\)$" "\\1" t)
 +    ("\\.\\(el\\|[ch]\\|x[pb]m\\|pbm\\)\\'" t t)
 +    )
 +  "List of regexps and rewriting rules for renamed files.
 +Elements are (REGEXP REPLACE [LAX]).  If REPLACE is a string, the file
 +name matching REGEXP is replaced by REPLACE using `replace-string'.
 +Otherwise, the file name is accepted as is.
 +Elements with LAX non-nil are only used in `authors-lax-changelogs'.")
 +
 +;; It's really not worth trying to make these old logs fully valid.
 +;; All the obvious real errors are gone.
 +;; The main issue is _lots_ of moving around of files.
 +;; Eg the progmodes/ (etc) directories did not exist before 1997.
 +;; Also, lib-src/ did not exist, the files were in etc/.
 +;; And various other things.
 +;; Maybe this should just be any ChangeLog with a . extension,
 +;; assuming we always fix logs fully before rotating them?
 +(defconst authors-lax-changelogs
 +  '("erc/ChangeLog\\.0[1-8]\\'"
 +    "gnus/ChangeLog\\.[1-2]\\'"
 +    "lisp/ChangeLog\\.\\([1-9]\\|1[0-5]\\)\\'"
 +    "mh-e/ChangeLog\\.1\\'"
 +    "src/ChangeLog\\.\\([1-9]\\|1[0-2]\\)\\'")
 +  "List of regexps matching ChangeLogs that we do not print errors from.
 +These are older ChangeLogs that have various issues.
 +Additionally, for these logs we apply the `lax' elements of
 +`authors-renamed-files-regexps'.")
 +
 +
 +(defvar authors-checked-files-alist)
 +(defvar authors-invalid-file-names)
 +
 +;; This has become rather yucky. :(
 +(defun authors-disambiguate-file-name (fullname)
 +  "Convert FULLNAME to an unambiguous relative-name."
 +  (let ((relname (file-name-nondirectory fullname))
 +      dir parent)
 +    (if (and (member relname authors-ambiguous-files)
 +           ;; Try to identify the top-level directory.
 +           ;; FIXME should really use ROOT from M-x authors.
 +           (not (and (file-directory-p
 +                      (expand-file-name
 +                       "lib-src"
 +                       (setq dir (file-name-directory fullname))))
 +                     (file-directory-p (expand-file-name "etc" dir)))))
 +      ;; I think it looks weird to see eg "lisp/simple.el".
 +      ;; But for eg Makefile.in, we do want to say "lisp/Makefile.in".
 +      (if (and (string-equal "lisp"
 +                             (setq parent (file-name-nondirectory
 +                                           (directory-file-name dir))))
 +               ;; TODO better to simply have hard-coded list?
 +               ;; Only really Makefile.in where this applies.
 +               (not (file-exists-p
 +                     (expand-file-name (concat "../" relname) dir))))
 +          relname
 +        ;; In case of ambiguity, just prepend the parent directory.
 +        ;; FIXME obviously this is not a perfect solution.
 +        (format "%s/%s" (file-name-nondirectory (directory-file-name dir))
 +                relname))
 +      relname)))
 +
 +(defun authors-lax-changelog-p (file)
 +  "Return non-nil if FILE matches `authors-lax-changelogs'."
 +  (let ((list authors-lax-changelogs)
 +      found)
 +    (while list
 +      (setq list (if (setq found (string-match-p (car list) file))
 +                   nil
 +                 (cdr list))))
 +    found))
 +
 +(defun authors-canonical-file-name (file log-file pos author)
 +  "Return canonical file name for FILE found in LOG-FILE.
 +Checks whether FILE is a valid (existing) file name, has been renamed,
 +or is on the list of removed files.  Returns the non-directory part of
 +the file name.  Only uses the LOG-FILE position POS and associated AUTHOR
 +to print a message if FILE is not found."
 +  ;; FILE should be re-checked in every different directory associated
 +  ;; with a LOG-FILE.  Eg configure.ac from src/ChangeLog is not the
 +  ;; same as that from top-level/ChangeLog.
 +  (let* ((fullname (expand-file-name file (file-name-directory log-file)))
 +       (entry (assoc fullname authors-checked-files-alist))
 +       laxlog relname valid)
 +    (if entry
 +      (cdr entry)
 +      (setq relname (file-name-nondirectory file))
 +      (if (or (member file authors-valid-file-names)
 +            (member relname authors-valid-file-names)
 +            (file-exists-p file)
 +            (file-exists-p relname)   ; FIXME? appropriate?
 +            )
 +        (setq valid (authors-disambiguate-file-name fullname))
 +      (if (setq valid (assoc file authors-renamed-files-alist))
 +          (setq valid (cdr valid))
 +        (setq laxlog (authors-lax-changelog-p log-file))
 +        (let ((rules authors-renamed-files-regexps)
 +              rule)
 +          (while rules
 +            (setq rule (car rules))
 +            (if (and (or laxlog (not (nth 2 rule)))
 +                     (string-match (car rule) file))
 +                (setq valid (if (stringp (nth 1 rule))
 +                                (file-name-nondirectory
 +                                 (replace-match (nth 1 rule) t nil file))
 +                              relname)
 +                      rules nil)
 +              (setq rules (cdr rules)))))))
 +      (setq authors-checked-files-alist
 +          (cons (cons fullname valid) authors-checked-files-alist))
 +      (unless (or valid
 +                (member file authors-ignored-files)
 +                (authors-obsolete-file-p file)
 +                (string-match "[*]" file)
 +                (string-match "^[0-9.]+$" file)
 +                laxlog)
 +      (setq authors-invalid-file-names
 +            (cons (format "%s:%d: unrecognized `%s' for %s"
 +                          log-file
 +                          (1+ (count-lines (point-min) pos))
 +                          file author)
 +                  authors-invalid-file-names)))
 +      valid)))
 +
 +(defun authors-add-fixed-entries (table)
 +  "Add actions from `authors-fixed-entries' to TABLE."
 +  (dolist (entry authors-fixed-entries)
 +    (let ((author (car entry))
 +        action)
 +      (dolist (item (cdr entry))
 +      (if (symbolp item)
 +          (setq action item)
 +        (authors-add author item action table))))))
 +
 +
 +(defun authors-obsolete-file-p (file)
 +  "Return non-nil if FILE is obsolete.
 +FILE is considered obsolete if it matches one of the regular expressions
 +from `authors-obsolete-files-regexps'."
 +  (let (obsolete-p
 +      (regexps authors-obsolete-files-regexps))
 +    (while (and regexps (not obsolete-p))
 +      (setq obsolete-p (string-match (car regexps) file)
 +          regexps (cdr regexps)))
 +    obsolete-p))
 +
 +(defun authors-no-scan-file-p (file)
 +  "Return non-nil if FILE should not be scanned.
 +FILE is not scanned if it matches any of `authors-no-scan-regexps'."
 +  (let (no-scan-p
 +      (regexps authors-no-scan-regexps))
 +    (while (and regexps (not no-scan-p))
 +      (setq no-scan-p (string-match-p (car regexps) file)
 +          regexps (cdr regexps)))
 +    no-scan-p))
 +
 +(defun authors-add (author file action table)
 +  "Record that AUTHOR worked on FILE.
 +ACTION is a keyword symbol describing what he did.  Record file,
 +author and what he did in hash table TABLE.  See the description of
 +`authors-scan-change-log' for the structure of the hash table."
 +  (unless (or (member file authors-ignored-files)
 +            (authors-obsolete-file-p file)
 +            (equal author ""))
 +    (let* ((value (gethash author table))
 +         (entry (assoc file value))
 +         slot)
 +      (if (null entry)
 +        (puthash author (cons (list file (cons action 1)) value) table)
 +      (if (setq slot (assoc action (cdr entry)))
 +          (setcdr slot (1+ (cdr slot)))
 +        (nconc entry (list (cons action 1))))))))
 +
 +
 +(defun authors-canonical-author-name (author)
 +  "Return a canonicalized form of AUTHOR, an author name.
 +If AUTHOR has an entry in `authors-aliases', use that.  Remove
 +email addresses.  Capitalize words in the author's name, unless
 +it is found in `authors-fixed-case'."
 +  (let* ((aliases authors-aliases)
 +       regexps realname)
 +    (while aliases
 +      (setq realname (car (car aliases))
 +          regexps (cdr (car aliases))
 +          aliases (cdr aliases))
 +      (while regexps
 +      (if (string-match (car regexps) author)
 +          (setq author realname
 +                regexps nil
 +                aliases nil)
 +        (setq regexps (cdr regexps))))))
 +  (when author
 +    (setq author (replace-regexp-in-string "[ \t]*[(<].*$" "" author))
 +    (setq author (replace-regexp-in-string "\`[ \t]+" "" author))
 +    (setq author (replace-regexp-in-string "[ \t]+$" "" author))
 +    (setq author (replace-regexp-in-string "[ \t]+" " " author))
 +    (unless (string-match "[-, \t]" author)
 +      (setq author ""))
 +    (or (car (member author authors-fixed-case))
 +      (capitalize author))))
 +
 +(defun authors-scan-change-log (log-file table)
 +  "Scan change log LOG-FILE for author information.
 +
 +For each change mentioned in the log, add an entry to hash table TABLE
 +under the author's canonical name.
 +
 +Keys of TABLE are author names.  Values are alists of entries (FILE
 +\(ACTION . COUNT) ...).  FILE is one file the author worked on.  The
 +rest of the entry is a list of keyword symbols describing what he did
 +with the file and the number of each action:
 +
 +:wrote                means the author wrote the file
 +:cowrote      means he wrote the file in collaboration with others
 +:changed      means he changed the file COUNT times."
 +
 +  (let* ((enable-local-variables :safe)       ; for find-file, hence let*
 +       (enable-local-eval nil)
 +       (existing-buffer (get-file-buffer log-file))
 +       (buffer (find-file-noselect log-file))
 +       authors pos)
 +    (with-current-buffer buffer
 +      (save-restriction
 +      (widen)
 +      (goto-char (point-min))
 +      (while (re-search-forward "^[0-9]\\|^[ \t]+\\* " nil t)
 +        (beginning-of-line)
 +        (setq pos (point))
 +        (cond ((looking-at "^[0-9]+-[0-9]+-[0-9]+")
 +               ;; Handle joint authorship of changes.
 +               ;; This can be a bit fragile, and is not too common.
 +               (setq authors nil)
 +               (while (progn
 +                        (skip-chars-forward " \t+:0-9-")
 +                        (not (looking-at "\\($\\|\\*\\|\
 +Suggested\\|Trivial\\|Version\\|Originally\\|From:\\|Patch[ \t]+[Bb]y\\)")))
 +                 (push (authors-canonical-author-name
 +                        (buffer-substring-no-properties
 +                         (point) (line-end-position))) authors)
 +                 (forward-line 1)))
 +              ((looking-at "^[ \t]+\\*")
 +               (let ((line (buffer-substring-no-properties
 +                            (match-end 0) (line-end-position))))
 +                 (while (and (not (string-match ":" line))
 +                             (forward-line 1)
 +                             (not (looking-at ":\\|^[ \t]*$")))
 +                   (setq line (concat line
 +                                      (buffer-substring-no-properties
 +                                       (line-beginning-position)
 +                                       (line-end-position)))))
 +                 (when (string-match ":" line)
 +                   (setq line (substring line 0 (match-beginning 0)))
 +                   (setq line (replace-regexp-in-string "[[(<{].*$" "" line))
 +                   (setq line (replace-regexp-in-string "," "" line))
 +                   (dolist (file (split-string line))
 +                     (when (setq file (authors-canonical-file-name file log-file pos (car authors)))
 +                       (dolist (author authors)
 +                         ;;(message "%s changed %s" author file)
 +                         (authors-add author file :changed table)))))
 +                 (forward-line 1)))))))
 +    (unless existing-buffer
 +      (kill-buffer buffer))))
 +
 +
 +(defun authors-scan-el (file table)
 +  "Scan Lisp file FILE for author information.
 +TABLE is a hash table to add author information to."
 +  (let* ((existing-buffer (get-file-buffer file))
 +       (enable-local-variables :safe) ; for find-file, hence let*
 +       (enable-local-eval nil)
 +       (buffer (find-file-noselect file)))
 +    (setq file (authors-disambiguate-file-name (expand-file-name file)))
 +    (with-current-buffer buffer
 +      (save-restriction
 +      (widen)
 +      (goto-char (point-min))
 +      (while (and (re-search-forward
 +                   "^;+[ \t]*\\(Authors?\\|Commentary\\|Code\\):[ \t]*" nil t)
 +                  (not (member (match-string 1) '("Commentary" "Code"))))
 +        (let ((continue t)
 +              (action :wrote)
 +              authors)
 +          (while continue
 +            ;; Some entries contain a year range in front of the
 +            ;; author's name.
 +            (skip-chars-forward "-0-9 \t")
 +            (push (authors-canonical-author-name
 +                   (buffer-substring-no-properties
 +                    (point) (line-end-position))) authors)
 +            ;; tips.texi says the continuation line should begin
 +            ;; with a tab, but often spaces are used.
 +            (setq continue
 +                  (and (zerop (forward-line 1))
 +                       (looking-at ";;;?\\(\t+ *\\|  +\\)[[:alnum:]]")
 +                       (goto-char (1- (match-end 0)))
 +                       (not (looking-at "[[:upper:]][-[:alpha:]]+:[ \t]")))))
 +          (and (> (length authors) 1)
 +               (setq action :cowrote))
 +          (mapc (lambda (author)
 +                  (authors-add author file action table))
 +                authors)))))
 +    (unless existing-buffer
 +      (kill-buffer buffer))))
 +
 +
 +(defun authors-public-domain-p (file)
 +  "Return t if FILE is a file that was put in public domain."
 +  (let ((public-domain-p nil)
 +      (list authors-public-domain-files))
 +    (while (and list (not public-domain-p))
 +      (when (string-match (car list) file)
 +      (setq public-domain-p t))
 +      (setq list (cdr list)))
 +    public-domain-p))
 +
 +(defvar authors-author-list)
 +
 +(defun authors-add-to-author-list (author changes)
 +  "Insert information about AUTHOR's work on Emacs into `authors-author-list'.
 +CHANGES is an alist of entries (FILE (ACTION . COUNT) ...), as produced by
 +`authors-scan-change-log'.
 +The element added to `authors-author-list' is (AUTHOR WROTE CO-WROTE CHANGED),
 +where WROTE, CO-WROTE, and CHANGED are lists of the files written, co-written
 +and changed by AUTHOR."
 +  (when author
 +    (let ((nchanged 0)
 +        wrote-list
 +        cowrote-list
 +        changed-list)
 +      (dolist (change changes)
 +      (let* ((actions (cdr change))
 +             (file (car change))
 +             (filestat (if (authors-public-domain-p file)
 +                           (concat file " (public domain)")
 +                         file)))
 +        (cond ((assq :wrote actions)
 +               (setq wrote-list (cons filestat wrote-list)))
 +              ((assq :cowrote actions)
 +               (setq cowrote-list (cons filestat cowrote-list)))
 +              (t
 +               (setq changed-list
 +                     (cons (cons file (cdr (assq :changed actions)))
 +                           changed-list))))))
 +      (if wrote-list
 +        (setq wrote-list (sort wrote-list 'string-lessp)))
 +      (if cowrote-list
 +        (setq cowrote-list (sort cowrote-list 'string-lessp)))
 +      (when changed-list
 +      (setq changed-list (sort changed-list
 +                               (lambda (a b)
 +                                 (if (= (cdr a) (cdr b))
 +                                     (string-lessp (car a) (car b))
 +                                   (> (cdr a) (cdr b))))))
 +      (setq nchanged (length changed-list))
 +      (setq changed-list (mapcar 'car changed-list)))
 +      (if (> (- nchanged authors-many-files) 2)
 +        (setcdr (nthcdr authors-many-files changed-list)
 +                (list (format "and %d other files" (- nchanged authors-many-files)))))
 +      (setq authors-author-list
 +          (cons (list author wrote-list cowrote-list changed-list)
 +                authors-author-list)))))
 +
 +(defun authors (root)
 +  "Extract author information from change logs and Lisp source files.
 +ROOT is the root directory under which to find the files.  If called
 +interactively, ROOT is read from the minibuffer.
 +Result is a buffer *Authors* containing authorship information, and a
 +buffer *Authors Errors* containing references to unknown files."
 +  (interactive "DEmacs source directory: ")
 +  (setq root (expand-file-name root))
 +  (let ((logs (process-lines find-program root "-name" "ChangeLog*"))
 +      (table (make-hash-table :test 'equal))
 +      (buffer-name "*Authors*")
 +      authors-checked-files-alist
 +      authors-invalid-file-names)
 +    (authors-add-fixed-entries table)
 +    (unless (file-exists-p (expand-file-name "src/emacs.c" root))
 +      (unless (y-or-n-p
 +             (format "Not the root directory of Emacs: %s, continue? " root))
 +      (error "Not the root directory")))
 +    (dolist (log logs)
 +      (when (string-match "ChangeLog\\(.[0-9]+\\)?$" log)
 +      (message "Scanning %s..." log)
 +      (authors-scan-change-log log table)))
 +    (let ((els (process-lines find-program root "-name" "*.el")))
 +      (dolist (file els)
 +      (unless (authors-no-scan-file-p file)
 +        (message "Scanning %s..." file)
 +        (authors-scan-el file table))))
 +    (message "Generating buffer %s..." buffer-name)
 +    (set-buffer (get-buffer-create buffer-name))
 +    (erase-buffer)
 +    (set-buffer-file-coding-system authors-coding-system)
 +    (insert
 +"Many people have contributed code included in the Free Software
 +Foundation's distribution of GNU Emacs.  To show our appreciation for
 +their public spirit, we list here in alphabetical order a condensed
 +list of their contributions.\n")
 +    (let (authors-author-list)
 +      (maphash #'authors-add-to-author-list table)
 +      (setq authors-author-list
 +          (sort authors-author-list
 +                (lambda (a b)
 +                  (string-collate-lessp (car a) (car b)
 +                                        (if (eq system-type 'windows-nt)
 +                                            "enu_USA"
 +                                          "en_US.UTF-8")))))
 +      (dolist (a authors-author-list)
 +      (let ((author (car a))
 +            (wrote (nth 1 a))
 +            (cowrote (nth 2 a))
 +            (changed (nth 3 a)))
 +      (insert "\n" author ": ")
 +      (when wrote
 +        (insert "wrote")
 +        (dolist (file wrote)
 +          (if (> (+ (current-column) (length file)) 72)
 +            (insert "\n "))
 +          (insert " " file))
 +        (insert "\n"))
 +      (when cowrote
 +        (if wrote
 +            (insert "and "))
 +        (insert "co-wrote")
 +        (dolist (file cowrote)
 +          (if (> (+ (current-column) (length file)) 72)
 +            (insert "\n "))
 +          (insert " " file))
 +        (insert "\n"))
 +      (when changed
 +        (if (or wrote cowrote)
 +            (insert "and "))
 +        (insert "changed")
 +        (dolist (file changed)
 +          (if (> (+ (current-column) (length file)) 72)
 +              (insert "\n "))
 +          (insert " " file))
 +        (insert "\n")))))
 +    (insert "\nLocal" " Variables:\ncoding: "
 +          (symbol-name authors-coding-system) "\nEnd:\n")
 +    (message "Generating buffer %s... done" buffer-name)
 +    (unless noninteractive
 +      (when authors-invalid-file-names
 +      (with-current-buffer (get-buffer-create "*Authors Errors*")
 +        (setq buffer-read-only nil)
 +        (erase-buffer)
 +        (set-buffer-file-coding-system authors-coding-system)
 +        (insert "Unrecognized file entries found:\n\n")
 +        (mapc (lambda (f) (if (not (string-match "^[A-Za-z]+$" f)) (insert f "\n")))
 +              (sort authors-invalid-file-names 'string-lessp))
 +        (goto-char (point-min))
 +        (compilation-mode)
 +        (message "Errors were found.  See buffer %s" (buffer-name))))
 +      (pop-to-buffer buffer-name))))
 +
 +
 +(defun batch-update-authors ()
 +  "Produce an AUTHORS file.
 +Call this function in batch mode with two command line arguments FILE
 +and ROOT.  FILE is the file to write, ROOT is the root directory of
 +the Emacs source tree, from which to build the file."
 +  (unless noninteractive
 +    (error "`batch-update-authors' is to be used only with -batch"))
 +  (when (/= (length command-line-args-left) 2)
 +    (error "Call `batch-update-authors' with the name of the file to write"))
 +  (let* ((file (pop command-line-args-left))
 +       (root (pop command-line-args-left)))
 +    (authors root)
 +    (write-file file)))
 +
 +(provide 'authors)
 +
 +;;; authors.el ends here
diff --cc lisp/ChangeLog
index db1358cd2fef8468c5a1d8790fc9faea05761466,e52f9a35b47bcc9a352d097fb56b0dc4e72be32b..8083fb85ceaf653cb9cc2c454ec0306f2f94458f
@@@ -1,4 -1,24 +1,25 @@@
 -2015-02-04  Nicolas Petton  <nicolas@petton.fr>
++2015-03-03  Nicolas Petton  <nicolas@petton.fr>
+       * emacs-lisp/authors.el (authors-ignored-files)
+       (authors-renamed-files-alist): Additions.
 -2015-02-03  Michael Albinus  <michael.albinus@gmx.de>
++2015-03-03  Michael Albinus  <michael.albinus@gmx.de>
+       * net/tramp.el (tramp-ssh-controlmaster-options): Don't use a
+       tempfile for ControlPath.  (Bug#19702)
 -2015-02-02  Michael Albinus  <michael.albinus@gmx.de>
++2015-03-03  Michael Albinus  <michael.albinus@gmx.de>
+       * net/tramp.el (tramp-ssh-controlmaster-options): Use "%C" for
+       ControlPath if possible.  (Bug#19702)
 -2015-02-02  Glenn Morris  <rgm@gnu.org>
++2015-03-03  Glenn Morris  <rgm@gnu.org>
+       * emacs-lisp/authors.el (authors-obsolete-files-regexps)
+       (authors-valid-file-names, authors-renamed-files-alist): Additions.
 -2015-02-01  Alan Mackenzie  <acm@muc.de>
++2015-03-03  Alan Mackenzie  <acm@muc.de>
 +2015-03-03  Alan Mackenzie  <acm@muc.de>
  
        CC Mode: Stop Font Lock forcing fontification from BOL.  Fixes
        debbugs#19669.
Simple merge
diff --cc src/ChangeLog
index 0bc5d650caff98192a5105ab4e5d8584d9ba39f5,8e7ab9363f64db88a891187357dcd0a4e11f7d13..0a05b544d98326cb6386c62d39319ce2322d4436
 -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
+       ignore_overlay_strings_at_pos_p flag here.
+       (next_element_from_buffer): Reset ignore_overlay_strings_at_pos_p
+       here.
+       (next_overlay_string): Set ignore_overlay_strings_at_pos_p here,
+       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.
+       (Bug#19307)
+       * dispnew.c (adjust_glyph_matrix): Set the update_mode_line flag
+       of the window whose current glyph matrix was resized, which
+       disables the mode-line row as side effect.
+       * 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-03-03  Daniel Colascione  <dancol@dancol.org>
  
 -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.
 +      * alloc.c (syms_of_alloc): Rename `gc-precise-p' to `gc-precise'.
  
 -2015-01-29  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * w32.c (sys_readdir): Map ERROR_NOT_READY (as in "device not
 -      ready") to ENOENT.
 +      * alloc.c (run_finalizers): Omit unused local.
 +      Also, redo newly-added code as per usual Emacs style.
  
 -2015-01-28  Eli Zaretskii  <eliz@gnu.org>
 +2015-03-03  Martin Rudalics  <rudalics@gmx.at>
  
 -      * dired.c (directory_files_internal, file_name_completion)
 -      [WINDOWSNT]: Signal an error when errno is set non-zero by
 -      'readdir', regardless of its value.
 +      * 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.
  
 -      * 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.
 +2015-03-03  Daniel Colascione  <dancol@dancol.org>
  
 -2015-01-27  Eli Zaretskii  <eliz@gnu.org>
 +      * print.c (print_object): Print whether a finalizer has
 +      been called.
  
 -      * 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)
 +      * data.c (Ftype_of): Make `type-of' work with finalizers.
 +      (syms_of_data): Register Qfinalizer.
  
 -      * w32.c (sys_readdir): If FindFirstFile fails because the
 -      directory doesn't exist, set errno to ENOTDIR.
 +2015-03-02  Daniel Colascione  <dancol@dancol.org>
  
 -2015-01-24  Jan Djärv  <jan.h.d@swipnet.se>
 +      * print.c (print_object): Print finalizers.
  
 -      * nsterm.m (drawRect:): Add block/unblock_input (Bug#19660).
 +      * 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.
  
 -2015-01-21  Paul Eggert  <eggert@cs.ucla.edu>
 +      * lisp.h (Lisp_Misc_Type): New value Lisp_Misc_Finalizer.
 +      (FINALIZERP, XFINALIZER): New functions.
 +      (Lisp_Finalizer): New structure.
  
 -      Fix coding.c subscript error
 -      * coding.c (CODING_ISO_INVOKED_CHARSET):
 -      Avoid undefined behavior if CODING_ISO_INVOCATION returns negative.
 +2015-02-28  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      Backport: correct old fix for GTK font selection
 -      * gtkutil.c (xg_get_font): Fix off-by-2 typo.
 -      Fixes: bug#3228
 +      * character.c (alphabeticp, decimalnump): Avoid undefined behavior
 +      if CATEGORY is not an integer, or is an integer out of
 +      unicode_category_t range.
  
 -2015-01-21  Jan Djärv  <jan.h.d@swipnet.se>
 +2015-02-28  Martin Rudalics  <rudalics@gmx.at>
  
 -        * nsterm.m (EV_TRAILER2): Set Vinhibit_quit to Qt (Bug#19531).
 +      * frame.c (make_initial_frame, Fmake_terminal_frame): Set
 +      can_x_set_window_size and after_make_frame (Bug#19962).
  
 -2015-01-17  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-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.
 +      * character.c (alphabeticp, decimalnump): New functions.
 +      * character.h (alphabeticp, decimalnump): Add prototypes.
  
 -2015-01-14  Eli Zaretskii  <eliz@gnu.org>
 +      * 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)
  
 -      * 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)
 +2015-02-27  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2015-01-10  Eli Zaretskii  <eliz@gnu.org>
 +      * xterm.h (x_real_pos_and_offsets): Take outer_border as arg also.
  
 -      * indent.c (Fvertical_motion): Return zero if we started from ZV
 -      and there's an overlay after-string there.  (Bug#19553)
 +      * xmenu.c (x_menu_show): Adjust for new arg to x_real_pos_and_offsets.
  
 -2015-01-09  Eli Zaretskii  <eliz@gnu.org>
 +      * 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.
  
 -      * emacs.c (usage_message): Fix the description of the -nl switch.
 -      (Bug#19542)
 +2015-02-27  Mark Laws  <mdl@60hz.org>
  
 -2015-01-08  Eli Zaretskii  <eliz@gnu.org>
 +      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.
  
 -      * 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.)
 +      * lisp.h (DAEMON_RUNNING): New macro, encapsulates Posix and
 +      MS-Windows conditions for running in daemon mode.
  
 -2015-01-05  Eli Zaretskii  <eliz@gnu.org>
 +      * minibuf.c (read_minibuf): Use DAEMON_RUNNING.
  
 -      * 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)
 +      * keyboard.c (kbd_buffer_get_event): Use DAEMON_RUNNING.
  
 -2015-01-04  Eli Zaretskii  <eliz@gnu.org>
 +      * dispnew.c (init_display) [WINDOWSNT]: Initialize frames/terminal
 +      even in daemon mode.
  
 -      * w32fns.c (Fx_server_version, Fx_server_vendor): Doc fix.
 +2015-02-26  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xfns.c (Fx_server_version, Fx_server_vendor): Doc fix.
 +      * 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.
  
 -      * emacs.c (syms_of_emacs) <system-configuration>: Doc fix.
 -      (Bug#19502)
 +2015-02-26  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-12-30  Eli Zaretskii  <eliz@gnu.org>
 +      * dispextern.h (FACE_FOR_CHAR): Fix the commentary.
  
 -      * xdisp.c (pos_visible_p): Fix up the X coordinate for
 -      right-to-left screen lines.  (Bug#19473)
 +2015-02-26  Hans Wennborg  <hwennborg@google.com>  (tiny change)
  
 -2014-12-28  Eli Zaretskii  <eliz@gnu.org>
 +      * emacs.c (decode_env_path): Add parentheses around ternary
 +      operator to increase readability and pacify compiler warnings.
  
 -      * w32proc.c (Fw32_get_codepage_charset): Doc fix.  (Bug#19458)
 +2015-02-26  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-12-28  Paul Eggert  <eggert@Penguin.CS.UCLA.EDU>
 +      * w32.c (sys_readdir): Map ERROR_NOT_READY (as in "device not
 +      ready") to ENOENT.
  
 -      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.
 +2015-02-26  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-12-25  Eli Zaretskii  <eliz@gnu.org>
 +      * xfns.c (x_real_pos_and_offsets): Fix pointer signedness.
  
 -      * 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.
 +2015-02-25  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * 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.
 +      * 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.
  
 -      * dispextern.h (struct it) <end_charpos>: Improve commentary.
 +      * xmenu.c (create_and_show_popup_menu): Use XTranslateCoordinates
 +      instead of OUTER_TO_INNER_DIFF macros.
  
 -2014-12-24  Jan Djärv  <jan.h.d@swipnet.se>
 +      * 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.
  
 -      * 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.
 +      * w32fns.c (x_real_positions): Remove setting of x_pixels_diff,
 +      y_pixels_diff.
  
 -2014-12-24  Jan Djärv  <jan.h.d@swipnet.se>
 +      * frame.h (struct frame): Remove x_pixels_diff, y_pixels_diff.
  
 -      * nsterm.h (EmacsImage): Remove imageListNext, refCount, reference,
 -      imageListSetNext, imageListNext.
 +2015-02-25  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * nsimage.m (ImageList, imageListNext, imageListSetNext:)
 -      (reference): Remove.
 -      (allocInitFromFile:): Remove searching ImageList and calling
 -      reference (Bug#18918).
 -      (dealloc): Remove handling if ImageList.
 +      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.
  
 -2014-12-22  Jan Djärv  <jan.h.d@swipnet.se>
 +2015-02-22  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xterm.c (do_ewmh_fullscreen): Don't remove maximized_horz/vert
 -      when going to fullscreen (Bug#19427).
 +      * nsfns.m (Fx_frame_geometry): New function.
 +      (syms_of_nsfns): Defsubr Sx_frame_geometry.
  
 -2014-12-18  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-22  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * window.c (Fwindow_body_width): Doc fix.  (Bug#19395)
 +      Spelling fixes
 +      * lisp.h (DEFINE_NON_NIL_Q_SYMBOL_MACROS):
 +      Rename from DEFINE_NONNIL_Q_SYMBOL_MACROS.  All uses changed.
  
 -2014-12-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2015-02-21  Eli Zaretskii  <eliz@gnu.org>
  
 -      * buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring.
 +      * w32term.c (queue_notifications):
 +      * w32inevt.c (handle_file_notifications):
 +      * w32font.c (w32_enumfont_pattern_entity): Prefer 'Qfoo' to
 +      'intern ("foo")'.
  
 -2014-12-13  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-21  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * gnutls.c (gnutls_init): Fix deprecation warning from GCC.
 +      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.
  
 -2014-12-12  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-20  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * gnutls.c (Fgnutls_available_p, syms_of_gnutls):
 -      Move gnutls-available-p out of the HAVE_GNUTLS conditional, and define
 -      them only once.
 +      * 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.
  
 -2014-12-11  Teodor Zlatanov  <tzz@lifelogs.com>
 +2015-02-20  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * emacs.c (main): Always include gnutls.h and run 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.h: Always declare syms_of_gnutls.
 +2015-02-19  Eli Zaretskii  <eliz@gnu.org>
  
 -      * 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)
 +      * 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)
  
 -2014-12-10  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-19  Fujii Hironori  <fujii.hironori@gmail.com>  (tiny change)
  
 -      * 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)
 +      * w32fns.c (w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Pass the
 +      message to DefWindowProc, after positioning the IME window, to
 +      trigger its display.  (Bug#11732)
  
 -2014-12-04  Lee Duhem  <lee.duhem@gmail.com>  (tiny change)
 +2015-02-18  Eli Zaretskii  <eliz@gnu.org>
  
 -      * eval.c (Fsignal): Remove duplicate test.
 -      (Fautoload_do_load): Fix up docstring.
 +      * emacs.c (Fkill_emacs): Exit with specified exit code even if
 +      stdin is at EOF.  (Bug#19897)
  
 -2014-12-02  Jan Djärv  <jan.h.d@swipnet.se>
 +2015-02-18  Oscar Fuentes <ofv@wanadoo.es>
  
 -      * 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.
 +      * 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)
  
 -      * nsterm.h: Declare ns_set_represented_filename.
 +2015-02-16  Kelly Dean  <kelly@prtime.org>
  
 -      * nsfns.m (ns_set_name_as_filename): Don't set represented filename
 -      at once, call ns_set_represented_filename instead.
 +      * src/keyboard.c (timer_check_2): Fix incorrect comment.
  
 -2014-11-27  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-14  Martin Rudalics  <rudalics@gmx.at>
  
 -      * 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)
 +      * xterm.c (x_frame_normalize_before_maximize): Fix doc-string.
 +      Suggested by Alan Mackenzie <acm@muc.de>.
  
 -2014-11-25  Eli Zaretskii  <eliz@gnu.org>
 +2015-02-14  Eli Zaretskii  <eliz@gnu.org>
  
 -      * w32fns.c (Fw32_shell_execute): Convert forward slashes in
 -      DOCUMENT to backslashes, if DOCUMENT is a file.  (Bug#19141)
 +      * menu.c (Fx_popup_menu) [HAVE_X_WINDOWS]: Call
 +      x_relative_mouse_position only for X frames.  (Bug#19862)
  
 -2014-11-25  Ulrich Müller  <ulm@gentoo.org>
 +2015-02-13  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * Makefile.in (temacs$(EXEEXT)): Use consistent flag settings
 -      for paxctl and setfattr. Fixes temacs startup failure with
 -      grsecurity/PaX enabled Linux kernel (bug#19067).
 +      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.
  
 -2014-11-17  Oscar Fuentes  <ofv@wanadoo.es>
 +2015-02-11  Martin Rudalics  <rudalics@gmx.at>
  
 -      * src/w32.c: Use MINGW_W64 instead of _W64.
 +      * 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.
 +
 +2015-02-08  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      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.
 +
 +2015-02-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * frame.c (Fframe_parameter): Don't replace a non-nil value of
 +      foreground-color or background-color parameters with a nil value.
 +      (Bug#19802)
 +
 +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.
  
 -      * src/w32term.c: Likewise.
 +2015-02-03  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      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.
  
 -      * frame.c (Fhandle_switch_frame): Deactivate shift-region (bug#19003).
 +2015-02-01  Martin Rudalics  <rudalics@gmx.at>
  
 -2014-11-15  Jan Djärv  <jan.h.d@swipnet.se>
 +      * xdisp.c (Fwindow_text_pixel_size): Add optional argument BUFFER.
  
 -      * nsterm.m (ns_send_appdefined): Check for application defined
 -      event on Cocoa (Bug#18993).  Backport from trunk.
 +2015-01-31  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-11-15  Eli Zaretskii  <eliz@gnu.org>
 +      * coding.c (raw_text_coding_system_p): New function.
  
 -      * 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)
 +      * keyboard.c (read_decoded_event_from_main_queue): Use it when the
 +      keyboard coding-system is 'raw-text'.  (Bug#19532)
  
 -2014-11-15  Jan Djärv  <jan.h.d@swipnet.se>
 +      * coding.h (raw_text_coding_system_p): Add prototype.
  
 -      * nsmenu.m (update_frame_tool_bar): If tool bar changes height,
 -      call updateFrameSize.
 +2015-01-31  Andreas Schwab  <schwab@linux-m68k.org>
  
 -      * nsterm.m (setFrame:): Remove call to display (Bug#18757).
 +      * Makefile.in (gl-stamp): Generate globals.h through the use of
 +      move-if-change.
 +      (globals.h): Replace with empty command.
  
 -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).
 +      * 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-09  Eli Zaretskii  <eliz@gnu.org>
 +      * dired.c (read_dirent): Correct the "MSDOS hacks" hack: the
 +      special code for errno = ENOENT or EACCES is needed for WINDOWSNT,
 +      not for MSDOS.
  
 -      * fileio.c (Finsert_file_contents): Invalidate buffer caches also
 -      when the inserted text does not need decoding.  (Bug#18982)
 +2015-01-31  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * w32heap.c (allocate_heap): Set the lower limit of heap at 8MB.
 -      (Bug#18995)
 +      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.
  
 -2014-11-09  Jan Djärv  <jan.h.d@swipnet.se>
 +2015-01-30  Eli Zaretskii  <eliz@gnu.org>
  
 -      * nsterm.h (EmacsScroller): judge returns bool.
 +      * 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.
  
 -      * 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).
 +2015-01-30  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-11-08  Jan Djärv  <jan.h.d@swipnet.se>
 +      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.
  
 -      * 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-29  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-11-07  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.
  
 -      * callproc.c (encode_current_directory): Support handling of file
 -      names prepended by "/:".  (Bug#18891)
 +2015-01-29  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-11-06  Alan Mackenzie  <acm@muc.de>
 +      Use bool for boolean in w32menu.c, w32font.c, w32uniscribe.c.
 +      * w32uniscribe.c (uniscribe_list, uniscribe_match): Use bool where
 +      appropriate.
  
 -      * syntax.c (back_comment): Fix off-by-one error (bug#18022).
 +      * w32font.c (struct font_callback_data, w32font_list_internal)
 +      (w32font_driver, w32font_match_internal): Use bool where appropriate.
  
 -2014-11-06  Dima Kogan  <dima@secretsauce.net>
 +      * w32menu.c (x_activate_menubar, set_frame_menubar)
 +      (w32_dialog_show, initialize_frame_menubar, w32_menu_show)
 +      (is_simple_dialog): Use bool where appropriate.
  
 -      * xgselect.c (xg_select): Use g_main_context_acquire (bug#18861).
 +2015-01-28  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-11-05  Michael Albinus  <michael.albinus@gmx.de>
 +      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)
  
 -      * dired.c (Ffile_attributes): Return Qnil, if Fexpand_file_name
 -      raises an error.  (Bug#18891)
 +2015-01-28  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-11-03  Eli Zaretskii  <eliz@gnu.org>
 +      * dired.c (directory_files_internal, file_name_completion)
 +      [WINDOWSNT]: Signal an error when errno is set non-zero by
 +      'readdir', regardless of its value.
  
 -      * 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.
 +      * 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.
  
 -2014-11-03  Jan Djärv  <jan.h.d@swipnet.se>
 +      * 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): Check for FRAME_NS (Bug#18925).
 +      * w32.c (sys_readdir): If FindFirstFile fails because the
 +      directory doesn't exist, set errno to ENOTDIR.
  
 -2014-10-31  Jan Djärv  <jan.h.d@swipnet.se>
 +2015-01-28  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * 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).
 +      * nsterm.m (drawRect:): Add block/unblock_input (Bug#19660).
  
 -      * emacs.c (main): Don't chdir to $HOME on Cocoa if --chdir
 -      was given (Bug#18846).
 +2015-01-28  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-10-30  Jan Djärv  <jan.h.d@swipnet.se>
 +      Fix coding.c subscript error
 +      * coding.c (CODING_ISO_INVOKED_CHARSET):
 +      Avoid undefined behavior if CODING_ISO_INVOCATION returns negative.
  
 -      * nsterm.h (ns_set_doc_edited): Declare taking no args.
 +2015-01-28  Eli Zaretskii  <eliz@gnu.org>
  
 -      * 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 (produce_image_glyph): Fix display of images in R2L
 +      screen lines: prepend the new glyph to the ones already there
 +      instead of appending it.
  
 -      * xdisp.c (prepare_menu_bars): Remove HAVE_NS code.
 -      (redisplay_internal): Call ns_set_doc_edited if HAVE_NS (Bug#18884).
 +      * 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)
  
 -      * nsterm.h (EmacsScroller): Replace Lisp_Object win with
 -      struct window* (Bug#18889).
 -      Remove getMouseMotionPart.
 -      (ns_output): Make icon_top/left int.
 +      * indent.c (Fvertical_motion): Return zero if we started from ZV
 +      and there's an overlay after-string there.  (Bug#19553)
  
 -      * nsfns.m (x_icon): icon_top/left is int.
 +      * emacs.c (usage_message): Fix the description of the -nl switch.
 +      (Bug#19542)
  
 -      * 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.
 +      * 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)
  
 -2014-10-30  Samuel Bronson  <naesten@gmail.com>
 +      * w32fns.c (Fx_server_version, Fx_server_vendor): Doc fix.
 +      * xfns.c (Fx_server_version, Fx_server_vendor): Doc fix.
  
 -      * unexmacosx.c (copy_data_segment): Port to GCC 4.6+ (Bug#9927).
 +      * emacs.c (syms_of_emacs) <system-configuration>: Doc fix.  (Bug#19502)
  
 -2014-10-28  Eli Zaretskii  <eliz@gnu.org>
 +2015-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * fileio.c (Fexpand_file_name): Use make_unibyte_string, not
 -      build_string, when importing a home directory.  (Bug#18873)
 +      * lisp.mk (lisp): Add cl-preloaded.
  
 -2014-10-26  Eli Zaretskii  <eliz@gnu.org>
 +2015-01-27  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)
 +      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.
  
 -2014-10-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2015-01-26  Andreas Schwab  <schwab@linux-m68k.org>
  
 -      * 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]
 +      * 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.
  
 -2014-10-20  Glenn Morris  <rgm@gnu.org>
 +2015-01-25  Eli Zaretskii  <eliz@gnu.org>
  
 -      * minibuf.c (history-length): Increase default from 30 to 100.
 -      [Backport]
 +      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.
 +
 +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-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)
  
 -2014-10-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * 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.
  
 -      * xdisp.c (redisplay_window): Re-run pre-redisplay-function after we
 -      move point.
 +      * w32.c (network_interface_info): Make sure the argument is a
 +      Lisp string.
  
 -2014-10-20  Glenn Morris  <rgm@gnu.org>
 +2014-07-08  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * Version 24.4 released.
 +      * process.c (read_and_dispose_of_process_output): Fix typo
 +      in previous patch: we want nonnegative fds, not nonzero fds.
  
 -2014-10-17  Eli Zaretskii  <eliz@gnu.org>
 +2014-07-08  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * 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.
 +      * 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-10  Paul Eggert  <eggert@cs.ucla.edu>
 +      * 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.
  
 -      Fix port to Debian GNU/kFreeBSD 7 (wheezy) (Bug#18666).
 -      * process.c (accept4) [!HAVE_ACCEPT4]: New macro.
 +2014-07-03  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-10-09  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)
  
 -      * frame.c (Fmouse_pixel_position): Call Vmouse_position_function
 -      (bug#18638).
 +      * xdisp.c (display_line, display_mode_line):
 +      Call prepare_desired_row with additional arguments, as appropriate.
  
 -2014-10-08  K. Handa  <handa@gnu.org>
 +      * dispextern.h (prepare_desired_row): Adjust prototype.
  
 -      * coding.c (detect_coding_iso_2022): Set coding->rejected
 -      correctly when an invalid escape sequence is found (Bug#18610).
 +2014-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-10-03  Dmitry Antipov  <dmantipov@yandex.ru>
 +      * 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).
  
 -      * 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-07-03  Eli Zaretskii  <eliz@gnu.org>
  
 -2014-10-02  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)
  
 -      * xdisp.c (move_it_by_lines): Call reseat_1 after moving the
 -      iterator backwards, to resync the bidi iterator.  (Bug#18584)
 +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-01  Jan Djärv  <jan.h.d@swipnet.se>
 +2014-07-02  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * 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.
 +      * keymap.c (get_keyelt): Simplify.
 +      (copy_keymap_item): Remove left-over code for when we had
 +      key-shortcut caches.
  
 -2014-09-30  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-30  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * 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.
 +      * nsterm.m (judge): EmacsScroller: Move dealloc code here.
 +      (dealloc): Remove for EmacsScroller.
  
 -2014-09-29  Eli Zaretskii  <eliz@gnu.org>
 +      * nsterm.h (EmacsScroller): Remove dealloc.
  
 -      * 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)
 +2014-06-30  Eli Zaretskii  <eliz@gnu.org>
  
 -      * window.c (Frecenter): Set the window's redisplay flag.
 +      * coding.c (MIN_CHARBUF_SIZE): Enlarge to 32.  (Bug#17881)
  
 -2014-09-24  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-30  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * 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.
 +      * 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.
  
 -      * 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)
 +      * 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-22  Dmitry Antipov  <dmantipov@yandex.ru>
 +2014-06-29  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.
 +      * 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-21  David Caldwell <david@porkrind.org>  (tiny change)
 +2014-06-29  Glenn Morris  <rgm@gnu.org>
  
 -      * unexmacosx.c (dump_it): Improve error message.
 +      * Makefile.in (ns-app): Mark as PHONY.
  
 -2014-09-18  Juri Linkov  <juri@jurta.org>
 +2014-06-28  Glenn Morris  <rgm@gnu.org>
  
 -      * image.c (imagemagick_load_image): Add delay to imagemagick metadata.
 -      (Bug#10747, bug#18334)
 +      * Makefile.in (mostlyclean): There are no libXMenu11.a,
 +      liblw.a in this directory.
  
 -2014-09-18  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-28  Andreas Schwab  <schwab@linux-m68k.org>
  
 -      * frame.c (Fmouse_position, Fset_mouse_position): Clarify the
 -      units in which the position is measured.  (Bug#18493)
 +      * coding.c (encode_coding_utf_8): Correctly count produced_chars
 +      also in unibyte case.  (Bug#17865)
  
 -      * xdisp.c (redisplay_internal): Force redisplay of all windows
 -      that show a buffer whose narrowing has changed.  (Bug#18490)
 +2014-06-28  K. Handa  <handa@gnu.org>
  
 -2014-09-16  Eli Zaretskii  <eliz@gnu.org>
 +      * coding.c (MAX_CHARBUF_SIZE): Rename from CHARBUF_SIZE.
 +      (MIN_CHARBUF_SIZE): New macro.
 +      (ALLOC_CONVERSION_WORK_AREA): New arg SIZE.  Callers changed.
  
 -      * 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-27  Glenn Morris  <rgm@gnu.org>
  
 -      * 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>.
 +      * 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-16  Dmitry Antipov  <dmantipov@yandex.ru>
 +2014-06-26  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.
 +      * fns.c (Fcompare_strings): Use FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE.
  
 -      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-25  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-09-15  Eli Zaretskii  <eliz@gnu.org>
 +      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.
  
 -      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-25  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-09-14  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.
  
 -      * 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-24  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-09-13  Eli Zaretskii  <eliz@gnu.org>
 +      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'.
  
 -      * 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-23  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.
 +      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.
  
 -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).
 +      * 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)
  
 -2014-09-09  Jan Djärv  <jan.h.d@swipnet.se>
 +2014-06-21  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * nsterm.m (updateFrameSize:, initFrameFromEmacs:)
 -      (toggleFullScreen:): Take frame_resize_pixelwise into account when
 -      setting resize increments (Bug#18435).
 +      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.
  
 -2014-09-09  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * 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.
 +      * keyboard.c (read_key_sequence): Don't invoke Vprefix_help_command
 +      before checking key-translation-map (bug#17659).
  
 -2014-09-07  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-21  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * 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)
 +      * font.c (font_make_object): Avoid dangling pointer which may
 +      crash GC (Bug#17771).
  
 -2014-09-04  Eli Zaretskii  <eliz@gnu.org>
 +2014-06-21  Eli Zaretskii  <eliz@gnu.org>
  
 -      * 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)
 +      * 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-02  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)
  
 -      * 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-19  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -2014-09-02  Paul Eggert  <eggert@cs.ucla.edu>
 +      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.
  
 -      * eval.c (internal_lisp_condition_case): Don't overrun the stack
 -      when configured --with-wide-int on typical 32-bit platforms.
 +2014-06-16  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2014-08-31  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
  
 -      * 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-06-16  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      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.
 +
 +2014-06-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in: Use `make -C' rather than `cd && make' throughout.
 +
 +2014-06-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * 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)
 +
 +      * alloc.c (cleanup_vector): Don't dereference a font driver
 +      pointer if it is NULL.  (Bug#17771)
 +
 +2014-06-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * 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
diff --cc src/dispnew.c
Simple merge
diff --cc src/xdisp.c
index 3f57841ac13a0ddc3d7b649f83682b090854a95e,5e552ca2fdb913da308b7eded1b615eb4ce8c6e1..5ef839eb8650e4fcec8711235fe0d5c756a65a80
@@@ -3241,8 -3434,7 +3241,7 @@@ handle_stop (struct it *it
    it->dpvec = NULL;
    it->current.dpvec_index = -1;
    handle_overlay_change_p = !it->ignore_overlay_strings_at_pos_p;
-   it->ignore_overlay_strings_at_pos_p = false;
 -  it->ellipsis_p = 0;
 +  it->ellipsis_p = false;
  
    /* Use face of preceding text for ellipsis (if invisible) */
    if (it->selective_display_ellipsis_p)
                pop_it (it);
              else
                {
-                 it->ignore_overlay_strings_at_pos_p = true;
 -                it->string_from_display_prop_p = 0;
 -                it->from_disp_prop_p = 0;
 -                handle_overlay_change_p = 0;
 +                it->string_from_display_prop_p = false;
 +                it->from_disp_prop_p = false;
 +                handle_overlay_change_p = false;
                }
              handled = HANDLED_RECOMPUTE_PROPS;
              break;
@@@ -7286,13 -7471,9 +7282,9 @@@ set_iterator_to_next (struct it *it, bo
  
          /* Skip over characters which were displayed via IT->dpvec.  */
          if (it->dpvec_char_len < 0)
 -          reseat_at_next_visible_line_start (it, 1);
 +          reseat_at_next_visible_line_start (it, true);
          else if (it->dpvec_char_len > 0)
            {
-             if (it->method == GET_FROM_STRING
-                 && it->current.overlay_string_index >= 0
-                 && it->n_overlay_strings > 0)
-               it->ignore_overlay_strings_at_pos_p = true;
              it->len = it->dpvec_char_len;
              set_iterator_to_next (it, reseat_p);
            }
@@@ -7916,8 -8102,7 +7913,7 @@@ static boo
  next_element_from_image (struct it *it)
  {
    it->what = IT_IMAGE;
-   it->ignore_overlay_strings_at_pos_p = false;
 -  return 1;
 +  return true;
  }