Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

This commit is contained in:
K. Handa 2016-01-14 21:55:43 +09:00
commit 641a3472ef
2274 changed files with 4788 additions and 3896 deletions

4
.gitattributes vendored
View file

@ -1,6 +1,6 @@
# Attributes of Emacs files in the Git repository.
# Copyright 2015 Free Software Foundation, Inc.
# Copyright 2015-2016 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
@ -34,12 +34,14 @@ test/etags/html-src/algrthms.html whitespace=cr-at-eol
doc/misc/texinfo.tex -whitespace=blank-at-eol
# Some files should not be treated as text when diffing or merging.
*.cur binary
*.gpg binary
*.gz binary
*.icns binary
*.ico binary
*.pbm binary
*.pdf binary
*.pif binary
*.png binary
*.sig binary
*.tiff binary

View file

@ -233,7 +233,7 @@ is still reproducible.
The process of going through old or new bugs and acting on them is
called bug triage. This process is described in the file
admin/notes/triage.
admin/notes/bug-triage.
** Document your changes.
@ -262,12 +262,20 @@ Emacs uses ERT, Emacs Lisp Regression Testing, for testing. See (info
"(ert)") or https://www.gnu.org/software/emacs/manual/html_node/ert/
for more information on writing and running tests.
If your test lasts longer than some few seconds, mark it in its
`ert-deftest' definition with ":tags '(:expensive-test)".
To run tests on the entire Emacs tree, run "make check" from the
top-level directory. Most tests are in the directory
"test/". From the "test/" directory, run "make
<filename>" to run the tests for <filename>.el(c). See
"test/Makefile" for more information.
Tests which are tagged ":expensive-test" are enabled additionally, if
you run "make check-expensive" from the top-level directory. "make
<filename>" as mentioned above incorporates expensive tests for
<filename>.el(c).
** Understanding Emacs Internals.
The best way to understand Emacs Internals is to read the code,

View file

@ -14700,7 +14700,7 @@
;; coding: utf-8
;; End:
Copyright (C) 1993-1999, 2001-2015 Free Software Foundation, Inc.
Copyright (C) 1993-1999, 2001-2016 Free Software Foundation, Inc.
This file is part of GNU Emacs.

View file

@ -1,3 +1,114 @@
2016-01-09 Andrew Hyatt <ahyatt@gmail.com>
Adding example replies to bug-triage.
* admin/notes/bug-triage: Added example replies. Also, as requested,
making the process notes into more of a checklist.
2016-01-08 Andrew Hyatt <ahyatt@gmail.com>
Rename the notes/admin/triage file to bug-triage.
* CONTRIBUTE: Change reference to the triage file name.
* admin/notes/triage: Rename file to admin/notes/bug-triage.
2016-01-07 Glenn Morris <rgm@gnu.org>
Allow creation of loaddefs files without timestamps.
* lisp/emacs-lisp/autoload.el (autoload-timestamps): New variable.
(autoload-generate-file-autoloads, update-directory-autoloads):
If autoload-timestamps is nil, write "t" instead of file timestamp.
(autoload-find-destination, update-directory-autoloads):
If timestamp is "t", use the modtime of the output file instead.
2016-01-06 Glenn Morris <rgm@gnu.org>
Doc tweaks.
* lisp/calendar/cal-hebrew.el (diary-hebrew-list-entries):
* lisp/calendar/cal-iso.el (calendar-iso-to-absolute)
(calendar-iso-from-absolute):
* lisp/calendar/cal-tex.el (cal-tex-comment):
* lisp/calendar/solar.el (calendar-time-display-form): Doc tweaks.
2016-01-06 Glenn Morris <rgm@gnu.org>
Build tweaks related to tags files.
* lib-src/Makefile.in (tagsfiles): New variable.
(TAGS): Also depend on the source files. Use our own etags program.
* lisp/Makefile.in (ETAGS): Add EXEEXT.
(lisptagsfiles1, lisptagsfiles2, lisptagsfiles3, lisptagsfiles4):
Remove.
(tagsfiles): New, replacing lisptagsfiles1 etc.
Remove irrelevant source files here rather than in the TAGS rule.
(${ETAGS}): New rule.
(TAGS): Also depend on the etags executable.
* lwlib/Makefile.in (EXEEXT): New, set by configure.
(ETAGS): Add EXEEXT.
(${ETAGS}): New rule.
(ctagsfiles): Use "wildcard".
(TAGS): Also depend on the etags executable.
* nt/Makefile.in (ETAGS, tagsfiles): New variables.
(${ETAGS}): New rule.
(TAGS): Fix dependencies.
* oldXMenu/Makefile.in (EXEEXT): New, set by configure.
(ETAGS): New variable, replacing $TAGS. Use our own etags program.
Remove "-t" argument.
(${ETAGS}): New rule.
(tagsfiles): New variable.
(TAGS): New rule, with proper dependencies.
* src/Makefile.in (ETAGS): Add EXEEXT. Add a build rule.
(ctagsfiles1, ctagsfiles2): Use "wildcard".
(ctagsfiles3): Remove.
(TAGS): Depend on etags.
(../lisp/TAGS, $(lwlibdir)/TAGS): Let the rules in the relevant
directories decide if updates are needed.
2016-01-06 Glenn Morris <rgm@gnu.org>
* lisp/Makefile.in (CAL_SRC): Skip calendar.el.
2016-01-06 Glenn Morris <rgm@gnu.org>
* test/lisp/emacs-lisp/package-tests.el
(package-test-macro-compilation): Fixup branch merge.
2016-01-05 Eli Zaretskii <eliz@gnu.org>
Fix fallout from merging emacs-25 branch in test/
* .gitignore: Update for the new place of biditest.txt.
* test/automated/: Directory removed. All files moved to their
proper places.
* test/etags/: Directory removed. All files moved to their proper
places.
* test/automated/url-parse-tests.el: File removed; it was an exact
copy of the same file in test/lisp/url/.
* test/automated/url-expand-tests.el: Moved to test/lisp/url/.
2016-01-04 Paul Eggert <eggert@cs.ucla.edu>
Spelling fixes.
2016-01-04 Daniel Colascione <dancol@dancol.org>
Let users disable unsafe signal handling code
* src/keyboard.c (syms_of_keyboard): New user variables
`attempt-stack-overflow-recovery' and
`attempt-orderly-shutdown-on-fatal-signal'.
* src/sysdep.c (stack_overflow): Check
`attempt-stack-overflow-recovery'.
* src/emacs.c (terminate_due_to_signal): Check
`attempt-orderly-shutdown-on-fatal-signal'.
2016-01-03 Michael Albinus <michael.albinus@gmx.de>
* configure.ac: Add error message for gfile on Nextstep.
2016-01-03 John Wiegley <johnw@newartisans.com>
Merge branch 'emacs-25-merge'
@ -254,19 +365,7 @@
2015-12-28 Lars Ingebrigtsen <larsi@gnus.org>
shr link traversal fixup
* shr.el (shr-next-link): Don't bug out on adjacent links.
Backport:
(cherry picked from commit 1efc5f8b09273c359683ce13be95fb5df7a84311)
2015-12-28 Lars Ingebrigtsen <larsi@gnus.org>
shr link traversal fixup
* shr.el (shr-next-link): Don't bug out on adjacent links.
* lisp/net/shr.el (shr-next-link): Don't bug out on adjacent links.
2015-12-28 Tom Tromey <tom@tromey.com>
@ -441,18 +540,6 @@
closed connection, this may already have been detected and
`erc-server-last-received-time' has been set to nil (bug#13608).
2015-12-27 David Edmondson <dme@dme.org>
Proxy error in erc with multiple clients
* lisp/erc/erc.el (erc-channel-receive-names): Fix errors
generated when multiple IRC clients talk to a single IRC proxy
(bug#19034).
Backport:
(cherry picked from commit 507e98a54d1aa37823c64993d6b59257a82fe8f4)
2015-12-27 David Edmondson <dme@dme.org>
Proxy error in erc with multiple clients
@ -472,44 +559,17 @@
2015-12-27 Jens Lechtenboerger <jens.lechtenboerger@fsfe.org>
Fix mml-sec build warnings
* lisp/gnus/mml-sec.el: Fix warnings by adding autoloads
(bug#18718).
Backport:
(cherry picked from commit 3603097f62f5f4aa5451716e9ac380161f6829e2)
2015-12-27 Jens Lechtenboerger <jens.lechtenboerger@fsfe.org>
Fix mml-sec build warnings
* lisp/gnus/mml-sec.el: Fix warnings by adding autoloads
(bug#18718).
2015-12-27 Lars Ingebrigtsen <larsi@gnus.org>
Don't insert erc logs at the end
* erc-log.el (erc-log-setup-logging): Insert the previous log
* lisp/erc/erc-log.el (erc-log-setup-logging): Insert the previous log
at the start of the buffer, not at the end (bug#20496).
2015-12-27 Lars Ingebrigtsen <larsi@gnus.org>
(eww-setup-buffer): Restore left-to-right defaults
* eww.el (eww-setup-buffer): Restore left-to-right defaults.
Backport:
(cherry picked from commit 96c874b96b617c124d500a94de761a61f2a08685)
2015-12-27 Lars Ingebrigtsen <larsi@gnus.org>
(eww-setup-buffer): Restore left-to-right defaults
* eww.el (eww-setup-buffer): Restore left-to-right defaults.
* lisp/net/eww.el (eww-setup-buffer): Restore left-to-right defaults.
2015-12-27 Lars Ingebrigtsen <larsi@gnus.org>
@ -676,27 +736,6 @@
Include the tests for the URL parsing fixes
2015-12-26 Alain Schneble <a.s@realize.ch>
Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044)
* test/lisp/url/url-parse-tests.el: Add tests covering url-generic-parse-url.
* test/lisp/url/url-expand-tests.el: Add tests covering url-expand-file-name.
* lisp/url/url-parse.el (url-generic-parse-url): Keep empty fragment
information in URL-struct.
* lisp/url/url-parse.el (url-path-and-query): Do not artificially turn empty
path and query into nil path and query, respectively.
* lisp/url/url-expand.el (url-expander-remove-relative-links): Do not turn
empty path into an absolute ("/") path.
* lisp/url/url-expand.el (url-expand-file-name): Properly resolve
fragment-only URIs. Do not just return them unchanged.
* lisp/url/url-expand.el (url-default-expander): An empty path in the relative
reference URI should not drop the last segment.
Backport:
(cherry picked from commit b792ecea1715e080ad8e232d3d154b8a25d2edfb)
2015-12-26 Eli Zaretskii <eliz@gnu.org>
Document 'url-user-agent'.
@ -751,43 +790,8 @@
2015-12-25 Andreas Schwab <schwab@linux-m68k.org>
Don't treat /foo/bar:mumble as ange-ftp address
* lisp/net/browse-url.el (browse-url-filename-alist): Match colons
only in the first component. (bug#5362)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Follow <meta> redirects in eww
Merge conflict, but I think I resolved it.
Follow meta refresh tags in eww
* eww.el (eww-tag-meta): Follow meta refresh tags (bug#22234).
Backport:
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Allow http://user:pass@foo/ URLs again
* lisp/url/url-auth.el (url-basic-auth): Allow explicit
user/passwords in URLs (bug#19046).
Backport:
(cherry picked from commit b563715a2db265517d5a77f165a42afa1e233fdd)
2015-12-25 Samer Masterson <samer@samertm.com>
Autoload url-insert-buffer-contents
* lisp/url/url-handlers.el: Add autoload cookie so that
`package-list-packages' doesn't bug out (bug#21927) (tiny change)
Backport:
(cherry picked from commit 7a7b5b492ff9929eecd90c4564db6fbf3b192323)
* lisp/net/browse-url.el (browse-url-filename-alist): Match colons
only in the first component. (bug#5362)
2015-12-25 Eli Zaretskii <eliz@gnu.org>
@ -797,157 +801,6 @@
backslashes to forward slashes while decoding default-directory
of the initially-created buffers.
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
More eww file name coding fixes
* eww.el (eww-decode-url-file-name): Use the base coding
system to check for encodability.
Backport:
(cherry picked from commit a8627008abe4ab339df19b417776da28b3ce0fc7)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Always save eww history
* eww.el (eww-setup-buffer): Always save history, even when
called from outside the eww buffer (bug#19638).
Backport:
(cherry picked from commit 2a0f18d9b6ce0ccce3d9c4a4a3b5743bae71b41e)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Default web pages to right-to-left
* eww.el (eww-mode): Most web pages are left-to-right, so make
that the default (bug#19801).
* shr.el (shr-tag-html): Respect "dir" attributes
(left-to-right, right-to-left).
Backport:
(cherry picked from commit 9e089ec8a380ec3758fcf1564c5f86dc92c68c2a)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Make toggling checkboxes work again
* eww.el (eww-update-field): Make toggling checkboxes work
again (bug#21881).
Backport:
(cherry picked from commit 5e56f606952e5e81b4d3a93ea70e791b74b33041)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Don't store cookies with empty names
* lisp/url/url-cookie.el (url-cookie-store): Refuse to store
cookies with empty names (bug#21936).
Backport:
(cherry picked from commit 9f0fd7cb1aec3eb9e2e0f7b8854c30870286d96c)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Stop rendering HTML before specdlr exhaustion
Fixes: 22117
* shr.el (shr-descend): Stop rendering before we run out of
specpdl room (bug#22117).
Backport:
(cherry picked from commit 248da292fe46224b0b5a79b632c89cf4de2c2081)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Use cl-reduce, not reduce.
Backport:
(cherry picked from commit fe4606f93b91ff3d046aee0cf21ecc277af7a786)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Allow several <tbody> tags in shr
* shr.el (shr-table-body): New function to find the real body
of a table.
(shr-tag-table): Use it to render several <tbody> tags in a
table (bug#22170).
Backport:
(cherry picked from commit cdaf33029d6620073833876d76056045ecfbc7c4)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Make prettier unique file names in eww
(eww-make-unique-file-name): Make unique file names by making
files like foo(2).jpg instead of foo(1)(2).jpg.
Backport:
(cherry picked from commit edfdd0a6cbdfa9e5e4bd0553e2b489401ca39266)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Decode hex-encoded URLs before using them as file names
* eww.el (eww-decode-url-file-name): New function.
(eww-download-callback): Use it to decode file names before
saving them.
Backport:
(cherry picked from commit af22a010d87516c2a646572fb27512c03057784f)
2015-12-25 Ashish SHUKLA <ashish.is@lostca.se>
Add FreeBSD cert bundle
* doc/misc/emacs-gnutls.texi (Help For Users): Document
FreeBSD bundle.
* lisp/net/gnutls.el (gnutls-trustfiles): Add FreeBSD cert bundle.
Backport:
(cherry picked from commit 60c0f1a18ad88d6dc1a8f4ee5d9d18940eaeb6f7)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Ignore invalid SVG images
* shr.el (shr-tag-svg): Ignore SVG images that have no width
or height, because these can't be displayed by ImageMagick,
anyway.
Backport:
(cherry picked from commit 821107d53c2e390240d25c036b99ebbf9b4a93b6)
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
shr table rendering fix
* shr.el (shr-tag-table): Allow rendering body-less tables
that have headers.
Backport:
(cherry picked from commit b05471e42c17e02c56c87d7599ada0c124a5fe09)
2015-12-25 Eli Zaretskii <eliz@gnu.org>
Restore info about the build host in bug reports
@ -1292,7 +1145,7 @@
2015-12-18 Lele Gaifax <lele@metapensiero.it>
* etc/tutorials/TUTORIAL.it: Update and fix typos.
* etc/tutorials/TUTORIAL.it: Update and fix typos. (Bug#22187)
2015-12-18 Alan Mackenzie <acm@muc.de>
@ -1450,7 +1303,7 @@
* src/xfns.c (compute_tip_xy): Modify *root_x instead of *root_y
when `right' is integer.
2015-12-14 foudfou <foudil.newbie+git@gmail.com>
2015-12-14 foudfou <foudil.newbie+git@gmail.com> (tiny change)
* lisp/ibuffer.el: Add ability to (un-)mark or delete buffers in the region.
@ -2138,7 +1991,7 @@
(ifconfig-program-options): Check the actual program in use.
(arp-program): Check sbin directories.
2015-12-04 (tiny change) Arash Esbati <esbati@gmx.de> (tiny change)
2015-12-04 Arash Esbati <esbati@gmx.de> (tiny change)
Fix wrong-type-argument integer-or-marker-p nil error
@ -2247,7 +2100,6 @@
2015-12-04 Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/emacs-lisp/cl-macs.el (character): Can't be negative
Fixes (bug#21701)
2015-12-04 Daiki Ueno <ueno@gnu.org>
@ -2908,15 +2760,6 @@
* lisp/replace.el (replace-character-fold): Clarify which commands
are affected by this variable.
2015-11-27 Mark Oteiza <mvoteiza@udel.edu>
Backport: Add interactive seek command.
* lisp/mpc.el (mpc-cmd-seekcur): New function.
(mpc-seek-current): New command.
(mpc-mode-menu): Add entry for mpc-seek-current
(mpc-mode-map): Bind mpc-seek-current to "g"
2015-11-27 Dmitry Gutov <dgutov@yandex.ru>
Autoload etags when using its xref backend
@ -3732,12 +3575,6 @@
w32_init_main_thread, instead of calling the requisite APIs once
more.
2015-11-21 Mark Oteiza <mvoteiza@udel.edu>
Backport: Fix issue where a new tempfile was created every refresh
* lisp/mpc.el (mpc-format): Leave dir as relative path
2015-11-21 Eli Zaretskii <eliz@gnu.org>
Call 'window-size-change-functions' for mini-windows
@ -4268,41 +4105,6 @@
* admin/release-process: Improve wording.
2015-11-17 Xue Fuqiao <xfq.free@gmail.com>
Backport: * CONTRIBUTE: Remove information about feature freeze.
(cherry picked from commit ae0653b5ab9ee223751ec389b87011963e1cbbef)
2015-11-17 Xue Fuqiao <xfq.free@gmail.com>
Backport: Document the release process
* admin/notes/versioning: Add information about RC releases.
* admin/release-process: Document the release process.
* admin/authors.el (authors-ignored-files):
* admin/README: Change FOR-RELEASE to release-process.
* CONTRIBUTE:
* admin/notes/bugtracker: Don't mention FOR-RELEASE.
(cherry picked from commit 9a4aa0f5945a03611ae29c516025dbd353bd26ab)
2015-11-17 Xue Fuqiao <xfq.free@gmail.com>
Backport: * admin/release-process: Rename from admin/FOR-RELEASE.
(cherry picked from commit f8cc14b59700e51a4e31139c0a65c8154995e055)
2015-11-17 Xue Fuqiao <xfq.free@gmail.com>
Backport: Mention CONTRIBUTE in README
Mention CONTRIBUTE in README, since it was moved from etc/ to root.
* etc/TODO: Remove the reference to `etc/CONTRIBUTE'.
* README: Mention CONTRIBUTE.
(cherry picked from commit ed2e7e20ae0945288c98091f308f5460c3453873)
2015-11-17 Paul Eggert <eggert@cs.ucla.edu>
Fix docstring quoting problems with '
@ -4438,19 +4240,6 @@
is only called when a construct "looks right" rather than continually.
(c-guess-basic-syntax, CASE 5R): Add a check for the mode being C++ Mode.
2015-11-15 Artur Malabarba <bruce.connor.am@gmail.com>
Backport: * lisp/emacs-lisp/package.el: Fix a decoding issue.
* lisp/url/url-handlers.el (url-insert-file-contents): Move some code to
`url-insert-buffer-contents'.
(url-insert-buffer-contents): New function
(package--with-response-buffer): Use `url-insert-buffer-contents'.
The previous code had some issues with decoding. Refactoring that
function allows us to use the decoding from url-handlers while still
treating both sync and async requests the same.
2015-11-15 Stephen Leake <stephen_leake@stephe-leake.org>
Improve a few doc strings, comments
@ -4628,186 +4417,16 @@
* doc/lispref/internals.texi (Building Emacs): Document that GNU
Make 3.81 or later is now required.
2015-11-14 Artur Malabarba <bruce.connor.am@gmail.com>
Backport: * lisp/emacs-lisp/package.el: Refactor -with-work-buffer-async.
(package--with-work-buffer-async): Reimplement as
`package--with-response-buffer'.
(package--with-work-buffer): Mark obsolete.
(package--with-response-buffer): New macro. This is a more self
contained and less contrived version of
`package--with-work-buffer-async'. It uses keyword arguments,
doesn't have async on the name, doesn't fallback on
`package--with-work-buffer', and has _much_ simpler error
handling. On master, this macro will soon be part of another
library (either standalone or inside url.el), which is why this
commit is not to be merged back.
(package--check-signature, package--download-one-archive)
(package-install-from-archive, describe-package-1): Use it.
(package--download-and-read-archives): Let
`package--download-one-archive' take care of calling
`package--update-downloads-in-progress'.
2015-11-14 Eli Zaretskii <eliz@gnu.org>
* CONTRIBUTE (Branches): Improve wording for back-ported commits.
2015-11-14 Dmitry Gutov <dgutov@yandex.ru>
Merge branch 'master' into emacs-25
2015-11-13 John Wiegley <johnw@newartisans.com>
Merge remote-tracking branch 'origin/master' into emacs-25
2015-11-13 l3thal <kwhite@gnu.org>
Merge branch 'erc-async-reconnect' into emacs-25
Reconnect asynchronously.
2015-11-13 Eli Zaretskii <eliz@gnu.org>
Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25
2015-11-13 Paul Eggert <eggert@cs.ucla.edu>
Port recent XCB changes to 64-bit long int
For historical reasons, libX11 represents 32-bit values like Atoms as
long int even on platforms where long int is 64 bits. XCB doesnt
do that, so adapt the recent XCB code to behave properly on 64-bit
platforms. Also, fix what appears to be a bug in the interpretation
of xcb_get_property_value_length, at least on my Fedora platform
which is running libxcb-1.11-5.fc21.
* src/xfns.c (x_real_pos_and_offsets):
* src/xterm.c (get_current_wm_state):
xcb_get_property_value_length returns a byte count, not a word count.
For 32-bit quantities, xcb_get_property_value returns a vector
of 32-bit words, not of (possibly 64-bit) long int.
Backport.
2015-11-13 Paul Eggert <eggert@cs.ucla.edu>
* src/undo.c (run_undoable_change): Now static.
Backport.
2015-11-13 Eli Zaretskii <eliz@gnu.org>
Remove support for ':timeout' from w32 tray notifications
* src/w32fns.c (Fw32_notification_notify): Delete the code that
supports ':timeout'.
(syms_of_w32fns): Don't DEFSYM ':timeout'. This avoids clashes
with dbusbind.c when D-Bus is compiled in.
* doc/lispref/os.texi (Desktop Notifications): Don't mention
':timeout'.
Backport.
2015-11-13 Juanma Barranquero <lekktu@gmail.com>
* test/automated/simple-test.el: Add test for bug#20698 (bug#21885)
(simple-test--transpositions): New macro.
(simple-transpose-subr): New test.
Backport.
2015-11-13 Juanma Barranquero <lekktu@gmail.com>
* lisp/progmodes/elisp-mode.el: Declare function `project-roots'
Backport.
2015-11-13 Juanma Barranquero <lekktu@gmail.com>
* src/undo.c: Small fixes for previous change
(run_undoable_change): Mark void argument list.
(record_property_change): Remove unused variable `boundary'.
Backport.
2015-11-13 Eli Zaretskii <eliz@gnu.org>
Add a few more variables to redisplay--variables
* lisp/frame.el (redisplay--variables): Add bidi-paragraph-direction
and bidi-display-reordering to the list.
Backport.
2015-11-13 Eli Zaretskii <eliz@gnu.org>
* lisp/loadup.el: Enlarge the size of the hash table to 80000.
Backport.
2015-11-13 Eli Barzilay <eli@barzilay.org>
Fix point positioning after transposing with negative arg
* lisp/simple.el (transpose-subr): When invoked with a negative
argument, move point to after the transposed text, like we do
when invoked with a positive argument. (Bug#21885)
Backport.
2015-11-13 Eli Zaretskii <eliz@gnu.org>
Fix last change in shr.el
* lisp/net/shr.el (shr--have-one-fringe-p): Rename from
have-fringes-p. All callers changed. Doc fix. (Bug#21895)
Backport.
2015-11-13 Eli Zaretskii <eliz@gnu.org>
Fix last change
* src/w32fns.c (syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]:
Don't DEFSYM tray notification symbols if D-Bus is being used.
Backport.
2015-11-13 Eli Zaretskii <eliz@gnu.org>
Another fix for MinGW64 and Cygwin builds due to notifications
* src/w32fns.c: Ifdef away tray notification code if D-Bus is
being compiled into Emacs.
(syms_of_w32fns) [WINDOWSNT && !HAVE_DBUS]: Don't defsubr
Sw32_notification_notify and Sw32_notification_close if the code
is not compiled. Reported by Andy Moreton <andrewjmoreton@gmail.com>.
Backport.
2015-11-13 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Remove intern calls and XXX comments from Fx_export_frames
* src/xfns.c (Fx_export_frames): Use Qpdf, Qpng, Qpostscript, and
Qsvg instead of intern calls. Use "postscript" instead of "ps"
for consistency with image types. Remove XXX comments.
(syms_of_xfns) <Qpdf>: DEFSYM it.
Backport.
2015-11-13 Michael Albinus <michael.albinus@gmx.de>
Adapt Tramp version, do not merge with master
* doc/misc/trampver.texi (trampver):
* lisp/net/trampver.el (tramp-version): Set to "2.2.13-25.1".
2015-11-11 Alan Mackenzie <acm@muc.de>
First commit to scratch/follow. Make Isearch work with Follow Mode, etc.
@ -4905,23 +4524,6 @@
* lisp/url/url-expand.el (url-default-expander): An empty path in the relative
reference URI should not drop the last segment.
2015-12-25 Alain Schneble <a.s@realize.ch>
Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044)
* test/lisp/url/url-parse-tests.el: Add tests covering url-generic-parse-url.
* test/lisp/url/url-expand-tests.el: Add tests covering url-expand-file-name.
* lisp/url/url-parse.el (url-generic-parse-url): Keep empty fragment
information in URL-struct.
* lisp/url/url-parse.el (url-path-and-query): Do not artificially turn empty
path and query into nil path and query, respectively.
* lisp/url/url-expand.el (url-expander-remove-relative-links): Do not turn
empty path into an absolute ("/") path.
* lisp/url/url-expand.el (url-expand-file-name): Properly resolve
fragment-only URIs. Do not just return them unchanged.
* lisp/url/url-expand.el (url-default-expander): An empty path in the relative
reference URI should not drop the last segment.
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Let url use default file modes when copying files
@ -5030,10 +4632,6 @@
2015-12-25 Lars Ingebrigtsen <larsi@gnus.org>
Stop rendering HTML before specdlr exhaustion
Fixes: 22117
* shr.el (shr-descend): Stop rendering before we run out of
specpdl room (bug#22117).
@ -5065,13 +4663,9 @@
(eww-download-callback): Use it to decode file names before
saving them.
2015-12-24 Ashish SHUKLA <ashish.is@lostca.se>
Add FreeBSD cert bundle
* doc/misc/emacs-gnutls.texi (Help For Users): Document
FreeBSD bundle.
2015-12-24 Ashish SHUKLA <ashish.is@lostca.se> (tiny change)
* doc/misc/emacs-gnutls.texi (Help For Users): Document FreeBSD bundle.
* lisp/net/gnutls.el (gnutls-trustfiles): Add FreeBSD cert bundle.
2015-12-24 Lars Ingebrigtsen <larsi@gnus.org>
@ -25221,14 +24815,14 @@
This file records repository revisions from
commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to
commit fb6d826c69939c2d016c1b824d4e9bcb53d9e643 (inclusive).
commit 384cf23c6ed05e1f151032958a2cc2bb8100344b (inclusive).
See ChangeLog.1 for earlier changes.
;; Local Variables:
;; coding: utf-8
;; End:
Copyright (C) 2015 Free Software Foundation, Inc.
Copyright (C) 2015-2016 Free Software Foundation, Inc.
This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
# Build Emacs from a fresh tarball or version-control checkout.
# Copyright (C) 2011-2015 Free Software Foundation, Inc.
# Copyright (C) 2011-2016 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#

View file

@ -1,5 +1,5 @@
GNU Emacs Installation Guide
Copyright (C) 1992, 1994, 1996-1997, 2000-2015 Free Software Foundation,
Copyright (C) 1992, 1994, 1996-1997, 2000-2016 Free Software Foundation,
Inc.
See the end of the file for license conditions.

View file

@ -64,7 +64,7 @@ never platform-specific.
Copyright (C) 2002-2015 Free Software Foundation, Inc.
Copyright (C) 2002-2016 Free Software Foundation, Inc.
This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
### @configure_input@
# Copyright (C) 1992-2015 Free Software Foundation, Inc.
# Copyright (C) 1992-2016 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
@ -929,7 +929,7 @@ have-tests:
exit 1; \
fi
check check-maybe: have-tests all
check check-maybe check-expensive: have-tests all
$(MAKE) -C test $@
dist:
@ -946,7 +946,7 @@ $(DOCS):
$(MAKE) -C doc/$(subst -, ,$@)
.PHONY: $(DOCS) docs pdf ps
.PHONY: info dvi dist check check-maybe html info-real info-dir check-info
.PHONY: info dvi dist check check-maybe check-expensive html info-real info-dir check-info
## TODO add etc/refcards.
docs: $(DOCS)

2
README
View file

@ -1,4 +1,4 @@
Copyright (C) 2001-2015 Free Software Foundation, Inc.
Copyright (C) 2001-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.

View file

@ -2577,7 +2577,7 @@
;; coding: utf-8
;; End:
Copyright (C) 2001-2015 Free Software Foundation, Inc.
Copyright (C) 2001-2016 Free Software Foundation, Inc.
This file is part of GNU Emacs.

View file

@ -218,9 +218,6 @@ Nicolas Petton
lisp/emacs-lisp/subr-x.el
lisp/arc-mode.el
Xue Fuqiao
doc/lispref/*
Tassilo Horn
lisp/doc-view.el

View file

@ -1,4 +1,4 @@
Copyright (C) 2001-2015 Free Software Foundation, Inc.
Copyright (C) 2001-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.

View file

@ -1,6 +1,6 @@
;;; admin.el --- utilities for Emacs administration
;; Copyright (C) 2001-2015 Free Software Foundation, Inc.
;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@ -96,13 +96,74 @@ Root must be the root of an Emacs source tree."
(submatch (1+ (in "0-9."))))))
;; 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"))
(let ((newmajor (match-string 1 version)))
(set-version-in-file root "src/msdos.c" newmajor
(rx (and "Vwindow_system_version" (1+ not-newline)
?\( (submatch (1+ (in "0-9"))) ?\))))
(set-version-in-file root "etc/refcards/ru-refcard.tex" newmajor
"\\\\newcommand{\\\\versionemacs}\\[0\\]\
{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")))
(let* ((oldversion
(with-temp-buffer
(insert-file-contents (expand-file-name "README" root))
(if (re-search-forward "version \\([0-9.]*\\)" nil t)
(version-to-list (match-string 1)))))
(oldmajor (if oldversion (car oldversion)))
(newversion (version-to-list version))
(newmajor (car newversion))
(newshort (format "%s.%s" newmajor
(+ (cadr newversion)
(if (eq 2 (length newversion)) 0 1))))
(majorbump (and oldversion (not (equal oldmajor newmajor))))
(minorbump (and oldversion (not majorbump)
(not (equal (cadr oldversion) (cadr newversion)))))
(newsfile (expand-file-name "etc/NEWS" root))
(oldnewsfile (expand-file-name (format "etc/NEWS.%s" oldmajor) root)))
(when (and majorbump
(not (file-exists-p oldnewsfile)))
(rename-file newsfile oldnewsfile)
(find-file oldnewsfile) ; to prompt you to commit it
(copy-file oldnewsfile newsfile)
(with-temp-buffer
(insert-file-contents newsfile)
(re-search-forward "is about changes in Emacs version \\([0-9]+\\)")
(replace-match (number-to-string newmajor) nil nil nil 1)
(re-search-forward "^See files \\(NEWS\\)")
(replace-match (format "NEWS.%s, NEWS" oldmajor) nil nil nil 1)
(let ((start (line-beginning-position)))
(search-forward "in older Emacs versions")
(or (equal start (line-beginning-position))
(fill-region start (line-beginning-position 2))))
(re-search-forward "^ $")
(forward-line -1)
(let ((start (point)))
(goto-char (point-max))
(re-search-backward "^ $" nil nil 2)
(delete-region start (line-beginning-position 0)))
(write-region nil nil newsfile)))
(when (or majorbump minorbump)
(find-file newsfile)
(goto-char (point-min))
(if (re-search-forward (format "^\\* .*in Emacs %s" newshort) nil t)
(progn
(kill-buffer)
(message "No need to update etc/NEWS"))
(goto-char (point-min))
(re-search-forward "^ $")
(forward-line -1)
(dolist (s '("Installation Changes" "Startup Changes" "Changes"
"Editing Changes"
"Changes in Specialized Modes and Packages"
"New Modes and Packages"
"Incompatible Lisp Changes"
"Lisp Changes"))
(insert (format "\n \n* %s in Emacs %s\n" s newshort)))
(insert (format "\n \n* Changes in Emacs %s on \
Non-Free Operating Systems\n" newshort)))
;; Because we skip "bump version" commits when merging between branches.
;; Probably doesn't matter in practice, because NEWS changes
;; will only happen on master anyway.
(message "Commit any NEWS changes separately")))
(message "Setting version numbers...done"))
;; Note this makes some assumptions about form of short copyright.

View file

@ -1,6 +1,6 @@
/* Allocate X colors. Used for testing with dense colormaps.
Copyright (C) 2001-2015 Free Software Foundation, Inc.
Copyright (C) 2001-2016 Free Software Foundation, Inc.
This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
;;; authors.el --- utility for maintaining Emacs's AUTHORS file
;; Copyright (C) 2000-2015 Free Software Foundation, Inc.
;; Copyright (C) 2000-2016 Free Software Foundation, Inc.
;; Author: Gerd Moellmann <gerd@gnu.org>
;; Maintainer: Kim F. Storm <storm@cua.dk>

View file

@ -1,7 +1,7 @@
#! /usr/bin/perl
# Build Emacs in several different configurations.
# Copyright (C) 2001-2015 Free Software Foundation, Inc.
# Copyright (C) 2001-2016 Free Software Foundation, Inc.
# This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
;;; bzrmerge.el --- help merge one Emacs bzr branch to another
;; Copyright (C) 2010-2015 Free Software Foundation, Inc.
;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
;; Keywords: maint

View file

@ -1,6 +1,6 @@
### @configure_input@
# Copyright (C) 2015 Free Software Foundation, Inc.
# Copyright (C) 2015-2016 Free Software Foundation, Inc.
# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
# National Institute of Advanced Industrial Science and Technology (AIST)

View file

@ -1,6 +1,6 @@
#!/bin/sh
# Copyright (C) 2015 Free Software Foundation, Inc.
# Copyright (C) 2015-2016 Free Software Foundation, Inc.
# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
# National Institute of Advanced Industrial Science and Technology (AIST)

View file

@ -1,4 +1,4 @@
Copyright (C) 2009-2015 Free Software Foundation, Inc.
Copyright (C) 2009-2016 Free Software Foundation, Inc.
Copyright (C) 2009, 2010, 2011
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H13PRO009

View file

@ -1,6 +1,6 @@
;;; cus-test.el --- tests for custom types and load problems
;; Copyright (C) 1998, 2000, 2002-2015 Free Software Foundation, Inc.
;; Copyright (C) 1998, 2000, 2002-2016 Free Software Foundation, Inc.
;; Author: Markus Rost <markus.rost@mathematik.uni-regensburg.de>
;; Maintainer: Markus Rost <rost@math.ohio-state.edu>

View file

@ -1,6 +1,6 @@
#! /bin/sh
# Copyright (C) 2001-2015 Free Software Foundation, Inc.
# Copyright (C) 2001-2016 Free Software Foundation, Inc.
# This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
;;; find-gc.el --- detect functions that call the garbage collector
;; Copyright (C) 1992, 2001-2015 Free Software Foundation, Inc.
;; Copyright (C) 1992, 2001-2016 Free Software Foundation, Inc.
;; Maintainer: emacs-devel@gnu.org

View file

@ -1,6 +1,6 @@
;;; gitmerge.el --- help merge one Emacs branch into another
;; Copyright (C) 2010-2015 Free Software Foundation, Inc.
;; Copyright (C) 2010-2016 Free Software Foundation, Inc.
;; Authors: David Engster <deng@randomsample.de>
;; Stefan Monnier <monnier@iro.umontreal.ca>

View file

@ -1,6 +1,6 @@
### @configure_input@
## Copyright (C) 2013-2015 Free Software Foundation, Inc.
## Copyright (C) 2013-2016 Free Software Foundation, Inc.
## This file is part of GNU Emacs.

View file

@ -1,5 +1,5 @@
;;; c.by -- LL grammar for C/C++ language specification
;; Copyright (C) 1999-2015 Free Software Foundation, Inc.
;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
;;
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; David Ponce <david@dponce.com>

View file

@ -1,6 +1,6 @@
;;; semantic-grammar.wy -- LALR grammar of Semantic input grammars
;;
;; Copyright (C) 2002-2015 Free Software Foundation, Inc.
;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
;;
;; Author: David Ponce <david@dponce.com>
;; Maintainer: David Ponce <david@dponce.com>

View file

@ -1,6 +1,6 @@
;;; java-tags.wy -- Semantic LALR grammar for Java
;; Copyright (C) 2002-2015 Free Software Foundation, Inc.
;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
;;
;; Author: David Ponce <david@dponce.com>
;; Maintainer: David Ponce <david@dponce.com>

View file

@ -1,6 +1,6 @@
;;; javascript-jv.wy -- LALR grammar for Javascript
;; Copyright (C) 2005-2015 Free Software Foundation, Inc.
;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
;; Copyright (C) 1998-2011 Ecma International.
;; Author: Joakim Verona

View file

@ -1,6 +1,6 @@
;;; make.by -- BY notation for Makefiles.
;; Copyright (C) 1999-2015 Free Software Foundation, Inc.
;; Copyright (C) 1999-2016 Free Software Foundation, Inc.
;;
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; David Ponce <david@dponce.com>

View file

@ -1,6 +1,6 @@
;;; python.wy -- LALR grammar for Python
;; Copyright (C) 2002-2015 Free Software Foundation, Inc.
;; Copyright (C) 2002-2016 Free Software Foundation, Inc.
;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
;; 2009, 2010 Python Software Foundation; All Rights Reserved

View file

@ -1,6 +1,6 @@
;;; scheme.by -- Scheme BNF language specification
;; Copyright (C) 2001-2015 Free Software Foundation, Inc.
;; Copyright (C) 2001-2016 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
;;; srecode-template.wy --- Semantic Recoder Template parser
;; Copyright (C) 2005-2015 Free Software Foundation, Inc.
;; Copyright (C) 2005-2016 Free Software Foundation, Inc.
;; Author: Eric Ludlam <zappo@gnu.org>
;; Keywords: syntax

View file

@ -2,7 +2,7 @@
# Build Emacs with various options for profiling, debugging,
# with and without warnings enabled etc.
# Copyright (C) 2001-2015 Free Software Foundation, Inc.
# Copyright (C) 2001-2016 Free Software Foundation, Inc.
# This file is part of GNU Emacs.

View file

@ -4,7 +4,7 @@
#
# admin/merge-gnulib
# Copyright 2012-2015 Free Software Foundation, Inc.
# Copyright 2012-2016 Free Software Foundation, Inc.
# This file is part of GNU Emacs.

View file

@ -4,7 +4,7 @@
#
# admin/merge-pkg-config
# Copyright 2014-2015 Free Software Foundation, Inc.
# Copyright 2014-2016 Free Software Foundation, Inc.
# This file is part of GNU Emacs.

102
admin/notes/bug-triage Normal file
View file

@ -0,0 +1,102 @@
HOW TO TRIAGE EMACS BUGS -*- outline -*-
This document just describes the procedure of triaging bugs, for information on
how to work with the bug tracker, see the bugtracker file in this same directory
for the basics. You can also install the debbugs ELPA package for access to M-x
debbugs-gnu, an emacs interface to debbugs, and M-x debbugs-org, an emacs
interface via org-mode.
* Bug backlog triage procedure
The goal of this triage is to prune down the list of old bugs, closing
the ones that are not reproducible on the current release.
1. To start, enter debbugs mode (either debbugs-gnu, debbugs-org, or via the
web browser), and accept the default list option of bugs that have severity
serious, important, or normal.
2. This will also show closed bugs that have yet to be archived. You can
filter these out in debbugs-gnu with "x" (debbugs-gnu-toggle-suppress).
3. For each bug, we want to primarily make sure it is still
reproducible. A bug can and should stay open as long as it is
still a bug and no one has fixed it. The following is a
suggested checklist to follow for handling these bugs, along with
example replies. The various closings, taggings, etc, are done
with debbugs control messages, which in debbugs-gnu is initiated
with a "C".
[ ] Read the mail thread for the bug. Find out if anyone has
been able to reproduce this on the current release. If
someone has been able to, then your work is finished for this
bug.
[ ] Make sure there's enough information to reproduce the bug.
It should be very clear how to reproduce. If not, please ask
for specific steps to reproduce. If you don't get them, and
you can't reproduce without them, you can close as
"doneunreproducible". Sometimes there is specific hardware
involved, such as particular models of keyboards, or it may
simply involve a platform you don't have access to. It's
fine to ignore those, and let a future triager that is better
equipped to reproduce it handle it.
An example reply asking for clear reproduction steps would be
something like: "Hi! In the interest of seeing whether this
is reproducible, and to aid anyone who will look at this bug
in the future, can you please give instructions on how to
reproduce this bug starting from an emacs without
configuration ("emacs -Q")?
[ ] If there is enough detail to reproduce, but no one has
mentioned being able to reproduce on the current release,
read the bug description and attempt to reproduce on an emacs
started with "emacs -Q" (the goal is to not let our personal
configs interfere with bug testing).
If you can reproduce, then reply on the thread (either on the
original message, or anywhere you find appropriate) that you
can reproduce this on the current release. If your
reproduction gives additional info (such as a backtrace),
then add that as well, since it will help whoever attempts to
fix it.
Example reply: "I'd just like to add that I can reproduce
this on the latest version of Emacs, Emacs 25."
If you can't reproduce, state that you can't reproduce it on
the current release, ask if they can try again against the
current release. Tag the bug as "unreproducable". Wait a
few weeks for their reply - if they can reproduce it, then
that's great, otherwise close as "doneunreproducible".
Example reply: "I've attempted to reproduce this on the
latest version of emacs, Emacs 25, but haven't been able to.
Can you try to reproduce this on this version, and let us
know if you are able to? If I don't hear back in a few
weeks, I'll just close this bug as unreproducible."
[ ] Check that the priority is reasonable. Most bugs should be
marked as normal, but crashers and security issues can be
marked as "severe".
4. Your changes will take some time to take effect. After a period of minutes
to hours, you will get a mail telling you the control message has been
processed. At this point, if there were no errors detected, you and
everyone else can see your changes. If there are errors, read the error
text - if you need help, consulting the bugtracker documentation in this
same directory.
* New bug triage process
The goal of the new bug triage process is similar to the backlog triage process,
except that the focus is on prioritizing the bug, and making sure it is has
necessary information for others to act on.
For each new bug, ask the following questions:
1. Is the bug report written in a way to be easy to reproduce (starts from
emacs -Q, etc.)? If not, ask the reporter to try and reproduce it on an
emacs without customization.
2. Is the bug report written against the latest emacs? If not, try to
reproduce on the latest version, and if it can't be reproduced, ask the
reporter to try again with the latest version.
3. Is the bug the same as another bug? If so, merge the bugs.
4. What is the priority of the bug? Add a priority: critical, grave, serious,
important, normal, minor, or wishlist.
5. Who should be the owner? This depends on what component the bug is part
of. You can look at the admin/MAINTAINERS file (then you can just search
emacs-devel to match the name with an email address).

View file

@ -1,4 +1,4 @@
Copyright (C) 2007-2015 Free Software Foundation, Inc.
Copyright (C) 2007-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.

View file

@ -1,4 +1,4 @@
Copyright (C) 2002-2015 Free Software Foundation, Inc.
Copyright (C) 2002-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.

View file

@ -1,6 +1,6 @@
-*- mode: outline; coding: utf-8 -*-
Copyright (C) 2013-2015 Free Software Foundation, Inc.
Copyright (C) 2013-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.
NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA

View file

@ -1,6 +1,6 @@
-*- coding: utf-8; mode: text; -*-
Copyright (C) 2007-2015 Free Software Foundation, Inc.
Copyright (C) 2007-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.
From README.multi-tty in the multi-tty branch.

View file

@ -1,68 +0,0 @@
HOW TO TRIAGE EMACS BUGS -*- outline -*-
This document just describes the procedure of triaging bugs, for information on
how to work with the bug tracker, see the bugtracker file in this same directory
for the basics. You can also install the debbugs ELPA package for access to M-x
debbugs-gnu, an emacs interface to debbugs, and M-x debbugs-org, an emacs
interface via org-mode.
* Bug backlog triage procedure
The goal of this triage is to prune down the list of old bugs, closing
the ones that are not reproducible on the current release.
1. To start, enter debbugs mode (either debbugs-gnu, debbugs-org, or via the
web browser), and accept the default list option of bugs that have severity
serious, important, or normal.
2. This will also show closed bugs that have yet to be archived. You can
filter these out in debbugs-gnu with "x" (debbugs-gnu-toggle-suppress).
3. For each bug, do the following:
- Read the mail thread for the bug. Find out if anyone has been able to
reproduce this on the current release.
- If someone has been able to, then your work is finished for this bug.
- Make sure there's enough information to reproduce the bug. It should be
very clear how to reproduce. If not, please ask for specific steps to
reproduce. If you don't get them, and you can't reproduce without them,
you can close as "doneunreproducible".
- If no one has mentioned being able to reproduce on the current release,
read the bug description and attempt to reproduce on an emacs started
with "emacs -Q" (the goal is to not let our personal configs interfere
with bug testing).
- If you can reproduce, then reply on the thread (either on the original
message, or anywhere you find appropriate) that you can reproduce this on
the current release. If your reproduction gives additional info (such as
a backtrace), then add that as well, since it will help whoever attempts
to fix it.
- If you can't reproduce, state that you can't reproduce it on the current
release, ask if they can try again against the current release. Tag the
bug as "unreproducable". Wait a few weeks for their reply - if they can
reproduce it, then that's great, otherwise close as "doneunreproducible".
- If the bug ends up still open, make sure the priority and other tags
seems reasonable.
4. Your changes will take some time to take effect. After a period of minutes
to hours, you will get a mail telling you the control message has been
processed. At this point, if there were no errors detected, you and
everyone else can see your changes. If there are errors, read the error
text - if you need help, consulting the bugtracker documentation in this
same directory.
* New bug triage process
The goal of the new bug triage process is similar to the backlog triage process,
except that the focus is on prioritizing the bug, and making sure it is has
necessary information for others to act on.
For each new bug, ask the following questions:
1. Is the bug report written in a way to be easy to reproduce (starts from
emacs -Q, etc.)? If not, ask the reporter to try and reproduce it on an
emacs without customization.
2. Is the bug report written against the latest emacs? If not, try to
reproduce on the latest version, and if it can't be reproduced, ask the
reporter to try again with the latest version.
3. Is the bug the same as another bug? If so, merge the bugs.
4. What is the priority of the bug? Add a priority: critical, grave, serious,
important, normal, minor, or wishlist.
5. Who should be the owner? This depends on what component the bug is part
of. You can look at the admin/MAINTAINERS file (then you can just search
emacs-devel to match the name with an email address).

View file

@ -1,6 +1,6 @@
-*-mode: text; coding: utf-8;-*-
Copyright (C) 2002-2015 Free Software Foundation, Inc.
Copyright (C) 2002-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.
Importing a new Unicode Standard version into Emacs

View file

@ -1,6 +1,6 @@
-*- outline -*-
Copyright (C) 2013-2015 Free Software Foundation, Inc.
Copyright (C) 2013-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.
NOTES FOR EMACS WWW PAGES

View file

@ -1,4 +1,4 @@
Copyright (C) 2001-2015 Free Software Foundation, Inc.
Copyright (C) 2001-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.
Emacs for Windows

View file

@ -1,4 +1,4 @@
Copyright (C) 2001-2015 Free Software Foundation, Inc.
Copyright (C) 2001-2016 Free Software Foundation, Inc.
See the end of the file for license conditions.
Precompiled Distributions of

View file

@ -1,7 +1,7 @@
#!/bin/sh
### quick-install-emacs --- do a halfway-decent job of installing emacs quickly
## Copyright (C) 2001-2015 Free Software Foundation, Inc.
## Copyright (C) 2001-2016 Free Software Foundation, Inc.
## Author: Miles Bader <miles@gnu.org>

View file

@ -213,26 +213,26 @@ names of the people who have checked it.
SECTION READERS
----------------------------------
TUTORIAL cyd
TUTORIAL.bg ogi
TUTORIAL.cn xfq
TUTORIAL
TUTORIAL.bg
TUTORIAL.cn
TUTORIAL.cs
TUTORIAL.de wl
TUTORIAL.de
TUTORIAL.eo
TUTORIAL.es
TUTORIAL.fr
TUTORIAL.he eliz
TUTORIAL.he
TUTORIAL.it
TUTORIAL.ja
TUTORIAL.ko
TUTORIAL.nl Pieter Schoenmakers
TUTORIAL.nl
TUTORIAL.pl
TUTORIAL.pt_BR
TUTORIAL.ro
TUTORIAL.ru Alex Ott
TUTORIAL.ru
TUTORIAL.sk
TUTORIAL.sl Primoz PETERLIN
TUTORIAL.sv Mats Lidell
TUTORIAL.sl
TUTORIAL.sv
TUTORIAL.th
TUTORIAL.zh
@ -326,7 +326,7 @@ markers.texi
minibuf.texi
modes.texi
nonascii.texi
numbers.texi Paul Eggert (24.4)
numbers.texi
objects.texi
os.texi
package.texi

View file

@ -1,6 +1,6 @@
### @configure_input@
# Copyright (C) 2012-2015 Free Software Foundation, Inc.
# Copyright (C) 2012-2016 Free Software Foundation, Inc.
# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
# National Institute of Advanced Industrial Science and Technology (AIST)

View file

@ -1,6 +1,6 @@
#!/usr/bin/awk -f
## Copyright (C) 2015 Free Software Foundation, Inc.
## Copyright (C) 2015-2016 Free Software Foundation, Inc.
## Author: Glenn Morris <rgm@gnu.org>

View file

@ -1,6 +1,6 @@
;; unidata-gen.el -- Create files containing character property data.
;; Copyright (C) 2008-2015 Free Software Foundation, Inc.
;; Copyright (C) 2008-2016 Free Software Foundation, Inc.
;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
;; National Institute of Advanced Industrial Science and Technology (AIST)

View file

@ -1,6 +1,6 @@
;;; uvs.el --- utility for UVS (format 14) cmap subtables in OpenType fonts.
;; Copyright (C) 2014-2015 Free Software Foundation, Inc.
;; Copyright (C) 2014-2016 Free Software Foundation, Inc.
;; Author: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>

View file

@ -7,7 +7,7 @@
# By default, this script uses the local-time calendar year.
# Set the UPDATE_COPYRIGHT_YEAR environment variable to override the default.
# Copyright 2013-2015 Free Software Foundation, Inc.
# Copyright 2013-2016 Free Software Foundation, Inc.
# This file is part of GNU Emacs.

View file

@ -1,7 +1,7 @@
#!/bin/bash
### update_autogen - update some auto-generated files in the Emacs tree
## Copyright (C) 2011-2015 Free Software Foundation, Inc.
## Copyright (C) 2011-2016 Free Software Foundation, Inc.
## Author: Glenn Morris <rgm@gnu.org>

View file

@ -1,7 +1,7 @@
#!/bin/sh
### autogen.sh - tool to help build Emacs from a repository checkout
## Copyright (C) 2011-2015 Free Software Foundation, Inc.
## Copyright (C) 2011-2016 Free Software Foundation, Inc.
## Author: Glenn Morris <rgm@gnu.org>
## Maintainer: emacs-devel@gnu.org

View file

@ -1,7 +1,7 @@
#!/bin/sh
# Check the format of GNU Emacs change log entries.
# Copyright 2014-2015 Free Software Foundation, Inc.
# Copyright 2014-2016 Free Software Foundation, Inc.
# This file is part of GNU Emacs.

View file

@ -1,7 +1,7 @@
#!/bin/sh
# Check file names in git commits for GNU Emacs.
# Copyright 2014-2015 Free Software Foundation, Inc.
# Copyright 2014-2016 Free Software Foundation, Inc.
# This file is part of GNU Emacs.

View file

@ -2,7 +2,7 @@
# Convert git log output to ChangeLog format for GNU Emacs.
# Copyright (C) 2014-2015 Free Software Foundation, Inc.
# Copyright (C) 2014-2016 Free Software Foundation, Inc.
# Author: Paul Eggert

View file

@ -2,7 +2,7 @@
### make-info-dir - create info/dir, for systems without install-info
## Copyright (C) 2013-2015 Free Software Foundation, Inc.
## Copyright (C) 2013-2016 Free Software Foundation, Inc.
## Author: Glenn Morris <rgm@gnu.org>
## Maintainer: emacs-devel@gnu.org

View file

@ -2,7 +2,7 @@
# Convert a MSYS path list to Windows-native format.
# Status is zero if successful, nonzero otherwise.
# Copyright (C) 2013-2015 Free Software Foundation, Inc.
# Copyright (C) 2013-2016 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by

View file

@ -1,7 +1,7 @@
#!/bin/sh
# Write into $1/subdirs.el a list of subdirs of directory $1.
# Copyright (C) 1994-1995, 1997, 1999, 2001-2015 Free Software
# Copyright (C) 1994-1995, 1997, 1999, 2001-2016 Free Software
# Foundation, Inc.
# This file is part of GNU Emacs.

View file

@ -1,7 +1,7 @@
@echo off
rem ----------------------------------------------------------------------
rem Configuration script for MSDOS
rem Copyright (C) 1994-1999, 2001-2015 Free Software Foundation, Inc.
rem Copyright (C) 1994-1999, 2001-2016 Free Software Foundation, Inc.
rem This file is part of GNU Emacs.

View file

@ -4,7 +4,7 @@ dnl autoconf
dnl in the directory containing this script.
dnl If you changed any AC_DEFINES, also run autoheader.
dnl
dnl Copyright (C) 1994-1996, 1999-2015 Free Software Foundation, Inc.
dnl Copyright (C) 1994-1996, 1999-2016 Free Software Foundation, Inc.
dnl
dnl This file is part of GNU Emacs.
dnl
@ -3638,6 +3638,14 @@ if test "${with_xml2}" != "no"; then
# Built-in libxml2 on OS X 10.8 lacks libxml-2.0.pc.
if test "${HAVE_LIBXML2}" != "yes" && test "$opsys" = "darwin"; then
SAVE_CPPFLAGS="$CPPFLAGS"
if test -z "$xcsdkdir" -a -n "$XCRUN" -a ! -d /usr/include; then
dnl /usr/include is not found. Try Xcode SDK dir if it is sane.
xcsdkdir=`$XCRUN --show-sdk-path 2>/dev/null`
case $xcsdkdir in
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
xcsdkdir="" ;;
esac
fi
CPPFLAGS="$CPPFLAGS -I$xcsdkdir/usr/include/libxml2"
AC_CHECK_HEADER(libxml/HTMLparser.h,
[AC_CHECK_DECL(HTML_PARSE_RECOVER, HAVE_LIBXML2=yes, ,
@ -4433,24 +4441,11 @@ case $opsys in
AC_DEFINE(PTY_TTY_NAME_SPRINTF, [])
;;
dnl FIXME? Maybe use same as freebsd - see bug#12040.
darwin )
AC_DEFINE(PTY_ITERATION, [int i; for (i = 0; i < 1; i++)])
dnl Not used, because PTY_ITERATION is defined.
AC_DEFINE(FIRST_PTY_LETTER, ['p'])
dnl Note that openpty may fork via grantpt on Mac OS X 10.4/Darwin 8.
dnl But we don't have to block SIGCHLD because it is blocked in the
dnl implementation of grantpt.
AC_DEFINE(PTY_OPEN, [ do { int slave; if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1) fd = -1; else emacs_close (slave); } while (false)])
AC_DEFINE(PTY_NAME_SPRINTF, [])
AC_DEFINE(PTY_TTY_NAME_SPRINTF, [])
;;
gnu | openbsd )
AC_DEFINE(FIRST_PTY_LETTER, ['p'])
;;
gnu-linux | gnu-kfreebsd | dragonfly | freebsd | netbsd | nacl )
gnu-linux | gnu-kfreebsd | dragonfly | freebsd | netbsd | darwin | nacl )
dnl if HAVE_GRANTPT
if test "x$ac_cv_func_grantpt" = xyes; then
AC_DEFINE(UNIX98_PTYS, 1, [Define if the system has Unix98 PTYs.])
@ -4828,7 +4823,7 @@ fi
version=$PACKAGE_VERSION
copyright="Copyright (C) 2015 Free Software Foundation, Inc."
copyright="Copyright (C) 2016 Free Software Foundation, Inc."
AC_DEFINE_UNQUOTED(COPYRIGHT, ["$copyright"],
[Short copyright string for this version of Emacs.])
AC_SUBST(copyright)
@ -5174,7 +5169,7 @@ AC_SUBST(WINDOW_SYSTEM_OBJ)
AH_TOP([/* GNU Emacs site configuration template file.
Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2015
Copyright (C) 1988, 1993-1994, 1999-2002, 2004-2016
Free Software Foundation, Inc.
This file is part of GNU Emacs.

View file

@ -10919,7 +10919,7 @@
;; coding: utf-8
;; End:
Copyright (C) 1993-1999, 2001-2015 Free Software Foundation, Inc.
Copyright (C) 1993-1999, 2001-2016 Free Software Foundation, Inc.
This file is part of GNU Emacs.

View file

@ -1,6 +1,6 @@
### @configure_input@
# Copyright (C) 1994, 1996-2015 Free Software Foundation, Inc.
# Copyright (C) 1994, 1996-2016 Free Software Foundation, Inc.
# This file is part of GNU Emacs.

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Abbrevs

View file

@ -1,6 +1,6 @@
@c -*- coding: utf-8 -*-
@c This is part of the Emacs manual.
@c Copyright (C) 1994-1997, 1999-2015 Free Software Foundation, Inc.
@c Copyright (C) 1994-1997, 1999-2016 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@c
@node Acknowledgments

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 2005-2015 Free Software Foundation, Inc.
@c Copyright (C) 2005-2016 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Antinews

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 2004-2015 Free Software Foundation, Inc.
@c Copyright (C) 2004-2016 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@c
@c This file is included either in emacs-xtra.texi (when producing the

View file

@ -1,6 +1,6 @@
@c -*- coding: utf-8 -*-
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Basic

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Buffers

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Building
@ -360,8 +360,8 @@ that specifies how to run @command{grep}. Use the same arguments you
would give @command{grep} when running it normally: a @command{grep}-style
regexp (usually in single-quotes to quote the shell's special
characters) followed by file names, which may use wildcards. If you
specify a prefix argument for @kbd{M-x grep}, it finds the tag
(@pxref{Tags}) in the buffer around point, and puts that into the
specify a prefix argument for @kbd{M-x grep}, it finds the identifier
(@pxref{Xref}) in the buffer around point, and puts that into the
default @command{grep} command.
Your command need not simply run @command{grep}; you can use any shell

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. -*- coding: utf-8 -*-
@c Copyright (C) 2004-2015 Free Software Foundation, Inc.
@c Copyright (C) 2004-2016 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@c
@c This file is included either in emacs-xtra.texi (when producing the

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual. -*- coding: utf-8 -*-
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Calendar/Diary

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Emacs Invocation

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@iftex

View file

@ -1,6 +1,6 @@
@c -*- coding: utf-8 -*-
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Customization

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 2004-2015 Free Software Foundation, Inc.
@c Copyright (C) 2004-2016 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@c
@c This file is included either in emacs-xtra.texi (when producing the

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Dired
@ -785,8 +785,8 @@ Search all the specified files for the regular expression @var{regexp}
(@code{dired-do-search}).
This command is a variant of @code{tags-search}. The search stops at
the first match it finds; use @kbd{M-,} to resume the search and find
the next match. @xref{Tags Search}.
the first match it finds; use @kbd{M-x tags-loop-continue} to resume
the search and find the next match. @xref{Identifier Search}.
@kindex Q @r{(Dired)}
@findex dired-do-query-replace-regexp
@ -797,8 +797,8 @@ replacing matches for @var{regexp} with the string
@var{to} (@code{dired-do-query-replace-regexp}).
This command is a variant of @code{tags-query-replace}. If you exit the
query replace loop, you can use @kbd{M-,} to resume the scan and replace
more matches. @xref{Tags Search}.
query replace loop, you can use @kbd{M-x tags-loop-continue} to resume
the scan and replace more matches. @xref{Identifier Search}.
@end table
@node Shell Commands in Dired

View file

@ -1,6 +1,6 @@
@c -*- coding: utf-8 -*-
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@ -1164,12 +1164,15 @@ indicate-empty-lines t)}.
@cindex mode, Whitespace
@findex whitespace-mode
@vindex whitespace-style
@findex whitespace-toggle-options
Whitespace mode is a buffer-local minor mode that lets you
visualize many kinds of whitespace in the buffer, by either
drawing the whitespace characters with a special face or displaying
them as special glyphs. To toggle this mode, type @kbd{M-x
whitespace-mode}. The kinds of whitespace visualized are determined
by the list variable @code{whitespace-style}. Here is a partial list
by the list variable @code{whitespace-style}. Individual elements in
that list can be toggled on or off in the current buffer by typing
@w{@kbd{M-x whitespace-toggle-options}}. Here is a partial list
of possible elements (see the variable's documentation for the full
list):
@ -1200,6 +1203,13 @@ Highlight newlines.
@item empty
Highlight empty lines.
@item big-indent
@vindex whitespace-big-indent-regexp
Highlight too-deep indentation. By default any sequence of at least 4
consecutive TAB characters or 32 consecutive SPC characters is
highlighted. To change that, customize the regular expression
@code{whitespace-big-indent-regexp}.
@item space-mark
Draw space and non-breaking characters with a special glyph.
@ -1210,6 +1220,12 @@ Draw tab characters with a special glyph.
Draw newline characters with a special glyph.
@end table
@findex global-whitespace-toggle-options
@findex global-whitespace-mode
Global Whitespace mode is a global minor mode that lets you visualize
whitespace in all buffers. To toggle individual features, use
@kbd{M-x global-whitespace-toggle-options}.
@node Selective Display
@section Selective Display
@cindex selective display

View file

@ -12,7 +12,7 @@
@copying
This manual describes specialized features of Emacs.
Copyright @copyright{} 2004--2015 Free Software Foundation, Inc.
Copyright @copyright{} 2004--2016 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document

View file

@ -27,7 +27,7 @@ This is the @cite{GNU Emacs Manual},
@end ifnottex
updated for Emacs version @value{EMACSVER}.
Copyright @copyright{} 1985--1987, 1993--2015 Free Software Foundation, Inc.
Copyright @copyright{} 1985--1987, 1993--2016 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@ -788,8 +788,8 @@ Maintaining Large Programs
* Version Control:: Using version control systems.
* Change Log:: Maintaining a change history for your program.
* Tags:: Go directly to any function in your program in one
command. Tags remembers which file it is in.
* Xref:: Find definitions and references of any function,
method, struct, macro, @dots{} in your program.
* EDE:: An integrated development environment for Emacs.
@ifnottex
* Emerge:: A convenient way of merging two versions of a program.
@ -861,15 +861,25 @@ Change Logs
* Change Log Commands:: Commands for editing change log files.
* Format of ChangeLog:: What the change log file looks like.
Xref
* Find Identifiers:: Commands to find where an identifier is defined
or referenced, to list identifiers, etc.
* Tags Tables:: Tags table records which file defines a symbol.
* Select Tags Table:: How to visit a specific tags table.
Find Identifiers
* Looking Up Identifiers:: Commands to find the definition of a specific tag.
* Xref Commands:: Commands in the @file{*xref*} buffer.
* Identifier Search:: Searching and replacing identifiers.
* List Identifiers:: Listing identifiers and completing on them.
Tags Tables
* Tag Syntax:: Tag syntax for various types of code and text files.
* Create Tags Table:: Creating a tags table with @command{etags}.
* Etags Regexps:: Create arbitrary tags using regular expressions.
* Select Tags Table:: How to visit a tags table.
* Find Tag:: Commands to find the definition of a specific tag.
* Tags Search:: Using a tags table for searching and replacing.
* List Tags:: Using tags for completion, and listing them.
@ifnottex
Merging Files with Emerge

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 2004-2015 Free Software Foundation, Inc.
@c Copyright (C) 2004-2016 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@c
@c This file is included either in emacs-xtra.texi (when producing the

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 2001-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 2001-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@iftex

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Files

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Fixit

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 2004-2015 Free Software Foundation, Inc.
@c Copyright (C) 2004-2016 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@c
@c This file is included either in emacs-xtra.texi (when producing the

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Frames
@ -416,9 +416,9 @@ Start composing a mail message in another frame. This runs
@code{compose-mail-other-frame}. It is the other-frame variant of
@kbd{C-x m}. @xref{Sending Mail}.
@item C-x 5 .
Find a tag in the current tag table in another frame. This runs
@code{find-tag-other-frame}, the multiple-frame variant of @kbd{M-.}.
@xref{Tags}.
Find the definition of an identifier in another frame. This runs
@code{xref-find-definitions-other-frame}, the multiple-frame variant
of @kbd{M-.}. @xref{Xref}.
@item C-x 5 r @var{filename} @key{RET}
@kindex C-x 5 r
@findex find-file-read-only-other-frame

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Glossary
@ -1329,7 +1329,7 @@ indentation or completion.
@anchor{Glossary---Tags Table}
@item Tags Table
A tags table is a file that serves as an index to the function
definitions in one or more other files. @xref{Tags}.
definitions in one or more other files. @xref{Tags Tables}.
@item Termscript File
A termscript file contains a record of all characters sent by Emacs to

View file

@ -1,4 +1,4 @@
@c Copyright (C) 1985-1987, 1993, 1995, 2001-2015 Free Software
@c Copyright (C) 1985-1987, 1993, 1995, 2001-2016 Free Software
@c Foundation, Inc.
@c
@c Permission is granted to anyone to make or distribute verbatim copies

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Help

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Indentation

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Keyboard Macros

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node M-x

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 2000-2015 Free Software Foundation, Inc.
@c Copyright (C) 2000-2016 Free Software Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Mac OS / GNUstep
@appendix Emacs and Mac OS / GNUstep

View file

@ -1,21 +1,46 @@
@c This is part of the Emacs manual., Abbrevs, This is part of the Emacs manual., Top
@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Maintaining
@chapter Maintaining Large Programs
This chapter describes Emacs features for maintaining large
programs. If you are maintaining a large Lisp program, then in
addition to the features described here, you may find
the Emacs Lisp Regression Testing (ERT) library useful
(@pxref{Top,,ERT,ert, Emacs Lisp Regression Testing}).
This chapter describes Emacs features for maintaining medium- to
large-size programs and packages. These features include:
@itemize @minus
@item
Unified interface to Support for Version Control Systems
(@acronym{VCS}) that record the history of changes to source files.
@item
A specialized mode for maintaining @file{ChangeLog} files that provide
a chronological log of program changes.
@item
@acronym{Xref}, a set of commands for displaying definitions of
symbols (a.k.a.@: ``identifiers'') and their references.
@item
@acronym{EDE}, the Emacs's own IDE.
@ifnottex
@item
A mode for merging changes to program sources made on separate
branches of development.
@end ifnottex
@end itemize
If you are maintaining a large Lisp program, then in addition to the
features described here, you may find the Emacs Lisp Regression
Testing (@acronym{ERT}) library useful (@pxref{Top,,ERT,ert, Emacs
Lisp Regression Testing}).
@menu
* Version Control:: Using version control systems.
* Change Log:: Maintaining a change history for your program.
* Tags:: Go directly to any function in your program in one
command. Tags remembers which file it is in.
* Xref:: Find definitions and references of any function,
method, struct, macro, @dots{} in your program.
* EDE:: An integrated development environment for Emacs.
@ifnottex
* Emerge:: A convenient way of merging two versions of a program.
@ -1660,16 +1685,370 @@ permitted provided the copyright notice and this notice are preserved.
@noindent
Of course, you should substitute the proper years and copyright holder.
@node Tags
@section Tags Tables
@cindex tags and tag tables
@node Xref
@section Find Identifier Definitions and References
@cindex xref
A @dfn{tag} is a reference to a subunit in a program or in a
document. In source code, tags reference syntactic elements of the
program: functions, subroutines, data types, macros, etc. In a
document, tags reference chapters, sections, appendices, etc. Each
tag specifies the name of the file where the corresponding subunit is
defined, and the position of the subunit's definition in that file.
An @dfn{identifier} is a syntactic elements of the program: a
function, a subroutine, a method, a class, a data type, a macro, etc.
In a programming language, each identifier is a symbol in the
language's syntax. Many program development tools provide
capabilities to extract references to identifiers from source files,
record them on specialized data bases, and then use those data bases
to quickly find where each identifier was defined and referenced.
Emacs provides a unified user interface to these tools, called
@samp{xref}. The tools supported by @samp{xref} include:
@enumerate a
@item
Some major modes provide built-in means for looking up the language
symbols. For example, Emacs Lisp symbols can be identified by
searching the package load history, maintained by the Emacs Lisp
interpreter, and by consulting the built-in documentation strings; the
Emacs Lisp mode uses these facilities to find definitions of symbols.
@item
Etags, the command for tagging identifier definitions which is part of
the Emacs distribution. @xref{Create Tags Table}.
@item
@acronym{GNU} GLOBAL, the source code tagging system, which provides
the @command{gtags} command and associated utilities. @xref{Command
Line, gtags, , global, GNU GLOBAL source code tag system}.
@item
Cscope (@uref{http://cscope.sourceforge.net/}, a tool for browsing
source code.
@item
@acronym{GNU} IDUtils, a package for generating databases of
identifier references and querying those databases. @xref{Top,,,
idutils, ID database utilities}.
@item
Grep, the venerable program that searches files for lines matching
patterns. @xref{Invoking,,, grep, GNU Grep Manual}.
@end enumerate
@noindent
Additional tools could be supported as they become available, or as
user extensions. Each such tool is used as a @dfn{backend} by
commands described in this section. Each command detects which
backends are available for the current major mode, and uses the most
capable of the available backends, with Grep generally serving as the
fall-back backend.
@cindex tag
The commands described here are useful for finding references in major
modes other than those defined to support programming languages. For
example, chapters, sections, appendices, etc. of a text or a @TeX{}
document can be treated as identifiers as well. In this chapter, we
collectively refer to a reference that specifies the name of the file
where the corresponding subunit is defined, and the position of the
subunit's definition in that file, as a @dfn{tag}. We refer to the
backends used by @code{xref} as @dfn{tagging backends}.
@menu
* Find Identifiers:: Commands to find where an identifier is defined
or referenced, to list identifiers, etc.
* Tags Tables:: Tags table records which file defines a symbol.
* Select Tags Table:: How to visit a specific tags table.
@end menu
@node Find Identifiers
@subsection Find Identifiers
This subsection describes the commands that use the tagging backends
in order to find definitions of identifiers, references to
identifiers, and perform various queries about identifiers. With most
backends, these definitions and references were recorded as tags in
the database created and maintained by the backend.
@menu
* Looking Up Identifiers:: Commands to find the definition of a specific tag.
* Xref Commands:: Commands in the @file{*xref*} buffer.
* Identifier Search:: Searching and replacing identifiers.
* List Identifiers:: Listing identifiers and completing on them.
@end menu
@node Looking Up Identifiers
@subsubsection Looking Up Identifiers
@cindex find definition of symbols
@cindex identifier, finding definition of
@cindex find references to symbols
The most important thing that @code{xref} enables you to do is to find
the definition of a specific identifier.
@table @kbd
@item M-.@:
Find definitions of an identifier (@code{xref-find-definitions}).
@item C-M-. @var{pattern} @key{RET}
Find all identifiers whose name matches @var{pattern}
(@code{xref-find-apropos}).
@item C-x 4 .@: @key{RET}
Find definitions of identifier, but display it in another window
(@code{xref-find-definitions-other-window}).
@item C-x 5 .@: @key{RET}
Find definition of identifier, and display it in a new frame
(@code{xref-find-definitions-other-frame}).
@item M-,
Pop back to where you previously invoked @kbd{M-.} and friends
(@code{xref-pop-marker-stack}).
@end table
@kindex M-.
@findex xref-find-definitions
@kbd{M-.}@: (@code{xref-find-definitions}) shows the definitions of
the identifier at point. With a prefix argument, or if there's no
valid identifier at point, it prompts for the identifier. If the
identifier has only one definition, the command jumps to it. If the
identifier has more than one possible definition (e.g., in an
object-oriented language, or if there's a function and a variable by
the same name), the command shows the candidate definitions in a
@file{*xref*} buffer, together with the files in which these
definitions are found. Selecting one of these candidates by typing
@kbd{@key{RET}} or clicking @kbd{Mouse-2} will pop a buffer showing
the corresponding definition.
When entering the identifier argument to @kbd{M-.}, the usual
minibuffer completion commands can be used (@pxref{Completion}), with
the known identifier names as completion candidates.
@kindex C-x 4 .
@findex xref-find-definitions-other-window
@kindex C-x 5 .
@findex xref-find-definitions-other-frame
Like most commands that can switch buffers,
@code{xref-find-definitions} has a variant that displays the new
buffer in another window, and one that makes a new frame for it. The
former is @w{@kbd{C-x 4 .}}
(@code{xref-find-definitions-other-window}), and the latter is
@w{@kbd{C-x 5 .}} (@code{xref-find-definitions-other-frame}).
@findex xref-find-apropos
@kindex C-M-.
The command @kbd{C-M-.} (@code{xref-find-apropos}) finds the
definitions of one or more identifiers that match a specified regular
expression. It is just like @kbd{M-.} except that it does regexp
matching of identifiers instead of symbol name matching.
When any of the above commands finds more than one definition, it
presents the @file{*xref*} buffer showing the definition candidates.
In that buffer, you have several specialized commands, described in
@ref{Xref Commands}.
@kindex M-,
@findex xref-pop-marker-stack
@vindex xref-marker-ring-length
To go back to places @emph{from where} you found the definition,
use @kbd{M-,} (@code{xref-pop-marker-stack}). It jumps back to the
point of the last invocation of @kbd{M-.}. Thus you can find and
examine the definition of something with @kbd{M-.} and then return to
where you were with @kbd{M-,}. @kbd{M-,} allows you to retrace your
steps to a depth determined by the variable
@code{xref-marker-ring-length}, which defaults to 16.
@node Xref Commands
@subsubsection Commands Available in the @file{*xref*} Buffer
@cindex commands in @file{*xref*} buffers
@cindex XREF mode
The following commands are provided in the @file{*xref*} buffer by
the special XREF mode:
@table @kbd
@item @key{RET}
@itemx Mouse-2
Display the reference on the current line and bury the @file{*xref*}
buffer.
@item n
@itemx .
@findex xref-next-line
Move to the next reference and display it in the other window
(@code{xref-next-line}).
@item p
@itemx ,
@findex xref-prev-line
Move to the previous reference and display it in the other window
(@code{xref-prev-line}).
@item C-o
@findex xref-show-location-at-point
Display the reference on the current line in the other window
(@code{xref-show-location-at-point}).
@findex xref-query-replace
@item r @var{pattern} @key{RET} @var{replacement} @key{RET}
Perform interactive query-replace on references that match
@var{pattern} (@code{xref-query-replace}), replacing the match with
@var{replacement}. @xref{Identifier Search}.
@findex xref-quit
@item q
Quit the window showing the @file{*xref*} buffer (@code{xref-quit}).
@end table
In addition, the usual navigation commands, such as the arrow keys,
@kbd{C-n}, and @kbd{C-p} are available for moving around the buffer
without displaying the references.
@node Identifier Search
@subsubsection Searching and Replacing with Identifiers
@cindex search and replace in multiple files
@cindex multiple-file search and replace
The commands in this section visit and search all the files listed
in the @code{xref} backend's database, one by one. For these
commands, the database serves only to specify a sequence of files to
search. These commands scan all the databases starting with the first
one (if any) that describes the current file, proceed from there to
the end of the list, and then scan from the beginning of the list
until they have covered all the databases in the list.
@table @kbd
@item M-?
Find all the references for the identifier at point.
@item M-x xref-query-replace @key{RET} @var{regexp} @key{RET} @var{replacement} @key{RET}
Interactively replace @var{regexp} with @var{replacement} in the names
of all the identifiers shown in the @file{*xref*} buffer.
@item M-x tags-search @key{RET} @var{regexp} @key{RET}
Search for @var{regexp} through the files in the selected tags
table.
@item M-x tags-query-replace @key{RET} @var{regexp} @key{RET} @var{replacement} @key{RET}
Perform a @code{query-replace-regexp} on each file in the selected tags table.
@item M-x tags-loop-continue
Restart one of the last 2 commands above, from the current location of point.
@end table
@kindex M-?
@findex xref-find-references
@kbd{M-?} finds all the references for the identifier at point. If
there's no valid identifier at point, or when invoked with a prefix
argument, the command prompts for the identifier, with completion. It
then presents a @file{*xref*} buffer with all the references to the
identifier, showing the file name and the line where the identifier is
referenced. The XREF mode commands are available in this buffer, see
@ref{Xref Commands}.
@findex xref-query-replace
@kbd{M-x xref-query-replace} reads a regexp to match identifier
names and a string to replace with, just like ordinary @kbd{M-x
query-replace-regexp}. It then performs the specified replacement in
the names of the matching identifiers in all the places in all the
files where these identifiers are referenced. This is useful when you
rename your identifiers as part of refactoring. This command should
be invoked in the @file{*xref*} buffer generated by @code{M-?}.
@findex tags-search
@kbd{M-x tags-search} reads a regexp using the minibuffer, then
searches for matches in all the files in the selected tags table, one
file at a time. It displays the name of the file being searched so
you can follow its progress. As soon as it finds an occurrence,
@code{tags-search} returns. This command works only with the etags
backend, and requires tags tables to be available (@pxref{Tags
Tables}).
@findex tags-loop-continue
Having found one match, you probably want to find all the rest.
Type @kbd{M-x tags-loop-continue}) to resume the @code{tags-search},
finding one more match. This searches the rest of the current buffer,
followed by the remaining files of the tags table.
@findex tags-query-replace
@kbd{M-x tags-query-replace} performs a single
@code{query-replace-regexp} through all the files in the tags table. It
reads a regexp to search for and a string to replace with, just like
ordinary @kbd{M-x query-replace-regexp}. It searches much like @kbd{M-x
tags-search}, but repeatedly, processing matches according to your
input. @xref{Query Replace}, for more information on query replace.
This command works only with the etags backend.
@vindex tags-case-fold-search
@cindex case-sensitivity and tags search
You can control the case-sensitivity of tags search commands by
customizing the value of the variable @code{tags-case-fold-search}. The
default is to use the same setting as the value of
@code{case-fold-search} (@pxref{Lax Search}).
It is possible to get through all the files in the tags table with a
single invocation of @kbd{M-x tags-query-replace}. But often it is
useful to exit temporarily, which you can do with any input event that
has no special query replace meaning. You can resume the query
replace subsequently by typing @kbd{M-x tags-loop-continue}; this
command resumes the last tags search or replace command that you did.
For instance, to skip the rest of the current file, you can type
@kbd{M-> M-x tags-loop-continue}.
The commands in this section carry out much broader searches than
the @code{xref-find-definitions} family. The
@code{xref-find-definitions} commands search only for definitions of
identifiers that match your string or regexp. The commands
@code{tags-search} and @code{tags-query-replace} find every occurrence
of the regexp, as ordinary search commands and replace commands do in
the current buffer.
As an alternative to @code{tags-search}, you can run @command{grep}
as a subprocess and have Emacs show you the matching lines one by one.
@xref{Grep Searching}.
@node List Identifiers
@subsubsection Identifier Inquiries
@table @kbd
@item C-M-i
@itemx M-@key{TAB}
Perform completion on the text around point, using the @code{xref}
backend if one is available (@code{completion-at-point}).
@item M-x list-tags @key{RET} @var{file} @key{RET}
Display a list of the tags defined in the program file @var{file}.
@item M-x xref-find-apropos @key{RET} @var{regexp} @key{RET}
Display a list of all known identifiers matching @var{regexp}.
@end table
@cindex completion (symbol names)
In most programming language modes, you can type @kbd{C-M-i} or
@kbd{M-@key{TAB}} (@code{completion-at-point}) to complete the symbol
at point. If there is an @code{xref} backend available, this command
can use it to generate completion candidates more intelligently.
@xref{Symbol Completion}.
@findex list-tags
@kbd{M-x list-tags} reads the name of one of the files covered by
the selected tags table, and displays a list of tags defined in that
file. Do not include a directory as part of the file name unless the
file name recorded in the tags table includes a directory. This
command works only with the etags backend, and requires a tags table
for the project to be available. @xref{Tags Tables}.
@c Sadly, the new-and-improved Xref feature doesn't provide anything
@c close to the described below features of the now-obsoleted
@c tags-apropos. I'm leaving this here to encourage enhancements to
@c xref.el.
@ignore
@findex tags-apropos
@vindex tags-apropos-verbose
@vindex tags-tag-face
@vindex tags-apropos-additional-actions
@kbd{M-x tags-apropos} is like @code{apropos} for tags
(@pxref{Apropos}). It displays a list of tags in the selected tags
table whose entries match @var{regexp}. If the variable
@code{tags-apropos-verbose} is non-@code{nil}, it displays the names
of the tags files together with the tag names. You can customize the
appearance of the output by setting the variable @code{tags-tag-face}
to a face. You can display additional output by customizing the
variable @code{tags-apropos-additional-actions}; see its documentation
for details.
@end ignore
@findex next-file
@kbd{M-x next-file} visits files covered by the selected tags table.
The first time it is called, it visits the first file covered by the
table. Each subsequent call visits the next covered file, unless a
prefix argument is supplied, in which case it returns to the first
file. This command works only with the etags backend.
@node Tags Tables
@subsection Tags Tables
@cindex tags and tag tables
A @dfn{tags table} records the tags extracted by scanning the source
code of a certain program or a certain document. Tags extracted from
@ -1685,12 +2064,14 @@ source files.
on a document or the source code file. The @samp{etags} program
writes the tags to a @dfn{tags table file}, or @dfn{tags file} in
short. The conventional name for a tags file is @file{TAGS}@.
@xref{Create Tags Table}.
@xref{Create Tags Table}. (It is also possible to create a tags table
by using one of the commands from other packages that can produce such
tables in the same format.)
Emacs provides many commands for searching and replacing using the
information recorded in tags tables. For instance, the @kbd{M-.}
(@code{find-tag}) jumps to the location of a specified function
definition in its source file. @xref{Find Tag}.
Emacs uses the tags tables via the @code{etags} package as one of
the supported backends for @code{xref}. Because tags tables are
produced by the @command{etags} command that is part of an Emacs
distribution, we describe tags tables in more detail here.
@cindex C++ class browser, tags
@cindex tags, C++
@ -1706,14 +2087,10 @@ use tags, separate from the @command{etags} facility.
* Tag Syntax:: Tag syntax for various types of code and text files.
* Create Tags Table:: Creating a tags table with @command{etags}.
* Etags Regexps:: Create arbitrary tags using regular expressions.
* Select Tags Table:: How to visit a tags table.
* Find Tag:: Commands to find the definition of a specific tag.
* Tags Search:: Using a tags table for searching and replacing.
* List Tags:: Using tags for completion, and listing them.
@end menu
@node Tag Syntax
@subsection Source File Tag Syntax
@subsubsection Source File Tag Syntax
Here is how tag syntax is defined for the most popular languages:
@ -1883,13 +2260,17 @@ line.
@item
In Python code, @code{def} or @code{class} at the beginning of a line
generate a tag.
@item
In Ruby code, @code{def} or @code{class} or @code{module} at the
beginning of a line generate a tag.
@end itemize
You can also generate tags based on regexp matching (@pxref{Etags
Regexps}) to handle other formats and languages.
@node Create Tags Table
@subsection Creating Tags Tables
@subsubsection Creating Tags Tables
@cindex @command{etags} program
The @command{etags} program is used to create a tags table file. It knows
@ -1946,7 +2327,7 @@ source files, and the tags file will still refer correctly to the source
files. If the tags file is @file{-} or is in the @file{/dev} directory,
however, the file names are
made relative to the current working directory. This is useful, for
example, when writing the tags to @file{/dev/stdout}.
example, when writing the tags to the standard output.
When using a relative file name, it should not be a symbolic link
pointing to a tags file in a different directory, because this would
@ -1992,7 +2373,7 @@ options, it outputs detailed information about how tags are generated for
@var{lang}.
@node Etags Regexps
@subsection Etags Regexps
@subsubsection Etags Regexps
The @samp{--regex} option to @command{etags} allows tags to be
recognized by regular expression matching. You can intermix this
@ -2151,7 +2532,7 @@ etags --language=none \
@subsection Selecting a Tags Table
@findex visit-tags-table
Emacs has at any time one @dfn{selected} tags table. All the
Emacs has at any time at most one @dfn{selected} tags table. All the
commands for working with tags tables use the selected one. To select
a tags table, type @kbd{M-x visit-tags-table}, which reads the tags
table file name as an argument, with @file{TAGS} in the default
@ -2192,212 +2573,6 @@ table mentions that file, as explained above.
Do not set both @code{tags-file-name} and @code{tags-table-list}.
@node Find Tag
@subsection Finding a Tag
The most important thing that a tags table enables you to do is to find
the definition of a specific tag.
@table @kbd
@item M-.@: @var{tag} @key{RET}
Find first definition of @var{tag} (@code{find-tag}).
@item C-u M-.
Find next alternate definition of last tag specified.
@item C-u - M-.
Go back to previous tag found.
@item C-M-. @var{pattern} @key{RET}
Find a tag whose name matches @var{pattern} (@code{find-tag-regexp}).
@item C-u C-M-.
Find the next tag whose name matches the last pattern used.
@item C-x 4 .@: @var{tag} @key{RET}
Find first definition of @var{tag}, but display it in another window
(@code{find-tag-other-window}).
@item C-x 5 .@: @var{tag} @key{RET}
Find first definition of @var{tag}, and create a new frame to select the
buffer (@code{find-tag-other-frame}).
@item M-*
Pop back to where you previously invoked @kbd{M-.} and friends.
@end table
@kindex M-.
@findex find-tag
@kbd{M-.}@: (@code{find-tag}) prompts for a tag name and jumps to
its source definition. It works by searching through the tags table
for that tag's file and approximate character position, visiting that
file, and searching for the tag definition at ever-increasing
distances away from the recorded approximate position.
When entering the tag argument to @kbd{M-.}, the usual minibuffer
completion commands can be used (@pxref{Completion}), with the tag
names in the selected tags table as completion candidates. If you
specify an empty argument, the balanced expression in the buffer
before or around point is the default argument. @xref{Expressions}.
You don't need to give @kbd{M-.} the full name of the tag; a part
will do. @kbd{M-.} finds tags which contain that argument as a
substring. However, it prefers an exact match to a substring match.
To find other tags that match the same substring, give @code{find-tag}
a numeric argument, as in @kbd{C-u M-.} or @kbd{M-0 M-.}; this does
not read a tag name, but continues searching the tags table's text for
another tag containing the same substring last used.
@kindex C-x 4 .
@findex find-tag-other-window
@kindex C-x 5 .
@findex find-tag-other-frame
Like most commands that can switch buffers, @code{find-tag} has a
variant that displays the new buffer in another window, and one that
makes a new frame for it. The former is @w{@kbd{C-x 4 .}}
(@code{find-tag-other-window}), and the latter is @w{@kbd{C-x 5 .}}
(@code{find-tag-other-frame}).
To move back to previous tag definitions, use @kbd{C-u - M-.}; more
generally, @kbd{M-.} with a negative numeric argument. Similarly,
@w{@kbd{C-x 4 .}} with a negative argument finds the previous tag
location in another window.
@kindex M-*
@findex pop-tag-mark
@vindex find-tag-marker-ring-length
As well as going back to places you've found tags recently, you can
go back to places @emph{from where} you found them, using @kbd{M-*}
(@code{pop-tag-mark}). Thus you can find and examine the definition
of something with @kbd{M-.} and then return to where you were with
@kbd{M-*}.
Both @kbd{C-u - M-.} and @kbd{M-*} allow you to retrace your steps to
a depth determined by the variable @code{find-tag-marker-ring-length}.
@findex find-tag-regexp
@kindex C-M-.
The command @kbd{C-M-.} (@code{find-tag-regexp}) visits the tags that
match a specified regular expression. It is just like @kbd{M-.} except
that it does regexp matching instead of substring matching.
@node Tags Search
@subsection Searching and Replacing with Tags Tables
@cindex search and replace in multiple files
@cindex multiple-file search and replace
The commands in this section visit and search all the files listed
in the selected tags table, one by one. For these commands, the tags
table serves only to specify a sequence of files to search. These
commands scan the list of tags tables starting with the first tags
table (if any) that describes the current file, proceed from there to
the end of the list, and then scan from the beginning of the list
until they have covered all the tables in the list.
@table @kbd
@item M-x tags-search @key{RET} @var{regexp} @key{RET}
Search for @var{regexp} through the files in the selected tags
table.
@item M-x tags-query-replace @key{RET} @var{regexp} @key{RET} @var{replacement} @key{RET}
Perform a @code{query-replace-regexp} on each file in the selected tags table.
@item M-,
Restart one of the commands above, from the current location of point
(@code{tags-loop-continue}).
@end table
@findex tags-search
@kbd{M-x tags-search} reads a regexp using the minibuffer, then
searches for matches in all the files in the selected tags table, one
file at a time. It displays the name of the file being searched so you
can follow its progress. As soon as it finds an occurrence,
@code{tags-search} returns.
@kindex M-,
@findex tags-loop-continue
Having found one match, you probably want to find all the rest.
Type @kbd{M-,} (@code{tags-loop-continue}) to resume the
@code{tags-search}, finding one more match. This searches the rest of
the current buffer, followed by the remaining files of the tags table.
@findex tags-query-replace
@kbd{M-x tags-query-replace} performs a single
@code{query-replace-regexp} through all the files in the tags table. It
reads a regexp to search for and a string to replace with, just like
ordinary @kbd{M-x query-replace-regexp}. It searches much like @kbd{M-x
tags-search}, but repeatedly, processing matches according to your
input. @xref{Query Replace}, for more information on query replace.
@vindex tags-case-fold-search
@cindex case-sensitivity and tags search
You can control the case-sensitivity of tags search commands by
customizing the value of the variable @code{tags-case-fold-search}. The
default is to use the same setting as the value of
@code{case-fold-search} (@pxref{Lax Search}).
It is possible to get through all the files in the tags table with a
single invocation of @kbd{M-x tags-query-replace}. But often it is
useful to exit temporarily, which you can do with any input event that
has no special query replace meaning. You can resume the query
replace subsequently by typing @kbd{M-,}; this command resumes the
last tags search or replace command that you did. For instance, to
skip the rest of the current file, you can type @kbd{M-> M-,}.
The commands in this section carry out much broader searches than the
@code{find-tag} family. The @code{find-tag} commands search only for
definitions of tags that match your substring or regexp. The commands
@code{tags-search} and @code{tags-query-replace} find every occurrence
of the regexp, as ordinary search commands and replace commands do in
the current buffer.
These commands create buffers only temporarily for the files that they
have to search (those which are not already visited in Emacs buffers).
Buffers in which no match is found are quickly killed; the others
continue to exist.
As an alternative to @code{tags-search}, you can run @command{grep}
as a subprocess and have Emacs show you the matching lines one by one.
@xref{Grep Searching}.
@node List Tags
@subsection Tags Table Inquiries
@table @kbd
@item C-M-i
@itemx M-@key{TAB}
Perform completion on the text around point, using the selected tags
table if one is loaded (@code{completion-at-point}).
@item M-x list-tags @key{RET} @var{file} @key{RET}
Display a list of the tags defined in the program file @var{file}.
@item M-x tags-apropos @key{RET} @var{regexp} @key{RET}
Display a list of all tags matching @var{regexp}.
@end table
@cindex completion (symbol names)
In most programming language modes, you can type @kbd{C-M-i} or
@kbd{M-@key{TAB}} (@code{completion-at-point}) to complete the symbol
at point. If there is a selected tags table, this command can use it
to generate completion candidates. @xref{Symbol Completion}.
@findex list-tags
@kbd{M-x list-tags} reads the name of one of the files covered by
the selected tags table, and displays a list of tags defined in that
file. Do not include a directory as part of the file name unless the
file name recorded in the tags table includes a directory.
@findex tags-apropos
@vindex tags-apropos-verbose
@vindex tags-tag-face
@vindex tags-apropos-additional-actions
@kbd{M-x tags-apropos} is like @code{apropos} for tags
(@pxref{Apropos}). It displays a list of tags in the selected tags
table whose entries match @var{regexp}. If the variable
@code{tags-apropos-verbose} is non-@code{nil}, it displays the names
of the tags files together with the tag names. You can customize the
appearance of the output by setting the variable @code{tags-tag-face}
to a face. You can display additional output by customizing the
variable @code{tags-apropos-additional-actions}; see its documentation
for details.
@findex next-file
@kbd{M-x next-file} visits files covered by the selected tags table.
The first time it is called, it visits the first file covered by the
table. Each subsequent call visits the next covered file, unless a
prefix argument is supplied, in which case it returns to the first
file.
@node EDE
@section Emacs Development Environment
@cindex EDE (Emacs Development Environment)

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Mark
@ -288,7 +288,9 @@ instead signal an error if the mark is inactive.
active---for example, typing @kbd{a} inserts the character @samp{a},
then deactivates the mark. If you enable Delete Selection mode, a
minor mode, then inserting text while the mark is active causes the
text in the region to be deleted first. To toggle Delete Selection
text in the region to be deleted first. Also, commands that normally
delete just one character, such as @kbd{C-d} or @kbd{@key{DEL}}, will
delete the entire region instead. To toggle Delete Selection
mode on or off, type @kbd{M-x delete-selection-mode}.
@node Mark Ring

View file

@ -1,6 +1,6 @@
@c -*- coding: utf-8 -*-
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@node Minibuffer

View file

@ -1,5 +1,5 @@
@c This is part of the Emacs manual.
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2015 Free Software
@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2016 Free Software
@c Foundation, Inc.
@c See file emacs.texi for copying conditions.
@iftex

Some files were not shown because too many files have changed in this diff Show more