diff --git a/.dir-locals.el b/.dir-locals.el
index 203343f0842..5e73e0d9acd 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -3,8 +3,6 @@
(fill-column . 70)))
(c-mode . ((c-file-style . "GNU")))
(objc-mode . ((c-file-style . "GNU")))
- ;; You must set bugtracker_debbugs_url in your bazaar.conf for this to work.
- ;; See admin/notes/bugtracker.
(log-edit-mode . ((log-edit-rewrite-fixes
"[ \n](bug#\\([0-9]+\\))" . "debbugs:\\1")
(log-edit-font-lock-gnu-style . t)
diff --git a/.gitignore b/.gitignore
index ad4324e8e22..d05352e7124 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,23 +1,265 @@
-configure
-aclocal.m4
-compile
-config.guess
-config.sub
-depcomp
-install-sh
-missing
+# Files that Git should ignore in the Emacs source directory.
+
+# Copyright 2009-2014 Free Software Foundation, Inc.
+
+# 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 .
+
+
+# Currently we assume only Git 1.7.1 (April 2010) or later, so this
+# file does not rely on "**" in patterns. The "**" feature was added
+# in Git 1.8.2 (March 2013).
+
+
+# Built by 'autogen.sh'.
+/aclocal.m4
+/configure
+build-aux/compile
+build-aux/config.guess
+build-aux/config.sub
+build-aux/depcomp
+build-aux/install-sh
+build-aux/missing
lib/Makefile.in
src/config.in
-autom4te.cache
-makefile
-TAGS
-*~
-/README.W32
-/bin/
-/site-lisp/
-/leim/ja-dic/
-etc/refcards/*.aux
-etc/refcards/*.log
+# Built by 'configure'.
+Info.plist
+InfoPlist.strings
+Makefile
+!admin/charsets/Makefile
+!etc/refcards/Makefile
+!test/automated/data/flymake/Makefile
+!test/indent/Makefile
+makefile
+/*.cache
+/confdefs.h
+/config.status
+/configure.lineno
+src/config.h
+src/epaths.h
+
+# C-level sources built by 'make'.
+lib/alloca.h
+lib/arg-nonnull.h
+lib/byteswap.h
+lib/c++defs.h
+lib/dirent.h
+lib/errno.h
+lib/execinfo.h
+lib/fcntl.h
+lib/getopt.h
+lib/inttypes.h
+lib/libgnu.a
+lib/signal.h
+lib/std*.h
+!lib/std*.in.h
+lib/string.h
+lib/sys/
+lib/time.h
+lib/unistd.h
+lib/warn-on-use.h
+src/buildobj.h
+src/globals.h
+
+# Lisp-level sources built by 'make'.
+*cus-load.el
+*loaddefs.el
+leim/changed.misc
+leim/changed.tit
+lisp/cedet/semantic/bovine/c-by.el
+lisp/cedet/semantic/bovine/make-by.el
+lisp/cedet/semantic/bovine/scm-by.el
+lisp/cedet/semantic/wisent/javat-wy.el
+lisp/cedet/semantic/wisent/js-wy.el
+lisp/cedet/semantic/wisent/python-wy.el
+lisp/cedet/srecode/srt-wy.el
+lisp/eshell/esh-groups.el
+lisp/finder-inf.el
+lisp/leim/ja-dic/
+lisp/leim/leim-list.el
+lisp/leim/quail/4Corner.el
+lisp/leim/quail/ARRAY30.el
+lisp/leim/quail/CCDOSPY.el
+lisp/leim/quail/CTLau.el
+lisp/leim/quail/CTLau-b5.el
+lisp/leim/quail/ECDICT.el
+lisp/leim/quail/ETZY.el
+lisp/leim/quail/PY-b5.el
+lisp/leim/quail/PY.el
+lisp/leim/quail/Punct.el
+lisp/leim/quail/Punct-b5.el
+lisp/leim/quail/QJ.el
+lisp/leim/quail/QJ-b5.el
+lisp/leim/quail/SW.el
+lisp/leim/quail/TONEPY.el
+lisp/leim/quail/ZIRANMA.el
+lisp/leim/quail/ZOZY.el
+lisp/leim/quail/quick-b5.el
+lisp/leim/quail/quick-cns.el
+lisp/leim/quail/tsang-b5.el
+lisp/leim/quail/tsang-cns.el
+lisp/subdirs.el
+
+# Dependencies.
+.deps/
+deps/
+
+# Logs and temporaries.
+*.log
+*.tmp
+
+# Time stamps.
+stamp_BLD
+src/gl-stamp
+src/stamp-h.in
+src/stamp-h1
+
+# Object files and debugging.
+*.a
+*.dSYM/
+*.core
+*.elc
+*.o
+*.res
+[0-9]*.core
+core
+core.*[0-9]
+oo/
+oo-spd/
+src/*.map
+
+# Tests.
+test/indent/*.new
+test/biditest.txt
+
+# ctags, etags.
+TAGS
+
+# GNU global.
+GPATH
+GSYMS
+GRTAGS
+GTAGS
+
+# GNU idutils.
+ID
+
+# Executables.
+*.exe
+a.out
+lib-src/blessmail
+lib-src/ctags
+lib-src/ebrowse
+lib-src/emacsclient
+lib-src/etags
+lib-src/hexl
+lib-src/make-docfile
+lib-src/movemail
+lib-src/profile
+lib-src/test-distrib
+lib-src/update-game-score
+nextstep/Cocoa/Emacs.base/Contents/Info.plist
+nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj
+nextstep/Emacs.app/
+nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop
+nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist
+src/bootstrap-emacs
+src/emacs
+src/emacs-[0-9]*
+src/temacs
+
+# Character-set info.
+admin/charsets/*.el
+admin/charsets/*.map
+admin/charsets/jisx2131-filter
+admin/unidata/unidata.txt
+lisp/international/charprop.el
+lisp/international/uni-*.el
+
+# Documentation.
+*.aux
+*.cm
+*.cms
+*.cp
+*.cps
+*.dvi
+*.fn
+*.fns
+*.html
+*.info
+*.ky
+*.kys
+*.op
+*.ops
+*.pdf
+!doc/lispintro/cons-*.pdf
+!doc/lispintro/drawers.pdf
+!doc/lispintro/lambda-*.pdf
+!etc/refcards/gnus-logo.pdf
+*.pg
+*.pgs
+*.pj
+*.pjs
+*.ps
+*.sc
+*.scs
+*.tg
+*.tgs
+*.toc
+*.tp
+*.tps
+*.vr
+*.vrs
+doc/emacs/emacsver.texi
+doc/man/emacs.1
+doc/misc/cc-mode.ss
+etc/DOC
+etc/refcards/emacsver.tex
info/dir
-info/*.info
+
+# Version control and locks.
+*.orig
+*.rej
+*~
+.#*
+\#*\#
+[0-9]*.patch
+
+# Built by 'make install'.
+etc/emacs.tmpdesktop
+
+# Distribution directories.
+/emacs-[1-9]*/
+
+# Microsoft-related builds and installations.
+*.in-h
+_*
+!build-aux/snippet/_Noreturn.h
+/bin/
+/BIN/
+/data/
+etc/icons/
+lib/cxxdefs.h
+lib/SYS/
+/libexec/
+/lock/
+/README.W32
+/share/
+/site-lisp/
+nt/emacs.rc
+nt/emacsclient.rc
+src/gdb.ini
+/var/
diff --git a/CONTRIBUTE b/CONTRIBUTE
new file mode 100644
index 00000000000..dc6fd71624a
--- /dev/null
+++ b/CONTRIBUTE
@@ -0,0 +1,338 @@
+Copyright (C) 2006-2014 Free Software Foundation, Inc.
+See end for license conditions.
+
+
+ Contributing to Emacs
+
+Emacs is a collaborative project and we encourage contributions from
+anyone and everyone. If you want to contribute in the way that will
+help us most, we recommend (1) fixing reported bugs and (2)
+implementing the feature ideas in etc/TODO. However, if you think of
+new features to add, please suggest them too -- we might like your
+idea. Porting to new platforms is also useful, when there is a new
+platform, but that is not common nowadays.
+
+For documentation on Emacs (to understand how to implement your
+desired change), refer to:
+
+- the Emacs Manual
+ http://www.gnu.org/software/emacs/manual/emacs.html
+ (info "(Emacs)Top")
+
+- the Emacs Lisp Reference Manual
+ http://www.gnu.org/software/emacs/manual/elisp.html
+ (info "(elisp)Top")
+
+- http://www.gnu.org/software/emacs
+
+- http://www.emacswiki.org/
+
+There are many ways to contribute to Emacs:
+
+- implement a new feature, and submit a patch (see "Submitting
+ Patches" below).
+
+- answer questions on the Emacs user mailing list
+ https://lists.gnu.org/mailman/listinfo/help-gnu-emacs
+
+- write documentation, either on the wiki, or in the Emacs source
+ repository (see "Submitting Patches" below)
+
+- find and report bugs; use M-x report-emacs-bug
+
+- check if existing bug reports are fixed in newer versions of Emacs
+ http://debbugs.gnu.org/cgi/pkgreport.cgi?which=pkg&data=emacs
+
+- develop a package that works with Emacs, and publish it on your own
+ or in Gnu ELPA (see admin/notes/elpa).
+
+Here are some style and legal conventions for contributors to Emacs:
+
+
+* Coding Standards
+
+Contributed code should follow the GNU Coding Standards
+(http://www.gnu.org/prep/standards/ - may also be available in info on
+your system).
+
+If it doesn't, we'll need to find someone to fix the code before we
+can use it.
+
+Emacs has additional style and coding conventions:
+
+- the "Tips" Appendix in the Emacs Lisp Reference
+ http://www.gnu.org/software/emacs/manual/html_node/elisp/Tips.html
+ (info "(elisp)Tips").
+
+- Avoid using `defadvice' or `eval-after-load' for Lisp code to be
+ included in Emacs.
+
+- Remove all trailing whitespace in all source and text files.
+
+- Emacs has no convention on whether to use tabs in source code;
+ please don't change whitespace in the files you edit.
+
+- Use ?\s instead of ? in Lisp code for a space character.
+
+* Copyright Assignment
+
+The FSF (Free Software Foundation) is the copyright holder for GNU Emacs.
+The FSF is a nonprofit with a worldwide mission to promote computer
+user freedom and to defend the rights of all free software users.
+For general information, see the website http://www.fsf.org/ .
+
+Generally speaking, for non-trivial contributions to GNU Emacs we
+require that the copyright be assigned to the FSF. For the reasons
+behind this, see: http://www.gnu.org/licenses/why-assign.html .
+
+Copyright assignment is a simple process. Residents of some countries
+can do it entirely electronically. We can help you get started, and
+answer any questions you may have (or point you to the people with the
+answers), at the emacs-devel@gnu.org mailing list.
+
+(Please note: general discussion about why some GNU projects ask
+for a copyright assignment is off-topic for emacs-devel.
+See gnu-misc-discuss instead.)
+
+A copyright disclaimer is also a possibility, but we prefer an assignment.
+Note that the disclaimer, like an assignment, involves you sending
+signed paperwork to the FSF (simply saying "this is in the public domain"
+is not enough). Also, a disclaimer cannot be applied to future work, it
+has to be repeated each time you want to send something new.
+
+We can accept small changes (roughly, fewer than 15 lines) without
+an assignment. This is a cumulative limit (e.g. three separate 5 line
+patches) over all your contributions.
+
+* Getting the Source Code
+
+The current working version of the Emacs source code is stored in a
+git repository on the Savannah web site
+(http://savannah.gnu.org/projects/emacs). It is important to write
+your patch based on the current working version. If you start from an
+older version, your patch may be outdated (so that maintainers will
+have a hard time applying it), or changes in Emacs may have made your
+patch unnecessary.
+
+After you have downloaded the repository source, you should read the file
+INSTALL.REPO for build instructions (they differ to some extent from a
+normal build).
+
+* Submitting Patches
+
+Every patch must have several pieces of information before we
+can properly evaluate it.
+
+When you have all these pieces, bundle them up in a mail message and
+send it to the developers. Sending it to bug-gnu-emacs@gnu.org
+(which is the bug/feature list) is recommended, because that list
+is coupled to a tracking system that makes it easier to locate patches.
+If your patch is not complete and you think it needs more discussion,
+you might want to send it to emacs-devel@gnu.org instead. If you
+revise your patch, send it as a followup to the initial topic.
+
+** Description
+
+For bug fixes, a description of the bug and how your patch fixes it.
+
+For new features, a description of the feature and your implementation.
+
+** ChangeLog
+
+A ChangeLog entry as plaintext (separate from the patch).
+
+See the existing ChangeLog files for format and content. Note that,
+unlike some other projects, we do require ChangeLogs for
+documentation, i.e. Texinfo files.
+
+Ref: "Change Log Concepts" node of the GNU Coding Standards Info
+Manual, for how to write good log entries.
+http://www.gnu.org/prep/standards/html_node/Change-Log-Concepts.html
+
+When using git, commit messages should use ChangeLog format, with a
+single short line explaining the change, then an empty line, then
+unindented ChangeLog entries. (Essentially, a commit message should
+be a duplicate of what the patch adds to the ChangeLog files. We are
+planning to automate this better, to avoid the duplication.) You can
+use the Emacs functions log-edit-add-to-changelog or
+log-edit-insert-changelog to ease this process.
+
+** The patch itself.
+
+If you are accessing the Emacs repository, make sure your copy is
+up-to-date (e.g. with 'git pull'). You can commit your changes
+to a private branch and generate a patch from the master version
+by using
+ git format-patch master
+Or you can leave your changes uncommitted and use
+ git diff
+With no repository, you can use
+ diff -u OLD NEW
+
+** Mail format.
+
+We prefer to get the patches as plain text, either inline (be careful
+your mail client does not change line breaks) or as MIME attachments.
+
+** Please reread your patch before submitting it.
+
+** Do not mix changes.
+
+If you send several unrelated changes together, we will ask you to
+separate them so we can consider each of the changes by itself.
+
+** Do not make formatting changes.
+
+Making cosmetic formatting changes (indentation, etc) makes it harder
+to see what you have really changed.
+
+
+* Supplemental information for Emacs Developers.
+
+An "Emacs Developer" is someone who contributes a lot of code or
+documentation to the Emacs repository.
+
+** Write access to the Emacs repository.
+
+Once you become a frequent contributor to Emacs, we can consider
+giving you write access to the version-control repository. Request
+access on the emacs-devel@gnu.org mailing list.
+
+** Using the Emacs repository
+
+Emacs uses git for the source code repository.
+
+See http://www.emacswiki.org/emacs/GitQuickStartForEmacsDevs to get
+started, and http://www.emacswiki.org/emacs/GitForEmacsDevs for more
+advanced information.
+
+Alternately, see admin/notes/git-workflow.
+
+If committing changes written by someone else, make the ChangeLog
+entry in their name, not yours. git distinguishes between the author
+and the committer; use the --author option on the commit command to
+specify the actual author; the committer defaults to you.
+
+** Changelog notes
+
+- Emacs generally follows the GNU coding standards when it comes to
+ ChangeLogs:
+ http://www.gnu.org/prep/standards/html_node/Change-Logs.html . One
+ exception is that we still sometimes quote `like-this' (as the
+ standards used to recommend) rather than 'like-this' (as they do
+ now), because `...' is so widely used elsewhere in Emacs.
+
+- There are multiple ChangeLogs in the emacs source; roughly one per
+ high-level directory. The ChangeLog entry for a commit belongs in the
+ lowest ChangeLog that is higher than or at the same level as any file
+ changed by the commit.
+
+- Preferred form for several entries with the same content:
+
+ * help.el (view-lossage):
+ * kmacro.el (kmacro-edit-lossage):
+ * edmacro.el (edit-kbd-macro): Fix docstring, lossage is now 300 keys.
+
+ (Rather than anything involving "ditto" and suchlike.)
+
+- In ChangeLog files, there is no standard or recommended way to
+ identify revisions.
+
+ One way to identify revisions is by quoting their summary line.
+ Another is with an action stamp - an RFC3339 date followed by !
+ followed by the committer's email - for example,
+ "2014-01-16T05:43:35Z!esr@thyrsus.com". Often, "my previous commit"
+ will suffice.
+
+- There is no need to make separate change log entries for files such
+ as NEWS, MAINTAINERS, and FOR-RELEASE, or to indicate regeneration
+ of files such as 'configure'. "There is no need" means you don't
+ have to, but you can if you want to.
+
+** branches
+
+Development normally takes places on the trunk.
+Sometimes specialized features are developed on separate branches
+before possibly being merged to the trunk.
+
+Development is discussed on the emacs-devel mailing list.
+
+Sometime before the release of a new major version of Emacs a "feature
+freeze" is imposed on the trunk, to prepare for creating a release
+branch. No new features may be added to the trunk after this point,
+until the release branch is created. This freeze is announced on the
+emacs-devel mailing list, and not anywhere else.
+
+The trunk branch is named "master" in git; release branches are named
+"emacs-nn" where "nn" is the major version.
+
+You must follow emacs-devel to know exactly what kinds of changes are
+allowed on what branch at any time. Announcements about the freeze
+(and other important events) will contain "ANNOUNCE" in the subject.
+
+If you are fixing a bug that exists in the current release, be sure to
+commit it to the release branch; it will be merged to the master
+branch later.
+
+However, if you know that the change will be difficult to merge to the
+trunk (eg because the trunk code has changed a lot), you can apply the
+change to both trunk and branch yourself. Indicate in the release
+branch commit log that there is no need to merge the commit to the
+trunk; start the commit message with "Backport:". gitmerge.el will
+then exclude that commit from the merge to trunk.
+
+
+** Other process information
+
+See all the files in admin/notes/* . In particular, see
+admin/notes/newfile, see admin/notes/repo.
+
+** Emacs Mailing lists.
+
+Discussion about Emacs development takes place on emacs-devel@gnu.org.
+
+Bug reports and fixes, feature requests and implementations should be
+sent to bug-gnu-emacs@gnu.org, the bug/feature list. This is coupled
+to the tracker at http://debbugs.gnu.org .
+
+You can subscribe to the mailing lists, or see the list archives,
+by following links from http://savannah.gnu.org/mail/?group=emacs .
+
+** Document your changes.
+
+Any change that matters to end-users should have an entry in etc/NEWS.
+
+Think about whether your change requires updating the documentation
+(both manuals and doc-strings). If you know it does not, mark the NEWS
+entry with "---". If you know that *all* the necessary documentation
+updates have been made, mark the entry with "+++". Otherwise do not mark it.
+
+** Understanding Emacs Internals.
+
+The best way to understand Emacs Internals is to read the code,
+but the nodes "Tips" and "GNU Emacs Internals" in the Appendix
+of the Emacs Lisp Reference Manual may also help.
+
+The file etc/DEBUG describes how to debug Emacs bugs.
+
+
+
+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 .
+
+Local variables:
+mode: outline
+paragraph-separate: "[ ]*$"
+end:
diff --git a/ChangeLog b/ChangeLog
index 2dfef7037fe..7e68314438d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,591 @@
+2014-12-23 Paul Eggert
+
+ Merge from gnulib
+ 2014-12-20 utimens: remove unnecessary assert
+ 2014-12-16 stdalign: port better to HP compilers
+ 2014-12-16 stdalign: work around Apple GCC 4.0 bug
+ * lib/stdalign.in.h, lib/utimens.c, m4/stdalign.m4: Update from gnulib.
+
+2014-12-14 Paul Eggert
+
+ Spelling fixes
+ All uses changed.
+ * lib-src/etags.c (analyze_regex): Rename from analyse_regex.
+ * lisp/cedet/semantic/lex-spp.el:
+ (semantic-lex-spp-analyzer-do-replace):
+ Rename from semantic-lex-spp-anlyzer-do-replace.
+ * lisp/emacs-lisp/cconv.el (cconv--analyze-use):
+ Rename from cconv--analyse-use.
+ (cconv--analyze-function): Rename from cconv--analyse-function.
+ (cconv-analyze-form): Rename from cconv-analyse-form.
+ * src/regex.c (analyze_first): Rename from analyze_first.
+
+2014-12-14 Glenn Morris
+
+ * make-dist: No more lib-src/grep-changelog.
+
+ * INSTALL.REPO: Revert 2014-12-06 change.
+
+2014-12-13 Paul Eggert
+
+ * lib/gnulib.mk: Regenerate.
+
+2014-12-13 Paul Eggert
+
+ Git ignore lib/std*.h
+ * .gitignore: Add lib/std*.h, to ignore stdarg.h, stdbool.h, and
+ stddef.h. Remove subsumed entries.
+ Add !lib/std*.in.h, so as to not ignore the .in.h files.
+
+2014-12-13 Paul Eggert
+
+ Port commit-msg to mawk
+ Problem reported by Ted Zlatanov in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg01093.html
+ * build-aux/git-hooks/commit-msg (space, non_space, non_print):
+ New vars. Use them as approximations to POSIX bracket expressions,
+ on implementations like mawk that do not support POSIX regexps.
+
+ Improve commit-msg messages and autosquash
+ Problem reported by Michal Nazarewicz in Bug#19337.
+ * build-aux/git-hooks/commit-msg: Add "commit message" to
+ diagnostics. Distinguish better between tabs and other
+ unprintable chars in diagnostics. Don't complain if a prefix
+ "fixup! " or "squash! " makes a summary line too long.
+
+2014-12-13 Paul Eggert
+
+ Port commit-message checking to FreeBSD 9.
+ This fixes a bug reported by Jan Djärv in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-12/msg00704.html
+ along with some other issues I noticed while testing with FreeBSD.
+ * build-aux/git-hooks/commit-msg: Prefer gawk if available.
+ Prefer en_US.UTF-8 to en_US.utf8, as it's more portable.
+ Work around bug in FreeBSD 9 awk, where /[[:cntrl:]]/ matches
+ ordinary text characters.
+ Be less tricky about quoting "'" in a shell script.
+
+2014-12-13 Stefan Monnier
+
+ * .gitignore: Ignore autosave files.
+
+2014-12-12 Paul Eggert
+
+ Merge from gnulib
+ 2014-12-12 stddef: support C11's max_align_t
+ 2014-12-11 unistd: fix iOS check conditional
+ 2014-12-08 apply _GL_ATTRIBUTE_PURE to some inline functions
+ 2014-12-02 support GNU format printf and scanf on mingw
+ * lib/stat-time.h, lib/stddef.in.h, lib/timespec.h:
+ * m4/extensions.m4, m4/stddef_h.m4, m4/stdio_h.m4: Update from gnulib.
+ * lib/gnulib.mk: Regenerate.
+
+2014-12-06 Stephen Leake
+
+ * CONTRIBUTE: Improve; add explicit web references, move some info
+ from admin/notes/* here.
+
+ * INSTALL.REPO: You can't "just run make" after a clean checkout.
+
+2014-12-05 Stephen Leake
+
+ * CONTRIBUTE: Move here from etc/, preparatory to further
+ changes/cleanup.
+
+2014-12-05 Paul Eggert
+
+ * .gitignore: Remove redundant pattern (subsumed by _*).
+ Avoid "**", as it requires Git 1.8.2 or later.
+
+2014-12-05 Eli Zaretskii
+
+ * .gitignore: Ignore test/biditest.txt.
+
+2014-12-01 Lars Magne Ingebrigtsen
+
+ * .gitignore: Ignore loaddefs directly under lisp, and in
+ sub-sub-directories.
+
+2014-11-29 Paul Eggert
+
+ Add more of the old .bzrignore to .gitignore.
+ Plus a few more .gitignore improvements.
+ * .gitignore: Add copyright notice, since it's big enough.
+ Put exceptions immediately after the patterns they're exceptions
+ to, to make them easier to follow.
+ Give four exceptions for the Makefile pattern.
+ Ignore /confdefs.h, test/indent/*.new, TAGS, GPATH, GSYMS, GRTAGS,
+ GTAGS, ID, *.exe, some nextstep-related files,
+ jisx2131-filter, *.orig, *.rej, etc/emacs.tmpdesktop, *.in-h
+ _* (except for build-aux/snippet/_Noreturn.h), /bin/, /BIN/,
+ /data/, etc/icons/, lib/cxxdefs.h, lib/SYS/, /libexec/, /lock/,
+ /README.W32, /share/, /site-lisp/, src/gdb.ini, /var/.
+ Ignore /configure.lineno, since POSIX requires
+ LINENO only with the User Portability Utilities option.
+ Ignore *cust-load.el and *loaddefs.el only under lisp.
+ Ignore core files of various flavors.
+ Do not ignore etc/refcards/gnus-logo.pdf.
+
+2014-11-29 Eli Zaretskii
+
+ * .gitignore: Add back src/_gdbinit, which is a temporary file
+ created by the MS-DOS build.
+
+2014-11-29 Paul Eggert
+
+ Add a.out to .gitignore.
+ Suggested by Lee Duhem in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg01665.html
+ * .gitignore: Add a.out.
+ Move *.log next to *.tmp, since it's generic.
+ Put *.exe before non-generics.
+
+2014-11-29 Eli Zaretskii
+
+ * .gitignore: Resurrect Windows-specific ignorables lost in last
+ changes.
+
+2014-11-29 Paul Eggert
+
+ * .gitignore: Add /emacs-[1-9]*/, and sort better.
+
+2014-11-29 Ivan Andrus
+
+ * .gitignore: Add some nextstep/mac ignorables.
+
+2014-11-29 Paul Eggert
+
+ .gitignore cleanup.
+ * .gitignore: Merge contents of subsidiary files and organize the
+ result so as to avoid duplication. Remove no-longer needed entries.
+ * admin/charsets/.gitignore, admin/unidata/.gitignore:
+ * doc/lispintro/.gitignore, etc/.gitignore, leim/.gitignore:
+ * leim/ja-dic/.gitignore, lib-src/.gitignore, lisp/.gitignore:
+ * lisp/calc/.gitignore, lisp/calendar/.gitignore:
+ * lisp/cedet/.gitignore, lisp/emulation/.gitignore:
+ * lisp/erc/.gitignore, lisp/eshell/.gitignore, lisp/gnus/.gitignore:
+ * lisp/international/.gitignore, lisp/language/.gitignore:
+ * lisp/leim/.gitignore, lisp/leim/quail/.gitignore:
+ * lisp/mail/.gitignore, lisp/mh-e/.gitignore, lisp/net/.gitignore:
+ * lisp/nxml/.gitignore, lisp/obsolete/.gitignore:
+ * lisp/play/.gitignore, lisp/progmodes/.gitignore:
+ * lisp/term/.gitignore, lisp/textmodes/.gitignore:
+ * lisp/url/.gitignore, nt/.gitignore, src/.gitignore:
+ Remove; no longer needed.
+
+2014-11-29 Glenn Morris
+
+ * configure.ac: Simplify gnutls tests.
+
+2014-11-28 Stefan Monnier
+
+ * .gitignore: Add entries for emacsvers files.
+
+2014-11-27 Paul Eggert
+
+ Restore 'Bug#' -> 'debbugs:' rewrite in log-edit-mode.
+ * .dir-locals.el (log-edit-mode): Restore the (log-edit-rewrite-fixes
+ "[ \n](bug#\\([0-9]+\\))" . "debbugs:\\1"). See Glenn Morris in:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg01187.html
+
+ Simplify and fix doc-related .gitignore files.
+ This fixes some unwanted 'git status' output after 'make docs'.
+ * .gitignore: Add **/Makefile, **/makefile.
+ Remove Makefile, makefile.
+ Add doc/*/*.xxx rules for the usual kinds of documentation outputs
+ and temporaries. Add doc/misc/cc-mode.ss.
+ * doc/emacs/.gitignore, doc/lispintro/.gitignore, doc/misc/.gitignore:
+ * lwlib/.gitignore, oldXMenu/.gitignore:
+ Remove, as these .gitignore files are no longer needed.
+ * doc/lispintro/.gitignore: Replace with list of exceptional PDF files.
+
+2014-11-26 Dani Moncayo
+
+ * configure.ac [MINGW]: Fix the way of getting the right host
+ platform.
+
+2014-11-25 Glenn Morris
+
+ * configure.ac: Fix yesterday's use of uninitialised $version.
+
+2014-11-25 Oscar Fuentes
+
+ * configure.ac [MINGW]: Set $canonical default value as per the
+ compiler's target.
+
+2014-11-24 Glenn Morris
+
+ * configure.ac [HAVE_W32]: Generate nt/*.rc files when HAVE_W32,
+ not just when using mingw32.
+
+2014-11-22 Glenn Morris
+
+ Further reduce number of versioned files storing Emacs version number.
+ * configure.ac (comma_version, comma_space_version) [mingw32]:
+ New output variables.
+ (nt/emacs.rc, nt/emacsclient.rc) [mingw32]: New output files.
+ * make-dist: Update nt/ for *.rc -> *.rc.in changes.
+
+2014-11-19 Dani Moncayo
+
+ * build-aux/msys-to-w32: Simplify implementation and docstring;
+ Paths starting with '%emacs_dir%' are just considered relative.
+
+2014-11-16 Christoph Scholtes
+
+ * .gitignore: Ignore generated file lib/stdalign.h.
+
+2014-11-16 Eli Zaretskii
+
+ * .gitignore: Add more ignorables.
+
+2014-11-14 Andreas Schwab
+
+ * Makefile.in (config.status): Don't depend on
+ ${srcdir}/lisp/version.el.
+
+2014-11-14 Paul Eggert
+
+ Merge from gnulib.
+ 2014-11-14 extern-inline: update commentary about GCC bugs
+ 2014-11-06 unistd: port to iOS
+ 2014-11-04 update from texinfo
+ * doc/misc/texinfo.tex, lib/unistd.in.h, m4/extern-inline.m4:
+ Update from gnulib.
+
+ build: port to GCC 4.6.4 + glibc 2.5
+ On platforms this old, building with _FORTIFY_SOURCE equal to 2
+ results in duplicate definitions of standard library functions.
+ Problem reported by Nelson H. F. Beebe.
+ * configure.ac (_FORTIFY_SOURCE): Sort after GNULIB_PORTCHECK.
+ By default, do not enable this unless GNULIB_PORTCHECK is defined.
+ This better matches the original intent, which as I recall was to
+ enable these extra checks only with --enable-gcc-warnings.
+
+2014-11-14 David Reitter
+
+ * Makefile.in (install-arch-indep): Compress publicsuffix.txt file.
+
+2014-11-13 Paul Eggert
+
+ * .dir-locals.el: Remove reference to bzr commit --fixes debbugs.
+
+2014-11-13 Lars Magne Ingebrigtsen
+
+ * .gitignore: Copy over sufficient ignorable files from the old
+ .bzrignore that a simple build doesn't list lots of unregistered files.
+
+2014-11-11 Eric S. Raymond
+
+ * Makefile.in: git transition - set VCWITNESS appropriately for git.
+
+ All bzr revision IDS, and all CVS revision IDs for which a commit
+ could be identified, were changed to time-date!committer version
+ stamps. All .cvsignore files in the history became .gitignore
+ files. Fixes-bug annotations from bzr were copied into the
+ corresponding commit comments.
+
+ (The first .cvsignore commit was 1999-09-30T14:07:54Z!fx@gnu.org.
+ The last CVS commit was 2009-12-27T08:11:12Z!cyd@stupidchicken.com.)
+
+ Committer/author email addresses are generally correct for the
+ transition day, not necessarily when the commit was originally made.
+
+2014-11-10 Glenn Morris
+
+ * configure.ac (doc/man/emacs.1): Generate it.
+ * Makefile.in (top_bootclean): Remove doc/man/emacs.1.
+ * make-dist: Do not distribute doc/man/emacs.1.
+
+ * configure.ac (etc/refcards/emacsver.tex): Generate it.
+ * Makefile.in (etc-emacsver): New PHONY rule.
+ (bootstrap-clean): Delete etc/refcards/emacsver.tex.
+
+ * configure.ac (doc/emacs/emacsver.texi): Generate it.
+ * make-dist (doc/emacs/emacsver.texi) [update]: No longer check it.
+
+2014-11-08 Dani Moncayo
+
+ * build-aux/msys-to-w32: Simplify the initial over-engineered
+ interface, and the implementation.
+ * Makefile.in (epaths-force-w32): Update for the above. Also
+ simplify, assuming that the shell is bash (which is the case in MSYS).
+ (msys_w32prefix_subst, msys_sed_sh_escape): Remove (no longer used).
+
+2014-11-05 Glenn Morris
+
+ * Makefile.in (QUIET_SUBMAKE): Remove.
+ (install-info, uninstall): Use --no-print-directory. (Bug#18908)
+
+2014-10-25 Eric S. Raymond
+
+ * autogen.sh: Neutralize language specific to a repository type.
+
+2014-10-23 Paul Eggert
+
+ * Makefile.in (ACLOCAL_INPUTS): Omit unnecessary use of 'wildcard'.
+
+ Fix race in 'make info/dir', and speed it up.
+ * Makefile.in (AWK, srcdir_doc_info_dir_inputs, info_dir_inputs):
+ New macros.
+ (clean): Remove info-dir.*.
+ (info_dir_deps): Depend on make-info-dir too.
+ (${srcdir}/info/dir): Make sure info directory exists.
+ Don't call pwd; just redirect make-info-dir's stdout to temp file.
+ * build-aux/make-info-dir: Send output to stdout.
+ Take input file names from args.
+ Fix a "FIXME inefficient looping" by using awk's associative arrays.
+ Basically, this rewrites the script from scratch, and speeds up
+ 'make info/dir' from 2.6s to 0.07s on my platform.
+
+2014-10-20 Glenn Morris
+
+ * Merge in all changes up to 24.4 release.
+
+2014-10-19 Paul Eggert
+
+ Merge from gnulib, incorporating:
+ 2014-10-18 readlinkat: port to AIX 7.1
+ 2014-10-07 fcntl: fix error reporting by dupfd
+ * lib/fcntl.c, lib/readlinkat.c, lib/unistd.in.h, m4/readlinkat.m4:
+ * m4/unistd_h.m4: Update from gnulib.
+ * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
+
+2014-10-17 Glenn Morris
+
+ * configure.ac: Simplify OS X $canonical tests.
+
+2014-10-15 Jan Djärv
+
+ * configure.ac: Move the OSX 10.6 test.
+
+2014-10-15 Stefan Monnier
+
+ * .bzrignore: Add uni-brackets.el.
+
+2014-10-14 Jan Djärv
+
+ * configure.ac: apple-darwin powerpc is unported.
+ Require OSX >= 10.6 even if --with-ns is not given.
+
+2014-10-12 Ken Brown
+
+ * configure.ac (LD_SWITCH_SYSTEM_TEMACS) [CYGWIN]: Set stack size
+ to 8 MB. (Bug#18438)
+
+2014-10-12 Jan Djärv
+
+ * configure.ac: Require OSX 10.6. Remove NSInteger test,
+ use nsfont for Gnustep, macfont for OSX.
+
+2014-10-12 Paul Eggert
+
+ Fix putenv race conditions that can crash Emacs (Bug#8705).
+ * configure.ac (LOCALTIME_CACHE): Remove.
+ We needn't worry about SunOS 4 any more; Sun dropped support in 2003.
+ All uses of LOCALTIME_CACHE removed. This simplifies the fix.
+ (tzalloc): Add check for this function.
+
+2014-10-06 Jan Djärv
+
+ * configure.ac: Add -Wno-string-plus-int for clang.
+
+2014-10-04 Glenn Morris
+
+ * configure.ac: Silence warning with some old Xrandr.h. (Bug#18465)
+
+2014-10-03 Paul Eggert
+
+ * configure.ac: Port to strict POSIX shells on non-MinGW (Bug#18612).
+
+2014-09-29 Eli Zaretskii
+
+ * README: Bump version to 25.0.50.
+
+ * configure.ac (AC_INIT): Bump version to 25.0.50.
+
+2014-09-29 Dmitry Antipov
+
+ * configure.ac (HAVE_STATEMENT_EXPRESSIONS): Remove.
+ For USE_STACK_LISP_OBJECTS, we always assume __GNUC__.
+
+2014-09-27 Ken Brown
+
+ * configure.ac [CYGWIN]: Enable sound support.
+
+2014-09-25 Paul Eggert
+
+ * configure.ac (MAKEINFO): Allow 'makeinfo' to be called 'texi2any'.
+
+2014-09-23 Paul Eggert
+
+ Merge from gnulib, incorporating:
+ 2014-09-11 fcntl-h: fix compilation with Intel C++ compiler
+ 2014-09-04 pthread, pthread_sigmask, threadlib: port to Ubuntu 14.04
+
+2014-09-22 Jan Djärv
+
+ * configure.ac: Increase headerpad_extra to 1000, update the comment
+ about load commands (Bug#18505).
+
+2014-09-15 Eli Zaretskii
+
+ * configure.ac (HAVE_SOUND): Check for mmsystem.h header that
+ defines the sound stuff on MS-Windows. (Bug#18463)
+
+2014-09-10 Paul Eggert
+
+ Improve the experimental local and scoped allocation.
+ * configure.ac (HAVE_STRUCT_ATTRIBUTE_ALIGNED)
+ (HAVE_STATEMENT_EXPRESSIONS): New configure-time checks.
+
+2014-09-07 Paul Eggert
+
+ Expand @AM_DEFAULT_VERBOSITY@ even if Automake is old (Bug#18415).
+ * configure.ac: Assume verbose output for older Automake.
+
+2014-09-04 Paul Eggert
+
+ * configure.ac (MAKEINFO): Clean up some configuration bitrot.
+ MAKEINFO is already set before we get here, so no need to call AC_PATH_PROG.
+ Bypass $am_missing_run. Simplify version-number checking.
+
+2014-09-02 Paul Eggert
+
+ Merge from gnulib, incorporating:
+ 2014-09-02 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
+ 2014-09-01 manywarnings: add GCC 4.9 warnings
+ * m4/gnulib-common.m4, m4/manywarnings.m4: Update from gnulib.
+
+2014-09-01 Paul Eggert
+
+ --enable-silent-rules now suppresses more chatter.
+ * INSTALL: Document this.
+
+ Clean up extern decls a bit.
+ * configure.ac (WERROR_CFLAGS): Don't disable -Wnested-externs.
+ While we're at it, don't disable -Wlogical-op either.
+
+2014-08-31 Paul Eggert
+
+ * configure.ac (MAKE): Export it, for config.status.
+ Needed on AIX when 'configure' infers MAKE=gmake.
+ (__restrict_arr): Remove; no longer used.
+
+2014-08-30 Paul Eggert
+
+ Vector-sorting fixes (Bug#18361).
+ * configure.ac (qsort_r): Remove, as we no longer use qsort-like
+ functions.
+ * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
+ * lib/vla.h, m4/vararrays.m4: New files, copied from gnulib.
+ * lib/stdlib.in.h, m4/stdlib_h.m4: Sync from gnulib, incorporating:
+ 2014-08-29 qsort_r: new module, for GNU-style qsort_r
+ The previous two files' changes are boilerplate generated by
+ admin/merge-gnulib, and should not affect Emacs.
+
+2014-08-29 Dmitry Antipov
+
+ * configure.ac (AC_CHECK_FUNCS): Check for qsort_r.
+
+2014-08-28 Ken Brown
+
+ * configure.ac (HYBRID_MALLOC): New macro; define to use gmalloc
+ before dumping and the system malloc after dumping. Define on
+ Cygwin. (Bug#18222)
+
+2014-08-28 Glenn Morris
+
+ * Makefile.in (appdatadir): New variable.
+ (install-etc, uninstall, clean): Handle etc/emacs.appdata.xml.
+
+2014-08-27 Paul Eggert
+
+ Improve robustness of new string-collation code (Bug#18051).
+ * configure.ac (newlocale): Check for this, not for uselocale.
+
+2014-08-26 Dmitry Antipov
+
+ Detect features needed to handle C stack overflows.
+ * configure.ac: Check for sigaltstack and related sigaction
+ support. Unconditionally check for sigsetjmp and siglongjmp.
+ (HAVE_STACK_OVERFLOW_HANDLING): Define if we can support it.
+
+ (HAVE_LINUX_SYSINFO): Avoid false positive on Solaris.
+
+2014-08-25 Ken Brown
+
+ * configure.ac (G_SLICE_ALWAYS_MALLOC): Remove obsolete macro.
+
+2014-08-25 Christoph Scholtes
+
+ * INSTALL.REPO: Remove reference to obsolete configure scripts
+ on non-Posix platforms (Bug#18323).
+
+2014-08-24 Michael Albinus
+
+ * configure.ac: Check also for the uselocale function. (Bug#18051)
+
+2014-08-23 Karol Ostrovsky (tiny change)
+
+ * configure.ac: Accept "*-mingw*", not just "*-mingw32", as
+ canonical name of a MinGW build, because using MSYS2 'uname'
+ produces "MINGW64".
+
+2014-08-21 Ken Brown
+
+ * configure.ac (HAVE_XPM): Explain the use of CPPFLAGS in the
+ Cygwin-w32 build. (Bug#18302)
+
+2014-08-11 Paul Eggert
+
+ Don't prevent random file systems from being unmounted (Bug#18232).
+ This fix relies on having the 'fchdir' function, and on having
+ "." be searchable (or at least readable, on platforms lacking O_SEARCH),
+ but that's good enough to handle the vast majority of cases and the
+ remaining folks can just live with the annoyance of file systems
+ that occasionally can't be unmounted.
+ * configure.ac (fchdir): New function to check for.
+ * lib/save-cwd.c: Copy from gnulib, except omit the part that
+ allocates memory, since that can cause problems in Emacs.
+ * lib/save-cwd.h: Copy from gnulib.
+
+2014-08-10 Eli Zaretskii
+
+ * config.bat: Fix some confusing wording.
+
+2014-08-09 Eli Zaretskii
+
+ * config.bat: Fix EOL format in lines modified by last commit.
+
+2014-08-09 Reuben Thomas
+
+ * make-dist (files): Remove msdos/is_exec.c and sigaction.c.
+ * config.bat: Require DJGPP 2.02 or later.
+
+2014-08-09 Paul Eggert
+
+ Merge from gnulib, incorporating:
+ 2014-08-07 getdtablesize: fall back on sysconf (_SC_OPEN_MAX)
+ 2014-08-05 sys_select: fix FD_ZERO problem on Solaris 10
+ * lib/getdtablesize.c, lib/sys_select.in.h: Update from gnulib.
+
+2014-08-07 Reuben Thomas
+
+ * README: ``MSDOG'' becomes ``MS-DOS''.
+
+2014-08-04 Paul Eggert
+
+ Merge from gnulib, incorporating:
+ 2014-08-04 extern-inline: port to FreeBSD, DragonFly
+ * lib/gnulib.mk: Regenerate (comment change only).
+ * m4/extern-inline.m4: Update from gnulib.
+
+2014-08-02 Paul Eggert
+
+ * configure.ac (HAVE_TIMERFD): Also check for TFD_NONBLOCK,
+ since the code is using TFD_NONBLOCK now.
+
2014-07-31 Paul Eggert
Simplify timerfd configuration and fix some minor glitches.
@@ -226,6 +814,7 @@
dumped heap size depending on 32/64bits arch on Windows.
Don't check for pthreads.h on MinGW32/64, it gets in the way.
Use mmap(2) for buffers and system malloc for MinGW32/64.
+ (EMACS_HEAPSIZE): Remove.
2014-05-27 Paul Eggert
@@ -1380,8 +1969,8 @@
2013-07-29 Michael Albinus
- * INSTALL (DETAILED BUILDING AND INSTALLATION): Add
- --without-file-notification to --without-all.
+ * INSTALL (DETAILED BUILDING AND INSTALLATION):
+ Add --without-file-notification to --without-all.
2013-07-29 Xue Fuqiao
@@ -1654,8 +2243,8 @@
CONFIG_SITE for the MSYS build on MS-Windows.
(Makefile): Use $(CFG).
- * .bzrignore: Ignore *.res, *.tmp, and *.map. Remove
- src/emacs.res.
+ * .bzrignore: Ignore *.res, *.tmp, and *.map.
+ Remove src/emacs.res.
2013-05-16 Paul Eggert
@@ -2063,7 +2652,7 @@
2012-12-13 Andreas Schwab
* Makefile.in (install-info): Use `${MAKE} -s' for echo-info.
- (uninstall): Likewise. (Bug#13143)
+ (uninstall): Likewise. (Bug#13142)
2012-12-11 Paul Eggert
@@ -8181,7 +8770,7 @@
* configure.in (HAVE_XIM): Define if XIM is available.
-2003-07-29 Tim Van Holder (tiny change)
+2003-07-29 Tim Van Holder
* configure.in: The function gtk_window_set_icon_from_file was
introduced in GTK+ 2.2, so check for that release.
@@ -8415,7 +9004,7 @@
* configure.in (*-sunos5.8*, *-solaris2.8*): New configurations.
-2002-11-11 Tim Van Holder (tiny change)
+2002-11-11 Tim Van Holder
* Makefile.in (install-arch-indep): Prepend $(srcdir)/ to lisp.
@@ -13269,7 +13858,7 @@
detail: -with-x... and --srcdir.
(options, boolean_opts): Delete; we don't have enough options to
make this worthwhile.
- (prefix, bindir, lisppath, datadir, libdir, lockdir): Deleted,
+ (prefix, bindir, lisppath, datadir, libdir, lockdir): Delete,
along with the code which supported them; these should be set as
arguments to the top-level make.
(config_h_opts): Since this no longer doubles as a list of option
diff --git a/INSTALL b/INSTALL
index 94fa6ba653b..81140a21ab4 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,5 @@
GNU Emacs Installation Guide
-Copyright (C) 1992, 1994, 1996-1997, 2000-2014 Free Software Foundation,
-Inc.
+Copyright (C) 1992, 1994, 1996-1997, 2000-2014 Free Software Foundation, Inc.
See the end of the file for license conditions.
@@ -34,9 +33,9 @@ some of the steps manually. The more detailed description in the other
sections of this guide will help you do that, so please refer to those
sections if you need to.
- 1. Unpacking the Emacs 24.1 release requires about 180 MB of free
- disk space. Building Emacs uses about another 70 MB of space.
- The final installed Emacs uses about 110 MB of disk space.
+ 1. Unpacking the Emacs 24 release requires about 200 MB of free
+ disk space. Building Emacs uses about another 200 MB of space.
+ The final installed Emacs uses about 150 MB of disk space.
This includes the space-saving that comes from automatically
compressing the Lisp source files on installation.
@@ -208,24 +207,11 @@ corresponding command is `yum-builddep emacs'.
DETAILED BUILDING AND INSTALLATION:
-(This is for a Unix or Unix-like system. For MS-DOS and MS Windows 3.X,
-see msdos/INSTALL. For later versions of MS Windows, see the file
-nt/INSTALL. For GNUstep and Mac OS X, see nextstep/INSTALL.)
+(This is for a Unix or Unix-like system. For GNUstep and Mac OS X,
+see nextstep/INSTALL. For non-ancient versions of MS Windows, see
+the file nt/INSTALL. For MS-DOS and MS Windows 3.X, see msdos/INSTALL.)
-1) Make sure your system has enough swapping space allocated to handle
-a program whose pure code is 1.5 MB and whose data area is at
-least 2.8 MB and can reach 100 MB or more. If the swapping space is
-insufficient, you will get an error in the command `temacs -batch -l
-loadup dump', found in `./src/Makefile.in', or possibly when
-running the final dumped Emacs. (This should not be an issue
-on any recent system.)
-
-Building Emacs requires about 230 MB of disk space (including the
-Emacs sources). Once installed, Emacs occupies about 120 MB in the file
-system where it is installed; this includes the executable files, Lisp
-libraries, miscellaneous data files, and on-line documentation. If
-the building and installation take place in different directories,
-then the installation procedure momentarily requires 230+120 MB.
+1) See the basic installation summary above for the disk space requirements.
2) In the unlikely event that `configure' does not detect your system
type correctly, consult `./etc/MACHINES' to see what --host, --build
@@ -264,8 +250,7 @@ Gtk or Motif, if you have the Xaw3d library installed (see
"Image support libraries" above for Xaw3d availability).
You can tell configure where to search for GTK by giving it the
-argument PKG_CONFIG='/full/name/of/pkg-config'. GTK version 2.6 or
-newer is required for Emacs.
+argument PKG_CONFIG='/full/name/of/pkg-config'.
Emacs will autolaunch a D-Bus session bus, when the environment
variable DISPLAY is set, but no session bus is running. This might be
@@ -328,6 +313,11 @@ and is useful with GNU-compatible compilers. On a recent GNU system
there should be no warnings; on older and on non-GNU systems the
generated warnings may still be useful.
+Use --enable-silent-rules to cause 'make' to chatter less. This is
+helpful when combined with options like --enable-gcc-warnings that
+generate long shell-command lines. 'make V=0' also suppresses the
+chatter.
+
Use --enable-link-time-optimization to enable link-time optimizer. If
you're using GNU compiler, this feature is supported since version 4.5.0.
If `configure' can determine number of online CPUS on your system, final
@@ -369,8 +359,7 @@ without sound support.
`configure' doesn't do any compilation or installation itself.
It just creates the files that influence those things:
`./Makefile' in the top-level directory and several subdirectories;
-and `./src/config.h'. For details on exactly what it does, see the
-section called `CONFIGURATION BY HAND', below.
+and `./src/config.h'.
When it is done, `configure' prints a description of what it did and
creates a shell script `config.status' which, when run, recreates the
@@ -425,11 +414,6 @@ those libraries are. For example:
./configure \
PKG_CONFIG_PATH='/usr/local/alsa/lib/pkgconfig:/opt/gtk+-2.8/lib/pkgconfig'
-The work of `configure' can be done by editing various files in the
-distribution, but using `configure' is easier. See the section called
-"CONFIGURATION BY HAND" below if you want to do the configuration
-yourself.
-
3b) To build in a separate directory, go to that directory
and run the program `configure' as follows:
@@ -439,9 +423,6 @@ SOURCE-DIR refers to the top-level Emacs source directory which is
where Emacs's configure script is located. `configure' looks for the
Emacs source code in the directory that `configure' is in.
-(Do not try to build in a separate directory by creating many links to
-the real source directory--there is no need, and installation will fail.)
-
4) Put into `./lisp/site-init.el' or `./lisp/site-load.el' any Emacs
Lisp code you want Emacs to load before it is dumped out. Use
site-load.el for additional libraries if you arrange for their
@@ -483,8 +464,7 @@ installed locations, with `make install'. By default, Emacs's files
are installed in the following directories:
`/usr/local/bin' holds the executable programs users normally run -
- `emacs', `etags', `ctags', `emacsclient', and
- `grep-changelog'.
+ `emacs', `etags', `ctags', `emacsclient'.
`/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library;
`VERSION' stands for the number of the Emacs version
@@ -554,11 +534,7 @@ to enable it to write the lock files. We believe this is safe.
9) You are done! You can remove executables and object files from
the build directory by typing `make clean'. To also remove the files
that `configure' created (so you can compile Emacs for a different
-configuration), type `make distclean'. If you don't need some, or all
-of the input methods from the Leim package, you can remove the
-unneeded files in the leim subdirectories of your site's lisp
-directory (usually /usr/local/share/emacs/VERSION/).
-
+configuration), type `make distclean'.
MAKE VARIABLES
@@ -666,94 +642,6 @@ Makefiles for the subdirectories, so you don't have to specify them
when running make in the subdirectories.
-CONFIGURATION BY HAND
-
-This should not be necessary and is not recommended. Instead of
-running the `configure' program, you have to perform the following steps.
-
-1) Copy `./src/config.in' to `./src/config.h'.
-
-2) Edit `./src/config.h' to set the right options for your system.
-
-3) Create `Makefile' files in various directories from the
-corresponding `Makefile.in' files. This isn't so hard, just a matter
-of editing in appropriate substitutions for the @...@ constructs.
-
-The `configure' script is built from `configure.ac' by the
-`autogen.sh' script, which checks that `autoconf' and other build
-tools are sufficiently up to date and then runs the build tools.
-
-BUILDING GNU EMACS BY HAND
-
-Once Emacs is configured, running `make' in the top directory performs
-the following steps.
-
-1) Run `make epaths-force' in the top directory. This produces
-`./src/epaths.h' from the template file `./src/epaths.in', changing
-the paths to the values specified in `./Makefile'.
-
-2) Go to directory `./lib' and run `make'. This creates include files
-and libraries used in later steps.
-
-3) Go to directory `./lib-src' and run `make'. This creates
-executables named `etags', `make-docfile', and others.
-
-4) Go to directory `./src' and run `make'. This refers to files in
-the `./lisp', `./lib', and `./lib-src' subdirectories using names
-`../lisp', `../lib', and `../lib-src'.
-
-This creates a file `./src/emacs' which is the runnable Emacs,
-which has another name that contains a version number.
-Each time you do this, that version number increments in the last place.
-
-It also creates a file in `./etc' whose name is `DOC' followed by the
-current Emacs version. This file contains documentation strings for
-all the functions in Emacs. Each time you run make to make a new
-emacs, a new DOC file with a new name is made. You must keep the DOC
-file for an Emacs version as long as you keep using that Emacs version.
-
-
-INSTALLATION BY HAND
-
-The steps below are done by running `make install' in the main
-directory of the Emacs distribution.
-
-1) Copy `./lisp' and its subdirectories, `./etc', and the executables
-in `./lib-src' to their final destinations, as selected in `./src/epaths.h'.
-
-Strictly speaking, not all of the executables in `./lib-src' need be copied.
-- The programs `hexl', `movemail', `profile', and `rcs2log'
- are used by Emacs; they do need to be copied.
-- The programs `etags', `ctags', and `emacsclient' are intended to be
- run by users; they are handled below.
-- The program `make-docfile' was used in building Emacs, and is
- not needed any more.
-
-2) Copy the files in `./info' to the place specified in
-`./lisp/site-init.el' or `./lisp/info.el'. Note that if the
-destination directory already contains a file named `dir', you
-probably don't want to replace it with the `dir' file in the Emacs
-distribution. Instead, you should make sure that the existing `dir'
-file contains an appropriate menu entry for the Emacs info.
-
-3) Copy `./src/emacs' to `/usr/local/bin', or to some other directory
-in users' search paths. `./src/emacs' has an alternate name
-`./src/emacs-EMACSVERSION'; you may wish to make a symbolic link named
-`/usr/local/bin/emacs' pointing to that alternate name, as an easy way
-of installing different versions.
-
-You can delete `./src/temacs'.
-
-4) Copy the programs `emacsclient', `ctags', and `etags' from `./lib-src'
-to `/usr/local/bin'. These programs are intended for users to run.
-
-5) Copy the man pages in `./doc/man' into the appropriate man directory.
-
-6) The files in the `./src' subdirectory, except for `emacs', are not
-used by Emacs once it is built. However, it is very desirable to keep
-the source on line for debugging.
-
-
PROBLEMS
See the file `./etc/PROBLEMS' for a list of various problems sometimes
diff --git a/INSTALL.REPO b/INSTALL.REPO
index 36ab928673d..83b6f2f4133 100644
--- a/INSTALL.REPO
+++ b/INSTALL.REPO
@@ -52,11 +52,6 @@ If either of the above partial procedures fails, try 'make bootstrap'.
If CPU time is not an issue, 'make bootstrap' is the most thorough way
to rebuild, and avoid any spurious problems.
-Users of non-Posix systems (MS-Windows, etc.) should run the
-platform-specific configuration scripts ('nt/configure.bat',
-'config.bat', etc.) before 'make'; the rest of the procedure is
-applicable to those systems as well.
-
Because the repository version of Emacs is a work in progress, it will
sometimes fail to build. Please wait a day or so (and check the
archives of the emacs-buildstatus, emacs-devel, and bug-gnu-emacs
diff --git a/Makefile.in b/Makefile.in
index a6080e5ce78..ccb70a436e8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -67,10 +67,6 @@ CDPATH=
# If Make doesn't predefine MAKE, set it here.
@SET_MAKE@
-# Prevent submakes from outputting "Entering directory ..." and
-# "Leaving directory..." diagnostics that would mess up 'make echo-info'.
-QUIET_SUBMAKE = MAKELEVEL=0
-
# ==================== Things `configure' Might Edit ====================
cache_file = @cache_file@
@@ -80,6 +76,7 @@ AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
ACLOCAL = @ACLOCAL@
+AWK = @AWK@
EXEEXT=@EXEEXT@
@@ -179,6 +176,9 @@ x_default_search_path=@x_default_search_path@
# Where the etc/emacs.desktop file is to be installed.
desktopdir=$(datarootdir)/applications
+# Where the etc/emacs.appdata.xml file is to be installed.
+appdatadir=$(datarootdir)/appdata
+
# Where the etc/images/icons/hicolor directory is to be installed.
icondir=$(datarootdir)/icons
@@ -259,7 +259,7 @@ MKDIR_P = @MKDIR_P@
# Create a link to a file in the same directory as the target.
LN_S_FILEONLY = @LN_S_FILEONLY@
-# We use gzip to compress installed .el files.
+# We use gzip to compress installed .el and some .txt files.
GZIP_PROG = @GZIP_PROG@
# ============================= Targets ==============================
@@ -288,7 +288,18 @@ COPYDESTS = "$(DESTDIR)${etcdir}" "$(DESTDIR)${lispdir}"
all: ${SUBDIR} info
-.PHONY: all ${SUBDIR} blessmail epaths-force epaths-force-w32
+.PHONY: all ${SUBDIR} blessmail epaths-force epaths-force-w32 etc-emacsver
+
+# If configure were to just generate emacsver.tex from emacsver.tex.in
+# in the normal way, the timestamp of emacsver.tex would always be
+# newer than that of the pdf files, which are prebuilt in release tarfiles.
+# So we use this rule, and move-if-change, to avoid that.
+etc-emacsver:
+ majorversion=`echo ${version} | sed 's/\..*//'`; \
+ sed "s/[@]majorversion@/$${majorversion}/" \
+ ${srcdir}/etc/refcards/emacsver.tex.in > emacsver.tex.$$$$ && \
+ ${srcdir}/build-aux/move-if-change emacsver.tex.$$$$ \
+ ${srcdir}/etc/refcards/emacsver.tex
removenullpaths=sed -e 's/^:*//' -e 's/:*$$//g' -e 's/::*/:/g'
@@ -323,14 +334,6 @@ epaths-force:
-e 's;\(#.*PATH_DOC\).*$$;\1 "${etcdocdir}";') && \
${srcdir}/build-aux/move-if-change epaths.h.$$$$ src/epaths.h
-# Replace "${w32prefix}" with '%emacs_dir%' (which expands to install
-# directory at runtime).
-msys_w32prefix_subst=sed -e 's!\(^\|;\)'"$${w32prefixpattern}"'\([;/]\|$$\)!\1%emacs_dir%\2!g'
-
-# Quote Sed special characters (except backslash and newline) with
-# a double backslash.
-msys_sed_sh_escape=sed -e 's/[];$$*.^[]/\\\\&/g'
-
# The w32 build needs a slightly different editing, and it uses
# nt/epaths.nt as the template.
#
@@ -342,12 +345,12 @@ msys_sed_sh_escape=sed -e 's/[];$$*.^[]/\\\\&/g'
# program that doesn't support MSYS-style paths (e.g. '/c/foo/bar' or
# '/foo/bar').
epaths-force-w32:
- @(w32srcdir=`${srcdir}/build-aux/msys-to-w32 "${srcdir}"`; \
- w32prefix=`${srcdir}/build-aux/msys-to-w32 "${prefix}" N`; \
- w32prefixpattern=`echo "$${w32prefix}" | ${msys_sed_sh_escape}` ; \
- w32locallisppath=`${srcdir}/build-aux/msys-to-w32 "${locallisppath}" N ":" "\\;" | ${msys_w32prefix_subst}` ; \
+ @(w32srcdir=`${srcdir}/build-aux/msys-to-w32 "${abs_srcdir}"`; \
+ w32prefix=`${srcdir}/build-aux/msys-to-w32 "${prefix}"`; \
+ w32locallisppath=`${srcdir}/build-aux/msys-to-w32 "${locallisppath}"` ; \
+ w32locallisppath=$${w32locallisppath//$${w32prefix}/"%emacs_dir%"} ; \
sed < ${srcdir}/nt/epaths.nt > epaths.h.$$$$ \
- -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${w32locallisppath}"'";' \
+ -e 's;\(#.*PATH_SITELOADSEARCH\).*$$;\1 "'"$${w32locallisppath//;/\\;}"'";' \
-e '/^.*#/s/@VER@/${version}/g' \
-e '/^.*#/s/@CFG@/${configuration}/g' \
-e "/^.*#/s|@SRC@|$${w32srcdir}|g") && \
@@ -368,12 +371,17 @@ lisp: src
lib lib-src lisp nt: Makefile
$(MAKE) -C $@ all
+# Ideally, VCSWITNESS should be a file that is modified whenever the
+# repository registers a commit from either a local checkin or a
+# repository pull. In git there is no single file that guarantees
+# this, but the local log for the current head should be close enough.
+#
# Note the use of single quotes in the value of vcswitness.
# This passes an unexpanded $srcdir to src's Makefile, which then
# expands it using its own value of srcdir (which points to the
# source directory of src/).
src: Makefile
- dirstate='.bzr/checkout/dirstate'; \
+ dirstate='.git/logs/HEAD'; \
vcswitness='$$(srcdir)/../'$$dirstate; \
[ -r "$(srcdir)/$$dirstate" ] || vcswitness=''; \
$(MAKE) -C $@ all VCSWITNESS="$$vcswitness"
@@ -400,7 +408,7 @@ $(MAKEFILE_NAME): config.status $(srcdir)/src/config.in \
# Don't erase these files if make is interrupted while refreshing them.
.PRECIOUS: Makefile config.status
-config.status: ${srcdir}/configure ${srcdir}/lisp/version.el
+config.status: ${srcdir}/configure
if [ -x ./config.status ]; then \
$(CFG) ./config.status --recheck; \
else \
@@ -413,7 +421,7 @@ $(srcdir)/configure: $(AUTOCONF_INPUTS)
cd ${srcdir} && ${AUTOCONF}
ACLOCAL_PATH = @ACLOCAL_PATH@
-ACLOCAL_INPUTS = $(srcdir)/configure.ac $(wildcard $(srcdir)/m4/*.m4)
+ACLOCAL_INPUTS = $(srcdir)/configure.ac $(srcdir)/m4/*.m4
$(srcdir)/aclocal.m4: $(ACLOCAL_INPUTS)
cd $(srcdir) && ACLOCAL_PATH='$(ACLOCAL_PATH)' $(ACLOCAL) -I m4
@@ -592,11 +600,12 @@ install-arch-indep: lisp install-info install-man ${INSTALL_ARCH_INDEP_EXTRA}
subdir="$(DESTDIR)${datadir}/emacs/site-lisp" ; \
${write_subdir} || true
[ -z "${GZIP_PROG}" ] || { \
- echo "Compressing *.el ..." && \
+ echo "Compressing *.el etc. ..." && \
cd "$(DESTDIR)${lispdir}" && \
for f in `find . -name "*.elc" -print | sed 's/.elc$$/.el/'`; do \
${GZIP_PROG} -9n "$$f"; \
done; \
+ ${GZIP_PROG} -9n "../etc/publicsuffix.txt"; \
}
-chmod -R a+r "$(DESTDIR)${datadir}/emacs/${version}" ${COPYDESTS}
@@ -637,7 +646,7 @@ install-info: info
[ -f "$(DESTDIR)${infodir}/dir" ] || \
[ ! -f ${srcdir}/info/dir ] || \
${INSTALL_DATA} ${srcdir}/info/dir "$(DESTDIR)${infodir}/dir"; \
- info_misc=`$(QUIET_SUBMAKE) $(MAKE) -s -C doc/misc echo-info`; \
+ info_misc=`$(MAKE) --no-print-directory -s -C doc/misc echo-info`; \
cd ${srcdir}/info ; \
for elt in ${INFO_NONMISC} $${info_misc}; do \
test "$(HAVE_MAKEINFO)" = "no" && test ! -f $$elt && continue; \
@@ -687,6 +696,12 @@ install-etc:
${srcdir}/etc/emacs.desktop > $${tmp}; \
${INSTALL_DATA} $${tmp} "$(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop"; \
rm -f $${tmp}
+ umask 022; ${MKDIR_P} "$(DESTDIR)${appdatadir}"
+ tmp=etc/emacs.tmpappdata; rm -f $${tmp}; \
+ sed -e "s/emacs\.desktop/${EMACS_NAME}.desktop/" \
+ ${srcdir}/etc/emacs.appdata.xml > $${tmp}; \
+ ${INSTALL_DATA} $${tmp} "$(DESTDIR)${appdatadir}/${EMACS_NAME}.appdata.xml"; \
+ rm -f $${tmp}
thisdir=`/bin/pwd`; \
cd ${iconsrcdir} || exit 1; umask 022 ; \
for dir in */*/apps */*/mimetypes; do \
@@ -728,7 +743,7 @@ uninstall: uninstall-$(NTDIR) uninstall-doc
done
-rm -rf "$(DESTDIR)${libexecdir}/emacs/${version}"
thisdir=`/bin/pwd`; \
- (info_misc=`$(QUIET_SUBMAKE) $(MAKE) -s -C doc/misc echo-info`; \
+ (info_misc=`$(MAKE) --no-print-directory -s -C doc/misc echo-info`; \
if cd "$(DESTDIR)${infodir}"; then \
for elt in ${INFO_NONMISC} $${info_misc}; do \
(cd "$${thisdir}"; \
@@ -751,6 +766,7 @@ uninstall: uninstall-$(NTDIR) uninstall-doc
hicolor/scalable/mimetypes/`echo emacs-document | sed '$(TRANSFORM)'`.svg; \
fi)
-rm -f "$(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop"
+ -rm -f "$(DESTDIR)${appdatadir}/${EMACS_NAME}.appdata.xml"
for file in snake-scores tetris-scores; do \
file="$(DESTDIR)${gamedir}/$${file}"; \
[ -s "$${file}" ] || rm -f "$$file"; \
@@ -806,12 +822,13 @@ clean: $(clean_dirs:=_clean)
for dir in test/automated; do \
[ ! -d $$dir ] || $(MAKE) -C $$dir clean; \
done
- -rm -f etc/emacs.tmpdesktop
+ -rm -f etc/emacs.tmpdesktop etc/emacs.tmpappdata
+ -rm -rf info-dir.*
### `bootclean'
### Delete all files that need to be remade for a clean bootstrap.
top_bootclean=\
- rm -f config.cache config.log
+ rm -f config.cache config.log ${srcdir}/doc/man/emacs.1
### `distclean'
### Delete all files from the current directory that are created by
@@ -844,6 +861,7 @@ bootstrap-clean: $(distclean_dirs:=_bootstrap-clean)
done
[ ! -f config.log ] || mv -f config.log config.log~
rm -rf ${srcdir}/info
+ rm -f ${srcdir}/etc/refcards/emacsver.tex
${top_bootclean}
### `maintainer-clean'
@@ -925,13 +943,19 @@ ps: $(PSS)
info-dir: ${srcdir}/info/dir
-## Not strictly necessary, but speeds things up a bit by stopping
-## the info-dir rule from running when not needed.
## Hopefully doc/misc/*.texi is not too long for some systems?
-info_dir_deps = ${srcdir}/build-aux/dir_top \
- ${srcdir}/doc/emacs/emacs.texi \
- ${srcdir}/doc/lispintro/emacs-lisp-intro.texi \
- ${srcdir}/doc/lispref/elisp.texi ${srcdir}/doc/misc/*.texi
+srcdir_doc_info_dir_inputs = \
+ ${srcdir}/doc/emacs/emacs.texi \
+ ${srcdir}/doc/lispintro/emacs-lisp-intro.texi \
+ ${srcdir}/doc/lispref/elisp.texi \
+ $(sort $(wildcard ${srcdir}/doc/misc/*.texi))
+info_dir_inputs = \
+ ../build-aux/dir_top \
+ $(subst ${srcdir}/doc/,,${srcdir_doc_info_dir_inputs})
+info_dir_deps = \
+ ${srcdir}/build-aux/make-info-dir \
+ ${srcdir}/build-aux/dir_top \
+ ${srcdir_doc_info_dir_inputs}
## It would be much simpler if info/dir was only created in the
## installation location by the install-info rule, but we also
@@ -940,10 +964,12 @@ info_dir_deps = ${srcdir}/build-aux/dir_top \
## but then we would need to depend on info-real, which would
## slow down parallelization.
${srcdir}/info/dir: ${info_dir_deps}
+ ${MKDIR_P} ${srcdir}/info
tempfile=info-dir.$$$$; \
rm -f $${tempfile}; \
- thisdir=`pwd`; \
- (cd ${srcdir} && ./build-aux/make-info-dir $${thisdir}/$${tempfile}); \
+ (cd ${srcdir}/doc && \
+ AWK='${AWK}' ../build-aux/make-info-dir ${info_dir_inputs} \
+ ) >$$tempfile && \
${srcdir}/build-aux/move-if-change $${tempfile} ${srcdir}/info/dir
INSTALL_DVI = install-emacs-dvi install-lispref-dvi \
diff --git a/README b/README
index 9f0ff0c5daa..ad412c4fb86 100644
--- a/README
+++ b/README
@@ -2,7 +2,7 @@ Copyright (C) 2001-2014 Free Software Foundation, Inc.
See the end of the file for license conditions.
-This directory tree holds version 24.4.50 of GNU Emacs, the extensible,
+This directory tree holds version 25.0.50 of GNU Emacs, the extensible,
customizable, self-documenting real-time display editor.
The file INSTALL in this directory says how to build and install GNU
@@ -39,10 +39,7 @@ process of building and installing Emacs. See INSTALL for more
detailed information.
The file `configure.ac' is the input used by the autoconf program to
-construct the `configure' script. Since Emacs has some configuration
-requirements that autoconf can't meet directly, and for historical
-reasons, `configure.ac' uses an unholy marriage of custom-baked
-configuration code and autoconf macros.
+construct the `configure' script.
The shell script `autogen.sh' generates 'configure' and other files by
running the GNU build tools autoconf and automake, which in turn use
@@ -84,7 +81,7 @@ There are several subdirectories:
`doc/lispref' holds the source code for the Emacs Lisp reference manual.
`doc/lispintro' holds the source code for the Introduction to Programming
in Emacs Lisp manual.
-`msdos' holds configuration files for compiling Emacs under MSDOG.
+`msdos' holds configuration files for compiling Emacs under MS-DOS.
`nextstep' holds instructions and some other files for compiling the
Nextstep port of Emacs, for GNUstep and Mac OS X Cocoa.
`nt' holds various command files and documentation files that pertain
diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES
index 066347b3826..18423c23420 100644
--- a/admin/CPP-DEFINES
+++ b/admin/CPP-DEFINES
@@ -19,8 +19,9 @@ __MSDOS__ Ditto.
__DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
WINDOWSNT Compiling the native MS-Windows (W32) port.
-__MINGW32__ Compiling the W32 port with the MinGW port of GCC.
+__MINGW32__ Compiling the W32 port with the MinGW or MinGW-w64 ports of GCC.
_MSC_VER Compiling the W32 port with the Microsoft C compiler.
+MINGW_W64 Compiling the W32 port with the MinGW-w64 port of GCC.
DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
SOLARIS2
USG
@@ -368,7 +369,6 @@ HAVE___FPENDING
INTERNAL_TERMINAL
IS_ANY_SEP
IS_DIRECTORY_SEP
-LOCALTIME_CACHE
MAIL_USE_FLOCK
MAIL_USE_LOCKF
MAIL_USE_POP
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 90d394ca9bd..88ce1450d7f 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,241 @@
+2014-12-14 Paul Eggert
+
+ * notes/unicode: Track leim/quail file renames.
+ Correct coding system
+ of lisp/international/titdic-cnv.el.
+
+2014-12-14 Glenn Morris
+
+ * quick-install-emacs (PUBLIC_LIBSRC_SCRIPTS): Remove, and all uses.
+ * authors.el (authors-valid-file-names): Add grep-changelog.
+
+2014-12-13 Paul Eggert
+
+ * notes/unicode: Don't mention Czech and Slovakian refcards.
+
+ * merge-gnulib (GNULIB_MODULES): Add stddef, for max_align_t.
+
+2014-12-06 Stephen Leake
+
+ * notes/commits: Delete; merge into ./CONTRIBUTE.
+
+ * notes/repo: Move commit, branch info into ./CONTRIBUTE.
+
+2014-12-01 Glenn Morris
+
+ * update_autogen: Fix bogosity introduced in 2014-11-16 merge.
+
+2014-11-29 Paul Eggert
+
+ Lessen focus on ChangeLog files, as opposed to change log entries.
+ This is in preparation for generating the former automatically
+ from the latter.
+ * notes/bugtracker, notes/copyright, notes/newfile:
+ ChangeLog -> change log
+ * notes/changelogs: Remove, merging old contents to ...
+ * notes/repo: ... here.
+
+2014-11-27 David Engster
+
+ * gitmerge.el: New file.
+ * notes/git-workflow: Add documentation for using it.
+
+2014-11-27 Oscar Fuentes
+
+ * CPP-DEFINES: Mention MINGW_W64.
+
+2014-11-22 Glenn Morris
+
+ * admin.el (set-version): No more need to update nt/*.rc.
+ * authors.el (authors-renamed-files-alist): Add .rc.in files.
+
+2014-11-16 Stefan Monnier
+
+ * update_autogen: Merge from emacs-24 (restoring bzr conditionals).
+
+2014-11-13 Andreas Schwab
+
+ * make-tarball.txt: Make annotated tag and push it out.
+
+2014-11-11 Eric S. Raymond
+
+ * make-tarball.txt, notes/bugtracker, notes/repo, notes/tags:
+ Git transition.
+ * update-copyright: Use git ls-files.
+ * update_autogen: Remove some bzr conditionals.
+
+2014-11-10 Eli Zaretskii
+
+ * unidata/Makefile.in (${top_srcdir}/src/macuvs.h):
+ Use unmsys--file-name. (Bug#18955)
+
+2014-11-10 Glenn Morris
+
+ * admin.el (set-version): No need to update doc/man/emacs.1.
+
+ * admin.el (set-version): No need to update etc/refcards/emacsver.tex.
+ (set-copyright): Update etc/refcards/emacsver.tex.in.
+
+ * admin.el (set-version): No need to update doc/emacs/emacsver.texi.
+ (make-manuals-dist-output-variables): Add top_srcdir.
+ (make-manuals-dist--1): Handle @version@ specially.
+
+2014-11-09 Eric Ludlam
+
+ * grammars/c.by (template-type): Add :template-specifier and
+ :typevar to capture extra details about the template.
+ (opt-post-fcn-modifiers): Splice in the found symbol into the
+ return value correctly.
+ (QUESTION): New punctuation.
+ (expression): Add ternary conditional support.
+
+ * grammars/scheme.by (MODULE): New token.
+ (scheme): Handle expanding the MODULE tag.
+ (scheme-list): Remove closeparen required match.
+ (scheme-in-list): Remove extraneous matches for DEFINE.
+ Add support for MODULE Simplify matching for code & make work.
+ (name-args, name-arg-list, name-arg-expand): Make it work.
+
+2014-11-09 David Engster
+
+ * grammars/c.by (opt-brackets-after-symbol): New.
+ (multi-stage-dereference): Use it. Add rules for explicit
+ matching the last dereference. We cannot just juse
+ 'namespace-symbol' as a single rule, since this would match too
+ greedy and mess with parsing default values of variables.
+
+2014-11-09 Glenn Morris
+
+ * admin.el (make-manuals-dist-output-variables)
+ (make-manuals-dist--1, make-manuals-dist): New.
+ Replaces doc/*/Makefile.in `dist' rules.
+
+2014-11-04 Paul Eggert
+
+ Spelling fixes; tweak explanation of commit messages.
+ * notes/repo: Avoid "DVCS" acronym without first explaining it.
+ Mention using the first line of a ChangeLog as the topic line,
+ and that commit messages should use UTF-8.
+
+2014-11-01 Eli Zaretskii
+
+ * notes/repo (Notes): Reword the stylistic guidance for commit log
+ messages so that they are in line with Emacs development practices
+ and style guidance.
+
+2014-10-27 Eric S. Raymond
+
+ * notes/bzr: Rename to notes/repo, reorganize to separate
+ VCS-dependent from VCS-independent stuff. Add guidance about
+ commit-comment format under DVCSes.
+
+ * notes/BRANCH: Merged into notes/repo.
+
+2014-10-20 Glenn Morris
+
+ * Merge in all changes up to 24.4 release.
+
+2014-10-15 Eli Zaretskii
+
+ * unidata/unidata-gen.el (unidata-prop-alist): New properties
+ 'paired-bracket' and 'bracket-type', in support of the UBA 6.3.
+ (unidata-gen-table): Support PROP-IDX being a function.
+ (unidata-describe-bidi-bracket-type, unidata-gen-brackets-list)
+ (unidata-gen-bracket-type-list): New functions.
+ (unidata-check): Support checking the 'bracket-type' attribute.
+ (unidata-gen-files): Don't create backups for uni-*.el files.
+
+ * unidata/Makefile.in (${unidir}/charprop.el): Depend on
+ BidiMirroring.txt and BidiBrackets.txt.
+
+ * unidata/BidiBrackets.txt: New file, from Unicode.
+
+2014-10-13 Glenn Morris
+
+ * authors.el (authors-aliases, authors-fixed-case)
+ (authors-obsolete-files-regexps): Additions.
+ (authors-no-scan-regexps): New constant.
+ (authors-no-scan-file-p): New function.
+ (authors): Respect authors-no-scan-file-p.
+
+2014-10-12 Paul Eggert
+
+ Fix putenv race conditions with undefined behavior (Bug#8705).
+ * merge-gnulib (GNULIB_MODULES): Add time_r, since Emacs now
+ calls localtime_r and gmtime_r directly.
+
+2014-10-07 Glenn Morris
+
+ * unidata/Makefile.in: Check for deleted uni- files. (Bug#18489)
+ (all): Use unifiles rather than charprop.el.
+ (FORCE): New variable and phony rule.
+ (${unidir}/charprop.el): Respect FORCE.
+ (unifiles): New rule.
+
+ * unidata/Makefile.in (unidir): Rename from DSTDIR. Change all uses.
+ (charprop.el, install): Remove rules.
+ (clean): Simplify.
+
+2014-10-04 Glenn Morris
+
+ * authors.el (authors-renamed-files-alist): Add package-x-test.el
+
+2014-10-01 Stefan Monnier
+
+ * unidata/unidata-gen.el (unidata-gen-table-word-list): Use alist-get
+ and cl-incf.
+
+2014-09-08 Eli Zaretskii
+
+ * unidata/unidata-gen.el (unidata-check): Bring this function up
+ to date with the currently supported methods of generating Unicode
+ property tables. Add a comment with a description how to invoke
+ the check. Update the copyright years in the reference to the
+ Unicode data files we use.
+
+2014-08-30 Paul Eggert
+
+ Vector-sorting fixes (Bug#18361).
+ * merge-gnulib (GNULIB_MODULES): Add vla.
+
+2014-08-30 Eli Zaretskii
+
+ * authors.el (authors): Fix last change so it works for MS-Windows
+ as well.
+
+2014-08-29 Michael Albinus
+
+ * authors.el (authors): Use LOCALE argument of `string-collate-lessp'.
+
+2014-08-28 Michael Albinus
+
+ * authors.el (authors-aliases): Addition.
+
+2014-08-26 Glenn Morris
+
+ * authors.el (authors-ignored-files, authors-valid-file-names)
+ (authors-renamed-files-alist): Additions.
+ (authors-renamed-files-alist): Revert 2014-08-09 change.
+ (authors): Sort authors in utf-8 order. (Bug#2263)
+
+2014-08-09 Reuben Thomas
+
+ * notes/copyright: Remove mention of msdos/is_exec.c and
+ sigaction.c.
+ * authors.el (authors-renamed-files-alist): Remove is_exec.c.
+
+2014-08-07 Reuben Thomas
+
+ * notes/exit-value: Remove specific discussion of VMS.
+
+2014-08-07 Reuben Thomas
+
+ Refer to MS-DOS using the same name everywhere.
+
+ * FOR-RELEASE: ``MS-DOG'', ``MSDOG'' and ``msdog'' become
+ ``MS-DOS''.
+ * MAINTAINERS: ditto.
+
2014-07-14 Paul Eggert
Use binary-io module, O_BINARY, and "b" flag (Bug#18006).
@@ -1934,7 +2172,7 @@
2006-04-17 Ramprasad B
- * ./* (Copyright): Updated Copyright year(s).
+ * ./* (Copyright): Update Copyright year(s).
2006-02-24 Reiner Steib
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index b5bf6739a86..bdd26947e4b 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -202,8 +202,8 @@ mark.texi
mini.texi
misc.texi
modes.texi
-msdog.texi
-msdog-xtra.texi
+msdos.texi
+msdos-xtra.texi
mule.texi
m-x.texi
package.texi
diff --git a/admin/MAINTAINERS b/admin/MAINTAINERS
index efcc63081b5..57f199b27c2 100644
--- a/admin/MAINTAINERS
+++ b/admin/MAINTAINERS
@@ -31,12 +31,13 @@ Eli Zaretskii
src/msdos.[ch]
src/dosfns.[ch]
src/w16select.c
+ src/unexcoff.c
lisp/term/internal.el
lisp/term/pc-win.el
lisp/dos-fns.el
lisp/dos-w32.el
lisp/dos-vars.el
- doc/emacs/msdog.texi
+ doc/emacs/msdos.texi
Kenichi Handa
Mule
@@ -80,14 +81,18 @@ Bastien Guerry
Eli Zaretskii
doc/*
lispref/*
- info/dir
src/xfaces.c
src/xdisp.c
src/term.c
src/dispnew.c
+ src/dispextern.h
src/frame.c
src/dired.c
+ src/unexw32.c
+ src/w32*.[ch]
+ src/window.c
+ nt/*
lisp/arc-mode.el
lisp/menu-bar.el
@@ -97,6 +102,8 @@ Eli Zaretskii
lisp/startup.el
lisp/w32*.el
+ admin/unidata/*
+
Stefan Monnier
src/intervals.c
src/keyboard.c
@@ -181,24 +188,10 @@ src/tparam.c
src/undo.c
src/unexaix.c
src/unexalpha.c
-src/unexcoff.c
src/unexelf.c
src/unexhp9k800.c
-src/unexw32.c
src/vm-limit.c
-src/w32.c
-src/w32console.c
-src/w32fns.c
-src/w32heap.c
-src/w32inevt.c
-src/w32menu.c
-src/w32proc.c
-src/w32reg.c
-src/w32select.c
-src/w32term.c
-src/w32xfns.c
src/widget.c
-src/window.c
src/xfns.c
src/xmenu.c
src/xrdb.c
diff --git a/admin/admin.el b/admin/admin.el
index 7af9ffa4177..f5e9646054e 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -94,79 +94,30 @@ Root must be the root of an Emacs source tree."
(rx (and "AC_INIT" (1+ (not (in ?,)))
?, (0+ space)
(submatch (1+ (in "0-9."))))))
- (set-version-in-file root "doc/emacs/emacsver.texi" version
- (rx (and "EMACSVER" (1+ space)
- (submatch (1+ (in "0-9."))))))
- (set-version-in-file root "doc/man/emacs.1" version
- (rx (and ".TH EMACS" (1+ not-newline)
- "GNU Emacs" (1+ space)
- (submatch (1+ (in "0-9."))))))
+ ;; No longer used, broken in multiple ways, updating version seems pointless.
(set-version-in-file root "nt/config.nt" version
(rx (and bol "#" (0+ blank) "define" (1+ blank)
"VERSION" (1+ blank) "\""
(submatch (1+ (in "0-9."))))))
+ ;; TODO: msdos could easily extract the version number from
+ ;; configure.ac with sed, rather than duplicating the information.
(set-version-in-file root "msdos/sed2v2.inp" version
(rx (and bol "/^#undef " (1+ not-newline)
"define VERSION" (1+ space) "\""
(submatch (1+ (in "0-9."))))))
+ ;; No longer used, broken in multiple ways, updating version seems pointless.
(set-version-in-file root "nt/makefile.w32-in" version
(rx (and "VERSION" (0+ space) "=" (0+ space)
(submatch (1+ (in "0-9."))))))
- ;; nt/emacs.rc also contains the version number, but in an awkward
- ;; format. It must contain four components, separated by commas, and
- ;; in two places those commas are followed by space, in two other
- ;; places they are not.
- (let* ((version-components (append (split-string version "\\.")
- '("0" "0")))
- (comma-version
- (concat (car version-components) ","
- (cadr version-components) ","
- (cadr (cdr version-components)) ","
- (cadr (cdr (cdr version-components)))))
- (comma-space-version
- (concat (car version-components) ", "
- (cadr version-components) ", "
- (cadr (cdr version-components)) ", "
- (cadr (cdr (cdr version-components))))))
- (set-version-in-file root "nt/emacs.rc" comma-version
- (rx (and "FILEVERSION" (1+ space)
- (submatch (1+ (in "0-9,"))))))
- (set-version-in-file root "nt/emacs.rc" comma-version
- (rx (and "PRODUCTVERSION" (1+ space)
- (submatch (1+ (in "0-9,"))))))
- (set-version-in-file root "nt/emacs.rc" comma-space-version
- (rx (and "\"FileVersion\"" (0+ space) ?, (0+ space)
- ?\" (submatch (1+ (in "0-9, "))) "\\0\"")))
- (set-version-in-file root "nt/emacs.rc" comma-space-version
- (rx (and "\"ProductVersion\"" (0+ space) ?,
- (0+ space) ?\" (submatch (1+ (in "0-9, ")))
- "\\0\"")))
- ;; Likewise for emacsclient.rc
- (set-version-in-file root "nt/emacsclient.rc" comma-version
- (rx (and "FILEVERSION" (1+ space)
- (submatch (1+ (in "0-9,"))))))
- (set-version-in-file root "nt/emacsclient.rc" comma-version
- (rx (and "PRODUCTVERSION" (1+ space)
- (submatch (1+ (in "0-9,"))))))
- (set-version-in-file root "nt/emacsclient.rc" comma-space-version
- (rx (and "\"FileVersion\"" (0+ space) ?, (0+ space)
- ?\" (submatch (1+ (in "0-9, "))) "\\0\"")))
- (set-version-in-file root "nt/emacsclient.rc" comma-space-version
- (rx (and "\"ProductVersion\"" (0+ space) ?,
- (0+ space) ?\" (submatch (1+ (in "0-9, ")))
- "\\0\"")))
- ;; Major version only.
- (when (string-match "\\([0-9]\\{2,\\}\\)" version)
- (setq version (match-string 1 version))
- (set-version-in-file root "src/msdos.c" version
- (rx (and "Vwindow_system_version" (1+ not-newline)
- ?\( (submatch (1+ (in "0-9"))) ?\))))
- (set-version-in-file root "etc/refcards/ru-refcard.tex" version
- "\\\\newcommand{\\\\versionemacs}\\[0\\]\
-{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")
- (set-version-in-file root "etc/refcards/emacsver.tex" version
- "\\\\def\\\\versionemacs\
-{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")))
+ ;; Major version only.
+ (when (string-match "\\([0-9]\\{2,\\}\\)" version)
+ (setq version (match-string 1 version))
+ (set-version-in-file root "src/msdos.c" version
+ (rx (and "Vwindow_system_version" (1+ not-newline)
+ ?\( (submatch (1+ (in "0-9"))) ?\))))
+ (set-version-in-file root "etc/refcards/ru-refcard.tex" version
+ "\\\\newcommand{\\\\versionemacs}\\[0\\]\
+{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs"))
(message "Setting version numbers...done"))
;; Note this makes some assumptions about form of short copyright.
@@ -201,7 +152,7 @@ Root must be the root of an Emacs source tree."
(set-version-in-file root "etc/refcards/ru-refcard.tex" copyright
"\\\\newcommand{\\\\cyear}\\[0\\]\
{\\([0-9]\\{4\\}\\)}.+%.+copyright year")
- (set-version-in-file root "etc/refcards/emacsver.tex" copyright
+ (set-version-in-file root "etc/refcards/emacsver.tex.in" copyright
"\\\\def\\\\year\
{\\([0-9]\\{4\\}\\)}.+%.+copyright year"))
(message "Setting copyrights...done"))
@@ -609,6 +560,89 @@ style=\"text-align:left\">")
(setq done t))))
(forward-line 1)))))
+
+(defconst make-manuals-dist-output-variables
+ `(("@\\(top_\\)?srcdir@" . ".") ; top_srcdir is wrong, but not used
+ ("^\\(\\(?:texinfo\\|buildinfo\\|emacs\\)dir *=\\).*" . "\\1 .")
+ ("^\\(clean:.*\\)" . "\\1 infoclean")
+ ("@MAKEINFO@" . "makeinfo")
+ ("@MKDIR_P@" . "mkdir -p")
+ ("@INFO_EXT@" . ".info")
+ ("@INFO_OPTS@" . "")
+ ("@SHELL@" . "/bin/bash")
+ ("@prefix@" . "/usr/local")
+ ("@datarootdir@" . "${prefix}/share")
+ ("@datadir@" . "${datarootdir}")
+ ("@PACKAGE_TARNAME@" . "emacs")
+ ("@docdir@" . "${datarootdir}/doc/${PACKAGE_TARNAME}")
+ ("@\\(dvi\\|html\\|pdf\\|ps\\)dir@" . "${docdir}")
+ ("@GZIP_PROG@" . "gzip")
+ ("@INSTALL@" . "install -c")
+ ("@INSTALL_DATA@" . "${INSTALL} -m 644")
+ ("@configure_input@" . ""))
+ "Alist of (REGEXP . REPLACEMENT) pairs for `make-manuals-dist'.")
+
+(defun make-manuals-dist--1 (root type)
+ "Subroutine of `make-manuals-dist'."
+ (let* ((dest (expand-file-name "manual" root))
+ (default-directory (progn (make-directory dest t)
+ (file-name-as-directory dest)))
+ (version (with-temp-buffer
+ (insert-file-contents "../doc/emacs/emacsver.texi")
+ (re-search-forward "@set EMACSVER \\([0-9.]+\\)")
+ (match-string 1)))
+ (stem (format "emacs-%s-%s" (if (equal type "emacs") "manual" type)
+ version))
+ (tarfile (format "%s.tar" stem)))
+ (message "Doing %s..." type)
+ (if (file-directory-p stem)
+ (delete-directory stem t))
+ (make-directory stem)
+ (copy-file "../doc/misc/texinfo.tex" stem)
+ (or (equal type "emacs") (copy-file "../doc/emacs/emacsver.texi" stem))
+ (dolist (file (directory-files (format "../doc/%s" type) t))
+ (if (or (string-match-p "\\(\\.texi\\'\\|/ChangeLog\\|/README\\'\\)" file)
+ (and (equal type "lispintro")
+ (string-match-p "\\.\\(eps\\|pdf\\)\\'" file)))
+ (copy-file file stem)))
+ (with-temp-buffer
+ (let ((outvars make-manuals-dist-output-variables))
+ (push `("@version@" . ,version) outvars)
+ (insert-file-contents (format "../doc/%s/Makefile.in" type))
+ (dolist (cons outvars)
+ (while (re-search-forward (car cons) nil t)
+ (replace-match (cdr cons) t))
+ (goto-char (point-min))))
+ (let (ats)
+ (while (re-search-forward "@[a-zA-Z_]+@" nil t)
+ (setq ats t)
+ (message "Unexpanded: %s" (match-string 0)))
+ (if ats (error "Unexpanded configure variables in Makefile?")))
+ (write-region nil nil (expand-file-name (format "%s/Makefile" stem))
+ nil 'silent))
+ (call-process "tar" nil nil nil "-cf" tarfile stem)
+ (delete-directory stem t)
+ (message "...created %s" tarfile)))
+
+;; Does anyone actually use these tarfiles?
+(defun make-manuals-dist (root &optional type)
+ "Make the standalone manual source tarfiles for the Emacs webpage.
+ROOT should be the root of an Emacs source tree.
+Interactively with a prefix argument, prompt for TYPE.
+Optional argument TYPE is type of output (nil means all)."
+ (interactive (let ((root (read-directory-name "Emacs root directory: "
+ source-directory nil t)))
+ (list root
+ (if current-prefix-arg
+ (completing-read
+ "Type: "
+ '("emacs" "lispref" "lispintro" "misc"))))))
+ (unless (file-exists-p (expand-file-name "src/emacs.c" root))
+ (user-error "%s doesn't seem to be the root of an Emacs source tree" root))
+ (dolist (m '("emacs" "lispref" "lispintro" "misc"))
+ (if (member type (list nil m))
+ (make-manuals-dist--1 root m))))
+
;; Stuff to check new `defcustom's got :version tags.
;; Adapted from check-declare.el.
diff --git a/admin/authors.el b/admin/authors.el
index 3a552c6c1ef..42f3bcd799d 100644
--- a/admin/authors.el
+++ b/admin/authors.el
@@ -92,6 +92,7 @@ files.")
("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")
@@ -120,6 +121,7 @@ files.")
("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")
@@ -142,6 +144,7 @@ files.")
("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")
@@ -177,11 +180,13 @@ If REALNAME is nil, ignore that author.")
;; FIXME seems it would be less fragile to check for O', Mc, etc.
(defconst authors-fixed-case
- '("Brian van den Broek"
+ '("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"
@@ -189,12 +194,16 @@ If REALNAME is nil, ignore that author.")
"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"
@@ -202,10 +211,13 @@ If REALNAME is nil, ignore that author.")
"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")
+ "Tijs van Bakel"
+ "Yu-ji Hosokawa")
"List of authors whose names cannot be simply capitalized.")
(defvar authors-public-domain-files
@@ -230,6 +242,7 @@ If REALNAME is nil, ignore that author.")
'(".*loaddefs.el$" ; not obsolete, but auto-generated
"\\.\\(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\\)"
@@ -239,6 +252,11 @@ 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"
@@ -283,6 +301,7 @@ Changes to files matching one of the regexps in this list are not listed.")
"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"
@@ -575,9 +594,10 @@ Changes to files in this list are not listed.")
"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"
+ "debug.bat.in" "emacs.bat.in" "addsection.c"
"inc/sys/dir.h" "inc/gettext.h"
".gdbinit-union"
"alloca.s"
@@ -631,6 +651,8 @@ Changes to files in this list are not listed.")
"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"
@@ -638,6 +660,7 @@ Changes to files in this list are not listed.")
"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"
;; gnus
"nnwfm.el" "nnlistserv.el" "nnkiboze.el" "nndb.el" "nnsoup.el"
"netrc.el" "password.el" "sasl-cram.el" "sasl-digest.el" "sasl-ntlm.el"
@@ -668,7 +691,7 @@ Changes to files in this list are not listed.")
"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"
+ "yow.c" "grep-changelog"
;; etc/
"emacsclient.c" "etags.c" "hexl.c" "make-docfile.c" "movemail.c"
"test-distrib.c" "testfile"
@@ -707,6 +730,8 @@ in the repository.")
("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")
@@ -756,6 +781,13 @@ in the repository.")
;; 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")
@@ -769,6 +801,7 @@ in the repository.")
;; The one in lisp is eshell/eshell.el.
("eshell.el" . "automated/eshell.el")
("eshell/esh-test.el" . "automated/eshell.el")
+ ("automated/package-x-test.el" . "automated/package-test.el")
;; INSTALL-CVS -> .CVS -> .BZR -> .REPO
("INSTALL-CVS" . "INSTALL.REPO")
("INSTALL.CVS" . "INSTALL.REPO")
@@ -787,6 +820,8 @@ in the repository.")
("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")
@@ -825,6 +860,8 @@ in the repository.")
("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")
@@ -1051,6 +1088,15 @@ from `authors-obsolete-files-regexps'."
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.
@@ -1282,8 +1328,9 @@ buffer *Authors Errors* containing references to unknown files."
(authors-scan-change-log log table)))
(let ((els (process-lines find-program root "-name" "*.el")))
(dolist (file els)
- (message "Scanning %s..." file)
- (authors-scan-el file table)))
+ (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)
@@ -1297,7 +1344,11 @@ list of their contributions.\n")
(maphash #'authors-add-to-author-list table)
(setq authors-author-list
(sort authors-author-list
- (lambda (a b) (string-lessp (car a) (car b)))))
+ (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))
diff --git a/admin/charsets/.gitignore b/admin/charsets/.gitignore
deleted file mode 100644
index ea375dc5915..00000000000
--- a/admin/charsets/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*.map
-*.el
diff --git a/admin/check-doc-strings b/admin/check-doc-strings
index a0b5acb623f..13e8b0cd8e7 100755
--- a/admin/check-doc-strings
+++ b/admin/check-doc-strings
@@ -18,7 +18,7 @@ formal parameters, docstrings, and lispref texi.
This program is in the public domain.\n";
die $usage if @ARGV;
-die $usage unless -r "src/alloc.c" && -d ".bzr" && -d "lisp";
+die $usage unless -r "src/alloc.c" && -d "lisp";
my %texi_funtype;
my %texi_arglist;
diff --git a/admin/gitmerge.el b/admin/gitmerge.el
new file mode 100644
index 00000000000..206f12c08ad
--- /dev/null
+++ b/admin/gitmerge.el
@@ -0,0 +1,525 @@
+;;; gitmerge.el --- help merge one Emacs branch into another
+
+;; Copyright (C) 2010-2014 Free Software Foundation, Inc.
+
+;; Authors: David Engster
+;; Stefan Monnier
+
+;; Keywords: maint
+
+;; 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 .
+
+;;; Commentary:
+
+;; Rewrite of bzrmerge.el, but using git.
+;;
+;; In a nutshell: For merging foo into master, do
+;;
+;; - 'git checkout master' in Emacs repository
+;; - Start Emacs, cd to Emacs repository
+;; - M-x gitmerge
+;; - Choose branch 'foo' or 'origin/foo', depending on whether you
+;; like to merge from a local tracking branch or from the remote
+;; (does not make a difference if the local tracking branch is
+;; up-to-date).
+;; - Mark commits you'd like to skip, meaning to only merge their
+;; metadata (merge strategy 'ours').
+;; - Hit 'm' to start merging. Skipped commits will be merged separately.
+;; - If conflicts cannot be resolved automatically, you'll have to do
+;; it manually. In that case, resolve the conflicts and restart
+;; gitmerge, which will automatically resume. It will add resolved
+;; files, commit the pending merge and continue merging the rest.
+;; - Inspect master branch, and if everything looks OK, push.
+
+;;; Code:
+
+(require 'vc-git)
+(require 'smerge-mode)
+
+(defvar gitmerge-skip-regexp
+ "back[- ]?port\\|merge\\|sync\\|re-?generate\\|bump version\\|from trunk\\|\
+Auto-commit"
+ "Regexp matching logs of revisions that might be skipped.
+`gitmerge-missing' will ask you if it should skip any matches.")
+
+(defvar gitmerge-status-file (expand-file-name "gitmerge-status"
+ user-emacs-directory)
+ "File where missing commits will be saved between sessions.")
+
+(defvar gitmerge-ignore-branches-regexp
+ "origin/\\(\\(HEAD\\|master\\)$\\|\\(old-branches\\|other-branches\\)/\\)"
+ "Regexp matching branches we want to ignore.")
+
+(defface gitmerge-skip-face
+ '((t (:strike-through t)))
+ "Face for skipped commits.")
+
+(defconst gitmerge-default-branch "origin/emacs-24"
+ "Default for branch that should be merged.")
+
+(defconst gitmerge-buffer "*gitmerge*"
+ "Working buffer for gitmerge.")
+
+(defconst gitmerge-output-buffer "*gitmerge output*"
+ "Buffer for displaying git output.")
+
+(defconst gitmerge-warning-buffer "*gitmerge warnings*"
+ "Buffer where gitmerge will display any warnings.")
+
+(defvar gitmerge-log-regexp
+ "^\\([A-Z ]\\)\\s-*\\([0-9a-f]+\\) \\(.+?\\): \\(.*\\)$")
+
+(defvar gitmerge-mode-map
+ (let ((map (make-keymap)))
+ (define-key map [(l)] 'gitmerge-show-log)
+ (define-key map [(d)] 'gitmerge-show-diff)
+ (define-key map [(f)] 'gitmerge-show-files)
+ (define-key map [(s)] 'gitmerge-toggle-skip)
+ (define-key map [(m)] 'gitmerge-start-merge)
+ map)
+ "Keymap for gitmerge major mode.")
+
+
+(defvar gitmerge-mode-font-lock-keywords
+ `((,gitmerge-log-regexp
+ (1 font-lock-warning-face)
+ (2 font-lock-constant-face)
+ (3 font-lock-builtin-face)
+ (4 font-lock-comment-face))))
+
+(defvar gitmerge--commits nil)
+(defvar gitmerge--from nil)
+
+(defun gitmerge-get-sha1 ()
+ "Get SHA1 from commit at point."
+ (save-excursion
+ (goto-char (point-at-bol))
+ (when (looking-at "^[A-Z ]\\s-*\\([a-f0-9]+\\)")
+ (match-string 1))))
+
+(defun gitmerge-show-log ()
+ "Show log of commit at point."
+ (interactive)
+ (save-selected-window
+ (let ((commit (gitmerge-get-sha1)))
+ (when commit
+ (pop-to-buffer (get-buffer-create gitmerge-output-buffer))
+ (fundamental-mode)
+ (erase-buffer)
+ (call-process "git" nil t nil "log" "-1" commit)
+ (goto-char (point-min))
+ (gitmerge-highlight-skip-regexp)))))
+
+(defun gitmerge-show-diff ()
+ "Show diff of commit at point."
+ (interactive)
+ (save-selected-window
+ (let ((commit (gitmerge-get-sha1)))
+ (when commit
+ (pop-to-buffer (get-buffer-create gitmerge-output-buffer))
+ (erase-buffer)
+ (call-process "git" nil t nil "diff-tree" "-p" commit)
+ (goto-char (point-min))
+ (diff-mode)))))
+
+(defun gitmerge-show-files ()
+ "Show changed files of commit at point."
+ (interactive)
+ (save-selected-window
+ (let ((commit (gitmerge-get-sha1)))
+ (when commit
+ (pop-to-buffer (get-buffer-create gitmerge-output-buffer))
+ (erase-buffer)
+ (fundamental-mode)
+ (call-process "git" nil t nil "diff" "--name-only" (concat commit "^!"))
+ (goto-char (point-min))))))
+
+(defun gitmerge-toggle-skip ()
+ "Toggle skipping of commit at point."
+ (interactive)
+ (let ((commit (gitmerge-get-sha1))
+ skip)
+ (when commit
+ (save-excursion
+ (goto-char (point-at-bol))
+ (when (looking-at "^\\([A-Z ]\\)\\s-*\\([a-f0-9]+\\)")
+ (setq skip (string= (match-string 1) " "))
+ (goto-char (match-beginning 2))
+ (gitmerge-handle-skip-overlay skip)
+ (dolist (ct gitmerge--commits)
+ (when (string-match commit (car ct))
+ (setcdr ct (when skip "M"))))
+ (goto-char (point-at-bol))
+ (setq buffer-read-only nil)
+ (delete-char 1)
+ (insert (if skip "M" " "))
+ (setq buffer-read-only t))))))
+
+(defun gitmerge-highlight-skip-regexp ()
+ "Highlight strings that match `gitmerge-skip-regexp'."
+ (save-excursion
+ (while (re-search-forward gitmerge-skip-regexp nil t)
+ (put-text-property (match-beginning 0) (match-end 0)
+ 'face 'font-lock-warning-face))))
+
+(defun gitmerge-missing (from)
+ "Return the list of revisions that need to be merged from FROM.
+Will detect a default set of skipped revision by looking at
+cherry mark and search for `gitmerge-skip-regexp'. The result is
+a list with entries of the form (SHA1 . SKIP), where SKIP denotes
+if and why this commit should be skipped."
+ (let (commits)
+ ;; Go through the log and remember all commits that match
+ ;; `gitmerge-skip-regexp' or are marked by --cherry-mark.
+ (with-temp-buffer
+ (call-process "git" nil t nil "log" "--cherry-mark" from
+ (concat "^" (car (vc-git-branches))))
+ (goto-char (point-max))
+ (while (re-search-backward "^commit \\(.+\\) \\([0-9a-f]+\\).*" nil t)
+ (let ((cherrymark (match-string 1))
+ (commit (match-string 2)))
+ (push (list commit) commits)
+ (if (string= cherrymark "=")
+ ;; Commit was recognized as backported by cherry-mark.
+ (setcdr (car commits) "C")
+ (save-excursion
+ (let ((case-fold-search t))
+ (while (not (looking-at "^\\s-+[^ ]+"))
+ (forward-line))
+ (when (re-search-forward gitmerge-skip-regexp nil t)
+ (setcdr (car commits) "R"))))))
+ (delete-region (point) (point-max))))
+ (nreverse commits)))
+
+(defun gitmerge-setup-log-buffer (commits from)
+ "Create the buffer for choosing commits."
+ (with-current-buffer (get-buffer-create gitmerge-buffer)
+ (erase-buffer)
+ (call-process "git" nil t nil "log"
+ "--pretty=format:%h %<(20,trunc) %an: %<(100,trunc) %s"
+ from (concat "^" (car (vc-git-branches))))
+ (goto-char (point-min))
+ (while (looking-at "^\\([a-f0-9]+\\)")
+ (let ((skipreason (gitmerge-skip-commit-p (match-string 1) commits)))
+ (if (null skipreason)
+ (insert " ")
+ (insert skipreason " ")
+ (gitmerge-handle-skip-overlay t)))
+ (forward-line))
+ (current-buffer)))
+
+(defun gitmerge-handle-skip-overlay (skip)
+ "Create or delete overlay on SHA1, depending on SKIP."
+ (when (looking-at "[0-9a-f]+")
+ (if skip
+ (let ((ov (make-overlay (point)
+ (match-end 0))))
+ (overlay-put ov 'face 'gitmerge-skip-face))
+ (remove-overlays (point) (match-end 0)
+ 'face 'gitmerge-skip-face))))
+
+(defun gitmerge-skip-commit-p (commit skips)
+ "Tell whether COMMIT should be skipped.
+COMMIT is an (possibly abbreviated) SHA1. SKIPS is list of
+cons'es with commits that should be skipped and the reason.
+Return value is string which denotes reason, or nil if commit
+should not be skipped."
+ (let (found skip)
+ (while (and (setq skip (pop skips))
+ (not found))
+ (when (string-match commit (car skip))
+ (setq found (cdr skip))))
+ found))
+
+(defun gitmerge-resolve (file)
+ "Try to resolve conflicts in FILE with smerge.
+Returns non-nil if conflicts remain."
+ (unless (file-exists-p file) (error "Gitmerge-resolve: Can't find %s" file))
+ (with-demoted-errors
+ (let ((exists (find-buffer-visiting file)))
+ (with-current-buffer (let ((enable-local-variables :safe)
+ (enable-local-eval nil))
+ (find-file-noselect file))
+ (if (buffer-modified-p)
+ (user-error "Unsaved changes in %s" (current-buffer)))
+ (save-excursion
+ (cond
+ ((derived-mode-p 'change-log-mode)
+ ;; Fix up dates before resolving the conflicts.
+ (goto-char (point-min))
+ (let ((diff-auto-refine-mode nil))
+ (while (re-search-forward smerge-begin-re nil t)
+ (smerge-match-conflict)
+ (smerge-ensure-match 3)
+ (let ((start1 (match-beginning 1))
+ (end1 (match-end 1))
+ (start3 (match-beginning 3))
+ (end3 (copy-marker (match-end 3) t)))
+ (goto-char start3)
+ (while (re-search-forward change-log-start-entry-re end3 t)
+ (let* ((str (match-string 0))
+ (newstr (save-match-data
+ (concat (add-log-iso8601-time-string)
+ (when (string-match " *\\'" str)
+ (match-string 0 str))))))
+ (replace-match newstr t t)))
+ ;; change-log-resolve-conflict prefers to put match-1's
+ ;; elements first (for equal dates), whereas we want to put
+ ;; match-3's first.
+ (let ((match3 (buffer-substring start3 end3))
+ (match1 (buffer-substring start1 end1)))
+ (delete-region start3 end3)
+ (goto-char start3)
+ (insert match1)
+ (delete-region start1 end1)
+ (goto-char start1)
+ (insert match3)))))
+ ;; (pop-to-buffer (current-buffer)) (debug 'before-resolve)
+ ))
+ ;; Try to resolve the conflicts.
+ (cond
+ ((member file '("configure" "lisp/ldefs-boot.el"
+ "lisp/emacs-lisp/cl-loaddefs.el"))
+ ;; We are in the file's buffer, so names are relative.
+ (call-process "git" nil t nil "checkout" "--"
+ (file-name-nondirectory file))
+ (revert-buffer nil 'noconfirm))
+ (t
+ (goto-char (point-max))
+ (while (re-search-backward smerge-begin-re nil t)
+ (save-excursion
+ (ignore-errors
+ (smerge-match-conflict)
+ (smerge-resolve))))
+ ;; (when (derived-mode-p 'change-log-mode)
+ ;; (pop-to-buffer (current-buffer)) (debug 'after-resolve))
+ (save-buffer)))
+ (goto-char (point-min))
+ (prog1 (re-search-forward smerge-begin-re nil t)
+ (unless exists (kill-buffer))))))))
+
+(defun gitmerge-commit-message (beg end skip branch)
+ "Create commit message for merging BEG to END from BRANCH.
+SKIP denotes whether those commits are actually skipped. If END
+is nil, only the single commit BEG is merged."
+ (with-temp-buffer
+ (insert "Merge from " branch "\n\n"
+ (if skip
+ (concat "The following commit"
+ (if end "s were " " was ")
+ "skipped:\n\n")
+ ""))
+ (apply 'call-process "git" nil t nil "log" "--oneline"
+ (if end (list (concat beg "~.." end))
+ `("-1" ,beg)))
+ (insert "\n")
+ (buffer-string)))
+
+(defun gitmerge-apply (missing from)
+ "Merge commits in MISSING from branch FROM.
+MISSING must be a list of SHA1 strings."
+ (with-current-buffer (get-buffer-create gitmerge-output-buffer)
+ (erase-buffer)
+ (let* ((skip (cdar missing))
+ (beg (car (pop missing)))
+ end commitmessage)
+ ;; Determine last revision with same boolean skip status.
+ (while (and missing
+ (eq (null (cdar missing))
+ (null skip)))
+ (setq end (car (pop missing))))
+ (setq commitmessage
+ (gitmerge-commit-message beg end skip from))
+ (message "%s %s%s"
+ (if skip "Skipping" "Merging")
+ (substring beg 0 6)
+ (if end (concat ".." (substring end 0 6)) ""))
+ (unless end
+ (setq end beg))
+ (unless (zerop
+ (apply 'call-process "git" nil t nil "merge" "--no-ff"
+ (append (when skip '("-s" "ours"))
+ `("-m" ,commitmessage ,end))))
+ (gitmerge-write-missing missing from)
+ (gitmerge-resolve-unmerged)))
+ missing))
+
+(defun gitmerge-resolve-unmerged ()
+ "Resolve all files that are unmerged.
+Throw an user-error if we cannot resolve automatically."
+ (with-current-buffer (get-buffer-create gitmerge-output-buffer)
+ (erase-buffer)
+ (let (files conflicted)
+ ;; List unmerged files
+ (if (not (zerop
+ (call-process "git" nil t nil
+ "diff" "--name-only" "--diff-filter=U")))
+ (error "Error listing unmerged files. Resolve manually.")
+ (goto-char (point-min))
+ (while (not (eobp))
+ (push (buffer-substring (point) (line-end-position)) files)
+ (forward-line))
+ (dolist (file files)
+ (if (gitmerge-resolve file)
+ ;; File still has conflicts
+ (setq conflicted t)
+ ;; Mark as resolved
+ (call-process "git" nil t nil "add" file)))
+ (when conflicted
+ (with-current-buffer (get-buffer-create gitmerge-warning-buffer)
+ (erase-buffer)
+ (insert "For the following files, conflicts could\n"
+ "not be resolved automatically:\n\n")
+ (call-process "git" nil t nil
+ "diff" "--name-only" "--diff-filter=U")
+ (insert "\nResolve the conflicts manually, then run gitmerge again."
+ "\nNote:\n - You don't have to add resolved files or "
+ "commit the merge yourself (but you can)."
+ "\n - You can safely close this Emacs session and do this "
+ "in a new one."
+ "\n - When running gitmerge again, remember that you must "
+ "that from within the Emacs repo.\n")
+ (pop-to-buffer (current-buffer)))
+ (user-error "Resolve the conflicts manually"))))))
+
+(defun gitmerge-repo-clean ()
+ "Return non-nil if repository is clean."
+ (with-temp-buffer
+ (call-process "git" nil t nil
+ "diff" "--staged" "--name-only")
+ (call-process "git" nil t nil
+ "diff" "--name-only")
+ (zerop (buffer-size))))
+
+(defun gitmerge-maybe-resume ()
+ "Check if we have to resume a merge.
+If so, add no longer conflicted files and commit."
+ (let ((mergehead (file-exists-p
+ (expand-file-name ".git/MERGE_HEAD" default-directory)))
+ (statusexist (file-exists-p gitmerge-status-file)))
+ (when (and mergehead (not statusexist))
+ (user-error "Unfinished merge, but no record of a previous gitmerge run"))
+ (when (and (not mergehead)
+ (not (gitmerge-repo-clean)))
+ (user-error "Repository is not clean"))
+ (when statusexist
+ (if (not (y-or-n-p "Resume merge? "))
+ (progn
+ (delete-file gitmerge-status-file)
+ ;; No resume.
+ nil)
+ (message "OK, resuming...")
+ (gitmerge-resolve-unmerged)
+ ;; Commit the merge.
+ (when mergehead
+ (with-current-buffer (get-buffer-create gitmerge-output-buffer)
+ (erase-buffer)
+ (unless (zerop (call-process "git" nil t nil
+ "commit" "--no-edit"))
+ (error "Git error during merge - fix it manually"))))
+ ;; Successfully resumed.
+ t))))
+
+(defun gitmerge-get-all-branches ()
+ "Return list of all branches, including remotes."
+ (with-temp-buffer
+ (unless (zerop (call-process "git" nil t nil
+ "branch" "-a"))
+ (error "Git error listing remote branches"))
+ (goto-char (point-min))
+ (let (branches branch)
+ (while (not (eobp))
+ (when (looking-at "^[^\\*]\\s-*\\(?:remotes/\\)?\\(.+\\)$")
+ (setq branch (match-string 1))
+ (unless (string-match gitmerge-ignore-branches-regexp branch)
+ (push branch branches)))
+ (forward-line))
+ (nreverse branches))))
+
+(defun gitmerge-write-missing (missing from)
+ "Write list of commits MISSING into `gitmerge-status-file'.
+Branch FROM will be prepended to the list."
+ (with-current-buffer
+ (find-file-noselect gitmerge-status-file)
+ (erase-buffer)
+ (insert
+ (prin1-to-string (append (list from) missing))
+ "\n")
+ (save-buffer)
+ (kill-buffer)))
+
+(defun gitmerge-read-missing ()
+ "Read list of missing commits from `gitmerge-status-file'."
+ (with-current-buffer
+ (find-file-noselect gitmerge-status-file)
+ (unless (zerop (buffer-size))
+ (prog1 (read (buffer-string))
+ (kill-buffer)))))
+
+(define-derived-mode gitmerge-mode special-mode "gitmerge"
+ "Major mode for Emacs branch merging."
+ (set-syntax-table text-mode-syntax-table)
+ (setq buffer-read-only t)
+ (setq-local truncate-lines t)
+ (setq-local font-lock-defaults '(gitmerge-mode-font-lock-keywords)))
+
+(defun gitmerge (from)
+ "Merge from branch FROM into `default-directory'."
+ (interactive
+ (if (not (vc-git-root default-directory))
+ (user-error "Not in a git tree")
+ (let ((default-directory (vc-git-root default-directory)))
+ (list
+ (if (gitmerge-maybe-resume)
+ 'resume
+ (completing-read "Merge branch: " (gitmerge-get-all-branches)
+ nil t gitmerge-default-branch))))))
+ (let ((default-directory (vc-git-root default-directory)))
+ (if (eq from 'resume)
+ (progn
+ (setq gitmerge--commits (gitmerge-read-missing))
+ (setq gitmerge--from (pop gitmerge--commits))
+ ;; Directly continue with the merge.
+ (gitmerge-start-merge))
+ (setq gitmerge--commits (gitmerge-missing from))
+ (setq gitmerge--from from)
+ (when (null gitmerge--commits)
+ (user-error "Nothing to merge"))
+ (with-current-buffer
+ (gitmerge-setup-log-buffer gitmerge--commits gitmerge--from)
+ (goto-char (point-min))
+ (insert (propertize "Commands: " 'font-lock-face 'bold)
+ "(s) Toggle skip, (l) Show log, (d) Show diff, "
+ "(f) Show files, (m) Start merge\n"
+ (propertize "Flags: " 'font-lock-face 'bold)
+ "(C) Detected backport (cherry-mark), (R) Log matches "
+ "regexp, (M) Manually picked\n\n")
+ (gitmerge-mode)
+ (pop-to-buffer (current-buffer))))))
+
+(defun gitmerge-start-merge ()
+ (interactive)
+ (when (not (vc-git-root default-directory))
+ (user-error "Not in a git tree"))
+ (let ((default-directory (vc-git-root default-directory)))
+ (while gitmerge--commits
+ (setq gitmerge--commits
+ (gitmerge-apply gitmerge--commits gitmerge--from)))
+ (when (file-exists-p gitmerge-status-file)
+ (delete-file gitmerge-status-file))
+ (message "Merging from %s...done" gitmerge--from)))
+
+(provide 'gitmerge)
+
+;;; gitmerge.el ends here
diff --git a/admin/grammars/c.by b/admin/grammars/c.by
index 0fd8a33f25a..f6015490939 100644
--- a/admin/grammars/c.by
+++ b/admin/grammars/c.by
@@ -64,6 +64,7 @@
%token PLUS "\\`[+]\\'"
%token MINUS "\\`[-]\\'"
%token BANG "\\`[!]\\'"
+%token QUESTION "\\`[?]\\'"
%token EQUAL "\\`[=]\\'"
%token LESS "\\`[<]\\'"
%token GREATER "\\`[>]\\'"
@@ -590,10 +591,12 @@ template-type
| declmods typeformbase cv-declmods opt-stars
opt-ref variablearg-opt-name
(TYPE-TAG (car $2) nil nil nil
+ :template-specifier (plist-get (nth 2 $2) :template-specifier)
:constant-flag (if (member "const" (append $1 $3)) t nil)
:typemodifiers (delete "const" (append $1 $3))
:reference (car ,$5)
:pointer (car $4)
+ :typevar (car $6)
)
;
@@ -832,7 +835,7 @@ opt-initializers
opt-post-fcn-modifiers
: post-fcn-modifiers opt-post-fcn-modifiers
- ( ,(cons ,$1 $2) )
+ ( ,(cons ,(car $1) $2) )
| ;;EMPTY
( nil )
;
@@ -1206,7 +1209,9 @@ expr-binop
;; Use expression for parsing only. Don't actually return anything
;; for now. Hopefully we can fix this later.
expression
- : unaryexpression expr-binop unaryexpression
+ : unaryexpression QUESTION unaryexpression COLON unaryexpression
+ ( (identity start) (identity end) )
+ | unaryexpression expr-binop unaryexpression
( (identity start) (identity end) )
| unaryexpression
( (identity start) (identity end) )
diff --git a/admin/grammars/scheme.by b/admin/grammars/scheme.by
index cceec0914f6..16b67a3db4b 100644
--- a/admin/grammars/scheme.by
+++ b/admin/grammars/scheme.by
@@ -25,6 +25,7 @@
%token DEFINE "define"
%token DEFINE-MODULE "define-module"
+%token MODULE "module"
%token LOAD "load"
%put DEFINE summary "Function: (define symbol expression)"
@@ -37,36 +38,50 @@
%%
scheme : semantic-list
- (EXPAND $1 scheme-list)
+ ( ,(let ((expand (EXPAND $1 scheme-list)))
+ (cond
+ ((semantic-tag-of-class-p expand 'module)
+ (TYPE-TAG (semantic-tag-name expand)
+ "module"
+ (EXPANDFULL $1 scheme)
+ nil) ;; Module contains more definitions like a type
+ )
+ (t
+ expand))))
;
-scheme-list : OPENPAREN scheme-in-list CLOSEPAREN
+scheme-list : OPENPAREN scheme-in-list
( ,$2 )
;
+
scheme-in-list: DEFINE symbol expression
(VARIABLE-TAG $2 nil $3 )
- | DEFINE name-args opt-doc sequence
+ | DEFINE name-args opt-doc
(FUNCTION-TAG (car ,$2) nil (cdr ,$2) )
| DEFINE-MODULE name-args
(PACKAGE-TAG (nth (length $2) $2 ) nil)
+ | MODULE symbol
+ (TAG $1 'module :members nil)
| LOAD string
(INCLUDE-TAG (file-name-nondirectory (read $2)) (read $2) )
- | symbol
+ | symbol sequence
(CODE-TAG $1 nil)
;
name-args: semantic-list
- (EXPAND $1 name-arg-expand)
+ (EXPAND $1 name-arg-list)
;
-name-arg-expand : open-paren name-arg-expand
+name-arg-list : OPENPAREN name-arg-expand
( ,$2 )
- | symbol name-arg-expand
- ( ,(cons $1 ,$2) )
- | ;; EMPTY
- ( )
- ;
+ ;
+
+name-arg-expand: symbol name-arg-expand
+ ( ,(cons $1 ,$2) )
+ | ;; EMPTY
+ ( )
+ ;
opt-doc : string
| ;; EMPTY
@@ -83,3 +98,4 @@ expression : symbol
;
;;; scheme.by ends here
+
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt
index a2e8a9e7da3..8f8b031ba2f 100644
--- a/admin/make-tarball.txt
+++ b/admin/make-tarball.txt
@@ -7,8 +7,7 @@ Steps to take before starting on the first pretest in any release sequence:
0. The release branch (e.g. emacs-24) should already have been made
and you should use it for all that follows. Diffs from this
- branch should be going to the emacs-diffs mailing list (see
- admin/notes/bzr section on bzr-email plugin).
+ branch should be going to the emacs-diffs mailing list.
1. Decide on versions of automake and autoconf, and ensure you will
have them available for the duration of the release process.
@@ -24,8 +23,8 @@ Steps to take before starting on the first pretest in any release sequence:
General steps (for each step, check for possible errors):
-1. `bzr update' (for a bound branch), or `bzr pull'.
- bzr status # check for locally modified files
+1. git pull # fetch from the repository
+ git status # check for locally modified files
2. Regenerate the etc/AUTHORS file:
M-: (require 'authors) RET
@@ -66,9 +65,8 @@ General steps (for each step, check for possible errors):
5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed
- by M-x set-version. Use a commit log message that bzrmerge.el
- will ignore (eg "Bump version...").
- For a release, also commit the ChangeLog files in all directories.
+ by M-x set-version. For a release, also commit the ChangeLog
+ files in all directories.
If someone else made a commit between step 1 and now,
you need to repeat from step 4 onwards. (You can commit the files
@@ -84,7 +82,7 @@ General steps (for each step, check for possible errors):
If this is the first pretest of a major release, just comparing
with the previous release may overlook many new files. You can try
- something like `find . | sort' in a clean bzr tree, and compare the
+ something like `find . | sort' in a clean repository, and compare the
results against the new tar contents.
7. tar -xf emacs-NEW.tar; cd emacs-NEW
@@ -96,7 +94,7 @@ General steps (for each step, check for possible errors):
M-x ediff. Especially check that Info files aren't built, and that
no autotools (autoconf etc) run.
-8. cd EMACS_ROOT_DIR && bzr tag TAG
+8. cd EMACS_ROOT_DIR && git tag -a TAG && git push origin tag TAG
TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release.
9. Decide what compression schemes to offer.
@@ -149,13 +147,15 @@ General steps (for each step, check for possible errors):
11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org.
For a pretest, also bcc: platform-testers@gnu.org.
+ For a release, also bcc: info-gnu@gnu.org.
(The reason for using bcc: is to make it less likely that people
will followup on the wrong list.)
See the info-gnu-emacs mailing list archives for the form
of past announcements. The first pretest announcement, and the
release announcement, should have more detail.
-12. For a release, update the Emacs homepage in the web repository.
- Also update history.html, and add the new NEWS file as NEWS.xx.y.
+12. For a release, update the Emacs homepage emacs.html in the web repository.
+ Also update history.html, and add the new NEWS file as news/NEWS.xx.y.
Regenerate the html manuals (use make-manuals from admin.el).
If there are new manuals, add appropriate index pages.
+ Delete any old manual pages that are no longer present.
diff --git a/admin/merge-gnulib b/admin/merge-gnulib
index a11b6e06d27..64514f79bdd 100755
--- a/admin/merge-gnulib
+++ b/admin/merge-gnulib
@@ -35,11 +35,11 @@ GNULIB_MODULES='
intprops largefile lstat
manywarnings memrchr mkostemp mktime
pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat
- sig2str socklen stat-time stdalign stdio
+ sig2str socklen stat-time stdalign stddef stdio
strftime strtoimax strtoumax symlink sys_stat
- sys_time time timer-time timespec-add timespec-sub
+ sys_time time time_r timer-time timespec-add timespec-sub
unsetenv update-copyright utimens
- warnings
+ vla warnings
'
GNULIB_TOOL_FLAGS='
diff --git a/admin/notes/BRANCH b/admin/notes/BRANCH
deleted file mode 100644
index 9f09135f206..00000000000
--- a/admin/notes/BRANCH
+++ /dev/null
@@ -1,32 +0,0 @@
-You can view the available Emacs branches at
-
-http://bzr.savannah.gnu.org/r/emacs/
-
-Development normally takes places on the trunk.
-Sometimes specialized features are developed on separate branches
-before possibly being merged to the trunk.
-
-Development is discussed on the emacs-devel mailing list.
-
-Sometime before the release of a new major version of Emacs (eg 23.2),
-a "feature freeze" is imposed on the trunk. No new features may be
-added after this point. This is usually some months before the release.
-
-Shortly before the release, a release branch is created, and the
-trunk is then free for development.
-For example, "emacs-23" for Emacs 23.2 and later, "EMACS_23_1_RC" for
-23.1, "EMACS_22_BASE" for 22.x, and "EMACS_21_1_RC" for 21.x.
-
-Consult emacs-devel for exactly what kinds of changes are allowed
-on what branch at any time.
-
-If you are looking at this file in a branch other than the trunk,
-there may be some branch-specific documentation below this line.
-________________________________________________________________________
-
-* elpa
-
- This branch does not contain a copy of Emacs, but of the Emacs Lisp
- package archive (elpa.gnu.org). See admin/notes/elpa for further
- explanation, and the README file in the branch for usage
- instructions.
diff --git a/admin/notes/bugtracker b/admin/notes/bugtracker
index 7947b17973b..fd7bd08091a 100644
--- a/admin/notes/bugtracker
+++ b/admin/notes/bugtracker
@@ -463,10 +463,10 @@ time, rather than by increasing bug number
"raw" = ?
-** ChangeLog issues
+** Change log issues
*** When you fix a bug, it can be helpful to put the bug number in the
-ChangeLog entry, for example:
+change log entry, for example:
* foo.el (foofunc): Fix the `foo' case. (Bug#123)
@@ -475,7 +475,7 @@ obvious fix (e.g. a typo), there's no need to clutter the log with the
bug number.
Similarly, when you close a bug, it can be helpful to include the
-relevant ChangeLog entry in the message to the bug tracker, so people
+relevant change log entry in the message to the bug tracker, so people
can see exactly what the fix was.
*** bug-reference-mode
@@ -487,44 +487,6 @@ the bug web-pages.
http://lists.gnu.org/archive/html/emacs-devel/2009-11/msg00440.html
-** Bazaar stuff
-
-*** You can use `bzr commit --fixes debbugs:123' to mark that a commit fixes
-Emacs bug 123. You will first need to add a line to one of your
-configuration files, ~/.bazaar/bazaar.conf or ~/.bazaar/locations.conf:
-
-bugtracker_debbugs_url = http://debbugs.gnu.org/{id}
-
-Here "{id}" is a literal string, a placeholder that will be replaced
-by the bug number you specify after `--fixes debbugs:' in the bzr
-command line (123 in the example above).
-
-In the bazaar.conf file, this setting should go into the [DEFAULT]
-section.
-
-In the locations.conf file, it should go into the branch-specific
-configuration section for the branch where you want this to be in
-effect. For example, if you want this to be in effect for the branch
-located at `/home/projects/emacs/trunk', you need to have this in your
-~/.bazaar/locations.conf file:
-
-[/home/projects/emacs/trunk]
-bugtracker_debbugs_url = http://debbugs.gnu.org/{id}
-
-If you want to use this in all Emacs branches whose common parent is
-`/home/projects/emacs', put the setting in the [/home/projects/emacs]
-section. See "bzr help configuration" for more information about
-the *.conf files, their location and formats. See "bzr help bugs" for
-more information about the bugtracker_debbugs_url setting.
-
-See also log-edit-rewrite-fixes in .dir-locals.el.
-
-Note that all this does is add some metadata to the commit, it doesn't
-actually mark the bug as closed in the tracker. You can see this
-information with `bzr log', and it will show up as a link in a recent
-loggerhead installation, or with some of the graphical frontends to
-`bzr log'.
-
** Gnus-specific voodoo
*** Put point on a bug-number and try: M-x gnus-read-ephemeral-emacs-bug-group
diff --git a/admin/notes/bzr b/admin/notes/bzr
deleted file mode 100644
index 13a3beb4ca8..00000000000
--- a/admin/notes/bzr
+++ /dev/null
@@ -1,398 +0,0 @@
-NOTES ON COMMITTING TO EMACS'S BAZAAR REPO -*- outline -*-
-
-* Install changes only on one branch, let them get merged elsewhere if needed.
-In particular, install bug-fixes only on the release branch (if there
-is one) and let them get synced to the trunk; do not install them by
-hand on the trunk as well. E.g. if there is an active "emacs-24" branch
-and you have a bug-fix appropriate for the next emacs-24.x release,
-install it only on the emacs-24 branch, not on the trunk as well.
-
-Installing things manually into more than one branch makes merges more
-difficult.
-
-http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01124.html
-
-The exception is, if you know that the change will be difficult to
-merge to the trunk (eg because the trunk code has changed a lot).
-In that case, it's helpful if you can apply the change to both trunk
-and branch yourself (when committing the branch change, indicate
-in the commit log that it should not be merged to the trunk; see below).
-
-* Backporting a bug-fix from the trunk to a branch (e.g. "emacs-24").
-Indicate in the commit log that there is no need to merge the commit
-to the trunk. Anything that matches `bzrmerge-skip-regexp' will do;
-eg start the commit message with "Backport:". This is helpful for the
-person merging the release branch to the trunk.
-
-http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00262.html
-
-* Installing changes from your personal branches.
-If your branch has only a single commit, or many different real
-commits, it is fine to do a merge. If your branch has only a very
-small number of "real" commits, but several "merge from trunks", it is
-preferred that you take your branch's diff, apply it to the trunk, and
-commit directly, not merge. This keeps the history cleaner.
-
-In general, when working on some feature in a separate branch, it is
-preferable not to merge from trunk until you are done with the
-feature. Unless you really need some change that was done on the
-trunk while you were developing on the branch, you don't really need
-those merges; just merge once, when you are done with the feature, and
-Bazaar will take care of the rest. Bazaar is much better in this than
-CVS, so interim merges are unnecessary.
-
-Or use shelves; or rebase; or do something else. See the thread for
-yet another fun excursion into the exciting world of version control.
-
-http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00086.html
-
-* Installing changes from gnulib
-Some of the files in Emacs are copied from gnulib. To synchronize
-these files from the version of gnulib that you have checked out into
-a sibling directory of your branch, type "admin/merge-gnulib"; this
-will check out the latest version of gnulib if there is no sibling
-directory already. It is a good idea to run "bzr status" afterwards,
-so that if a gnulib module added a file, you can record the new file
-using "bzr add". After synchronizing from gnulib, do a "make" in the
-usual way.
-
-To change the set of gnulib modules, change the GNULIB_MODULES
-variable in admin/merge-gnulib before running it.
-
-If you remove a gnulib module, or if a gnulib module
-removes a file, then remove the corresponding files by hand.
-
-* How to merge changes from emacs-24 to trunk
-
-The following description uses bound branches, presumably it works in
-a similar way with unbound ones.
-
-0) (This step is only necessary if using bzr older than 2.4.0.)
-Get the bzr changelog_merge plugin:
-
-cd ~/.bazaar/plugins
-bzr branch http://bazaar.launchpad.net/~spiv/bzr-changelog-merge/trunk changelog_merge
-
-This plugin should make merging ChangeLogs smoother. It merges new
-entries to the top of the file, rather than trying to fit them in
-mid-way through. Newer versions of the plugin should also be able to
-deal with changes to *old* ChangeLog entries, that should not be
-floated to the head of the file (see launchpad#723968).
-
-It is included in bzr from 2.4.0 onwards, so remember to delete the
-copy in ~/.bazaar if you upgrade bzr.
-
-Maybe the default Emacs behavior without this plugin is better,
-though, it's not clear yet.
-
-1) Get clean, up-to-date copies of the emacs-24 and trunk branches.
-Check for any uncommitted changes with bzr status.
-
-2) M-x cd /path/to/trunk
-
-The first time only, do this:
-cd .bzr/branch
-Add the following line to branch.conf:
-changelog_merge_files = ChangeLog
-
-3) load admin/bzrmerge.el
-
-4) M-x bzrmerge RET /path/to/emacs-24 RET
-
-It will prompt about revisions that should be skipped, based on the
-regexp in bzrmerge-missing. If there are more revisions that you know
-need skipping, you'll have to do that by hand.
-
-5) It will stop if there are any conflicts. Resolve them.
-Using smerge-mode, there are menu items to skip to the next conflict,
-and to take either the trunk, branch, or both copies.
-
-6) After resolving all conflicts, you might need to run the bzmerge
-command again if there are more revisions still to merge.
-
-Do not commit (or exit Emacs) until you have run bzrmerge to completion.
-
-Before committing, check bzr status and bzr diff output.
-If you have run bzrmerge enough times, the "pending merge tip" in bzr
-status should be the last revision from the emacs-24 branch, and
-bzr status -v should show all the revisions you expect to merge.
-
-(Note that it will also show "skipped" revisions. This is expected,
-and is due to a technical limitation of bzr. The log data for those
-revisions gets merged, the actual changes themselves do not.
-http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00609.html )
-
-In particular, check the ChangeLog entries (eg in case too many
-entries have been included or whitespace between entries needs fixing).
-bzrmerge tries to fix up the dates to today's date, but it only does
-this where there are conflicts. If you used the changelog_merge plugin,
-there won't be any conflicts, and (at time of writing) you will need
-to adjust dates by hand. In any case, if someone made multiple
-ChangeLog entries on different days in the branch, you may wish to
-collapse them all to a single entry for that author in the trunk
-(because in the trunk they all appear under the same date).
-Obviously, if there are multiple changes to the same file by different
-authors, don't break the logical ordering in doing this.
-
-Notes:
-
-1) If a file is modified in emacs-24, and deleted in the trunk, you
-get a "contents conflict". Assuming the changes don't need to be in
-the trunk at all, use `bzr resolve path/to/file --take-this' to keep the
-trunk version. Prior to bzr 2.2.3, this may fail. You can just
-delete the .OTHER etc files by hand and use bzr resolve path/to/file.
-
-2) Conflicts in autoload md5sums in comments. Strictly speaking, the
-right thing to do is merge everything else, resolve the conflict by
-choosing either the trunk or branch version, then run `make -C lisp
-autoloads' to update the md5sums to the correct trunk value before
-committing.
-
-* Re-adding a file that has been removed from the repository
-
-It's easy to get this wrong. Let's suppose you've done:
-
-bzr remove file; bzr commit
-
-and now, sometime later, you realize this was a mistake and file needs
-to be brought back. DON'T just do:
-
-bzr add file; bzr commit
-
-This restores file, but without its history (`bzr log file' will be
-very short). This is because file gets re-added with a new file-id
-(use `bzr file-id file' to see the id).
-
-Instead of adding the file, try:
-
-bzr revert -rN file; bzr commit
-
-where revision N+1 is the one where file was removed.
-
-You could also try `bzr add --file-ids-from', if you have a copy of
-another branch where file still exists.
-
-* Undoing a commit (uncommitting)
-
-It is possible to undo/remove a bzr commit (ie, to uncommit).
-Only do this if you really, really, need to. For example, if you
-somehow made a commit that triggers a bug in bzr itself.
-Don't do it because you made a typo in a commit or the log.
-
-If you do need to do this, do it as soon as possible, because the
-longer you leave it, the more work is involved.
-
-0. First, tell emacs-devel that you are going to do this, and suggest
-people not commit anything to the affected branch for the duration.
-
-In the following, replace USER with your Savannah username, and
-BRANCH with the name of the branch.
-Let's assume that revno 100 is the bad commit, and that there have
-been two more commits after that (because nothing is ever easy).
-
-1. Ensure your copy of the branch is up-to-date (for a bound
-branch, bzr up; for an unbound branch, bzr pull) and has no local
-changes (bzr st).
-
-2. Make a record of the commits you are going to undo:
-bzr diff -c 102 > /tmp/102.diff
-etc
-
-Also record the commit message, author, and any --fixes information.
-
-3. Most Emacs branches are set up to prevent just this kind of thing.
-So we need to disable that protection:
-
-bzr config append_revisions_only=False \
- -d bzr+ssh://USER@bzr.savannah.gnu.org/emacs/BRANCH/
-
-4. Undo the commits:
-bzr uncommit -r -4
-
-This will show the commits it is going to undo, and prompt you to confirm.
-
-5. If using an unbound branch:
-bzr push --overwrite
-
-6. Now, replay the commits you just undid (obviously, fix whatever it
-was in the bad commit that caused the problem):
-
-patch -p0 < /tmp/100.diff
-bzr commit --author ... --fixes ... -F /tmp/100.log
-etc
-
-7. If using an unbound branch:
-bzr push
-
-8. Finally, re-enable the branch protection:
-bzr config append_revisions_only=True \
- -d bzr+ssh://USER@bzr.savannah.gnu.org/emacs/BRANCH/
-
-9. Tell emacs-devel that it is ok to use the branch again.
-Anyone with local changes should back them up before doing anything.
-
-For a bound branch, bzr up will convert any of the undone commits to a
-pending merge. Just bzr revert these away.
-
-For an unbound branch, bzr pull will complain about diverged branches
-and refuse to do anything. Use bzr pull --overwrite.
-
-* Loggerhead
-
-Loggerhead is the bzr tool for viewing a repository over http (similar
-to ViewVC). The central version is at http://bzr.savannah.gnu.org/lh/emacs,
-but if you just like the way this interface presents data, then if
-you have your own copy of the repository, you can operate your own
-Loggerhead server in stand-alone mode, and so help to reduce the load
-on Savannah:
-
- bzr branch lp:loggerhead ~/.bazaar/plugins/loggerhead
- cd /path/to/emacs/bzr
- bzr serve --http
-
-You may need to install some Python dependencies to get this command to work.
-For example, on RHEL6 I needed:
-
- yum install python-paste python-simplejson
- yum --enablerepo=epel install python-simpletal
-
-Then point your web-browser to http://127.0.0.1:8080/ .
-
-* Bisecting
-
-This is a semi-automated way to find the revision that introduced a bug.
-
-First, get the bzr bisect plugin if you do not have it already:
-
- cd ~/.bazaar/plugins
- bzr branch lp:bzr-bisect bisect
-
-`bzr help bisect' should work now.
-
-It's probably simplest to make a new copy of the branch to work in
-from this point onwards.
-
-Identify the last known "good" revision where the relevant issue is
-NOT present (e.g. maybe Emacs 24.1). Let's say this is revision 1000.
-
- bzr bisect start
- bzr bisect no -r 1000
-
-At this point, bzr will switch to the mid-point of revision 1000 and
-the current revision. If you know that the issue was definitely
-present in some specific revision (say 2000), you can use:
-
- bzr bisect yes -r 2000
-
-Now bzr switches to revision 1500.
-
-Now test whether the issue is present. You might need to rebuild
-Emacs to do this, or if you know the problem is in a specific Lisp
-file, you might be able to get away with just loading that one file in
-current Emacs.
-
-If the issue is present, use
-
- bzr bisect yes
-
-If it is not, use
-
- bzr bisect no
-
-Repeat until you zero-in on the specific revision.
-
-When finished, use
-
- bzr bisect reset
-
-or simply delete the entire branch if you created it just for this.
-
-* Commit emails
-
-** Old method: bzr-hookless-email
-https://launchpad.net/bzr-hookless-email
-
-Runs hourly via cron. Must ask Savannah admins to enable/disable it
-for each branch. Stores the last revision that it mailed as
-last_revision_mailed in branch.conf on the server. Breaks with bzr 2.6:
-
-http://lists.gnu.org/archive/html/savannah-hackers-public/2013-05/msg00000.html
-
-Fix from https://bugs.launchpad.net/bzr-hookless-email/+bug/988195
-only partially works. Breaks again on every merge commit:
-
-https://lists.ubuntu.com/archives/bazaar/2013q2/075520.html
-http://lists.gnu.org/archive/html/savannah-hackers-public/2013-05/msg00024.html
-
-You can force it to skip the merge commit by changing the value for
-last_revision_mailed, eg:
-
-bzr config last_revision_mailed=xfq.free@gmail.com-20130603233720-u1aumaxvf3o0rlai -d bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/trunk/
-
-** New method: bzr-email plugin
-https://launchpad.net/bzr-email
-http://lists.gnu.org/archive/html/savannah-hackers-public/2013-06/msg00007.html
-
-Runs on commit. Projects can enable it themselves by using `bzr
-config' to set post_commit_to option for a branch. See `bzr help email'
-(if you have the plugin installed) for other options.
-
-The From: address will be that of your Savannah account, rather than
-your `bzr whoami' information.
-
-Note: if you have the bzr-email plugin installed locally, then when
-you commit to the Emacs repository it will also try to send a commit
-email from your local machine. If your machine is not configured to
-send external mail, this will just fail. In any case, you may prefer
-to either remove the plugin from your machine, or disable it for Emacs
-branches. You can do this either by editing branch.conf in your Emacs
-branches, to override the server setting (untested; not sure this
-works), or by adding an entry to ~/.bazaar/locations.conf:
-
- [bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/*/]
- post_commit_to = ""
-
-You have to use locations.conf rather than bazaar.conf because the
-latter has a lower priority than branch.conf.
-
-* Using git-bzr
-
-** initially
-
-You can use Git locally to talk to the Bazaar repo as a "remote" repo
-via git-bzr (aka git-remote-bzr). Initial clone:
-
- git clone bzr::bzr+ssh://USER@bzr.sv.gnu.org/emacs/trunk e
-
-This creates the working dir e/ (with subdir .git, etc). Disk usage
-is 13G (as of early 2014), so you will probably want to repack:
-
- git repack -a -d -f --window=250 --depth=250 --window-memory=N
-
-where N is chosen to avoid swapping. E.g., given 512MB RAM, N="200m"
-results in "du -sh .git" => 559M, about double the smallest reported
-value (obtained with "deprecated" command "git gc --aggressive").
-
-** steady-state
-
-Use "fetch", "pull" and other remote-to-local commands as usual.
-
-For "push", the Emacs Bazaar repo is configured with
-
- append_revisions_only = True
-
-so some versions of git-remote-bzr may raise AppendRevisionsOnlyViolation
-(in func do_export) instead of displaying a "non fast-forward" message
-and skipping the branch. See:
-
- http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00436.html
-
-which includes a provisional patch to git-remote-bzr to do that.
-
-** remote name
-
-Although Git itself is agnostic about what names you choose for
-the remote repo, it seems git-bzr is more likely to get confused.
-After the clone as described above, the remote name is "origin";
-changing it is Not Recommended. [Insert 9-hour high-entropy then
-mysterious bug w/ JSON parsing errors anecdote here. --ttn]
diff --git a/admin/notes/changelogs b/admin/notes/changelogs
deleted file mode 100644
index e8158060e70..00000000000
--- a/admin/notes/changelogs
+++ /dev/null
@@ -1,32 +0,0 @@
-Emacs generally follows the GNU coding standards when it comes to ChangeLogs:
-http://www.gnu.org/prep/standards/html_node/Change-Logs.html
-
-One exception is that we still sometimes quote `like-this' (as the
-standards used to recommend) rather than 'like-this' (as they do now),
-because `...' is so widely used elsewhere in Emacs.
-http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00514.html
-
-
-If installing changes written by someone else, make the ChangeLog
-entry in their name, not yours.
-
-
-http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html
- There is no need to make change log entries for files such as NEWS,
- MAINTAINERS, and FOR-RELEASE.
-"There is no need" means you don't have to, but you can if you want to.
-
-
-http://lists.gnu.org/archive/html/emacs-devel/2006-12/msg01135.html
- There is no need to indicate regeneration of files such as configure
- in ChangeLog.
-
-
-http://lists.gnu.org/archive/html/emacs-devel/2008-11/msg00940.html
-Preferred form for several entries with the same content:
-
- * help.el (view-lossage):
- * kmacro.el (kmacro-edit-lossage):
- * edmacro.el (edit-kbd-macro): Fix docstring, lossage is now 300 keys.
-
-(Rather than anything involving "ditto" and suchlike.)
diff --git a/admin/notes/commits b/admin/notes/commits
deleted file mode 100644
index f33c6905d4c..00000000000
--- a/admin/notes/commits
+++ /dev/null
@@ -1,70 +0,0 @@
-HOW TO COMMIT CHANGES TO EMACS
-
-Most of these points are from:
-
-http://lists.gnu.org/archive/html/emacs-devel/2009-03/msg00555.html
-From: Miles Bader
-Subject: commit style redux
-Date: Tue, 31 Mar 2009 12:21:20 +0900
-
-(0) Each commit should correspond to a single change (whether spread
- over multiple files or not). Do not mix different changes in the
- same commit (eg adding a feature in one file, fixing a bug in
- another should be two commits, not one).
-
-(1) Commit all changed files at once with a single log message (which
- in CVS will result in an identical log message for all committed
- files), not one-by-one. This is pretty easy using vc-dir now.
-
-(2) Make the log message describe the entire changeset, perhaps
- including relevant changelog entries (I often don't bother with
- the latter if it's a trivial sort of change).
-
- Many modern source-control systems vaguely distinguish the first
- line of the log message to use as a short summary for abbreviated
- history listing (in arch this was explicitly called the summary,
- but many other systems have a similar concept). So it's nice if
- you can format the log entry like:
-
- SHORTISH ONE-LINE SUMMARY
-
- MULTIPLE-LINE DETAILED DESCRIPTION POSSIBLY INCLUDING (OR
- CONSISTING OF) CHANGELOG ENTRIES
-
- [Even with CVS this style is useful, because web CVS browsing
- interfaces often include the first N words of the log message of
- the most recent commit as a short "most recent change"
- description.]
-
-(3) Don't phrase log messages assuming the filename is known, because
- in non-file-oriented systems (everything modern other than CVS),
- the log listing tends to be treated as global information, and the
- connection with specific files is less explicit.
-
- For instance, currently I often see log messages like "Regenerate";
- for modern source-control systems with a global log, it's better to
- have something like "Regenerate configure".
-
-(4) (Added in 2014) In commit comments, and ChangeLog files, it is best
- to use ways of identifying revisions that are not dependent on a
- particular version control system. (At time of writing Emacs is
- about to move to its fourth VCS and another move in the future is
- not impossible.) An excellent way to identify commits is by
- quoting their summary line. Another is with an action stamp - an
- RFC3339 date followed by ! followed by the committer's email - for
- example, "2014-01-16T05:43:35Z!esr@thyrsus.com". Often, "my
- previous commit" will suffice.
-
-Followup discussion:
-http://lists.gnu.org/archive/html/emacs-devel/2010-01/msg00897.html
-http://lists.gnu.org/archive/html/emacs-devel/2010-02/msg00401.html
-
-
-PREVIOUS GUIDELINES FOR CVS
-
-For historical interest only, here is the old-style advice for CVS logs:
-http://lists.gnu.org/archive/html/emacs-devel/2007-12/msg01208.html
-
-From: Eli Zaretskii
-Subject: Re: Log messages in CVS
-Date: Sat, 29 Dec 2007 16:06:29 +0200
diff --git a/admin/notes/copyright b/admin/notes/copyright
index ebef0633032..f7565fe1721 100644
--- a/admin/notes/copyright
+++ b/admin/notes/copyright
@@ -22,9 +22,9 @@ author to make a non-trivial total. If so, make sure they have an
assignment. If adding a whole file adjust the copyright statements in
the file.
-2. When installing code written by someone else, the ChangeLog entry
+2. When installing code written by someone else, the commit
should be in the name of the author of the code, not the person who
-installs it. Also use bzr commit's "--author" option.
+installs it. Also use commit's "--author" option.
Do not install any of your own changes in the same commit.
3. With images, add the legal info to a README file in the directory
@@ -115,8 +115,8 @@ else it is possible the file should not be in Emacs at all (please
report!).
Note that it seems painfully clear that one cannot rely on commit logs,
-or even ChangeLogs, for older changes. People often installed changes
-from others, without recording the true authorship.
+or even change log entries, for older changes. People often installed
+changes from others, without recording the true authorship.
[For reference, most of these points were established via email with
rms, 2007/1, "Copyright years".
@@ -316,11 +316,6 @@ licensing@fsf.org starting on Thu, 07 Aug 2003 with subject:
"[gnu.org #58812] Changing license of MH-E manual"
-msdos/is_exec.c, sigaction.c - these files are copyright DJ Delorie.
-Leave the copyrights alone. Leave the Eli Zaretskii copyright in
-is_exec.c alone. See the msdos/README file for the legal history of
-these files.
-
msdos/sed*.inp - These files are copyright FSF and distributed under
an MIT-like license.
@@ -489,10 +484,10 @@ system)
obviously good):
-Is it OK to just `bzr remove' a file for legal reasons, or is
-something more drastic needed? A removed file is still available from
-the repository, if suitable options are applied. (This issue obviously
-does not affect a release).
+Is it OK to just remove a file for legal reasons, or is something more
+drastic (excision from the entire repository history) needed? A
+removed file is still available from the repository, if suitable
+options are applied. (This issue obviously does not affect a release).
rms: will ask lawyer
@@ -563,8 +558,7 @@ oldXMenu/insque.c (rms: "We wrote that specifically for Emacs, so
definitely relicense that.").
2. The files that are copyright FSF and AIST, or AIST alone, should be
-and were updated, ditto the oldXMenu files with FSF copyright, and
-msdos/is_exec.c and sigaction.c.
+and were updated, ditto the oldXMenu files with FSF copyright.
3. lwlib/
diff --git a/admin/notes/exit-value b/admin/notes/exit-value
deleted file mode 100644
index cad6862c8aa..00000000000
--- a/admin/notes/exit-value
+++ /dev/null
@@ -1,35 +0,0 @@
-ttn 2004-05-09
-
-The exit value of a program returning to the shell on unixoid systems is
-typically 0 for success, and non-0 (such as 1) for failure. For vms it is
-odd (1,3,5...) for success, even (0,2,4...) for failure.
-
-This holds from the point of view of the "shell" (in quotes because vms has a
-different dispatch model that is not explained further here).
-
-From the point of view of the program, nowadays stdlib.h on both type of
-systems provides macros `EXIT_SUCCESS' and `EXIT_FAILURE' that should DTRT.
-
-NB: The numerical values of these macros DO NOT need to fulfill the exit
-value requirements outlined in the first paragraph! That is the job of the
-`exit' function. Thus, this kind of construct shows misunderstanding:
-
- #ifdef VMS
- exit (1);
- #else
- exit (0);
- #endif
-
-Values aside from EXIT_SUCCESS and EXIT_FAILURE are tricky.
-
-
-
-ttn 2004-05-12
-
-Values aside from EXIT_SUCCESS and EXIT_FAILURE can be used to indicate
-finer gradations of failure. If this is the only information available
-to the caller, clamping such values to EXIT_FAILURE loses information.
-If there are other ways to indicate the problem to the caller (such as
-a message to stderr) it may be ok to clamp. In all cases, it is the
-relationship between the program and its caller that must be examined.
-[Insert ZAMM quote here.]
diff --git a/admin/notes/git-workflow b/admin/notes/git-workflow
new file mode 100644
index 00000000000..d1d105a8a7a
--- /dev/null
+++ b/admin/notes/git-workflow
@@ -0,0 +1,135 @@
+(This is a draft. The method here won't actually work yet, because
+neither git-new-workdir nor merge-changelog are in the Emacs
+distribution yet.)
+
+Setting up and using git for normal, simple bugfixing
+=====================================================
+
+If you haven't configured git before you should first do:
+
+git config --global user.name "Frank Chu"
+git config --global user.email "fchu@example.com"
+
+Initial setup
+=============
+
+Then we want to clone the repository. We normally want to have both
+the current trunk and the emacs-24 branch.
+
+mkdir ~/emacs
+cd ~/emacs
+git clone @git.sv.gnu.org:/srv/git/emacs.git
+mv emacs trunk
+(cd trunk; git config push.default current)
+./trunk/admin/git-new-workdir trunk emacs-24
+cd emacs-24
+git checkout emacs-24
+git config push.default current
+
+You now have both branches conveniently accessible, and you can do
+"git pull" in them once in a while to keep updated.
+
+
+Fixing bugs
+===========
+
+You edit the files in either branch, `M-x vc-dir', and check in your
+changes. Then you need to push the data to the main repository. This
+will usually fail, since somebody else has pushed other changes in the
+meantime. To fix this, say
+
+git pull --rebase
+
+which will update your repository, and then re-apply your changes on
+top of that. Then say
+
+git push
+
+
+Backporting to emacs-24
+=======================
+
+If you have applied a fix to the trunk, but then decide that it should
+be applied to the emacs-24 branch, too, then
+
+cd ~/emacs/trunk
+git log
+
+and find the commit you're looking for. Then find the commit ID,
+which will look like
+
+commit 958b768a6534ae6e77a8547a56fc31b46b63710b
+
+cd ~/emacs/emacs-24
+git cherry-pick -xe 958b768a6534ae6e77a8547a56fc31b46b63710b
+
+and add "Backport:" to the commit string. Then
+
+git push
+
+
+Merging emacs-24 to trunk/master
+================================
+
+It is recommended to use the file gitmerge.el in the admin directory
+for merging 'emacs-24' into 'master'. It will take care of many
+things which would otherwise have to be done manually, like ignoring
+commits that should not land in master, fixing up ChangeLogs and
+automatically dealing with certain types of conflicts. If you really
+want to, you can do the merge manually, but then you're on your own.
+If you still choose to do that, make absolutely sure that you *always*
+use the 'merge' command to transport commits from 'emacs-24' to
+'master'. *Never* use 'cherry-pick'! If you don't know why, then you
+shouldn't manually do the merge in the first place; just use
+gitmerge.el instead.
+
+How to use gitmerge.el:
+
+Enter the Emacs repository, checkout 'master' and make sure it's
+up-to-date by doing a pull. Then start Emacs with
+
+ emacs -l admin/gitmerge.el -f gitmerge
+
+You'll be asked for the branch to merge, which will default to
+'origin/emacs-24', which you should accept. Merging a local tracking
+branch is discouraged, since it might not be up-to-date, or worse,
+contain commits from you which are not yet pushed upstream.
+
+You will now see the list of commits from 'emacs-24' which are not yet
+merged to 'master'. You might also see commits that are already
+marked for "skipping", which means that they will be merged with a
+different merge strategy ('ours'), which will effectively ignore the
+commit's diff while still being seen as merged, so it won't turn up
+again in future merges. Recognizing these kinds of commits is done
+with a simple regexp searching the log for strings like 'backport' or
+'merge', so you'll probably see false positives as well as false
+negatives. Carefully go through the commits, investigate them by
+hitting 'l', 'd' and 'f', and mark or unmark them for skipping with
+'s'. When you're done, hit 'm' to start the merge.
+
+You'll likely get conflicts during the process which cannot be dealt
+with automatically. In that case, the merge will stop and show you
+the list of conflicted files. Resolve those conflicts as usual using
+smerge and restart gitmerge (remember to enter the repository when
+doing that). You don't have to 'add' the resolved files and 'commit'
+the resulting merge, but if you really want to, feel free to do that.
+Note you can also resume gitmerge in a new Emacs session, since the
+current state will be saved to disk.
+
+When everything's done, look hard at the resulting merge. Skipping
+commits requires separate merges, so don't be surprised to see more
+than one merge commit. If you're happy, push.
+
+Warnings about X11 forwarding
+=============================
+
+If you get warnings like
+
+Warning: No xauth data; using fake authentication data for X11 forwarding.
+X11 forwarding request failed on channel 0
+
+when pulling or pushing data, add the following to the start of
+~/.ssh/config:
+
+Host git.sv.gnu.org
+ ForwardX11 no
diff --git a/admin/notes/hydra b/admin/notes/hydra
index 3b6bc87a2f6..ce2047480d2 100644
--- a/admin/notes/hydra
+++ b/admin/notes/hydra
@@ -26,7 +26,7 @@ http://lists.gnu.org/mailman/listinfo/emacs-buildstatus
* The Emacs jobset consists of the following jobs:
** The `tarball' job
-which gets a checkout from bzr, and does a bootstrap followed
+which gets a checkout from the repository, and does a bootstrap followed
by running make-dist to create a tarball. If this job fails, all the
others will too (because they use the tarball as input).
diff --git a/admin/notes/iftc b/admin/notes/iftc
deleted file mode 100644
index 983b1486685..00000000000
--- a/admin/notes/iftc
+++ /dev/null
@@ -1,26 +0,0 @@
-Iso-Functional Type Contour
-
-
-This is a term coined to describe "column int->float" change approach, and can
-be used whenever low-level types need to change (hopefully not often!) but the
-meanings of the values (whose type has changed) do not.
-
-The premise is that changing a low-level type potentially means lots of code
-needs to be changed as well, and the question is how to do this incrementally,
-which is the preferred way to change things.
-
-Say LOW and HIGH are C functions:
-
- int LOW (void) { return 1; }
- void HIGH (void) { int value = LOW (); }
-
-We want to convert LOW to return float, so we cast HIGH usage:
-
- float LOW (void) { return 1.0; }
- void HIGH (void) { int value = (int) LOW (); } /* iftc */
-
-The comment /* iftc */ is used to mark this type of casting to differentiate
-it from other casting. We commit the changes and can now go about modifying
-LOW and HIGH separately. When HIGH is ready to handle the type change, the
-cast can be removed.
-
diff --git a/admin/notes/lel-TODO b/admin/notes/lel-TODO
deleted file mode 100644
index 4a4ccb5e6e8..00000000000
--- a/admin/notes/lel-TODO
+++ /dev/null
@@ -1,124 +0,0 @@
-Some lisp/emacs-lisp/ Features and Where They Are Documented
-
-Copyright (C) 2007-2014 Free Software Foundation, Inc.
-See the end of the file for license conditions.
-
-
-* Status Key
- - -- as yet unknown
- n/a -- not applicable (internal, uninteresting, etc)
- obsolete -- an obsolete feature, to be removed in future
- todo -- not documented but should be
- NODE -- documented in or under info node NODE
-
-
-* Features
- advice (elisp) Advising Functions
- advice-preload n/a
- assoc -
- authors -
- autoload (elisp) Autoload
- avl-tree -
- backquote n/a
- benchmark n/a
- bindat (elisp) Byte Packing
- byte-compile (elisp) Byte Compilation
- byte-opt -
- bytecomp (elisp) Compilation Functions
- checkdoc (elisp) Documentation Tips
- cl (cl)
- cl-compat n/a
- cl-specs n/a
- copyright -
- crm -
- cust-print (elisp) Printing in Edebug
- debug (elisp) Debugger
- derived (elisp) Derived Modes
- disass (elisp) Disassembly
- easy-mmode (elisp) Defining Minor Modes
- easymenu -
- edebug (elisp) Edebug
- eldoc -
- elint -
- elp n/a
- ewoc (elisp) Separated Rendering
- find-func -
- find-gc -
- generic (elisp) Generic Modes
- gulp n/a
- helper -
- levents obsolete
- lisp-float-type -
- lisp-mnt -
- lisp-mode n/a
- lmenu obsolete
- lucid obsolete
- macroexp (elisp) Expansion
- pp (emacs) Program Indent
- re-builder -
- regexp-opt (elisp) Regexp Functions
- regi -
- ring (elisp) Rings
- rx -
- shadow -
- sregex obsolete
- syntax (elisp) Position Parse
- testcover -
- timer (elisp) Timers
- tq (elisp) Transaction Queues
- trace -
- unsafep (elisp) Function Safety
- warnings (elisp) Warnings
-
-
-* Above list created using default directory lisp/emacs-lisp/ with
- (shell-command
- "sed '/^(provide '\\''/!d;s// /;s/).*//' *.el | sort | uniq")
-
-
-* How to use this file to improve Emacs
- (loop
- (let* ((feature (choose-one Features))
- (status (feature-status feature)))
- (if (or (eq '- status) (not (verify status)))
- (update feature (current-docs feature))
- (case status
- (todo (let (doc patch feedback)
- (while (not (grok feature))
- (or (play-with feature)
- (grep feature Internet)
- (grep feature (wisdom-maybe "emacs-devel"))))
- (setq doc (write-documentation feature)
- patch (diff (current-docs) doc))
- (while (not (and (correct doc)
- (well-placed doc)
- (well-formed patch)))
- (setq doc (revise doc)
- patch (diff (current-docs) doc))
- feedback (wisdom-maybe "emacs-devel" patch))
- (when (install patch)
- (when (update feature (current-docs feature))
- (job-well-done user-login-name)))))
- (n/a (job-well-done user-login-name))))))
-
-
-* Etc
-
-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 .
-
- Local variables:
- mode: outline
- End:
diff --git a/admin/notes/newfile b/admin/notes/newfile
index 0b66b8054bb..a682fec72d5 100644
--- a/admin/notes/newfile
+++ b/admin/notes/newfile
@@ -15,7 +15,7 @@ output under the headings "The following files are not valid DOS file
names:" and "The following resolve to the same DOS file names:" should
not include any files that end up in the release tarball.
-** Make the ChangeLog entry in the name of the author(s), not your own name.
+** Commit in the name of the author(s), not your own name.
** If appropriate, check that the file compiles OK and that Emacs
builds fine with it. Address any compilation warnings.
diff --git a/admin/notes/repo b/admin/notes/repo
new file mode 100644
index 00000000000..2d4cc2a55cf
--- /dev/null
+++ b/admin/notes/repo
@@ -0,0 +1,105 @@
+NOTES ON COMMITTING TO EMACS'S REPOSITORY -*- outline -*-
+
+** elpa
+
+This branch does not contain a copy of Emacs, but of the Emacs Lisp
+package archive (elpa.gnu.org). See admin/notes/elpa for further
+explanation, and the README file in the branch for usage
+instructions.
+
+* Installing changes from your personal branches.
+
+If your branch has only a single commit, or many different real
+commits, it is fine to do a merge. If your branch has only a very
+small number of "real" commits, but several "merge from trunks", it is
+preferred that you take your branch's diff, apply it to the trunk, and
+commit directly, not merge. This keeps the history cleaner.
+
+In general, when working on some feature in a separate branch, it is
+preferable not to merge from trunk until you are done with the
+feature. Unless you really need some change that was done on the
+trunk while you were developing on the branch, you don't really need
+those merges; just merge once, when you are done with the feature, and
+Bazaar will take care of the rest. Bazaar is much better in this than
+CVS, so interim merges are unnecessary.
+
+Or use shelves; or rebase; or do something else. See the thread for
+yet another fun excursion into the exciting world of version control.
+
+http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00086.html
+
+* Installing changes from gnulib
+
+Some of the files in Emacs are copied from gnulib. To synchronize
+these files from the version of gnulib that you have checked out into
+a sibling directory of your branch, type "admin/merge-gnulib"; this
+will check out the latest version of gnulib if there is no sibling
+directory already. It is a good idea to run "git status" afterwards,
+so that if a gnulib module added a file, you can record the new file
+using "git add". After synchronizing from gnulib, do a "make" in the
+usual way.
+
+To change the set of gnulib modules, change the GNULIB_MODULES
+variable in admin/merge-gnulib before running it.
+
+If you remove a gnulib module, or if a gnulib module
+removes a file, then remove the corresponding files by hand.
+
+* How to merge changes from emacs-24 to trunk
+
+[The section on git merge procedure has not yet been written]
+
+Inspect the change log entries (e.g. in case too many entries have been
+included or whitespace between entries needs fixing). If someone made
+multiple change log entries on different days in the branch, you may
+wish to collapse them all to a single entry for that author in the
+trunk (because in the trunk they all appear under the same date).
+Obviously, if there are multiple changes to the same file by different
+authors, don't break the logical ordering in doing this.
+
+You may see conflicts in autoload md5sums in comments. Strictly
+speaking, the right thing to do is merge everything else, resolve the
+conflict by choosing either the trunk or branch version, then run
+`make -C lisp autoloads' to update the md5sums to the correct trunk
+value before committing.
+
+* Re-adding a file that has been removed from the repository
+
+Let's suppose you've done:
+
+git rm file; git commit -a
+
+You can just restore a copy of the file and then re-add it;
+git does not have per-file history so this will not harm
+anything.
+
+Alternatively, you can do
+
+git revert XXXXX
+
+where XXXXX is the hash of the commit in which file was removed.
+This backs out the entire changeset the deletion was part of,
+which is often more appropriate.
+
+* Undoing a commit (uncommitting)
+
+If you have not pushed the commit, you may be able to use `git reset
+--hard' with a hash argument to revert the your local repo copy to the
+pre-commit state.
+
+If you have pushed commit, resetting will be ineffective because it
+will only vanish the commit in your local copy. Instead, use `git
+revert', giving it the commit ID as argument. This will create a
+new commit that backs out the change. Then push that.
+
+Note that git will generate a log message for the revert that includes
+a git hash. Please edit this to refer to the commit by the first line
+of its log comment, or by committer and date, or by something else
+that is not the hash. As noted previously, it is best to avoid hashes
+in comments in case we someday have to change version-control systems
+again.
+
+* Bisecting
+
+This is a semi-automated way to find the revision that introduced a bug.
+Browse `git help bisect' for technical instructions.
diff --git a/admin/notes/tags b/admin/notes/tags
index 9c3700f2e4d..a1e1b86429c 100644
--- a/admin/notes/tags
+++ b/admin/notes/tags
@@ -5,1002 +5,999 @@ and hence were removed. See:
http://lists.gnu.org/archive/html/emacs-devel/2012-04/msg00042.html
-(UPDATE: It seems tag deletion is basically impossible in bzr, so all
-these tags came back.)
-
In the unlikely event that you need them, the removed tags were:
-tag revision
+tag version stamp
-amigados-merge 14846
-before-thomas-posix1996 16843
-gcc-2_8_1-980401 20893
-gcc-2_8_1-980402 21795
-gcc-2_8_1-980407 20893
-gcc-2_8_1-980412 20893
-gcc-2_8_1-980413 20893
-gcc-2_8_1-980419 21502
-gcc-2_8_1-980426 21502
-gcc-2_8_1-980502 21795
-gcc-2_8_1-980513 21795
-gcc-2_8_1-980525 22147
-gcc-2_8_1-980529 22147
-gcc-2_8_1-980608 22147
-gcc-2_8_1-980609 22147
-gcc-2_8_1-980627 22478
-gcc-2_8_1-980705 22478
-gcc-2_8_1-980718 22478
-gcc-2_8_1-980811 22971
-gcc-2_8_1-980813 23005
-gcc-2_8_1-980928 23338
-gcc-2_8_1-980929 23338
-gcc-2_8_1-RELEASE 20893
-gcc_2_8_1-980315 20893
-gcc_2_8_1-980929 23338
-glibc-2_0_2 16843
-gnumach-release-1-1 17693
-gnumach-release-1-1-1 17693
-gnumach-release-1-1-2 18209
-gnumach-release-1-1-3 18209
-hurd-release-0-2 18209
-jimb-sync-Nov-3-1992 1552
-libc20x-97031 16843
-libc20x-970306 16843
-libc20x-970316 16843
-libc20x-970318 16843
-libc20x-970319 16843
-libc20x-970404 16843
-libc-1-90 15360
-libc-1-91 15451
-libc-1-92 15463
-libc-1-93 15702
-libc-950402 11085
-libc-950411 11255
-libc-950722 12418
-libc-950723 12418
-libc-950922 12859
-libc-951016 12859
-libc-951018 13231
-libc-951029 13231
-libc-951031 13231
-libc-951101 13231
-libc-951102 13231
-libc-951103 13231
-libc-951104 13231
-libc-951105 13231
-libc-951106 13231
-libc-951107 13231
-libc-951108 13231
-libc-951109 13231
-libc-951110 13231
-libc-951111 13231
-libc-951112 13231
-libc-951113 13231
-libc-951114 13231
-libc-951115 13231
-libc-951116 13231
-libc-951117 13231
-libc-951118 13231
-libc-951119 13231
-libc-951120 13231
-libc-951121 13231
-libc-951122 13231
-libc-951123 13231
-libc-951124 13231
-libc-951125 13231
-libc-951126 13231
-libc-951127 13231
-libc-951128 13231
-libc-951129 13231
-libc-951130 13231
-libc-951201 13679
-libc-951202 13679
-libc-951203 13679
-libc-951204 13679
-libc-951206 13686
-libc-951208 13693
-libc-951209 13693
-libc-951210 13693
-libc-951211 13693
-libc-951212 13704
-libc-951213 13704
-libc-951214 13730
-libc-951215 13730
-libc-951216 13741
-libc-951217 13741
-libc-951218 13741
-libc-951219 13741
-libc-951220 13741
-libc-951221 13741
-libc-951222 13741
-libc-951223 13741
-libc-951224 13741
-libc-951225 13741
-libc-951226 13741
-libc-951227 13741
-libc-951228 13741
-libc-951229 13741
-libc-951230 13741
-libc-951231 13741
-libc-960101 13741
-libc-960102 13741
-libc-960103 13741
-libc-960104 13741
-libc-960105 13741
-libc-960106 13741
-libc-960107 13741
-libc-960108 13741
-libc-960109 13741
-libc-960110 13741
-libc-960111 13741
-libc-960112 13741
-libc-960113 13741
-libc-960114 13741
-libc-960115 13741
-libc-960116 14192
-libc-960117 14192
-libc-960118 14213
-libc-960119 14213
-libc-960120 14213
-libc-960121 14213
-libc-960122 14213
-libc-960123 14213
-libc-960124 14213
-libc-960125 14213
-libc-960126 14213
-libc-960127 14213
-libc-960128 14213
-libc-960129 14213
-libc-960130 14213
-libc-960131 14213
-libc-960201 14449
-libc-960202 14449
-libc-960203 14473
-libc-960204 14473
-libc-960205 14473
-libc-960206 14473
-libc-960207 14473
-libc-960208 14473
-libc-960209 14473
-libc-960210 14473
-libc-960211 14540
-libc-960212 14548
-libc-960213 14562
-libc-960214 14562
-libc-960215 14562
-libc-960216 14562
-libc-960217 14562
-libc-960218 14562
-libc-960219 14562
-libc-960220 14562
-libc-960221 14562
-libc-960222 14562
-libc-960223 14562
-libc-960224 14562
-libc-960225 14562
-libc-960226 14562
-libc-960227 14562
-libc-960228 14562
-libc-960229 14562
-libc-960302 14724
-libc-960303 14724
-libc-960304 14724
-libc-960305 14753
-libc-960306 14764
-libc-960307 14764
-libc-960308 14764
-libc-960309 14764
-libc-960310 14764
-libc-960311 14764
-libc-960312 14764
-libc-960313 14764
-libc-960314 14764
-libc-960315 14809
-libc-960316 14809
-libc-960317 14809
-libc-960318 14809
-libc-960319 14809
-libc-960320 14809
-libc-960321 14809
-libc-960322 14855
-libc-960323 14855
-libc-960324 14855
-libc-960325 14855
-libc-960326 14855
-libc-960327 14855
-libc-960328 14855
-libc-960329 14912
-libc-960330 14912
-libc-960331 14912
-libc-960401 14912
-libc-960402 14912
-libc-960403 14912
-libc-960404 14912
-libc-960405 14912
-libc-960406 14912
-libc-960407 14912
-libc-960408 14912
-libc-960409 14962
-libc-960410 14962
-libc-960411 14962
-libc-960412 14962
-libc-960413 15014
-libc-960414 15014
-libc-960415 15014
-libc-960416 15014
-libc-960417 15014
-libc-960418 15014
-libc-960419 15014
-libc-960420 15014
-libc-960421 15014
-libc-960422 15014
-libc-960423 15014
-libc-960424 15014
-libc-960425 15014
-libc-960426 15014
-libc-960427 15014
-libc-960428 15014
-libc-960429 15014
-libc-960430 15014
-libc-960501 15014
-libc-960502 15014
-libc-960503 15014
-libc-960504 15014
-libc-960505 15014
-libc-960506 15014
-libc-960507 15014
-libc-960508 15014
-libc-960509 15014
-libc-960510 15014
-libc-960511 15014
-libc-960512 15014
-libc-960513 15014
-libc-960514 15014
-libc-960515 15014
-libc-960516 15014
-libc-960517 15014
-libc-960518 15014
-libc-960519 15014
-libc-960520 15014
-libc-960521 15261
-libc-960522 15278
-libc-960523 15278
-libc-960524 15278
-libc-960525 15287
-libc-960526 15287
-libc-960527 15287
-libc-960528 15287
-libc-960529 15287
-libc-960530 15287
-libc-960531 15287
-libc-960601 15287
-libc-960602 15287
-libc-960603 15287
-libc-960604 15319
-libc-960605 15334
-libc-960606 15334
-libc-960607 15334
-libc-960608 15360
-libc-960609 15360
-libc-960610 15360
-libc-960611 15360
-libc-960612 15360
-libc-960613 15360
-libc-960614 15360
-libc-960615 15360
-libc-960616 15360
-libc-960617 15360
-libc-960618 15360
-libc-960619 15451
-libc-960620 15451
-libc-960621 15463
-libc-960622 15463
-libc-960623 15463
-libc-960624 15463
-libc-960625 15463
-libc-960626 15463
-libc-960627 15463
-libc-960628 15463
-libc-960629 15554
-libc-960630 15554
-libc-960701 15554
-libc-960702 15554
-libc-960703 15554
-libc-960704 15554
-libc-960705 15554
-libc-960706 15554
-libc-960707 15554
-libc-960708 15620
-libc-960709 15620
-libc-960710 15620
-libc-960711 15620
-libc-960712 15620
-libc-960713 15620
-libc-960714 15620
-libc-960715 15673
-libc-960716 15702
-libc-960717 15702
-libc-960718 15702
-libc-960719 15702
-libc-960720 15702
-libc-960721 15702
-libc-960722 15702
-libc-960723 15702
-libc-960724 15702
-libc-960725 15702
-libc-960726 15702
-libc-960727 15702
-libc-960728 15702
-libc-960729 15702
-libc-960730 15702
-libc-960731 15702
-libc-960801 15702
-libc-960802 15702
-libc-960803 15702
-libc-960804 15702
-libc-960805 15702
-libc-960806 15702
-libc-960807 15702
-libc-960808 15702
-libc-960809 15702
-libc-960810 15702
-libc-960811 15702
-libc-960812 15702
-libc-960813 15702
-libc-960814 15702
-libc-960815 15702
-libc-960816 15702
-libc-960817 15702
-libc-960818 15702
-libc-960819 15702
-libc-960820 15702
-libc-960821 15702
-libc-960822 15702
-libc-960823 15702
-libc-960824 15702
-libc-960825 15702
-libc-960826 15702
-libc-960827 15702
-libc-960828 15702
-libc-960829 15702
-libc-960830 15702
-libc-960831 15702
-libc-960901 15702
-libc-960902 15702
-libc-960903 15702
-libc-960904 15702
-libc-960905 15702
-libc-960906 15702
-libc-960907 15702
-libc-960908 15702
-libc-960909 15702
-libc-960910 15702
-libc-960911 15702
-libc-960912 15702
-libc-960913 16178
-libc-960918 16190
-libc-960919 16190
-libc-960920 16190
-libc-960921 16190
-libc-960922 16190
-libc-960923 16190
-libc-960925 16307
-libc-960926 16307
-libc-960927 16307
-libc-960928 16307
-libc-960929 16307
-libc-961001 16307
-libc-961004 16307
-libc-961005 16307
-libc-961006 16307
-libc-961007 16307
-libc-961008 16307
-libc-961009 16307
-libc-961010 16307
-libc-961011 16307
-libc-961012 16307
-libc-961013 16307
-libc-961014 16307
-libc-961015 16307
-libc-961016 16307
-libc-961017 16307
-libc-961018 16307
-libc-961019 16307
-libc-961020 16307
-libc-961021 16307
-libc-961022 16307
-libc-961023 16307
-libc-961024 16307
-libc-961025 16307
-libc-961026 16307
-libc-961027 16307
-libc-961028 16307
-libc-961029 16482
-libc-961030 16482
-libc-961031 16482
-libc-961101 16482
-libc-961102 16482
-libc-961103 16482
-libc-961104 16482
-libc-961105 16482
-libc-961106 16482
-libc-961107 16482
-libc-961108 16540
-libc-961109 16540
-libc-961110 16540
-libc-961111 16540
-libc-961114 16576
-libc-961115 16576
-libc-961116 16576
-libc-961117 16576
-libc-961118 16576
-libc-961119 16576
-libc-961120 16601
-libc-961121 16602
-libc-961203 16607
-libc-961204 16607
-libc-961205 16607
-libc-961206 16607
-libc-961207 16607
-libc-961208 16638
-libc-961209 16638
-libc-961210 16638
-libc-961211 16664
-libc-961212 16664
-libc-961213 16664
-libc-961214 16664
-libc-961215 16664
-libc-961216 16664
-libc-961217 16664
-libc-961218 16664
-libc-961219 16664
-libc-961220 16664
-libc-961221 16664
-libc-961222 16664
-libc-961223 16664
-libc-961224 16664
-libc-961225 16664
-libc-961226 16664
-libc-961227 16664
-libc-961228 16664
-libc-961229 16664
-libc-961230 16664
-libc-961231 16664
-libc-970101 16802
-libc-970102 16802
-libc-970103 16802
-libc-970104 16821
-libc-970105 16833
-libc-970106 16833
-libc-970107 16833
-libc-970108 16843
-libc-970109 16843
-libc-970110 16843
-libc-970111 16843
-libc-970112 16843
-libc-970113 16843
-libc-970114 16843
-libc-970115 16843
-libc-970116 16843
-libc-970117 16843
-libc-970118 16843
-libc-970119 16843
-libc-970120 16843
-libc-970121 16843
-libc-970122 16843
-libc-970123 16843
-libc-970124 16843
-libc-970125 16843
-libc-970126 16843
-libc-970127 16843
-libc-970128 16843
-libc-970129 16843
-libc-970130 16843
-libc-970131 16843
-libc-970201 16843
-libc-970202 16843
-libc-970203 16843
-libc-970204 16843
-libc-970205 16843
-libc-970206 16843
-libc-970207 16843
-libc-970208 16843
-libc-970209 16843
-libc-970210 16843
-libc-970211 16843
-libc-970212 16843
-libc-970213 16843
-libc-970214 16843
-libc-970215 16843
-libc-970216 16843
-libc-970217 16843
-libc-970218 16843
-libc-970219 16843
-libc-970220 16843
-libc-970221 16843
-libc-970222 16843
-libc-970223 16843
-libc-970224 16843
-libc-970225 16843
-libc-970226 16843
-libc-970227 16843
-libc-970228 16843
-libc-970301 16843
-libc-970302 16843
-libc-970303 16843
-libc-970304 16843
-libc-970305 16843
-libc-970306 16843
-libc-970307 16843
-libc-970308 16843
-libc-970309 16843
-libc-970310 16843
-libc-970311 16843
-libc-970312 16843
-libc-970313 16843
-libc-970314 16843
-libc-970315 16843
-libc-970316 16843
-libc-970317 16843
-libc-970318 16843
-libc-970319 16843
-libc-970320 16843
-libc-970321 16843
-libc-970322 16843
-libc-970323 16843
-libc-970324 16843
-libc-970325 17242
-libc-970326 17242
-libc-970327 17242
-libc-970328 17242
-libc-970329 17242
-libc-970330 17242
-libc-970331 17242
-libc-970401 17242
-libc-970402 17242
-libc-970403 17242
-libc-970404 17242
-libc-970405 17242
-libc-970406 17242
-libc-970407 17242
-libc-970408 17242
-libc-970409 17242
-libc-970410 17242
-libc-970411 17242
-libc-970412 17404
-libc-970413 17404
-libc-970414 17404
-libc-970415 17404
-libc-970416 17404
-libc-970417 17404
-libc-970418 17500
-libc-970419 17500
-libc-970420 17500
-libc-970421 17500
-libc-970422 17500
-libc-970423 17500
-libc-970424 17500
-libc-970425 17500
-libc-970426 17500
-libc-970427 17500
-libc-970428 17500
-libc-970429 17500
-libc-970430 17500
-libc-970501 17500
-libc-970502 17500
-libc-970503 17500
-libc-970504 17500
-libc-970505 17500
-libc-970506 17675
-libc-970507 17675
-libc-970508 17693
-libc-970509 17693
-libc-970510 17693
-libc-970511 17693
-libc-970512 17693
-libc-970513 17693
-libc-970514 17693
-libc-970515 17693
-libc-970516 17693
-libc-970517 17693
-libc-970518 17693
-libc-970519 17693
-libc-970520 17693
-libc-970521 17693
-libc-970522 17693
-libc-970523 17693
-libc-970524 17693
-libc-970525 17693
-libc-970526 17693
-libc-970527 17693
-libc-970528 17693
-libc-970529 17693
-libc-970530 17693
-libc-970531 17693
-libc-970601 17693
-libc-970602 17693
-libc-970603 17693
-libc-970604 17693
-libc-970605 17693
-libc-970606 18148
-libc-970607 18148
-libc-970608 18164
-libc-970609 18174
-libc-970610 18209
-libc-970611 18209
-libc-970612 18209
-libc-970613 18209
-libc-970614 18209
-libc-970615 18209
-libc-970616 18209
-libc-970617 18209
-libc-970618 18209
-libc-970619 18209
-libc-970620 18209
-libc-970621 18209
-libc-970622 18209
-libc-970624 18421
-libc-970625 18421
-libc-970626 18421
-libc-970627 18421
-libc-970628 18473
-libc-970629 18473
-libc-970630 18473
-libc-970701 18473
-libc-970702 18473
-libc-970703 18473
-libc-970704 18473
-libc-970705 18473
-libc-970707 18663
-libc-970708 18663
-libc-970709 18663
-libc-970710 18663
-libc-970713 18663
-libc-970715 18780
-libc-970717 18824
-libc-970718 18824
-libc-970719 18824
-libc-970720 18824
-libc-970721 18889
-libc-970722 18889
-libc-970723 18889
-libc-970724 18889
-libc-970725 18889
-libc-970726 18889
-libc-970727 19000
-libc-970728 19000
-libc-970729 19030
-libc-970730 19030
-libc-970731 19030
-libc-970801 19030
-libc-970802 19074
-libc-970803 19074
-libc-970804 19074
-libc-970805 19074
-libc-970806 19074
-libc-970807 19074
-libc-970808 19074
-libc-970809 19074
-libc-970810 19074
-libc-970811 19074
-libc-970812 19074
-libc-970813 19074
-libc-970814 19074
-libc-970815 19074
-libc-970816 19074
-libc-970817 19074
-libc-970818 19074
-libc-970819 19074
-libc-970820 19074
-libc-970821 19074
-libc-970822 19074
-libc-970823 19472
-libc-970824 19472
-libc-970825 19472
-libc-970826 19472
-libc-970827 19541
-libc-970828 19541
-libc-970829 19541
-libc-970830 19541
-libc-970831 19541
-libc-970901 19541
-libc-970902 19541
-libc-970903 19541
-libc-970904 19541
-libc-970905 19541
-libc-970906 19766
-libc-970907 19766
-libc-970908 19766
-libc-970911 19861
-libc-970912 19861
-libc-970913 19861
-libc-970914 19861
-libc-970915 19861
-libc-970916 19861
-libc-970917 19861
-libc-970918 19861
-libc-970919 19861
-libc-970920 19861
-libc-970921 19861
-libc-970922 19861
-libc-970923 19861
-libc-970924 19861
-libc-970925 19861
-libc-970926 19861
-libc-970927 19861
-libc-970928 19861
-libc-970929 19861
-libc-970930 19861
-libc-971001 19861
-libc-971018 19861
-libc-971019 19861
-libc-971020 19861
-libc-971021 19861
-libc-971022 19861
-libc-971023 19861
-libc-971024 19861
-libc-971025 19861
-libc-971026 19861
-libc-971027 19861
-libc-971028 19861
-libc-971029 19861
-libc-971030 19861
-libc-971031 19861
-libc-971101 19861
-libc-971102 19861
-libc-971103 19861
-libc-971104 19861
-libc-971105 19861
-libc-971106 19861
-libc-971107 19861
-libc-971108 19861
-libc-971109 19861
-libc-971110 19861
-libc-971111 19861
-libc-971112 19861
-libc-971113 19861
-libc-971114 19861
-libc-971115 19861
-libc-971116 19861
-libc-971117 19861
-libc-971118 19861
-libc-971120 19861
-libc-971121 19861
-libc-971122 19861
-libc-971123 19861
-libc-971124 19861
-libc-971125 19861
-libc-971126 19861
-libc-971127 19861
-libc-971128 19861
-libc-971129 19861
-libc-971130 19861
-libc-971201 19861
-libc-971203 19861
-libc-971204 19861
-libc-971205 19861
-libc-971206 19861
-libc-971207 19861
-libc-971208 19861
-libc-971209 19861
-libc-971210 19861
-libc-971211 19861
-libc-971212 19861
-libc-971213 19861
-libc-971214 19861
-libc-971217 19861
-libc-971218 19861
-libc-971219 19861
-libc-971220 19861
-libc-971221 19861
-libc-971222 19861
-libc-971223 19861
-libc-971224 19861
-libc-971225 19861
-libc-971226 19861
-libc-971227 19861
-libc-971228 19861
-libc-971229 19861
-libc-971230 19861
-libc-971231 19861
-libc-980103 19861
-libc-980104 19861
-libc-980105 19861
-libc-980106 19861
-libc-980107 19861
-libc-980108 19861
-libc-980109 19861
-libc-980110 19861
-libc-980111 19861
-libc-980112 19861
-libc-980114 19861
-libc-980115 19861
-libc-980116 19861
-libc-980117 19861
-libc-980118 19861
-libc-980119 19861
-libc-980120 19861
-libc-980121 19861
-libc-980122 19861
-libc-980123 19861
-libc-980124 19861
-libc-980125 19861
-libc-980126 19861
-libc-980127 19861
-libc-980128 19861
-libc-980129 20797
-libc-980130 20797
-libc-980212 20832
-libc-980213 20832
-libc-980214 20893
-libc-980215 20893
-libc-980216 20893
-libc-980217 20893
-libc-980218 20893
-libc-980219 20893
-libc-980220 20893
-libc-980221 20893
-libc-980222 20893
-libc-980223 20893
-libc-980224 20893
-libc-980225 20893
-libc-980226 20893
-libc-980227 20893
-libc-980228 20893
-libc-980301 20893
-libc-980302 20893
-libc-980303 20893
-libc-980304 20893
-libc-980306 20893
-libc-980307 20893
-libc-980308 20893
-libc-980309 20893
-libc-980310 20893
-libc-980311 20893
-libc-980312 20893
-libc-980313 20893
-libc-980314 20893
-libc-980315 20893
-libc-980316 20893
-libc-980317 20893
-libc-980318 20893
-libc-980319 20893
-libc-980320 20893
-libc-980321 20893
-libc-980322 20893
-libc-980323 20893
-libc-980324 20893
-libc-980325 20893
-libc-980326 20893
-libc-980327 20893
-libc-980328 20893
-libc-980329 20893
-libc-980330 20893
-libc-980331 20893
-libc-980401 20893
-libc-980402 20893
-libc-980403 20893
-libc-980404 20893
-libc-980405 20893
-libc-980406 20893
-libc-980407 20893
-libc-980408 20893
-libc-980409 20893
-libc-980410 20893
-libc-980411 20893
-libc-980412 20893
-libc-980413 20893
-libc-980414 20893
-libc-980428 20893
-libc-980429 20893
-libc-980430 20893
-libc-980501 20893
-libc-980502 20893
-libc-980503 20893
-libc-980504 20893
-libc-980505 20893
-libc-980506 20893
-libc-980507 20893
-libc-980508 20893
-libc-980509 20893
-libc-980510 20893
-libc-980512 20893
-libc-980513 20893
-libc-980514 20893
-libc-980515 20893
-libc-980516 20893
-libc-980517 20893
-libc-980518 20893
-libc-980519 20893
-libc-980520 20893
-libc-980521 20893
-libc-980522 20893
-libc-980523 20893
-libc-980524 20893
-libc-980525 20893
-libc-980526 20893
-libc-980527 20893
-libc-980528 20893
-libc-980529 20893
-libc-980530 20893
-libc-980531 20893
-libc-980601 20893
-libc-980602 20893
-libc-980603 20893
-libc-980604 20893
-libc-980605 20893
-libc-980606 20893
-libc-980607 20893
-libc-980608 20893
-libc-980609 20893
-libc-980610 20893
-libc-980611 20893
-libc-980612 20893
-libc-980613 20893
-libc-980614 22478
-libc-980615 22478
-libc-980616 22478
-libc-980617 22478
-libc-980618 22478
-libc-980619 22478
-libc-980620 22478
-libc-980621 22478
-libc-980622 22478
-libc-980623 22478
-libc-980624 22478
-libc-980625 22478
-libc-980626 22478
-libc-980627 22478
-libc-980628 22478
-libc-980629 22478
-libc-980630 22478
-libc-980701 22478
-libc-980702 22478
-libc-980703 22478
-libc-980704 22478
-libc-980705 22478
-libc-980706 22478
-libc-980707 22478
-libc-980708 22478
-libc-980709 22478
-libc-980710 22478
-libc-980711 22478
-libc-980712 22478
-libc-980713 22478
-libc-980714 22478
-libc-980715 22478
-libc-980716 22478
-libc-980717 22478
-libc-980718 22478
-libc-980719 22478
-libc-980720 22787
-libc_1_09 10803
-make-3-72-9 10364
-make-3-72-10 10364
-make-3-72-11 10364
-make-3-72-12 10364
-make-3-72-13 10364
-make-3-73 10364
-make-3-73-1 10364
-make-3-73-2 10364
-make-3-73-3 11789
-make-3-74 11789
-make-3-74-1 12800
-make-3-74-2 12800
-make-3-74-3 14458
-make-3-74-4 14846
-make-3-74-5 15594
-make-3-74-6 15594
-make-3-74-7 15594
-make-3-75 15594
-make-3-75-1 18912
-make-3-75-91 18912
-make-3-75-92 19342
-make-3-75-93 21502
-make-3-76 19768
-make-3-76-1 19768
-release-0-0 15702
-release-0-1 15702
-release-1-0 17404
-Release_5_25 24283
-root-libc-2_0_x-branch 16843
+amigados-merge 1996-03-20T01:08:11Z!roland@gnu.org
+before-thomas-posix1996 1997-01-07T19:29:28Z!djm@gnu.org
+gcc-2_8_1-980401 1998-02-13T12:16:46Z!kenner@gnu.org
+gcc-2_8_1-980402 1998-04-27T23:48:59Z!drepper@redhat.com
+gcc-2_8_1-980407 1998-02-13T12:16:46Z!kenner@gnu.org
+gcc-2_8_1-980412 1998-02-13T12:16:46Z!kenner@gnu.org
+gcc-2_8_1-980413 1998-02-13T12:16:46Z!kenner@gnu.org
+gcc-2_8_1-980419 1998-04-14T00:02:53Z!drepper@redhat.com
+gcc-2_8_1-980426 1998-04-14T00:02:53Z!drepper@redhat.com
+gcc-2_8_1-980502 1998-04-27T23:48:59Z!drepper@redhat.com
+gcc-2_8_1-980513 1998-04-27T23:48:59Z!drepper@redhat.com
+gcc-2_8_1-980525 1998-05-19T07:09:32Z!drepper@redhat.com
+gcc-2_8_1-980529 1998-05-19T07:09:32Z!drepper@redhat.com
+gcc-2_8_1-980608 1998-05-19T07:09:32Z!drepper@redhat.com
+gcc-2_8_1-980609 1998-05-19T07:09:32Z!drepper@redhat.com
+gcc-2_8_1-980627 1998-06-13T19:51:10Z!kenner@gnu.org
+gcc-2_8_1-980705 1998-06-13T19:51:10Z!kenner@gnu.org
+gcc-2_8_1-980718 1998-06-13T19:51:10Z!kenner@gnu.org
+gcc-2_8_1-980811 1998-08-09T22:42:36Z!rms@gnu.org
+gcc-2_8_1-980813 1998-08-12T21:32:31Z!rms@gnu.org
+gcc-2_8_1-980928 1998-09-28T11:03:36Z!bje@air.net.au
+gcc-2_8_1-980929 1998-09-28T11:03:36Z!bje@air.net.au
+gcc-2_8_1-RELEASE 1998-02-13T12:16:46Z!kenner@gnu.org
+gcc_2_8_1-980315 1998-02-13T12:16:46Z!kenner@gnu.org
+gcc_2_8_1-980929 1998-09-28T11:03:36Z!bje@air.net.au
+glibc-2_0_2 1997-01-07T19:29:28Z!djm@gnu.org
+gnumach-release-1-1 1997-05-07T19:19:04Z!Thomas
+gnumach-release-1-1-1 1997-05-07T19:19:04Z!Thomas
+gnumach-release-1-1-2 1997-06-10T04:18:36Z!rms@gnu.org
+gnumach-release-1-1-3 1997-06-10T04:18:36Z!rms@gnu.org
+hurd-release-0-2 1997-06-10T04:18:36Z!rms@gnu.org
+jimb-sync-Nov-3-1992 1992-11-07T05:29:26Z!jimb@redhat.com
+libc20x-97031 1997-01-07T19:29:28Z!djm@gnu.org
+libc20x-970306 1997-01-07T19:29:28Z!djm@gnu.org
+libc20x-970316 1997-01-07T19:29:28Z!djm@gnu.org
+libc20x-970318 1997-01-07T19:29:28Z!djm@gnu.org
+libc20x-970319 1997-01-07T19:29:28Z!djm@gnu.org
+libc20x-970404 1997-01-07T19:29:28Z!djm@gnu.org
+libc-1-90 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-1-91 1996-06-18T18:23:57Z!ian@cygnus.com
+libc-1-92 1996-06-20T16:20:05Z!gnu@the-meissners.org
+libc-1-93 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-950402 1995-03-22T08:54:39Z!rms@gnu.org
+libc-950411 1995-04-07T07:32:44Z!rms@gnu.org
+libc-950722 1995-06-28T21:57:23Z!kenner@gnu.org
+libc-950723 1995-06-28T21:57:23Z!kenner@gnu.org
+libc-950922 1995-08-15T02:33:42Z!bothner@cygnus.com
+libc-951016 1995-08-15T02:33:42Z!bothner@cygnus.com
+libc-951018 1995-10-16T15:40:29Z!law@redhat.com
+libc-951029 1995-10-16T15:40:29Z!law@redhat.com
+libc-951031 1995-10-16T15:40:29Z!law@redhat.com
+libc-951101 1995-10-16T15:40:29Z!law@redhat.com
+libc-951102 1995-10-16T15:40:29Z!law@redhat.com
+libc-951103 1995-10-16T15:40:29Z!law@redhat.com
+libc-951104 1995-10-16T15:40:29Z!law@redhat.com
+libc-951105 1995-10-16T15:40:29Z!law@redhat.com
+libc-951106 1995-10-16T15:40:29Z!law@redhat.com
+libc-951107 1995-10-16T15:40:29Z!law@redhat.com
+libc-951108 1995-10-16T15:40:29Z!law@redhat.com
+libc-951109 1995-10-16T15:40:29Z!law@redhat.com
+libc-951110 1995-10-16T15:40:29Z!law@redhat.com
+libc-951111 1995-10-16T15:40:29Z!law@redhat.com
+libc-951112 1995-10-16T15:40:29Z!law@redhat.com
+libc-951113 1995-10-16T15:40:29Z!law@redhat.com
+libc-951114 1995-10-16T15:40:29Z!law@redhat.com
+libc-951115 1995-10-16T15:40:29Z!law@redhat.com
+libc-951116 1995-10-16T15:40:29Z!law@redhat.com
+libc-951117 1995-10-16T15:40:29Z!law@redhat.com
+libc-951118 1995-10-16T15:40:29Z!law@redhat.com
+libc-951119 1995-10-16T15:40:29Z!law@redhat.com
+libc-951120 1995-10-16T15:40:29Z!law@redhat.com
+libc-951121 1995-10-16T15:40:29Z!law@redhat.com
+libc-951122 1995-10-16T15:40:29Z!law@redhat.com
+libc-951123 1995-10-16T15:40:29Z!law@redhat.com
+libc-951124 1995-10-16T15:40:29Z!law@redhat.com
+libc-951125 1995-10-16T15:40:29Z!law@redhat.com
+libc-951126 1995-10-16T15:40:29Z!law@redhat.com
+libc-951127 1995-10-16T15:40:29Z!law@redhat.com
+libc-951128 1995-10-16T15:40:29Z!law@redhat.com
+libc-951129 1995-10-16T15:40:29Z!law@redhat.com
+libc-951130 1995-10-16T15:40:29Z!law@redhat.com
+libc-951201 1995-11-30T21:59:48Z!bothner@cygnus.com
+libc-951202 1995-11-30T21:59:48Z!bothner@cygnus.com
+libc-951203 1995-11-30T21:59:48Z!bothner@cygnus.com
+libc-951204 1995-11-30T21:59:48Z!bothner@cygnus.com
+libc-951206 1995-12-04T18:22:22Z!law@redhat.com
+libc-951208 1995-12-06T11:57:46Z!erich@uruk.org
+libc-951209 1995-12-06T11:57:46Z!erich@uruk.org
+libc-951210 1995-12-06T11:57:46Z!erich@uruk.org
+libc-951211 1995-12-06T11:57:46Z!erich@uruk.org
+libc-951212 1995-12-12T00:47:21Z!bothner@cygnus.com
+libc-951213 1995-12-12T00:47:21Z!bothner@cygnus.com
+libc-951214 1995-12-13T21:43:08Z!ian@cygnus.com
+libc-951215 1995-12-13T21:43:08Z!ian@cygnus.com
+libc-951216 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951217 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951218 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951219 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951220 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951221 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951222 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951223 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951224 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951225 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951226 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951227 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951228 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951229 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951230 1995-12-16T03:32:35Z!scox@redhat.com
+libc-951231 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960101 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960102 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960103 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960104 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960105 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960106 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960107 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960108 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960109 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960110 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960111 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960112 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960113 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960114 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960115 1995-12-16T03:32:35Z!scox@redhat.com
+libc-960116 1996-01-16T01:58:43Z!kenner@gnu.org
+libc-960117 1996-01-16T01:58:43Z!kenner@gnu.org
+libc-960118 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960119 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960120 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960121 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960122 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960123 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960124 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960125 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960126 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960127 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960128 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960129 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960130 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960131 1996-01-17T23:54:58Z!dje@gnu.org
+libc-960201 1996-01-31T19:14:05Z!ian@cygnus.com
+libc-960202 1996-01-31T19:14:05Z!ian@cygnus.com
+libc-960203 1996-02-03T01:03:27Z!gnu@the-meissners.org
+libc-960204 1996-02-03T01:03:27Z!gnu@the-meissners.org
+libc-960205 1996-02-03T01:03:27Z!gnu@the-meissners.org
+libc-960206 1996-02-03T01:03:27Z!gnu@the-meissners.org
+libc-960207 1996-02-03T01:03:27Z!gnu@the-meissners.org
+libc-960208 1996-02-03T01:03:27Z!gnu@the-meissners.org
+libc-960209 1996-02-03T01:03:27Z!gnu@the-meissners.org
+libc-960210 1996-02-03T01:03:27Z!gnu@the-meissners.org
+libc-960211 1996-02-10T13:26:26Z!kenner@gnu.org
+libc-960212 1996-02-11T23:40:37Z!rms@gnu.org
+libc-960213 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960214 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960215 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960216 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960217 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960218 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960219 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960220 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960221 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960222 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960223 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960224 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960225 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960226 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960227 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960228 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960229 1996-02-12T23:15:30Z!dje@gnu.org
+libc-960302 1996-03-01T14:57:49Z!roland@gnu.org
+libc-960303 1996-03-01T14:57:49Z!roland@gnu.org
+libc-960304 1996-03-01T14:57:49Z!roland@gnu.org
+libc-960305 1996-03-05T03:02:45Z!erik@naggum.no
+libc-960306 1996-03-05T23:34:58Z!kenner@gnu.org
+libc-960307 1996-03-05T23:34:58Z!kenner@gnu.org
+libc-960308 1996-03-05T23:34:58Z!kenner@gnu.org
+libc-960309 1996-03-05T23:34:58Z!kenner@gnu.org
+libc-960310 1996-03-05T23:34:58Z!kenner@gnu.org
+libc-960311 1996-03-05T23:34:58Z!kenner@gnu.org
+libc-960312 1996-03-05T23:34:58Z!kenner@gnu.org
+libc-960313 1996-03-05T23:34:58Z!kenner@gnu.org
+libc-960314 1996-03-05T23:34:58Z!kenner@gnu.org
+libc-960315 1996-03-15T00:14:04Z!ian@cygnus.com
+libc-960316 1996-03-15T00:14:04Z!ian@cygnus.com
+libc-960317 1996-03-15T00:14:04Z!ian@cygnus.com
+libc-960318 1996-03-15T00:14:04Z!ian@cygnus.com
+libc-960319 1996-03-15T00:14:04Z!ian@cygnus.com
+libc-960320 1996-03-15T00:14:04Z!ian@cygnus.com
+libc-960321 1996-03-15T00:14:04Z!ian@cygnus.com
+libc-960322 1996-03-21T23:26:26Z!dje@gnu.org
+libc-960323 1996-03-21T23:26:26Z!dje@gnu.org
+libc-960324 1996-03-21T23:26:26Z!dje@gnu.org
+libc-960325 1996-03-21T23:26:26Z!dje@gnu.org
+libc-960326 1996-03-21T23:26:26Z!dje@gnu.org
+libc-960327 1996-03-21T23:26:26Z!dje@gnu.org
+libc-960328 1996-03-21T23:26:26Z!dje@gnu.org
+libc-960329 1996-03-29T01:49:55Z!dje@gnu.org
+libc-960330 1996-03-29T01:49:55Z!dje@gnu.org
+libc-960331 1996-03-29T01:49:55Z!dje@gnu.org
+libc-960401 1996-03-29T01:49:55Z!dje@gnu.org
+libc-960402 1996-03-29T01:49:55Z!dje@gnu.org
+libc-960403 1996-03-29T01:49:55Z!dje@gnu.org
+libc-960404 1996-03-29T01:49:55Z!dje@gnu.org
+libc-960405 1996-03-29T01:49:55Z!dje@gnu.org
+libc-960406 1996-03-29T01:49:55Z!dje@gnu.org
+libc-960407 1996-03-29T01:49:55Z!dje@gnu.org
+libc-960408 1996-03-29T01:49:55Z!dje@gnu.org
+libc-960409 1996-04-08T20:19:10Z!gnu@the-meissners.org
+libc-960410 1996-04-08T20:19:10Z!gnu@the-meissners.org
+libc-960411 1996-04-08T20:19:10Z!gnu@the-meissners.org
+libc-960412 1996-04-08T20:19:10Z!gnu@the-meissners.org
+libc-960413 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960414 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960415 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960416 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960417 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960418 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960419 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960420 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960421 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960422 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960423 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960424 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960425 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960426 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960427 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960428 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960429 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960430 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960501 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960502 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960503 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960504 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960505 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960506 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960507 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960508 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960509 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960510 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960511 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960512 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960513 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960514 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960515 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960516 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960517 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960518 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960519 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960520 1996-04-13T00:06:54Z!bothner@cygnus.com
+libc-960521 1996-05-20T16:02:45Z!law@redhat.com
+libc-960522 1996-05-21T22:55:56Z!roland@gnu.org
+libc-960523 1996-05-21T22:55:56Z!roland@gnu.org
+libc-960524 1996-05-21T22:55:56Z!roland@gnu.org
+libc-960525 1996-05-24T22:34:49Z!roland@gnu.org
+libc-960526 1996-05-24T22:34:49Z!roland@gnu.org
+libc-960527 1996-05-24T22:34:49Z!roland@gnu.org
+libc-960528 1996-05-24T22:34:49Z!roland@gnu.org
+libc-960529 1996-05-24T22:34:49Z!roland@gnu.org
+libc-960530 1996-05-24T22:34:49Z!roland@gnu.org
+libc-960531 1996-05-24T22:34:49Z!roland@gnu.org
+libc-960601 1996-05-24T22:34:49Z!roland@gnu.org
+libc-960602 1996-05-24T22:34:49Z!roland@gnu.org
+libc-960603 1996-05-24T22:34:49Z!roland@gnu.org
+libc-960604 1996-06-03T12:51:33Z!kwzh@gnu.org
+libc-960605 1996-06-05T04:12:46Z!bothner@cygnus.com
+libc-960606 1996-06-05T04:12:46Z!bothner@cygnus.com
+libc-960607 1996-06-05T04:12:46Z!bothner@cygnus.com
+libc-960608 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-960609 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-960610 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-960611 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-960612 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-960613 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-960614 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-960615 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-960616 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-960617 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-960618 1996-06-08T01:25:20Z!bothner@cygnus.com
+libc-960619 1996-06-18T18:23:57Z!ian@cygnus.com
+libc-960620 1996-06-18T18:23:57Z!ian@cygnus.com
+libc-960621 1996-06-20T16:20:05Z!gnu@the-meissners.org
+libc-960622 1996-06-20T16:20:05Z!gnu@the-meissners.org
+libc-960623 1996-06-20T16:20:05Z!gnu@the-meissners.org
+libc-960624 1996-06-20T16:20:05Z!gnu@the-meissners.org
+libc-960625 1996-06-20T16:20:05Z!gnu@the-meissners.org
+libc-960626 1996-06-20T16:20:05Z!gnu@the-meissners.org
+libc-960627 1996-06-20T16:20:05Z!gnu@the-meissners.org
+libc-960628 1996-06-20T16:20:05Z!gnu@the-meissners.org
+libc-960629 1996-06-28T17:28:58Z!kenner@gnu.org
+libc-960630 1996-06-28T17:28:58Z!kenner@gnu.org
+libc-960701 1996-06-28T17:28:58Z!kenner@gnu.org
+libc-960702 1996-06-28T17:28:58Z!kenner@gnu.org
+libc-960703 1996-06-28T17:28:58Z!kenner@gnu.org
+libc-960704 1996-06-28T17:28:58Z!kenner@gnu.org
+libc-960705 1996-06-28T17:28:58Z!kenner@gnu.org
+libc-960706 1996-06-28T17:28:58Z!kenner@gnu.org
+libc-960707 1996-06-28T17:28:58Z!kenner@gnu.org
+libc-960708 1996-07-07T17:26:50Z!dje@gnu.org
+libc-960709 1996-07-07T17:26:50Z!dje@gnu.org
+libc-960710 1996-07-07T17:26:50Z!dje@gnu.org
+libc-960711 1996-07-07T17:26:50Z!dje@gnu.org
+libc-960712 1996-07-07T17:26:50Z!dje@gnu.org
+libc-960713 1996-07-07T17:26:50Z!dje@gnu.org
+libc-960714 1996-07-07T17:26:50Z!dje@gnu.org
+libc-960715 1996-07-14T18:09:15Z!tege@swox.com
+libc-960716 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960717 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960718 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960719 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960720 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960721 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960722 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960723 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960724 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960725 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960726 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960727 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960728 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960729 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960730 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960731 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960801 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960802 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960803 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960804 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960805 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960806 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960807 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960808 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960809 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960810 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960811 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960812 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960813 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960814 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960815 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960816 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960817 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960818 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960819 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960820 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960821 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960822 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960823 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960824 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960825 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960826 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960827 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960828 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960829 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960830 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960831 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960901 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960902 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960903 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960904 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960905 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960906 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960907 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960908 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960909 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960910 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960911 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960912 1996-07-16T04:47:46Z!kwzh@gnu.org
+libc-960913 1996-09-13T03:46:14Z!rms@gnu.org
+libc-960918 1996-09-15T00:49:22Z!kenner@gnu.org
+libc-960919 1996-09-15T00:49:22Z!kenner@gnu.org
+libc-960920 1996-09-15T00:49:22Z!kenner@gnu.org
+libc-960921 1996-09-15T00:49:22Z!kenner@gnu.org
+libc-960922 1996-09-15T00:49:22Z!kenner@gnu.org
+libc-960923 1996-09-15T00:49:22Z!kenner@gnu.org
+libc-960925 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-960926 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-960927 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-960928 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-960929 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961001 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961004 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961005 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961006 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961007 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961008 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961009 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961010 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961011 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961012 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961013 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961014 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961015 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961016 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961017 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961018 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961019 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961020 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961021 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961022 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961023 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961024 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961025 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961026 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961027 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961028 1996-09-24T02:44:17Z!kenner@gnu.org
+libc-961029 1996-10-29T02:56:12Z!rms@gnu.org
+libc-961030 1996-10-29T02:56:12Z!rms@gnu.org
+libc-961031 1996-10-29T02:56:12Z!rms@gnu.org
+libc-961101 1996-10-29T02:56:12Z!rms@gnu.org
+libc-961102 1996-10-29T02:56:12Z!rms@gnu.org
+libc-961103 1996-10-29T02:56:12Z!rms@gnu.org
+libc-961104 1996-10-29T02:56:12Z!rms@gnu.org
+libc-961105 1996-10-29T02:56:12Z!rms@gnu.org
+libc-961106 1996-10-29T02:56:12Z!rms@gnu.org
+libc-961107 1996-10-29T02:56:12Z!rms@gnu.org
+libc-961108 1996-11-08T07:35:31Z!djm@gnu.org
+libc-961109 1996-11-08T07:35:31Z!djm@gnu.org
+libc-961110 1996-11-08T07:35:31Z!djm@gnu.org
+libc-961111 1996-11-08T07:35:31Z!djm@gnu.org
+libc-961114 1996-11-14T02:06:05Z!bothner@cygnus.com
+libc-961115 1996-11-14T02:06:05Z!bothner@cygnus.com
+libc-961116 1996-11-14T02:06:05Z!bothner@cygnus.com
+libc-961117 1996-11-14T02:06:05Z!bothner@cygnus.com
+libc-961118 1996-11-14T02:06:05Z!bothner@cygnus.com
+libc-961119 1996-11-14T02:06:05Z!bothner@cygnus.com
+libc-961120 1996-11-19T18:40:34Z!djm@gnu.org
+libc-961121 1996-11-20T21:28:32Z!djm@gnu.org
+libc-961203 1996-11-21T22:20:09Z!Thomas
+libc-961204 1996-11-21T22:20:09Z!Thomas
+libc-961205 1996-11-21T22:20:09Z!Thomas
+libc-961206 1996-11-21T22:20:09Z!Thomas
+libc-961207 1996-11-21T22:20:09Z!Thomas
+libc-961208 1996-12-07T22:47:59Z!kenner@gnu.org
+libc-961209 1996-12-07T22:47:59Z!kenner@gnu.org
+libc-961210 1996-12-07T22:47:59Z!kenner@gnu.org
+libc-961211 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961212 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961213 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961214 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961215 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961216 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961217 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961218 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961219 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961220 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961221 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961222 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961223 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961224 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961225 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961226 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961227 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961228 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961229 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961230 1996-12-11T00:37:52Z!djm@gnu.org
+libc-961231 1996-12-11T00:37:52Z!djm@gnu.org
+libc-970101 1996-12-31T20:54:33Z!ian@cygnus.com
+libc-970102 1996-12-31T20:54:33Z!ian@cygnus.com
+libc-970103 1996-12-31T20:54:33Z!ian@cygnus.com
+libc-970104 1997-01-03T13:38:47Z!kenner@gnu.org
+libc-970105 1997-01-05T03:44:26Z!miles@gnu.org
+libc-970106 1997-01-05T03:44:26Z!miles@gnu.org
+libc-970107 1997-01-05T03:44:26Z!miles@gnu.org
+libc-970108 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970109 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970110 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970111 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970112 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970113 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970114 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970115 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970116 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970117 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970118 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970119 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970120 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970121 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970122 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970123 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970124 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970125 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970126 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970127 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970128 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970129 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970130 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970131 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970201 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970202 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970203 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970204 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970205 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970206 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970207 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970208 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970209 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970210 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970211 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970212 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970213 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970214 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970215 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970216 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970217 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970218 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970219 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970220 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970221 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970222 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970223 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970224 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970225 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970226 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970227 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970228 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970301 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970302 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970303 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970304 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970305 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970306 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970307 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970308 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970309 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970310 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970311 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970312 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970313 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970314 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970315 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970316 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970317 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970318 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970319 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970320 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970321 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970322 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970323 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970324 1997-01-07T19:29:28Z!djm@gnu.org
+libc-970325 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970326 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970327 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970328 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970329 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970330 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970331 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970401 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970402 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970403 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970404 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970405 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970406 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970407 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970408 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970409 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970410 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970411 1997-03-24T20:38:28Z!dje@gnu.org
+libc-970412 1997-04-11T20:40:28Z!ian@cygnus.com
+libc-970413 1997-04-11T20:40:28Z!ian@cygnus.com
+libc-970414 1997-04-11T20:40:28Z!ian@cygnus.com
+libc-970415 1997-04-11T20:40:28Z!ian@cygnus.com
+libc-970416 1997-04-11T20:40:28Z!ian@cygnus.com
+libc-970417 1997-04-11T20:40:28Z!ian@cygnus.com
+libc-970418 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970419 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970420 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970421 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970422 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970423 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970424 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970425 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970426 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970427 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970428 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970429 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970430 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970501 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970502 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970503 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970504 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970505 1997-04-17T18:00:12Z!ian@cygnus.com
+libc-970506 1997-05-05T22:04:41Z!bothner@cygnus.com
+libc-970507 1997-05-05T22:04:41Z!bothner@cygnus.com
+libc-970508 1997-05-07T19:19:04Z!Thomas
+libc-970509 1997-05-07T19:19:04Z!Thomas
+libc-970510 1997-05-07T19:19:04Z!Thomas
+libc-970511 1997-05-07T19:19:04Z!Thomas
+libc-970512 1997-05-07T19:19:04Z!Thomas
+libc-970513 1997-05-07T19:19:04Z!Thomas
+libc-970514 1997-05-07T19:19:04Z!Thomas
+libc-970515 1997-05-07T19:19:04Z!Thomas
+libc-970516 1997-05-07T19:19:04Z!Thomas
+libc-970517 1997-05-07T19:19:04Z!Thomas
+libc-970518 1997-05-07T19:19:04Z!Thomas
+libc-970519 1997-05-07T19:19:04Z!Thomas
+libc-970520 1997-05-07T19:19:04Z!Thomas
+libc-970521 1997-05-07T19:19:04Z!Thomas
+libc-970522 1997-05-07T19:19:04Z!Thomas
+libc-970523 1997-05-07T19:19:04Z!Thomas
+libc-970524 1997-05-07T19:19:04Z!Thomas
+libc-970525 1997-05-07T19:19:04Z!Thomas
+libc-970526 1997-05-07T19:19:04Z!Thomas
+libc-970527 1997-05-07T19:19:04Z!Thomas
+libc-970528 1997-05-07T19:19:04Z!Thomas
+libc-970529 1997-05-07T19:19:04Z!Thomas
+libc-970530 1997-05-07T19:19:04Z!Thomas
+libc-970531 1997-05-07T19:19:04Z!Thomas
+libc-970601 1997-05-07T19:19:04Z!Thomas
+libc-970602 1997-05-07T19:19:04Z!Thomas
+libc-970603 1997-05-07T19:19:04Z!Thomas
+libc-970604 1997-05-07T19:19:04Z!Thomas
+libc-970605 1997-05-07T19:19:04Z!Thomas
+libc-970606 1997-06-06T01:21:12Z!rms@gnu.org
+libc-970607 1997-06-06T01:21:12Z!rms@gnu.org
+libc-970608 1997-06-08T01:57:13Z!rms@gnu.org
+libc-970609 1997-06-09T04:56:02Z!rms@gnu.org
+libc-970610 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970611 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970612 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970613 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970614 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970615 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970616 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970617 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970618 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970619 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970620 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970621 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970622 1997-06-10T04:18:36Z!rms@gnu.org
+libc-970624 1997-06-23T17:53:11Z!law@redhat.com
+libc-970625 1997-06-23T17:53:11Z!law@redhat.com
+libc-970626 1997-06-23T17:53:11Z!law@redhat.com
+libc-970627 1997-06-23T17:53:11Z!law@redhat.com
+libc-970628 1997-06-27T19:20:14Z!kenner@gnu.org
+libc-970629 1997-06-27T19:20:14Z!kenner@gnu.org
+libc-970630 1997-06-27T19:20:14Z!kenner@gnu.org
+libc-970701 1997-06-27T19:20:14Z!kenner@gnu.org
+libc-970702 1997-06-27T19:20:14Z!kenner@gnu.org
+libc-970703 1997-06-27T19:20:14Z!kenner@gnu.org
+libc-970704 1997-06-27T19:20:14Z!kenner@gnu.org
+libc-970705 1997-06-27T19:20:14Z!kenner@gnu.org
+libc-970707 1997-07-07T08:40:20Z!rms@gnu.org
+libc-970708 1997-07-07T08:40:20Z!rms@gnu.org
+libc-970709 1997-07-07T08:40:20Z!rms@gnu.org
+libc-970710 1997-07-07T08:40:20Z!rms@gnu.org
+libc-970713 1997-07-07T08:40:20Z!rms@gnu.org
+libc-970715 1997-07-14T19:53:44Z!rms@gnu.org
+libc-970717 1997-07-16T14:45:30Z!erich@uruk.org
+libc-970718 1997-07-16T14:45:30Z!erich@uruk.org
+libc-970719 1997-07-16T14:45:30Z!erich@uruk.org
+libc-970720 1997-07-16T14:45:30Z!erich@uruk.org
+libc-970721 1997-07-21T00:58:41Z!kenner@gnu.org
+libc-970722 1997-07-21T00:58:41Z!kenner@gnu.org
+libc-970723 1997-07-21T00:58:41Z!kenner@gnu.org
+libc-970724 1997-07-21T00:58:41Z!kenner@gnu.org
+libc-970725 1997-07-21T00:58:41Z!kenner@gnu.org
+libc-970726 1997-07-21T00:58:41Z!kenner@gnu.org
+libc-970727 1997-07-26T19:01:01Z!bothner@cygnus.com
+libc-970728 1997-07-26T19:01:01Z!bothner@cygnus.com
+libc-970729 1997-07-28T23:37:45Z!drepper@redhat.com
+libc-970730 1997-07-28T23:37:45Z!drepper@redhat.com
+libc-970731 1997-07-28T23:37:45Z!drepper@redhat.com
+libc-970801 1997-07-28T23:37:45Z!drepper@redhat.com
+libc-970802 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970803 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970804 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970805 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970806 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970807 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970808 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970809 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970810 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970811 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970812 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970813 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970814 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970815 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970816 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970817 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970818 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970819 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970820 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970821 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970822 1997-08-01T18:09:30Z!rms@gnu.org
+libc-970823 1997-08-22T14:49:11Z!law@redhat.com
+libc-970824 1997-08-22T14:49:11Z!law@redhat.com
+libc-970825 1997-08-22T14:49:11Z!law@redhat.com
+libc-970826 1997-08-22T14:49:11Z!law@redhat.com
+libc-970827 1997-08-26T09:21:29Z!kenner@gnu.org
+libc-970828 1997-08-26T09:21:29Z!kenner@gnu.org
+libc-970829 1997-08-26T09:21:29Z!kenner@gnu.org
+libc-970830 1997-08-26T09:21:29Z!kenner@gnu.org
+libc-970831 1997-08-26T09:21:29Z!kenner@gnu.org
+libc-970901 1997-08-26T09:21:29Z!kenner@gnu.org
+libc-970902 1997-08-26T09:21:29Z!kenner@gnu.org
+libc-970903 1997-08-26T09:21:29Z!kenner@gnu.org
+libc-970904 1997-08-26T09:21:29Z!kenner@gnu.org
+libc-970905 1997-08-26T09:21:29Z!kenner@gnu.org
+libc-970906 1997-09-05T18:08:34Z!law@redhat.com
+libc-970907 1997-09-05T18:08:34Z!law@redhat.com
+libc-970908 1997-09-05T18:08:34Z!law@redhat.com
+libc-970911 1997-09-10T21:16:20Z!law@redhat.com
+libc-970912 1997-09-10T21:16:20Z!law@redhat.com
+libc-970913 1997-09-10T21:16:20Z!law@redhat.com
+libc-970914 1997-09-10T21:16:20Z!law@redhat.com
+libc-970915 1997-09-10T21:16:20Z!law@redhat.com
+libc-970916 1997-09-10T21:16:20Z!law@redhat.com
+libc-970917 1997-09-10T21:16:20Z!law@redhat.com
+libc-970918 1997-09-10T21:16:20Z!law@redhat.com
+libc-970919 1997-09-10T21:16:20Z!law@redhat.com
+libc-970920 1997-09-10T21:16:20Z!law@redhat.com
+libc-970921 1997-09-10T21:16:20Z!law@redhat.com
+libc-970922 1997-09-10T21:16:20Z!law@redhat.com
+libc-970923 1997-09-10T21:16:20Z!law@redhat.com
+libc-970924 1997-09-10T21:16:20Z!law@redhat.com
+libc-970925 1997-09-10T21:16:20Z!law@redhat.com
+libc-970926 1997-09-10T21:16:20Z!law@redhat.com
+libc-970927 1997-09-10T21:16:20Z!law@redhat.com
+libc-970928 1997-09-10T21:16:20Z!law@redhat.com
+libc-970929 1997-09-10T21:16:20Z!law@redhat.com
+libc-970930 1997-09-10T21:16:20Z!law@redhat.com
+libc-971001 1997-09-10T21:16:20Z!law@redhat.com
+libc-971018 1997-09-10T21:16:20Z!law@redhat.com
+libc-971019 1997-09-10T21:16:20Z!law@redhat.com
+libc-971020 1997-09-10T21:16:20Z!law@redhat.com
+libc-971021 1997-09-10T21:16:20Z!law@redhat.com
+libc-971022 1997-09-10T21:16:20Z!law@redhat.com
+libc-971023 1997-09-10T21:16:20Z!law@redhat.com
+libc-971024 1997-09-10T21:16:20Z!law@redhat.com
+libc-971025 1997-09-10T21:16:20Z!law@redhat.com
+libc-971026 1997-09-10T21:16:20Z!law@redhat.com
+libc-971027 1997-09-10T21:16:20Z!law@redhat.com
+libc-971028 1997-09-10T21:16:20Z!law@redhat.com
+libc-971029 1997-09-10T21:16:20Z!law@redhat.com
+libc-971030 1997-09-10T21:16:20Z!law@redhat.com
+libc-971031 1997-09-10T21:16:20Z!law@redhat.com
+libc-971101 1997-09-10T21:16:20Z!law@redhat.com
+libc-971102 1997-09-10T21:16:20Z!law@redhat.com
+libc-971103 1997-09-10T21:16:20Z!law@redhat.com
+libc-971104 1997-09-10T21:16:20Z!law@redhat.com
+libc-971105 1997-09-10T21:16:20Z!law@redhat.com
+libc-971106 1997-09-10T21:16:20Z!law@redhat.com
+libc-971107 1997-09-10T21:16:20Z!law@redhat.com
+libc-971108 1997-09-10T21:16:20Z!law@redhat.com
+libc-971109 1997-09-10T21:16:20Z!law@redhat.com
+libc-971110 1997-09-10T21:16:20Z!law@redhat.com
+libc-971111 1997-09-10T21:16:20Z!law@redhat.com
+libc-971112 1997-09-10T21:16:20Z!law@redhat.com
+libc-971113 1997-09-10T21:16:20Z!law@redhat.com
+libc-971114 1997-09-10T21:16:20Z!law@redhat.com
+libc-971115 1997-09-10T21:16:20Z!law@redhat.com
+libc-971116 1997-09-10T21:16:20Z!law@redhat.com
+libc-971117 1997-09-10T21:16:20Z!law@redhat.com
+libc-971118 1997-09-10T21:16:20Z!law@redhat.com
+libc-971120 1997-09-10T21:16:20Z!law@redhat.com
+libc-971121 1997-09-10T21:16:20Z!law@redhat.com
+libc-971122 1997-09-10T21:16:20Z!law@redhat.com
+libc-971123 1997-09-10T21:16:20Z!law@redhat.com
+libc-971124 1997-09-10T21:16:20Z!law@redhat.com
+libc-971125 1997-09-10T21:16:20Z!law@redhat.com
+libc-971126 1997-09-10T21:16:20Z!law@redhat.com
+libc-971127 1997-09-10T21:16:20Z!law@redhat.com
+libc-971128 1997-09-10T21:16:20Z!law@redhat.com
+libc-971129 1997-09-10T21:16:20Z!law@redhat.com
+libc-971130 1997-09-10T21:16:20Z!law@redhat.com
+libc-971201 1997-09-10T21:16:20Z!law@redhat.com
+libc-971203 1997-09-10T21:16:20Z!law@redhat.com
+libc-971204 1997-09-10T21:16:20Z!law@redhat.com
+libc-971205 1997-09-10T21:16:20Z!law@redhat.com
+libc-971206 1997-09-10T21:16:20Z!law@redhat.com
+libc-971207 1997-09-10T21:16:20Z!law@redhat.com
+libc-971208 1997-09-10T21:16:20Z!law@redhat.com
+libc-971209 1997-09-10T21:16:20Z!law@redhat.com
+libc-971210 1997-09-10T21:16:20Z!law@redhat.com
+libc-971211 1997-09-10T21:16:20Z!law@redhat.com
+libc-971212 1997-09-10T21:16:20Z!law@redhat.com
+libc-971213 1997-09-10T21:16:20Z!law@redhat.com
+libc-971214 1997-09-10T21:16:20Z!law@redhat.com
+libc-971217 1997-09-10T21:16:20Z!law@redhat.com
+libc-971218 1997-09-10T21:16:20Z!law@redhat.com
+libc-971219 1997-09-10T21:16:20Z!law@redhat.com
+libc-971220 1997-09-10T21:16:20Z!law@redhat.com
+libc-971221 1997-09-10T21:16:20Z!law@redhat.com
+libc-971222 1997-09-10T21:16:20Z!law@redhat.com
+libc-971223 1997-09-10T21:16:20Z!law@redhat.com
+libc-971224 1997-09-10T21:16:20Z!law@redhat.com
+libc-971225 1997-09-10T21:16:20Z!law@redhat.com
+libc-971226 1997-09-10T21:16:20Z!law@redhat.com
+libc-971227 1997-09-10T21:16:20Z!law@redhat.com
+libc-971228 1997-09-10T21:16:20Z!law@redhat.com
+libc-971229 1997-09-10T21:16:20Z!law@redhat.com
+libc-971230 1997-09-10T21:16:20Z!law@redhat.com
+libc-971231 1997-09-10T21:16:20Z!law@redhat.com
+libc-980103 1997-09-10T21:16:20Z!law@redhat.com
+libc-980104 1997-09-10T21:16:20Z!law@redhat.com
+libc-980105 1997-09-10T21:16:20Z!law@redhat.com
+libc-980106 1997-09-10T21:16:20Z!law@redhat.com
+libc-980107 1997-09-10T21:16:20Z!law@redhat.com
+libc-980108 1997-09-10T21:16:20Z!law@redhat.com
+libc-980109 1997-09-10T21:16:20Z!law@redhat.com
+libc-980110 1997-09-10T21:16:20Z!law@redhat.com
+libc-980111 1997-09-10T21:16:20Z!law@redhat.com
+libc-980112 1997-09-10T21:16:20Z!law@redhat.com
+libc-980114 1997-09-10T21:16:20Z!law@redhat.com
+libc-980115 1997-09-10T21:16:20Z!law@redhat.com
+libc-980116 1997-09-10T21:16:20Z!law@redhat.com
+libc-980117 1997-09-10T21:16:20Z!law@redhat.com
+libc-980118 1997-09-10T21:16:20Z!law@redhat.com
+libc-980119 1997-09-10T21:16:20Z!law@redhat.com
+libc-980120 1997-09-10T21:16:20Z!law@redhat.com
+libc-980121 1997-09-10T21:16:20Z!law@redhat.com
+libc-980122 1997-09-10T21:16:20Z!law@redhat.com
+libc-980123 1997-09-10T21:16:20Z!law@redhat.com
+libc-980124 1997-09-10T21:16:20Z!law@redhat.com
+libc-980125 1997-09-10T21:16:20Z!law@redhat.com
+libc-980126 1997-09-10T21:16:20Z!law@redhat.com
+libc-980127 1997-09-10T21:16:20Z!law@redhat.com
+libc-980128 1997-09-10T21:16:20Z!law@redhat.com
+libc-980129 1998-01-28T18:01:29Z!ian@cygnus.com
+libc-980130 1998-01-28T18:01:29Z!ian@cygnus.com
+libc-980212 1998-02-03T18:27:31Z!kenner@gnu.org
+libc-980213 1998-02-03T18:27:31Z!kenner@gnu.org
+libc-980214 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980215 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980216 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980217 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980218 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980219 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980220 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980221 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980222 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980223 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980224 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980225 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980226 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980227 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980228 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980301 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980302 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980303 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980304 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980306 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980307 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980308 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980309 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980310 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980311 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980312 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980313 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980314 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980315 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980316 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980317 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980318 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980319 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980320 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980321 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980322 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980323 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980324 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980325 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980326 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980327 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980328 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980329 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980330 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980331 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980401 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980402 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980403 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980404 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980405 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980406 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980407 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980408 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980409 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980410 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980411 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980412 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980413 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980414 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980428 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980429 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980430 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980501 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980502 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980503 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980504 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980505 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980506 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980507 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980508 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980509 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980510 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980512 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980513 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980514 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980515 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980516 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980517 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980518 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980519 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980520 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980521 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980522 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980523 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980524 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980525 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980526 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980527 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980528 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980529 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980530 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980531 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980601 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980602 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980603 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980604 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980605 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980606 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980607 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980608 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980609 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980610 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980611 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980612 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980613 1998-02-13T12:16:46Z!kenner@gnu.org
+libc-980614 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980615 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980616 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980617 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980618 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980619 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980620 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980621 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980622 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980623 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980624 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980625 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980626 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980627 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980628 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980629 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980630 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980701 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980702 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980703 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980704 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980705 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980706 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980707 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980708 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980709 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980710 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980711 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980712 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980713 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980714 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980715 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980716 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980717 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980718 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980719 1998-06-13T19:51:10Z!kenner@gnu.org
+libc-980720 1998-07-19T22:11:47Z!rms@gnu.org
+libc_1_09 1995-02-23T00:08:39Z!kenner@gnu.org
+make-3-72-9 1995-01-07T16:57:36Z!roland@gnu.org
+make-3-72-10 1995-01-07T16:57:36Z!roland@gnu.org
+make-3-72-11 1995-01-07T16:57:36Z!roland@gnu.org
+make-3-72-12 1995-01-07T16:57:36Z!roland@gnu.org
+make-3-72-13 1995-01-07T16:57:36Z!roland@gnu.org
+make-3-73 1995-01-07T16:57:36Z!roland@gnu.org
+make-3-73-1 1995-01-07T16:57:36Z!roland@gnu.org
+make-3-73-2 1995-01-07T16:57:36Z!roland@gnu.org
+make-3-73-3 1995-05-10T15:03:48Z!roland@gnu.org
+make-3-74 1995-05-10T15:03:48Z!roland@gnu.org
+make-3-74-1 1995-08-07T20:48:08Z!roland@gnu.org
+make-3-74-2 1995-08-07T20:48:08Z!roland@gnu.org
+make-3-74-3 1996-02-01T18:44:05Z!kwzh@gnu.org
+make-3-74-4 1996-03-20T01:08:11Z!roland@gnu.org
+make-3-74-5 1996-07-03T23:05:19Z!mrs@apple.com
+make-3-74-6 1996-07-03T23:05:19Z!mrs@apple.com
+make-3-74-7 1996-07-03T23:05:19Z!mrs@apple.com
+make-3-75 1996-07-03T23:05:19Z!mrs@apple.com
+make-3-75-1 1997-07-22T21:35:43Z!rms@gnu.org
+make-3-75-91 1997-07-22T21:35:43Z!rms@gnu.org
+make-3-75-92 1997-08-14T02:16:15Z!eggert@twinsun.com
+make-3-75-93 1998-04-14T00:02:53Z!drepper@redhat.com
+make-3-76 1997-09-05T21:01:56Z!psmith@BayNetworks.com
+make-3-76-1 1997-09-05T21:01:56Z!psmith@BayNetworks.com
+release-0-0 1996-07-16T04:47:46Z!kwzh@gnu.org
+release-0-1 1996-07-16T04:47:46Z!kwzh@gnu.org
+release-1-0 1997-04-11T20:40:28Z!ian@cygnus.com
+Release_5_25 1999-02-08T16:53:18Z!barry@zope.org
+root-libc-2_0_x-branch 1997-01-07T19:29:28Z!djm@gnu.org
diff --git a/admin/notes/unicode b/admin/notes/unicode
index 79e0e1d77e4..8ec56698dcd 100644
--- a/admin/notes/unicode
+++ b/admin/notes/unicode
@@ -187,19 +187,6 @@ nontrivial changes to the build process.
leim/MISC-DIC/cangjie-table.cns
- * iso-latin-2
-
- These files are processed by csplain, a program that requires
- Latin-2 input. In 2012 the csplain maintainers started
- recommending UTF-8, but these files haven't been converted yet.
-
- etc/refcards/cs-dired-ref.tex
- etc/refcards/cs-refcard.tex
- etc/refcards/cs-survival.tex
- etc/refcards/sk-dired-ref.tex
- etc/refcards/sk-refcard.tex
- etc/refcards/sk-survival.tex
-
* japanese-iso-8bit
SKK-JISYO.L is a verbatim copy of a file taken from an external source.
@@ -227,11 +214,6 @@ nontrivial changes to the build process.
operating in some other language environment.
etc/tutorials/TUTORIAL.ja
- leim/quail/cyril-jis.el
- leim/quail/hanja-jis.el
- leim/quail/japanese.el
- leim/quail/py-punct.el
- leim/quail/pypunct-b5.el
lisp/international/ja-dic-cnv.el
lisp/international/ja-dic-utl.el
lisp/international/kinsoku.el
@@ -239,18 +221,27 @@ nontrivial changes to the build process.
lisp/international/titdic-cnv.el
lisp/language/japan-util.el
lisp/language/japanese.el
+ lisp/leim/quail/cyril-jis.el
+ lisp/leim/quail/hanja-jis.el
+ lisp/leim/quail/japanese.el
+ lisp/leim/quail/py-punct.el
+ lisp/leim/quail/pypunct-b5.el
lisp/term/x-win.el
+ This file contains just Chinese characters, and has same problem.
+ Also, it contains characters that cannot be encoded in UTF-8.
+
+ lisp/international/titdic-cnv.el
+
* utf-8-emacs
These files contain characters that cannot be encoded in UTF-8.
- leim/quail/tibetan.el
- leim/quail/ethiopic.el
- lisp/international/titdic-cnv.el
lisp/language/tibetan.el
lisp/language/tibet-util.el
lisp/language/ind-util.el
+ lisp/leim/quail/ethiopic.el
+ lisp/leim/quail/tibetan.el
This file is part of GNU Emacs.
diff --git a/admin/notes/versioning b/admin/notes/versioning
new file mode 100644
index 00000000000..e422b22e432
--- /dev/null
+++ b/admin/notes/versioning
@@ -0,0 +1,26 @@
+GNU EMACS VERSIONING -*- org -*-
+
+Ref: http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00872.html
+
+Emacs version numbers have the form
+
+ major.minor[.devel].build
+
+"build" increments each time Emacs is built in the same location
+(without cleaning) and isn't really part of the version.
+
+bugfix releases increase "minor" by 1.
+non-bugfix releases increase "major" by 1, and reset "minor" to 1.
+(The division between bugfix and non-bugfix has not always been clear
+historically.)
+
+Unreleased (development) versions have an extra "devel" component.
+This is a fairly meaningless number that may be unchanged for a long time.
+It is normally 50.
+When the release process starts, it changes to 90, 91, ...
+When the actual release is made, this component is removed.
+
+The development version for a new major release has "minor" = 0.
+The development version for a new minor release has "minor" = that of
+the previous release.
+
diff --git a/admin/notes/years b/admin/notes/years
index 342fe9e2307..c0db1854e30 100644
--- a/admin/notes/years
+++ b/admin/notes/years
@@ -2,7 +2,7 @@ HOW TO MAINTAIN COPYRIGHT YEARS FOR GNU EMACS
Maintaining copyright years is now very simple: every time a new year
rolls around, add that year to every FSF (and AIST) copyright notice.
-Do this by running the 'admin/update-copyright' script on a fresh bzr
+Do this by running the 'admin/update-copyright' script on a fresh repo
checkout. Inspect the results for plausibility, then commit them.
There's no need to worry about whether an individual file has changed
diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs
index 5edc8d4d9ad..58fc5f080fe 100755
--- a/admin/quick-install-emacs
+++ b/admin/quick-install-emacs
@@ -28,7 +28,6 @@
PUBLIC_LIBSRC_BINARIES='emacsclient etags ctags ebrowse'
-PUBLIC_LIBSRC_SCRIPTS='grep-changelog'
AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile"
@@ -230,9 +229,6 @@ maybe_emit_copy $BUILD/src/emacs $DST_BIN/emacs-$VERSION
for F in $PUBLIC_LIBSRC_BINARIES; do
maybe_emit_copy $BUILD/lib-src/$F $DST_BIN/$F
done
-for F in $PUBLIC_LIBSRC_SCRIPTS; do
- maybe_emit_copy $SRC/lib-src/$F $DST_BIN/$F
-done
if test x"$SRC" = x"$BUILD"; then
PFXS="$BUILD"
@@ -259,7 +255,7 @@ for SUBDIR in lisp leim etc lib-src info; do
;;
lib-src)
DST="$DST_LIBEXEC"
- AVOID_PAT="`echo "($AVOID ($PUBLIC_LIBSRC_BINARIES $PUBLIC_LIBSRC_SCRIPTS)\$)" | tr ' ' '|'`"
+ AVOID_PAT="`echo "($AVOID ($PUBLIC_LIBSRC_BINARIES)\$)" | tr ' ' '|'`"
;;
info)
DST="$DST_INFO"
diff --git a/admin/unidata/.gitignore b/admin/unidata/.gitignore
deleted file mode 100644
index 3f2d8ca551d..00000000000
--- a/admin/unidata/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.elc
-unidata.txt
-
diff --git a/admin/unidata/BidiBrackets.txt b/admin/unidata/BidiBrackets.txt
new file mode 100644
index 00000000000..2a0cc0c7a69
--- /dev/null
+++ b/admin/unidata/BidiBrackets.txt
@@ -0,0 +1,176 @@
+# BidiBrackets-7.0.0.txt
+# Date: 2014-01-21, 02:30:00 GMT [AG, LI, KW]
+#
+# Bidi_Paired_Bracket and Bidi_Paired_Bracket_Type Properties
+#
+# This file is a normative contributory data file in the Unicode
+# Character Database.
+#
+# Copyright (c) 1991-2014 Unicode, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
+# Bidi_Paired_Bracket is a normative property of type Miscellaneous,
+# which establishes a mapping between characters that are treated as
+# bracket pairs by the Unicode Bidirectional Algorithm.
+#
+# Bidi_Paired_Bracket_Type is a normative property of type Enumeration,
+# which classifies characters into opening and closing paired brackets
+# for the purposes of the Unicode Bidirectional Algorithm.
+#
+# This file lists the set of code points with Bidi_Paired_Bracket_Type
+# property values Open and Close. The set is derived from the character
+# properties General_Category (gc), Bidi_Class (bc), Bidi_Mirrored (Bidi_M),
+# and Bidi_Mirroring_Glyph (bmg), as follows: two characters, A and B,
+# form a bracket pair if A has gc=Ps and B has gc=Pe, both have bc=ON and
+# Bidi_M=Y, and bmg of A is B. Bidi_Paired_Bracket (bpb) maps A to B and
+# vice versa, and their Bidi_Paired_Bracket_Type (bpt) property values are
+# Open (o) and Close (c), respectively.
+#
+# For legacy reasons, the characters U+FD3E ORNATE LEFT PARENTHESIS and
+# U+FD3F ORNATE RIGHT PARENTHESIS do not mirror in bidirectional display
+# and therefore do not form a bracket pair.
+#
+# The Unicode property value stability policy guarantees that characters
+# which have bpt=o or bpt=c also have bc=ON and Bidi_M=Y. As a result, an
+# implementation can optimize the lookup of the Bidi_Paired_Bracket_Type
+# property values Open and Close by restricting the processing to characters
+# with bc=ON.
+#
+# The format of the file is three fields separated by a semicolon.
+# Field 0: Unicode code point value, represented as a hexadecimal value
+# Field 1: Bidi_Paired_Bracket property value, a code point value or
+# Field 2: Bidi_Paired_Bracket_Type property value, one of the following:
+# o Open
+# c Close
+# n None
+# The names of the characters in field 0 are given in comments at the end
+# of each line.
+#
+# For information on bidirectional paired brackets, see UAX #9: Unicode
+# Bidirectional Algorithm, at http://www.unicode.org/unicode/reports/tr9/
+#
+# This file was originally created by Andrew Glass and Laurentiu Iancu
+# for Unicode 6.3.
+
+0028; 0029; o # LEFT PARENTHESIS
+0029; 0028; c # RIGHT PARENTHESIS
+005B; 005D; o # LEFT SQUARE BRACKET
+005D; 005B; c # RIGHT SQUARE BRACKET
+007B; 007D; o # LEFT CURLY BRACKET
+007D; 007B; c # RIGHT CURLY BRACKET
+0F3A; 0F3B; o # TIBETAN MARK GUG RTAGS GYON
+0F3B; 0F3A; c # TIBETAN MARK GUG RTAGS GYAS
+0F3C; 0F3D; o # TIBETAN MARK ANG KHANG GYON
+0F3D; 0F3C; c # TIBETAN MARK ANG KHANG GYAS
+169B; 169C; o # OGHAM FEATHER MARK
+169C; 169B; c # OGHAM REVERSED FEATHER MARK
+2045; 2046; o # LEFT SQUARE BRACKET WITH QUILL
+2046; 2045; c # RIGHT SQUARE BRACKET WITH QUILL
+207D; 207E; o # SUPERSCRIPT LEFT PARENTHESIS
+207E; 207D; c # SUPERSCRIPT RIGHT PARENTHESIS
+208D; 208E; o # SUBSCRIPT LEFT PARENTHESIS
+208E; 208D; c # SUBSCRIPT RIGHT PARENTHESIS
+2308; 2309; o # LEFT CEILING
+2309; 2308; c # RIGHT CEILING
+230A; 230B; o # LEFT FLOOR
+230B; 230A; c # RIGHT FLOOR
+2329; 232A; o # LEFT-POINTING ANGLE BRACKET
+232A; 2329; c # RIGHT-POINTING ANGLE BRACKET
+2768; 2769; o # MEDIUM LEFT PARENTHESIS ORNAMENT
+2769; 2768; c # MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A; 276B; o # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B; 276A; c # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C; 276D; o # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D; 276C; c # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E; 276F; o # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F; 276E; c # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770; 2771; o # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771; 2770; c # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772; 2773; o # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773; 2772; c # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774; 2775; o # MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775; 2774; c # MEDIUM RIGHT CURLY BRACKET ORNAMENT
+27C5; 27C6; o # LEFT S-SHAPED BAG DELIMITER
+27C6; 27C5; c # RIGHT S-SHAPED BAG DELIMITER
+27E6; 27E7; o # MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7; 27E6; c # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8; 27E9; o # MATHEMATICAL LEFT ANGLE BRACKET
+27E9; 27E8; c # MATHEMATICAL RIGHT ANGLE BRACKET
+27EA; 27EB; o # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB; 27EA; c # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC; 27ED; o # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27ED; 27EC; c # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EE; 27EF; o # MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF; 27EE; c # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+2983; 2984; o # LEFT WHITE CURLY BRACKET
+2984; 2983; c # RIGHT WHITE CURLY BRACKET
+2985; 2986; o # LEFT WHITE PARENTHESIS
+2986; 2985; c # RIGHT WHITE PARENTHESIS
+2987; 2988; o # Z NOTATION LEFT IMAGE BRACKET
+2988; 2987; c # Z NOTATION RIGHT IMAGE BRACKET
+2989; 298A; o # Z NOTATION LEFT BINDING BRACKET
+298A; 2989; c # Z NOTATION RIGHT BINDING BRACKET
+298B; 298C; o # LEFT SQUARE BRACKET WITH UNDERBAR
+298C; 298B; c # RIGHT SQUARE BRACKET WITH UNDERBAR
+298D; 2990; o # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E; 298F; c # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F; 298E; o # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990; 298D; c # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991; 2992; o # LEFT ANGLE BRACKET WITH DOT
+2992; 2991; c # RIGHT ANGLE BRACKET WITH DOT
+2993; 2994; o # LEFT ARC LESS-THAN BRACKET
+2994; 2993; c # RIGHT ARC GREATER-THAN BRACKET
+2995; 2996; o # DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996; 2995; c # DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997; 2998; o # LEFT BLACK TORTOISE SHELL BRACKET
+2998; 2997; c # RIGHT BLACK TORTOISE SHELL BRACKET
+29D8; 29D9; o # LEFT WIGGLY FENCE
+29D9; 29D8; c # RIGHT WIGGLY FENCE
+29DA; 29DB; o # LEFT DOUBLE WIGGLY FENCE
+29DB; 29DA; c # RIGHT DOUBLE WIGGLY FENCE
+29FC; 29FD; o # LEFT-POINTING CURVED ANGLE BRACKET
+29FD; 29FC; c # RIGHT-POINTING CURVED ANGLE BRACKET
+2E22; 2E23; o # TOP LEFT HALF BRACKET
+2E23; 2E22; c # TOP RIGHT HALF BRACKET
+2E24; 2E25; o # BOTTOM LEFT HALF BRACKET
+2E25; 2E24; c # BOTTOM RIGHT HALF BRACKET
+2E26; 2E27; o # LEFT SIDEWAYS U BRACKET
+2E27; 2E26; c # RIGHT SIDEWAYS U BRACKET
+2E28; 2E29; o # LEFT DOUBLE PARENTHESIS
+2E29; 2E28; c # RIGHT DOUBLE PARENTHESIS
+3008; 3009; o # LEFT ANGLE BRACKET
+3009; 3008; c # RIGHT ANGLE BRACKET
+300A; 300B; o # LEFT DOUBLE ANGLE BRACKET
+300B; 300A; c # RIGHT DOUBLE ANGLE BRACKET
+300C; 300D; o # LEFT CORNER BRACKET
+300D; 300C; c # RIGHT CORNER BRACKET
+300E; 300F; o # LEFT WHITE CORNER BRACKET
+300F; 300E; c # RIGHT WHITE CORNER BRACKET
+3010; 3011; o # LEFT BLACK LENTICULAR BRACKET
+3011; 3010; c # RIGHT BLACK LENTICULAR BRACKET
+3014; 3015; o # LEFT TORTOISE SHELL BRACKET
+3015; 3014; c # RIGHT TORTOISE SHELL BRACKET
+3016; 3017; o # LEFT WHITE LENTICULAR BRACKET
+3017; 3016; c # RIGHT WHITE LENTICULAR BRACKET
+3018; 3019; o # LEFT WHITE TORTOISE SHELL BRACKET
+3019; 3018; c # RIGHT WHITE TORTOISE SHELL BRACKET
+301A; 301B; o # LEFT WHITE SQUARE BRACKET
+301B; 301A; c # RIGHT WHITE SQUARE BRACKET
+FE59; FE5A; o # SMALL LEFT PARENTHESIS
+FE5A; FE59; c # SMALL RIGHT PARENTHESIS
+FE5B; FE5C; o # SMALL LEFT CURLY BRACKET
+FE5C; FE5B; c # SMALL RIGHT CURLY BRACKET
+FE5D; FE5E; o # SMALL LEFT TORTOISE SHELL BRACKET
+FE5E; FE5D; c # SMALL RIGHT TORTOISE SHELL BRACKET
+FF08; FF09; o # FULLWIDTH LEFT PARENTHESIS
+FF09; FF08; c # FULLWIDTH RIGHT PARENTHESIS
+FF3B; FF3D; o # FULLWIDTH LEFT SQUARE BRACKET
+FF3D; FF3B; c # FULLWIDTH RIGHT SQUARE BRACKET
+FF5B; FF5D; o # FULLWIDTH LEFT CURLY BRACKET
+FF5D; FF5B; c # FULLWIDTH RIGHT CURLY BRACKET
+FF5F; FF60; o # FULLWIDTH LEFT WHITE PARENTHESIS
+FF60; FF5F; c # FULLWIDTH RIGHT WHITE PARENTHESIS
+FF62; FF63; o # HALFWIDTH LEFT CORNER BRACKET
+FF63; FF62; c # HALFWIDTH RIGHT CORNER BRACKET
+
+# EOF
diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in
index 6b253ea565b..94504818d12 100644
--- a/admin/unidata/Makefile.in
+++ b/admin/unidata/Makefile.in
@@ -28,12 +28,12 @@ top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
EMACS = ${top_builddir}/src/emacs
-DSTDIR = ${top_srcdir}/lisp/international
+unidir = ${top_srcdir}/lisp/international
emacs = "${EMACS}" -batch --no-site-file --no-site-lisp
-.PHONY: all compile install
+.PHONY: all unifiles
-all: ${top_srcdir}/src/macuvs.h ${DSTDIR}/charprop.el
+all: ${top_srcdir}/src/macuvs.h unifiles
## Specify .elc as an order-only prereq so as to not needlessly rebuild
## target just because the .elc is missing.
@@ -41,7 +41,7 @@ all: ${top_srcdir}/src/macuvs.h ${DSTDIR}/charprop.el
${top_srcdir}/src/macuvs.h: ${srcdir}/uvs.el ${srcdir}/IVD_Sequences.txt | \
${srcdir}/uvs.elc
${emacs} -L ${srcdir} -l uvs \
- --eval '(uvs-print-table-ivd "${srcdir}/IVD_Sequences.txt" "Adobe-Japan1")' \
+ --eval '(uvs-print-table-ivd (unmsys--file-name "${srcdir}/IVD_Sequences.txt") "Adobe-Japan1")' \
> $@
%.elc: %.el
@@ -50,30 +50,33 @@ ${top_srcdir}/src/macuvs.h: ${srcdir}/uvs.el ${srcdir}/IVD_Sequences.txt | \
unidata.txt: ${srcdir}/UnicodeData.txt
sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < $< > $@
-${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.el ${srcdir}/UnicodeData.txt | \
+FORCE =
+FORCE:
+.PHONY: FORCE
+
+${unidir}/charprop.el: ${FORCE} ${srcdir}/unidata-gen.el \
+ ${srcdir}/UnicodeData.txt ${srcdir}/BidiMirroring.txt \
+ ${srcdir}/BidiBrackets.txt | \
${srcdir}/unidata-gen.elc unidata.txt
-if [ -f "$@" ]; then \
- cd ${DSTDIR} && chmod +w charprop.el `sed -n 's/^;; FILE: //p' < charprop.el`; \
+ cd ${unidir} && chmod +w charprop.el `sed -n 's/^;; FILE: //p' < charprop.el`; \
fi
${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \
- ${srcdir} "${DSTDIR}"
+ ${srcdir} "${unidir}"
-## Like the above, but generate in PWD rather than lisp/international.
-charprop.el: ${srcdir}/unidata-gen.elc unidata.txt
- ${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \
- ${srcdir}
+## Check for deleted uni- files, and if any such, force a rebuild.
+## Perhaps a more elegant way would be for the previous rule
+## to generate a Makefile fragment explicitly listing the uni- files,
+## which this file could include. If no fragment, rebuild everything.
+unifiles: ${unidir}/charprop.el
+ for f in `sed -n 's/^;; FILE: //p' < $<`; do \
+ [ -f ${unidir}/$$f ] || { ${MAKE} $< FORCE=FORCE || exit 1; break; };\
+ done
.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean
-install: charprop.el
- cp charprop.el ${DSTDIR}
- cp `sed -n 's/^;; FILE: //p' < charprop.el` ${DSTDIR}
-
clean:
- if test -f charprop.el; then \
- rm -f `sed -n 's/^;; FILE: //p' < charprop.el`; \
- fi
- rm -f charprop.el ${srcdir}/*.elc unidata.txt
+ rm -f ${srcdir}/*.elc unidata.txt
bootstrap-clean: clean
@@ -87,7 +90,7 @@ maintainer-clean: distclean
## Cf leim/ja-dic (which is much slower).
extraclean:
rm -f ${top_srcdir}/src/macuvs.h
- if test -f ${DSTDIR}/charprop.el; then \
- (cd ${DSTDIR} && rm -f `sed -n 's/^;; FILE: //p' < charprop.el`); \
- rm -f ${DSTDIR}/charprop.el; \
+ if test -f ${unidir}/charprop.el; then \
+ (cd ${unidir} && rm -f `sed -n 's/^;; FILE: //p' < charprop.el`); \
+ rm -f ${unidir}/charprop.el; \
fi
diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el
index ff45b79aab7..d10b260b470 100644
--- a/admin/unidata/unidata-gen.el
+++ b/admin/unidata/unidata-gen.el
@@ -88,6 +88,8 @@
;; CHAR-or-RANGE: a character code or a cons of character codes
;; PROPn: string representing the nth property value
+(eval-when-compile (require 'cl-lib))
+
(defvar unidata-list nil)
;; Name of the directory containing files of Unicode Character Database.
@@ -152,7 +154,8 @@
;; PROP: character property
;; INDEX: index to each element of unidata-list for PROP.
;; It may be a function that generates an alist of character codes
-;; vs. the corresponding property values.
+;; vs. the corresponding property values. Currently, only character
+;; codepoints or symbol values are supported in this case.
;; GENERATOR: function to generate a char-table
;; FILENAME: filename to store the char-table
;; DOCSTRING: docstring for the property
@@ -271,7 +274,23 @@ is the character itself."
"Unicode bidi-mirroring characters.
Property value is a character that has the corresponding mirroring image or nil.
The value nil means that the actual property value of a character
-is the character itself.")))
+is the character itself.")
+ (paired-bracket
+ unidata-gen-brackets-list unidata-gen-table-character "uni-brackets.el"
+ "Unicode bidi paired-bracket characters.
+Property value is the paired bracket character, or nil.
+The value nil means that the character is neither an opening nor
+a closing paired bracket."
+ string)
+ (bracket-type
+ unidata-gen-bracket-type-list unidata-gen-table-symbol "uni-brackets.el"
+ "Unicode bidi paired-bracket type.
+Property value is a symbol `o' (Open), `c' (Close), or `n' (None)."
+ unidata-describe-bidi-bracket-type
+ n
+ ;; The order of elements must be in sync with bidi_bracket_type_t
+ ;; in src/dispextern.h.
+ (n o c))))
;; Functions to access the above data.
(defsubst unidata-prop-index (prop) (nth 1 (assq prop unidata-prop-alist)))
@@ -449,7 +468,10 @@ is the character itself.")))
(unidata-encode-val val-list (nth 2 elm)))
(set-char-table-range table (cons (car elm) (nth 1 elm)) (nth 2 elm)))
- (setq tail unidata-list)
+ (if (functionp prop-idx)
+ (setq tail (funcall prop-idx)
+ prop-idx 1)
+ (setq tail unidata-list))
(while tail
(setq elt (car tail) tail (cdr tail))
(setq range (car elt)
@@ -854,7 +876,7 @@ is the character itself.")))
;; The following command yields a file of about 96K bytes.
;; % gawk -F ';' '{print $1,$2;}' < UnicodeData.txt | gzip > temp.gz
;; With the following function, we can get a file of almost the same
-;; the size.
+;; size.
;; Generate a char-table for character names.
@@ -923,11 +945,7 @@ is the character itself.")))
(dotimes (i (length vec))
(dolist (elt (aref vec i))
(if (symbolp elt)
- (let ((slot (assq elt word-list)))
- (if slot
- (setcdr slot (1+ (cdr slot)))
- (setcdr word-list
- (cons (cons elt 1) (cdr word-list))))))))
+ (cl-incf (alist-get elt (cdr word-list) 0)))))
(set-char-table-range table (cons start limit) vec))))))
(setq word-list (sort (cdr word-list)
#'(lambda (x y) (> (cdr x) (cdr y)))))
@@ -1159,6 +1177,12 @@ is the character itself.")))
(string ?'))))
val " "))
+(defun unidata-describe-bidi-bracket-type (val)
+ (cdr (assq val
+ '((n . "Not a paired bracket character.")
+ (o . "Opening paired bracket character.")
+ (c . "Closing paired bracket character.")))))
+
(defun unidata-gen-mirroring-list ()
(let ((head (list nil))
tail)
@@ -1172,27 +1196,74 @@ is the character itself.")))
(setq tail (setcdr tail (list (list char mirror)))))))
(cdr head)))
+(defun unidata-gen-brackets-list ()
+ (let ((head (list nil))
+ tail)
+ (with-temp-buffer
+ (insert-file-contents (expand-file-name "BidiBrackets.txt" unidata-dir))
+ (goto-char (point-min))
+ (setq tail head)
+ (while (re-search-forward
+ "^\\([0-9A-F]+\\);\\s +\\([0-9A-F]+\\);\\s +\\([oc]\\)"
+ nil t)
+ (let ((char (string-to-number (match-string 1) 16))
+ (paired (match-string 2)))
+ (setq tail (setcdr tail (list (list char paired)))))))
+ (cdr head)))
+
+(defun unidata-gen-bracket-type-list ()
+ (let ((head (list nil))
+ tail)
+ (with-temp-buffer
+ (insert-file-contents (expand-file-name "BidiBrackets.txt" unidata-dir))
+ (goto-char (point-min))
+ (setq tail head)
+ (while (re-search-forward
+ "^\\([0-9A-F]+\\);\\s +\\([0-9A-F]+\\);\\s +\\([oc]\\)"
+ nil t)
+ (let ((char (string-to-number (match-string 1) 16))
+ (type (match-string 3)))
+ (setq tail (setcdr tail (list (list char type)))))))
+ (cdr head)))
+
;; Verify if we can retrieve correct values from the generated
;; char-tables.
+;;
+;; Use like this:
+;;
+;; (let ((unidata-dir "/path/to/admin/unidata"))
+;; (unidata-setup-list "unidata.txt")
+;; (unidata-check))
(defun unidata-check ()
(dolist (elt unidata-prop-alist)
(let* ((prop (car elt))
(index (unidata-prop-index prop))
(generator (unidata-prop-generator prop))
+ (default-value (unidata-prop-default prop))
+ (val-list (unidata-prop-val-list prop))
(table (progn
(message "Generating %S table..." prop)
- (funcall generator prop)))
+ (funcall generator prop default-value val-list)))
(decoder (char-table-extra-slot table 1))
+ (alist (and (functionp index)
+ (funcall index)))
(check #x400))
(dolist (e unidata-list)
- (let ((char (car e))
- (val1 (nth index e))
- val2)
+ (let* ((char (car e))
+ (val1
+ (if alist (nth 1 (assoc char alist))
+ (nth index e)))
+ val2)
(if (and (stringp val1) (= (length val1) 0))
(setq val1 nil))
- (unless (consp char)
- (setq val2 (funcall decoder char (aref table char) table))
+ (unless (or (consp char)
+ (integerp decoder))
+ (setq val2
+ (cond ((functionp decoder)
+ (funcall decoder char (aref table char) table))
+ (t ; must be nil
+ (aref table char))))
(if val1
(cond ((eq generator 'unidata-gen-table-symbol)
(setq val1 (intern val1)))
@@ -1201,11 +1272,17 @@ is the character itself.")))
((eq generator 'unidata-gen-table-character)
(setq val1 (string-to-number val1 16)))
((eq generator 'unidata-gen-table-decomposition)
- (setq val1 (unidata-split-decomposition val1)))))
+ (setq val1 (unidata-split-decomposition val1))))
+ (cond ((eq prop 'decomposition)
+ (setq val1 (list char)))
+ ((eq prop 'bracket-type)
+ (setq val1 'n))))
(when (>= char check)
(message "%S %04X" prop check)
(setq check (+ check #x400)))
(or (equal val1 val2)
+ ;; characters get a 'name' property of nil
+ (and (eq prop 'name) (string= val1 "") (null val2))
(insert (format "> %04X %S\n< %04X %S\n"
char val1 char val2)))
(sit-for 0)))))))
@@ -1242,6 +1319,9 @@ is the character itself.")))
(describer (unidata-prop-describer prop))
(default-value (unidata-prop-default prop))
(val-list (unidata-prop-val-list prop))
+ ;; Avoid creating backup files for those uni-*.el files
+ ;; that hold more than one table.
+ (backup-inhibited t)
table)
;; Filename in this comment line is extracted by sed in
;; Makefile.
@@ -1261,7 +1341,7 @@ is the character itself.")))
(setq describer (symbol-function describer)))
(set-char-table-extra-slot table 3 describer))
(if (bobp)
- (insert ";; Copyright (C) 1991-2013 Unicode, Inc.
+ (insert ";; Copyright (C) 1991-2014 Unicode, Inc.
;; This file was generated from the Unicode data files at
;; http://www.unicode.org/Public/UNIDATA/.
;; See lisp/international/README for the copyright and permission notice.\n"))
diff --git a/admin/update-copyright b/admin/update-copyright
index 2b33506f9c1..5612d7f7386 100755
--- a/admin/update-copyright
+++ b/admin/update-copyright
@@ -45,14 +45,14 @@ sed 's/\\def\\year[{][0-9]*[}]/\\def\\year{'"$UPDATE_COPYRIGHT_YEAR"'}'/g \
} &&
rm $emacsver.aux &&
-bzr_files=$(bzr ls -RV --kind file) &&
+repo_files=$(git ls-files) &&
# Do not update the copyright of files that have one or more of the
# following problems:
# . They are license files, maintained by the FSF, with their own dates.
# . Their format cannot withstand changing the contents of copyright strings.
-updatable_files=$(find $bzr_files \
+updatable_files=$(find $repo_files \
! -name COPYING \
! -name doclicense.texi \
! -name gpl.texi \
diff --git a/admin/update_autogen b/admin/update_autogen
index ef0edfef50c..af7ea83dd91 100755
--- a/admin/update_autogen
+++ b/admin/update_autogen
@@ -305,9 +305,6 @@ EOF
modified=$(status $basegen) || die
- ## bzr status output is always relative to top-level, not PWD.
- [ "$vcs" = "bzr" ] && cd $oldpwd
-
commit "generated" $modified || die "commit error"
exit 0
diff --git a/autogen.sh b/autogen.sh
index 48e6d19c69d..614bdc71b61 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-### autogen.sh - tool to help build Emacs from a bzr checkout
+### autogen.sh - tool to help build Emacs from a repository checkout
## Copyright (C) 2011-2014 Free Software Foundation, Inc.
@@ -23,8 +23,8 @@
### Commentary:
-## The Emacs bzr repository does not include the configure script
-## (and associated helpers). The first time you fetch Emacs from bzr,
+## The Emacs repository does not include the configure script (and
+## associated helpers). The first time you fetch Emacs from the repo,
## run this script to generate the necessary files.
## For more details, see the file INSTALL.REPO.
@@ -145,7 +145,7 @@ if [ x"$missing" != x ]; then
cat < src/stamp-h.in || exit
+## Install Git hooks, if using Git.
+if test -d .git/hooks; then
+ tailored_hooks=
+ sample_hooks=
+
+ for hook in commit-msg pre-commit; do
+ cmp build-aux/git-hooks/$hook .git/hooks/$hook >/dev/null 2>&1 ||
+ tailored_hooks="$tailored_hooks $hook"
+ done
+ for hook in applypatch-msg pre-applypatch; do
+ cmp .git/hooks/$hook.sample .git/hooks/$hook >/dev/null 2>&1 ||
+ sample_hooks="$sample_hooks $hook"
+ done
+
+ if test -n "$tailored_hooks$sample_hooks"; then
+ echo "Installing git hooks..."
+
+ case `cp --help 2>/dev/null` in
+ *--backup*--verbose*)
+ cp_options='--backup=numbered --verbose';;
+ *)
+ cp_options='';;
+ esac
+
+ if test -n "$tailored_hooks"; then
+ for hook in $tailored_hooks; do
+ cp $cp_options build-aux/git-hooks/$hook .git/hooks || exit
+ chmod a-w .git/hooks/$hook || exit
+ done
+ fi
+
+ if test -n "$sample_hooks"; then
+ for hook in $sample_hooks; do
+ cp $cp_options .git/hooks/$hook.sample .git/hooks/$hook || exit
+ chmod a-w .git/hooks/$hook || exit
+ done
+ fi
+ fi
+fi
+
echo "You can now run './configure'."
exit 0
diff --git a/build-aux/git-hooks/commit-msg b/build-aux/git-hooks/commit-msg
new file mode 100755
index 00000000000..5eb994c6fe0
--- /dev/null
+++ b/build-aux/git-hooks/commit-msg
@@ -0,0 +1,122 @@
+#!/bin/sh
+# Check the format of GNU Emacs change log entries.
+
+# Copyright 2014 Free Software Foundation, Inc.
+
+# 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 .
+
+# Written by Paul Eggert.
+
+# Prefer gawk if available, as it handles NUL bytes properly.
+if type gawk >/dev/null 2>&1; then
+ awk=gawk
+else
+ awk=awk
+fi
+
+# Use a UTF-8 locale if available, so that the UTF-8 check works.
+# Use U+00A2 CENT SIGN to test whether the locale works.
+cent_sign_utf8_octal='\302\242'
+at_sign=`
+ printf "${cent_sign_utf8_octal}@" |
+ $awk '{print substr($0, 2)}' 2>/dev/null
+`
+if test "$at_sign" != @; then
+ at_sign=`
+ printf "${cent_sign_utf8_octal}@" |
+ LC_ALL=en_US.UTF-8 $awk '{print substr($0, 2)}' 2>/dev/null
+ `
+ if test "$at_sign" = @; then
+ LC_ALL=en_US.UTF-8; export LC_ALL
+ fi
+fi
+
+# Check the log entry.
+exec $awk '
+ BEGIN {
+ if (" " ~ /[[:space:]]/) {
+ space = "[[:space:]]"
+ non_space = "[^[:space:]]"
+ non_print = "[^[:print:]]"
+ } else {
+ # mawk 1.3.3 does not support POSIX bracket expressions.
+ # Approximate them as best we can.
+ space = "[ \f\n\r\t\v]"
+ non_space = "[^ \f\n\r\t\v]"
+ non_print = "[\1-\37\177]"
+ }
+ }
+
+ /^#/ { next }
+
+ !/^.*$/ {
+ print "Invalid character (not UTF-8) in commit message"
+ status = 1
+ }
+
+ nlines == 0 && $0 !~ non_space { next }
+
+ { nlines++ }
+
+ nlines == 1 {
+ # Ignore special markers used by "git rebase --autosquash".
+ if (! sub(/^fixup! /, ""))
+ sub(/^squash! /, "")
+
+ if ($0 ~ "^" space) {
+ print "White space at start of commit message'\''s first line"
+ status = 1
+ }
+ }
+
+ nlines == 2 && $0 ~ non_space {
+ print "Nonempty second line in commit message"
+ status = 1
+ }
+
+ 72 < length && $0 ~ space {
+ print "Line longer than 72 characters in commit message"
+ status = 1
+ }
+
+ 140 < length {
+ print "Word longer than 140 characters in commit message"
+ status = 1
+ }
+
+ /^Signed-off-by: / {
+ print "'\''Signed-off-by:'\'' in commit message"
+ status = 1
+ }
+
+ $0 ~ non_print {
+ if (gsub(/\t/, "")) {
+ print "Tab in commit message; please use spaces instead"
+ }
+ if ($0 ~ non_print) {
+ print "Unprintable character in commit message"
+ }
+ status = 1
+ }
+
+ END {
+ if (nlines == 0) {
+ print "Empty commit message"
+ status = 1
+ }
+ exit status
+ }
+' <"$1"
diff --git a/build-aux/git-hooks/pre-commit b/build-aux/git-hooks/pre-commit
new file mode 100755
index 00000000000..c24f9bb48d3
--- /dev/null
+++ b/build-aux/git-hooks/pre-commit
@@ -0,0 +1,46 @@
+#!/bin/sh
+# Check file names in git commits for GNU Emacs.
+
+# Copyright 2014 Free Software Foundation, Inc.
+
+# 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 .
+
+LC_ALL=C
+export LC_ALL
+
+exec >&2
+
+. git-sh-setup
+
+git_diff='git diff --cached --name-only --diff-filter=A'
+ok_chars='\0+[=-=]./0-9A-Z_a-z'
+nbadchars=`$git_diff -z HEAD | tr -d "$ok_chars" | wc -c`
+
+if test "$nbadchars" -ne 0; then
+ echo "File name does not consist of -+./_ or ASCII letters or digits."
+ exit 1
+fi
+
+new_names=`$git_diff HEAD` || exit
+case "
+$new_names" in
+ */-* | *'
+'-*)
+ echo "File name component begins with '-'."
+ exit 1;;
+esac
+
+exec git diff-index --check --cached HEAD --
diff --git a/build-aux/make-info-dir b/build-aux/make-info-dir
index 3f927382ded..10a0b75fd6a 100755
--- a/build-aux/make-info-dir
+++ b/build-aux/make-info-dir
@@ -31,76 +31,44 @@
## installation directory. It does not handle info/dir being present
## but missing some entries.
-### Code:
-
-if test $# -ne 1; then
- echo "Specify destination file"
- exit 1
-fi
-
-outfile=$1
-
-echo "Creating $outfile..."
-
-if test -f "$outfile"; then
- echo "$outfile already present"
- exit 1
-fi
-
## Header contains non-printing characters, so this is more
-## reliable than using echo.
-basefile=build-aux/dir_top
+## reliable than using awk.
+cat <"${1?}" || exit
+shift
-if test ! -f "$basefile"; then
- echo "$basefile not found"
- exit 1
-fi
-
-
-cp $basefile $outfile
-
-
-## FIXME inefficient looping.
-## What we should do is loop once over files, collecting topic and
-## direntry information for each. Then loop over topics and write
-## out the results. But that seems to require associative arrays,
-## and I do not know how to do that with portable sh.
-## Could use Emacs instead of sh, but till now info generation does
-## not require Emacs to have been built.
-for topic in "Texinfo documentation system" "Emacs" "Emacs lisp" \
- "Emacs editing modes" "Emacs network features" "Emacs misc features" \
- "Emacs lisp libraries"; do
-
- cat - <> $outfile
-
-$topic
-EOF
- ## Bit faster than doc/*/*.texi.
- for file in doc/emacs/emacs.texi doc/lispintro/emacs-lisp-intro.texi \
- doc/lispref/elisp.texi doc/misc/*.texi; do
-
- ## FIXME do not ignore w32 if OS is w32.
- case $file in
- *-xtra.texi|*efaq-w32.texi|*doclicense.texi) continue ;;
- esac
-
- dircat=`sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file`
-
- ## TODO warn about unknown topics.
- ## (check-info in top-level Makefile does that.)
- test "$dircat" = "$topic" || continue
-
-
- sed -n -e 's/@value{emacsname}/Emacs/' \
- -e 's/@acronym{\([A-Z]*\)}/\1/' \
- -e '/^@direntry/,/^@end direntry/ s/^\([^@]\)/\1/p' \
- $file >> $outfile
-
- done
-done
-
-echo "Created $outfile"
-
-exit 0
-
-### make-info-dir ends here
+exec "${AWK-awk}" '
+ function detexinfo() {
+ gsub(/@value{emacsname}/, "Emacs")
+ gsub(/@[^{]*\{/, "")
+ gsub(/}/, "")
+ }
+ BEGIN {
+ ntopics = 0
+ topic[ntopics++] = "Texinfo documentation system"
+ topic[ntopics++] = "Emacs"
+ topic[ntopics++] = "Emacs lisp"
+ topic[ntopics++] = "Emacs editing modes"
+ topic[ntopics++] = "Emacs network features"
+ topic[ntopics++] = "Emacs misc features"
+ topic[ntopics++] = "Emacs lisp libraries"
+ topic[ntopics] = "Unknown category"
+ }
+ /^@dircategory / {
+ sub(/^@dircategory /, "")
+ detexinfo()
+ for (dircat = 0; dircat < ntopics && topic[dircat] != $0; dircat++)
+ continue;
+ }
+ /^@direntry/, /^@end direntry/ {
+ # FIXME do not ignore w32 if OS is w32.
+ if ($0 !~ /^@/ && $0 !~ /w32/) {
+ detexinfo()
+ data[dircat] = data[dircat] $0 "\n"
+ }
+ }
+ END {
+ for (dircat = 0; dircat <= ntopics; dircat++)
+ if (data[dircat])
+ printf "\n%s\n%s", topic[dircat], data[dircat]
+ }
+' "${@?}"
diff --git a/build-aux/msys-to-w32 b/build-aux/msys-to-w32
index 4c92cc91a3d..f0fd61d823f 100755
--- a/build-aux/msys-to-w32
+++ b/build-aux/msys-to-w32
@@ -1,6 +1,5 @@
-#!/bin/sh
-# Take a list of MSYS-compatible paths and convert them to native
-# MS-Windows format.
+#!/bin/bash
+# Convert a MSYS path list to Windows-native format.
# Status is zero if successful, nonzero otherwise.
# Copyright (C) 2013-2014 Free Software Foundation, Inc.
@@ -21,36 +20,19 @@
# Take only the basename from the full pathname
me=${0//*\//}
-usage="usage: ${me} PATHLIST [MUSTEXIST] [SEPARATOR [SEPARATOR2]]"
+usage="usage: ${me} PATHLIST"
help="$usage
or: ${me} OPTION
-Convert MSYS-compatible paths to MS-Windows native format.
+Convert a MSYS path list to Windows-native format.
+
+PATHLIST should be a colon-separated list of MSYS paths, which will be
+written to the standard output after performing these transformations:
-PATHLIST should be a list of paths separated by SEPARATOR. This list
-will be written to the standard output after performing the following
-transformations:
1. Discard empty paths.
-2. Replace backslashes with forward slashes.
-3. Replace two consecutive slashes with single ones.
-4. Translate to Windows-native format those paths that are not in such
- format already. The translated paths will not end with a slash,
- except for root directories (e.g. 'c:/' or 'c:/foo'). Paths
- starting with '%emacs_dir%' will not be translated.
-5. Escape with backslashes every occurrence of SEPARATOR2 within the paths.
-6. Concatenate the translated paths with SEPARATOR2.
-
-If MUSTEXIST is 'Y' or not supplied, then each path in PATHLIST must
-exist. Otherwise, only some part of each path is required to exist
-(the deepest existing subpath will be translated and the remainder
-concatenated to the translation).
-
-If SEPARATOR is not supplied, PATHLIST will be regarded as a single
-path.
-
-If SEPARATOR2 is not supplied, it will take the same value as
-SEPARATOR.
+2. Replace: '\' with '/', '//' with '/' and ':' with ';'.
+3. Translate absolute paths to Windows-native format.
Options:
--help display this help and exit
@@ -73,98 +55,52 @@ do
esac
done
-{ test $# -ge 1 && test $# -le 4; } ||
-{ echo "${me}: $usage" >&2; exit 1; }
-
-# Arguments
-pathlist="$1"
-mustexist="${2:-Y}"
-separator="$3"
-separator2="${4:-${separator}}"
-
-# Split pathlist into its path components
-if test -n "$separator"
-then
- IFS=${separator} patharray=( $pathlist )
-else
- patharray=( "$pathlist" )
-fi
+[ $# -eq 1 ] || {
+ echo "${me}: $usage" >&2
+ exit 1
+}
w32pathlist=""
-for p in "${patharray[@]}"
+# Put each MSYS path in one positional parameter and iterate through
+# them
+IFS=:
+set -- $1
+
+for p
do
- # Skip empty paths
- test "$p" = "" && continue
+ [ -z "$p" ] && continue
- # Replace '\' with '/' and '//' with '/'
- p="${p//\\//}"
- p="${p//\/\///}"
-
- if test "${p:0:11}" = "%emacs_dir%"
+ if [ "${p:0:1}" != "/" ]
then
- # Paths starting with "%emacs_dir%" will not be translated
w32p=$p
- elif test -d "$p"
+ elif [ -d "$p" ]
then
- # The path exists, so just translate it
- w32p=`cd "$p" && pwd -W`
+ w32p=$(cd "$p" && pwd -W)
else
- # The path does not exist. So, try to guess the
- # Windows-native translation, by looking for the deepest
- # existing directory in this path, and then translating the
- # existing part and concatenating the remainder.
+ # Make some cleanup in the path and look for its deepest
+ # existing directory
- test "${mustexist}" = "Y" &&
- { echo "${me}: invalid path: $p" >&2; exit 1; }
+ p=${p//\\//}
+ p=${p//\/\///}
+ p=${p%/}
p1=$p
- IFS=/ pcomponents=( $p )
-
- for (( i=${#pcomponents[@]}-1 ; i>=0 ; i-- ))
+ while :
do
-
- if test "${pcomponents[i]}" = ""
- then
- # The path component is empty. This can only mean
- # that the path starts with "/" and all components
- # have been stripped out already. So in this case we
- # want to test with the MSYS root directory
- p1="/"
- else
- p1="${p1%/}"
- p1="${p1%${pcomponents[i]}}"
- fi
-
- if test -d "${p1}"
- then
-
- # Existing path found
-
- # Translate the existing part and concatenate the
- # remainder (ensuring that only one slash is used in
- # the join, and no trailing slash is left)
- w32p1=`cd "${p1}" && pwd -W`
- remainder="${p#${p1}}"
- remainder="${remainder#/}"
- remainder="${remainder%/}"
- w32p="${w32p1%/}/${remainder}"
-
- break
- fi
-
+ p1=${p1%/*}
+ [ -z "$p1" ] && p1="/" && break
+ [ -d "$p1" ] && break
done
- # If no existing directory was found, error out
- test -e "${p1}" ||
- { echo "${me}: invalid path: ${p}" >&2; exit 1; }
+ # translate the existing part and append the rest
+ w32p=$(cd "${p1}" && pwd -W)
+ remainder=${p#$p1}
+ w32p+=/${remainder#/}
fi
- # Concatenate the translated path to the translated pathlist
- test "${w32pathlist}" = "" || w32pathlist="${w32pathlist}${separator2}"
- w32pathlist="${w32pathlist}${w32p//${separator2}/\\${separator2}}"
+ w32pathlist="${w32pathlist};${w32p}"
done
-# Write the translated pathlist to the standard output
-printf "%s" "${w32pathlist}"
+echo "${w32pathlist:1}"
diff --git a/config.bat b/config.bat
index cc354478ee9..67ad3715381 100644
--- a/config.bat
+++ b/config.bat
@@ -22,10 +22,10 @@ rem ----------------------------------------------------------------------
rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:
rem
rem + msdos version 3 or better.
-rem + DJGPP version 2.0 or later (version 2.03 or later recommended).
+rem + DJGPP version 2.02 or later (version 2.03 or later recommended).
rem + make utility that allows breaking of the 128 chars limit on
rem command lines. ndmake (as of version 4.5) won't work due to a
-rem line length limit. The make that comes with DJGPP does work (and is
+rem line length limit. The DJGPP port of make works (and is
rem recommended).
rem + rm, mv, and cp (from GNU file utilities).
rem + sed (you can use the port that comes with DJGPP).
@@ -109,7 +109,7 @@ Goto End
:djgppOk
echo int main() >junk.c
echo #ifdef __DJGPP__ >>junk.c
-echo {return (__DJGPP__)*10;} >>junk.c
+echo {return (__DJGPP__)*10 + (__DJGPP_MINOR__);} >>junk.c
echo #else >>junk.c
echo #ifdef __GO32__ >>junk.c
echo {return 10;} >>junk.c
@@ -126,8 +126,8 @@ Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed!
Goto End
:go32Ok
set djgpp_ver=2
-If Not ErrorLevel 20 Echo To build 'Emacs' you need DJGPP v2.0 or later!
-If Not ErrorLevel 20 Goto End
+If Not ErrorLevel 22 Echo To build 'Emacs' you need DJGPP v2.02 or later!
+If Not ErrorLevel 22 Goto End
rm -f junk.c junk junk.exe
rem DJECHO is used by the top-level Makefile in the v2.x build
Echo Checking whether 'djecho' is available...
@@ -135,7 +135,6 @@ redir -o Nul -eo djecho -o junk.$$$ foo
If Exist junk.$$$ Goto djechoOk
Echo To build 'Emacs' you need the 'djecho.exe' program!
Echo 'djecho.exe' is part of 'djdevNNN.zip' basic DJGPP development kit.
-Echo Versions of DJGPP before 2.02 called this program 'echo.exe'.
Echo Either unpack 'djecho.exe' from the 'djdevNNN.zip' archive,
Echo or, if you have 'echo.exe', copy it to 'djecho.exe'.
Echo Then run CONFIG.BAT again with the same arguments you did now.
diff --git a/configure.ac b/configure.ac
index 305db489a04..37de36096a7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@ dnl along with GNU Emacs. If not, see .
AC_PREREQ(2.65)
dnl Note this is parsed by (at least) make-dist and lisp/cedet/ede/emacs.el.
-AC_INIT(GNU Emacs, 24.4.50, bug-gnu-emacs@gnu.org)
+AC_INIT(GNU Emacs, 25.0.50, bug-gnu-emacs@gnu.org)
dnl Set emacs_config_options to the options of 'configure', quoted for the shell,
dnl and then quoted again for a C string. Separate options with spaces.
@@ -130,18 +130,46 @@ If you have it installed under another name, configure with 'MAKE=...'.
For example, run '$0 MAKE=gnu-make'.]])
}
MAKE=$ac_cv_path_MAKE
+export MAKE
dnl Fairly arbitrary, older versions might work too.
AM_INIT_AUTOMAKE(1.11)
dnl Canonicalize the configuration name.
AC_CANONICAL_HOST
-canonical=$host
-configuration=${host_alias-${build_alias-$host}}
-dnl We get MINGW64 with MSYS2.
-case $canonical in
+case $host in
*-mingw*)
+
+ if test -z "$host_alias"; then
+
+ # No --host argument was given to 'configure'; therefore $host
+ # was set to a default value based on the build platform. But
+ # this default value may be wrong if we are building from a
+ # 64-bit MSYS[2] pre-configured to build 32-bit MinGW programs.
+ # Therefore, we'll try to get the right host platform from the
+ # compiler's target.
+
+ AC_MSG_CHECKING([the compiler's target])
+ if test -z "$CC"; then
+ cc=gcc
+ else
+ cc=$CC
+ fi
+ cc_target=`$cc -v 2>&1 | sed -n 's/Target: //p'`
+ case "$cc_target" in
+ *-*) host=$cc_target
+ ;;
+ "") AC_MSG_ERROR([Impossible to obtain $cc compiler target.
+Please explicitly provide --host.])
+ ;;
+ *) AC_MSG_WARN([Compiler reported non-standard target.
+Defaulting to $host.])
+ ;;
+ esac
+ AC_MSG_RESULT([$host])
+ fi
+
. $srcdir/nt/mingw-cfg.site
case $srcdir in
@@ -150,11 +178,15 @@ case $canonical in
# "/c/foo/bar", to simplify later conversions to native Windows
# format ("c:/foo/bar").
srcdir=`cd "${srcdir}" && pwd -W`
- srcdir="/${srcdir:0:1}${srcdir:2}"
+ # 'eval' pacifies strict POSIX non-MinGW shells (Bug#18612).
+ eval 'srcdir="/${srcdir:0:1}${srcdir:2}"'
;;
esac;;
esac
+canonical=$host
+configuration=${host_alias-${build_alias-$host}}
+
dnl Support for --program-prefix, --program-suffix and
dnl --program-transform-name options
AC_ARG_PROGRAM
@@ -253,7 +285,7 @@ AC_ARG_WITH([mailhost],[AS_HELP_STRING([--with-mailhost=HOSTNAME],
AC_ARG_WITH([sound],[AS_HELP_STRING([--with-sound=VALUE],
[compile with sound support (VALUE one of: yes, alsa, oss, bsd-ossaudio, no;
-default yes). Only for GNU/Linux, FreeBSD, NetBSD, MinGW.])],
+default yes). Only for GNU/Linux, FreeBSD, NetBSD, MinGW, Cygwin.])],
[ case "${withval}" in
yes|no|alsa|oss|bsd-ossaudio) val=$withval ;;
*) AC_MSG_ERROR([`--with-sound=$withval' is invalid;
@@ -556,9 +588,8 @@ case "${canonical}" in
## Apple Darwin / Mac OS X
*-apple-darwin* )
case "${canonical}" in
- i[3456]86-* ) ;;
- powerpc-* ) ;;
- x86_64-* ) ;;
+ *-apple-darwin[0-9].*) unported=yes ;;
+ i[3456]86-* | x86_64-* ) ;;
* ) unported=yes ;;
esac
opsys=darwin
@@ -652,7 +683,7 @@ case "${canonical}" in
i[3456]86-*-* )
case "${canonical}" in
*-darwin* ) opsys=darwin ;;
- *-mingw32 )
+ *-mingw* )
opsys=mingw32
# MinGW overrides and adds some system headers in nt/inc.
GCC_TEST_OPTIONS="-I $srcdir/nt/inc"
@@ -667,7 +698,7 @@ case "${canonical}" in
# MinGW64
x86_64-*-* )
case "${canonical}" in
- *-mingw32 )
+ *-mingw* )
opsys=mingw32
# MinGW overrides and adds some system headers in nt/inc.
GCC_TEST_OPTIONS="-I $srcdir/nt/inc"
@@ -705,7 +736,6 @@ If you think it should, please send a report to ${PACKAGE_BUGREPORT}.
Check `etc/MACHINES' for recognized configuration names.])
fi
-
#### Choose a compiler.
dnl Don't bother to test for C89.
@@ -825,6 +855,7 @@ if test "$gl_gcc_warnings" != yes; then
gl_WARN_ADD([-Wno-switch])
gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare])
gl_WARN_ADD([-Wno-pointer-sign])
+ gl_WARN_ADD([-Wno-string-plus-int])
fi
else
isystem='-isystem '
@@ -845,10 +876,8 @@ else
nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings
nw="$nw -Woverlength-strings" # Not a problem these days
- nw="$nw -Wlogical-op" # any use of fwrite provokes this
nw="$nw -Wformat-nonliteral" # we do this a lot
- nw="$nw -Wvla" # warnings in gettext.h
- nw="$nw -Wnested-externs" # use of XARGMATCH/verify_function__
+ nw="$nw -Wvla" # Emacs uses .
nw="$nw -Wswitch-default" # Too many warnings for now
nw="$nw -Winline" # OK to ignore 'inline'
nw="$nw -Wjump-misses-init" # We sometimes safely jump over init.
@@ -865,7 +894,8 @@ else
# Emacs's use of alloca inhibits protecting the stack.
nw="$nw -Wstack-protector"
- # The following line should be removable at some point.
+ # Emacs's use of partly-pure functions such as CHECK_TYPE make this
+ # option problematic.
nw="$nw -Wsuggest-attribute=pure"
# This part is merely for shortening the command line,
@@ -892,10 +922,6 @@ else
gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now
gl_WARN_ADD([-Wno-format-nonliteral])
- # In spite of excluding -Wlogical-op above, it is enabled, as of
- # gcc 4.5.0 20090517.
- gl_WARN_ADD([-Wno-logical-op])
-
# More things that clang is unduly picky about.
if test $emacs_cv_clang = yes; then
gl_WARN_ADD([-Wno-format-extra-args])
@@ -905,14 +931,15 @@ else
fi
AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.])
- AH_VERBATIM([FORTIFY_SOURCE],
+ AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks])
+ AH_VERBATIM([GNULIB_PORTCHECK_FORTIFY_SOURCE],
[/* Enable compile-time and run-time bounds-checking, and some warnings,
without upsetting glibc 2.15+. */
- #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
+ #if (defined GNULIB_PORTCHECK && !defined _FORTIFY_SOURCE \
+ && defined __OPTIMIZE__ && __OPTIMIZE__)
# define _FORTIFY_SOURCE 2
#endif
])
- AC_DEFINE([GNULIB_PORTCHECK], [1], [enable some gnulib portability checks])
# We use a slightly smaller set of warning options for lib/.
# Remove the following and save the result in GNULIB_WARN_CFLAGS.
@@ -986,6 +1013,17 @@ if test "${enableval}" != "no"; then
fi
fi)
+dnl Port to Automake 1.11.
+dnl This section can be removed once we assume Automake 1.14 or later.
+: ${AM_DEFAULT_VERBOSITY=1}
+: ${AM_V=$AM_DEFAULT_VERBOSITY}
+: ${AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY}
+AC_SUBST([AM_V])
+AM_SUBST_NOTMAKE([AM_V])
+AC_SUBST([AM_DEFAULT_V])
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])
+AC_SUBST([AM_DEFAULT_VERBOSITY])
+
dnl Some other nice autoconf tests.
dnl These are commented out, since gl_EARLY and/or Autoconf already does them.
dnl AC_PROG_INSTALL
@@ -1093,15 +1131,16 @@ if test $opsys = gnu-linux; then
fi
## Need makeinfo >= 4.7 (?) to build the manuals.
-AC_PATH_PROG(MAKEINFO, makeinfo, no)
-dnl By this stage, configure has already checked for egrep and set EGREP,
-dnl or exited with an error if no egrep was found.
if test "$MAKEINFO" != "no"; then
- case `
- $MAKEINFO --version 2> /dev/null |
- $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[7-9]]|4\.[[1-6]][[0-9]]+)'
- ` in
- '') MAKEINFO=no;;
+ if test "$MAKEINFO" = "${am_missing_run}makeinfo"; then
+ MAKEINFO=makeinfo
+ fi
+ case `($MAKEINFO --version) 2>/dev/null` in
+ *' (GNU texinfo) '4.[[7-9]]* | \
+ *' (GNU texinfo) '4.[[1-9][0-9]]* | \
+ *' (GNU texinfo) '[[5-9]]* | \
+ *' (GNU texinfo) '[[1-9][0-9]]* ) ;;
+ *) MAKEINFO=no;;
esac
fi
@@ -1325,7 +1364,7 @@ test "$opsys" = "aix4.2" && test "x$GCC" != "xyes" && \
C_SWITCH_SYSTEM="-ma -qmaxmem=4000"
if test "$opsys" = "mingw32"; then
case "$canonical" in
- x86_64-*-mingw32) C_SWITCH_SYSTEM="-mtune=generic" ;;
+ x86_64-*-mingw*) C_SWITCH_SYSTEM="-mtune=generic" ;;
*) C_SWITCH_SYSTEM="-mtune=pentium4" ;;
esac
fi
@@ -1436,8 +1475,8 @@ AC_DEFUN([EMACS_CHECK_MODULES],
HAVE_SOUND=no
if test "${with_sound}" != "no"; then
- # Sound support for GNU/Linux, the free BSDs, and MinGW.
- AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h soundcard.h],
+ # Sound support for GNU/Linux, the free BSDs, MinGW, and Cygwin.
+ AC_CHECK_HEADERS([machine/soundcard.h sys/soundcard.h soundcard.h mmsystem.h],
have_sound_header=yes, [], [
#ifdef __MINGW32__
#define WIN32_LEAN_AND_MEAN
@@ -1499,7 +1538,7 @@ if test "${with_sound}" != "no"; then
case "$opsys" in
dnl defined __FreeBSD__ || defined __NetBSD__ || defined __linux__
dnl Adjust the --with-sound help text if you change this.
- gnu-linux|freebsd|netbsd|mingw32)
+ gnu-linux|freebsd|netbsd|mingw32|cygwin)
AC_DEFINE(HAVE_SOUND, 1, [Define to 1 if you have sound support.])
HAVE_SOUND=yes
;;
@@ -1528,10 +1567,15 @@ if test $emacs_cv_personality_linux32 = yes; then
[Define to 1 if personality LINUX32 can be set.])
fi
+# Note that Solaris has sys/sysinfo.h which defines struct
+# sysinfo as well. To make sure that we're using GNU/Linux
+# sysinfo, we explicitly set one of its fields.
if test "$ac_cv_header_sys_sysinfo_h" = yes; then
AC_MSG_CHECKING([if Linux sysinfo may be used])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]],
- [[struct sysinfo si; sysinfo (&si)]])],
+ [[struct sysinfo si;
+ si.totalram = 0;
+ sysinfo (&si)]])],
emacs_cv_linux_sysinfo=yes, emacs_cv_linux_sysinfo=no)
AC_MSG_RESULT($emacs_cv_linux_sysinfo)
if test $emacs_cv_linux_sysinfo = yes; then
@@ -1704,12 +1748,14 @@ if test "${with_ns}" != no; then
ns_appbindir=${ns_appdir}/Contents/MacOS
ns_appresdir=${ns_appdir}/Contents/Resources
ns_appsrc=Cocoa/Emacs.base
+ ns_fontfile=macfont.o
elif test -f $GNUSTEP_CONFIG_FILE; then
NS_IMPL_GNUSTEP=yes
ns_appdir=`pwd`/nextstep/Emacs.app
ns_appbindir=${ns_appdir}
ns_appresdir=${ns_appdir}/Resources
ns_appsrc=GNUstep/Emacs.base
+ ns_fontfile=nsfont.o
dnl FIXME sourcing this several times in subshells seems inefficient.
GNUSTEP_SYSTEM_HEADERS="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_HEADERS)"
GNUSTEP_SYSTEM_LIBRARIES="$(. $GNUSTEP_CONFIG_FILE; echo $GNUSTEP_SYSTEM_LIBRARIES)"
@@ -1752,48 +1798,24 @@ fail;
macfont_file=""
if test "${NS_IMPL_COCOA}" = "yes"; then
- AC_MSG_CHECKING([for OSX 10.4 or newer])
+ AC_MSG_CHECKING([for OSX 10.6 or newer])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ],
[
#ifdef MAC_OS_X_VERSION_MAX_ALLOWED
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1060
; /* OK */
#else
- error "OSX 10.4 or newer required";
+ error "OSX 10.6 or newer required";
#endif
#endif
])],
- ns_osx_have_104=yes,
- ns_osx_have_104=no)
- AC_MSG_RESULT([$ns_osx_have_104])
+ ns_osx_have_106=yes,
+ ns_osx_have_106=no)
+ AC_MSG_RESULT([$ns_osx_have_106])
- if test $ns_osx_have_104 = no; then
- AC_MSG_ERROR([`OSX 10.4 or newer is required']);
+ if test $ns_osx_have_106 = no; then
+ AC_MSG_ERROR([`OSX 10.6 or newer is required']);
fi
- AC_MSG_CHECKING([for OSX 10.5 or newer])
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ],
- [
-#ifdef MAC_OS_X_VERSION_MAX_ALLOWED
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050
- ; /* OK */
-#else
- error "OSX 10.5 not found";
-#endif
-#endif
- ])],
- ns_osx_have_105=yes,
- ns_osx_have_105=no)
- AC_MSG_RESULT([$ns_osx_have_105])
- if test $ns_osx_have_105 = yes; then
- macfont_file="macfont.o"
- fi
- fi
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ],
- [NSInteger i;])],
- ns_have_nsinteger=yes,
- ns_have_nsinteger=no)
- if test $ns_have_nsinteger = yes; then
- AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
fi
fi
@@ -1827,7 +1849,7 @@ if test "${HAVE_NS}" = yes; then
INSTALL_ARCH_INDEP_EXTRA=
fi
- NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o $macfont_file"
+ NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o $ns_fontfile"
fi
CFLAGS="$tmp_CFLAGS"
CPPFLAGS="$tmp_CPPFLAGS"
@@ -1895,6 +1917,13 @@ if test "${HAVE_W32}" = "yes"; then
x86_64-*-*) EMACS_MANIFEST="emacs-x64.manifest" ;;
*) EMACS_MANIFEST="emacs-x86.manifest" ;;
esac
+ dnl Construct something of the form "24,4,0,0" with 4 components.
+ comma_version=`echo "${PACKAGE_VERSION}.0.0" | sed -e 's/\./,/g' -e 's/^\([[^,]]*,[[^,]]*,[[^,]]*,[[^,]]*\).*/\1/'`
+
+ comma_space_version=`echo "$comma_version" | sed 's/,/, /g'`
+ AC_SUBST(comma_version)
+ AC_SUBST(comma_space_version)
+ AC_CONFIG_FILES([nt/emacs.rc nt/emacsclient.rc])
if test "${opsys}" = "cygwin"; then
W32_LIBS="$W32_LIBS -lkernel32 -luser32 -lgdi32 -lole32 -lcomdlg32"
W32_LIBS="$W32_LIBS -lusp10 -lcomctl32 -lwinspool"
@@ -2030,9 +2059,13 @@ AC_CACHE_CHECK(
doug_lea_malloc=$emacs_cv_var_doug_lea_malloc
system_malloc=$emacs_cv_sanitize_address
+
+hybrid_malloc=
+
case "$opsys" in
## darwin ld insists on the use of malloc routines in the System framework.
darwin|mingw32|sol2-10) system_malloc=yes ;;
+ cygwin) hybrid_malloc=yes;;
esac
GMALLOC_OBJ=
@@ -2044,6 +2077,13 @@ if test "${system_malloc}" = "yes"; then
GNU_MALLOC_reason="
(The GNU allocators don't work with this system configuration.)"
VMLIMIT_OBJ=
+elif test "$hybrid_malloc" = yes; then
+ AC_DEFINE(HYBRID_MALLOC, 1,
+ [Define to use gmalloc before dumping and the system malloc after.])
+ GNU_MALLOC=
+ GNU_MALLOC_reason="only before dumping"
+ GMALLOC_OBJ=gmalloc.o
+ VMLIMIT_OBJ=
else
test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
VMLIMIT_OBJ=vm-limit.o
@@ -2597,19 +2637,13 @@ fi
AC_SUBST(LIBSELINUX_LIBS)
HAVE_GNUTLS=no
-HAVE_GNUTLS3=no
if test "${with_gnutls}" = "yes" ; then
- EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.0.0],
- [HAVE_GNUTLS3=yes], [HAVE_GNUTLS3=no])
- if test "${HAVE_GNUTLS3}" = "yes"; then
- AC_DEFINE(HAVE_GNUTLS3, 1, [Define if using GnuTLS v3.])
- HAVE_GNUTLS="yes"
- else
- EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6],
- [HAVE_GNUTLS=yes], [HAVE_GNUTLS=no])
- fi
+ EMACS_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.6.6],
+ [HAVE_GNUTLS=yes], [HAVE_GNUTLS=no])
if test "${HAVE_GNUTLS}" = "yes"; then
AC_DEFINE(HAVE_GNUTLS, 1, [Define if using GnuTLS.])
+ EMACS_CHECK_MODULES([LIBGNUTLS3], [gnutls >= 3.0.0],
+ [AC_DEFINE(HAVE_GNUTLS3, 1, [Define if using GnuTLS v3.])], [])
fi
# Windows loads GnuTLS dynamically
@@ -3029,6 +3063,9 @@ AC_SUBST(M17N_FLT_LIBS)
### Use -lXpm if available, unless `--with-xpm=no'.
### mingw32 doesn't use -lXpm, since it loads the library dynamically.
+### In the Cygwin-w32 build, we need to use /usr/include/noX/X11/xpm.h
+### rather than /usr/include/X11/xpm.h, so we set CPPFLAGS (and
+### LDFLAGS) accordingly.
HAVE_XPM=no
LIBXPM=
if test "${HAVE_W32}" = "yes" && test "${opsys}" = "cygwin"; then
@@ -3387,8 +3424,12 @@ if test "${HAVE_X11}" = "yes"; then
EMACS_CHECK_MODULES([XRANDR], [$XRANDR_MODULES])
if test $HAVE_XRANDR = no; then
# Test old way in case pkg-config doesn't have it (older machines).
+ # Include Xrender.h by hand to work around bug in older Xrandr.h
+ # (e.g. RHEL5) and silence (harmless) configure warning (bug#18465).
AC_CHECK_HEADER(X11/extensions/Xrandr.h,
- [AC_CHECK_LIB(Xrandr, XRRGetScreenResources, HAVE_XRANDR=yes)])
+ [AC_CHECK_LIB(Xrandr, XRRGetScreenResources, HAVE_XRANDR=yes)],
+ [], [AC_INCLUDES_DEFAULT
+#include ])
if test $HAVE_XRANDR = yes; then
XRANDR_LIBS=-lXrandr
fi
@@ -3585,10 +3626,10 @@ AC_SUBST(BLESSMAIL_TARGET)
OLD_LIBS=$LIBS
LIBS="$LIB_PTHREAD $LIB_MATH $LIBS"
-AC_CHECK_FUNCS(accept4 gethostname \
+AC_CHECK_FUNCS(accept4 fchdir gethostname \
getrusage get_current_dir_name \
lrand48 random rint \
-select getpagesize setlocale \
+select getpagesize setlocale newlocale \
getrlimit setrlimit shutdown getaddrinfo \
pthread_sigmask strsignal setitimer \
sendto recvfrom getsockname getpeername getifaddrs freeifaddrs \
@@ -3598,9 +3639,11 @@ cfmakeraw cfsetspeed copysign __executable_start log2)
LIBS=$OLD_LIBS
dnl No need to check for aligned_alloc and posix_memalign if using
-dnl gmalloc.o, as it supplies them. Don't use these functions on
-dnl Darwin as they are incompatible with unexmacosx.c.
-if test -z "$GMALLOC_OBJ" && test "$opsys" != darwin; then
+dnl gmalloc.o, as it supplies them, unless we're using hybrid_malloc.
+dnl Don't use these functions on Darwin as they are incompatible with
+dnl unexmacosx.c.
+if (test -z "$GMALLOC_OBJ" || test "$hybrid_malloc" = yes) \
+ && test "$opsys" != darwin; then
AC_CHECK_FUNCS([aligned_alloc posix_memalign], [break])
fi
@@ -3752,9 +3795,10 @@ AC_SUBST(TERMCAP_OBJ)
AC_CACHE_CHECK([for timerfd interface], [emacs_cv_have_timerfd],
[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[#include
- ]],
- [[timerfd_create (CLOCK_REALTIME, TFD_CLOEXEC);
- timerfd_settime (0, TFD_TIMER_ABSTIME, 0, 0);]])],
+ ]],
+ [[timerfd_create (CLOCK_REALTIME,
+ TFD_CLOEXEC | TFD_NONBLOCK);
+ timerfd_settime (0, TFD_TIMER_ABSTIME, 0, 0);]])],
[emacs_cv_have_timerfd=yes],
[emacs_cv_have_timerfd=no])])
if test "$emacs_cv_have_timerfd" = yes; then
@@ -3762,6 +3806,22 @@ if test "$emacs_cv_have_timerfd" = yes; then
[Define to 1 if timerfd functions are supported as in GNU/Linux.])
fi
+# Alternate stack for signal handlers.
+AC_CACHE_CHECK([whether signals can be handled on alternate stack],
+ [emacs_cv_alternate_stack],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include
+ ]],
+ [[stack_t ss;
+ struct sigaction sa;
+ ss.ss_sp = malloc (SIGSTKSZ);
+ ss.ss_size = SIGSTKSZ;
+ sa.sa_flags = SA_SIGINFO | SA_ONSTACK;
+ sigaltstack (&ss, 0);
+ sigaction (SIGSEGV, &sa, 0);]])],
+ [emacs_cv_alternate_stack=yes],
+ [emacs_cv_alternate_stack=no])])
+
# Do we have res_init, for detecting changes in /etc/resolv.conf?
# On Darwin, res_init appears not to be useful: see bug#562 and
# http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01467.html
@@ -3901,43 +3961,7 @@ AC_SUBST(KRB4LIB)
AC_CHECK_HEADERS(valgrind/valgrind.h)
-AC_CHECK_FUNCS_ONCE(tzset)
-AC_MSG_CHECKING(whether localtime caches TZ)
-AC_CACHE_VAL(emacs_cv_localtime_cache,
-[if test x$ac_cv_func_tzset = xyes; then
-AC_RUN_IFELSE([AC_LANG_SOURCE([[#include
-char TZ_GMT0[] = "TZ=GMT0";
-char TZ_PST8[] = "TZ=PST8";
-main()
-{
- time_t now = time ((time_t *) 0);
- int hour_GMT0, hour_unset;
- if (putenv (TZ_GMT0) != 0)
- exit (1);
- hour_GMT0 = localtime (&now)->tm_hour;
- unsetenv("TZ");
- hour_unset = localtime (&now)->tm_hour;
- if (putenv (TZ_PST8) != 0)
- exit (1);
- if (localtime (&now)->tm_hour == hour_GMT0)
- exit (1);
- unsetenv("TZ");
- if (localtime (&now)->tm_hour != hour_unset)
- exit (1);
- exit (0);
-}]])], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
-[# If we have tzset, assume the worst when cross-compiling.
-emacs_cv_localtime_cache=yes])
-else
- # If we lack tzset, report that localtime does not cache TZ,
- # since we can't invalidate the cache if we don't have tzset.
- emacs_cv_localtime_cache=no
-fi])dnl
-AC_MSG_RESULT($emacs_cv_localtime_cache)
-if test $emacs_cv_localtime_cache = yes; then
- AC_DEFINE(LOCALTIME_CACHE, 1,
- [Define to 1 if localtime caches TZ.])
-fi
+AC_CHECK_FUNCS_ONCE(tzalloc tzset)
ok_so_far=yes
AC_CHECK_FUNC(socket, , ok_so_far=no)
@@ -4004,15 +4028,6 @@ fi
AC_TYPE_MBSTATE_T
-AC_CACHE_CHECK([for C restricted array declarations], emacs_cv_c_restrict_arr,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[void fred (int x[__restrict]);]], [[]])],
- emacs_cv_c_restrict_arr=yes, emacs_cv_c_restrict_arr=no)])
-if test "$emacs_cv_c_restrict_arr" = yes; then
- AC_DEFINE(__restrict_arr, __restrict,
- [Define to compiler's equivalent of C99 restrict keyword in array
- declarations. Define as empty for no equivalent.])
-fi
-
dnl Fixme: AC_SYS_POSIX_TERMIOS should probably be used, but it's not clear
dnl how the tty code is related to POSIX and/or other versions of termios.
dnl The following looks like a useful start.
@@ -4481,22 +4496,31 @@ AC_CACHE_CHECK([for _setjmp], [emacs_cv_func__setjmp],
[emacs_cv_func__setjmp=no])])
if test $emacs_cv_func__setjmp = yes; then
AC_DEFINE([HAVE__SETJMP], 1, [Define to 1 if _setjmp and _longjmp work.])
-else
- AC_CACHE_CHECK([for sigsetjmp], [emacs_cv_func_sigsetjmp],
- [AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include
- ]],
- [[sigjmp_buf j;
- if (! sigsetjmp (j, 1))
- siglongjmp (j, 1);]])],
- [emacs_cv_func_sigsetjmp=yes],
- [emacs_cv_func_sigsetjmp=no])])
- if test $emacs_cv_func_sigsetjmp = yes; then
- AC_DEFINE([HAVE_SIGSETJMP], 1,
- [Define to 1 if sigsetjmp and siglongjmp work.
- The value of this symbol is irrelevant if HAVE__SETJMP is defined.])
- fi
+fi
+
+# We need to preserve signal mask to handle C stack overflows.
+AC_CACHE_CHECK([for sigsetjmp], [emacs_cv_func_sigsetjmp],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include
+ ]],
+ [[sigjmp_buf j;
+ if (! sigsetjmp (j, 1))
+ siglongjmp (j, 1);]])],
+ [emacs_cv_func_sigsetjmp=yes],
+ [emacs_cv_func_sigsetjmp=no])])
+if test $emacs_cv_func_sigsetjmp = yes; then
+ AC_DEFINE([HAVE_SIGSETJMP], 1,
+ [Define to 1 if sigsetjmp and siglongjmp work.])
+fi
+
+# We need all of these features to handle C stack overflows.
+if test "$ac_cv_header_sys_resource_h" = "yes" -a \
+ "$ac_cv_func_getrlimit" = "yes" -a \
+ "$emacs_cv_func_sigsetjmp" = "yes" -a \
+ "$emacs_cv_alternate_stack" = yes; then
+ AC_DEFINE([HAVE_STACK_OVERFLOW_HANDLING], 1,
+ [Define to 1 if C stack overflow can be handled in some cases.])
fi
case $opsys in
@@ -4627,20 +4651,7 @@ if test $emacs_cv_usable_FIONREAD = yes; then
fi
fi
-
case $opsys in
- dnl Emacs supplies its own malloc, but glib calls posix_memalign,
- dnl and on Cygwin prior to version 1.7.24 that becomes the
- dnl Cygwin-supplied posix_memalign. As malloc is not the Cygwin
- dnl malloc, the Cygwin posix_memalign always returns ENOSYS. A
- dnl workaround is to set G_SLICE=always-malloc. This is no longer
- dnl needed starting with cygwin-1.7.24, and it is no longer
- dnl effective starting with glib-2.36. */
- cygwin)
- AC_DEFINE(G_SLICE_ALWAYS_MALLOC, 1, [Define to set the
- G_SLICE environment variable to "always-malloc" at startup.])
- ;;
-
hpux11)
dnl It works to open the pty's tty in the parent (Emacs), then
dnl close and reopen it in the child.
@@ -4827,6 +4838,22 @@ else
fi
AC_SUBST(LIBXMENU)
+AC_CACHE_CHECK([for struct alignment],
+ [emacs_cv_struct_alignment],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include
+ struct __attribute__ ((aligned (8))) s { char c; };
+ struct t { char c; struct s s; };
+ char verify[offsetof (struct t, s) == 8 ? 1 : -1];
+ ]])],
+ [emacs_cv_struct_alignment=yes],
+ [emacs_cv_struct_alignment=no])])
+if test "$emacs_cv_struct_alignment" = yes; then
+ AC_DEFINE([HAVE_STRUCT_ATTRIBUTE_ALIGNED], 1,
+ [Define to 1 if 'struct __attribute__ ((aligned (N)))' aligns the
+ structure to an N-byte boundary.])
+fi
+
if test "${GNU_MALLOC}" = "yes" ; then
AC_DEFINE(GNU_MALLOC, 1,
[Define to 1 if you want to use the GNU memory allocator.])
@@ -4911,20 +4938,24 @@ fi
case "$opsys" in
aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;;
+ cygwin) LD_SWITCH_SYSTEM_TEMACS="-Wl,-stack,0x00800000" ;;
+
darwin)
## The -headerpad option tells ld (see man page) to leave room at the
## end of the header for adding load commands. Needed for dumping.
- ## 0x690 is the total size of 30 segment load commands (at 56
- ## each); under Cocoa 31 commands are required.
+ ## 0x1000 is enough for roughly 52 load commands on the x86_64
+ ## architecture (where they are 78 bytes each). The actual number of
+ ## load commands added is not consistent but normally ranges from
+ ## about 14 to about 34. Setting it high gets us plenty of slop and
+ ## only costs about 1.5K of wasted binary space.
+ headerpad_extra=1000
if test "$HAVE_NS" = "yes"; then
libs_nsgui="-framework AppKit"
if test "$NS_IMPL_COCOA" = "yes"; then
libs_nsgui="$libs_nsgui -framework IOKit"
fi
- headerpad_extra=6C8
else
libs_nsgui=
- headerpad_extra=690
fi
LD_SWITCH_SYSTEM_TEMACS="-fno-pie -prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra"
@@ -5154,6 +5185,9 @@ if test "$HAVE_NS" = "yes"; then
AC_SUBST(ns_check_file)
fi
+dnl config.status treats $srcdir specially, so I think this is ok...
+AC_CONFIG_FILES([$srcdir/doc/man/emacs.1])
+
dnl Obviously there is duplication here wrt $SUBDIR_MAKEFILES.
dnl You _can_ use that variable in AC_CONFIG_FILES, so long as any directory
dnl using automake (ie lib/) is explicitly listed and not "hidden" in a variable
@@ -5217,6 +5251,25 @@ if test ! -f src/.gdbinit && test -f "$srcdir/src/.gdbinit"; then
fi
])
+dnl Perhaps this would be better named doc-emacs-emacsver.texi?
+dnl See comments for etc-refcards-emacsver.tex.
+dnl Since we get a doc/emacs directory generated anyway, for the Makefile,
+dnl it is not quite the same. But we are generating in $srcdir.
+AC_CONFIG_COMMANDS([doc/emacs/emacsver.texi], [
+${MAKE-make} -s --no-print-directory -C doc/emacs doc-emacsver || \
+AC_MSG_ERROR(['doc/emacs/emacsver.texi' could not be made.])
+])
+
+dnl If we give this the more natural name, etc/refcards/emacsver.texi,
+dnl then a directory etc/refcards is created in the build directory,
+dnl which is probably harmless, but confusing (in out-of-tree builds).
+dnl (If we were to generate etc/refcards/Makefile, this might change.)
+dnl It is really $srcdir/etc/refcards/emacsver.tex that we generate.
+AC_CONFIG_COMMANDS([etc-refcards-emacsver.tex], [
+${MAKE-make} -s MAKEFILE_NAME=do-not-make-Makefile etc-emacsver || \
+AC_MSG_ERROR(['etc/refcards/emacsver.tex' could not be made.])
+])
+
AC_OUTPUT
test "$MAKE" = make || AC_MSG_NOTICE([Now you can run '$MAKE'.])
diff --git a/doc/emacs/.gitignore b/doc/emacs/.gitignore
deleted file mode 100644
index 3ff56b474dd..00000000000
--- a/doc/emacs/.gitignore
+++ /dev/null
@@ -1,23 +0,0 @@
-*.aux
-*.cp
-*.cps
-*.dvi
-*.fn
-*.fns
-*.ky
-*.kys
-*.log
-*.op
-*.ops
-*.pdf
-*.pg
-*.pgs
-*.ps
-*.tmp
-*.toc
-*.tp
-*.tps
-*.vr
-*.vrs
-Makefile
-makefile
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index a1d2688470d..d2f7a345566 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,186 @@
+2014-12-14 Alan Mackenzie
+
+ * display.texi (Scrolling): fast-but-imprecise-scrolling.
+ Describe new variable.
+
+2014-12-14 Cameron Desautels
+
+ * custom.texi (Saving Customizations): Mention
+ `custom-prompt-customize-unsaved-options'.
+
+2014-12-08 Lars Magne Ingebrigtsen
+
+ * misc.texi (Network Security): Mention the new protocol-level
+ `high' NSM checks.
+
+2014-12-08 Eric S. Raymond
+
+ * maintaining.texi: Suopport fo Arch has been moved to obosolete,
+ remove references that imply otherwise.
+
+2014-11-29 Paul Eggert
+
+ Lessen focus on ChangeLog files, as opposed to change log entries.
+ * maintaining.texi (Change Log): Mention that ChangeLog files may
+ be copied to or from a version control system.
+ * trouble.texi (Sending Patches): Point to the commit messages.
+
+2014-11-29 Eli Zaretskii
+
+ * maintaining.texi (Switching Branches): Mention "C-x v r".
+ Correct commands for switching branches in various VCSs.
+
+2014-11-27 Tassilo Horn
+
+ * misc.texi (DocView Slicing): Describe how to slice with the
+ mouse. Fix command mentioned by slice by BoundingBox paragraph.
+ (Bug#18040)
+
+2014-11-25 Lars Magne Ingebrigtsen
+
+ * misc.texi (Network Security): Use "untrustworthy" instead of
+ "unsafe".
+
+2014-11-24 Eli Zaretskii
+
+ * misc.texi (Network Security): Improve wording and indexing of
+ last change.
+
+2014-11-24 Lars Magne Ingebrigtsen
+
+ * misc.texi (Gnus Summary Buffer): Move the Network Security
+ Manager stuff here from the lispref manual.
+
+2014-11-21 Eli Zaretskii
+
+ * maintaining.texi (Version Control Systems): Move "@end itemize"
+ past the last @item.
+
+2014-11-21 H. Dieter Wilhelm
+
+ * maintaining.texi (Version Control Systems): Fix a typo.
+
+2014-11-20 Eric S. Raymond
+
+ * maintaining.texi: Document SRC support.
+
+2014-11-10 Glenn Morris
+
+ * Makefile.in (top_srcdir, version): New, set by configure.
+ (doc-emacsver): New rule.
+ (bootstrap-clean, maintainer-clean): Delete emacsver.texi.
+ (emacsver.texi.in): Rename from emacsver.texi.
+
+2014-11-09 Juri Linkov
+
+ * search.texi (Other Repeating Search): Add documentation for
+ multi-isearch-files and multi-isearch-files-regexp. (Bug#13592)
+
+2014-11-09 Glenn Morris
+
+ * Makefile.in (version): Remove variable.
+ (clean): No longer delete dist tarfile.
+ (dist): Remove rule; replace with code in admin.el.
+
+2014-11-03 Glenn Morris
+
+ * programs.texi (Misc for Programs): Fix typo.
+
+2014-10-30 Eli Zaretskii
+
+ * frames.texi (Scroll Bars): Improve indexing of faces.
+
+ * killing.texi (Secondary Selection): Improve indexing of faces.
+
+ * search.texi (Basic Isearch, Query Replace): Improve indexing of faces.
+
+ * display.texi (Standard Faces, Text Display)
+ (Useless Whitespace): Improve indexing of faces.
+
+ * frames.texi (Frame Commands): Document and index
+ 'frame-resize-pixelwise'.
+
+ * windows.texi (Split Window): Document and index
+ 'window-resize-pixelwise'.
+
+2014-10-22 Tassilo Horn
+
+ * misc.texi (Document View): Adapt to latest doc-view changes wrt
+ viewing the document's plain text contents.
+
+2014-10-20 Glenn Morris
+
+ * Merge in all changes up to 24.4 release.
+
+2014-10-13 Glenn Morris
+
+ * Makefile.in (dist): Update for new output variables.
+
+2014-10-12 Paul Eggert
+
+ * macos.texi (Mac OS / GNUstep, Mac / GNUstep Basics)
+ (Mac / GNUstep Customization): Mac OS X 10.6 or later now required.
+
+2014-10-09 Glenn Morris
+
+ * package.texi (Package Menu): The package list was changed to not
+ say "unsigned" any more.
+
+2014-10-05 Glenn Morris
+
+ * misc.texi (Sorting):
+ * search.texi (Query Replace): Markup fixes.
+
+2014-10-04 Martin Rudalics
+
+ * frames.texi (Scroll Bars): Describe use of horizontal scroll bars.
+
+2014-10-04 Glenn Morris
+
+ * cmdargs.texi (Misc X):
+ * display.texi (Optional Mode Line):
+ * misc.texi (emacsclient Options):
+ * vc1-xtra.texi (VC Delete/Rename): Small fixes re @var usage.
+
+ * killing.texi (Rectangles): Copyedits re rectangle-mark-mode.
+ (CUA Bindings): Mention rectangle-mark-mode.
+
+2014-10-03 Martin Rudalics
+
+ * frames.texi (Frame Commands):
+ * cmdargs.texi (Window Size X): Mention the use of
+ `frame-resize-pixelwise' to make frames truly fullscreen or maximized.
+
+2014-10-02 Glenn Morris
+
+ * package.texi (Package Installation): Mention etc/package-keyring.gpg.
+
+2014-09-29 Eli Zaretskii
+
+ * emacsver.texi (EMACSVER): Bump to 20.0.50.
+
+2014-09-15 Daniel Colascione
+
+ * regs.texi (Text Registers): Update end-user documentation
+ to reflect `insert-register' interface change.
+
+2014-08-07 Reuben Thomas
+
+ * programs.texi (Program Modes): Don't advertise VMS DCL support
+ any more.
+
+2014-08-07 Reuben Thomas
+
+ Refer to MS-DOS using the same name everywhere.
+
+ * Makefile.in (EMACSSOURCES): ``MS-DOG'', ``MSDOG'' and ``msdog''
+ become ``MS-DOS''; ``msdog'' in filenames becomes ``msdos''.
+ * emacs-xtra.texi: ditto.
+ * emacs.texi: ditto.
+ * makefile.w32-in: ditto.
+ * msdog-xtra.texi: ditto, and rename file.
+ * msdog.texi: ditto, and rename file.
+
2014-07-21 Glenn Morris
* emacs.texi (Intro): Workaround makeinfo 4 @acronym bug. (Bug#18040)
@@ -234,8 +417,8 @@
2014-03-13 Paul Eggert
- * mule.texi (International, Language Environments): Update
- the list of language environments to what Emacs currently
+ * mule.texi (International, Language Environments):
+ Update the list of language environments to what Emacs currently
supports. Add the full list to the index. Suggest C-h L for
details rather than trying to give very brief details here.
@@ -527,8 +710,8 @@
* indent.texi (Tab Stops): Mention recent changes about `tab-stop-list'.
- * frames.texi (Scroll Bars): Document
- `scroll-bar-adjust-thumb-portion'.
+ * frames.texi (Scroll Bars):
+ Document `scroll-bar-adjust-thumb-portion'.
2013-12-21 Chong Yidong
@@ -554,8 +737,8 @@
* entering.texi: Document `initial-buffer-choice' changes.
- * misc.texi (emacsclient Options): Document
- `initial-buffer-choice' changes.
+ * misc.texi (emacsclient Options):
+ Document `initial-buffer-choice' changes.
* help.texi: Document that `?' now also shows subcommands of
prefix keys.
@@ -1038,8 +1221,8 @@
* misc.texi (Terminal emulator): Document Term mode faces.
- * mini.texi (Basic Minibuffer): New node. Document
- minibuffer-electric-default-mode.
+ * mini.texi (Basic Minibuffer): New node.
+ Document minibuffer-electric-default-mode.
* display.texi (Visual Line Mode): Fix index entry.
@@ -3099,7 +3282,7 @@
* Makefile.in (MAKEINFO): Now controlled by `configure'.
(MAKEINFO_OPTS): New variable. Use it where appropriate.
- (ENVADD): Updated.
+ (ENVADD): Update.
2011-01-18 Glenn Morris
@@ -8994,7 +9177,7 @@
* text.texi (Format Faces): Replace old M-g key prefix with M-o.
- * emacs.texi (Acknowledgments): Updated.
+ * emacs.texi (Acknowledgments): Update.
* anti.texi: Total rewrite.
@@ -10101,7 +10284,7 @@
* frames.texi (Dialog Boxes): Add use-file-dialog.
-2003-11-22 Martin Stjernholm
+2003-11-22 Martin Stjernholm
* ack.texi: Note that Alan Mackenzie contributed the AWK support
in CC Mode.
diff --git a/doc/emacs/Makefile.in b/doc/emacs/Makefile.in
index 98ff81791ac..5e53c07451b 100644
--- a/doc/emacs/Makefile.in
+++ b/doc/emacs/Makefile.in
@@ -26,8 +26,9 @@ SHELL = @SHELL@
# of the source tree. This is set by configure's `--srcdir' option.
srcdir=@srcdir@
-# Only for make dist.
-version=@version@
+top_srcdir = @top_srcdir@
+
+version = @version@
## Where the output files go.
## Note that the setfilename command in the .texi files assumes this.
@@ -91,7 +92,7 @@ EMACS_XTRA= \
$(srcdir)/vc-xtra.texi \
$(srcdir)/vc1-xtra.texi \
$(srcdir)/fortran-xtra.texi \
- $(srcdir)/msdog-xtra.texi
+ $(srcdir)/msdos-xtra.texi
EMACSSOURCES= \
${srcdir}/emacs.texi \
@@ -135,7 +136,7 @@ EMACSSOURCES= \
${srcdir}/xresources.texi \
${srcdir}/anti.texi \
${srcdir}/macos.texi \
- ${srcdir}/msdog.texi \
+ ${srcdir}/msdos.texi \
${srcdir}/gnu.texi \
${srcdir}/glossary.texi \
${srcdir}/ack.texi \
@@ -181,6 +182,18 @@ emacs-xtra.pdf: $(EMACS_XTRA)
%.ps: %.dvi
$(DVIPS) -o $@ $<
+.PHONY: doc-emacsver
+
+# If configure were to just generate emacsver.texi from emacsver.texi.in
+# in the normal way, the timestamp of emacsver.texi would always be
+# newer than that of the info files, which are prebuilt in release tarfiles.
+# So we use this rule, and move-if-change, to avoid that.
+doc-emacsver:
+ sed 's/[@]version@/${version}/' \
+ ${srcdir}/emacsver.texi.in > emacsver.texi.$$$$ && \
+ ${top_srcdir}/build-aux/move-if-change emacsver.texi.$$$$ \
+ ${srcdir}/emacsver.texi
+
.PHONY: mostlyclean clean distclean bootstrap-clean maintainer-clean infoclean
## Temp files.
@@ -191,7 +204,6 @@ mostlyclean:
## Products not in the release tarfiles.
clean: mostlyclean
rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS)
- rm -f emacs-manual-${version}.tar*
distclean: clean
rm -f Makefile
@@ -204,28 +216,7 @@ infoclean:
$(buildinfodir)/emacs.info-[1-9][0-9]
bootstrap-clean maintainer-clean: distclean infoclean
-
-.PHONY: dist
-
-## Make a standalone tarfile of the Emacs manual sources.
-## The [c] is a dumb way to prevent configure expanding it.
-dist:
- rm -rf emacs-manual-${version}
- mkdir emacs-manual-${version}
- cp ${srcdir}/*.texi ${texinfodir}/texinfo.tex \
- ${srcdir}/ChangeLog* emacs-manual-${version}/
- sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \
- -e 's/^\(buildinfodir *=\).*/\1 ./' \
- -e 's/^\(clean:.*\)/\1 infoclean/' \
- -e "s/@ver[s]ion@/${version}/" \
- -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \
- ${srcdir}/Makefile.in > emacs-manual-${version}/Makefile
- @if grep '@[a-zA-Z_]*@' emacs-manual-${version}/Makefile; then \
- echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \
- fi
- tar -cf emacs-manual-${version}.tar emacs-manual-${version}
- rm -rf emacs-manual-${version}
-
+ rm -f ${srcdir}/emacsver.texi
.PHONY: install-dvi install-html install-pdf install-ps install-doc
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 8b3654dae68..b438281b2a2 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -987,10 +987,10 @@ size with no tool bar, use an X resource to specify ``no tool bar''
(@pxref{Table of Resources}); then Emacs will already know there's no
tool bar when it processes the specified geometry.
- When using one of @samp{--fullscreen}, @samp{--maximized}, @samp{--fullwidth}
-or @samp{--fullheight} there may be some space around the frame
-anyway. That is because Emacs rounds the sizes so they are an
-even number of character heights and widths.
+ When using one of @samp{--fullscreen}, @samp{--maximized},
+@samp{--fullwidth} or @samp{--fullheight}, some window managers require
+you to set the variable @code{frame-resize-pixelwise} to a non-@code{nil}
+value to make a frame appear truly ``maximized'' or ``fullscreen''.
Some window managers have options that can make them ignore both
program-specified and user-specified positions. If these are set,
@@ -1106,8 +1106,8 @@ rectangle containing the frame's title.
@c Enable horizontal scroll bars. Since horizontal scroll bars
@c are not yet implemented, this actually does nothing.
-@item --parent-id @var{ID}
-Open Emacs as a client X window via the XEmbed protocol, with @var{ID}
+@item --parent-id @var{id}
+Open Emacs as a client X window via the XEmbed protocol, with @var{id}
as the parent X window id. Currently, this option is mainly useful
for developers.
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 0d0013f5ace..6c392cbc70d 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -405,6 +405,16 @@ customizations in your initialization file. This is because saving
customizations from such a session would wipe out all the other
customizations you might have on your initialization file.
+ Please note that any customizations you have not chosen to save for
+future sessions will be lost when you terminate Emacs. If you'd like
+to be prompted about unsaved customizations at termination time, add
+the following to your initialization file:
+
+@example
+(add-hook 'kill-emacs-query-functions
+ 'custom-prompt-customize-unsaved-options)
+@end example
+
@node Face Customization
@subsection Customizing Faces
@cindex customizing faces
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index bdcb185a5f3..12a8e1b3eee 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -127,6 +127,19 @@ the mouse wheel (@pxref{Mouse Commands}); in general, it affects any
command that has a non-@code{nil} @code{scroll-command} property.
@xref{Property Lists,,, elisp, The Emacs Lisp Reference Manual}.
+@vindex fast-but-imprecise-scrolling
+ Sometimes, particularly when you hold down keys such as @kbd{C-v}
+and @kbd{M-v}, activating keyboard auto-repeat, Emacs fails to keep up
+with the rapid rate of scrolling requested; the display doesn't update
+and Emacs can become unresponsive to input for quite a long time. You
+can counter this sluggishness by setting the variable
+@code{fast-but-imprecise-scrolling} to a non-@code{nil} value. This
+instructs the scrolling commands not to fontify (@pxref{Font Lock})
+any unfontified text they scroll over, instead to assume it has the
+default face. This can cause Emacs to scroll to somewhat wrong buffer
+positions when the faces in use are not all the same size, even with
+single (i.e. without auto-repeat) scrolling operations.
+
@vindex scroll-up
@vindex scroll-down
@findex scroll-up-line
@@ -578,6 +591,7 @@ Parameters}.
@node Standard Faces
@section Standard Faces
+@cindex standard faces
Here are the standard faces for specifying text appearance. You can
apply them to specific text when you want the effects they produce.
@@ -598,8 +612,10 @@ This face underlines text.
This face forces use of a fixed-width font. It's reasonable to
customize this face to use a different fixed-width font, if you like,
but you should not make it a variable-width font.
+@cindex variable-pitch face
@item variable-pitch
This face forces use of a variable-width font.
+@cindex shadow face
@item shadow
This face is used for making the text less noticeable than the surrounding
ordinary text. Usually this can be achieved by using shades of gray in
@@ -647,25 +663,34 @@ frame:
@table @code
@item mode-line
+@cindex mode-line face
+@cindex faces for mode lines
This face is used for the mode line of the currently selected window,
and for menu bars when toolkit menus are not used. By default, it's
drawn with shadows for a ``raised'' effect on graphical displays, and
drawn as the inverse of the default face on non-windowed terminals.
@item mode-line-inactive
+@cindex mode-line-inactive face
Like @code{mode-line}, but used for mode lines of the windows other
than the selected one (if @code{mode-line-in-non-selected-windows} is
non-@code{nil}). This face inherits from @code{mode-line}, so changes
in that face affect mode lines in all windows.
@item mode-line-highlight
-Like @code{highlight}, but used for portions of text on mode lines.
+@cindex mode-line-highlight face
+Like @code{highlight}, but used for mouse-sensitive portions of text
+on mode lines. Such portions of text typically pop up tooltips
+(@pxref{Tooltips}) when the mouse pointer hovers above them.
@item mode-line-buffer-id
+@cindex mode-line-buffer-id face
This face is used for buffer identification parts in the mode line.
@item header-line
+@cindex header-line face
Similar to @code{mode-line} for a window's header line, which appears
at the top of a window just as the mode line appears at the bottom.
Most windows do not have a header line---only some special modes, such
Info mode, create one.
@item vertical-border
+@cindex vertical-border face
This face is used for the vertical divider between windows on text
terminals.
@item minibuffer-prompt
@@ -1110,6 +1135,7 @@ empty lines at the end of a buffer, without realizing it. In most
cases, this @dfn{trailing whitespace} has no effect, but sometimes it
can be a nuisance.
+@cindex trailing-whitespace face
You can make trailing whitespace at the end of a line visible by
setting the buffer-local variable @code{show-trailing-whitespace} to
@code{t}. Then Emacs displays trailing whitespace, using the face
@@ -1245,11 +1271,11 @@ Size Indication mode. The size will be displayed immediately
following the buffer percentage like this:
@example
-@var{POS} of @var{SIZE}
+@var{pos} of @var{size}
@end example
@noindent
-Here @var{SIZE} is the human readable representation of the number of
+Here @var{size} is the human readable representation of the number of
characters in the buffer, which means that @samp{k} for 10^3, @samp{M}
for 10^6, @samp{G} for 10^9, etc., are used to abbreviate.
@@ -1418,6 +1444,8 @@ as octal escape sequences instead of caret escape sequences.
@cindex non-breaking space
@cindex non-breaking hyphen
@cindex soft hyphen
+@cindex escape-glyph face
+@cindex nobreak-space face
Some non-@acronym{ASCII} characters have the same appearance as an
@acronym{ASCII} space or hyphen (minus) character. Such characters
can cause problems if they are entered into a buffer without your
diff --git a/doc/emacs/emacs-xtra.texi b/doc/emacs/emacs-xtra.texi
index dc1ab423db2..ba2b0f0d677 100644
--- a/doc/emacs/emacs-xtra.texi
+++ b/doc/emacs/emacs-xtra.texi
@@ -120,7 +120,7 @@ the Emacs manual.
@include fortran-xtra.texi
-@include msdog-xtra.texi
+@include msdos-xtra.texi
@lowersections
@end iftex
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index b1cb196c3c2..66b10145e06 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -189,6 +189,7 @@ Advanced Features
* Sending Mail:: Sending mail in Emacs.
* Rmail:: Reading mail in Emacs.
* Gnus:: A flexible mail and news reader.
+* Network Security:: Managing the network security.
* Document View:: Viewing PDF, PS and DVI files.
* EWW:: A web browser in Emacs.
* Shell:: Executing shell commands from Emacs.
@@ -1574,8 +1575,8 @@ Lisp programming.
@include anti.texi
@include macos.texi
-@c Includes msdog-xtra.
-@include msdog.texi
+@c Includes msdos-xtra.
+@include msdos.texi
@include gnu.texi
@include glossary.texi
@ifnottex
diff --git a/doc/emacs/emacsver.texi b/doc/emacs/emacsver.texi
deleted file mode 100644
index 6329f8aa0e6..00000000000
--- a/doc/emacs/emacsver.texi
+++ /dev/null
@@ -1,4 +0,0 @@
-@c It would be nicer to generate this using configure and @version@.
-@c However, that would mean emacsver.texi would always be newer
-@c then the info files in release tarfiles.
-@set EMACSVER 24.4.50
diff --git a/doc/emacs/emacsver.texi.in b/doc/emacs/emacsver.texi.in
new file mode 100644
index 00000000000..fa685125301
--- /dev/null
+++ b/doc/emacs/emacsver.texi.in
@@ -0,0 +1,2 @@
+@c configure generates emacsver.texi from emacsver.texi.in via a Makefile rule
+@set EMACSVER @version@
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index 036e8cf65eb..27380cd565e 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -376,6 +376,9 @@ position (@pxref{Split Window}).
between two side-by-side mode lines, you can move the vertical
boundary to the left or right.
+ Note that resizing windows is affected by the value of
+@code{window-resize-pixelwise}, see @ref{Split Window}.
+
@node Creating Frames
@section Creating Frames
@cindex creating frames
@@ -469,6 +472,14 @@ hides window manager decorations, giving slightly more screen space to
Emacs itself.)
@end table
+@vindex frame-resize-pixelwise
+ Note that with some window managers you may have to customize the
+variable @code{frame-resize-pixelwise} to a non-@code{nil} value in
+order to make a frame truly ``maximized'' or ``fullscreen''. This
+variable, when set to a non-@code{nil} value, in general allows
+resizing frames at pixel resolution, rather than in integral multiples
+of lines and columns.
+
The @kbd{C-x 5 0} (@code{delete-frame}) command deletes the selected
frame. However, it will refuse to delete the last frame in an Emacs
session, to prevent you from losing the ability to interact with the
@@ -900,10 +911,11 @@ those are drawn by the toolkit and not directly by Emacs.
@section Scroll Bars
@cindex Scroll Bar mode
@cindex mode, Scroll Bar
+@cindex Vertical Scroll Bar
- On graphical displays, there is a @dfn{scroll bar} on the side of
-each Emacs window. Clicking @kbd{Mouse-1} on the scroll bar's up and
-down buttons scrolls the window by one line at a time. Clicking
+ On graphical displays, there is a @dfn{vertical scroll bar} on the
+side of each Emacs window. Clicking @kbd{Mouse-1} on the scroll bar's
+up and down buttons scrolls the window by one line at a time. Clicking
@kbd{Mouse-1} above or below the scroll bar's inner box scrolls the
window by nearly the entire height of the window, like @kbd{M-v} and
@kbd{C-v} respectively (@pxref{Moving Point}). Dragging the inner box
@@ -917,23 +929,23 @@ in the scroll bar lets you drag the inner box up and down.
@findex scroll-bar-mode
@findex toggle-scroll-bar
- To toggle the use of scroll bars, type @kbd{M-x scroll-bar-mode}.
-This command applies to all frames, including frames yet to be
-created. To toggle scroll bars for just the selected frame, use the
-command @kbd{M-x toggle-scroll-bar}.
+ To toggle the use of vertical scroll bars, type @kbd{M-x
+scroll-bar-mode}. This command applies to all frames, including frames
+yet to be created. To toggle vertical scroll bars for just the selected
+frame, use the command @kbd{M-x toggle-scroll-bar}.
@vindex scroll-bar-mode
- To control the use of scroll bars at startup, customize the variable
-@code{scroll-bar-mode}. Its value should be either @code{right} (put
-scroll bars on the right side of windows), @code{left} (put them on
-the left), or @code{nil} (disable scroll bars). By default, Emacs
-puts scroll bars on the right if it was compiled with GTK+ support on
-the X Window System, and on MS-Windows or Mac OS; Emacs puts scroll
-bars on the left if compiled on the X Window System without GTK+
-support (following the old convention for X applications).
+ To control the use of vertical scroll bars at startup, customize the
+variable @code{scroll-bar-mode}. Its value should be either
+@code{right} (put scroll bars on the right side of windows), @code{left}
+(put them on the left), or @code{nil} (disable vertical scroll bars).
+By default, Emacs puts scroll bars on the right if it was compiled with
+GTK+ support on the X Window System, and on MS-Windows or Mac OS; Emacs
+puts scroll bars on the left if compiled on the X Window System without
+GTK+ support (following the old convention for X applications).
@vindex scroll-bar-width
-@cindex width of the scroll bar
+@cindex width of the vertical scroll bar
You can also use the X resource @samp{verticalScrollBars} to enable
or disable the scroll bars (@pxref{Resources}). To control the scroll
bar width, change the @code{scroll-bar-width} frame parameter
@@ -950,6 +962,42 @@ end of the buffer is shown; if @code{nil}, the thumb will be at the
bottom when the end of the buffer is shown. You can not over-scroll
when the entire buffer is visible.
+@cindex scroll-bar face
+ The visual appearance of the scroll bars is controlled by the
+@code{scroll-bar} face.
+
+@cindex Horizontal Scroll Bar
+@cindex Horizontal Scroll Bar mode
+ On graphical displays with toolkit support, Emacs may also supply a
+@dfn{horizontal scroll bar} on the bottom of each window. Clicking
+@kbd{Mouse-1} on the that scroll bar's left and right buttons scrolls
+the window horizontally by one column at a time. Clicking @kbd{Mouse-1}
+on the left or right of the scroll bar's inner box scrolls the window by
+four columns. Dragging the inner box scrolls the window continuously.
+
+ Note that such horizontal scrolling can make the window's position of
+point disappear on the left or the right. Typing a character to insert
+text or moving point with a keyboard command will usually bring it back
+into view.
+
+@findex horizontal-scroll-bar-mode
+ To toggle the use of horizontal scroll bars, type @kbd{M-x
+horizontal-scroll-bar-mode}. This command applies to all frames,
+including frames yet to be created. To toggle horizontal scroll bars
+for just the selected frame, use the command @kbd{M-x
+toggle-horizontal-scroll-bar}.
+
+@vindex horizontal-scroll-bar-mode
+ To control the use of horizontal scroll bars at startup, customize the
+variable @code{horizontal-scroll-bar-mode}.
+
+@vindex scroll-bar-height
+@cindex height of the horizontal scroll bar
+ You can also use the X resource @samp{horizontalScrollBars} to enable
+or disable horizontal scroll bars (@pxref{Resources}). To control the
+scroll bar height, change the @code{scroll-bar-height} frame parameter
+(@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}).
+
@node Drag and Drop
@section Drag and Drop
@cindex drag and drop
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index 10b5fcfb095..22bebed87df 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -129,7 +129,7 @@ Display news of recent Emacs changes (@code{view-emacs-news}).
Find packages by topic keyword (@code{finder-by-keyword}). This lists
packages using a package menu buffer. @xref{Packages}.
@item C-h P @var{package} @key{RET}
-Display documentation about the package named @var{package}
+Display documentation about the specified package
(@code{describe-package}).
@item C-h r
Display the Emacs manual in Info (@code{info-emacs-manual}).
diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi
index 45dbd5727ac..e258d1ca1a0 100644
--- a/doc/emacs/killing.texi
+++ b/doc/emacs/killing.texi
@@ -588,6 +588,7 @@ you can access it using the following Emacs commands:
@table @kbd
@findex mouse-set-secondary
@kindex M-Drag-Mouse-1
+@cindex secondary-selection face
@item M-Drag-Mouse-1
Set the secondary selection, with one end at the place where you press
down the button, and the other end at the place where you release it
@@ -754,6 +755,10 @@ Replace rectangle contents with @var{string} on each line
(@code{string-rectangle}).
@item M-x string-insert-rectangle @key{RET} @var{string} @key{RET}
Insert @var{string} on each line of the rectangle.
+@item C-x @key{SPC}
+Toggle Rectangle Mark mode (@code{rectangle-mark-mode}).
+When this mode is active, the region-rectangle is highlighted and can
+be shrunk/grown, and the standard kill and yank commands operate on it.
@end table
The rectangle operations fall into two classes: commands to erase or
@@ -840,11 +845,13 @@ rectangle shifts right.
shifting the original text to the right.
@findex rectangle-mark-mode
-@cindex rectangular region
- The command @kbd{C-x @key{SPC}} (@code{rectangle-mark-mode}) makes a
-@dfn{rectangular region}. It is a new feature introduced in GNU Emacs
-24.4, and most commands now are still unaware of it, but kill and yank
-(@pxref{Killing}) do work on the rectangle.
+ The command @kbd{C-x @key{SPC}} (@code{rectangle-mark-mode}) toggles
+whether the region-rectangle or the standard region is highlighted
+(first activating the region if necessary). When this mode is enabled,
+commands that resize the region (@kbd{C-f}, @kbd{C-n} etc.) do
+so in a rectangular fashion, and killing and yanking operate on the
+rectangle. @xref{Killing}. The mode persists only as long as the
+region is active.
@node CUA Bindings
@section CUA Bindings
@@ -887,7 +894,8 @@ any direction. Normal text you type is inserted to the left or right
of each line in the rectangle (on the same side as the cursor).
You can use this rectangle support without activating CUA by calling the
-@code{cua-rectangle-mark-mode} command.
+@code{cua-rectangle-mark-mode} command. But see also the standard
+@code{rectangle-mark-mode}. @xref{Rectangles}.
With CUA you can easily copy text and rectangles into and out of
registers by providing a one-digit numeric prefix to the kill, copy,
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi
index 2177ad4e210..048b49cefc9 100644
--- a/doc/emacs/macos.texi
+++ b/doc/emacs/macos.texi
@@ -12,7 +12,7 @@ the GNUstep libraries on GNU/Linux or other operating systems, or on
Mac OS X with native window system support. On Mac OS X, Emacs can be
built either without window system support, with X11, or with the
Cocoa interface; this section only applies to the Cocoa build. This
-does not support versions of Mac OS X earlier than 10.4.
+does not support versions of Mac OS X earlier than 10.6.
For various historical and technical reasons, Emacs uses the term
@samp{Nextstep} internally, instead of ``Cocoa'' or ``Mac OS X''; for
@@ -84,7 +84,7 @@ set, which often causes the subprocesses it launches to behave differently than
they would when launched from the shell.
For the PATH and MANPATH variables, a system-wide method
-of setting PATH is recommended on Mac OS X 10.5 and later, using the
+of setting PATH is recommended on Mac OS X, using the
@file{/etc/paths} files and the @file{/etc/paths.d} directory.
@node Mac / GNUstep Customization
@@ -118,7 +118,7 @@ Useful in this context is the listing of all faces obtained by
@kbd{M-x list-faces-display}.
@cindex Core Text, on Mac OS X
-In Mac OS X 10.5 and later, Emacs uses a Core Text based font backend
+In Mac OS X, Emacs uses a Core Text based font backend
by default. If you prefer the older font style, enter the following
at the command-line before starting Emacs:
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index e066c491ac5..63cd1ae3e44 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -31,11 +31,11 @@ versions of a source file, storing information such as the creation
time of each version, who made it, and a description of what was
changed.
- The Emacs version control interface is called @dfn{VC}@. VC commands
-work with several different version control systems; currently, it
-supports GNU Arch, Bazaar, CVS, Git, Mercurial, Monotone, RCS,
+ The Emacs version control interface is called @dfn{VC}@. VC
+commands work with several different version control systems;
+currently, it supports Bazaar, CVS, Git, Mercurial, Monotone, RCS,
SCCS/CSSC, and Subversion. Of these, the GNU project distributes CVS,
-Arch, RCS, and Bazaar.
+RCS, and Bazaar.
VC is enabled automatically whenever you visit a file governed by a
version control system. To disable VC entirely, set the customizable
@@ -163,14 +163,6 @@ similar to CVS but without its problems (e.g., it supports atomic
commits of filesets, and versioning of directories, symbolic links,
meta-data, renames, copies, and deletes).
-@cindex GNU Arch
-@cindex Arch
-@item
-GNU Arch is one of the earliest @dfn{decentralized} version control
-systems (the other being Monotone). @xref{VCS Concepts}, for a
-description of decentralized version control systems. It is no longer
-under active development, and has been deprecated in favor of Bazaar.
-
@cindex git
@item
Git is a decentralized version control system originally invented by
@@ -191,6 +183,18 @@ exception of repository sync operations.
Bazaar (bzr) is a decentralized version control system that supports
both repository-based and decentralized versioning. VC supports most
basic editing operations under Bazaar.
+
+@cindex SRC
+@cindex src
+@item
+SRC (src) is RCS, reloaded - a specialized version-control system
+designed for single-file projects worked on by only one person. It
+allows multiple files with independent version-control histories to
+exist in one directory, and is thus particularly well suited for
+maintaining small documents, scripts, and dotfiles. While it uses RCS
+for revision storage, it presents a modern user interface featuring
+lockless operation and integer sequential version numbers. VC
+supports almost all SRC operations.
@end itemize
@node VCS Concepts
@@ -268,8 +272,8 @@ number and severity of conflicts that actually occur.
SCCS always uses locking. RCS is lock-based by default but can be
told to operate in a merging style. CVS and Subversion are
merge-based by default but can be told to operate in a locking mode.
-Decentralized version control systems, such as GNU Arch, Git, and
-Mercurial, are exclusively merging-based.
+Decentralized version control systems, such as Git and Mercurial, are
+exclusively merging-based.
VC mode supports both locking and merging version control. The
terms ``commit'' and ``update'' are used in newer version control
@@ -1014,8 +1018,6 @@ Revert the work file(s) in the current VC fileset to the last revision
(@code{vc-revert}).
@end table
-@c `C-x v c' (vc-rollback) was removed, since it's RCS/SCCS specific.
-
@kindex C-x v u
@findex vc-revert
@vindex vc-revert-show-diff
@@ -1317,11 +1319,18 @@ implemented, and these differences cannot be entirely concealed by VC.
On some decentralized version control systems, including Bazaar and
Mercurial in its normal mode of operation, each branch has its own
working directory tree, so switching between branches just involves
-switching directories. On Git, switching between branches is done
-using the @command{git branch} command, which changes the contents of
-the working tree itself.
+switching directories. On Git, branches are normally @dfn{co-located}
+in the same directory, and switching between branches is done using
+the @command{git checkout} command, which changes the contents of the
+working tree to match the branch you switch to. Bazaar also supports
+co-located branches, in which case the @command{bzr switch} command
+will switch branches in the current directory. With Subversion, you
+switch to another branch using the @command{svn switch} command.
- On centralized version control systems, you can switch between
+ The VC command to switch to another branch in the current directory
+is @kbd{C-x v r @var{branch-name} @key{RET}} (@code{vc-retrieve-tag}).
+
+ On centralized version control systems, you can also switch between
branches by typing @kbd{C-u C-x v v} in an up-to-date work file
(@pxref{Advanced C-x v v}), and entering the revision ID for a
revision on another branch. On CVS, for instance, revisions on the
@@ -1467,9 +1476,11 @@ different revision with @kbd{C-u C-x v v}.
@cindex change log
Many software projects keep a @dfn{change log}. This is a file,
normally named @file{ChangeLog}, containing a chronological record of
-when and how the program was changed. Sometimes, there are several
-change log files, each recording the changes in one directory or
-directory tree.
+when and how the program was changed. Sometimes, these files are
+automatically generated from the change log entries stored in version
+control systems, or are used to generate these change log entries.
+Sometimes, there are several change log files, each recording the
+changes in one directory or directory tree.
@menu
* Change Log Commands:: Commands for editing change log files.
diff --git a/doc/emacs/makefile.w32-in b/doc/emacs/makefile.w32-in
index 297ec496fe6..d492a50686a 100644
--- a/doc/emacs/makefile.w32-in
+++ b/doc/emacs/makefile.w32-in
@@ -54,7 +54,7 @@ EMACS_XTRA=\
$(srcdir)/vc-xtra.texi \
$(srcdir)/vc1-xtra.texi \
$(srcdir)/fortran-xtra.texi \
- $(srcdir)/msdog-xtra.texi
+ $(srcdir)/msdos-xtra.texi
EMACSSOURCES= \
$(srcdir)/emacs.texi \
@@ -97,7 +97,7 @@ EMACSSOURCES= \
$(srcdir)/xresources.texi \
$(srcdir)/anti.texi \
$(srcdir)/macos.texi \
- $(srcdir)/msdog.texi \
+ $(srcdir)/msdos.texi \
$(srcdir)/gnu.texi \
$(srcdir)/glossary.texi \
$(srcdir)/ack.texi \
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index ae1aefcee76..39433056f15 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -249,6 +249,126 @@ Search forward for articles containing a match for @var{regexp}.
Exit the summary buffer and return to the group buffer.
@end table
+
+@node Network Security
+@section Network Security
+@cindex network security manager
+@cindex NSM
+@cindex encryption
+@cindex SSL
+@cindex TLS
+@cindex STARTTLS
+
+Whenever Emacs establishes any network connection, it passes the
+established connection to the @dfn{Network Security Manager}
+(@acronym{NSM}). @acronym{NSM} is responsible for enforcing the
+network security under your control.
+
+@vindex network-security-level
+The @code{network-security-level} variable determines the security
+level that @acronym{NSM} enforces. If its value is @code{low}, no
+security checks are performed.
+
+If this variable is @code{medium} (which is the default), a number of
+checks will be performed. If as result @acronym{NSM} determines that
+the network connection might not be trustworthy, it will make you
+aware of that, and will ask you what to do about the network
+connection.
+
+You can decide to register a permanent security exception for an
+unverified connection, a temporary exception, or refuse the connection
+entirely.
+
+Below is a list of the checks done on the @code{medium} level.
+
+@table @asis
+
+@item unable to verify a @acronym{TLS} certificate
+If the connection is a @acronym{TLS}, @acronym{SSL} or
+@acronym{STARTTLS} connection, @acronym{NSM} will check whether
+the certificate used to establish the identity of the server we're
+connecting to can be verified.
+
+While an invalid certificate is often the cause for concern (there
+could be a Man-in-the-Middle hijacking your network connection and
+stealing your password), there may be valid reasons for going ahead
+with the connection anyway. For instance, the server may be using a
+self-signed certificate, or the certificate may have expired. It's up
+to you to determine whether it's acceptable to continue with the
+connection.
+
+@item a self-signed certificate has changed
+If you've previously accepted a self-signed certificate, but it has
+now changed, that could mean that the server has just changed the
+certificate, but it might also mean that the network connection has
+been hijacked.
+
+@item previously encrypted connection now unencrypted
+If the connection is unencrypted, but it was encrypted in previous
+sessions, this might mean that there is a proxy between you and the
+server that strips away @acronym{STARTTLS} announcements, leaving the
+connection unencrypted. This is usually very suspicious.
+
+@item talking to an unencrypted service when sending a password
+When connecting to an @acronym{IMAP} or @acronym{POP3} server, these
+should usually be encrypted, because it's common to send passwords
+over these connections. Similarly, if you're sending email via
+@acronym{SMTP} that requires a password, you usually want that
+connection to be encrypted. If the connection isn't encrypted,
+@acronym{NSM} will warn you.
+
+@end table
+
+If @code{network-security-level} is @code{high}, the following checks
+will be made, in addition to the above:
+
+@table @asis
+@item a validated certificate changes the public key
+Servers change their keys occasionally, and that is normally nothing
+to be concerned about. However, if you are worried that your network
+connections are being hijacked by agencies who have access to pliable
+Certificate Authorities which issue new certificates for third-party
+services, you may want to keep track of these changes.
+
+@item Diffie-Hellman low prime bits
+When doing the public key exchange, the number of ``prime bits''
+should be high to ensure that the channel can't be eavesdropped on by
+third parties. If this number is too low, you will be warned.
+
+@item @acronym{RC4} stream cipher
+The @acronym{RC4} stream cipher is believed to be of low quality and
+may allow eavesdropping by third parties.
+
+@item @acronym{SSL1}, @acronym{SSL2} and @acronym{SSL3}
+The protocols older than @acronym{TLS1.0} are believed to be
+vulnerable to a variety of attacks, and you may want to avoid using
+these if what you're doing requires higher security.
+@end table
+
+Finally, if @code{network-security-level} is @code{paranoid}, you will
+also be notified the first time @acronym{NSM} sees any new
+certificate. This will allow you to inspect all the certificates from
+all the connections that Emacs makes.
+
+The following additional variables can be used to control details of
+@acronym{NSM} operation:
+
+@table @code
+@item nsm-settings-file
+@vindex nsm-settings-file
+This is the file where @acronym{NSM} stores details about connections.
+It defaults to @file{~/.emacs.d/network-security.data}.
+
+@item nsm-save-host-names
+@vindex nsm-save-host-names
+By default, host names will not be saved for non-@code{STARTTLS}
+connections. Instead a host/port hash is used to identify connections.
+This means that one can't casually read the settings file to see what
+servers the user has connected to. If this variable is @code{t},
+@acronym{NSM} will also save host names in the nsm-settings-file.
+@end table
+
+
@node Document View
@section Document Viewing
@cindex DVI file
@@ -266,9 +386,10 @@ Exit the summary buffer and return to the group buffer.
OpenDocument, and Microsoft Office documents. It provides features
such as slicing, zooming, and searching inside documents. It works by
converting the document to a set of images using the @command{gs}
-(GhostScript) command and other external tools @footnote{@code{gs} is
-a hard requirement. For DVI files, @code{dvipdf} or @code{dvipdfm} is
-needed. For OpenDocument and Microsoft Office documents, the
+(GhostScript) or @command{mudraw}/@command{pdfdraw} (MuPDF) commands
+and other external tools @footnote{For PostScript files, GhostScript
+is a hard requirement. For DVI files, @code{dvipdf} or @code{dvipdfm}
+is needed. For OpenDocument and Microsoft Office documents, the
@code{unoconv} tool is needed.}, and displaying those images.
@findex doc-view-toggle-display
@@ -287,6 +408,17 @@ mode or DocView minor mode, repeating @kbd{C-c C-c}
(@code{doc-view-toggle-display}) toggles between DocView and the
underlying file contents.
+@findex doc-view-open-text
+ When you visit a file which would normally be handled by DocView
+mode but some requirement is not met (e.g., you operate in a terminal
+frame or emacs has no PNG support), you are queried if you want to
+view the document's contents as plain text. If you confirm, the
+buffer is put in text mode and DocView minor mode is activated. Thus,
+by typing @kbd{C-c C-c} you switch to the fallback mode. With another
+@kbd{C-c C-c} you return to DocView mode. The plain text contents can
+also be displayed from within DocView mode by typing @kbd{C-c C-t}
+(@code{doc-view-open-text}).
+
You can explicitly enable DocView mode with the command @code{M-x
doc-view-mode}. You can toggle DocView minor mode with @code{M-x
doc-view-minor-mode}.
@@ -407,12 +539,14 @@ and the slice's width and height.
A more convenient graphical way to specify the slice is with @kbd{s
m} (@code{doc-view-set-slice-using-mouse}), where you use the mouse to
-select the slice.
-@c ??? How does this work?
+select the slice. Simply press and hold the left mouse button at the
+upper-left corner of the region you want to have in the slice, then
+move the mouse pointer to the lower-right corner and release the
+button.
The most convenient way is to set the optimal slice by using
BoundingBox information automatically determined from the document by
-typing @kbd{s b} (@code{doc-view-set-slice-using-mouse}).
+typing @kbd{s b} (@code{doc-view-set-slice-from-bounding-box}).
@findex doc-view-reset-slice
To cancel the selected slice, type @kbd{s r}
@@ -1610,9 +1744,9 @@ all server buffers are finished. You can take as long as you like to
edit the server buffers within Emacs, and they are @emph{not} killed
when you type @kbd{C-x #} in them.
-@item --parent-id @var{ID}
+@item --parent-id @var{id}
Open an @command{emacsclient} frame as a client frame in the parent X
-window with id @var{ID}, via the XEmbed protocol. Currently, this
+window with id @var{id}, via the XEmbed protocol. Currently, this
option is mainly useful for developers.
@item -q
@@ -1935,9 +2069,9 @@ They divide the text of the region into many @dfn{sort records},
identify a @dfn{sort key} for each record, and then reorder the records
into the order determined by the sort keys. The records are ordered so
that their keys are in alphabetical order, or, for numeric sorting, in
-numeric order. In alphabetic sorting, all upper-case letters `A' through
-`Z' come before lower-case `a', in accord with the @acronym{ASCII} character
-sequence.
+numeric order. In alphabetic sorting, all upper-case letters @samp{A}
+through @samp{Z} come before lower-case @samp{a}, in accordance with the
+@acronym{ASCII} character sequence.
The various sort commands differ in how they divide the text into sort
records and in which part of each record is used as the sort key. Most of
diff --git a/doc/emacs/msdog-xtra.texi b/doc/emacs/msdos-xtra.texi
similarity index 99%
rename from doc/emacs/msdog-xtra.texi
rename to doc/emacs/msdos-xtra.texi
index 876be52282a..c8f587cd9d1 100644
--- a/doc/emacs/msdog-xtra.texi
+++ b/doc/emacs/msdos-xtra.texi
@@ -6,19 +6,18 @@
@c printed version) or in the main Emacs manual (for the on-line version).
@node MS-DOS
@section Emacs and MS-DOS
-@cindex MS-DOG
@cindex MS-DOS peculiarities
This section briefly describes the peculiarities of using Emacs on
-the MS-DOS ``operating system'' (also known as ``MS-DOG'').
+the MS-DOS ``operating system''.
@iftex
Information about Emacs and Microsoft's current operating system
-Windows (also known as ``Losedows'') is in the main Emacs manual
+Windows is in the main Emacs manual
(@pxref{Microsoft Windows,,, emacs, the Emacs Manual}).
@end iftex
@ifnottex
Information about peculiarities common to MS-DOS and Microsoft's
-current operating systems Windows (also known as ``Losedows'') is in
+current operating systems Windows is in
@ref{Microsoft Windows}.
@end ifnottex
diff --git a/doc/emacs/msdog.texi b/doc/emacs/msdos.texi
similarity index 99%
rename from doc/emacs/msdog.texi
rename to doc/emacs/msdos.texi
index 7c5b3600728..a4d61e2e73a 100644
--- a/doc/emacs/msdog.texi
+++ b/doc/emacs/msdos.texi
@@ -9,7 +9,7 @@
This section describes peculiarities of using Emacs on Microsoft
Windows. Some of these peculiarities are also relevant to Microsoft's
-older MS-DOS ``operating system'' (also known as ``MS-DOG'').
+older MS-DOS operating system.
However, Emacs features that are relevant @emph{only} to MS-DOS are
described in a separate
@iftex
@@ -986,5 +986,5 @@ click-to-focus policy.
@end ifnottex
@ifnottex
-@include msdog-xtra.texi
+@include msdos-xtra.texi
@end ifnottex
diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi
index 90bdafe456a..136eff7e2fe 100644
--- a/doc/emacs/package.texi
+++ b/doc/emacs/package.texi
@@ -60,7 +60,7 @@ The package's version number (e.g., @samp{11.86}).
@item
The package's status---normally one of @samp{available} (can be
downloaded from the package archive), @samp{installed},
-@samp{unsigned} (installed, but not signed; @pxref{Package Signing}),
+@c @samp{unsigned} (installed, but not signed; @pxref{Package Signing}),
or @samp{built-in} (included in Emacs by default).
The status can also be @samp{new}. This is equivalent to
@@ -184,11 +184,8 @@ key from a server such as @url{http://pgp.mit.edu/}.
Use @kbd{M-x package-import-keyring} to import the key into Emacs.
Emacs stores package keys in the @file{gnupg} subdirectory
of @code{package-user-dir}.
-@c Uncomment this if it becomes true.
-@ignore
The public key for the GNU package archive is distributed with Emacs,
in the @file{etc/package-keyring.gpg}. Emacs uses it automatically.
-@end ignore
@vindex package-check-signature
@vindex package-unsigned-archives
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 05008790b4f..f2ca386b49e 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -88,8 +88,8 @@ Fortran, Icon, IDL (CORBA), IDLWAVE, Java, Javascript, Metafont
Octave, Pascal, Perl, Pike, PostScript, Prolog, Python, Ruby, Simula, Tcl,
and VHDL@. An alternative mode for Perl is called CPerl mode. Modes are
also available for the scripting languages of the common GNU and Unix
-shells, VMS DCL, and MS-DOS/MS-Windows @samp{BAT} files, and for
-makefiles, DNS master files, and various sorts of configuration files.
+shells, and MS-DOS/MS-Windows @samp{BAT} files, and for makefiles,
+DNS master files, and various sorts of configuration files.
Ideally, Emacs should have a major mode for each programming
language that you might want to edit. If it doesn't have a mode for
@@ -1453,7 +1453,7 @@ creates.
@findex superword-mode
Superword mode is a buffer-local minor mode that causes editing and
motion commands to treat symbols (e.g., @samp{this_is_a_symbol}) as words.
-When Subword mode is enabled, the minor mode indicator
+When Superword mode is enabled, the minor mode indicator
@iftex
@samp{@math{^2}}
@end iftex
diff --git a/doc/emacs/regs.texi b/doc/emacs/regs.texi
index a0ff7079388..bc4abb389c4 100644
--- a/doc/emacs/regs.texi
+++ b/doc/emacs/regs.texi
@@ -149,9 +149,9 @@ during the collection process, you can use the following setting.
@kindex C-x r i
@findex insert-register
@kbd{C-x r i @var{r}} inserts in the buffer the text from register
-@var{r}. Normally it leaves point before the text and sets the mark
-after, without activating it. With a numeric argument, it instead
-puts point after the text and the mark before.
+@var{r}. Normally it leaves point after the text and sets the mark
+before, without activating it. With a numeric argument, it instead
+puts before after the text and the mark after.
@node Rectangle Registers
@section Saving Rectangles in Registers
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 64ecf165349..a0c59c6f87f 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -86,6 +86,7 @@ not be the first @samp{F} previously found. After another @kbd{O},
the cursor moves to just after the first @samp{FOO}.
@cindex faces for highlighting search matches
+@cindex isearch face
At each step, Emacs highlights the @dfn{current match}---the buffer
text that matches the search string---using the @code{isearch} face
(@pxref{Faces}). The current search string is also displayed in the
@@ -1280,6 +1281,8 @@ It works like @code{replace-regexp} except that it queries
like @code{query-replace}.
@cindex faces for highlighting query replace
+@cindex query-replace face
+@cindex lazy-highlight face
These commands highlight the current match using the face
@code{query-replace}. They highlight other matches using
@code{lazy-highlight} just like incremental search (@pxref{Incremental
@@ -1337,7 +1340,7 @@ to replace all remaining occurrences without asking again.
@item Y @r{(Upper-case)}
to replace all remaining occurrences in all remaining buffers in
-multi-buffer replacements (like the Dired `Q' command which performs
+multi-buffer replacements (like the Dired @key{Q} command that performs
query replace on selected files). It answers this question and all
subsequent questions in the series with "yes", without further
user interaction.
@@ -1433,6 +1436,22 @@ matching that regexp.
This command is just like @code{multi-isearch-buffers}, except it
performs an incremental regexp search.
+@item M-x multi-isearch-files
+Prompt for one or more file names, ending with @key{RET}; then,
+begin a multi-file incremental search in those files. (If the
+search fails in one file, the next @kbd{C-s} tries searching the
+next specified file, and so forth.) With a prefix argument, prompt
+for a regexp and begin a multi-file incremental search in files
+matching that regexp.
+
+@item M-x multi-isearch-files-regexp
+This command is just like @code{multi-isearch-files}, except it
+performs an incremental regexp search.
+
+In some modes that set the buffer-local variable
+@code{multi-isearch-next-buffer-function} (e.g., in Change Log mode)
+a multi-file incremental search is activated automatically.
+
@cindex Occur mode
@cindex mode, Occur
@item M-x occur
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index 09260a1e5a9..5f3cf9223eb 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -1137,9 +1137,9 @@ new function, all you need to say about it is that it is new. If you
feel that the purpose needs explaining, it probably does---but put the
explanation in comments in the code. It will be more useful there.
-Please read the @file{ChangeLog} files in the @file{src} and
-@file{lisp} directories to see what sorts of information to put in,
-and to learn the style that we use. @xref{Change Log}.
+Please look at the change log entries of recent commits to see what
+sorts of information to put in, and to learn the style that we use.
+@xref{Change Log}.
@item
When you write the fix, keep in mind that we can't install a change that
diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi
index 07f956c488d..dd52d97780d 100644
--- a/doc/emacs/vc1-xtra.texi
+++ b/doc/emacs/vc1-xtra.texi
@@ -113,7 +113,7 @@ Prompt for a file name, delete the file from the working tree, and
schedule the deletion for committing.
@item M-x vc-rename-file
-Prompt for two file names, @var{VAR} and @var{OLD}, rename them in the
+Prompt for two file names, @var{var} and @var{old}, rename them in the
working tree, and schedule the renaming for committing.
@end table
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index 4a5f24c13fb..4045908d4d5 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -134,6 +134,18 @@ clicking @kbd{C-Mouse-2} in the scroll bar, which puts a horizontal
divider where you click (this feature does not work when Emacs uses
GTK+ scroll bars).
+@vindex window-resize-pixelwise
+ By default, when you split a window, Emacs gives each of the
+resulting windows dimensions that are an integral multiple of the
+default font size of the frame. That might subdivide the screen
+estate unevenly between the resulting windows. If you set the
+variable @code{window-resize-pixelwise} to a non-@code{nil} value,
+Emacs will give each window the same number of pixels (give or take
+one pixel if the initial dimension was an odd number of pixels). Note
+that when a frame's pixel size is not a multiple of the frame's
+character size, at least one window may get resized pixelwise even if
+this option is @code{nil}.
+
@node Other Window
@section Using Other Windows
diff --git a/doc/lispintro/.gitignore b/doc/lispintro/.gitignore
deleted file mode 100644
index e1af5a918b0..00000000000
--- a/doc/lispintro/.gitignore
+++ /dev/null
@@ -1,21 +0,0 @@
-*.aux
-*.fn
-*.fns
-*.cps
-*.cp
-*.kys
-*.ky
-*.toc
-*.pgs
-*.pg
-*.log
-*.vrs
-*.vr
-*.dvi
-*.ps
-*.tp
-*.tps
-*.tmp
-*.txt
-Makefile
-makefile
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index 70d7767635f..572875c151a 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -1,3 +1,17 @@
+2014-11-09 Glenn Morris
+
+ * Makefile.in (version): Remove variable.
+ (clean): No longer delete dist tarfile.
+ (dist): Remove rule; replace with code in admin.el.
+
+2014-10-20 Glenn Morris
+
+ * Merge in all changes up to 24.4 release.
+
+2014-10-13 Glenn Morris
+
+ * Makefile.in (dist): Update for new output variables.
+
2014-07-16 Álvar Jesús Ibeas Martín (tiny change)
* emacs-lisp-intro.texi (Variables, Buffer Names, if & or)
@@ -567,8 +581,8 @@
2006-11-05 Robert J. Chassell
* emacs-lisp-intro.texi: Yet more minor changes:
- (defcustom): Said that `:options' is usually for a hook. Remove
- extraneous space in parenthetical remark concerning
+ (defcustom): Said that `:options' is usually for a hook.
+ Remove extraneous space in parenthetical remark concerning
`text-mode-hook-identify'. At end, mention other defines, too.
(Beginning a .emacs File): Reverse words about comments so they
parallel numbers of listed semi-colons.
@@ -590,12 +604,12 @@
Center images for TeX output.
(kill-new function): Remove indentation for sentence talking about
momentarily skipping code.
- (cons & search-fwd Review): Document @code{funcall}. Document
- @code{re-search-forward} with existing @code{search-forward}.
+ (cons & search-fwd Review): Document @code{funcall}.
+ Document @code{re-search-forward} with existing @code{search-forward}.
Reference chapter on regular expression searches.
(Recursion with list): Specify a more recent version as being Emacs.
- (Recursion with list, Every, recursive-graph-body-print): Change
- `if ... progn' expression to `when'.
+ (Recursion with list, Every, recursive-graph-body-print):
+ Change `if ... progn' expression to `when'.
(Recursive triangle function): For printing in small book, ensure
section name is not last on bottom of preceding page.
(Keep): Remove extraneous space in function definition example.
@@ -604,11 +618,11 @@
function.
(fwd-sentence while loops): Write a function as one, not as a form.
(fwd-para let): Add `which' to sentence with `parstart' and `parsep'.
- (etags): Move sentences involving `find-tag' and sources. State
- location of Emacs `src' directory.
+ (etags): Move sentences involving `find-tag' and sources.
+ State location of Emacs `src' directory.
(Design count-words-region): Better explain two backslashes in a row.
- (Find a File): Fix grammar; add a `to' and write `to visit'. Change
- `named' to `selected'.
+ (Find a File): Fix grammar; add a `to' and write `to visit'.
+ Change `named' to `selected'.
(lengths-list-file): Remove extraneous parenthesis from reference.
(lengths-list-many-files): Explain `expand-file-name' better.
(Files List): Rephrase sentence regarding Lisp sources directory.
@@ -636,8 +650,8 @@
seen' the @code{eq} function.
(kill-append function): Reformat `kill-append' function definition so
it prints well.
- (kill-new function): Indent the sentence beginning `notice'. Replace
- `the same as' with `similar to'. Repair typo. Remove obsolete
+ (kill-new function): Indent the sentence beginning `notice'.
+ Replace `the same as' with `similar to'. Repair typo. Remove obsolete
references to `yank' and `yank-pop. End section with a note that `we
will digress into C.'
@@ -661,8 +675,8 @@
is 3.00. Did not update ISBN number.
* emacs-lisp-intro.texi: Remove version reference for X colors.
- Document `='. Remove mention that :eval was new in 21. Updated
- instance's edition-number to 3.01.
+ Document `='. Remove mention that :eval was new in 21.
+ Updated instance's edition-number to 3.01.
2006-10-30 Robert J. Chassell
diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in
index b40c26767cc..4bcbb53ad9a 100644
--- a/doc/lispintro/Makefile.in
+++ b/doc/lispintro/Makefile.in
@@ -19,10 +19,7 @@
SHELL = @SHELL@
-# NB If you add any more configure variables,
-# update the sed rules in the dist target below.
srcdir = @srcdir@
-version=@version@
buildinfodir = $(srcdir)/../../info
# Directory with the (customized) texinfo.tex file.
@@ -108,7 +105,6 @@ mostlyclean:
clean: mostlyclean
rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS)
- rm -f emacs-lispintro-${version}.tar*
distclean: clean
rm -f Makefile
@@ -120,28 +116,6 @@ infoclean:
bootstrap-clean maintainer-clean: distclean infoclean
-.PHONY: dist
-
-dist:
- rm -rf emacs-lispintro-${version}
- mkdir emacs-lispintro-${version}
- cp ${srcdir}/*.texi ${srcdir}/*.eps ${srcdir}/*.pdf \
- ${texinfodir}/texinfo.tex ${emacsdir}/emacsver.texi \
- ${srcdir}/ChangeLog* ${srcdir}/README emacs-lispintro-${version}/
- sed -e 's/@sr[c]dir@/./' -e 's/^\(texinfodir *=\).*/\1 ./' \
- -e 's/^\(emacsdir *=\).*/\1 ./' \
- -e 's/^\(buildinfodir *=\).*/\1 ./' \
- -e 's/^\(clean:.*\)/\1 infoclean/' \
- -e "s/@ver[s]ion@/${version}/" \
- -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \
- ${srcdir}/Makefile.in > emacs-lispintro-${version}/Makefile
- @if grep '@[a-zA-Z_]*@' emacs-lispintro-${version}/Makefile; then \
- echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \
- fi
- tar -cf emacs-lispintro-${version}.tar emacs-lispintro-${version}
- rm -rf emacs-lispintro-${version}
-
-
.PHONY: install-dvi install-html install-pdf install-ps install-doc
install-dvi: dvi
diff --git a/doc/lispref/.gitignore b/doc/lispref/.gitignore
deleted file mode 100644
index ba74d365995..00000000000
--- a/doc/lispref/.gitignore
+++ /dev/null
@@ -1,13 +0,0 @@
-texput.log
-elisp.??
-elisp.???
-config.log
-config.cache
-config.status
-Makefile
-makefile
-elisp
-elisp-?
-elisp-??
-elisp1*
-elisp2*
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 58548077d3d..3621c563d79 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,276 @@
+2014-12-22 Paul Eggert
+
+ Remove obsolete references to pre-C99 builds
+ * internals.texi (C Integer Types): Don't mention pre-C99 compilers.
+
+2014-12-19 Martin Rudalics
+
+ * windows.texi (Resizing Windows): Describe new argument of
+ `fit-window-to-buffer'. Move description of `window-size-fixed'
+ to new section below.
+ (Preserving Window Sizes): New section describing
+ `window-size-fixed' and `window-preserve-size'.
+ (Display Action Functions): Describe `preserve-size' alist
+ entry.
+ (Window Parameters): Describe `preserved-size' parameter.
+
+2014-12-18 Eli Zaretskii
+
+ * display.texi (Low-Level Font): Document font-info and query-font.
+
+2014-12-16 Nicolas Petton
+
+ * sequences.texi (Seq Library): Add documentation for seq.el.
+
+2014-12-15 Alan Mackenzie
+
+ "Advice" is a mass noun. Amend text accordingly.
+ * functions.texi: (Advising Functions, Core Advising Primitives)
+ (Advising Named Functions, Advice combinators)
+ (Porting old advice): Replace, e.g., "an advice" with "advice".
+
+2014-12-13 Lars Magne Ingebrigtsen
+
+ * files.texi (Relative File Names): Mention `directory-name-p'.
+
+2014-12-13 Eli Zaretskii
+
+ * text.texi (Comparing Text): Prevent a text string from being
+ broken between 2 lines. (Bug#19257)
+
+2014-12-09 Lars Magne Ingebrigtsen
+
+ * files.texi (Contents of Directories):
+ Document directory-files-recursively.
+
+2014-12-04 Eli Zaretskii
+
+ * display.texi (Bidirectional Display):
+ Document 'buffer-substring-with-bidi-context'.
+
+ * text.texi (Buffer Contents):
+ Mention 'buffer-substring-with-bidi-context' with a cross-reference.
+
+2014-12-02 Eli Zaretskii
+
+ * display.texi (Bidirectional Display):
+ Document 'bidi-find-overridden-directionality'.
+
+2014-11-29 Paul Eggert
+
+ Lessen focus on ChangeLog files, as opposed to change log entries.
+ * intro.texi (Acknowledgments): ChangeLog file -> change log entries.
+ * tips.texi (Library Headers): Emacs uses a version control system.
+
+2014-11-27 Lars Magne Ingebrigtsen
+
+ * text.texi (Document Object Model): Mention `dom-pp'.
+
+2014-11-26 Lars Magne Ingebrigtsen
+
+ * text.texi (Document Object Model): New node to document dom.el.
+
+2014-11-24 Lars Magne Ingebrigtsen
+
+ * processes.texi (Network Security): Made into its own section and
+ fleshed out.
+ (Network Security): Mention more NSM variables.
+ (Processes): Move the Network Security Manager stuff to the Emacs
+ manual.
+
+2014-11-23 Lars Magne Ingebrigtsen
+
+ * processes.texi (Network): Mention the new :warn-unless-encrypted
+ parameter to `open-network-stream'.
+ (Network): Mention the Network Security Manager.
+
+2014-11-21 Ulf Jasper
+
+ * text.texi (Parsing HTML/XML): Document new optional parameter
+ 'discard-comments' of 'libxml-parse(html|xml)-region'.
+
+2014-11-18 Leo Liu
+
+ * functions.texi (Advising Named Functions):
+ Document define-advice.
+
+2014-11-17 Paul Eggert
+
+ Improve time stamp handling, and be more consistent about it.
+ * os.texi (Time of Day, Time Conversion, Time Parsing)
+ (Processor Run Time, Time Calculations):
+ Document the new behavior, plus be clearer about the old behavior.
+ (Idle Timers): Take advantage of new functionality.
+
+2014-11-16 Lars Magne Ingebrigtsen
+
+ * text.texi (Special Properties): Mention `inhibit-read-only'.
+
+2014-11-14 Paul Eggert
+
+ * os.texi (Time of Day):
+ Use leading zero with 24-hour times less than 10:00.
+
+2014-11-09 Glenn Morris
+
+ * Makefile.in (version): Remove variable.
+ (clean): No longer delete dist tarfile.
+ (dist): Remove rule; replace with code in admin.el.
+
+2014-11-07 Martin Rudalics
+
+ * frames.texi (Size and Position): Rewrite description of
+ `frame-inhibit-implied-resize'.
+
+2014-10-22 Martin Rudalics
+
+ * frames.texi (Size Parameters): Replace "frame contents" by
+ "frame's text area". Add reference to Size and Position
+ section.
+ (Size and Position): Major rewrite. Add explanations for
+ frame's default font, text and display areas. Add descriptions
+ for `set-frame-font', `frame-text-height', `frame-text-width'
+ and `frame-inhibit-implied-resize'.
+
+2014-10-20 Glenn Morris
+
+ * Merge in all changes up to 24.4 release.
+
+2014-10-20 Tom Tromey
+
+ * objects.texi (Type Predicates): Don't mention display-table-p.
+
+2014-10-15 Eli Zaretskii
+
+ * nonascii.texi (Character Properties): Document the new
+ properties 'bracket-type' and 'paired-bracket'.
+
+ * display.texi (Bidirectional Display): Update the version of the
+ UBA to which we are conforming.
+
+2014-10-13 Glenn Morris
+
+ * Makefile.in (dist): Update for new output variables.
+
+2014-10-12 Glenn Morris
+
+ * elisp.texi (DATE): Bump to October 2014.
+
+2014-10-09 Glenn Morris
+
+ * frames.texi (Multiple Terminals): Copyedits.
+
+2014-10-09 Eli Zaretskii
+
+ * frames.texi (Multiple Terminals): Improve the description of X
+ display names. Add index entries.
+ (Basic Parameters): Add a cross-reference to where X display names
+ are described.
+ (Position Parameters): Mention that positional parameters of the
+ form (+ POS) can be negative if they are on a non-primary monitor
+ of a multi-monitor display. (Bug#18636)
+ (Creating Frames): Mention that on multi-monitor displays the
+ frame might be positioned differently than specified by the frame
+ parameters alist.
+
+2014-10-08 Leo Liu
+
+ * streams.texi (Output Functions): Document new argument ENSURE to
+ terpri. (Bug#18652)
+
+2014-10-04 Martin Rudalics
+
+ * display.texi (Scroll Bars): Add description of horizontal scroll
+ bars and associated functions.
+ * frames.texi (Layout Parameters): Add horizontal scroll bar
+ entries. Remove paragraph on "combined fringe widths".
+ * windows.texi (Window Sizes): Describe affects of horizontal
+ scroll bars on window layout and sizes. Fix description of
+ window-full-height-p.
+ (Resizing Windows): Mention horizontal scroll bar.
+
+2014-10-04 Glenn Morris
+
+ * commands.texi (Generic Commands): Copyedits.
+
+ * display.texi (Scroll Bars):
+ * modes.texi (Header Lines): Copyedits.
+
+ * buffers.texi (Buffer List):
+ * display.texi (Image Descriptors, Defining Images):
+ * functions.texi (Core Advising Primitives): Small fixes re @var usage.
+
+ * windows.texi (Window Sizes, Resizing Windows): Copyedits.
+
+ * frames.texi (Multiple Terminals): Copyedits re multiple monitors.
+
+2014-10-03 Martin Rudalics
+
+ * frames.texi (Size Parameters, Size and Position): Mention that
+ with some window managers you have to set `frame-resize-pixelwise'
+ in order make a frame truly fullscreen or maximized.
+
+2014-10-01 Paul Eggert
+
+ Improve doc for use of 'int', and discuss 'ssize_t'.
+ * internals.texi (C Integer Types): Mention 'int' for other
+ randomish values that lie in 'int' range. Mention 'ssize_t'. See:
+ http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00019.html
+
+ Use AUTO_CONS instead of SCOPED_CONS, etc.
+ * internals.texi (Stack-allocated Objects):
+ Adjust to match the revised, less error-prone macros.
+
+2014-09-30 Paul Eggert
+
+ * internals.texi (Stack-allocated Objects): Further improvements.
+ Give an example of misuse.
+
+2014-09-30 Eli Zaretskii
+
+ * internals.texi (Stack-allocated Objects): Minor improvements of
+ the wording and the indexing.
+
+2014-09-30 Dmitry Antipov
+
+ * internals.texi (Stack-allocated Objects): Describe this feature.
+
+2014-09-15 Daniel Colascione
+
+ * text.texi (Registers): Make `insert-register' documentation
+ reflect interface change.
+
+2014-09-08 Stefan Monnier
+
+ * functions.texi (Core Advising Primitives): Add a note about the
+ confusing treatment of `interactive' for :filter-args (bug#18399).
+
+2014-09-07 Michael Albinus
+
+ * strings.texi (Text Comparison): Describe `string-collate-equalp'
+ and `string-collate-lessp'.
+
+2014-09-06 Leo Liu
+
+ * control.texi (Pattern matching case statement): Document vector
+ qpattern. (Bug#18327)
+
+2014-08-29 Dmitry Antipov
+
+ * lists.texi (Functions that Rearrange Lists):
+ Remove description of sort ...
+ * sequences.texi (Sequence Functions): ... and generalize
+ it for sequences. Add an example.
+
+2014-08-28 Eli Zaretskii
+
+ * display.texi (Bidirectional Display): Update the Emacs's class
+ of bidirectional conformance.
+
+2014-08-27 Dmitry Antipov
+
+ * eval.texi (Eval): Mention possible recovery from stack overflow.
+
2014-07-11 Eli Zaretskii
* internals.texi (Garbage Collection): Fix last change.
@@ -133,8 +406,8 @@
2014-05-15 Dmitry Antipov