aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorStefan Monnier2011-02-01 12:09:25 -0500
committerStefan Monnier2011-02-01 12:09:25 -0500
commit8f1d2ef658f95549eb33fe5265f8f11c5129bece (patch)
treeb7cd852a1adb423384532cfe22c31547160b22bc /doc
parent590130fb19e1f433965c421d98fedeb2d7c33310 (diff)
parent1dc4075fa8809805aed5092e93e225e889725c94 (diff)
downloademacs-8f1d2ef658f95549eb33fe5265f8f11c5129bece.tar.gz
emacs-8f1d2ef658f95549eb33fe5265f8f11c5129bece.zip
Merge from trunk
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/ChangeLog106
-rw-r--r--doc/emacs/Makefile.in14
-rw-r--r--doc/emacs/abbrevs.texi8
-rw-r--r--doc/emacs/ack.texi20
-rw-r--r--doc/emacs/anti.texi6
-rw-r--r--doc/emacs/arevert-xtra.texi7
-rw-r--r--doc/emacs/basic.texi4
-rw-r--r--doc/emacs/buffers.texi7
-rw-r--r--doc/emacs/building.texi16
-rw-r--r--doc/emacs/cal-xtra.texi7
-rw-r--r--doc/emacs/calendar.texi7
-rw-r--r--doc/emacs/cmdargs.texi8
-rw-r--r--doc/emacs/commands.texi8
-rw-r--r--doc/emacs/custom.texi10
-rw-r--r--doc/emacs/dired-xtra.texi7
-rw-r--r--doc/emacs/dired.texi7
-rw-r--r--doc/emacs/display.texi18
-rw-r--r--doc/emacs/doclicense.texi4
-rw-r--r--doc/emacs/emacs-xtra.texi6
-rw-r--r--doc/emacs/emacs.texi23
-rw-r--r--doc/emacs/emerge-xtra.texi7
-rw-r--r--doc/emacs/entering.texi8
-rw-r--r--doc/emacs/files.texi41
-rw-r--r--doc/emacs/fixit.texi8
-rw-r--r--doc/emacs/fortran-xtra.texi7
-rw-r--r--doc/emacs/frames.texi21
-rw-r--r--doc/emacs/glossary.texi8
-rw-r--r--doc/emacs/gnu.texi8
-rw-r--r--doc/emacs/gpl.texi4
-rw-r--r--doc/emacs/help.texi7
-rw-r--r--doc/emacs/indent.texi8
-rw-r--r--doc/emacs/killing.texi36
-rw-r--r--doc/emacs/kmacro.texi8
-rw-r--r--doc/emacs/m-x.texi8
-rw-r--r--doc/emacs/macos.texi3
-rw-r--r--doc/emacs/maintaining.texi13
-rw-r--r--doc/emacs/major.texi8
-rw-r--r--doc/emacs/makefile.w32-in14
-rw-r--r--doc/emacs/mark.texi7
-rw-r--r--doc/emacs/mini.texi7
-rw-r--r--doc/emacs/misc.texi42
-rw-r--r--doc/emacs/msdog-xtra.texi6
-rw-r--r--doc/emacs/msdog.texi81
-rw-r--r--doc/emacs/mule.texi7
-rw-r--r--doc/emacs/picture-xtra.texi6
-rw-r--r--doc/emacs/programs.texi7
-rw-r--r--doc/emacs/regs.texi10
-rw-r--r--doc/emacs/rmail.texi121
-rw-r--r--doc/emacs/screen.texi7
-rw-r--r--doc/emacs/search.texi19
-rw-r--r--doc/emacs/sending.texi7
-rw-r--r--doc/emacs/text.texi13
-rw-r--r--doc/emacs/trouble.texi23
-rw-r--r--doc/emacs/vc-xtra.texi7
-rw-r--r--doc/emacs/vc1-xtra.texi7
-rw-r--r--doc/emacs/windows.texi8
-rw-r--r--doc/emacs/xresources.texi8
-rw-r--r--doc/lispintro/ChangeLog9
-rw-r--r--doc/lispintro/Makefile.in18
-rw-r--r--doc/lispintro/README3
-rw-r--r--doc/lispintro/cons-1.eps3
-rw-r--r--doc/lispintro/cons-2.eps3
-rw-r--r--doc/lispintro/cons-2a.eps3
-rw-r--r--doc/lispintro/cons-3.eps3
-rw-r--r--doc/lispintro/cons-4.eps3
-rw-r--r--doc/lispintro/cons-5.eps3
-rw-r--r--doc/lispintro/doclicense.texi4
-rw-r--r--doc/lispintro/drawers.eps3
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi4
-rw-r--r--doc/lispintro/lambda-1.eps3
-rw-r--r--doc/lispintro/lambda-2.eps3
-rw-r--r--doc/lispintro/lambda-3.eps3
-rw-r--r--doc/lispintro/makefile.w32-in3
-rw-r--r--doc/lispref/ChangeLog291
-rw-r--r--doc/lispref/Makefile.in18
-rw-r--r--doc/lispref/README3
-rw-r--r--doc/lispref/abbrevs.texi8
-rw-r--r--doc/lispref/advice.texi7
-rw-r--r--doc/lispref/anti.texi7
-rw-r--r--doc/lispref/back.texi7
-rw-r--r--doc/lispref/backups.texi13
-rw-r--r--doc/lispref/buffers.texi3
-rw-r--r--doc/lispref/commands.texi7
-rw-r--r--doc/lispref/compile.texi7
-rw-r--r--doc/lispref/control.texi7
-rw-r--r--doc/lispref/customize.texi7
-rw-r--r--doc/lispref/debugging.texi7
-rw-r--r--doc/lispref/display.texi20
-rw-r--r--doc/lispref/doclicense.texi4
-rw-r--r--doc/lispref/edebug.texi7
-rw-r--r--doc/lispref/elisp-covers.texi7
-rw-r--r--doc/lispref/elisp.texi3
-rw-r--r--doc/lispref/errors.texi7
-rw-r--r--doc/lispref/eval.texi7
-rw-r--r--doc/lispref/files.texi58
-rw-r--r--doc/lispref/frames.texi17
-rw-r--r--doc/lispref/front-cover-1.texi4
-rw-r--r--doc/lispref/functions.texi7
-rw-r--r--doc/lispref/gpl.texi4
-rw-r--r--doc/lispref/hash.texi7
-rw-r--r--doc/lispref/help.texi3
-rw-r--r--doc/lispref/hooks.texi7
-rw-r--r--doc/lispref/internals.texi7
-rw-r--r--doc/lispref/intro.texi7
-rw-r--r--doc/lispref/keymaps.texi31
-rw-r--r--doc/lispref/lay-flat.texi7
-rw-r--r--doc/lispref/lists.texi7
-rw-r--r--doc/lispref/loading.texi35
-rw-r--r--doc/lispref/locals.texi8
-rw-r--r--doc/lispref/macros.texi7
-rw-r--r--doc/lispref/makefile.w32-in19
-rw-r--r--doc/lispref/maps.texi5
-rw-r--r--doc/lispref/markers.texi7
-rw-r--r--doc/lispref/minibuf.texi7
-rw-r--r--doc/lispref/modes.texi832
-rw-r--r--doc/lispref/nonascii.texi7
-rw-r--r--doc/lispref/numbers.texi7
-rw-r--r--doc/lispref/objects.texi7
-rw-r--r--doc/lispref/os.texi7
-rw-r--r--doc/lispref/package.texi3
-rw-r--r--doc/lispref/positions.texi7
-rw-r--r--doc/lispref/processes.texi30
-rw-r--r--doc/lispref/searching.texi16
-rw-r--r--doc/lispref/sequences.texi7
-rw-r--r--doc/lispref/streams.texi7
-rw-r--r--doc/lispref/strings.texi13
-rw-r--r--doc/lispref/symbols.texi7
-rw-r--r--doc/lispref/syntax.texi7
-rw-r--r--doc/lispref/text.texi8
-rwxr-xr-xdoc/lispref/tindex.pl4
-rw-r--r--doc/lispref/tips.texi7
-rw-r--r--doc/lispref/two-volume-cross-refs.txt5
-rw-r--r--doc/lispref/two-volume.make3
-rw-r--r--doc/lispref/two.el4
-rw-r--r--doc/lispref/variables.texi8
-rw-r--r--doc/lispref/vol1.texi5
-rw-r--r--doc/lispref/vol2.texi5
-rw-r--r--doc/lispref/windows.texi7
-rw-r--r--doc/man/ChangeLog7
-rw-r--r--doc/man/ctags.12
-rw-r--r--doc/man/ebrowse.13
-rw-r--r--doc/man/emacs.13
-rw-r--r--doc/man/emacsclient.131
-rw-r--r--doc/man/etags.13
-rw-r--r--doc/man/grep-changelog.13
-rw-r--r--doc/man/rcs-checkin.13
-rw-r--r--doc/misc/ChangeLog133
-rw-r--r--doc/misc/Makefile.in117
-rw-r--r--doc/misc/ada-mode.texi7
-rw-r--r--doc/misc/auth.texi2
-rw-r--r--doc/misc/autotype.texi7
-rw-r--r--doc/misc/calc.texi4
-rw-r--r--doc/misc/cc-mode.texi5
-rw-r--r--doc/misc/cl.texi21
-rw-r--r--doc/misc/dbus.texi117
-rw-r--r--doc/misc/dired-x.texi7
-rw-r--r--doc/misc/ebrowse.texi7
-rw-r--r--doc/misc/ede.texi7
-rw-r--r--doc/misc/ediff.texi3
-rw-r--r--doc/misc/edt.texi3
-rw-r--r--doc/misc/eieio.texi6
-rw-r--r--doc/misc/emacs-mime.texi3
-rw-r--r--doc/misc/epa.texi70
-rw-r--r--doc/misc/erc.texi6
-rw-r--r--doc/misc/ert.texi841
-rw-r--r--doc/misc/eshell.texi7
-rw-r--r--doc/misc/eudc.texi3
-rw-r--r--doc/misc/faq.texi13
-rw-r--r--doc/misc/flymake.texi6
-rw-r--r--doc/misc/forms.texi7
-rw-r--r--doc/misc/gnus-coding.texi2
-rw-r--r--doc/misc/gnus-faq.texi3
-rw-r--r--doc/misc/gnus-news.el5
-rw-r--r--doc/misc/gnus-news.texi2
-rw-r--r--doc/misc/gnus.texi1951
-rw-r--r--doc/misc/gpl.texi4
-rw-r--r--doc/misc/idlwave.texi7
-rw-r--r--doc/misc/info.texi7
-rw-r--r--doc/misc/mairix-el.texi6
-rw-r--r--doc/misc/makefile.w32-in117
-rw-r--r--doc/misc/message.texi7
-rw-r--r--doc/misc/mh-e.texi3
-rw-r--r--doc/misc/newsticker.texi6
-rw-r--r--doc/misc/nxml-mode.texi6
-rw-r--r--doc/misc/org.texi7
-rw-r--r--doc/misc/pcl-cvs.texi7
-rw-r--r--doc/misc/pgg.texi3
-rw-r--r--doc/misc/rcirc.texi6
-rw-r--r--doc/misc/reftex.texi7
-rw-r--r--doc/misc/remember.texi6
-rw-r--r--doc/misc/sasl.texi2
-rw-r--r--doc/misc/sc.texi7
-rw-r--r--doc/misc/sem-user.texi7
-rw-r--r--doc/misc/semantic.texi7
-rw-r--r--doc/misc/ses.texi7
-rw-r--r--doc/misc/sieve.texi3
-rw-r--r--doc/misc/smtpmail.texi6
-rw-r--r--doc/misc/speedbar.texi7
-rw-r--r--doc/misc/texinfo.tex834
-rw-r--r--doc/misc/tramp.texi24
-rw-r--r--doc/misc/trampver.texi3
-rw-r--r--doc/misc/url.texi7
-rw-r--r--doc/misc/vip.texi7
-rw-r--r--doc/misc/viper.texi7
-rw-r--r--doc/misc/widget.texi7
-rw-r--r--doc/misc/woman.texi7
206 files changed, 4585 insertions, 2664 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index e390c6cbc16..c5b31d70139 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,105 @@
12011-01-29 Eli Zaretskii <eliz@gnu.org>
2
3 * makefile.w32-in (MAKEINFO): Remove options, leave only program name.
4 (MAKEINFO_OPTS): New variable.
5 (ENVADD, $(infodir)/emacs): Use $(MAKEINFO_OPTS).
6 (emacs.html): New target.
7 (clean): Remove emacs.html.
8
92011-01-23 Werner Lemberg <wl@gnu.org>
10
11 * Makefile.in (MAKEINFO): Now controlled by `configure'.
12 (MAKEINFO_OPTS): New variable. Use it where appropriate.
13 (ENVADD): Updated.
14
152011-01-18 Glenn Morris <rgm@gnu.org>
16
17 * ack.texi, emacs.texi (Acknowledgments): Update for ERT addition.
18
19 * ack.texi (Acknowledgments): Remove mention of replaced prolog.el.
20
212011-01-15 Chong Yidong <cyd@stupidchicken.com>
22
23 * building.texi (Compilation): Improve instructions for running two
24 compilations (Bug#7573).
25
26 * files.texi (Backup Names): Document the new location of the
27 last-resort backup file.
28
29 * files.texi (File Aliases): Move directory-abbrev-alist doc from Lisp
30 manual. Explain why directory-abbrev-alist elements should be anchored
31 (Bug#7777).
32
332011-01-15 Eli Zaretskii <eliz@gnu.org>
34
35 * msdog.texi (Windows Startup): Correct inaccurate description of
36 differences between emacsclient.exe and emacsclientw.exe.
37
382011-01-02 Chong Yidong <cyd@stupidchicken.com>
39
40 * rmail.texi (Rmail Display): Edit for grammar and conciseness.
41
422011-01-02 Kenichi Handa <handa@m17n.org>
43
44 * rmail.texi (Rmail Display): Describe new features of Rmail in Info.
45
462011-01-02 Eli Zaretskii <eliz@gnu.org>
47
48 * frames.texi (Cut and Paste): Modify the section's name and text:
49 don't mix "cut/paste" with "kill/yank".
50 (Cut/Paste Other App): Describe the per-session emulation of PRIMARY.
51 (Bug#7702)
52
53 * trouble.texi (Checklist): Mention debug-on-quit. (Bug#7667)
54
552011-01-02 Glenn Morris <rgm@gnu.org>
56
57 * maintaining.texi: Move inclusion of emerge after EDE, so that it
58 matches its position in the menu. (Bug#7674)
59
602011-01-02 Glenn Morris <rgm@gnu.org>
61
62 * trouble.texi (Checklist): Mention not replying via news either.
63
642010-12-30 Tassilo Horn <tassilo@member.fsf.org>
65
66 * misc.texi (Document View): Update DocView section with newly
67 supported document formats.
68
692010-12-21 Chong Yidong <cyd@stupidchicken.com>
70
71 * killing.texi: Resection the Info version to conform to the
72 printed manual, to avoid making sections on Accumulating Text, CUA
73 and Rectangles into full chapters.
74
752010-12-13 Eli Zaretskii <eliz@gnu.org>
76
77 * custom.texi (Init Syntax): Add index entries for "character syntax".
78 (Bug#7576)
79
802010-12-13 Karel Klíč <kklic@redhat.com>
81
82 * text.texi (HTML Mode): Small fixes. (Bug#7607)
83
842010-12-13 Glenn Morris <rgm@gnu.org>
85
86 * trouble.texi (Checklist): Fix typo in newsgroup name.
87
882010-12-13 Chong Yidong <cyd@stupidchicken.com>
89
90 * search.texi (Word Search): Note that the lazy highlight always
91 matches to whole words (Bug#7470).
92
932010-12-13 Eli Zaretskii <eliz@gnu.org>
94
95 * display.texi (Optional Mode Line): Make the description of
96 load-average more accurate.
97
98 * msdog.texi (Windows HOME): Mention that HOME can also be set in the
99 registry, with a cross-reference.
100 (Windows Startup): New node. Move the stuff about the current
101 directory from "Windows HOME".
102
12010-11-27 Bob Rogers <rogers-emacs@rgrjr.dyndns.org> 1032010-11-27 Bob Rogers <rogers-emacs@rgrjr.dyndns.org>
2 104
3 * maintaining.texi (VC With A Locking VCS, VC Directory Commands): 105 * maintaining.texi (VC With A Locking VCS, VC Directory Commands):
@@ -7474,9 +7576,7 @@
7474;; coding: utf-8 7576;; coding: utf-8
7475;; End: 7577;; End:
7476 7578
7477 Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 7579 Copyright (C) 1993-1999, 2001-2011 Free Software Foundation, Inc.
7478 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
7479 Free Software Foundation, Inc.
7480 7580
7481 This file is part of GNU Emacs. 7581 This file is part of GNU Emacs.
7482 7582
diff --git a/doc/emacs/Makefile.in b/doc/emacs/Makefile.in
index cdbd718a58d..0ba396e6427 100644
--- a/doc/emacs/Makefile.in
+++ b/doc/emacs/Makefile.in
@@ -1,8 +1,6 @@
1#### Makefile for the Emacs Manual 1#### Makefile for the Emacs Manual
2 2
3# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 3# Copyright (C) 1994, 1996-2011 Free Software Foundation, Inc.
4# 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc.
6 4
7# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
8 6
@@ -39,14 +37,16 @@ texinfodir = $(srcdir)/../misc
39 37
40# The makeinfo program is part of the Texinfo distribution. 38# The makeinfo program is part of the Texinfo distribution.
41# Use --force so that it generates output even if there are errors. 39# Use --force so that it generates output even if there are errors.
42MAKEINFO = makeinfo --force -I $(srcdir) 40MAKEINFO = @MAKEINFO@
41MAKEINFO_OPTS = --force -I $(srcdir)
43 42
44TEXI2DVI = texi2dvi 43TEXI2DVI = texi2dvi
45TEXI2PDF = texi2pdf 44TEXI2PDF = texi2pdf
46DVIPS = dvips 45DVIPS = dvips
47 46
48 47
49ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)" 48ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \
49 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
50 50
51 51
52EMACS_XTRA= \ 52EMACS_XTRA= \
@@ -129,7 +129,7 @@ ps: emacs.ps
129 129
130$(infodir)/emacs: ${EMACSSOURCES} 130$(infodir)/emacs: ${EMACSSOURCES}
131 $(mkinfodir) 131 $(mkinfodir)
132 $(MAKEINFO) -o $@ $< 132 $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $<
133 133
134emacs.dvi: ${EMACSSOURCES} 134emacs.dvi: ${EMACSSOURCES}
135 $(ENVADD) $(TEXI2DVI) $< 135 $(ENVADD) $(TEXI2DVI) $<
@@ -141,7 +141,7 @@ emacs.pdf: ${EMACSSOURCES}
141 $(ENVADD) $(TEXI2PDF) $< 141 $(ENVADD) $(TEXI2PDF) $<
142 142
143emacs.html: ${EMACSSOURCES} 143emacs.html: ${EMACSSOURCES}
144 $(MAKEINFO) --html -o $@ $< 144 $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $<
145 145
146emacs-xtra.dvi: $(EMACS_XTRA) 146emacs-xtra.dvi: $(EMACS_XTRA)
147 $(ENVADD) $(TEXI2DVI) $< 147 $(ENVADD) $(TEXI2DVI) $<
diff --git a/doc/emacs/abbrevs.texi b/doc/emacs/abbrevs.texi
index 9039ca662a0..d0833ea0854 100644
--- a/doc/emacs/abbrevs.texi
+++ b/doc/emacs/abbrevs.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2003, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Abbrevs 5@node Abbrevs
6@chapter Abbrevs 6@chapter Abbrevs
@@ -455,7 +455,3 @@ customize dynamic abbrev expansion to handle optional prefixes by setting
455the variable @code{dabbrev-abbrev-skip-leading-regexp}. Its value 455the variable @code{dabbrev-abbrev-skip-leading-regexp}. Its value
456should be a regular expression that matches the optional prefix that 456should be a regular expression that matches the optional prefix that
457dynamic abbrev expression should ignore. 457dynamic abbrev expression should ignore.
458
459@ignore
460 arch-tag: 638e0079-9540-48ec-9166-414083e16445
461@end ignore
diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi
index 3b22392b12e..d49fd7b7c60 100644
--- a/doc/emacs/ack.texi
+++ b/doc/emacs/ack.texi
@@ -1,7 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2@c Copyright (C) 1994-1997, 1999-2011 Free Software Foundation, Inc.
3@c 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
6@c 4@c
7@node Acknowledgments, Screen, Concept Index, Top 5@node Acknowledgments, Screen, Concept Index, Top
@@ -870,6 +868,10 @@ generating JSON files.
870Kentaro Ohkouchi created the Emacs icons used beginning with Emacs 23. 868Kentaro Ohkouchi created the Emacs icons used beginning with Emacs 23.
871 869
872@item 870@item
871Christian Ohler wrote @file{ert.el}, a library for automated regression
872testing.
873
874@item
873Alexandre Oliva wrote @file{gnus-mlspl.el}, a group params-based mail 875Alexandre Oliva wrote @file{gnus-mlspl.el}, a group params-based mail
874splitting mechanism. 876splitting mechanism.
875 877
@@ -1239,12 +1241,12 @@ package, for GnuPG and PGP support.
1239@item 1241@item
1240Masanobu Umeda wrote GNUS, a feature-rich reader for Usenet news that 1242Masanobu Umeda wrote GNUS, a feature-rich reader for Usenet news that
1241was the ancestor of the current Gnus package. He also wrote 1243was the ancestor of the current Gnus package. He also wrote
1242@file{prolog.el}, a mode for editing Prolog code; @file{rmailsort.el}, a 1244@file{rmailsort.el}, a package for sorting messages in RMAIL folders;
1243package for sorting messages in RMAIL folders; @file{metamail.el}, an 1245@file{metamail.el}, an interface to the Metamail program;
1244interface to the Metamail program; @file{gnus-kill.el}, the Kill File 1246@file{gnus-kill.el}, the Kill File mode for Gnus; @file{gnus-mh.el}, an
1245mode for Gnus; @file{gnus-mh.el}, an mh-e interface for Gnus; 1247mh-e interface for Gnus; @file{gnus-msg.el}, a mail and post interface
1246@file{gnus-msg.el}, a mail and post interface for Gnus; and 1248for Gnus; and @file{timezone.el}, providing functions for dealing with
1247@file{timezone.el}, providing functions for dealing with time zones. 1249time zones.
1248 1250
1249@item 1251@item
1250Neil W.@: Van Dyke wrote @file{webjump.el}, a ``hot links'' package. 1252Neil W.@: Van Dyke wrote @file{webjump.el}, a ``hot links'' package.
diff --git a/doc/emacs/anti.texi b/doc/emacs/anti.texi
index 748b43a17d7..1ee93362ae6 100644
--- a/doc/emacs/anti.texi
+++ b/doc/emacs/anti.texi
@@ -1,5 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 2@c Copyright (C) 2005-2011 Free Software Foundation, Inc.
3@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
4 4
5@node Antinews, Mac OS / GNUstep, X Resources, Top 5@node Antinews, Mac OS / GNUstep, X Resources, Top
@@ -135,7 +135,3 @@ Support for Sun windows has been added.
135To keep up with decreasing computer memory capacity and disk space, many 135To keep up with decreasing computer memory capacity and disk space, many
136other functions and files have been eliminated in Emacs 22.3. 136other functions and files have been eliminated in Emacs 22.3.
137@end itemize 137@end itemize
138
139@ignore
140 arch-tag: 32932bd9-46f5-41b2-8a0e-fb0cc4caeb29
141@end ignore
diff --git a/doc/emacs/arevert-xtra.texi b/doc/emacs/arevert-xtra.texi
index 098d0483e9a..374886cd956 100644
--- a/doc/emacs/arevert-xtra.texi
+++ b/doc/emacs/arevert-xtra.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 2@c Copyright (C) 2004-2011 Free Software Foundation, Inc.
3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
5@c 4@c
6@c This file is included either in emacs-xtra.texi (when producing the 5@c This file is included either in emacs-xtra.texi (when producing the
@@ -186,7 +185,3 @@ should at the very least make clear whether enabling auto-reverting
186for the buffer reliably assures that all information in the buffer is 185for the buffer reliably assures that all information in the buffer is
187completely up to date (or will be after @code{auto-revert-interval} 186completely up to date (or will be after @code{auto-revert-interval}
188seconds). 187seconds).
189
190@ignore
191 arch-tag: 2983e613-a272-45f6-9593-3010ad7f865e
192@end ignore
diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi
index 35c41a01097..edf07859e52 100644
--- a/doc/emacs/basic.texi
+++ b/doc/emacs/basic.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Basic, Minibuffer, Exiting, Top 5@node Basic, Minibuffer, Exiting, Top
@@ -744,4 +743,3 @@ characters. You can repeat that command (including its argument) three
744additional times, to delete a total of 80 characters, by typing @kbd{C-x 743additional times, to delete a total of 80 characters, by typing @kbd{C-x
745z z z}. The first @kbd{C-x z} repeats the command once, and each 744z z z}. The first @kbd{C-x z} repeats the command once, and each
746subsequent @kbd{z} repeats it once again. 745subsequent @kbd{z} repeats it once again.
747
diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi
index ca9279a9df4..ae0d85f249b 100644
--- a/doc/emacs/buffers.texi
+++ b/doc/emacs/buffers.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Buffers, Windows, Files, Top 5@node Buffers, Windows, Files, Top
@@ -674,7 +673,3 @@ provides a different and customizable mouse buffer menu which you may
674prefer. It replaces the bindings of @code{mouse-buffer-menu}, 673prefer. It replaces the bindings of @code{mouse-buffer-menu},
675normally on @kbd{C-Down-Mouse-1}, and the menu bar buffer menu. You 674normally on @kbd{C-Down-Mouse-1}, and the menu bar buffer menu. You
676can customize the menu in the @code{msb} Custom group. 675can customize the menu in the @code{msb} Custom group.
677
678@ignore
679 arch-tag: 08c43460-f4f4-4b43-9cb5-1ea9ad991695
680@end ignore
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index dca76407e23..1a02e92b67f 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Building, Maintaining, Programs, Top 5@node Building, Maintaining, Programs, Top
@@ -122,10 +121,10 @@ confirmation before actually killing a compilation that is running.
122You can also kill the compilation process with @kbd{M-x 121You can also kill the compilation process with @kbd{M-x
123kill-compilation}. 122kill-compilation}.
124 123
125 If you want to run two compilations at once, you should start the 124 To run two compilations at once, start the first one, then rename
126first one, then rename the @samp{*compilation*} buffer (perhaps using 125the @samp{*compilation*} buffer (perhaps using @code{rename-uniquely};
127@code{rename-uniquely}; @pxref{Misc Buffer}), and start the other 126@pxref{Misc Buffer}), then switch buffers and start the other
128compilation. That will create a new @samp{*compilation*} buffer. 127compilation. This will create a new @samp{*compilation*} buffer.
129 128
130 Emacs does not expect a compiler process to launch asynchronous 129 Emacs does not expect a compiler process to launch asynchronous
131subprocesses; if it does, and they keep running after the main 130subprocesses; if it does, and they keep running after the main
@@ -1640,8 +1639,3 @@ editing Lisp programs to be run in Emacs; see @pxref{Lisp Eval}): in
1640both modes it has the effect of installing the function definition 1639both modes it has the effect of installing the function definition
1641that point is in, but the way of doing so is different according to 1640that point is in, but the way of doing so is different according to
1642where the relevant Lisp environment is found. 1641where the relevant Lisp environment is found.
1643
1644
1645@ignore
1646 arch-tag: 9c3c2f71-b332-4144-8500-3ff9945a50ed
1647@end ignore
diff --git a/doc/emacs/cal-xtra.texi b/doc/emacs/cal-xtra.texi
index de36ccc4f5f..b936636403a 100644
--- a/doc/emacs/cal-xtra.texi
+++ b/doc/emacs/cal-xtra.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 2@c Copyright (C) 2004-2011 Free Software Foundation, Inc.
3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
5@c 4@c
6@c This file is included either in emacs-xtra.texi (when producing the 5@c This file is included either in emacs-xtra.texi (when producing the
@@ -900,7 +899,3 @@ for example in the European style to @var{day}, @var{month}, @var{year}.)
900@var{mark} which specifies how to mark the date in the calendar display. 899@var{mark} which specifies how to mark the date in the calendar display.
901If one of these functions decides that it applies to a certain date, 900If one of these functions decides that it applies to a certain date,
902it returns a value that contains @var{mark}, as described above. 901it returns a value that contains @var{mark}, as described above.
903
904@ignore
905 arch-tag: 52cb299f-fd1f-4616-bfe6-91b988669431
906@end ignore
diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi
index 89504764d7d..757dc3b4ac7 100644
--- a/doc/emacs/calendar.texi
+++ b/doc/emacs/calendar.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Calendar/Diary, Document View, Dired, Top 5@node Calendar/Diary, Document View, Dired, Top
@@ -1709,7 +1708,3 @@ data in Emacs from the file.
1709@ifnottex 1708@ifnottex
1710@include cal-xtra.texi 1709@include cal-xtra.texi
1711@end ifnottex 1710@end ifnottex
1712
1713@ignore
1714 arch-tag: 4531ef09-9df3-449d-9c52-2b5a4a337f92
1715@end ignore
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index ff8e4f84abd..12c1d9a8bfd 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Emacs Invocation, X Resources, GNU Free Documentation License, Top 5@node Emacs Invocation, X Resources, GNU Free Documentation License, Top
6@appendix Command Line Arguments for Emacs Invocation 6@appendix Command Line Arguments for Emacs Invocation
@@ -1163,7 +1163,3 @@ test case that simplifies debugging of display problems.
1163 1163
1164 The @samp{--xrm} option (@pxref{Resources}) specifies additional 1164 The @samp{--xrm} option (@pxref{Resources}) specifies additional
1165X resource values. 1165X resource values.
1166
1167@ignore
1168 arch-tag: fffecd9e-7329-4a51-a3cc-dd4a9889340e
1169@end ignore
diff --git a/doc/emacs/commands.texi b/doc/emacs/commands.texi
index 5fdd4ce42a4..5f44e7cd076 100644
--- a/doc/emacs/commands.texi
+++ b/doc/emacs/commands.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@iftex 5@iftex
6@chapter Characters, Keys and Commands 6@chapter Characters, Keys and Commands
@@ -195,7 +195,3 @@ specific variables will make sense.
195@ifnottex 195@ifnottex
196@lowersections 196@lowersections
197@end ifnottex 197@end ifnottex
198
199@ignore
200 arch-tag: 9be43eef-d1f4-4d03-a916-c741ea713a45
201@end ignore
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 18fdb581210..3bce186b38e 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Customization, Quitting, Amusements, Top 5@node Customization, Quitting, Amusements, Top
@@ -2234,6 +2233,8 @@ a Meta character, as in @samp{\M-a} for @kbd{Meta-A} or @samp{\M-\C-a} for
2234non-@acronym{ASCII} in your init file. 2233non-@acronym{ASCII} in your init file.
2235 2234
2236@item Characters: 2235@item Characters:
2236@cindex Lisp character syntax
2237@cindex character syntax
2237Lisp character constant syntax consists of a @samp{?} followed by 2238Lisp character constant syntax consists of a @samp{?} followed by
2238either a character or an escape sequence starting with @samp{\}. 2239either a character or an escape sequence starting with @samp{\}.
2239Examples: @code{?x}, @code{?\n}, @code{?\"}, @code{?\)}. Note that 2240Examples: @code{?x}, @code{?\n}, @code{?\"}, @code{?\)}. Note that
@@ -2250,6 +2251,7 @@ keys which send non-@acronym{ASCII} characters.
2250@code{nil} stands for `false'. 2251@code{nil} stands for `false'.
2251 2252
2252@item Other Lisp objects: 2253@item Other Lisp objects:
2254@cindex Lisp object syntax
2253Write a single-quote (@code{'}) followed by the Lisp object you want. 2255Write a single-quote (@code{'}) followed by the Lisp object you want.
2254@end table 2256@end table
2255 2257
@@ -2602,7 +2604,3 @@ stop working. It is therefore advisable to use one and only one
2602coding system, for your init file as well as the files you edit. For 2604coding system, for your init file as well as the files you edit. For
2603example, don't mix the @samp{latin-1} and @samp{latin-9} coding 2605example, don't mix the @samp{latin-1} and @samp{latin-9} coding
2604systems. 2606systems.
2605
2606@ignore
2607 arch-tag: c68abddb-4410-4fb5-925f-63394e971d93
2608@end ignore
diff --git a/doc/emacs/dired-xtra.texi b/doc/emacs/dired-xtra.texi
index ce49b4d0784..efb05226ba8 100644
--- a/doc/emacs/dired-xtra.texi
+++ b/doc/emacs/dired-xtra.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 2@c Copyright (C) 2004-2011 Free Software Foundation, Inc.
3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
5@c 4@c
6@c This file is included either in emacs-xtra.texi (when producing the 5@c This file is included either in emacs-xtra.texi (when producing the
@@ -42,7 +41,3 @@ without explicitly assigned switches.)
42You can make Dired forget about all subdirectory switches and relist 41You can make Dired forget about all subdirectory switches and relist
43all subdirectories with the buffer's default switches using 42all subdirectories with the buffer's default switches using
44@kbd{M-x dired-reset-subdir-switches}. This also reverts the Dired buffer. 43@kbd{M-x dired-reset-subdir-switches}. This also reverts the Dired buffer.
45
46@ignore
47 arch-tag: e3865701-9179-4ffb-bc34-d321111c688d
48@end ignore
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 4a5d52b64ad..914c9984c14 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Dired, Calendar/Diary, Rmail, Top 5@node Dired, Calendar/Diary, Rmail, Top
@@ -1404,7 +1403,3 @@ it onto a Dired buffer; this either moves, copies, or creates a link
1404to the file in that directory. Precisely which action is taken is 1403to the file in that directory. Precisely which action is taken is
1405determined by the originating program. Dragging files out of a Dired 1404determined by the originating program. Dragging files out of a Dired
1406buffer is currently not supported. 1405buffer is currently not supported.
1407
1408@ignore
1409 arch-tag: d105f9b9-fc1b-4c5f-a949-9b2cf3ca2fc1
1410@end ignore
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index cd08a524f50..a21b660ee21 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5 4
6@c See file emacs.texi for copying conditions. 5@c See file emacs.texi for copying conditions.
@@ -1010,11 +1009,12 @@ their parentheses. It looks like this:
1010@noindent 1009@noindent
1011@vindex display-time-24hr-format 1010@vindex display-time-24hr-format
1012Here @var{hh} and @var{mm} are the hour and minute, followed always by 1011Here @var{hh} and @var{mm} are the hour and minute, followed always by
1013@samp{am} or @samp{pm}. @var{l.ll} is the average number of running 1012@samp{am} or @samp{pm}. @var{l.ll} is the average number, collected
1014processes in the whole system recently. (Some fields may be missing if 1013for the last few minutes, of processes in the whole system that were
1015your operating system cannot support them.) If you prefer time display 1014either running or ready to run (i.e.@: were waiting for an available
1016in 24-hour format, set the variable @code{display-time-24hr-format} 1015processor). (Some fields may be missing if your operating system
1017to @code{t}. 1016cannot support them.) If you prefer time display in 24-hour format,
1017set the variable @code{display-time-24hr-format} to @code{t}.
1018 1018
1019@cindex mail (on mode line) 1019@cindex mail (on mode line)
1020@vindex display-time-use-mail-icon 1020@vindex display-time-use-mail-icon
@@ -1400,7 +1400,3 @@ page for other output. On such terminals, you might want to set the variable
1400@code{no-redraw-on-reenter} non-@code{nil}; this tells Emacs to 1400@code{no-redraw-on-reenter} non-@code{nil}; this tells Emacs to
1401assume, when resumed, that the screen page it is using still contains 1401assume, when resumed, that the screen page it is using still contains
1402what Emacs last wrote there. 1402what Emacs last wrote there.
1403
1404@ignore
1405 arch-tag: 2219f910-2ff0-4521-b059-1bd231a536c4
1406@end ignore
diff --git a/doc/emacs/doclicense.texi b/doc/emacs/doclicense.texi
index 6e9f5a144b9..51342e96d60 100644
--- a/doc/emacs/doclicense.texi
+++ b/doc/emacs/doclicense.texi
@@ -506,7 +506,3 @@ to permit their use in free software.
506@c ispell-local-pdict: "ispell-dict" 506@c ispell-local-pdict: "ispell-dict"
507@c End: 507@c End:
508 508
509@ignore
510 arch-tag: d68e7b7a-0c7c-4c15-905b-a9482214e25a
511@end ignore
512
diff --git a/doc/emacs/emacs-xtra.texi b/doc/emacs/emacs-xtra.texi
index f0c1ffb2408..f9d1c27fe55 100644
--- a/doc/emacs/emacs-xtra.texi
+++ b/doc/emacs/emacs-xtra.texi
@@ -11,7 +11,7 @@
11@copying 11@copying
12This manual describes specialized features of Emacs. 12This manual describes specialized features of Emacs.
13 13
14Copyright @copyright{} 2004, 2005, 2006, 2007, 2008, 2009, 2010 14Copyright @copyright{} 2004-2011
15Free Software Foundation, Inc. 15Free Software Foundation, Inc.
16 16
17@quotation 17@quotation
@@ -136,7 +136,3 @@ the Emacs manual.
136@printindex cp 136@printindex cp
137 137
138@bye 138@bye
139
140@ignore
141 arch-tag: 75c33f13-32c6-41b6-9537-847a312e2e49
142@end ignore
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 65a565dbe8e..cd9a4602bf9 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -11,9 +11,7 @@
11This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},@* 11This is the @value{EDITION} edition of the @cite{GNU Emacs Manual},@*
12updated for Emacs version @value{EMACSVER}. 12updated for Emacs version @value{EMACSVER}.
13 13
14Copyright @copyright{} 1985, 1986, 1987, 1993, 1994, 1995, 1996, 1997, 14Copyright @copyright{} 1985-1987, 1993-2011 Free Software Foundation, Inc.
151998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
162010 Free Software Foundation, Inc.
17 15
18@quotation 16@quotation
19Permission is granted to copy, distribute and/or modify this document 17Permission is granted to copy, distribute and/or modify this document
@@ -1192,6 +1190,7 @@ Emacs and Mac OS / GNUstep
1192 1190
1193Emacs and Microsoft Windows/MS-DOS 1191Emacs and Microsoft Windows/MS-DOS
1194 1192
1193* Windows Startup:: How to start Emacs on Windows.
1195* Text and Binary:: Text files use CRLF to terminate lines. 1194* Text and Binary:: Text files use CRLF to terminate lines.
1196* Windows Files:: File-name conventions on Windows. 1195* Windows Files:: File-name conventions on Windows.
1197* ls in Lisp:: Emulation of @code{ls} for Dired. 1196* ls in Lisp:: Emulation of @code{ls} for Dired.
@@ -1394,15 +1393,15 @@ Miller, Lawrence Mitchell, Richard Mlynarik, Gerd Moellmann, Stefan
1394Monnier, Morioka Tomohiko, Keith Moore, Jan Moringen, Glenn Morris, 1393Monnier, Morioka Tomohiko, Keith Moore, Jan Moringen, Glenn Morris,
1395Diane Murray, Sen Nagata, Erik Naggum, Thomas Neumann, Thien-Thi Nguyen, 1394Diane Murray, Sen Nagata, Erik Naggum, Thomas Neumann, Thien-Thi Nguyen,
1396Mike Newton, Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Niksic, Jeff 1395Mike Newton, Jurgen Nickelsen, Dan Nicolaescu, Hrvoje Niksic, Jeff
1397Norden, Andrew Norman, Alexandre Oliva, Bob Olson, Michael Olson, 1396Norden, Andrew Norman, Christian Ohler, Alexandre Oliva, Bob Olson,
1398Takaaki Ota, Pieter E.@: J.@: Pareit, Ross Patterson, David Pearson, 1397Michael Olson, Takaaki Ota, Pieter E.@: J.@: Pareit, Ross Patterson,
1399Jeff Peck, Damon Anton Permezel, Tom Perrine, William M.@: Perry, Per 1398David Pearson, Jeff Peck, Damon Anton Permezel, Tom Perrine, William
1400Persson, Jens Petersen, Daniel Pfeiffer, Richard L.@: Pieri, Fred 1399M.@: Perry, Per Persson, Jens Petersen, Daniel Pfeiffer, Richard L.@:
1401Pierresteguy, Christian Plaunt, David Ponce, Francesco A.@: Potorti, 1400Pieri, Fred Pierresteguy, Christian Plaunt, David Ponce, Francesco A.@:
1402Michael D. Prange, Mukesh Prasad, Ken Raeburn, Marko Rahamaa, Ashwin 1401Potorti, Michael D. Prange, Mukesh Prasad, Ken Raeburn, Marko Rahamaa,
1403Ram, Eric S. Raymond, Paul Reilly, Edward M. Reingold, Alex Rezinsky, 1402Ashwin Ram, Eric S. Raymond, Paul Reilly, Edward M. Reingold, Alex
1404Rob Riepel, David Reitter, Adrian Robert, Nick Roberts, Roland B.@: 1403Rezinsky, Rob Riepel, David Reitter, Adrian Robert, Nick Roberts, Roland
1405Roberts, John Robinson, Danny Roozendaal, Sebastian Rose, William 1404B.@: Roberts, John Robinson, Danny Roozendaal, Sebastian Rose, William
1406Rosenblatt, Guillermo J.@: Rozas, Martin Rudalics, Ivar Rummelhoff, 1405Rosenblatt, Guillermo J.@: Rozas, Martin Rudalics, Ivar Rummelhoff,
1407Jason Rumney, Wolfgang Rupprecht, Kevin Ryde, James B. Salem, Masahiko 1406Jason Rumney, Wolfgang Rupprecht, Kevin Ryde, James B. Salem, Masahiko
1408Sato, Jorgen Schaefer, Holger Schauer, William Schelter, Ralph 1407Sato, Jorgen Schaefer, Holger Schauer, William Schelter, Ralph
diff --git a/doc/emacs/emerge-xtra.texi b/doc/emacs/emerge-xtra.texi
index f502d3f4728..b46868cf52b 100644
--- a/doc/emacs/emerge-xtra.texi
+++ b/doc/emacs/emerge-xtra.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 2@c Copyright (C) 2004-2011 Free Software Foundation, Inc.
3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
5@c 4@c
6@c This file is included either in emacs-xtra.texi (when producing the 5@c This file is included either in emacs-xtra.texi (when producing the
@@ -412,7 +411,3 @@ commands.
412@ifnottex 411@ifnottex
413@xref{Hooks}. 412@xref{Hooks}.
414@end ifnottex 413@end ifnottex
415
416@ignore
417 arch-tag: cda63f09-9c5f-4ea1-adb9-4a820fdfb24e
418@end ignore
diff --git a/doc/emacs/entering.texi b/doc/emacs/entering.texi
index 743688f3033..3c4a74c02b5 100644
--- a/doc/emacs/entering.texi
+++ b/doc/emacs/entering.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 2001, 2002, 2003, 2@c Copyright (C) 1985-1987, 1993-1995, 2001-2011
3@c 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@iftex 5@iftex
6@chapter Entering and Exiting Emacs 6@chapter Entering and Exiting Emacs
@@ -181,7 +181,3 @@ keys to run any commands of your choice (@pxref{Keymaps}).
181@ifnottex 181@ifnottex
182@lowersections 182@lowersections
183@end ifnottex 183@end ifnottex
184
185@ignore
186 arch-tag: df798d8b-f253-4113-b585-f528f078a944
187@end ignore
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 73c10ac834f..0ebf59a9f37 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2011
3@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Files, Buffers, Keyboard Macros, Top 5@node Files, Buffers, Keyboard Macros, Top
@@ -568,10 +567,10 @@ another from the newly saved contents if you save again.
568appending @samp{~} to the file name being edited; thus, the backup 567appending @samp{~} to the file name being edited; thus, the backup
569file for @file{eval.c} would be @file{eval.c~}. 568file for @file{eval.c} would be @file{eval.c~}.
570 569
571 If access control stops Emacs from writing backup files under the usual 570 If access control stops Emacs from writing backup files under the
572names, it writes the backup file as @file{%backup%~} in your home 571usual names, it writes the backup file as @file{~/.emacs.d/%backup%~}.
573directory. Only one such file can exist, so only the most recently 572Only one such file can exist, so only the most recently made such
574made such backup is available. 573backup is available.
575 574
576 Emacs can also make @dfn{numbered backup files}. Numbered backup 575 Emacs can also make @dfn{numbered backup files}. Numbered backup
577file names contain @samp{.~}, the number, and another @samp{~} after 576file names contain @samp{.~}, the number, and another @samp{~} after
@@ -1160,7 +1159,6 @@ links point to directories.
1160 1159
1161@vindex find-file-existing-other-name 1160@vindex find-file-existing-other-name
1162@vindex find-file-suppress-same-file-warnings 1161@vindex find-file-suppress-same-file-warnings
1163
1164 Normally, if you visit a file which Emacs is already visiting under 1162 Normally, if you visit a file which Emacs is already visiting under
1165a different name, Emacs displays a message in the echo area and uses 1163a different name, Emacs displays a message in the echo area and uses
1166the existing buffer visiting that file. This can happen on systems 1164the existing buffer visiting that file. This can happen on systems
@@ -1182,6 +1180,31 @@ then the file name recorded for a buffer is the file's @dfn{truename}
1182than the name you specify. Setting @code{find-file-visit-truename} also 1180than the name you specify. Setting @code{find-file-visit-truename} also
1183implies the effect of @code{find-file-existing-other-name}. 1181implies the effect of @code{find-file-existing-other-name}.
1184 1182
1183@cindex directory name abbreviation
1184@vindex directory-abbrev-alist
1185 Sometimes, a directory is ordinarily accessed through a symbolic
1186link, and you may want Emacs to preferentially display its ``linked''
1187name instead of its truename. To do this, customize the variable
1188@code{directory-abbrev-alist}. Each element in this list should have
1189the form @code{(@var{from} . @var{to})}, which says to replace
1190@var{from} with @var{to} when it appears in a directory name. For
1191this feature to work properly, @var{from} and @var{to} should point to
1192the same file. The @var{from} string is actually a regular expression
1193(@pxref{Regexps}); it should always start with @samp{\`}, to avoid
1194matching to an incorrect part of the original directory name. The
1195@var{to} string should be an ordinary absolute directory name. Do not
1196use @samp{~} to stand for a home directory in the @var{to} string;
1197Emacs performs these substitutions separately.
1198
1199 Here's an example, from a system on which file system
1200@file{/home/fsf} and so on are normally accessed through symbolic
1201links named @file{/fsf} and so on.
1202
1203@example
1204(("\\`/home/fsf" . "/fsf")
1205 ("\\`/home/gd" . "/gd"))
1206@end example
1207
1185@node Directories 1208@node Directories
1186@section File Directories 1209@section File Directories
1187 1210
@@ -1974,7 +1997,3 @@ menu, where each existing fileset is represented by a submenu.
1974Control} to describe sets of files to be treated as a group for 1997Control} to describe sets of files to be treated as a group for
1975purposes of version control operations. Those filesets are unnamed 1998purposes of version control operations. Those filesets are unnamed
1976and do not persist across Emacs sessions. 1999and do not persist across Emacs sessions.
1977
1978@ignore
1979 arch-tag: 768d32cb-e15a-4cc1-b7bf-62c00ee12250
1980@end ignore
diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi
index e7b633769b9..72100f8cafb 100644
--- a/doc/emacs/fixit.texi
+++ b/doc/emacs/fixit.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Fixit, Keyboard Macros, Search, Top 5@node Fixit, Keyboard Macros, Search, Top
6@chapter Commands for Fixing Typos 6@chapter Commands for Fixing Typos
@@ -423,7 +423,3 @@ that it only checks words in comments and string constants. This
423feature is useful for editing programs. Type @kbd{M-x 423feature is useful for editing programs. Type @kbd{M-x
424flyspell-prog-mode} to enable or disable this mode in the current 424flyspell-prog-mode} to enable or disable this mode in the current
425buffer. 425buffer.
426
427@ignore
428 arch-tag: 3359a443-96ed-448f-9f05-c8111ba8eac0
429@end ignore
diff --git a/doc/emacs/fortran-xtra.texi b/doc/emacs/fortran-xtra.texi
index d875ed46812..8f92df3f3ae 100644
--- a/doc/emacs/fortran-xtra.texi
+++ b/doc/emacs/fortran-xtra.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 2@c Copyright (C) 2004-2011 Free Software Foundation, Inc.
3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
5@c 4@c
6@c This file is included either in emacs-xtra.texi (when producing the 5@c This file is included either in emacs-xtra.texi (when producing the
@@ -582,7 +581,3 @@ to @samp{continue}, provided Abbrev mode is enabled.@refill
582 581
583 Type @samp{;?} or @samp{;C-h} to display a list of all the built-in 582 Type @samp{;?} or @samp{;C-h} to display a list of all the built-in
584Fortran abbrevs and what they stand for. 583Fortran abbrevs and what they stand for.
585
586@ignore
587 arch-tag: 23ed7c36-1517-4646-9235-2d5ade5f06f6
588@end ignore
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index df4f0beff9e..b952ef15aff 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2011
3@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Frames, International, Windows, Top 5@node Frames, International, Windows, Top
@@ -58,10 +57,10 @@ so that you can use many of the features described in this chapter.
58@end menu 57@end menu
59 58
60@node Cut and Paste 59@node Cut and Paste
61@section Killing and Yanking on Graphical Displays 60@section Cutting and Pasting on Graphical Displays
62 61
63 This section describes commands for selecting a region, killing, and 62 This section describes commands for selecting a region, cutting, and
64yanking using the mouse. 63pasting using the mouse.
65 64
66@menu 65@menu
67* Mouse Commands:: Moving, cutting, and pasting, with the mouse. 66* Mouse Commands:: Moving, cutting, and pasting, with the mouse.
@@ -248,6 +247,14 @@ has no ``memory'': each time you save something in the primary
248selection, either in Emacs or in another X application, the previous 247selection, either in Emacs or in another X application, the previous
249contents of the primary selection are lost. 248contents of the primary selection are lost.
250 249
250@cindex MS-Windows, and primary selection
251 MS-Windows provides no primary selection, but Emacs emulates it
252within a single Emacs session, by storing the selected text
253internally. Therefore, all the features and commands related to the
254primary selection work on Windows as they do on X, for cutting and
255pasting within the same session, but not across Emacs sessions or with
256other applications.
257
251 Whenever you kill some text using a command such as @kbd{C-w} 258 Whenever you kill some text using a command such as @kbd{C-w}
252(@code{kill-region}), or copy it into the kill ring using a command 259(@code{kill-region}), or copy it into the kill ring using a command
253such as @kbd{M-w} (@code{kill-ring-save}), that text is also saved in 260such as @kbd{M-w} (@code{kill-ring-save}), that text is also saved in
@@ -1431,7 +1438,3 @@ again.
1431In the console on GNU/Linux, you can use @kbd{M-x gpm-mouse-mode} to 1438In the console on GNU/Linux, you can use @kbd{M-x gpm-mouse-mode} to
1432enable terminal mouse support. You must have the gpm package 1439enable terminal mouse support. You must have the gpm package
1433installed and running on your system in order for this to work. 1440installed and running on your system in order for this to work.
1434
1435@ignore
1436 arch-tag: 7dcf3a31-a43b-45d4-a900-445b10d77e49
1437@end ignore
diff --git a/doc/emacs/glossary.texi b/doc/emacs/glossary.texi
index 2d6b7f295b6..3cf1cc522bf 100644
--- a/doc/emacs/glossary.texi
+++ b/doc/emacs/glossary.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Glossary, Key Index, Intro, Top 5@node Glossary, Key Index, Intro, Top
6@unnumbered Glossary 6@unnumbered Glossary
@@ -1372,7 +1372,3 @@ Yanking means reinserting text previously killed (q.v.@:). It can be
1372used to undo a mistaken kill, or for copying or moving text. Some 1372used to undo a mistaken kill, or for copying or moving text. Some
1373other systems call this ``pasting.'' @xref{Yanking}. 1373other systems call this ``pasting.'' @xref{Yanking}.
1374@end table 1374@end table
1375
1376@ignore
1377 arch-tag: 0dd53ce1-5f09-4ac2-b13b-cf22b0f28d23
1378@end ignore
diff --git a/doc/emacs/gnu.texi b/doc/emacs/gnu.texi
index 8c2f0a740e9..dfdeedd65ec 100644
--- a/doc/emacs/gnu.texi
+++ b/doc/emacs/gnu.texi
@@ -1,5 +1,5 @@
1@c Copyright (C) 1985, 1986, 1987, 1993, 1995, 2001, 2002, 2003, 2004, 1@c Copyright (C) 1985-1987, 1993, 1995, 2001-2011
2@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 2@c Free Software Foundation, Inc.
3@c 3@c
4@c Permission is granted to anyone to make or distribute verbatim copies 4@c Permission is granted to anyone to make or distribute verbatim copies
5@c of this document, in any medium, provided that the copyright notice and 5@c of this document, in any medium, provided that the copyright notice and
@@ -549,7 +549,3 @@ this are bureaucracy and isometric struggles against competition. Free
549software will greatly reduce these drains in the area of software 549software will greatly reduce these drains in the area of software
550production. We must do this, in order for technical gains in productivity 550production. We must do this, in order for technical gains in productivity
551to translate into less work for us. 551to translate into less work for us.
552
553@ignore
554 arch-tag: 21eb38f8-6fa0-480a-91cd-f3dab7148542
555@end ignore
diff --git a/doc/emacs/gpl.texi b/doc/emacs/gpl.texi
index 7fe5c3ebe40..1908d1f8f98 100644
--- a/doc/emacs/gpl.texi
+++ b/doc/emacs/gpl.texi
@@ -715,7 +715,3 @@ library, you may consider it more useful to permit linking proprietary
715applications with the library. If this is what you want to do, use 715applications with the library. If this is what you want to do, use
716the GNU Lesser General Public License instead of this License. But 716the GNU Lesser General Public License instead of this License. But
717first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}. 717first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}.
718
719@ignore
720 arch-tag: 8b9947e1-c830-4d70-8907-a97e556731ba
721@end ignore
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index 3e298bb0f96..8c0d768939b 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Help, Mark, M-x, Top 5@node Help, Mark, M-x, Top
@@ -677,7 +676,3 @@ help text for active buffer text using the keyboard. @kbd{C-h .}
677character after point, using the echo area. To display help text 676character after point, using the echo area. To display help text
678automatically whenever it is available on the character after point, set 677automatically whenever it is available on the character after point, set
679the variable @code{help-at-pt-display-when-idle} to @code{t}. 678the variable @code{help-at-pt-display-when-idle} to @code{t}.
680
681@ignore
682 arch-tag: 6f33ab62-bc75-4367-8057-fd67cc15c3a1
683@end ignore
diff --git a/doc/emacs/indent.texi b/doc/emacs/indent.texi
index 7ba3909e49f..c4ef4781aaf 100644
--- a/doc/emacs/indent.texi
+++ b/doc/emacs/indent.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Indentation, Text, Major Modes, Top 5@node Indentation, Text, Major Modes, Top
6@chapter Indentation 6@chapter Indentation
@@ -258,7 +258,3 @@ preserving the columns of all nonblank text. @kbd{M-x tabify} scans the
258region for sequences of spaces, and converts sequences of at least two 258region for sequences of spaces, and converts sequences of at least two
259spaces to tabs if that can be done without changing indentation. @kbd{M-x 259spaces to tabs if that can be done without changing indentation. @kbd{M-x
260untabify} changes all tabs in the region to appropriate numbers of spaces. 260untabify} changes all tabs in the region to appropriate numbers of spaces.
261
262@ignore
263 arch-tag: acc07de7-ae11-4ee8-a159-cb59c473f0fb
264@end ignore
diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi
index 150f05b5994..41262e9c2d8 100644
--- a/doc/emacs/killing.texi
+++ b/doc/emacs/killing.texi
@@ -1,16 +1,11 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6 5
7@node Killing, Yanking, Mark, Top 6@node Killing, Registers, Mark, Top
8@chapter Killing and Moving Text 7@chapter Killing and Moving Text
9 8
10@ifnottex
11@raisesections
12@end ifnottex
13
14 @dfn{Killing} means erasing text and copying it into the @dfn{kill 9 @dfn{Killing} means erasing text and copying it into the @dfn{kill
15ring}, from which you can bring it back into the buffer by 10ring}, from which you can bring it back into the buffer by
16@dfn{yanking} it. (Some applications use the terms ``cutting'' and 11@dfn{yanking} it. (Some applications use the terms ``cutting'' and
@@ -19,9 +14,16 @@ moving or copying text within Emacs. It is very versatile, because
19there are commands for killing many different types of syntactic 14there are commands for killing many different types of syntactic
20units. 15units.
21 16
22@iftex 17@menu
18* Deletion and Killing:: Commands that remove text.
19* Yanking:: Commands that insert text.
20* Accumulating Text:: Other methods to add text to the buffer.
21* Rectangles:: Operating on text in rectangular areas.
22* CUA Bindings:: Using C-x/C-c/C-v to kill and yank.
23@end menu
24
25@node Deletion and Killing
23@section Deletion and Killing 26@section Deletion and Killing
24@end iftex
25 27
26@cindex killing text 28@cindex killing text
27@cindex cutting text 29@cindex cutting text
@@ -233,7 +235,7 @@ explain why the text has not been erased.
233non-@code{nil} value, identical subsequent kills yield a single 235non-@code{nil} value, identical subsequent kills yield a single
234kill-ring entry, without duplication. 236kill-ring entry, without duplication.
235 237
236@node Yanking, Accumulating Text, Killing, Top 238@node Yanking
237@section Yanking 239@section Yanking
238@cindex moving text 240@cindex moving text
239@cindex copying text 241@cindex copying text
@@ -416,7 +418,7 @@ saved.
416@code{kill-ring}; you can view the entire contents of the kill ring with 418@code{kill-ring}; you can view the entire contents of the kill ring with
417the command @kbd{C-h v kill-ring}. 419the command @kbd{C-h v kill-ring}.
418 420
419@node Accumulating Text, Rectangles, Yanking, Top 421@node Accumulating Text
420@section Accumulating Text 422@section Accumulating Text
421@findex append-to-buffer 423@findex append-to-buffer
422@findex prepend-to-buffer 424@findex prepend-to-buffer
@@ -487,7 +489,7 @@ can lead to losing some of your editing.
487 Another way to move text around is to store it in a register. 489 Another way to move text around is to store it in a register.
488@xref{Registers}. 490@xref{Registers}.
489 491
490@node Rectangles, CUA Bindings, Accumulating Text, Top 492@node Rectangles
491@section Rectangles 493@section Rectangles
492@cindex rectangle 494@cindex rectangle
493@cindex columns (and rectangles) 495@cindex columns (and rectangles)
@@ -613,7 +615,7 @@ rectangle shifts right.
613@code{string-rectangle}, but inserts the string on each line, 615@code{string-rectangle}, but inserts the string on each line,
614shifting the original text to the right. 616shifting the original text to the right.
615 617
616@node CUA Bindings, Registers, Rectangles, Top 618@node CUA Bindings
617@section CUA Bindings 619@section CUA Bindings
618@findex cua-mode 620@findex cua-mode
619@vindex cua-mode 621@vindex cua-mode
@@ -664,11 +666,3 @@ navigate to each of the words you want in the list, mark it (e.g. with
664@kbd{S-M-f}), copy it to the list with @kbd{C-c} or @kbd{M-w}, and 666@kbd{S-M-f}), copy it to the list with @kbd{C-c} or @kbd{M-w}, and
665insert a newline after the word in the target list by pressing 667insert a newline after the word in the target list by pressing
666@key{RET}. 668@key{RET}.
667
668@ifnottex
669@lowersections
670@end ifnottex
671
672@ignore
673 arch-tag: d8da8f96-0928-449a-816e-ff2d3497866c
674@end ignore
diff --git a/doc/emacs/kmacro.texi b/doc/emacs/kmacro.texi
index daab7abd161..c52381a663c 100644
--- a/doc/emacs/kmacro.texi
+++ b/doc/emacs/kmacro.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Keyboard Macros, Files, Fixit, Top 5@node Keyboard Macros, Files, Fixit, Top
6@chapter Keyboard Macros 6@chapter Keyboard Macros
@@ -569,7 +569,3 @@ including the final @kbd{C-j}), and appends them at the end of the
569keyboard macro; it then terminates the step-editing and replaces the 569keyboard macro; it then terminates the step-editing and replaces the
570original keyboard macro with the edited macro. 570original keyboard macro with the edited macro.
571@end itemize 571@end itemize
572
573@ignore
574 arch-tag: c1b0dd3b-3159-4c08-928f-52e763953e9c
575@end ignore
diff --git a/doc/emacs/m-x.texi b/doc/emacs/m-x.texi
index 393eb78a14e..cf55631e14e 100644
--- a/doc/emacs/m-x.texi
+++ b/doc/emacs/m-x.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node M-x, Help, Minibuffer, Top 5@node M-x, Help, Minibuffer, Top
6@chapter Running Commands by Name 6@chapter Running Commands by Name
@@ -69,7 +69,3 @@ the command is followed by arguments.
69 @kbd{M-x} works by running the command 69 @kbd{M-x} works by running the command
70@code{execute-extended-command}, which is responsible for reading the 70@code{execute-extended-command}, which is responsible for reading the
71name of another command and invoking it. 71name of another command and invoking it.
72
73@ignore
74 arch-tag: b67bff53-9628-4666-b94e-eda972a7ba56
75@end ignore
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi
index 044a722a07a..5d5705456f9 100644
--- a/doc/emacs/macos.texi
+++ b/doc/emacs/macos.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2@c Copyright (C) 2000-2011 Free Software Foundation, Inc.
3@c 2009, 2010 Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
5@node Mac OS / GNUstep, Microsoft Windows, Antinews, Top 4@node Mac OS / GNUstep, Microsoft Windows, Antinews, Top
6@appendix Emacs and Mac OS / GNUstep 5@appendix Emacs and Mac OS / GNUstep
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index cf504b6be2a..e1b8eef3828 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2011
3@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Maintaining, Abbrevs, Building, Top 5@node Maintaining, Abbrevs, Building, Top
@@ -2288,10 +2287,6 @@ details.
2288 You can also use the collection of tag names to complete a symbol 2287 You can also use the collection of tag names to complete a symbol
2289name in the buffer. @xref{Symbol Completion}. 2288name in the buffer. @xref{Symbol Completion}.
2290 2289
2291@ifnottex
2292@include emerge-xtra.texi
2293@end ifnottex
2294
2295@node EDE 2290@node EDE
2296@section Emacs Development Environment 2291@section Emacs Development Environment
2297@cindex EDE (Emacs Development Environment) 2292@cindex EDE (Emacs Development Environment)
@@ -2355,6 +2350,6 @@ To build all the targets in the project, type @kbd{C-c . C}
2355(@code{ede-compile-project}). EDE uses the file types to guess how 2350(@code{ede-compile-project}). EDE uses the file types to guess how
2356the target should be built. 2351the target should be built.
2357 2352
2358@ignore 2353@ifnottex
2359 arch-tag: b9d83dfb-82ea-4ff6-bab5-05a3617091fb 2354@include emerge-xtra.texi
2360@end ignore 2355@end ifnottex
diff --git a/doc/emacs/major.texi b/doc/emacs/major.texi
index d67bc4a13dd..9256c712f02 100644
--- a/doc/emacs/major.texi
+++ b/doc/emacs/major.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Major Modes, Indentation, International, Top 5@node Major Modes, Indentation, International, Top
6@chapter Major Modes 6@chapter Major Modes
@@ -235,7 +235,3 @@ However, this does not happen if the buffer contents specify a major
235mode, and certain ``special'' major modes do not allow the mode to 235mode, and certain ``special'' major modes do not allow the mode to
236change. You can turn off this mode-changing feature by setting 236change. You can turn off this mode-changing feature by setting
237@code{change-major-mode-with-file-name} to @code{nil}. 237@code{change-major-mode-with-file-name} to @code{nil}.
238
239@ignore
240 arch-tag: f2558800-cf32-4839-8acb-7d3b4df2a155
241@end ignore
diff --git a/doc/emacs/makefile.w32-in b/doc/emacs/makefile.w32-in
index 213077cbc8f..bbbcaf0528b 100644
--- a/doc/emacs/makefile.w32-in
+++ b/doc/emacs/makefile.w32-in
@@ -1,7 +1,6 @@
1#### -*- Makefile -*- for the Emacs Manual 1#### -*- Makefile -*- for the Emacs Manual
2 2
3# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 3# Copyright (C) 2003-2011 Free Software Foundation, Inc.
4# Free Software Foundation, Inc.
5 4
6# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
7 6
@@ -28,7 +27,8 @@ srcdir=.
28infodir = $(srcdir)/../../info 27infodir = $(srcdir)/../../info
29 28
30# The makeinfo program is part of the Texinfo distribution. 29# The makeinfo program is part of the Texinfo distribution.
31MAKEINFO = makeinfo --force 30MAKEINFO = makeinfo
31MAKEINFO_OPTS = --force -I$(srcdir)
32MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat 32MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat
33INFO_TARGETS = $(infodir)/emacs 33INFO_TARGETS = $(infodir)/emacs
34DVI_TARGETS = emacs.dvi 34DVI_TARGETS = emacs.dvi
@@ -41,7 +41,7 @@ INFOSOURCES = info.texi
41 41
42TEXI2DVI = texi2dvi 42TEXI2DVI = texi2dvi
43ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \ 43ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \
44 "MAKEINFO=$(MAKEINFO) -I$(srcdir)" /C 44 "MAKEINFO=$(MAKEINFO) $(MAKEINFO_OPTS)" /C
45 45
46EMACS_XTRA=\ 46EMACS_XTRA=\
47 $(srcdir)/arevert-xtra.texi \ 47 $(srcdir)/arevert-xtra.texi \
@@ -114,11 +114,14 @@ $(infodir)/dir:
114 $(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS) 114 $(MULTI_INSTALL_INFO) --info-dir=$(infodir) $(INFO_TARGETS)
115 115
116$(infodir)/emacs: $(EMACSSOURCES) 116$(infodir)/emacs: $(EMACSSOURCES)
117 $(MAKEINFO) emacs.texi 117 $(MAKEINFO) $(MAKEINFO_OPTS) emacs.texi
118 118
119emacs.dvi: $(EMACSSOURCES) 119emacs.dvi: $(EMACSSOURCES)
120 $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs.texi 120 $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs.texi
121 121
122emacs.html: $(EMACSSOURCES)
123 $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ emacs.texi
124
122emacs-xtra.dvi: emacs-xtra.texi $(EMACS_XTRA) 125emacs-xtra.dvi: emacs-xtra.texi $(EMACS_XTRA)
123 $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-xtra.texi 126 $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-xtra.texi
124 127
@@ -128,6 +131,7 @@ mostlyclean:
128clean: mostlyclean 131clean: mostlyclean
129 - $(DEL) *.dvi 132 - $(DEL) *.dvi
130 - $(DEL) $(infodir)/emacs* 133 - $(DEL) $(infodir)/emacs*
134 - $(DEL_TREE) emacs.html
131 135
132distclean: clean 136distclean: clean
133 - $(DEL) makefile 137 - $(DEL) makefile
diff --git a/doc/emacs/mark.texi b/doc/emacs/mark.texi
index 2ebab1daaeb..b426020b7c6 100644
--- a/doc/emacs/mark.texi
+++ b/doc/emacs/mark.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Mark, Killing, Help, Top 5@node Mark, Killing, Help, Top
@@ -447,7 +446,3 @@ mode only until the mark is deactivated. One reason you may want to
447use them is that some commands operate on the entire buffer instead of 446use them is that some commands operate on the entire buffer instead of
448the region when Transient Mark mode is off. Enabling Transient Mark 447the region when Transient Mark mode is off. Enabling Transient Mark
449mode momentarily gives you a way to use these commands on the region. 448mode momentarily gives you a way to use these commands on the region.
450
451@ignore
452 arch-tag: f35e4d82-911b-4cfc-a3d7-3c87b2abba20
453@end ignore
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi
index 3750e1d49e2..20086bd5e4a 100644
--- a/doc/emacs/mini.texi
+++ b/doc/emacs/mini.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Minibuffer, M-x, Basic, Top 5@node Minibuffer, M-x, Basic, Top
@@ -654,7 +653,3 @@ password (@pxref{Killing}). You may type either @key{RET} or
654@key{ESC} to submit the password. Any other self-inserting character 653@key{ESC} to submit the password. Any other self-inserting character
655key inserts the associated character into the password, and all other 654key inserts the associated character into the password, and all other
656input is ignored. 655input is ignored.
657
658@ignore
659 arch-tag: ba913cfd-b70e-400f-b663-22b2c309227f
660@end ignore
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 11d6ad70e62..d7143d1498a 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@iftex 5@iftex
@@ -27,28 +26,39 @@ other editors, and various diversions and amusements.
27@cindex PDF file 26@cindex PDF file
28@cindex PS file 27@cindex PS file
29@cindex Postscript file 28@cindex Postscript file
29@cindex OpenDocument file
30@cindex Microsoft Office file
30@cindex DocView mode 31@cindex DocView mode
31@cindex mode, DocView 32@cindex mode, DocView
32@cindex document viewer (DocView) 33@cindex document viewer (DocView)
33@findex doc-view-mode 34@findex doc-view-mode
34 35
35DocView mode (@code{doc-view-mode}) is a viewer for DVI, Postscript 36DocView mode (@code{doc-view-mode}) is a viewer for DVI, Postscript
36(PS), and PDF documents. It provides features such as slicing, 37(PS), PDF, OpenDocument, and Microsoft Office documents. It provides
37zooming, and searching inside documents. It works by converting the 38features such as slicing, zooming, and searching inside documents. It
38document to a set of images using the @command{gs} (GhostScript) 39works by converting the document to a set of images using the
39command, and displaying those images. 40@command{gs} (GhostScript) command and other external tools
41@footnote{@code{gs} is a hard requirement. For DVI files,
42@code{dvipdf} or @code{dvipdfm} is needed. For OpenDocument and
43Microsoft Office documents, the @code{unoconv} tool is needed.}, and
44displaying those images.
40 45
41@findex doc-view-toggle-display 46@findex doc-view-toggle-display
42@findex doc-view-toggle-display 47@findex doc-view-toggle-display
43@cindex doc-view-minor-mode 48@cindex doc-view-minor-mode
44 When you visit a PDF or DVI file, Emacs automatically switches to 49 When you visit a document file with the exception of Postscript
45DocView mode. When you visit a Postscript file, Emacs switches to PS 50files, Emacs automatically switches to DocView mode if possible
46mode, a major mode for editing Postscript files as text; however, it 51@footnote{The needed external tools for this document type have to be
47also enables DocView minor mode, so you can type @kbd{C-c C-c} to view 52available, emacs needs to run in a graphical frame, and PNG image
48the document with DocView. (PDF and DVI files, unlike Postscript 53support has to be compiled into emacs. If any of these requirements
49files, are not usually human-editable.) In either case, repeating 54is not fulfilled, DocView falls back to an appropriate mode.}. When
50@kbd{C-c C-c} (@code{doc-view-toggle-display}) toggles between DocView 55you visit a Postscript file, Emacs switches to PS mode, a major mode
51and the file text. 56for editing Postscript files as text; however, it also enables DocView
57minor mode, so you can type @kbd{C-c C-c} to view the document with
58DocView. (PDF and DVI files, unlike Postscript files, are not usually
59human-editable.) In either case, repeating @kbd{C-c C-c}
60(@code{doc-view-toggle-display}) toggles between DocView and the file
61text.
52 62
53 You can explicitly toggle DocView mode with the command @code{M-x 63 You can explicitly toggle DocView mode with the command @code{M-x
54doc-view-mode}, and DocView minor mode with the command @code{M-x 64doc-view-mode}, and DocView minor mode with the command @code{M-x
@@ -2872,7 +2882,3 @@ idle.
2872@ifnottex 2882@ifnottex
2873@lowersections 2883@lowersections
2874@end ifnottex 2884@end ifnottex
2875
2876@ignore
2877 arch-tag: 8f094220-c0d5-4e9e-af7d-3e0da8187474
2878@end ignore
diff --git a/doc/emacs/msdog-xtra.texi b/doc/emacs/msdog-xtra.texi
index 54b7e5d2100..095a0cdacbf 100644
--- a/doc/emacs/msdog-xtra.texi
+++ b/doc/emacs/msdog-xtra.texi
@@ -1,5 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 2@c Copyright (C) 2004-2011 Free Software Foundation, Inc.
3@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
4@c 4@c
5@c This file is included either in emacs-xtra.texi (when producing the 5@c This file is included either in emacs-xtra.texi (when producing the
@@ -613,7 +613,3 @@ MS-DOS supports only some of the possible options you can mention in
613the @code{dired-listing-switches} variable. The options that work are 613the @code{dired-listing-switches} variable. The options that work are
614@samp{-A}, @samp{-a}, @samp{-c}, @samp{-i}, @samp{-r}, @samp{-S}, 614@samp{-A}, @samp{-a}, @samp{-c}, @samp{-i}, @samp{-r}, @samp{-S},
615@samp{-s}, @samp{-t}, and @samp{-u}. 615@samp{-s}, @samp{-t}, and @samp{-u}.
616
617@ignore
618 arch-tag: 868d50ff-07f8-4a13-a807-dab6f1cdb431
619@end ignore
diff --git a/doc/emacs/msdog.texi b/doc/emacs/msdog.texi
index 4be67aa31de..7358773485d 100644
--- a/doc/emacs/msdog.texi
+++ b/doc/emacs/msdog.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top 5@node Microsoft Windows, Manifesto, Mac OS / GNUstep, Top
@@ -28,6 +27,7 @@ However, a few special considerations apply, and they are described
28here. 27here.
29 28
30@menu 29@menu
30* Windows Startup:: How to start Emacs on Windows.
31* Text and Binary:: Text files use CRLF to terminate lines. 31* Text and Binary:: Text files use CRLF to terminate lines.
32* Windows Files:: File-name conventions on Windows. 32* Windows Files:: File-name conventions on Windows.
33* ls in Lisp:: Emulation of @code{ls} for Dired. 33* ls in Lisp:: Emulation of @code{ls} for Dired.
@@ -44,6 +44,72 @@ here.
44@end ifnottex 44@end ifnottex
45@end menu 45@end menu
46 46
47@node Windows Startup
48@section How to Start Emacs on MS-Windows
49@cindex starting Emacs on MS-Windows
50
51 There are several ways of starting Emacs on MS-Windows:
52
53@enumerate
54@item
55@pindex runemacs.exe
56@cindex desktop shortcut, MS-Windows
57@cindex start directory, MS-Windows
58@cindex directory where Emacs starts on MS-Windows
59From the desktop shortcut icon: either double-click the left mouse
60button on the icon, or click once, then press @key{RET}. The desktop
61shortcut should specify as its ``Target'' (in the ``Properties'' of
62the shortcut) the full absolute file name of @file{runemacs.exe},
63@emph{not} of @file{emacs.exe}. This is because @file{runemacs.exe}
64hides the console window that would have been created if the target of
65the shortcut were @file{emacs.exe} (which is a console program, as far
66as Windows is concerned). If you use this method, Emacs starts in the
67directory specified by the shortcut. To control where that is,
68right-click on the shortcut, select ``Properties'', and in the
69``Shortcut'' tab modify the ``Start in'' field to your liking.
70
71@item
72From the Command Prompt window, by typing @kbd{emacs @key{RET}} at the
73prompt. The Command Prompt window where you did that will not be
74available for invoking other commands until Emacs exits. In this
75case, Emacs will start in the current directory of the Windows shell.
76
77@item
78From the Command Prompt window, by typing @kbd{runemacs @key{RET}} at
79the prompt. The Command Prompt window where you did that will be
80immediately available for invoking other commands. In this case,
81Emacs will start in the current directory of the Windows shell.
82
83@item
84@cindex invoking Emacs from Windows Explorer
85@pindex emacsclient.exe
86@pindex emacsclientw.exe
87Via the Emacs client program, @file{emacsclient.exe} or
88@file{emacsclientw.exe}. This allows to invoke Emacs from other
89programs, and to reuse a running Emacs process for serving editing
90jobs required by other programs. @xref{Emacs Server}. The difference
91between @file{emacsclient.exe} and @file{emacsclientw.exe} is that the
92former is a console program, while the latter is a Windows GUI
93program. Both programs wait for Emacs to signal that the editing job
94is finished, before they exit and return control to the program that
95invoked them. Which one of them to use in each case depends on the
96expectations of the program that needs editing services. If that
97program is itself a console (text-mode) program, you should use
98@file{emacsclient.exe}, so that any of its messages and prompts appear
99in the same command window as those of the invoking program. By
100contrast, if the invoking program is a GUI program, you will be better
101off using @file{emacsclientw.exe}, because @file{emacsclient.exe} will
102pop up a command window if it is invoked from a GUI program. A
103notable situation where you would want @file{emacsclientw.exe} is when
104you right-click on a file in the Windows Explorer and select ``Open
105With'' from the pop-up menu. Use the @samp{--alternate-editor=} or
106@samp{-a} options if Emacs might not be running (or not running as a
107server) when @command{emacsclient} is invoked---that will always give
108you an editor. When invoked via @command{emacsclient}, Emacs will
109start in the current directory of the program that invoked
110@command{emacsclient}.
111@end enumerate
112
47@node Text and Binary 113@node Text and Binary
48@section Text Files and Binary Files 114@section Text Files and Binary Files
49@cindex text and binary files on MS-DOS/MS-Windows 115@cindex text and binary files on MS-DOS/MS-Windows
@@ -342,6 +408,9 @@ Windows 2K/XP and later, and either @file{C:\WINDOWS\Application Data}
342or @file{C:\WINDOWS\Profiles\@var{username}\Application Data} on the 408or @file{C:\WINDOWS\Profiles\@var{username}\Application Data} on the
343older Windows 9X/ME systems. 409older Windows 9X/ME systems.
344 410
411 @code{HOME} can also be set in the system registry, for details see
412@ref{MS-Windows Registry}.
413
345@cindex init file @file{.emacs} on MS-Windows 414@cindex init file @file{.emacs} on MS-Windows
346 The home directory is where your init file @file{.emacs} is stored. 415 The home directory is where your init file @file{.emacs} is stored.
347When Emacs starts, it first checks whether the environment variable 416When Emacs starts, it first checks whether the environment variable
@@ -373,13 +442,6 @@ names, the Windows port of Emacs supports an alternative name
373@file{_emacs} as a fallback, if such a file exists in the home 442@file{_emacs} as a fallback, if such a file exists in the home
374directory, whereas @file{.emacs} does not. 443directory, whereas @file{.emacs} does not.
375 444
376@cindex start directory, MS-Windows
377@cindex directory where Emacs starts on MS-Windows
378 If you use a Windows desktop shortcut to start Emacs, it starts in
379the directory specified by the shortcut. To control where that is,
380right-click on the shortcut, select ``Properties'', and in the
381``Shortcut'' tab modify the ``Start in'' field to your liking.
382
383@node Windows Keyboard 445@node Windows Keyboard
384@section Keyboard Usage on MS-Windows 446@section Keyboard Usage on MS-Windows
385@cindex keyboard, MS-Windows 447@cindex keyboard, MS-Windows
@@ -925,4 +987,3 @@ click-to-focus policy.
925@ifnottex 987@ifnottex
926@include msdog-xtra.texi 988@include msdog-xtra.texi
927@end ifnottex 989@end ifnottex
928
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index c8846b35e4b..f0facec86c1 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2@c Copyright (C) 1997, 1999-2011 Free Software Foundation, Inc.
3@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
5@node International, Major Modes, Frames, Top 4@node International, Major Modes, Frames, Top
6@chapter International Character Set Support 5@chapter International Character Set Support
@@ -1745,7 +1744,3 @@ highlighted region covering a contiguous range of character positions
1745may look discontinuous if the region spans reordered text. This is 1744may look discontinuous if the region spans reordered text. This is
1746normal and similar to behavior of other programs that support 1745normal and similar to behavior of other programs that support
1747bidirectional text. 1746bidirectional text.
1748
1749@ignore
1750 arch-tag: 310ba60d-31ef-4ce7-91f1-f282dd57b6b3
1751@end ignore
diff --git a/doc/emacs/picture-xtra.texi b/doc/emacs/picture-xtra.texi
index 283bdea093b..7e72fb0acb6 100644
--- a/doc/emacs/picture-xtra.texi
+++ b/doc/emacs/picture-xtra.texi
@@ -1,5 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 2@c Copyright (C) 2004-2011 Free Software Foundation, Inc.
3@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
4@c 4@c
5@c This file is included either in emacs-xtra.texi (when producing the 5@c This file is included either in emacs-xtra.texi (when producing the
@@ -285,7 +285,3 @@ other modes. @kbd{C-c C-y} (@code{picture-yank-rectangle}) inserts
285(by overwriting) the rectangle that was most recently killed, while 285(by overwriting) the rectangle that was most recently killed, while
286@kbd{C-c C-x} (@code{picture-yank-rectangle-from-register}) does 286@kbd{C-c C-x} (@code{picture-yank-rectangle-from-register}) does
287likewise for the rectangle found in a specified register. 287likewise for the rectangle found in a specified register.
288
289@ignore
290 arch-tag: 10e423ad-d896-42f2-a7e8-7018adeaf8c2
291@end ignore
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index b729df105e7..5b7322f214b 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 1999-2011
3@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Programs, Building, Text, Top 5@node Programs, Building, Text, Top
@@ -1839,7 +1838,3 @@ starts comments in assembler syntax.
1839@ifnottex 1838@ifnottex
1840@include fortran-xtra.texi 1839@include fortran-xtra.texi
1841@end ifnottex 1840@end ifnottex
1842
1843@ignore
1844 arch-tag: c7ee7409-40a4-45c7-bfb7-ae7f2c74d0c0
1845@end ignore
diff --git a/doc/emacs/regs.texi b/doc/emacs/regs.texi
index 0303d3a829d..42ce85c7ee1 100644
--- a/doc/emacs/regs.texi
+++ b/doc/emacs/regs.texi
@@ -1,8 +1,8 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Registers, Display, CUA Bindings, Top 5@node Registers, Display, Killing, Top
6@chapter Registers 6@chapter Registers
7@cindex registers 7@cindex registers
8 8
@@ -330,7 +330,3 @@ points to.
330Insert in the buffer the @emph{contents} of the file that bookmark 330Insert in the buffer the @emph{contents} of the file that bookmark
331@var{bookmark} points to. 331@var{bookmark} points to.
332@end table 332@end table
333
334@ignore
335 arch-tag: b00af991-ebc3-4b3a-8e82-a3ac81ff2e64
336@end ignore
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index ddf68e62bbf..f1bb1f7aa9d 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Rmail, Dired, Sending Mail, Top 5@node Rmail, Dired, Sending Mail, Top
@@ -1101,57 +1100,90 @@ buffer before sorting it.
1101@node Rmail Display 1100@node Rmail Display
1102@section Display of Messages 1101@section Display of Messages
1103 1102
1104 Rmail reformats the header of each message before displaying it for 1103 This section describes how Rmail displays mail headers,
1105the first time. Reformatting hides uninteresting header fields to 1104@acronym{MIME} sections and attachments, and URLs.
1106reduce clutter. You can use the @kbd{t} command to show the entire
1107header or to repeat the header reformatting operation.
1108 1105
1109@table @kbd 1106@table @kbd
1110@item t 1107@item t
1111Toggle display of complete header (@code{rmail-toggle-header}). 1108Toggle display of complete header (@code{rmail-toggle-header}).
1112@end table 1109@end table
1113 1110
1114@vindex rmail-ignored-headers
1115@vindex rmail-nonignored-headers
1116 Reformatting the header involves deleting most header fields, on the
1117grounds that they are not interesting. The variable
1118@code{rmail-ignored-headers} holds a regular expression that specifies
1119which header fields to hide in this way---if it matches the beginning
1120of a header field, that whole field is hidden. However, the variable
1121@code{rmail-nonignored-headers} provides a further override: a header
1122matching that regular expression is shown even if it matches
1123@code{rmail-ignored-headers} too.
1124
1125@vindex rmail-displayed-headers
1126 As an alternative to the previous two variables, you can set
1127@code{rmail-displayed-headers} instead. If non-@code{nil}, this should
1128be a regular expression specifying which headers to display.
1129
1130@kindex t @r{(Rmail)} 1111@kindex t @r{(Rmail)}
1131@findex rmail-toggle-header 1112@findex rmail-toggle-header
1132 To see the complete, original header, use the @kbd{t} command 1113 Before displaying each message for the first time, Rmail reformats
1133(@code{rmail-toggle-header}). This discards the reformatted headers of 1114its header, hiding uninteresting header fields to reduce clutter. The
1134the current message and displays it with the original header. Repeating 1115@kbd{t} (@code{rmail-toggle-header}) command toggles this, switching
1135@kbd{t} reformats the message again, which shows only the interesting 1116between showing the reformatted header fields and showing the
1136headers according to the current values of the above variables. 1117complete, original header. With a positive prefix argument, the
1137Selecting the message again also reformats it if necessary. 1118command shows the reformatted header; with a zero or negative prefix
1119argument, it shows the full header. Selecting the message again also
1120reformats it if necessary.
1138 1121
1139 When the @kbd{t} command has a prefix argument, a positive argument 1122@vindex rmail-ignored-headers
1140means to show the reformatted header, and a zero or negative argument 1123@vindex rmail-displayed-headers
1141means to show the full header. 1124@vindex rmail-nonignored-headers
1125 The variable @code{rmail-ignored-headers} holds a regular expression
1126specifying the header fields to hide; any matching header line will be
1127hidden. The variable @code{rmail-nonignored-headers} overrides this:
1128any header field matching that regular expression is shown even if it
1129matches @code{rmail-ignored-headers} too. The variable
1130@code{rmail-displayed-headers} is an alternative to these two
1131variables; if non-@code{nil}, this should be a regular expression
1132specifying which headers to display (the default is @code{nil}).
1142 1133
1143@vindex rmail-highlighted-headers 1134@vindex rmail-highlighted-headers
1144 Rmail highlights certain header fields that are especially 1135 Rmail highlights certain header fields that are especially
1145interesting---by default, the @samp{From} and @samp{Subject} fields. 1136interesting---by default, the @samp{From} and @samp{Subject} fields.
1146The variable @code{rmail-highlighted-headers} holds a regular expression 1137This highlighting uses the @code{rmail-highlight} face. The variable
1147that specifies the header fields to highlight; if it matches the 1138@code{rmail-highlighted-headers} holds a regular expression specifying
1148beginning of a header field, that whole field is highlighted. To turn 1139the header fields to highlight; if it matches the beginning of a
1149off this feature, set @code{rmail-highlighted-headers} to @code{nil}. 1140header field, that whole field is highlighted. To disable this
1150Customize the face @code{rmail-highlight} to adjust the style of the 1141feature, set @code{rmail-highlighted-headers} to @code{nil}.
1151highlighting. 1142
1143@cindex MIME messages (Rmail)
1144@vindex rmail-enable-mime
1145 By default, Rmail automatically decodes @acronym{MIME} (Multipurpose
1146Internet Mail Extensions) messages. If the message contains multiple
1147parts (@acronym{MIME} entities), each part is represented by a tagline
1148in the Rmail buffer. The tagline summarizes the part's depth, index,
1149and type, and may also contain a button for handling it, e.g. saving
1150it to a file or displaying it as an image in the Rmail buffer.
1152 1151
1153 You can highlight and activate URLs in incoming messages using 1152@table @kbd
1154Goto Address mode: 1153@findex rmail-mime-toggle-hidden
1154@item @key{RET}
1155Hide or show the @acronym{MIME} part at point
1156(@code{rmail-mime-toggle-hidden}).
1157
1158@findex rmail-mime-next-item
1159@item @key{TAB}
1160Move point to the next @acronym{MIME} part
1161(@code{rmail-mime-next-item}).
1162
1163@findex rmail-mime-previous-item
1164@item @key{BackTab}
1165Move point to the previous @acronym{MIME} part
1166(@code{rmail-mime-previous-item}).
1167
1168@findex rmail-mime
1169@item v
1170@kindex v @r{(Rmail)}
1171Toggle between @acronym{MIME} display and raw message
1172(@code{rmail-mime}).
1173@end table
1174
1175 The @kbd{v} (@code{rmail-mime}) command toggles between the default
1176@acronym{MIME} display described above, and a ``raw'' display showing
1177the undecoded @acronym{MIME} data. With a prefix argument, this
1178command toggles the display of only an entity at point.
1179
1180 To prevent Rmail from handling MIME decoded messages, change the
1181variable @code{rmail-enable-mime} to @code{nil}. When this is the
1182case, the @kbd{v} (@code{rmail-mime}) command instead creates a
1183temporary buffer to display the current @acronym{MIME} message.
1184
1185 You can highlight and activate URLs in the Rmail buffer using Goto
1186Address mode:
1155 1187
1156@c FIXME goto-addr.el commentary says to use goto-address instead. 1188@c FIXME goto-addr.el commentary says to use goto-address instead.
1157@smallexample 1189@smallexample
@@ -1163,13 +1195,6 @@ Then you can browse these URLs by clicking on them with @kbd{Mouse-2}
1163(or @kbd{Mouse-1} quickly) or by moving to one and typing @kbd{C-c 1195(or @kbd{Mouse-1} quickly) or by moving to one and typing @kbd{C-c
1164@key{RET}}. @xref{Goto Address mode, Activating URLs, Activating URLs}. 1196@key{RET}}. @xref{Goto Address mode, Activating URLs, Activating URLs}.
1165 1197
1166@cindex MIME messages (Rmail)
1167@findex rmail-mime
1168@kindex v @r{(Rmail)}
1169 The @kbd{v} (@code{rmail-mime}) command creates a temporary buffer
1170displaying the current MIME message. By default, it displays plain text
1171and multipart messages, and offers buttons to save attachments.
1172
1173@node Rmail Coding 1198@node Rmail Coding
1174@section Rmail and Coding Systems 1199@section Rmail and Coding Systems
1175 1200
@@ -1480,7 +1505,3 @@ include the following in the Rmail inbox list:
1480@smallexample 1505@smallexample
1481maildir://var/spool/mail/in 1506maildir://var/spool/mail/in
1482@end smallexample 1507@end smallexample
1483
1484@ignore
1485 arch-tag: 034965f6-38df-47a2-a9f1-b8bc8ab37e23
1486@end ignore
diff --git a/doc/emacs/screen.texi b/doc/emacs/screen.texi
index 88d248a93bf..45cbdac4b44 100644
--- a/doc/emacs/screen.texi
+++ b/doc/emacs/screen.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Screen, User Input, Acknowledgments, Top 5@node Screen, User Input, Acknowledgments, Top
@@ -320,7 +319,3 @@ items, and then you can type @key{RET} to select the item.
320that item; it is usually the initial of some word in the item's name. 319that item; it is usually the initial of some word in the item's name.
321This letter or digit is separated from the item name by @samp{=>}. You 320This letter or digit is separated from the item name by @samp{=>}. You
322can type the item's letter or digit to select the item. 321can type the item's letter or digit to select the item.
323
324@ignore
325 arch-tag: 104ba40e-d972-4866-a542-a98be94bdf2f
326@end ignore
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 69532e6083d..99fde1d7a04 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Search, Fixit, Display, Top 5@node Search, Fixit, Display, Top
@@ -459,11 +458,13 @@ for a forward search, or @kbd{M-s w C-r @key{RET}} for a backward search.
459These run the commands @code{word-search-forward} and 458These run the commands @code{word-search-forward} and
460@code{word-search-backward} respectively. 459@code{word-search-backward} respectively.
461 460
462 A nonincremental word search differs slightly from the incremental 461 Incremental and nonincremental word searches differ slightly in the
463version in the way it finds a match: the last word in the search 462way they find a match. In a nonincremental word search, the last word
464string must be an exact match for a whole word. In an incremental 463in the search string must exactly match a whole word. In an
465word search, the last word in the search string can match part of a 464incremental word search, the matching is more lax: the last word in
466word; this allows the matching to proceed incrementally as you type. 465the search string can match part of a word, so that the matching
466proceeds incrementally as you type. This additional laxity does not
467apply to the lazy highlight, which always matches whole words.
467 468
468@node Regexp Search 469@node Regexp Search
469@section Regular Expression Search 470@section Regular Expression Search
@@ -1376,7 +1377,3 @@ it never deletes lines that are only partially contained in the region
1376 1377
1377If a match is split across lines, this command keeps all those lines. 1378If a match is split across lines, this command keeps all those lines.
1378@end table 1379@end table
1379
1380@ignore
1381 arch-tag: fd9d8e77-66af-491c-b212-d80999613e3e
1382@end ignore
diff --git a/doc/emacs/sending.texi b/doc/emacs/sending.texi
index 95bf5873eb0..02857459cc1 100644
--- a/doc/emacs/sending.texi
+++ b/doc/emacs/sending.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Sending Mail 5@node Sending Mail
@@ -713,7 +712,3 @@ buffer, and their commands are different as well.
713 Similarly, to specify your preferred method for reading mail, 712 Similarly, to specify your preferred method for reading mail,
714customize the variable @code{read-mail-command}. The default is 713customize the variable @code{read-mail-command}. The default is
715@code{rmail} (@pxref{Rmail}). 714@code{rmail} (@pxref{Rmail}).
716
717@ignore
718 arch-tag: d8a3dfc3-5d87-45c5-a7f2-69871b8e4fd6
719@end ignore
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index a9faa420967..48f3bd15587 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@node Text, Programs, Indentation, Top 5@node Text, Programs, Indentation, Top
@@ -1765,7 +1764,7 @@ variant of SGML mode.
1765@kindex C-c C-n @r{(SGML mode)} 1764@kindex C-c C-n @r{(SGML mode)}
1766@findex sgml-name-char 1765@findex sgml-name-char
1767Interactively specify a special character and insert the SGML 1766Interactively specify a special character and insert the SGML
1768@samp{&}-command for that character. 1767@samp{&}-command for that character (@code{sgml-name-char}).
1769 1768
1770@item C-c C-t 1769@item C-c C-t
1771@kindex C-c C-t @r{(SGML mode)} 1770@kindex C-c C-t @r{(SGML mode)}
@@ -1799,7 +1798,7 @@ A numeric argument acts as a repeat count.
1799@findex sgml-skip-tag-backward 1798@findex sgml-skip-tag-backward
1800Skip backward across a balanced tag group (which extends from an 1799Skip backward across a balanced tag group (which extends from an
1801opening tag through its corresponding closing tag) 1800opening tag through its corresponding closing tag)
1802(@code{sgml-skip-tag-forward}). A numeric argument acts as a repeat 1801(@code{sgml-skip-tag-backward}). A numeric argument acts as a repeat
1803count. 1802count.
1804 1803
1805@item C-c C-d 1804@item C-c C-d
@@ -1841,7 +1840,7 @@ buffer as SGML (@code{sgml-validate}).
1841@kindex C-c TAB @r{(SGML mode)} 1840@kindex C-c TAB @r{(SGML mode)}
1842@findex sgml-tags-invisible 1841@findex sgml-tags-invisible
1843Toggle the visibility of existing tags in the buffer. This can be 1842Toggle the visibility of existing tags in the buffer. This can be
1844used as a cheap preview. 1843used as a cheap preview (@code{sgml-tags-invisible}).
1845@end table 1844@end table
1846 1845
1847@cindex nXML mode 1846@cindex nXML mode
@@ -2925,7 +2924,3 @@ then inserts the generated table in the proper syntax into the
2925destination buffer. The default destination buffer is 2924destination buffer. The default destination buffer is
2926@code{table.@var{lang}}, where @var{lang} is the language you 2925@code{table.@var{lang}}, where @var{lang} is the language you
2927specified. 2926specified.
2928
2929@ignore
2930 arch-tag: 8db54ed8-2036-49ca-b0df-23811d03dc70
2931@end ignore
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index 2f90b30bf83..a2b9b16bae6 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2001-2011
3@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
5@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
6@iftex 5@iftex
@@ -629,10 +628,11 @@ read the tracker's online documentation to see the various features
629you can use. 628you can use.
630 629
631All mail sent to the @samp{bug-gnu-emacs} mailing list is also 630All mail sent to the @samp{bug-gnu-emacs} mailing list is also
632gatewayed to the @samp{bug.gnu.emacs} newsgroup. The reverse is also 631gatewayed to the @samp{gnu.emacs.bug} newsgroup. The reverse is also
633true, but we ask you not to post bug reports via the newsgroup. It 632true, but we ask you not to post bug reports (or replies) via the
634can make it much harder to contact you if we need to ask for more 633newsgroup. It can make it much harder to contact you if we need to ask
635information, and it does not integrate well with the bug tracker. 634for more information, and it does not integrate well with the bug
635tracker.
636 636
637If your data is more than 500,000 bytes, please don't include it 637If your data is more than 500,000 bytes, please don't include it
638directly in the bug report; instead, offer to send it on request, or 638directly in the bug report; instead, offer to send it on request, or
@@ -805,6 +805,13 @@ This use of the debugger is possible only if you know how to make the
805bug happen again. If you can't make it happen again, at least copy 805bug happen again. If you can't make it happen again, at least copy
806the whole error message. 806the whole error message.
807 807
808@vindex debug-on-quit
809If Emacs appears to be stuck in an infinite loop or in a very long
810operation, typing @kbd{C-g} with the variable @code{debug-on-quit}
811non-@code{nil} will start the Lisp debugger and show a backtrace.
812This backtrace is useful for debugging such long loops, so if you can
813produce it, copy it into the bug report.
814
808@item 815@item
809Check whether any programs you have loaded into the Lisp world, 816Check whether any programs you have loaded into the Lisp world,
810including your @file{.emacs} file, set any variables that may affect the 817including your @file{.emacs} file, set any variables that may affect the
@@ -1126,7 +1133,3 @@ Emacs distribution.
1126@ifnottex 1133@ifnottex
1127@lowersections 1134@lowersections
1128@end ifnottex 1135@end ifnottex
1129
1130@ignore
1131 arch-tag: c9cba76d-b2cb-4e0c-ae3f-19d5ef35817c
1132@end ignore
diff --git a/doc/emacs/vc-xtra.texi b/doc/emacs/vc-xtra.texi
index 8b874e309cb..978a2a31a2e 100644
--- a/doc/emacs/vc-xtra.texi
+++ b/doc/emacs/vc-xtra.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 2@c Copyright (C) 2004-2011 Free Software Foundation, Inc.
3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
5@c 4@c
6@c This file is included in emacs-xtra.texi when producing the printed 5@c This file is included in emacs-xtra.texi when producing the printed
@@ -24,7 +23,3 @@ the Emacs Manual}). This chapter describes more advanced VC usage.
24@iftex 23@iftex
25@include vc1-xtra.texi 24@include vc1-xtra.texi
26@end iftex 25@end iftex
27
28@ignore
29 arch-tag: 11a18d0e-1baf-49da-8e38-f61195ae4dc3
30@end ignore
diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi
index 04d37719013..05e89e69f0e 100644
--- a/doc/emacs/vc1-xtra.texi
+++ b/doc/emacs/vc1-xtra.texi
@@ -1,6 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 2@c Copyright (C) 2004-2011 Free Software Foundation, Inc.
3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 3@c See file emacs.texi for copying conditions.
5@c 4@c
6@c This file is included either in vc-xtra.texi (when producing the 5@c This file is included either in vc-xtra.texi (when producing the
@@ -787,7 +786,3 @@ only for repositories from hosts that match the pattern.
787operations in the variable @code{vc-cvs-global-switches}. These 786operations in the variable @code{vc-cvs-global-switches}. These
788switches are inserted immediately after the @code{cvs} command, before 787switches are inserted immediately after the @code{cvs} command, before
789the name of the operation to invoke. 788the name of the operation to invoke.
790
791@ignore
792 arch-tag: 8e8c2a01-ad41-4e61-a89a-60131ad67263
793@end ignore
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index e161a23ca6c..ae9b69ef3f4 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Windows, Frames, Buffers, Top 5@node Windows, Frames, Buffers, Top
6@chapter Multiple Windows 6@chapter Multiple Windows
@@ -397,7 +397,3 @@ windows together. You can also turn it on by customizing the variable
397scroll-all-scroll-down-all}, @kbd{M-x scroll-all-page-down-all} and 397scroll-all-scroll-down-all}, @kbd{M-x scroll-all-page-down-all} and
398their corresponding ``up'' equivalents. To make this mode useful, 398their corresponding ``up'' equivalents. To make this mode useful,
399you should bind these commands to appropriate keys. 399you should bind these commands to appropriate keys.
400
401@ignore
402 arch-tag: 8bea7453-d4b1-49b1-9bf4-cfe4383e1113
403@end ignore
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi
index ecf5c02f32b..1482bbd0469 100644
--- a/doc/emacs/xresources.texi
+++ b/doc/emacs/xresources.texi
@@ -1,6 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1987, 1993, 1994, 1995, 1997, 2001, 2002, 2003, 2@c Copyright (C) 1987, 1993-1995, 1997, 2001-2011
3@c 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node X Resources, Antinews, Emacs Invocation, Top 5@node X Resources, Antinews, Emacs Invocation, Top
6@appendix X Options and Resources 6@appendix X Options and Resources
@@ -1219,7 +1219,3 @@ family. It corresponds to the fifth part of an X font name. It is one of
1219@noindent 1219@noindent
1220@var{size} is a decimal number that describes the font size in points. 1220@var{size} is a decimal number that describes the font size in points.
1221@end ifnottex 1221@end ifnottex
1222
1223@ignore
1224 arch-tag: 9b6ff773-48b6-41f6-b2f9-f114b8bdd97f
1225@end ignore
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index d75bb003279..a6897fc4ec9 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -1,3 +1,9 @@
12011-01-23 Werner Lemberg <wl@gnu.org>
2
3 * Makefile.in (MAKEINFO): Now controlled by `configure'.
4 (MAKEINFO_OPTS): New variable. Use it where appropriate.
5 (ENVADD): New variable to control texi2dvi and texi2pdf.
6
12010-11-13 Glenn Morris <rgm@gnu.org> 72010-11-13 Glenn Morris <rgm@gnu.org>
2 8
3 * emacs-lisp-intro.texi: Rename the `count-words-region' example, 9 * emacs-lisp-intro.texi: Rename the `count-words-region' example,
@@ -449,8 +455,7 @@
449;; coding: utf-8 455;; coding: utf-8
450;; End: 456;; End:
451 457
452 Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 458 Copyright (C) 2001-2011 Free Software Foundation, Inc.
453 2010 Free Software Foundation, Inc.
454 459
455 This file is part of GNU Emacs. 460 This file is part of GNU Emacs.
456 461
diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in
index 366a0a10e5d..df356f1b132 100644
--- a/doc/lispintro/Makefile.in
+++ b/doc/lispintro/Makefile.in
@@ -1,8 +1,6 @@
1#### Makefile for the Emacs Lisp Introduction manual 1#### Makefile for the Emacs Lisp Introduction manual
2 2
3# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 3# Copyright (C) 1994-1999, 2001-2011 Free Software Foundation, Inc.
4# 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc.
6 4
7# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
8 6
@@ -28,11 +26,15 @@ infodir = $(srcdir)/../../info
28# Directory with the (customized) texinfo.tex file. 26# Directory with the (customized) texinfo.tex file.
29texinfodir = $(srcdir)/../misc 27texinfodir = $(srcdir)/../misc
30 28
31MAKEINFO = makeinfo --force -I $(srcdir) 29MAKEINFO = @MAKEINFO@
30MAKEINFO_OPTS = --force -I $(srcdir)
32TEXI2DVI = texi2dvi 31TEXI2DVI = texi2dvi
33TEXI2PDF = texi2pdf 32TEXI2PDF = texi2pdf
34DVIPS = dvips 33DVIPS = dvips
35 34
35ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \
36 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
37
36mkinfodir = @test -d ${infodir} || mkdir ${infodir} || test -d ${infodir} 38mkinfodir = @test -d ${infodir} || mkdir ${infodir} || test -d ${infodir}
37 39
38.PHONY: info dvi html pdf ps 40.PHONY: info dvi html pdf ps
@@ -48,19 +50,19 @@ ps: emacs-lisp-intro.ps
48# -NN extensions to fit into DOS 8+3 limits without clashing. 50# -NN extensions to fit into DOS 8+3 limits without clashing.
49${infodir}/eintr: ${srcdir}/emacs-lisp-intro.texi 51${infodir}/eintr: ${srcdir}/emacs-lisp-intro.texi
50 $(mkinfodir) 52 $(mkinfodir)
51 $(MAKEINFO) -o $@ $< 53 $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $<
52 54
53emacs-lisp-intro.dvi: ${srcdir}/emacs-lisp-intro.texi 55emacs-lisp-intro.dvi: ${srcdir}/emacs-lisp-intro.texi
54 $(TEXI2DVI) -I $(srcdir) -I $(texinfodir) $< 56 $(ENVADD) $(TEXI2DVI) $<
55 57
56emacs-lisp-intro.ps: emacs-lisp-intro.dvi 58emacs-lisp-intro.ps: emacs-lisp-intro.dvi
57 $(DVIPS) -o $@ $< 59 $(DVIPS) -o $@ $<
58 60
59emacs-lisp-intro.pdf: ${srcdir}/emacs-lisp-intro.texi 61emacs-lisp-intro.pdf: ${srcdir}/emacs-lisp-intro.texi
60 $(TEXI2PDF) -I $(srcdir) -I $(texinfodir) $< 62 $(ENVADD) $(TEXI2PDF) $<
61 63
62emacs-lisp-intro.html: ${srcdir}/emacs-lisp-intro.texi 64emacs-lisp-intro.html: ${srcdir}/emacs-lisp-intro.texi
63 $(MAKEINFO) --html -o $@ $< 65 $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $<
64 66
65.PHONY: mostlyclean clean distclean maintainer-clean infoclean 67.PHONY: mostlyclean clean distclean maintainer-clean infoclean
66 68
diff --git a/doc/lispintro/README b/doc/lispintro/README
index 3135af64270..ba4e727cc8e 100644
--- a/doc/lispintro/README
+++ b/doc/lispintro/README
@@ -1,5 +1,4 @@
1Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 1Copyright (C) 2001-2011 Free Software Foundation, Inc.
2 Free Software Foundation, Inc.
3See the end of the file for license conditions. 2See the end of the file for license conditions.
4 3
5 4
diff --git a/doc/lispintro/cons-1.eps b/doc/lispintro/cons-1.eps
index 42c350139da..a1fb08463b4 100644
--- a/doc/lispintro/cons-1.eps
+++ b/doc/lispintro/cons-1.eps
@@ -4,8 +4,7 @@
4%%CreationDate: Wed Mar 8 14:26:58 1995 4%%CreationDate: Wed Mar 8 14:26:58 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 6
7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 7% Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc.
8% 2008, 2009, 2010 Free Software Foundation, Inc.
9% 8%
10% This file is part of GNU Emacs. 9% This file is part of GNU Emacs.
11% 10%
diff --git a/doc/lispintro/cons-2.eps b/doc/lispintro/cons-2.eps
index 8ae9d8a9190..a711b66ca2e 100644
--- a/doc/lispintro/cons-2.eps
+++ b/doc/lispintro/cons-2.eps
@@ -4,8 +4,7 @@
4%%CreationDate: Wed Mar 8 14:26:39 1995 4%%CreationDate: Wed Mar 8 14:26:39 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 6
7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 7% Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc.
8% 2008, 2009, 2010 Free Software Foundation, Inc.
9% 8%
10% This file is part of GNU Emacs. 9% This file is part of GNU Emacs.
11% 10%
diff --git a/doc/lispintro/cons-2a.eps b/doc/lispintro/cons-2a.eps
index 916417adf9c..5612caa0717 100644
--- a/doc/lispintro/cons-2a.eps
+++ b/doc/lispintro/cons-2a.eps
@@ -4,8 +4,7 @@
4%%CreationDate: Tue Mar 14 15:09:30 1995 4%%CreationDate: Tue Mar 14 15:09:30 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 6
7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 7% Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc.
8% 2008, 2009, 2010 Free Software Foundation, Inc.
9% 8%
10% This file is part of GNU Emacs. 9% This file is part of GNU Emacs.
11% 10%
diff --git a/doc/lispintro/cons-3.eps b/doc/lispintro/cons-3.eps
index f6fddf0a32a..a1de449373f 100644
--- a/doc/lispintro/cons-3.eps
+++ b/doc/lispintro/cons-3.eps
@@ -4,8 +4,7 @@
4%%CreationDate: Wed Mar 8 14:25:41 1995 4%%CreationDate: Wed Mar 8 14:25:41 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 6
7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 7% Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc.
8% 2008, 2009, 2010 Free Software Foundation, Inc.
9% 8%
10% This file is part of GNU Emacs. 9% This file is part of GNU Emacs.
11% 10%
diff --git a/doc/lispintro/cons-4.eps b/doc/lispintro/cons-4.eps
index 77389632dfd..45882e815a7 100644
--- a/doc/lispintro/cons-4.eps
+++ b/doc/lispintro/cons-4.eps
@@ -4,8 +4,7 @@
4%%CreationDate: Wed Mar 8 14:25:06 1995 4%%CreationDate: Wed Mar 8 14:25:06 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 6
7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 7% Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc.
8% 2008, 2009, 2010 Free Software Foundation, Inc.
9% 8%
10% This file is part of GNU Emacs. 9% This file is part of GNU Emacs.
11% 10%
diff --git a/doc/lispintro/cons-5.eps b/doc/lispintro/cons-5.eps
index 67423d5354e..b8bff1da573 100644
--- a/doc/lispintro/cons-5.eps
+++ b/doc/lispintro/cons-5.eps
@@ -4,8 +4,7 @@
4%%CreationDate: Wed Mar 8 14:27:28 1995 4%%CreationDate: Wed Mar 8 14:27:28 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 6
7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 7% Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc.
8% 2008, 2009, 2010 Free Software Foundation, Inc.
9% 8%
10% This file is part of GNU Emacs. 9% This file is part of GNU Emacs.
11% 10%
diff --git a/doc/lispintro/doclicense.texi b/doc/lispintro/doclicense.texi
index 1aa76136110..51342e96d60 100644
--- a/doc/lispintro/doclicense.texi
+++ b/doc/lispintro/doclicense.texi
@@ -506,7 +506,3 @@ to permit their use in free software.
506@c ispell-local-pdict: "ispell-dict" 506@c ispell-local-pdict: "ispell-dict"
507@c End: 507@c End:
508 508
509@ignore
510 arch-tag: 839f250e-4800-4bc9-bd28-49ec7968331f
511@end ignore
512
diff --git a/doc/lispintro/drawers.eps b/doc/lispintro/drawers.eps
index 218eedfeaa2..99e3581f38e 100644
--- a/doc/lispintro/drawers.eps
+++ b/doc/lispintro/drawers.eps
@@ -9,8 +9,7 @@
9%%EndComments 9%%EndComments
10%%BeginProlog 10%%BeginProlog
11 11
12% Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 12% Copyright (C) 2001-2011 Free Software Foundation, Inc.
13% Free Software Foundation, Inc.
14% 13%
15% This file is part of GNU Emacs. 14% This file is part of GNU Emacs.
16% 15%
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index 50b11a62fa0..7b9ec75446b 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -228,9 +228,7 @@ people who are not programmers.
228@sp 1 228@sp 1
229Edition @value{edition-number}, @value{update-date} 229Edition @value{edition-number}, @value{update-date}
230@sp 1 230@sp 1
231Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1997, 2001, 231Copyright @copyright{} 1990-1995, 1997, 2001-2011 Free Software Foundation, Inc.
232 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
233 Free Software Foundation, Inc.
234@sp 1 232@sp 1
235 233
236@iftex 234@iftex
diff --git a/doc/lispintro/lambda-1.eps b/doc/lispintro/lambda-1.eps
index 3510c40e005..a9c3c530646 100644
--- a/doc/lispintro/lambda-1.eps
+++ b/doc/lispintro/lambda-1.eps
@@ -4,8 +4,7 @@
4%%CreationDate: Wed Mar 8 14:31:53 1995 4%%CreationDate: Wed Mar 8 14:31:53 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 6
7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 7% Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc.
8% 2008, 2009, 2010 Free Software Foundation, Inc.
9% 8%
10% This file is part of GNU Emacs. 9% This file is part of GNU Emacs.
11% 10%
diff --git a/doc/lispintro/lambda-2.eps b/doc/lispintro/lambda-2.eps
index f60c2b56ad3..44238a1ad7d 100644
--- a/doc/lispintro/lambda-2.eps
+++ b/doc/lispintro/lambda-2.eps
@@ -4,8 +4,7 @@
4%%CreationDate: Wed Mar 8 14:33:09 1995 4%%CreationDate: Wed Mar 8 14:33:09 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 6
7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 7% Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc.
8% 2008, 2009, 2010 Free Software Foundation, Inc.
9% 8%
10% This file is part of GNU Emacs. 9% This file is part of GNU Emacs.
11% 10%
diff --git a/doc/lispintro/lambda-3.eps b/doc/lispintro/lambda-3.eps
index 67c55093e7f..1c5cda046e0 100644
--- a/doc/lispintro/lambda-3.eps
+++ b/doc/lispintro/lambda-3.eps
@@ -4,8 +4,7 @@
4%%CreationDate: Wed Mar 8 14:33:49 1995 4%%CreationDate: Wed Mar 8 14:33:49 1995
5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu) 5%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng (william@cs.UCLA.edu)
6 6
7% Copyright (C) 1995, 1997, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 7% Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc.
8% 2008, 2009, 2010 Free Software Foundation, Inc.
9% 8%
10% This file is part of GNU Emacs. 9% This file is part of GNU Emacs.
11% 10%
diff --git a/doc/lispintro/makefile.w32-in b/doc/lispintro/makefile.w32-in
index 7e51a441fd4..7294d46b693 100644
--- a/doc/lispintro/makefile.w32-in
+++ b/doc/lispintro/makefile.w32-in
@@ -1,7 +1,6 @@
1#### -*- Makefile -*- for the Emacs Lisp Introduction manual. 1#### -*- Makefile -*- for the Emacs Lisp Introduction manual.
2 2
3# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 3# Copyright (C) 2003-2011 Free Software Foundation, Inc.
4# Free Software Foundation, Inc.
5 4
6# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
7 6
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 36d85bc98ba..be8803d4cb2 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,99 @@
12011-01-29 Eli Zaretskii <eliz@gnu.org>
2
3 * makefile.w32-in (texinfodir): New variable.
4 (usermanualdir): Remove as redundant with $(emacsdir).
5 (MAKEINFO): Remove options, leave only program name.
6 (MAKEINFO_OPTS): New variable.
7 (texinputdir, $(infodir)/elisp): Use $(MAKEINFO_OPTS).
8
92011-01-25 Chong Yidong <cyd@stupidchicken.com>
10 Richard Kim <emacs18@gmail.com>
11
12 * loading.texi (Library Search): Document list-load-path-shadows
13 (Bug#7757).
14
152011-01-25 Chong Yidong <cyd@stupidchicken.com>
16
17 * searching.texi (Regexp Special): Remove outdated discussion of
18 character sets (Bug#7780).
19
20 * frames.texi (Pop-Up Menus): Document where menu title comes
21 from (Bug#7684).
22
232011-01-25 Glenn Morris <rgm@gnu.org>
24
25 * display.texi (Making Buttons): Mention limitation of text buttons.
26
272011-01-23 Werner Lemberg <wl@gnu.org>
28
29 * Makefile.in (MAKEINFO): Now controlled by `configure'.
30 (MAKEINFO_OPTS): New variable. Use it where appropriate.
31 (ENVADD): New variable to control texi2dvi and texi2pdf.
32
332011-01-15 Chong Yidong <cyd@stupidchicken.com>
34
35 * files.texi (Directory Names): Move directory-abbrev-alist doc to
36 Emacs manual.
37
382011-01-15 Eli Zaretskii <eliz@gnu.org>
39
40 * files.texi (Directory Names): Explain why FROM in
41 directory-abbrev-alist should begin with \`. (Bug#7777)
42
432011-01-11 Stefan Monnier <monnier@iro.umontreal.ca>
44
45 * loading.texi (Hooks for Loading): Adjust doc of eval-after-load.
46
472011-01-02 Eli Zaretskii <eliz@gnu.org>
48
49 * modes.texi (Emulating Mode Line): Fix last change.
50
512011-01-02 Eli Zaretskii <eliz@gnu.org>
52
53 * modes.texi (Emulating Mode Line): Update documentation of
54 format-mode-line according to changes that fixed bug #7587.
55
562010-12-18 Stefan Monnier <monnier@iro.umontreal.ca>
57
58 * modes.texi (Derived Modes): Mention prog-mode.
59
60 * keymaps.texi (Simple Menu Items, Extended Menu Items): Remove mention
61 of the key-binding-data cache since we don't use it any more.
62
632010-12-13 Eli Zaretskii <eliz@gnu.org>
64
65 * processes.texi (Shell Arguments):
66 * strings.texi (Creating Strings): Don't mention "shell commands";
67 make it explicit that `split-string-and-unquote' and
68 `combine-and-quote-strings' are mainly for working with arguments
69 to call-process and start-process.
70
71 * processes.texi (Shell Arguments): Fix documentation of
72 `split-string-and-unquote'. Add indexing. (Bug#7563)
73
742010-12-13 Stefan Monnier <monnier@iro.umontreal.ca>
75
76 * modes.texi (Auto-Indentation): New section to document SMIE.
77 (Major Mode Conventions):
78 * text.texi (Mode-Specific Indent): Refer to it.
79
802010-12-13 Eli Zaretskii <eliz@gnu.org>
81
82 * display.texi (Other Display Specs): Document left-fringe and
83 right-fringe display specs.
84
852010-12-13 Stefan Monnier <monnier@iro.umontreal.ca>
86
87 * backups.texi (Making Backups):
88 * modes.texi (Example Major Modes): Use recommended coding style.
89 (Major Mode Basics, Derived Modes): Encourge more strongly use of
90 define-derived-mode. Mention completion-at-point-functions.
91
922010-12-13 Chong Yidong <cyd@stupidchicken.com>
93
94 * nonascii.texi (Converting Representations):
95 Document byte-to-string.
96
12010-12-08 Glenn Morris <rgm@gnu.org> 972010-12-08 Glenn Morris <rgm@gnu.org>
2 98
3 * buffers.texi (Modification Time): 99 * buffers.texi (Modification Time):
@@ -42,8 +138,8 @@
42 138
43 * customize.texi (Composite Types): Lower-case index entry. 139 * customize.texi (Composite Types): Lower-case index entry.
44 140
45 * loading.texi (How Programs Do Loading): Document 141 * loading.texi (How Programs Do Loading):
46 load-file-name. (Bug#7346) 142 Document load-file-name. (Bug#7346)
47 143
482010-11-17 Glenn Morris <rgm@gnu.org> 1442010-11-17 Glenn Morris <rgm@gnu.org>
49 145
@@ -484,8 +580,8 @@
484 * minibuf.texi (Basic Completion): 4th arg to all-completions is 580 * minibuf.texi (Basic Completion): 4th arg to all-completions is
485 obsolete. 581 obsolete.
486 582
487 * processes.texi (Process Buffers): Document 583 * processes.texi (Process Buffers):
488 process-kill-buffer-query-function. 584 Document process-kill-buffer-query-function.
489 585
4902009-12-05 Glenn Morris <rgm@gnu.org> 5862009-12-05 Glenn Morris <rgm@gnu.org>
491 587
@@ -932,8 +1028,8 @@
932 (Suspending Emacs): Mark suspend-emacs as a command. 1028 (Suspending Emacs): Mark suspend-emacs as a command.
933 (Processor Run Time): Mark emacs-uptime and emacs-init-time as 1029 (Processor Run Time): Mark emacs-uptime and emacs-init-time as
934 commands. 1030 commands.
935 (Terminal Output): Remove obsolete function baud-rate. Document 1031 (Terminal Output): Remove obsolete function baud-rate.
936 TERMINAL arg for send-string-to-terminal. 1032 Document TERMINAL arg for send-string-to-terminal.
937 1033
938 * nonascii.texi (Terminal I/O Encoding): Document TERMINAL arg for 1034 * nonascii.texi (Terminal I/O Encoding): Document TERMINAL arg for
939 terminal-coding-system and set-terminal-coding-system. 1035 terminal-coding-system and set-terminal-coding-system.
@@ -1037,8 +1133,8 @@
10372009-05-09 Eli Zaretskii <eliz@gnu.org> 11332009-05-09 Eli Zaretskii <eliz@gnu.org>
1038 1134
1039 * nonascii.texi (Default Coding Systems): Document 1135 * nonascii.texi (Default Coding Systems): Document
1040 find-auto-coding, set-auto-coding, and auto-coding-alist. Add 1136 find-auto-coding, set-auto-coding, and auto-coding-alist.
1041 indexing. 1137 Add indexing.
1042 (Lisp and Coding Systems): Add index entries. 1138 (Lisp and Coding Systems): Add index entries.
1043 1139
10442009-05-09 Martin Rudalics <rudalics@gmx.at> 11402009-05-09 Martin Rudalics <rudalics@gmx.at>
@@ -1080,8 +1176,8 @@
1080 1176
10812009-04-22 Chong Yidong <cyd@stupidchicken.com> 11772009-04-22 Chong Yidong <cyd@stupidchicken.com>
1082 1178
1083 * os.texi (Command-Line Arguments): Document 1179 * os.texi (Command-Line Arguments):
1084 command-line-args-left. 1180 Document command-line-args-left.
1085 (Suspending Emacs): Adapt text to multi-tty case. Document use of 1181 (Suspending Emacs): Adapt text to multi-tty case. Document use of
1086 terminal objects for tty arguments. 1182 terminal objects for tty arguments.
1087 (Startup Summary): Add xref to Session Management. 1183 (Startup Summary): Add xref to Session Management.
@@ -1157,13 +1253,13 @@
11572009-04-09 Chong Yidong <cyd@stupidchicken.com> 12532009-04-09 Chong Yidong <cyd@stupidchicken.com>
1158 1254
1159 * text.texi (Yank Commands): Note that yank uses push-mark. 1255 * text.texi (Yank Commands): Note that yank uses push-mark.
1160 (Filling): Clarify REGION argument of fill-paragraph. Document 1256 (Filling): Clarify REGION argument of fill-paragraph.
1161 fill-forward-paragraph-function. 1257 Document fill-forward-paragraph-function.
1162 (Special Properties): Remove "new in Emacs 22" declaration. 1258 (Special Properties): Remove "new in Emacs 22" declaration.
1163 (Clickable Text): Merge with Links and Mouse-1 node. 1259 (Clickable Text): Merge with Links and Mouse-1 node.
1164 1260
1165 * display.texi (Button Properties, Button Buffer Commands): Change 1261 * display.texi (Button Properties, Button Buffer Commands):
1166 xref to Clickable Text. 1262 Change xref to Clickable Text.
1167 1263
1168 * tips.texi (Key Binding Conventions): Change xref to Clickable 1264 * tips.texi (Key Binding Conventions): Change xref to Clickable
1169 Text. 1265 Text.
@@ -1225,8 +1321,8 @@
1225 1321
12262009-03-29 Chong Yidong <cyd@stupidchicken.com> 13222009-03-29 Chong Yidong <cyd@stupidchicken.com>
1227 1323
1228 * help.texi (Accessing Documentation, Help Functions): Remove 1324 * help.texi (Accessing Documentation, Help Functions):
1229 information about long-obsolete Emacs versions. 1325 Remove information about long-obsolete Emacs versions.
1230 1326
1231 * modes.texi (Mode Line Variables): The default values of the mode 1327 * modes.texi (Mode Line Variables): The default values of the mode
1232 line variables are now more complicated. 1328 line variables are now more complicated.
@@ -1269,8 +1365,8 @@
12692009-03-23 Chong Yidong <cyd@stupidchicken.com> 13652009-03-23 Chong Yidong <cyd@stupidchicken.com>
1270 1366
1271 * minibuf.texi (Intro to Minibuffers): Remove long-obsolete info 1367 * minibuf.texi (Intro to Minibuffers): Remove long-obsolete info
1272 about minibuffers in old Emacs versions. Copyedits. Emphasize 1368 about minibuffers in old Emacs versions. Copyedits.
1273 that enable-recursive-minibuffers defaults to nil. 1369 Emphasize that enable-recursive-minibuffers defaults to nil.
1274 (Text from Minibuffer): Simplify introduction. 1370 (Text from Minibuffer): Simplify introduction.
1275 1371
12762009-03-22 Alan Mackenzie <acm@muc.de> 13722009-03-22 Alan Mackenzie <acm@muc.de>
@@ -1324,8 +1420,8 @@
1324 * customize.texi (Common Keywords): It's not necessary to use :tag 1420 * customize.texi (Common Keywords): It's not necessary to use :tag
1325 to remove hyphens, as custom-unlispify-tag-name does it 1421 to remove hyphens, as custom-unlispify-tag-name does it
1326 automatically. 1422 automatically.
1327 (Variable Definitions): Link to File Local Variables. Document 1423 (Variable Definitions): Link to File Local Variables.
1328 customized-value symbol property. 1424 Document customized-value symbol property.
1329 (Customization Types): Move menu to end of node. 1425 (Customization Types): Move menu to end of node.
1330 1426
13312009-03-10 Chong Yidong <cyd@stupidchicken.com> 14272009-03-10 Chong Yidong <cyd@stupidchicken.com>
@@ -1436,8 +1532,8 @@
1436 * text.texi (Commands for Insertion): 1532 * text.texi (Commands for Insertion):
1437 * commands.texi (Event Mod): 1533 * commands.texi (Event Mod):
1438 * keymaps.texi (Searching Keymaps): 1534 * keymaps.texi (Searching Keymaps):
1439 * nonascii.texi (Translation of Characters): Reinstate 1535 * nonascii.texi (Translation of Characters):
1440 documentation of translation-table-for-input. 1536 Reinstate documentation of translation-table-for-input.
1441 (Explicit Encoding): Document the `charset' text property produced 1537 (Explicit Encoding): Document the `charset' text property produced
1442 by decode-coding-region and decode-coding-string. 1538 by decode-coding-region and decode-coding-string.
1443 1539
@@ -1466,8 +1562,8 @@
14662009-01-22 Chong Yidong <cyd@stupidchicken.com> 15622009-01-22 Chong Yidong <cyd@stupidchicken.com>
1467 1563
1468 * files.texi (Format Conversion Piecemeal): Clarify behavior of 1564 * files.texi (Format Conversion Piecemeal): Clarify behavior of
1469 write-region-annotate-functions. Document 1565 write-region-annotate-functions.
1470 write-region-post-annotation-function. 1566 Document write-region-post-annotation-function.
1471 1567
14722009-01-19 Chong Yidong <cyd@stupidchicken.com> 15682009-01-19 Chong Yidong <cyd@stupidchicken.com>
1473 1569
@@ -1534,8 +1630,8 @@
1534 1630
1535 * processes.texi (Serial Ports): Improve wording, suggested by RMS. 1631 * processes.texi (Serial Ports): Improve wording, suggested by RMS.
1536 1632
1537 * nonascii.texi (Lisp and Coding Systems): Document 1633 * nonascii.texi (Lisp and Coding Systems):
1538 inhibit-null-byte-detection and inhibit-iso-escape-detection. 1634 Document inhibit-null-byte-detection and inhibit-iso-escape-detection.
1539 (Character Properties): Improve wording. 1635 (Character Properties): Improve wording.
1540 1636
15412009-01-09 Chong Yidong <cyd@stupidchicken.com> 16372009-01-09 Chong Yidong <cyd@stupidchicken.com>
@@ -1543,8 +1639,8 @@
1543 * display.texi (Font Lookup): Remove obsolete function 1639 * display.texi (Font Lookup): Remove obsolete function
1544 x-font-family-list. x-list-fonts accepts Fontconfig/GTK syntax. 1640 x-font-family-list. x-list-fonts accepts Fontconfig/GTK syntax.
1545 (Low-Level Font): Rename from Fonts, move to end of Faces section. 1641 (Low-Level Font): Rename from Fonts, move to end of Faces section.
1546 (Font Selection): Reorder order of variable descriptions. Minor 1642 (Font Selection): Reorder order of variable descriptions.
1547 clarifications. 1643 Minor clarifications.
1548 1644
1549 * elisp.texi (Top): Update node listing. 1645 * elisp.texi (Top): Update node listing.
1550 1646
@@ -1565,8 +1661,8 @@
1565 * elisp.texi: Update node listing. 1661 * elisp.texi: Update node listing.
1566 1662
1567 * display.texi (Faces): Put Font Selection node after Auto Faces. 1663 * display.texi (Faces): Put Font Selection node after Auto Faces.
1568 (Face Attributes): Don't link to Font Lookup. Document 1664 (Face Attributes): Don't link to Font Lookup.
1569 font-family-list. 1665 Document font-family-list.
1570 (Fonts): New node. 1666 (Fonts): New node.
1571 1667
15722009-01-08 Jason Rumney <jasonr@gnu.org> 16682009-01-08 Jason Rumney <jasonr@gnu.org>
@@ -1794,8 +1890,8 @@
1794 * windows.texi (Window Hooks): Remove *-end-trigger-functions 1890 * windows.texi (Window Hooks): Remove *-end-trigger-functions
1795 vars, which are obsolete. Mention jit-lock-register. 1891 vars, which are obsolete. Mention jit-lock-register.
1796 1892
1797 * modes.texi (Other Font Lock Variables): Document 1893 * modes.texi (Other Font Lock Variables):
1798 jit-lock-register and jit-lock-unregister. 1894 Document jit-lock-register and jit-lock-unregister.
1799 1895
1800 * frames.texi (Color Parameters): Document alpha parameter. 1896 * frames.texi (Color Parameters): Document alpha parameter.
1801 1897
@@ -1867,8 +1963,8 @@
18672008-11-01 Eli Zaretskii <eliz@gnu.org> 19632008-11-01 Eli Zaretskii <eliz@gnu.org>
1868 1964
1869 * nonascii.texi (Text Representations): Rewrite to make consistent 1965 * nonascii.texi (Text Representations): Rewrite to make consistent
1870 with Emacs 23 internal representation of characters. Document 1966 with Emacs 23 internal representation of characters.
1871 `unibyte-string'. 1967 Document `unibyte-string'.
1872 1968
18732008-10-28 Chong Yidong <cyd@stupidchicken.com> 19692008-10-28 Chong Yidong <cyd@stupidchicken.com>
1874 1970
@@ -1981,8 +2077,8 @@
1981 2077
1982 * processes.texi (Synchronous Processes): Document `process-lines'. 2078 * processes.texi (Synchronous Processes): Document `process-lines'.
1983 2079
1984 * customize.texi (Variable Definitions): Document 2080 * customize.texi (Variable Definitions):
1985 `custom-reevaluate-setting'. 2081 Document `custom-reevaluate-setting'.
1986 2082
19872008-10-18 Martin Rudalics <rudalics@gmx.at> 20832008-10-18 Martin Rudalics <rudalics@gmx.at>
1988 2084
@@ -1998,13 +2094,13 @@
1998 * maps.texi (Standard Keymaps): Document `multi-query-replace-map' 2094 * maps.texi (Standard Keymaps): Document `multi-query-replace-map'
1999 and `search-map'. 2095 and `search-map'.
2000 2096
2001 * searching.texi (Search and Replace): Document 2097 * searching.texi (Search and Replace):
2002 `replace-search-function' and `replace-re-search-function'. 2098 Document `replace-search-function' and `replace-re-search-function'.
2003 Document `multi-query-replace-map'. 2099 Document `multi-query-replace-map'.
2004 2100
2005 * minibuf.texi (Text from Minibuffer): Document `read-regexp'. 2101 * minibuf.texi (Text from Minibuffer): Document `read-regexp'.
2006 (Completion Commands, Reading File Names): Rename 2102 (Completion Commands, Reading File Names):
2007 `minibuffer-local-must-match-filename-map' to 2103 Rename `minibuffer-local-must-match-filename-map' to
2008 `minibuffer-local-filename-must-match-map'. 2104 `minibuffer-local-filename-must-match-map'.
2009 (Minibuffer Completion): The `require-match' argument to 2105 (Minibuffer Completion): The `require-match' argument to
2010 `completing-read' can now have the value `confirm-only'. 2106 `completing-read' can now have the value `confirm-only'.
@@ -2349,7 +2445,7 @@
2349 2445
23502007-12-30 Richard Stallman <rms@gnu.org> 24462007-12-30 Richard Stallman <rms@gnu.org>
2351 2447
2352 * commands.texi (Accessing Mouse): Renamed from Accessing Events. 2448 * commands.texi (Accessing Mouse): Rename from Accessing Events.
2353 (Accessing Scroll): New node broken out of Accessing Mouse. 2449 (Accessing Scroll): New node broken out of Accessing Mouse.
2354 2450
23552007-12-28 Richard Stallman <rms@gnu.org> 24512007-12-28 Richard Stallman <rms@gnu.org>
@@ -2393,8 +2489,8 @@
2393 2489
23942007-11-29 Glenn Morris <rgm@gnu.org> 24902007-11-29 Glenn Morris <rgm@gnu.org>
2395 2491
2396 * functions.texi (Declaring Functions): Add findex. Mention 2492 * functions.texi (Declaring Functions): Add findex.
2397 `external' files. 2493 Mention `external' files.
2398 2494
23992007-11-26 Juanma Barranquero <lekktu@gmail.com> 24952007-11-26 Juanma Barranquero <lekktu@gmail.com>
2400 2496
@@ -2521,8 +2617,8 @@
2521 * display.texi (Display Property): Explain some display specs 2617 * display.texi (Display Property): Explain some display specs
2522 don't let you move point in. 2618 don't let you move point in.
2523 2619
2524 * frames.texi (Cursor Parameters): Describe 2620 * frames.texi (Cursor Parameters):
2525 cursor-in-non-selected-windows here. Explain more values. 2621 Describe cursor-in-non-selected-windows here. Explain more values.
2526 2622
2527 * windows.texi (Basic Windows): Don't describe 2623 * windows.texi (Basic Windows): Don't describe
2528 cursor-in-non-selected-windows here. 2624 cursor-in-non-selected-windows here.
@@ -2601,8 +2697,8 @@
2601 2697
26022007-08-16 Richard Stallman <rms@gnu.org> 26982007-08-16 Richard Stallman <rms@gnu.org>
2603 2699
2604 * processes.texi (Asynchronous Processes): Clarify 2700 * processes.texi (Asynchronous Processes):
2605 doc of start-file-process. 2701 Clarify doc of start-file-process.
2606 2702
26072007-08-08 Martin Rudalics <rudalics@gmx.at> 27032007-08-08 Martin Rudalics <rudalics@gmx.at>
2608 2704
@@ -2669,8 +2765,8 @@
2669 2765
26702007-06-27 Richard Stallman <rms@gnu.org> 27662007-06-27 Richard Stallman <rms@gnu.org>
2671 2767
2672 * files.texi (Format Conversion Piecemeal): Clarify 2768 * files.texi (Format Conversion Piecemeal):
2673 `after-insert-file-functions' calling convention. 2769 Clarify `after-insert-file-functions' calling convention.
2674 2770
26752007-06-27 Michael Albinus <michael.albinus@gmx.de> 27712007-06-27 Michael Albinus <michael.albinus@gmx.de>
2676 2772
@@ -2725,8 +2821,8 @@
2725 2821
27262007-05-30 Nick Roberts <nickrob@snap.net.nz> 28222007-05-30 Nick Roberts <nickrob@snap.net.nz>
2727 2823
2728 * commands.texi (Click Events): Layout more logically. Describe 2824 * commands.texi (Click Events): Layout more logically.
2729 width and height. 2825 Describe width and height.
2730 (Drag Events, Motion Events): Update to new format for position. 2826 (Drag Events, Motion Events): Update to new format for position.
2731 2827
27322007-06-02 Richard Stallman <rms@gnu.org> 28282007-06-02 Richard Stallman <rms@gnu.org>
@@ -3132,8 +3228,8 @@
3132 3228
31332007-03-05 Richard Stallman <rms@gnu.org> 32292007-03-05 Richard Stallman <rms@gnu.org>
3134 3230
3135 * variables.texi (File Local Variables): Update 3231 * variables.texi (File Local Variables):
3136 enable-local-variables values. 3232 Update enable-local-variables values.
3137 3233
31382007-03-04 Richard Stallman <rms@gnu.org> 32342007-03-04 Richard Stallman <rms@gnu.org>
3139 3235
@@ -3204,8 +3300,8 @@
32042007-02-03 Eli Zaretskii <eliz@gnu.org> 33002007-02-03 Eli Zaretskii <eliz@gnu.org>
3205 3301
3206 * elisp.texi (Top): Make the detailed menu headers compliant with 3302 * elisp.texi (Top): Make the detailed menu headers compliant with
3207 Texinfo guidelines and with what texnfo-upd.el expects. Add 3303 Texinfo guidelines and with what texnfo-upd.el expects.
3208 comments to prevent people from inadvertently modifying the key 3304 Add comments to prevent people from inadvertently modifying the key
3209 parts needed by `texinfo-multiple-files-update'. 3305 parts needed by `texinfo-multiple-files-update'.
3210 3306
32112007-02-02 Eli Zaretskii <eliz@gnu.org> 33072007-02-02 Eli Zaretskii <eliz@gnu.org>
@@ -3292,8 +3388,8 @@
3292 3388
32932006-12-24 Richard Stallman <rms@gnu.org> 33892006-12-24 Richard Stallman <rms@gnu.org>
3294 3390
3295 * customize.texi (Variable Definitions): Document 3391 * customize.texi (Variable Definitions):
3296 new name custom-add-frequent-value. 3392 Document new name custom-add-frequent-value.
3297 3393
32982006-12-19 Kim F. Storm <storm@cua.dk> 33942006-12-19 Kim F. Storm <storm@cua.dk>
3299 3395
@@ -3592,8 +3688,8 @@
3592 3688
35932006-09-01 Chong Yidong <cyd@stupidchicken.com> 36892006-09-01 Chong Yidong <cyd@stupidchicken.com>
3594 3690
3595 * buffers.texi (Buffer Modification): Document 3691 * buffers.texi (Buffer Modification):
3596 buffer-chars-modified-tick. 3692 Document buffer-chars-modified-tick.
3597 3693
35982006-08-31 Richard Stallman <rms@gnu.org> 36942006-08-31 Richard Stallman <rms@gnu.org>
3599 3695
@@ -3655,7 +3751,7 @@
36552006-08-12 Chong Yidong <cyd@stupidchicken.com> 37512006-08-12 Chong Yidong <cyd@stupidchicken.com>
3656 3752
3657 * text.texi (Near Point): Say "cursor" not "terminal cursor". 3753 * text.texi (Near Point): Say "cursor" not "terminal cursor".
3658 (Commands for Insertion): Removed split-line since it's not 3754 (Commands for Insertion): Remove split-line since it's not
3659 relevant for Lisp programming. 3755 relevant for Lisp programming.
3660 (Yank Commands): Rewrite introduction. 3756 (Yank Commands): Rewrite introduction.
3661 (Undo): Clarify. 3757 (Undo): Clarify.
@@ -3686,7 +3782,7 @@
3686 (Major Mode Basics): Mention define-derived-mode explicitly. 3782 (Major Mode Basics): Mention define-derived-mode explicitly.
3687 (Major Mode Conventions): Rebinding RET is OK for some modes. 3783 (Major Mode Conventions): Rebinding RET is OK for some modes.
3688 Mention change-major-mode-hook and after-change-major-mode-hook. 3784 Mention change-major-mode-hook and after-change-major-mode-hook.
3689 (Example Major Modes): Moved to end of Modes section. 3785 (Example Major Modes): Move to end of Modes section.
3690 (Mode Line Basics): Clarify. 3786 (Mode Line Basics): Clarify.
3691 (Mode Line Data): Mention help-echo and local-map in strings. 3787 (Mode Line Data): Mention help-echo and local-map in strings.
3692 Explain reason for treatment of non-risky variables. 3788 Explain reason for treatment of non-risky variables.
@@ -4185,7 +4281,7 @@
4185 4281
41862006-05-25 Chong Yidong <cyd@stupidchicken.com> 42822006-05-25 Chong Yidong <cyd@stupidchicken.com>
4187 4283
4188 * keymaps.texi (Key Sequences): Renamed from Keymap Terminology. 4284 * keymaps.texi (Key Sequences): Rename from Keymap Terminology.
4189 Explain string and vector representations of key sequences. 4285 Explain string and vector representations of key sequences.
4190 4286
4191 * keymaps.texi (Changing Key Bindings): 4287 * keymaps.texi (Changing Key Bindings):
@@ -4234,8 +4330,8 @@
4234 4330
42352006-05-15 Oliver Scholz <epameinondas@gmx.de> (tiny change) 43312006-05-15 Oliver Scholz <epameinondas@gmx.de> (tiny change)
4236 4332
4237 * nonascii.texi (Explicit Encoding): Fix 4333 * nonascii.texi (Explicit Encoding):
4238 typo (encoding<->decoding). 4334 Fix typo (encoding<->decoding).
4239 4335
42402006-05-14 Richard Stallman <rms@gnu.org> 43362006-05-14 Richard Stallman <rms@gnu.org>
4241 4337
@@ -4285,8 +4381,8 @@
4285 4381
42862006-05-09 Richard Stallman <rms@gnu.org> 43822006-05-09 Richard Stallman <rms@gnu.org>
4287 4383
4288 * variables.texi (File Local Variables): Document 4384 * variables.texi (File Local Variables):
4289 safe-local-eval-forms and safe-local-eval-function. 4385 Document safe-local-eval-forms and safe-local-eval-function.
4290 4386
42912006-05-07 Kim F. Storm <storm@cua.dk> 43872006-05-07 Kim F. Storm <storm@cua.dk>
4292 4388
@@ -4770,8 +4866,8 @@
4770 4866
47712005-12-03 Eli Zaretskii <eliz@gnu.org> 48672005-12-03 Eli Zaretskii <eliz@gnu.org>
4772 4868
4773 * hooks.texi (Standard Hooks): Add index entries. Mention 4869 * hooks.texi (Standard Hooks): Add index entries.
4774 `compilation-finish-functions'. 4870 Mention `compilation-finish-functions'.
4775 4871
47762005-11-27 Richard M. Stallman <rms@gnu.org> 48722005-11-27 Richard M. Stallman <rms@gnu.org>
4777 4873
@@ -4994,8 +5090,8 @@
4994 buffer-local. 5090 buffer-local.
4995 (Undo): Note that buffer-undo-list is buffer-local. 5091 (Undo): Note that buffer-undo-list is buffer-local.
4996 5092
4997 * windows.texi (Buffers and Windows): Document 5093 * windows.texi (Buffers and Windows):
4998 buffer-display-count. 5094 Document buffer-display-count.
4999 5095
50002005-09-06 Richard M. Stallman <rms@gnu.org> 50962005-09-06 Richard M. Stallman <rms@gnu.org>
5001 5097
@@ -5236,7 +5332,7 @@
5236 5332
5237 * display.texi (Displaying Messages): New node, with most 5333 * display.texi (Displaying Messages): New node, with most
5238 of what was in The Echo Area. 5334 of what was in The Echo Area.
5239 (Progress): Moved under The Echo Area. 5335 (Progress): Move under The Echo Area.
5240 (Logging Messages): New node with new text. 5336 (Logging Messages): New node with new text.
5241 (Echo Area Customization): New node, the rest of what was 5337 (Echo Area Customization): New node, the rest of what was
5242 in The Echo Area. Document message-truncate-lines with @defvar. 5338 in The Echo Area. Document message-truncate-lines with @defvar.
@@ -6551,8 +6647,8 @@
6551 (Scroll Bars): Add scroll-bar-mode and scroll-bar-width. 6647 (Scroll Bars): Add scroll-bar-mode and scroll-bar-width.
6552 (Usual Display): Move tab-width up. 6648 (Usual Display): Move tab-width up.
6553 6649
6554 * customize.texi (Variable Definitions): Replace 6650 * customize.texi (Variable Definitions):
6555 show-paren-mode example with tooltip-mode. 6651 Replace show-paren-mode example with tooltip-mode.
6556 (Simple Types, Composite Types, Defining New Types): 6652 (Simple Types, Composite Types, Defining New Types):
6557 Minor cleanups. 6653 Minor cleanups.
6558 6654
@@ -6788,8 +6884,8 @@
6788 (Display Fringe Bitmaps): New node. 6884 (Display Fringe Bitmaps): New node.
6789 (Images): Add 'Image Slices' to menu. 6885 (Images): Add 'Image Slices' to menu.
6790 (Image Descriptors): Add `:pointer' and `:map' properties. 6886 (Image Descriptors): Add `:pointer' and `:map' properties.
6791 (Showing Images): Add slice arg to `insert-image'. Add 6887 (Showing Images): Add slice arg to `insert-image'.
6792 'insert-sliced-image'. 6888 Add 'insert-sliced-image'.
6793 6889
67942004-09-20 Richard M. Stallman <rms@gnu.org> 68902004-09-20 Richard M. Stallman <rms@gnu.org>
6795 6891
@@ -6802,8 +6898,8 @@
6802 6898
68032004-09-07 Luc Teirlinck <teirllm@auburn.edu> 68992004-09-07 Luc Teirlinck <teirllm@auburn.edu>
6804 6900
6805 * locals.texi (Standard Buffer-Local Variables): Add 6901 * locals.texi (Standard Buffer-Local Variables):
6806 `buffer-auto-save-file-format'. 6902 Add `buffer-auto-save-file-format'.
6807 * internals.texi (Buffer Internals): Describe new 6903 * internals.texi (Buffer Internals): Describe new
6808 auto_save_file_format field of the buffer structure. 6904 auto_save_file_format field of the buffer structure.
6809 * files.texi (Format Conversion): `auto-save-file-format' has been 6905 * files.texi (Format Conversion): `auto-save-file-format' has been
@@ -7191,8 +7287,8 @@
7191 7287
71922004-04-05 Jesper Harder <harder@ifa.au.dk> 72882004-04-05 Jesper Harder <harder@ifa.au.dk>
7193 7289
7194 * variables.texi (Variable Aliases): Mention 7290 * variables.texi (Variable Aliases):
7195 cyclic-variable-indirection. 7291 Mention cyclic-variable-indirection.
7196 7292
7197 * errors.texi (Standard Errors): Ditto. 7293 * errors.texi (Standard Errors): Ditto.
7198 7294
@@ -7371,7 +7467,7 @@
7371 7467
73722004-02-07 Jan Djärv <jan.h.d@swipnet.se> 74682004-02-07 Jan Djärv <jan.h.d@swipnet.se>
7373 7469
7374 * positions.texi (Text Lines): Added missing end defun. 7470 * positions.texi (Text Lines): Add missing end defun.
7375 7471
73762004-02-07 Kim F. Storm <storm@cua.dk> 74722004-02-07 Kim F. Storm <storm@cua.dk>
7377 7473
@@ -7394,12 +7490,12 @@
7394 read-minibuffer. 7490 read-minibuffer.
7395 (Minibuffer History): Clarify description of cons values for 7491 (Minibuffer History): Clarify description of cons values for
7396 HISTORY arguments. 7492 HISTORY arguments.
7397 (Basic Completion): Various corrections and clarifications. Add 7493 (Basic Completion): Various corrections and clarifications.
7398 completion-regexp-list. 7494 Add completion-regexp-list.
7399 (Minibuffer Completion): Correct and clarify description of 7495 (Minibuffer Completion): Correct and clarify description of
7400 completing-read. 7496 completing-read.
7401 (Completion Commands): Mention Partial Completion mode. Various 7497 (Completion Commands): Mention Partial Completion mode.
7402 other minor changes. 7498 Various other minor changes.
7403 (High-Level Completion): Various corrections and clarifications. 7499 (High-Level Completion): Various corrections and clarifications.
7404 (Reading File Names): Ditto. 7500 (Reading File Names): Ditto.
7405 (Minibuffer Misc): Ditto. 7501 (Minibuffer Misc): Ditto.
@@ -7474,8 +7570,8 @@
7474 7570
7475 * functions.texi: Various small changes in addition to the 7571 * functions.texi: Various small changes in addition to the
7476 following. 7572 following.
7477 (What Is a Function): `functionp' returns nil for macros. Clarify 7573 (What Is a Function): `functionp' returns nil for macros.
7478 behavior of this and following functions for symbol arguments. 7574 Clarify behavior of this and following functions for symbol arguments.
7479 (Function Documentation): Add `\' in front of (fn @var{arglist}) 7575 (Function Documentation): Add `\' in front of (fn @var{arglist})
7480 and explain why. 7576 and explain why.
7481 (Defining Functions): Mention DOCSTRING argument to `defalias'. 7577 (Defining Functions): Mention DOCSTRING argument to `defalias'.
@@ -8271,7 +8367,7 @@
8271 8367
82722003-01-31 Joe Buehler <jhpb@draco.hekimian.com> 83682003-01-31 Joe Buehler <jhpb@draco.hekimian.com>
8273 8369
8274 * os.texi (System Environment): Added cygwin system-type. 8370 * os.texi (System Environment): Add cygwin system-type.
8275 8371
82762003-01-25 Richard M. Stallman <rms@gnu.org> 83722003-01-25 Richard M. Stallman <rms@gnu.org>
8277 8373
@@ -8304,7 +8400,7 @@
8304 8400
8305 * README: Target for Info file is `make info'. 8401 * README: Target for Info file is `make info'.
8306 8402
8307 * files.texi (File Name Components): Fixed typos in 8403 * files.texi (File Name Components): Fix typos in
8308 `file-name-sans-extension'. 8404 `file-name-sans-extension'.
8309 (Magic File Names): Complete list of operations for magic file 8405 (Magic File Names): Complete list of operations for magic file
8310 name handlers. 8406 name handlers.
@@ -8320,7 +8416,7 @@
8320 8416
83212002-08-05 Per Abrahamsen <abraham@dina.kvl.dk> 84172002-08-05 Per Abrahamsen <abraham@dina.kvl.dk>
8322 8418
8323 * customize.texi (Splicing into Lists): Fixed example. 8419 * customize.texi (Splicing into Lists): Fix example.
8324 Reported by Fabrice Bauzac <fabrice.bauzac@wanadoo.fr>. 8420 Reported by Fabrice Bauzac <fabrice.bauzac@wanadoo.fr>.
8325 8421
83262002-06-17 Juanma Barranquero <lektu@terra.es> 84222002-06-17 Juanma Barranquero <lektu@terra.es>
@@ -8360,8 +8456,8 @@
8360 8456
83612001-11-17 Eli Zaretskii <eliz@is.elta.co.il> 84572001-11-17 Eli Zaretskii <eliz@is.elta.co.il>
8362 8458
8363 * permute-index: Don't depend on csh-specific features. Replace 8459 * permute-index: Don't depend on csh-specific features.
8364 the interpreter name with /bin/sh. 8460 Replace the interpreter name with /bin/sh.
8365 8461
8366 * two-volume-cross-refs.txt: New file. 8462 * two-volume-cross-refs.txt: New file.
8367 * two.el: New file. 8463 * two.el: New file.
@@ -8499,8 +8595,8 @@
8499 * numbers.texi (Integer Basics): Document CL style read syntax for 8595 * numbers.texi (Integer Basics): Document CL style read syntax for
8500 integers in bases other than 10. 8596 integers in bases other than 10.
8501 8597
8502 * positions.texi (List Motion): Document 8598 * positions.texi (List Motion):
8503 open-paren-in-column-0-is-defun-start. 8599 Document open-paren-in-column-0-is-defun-start.
8504 8600
8505 * lists.texi (Sets And Lists): Document member-ignore-case. 8601 * lists.texi (Sets And Lists): Document member-ignore-case.
8506 8602
@@ -8695,7 +8791,7 @@
86951995-06-19 Richard Stallman <rms@mole.gnu.ai.mit.edu> 87911995-06-19 Richard Stallman <rms@mole.gnu.ai.mit.edu>
8696 8792
8697 * Makefile (VERSION): Update version number. 8793 * Makefile (VERSION): Update version number.
8698 (maintainer-clean): Renamed from realclean. 8794 (maintainer-clean): Rename from realclean.
8699 8795
87001995-06-07 Karl Heuer <kwzh@nutrimat.gnu.ai.mit.edu> 87961995-06-07 Karl Heuer <kwzh@nutrimat.gnu.ai.mit.edu>
8701 8797
@@ -8767,11 +8863,11 @@
8767 8863
87681991-11-26 Richard Stallman (rms@mole.gnu.ai.mit.edu) 88641991-11-26 Richard Stallman (rms@mole.gnu.ai.mit.edu)
8769 8865
8770 * Makefile (srcs): Added index.perm. 8866 * Makefile (srcs): Add index.perm.
8771 (elisp.dvi): Remove erroneous shell comment. 8867 (elisp.dvi): Remove erroneous shell comment.
8772 Expect output of permute-index in permuted.fns. 8868 Expect output of permute-index in permuted.fns.
8773 Save old elisp.aux in elisp.oaux. 8869 Save old elisp.aux in elisp.oaux.
8774 (clean): Added index.texi to be deleted. 8870 (clean): Add index.texi to be deleted.
8775 8871
87761990-08-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu) 88721990-08-11 Richard Stallman (rms@sugar-bombs.ai.mit.edu)
8777 8873
@@ -8833,8 +8929,7 @@
8833;; coding: utf-8 8929;; coding: utf-8
8834;; End: 8930;; End:
8835 8931
8836 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 8932 Copyright (C) 1998-2011 Free Software Foundation, Inc.
8837 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
8838 8933
8839 This file is part of GNU Emacs. 8934 This file is part of GNU Emacs.
8840 8935
diff --git a/doc/lispref/Makefile.in b/doc/lispref/Makefile.in
index be8b6ca2c9e..a9664a4e197 100644
--- a/doc/lispref/Makefile.in
+++ b/doc/lispref/Makefile.in
@@ -1,8 +1,6 @@
1# Makefile for the GNU Emacs Lisp Reference Manual. 1# Makefile for the GNU Emacs Lisp Reference Manual.
2 2
3# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 3# Copyright (C) 1990-1996, 1998-2011 Free Software Foundation, Inc.
4# 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc.
6 4
7# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
8 6
@@ -32,11 +30,15 @@ texinfodir = $(srcdir)/../misc
32# Directory with emacsver.texi. 30# Directory with emacsver.texi.
33emacsdir = $(srcdir)/../emacs 31emacsdir = $(srcdir)/../emacs
34 32
35MAKEINFO = makeinfo --force -I $(emacsdir) -I $(srcdir) 33MAKEINFO = @MAKEINFO@
34MAKEINFO_OPTS = --force -I $(emacsdir) -I $(srcdir)
36TEXI2DVI = texi2dvi 35TEXI2DVI = texi2dvi
37TEXI2PDF = texi2pdf 36TEXI2PDF = texi2pdf
38DVIPS = dvips 37DVIPS = dvips
39 38
39ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \
40 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
41
40# List of all the texinfo files in the manual: 42# List of all the texinfo files in the manual:
41 43
42srcs = \ 44srcs = \
@@ -106,19 +108,19 @@ ps: elisp.ps
106 108
107$(infodir)/elisp: $(srcs) 109$(infodir)/elisp: $(srcs)
108 $(mkinfodir) 110 $(mkinfodir)
109 $(MAKEINFO) -o $@ $< 111 $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $<
110 112
111elisp.dvi: $(srcs) 113elisp.dvi: $(srcs)
112 $(TEXI2DVI) -I $(srcdir) -I $(texinfodir) -I $(emacsdir) $< 114 $(ENVADD) $(TEXI2DVI) $<
113 115
114elisp.html: $(srcs) 116elisp.html: $(srcs)
115 $(MAKEINFO) --html -o $@ $< 117 $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $<
116 118
117elisp.ps: elisp.dvi 119elisp.ps: elisp.dvi
118 $(DVIPS) -o $@ $< 120 $(DVIPS) -o $@ $<
119 121
120elisp.pdf: $(srcs) 122elisp.pdf: $(srcs)
121 $(TEXI2PDF) -I $(srcdir) -I $(texinfodir) -I $(emacsdir) $< 123 $(ENVADD) $(TEXI2PDF) $<
122 124
123.PHONY: mostlyclean clean distclean maintainer-clean infoclean 125.PHONY: mostlyclean clean distclean maintainer-clean infoclean
124 126
diff --git a/doc/lispref/README b/doc/lispref/README
index 5b052b9d4b3..a9c0922640b 100644
--- a/doc/lispref/README
+++ b/doc/lispref/README
@@ -1,5 +1,4 @@
1Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 1Copyright (C) 2001-2011 Free Software Foundation, Inc.
2 Free Software Foundation, Inc.
3See the end of the file for license conditions. 2See the end of the file for license conditions.
4 3
5 4
diff --git a/doc/lispref/abbrevs.texi b/doc/lispref/abbrevs.texi
index 90da5aaa488..57030559d0b 100644
--- a/doc/lispref/abbrevs.texi
+++ b/doc/lispref/abbrevs.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1999, 2001, 2002, 2003, 3@c Copyright (C) 1990-1994, 1999, 2001-2011 Free Software Foundation, Inc.
4@c 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/abbrevs 5@setfilename ../../info/abbrevs
7@node Abbrevs, Processes, Syntax Tables, Top 6@node Abbrevs, Processes, Syntax Tables, Top
@@ -511,8 +510,3 @@ This property holds a counter incremented each time a new abbrev is
511added to the table. 510added to the table.
512 511
513@end table 512@end table
514
515
516@ignore
517 arch-tag: 5ffdbe08-2cd4-48ec-a5a8-080f95756eec
518@end ignore
diff --git a/doc/lispref/advice.texi b/doc/lispref/advice.texi
index 70aa22c347d..29356381229 100644
--- a/doc/lispref/advice.texi
+++ b/doc/lispref/advice.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 3@c Copyright (C) 1998-1999, 2001-2011 Free Software Foundation, Inc.
4@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/advising 5@setfilename ../../info/advising
7@node Advising Functions, Debugging, Byte Compilation, Top 6@node Advising Functions, Debugging, Byte Compilation, Top
@@ -777,7 +776,3 @@ pieces of advice is the same. The only difference is that
777executed even if some previous piece of advice had an error or a 776executed even if some previous piece of advice had an error or a
778non-local exit. If any around-advice is protected, then the whole 777non-local exit. If any around-advice is protected, then the whole
779around-advice onion is protected as a result. 778around-advice onion is protected as a result.
780
781@ignore
782 arch-tag: 80c135c2-f1c3-4f8d-aa85-f8d8770d307f
783@end ignore
diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi
index 92e0432b842..bb1e42c9309 100644
--- a/doc/lispref/anti.texi
+++ b/doc/lispref/anti.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1999, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 3@c Copyright (C) 1999, 2002-2011 Free Software Foundation, Inc.
4@c 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6 5
7@c This node must have no pointers. 6@c This node must have no pointers.
@@ -154,7 +153,3 @@ Many variables have been removed, including @code{read-circle},
154@code{inhibit-changing-match-data}, @code{wrap-prefix}, and 153@code{inhibit-changing-match-data}, @code{wrap-prefix}, and
155@code{line-prefix}, 154@code{line-prefix},
156@end itemize 155@end itemize
157
158@ignore
159 arch-tag: 1d0ef137-2bad-430e-ae8e-d820d569b5a6
160@end ignore
diff --git a/doc/lispref/back.texi b/doc/lispref/back.texi
index 639ad27fd30..3add7b174d2 100644
--- a/doc/lispref/back.texi
+++ b/doc/lispref/back.texi
@@ -1,7 +1,6 @@
1\input texinfo @c -*-texinfo-*- 1\input texinfo @c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 3@c Copyright (C) 2001-2011 Free Software Foundation, Inc.
4@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@c 5@c
7@c %**start of header 6@c %**start of header
@@ -36,7 +35,3 @@ are peculiar to Emacs Lisp or relate specifically to editing.
36 35
37@hfil 36@hfil
38@bye 37@bye
39
40@ignore
41 arch-tag: ac7694c8-1f02-4b42-9531-33ba13b179e1
42@end ignore
diff --git a/doc/lispref/backups.texi b/doc/lispref/backups.texi
index 7d6ae233f2b..aad0cbc146a 100644
--- a/doc/lispref/backups.texi
+++ b/doc/lispref/backups.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2001, 2002, 2003, 3@c Copyright (C) 1990-1995, 1999, 2001-2011 Free Software Foundation, Inc.
4@c 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/backups 5@setfilename ../../info/backups
7@node Backups and Auto-Saving, Buffers, Files, Top 6@node Backups and Auto-Saving, Buffers, Files, Top
@@ -88,10 +87,8 @@ save disk space. (You would put this code in your init file.)
88@smallexample 87@smallexample
89@group 88@group
90(add-hook 'rmail-mode-hook 89(add-hook 'rmail-mode-hook
91 (function (lambda () 90 (lambda ()
92 (make-local-variable 91 (set (make-local-variable 'make-backup-files) nil)))
93 'make-backup-files)
94 (setq make-backup-files nil))))
95@end group 92@end group
96@end smallexample 93@end smallexample
97@end defopt 94@end defopt
@@ -754,7 +751,3 @@ This normal hook is run by @code{revert-buffer} after inserting
754the modified contents---but only if @code{revert-buffer-function} is 751the modified contents---but only if @code{revert-buffer-function} is
755@code{nil}. 752@code{nil}.
756@end defvar 753@end defvar
757
758@ignore
759 arch-tag: 295a6321-e5ab-46d5-aef5-0bb4f447a67f
760@end ignore
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
index 8811178fe92..07889cdbaa3 100644
--- a/doc/lispref/buffers.texi
+++ b/doc/lispref/buffers.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/buffers 6@setfilename ../../info/buffers
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index d83396750ca..25fd50b1591 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/commands 6@setfilename ../../info/commands
@@ -3386,7 +3385,3 @@ This normal hook (@pxref{Standard Hooks}) is run when a keyboard
3386macro terminates, regardless of what caused it to terminate (reaching 3385macro terminates, regardless of what caused it to terminate (reaching
3387the macro end or an error which ended the macro prematurely). 3386the macro end or an error which ended the macro prematurely).
3388@end defvar 3387@end defvar
3389
3390@ignore
3391 arch-tag: e34944ad-7d5c-4980-be00-36a5fe54d4b1
3392@end ignore
diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi
index 69b57f19ea7..f9f0e6662cf 100644
--- a/doc/lispref/compile.texi
+++ b/doc/lispref/compile.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2001, 2002, 2003, 2004, 3@c Copyright (C) 1990-1994, 2001-2011 Free Software Foundation, Inc.
4@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/compile 5@setfilename ../../info/compile
7@node Byte Compilation, Advising Functions, Loading, Top 6@node Byte Compilation, Advising Functions, Loading, Top
@@ -790,7 +789,3 @@ The @code{silly-loop} function is somewhat more complex:
790@end group 789@end group
791@end example 790@end example
792 791
793
794@ignore
795 arch-tag: f78e3050-2f0a-4dee-be27-d9979a0a2289
796@end ignore
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index 16564677f32..b6fdb9dbcbd 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011 Free Software Foundation, Inc.
4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/control 5@setfilename ../../info/control
7@node Control Structures, Variables, Evaluation, Top 6@node Control Structures, Variables, Evaluation, Top
@@ -1319,7 +1318,3 @@ quit, and the quit happens immediately after the function
1319@code{ftp-setup-buffer} returns but before the variable @code{process} is 1318@code{ftp-setup-buffer} returns but before the variable @code{process} is
1320set, the process will not be killed. There is no easy way to fix this bug, 1319set, the process will not be killed. There is no easy way to fix this bug,
1321but at least it is very unlikely. 1320but at least it is very unlikely.
1322
1323@ignore
1324 arch-tag: 8abc30d4-4d3a-47f9-b908-e9e971c18c6d
1325@end ignore
diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi
index bfd45518bc8..2f1ea055f82 100644
--- a/doc/lispref/customize.texi
+++ b/doc/lispref/customize.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 3@c Copyright (C) 1997-2011 Free Software Foundation, Inc.
4@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/customize 5@setfilename ../../info/customize
7@node Customization, Loading, Macros, Top 6@node Customization, Loading, Macros, Top
@@ -1282,7 +1281,3 @@ the inferior widgets will convert @emph{their} inferior widgets. If
1282the data structure is itself recursive, this conversion is an infinite 1281the data structure is itself recursive, this conversion is an infinite
1283recursion. The @code{lazy} widget prevents the recursion: it convert 1282recursion. The @code{lazy} widget prevents the recursion: it convert
1284its @code{:type} argument only when needed. 1283its @code{:type} argument only when needed.
1285
1286@ignore
1287 arch-tag: d1b8fad3-f48c-4ce4-a402-f73b5ef19bd2
1288@end ignore
diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi
index 3d77a5fe0d5..ed146453df7 100644
--- a/doc/lispref/debugging.texi
+++ b/doc/lispref/debugging.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2001, 2002, 2003, 3@c Copyright (C) 1990-1994, 1998-1999, 2001-2011 Free Software Foundation, Inc.
4@c 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/debugging 5@setfilename ../../info/debugging
7@node Debugging, Read and Print, Advising Functions, Top 6@node Debugging, Read and Print, Advising Functions, Top
@@ -817,7 +816,3 @@ the error.
817successfully, then point is located at the end of the form. In this 816successfully, then point is located at the end of the form. In this
818case, this technique can't localize the error precisely, but can still 817case, this technique can't localize the error precisely, but can still
819show you which function to check. 818show you which function to check.
820
821@ignore
822 arch-tag: ddc57378-b0e6-4195-b7b6-43f8777395a7
823@end ignore
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 6e872ad4233..9bc80a77742 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -1,8 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 3@c Copyright (C) 1990-1995, 1998-2011 Free Software Foundation, Inc.
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/display 5@setfilename ../../info/display
8@node Display, System Interface, Processes, Top 6@node Display, System Interface, Processes, Top
@@ -3892,6 +3890,13 @@ position as that text. It is equivalent to using just @var{string},
3892but it is done as a special case of marginal display (@pxref{Display 3890but it is done as a special case of marginal display (@pxref{Display
3893Margins}). 3891Margins}).
3894 3892
3893@item (left-fringe @var{bitmap} @r{[}@var{face}@r{]})
3894@itemx (right-fringe @var{bitmap} @r{[}@var{face}@r{]})
3895This display specification on any character of a line of text causes
3896the specified @var{bitmap} be displayed in the left or right fringes
3897for that line. The optional @var{face} specifies the colors to be
3898used for the bitmap. @xref{Fringe Bitmaps}, for the details.
3899
3895@item (space-width @var{factor}) 3900@item (space-width @var{factor})
3896This display specification affects all the space characters within the 3901This display specification affects all the space characters within the
3897text that has the specification. It displays all of these spaces 3902text that has the specification. It displays all of these spaces
@@ -5005,8 +5010,9 @@ and returns it.
5005button actually part of the text instead of being a property of the 5010button actually part of the text instead of being a property of the
5006buffer. Buttons using text properties do not create markers into the 5011buffer. Buttons using text properties do not create markers into the
5007buffer, which is important for speed when you use extremely large 5012buffer, which is important for speed when you use extremely large
5008numbers of buttons. Both functions return the position of the start 5013numbers of buttons. (However, if there is an existing face text
5009of the new button: 5014property at the site of the button, the button face may not be visible.)
5015Both functions return the position of the start of the new button:
5010 5016
5011@defun make-text-button beg end &rest properties 5017@defun make-text-button beg end &rest properties
5012This makes a button from @var{beg} to @var{end} in the current buffer, using 5018This makes a button from @var{beg} to @var{end} in the current buffer, using
@@ -5947,7 +5953,3 @@ This hook is used for internal purposes: setting up communication with
5947the window system, and creating the initial window. Users should not 5953the window system, and creating the initial window. Users should not
5948interfere with it. 5954interfere with it.
5949@end defvar 5955@end defvar
5950
5951@ignore
5952 arch-tag: ffdf5714-7ecf-415b-9023-fbc6b409c2c6
5953@end ignore
diff --git a/doc/lispref/doclicense.texi b/doc/lispref/doclicense.texi
index 9adddffba98..0c2d47827a9 100644
--- a/doc/lispref/doclicense.texi
+++ b/doc/lispref/doclicense.texi
@@ -508,7 +508,3 @@ to permit their use in free software.
508@c Local Variables: 508@c Local Variables:
509@c ispell-local-pdict: "ispell-dict" 509@c ispell-local-pdict: "ispell-dict"
510@c End: 510@c End:
511
512@ignore
513 arch-tag: 9014cf6e-f3c4-401d-b8da-4fe52723984c
514@end ignore
diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi
index 3733a8fb105..391c22ba098 100644
--- a/doc/lispref/edebug.texi
+++ b/doc/lispref/edebug.texi
@@ -1,7 +1,6 @@
1@comment -*-texinfo-*- 1@comment -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1992, 1993, 1994, 1998, 1999, 2001, 2002, 2003, 2004, 3@c Copyright (C) 1992-1994, 1998-1999, 2001-2011 Free Software Foundation, Inc.
4@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6 5
7@c This file can also be used by an independent Edebug User 6@c This file can also be used by an independent Edebug User
@@ -1588,7 +1587,3 @@ If non-@code{nil}, an expression to test for at every stop point. If
1588the result is non-@code{nil}, then break. Errors are ignored. 1587the result is non-@code{nil}, then break. Errors are ignored.
1589@xref{Global Break Condition}. 1588@xref{Global Break Condition}.
1590@end defopt 1589@end defopt
1591
1592@ignore
1593 arch-tag: 74842db8-019f-4818-b5a4-b2de878e57fd
1594@end ignore
diff --git a/doc/lispref/elisp-covers.texi b/doc/lispref/elisp-covers.texi
index 6efc3e34129..92dfb7a074f 100644
--- a/doc/lispref/elisp-covers.texi
+++ b/doc/lispref/elisp-covers.texi
@@ -1,7 +1,6 @@
1\input texinfo @c -*-texinfo-*- 1\input texinfo @c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 3@c Copyright (C) 2001-2011 Free Software Foundation, Inc.
4@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@c 5@c
7@comment %**start of header 6@comment %**start of header
@@ -251,7 +250,3 @@
251 250
252@end titlepage 251@end titlepage
253@bye 252@bye
254
255@ignore
256 arch-tag: 02d65d63-3b64-49bc-a5c0-bfd5eabb6c98
257@end ignore
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 252c6afb1bd..1f4409738e2 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -44,8 +44,7 @@
44This is edition @value{VERSION} of the GNU Emacs Lisp Reference Manual,@* 44This is edition @value{VERSION} of the GNU Emacs Lisp Reference Manual,@*
45corresponding to Emacs version @value{EMACSVER}. 45corresponding to Emacs version @value{EMACSVER}.
46 46
47Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 47Copyright @copyright{} 1990-1996, 1998-2011 Free Software
481999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
49Foundation, Inc. 48Foundation, Inc.
50 49
51@quotation 50@quotation
diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi
index b1b1747d86c..2c7549d0443 100644
--- a/doc/lispref/errors.texi
+++ b/doc/lispref/errors.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2001, 2002, 2003, 2004, 3@c Copyright (C) 1990-1993, 1999, 2001-2011 Free Software Foundation, Inc.
4@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/errors 5@setfilename ../../info/errors
7@node Standard Errors, Standard Buffer-Local Variables, GNU Emacs Internals, Top 6@node Standard Errors, Standard Buffer-Local Variables, GNU Emacs Internals, Top
@@ -203,7 +202,3 @@ This is a subcategory of @code{domain-error}.@*
203This is a subcategory of @code{domain-error}.@* 202This is a subcategory of @code{domain-error}.@*
204@xref{Math Functions}. 203@xref{Math Functions}.
205@end table 204@end table
206
207@ignore
208 arch-tag: 717c6048-5d9d-4c7d-9a62-df57390b6f19
209@end ignore
diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi
index 6ed38f45dc8..d44fe5bb95b 100644
--- a/doc/lispref/eval.texi
+++ b/doc/lispref/eval.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 2001, 2002, 2003, 3@c Copyright (C) 1990-1994, 1998, 2001-2011 Free Software Foundation, Inc.
4@c 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/eval 5@setfilename ../../info/eval
7@node Evaluation, Control Structures, Symbols, Top 6@node Evaluation, Control Structures, Symbols, Top
@@ -748,7 +747,3 @@ particular elements, like this:
748@end group 747@end group
749@end example 748@end example
750@end defvar 749@end defvar
751
752@ignore
753 arch-tag: f723a4e0-31b3-453f-8afc-0bf8fd276d57
754@end ignore
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 2b539f00975..46ebced7a32 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/files 6@setfilename ../../info/files
@@ -1906,51 +1905,22 @@ Don't try concatenating a slash by hand, as in
1906because this is not portable. Always use 1905because this is not portable. Always use
1907@code{file-name-as-directory}. 1906@code{file-name-as-directory}.
1908 1907
1909@cindex directory name abbreviation
1910 Directory name abbreviations are useful for directories that are
1911normally accessed through symbolic links. Sometimes the users recognize
1912primarily the link's name as ``the name'' of the directory, and find it
1913annoying to see the directory's ``real'' name. If you define the link
1914name as an abbreviation for the ``real'' name, Emacs shows users the
1915abbreviation instead.
1916
1917@defopt directory-abbrev-alist
1918The variable @code{directory-abbrev-alist} contains an alist of
1919abbreviations to use for file directories. Each element has the form
1920@code{(@var{from} . @var{to})}, and says to replace @var{from} with
1921@var{to} when it appears in a directory name. The @var{from} string is
1922actually a regular expression; it should always start with @samp{\`}.
1923The @var{to} string should be an ordinary absolute directory name. Do
1924not use @samp{~} to stand for a home directory in that string. The
1925function @code{abbreviate-file-name} performs these substitutions.
1926
1927You can set this variable in @file{site-init.el} to describe the
1928abbreviations appropriate for your site.
1929
1930Here's an example, from a system on which file system @file{/home/fsf}
1931and so on are normally accessed through symbolic links named @file{/fsf}
1932and so on.
1933
1934@example
1935(("\\`/home/fsf" . "/fsf")
1936 ("\\`/home/gp" . "/gp")
1937 ("\\`/home/gd" . "/gd"))
1938@end example
1939@end defopt
1940
1941 To convert a directory name to its abbreviation, use this 1908 To convert a directory name to its abbreviation, use this
1942function: 1909function:
1943 1910
1944@defun abbreviate-file-name filename 1911@defun abbreviate-file-name filename
1945@anchor{Definition of abbreviate-file-name} 1912@anchor{Definition of abbreviate-file-name}
1946This function applies abbreviations from @code{directory-abbrev-alist} 1913This function returns an abbreviated form of @var{filename}. It
1947to its argument, and also substitutes @samp{~} for the user's home 1914applies the abbreviations specified in @code{directory-abbrev-alist}
1948directory if the argument names a file in the home directory or one of 1915(@pxref{File Aliases,,File Aliases, emacs, The GNU Emacs Manual}),
1949its subdirectories. (If the home directory is a root directory, it is 1916then substitutes @samp{~} for the user's home directory if the
1950not replaced with @samp{~}, because this does not make the result 1917argument names a file in the home directory or one of its
1951shorter on many systems.) You can use it for directory names and for 1918subdirectories. If the home directory is a root directory, it is not
1952file names, because it recognizes abbreviations even as part of the 1919replaced with @samp{~}, because this does not make the result shorter
1953name. 1920on many systems.
1921
1922You can use this function for directory names and for file names,
1923because it recognizes abbreviations even as part of the name.
1954@end defun 1924@end defun
1955 1925
1956@node File Name Expansion 1926@node File Name Expansion
@@ -3187,7 +3157,3 @@ will produce good, general extensions we can install in Emacs.
3187names or values---because a program that general is probably difficult 3157names or values---because a program that general is probably difficult
3188to write, and slow. Instead, choose a set of possible data types that 3158to write, and slow. Instead, choose a set of possible data types that
3189are reasonably flexible, and not too hard to encode. 3159are reasonably flexible, and not too hard to encode.
3190
3191@ignore
3192 arch-tag: 141f74ce-6ae3-40dc-a6c4-ef83fc4ec35c
3193@end ignore
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 4c44d0a6439..92969d8259c 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/frames 6@setfilename ../../info/frames
@@ -1791,9 +1790,13 @@ without actually displaying or popping up the menu.
1791The argument @var{menu} says what to display in the menu. It can be a 1790The argument @var{menu} says what to display in the menu. It can be a
1792keymap or a list of keymaps (@pxref{Menu Keymaps}). In this case, the 1791keymap or a list of keymaps (@pxref{Menu Keymaps}). In this case, the
1793return value is the list of events corresponding to the user's choice. 1792return value is the list of events corresponding to the user's choice.
1794(This list has more than one element if the choice occurred in a 1793This list has more than one element if the choice occurred in a
1795submenu.) Note that @code{x-popup-menu} does not actually execute the 1794submenu. (Note that @code{x-popup-menu} does not actually execute the
1796command bound to that sequence of events. 1795command bound to that sequence of events.) On toolkits that support
1796menu titles, the title is taken from the prompt string of @var{menu}
1797if @var{menu} is a keymap, or from the prompt string of the first
1798keymap in @var{menu} if it is a list of keymaps (@pxref{Defining
1799Menus}).
1797 1800
1798Alternatively, @var{menu} can have the following form: 1801Alternatively, @var{menu} can have the following form:
1799 1802
@@ -2477,7 +2480,3 @@ The functions @code{x-pixel-width} and @code{x-pixel-height} return the
2477width and height of an X Window frame, measured in pixels. 2480width and height of an X Window frame, measured in pixels.
2478@end ignore 2481@end ignore
2479 2482
2480
2481@ignore
2482 arch-tag: 94977df6-3dca-4730-b57b-c6329e9282ba
2483@end ignore
diff --git a/doc/lispref/front-cover-1.texi b/doc/lispref/front-cover-1.texi
index 5c9f4351f42..56d0f2b1c2d 100644
--- a/doc/lispref/front-cover-1.texi
+++ b/doc/lispref/front-cover-1.texi
@@ -50,7 +50,3 @@
50 50
51@end titlepage 51@end titlepage
52@bye 52@bye
53
54@ignore
55 arch-tag: 5182b306-c403-4e4f-ba24-e1911bc6da9d
56@end ignore
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index e9003601516..fc56e806cf7 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/functions 6@setfilename ../../info/functions
@@ -1578,7 +1577,3 @@ See @ref{Mapping Functions}.
1578@item undefined 1577@item undefined
1579See @ref{Functions for Key Lookup}. 1578See @ref{Functions for Key Lookup}.
1580@end table 1579@end table
1581
1582@ignore
1583 arch-tag: 39100cdf-8a55-4898-acba-595db619e8e2
1584@end ignore
diff --git a/doc/lispref/gpl.texi b/doc/lispref/gpl.texi
index 163af4627bb..244f3330d44 100644
--- a/doc/lispref/gpl.texi
+++ b/doc/lispref/gpl.texi
@@ -721,7 +721,3 @@ library, you may consider it more useful to permit linking proprietary
721applications with the library. If this is what you want to do, use 721applications with the library. If this is what you want to do, use
722the GNU Lesser General Public License instead of this License. But 722the GNU Lesser General Public License instead of this License. But
723first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}. 723first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}.
724
725@ignore
726 arch-tag: d00ac830-e120-41fb-bbc5-7ca3eeaa227f
727@end ignore
diff --git a/doc/lispref/hash.texi b/doc/lispref/hash.texi
index 14e9accff71..0d77cba6fa6 100644
--- a/doc/lispref/hash.texi
+++ b/doc/lispref/hash.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 3@c Copyright (C) 1999, 2001-2011 Free Software Foundation, Inc.
4@c 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/hash 5@setfilename ../../info/hash
7@node Hash Tables, Symbols, Sequences Arrays Vectors, Top 6@node Hash Tables, Symbols, Sequences Arrays Vectors, Top
@@ -355,7 +354,3 @@ This returns the rehash threshold of @var{table}.
355@defun hash-table-size table 354@defun hash-table-size table
356This returns the current nominal size of @var{table}. 355This returns the current nominal size of @var{table}.
357@end defun 356@end defun
358
359@ignore
360 arch-tag: 3b5107f9-d2f0-47d5-ad61-3498496bea0e
361@end ignore
diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi
index f21e16e104a..e287e6fbad4 100644
--- a/doc/lispref/help.texi
+++ b/doc/lispref/help.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/help 6@setfilename ../../info/help
diff --git a/doc/lispref/hooks.texi b/doc/lispref/hooks.texi
index 4ef3f933770..6e2cac9c065 100644
--- a/doc/lispref/hooks.texi
+++ b/doc/lispref/hooks.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 2001, 2002, 2003, 2004, 3@c Copyright (C) 1990-1993, 1998, 2001-2011 Free Software Foundation, Inc.
4@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/hooks 5@setfilename ../../info/hooks
7@node Standard Hooks, Index, Standard Keymaps, Top 6@node Standard Hooks, Index, Standard Keymaps, Top
@@ -343,7 +342,3 @@ Manual}.
343@item write-region-annotate-functions 342@item write-region-annotate-functions
344@xref{Format Conversion}. 343@xref{Format Conversion}.
345@end table 344@end table
346
347@ignore
348 arch-tag: 55fd0296-d906-4551-b300-979d3846aa88
349@end ignore
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi
index 2420e777fe8..5cdd983f40d 100644
--- a/doc/lispref/internals.texi
+++ b/doc/lispref/internals.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1998, 1999, 2001, 2002, 2003, 3@c Copyright (C) 1990-1993, 1998-1999, 2001-2011 Free Software Foundation, Inc.
4@c 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/internals 5@setfilename ../../info/internals
7@node GNU Emacs Internals, Standard Errors, Tips, Top 6@node GNU Emacs Internals, Standard Errors, Tips, Top
@@ -1400,7 +1399,3 @@ Symbol indicating the type of process: @code{real}, @code{network},
1400@code{serial} 1399@code{serial}
1401 1400
1402@end table 1401@end table
1403
1404@ignore
1405 arch-tag: 4b2c33bc-d7e4-43f5-bc20-27c0db52a53e
1406@end ignore
diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi
index a04dc93500f..baa184004e2 100644
--- a/doc/lispref/intro.texi
+++ b/doc/lispref/intro.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2001, 2002, 2003, 2004, 3@c Copyright (C) 1990-1994, 2001-2011 Free Software Foundation, Inc.
4@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/intro 5@setfilename ../../info/intro
7 6
@@ -546,7 +545,3 @@ Friedrich Pukelsheim, Arnold D. Robbins, Raul Rockwell, Jason Rumney,
546Per Starb@"ack, Shinichirou Sugou, Kimmo Suominen, Edward Tharp, Bill 545Per Starb@"ack, Shinichirou Sugou, Kimmo Suominen, Edward Tharp, Bill
547Trost, Rickard Westman, Jean White, Eduard Wiebe, Matthew Wilding, 546Trost, Rickard Westman, Jean White, Eduard Wiebe, Matthew Wilding,
548Carl Witty, Dale Worley, Rusty Wright, and David D. Zuhn. 547Carl Witty, Dale Worley, Rusty Wright, and David D. Zuhn.
549
550@ignore
551 arch-tag: d156593f-82f8-4708-a844-204e48f7f2aa
552@end ignore
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index e1052a9912e..a9a30abd1ed 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -1,8 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2001, 3@c Copyright (C) 1990-1994, 1998-2011 Free Software Foundation, Inc.
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/keymaps 5@setfilename ../../info/keymaps
8@node Keymaps, Modes, Command Loop, Top 6@node Keymaps, Modes, Command Loop, Top
@@ -2072,21 +2070,6 @@ look at a menu. This is because the X toolkit requires the whole tree
2072of menus in advance. To force recalculation of the menu bar, call 2070of menus in advance. To force recalculation of the menu bar, call
2073@code{force-mode-line-update} (@pxref{Mode Line Format}). 2071@code{force-mode-line-update} (@pxref{Mode Line Format}).
2074 2072
2075 You've probably noticed that menu items show the equivalent keyboard key
2076sequence (if any) to invoke the same command. To save time on
2077recalculation, menu display caches this information in a sublist in the
2078binding, like this:
2079
2080@c This line is not too long--rms.
2081@example
2082(@var{item-string} @r{[}@var{help}@r{]} (@var{key-binding-data}) . @var{real-binding})
2083@end example
2084
2085@noindent
2086Don't put these sublists in the menu item yourself; menu display
2087calculates them automatically. Don't mention keyboard equivalents in
2088the item strings themselves, since that is redundant.
2089
2090@node Extended Menu Items 2073@node Extended Menu Items
2091@subsubsection Extended Menu Items 2074@subsubsection Extended Menu Items
2092@kindex menu-item 2075@kindex menu-item
@@ -2119,14 +2102,6 @@ string. Thus, the string need not be a constant. The third element,
2119@var{item-property-list}, has the form of a property list which contains 2102@var{item-property-list}, has the form of a property list which contains
2120other information. 2103other information.
2121 2104
2122 When an equivalent keyboard key binding is cached, the extended menu
2123item binding looks like this:
2124
2125@example
2126(menu-item @var{item-name} @var{real-binding} (@var{key-binding-data})
2127 . @var{item-property-list})
2128@end example
2129
2130 Here is a table of the properties that are supported: 2105 Here is a table of the properties that are supported:
2131 2106
2132@table @code 2107@table @code
@@ -2819,7 +2794,3 @@ menu of Shell mode, after the item @code{break}:
2819 [work] '("Work" . work-command) 'break) 2794 [work] '("Work" . work-command) 'break)
2820@end example 2795@end example
2821@end defun 2796@end defun
2822
2823@ignore
2824 arch-tag: cfb87287-9364-4e46-9e93-6c2f7f6ae794
2825@end ignore
diff --git a/doc/lispref/lay-flat.texi b/doc/lispref/lay-flat.texi
index affb9b89dfe..55973adac59 100644
--- a/doc/lispref/lay-flat.texi
+++ b/doc/lispref/lay-flat.texi
@@ -1,7 +1,6 @@
1\input texinfo @c -*-texinfo-*- 1\input texinfo @c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 3@c Copyright (C) 2001-2011 Free Software Foundation, Inc.
4@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@c 5@c
7@comment %**start of header 6@comment %**start of header
@@ -42,7 +41,3 @@ pushed or held down.
42@end tex 41@end tex
43 42
44@bye 43@bye
45
46@ignore
47 arch-tag: 9e03a1c7-6f62-4346-85d9-ed5b79386e07
48@end ignore
diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi
index 4eef54ba855..fa3fac814c1 100644
--- a/doc/lispref/lists.texi
+++ b/doc/lispref/lists.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011 Free Software Foundation, Inc.
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/lists 5@setfilename ../../info/lists
7@node Lists, Sequences Arrays Vectors, Strings and Characters, Top 6@node Lists, Sequences Arrays Vectors, Strings and Characters, Top
@@ -1888,7 +1887,3 @@ use the ring as a first-in-first-out queue. For example:
1888 (ring-remove fifo))) 1887 (ring-remove fifo)))
1889 @result{} (0 t one t "two") 1888 @result{} (0 t one t "two")
1890@end lisp 1889@end lisp
1891
1892@ignore
1893 arch-tag: 31fb8a4e-4aa8-4a74-a206-aa00451394d4
1894@end ignore
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
index 05d836140c7..4e47647360f 100644
--- a/doc/lispref/loading.texi
+++ b/doc/lispref/loading.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/loading 6@setfilename ../../info/loading
@@ -363,6 +362,31 @@ interactively, the argument @var{interactive-call} is @code{t}, and this
363tells @code{locate-library} to display the file name in the echo area. 362tells @code{locate-library} to display the file name in the echo area.
364@end deffn 363@end deffn
365 364
365@cindex shadowed Lisp files
366@deffn Command list-load-path-shadows &optional stringp
367This command shows a list of @dfn{shadowed} Emacs Lisp files. A
368shadowed file is one that will not normally be loaded, despite being
369in a directory on @code{load-path}, due to the existence of another
370similarly-named file in a directory earlier on @code{load-path}.
371
372For instance, suppose @code{load-path} is set to
373
374@smallexample
375 ("/opt/emacs/site-lisp" "/usr/share/emacs/23.3/lisp")
376@end smallexample
377
378@noindent
379and that both these directories contain a file named @file{foo.el}.
380Then @code{(require 'foo)} never loads the file in the second
381directory. Such a situation might indicate a problem in the way Emacs
382was installed.
383
384When called from Lisp, this function prints a message listing the
385shadowed files, instead of displaying them in a buffer. If the
386optional argument @code{stringp} is non-@code{nil}, it instead returns
387the shadowed files as a string.
388@end deffn
389
366@node Loading Non-ASCII 390@node Loading Non-ASCII
367@section Loading Non-@acronym{ASCII} Characters 391@section Loading Non-@acronym{ASCII} Characters
368 392
@@ -962,7 +986,8 @@ example, @file{my_inst.elc} or @file{my_inst.elc.gz} in some directory
962@end example 986@end example
963 987
964@var{library} can also be a feature (i.e.@: a symbol), in which case 988@var{library} can also be a feature (i.e.@: a symbol), in which case
965@var{form} is evaluated when @code{(provide @var{library})} is called. 989@var{form} is evaluated at the end of any file where
990@code{(provide @var{library})} is called.
966 991
967An error in @var{form} does not undo the load, but does prevent 992An error in @var{form} does not undo the load, but does prevent
968execution of the rest of @var{form}. 993execution of the rest of @var{form}.
@@ -993,7 +1018,3 @@ symbol, and the value is a list of forms. The forms are evaluated
993when the key matches the absolute true name or feature name of the 1018when the key matches the absolute true name or feature name of the
994library being loaded. 1019library being loaded.
995@end defvar 1020@end defvar
996
997@ignore
998 arch-tag: df731f89-0900-4389-a436-9105241b6f7a
999@end ignore
diff --git a/doc/lispref/locals.texi b/doc/lispref/locals.texi
index 0bef9cb3554..a196efc9734 100644
--- a/doc/lispref/locals.texi
+++ b/doc/lispref/locals.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2001, 2002, 2003, 2004, 3@c Copyright (C) 1990-1993, 1999, 2001-2011 Free Software Foundation, Inc.
4@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/locals 5@setfilename ../../info/locals
7@node Standard Buffer-Local Variables, Standard Keymaps, Standard Errors, Top 6@node Standard Buffer-Local Variables, Standard Keymaps, Standard Errors, Top
@@ -216,8 +215,3 @@ Used for communication between mouse commands and scroll-bar commands.
216@item write-contents-functions 215@item write-contents-functions
217@xref{Saving Buffers}. 216@xref{Saving Buffers}.
218@end table 217@end table
219
220
221@ignore
222 arch-tag: 6baae835-b667-4447-91e2-9829ae1cf543
223@end ignore
diff --git a/doc/lispref/macros.texi b/doc/lispref/macros.texi
index c7672b93a74..c66feec08b7 100644
--- a/doc/lispref/macros.texi
+++ b/doc/lispref/macros.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 2001, 2002, 3@c Copyright (C) 1990-1995, 1998, 2001-2011 Free Software Foundation, Inc.
4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/macros 5@setfilename ../../info/macros
7@node Macros, Customization, Functions, Top 6@node Macros, Customization, Functions, Top
@@ -732,7 +731,3 @@ indentation is being computed by @kbd{C-M-q}; if the value is a
732number, @kbd{C-M-q} need not recalculate indentation for the following 731number, @kbd{C-M-q} need not recalculate indentation for the following
733lines until the end of the list. 732lines until the end of the list.
734@end table 733@end table
735
736@ignore
737 arch-tag: d4cce66d-1047-45c3-bfde-db6719d6e82b
738@end ignore
diff --git a/doc/lispref/makefile.w32-in b/doc/lispref/makefile.w32-in
index 86a0de33095..e0bcd21f2c0 100644
--- a/doc/lispref/makefile.w32-in
+++ b/doc/lispref/makefile.w32-in
@@ -1,7 +1,6 @@
1# -*- Makefile -*- for the GNU Emacs Lisp Reference Manual. 1# -*- Makefile -*- for the GNU Emacs Lisp Reference Manual.
2 2
3# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 3# Copyright (C) 2003-2011 Free Software Foundation, Inc.
4# Free Software Foundation, Inc.
5 4
6# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
7 6
@@ -23,20 +22,24 @@
23srcdir = . 22srcdir = .
24 23
25infodir = $(srcdir)/../../info 24infodir = $(srcdir)/../../info
26usermanualdir = $(srcdir)/../emacs
27 25
28# Directory with emacsver.texi. 26# Directory with emacsver.texi.
29emacsdir = $(srcdir)/../emacs 27emacsdir = $(srcdir)/../emacs
28# Directory with the (customized) texinfo.tex file.
29texinfodir = $(srcdir)/../misc
30 30
31# Redefine `TEX' if `tex' does not invoke plain TeX. For example: 31# Redefine `TEX' if `tex' does not invoke plain TeX. For example:
32# TEX=platex 32# TEX=platex
33TEX=tex 33TEX=tex
34INSTALL_INFO = install-info 34INSTALL_INFO = install-info
35MAKEINFO = makeinfo --force 35MAKEINFO = makeinfo
36MAKEINFO_OPTS = --force -I$(srcdir) -I$(emacsdir)
36 37
37# The environment variable and its value to add $(srcdir) to the path 38# The environment variable and its value to add $(srcdir) to the path
38# searched for TeX input files. 39# searched for TeX input files.
39texinputdir = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" /C 40texinputdir = $(srcdir)\..\..\nt\envadd.bat \
41 "TEXINPUTS=$(srcdir);$(texinputdir);$(TEXINPUTS)" \
42 "MAKEINFO=$(MAKEINFO) $(MAKEINFO_OPTS)" /C
40 43
41# The name of the manual: 44# The name of the manual:
42VERSION=2.9 45VERSION=2.9
@@ -111,12 +114,10 @@ $(infodir)/dir:
111 $(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/elisp 114 $(INSTALL_INFO) --info-dir=$(infodir) $(infodir)/elisp
112 115
113$(infodir)/elisp: $(srcs) 116$(infodir)/elisp: $(srcs)
114 $(MAKEINFO) -I. -I$(srcdir) -I$(emacsdir) \ 117 $(MAKEINFO) $(MAKEINFO_OPTS) -o $(infodir)/elisp $(srcdir)/elisp.texi
115 -o $(infodir)/elisp $(srcdir)/elisp.texi
116 118
117elisp.dvi: $(srcs) 119elisp.dvi: $(srcs)
118 $(texinputdir) $(TEX) -I $(usermanualdir) -I$(emacsdir) \ 120 $(texinputdir) $(TEX) $(srcdir)/elisp.texi
119 $(srcdir)/elisp.texi
120 121
121clean: 122clean:
122 - $(DEL) *.toc *.aux *.log *.cp *.cps *.fn *.fns *.tp *.tps \ 123 - $(DEL) *.toc *.aux *.log *.cp *.cps *.fn *.fns *.tp *.tps \
diff --git a/doc/lispref/maps.texi b/doc/lispref/maps.texi
index 4b416a82d64..d235fee90ee 100644
--- a/doc/lispref/maps.texi
+++ b/doc/lispref/maps.texi
@@ -1,8 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2001, 2002, 2003, 2004, 3@c Copyright (C) 1990-1993, 1999, 2001-2011 Free Software Foundation, Inc.
4@c 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/maps 5@setfilename ../../info/maps
8@node Standard Keymaps, Standard Hooks, Standard Buffer-Local Variables, Top 6@node Standard Keymaps, Standard Hooks, Standard Buffer-Local Variables, Top
@@ -239,4 +237,3 @@ The keymap defining the contents of the tool bar.
239@vindex view-mode-map 237@vindex view-mode-map
240A full keymap used by View mode. 238A full keymap used by View mode.
241@end table 239@end table
242
diff --git a/doc/lispref/markers.texi b/doc/lispref/markers.texi
index be546fc3d16..7b73c454c87 100644
--- a/doc/lispref/markers.texi
+++ b/doc/lispref/markers.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011 Free Software Foundation, Inc.
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/markers 5@setfilename ../../info/markers
7@node Markers, Text, Positions, Top 6@node Markers, Text, Positions, Top
@@ -674,7 +673,3 @@ mark is active, and there's a valid region in the buffer. Commands
674that operate on the region (instead of on text near point) when 673that operate on the region (instead of on text near point) when
675there's an active mark should use this to test whether to do that. 674there's an active mark should use this to test whether to do that.
676@end defun 675@end defun
677
678@ignore
679 arch-tag: b1ba2e7a-a0f3-4c5e-875c-7d8e22d73299
680@end ignore
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index 9bc6be432ae..50324a91f5f 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/minibuf 6@setfilename ../../info/minibuf
@@ -2202,7 +2201,3 @@ arrives, whichever comes first. If @var{args} is non-@code{nil}, the
2202actual message is obtained by passing @var{string} and @var{args} 2201actual message is obtained by passing @var{string} and @var{args}
2203through @code{format}. @xref{Formatting Strings}. 2202through @code{format}. @xref{Formatting Strings}.
2204@end defun 2203@end defun
2205
2206@ignore
2207 arch-tag: bba7f945-9078-477f-a2ce-18818a6e1218
2208@end ignore
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 12f16b67663..7cf319bc6c9 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011 Free Software Foundation, Inc.
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/modes 5@setfilename ../../info/modes
7@node Modes, Documentation, Keymaps, Top 6@node Modes, Documentation, Keymaps, Top
@@ -20,14 +19,15 @@ user. For related topics such as keymaps and syntax tables, see
20@ref{Keymaps}, and @ref{Syntax Tables}. 19@ref{Keymaps}, and @ref{Syntax Tables}.
21 20
22@menu 21@menu
23* Hooks:: How to use hooks; how to write code that provides hooks. 22* Hooks:: How to use hooks; how to write code that provides hooks.
24* Major Modes:: Defining major modes. 23* Major Modes:: Defining major modes.
25* Minor Modes:: Defining minor modes. 24* Minor Modes:: Defining minor modes.
26* Mode Line Format:: Customizing the text that appears in the mode line. 25* Mode Line Format:: Customizing the text that appears in the mode line.
27* Imenu:: How a mode can provide a menu 26* Imenu:: How a mode can provide a menu
28 of definitions in the buffer. 27 of definitions in the buffer.
29* Font Lock Mode:: How modes can highlight text according to syntax. 28* Font Lock Mode:: How modes can highlight text according to syntax.
30* Desktop Save Mode:: How modes can have buffer state saved between 29* Auto-Indentation:: How to teach Emacs to indent for a major mode.
30* Desktop Save Mode:: How modes can have buffer state saved between
31 Emacs sessions. 31 Emacs sessions.
32@end menu 32@end menu
33 33
@@ -78,8 +78,8 @@ convention.
78its value is just a single function, not a list of functions. 78its value is just a single function, not a list of functions.
79 79
80@menu 80@menu
81* Running Hooks:: How to run a hook. 81* Running Hooks:: How to run a hook.
82* Setting Hooks:: How to put functions on a hook, or remove them. 82* Setting Hooks:: How to put functions on a hook, or remove them.
83@end menu 83@end menu
84 84
85@node Running Hooks 85@node Running Hooks
@@ -199,16 +199,16 @@ buffer, such as a local keymap. The effect lasts until you switch
199to another major mode in the same buffer. 199to another major mode in the same buffer.
200 200
201@menu 201@menu
202* Major Mode Basics:: 202* Major Mode Basics::
203* Major Mode Conventions:: Coding conventions for keymaps, etc. 203* Major Mode Conventions:: Coding conventions for keymaps, etc.
204* Auto Major Mode:: How Emacs chooses the major mode automatically. 204* Auto Major Mode:: How Emacs chooses the major mode automatically.
205* Mode Help:: Finding out how to use a mode. 205* Mode Help:: Finding out how to use a mode.
206* Derived Modes:: Defining a new major mode based on another major 206* Derived Modes:: Defining a new major mode based on another major
207 mode. 207 mode.
208* Generic Modes:: Defining a simple major mode that supports 208* Generic Modes:: Defining a simple major mode that supports
209 comment syntax and Font Lock mode. 209 comment syntax and Font Lock mode.
210* Mode Hooks:: Hooks run at the end of major mode functions. 210* Mode Hooks:: Hooks run at the end of major mode functions.
211* Example Major Modes:: Text mode and Lisp modes. 211* Example Major Modes:: Text mode and Lisp modes.
212@end menu 212@end menu
213 213
214@node Major Mode Basics 214@node Major Mode Basics
@@ -238,9 +238,8 @@ mode except that it provides two additional commands. Its definition
238is distinct from that of Text mode, but uses that of Text mode. 238is distinct from that of Text mode, but uses that of Text mode.
239 239
240 Even if the new mode is not an obvious derivative of any other mode, 240 Even if the new mode is not an obvious derivative of any other mode,
241it is convenient to use @code{define-derived-mode} with a @code{nil} 241we recommend to use @code{define-derived-mode}, since it automatically
242parent argument, since it automatically enforces the most important 242enforces the most important coding conventions for you.
243coding conventions for you.
244 243
245 For a very simple programming language major mode that handles 244 For a very simple programming language major mode that handles
246comments and fontification, you can use @code{define-generic-mode}. 245comments and fontification, you can use @code{define-generic-mode}.
@@ -333,7 +332,7 @@ In a major mode for editing some kind of structured text, such as a
333programming language, indentation of text according to structure is 332programming language, indentation of text according to structure is
334probably useful. So the mode should set @code{indent-line-function} 333probably useful. So the mode should set @code{indent-line-function}
335to a suitable function, and probably customize other variables 334to a suitable function, and probably customize other variables
336for indentation. 335for indentation. @xref{Auto-Indentation}.
337 336
338@item 337@item
339@cindex keymaps in modes 338@cindex keymaps in modes
@@ -429,6 +428,10 @@ The mode can specify a local value for
429this mode. 428this mode.
430 429
431@item 430@item
431The mode can specify how to complete various keywords by adding
432to the special hook @code{completion-at-point-functions}.
433
434@item
432Use @code{defvar} or @code{defcustom} to set mode-related variables, so 435Use @code{defvar} or @code{defcustom} to set mode-related variables, so
433that they are not reinitialized if they already have a value. (Such 436that they are not reinitialized if they already have a value. (Such
434reinitialization could discard customizations made by the user.) 437reinitialization could discard customizations made by the user.)
@@ -492,7 +495,7 @@ The @code{define-derived-mode} macro automatically marks the derived
492mode as special if the parent mode is special. The special mode 495mode as special if the parent mode is special. The special mode
493@code{special-mode} provides a convenient parent for other special 496@code{special-mode} provides a convenient parent for other special
494modes to inherit from; it sets @code{buffer-read-only} to @code{t}, 497modes to inherit from; it sets @code{buffer-read-only} to @code{t},
495and does nothing else. 498and does little else.
496 499
497@item 500@item
498If you want to make the new mode the default for files with certain 501If you want to make the new mode the default for files with certain
@@ -737,8 +740,11 @@ documentation of the major mode.
737@subsection Defining Derived Modes 740@subsection Defining Derived Modes
738@cindex derived mode 741@cindex derived mode
739 742
740 It's often useful to define a new major mode in terms of an existing 743 The recommended way to define a new major mode is to derive it
741one. An easy way to do this is to use @code{define-derived-mode}. 744from an existing one using @code{define-derived-mode}. If there is no
745closely related mode, you can inherit from @code{text-mode},
746@code{special-mode}, @code{prog-mode}, or in the worst case
747@code{fundamental-mode}.
742 748
743@defmac define-derived-mode variant parent name docstring keyword-args@dots{} body@dots{} 749@defmac define-derived-mode variant parent name docstring keyword-args@dots{} body@dots{}
744This macro defines @var{variant} as a major mode command, using 750This macro defines @var{variant} as a major mode command, using
@@ -979,8 +985,7 @@ You can thus get the full benefit of adaptive filling
979Turning on Text mode runs the normal hook `text-mode-hook'." 985Turning on Text mode runs the normal hook `text-mode-hook'."
980@end group 986@end group
981@group 987@group
982 (make-local-variable 'text-mode-variant) 988 (set (make-local-variable 'text-mode-variant) t)
983 (setq text-mode-variant t)
984 ;; @r{These two lines are a feature added recently.} 989 ;; @r{These two lines are a feature added recently.}
985 (set (make-local-variable 'require-final-newline) 990 (set (make-local-variable 'require-final-newline)
986 mode-require-final-newline) 991 mode-require-final-newline)
@@ -998,9 +1003,8 @@ the default value, and we'll delete it in a future version.)
998@smallexample 1003@smallexample
999@group 1004@group
1000;; @r{This isn't needed nowadays, since @code{define-derived-mode} does it.} 1005;; @r{This isn't needed nowadays, since @code{define-derived-mode} does it.}
1001(defvar text-mode-abbrev-table nil 1006(define-abbrev-table 'text-mode-abbrev-table ()
1002 "Abbrev table used while in text mode.") 1007 "Abbrev table used while in text mode.")
1003(define-abbrev-table 'text-mode-abbrev-table ())
1004@end group 1008@end group
1005 1009
1006@group 1010@group
@@ -1022,12 +1026,10 @@ Turning on text-mode runs the hook `text-mode-hook'."
1022 ;; @r{These four lines are absent from the current version} 1026 ;; @r{These four lines are absent from the current version}
1023 ;; @r{not because this is done some other way, but rather} 1027 ;; @r{not because this is done some other way, but rather}
1024 ;; @r{because nowadays Text mode uses the normal definition of paragraphs.} 1028 ;; @r{because nowadays Text mode uses the normal definition of paragraphs.}
1025 (make-local-variable 'paragraph-start) 1029 (set (make-local-variable 'paragraph-start)
1026 (setq paragraph-start (concat "[ \t]*$\\|" page-delimiter)) 1030 (concat "[ \t]*$\\|" page-delimiter))
1027 (make-local-variable 'paragraph-separate) 1031 (set (make-local-variable 'paragraph-separate) paragraph-start)
1028 (setq paragraph-separate paragraph-start) 1032 (set (make-local-variable 'indent-line-function) 'indent-relative-maybe)
1029 (make-local-variable 'indent-line-function)
1030 (setq indent-line-function 'indent-relative-maybe)
1031@end group 1033@end group
1032@group 1034@group
1033 (setq mode-name "Text") 1035 (setq mode-name "Text")
@@ -1115,15 +1117,12 @@ modes should understand the Lisp conventions for comments. The rest of
1115 1117
1116@smallexample 1118@smallexample
1117@group 1119@group
1118 (make-local-variable 'paragraph-start) 1120 (set (make-local-variable 'paragraph-start) (concat page-delimiter "\\|$" ))
1119 (setq paragraph-start (concat page-delimiter "\\|$" )) 1121 (set (make-local-variable 'paragraph-separate) paragraph-start)
1120 (make-local-variable 'paragraph-separate)
1121 (setq paragraph-separate paragraph-start)
1122 @dots{} 1122 @dots{}
1123@end group 1123@end group
1124@group 1124@group
1125 (make-local-variable 'comment-indent-function) 1125 (set (make-local-variable 'comment-indent-function) 'lisp-comment-indent))
1126 (setq comment-indent-function 'lisp-comment-indent))
1127 @dots{} 1126 @dots{}
1128@end group 1127@end group
1129@end smallexample 1128@end smallexample
@@ -1135,16 +1134,13 @@ common. The following code sets up the common commands:
1135 1134
1136@smallexample 1135@smallexample
1137@group 1136@group
1138(defvar shared-lisp-mode-map () 1137(defvar shared-lisp-mode-map
1138 (let ((map (make-sparse-keymap)))
1139 (define-key shared-lisp-mode-map "\e\C-q" 'indent-sexp)
1140 (define-key shared-lisp-mode-map "\177"
1141 'backward-delete-char-untabify)
1142 map)
1139 "Keymap for commands shared by all sorts of Lisp modes.") 1143 "Keymap for commands shared by all sorts of Lisp modes.")
1140
1141;; @r{Putting this @code{if} after the @code{defvar} is an older style.}
1142(if shared-lisp-mode-map
1143 ()
1144 (setq shared-lisp-mode-map (make-sparse-keymap))
1145 (define-key shared-lisp-mode-map "\e\C-q" 'indent-sexp)
1146 (define-key shared-lisp-mode-map "\177"
1147 'backward-delete-char-untabify))
1148@end group 1144@end group
1149@end smallexample 1145@end smallexample
1150 1146
@@ -1153,15 +1149,13 @@ And here is the code to set up the keymap for Lisp mode:
1153 1149
1154@smallexample 1150@smallexample
1155@group 1151@group
1156(defvar lisp-mode-map () 1152(defvar lisp-mode-map
1153 (let ((map (make-sparse-keymap)))
1154 (set-keymap-parent map shared-lisp-mode-map)
1155 (define-key map "\e\C-x" 'lisp-eval-defun)
1156 (define-key map "\C-c\C-z" 'run-lisp)
1157 map)
1157 "Keymap for ordinary Lisp mode...") 1158 "Keymap for ordinary Lisp mode...")
1158
1159(if lisp-mode-map
1160 ()
1161 (setq lisp-mode-map (make-sparse-keymap))
1162 (set-keymap-parent lisp-mode-map shared-lisp-mode-map)
1163 (define-key lisp-mode-map "\e\C-x" 'lisp-eval-defun)
1164 (define-key lisp-mode-map "\C-c\C-z" 'run-lisp))
1165@end group 1159@end group
1166@end smallexample 1160@end smallexample
1167 1161
@@ -1192,11 +1186,9 @@ if that value is non-nil."
1192 ; @r{finds out what to describe.} 1186 ; @r{finds out what to describe.}
1193 (setq mode-name "Lisp") ; @r{This goes into the mode line.} 1187 (setq mode-name "Lisp") ; @r{This goes into the mode line.}
1194 (lisp-mode-variables t) ; @r{This defines various variables.} 1188 (lisp-mode-variables t) ; @r{This defines various variables.}
1195 (make-local-variable 'comment-start-skip) 1189 (set (make-local-variable 'comment-start-skip)
1196 (setq comment-start-skip 1190 "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
1197 "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *") 1191 (set (make-local-variable 'font-lock-keywords-case-fold-search) t)
1198 (make-local-variable 'font-lock-keywords-case-fold-search)
1199 (setq font-lock-keywords-case-fold-search t)
1200@end group 1192@end group
1201@group 1193@group
1202 (setq imenu-case-fold-search t) 1194 (setq imenu-case-fold-search t)
@@ -1580,14 +1572,14 @@ information displayed in the mode line relates to the enabled major and
1580minor modes. 1572minor modes.
1581 1573
1582@menu 1574@menu
1583* Base: Mode Line Basics. Basic ideas of mode line control. 1575* Base: Mode Line Basics. Basic ideas of mode line control.
1584* Data: Mode Line Data. The data structure that controls the mode line. 1576* Data: Mode Line Data. The data structure that controls the mode line.
1585* Top: Mode Line Top. The top level variable, mode-line-format. 1577* Top: Mode Line Top. The top level variable, mode-line-format.
1586* Mode Line Variables:: Variables used in that data structure. 1578* Mode Line Variables:: Variables used in that data structure.
1587* %-Constructs:: Putting information into a mode line. 1579* %-Constructs:: Putting information into a mode line.
1588* Properties in Mode:: Using text properties in the mode line. 1580* Properties in Mode:: Using text properties in the mode line.
1589* Header Lines:: Like a mode line, but at the top. 1581* Header Lines:: Like a mode line, but at the top.
1590* Emulating Mode Line:: Formatting text as the mode line would. 1582* Emulating Mode Line:: Formatting text as the mode line would.
1591@end menu 1583@end menu
1592 1584
1593@node Mode Line Basics 1585@node Mode Line Basics
@@ -2119,29 +2111,38 @@ the text that would appear in a mode line or header line
2119based on a certain mode-line specification. 2111based on a certain mode-line specification.
2120 2112
2121@defun format-mode-line format &optional face window buffer 2113@defun format-mode-line format &optional face window buffer
2122This function formats a line of text according to @var{format} as if 2114This function formats a line of text according to @var{format} as if it
2123it were generating the mode line for @var{window}, but instead of 2115were generating the mode line for @var{window}, but it also returns the
2124displaying the text in the mode line or the header line, it returns 2116text as a string. The argument @var{window} defaults to the selected
2125the text as a string. The argument @var{window} defaults to the 2117window. If @var{buffer} is non-@code{nil}, all the information used is
2126selected window. If @var{buffer} is non-@code{nil}, all the 2118taken from @var{buffer}; by default, it comes from @var{window}'s
2127information used is taken from @var{buffer}; by default, it comes from 2119buffer.
2128@var{window}'s buffer.
2129 2120
2130The value string normally has text properties that correspond to the 2121The value string normally has text properties that correspond to the
2131faces, keymaps, etc., that the mode line would have. And any character 2122faces, keymaps, etc., that the mode line would have. Any character for
2132for which no @code{face} property is specified gets a default 2123which no @code{face} property is specified by @var{format} gets a
2133value which is usually @var{face}. (If @var{face} is @code{t}, 2124default value determined by @var{face}. If @var{face} is @code{t}, that
2134that stands for either @code{mode-line} if @var{window} is selected, 2125stands for either @code{mode-line} if @var{window} is selected,
2135otherwise @code{mode-line-inactive}. If @var{face} is @code{nil} or 2126otherwise @code{mode-line-inactive}. If @var{face} is @code{nil} or
2136omitted, that stands for no face property.) 2127omitted, that stands for the default face. If @var{face} is an integer,
2128the value returned by this function will have no text properties.
2129
2130You can also specify other valid faces as the value of @var{face}.
2131If specified, that face provides the @code{face} property for characters
2132whose face is not specified by @var{format}.
2137 2133
2138However, if @var{face} is an integer, the value has no text properties. 2134Note that using @code{mode-line}, @code{mode-line-inactive}, or
2135@code{header-line} as @var{face} will actually redisplay the mode line
2136or the header line, respectively, using the current definitions of the
2137corresponding face, in addition to returning the formatted string.
2138(Other faces do not cause redisplay.)
2139 2139
2140For example, @code{(format-mode-line header-line-format)} returns the 2140For example, @code{(format-mode-line header-line-format)} returns the
2141text that would appear in the selected window's header line (@code{""} 2141text that would appear in the selected window's header line (@code{""}
2142if it has no header line). @code{(format-mode-line header-line-format 2142if it has no header line). @code{(format-mode-line header-line-format
2143'header-line)} returns the same text, with each character 2143'header-line)} returns the same text, with each character
2144carrying the face that it will have in the header line itself. 2144carrying the face that it will have in the header line itself, and also
2145redraws the header line.
2145@end defun 2146@end defun
2146 2147
2147@node Imenu 2148@node Imenu
@@ -2361,7 +2362,7 @@ Search-based fontification happens second.
2361* Other Font Lock Variables:: Additional customization facilities. 2362* Other Font Lock Variables:: Additional customization facilities.
2362* Levels of Font Lock:: Each mode can define alternative levels 2363* Levels of Font Lock:: Each mode can define alternative levels
2363 so that the user can select more or less. 2364 so that the user can select more or less.
2364* Precalculated Fontification:: How Lisp programs that produce the buffer 2365* Precalculated Fontification:: How Lisp programs that produce the buffer
2365 contents can also specify how to fontify it. 2366 contents can also specify how to fontify it.
2366* Faces for Font Lock:: Special faces specifically for Font Lock. 2367* Faces for Font Lock:: Special faces specifically for Font Lock.
2367* Syntactic Font Lock:: Fontification based on syntax tables. 2368* Syntactic Font Lock:: Fontification based on syntax tables.
@@ -3223,6 +3224,659 @@ Since this function is called after every buffer change, it should be
3223reasonably fast. 3224reasonably fast.
3224@end defvar 3225@end defvar
3225 3226
3227@node Auto-Indentation
3228@section Auto-indention of code
3229
3230For programming languages, an important feature of a major mode is to
3231provide automatic indentation. This is controlled in Emacs by
3232@code{indent-line-function} (@pxref{Mode-Specific Indent}).
3233Writing a good indentation function can be difficult and to a large
3234extent it is still a black art.
3235
3236Many major mode authors will start by writing a simple indentation
3237function that works for simple cases, for example by comparing with the
3238indentation of the previous text line. For most programming languages
3239that are not really line-based, this tends to scale very poorly:
3240improving such a function to let it handle more diverse situations tends
3241to become more and more difficult, resulting in the end with a large,
3242complex, unmaintainable indentation function which nobody dares to touch.
3243
3244A good indentation function will usually need to actually parse the
3245text, according to the syntax of the language. Luckily, it is not
3246necessary to parse the text in as much detail as would be needed
3247for a compiler, but on the other hand, the parser embedded in the
3248indentation code will want to be somewhat friendly to syntactically
3249incorrect code.
3250
3251Good maintainable indentation functions usually fall into 2 categories:
3252either parsing forward from some ``safe'' starting point until the
3253position of interest, or parsing backward from the position of interest.
3254Neither of the two is a clearly better choice than the other: parsing
3255backward is often more difficult than parsing forward because
3256programming languages are designed to be parsed forward, but for the
3257purpose of indentation it has the advantage of not needing to
3258guess a ``safe'' starting point, and it generally enjoys the property
3259that only a minimum of text will be analyzed to decide the indentation
3260of a line, so indentation will tend to be unaffected by syntax errors in
3261some earlier unrelated piece of code. Parsing forward on the other hand
3262is usually easier and has the advantage of making it possible to
3263reindent efficiently a whole region at a time, with a single parse.
3264
3265Rather than write your own indentation function from scratch, it is
3266often preferable to try and reuse some existing ones or to rely
3267on a generic indentation engine. There are sadly few such
3268engines. The CC-mode indentation code (used with C, C++, Java, Awk
3269and a few other such modes) has been made more generic over the years,
3270so if your language seems somewhat similar to one of those languages,
3271you might try to use that engine. @c FIXME: documentation?
3272Another one is SMIE which takes an approach in the spirit
3273of Lisp sexps and adapts it to non-Lisp languages.
3274
3275@menu
3276* SMIE:: A simple minded indentation engine
3277@end menu
3278
3279@node SMIE
3280@subsection Simple Minded Indentation Engine
3281
3282SMIE is a package that provides a generic navigation and indentation
3283engine. Based on a very simple parser using an ``operator precedence
3284grammar'', it lets major modes extend the sexp-based navigation of Lisp
3285to non-Lisp languages as well as provide a simple to use but reliable
3286auto-indentation.
3287
3288Operator precedence grammar is a very primitive technology for parsing
3289compared to some of the more common techniques used in compilers.
3290It has the following characteristics: its parsing power is very limited,
3291and it is largely unable to detect syntax errors, but it has the
3292advantage of being algorithmically efficient and able to parse forward
3293just as well as backward. In practice that means that SMIE can use it
3294for indentation based on backward parsing, that it can provide both
3295@code{forward-sexp} and @code{backward-sexp} functionality, and that it
3296will naturally work on syntactically incorrect code without any extra
3297effort. The downside is that it also means that most programming
3298languages cannot be parsed correctly using SMIE, at least not without
3299resorting to some special tricks (@pxref{SMIE Tricks}).
3300
3301@menu
3302* SMIE setup:: SMIE setup and features
3303* Operator Precedence Grammars:: A very simple parsing technique
3304* SMIE Grammar:: Defining the grammar of a language
3305* SMIE Lexer:: Defining tokens
3306* SMIE Tricks:: Working around the parser's limitations
3307* SMIE Indentation:: Specifying indentation rules
3308* SMIE Indentation Helpers:: Helper functions for indentation rules
3309* SMIE Indentation Example:: Sample indentation rules
3310@end menu
3311
3312@node SMIE setup
3313@subsubsection SMIE Setup and Features
3314
3315SMIE is meant to be a one-stop shop for structural navigation and
3316various other features which rely on the syntactic structure of code, in
3317particular automatic indentation. The main entry point is
3318@code{smie-setup} which is a function typically called while setting
3319up a major mode.
3320
3321@defun smie-setup grammar rules-function &rest keywords
3322Setup SMIE navigation and indentation.
3323@var{grammar} is a grammar table generated by @code{smie-prec2->grammar}.
3324@var{rules-function} is a set of indentation rules for use on
3325@code{smie-rules-function}.
3326@var{keywords} are additional arguments, which can include the following
3327keywords:
3328@itemize
3329@item
3330@code{:forward-token} @var{fun}: Specify the forward lexer to use.
3331@item
3332@code{:backward-token} @var{fun}: Specify the backward lexer to use.
3333@end itemize
3334@end defun
3335
3336Calling this function is sufficient to make commands such as
3337@code{forward-sexp}, @code{backward-sexp}, and @code{transpose-sexps} be
3338able to properly handle structural elements other than just the paired
3339parentheses already handled by syntax tables. For example, if the
3340provided grammar is precise enough, @code{transpose-sexps} can correctly
3341transpose the two arguments of a @code{+} operator, taking into account
3342the precedence rules of the language.
3343
3344Calling `smie-setup' is also sufficient to make TAB indentation work in
3345the expected way, extends @code{blink-matching-paren} to apply to
3346elements like @code{begin...end}, and provides some commands that you
3347can bind in the major mode keymap.
3348
3349@deffn Command smie-close-block
3350This command closes the most recently opened (and not yet closed) block.
3351@end deffn
3352
3353@deffn Command smie-down-list &optional arg
3354This command is like @code{down-list} but it also pays attention to
3355nesting of tokens other than parentheses, such as @code{begin...end}.
3356@end deffn
3357
3358@node Operator Precedence Grammars
3359@subsubsection Operator Precedence Grammars
3360
3361SMIE's precedence grammars simply give to each token a pair of
3362precedences: the left-precedence and the right-precedence. We say
3363@code{T1 < T2} if the right-precedence of token @code{T1} is less than
3364the left-precedence of token @code{T2}. A good way to read this
3365@code{<} is as a kind of parenthesis: if we find @code{... T1 something
3366T2 ...} then that should be parsed as @code{... T1 (something T2 ...}
3367rather than as @code{... T1 something) T2 ...}. The latter
3368interpretation would be the case if we had @code{T1 > T2}. If we have
3369@code{T1 = T2}, it means that token T2 follows token T1 in the same
3370syntactic construction, so typically we have @code{"begin" = "end"}.
3371Such pairs of precedences are sufficient to express left-associativity
3372or right-associativity of infix operators, nesting of tokens like
3373parentheses and many other cases.
3374
3375@c ¡Let's leave this undocumented to leave it more open for change!
3376@c @defvar smie-grammar
3377@c The value of this variable is an alist specifying the left and right
3378@c precedence of each token. It is meant to be initialized by using one of
3379@c the functions below.
3380@c @end defvar
3381
3382@defun smie-prec2->grammar table
3383This function takes a @emph{prec2} grammar @var{table} and returns an
3384alist suitable for use in @code{smie-setup}. The @emph{prec2}
3385@var{table} is itself meant to be built by one of the functions below.
3386@end defun
3387
3388@defun smie-merge-prec2s &rest tables
3389This function takes several @emph{prec2} @var{tables} and merges them
3390into a new @emph{prec2} table.
3391@end defun
3392
3393@defun smie-precs->prec2 precs
3394This function builds a @emph{prec2} table from a table of precedences
3395@var{precs}. @var{precs} should be a list, sorted by precedence (for
3396example @code{"+"} will come before @code{"*"}), of elements of the form
3397@code{(@var{assoc} @var{op} ...)}, where each @var{op} is a token that
3398acts as an operator; @var{assoc} is their associativity, which can be
3399either @code{left}, @code{right}, @code{assoc}, or @code{nonassoc}.
3400All operators in a given element share the same precedence level
3401and associativity.
3402@end defun
3403
3404@defun smie-bnf->prec2 bnf &rest resolvers
3405This function lets you specify the grammar using a BNF notation.
3406It accepts a @var{bnf} description of the grammar along with a set of
3407conflict resolution rules @var{resolvers}, and
3408returns a @emph{prec2} table.
3409
3410@var{bnf} is a list of nonterminal definitions of the form
3411@code{(@var{nonterm} @var{rhs1} @var{rhs2} ...)} where each @var{rhs}
3412is a (non-empty) list of terminals (aka tokens) or non-terminals.
3413
3414Not all grammars are accepted:
3415@itemize
3416@item
3417An @var{rhs} cannot be an empty list (an empty list is never needed,
3418since SMIE allows all non-terminals to match the empty string anyway).
3419@item
3420An @var{rhs} cannot have 2 consecutive non-terminals: each pair of
3421non-terminals needs to be separated by a terminal (aka token).
3422This is a fundamental limitation of operator precedence grammars.
3423@end itemize
3424
3425Additionally, conflicts can occur:
3426@itemize
3427@item
3428The returned @emph{prec2} table holds constraints between pairs of tokens, and
3429for any given pair only one constraint can be present: T1 < T2,
3430T1 = T2, or T1 > T2.
3431@item
3432A token can be an @code{opener} (something similar to an open-paren),
3433a @code{closer} (like a close-paren), or @code{neither} of the two
3434(e.g. an infix operator, or an inner token like @code{"else"}).
3435@end itemize
3436
3437Precedence conflicts can be resolved via @var{resolvers}, which
3438is a list of @emph{precs} tables (see @code{smie-precs->prec2}): for
3439each precedence conflict, if those @code{precs} tables
3440specify a particular constraint, then the conflict is resolved by using
3441this constraint instead, else a conflict is reported and one of the
3442conflicting constraints is picked arbitrarily and the others are
3443simply ignored.
3444@end defun
3445
3446@node SMIE Grammar
3447@subsubsection Defining the Grammar of a Language
3448
3449The usual way to define the SMIE grammar of a language is by
3450defining a new global variable that holds the precedence table by
3451giving a set of BNF rules.
3452For example, the grammar definition for a small Pascal-like language
3453could look like:
3454@example
3455@group
3456(require 'smie)
3457(defvar sample-smie-grammar
3458 (smie-prec2->grammar
3459 (smie-bnf->prec2
3460@end group
3461@group
3462 '((id)
3463 (inst ("begin" insts "end")
3464 ("if" exp "then" inst "else" inst)
3465 (id ":=" exp)
3466 (exp))
3467 (insts (insts ";" insts) (inst))
3468 (exp (exp "+" exp)
3469 (exp "*" exp)
3470 ("(" exps ")"))
3471 (exps (exps "," exps) (exp)))
3472@end group
3473@group
3474 '((assoc ";"))
3475 '((assoc ","))
3476 '((assoc "+") (assoc "*")))))
3477@end group
3478@end example
3479
3480@noindent
3481A few things to note:
3482
3483@itemize
3484@item
3485The above grammar does not explicitly mention the syntax of function
3486calls: SMIE will automatically allow any sequence of sexps, such as
3487identifiers, balanced parentheses, or @code{begin ... end} blocks
3488to appear anywhere anyway.
3489@item
3490The grammar category @code{id} has no right hand side: this does not
3491mean that it can match only the empty string, since as mentioned any
3492sequence of sexps can appear anywhere anyway.
3493@item
3494Because non terminals cannot appear consecutively in the BNF grammar, it
3495is difficult to correctly handle tokens that act as terminators, so the
3496above grammar treats @code{";"} as a statement @emph{separator} instead,
3497which SMIE can handle very well.
3498@item
3499Separators used in sequences (such as @code{","} and @code{";"} above)
3500are best defined with BNF rules such as @code{(foo (foo "separator" foo) ...)}
3501which generate precedence conflicts which are then resolved by giving
3502them an explicit @code{(assoc "separator")}.
3503@item
3504The @code{("(" exps ")")} rule was not needed to pair up parens, since
3505SMIE will pair up any characters that are marked as having paren syntax
3506in the syntax table. What this rule does instead (together with the
3507definition of @code{exps}) is to make it clear that @code{","} should
3508not appear outside of parentheses.
3509@item
3510Rather than have a single @emph{precs} table to resolve conflicts, it is
3511preferable to have several tables, so as to let the BNF part of the
3512grammar specify relative precedences where possible.
3513@item
3514Unless there is a very good reason to prefer @code{left} or
3515@code{right}, it is usually preferable to mark operators as associative,
3516using @code{assoc}. For that reason @code{"+"} and @code{"*"} are
3517defined above as @code{assoc}, although the language defines them
3518formally as left associative.
3519@end itemize
3520
3521@node SMIE Lexer
3522@subsubsection Defining Tokens
3523
3524SMIE comes with a predefined lexical analyzer which uses syntax tables
3525in the following way: any sequence of characters that have word or
3526symbol syntax is considered a token, and so is any sequence of
3527characters that have punctuation syntax. This default lexer is
3528often a good starting point but is rarely actually correct for any given
3529language. For example, it will consider @code{"2,+3"} to be composed
3530of 3 tokens: @code{"2"}, @code{",+"}, and @code{"3"}.
3531
3532To describe the lexing rules of your language to SMIE, you need
35332 functions, one to fetch the next token, and another to fetch the
3534previous token. Those functions will usually first skip whitespace and
3535comments and then look at the next chunk of text to see if it
3536is a special token. If so it should skip the token and
3537return a description of this token. Usually this is simply the string
3538extracted from the buffer, but it can be anything you want.
3539For example:
3540@example
3541@group
3542(defvar sample-keywords-regexp
3543 (regexp-opt '("+" "*" "," ";" ">" ">=" "<" "<=" ":=" "=")))
3544@end group
3545@group
3546(defun sample-smie-forward-token ()
3547 (forward-comment (point-max))
3548 (cond
3549 ((looking-at sample-keywords-regexp)
3550 (goto-char (match-end 0))
3551 (match-string-no-properties 0))
3552 (t (buffer-substring-no-properties
3553 (point)
3554 (progn (skip-syntax-forward "w_")
3555 (point))))))
3556@end group
3557@group
3558(defun sample-smie-backward-token ()
3559 (forward-comment (- (point)))
3560 (cond
3561 ((looking-back sample-keywords-regexp (- (point) 2) t)
3562 (goto-char (match-beginning 0))
3563 (match-string-no-properties 0))
3564 (t (buffer-substring-no-properties
3565 (point)
3566 (progn (skip-syntax-backward "w_")
3567 (point))))))
3568@end group
3569@end example
3570
3571Notice how those lexers return the empty string when in front of
3572parentheses. This is because SMIE automatically takes care of the
3573parentheses defined in the syntax table. More specifically if the lexer
3574returns nil or an empty string, SMIE tries to handle the corresponding
3575text as a sexp according to syntax tables.
3576
3577@node SMIE Tricks
3578@subsubsection Living With a Weak Parser
3579
3580The parsing technique used by SMIE does not allow tokens to behave
3581differently in different contexts. For most programming languages, this
3582manifests itself by precedence conflicts when converting the
3583BNF grammar.
3584
3585Sometimes, those conflicts can be worked around by expressing the
3586grammar slightly differently. For example, for Modula-2 it might seem
3587natural to have a BNF grammar that looks like this:
3588
3589@example
3590 ...
3591 (inst ("IF" exp "THEN" insts "ELSE" insts "END")
3592 ("CASE" exp "OF" cases "END")
3593 ...)
3594 (cases (cases "|" cases) (caselabel ":" insts) ("ELSE" insts))
3595 ...
3596@end example
3597
3598But this will create conflicts for @code{"ELSE"}: on the one hand, the
3599IF rule implies (among many other things) that @code{"ELSE" = "END"};
3600but on the other hand, since @code{"ELSE"} appears within @code{cases},
3601which appears left of @code{"END"}, we also have @code{"ELSE" > "END"}.
3602We can solve the conflict either by using:
3603@example
3604 ...
3605 (inst ("IF" exp "THEN" insts "ELSE" insts "END")
3606 ("CASE" exp "OF" cases "END")
3607 ("CASE" exp "OF" cases "ELSE" insts "END")
3608 ...)
3609 (cases (cases "|" cases) (caselabel ":" insts))
3610 ...
3611@end example
3612or
3613@example
3614 ...
3615 (inst ("IF" exp "THEN" else "END")
3616 ("CASE" exp "OF" cases "END")
3617 ...)
3618 (else (insts "ELSE" insts))
3619 (cases (cases "|" cases) (caselabel ":" insts) (else))
3620 ...
3621@end example
3622
3623Reworking the grammar to try and solve conflicts has its downsides, tho,
3624because SMIE assumes that the grammar reflects the logical structure of
3625the code, so it is preferable to keep the BNF closer to the intended
3626abstract syntax tree.
3627
3628Other times, after careful consideration you may conclude that those
3629conflicts are not serious and simply resolve them via the
3630@var{resolvers} argument of @code{smie-bnf->prec2}. Usually this is
3631because the grammar is simply ambiguous: the conflict does not affect
3632the set of programs described by the grammar, but only the way those
3633programs are parsed. This is typically the case for separators and
3634associative infix operators, where you want to add a resolver like
3635@code{'((assoc "|"))}. Another case where this can happen is for the
3636classic @emph{dangling else} problem, where you will use @code{'((assoc
3637"else" "then"))}. It can also happen for cases where the conflict is
3638real and cannot really be resolved, but it is unlikely to pose a problem
3639in practice.
3640
3641Finally, in many cases some conflicts will remain despite all efforts to
3642restructure the grammar. Do not despair: while the parser cannot be
3643made more clever, you can make the lexer as smart as you want. So, the
3644solution is then to look at the tokens involved in the conflict and to
3645split one of those tokens into 2 (or more) different tokens. E.g. if
3646the grammar needs to distinguish between two incompatible uses of the
3647token @code{"begin"}, make the lexer return different tokens (say
3648@code{"begin-fun"} and @code{"begin-plain"}) depending on which kind of
3649@code{"begin"} it finds. This pushes the work of distinguishing the
3650different cases to the lexer, which will thus have to look at the
3651surrounding text to find ad-hoc clues.
3652
3653@node SMIE Indentation
3654@subsubsection Specifying Indentation Rules
3655
3656Based on the provided grammar, SMIE will be able to provide automatic
3657indentation without any extra effort. But in practice, this default
3658indentation style will probably not be good enough. You will want to
3659tweak it in many different cases.
3660
3661SMIE indentation is based on the idea that indentation rules should be
3662as local as possible. To this end, it relies on the idea of
3663@emph{virtual} indentation, which is the indentation that a particular
3664program point would have if it were at the beginning of a line.
3665Of course, if that program point is indeed at the beginning of a line,
3666its virtual indentation is its current indentation. But if not, then
3667SMIE uses the indentation algorithm to compute the virtual indentation
3668of that point. Now in practice, the virtual indentation of a program
3669point does not have to be identical to the indentation it would have if
3670we inserted a newline before it. To see how this works, the SMIE rule
3671for indentation after a @code{@{} in C does not care whether the
3672@code{@{} is standing on a line of its own or is at the end of the
3673preceding line. Instead, these different cases are handled in the
3674indentation rule that decides how to indent before a @code{@{}.
3675
3676Another important concept is the notion of @emph{parent}: The
3677@emph{parent} of a token, is the head token of the nearest enclosing
3678syntactic construct. For example, the parent of an @code{else} is the
3679@code{if} to which it belongs, and the parent of an @code{if}, in turn,
3680is the lead token of the surrounding construct. The command
3681@code{backward-sexp} jumps from a token to its parent, but there are
3682some caveats: for @emph{openers} (tokens which start a construct, like
3683@code{if}), you need to start with point before the token, while for
3684others you need to start with point after the token.
3685@code{backward-sexp} stops with point before the parent token if that is
3686the @emph{opener} of the token of interest, and otherwise it stops with
3687point after the parent token.
3688
3689SMIE indentation rules are specified using a function that takes two
3690arguments @var{method} and @var{arg} where the meaning of @var{arg} and the
3691expected return value depend on @var{method}.
3692
3693@var{method} can be:
3694@itemize
3695@item
3696@code{:after}, in which case @var{arg} is a token and the function
3697should return the @var{offset} to use for indentation after @var{arg}.
3698@item
3699@code{:before}, in which case @var{arg} is a token and the function
3700should return the @var{offset} to use to indent @var{arg} itself.
3701@item
3702@code{:elem}, in which case the function should return either the offset
3703to use to indent function arguments (if @var{arg} is the symbol
3704@code{arg}) or the basic indentation step (if @var{arg} is the symbol
3705@code{basic}).
3706@item
3707@code{:list-intro}, in which case @var{arg} is a token and the function
3708should return non-@code{nil} if the token is followed by a list of
3709expressions (not separated by any token) rather than an expression.
3710@end itemize
3711
3712When @var{arg} is a token, the function is called with point just before
3713that token. A return value of nil always means to fallback on the
3714default behavior, so the function should return nil for arguments it
3715does not expect.
3716
3717@var{offset} can be:
3718@itemize
3719@item
3720@code{nil}: use the default indentation rule.
3721@item
3722@code{(column . @var{column})}: indent to column @var{column}.
3723@item
3724@var{number}: offset by @var{number}, relative to a base token which is
3725the current token for @code{:after} and its parent for @code{:before}.
3726@end itemize
3727
3728@node SMIE Indentation Helpers
3729@subsubsection Helper Functions for Indentation Rules
3730
3731SMIE provides various functions designed specifically for use in the
3732indentation rules function (several of those functions break if used in
3733another context). These functions all start with the prefix
3734@code{smie-rule-}.
3735
3736@defun smie-rule-bolp
3737Return non-@code{nil} if the current token is the first on the line.
3738@end defun
3739
3740@defun smie-rule-hanging-p
3741Return non-@code{nil} if the current token is @emph{hanging}.
3742A token is @emph{hanging} if it is the last token on the line
3743and if it is preceded by other tokens: a lone token on a line is not
3744hanging.
3745@end defun
3746
3747@defun smie-rule-next-p &rest tokens
3748Return non-@code{nil} if the next token is among @var{tokens}.
3749@end defun
3750
3751@defun smie-rule-prev-p &rest tokens
3752Return non-@code{nil} if the previous token is among @var{tokens}.
3753@end defun
3754
3755@defun smie-rule-parent-p &rest parents
3756Return non-@code{nil} if the current token's parent is among @var{parents}.
3757@end defun
3758
3759@defun smie-rule-sibling-p
3760Return non-nil if the current token's parent is actually a sibling.
3761This is the case for example when the parent of a @code{","} is just the
3762previous @code{","}.
3763@end defun
3764
3765@defun smie-rule-parent &optional offset
3766Return the proper offset to align the current token with the parent.
3767If non-@code{nil}, @var{offset} should be an integer giving an
3768additional offset to apply.
3769@end defun
3770
3771@defun smie-rule-separator method
3772Indent current token as a @emph{separator}.
3773
3774By @emph{separator}, we mean here a token whose sole purpose is to
3775separate various elements within some enclosing syntactic construct, and
3776which does not have any semantic significance in itself (i.e. it would
3777typically not exist as a node in an abstract syntax tree).
3778
3779Such a token is expected to have an associative syntax and be closely
3780tied to its syntactic parent. Typical examples are @code{","} in lists
3781of arguments (enclosed inside parentheses), or @code{";"} in sequences
3782of instructions (enclosed in a @code{@{...@}} or @code{begin...end}
3783block).
3784
3785@var{method} should be the method name that was passed to
3786`smie-rules-function'.
3787@end defun
3788
3789@node SMIE Indentation Example
3790@subsubsection Sample Indentation Rules
3791
3792Here is an example of an indentation function:
3793
3794@example
3795(defun sample-smie-rules (kind token)
3796 (pcase (cons kind token)
3797 (`(:elem . basic) sample-indent-basic)
3798 (`(,_ . ",") (smie-rule-separator kind))
3799 (`(:after . ":=") sample-indent-basic)
3800 (`(:before . ,(or `"begin" `"(" `"@{")))
3801 (if (smie-rule-hanging-p) (smie-rule-parent)))
3802 (`(:before . "if")
3803 (and (not (smie-rule-bolp)) (smie-rule-prev-p "else")
3804 (smie-rule-parent)))))
3805@end example
3806
3807@noindent
3808A few things to note:
3809
3810@itemize
3811@item
3812The first case indicates the basic indentation increment to use.
3813If @code{sample-indent-basic} is nil, then SMIE uses the global
3814setting @code{smie-indent-basic}. The major mode could have set
3815@code{smie-indent-basic} buffer-locally instead, but that
3816is discouraged.
3817
3818@item
3819The rule for the token @code{","} make SMIE try to be more clever when
3820the comma separator is placed at the beginning of lines. It tries to
3821outdent the separator so as to align the code after the comma; for
3822example:
3823
3824@example
3825x = longfunctionname (
3826 arg1
3827 , arg2
3828 );
3829@end example
3830
3831@item
3832The rule for indentation after @code{":="} exists because otherwise
3833SMIE would treat @code{":="} as an infix operator and would align the
3834right argument with the left one.
3835
3836@item
3837The rule for indentation before @code{"begin"} is an example of the use
3838of virtual indentation: This rule is used only when @code{"begin"} is
3839hanging, which can happen only when @code{"begin"} is not at the
3840beginning of a line. So this is not used when indenting
3841@code{"begin"} itself but only when indenting something relative to this
3842@code{"begin"}. Concretely, this rule changes the indentation from:
3843
3844@example
3845 if x > 0 then begin
3846 dosomething(x);
3847 end
3848@end example
3849to
3850@example
3851 if x > 0 then begin
3852 dosomething(x);
3853 end
3854@end example
3855
3856@item
3857The rule for indentation before @code{"if"} is similar to the one for
3858@code{"begin"}, but where the purpose is to treat @code{"else if"}
3859as a single unit, so as to align a sequence of tests rather than indent
3860each test further to the right. This function does this only in the
3861case where the @code{"if"} is not placed on a separate line, hence the
3862@code{smie-rule-bolp} test.
3863
3864If we know that the @code{"else"} is always aligned with its @code{"if"}
3865and is always at the beginning of a line, we can use a more efficient
3866rule:
3867@example
3868((equal token "if")
3869 (and (not (smie-rule-bolp)) (smie-rule-prev-p "else")
3870 (save-excursion
3871 (sample-smie-backward-token) ;Jump before the "else".
3872 (cons 'column (current-column)))))
3873@end example
3874
3875The advantage of this formulation is that it reuses the indentation of
3876the previous @code{"else"}, rather than going all the way back to the
3877first @code{"if"} of the sequence.
3878@end itemize
3879
3226@node Desktop Save Mode 3880@node Desktop Save Mode
3227@section Desktop Save Mode 3881@section Desktop Save Mode
3228@cindex desktop save mode 3882@cindex desktop save mode
@@ -3276,5 +3930,7 @@ optionally bound to @code{desktop-save-buffer}.
3276@end defvar 3930@end defvar
3277 3931
3278@ignore 3932@ignore
3279 arch-tag: 4c7bff41-36e6-4da6-9e7f-9b9289e27c8e 3933 Local Variables:
3934 fill-column: 72
3935 End:
3280@end ignore 3936@end ignore
diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi
index 1c196c93f27..409ecc7e20c 100644
--- a/doc/lispref/nonascii.texi
+++ b/doc/lispref/nonascii.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 3@c Copyright (C) 1998-1999, 2001-2011 Free Software Foundation, Inc.
4@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/characters 5@setfilename ../../info/characters
7@node Non-ASCII Characters, Searching and Matching, Text, Top 6@node Non-ASCII Characters, Searching and Matching, Text, Top
@@ -1921,7 +1920,3 @@ strings in the return value are decoded using
1921@code{locale-coding-system}. @xref{Locales,,, libc, The GNU Libc Manual}, 1920@code{locale-coding-system}. @xref{Locales,,, libc, The GNU Libc Manual},
1922for more information about locales and locale items. 1921for more information about locales and locale items.
1923@end defun 1922@end defun
1924
1925@ignore
1926 arch-tag: be705bf8-941b-4c35-84fc-ad7d20ddb7cb
1927@end ignore
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi
index e83da348e05..23150c2c937 100644
--- a/doc/lispref/numbers.texi
+++ b/doc/lispref/numbers.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/numbers 6@setfilename ../../info/numbers
@@ -1217,7 +1216,3 @@ On some machines, any integer representable in Lisp may be the result
1217of @code{random}. On other machines, the result can never be larger 1216of @code{random}. On other machines, the result can never be larger
1218than a certain maximum or less than a certain (negative) minimum. 1217than a certain maximum or less than a certain (negative) minimum.
1219@end defun 1218@end defun
1220
1221@ignore
1222 arch-tag: 574e8dd2-d513-4616-9844-c9a27869782e
1223@end ignore
diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi
index 93776f3b4f0..a20c50b63d6 100644
--- a/doc/lispref/objects.texi
+++ b/doc/lispref/objects.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/objects 6@setfilename ../../info/objects
@@ -2143,7 +2142,3 @@ that for two strings to be equal, they have the same text properties.
2143@end group 2142@end group
2144@end example 2143@end example
2145@end defun 2144@end defun
2146
2147@ignore
2148 arch-tag: 9711a66e-4749-4265-9e8c-972d55b67096
2149@end ignore
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index e99e3fe89d8..576f847d98e 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/os 6@setfilename ../../info/os
@@ -2237,7 +2236,3 @@ be loaded through it.
2237This variable is ignored if the given @var{library} is statically 2236This variable is ignored if the given @var{library} is statically
2238linked into Emacs. 2237linked into Emacs.
2239@end defvar 2238@end defvar
2240
2241@ignore
2242 arch-tag: 8378814a-30d7-467c-9615-74a80b9988a7
2243@end ignore
diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi
index 138f8d934e6..373e1e2b5c7 100644
--- a/doc/lispref/package.texi
+++ b/doc/lispref/package.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 2010 3@c Copyright (C) 2010-2011 Free Software Foundation, Inc.
4@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/package 5@setfilename ../../info/package
7@node Packaging, Antinews, System Interface, Top 6@node Packaging, Antinews, System Interface, Top
diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi
index 3a6fc6fbc34..a44cd1fbcc7 100644
--- a/doc/lispref/positions.texi
+++ b/doc/lispref/positions.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 3@c Copyright (C) 1990-1995, 1998-2011 Free Software Foundation, Inc.
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/positions 5@setfilename ../../info/positions
7@node Positions, Markers, Frames, Top 6@node Positions, Markers, Frames, Top
@@ -985,7 +984,3 @@ This is the contents of foo@point{}
985@end group 984@end group
986@end example 985@end example
987@end defspec 986@end defspec
988
989@ignore
990 arch-tag: 56e8ff26-4ffe-4832-a141-7e991a2d0f87
991@end ignore
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index 89f97f99de3..8a8de0e7fa8 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/processes 6@setfilename ../../info/processes
@@ -195,10 +194,18 @@ a shell command:
195@end example 194@end example
196@end defun 195@end defun
197 196
198@cindex quoting and unquoting shell command line 197@cindex quoting and unquoting command-line arguments
199 The following two functions are useful for creating shell commands 198@cindex minibuffer input, and command-line arguments
200from individual argument strings, and taking shell command lines apart 199@cindex @code{call-process}, command-line arguments from minibuffer
201into individual arguments. 200@cindex @code{start-process}, command-line arguments from minibuffer
201 The following two functions are useful for combining a list of
202individual command-line argument strings into a single string, and
203taking a string apart into a list of individual command-line
204arguments. These functions are mainly intended to be used for
205converting user input in the minibuffer, a Lisp string, into a list of
206string arguments to be passed to @code{call-process} or
207@code{start-process}, or for the converting such lists of arguments in
208a single Lisp string to be presented in the minibuffer or echo area.
202 209
203@defun split-string-and-unquote string &optional separators 210@defun split-string-and-unquote string &optional separators
204This function splits @var{string} into substrings at matches for the 211This function splits @var{string} into substrings at matches for the
@@ -210,7 +217,7 @@ If @var{separators} is omitted or @code{nil}, it defaults to
210@code{"\\s-+"}, which is a regular expression that matches one or more 217@code{"\\s-+"}, which is a regular expression that matches one or more
211characters with whitespace syntax (@pxref{Syntax Class Table}). 218characters with whitespace syntax (@pxref{Syntax Class Table}).
212 219
213This function performs two types of quoting: enclosing a whole string 220This function supports two types of quoting: enclosing a whole string
214in double quotes @code{"@dots{}"}, and quoting individual characters 221in double quotes @code{"@dots{}"}, and quoting individual characters
215with a backslash escape @samp{\}. The latter is also used in Lisp 222with a backslash escape @samp{\}. The latter is also used in Lisp
216strings, so this function can handle those as well. 223strings, so this function can handle those as well.
@@ -226,9 +233,8 @@ resulting string.
226The strings in @var{list-of-strings} that need quoting are those that 233The strings in @var{list-of-strings} that need quoting are those that
227include @var{separator} as their substring. Quoting a string encloses 234include @var{separator} as their substring. Quoting a string encloses
228it in double quotes @code{"@dots{}"}. In the simplest case, if you 235it in double quotes @code{"@dots{}"}. In the simplest case, if you
229are consing a shell command from the individual command-line 236are consing a command from the individual command-line arguments,
230arguments, every argument that includes embedded blanks will be 237every argument that includes embedded blanks will be quoted.
231quoted.
232@end defun 238@end defun
233 239
234@node Synchronous Processes 240@node Synchronous Processes
@@ -3011,7 +3017,3 @@ Fetching data from this structure:
3011(bindat-get-field decoded 'item 1 'id) 3017(bindat-get-field decoded 'item 1 'id)
3012 @result{} "BCDEFG" 3018 @result{} "BCDEFG"
3013@end lisp 3019@end lisp
3014
3015@ignore
3016 arch-tag: ba9da253-e65f-4e7f-b727-08fba0a1df7a
3017@end ignore
diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi
index 6cc7d451a6e..27b089f75b6 100644
--- a/doc/lispref/searching.texi
+++ b/doc/lispref/searching.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/searching 6@setfilename ../../info/searching
@@ -386,15 +385,6 @@ matches both @samp{]} and @samp{-}.
386To include @samp{^} in a character alternative, put it anywhere but at 385To include @samp{^} in a character alternative, put it anywhere but at
387the beginning. 386the beginning.
388 387
389The beginning and end of a range of multibyte characters must be in
390the same character set (@pxref{Character Sets}). Thus,
391@code{"[\x8e0-\x97c]"} is invalid because character 0x8e0 (@samp{a}
392with grave accent) is in the Emacs character set for Latin-1 but the
393character 0x97c (@samp{u} with diaeresis) is in the Emacs character
394set for Latin-2. (We use Lisp string syntax to write that example,
395and a few others in the next few paragraphs, in order to include hex
396escape sequences in them.)
397
398If a range starts with a unibyte character @var{c} and ends with a 388If a range starts with a unibyte character @var{c} and ends with a
399multibyte character @var{c2}, the range is divided into two parts: one 389multibyte character @var{c2}, the range is divided into two parts: one
400is @samp{@var{c}..?\377}, the other is @samp{@var{c1}..@var{c2}}, where 390is @samp{@var{c}..?\377}, the other is @samp{@var{c1}..@var{c2}}, where
@@ -1831,7 +1821,3 @@ values of the variables @code{sentence-end-double-space}
1831@code{sentence-end-without-period} and 1821@code{sentence-end-without-period} and
1832@code{sentence-end-without-space}. 1822@code{sentence-end-without-space}.
1833@end defun 1823@end defun
1834
1835@ignore
1836 arch-tag: c2573ca2-18aa-4839-93b8-924043ef831f
1837@end ignore
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
index a73c4790b96..825dd976eac 100644
--- a/doc/lispref/sequences.texi
+++ b/doc/lispref/sequences.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/sequences 6@setfilename ../../info/sequences
@@ -729,7 +728,3 @@ bv
729@noindent 728@noindent
730These results make sense because the binary codes for control-_ and 729These results make sense because the binary codes for control-_ and
731control-W are 11111 and 10111, respectively. 730control-W are 11111 and 10111, respectively.
732
733@ignore
734 arch-tag: fcf1084a-cd29-4adc-9f16-68586935b386
735@end ignore
diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi
index 3722e7d33d3..9802c7485dd 100644
--- a/doc/lispref/streams.texi
+++ b/doc/lispref/streams.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2001, 2002, 3@c Copyright (C) 1990-1994, 1998-1999, 2001-2011 Free Software Foundation, Inc.
4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/streams 5@setfilename ../../info/streams
7@node Read and Print, Minibuffers, Debugging, Top 6@node Read and Print, Minibuffers, Debugging, Top
@@ -837,7 +836,3 @@ variable. The string should hold a @samp{%}-specification to be used
837in the C function @code{sprintf}. For further restrictions on what 836in the C function @code{sprintf}. For further restrictions on what
838you can use, see the variable's documentation string. 837you can use, see the variable's documentation string.
839@end defvar 838@end defvar
840
841@ignore
842 arch-tag: 07636b8c-c4e3-4735-9e06-2e864320b434
843@end ignore
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 94d2765a833..ce080bc221f 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/strings 6@setfilename ../../info/strings
@@ -348,9 +347,9 @@ practice:
348 @result{} ("o" "o" "o") 347 @result{} ("o" "o" "o")
349@end example 348@end example
350 349
351If you need to split a string that is a shell command, where 350If you need to split a string into a list of individual command-line
352individual arguments could be quoted, see @ref{Shell Arguments, 351arguments suitable for @code{call-process} or @code{start-process},
353split-string-and-unquote}. 352see @ref{Shell Arguments, split-string-and-unquote}.
354@end defun 353@end defun
355 354
356@defvar split-string-default-separators 355@defvar split-string-default-separators
@@ -1142,7 +1141,3 @@ This function makes @var{char} case-invariant, with syntax
1142This command displays a description of the contents of the current 1141This command displays a description of the contents of the current
1143buffer's case table. 1142buffer's case table.
1144@end deffn 1143@end deffn
1145
1146@ignore
1147 arch-tag: 700b8e95-7aa5-4b52-9eb3-8f2e1ea152b4
1148@end ignore
diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi
index ccf90e33cd0..60d14d567d4 100644
--- a/doc/lispref/symbols.texi
+++ b/doc/lispref/symbols.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011 Free Software Foundation, Inc.
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/symbols 5@setfilename ../../info/symbols
7@node Symbols, Evaluation, Hash Tables, Top 6@node Symbols, Evaluation, Hash Tables, Top
@@ -590,7 +589,3 @@ between a missing property and a property with the value @code{nil}.
590The value is actually the tail of @var{plist} whose @code{car} is 589The value is actually the tail of @var{plist} whose @code{car} is
591@var{property}. 590@var{property}.
592@end defun 591@end defun
593
594@ignore
595 arch-tag: 8750b7d2-de4c-4923-809a-d35fc39fd8ce
596@end ignore
diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi
index a608db16f89..55ee2dec4a4 100644
--- a/doc/lispref/syntax.texi
+++ b/doc/lispref/syntax.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/syntax 6@setfilename ../../info/syntax
@@ -1192,7 +1191,3 @@ category table. It inserts the descriptions in a buffer, and then
1192displays that buffer. If @var{buffer-or-name} is non-@code{nil}, it 1191displays that buffer. If @var{buffer-or-name} is non-@code{nil}, it
1193describes the category table of that buffer instead. 1192describes the category table of that buffer instead.
1194@end deffn 1193@end deffn
1195
1196@ignore
1197 arch-tag: 4d914e96-0283-445c-9233-75d33662908c
1198@end ignore
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 45d358366de..3ff2697dd37 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -1,8 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 3@c Copyright (C) 1990-1995, 1998-2011 Free Software Foundation, Inc.
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/text 5@setfilename ../../info/text
8@node Text, Non-ASCII Characters, Markers, Top 6@node Text, Non-ASCII Characters, Markers, Top
@@ -2203,11 +2201,11 @@ The functions in this section return unpredictable values.
2203@defvar indent-line-function 2201@defvar indent-line-function
2204This variable's value is the function to be used by @key{TAB} (and 2202This variable's value is the function to be used by @key{TAB} (and
2205various commands) to indent the current line. The command 2203various commands) to indent the current line. The command
2206@code{indent-according-to-mode} does no more than call this function. 2204@code{indent-according-to-mode} does little more than call this function.
2207 2205
2208In Lisp mode, the value is the symbol @code{lisp-indent-line}; in C 2206In Lisp mode, the value is the symbol @code{lisp-indent-line}; in C
2209mode, @code{c-indent-line}; in Fortran mode, @code{fortran-indent-line}. 2207mode, @code{c-indent-line}; in Fortran mode, @code{fortran-indent-line}.
2210The default value is @code{indent-relative}. 2208The default value is @code{indent-relative}. @xref{Auto-Indentation}.
2211@end defvar 2209@end defvar
2212 2210
2213@deffn Command indent-according-to-mode 2211@deffn Command indent-according-to-mode
diff --git a/doc/lispref/tindex.pl b/doc/lispref/tindex.pl
index b4e39e37254..5c9b88f57b2 100755
--- a/doc/lispref/tindex.pl
+++ b/doc/lispref/tindex.pl
@@ -1,7 +1,6 @@
1#! /usr/bin/perl 1#! /usr/bin/perl
2 2
3# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 3# Copyright (C) 2000-2011 Free Software Foundation, Inc.
4# 2008, 2009, 2010 Free Software Foundation, Inc.
5 4
6# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
7 6
@@ -123,4 +122,3 @@ foreach $key (keys %removed) {
123 print " $key\n"; 122 print " $key\n";
124} 123}
125 124
126# arch-tag: f8460df6-6bef-4c98-8555-e2c63a88b0fa
diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi
index bf3afcf53ee..37fbe7eb2b4 100644
--- a/doc/lispref/tips.texi
+++ b/doc/lispref/tips.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2001, 2002, 3@c Copyright (C) 1990-1993, 1995, 1998-1999, 2001-2011
4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/tips 6@setfilename ../../info/tips
@@ -1115,7 +1114,3 @@ This is the @dfn{footer line}; it appears at the very end of the file.
1115Its purpose is to enable people to detect truncated versions of the file 1114Its purpose is to enable people to detect truncated versions of the file
1116from the lack of a footer line. 1115from the lack of a footer line.
1117@end table 1116@end table
1118
1119@ignore
1120 arch-tag: 9ea911c2-6b1d-47dd-88b7-0a94e8b27c2e
1121@end ignore
diff --git a/doc/lispref/two-volume-cross-refs.txt b/doc/lispref/two-volume-cross-refs.txt
index b427d31f647..99b48d342ab 100644
--- a/doc/lispref/two-volume-cross-refs.txt
+++ b/doc/lispref/two-volume-cross-refs.txt
@@ -1,6 +1,5 @@
1Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 1Copyright (C) 2001-2011 Free Software Foundation, Inc.
2 Free Software Foundation, Inc. 2See end for copying conditions.
3 See end for copying conditions.
4 3
5Two Volume Cross References 4Two Volume Cross References
6=========================== 5===========================
diff --git a/doc/lispref/two-volume.make b/doc/lispref/two-volume.make
index 66b3bbbb201..8949bfe0157 100644
--- a/doc/lispref/two-volume.make
+++ b/doc/lispref/two-volume.make
@@ -1,4 +1,4 @@
1# Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 1# Copyright (C) 2007-2011 Free Software Foundation, Inc.
2# See end for copying conditions. 2# See end for copying conditions.
3 3
4# although it would be nice to use tex rather than pdftex to avoid 4# although it would be nice to use tex rather than pdftex to avoid
@@ -221,4 +221,3 @@ elisp2-init: vol2.texi
221# You should have received a copy of the GNU General Public License 221# You should have received a copy of the GNU General Public License
222# along with this file. If not, see <http://www.gnu.org/licenses/>. 222# along with this file. If not, see <http://www.gnu.org/licenses/>.
223 223
224# arch-tag: 5c258a2e-d4a9-4d0e-b279-fb3a6faa27eb
diff --git a/doc/lispref/two.el b/doc/lispref/two.el
index 43c680a483d..b3a8666bcf2 100644
--- a/doc/lispref/two.el
+++ b/doc/lispref/two.el
@@ -1,7 +1,6 @@
1;; Auxiliary functions for preparing a two volume manual. 1;; Auxiliary functions for preparing a two volume manual.
2 2
3;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 3;; Copyright (C) 2001-2011 Free Software Foundation, Inc.
4;; Free Software Foundation, Inc.
5 4
6;; --rjc 30mar92 5;; --rjc 30mar92
7 6
@@ -76,5 +75,4 @@ This is for the *Elisp Ref Manual*."
76(defun volume-numbers-toc-markup-I () (volume-numbers-toc-markup "I")) 75(defun volume-numbers-toc-markup-I () (volume-numbers-toc-markup "I"))
77(defun volume-numbers-toc-markup-II () (volume-numbers-toc-markup "II")) 76(defun volume-numbers-toc-markup-II () (volume-numbers-toc-markup "II"))
78 77
79;; arch-tag: 848955fe-e9cf-45e7-a2f1-570ef156d6a5
80;;; two.el ends here 78;;; two.el ends here
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index 20fe4dbc9fa..5b5f3365978 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -1,8 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 3@c Copyright (C) 1990-1995, 1998-2011 Free Software Foundation, Inc.
4@c 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 4@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/variables 5@setfilename ../../info/variables
8@node Variables, Functions, Control Structures, Top 6@node Variables, Functions, Control Structures, Top
@@ -1929,7 +1927,3 @@ Attempting to assign them any other value will result in an error:
1929(setq window-min-height 5.0) 1927(setq window-min-height 5.0)
1930@error{} Wrong type argument: integerp, 5.0 1928@error{} Wrong type argument: integerp, 5.0
1931@end example 1929@end example
1932
1933@ignore
1934 arch-tag: 5ff62c44-2b51-47bb-99d4-fea5aeec5d3e
1935@end ignore
diff --git a/doc/lispref/vol1.texi b/doc/lispref/vol1.texi
index 3ac3f58a330..ff0283e109a 100644
--- a/doc/lispref/vol1.texi
+++ b/doc/lispref/vol1.texi
@@ -1,8 +1,7 @@
1\input texinfo @c -*-texinfo-*- 1\input texinfo @c -*-texinfo-*-
2@c This file is used for printing the GNU Emacs Lisp Reference Manual 2@c This file is used for printing the GNU Emacs Lisp Reference Manual
3@c in two volumes. It is a modified version of elisp.texi. 3@c in two volumes. It is a modified version of elisp.texi.
4@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 4@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
5@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
6@c Free Software Foundation, Inc. 5@c Free Software Foundation, Inc.
7@c %**start of header 6@c %**start of header
8@setfilename elisp 7@setfilename elisp
@@ -69,7 +68,7 @@ This is edition @value{VERSION} of the GNU Emacs Lisp Reference Manual,@*
69corresponding to Emacs version @value{EMACSVER}. 68corresponding to Emacs version @value{EMACSVER}.
70 69
71Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 70Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,
721999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software 711999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
73Foundation, Inc. 72Foundation, Inc.
74 73
75@quotation 74@quotation
diff --git a/doc/lispref/vol2.texi b/doc/lispref/vol2.texi
index 59222ad00e2..cd10fea7d3e 100644
--- a/doc/lispref/vol2.texi
+++ b/doc/lispref/vol2.texi
@@ -1,8 +1,7 @@
1\input texinfo @c -*-texinfo-*- 1\input texinfo @c -*-texinfo-*-
2@c This file is used for printing the GNU Emacs Lisp Reference Manual 2@c This file is used for printing the GNU Emacs Lisp Reference Manual
3@c in two volumes. It is a modified version of elisp.texi. 3@c in two volumes. It is a modified version of elisp.texi.
4@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 4@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
5@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
6@c Free Software Foundation, Inc. 5@c Free Software Foundation, Inc.
7@c %**start of header 6@c %**start of header
8@setfilename elisp 7@setfilename elisp
@@ -69,7 +68,7 @@ This is edition @value{VERSION} of the GNU Emacs Lisp Reference Manual,@*
69corresponding to Emacs version @value{EMACSVER}. 68corresponding to Emacs version @value{EMACSVER}.
70 69
71Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 70Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,
721999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software 711999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
73Foundation, Inc. 72Foundation, Inc.
74 73
75@quotation 74@quotation
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index 704f3ad3321..528930c0ff6 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -1,7 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc. 4@c Free Software Foundation, Inc.
6@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
7@setfilename ../../info/windows 6@setfilename ../../info/windows
@@ -2607,7 +2606,3 @@ frame selected.
2607Lock fontification function, which will be called whenever parts of a 2606Lock fontification function, which will be called whenever parts of a
2608buffer are (re)fontified because a window was scrolled or its size 2607buffer are (re)fontified because a window was scrolled or its size
2609changed. @xref{Other Font Lock Variables}. 2608changed. @xref{Other Font Lock Variables}.
2610
2611@ignore
2612 arch-tag: 3f6c36e8-df49-4986-b757-417feed88be3
2613@end ignore
diff --git a/doc/man/ChangeLog b/doc/man/ChangeLog
index f2810be7f97..f65c440f55a 100644
--- a/doc/man/ChangeLog
+++ b/doc/man/ChangeLog
@@ -1,3 +1,7 @@
12011-01-02 Jari Aalto <jari.aalto@cante.net> (tiny change)
2
3 * emacsclient.1: Arrange options alphabetically (Bug#7620).
4
12010-10-12 Glenn Morris <rgm@gnu.org> 52010-10-12 Glenn Morris <rgm@gnu.org>
2 6
3 * emacs.1: Small fixes. 7 * emacs.1: Small fixes.
@@ -106,7 +110,7 @@
106;; add-log-time-zone-rule: t 110;; add-log-time-zone-rule: t
107;; End: 111;; End:
108 112
109 Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 113 Copyright (C) 2007-2011 Free Software Foundation, Inc.
110 114
111 This file is part of GNU Emacs. 115 This file is part of GNU Emacs.
112 116
@@ -123,4 +127,3 @@
123 You should have received a copy of the GNU General Public License 127 You should have received a copy of the GNU General Public License
124 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 128 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
125 129
126;; arch-tag: 2bd1112e-157f-4884-b0ca-0fb1057972d7
diff --git a/doc/man/ctags.1 b/doc/man/ctags.1
index 9a6505b020e..1eab02f2145 100644
--- a/doc/man/ctags.1
+++ b/doc/man/ctags.1
@@ -1,3 +1 @@
1.so man1/etags.1 .so man1/etags.1
2
3.\" arch-tag: 54d4579b-9d66-4ba5-9fda-f01ec83612ad
diff --git a/doc/man/ebrowse.1 b/doc/man/ebrowse.1
index b02b548244e..5afe59d6bc1 100644
--- a/doc/man/ebrowse.1
+++ b/doc/man/ebrowse.1
@@ -85,7 +85,7 @@ was written by Gerd Moellmann.
85Copyright 85Copyright
86.if t \(co 86.if t \(co
87.if n (C) 87.if n (C)
882008, 2009, 2010 Free Software Foundation, Inc. 882008, 2009, 2010, 2011 Free Software Foundation, Inc.
89.PP 89.PP
90Permission is granted to make and distribute verbatim copies of this 90Permission is granted to make and distribute verbatim copies of this
91document provided the copyright notice and this permission notice are 91document provided the copyright notice and this permission notice are
@@ -101,4 +101,3 @@ document into another language, under the above conditions for
101modified versions, except that this permission notice may be stated 101modified versions, except that this permission notice may be stated
102in a translation approved by the Free Software Foundation. 102in a translation approved by the Free Software Foundation.
103. 103.
104.\" arch-tag: b771158b-90cb-43a5-b9af-dbc506311817
diff --git a/doc/man/emacs.1 b/doc/man/emacs.1
index ae2bc82c920..10fcc186fdd 100644
--- a/doc/man/emacs.1
+++ b/doc/man/emacs.1
@@ -643,7 +643,7 @@ Copyright
643.if t \(co 643.if t \(co
644.if n (C) 644.if n (C)
6451995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 6451995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
6462009, 2010 6462009, 2010, 2011
647Free Software Foundation, Inc. 647Free Software Foundation, Inc.
648.PP 648.PP
649Permission is granted to make and distribute verbatim copies of this 649Permission is granted to make and distribute verbatim copies of this
@@ -660,4 +660,3 @@ document into another language, under the above conditions for
660modified versions, except that this permission notice may be stated 660modified versions, except that this permission notice may be stated
661in a translation approved by the Free Software Foundation. 661in a translation approved by the Free Software Foundation.
662. 662.
663.\" arch-tag: 04dfd376-b46e-4924-919a-cecc3b257eaa
diff --git a/doc/man/emacsclient.1 b/doc/man/emacsclient.1
index 16bfb73e16b..cae4d76634b 100644
--- a/doc/man/emacsclient.1
+++ b/doc/man/emacsclient.1
@@ -49,36 +49,36 @@ If you set the variable `server-window' to a window or a frame, `C-x
49The programs follow the usual GNU command line syntax, with long 49The programs follow the usual GNU command line syntax, with long
50options starting with two dashes (`-'). 50options starting with two dashes (`-').
51.TP 51.TP
52.B \-nw, \-t, \-\-tty 52.B \-a, \-\-alternate-editor=EDITOR
53open a new Emacs frame on the current terminal 53if the Emacs server is not running, run the specified editor instead.
54This can also be specified via the `ALTERNATE_EDITOR' environment variable.
55If the value of EDITOR is the empty string, then Emacs is started in
56daemon mode and emacsclient will try to connect to it.
54.TP 57.TP
55.B -c, \-\-create-frame 58.B -c, \-\-create-frame
56create a new frame instead of trying to use the current Emacs frame 59create a new frame instead of trying to use the current Emacs frame
57.TP 60.TP
61.B \-d, \-\-display=DISPLAY
62tell the server to display the files on the given display.
63.TP
58.B \-e, \-\-eval 64.B \-e, \-\-eval
59do not visit files but instead evaluate the arguments as Emacs 65do not visit files but instead evaluate the arguments as Emacs
60Lisp expressions. 66Lisp expressions.
61.TP 67.TP
68.B \-f, \-\-server-file=FILENAME
69use TCP configuration file FILENAME for communication.
70This can also be specified via the `EMACS_SERVER_FILE' environment variable.
71.TP
62.B \-n, \-\-no-wait 72.B \-n, \-\-no-wait
63returns 73returns
64immediately without waiting for you to "finish" the buffer in Emacs. 74immediately without waiting for you to "finish" the buffer in Emacs.
65.TP 75.TP
76.B \-nw, \-t, \-\-tty
77open a new Emacs frame on the current terminal
78.TP
66.B \-s, \-\-socket-name=FILENAME 79.B \-s, \-\-socket-name=FILENAME
67use socket named FILENAME for communication. 80use socket named FILENAME for communication.
68.TP 81.TP
69.B \-f, \-\-server-file=FILENAME
70use TCP configuration file FILENAME for communication.
71This can also be specified via the `EMACS_SERVER_FILE' environment variable.
72.TP
73.B \-a, \-\-alternate-editor=EDITOR
74if the Emacs server is not running, run the specified editor instead.
75This can also be specified via the `ALTERNATE_EDITOR' environment variable.
76If the value of EDITOR is the empty string, then Emacs is started in
77daemon mode and emacsclient will try to connect to it.
78.TP
79.B \-d, \-\-display=DISPLAY
80tell the server to display the files on the given display.
81.TP
82.B \-V, \-\-version 82.B \-V, \-\-version
83print version information and exit 83print version information and exit
84.TP 84.TP
@@ -94,4 +94,3 @@ for the Debian GNU/Linux system (but may be used by others).
94.SH COPYING 94.SH COPYING
95This manual page is in the public domain. 95This manual page is in the public domain.
96 96
97.\" arch-tag: 2b35e723-b197-4073-8752-231bc8b3d3f3
diff --git a/doc/man/etags.1 b/doc/man/etags.1
index cddf7295595..f6b46add215 100644
--- a/doc/man/etags.1
+++ b/doc/man/etags.1
@@ -268,7 +268,7 @@ Copyright
268.if t \(co 268.if t \(co
269.if n (C) 269.if n (C)
2701992, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2701992, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2712010 Free Software Foundation, Inc. 2712010, 2011 Free Software Foundation, Inc.
272.PP 272.PP
273Permission is granted to make and distribute verbatim copies of this 273Permission is granted to make and distribute verbatim copies of this
274document provided the copyright notice and this permission notice are 274document provided the copyright notice and this permission notice are
@@ -284,4 +284,3 @@ document into another language, under the above conditions for
284modified versions, except that this permission notice may be stated 284modified versions, except that this permission notice may be stated
285in a translation approved by the Free Software Foundation. 285in a translation approved by the Free Software Foundation.
286 286
287.\" arch-tag: 9534977f-af78-42f0-991d-1df6b6c05573
diff --git a/doc/man/grep-changelog.1 b/doc/man/grep-changelog.1
index 182e23b5ae8..45a6abfd579 100644
--- a/doc/man/grep-changelog.1
+++ b/doc/man/grep-changelog.1
@@ -62,7 +62,7 @@ Display basic usage information.
62Copyright 62Copyright
63.if t \(co 63.if t \(co
64.if n (C) 64.if n (C)
652008, 2009, 2010 Free Software Foundation, Inc. 652008, 2009, 2010, 2011 Free Software Foundation, Inc.
66.PP 66.PP
67Permission is granted to make and distribute verbatim copies of this 67Permission is granted to make and distribute verbatim copies of this
68document provided the copyright notice and this permission notice are 68document provided the copyright notice and this permission notice are
@@ -78,4 +78,3 @@ document into another language, under the above conditions for
78modified versions, except that this permission notice may be stated 78modified versions, except that this permission notice may be stated
79in a translation approved by the Free Software Foundation. 79in a translation approved by the Free Software Foundation.
80. 80.
81.\" arch-tag: c6df2aea-f3ac-49c7-981b-7b3aae648cda
diff --git a/doc/man/rcs-checkin.1 b/doc/man/rcs-checkin.1
index b1c6062847d..545b128b40d 100644
--- a/doc/man/rcs-checkin.1
+++ b/doc/man/rcs-checkin.1
@@ -69,7 +69,7 @@ by Eric S. Raymond.
69Copyright 69Copyright
70.if t \(co 70.if t \(co
71.if n (C) 71.if n (C)
722008, 2009, 2010 Free Software Foundation, Inc. 722008, 2009, 2010, 2011 Free Software Foundation, Inc.
73.PP 73.PP
74Permission is granted to make and distribute verbatim copies of this 74Permission is granted to make and distribute verbatim copies of this
75document provided the copyright notice and this permission notice are 75document provided the copyright notice and this permission notice are
@@ -85,4 +85,3 @@ document into another language, under the above conditions for
85modified versions, except that this permission notice may be stated 85modified versions, except that this permission notice may be stated
86in a translation approved by the Free Software Foundation. 86in a translation approved by the Free Software Foundation.
87. 87.
88.\" arch-tag: d903862f-cc72-487c-8fd2-5c63677f325d
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 174d3015291..de63af5a28c 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,132 @@
12011-01-31 Lars Ingebrigtsen <larsi@gnus.org>
2
3 * gnus.texi (Customizing Articles): Document the new way of customizing
4 the date headers(s).
5
62011-01-30 Lars Ingebrigtsen <larsi@gnus.org>
7
8 * gnus.texi (Client-Side IMAP Splitting): Add a complete nnimap fancy
9 splitting example.
10
112011-01-29 Eli Zaretskii <eliz@gnu.org>
12
13 * makefile.w32-in (MAKEINFO): Remove options, leave only program name.
14 (MAKEINFO_OPTS): New variable.
15 (ENVADD, $(infodir)/emacs): Use $(MAKEINFO_OPTS).
16 ($(infodir)/info, $(infodir)/ccmode, $(infodir)/ada-mode)
17 ($(infodir)/pcl-cvs, $(infodir)/eshell, $(infodir)/cl)
18 ($(infodir)/dbus, $(infodir)/dired-x, $(infodir)/ediff)
19 ($(infodir)/flymake, $(infodir)/forms, $(infodir)/gnus)
20 ($(infodir)/message, $(infodir)/emacs-mime, $(infodir)/sieve)
21 ($(infodir)/pgg, $(infodir)/mh-e, $(infodir)/reftex)
22 ($(infodir)/remember, $(infodir)/sasl, $(infodir)/sc)
23 ($(infodir)/vip, $(infodir)/viper, $(infodir)/widget)
24 ($(infodir)/efaq, $(infodir)/autotype, $(infodir)/calc)
25 ($(infodir)/idlwave, $(infodir)/eudc, $(infodir)/ebrowse)
26 ($(infodir)/woman, $(infodir)/speedbar, $(infodir)/tramp)
27 ($(infodir)/ses, $(infodir)/smtpmail, $(infodir)/org)
28 ($(infodir)/url, $(infodir)/newsticker, $(infodir)/nxml-mode)
29 ($(infodir)/rcirc, $(infodir)/erc, $(infodir)/ert)
30 ($(infodir)/epa, $(infodir)/mairix-el, $(infodir)/auth)
31 ($(infodir)/eieio, $(infodir)/ede, $(infodir)/semantic)
32 ($(infodir)/edt): Use $(MAKEINFO_OPTS).
33
342011-01-26 Lars Ingebrigtsen <larsi@gnus.org>
35
36 * gnus.texi (Article Date): Document gnus-article-update-lapsed-header.
37
382011-01-24 Teodor Zlatanov <tzz@lifelogs.com>
39
40 * message.texi (IDNA): Explain what it is.
41
422011-01-24 Lars Ingebrigtsen <larsi@gnus.org>
43
44 * gnus.texi (The Empty Backend): Document nnnil (bug #7653).
45
462011-01-23 Werner Lemberg <wl@gnu.org>
47
48 * Makefile.in (MAKEINFO): Now controlled by `configure'.
49 (MAKEINFO_OPTS): New variable. Use it where appropriate.
50 (ENVADD): Updated.
51
522011-01-18 Glenn Morris <rgm@gnu.org>
53
54 * ert.texi: Relicense under GFDL 1.3+, and standardize license notice.
55
562011-01-14 Eduard Wiebe <usenet@pusto.de>
57
58 * nxml-mode.texi (Introduction): Fix file name typos.
59
602011-01-13 Christian Ohler <ohler@gnu.org>
61
62 * ert.texi: New file.
63
64 * Makefile.in:
65 * makefile.w32-in: Add ert.texi.
66
672011-01-10 Jan Moringen <jan.moringen@uni-bielefeld.de>
68
69 * dbus.texi (Receiving Method Calls): New function
70 dbus-register-service. Rearrange node.
71
722011-01-07 Paul Eggert <eggert@cs.ucla.edu>
73
74 * texinfo.tex: Update to version 2010-12-23.17 from gnulib,
75 which in turn is copied from ftp://tug.org/tex/.
76
772011-01-04 Jan Moringen <jan.moringen@uni-bielefeld.de>
78
79 * dbus.texi (Receiving Method Calls): Describe new optional
80 parameter dont-register-service of dbus-register-{method,property}.
81
822010-12-17 Daiki Ueno <ueno@unixuser.org>
83
84 * epa.texi (Encrypting/decrypting *.gpg files): Mention
85 epa-file-select-keys.
86
872010-12-16 Lars Magne Ingebrigtsen <larsi@gnus.org>
88
89 * gnus.texi (Archived Messages): Remove outdated text.
90
912010-12-16 Teodor Zlatanov <tzz@lifelogs.com>
92
93 * gnus.texi (Foreign Groups): Added clarification of foreign groups.
94
952010-12-15 Andrew Cohen <cohen@andy.bu.edu>
96
97 * gnus.texi (The hyrex Engine): Say that this engine is obsolete.
98
992010-12-14 Andrew Cohen <cohen@andy.bu.edu>
100
101 * gnus.texi (The swish++ Engine): Add customizable parameters
102 descriptions.
103 (The swish-e Engine): Ditto.
104
1052010-12-14 Michael Albinus <michael.albinus@gmx.de>
106
107 * tramp.texi (Inline methods): Add "ksu" method.
108 (Remote processes): Add example with remote `default-directory'.
109
1102010-12-14 Glenn Morris <rgm@gnu.org>
111
112 * faq.texi (Expanding aliases when sending mail):
113 Now build-mail-aliases is interactive.
114
1152010-12-13 Andrew Cohen <cohen@andy.bu.edu>
116
117 * gnus.texi: First pass at adding (rough) nnir documentation.
118
1192010-12-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
120
121 * gnus.texi (Filtering New Groups):
122 Mention gnus-auto-subscribed-categories.
123 (The First Time): Remove, since default-subscribed-newsgroups has been
124 removed.
125
1262010-12-13 Glenn Morris <rgm@gnu.org>
127
128 * cl.texi (For Clauses): Small fixes for frames and windows.
129
12010-12-11 Carsten Dominik <carsten.dominik@gmail.com> 1302010-12-11 Carsten Dominik <carsten.dominik@gmail.com>
2 131
3 * org.texi (Using capture): Document using prefix arguments for 132 * org.texi (Using capture): Document using prefix arguments for
@@ -7475,9 +7604,7 @@
7475;; coding: utf-8 7604;; coding: utf-8
7476;; End: 7605;; End:
7477 7606
7478 Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 7607 Copyright (C) 1993-1999, 2001-2011 Free Software Foundation, Inc.
7479 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
7480 Free Software Foundation, Inc.
7481 7608
7482 This file is part of GNU Emacs. 7609 This file is part of GNU Emacs.
7483 7610
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index deeafa2c1b2..f1dbf3bcc08 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -1,8 +1,6 @@
1#### Makefile for documentation other than the Emacs manual. 1#### Makefile for documentation other than the Emacs manual.
2 2
3# Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 3# Copyright (C) 1994, 1996-2011 Free Software Foundation, Inc.
4# 2004, 2005, 2006, 2007, 2008, 2009, 2010
5# Free Software Foundation, Inc.
6 4
7# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
8 6
@@ -42,7 +40,8 @@ emacsdir = $(srcdir)/../emacs
42 40
43# The makeinfo program is part of the Texinfo distribution. 41# The makeinfo program is part of the Texinfo distribution.
44# Use --force so that it generates output even if there are errors. 42# Use --force so that it generates output even if there are errors.
45MAKEINFO = makeinfo --force -I$(emacsdir) 43MAKEINFO = @MAKEINFO@
44MAKEINFO_OPTS = --force -I$(emacsdir)
46 45
47# Also add new entries to INFO_FILES in the top-level Makefile.in. 46# Also add new entries to INFO_FILES in the top-level Makefile.in.
48INFO_TARGETS = \ 47INFO_TARGETS = \
@@ -62,6 +61,7 @@ INFO_TARGETS = \
62 $(infodir)/emacs-mime \ 61 $(infodir)/emacs-mime \
63 $(infodir)/epa \ 62 $(infodir)/epa \
64 $(infodir)/erc \ 63 $(infodir)/erc \
64 $(infodir)/ert \
65 $(infodir)/eshell \ 65 $(infodir)/eshell \
66 $(infodir)/eudc \ 66 $(infodir)/eudc \
67 $(infodir)/efaq \ 67 $(infodir)/efaq \
@@ -112,6 +112,7 @@ DVI_TARGETS = \
112 emacs-mime.dvi \ 112 emacs-mime.dvi \
113 epa.dvi \ 113 epa.dvi \
114 erc.dvi \ 114 erc.dvi \
115 ert.dvi \
115 eshell.dvi \ 116 eshell.dvi \
116 eudc.dvi \ 117 eudc.dvi \
117 faq.dvi \ 118 faq.dvi \
@@ -162,6 +163,7 @@ PDF_TARGETS = \
162 emacs-mime.pdf \ 163 emacs-mime.pdf \
163 epa.pdf \ 164 epa.pdf \
164 erc.pdf \ 165 erc.pdf \
166 ert.pdf \
165 eshell.pdf \ 167 eshell.pdf \
166 eudc.pdf \ 168 eudc.pdf \
167 faq.pdf \ 169 faq.pdf \
@@ -198,7 +200,8 @@ PDF_TARGETS = \
198TEXI2DVI = texi2dvi 200TEXI2DVI = texi2dvi
199TEXI2PDF = texi2pdf 201TEXI2PDF = texi2pdf
200 202
201ENVADD = TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)" 203ENVADD = TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \
204 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
202 205
203mkinfodir = @cd ${srcdir}; test -d ${infodir} || mkdir ${infodir} || test -d ${infodir} 206mkinfodir = @cd ${srcdir}; test -d ${infodir} || mkdir ${infodir} || test -d ${infodir}
204 207
@@ -219,7 +222,7 @@ pdf: $(PDF_TARGETS)
219ada-mode : $(infodir)/ada-mode 222ada-mode : $(infodir)/ada-mode
220$(infodir)/ada-mode: ada-mode.texi 223$(infodir)/ada-mode: ada-mode.texi
221 $(mkinfodir) 224 $(mkinfodir)
222 cd $(srcdir); $(MAKEINFO) $< 225 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
223ada-mode.dvi: ${srcdir}/ada-mode.texi 226ada-mode.dvi: ${srcdir}/ada-mode.texi
224 $(ENVADD) $(TEXI2DVI) $< 227 $(ENVADD) $(TEXI2DVI) $<
225ada-mode.pdf: ${srcdir}/ada-mode.texi 228ada-mode.pdf: ${srcdir}/ada-mode.texi
@@ -228,7 +231,7 @@ ada-mode.pdf: ${srcdir}/ada-mode.texi
228auth : $(infodir)/auth 231auth : $(infodir)/auth
229$(infodir)/auth: auth.texi 232$(infodir)/auth: auth.texi
230 $(mkinfodir) 233 $(mkinfodir)
231 cd $(srcdir); $(MAKEINFO) $< 234 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
232auth.dvi: ${srcdir}/auth.texi 235auth.dvi: ${srcdir}/auth.texi
233 $(ENVADD) $(TEXI2DVI) $< 236 $(ENVADD) $(TEXI2DVI) $<
234auth.pdf: ${srcdir}/auth.texi 237auth.pdf: ${srcdir}/auth.texi
@@ -237,7 +240,7 @@ auth.pdf: ${srcdir}/auth.texi
237autotype : $(infodir)/autotype 240autotype : $(infodir)/autotype
238$(infodir)/autotype: autotype.texi 241$(infodir)/autotype: autotype.texi
239 $(mkinfodir) 242 $(mkinfodir)
240 cd $(srcdir); $(MAKEINFO) $< 243 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
241autotype.dvi: ${srcdir}/autotype.texi 244autotype.dvi: ${srcdir}/autotype.texi
242 $(ENVADD) $(TEXI2DVI) $< 245 $(ENVADD) $(TEXI2DVI) $<
243autotype.pdf: ${srcdir}/autotype.texi 246autotype.pdf: ${srcdir}/autotype.texi
@@ -246,7 +249,7 @@ autotype.pdf: ${srcdir}/autotype.texi
246calc : $(infodir)/calc 249calc : $(infodir)/calc
247$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi 250$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi
248 $(mkinfodir) 251 $(mkinfodir)
249 cd $(srcdir); $(MAKEINFO) $< 252 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
250calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi 253calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
251 $(ENVADD) $(TEXI2DVI) $< 254 $(ENVADD) $(TEXI2DVI) $<
252calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi 255calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
@@ -255,7 +258,7 @@ calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
255ccmode : $(infodir)/ccmode 258ccmode : $(infodir)/ccmode
256$(infodir)/ccmode: cc-mode.texi 259$(infodir)/ccmode: cc-mode.texi
257 $(mkinfodir) 260 $(mkinfodir)
258 cd $(srcdir); $(MAKEINFO) $< 261 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
259cc-mode.dvi: ${srcdir}/cc-mode.texi 262cc-mode.dvi: ${srcdir}/cc-mode.texi
260 $(ENVADD) $(TEXI2DVI) $< 263 $(ENVADD) $(TEXI2DVI) $<
261cc-mode.pdf: ${srcdir}/cc-mode.texi 264cc-mode.pdf: ${srcdir}/cc-mode.texi
@@ -264,7 +267,7 @@ cc-mode.pdf: ${srcdir}/cc-mode.texi
264cl : $(infodir)/cl 267cl : $(infodir)/cl
265$(infodir)/cl: cl.texi 268$(infodir)/cl: cl.texi
266 $(mkinfodir) 269 $(mkinfodir)
267 cd $(srcdir); $(MAKEINFO) $< 270 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
268cl.dvi: ${srcdir}/cl.texi 271cl.dvi: ${srcdir}/cl.texi
269 $(ENVADD) $(TEXI2DVI) $< 272 $(ENVADD) $(TEXI2DVI) $<
270cl.pdf: ${srcdir}/cl.texi 273cl.pdf: ${srcdir}/cl.texi
@@ -273,7 +276,7 @@ cl.pdf: ${srcdir}/cl.texi
273dbus : $(infodir)/dbus 276dbus : $(infodir)/dbus
274$(infodir)/dbus: dbus.texi 277$(infodir)/dbus: dbus.texi
275 $(mkinfodir) 278 $(mkinfodir)
276 cd $(srcdir); $(MAKEINFO) $< 279 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
277dbus.dvi: ${srcdir}/dbus.texi 280dbus.dvi: ${srcdir}/dbus.texi
278 $(ENVADD) $(TEXI2DVI) $< 281 $(ENVADD) $(TEXI2DVI) $<
279dbus.pdf: ${srcdir}/dbus.texi 282dbus.pdf: ${srcdir}/dbus.texi
@@ -282,7 +285,7 @@ dbus.pdf: ${srcdir}/dbus.texi
282dired-x : $(infodir)/dired-x 285dired-x : $(infodir)/dired-x
283$(infodir)/dired-x: dired-x.texi 286$(infodir)/dired-x: dired-x.texi
284 $(mkinfodir) 287 $(mkinfodir)
285 cd $(srcdir); $(MAKEINFO) $< 288 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
286dired-x.dvi: ${srcdir}/dired-x.texi 289dired-x.dvi: ${srcdir}/dired-x.texi
287 $(ENVADD) $(TEXI2DVI) $< 290 $(ENVADD) $(TEXI2DVI) $<
288dired-x.pdf: ${srcdir}/dired-x.texi 291dired-x.pdf: ${srcdir}/dired-x.texi
@@ -291,7 +294,7 @@ dired-x.pdf: ${srcdir}/dired-x.texi
291ebrowse : $(infodir)/ebrowse 294ebrowse : $(infodir)/ebrowse
292$(infodir)/ebrowse: ebrowse.texi 295$(infodir)/ebrowse: ebrowse.texi
293 $(mkinfodir) 296 $(mkinfodir)
294 cd $(srcdir); $(MAKEINFO) $< 297 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
295ebrowse.dvi: ${srcdir}/ebrowse.texi 298ebrowse.dvi: ${srcdir}/ebrowse.texi
296 $(ENVADD) $(TEXI2DVI) $< 299 $(ENVADD) $(TEXI2DVI) $<
297ebrowse.pdf: ${srcdir}/ebrowse.texi 300ebrowse.pdf: ${srcdir}/ebrowse.texi
@@ -300,7 +303,7 @@ ebrowse.pdf: ${srcdir}/ebrowse.texi
300ede : $(infodir)/ede 303ede : $(infodir)/ede
301$(infodir)/ede: ede.texi 304$(infodir)/ede: ede.texi
302 $(mkinfodir) 305 $(mkinfodir)
303 cd $(srcdir); $(MAKEINFO) $< 306 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
304ede.dvi: ${srcdir}/ede.texi 307ede.dvi: ${srcdir}/ede.texi
305 $(ENVADD) $(TEXI2DVI) $< 308 $(ENVADD) $(TEXI2DVI) $<
306ede.pdf: ${srcdir}/ede.texi 309ede.pdf: ${srcdir}/ede.texi
@@ -309,7 +312,7 @@ ede.pdf: ${srcdir}/ede.texi
309ediff : $(infodir)/ediff 312ediff : $(infodir)/ediff
310$(infodir)/ediff: ediff.texi 313$(infodir)/ediff: ediff.texi
311 $(mkinfodir) 314 $(mkinfodir)
312 cd $(srcdir); $(MAKEINFO) $< 315 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
313ediff.dvi: ${srcdir}/ediff.texi 316ediff.dvi: ${srcdir}/ediff.texi
314 $(ENVADD) $(TEXI2DVI) $< 317 $(ENVADD) $(TEXI2DVI) $<
315ediff.pdf: ${srcdir}/ediff.texi 318ediff.pdf: ${srcdir}/ediff.texi
@@ -318,7 +321,7 @@ ediff.pdf: ${srcdir}/ediff.texi
318edt : $(infodir)/edt 321edt : $(infodir)/edt
319$(infodir)/edt: edt.texi 322$(infodir)/edt: edt.texi
320 $(mkinfodir) 323 $(mkinfodir)
321 cd $(srcdir); $(MAKEINFO) $< 324 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
322edt.dvi: ${srcdir}/edt.texi 325edt.dvi: ${srcdir}/edt.texi
323 $(ENVADD) $(TEXI2DVI) $< 326 $(ENVADD) $(TEXI2DVI) $<
324edt.pdf: ${srcdir}/edt.texi 327edt.pdf: ${srcdir}/edt.texi
@@ -327,7 +330,7 @@ edt.pdf: ${srcdir}/edt.texi
327eieio : $(infodir)/eieio 330eieio : $(infodir)/eieio
328$(infodir)/eieio: eieio.texi 331$(infodir)/eieio: eieio.texi
329 $(mkinfodir) 332 $(mkinfodir)
330 cd $(srcdir); $(MAKEINFO) $< 333 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
331eieio.dvi: ${srcdir}/eieio.texi 334eieio.dvi: ${srcdir}/eieio.texi
332 $(ENVADD) $(TEXI2DVI) $< 335 $(ENVADD) $(TEXI2DVI) $<
333eieio.pdf: ${srcdir}/eieio.texi 336eieio.pdf: ${srcdir}/eieio.texi
@@ -336,7 +339,7 @@ eieio.pdf: ${srcdir}/eieio.texi
336emacs-mime : $(infodir)/emacs-mime 339emacs-mime : $(infodir)/emacs-mime
337$(infodir)/emacs-mime: emacs-mime.texi 340$(infodir)/emacs-mime: emacs-mime.texi
338 $(mkinfodir) 341 $(mkinfodir)
339 cd $(srcdir); $(MAKEINFO) --enable-encoding $< 342 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding $<
340emacs-mime.dvi: ${srcdir}/emacs-mime.texi 343emacs-mime.dvi: ${srcdir}/emacs-mime.texi
341 $(ENVADD) $(TEXI2DVI) $< 344 $(ENVADD) $(TEXI2DVI) $<
342emacs-mime.pdf: ${srcdir}/emacs-mime.texi 345emacs-mime.pdf: ${srcdir}/emacs-mime.texi
@@ -345,7 +348,7 @@ emacs-mime.pdf: ${srcdir}/emacs-mime.texi
345epa : $(infodir)/epa 348epa : $(infodir)/epa
346$(infodir)/epa: epa.texi 349$(infodir)/epa: epa.texi
347 $(mkinfodir) 350 $(mkinfodir)
348 cd $(srcdir); $(MAKEINFO) $< 351 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
349epa.dvi: ${srcdir}/epa.texi 352epa.dvi: ${srcdir}/epa.texi
350 $(ENVADD) $(TEXI2DVI) $< 353 $(ENVADD) $(TEXI2DVI) $<
351epa.pdf: ${srcdir}/epa.texi 354epa.pdf: ${srcdir}/epa.texi
@@ -354,16 +357,24 @@ epa.pdf: ${srcdir}/epa.texi
354erc : $(infodir)/erc 357erc : $(infodir)/erc
355$(infodir)/erc: erc.texi 358$(infodir)/erc: erc.texi
356 $(mkinfodir) 359 $(mkinfodir)
357 cd $(srcdir); $(MAKEINFO) $< 360 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
358erc.dvi: ${srcdir}/erc.texi 361erc.dvi: ${srcdir}/erc.texi
359 $(ENVADD) $(TEXI2DVI) $< 362 $(ENVADD) $(TEXI2DVI) $<
360erc.pdf: ${srcdir}/erc.texi 363erc.pdf: ${srcdir}/erc.texi
361 $(ENVADD) $(TEXI2PDF) $< 364 $(ENVADD) $(TEXI2PDF) $<
362 365
366ert : $(infodir)/ert
367$(infodir)/ert: ert.texi $(infodir)
368 cd $(srcdir); $(MAKEINFO) ert.texi
369ert.dvi: ert.texi
370 $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi
371ert.pdf: ert.texi
372 $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi
373
363eshell : $(infodir)/eshell 374eshell : $(infodir)/eshell
364$(infodir)/eshell: eshell.texi 375$(infodir)/eshell: eshell.texi
365 $(mkinfodir) 376 $(mkinfodir)
366 cd $(srcdir); $(MAKEINFO) $< 377 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
367eshell.dvi: ${srcdir}/eshell.texi 378eshell.dvi: ${srcdir}/eshell.texi
368 $(ENVADD) $(TEXI2DVI) $< 379 $(ENVADD) $(TEXI2DVI) $<
369eshell.pdf: ${srcdir}/eshell.texi 380eshell.pdf: ${srcdir}/eshell.texi
@@ -372,7 +383,7 @@ eshell.pdf: ${srcdir}/eshell.texi
372eudc : $(infodir)/eudc 383eudc : $(infodir)/eudc
373$(infodir)/eudc: eudc.texi 384$(infodir)/eudc: eudc.texi
374 $(mkinfodir) 385 $(mkinfodir)
375 cd $(srcdir); $(MAKEINFO) $< 386 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
376eudc.dvi: ${srcdir}/eudc.texi 387eudc.dvi: ${srcdir}/eudc.texi
377 $(ENVADD) $(TEXI2DVI) $< 388 $(ENVADD) $(TEXI2DVI) $<
378eudc.pdf: ${srcdir}/eudc.texi 389eudc.pdf: ${srcdir}/eudc.texi
@@ -381,7 +392,7 @@ eudc.pdf: ${srcdir}/eudc.texi
381efaq : $(infodir)/efaq 392efaq : $(infodir)/efaq
382$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi 393$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi
383 $(mkinfodir) 394 $(mkinfodir)
384 cd $(srcdir); $(MAKEINFO) $< 395 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
385faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi 396faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
386 $(ENVADD) $(TEXI2DVI) $< 397 $(ENVADD) $(TEXI2DVI) $<
387faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi 398faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
@@ -390,7 +401,7 @@ faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
390flymake : $(infodir)/flymake 401flymake : $(infodir)/flymake
391$(infodir)/flymake: flymake.texi 402$(infodir)/flymake: flymake.texi
392 $(mkinfodir) 403 $(mkinfodir)
393 cd $(srcdir); $(MAKEINFO) $< 404 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
394flymake.dvi: ${srcdir}/flymake.texi 405flymake.dvi: ${srcdir}/flymake.texi
395 $(ENVADD) $(TEXI2DVI) $< 406 $(ENVADD) $(TEXI2DVI) $<
396flymake.pdf: ${srcdir}/flymake.texi 407flymake.pdf: ${srcdir}/flymake.texi
@@ -399,7 +410,7 @@ flymake.pdf: ${srcdir}/flymake.texi
399forms : $(infodir)/forms 410forms : $(infodir)/forms
400$(infodir)/forms: forms.texi 411$(infodir)/forms: forms.texi
401 $(mkinfodir) 412 $(mkinfodir)
402 cd $(srcdir); $(MAKEINFO) $< 413 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
403forms.dvi: ${srcdir}/forms.texi 414forms.dvi: ${srcdir}/forms.texi
404 $(ENVADD) $(TEXI2DVI) $< 415 $(ENVADD) $(TEXI2DVI) $<
405forms.pdf: ${srcdir}/forms.texi 416forms.pdf: ${srcdir}/forms.texi
@@ -409,7 +420,7 @@ forms.pdf: ${srcdir}/forms.texi
409gnus : $(infodir)/gnus 420gnus : $(infodir)/gnus
410$(infodir)/gnus: gnus.texi gnus-faq.texi 421$(infodir)/gnus: gnus.texi gnus-faq.texi
411 $(mkinfodir) 422 $(mkinfodir)
412 cd $(srcdir); $(MAKEINFO) $< 423 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
413gnus.dvi: ${srcdir}/gnus.texi gnus-faq.texi 424gnus.dvi: ${srcdir}/gnus.texi gnus-faq.texi
414 sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi 425 sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi
415 $(ENVADD) $(TEXI2DVI) gnustmp.texi 426 $(ENVADD) $(TEXI2DVI) gnustmp.texi
@@ -426,7 +437,7 @@ gnus.pdf: ${srcdir}/gnus.texi gnus-faq.texi
426idlwave : $(infodir)/idlwave 437idlwave : $(infodir)/idlwave
427$(infodir)/idlwave: idlwave.texi 438$(infodir)/idlwave: idlwave.texi
428 $(mkinfodir) 439 $(mkinfodir)
429 cd $(srcdir); $(MAKEINFO) --no-split $< 440 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split $<
430idlwave.dvi: ${srcdir}/idlwave.texi 441idlwave.dvi: ${srcdir}/idlwave.texi
431 $(ENVADD) $(TEXI2DVI) $< 442 $(ENVADD) $(TEXI2DVI) $<
432idlwave.pdf: ${srcdir}/idlwave.texi 443idlwave.pdf: ${srcdir}/idlwave.texi
@@ -438,7 +449,7 @@ idlwave.pdf: ${srcdir}/idlwave.texi
438###info : $(infodir)/info # circular! 449###info : $(infodir)/info # circular!
439$(infodir)/info: info.texi 450$(infodir)/info: info.texi
440 $(mkinfodir) 451 $(mkinfodir)
441 cd $(srcdir); $(MAKEINFO) --no-split $< -o $@ 452 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split $< -o $@
442info.dvi: ${srcdir}/info.texi 453info.dvi: ${srcdir}/info.texi
443 $(ENVADD) $(TEXI2DVI) $< 454 $(ENVADD) $(TEXI2DVI) $<
444info.pdf: ${srcdir}/info.texi 455info.pdf: ${srcdir}/info.texi
@@ -447,7 +458,7 @@ info.pdf: ${srcdir}/info.texi
447mairix-el : $(infodir)/mairix-el 458mairix-el : $(infodir)/mairix-el
448$(infodir)/mairix-el: mairix-el.texi 459$(infodir)/mairix-el: mairix-el.texi
449 $(mkinfodir) 460 $(mkinfodir)
450 cd $(srcdir); $(MAKEINFO) $< 461 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
451mairix-el.dvi: ${srcdir}/mairix-el.texi 462mairix-el.dvi: ${srcdir}/mairix-el.texi
452 $(ENVADD) $(TEXI2DVI) $< 463 $(ENVADD) $(TEXI2DVI) $<
453mairix-el.pdf: ${srcdir}/mairix-el.texi 464mairix-el.pdf: ${srcdir}/mairix-el.texi
@@ -456,7 +467,7 @@ mairix-el.pdf: ${srcdir}/mairix-el.texi
456message : $(infodir)/message 467message : $(infodir)/message
457$(infodir)/message: message.texi 468$(infodir)/message: message.texi
458 $(mkinfodir) 469 $(mkinfodir)
459 cd $(srcdir); $(MAKEINFO) $< 470 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
460message.dvi: ${srcdir}/message.texi 471message.dvi: ${srcdir}/message.texi
461 $(ENVADD) $(TEXI2DVI) $< 472 $(ENVADD) $(TEXI2DVI) $<
462message.pdf: ${srcdir}/message.texi 473message.pdf: ${srcdir}/message.texi
@@ -465,7 +476,7 @@ message.pdf: ${srcdir}/message.texi
465mh-e : $(infodir)/mh-e 476mh-e : $(infodir)/mh-e
466$(infodir)/mh-e: mh-e.texi 477$(infodir)/mh-e: mh-e.texi
467 $(mkinfodir) 478 $(mkinfodir)
468 cd $(srcdir); $(MAKEINFO) $< 479 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
469mh-e.dvi: ${srcdir}/mh-e.texi 480mh-e.dvi: ${srcdir}/mh-e.texi
470 $(ENVADD) $(TEXI2DVI) $< 481 $(ENVADD) $(TEXI2DVI) $<
471mh-e.pdf: ${srcdir}/mh-e.texi 482mh-e.pdf: ${srcdir}/mh-e.texi
@@ -474,7 +485,7 @@ mh-e.pdf: ${srcdir}/mh-e.texi
474newsticker : $(infodir)/newsticker 485newsticker : $(infodir)/newsticker
475$(infodir)/newsticker: newsticker.texi 486$(infodir)/newsticker: newsticker.texi
476 $(mkinfodir) 487 $(mkinfodir)
477 cd $(srcdir); $(MAKEINFO) $< 488 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
478newsticker.dvi: ${srcdir}/newsticker.texi 489newsticker.dvi: ${srcdir}/newsticker.texi
479 $(ENVADD) $(TEXI2DVI) $< 490 $(ENVADD) $(TEXI2DVI) $<
480newsticker.pdf: ${srcdir}/newsticker.texi 491newsticker.pdf: ${srcdir}/newsticker.texi
@@ -483,7 +494,7 @@ newsticker.pdf: ${srcdir}/newsticker.texi
483nxml-mode : $(infodir)/nxml-mode 494nxml-mode : $(infodir)/nxml-mode
484$(infodir)/nxml-mode: nxml-mode.texi 495$(infodir)/nxml-mode: nxml-mode.texi
485 $(mkinfodir) 496 $(mkinfodir)
486 cd $(srcdir); $(MAKEINFO) $< 497 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
487nxml-mode.dvi: ${srcdir}/nxml-mode.texi 498nxml-mode.dvi: ${srcdir}/nxml-mode.texi
488 $(ENVADD) $(TEXI2DVI) $< 499 $(ENVADD) $(TEXI2DVI) $<
489nxml-mode.pdf: ${srcdir}/nxml-mode.texi 500nxml-mode.pdf: ${srcdir}/nxml-mode.texi
@@ -492,7 +503,7 @@ nxml-mode.pdf: ${srcdir}/nxml-mode.texi
492org : $(infodir)/org 503org : $(infodir)/org
493$(infodir)/org: org.texi 504$(infodir)/org: org.texi
494 $(mkinfodir) 505 $(mkinfodir)
495 cd $(srcdir); $(MAKEINFO) $< 506 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
496org.dvi: ${srcdir}/org.texi 507org.dvi: ${srcdir}/org.texi
497 $(ENVADD) $(TEXI2DVI) $< 508 $(ENVADD) $(TEXI2DVI) $<
498org.pdf: ${srcdir}/org.texi 509org.pdf: ${srcdir}/org.texi
@@ -501,7 +512,7 @@ org.pdf: ${srcdir}/org.texi
501pcl-cvs : $(infodir)/pcl-cvs 512pcl-cvs : $(infodir)/pcl-cvs
502$(infodir)/pcl-cvs: pcl-cvs.texi 513$(infodir)/pcl-cvs: pcl-cvs.texi
503 $(mkinfodir) 514 $(mkinfodir)
504 cd $(srcdir); $(MAKEINFO) $< 515 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
505pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi 516pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi
506 $(ENVADD) $(TEXI2DVI) $< 517 $(ENVADD) $(TEXI2DVI) $<
507pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi 518pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi
@@ -510,7 +521,7 @@ pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi
510pgg : $(infodir)/pgg 521pgg : $(infodir)/pgg
511$(infodir)/pgg: pgg.texi 522$(infodir)/pgg: pgg.texi
512 $(mkinfodir) 523 $(mkinfodir)
513 cd $(srcdir); $(MAKEINFO) $< 524 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
514pgg.dvi: ${srcdir}/pgg.texi 525pgg.dvi: ${srcdir}/pgg.texi
515 $(ENVADD) $(TEXI2DVI) $< 526 $(ENVADD) $(TEXI2DVI) $<
516pgg.pdf: ${srcdir}/pgg.texi 527pgg.pdf: ${srcdir}/pgg.texi
@@ -519,7 +530,7 @@ pgg.pdf: ${srcdir}/pgg.texi
519rcirc : $(infodir)/rcirc 530rcirc : $(infodir)/rcirc
520$(infodir)/rcirc: rcirc.texi 531$(infodir)/rcirc: rcirc.texi
521 $(mkinfodir) 532 $(mkinfodir)
522 cd $(srcdir); $(MAKEINFO) $< 533 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
523rcirc.dvi: ${srcdir}/rcirc.texi 534rcirc.dvi: ${srcdir}/rcirc.texi
524 $(ENVADD) $(TEXI2DVI) $< 535 $(ENVADD) $(TEXI2DVI) $<
525rcirc.pdf: ${srcdir}/rcirc.texi 536rcirc.pdf: ${srcdir}/rcirc.texi
@@ -528,7 +539,7 @@ rcirc.pdf: ${srcdir}/rcirc.texi
528reftex : $(infodir)/reftex 539reftex : $(infodir)/reftex
529$(infodir)/reftex: reftex.texi 540$(infodir)/reftex: reftex.texi
530 $(mkinfodir) 541 $(mkinfodir)
531 cd $(srcdir); $(MAKEINFO) $< 542 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
532reftex.dvi: ${srcdir}/reftex.texi 543reftex.dvi: ${srcdir}/reftex.texi
533 $(ENVADD) $(TEXI2DVI) $< 544 $(ENVADD) $(TEXI2DVI) $<
534reftex.pdf: ${srcdir}/reftex.texi 545reftex.pdf: ${srcdir}/reftex.texi
@@ -537,7 +548,7 @@ reftex.pdf: ${srcdir}/reftex.texi
537remember : $(infodir)/remember 548remember : $(infodir)/remember
538$(infodir)/remember: remember.texi 549$(infodir)/remember: remember.texi
539 $(mkinfodir) 550 $(mkinfodir)
540 cd $(srcdir); $(MAKEINFO) $< 551 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
541remember.dvi: ${srcdir}/remember.texi 552remember.dvi: ${srcdir}/remember.texi
542 $(ENVADD) $(TEXI2DVI) $< 553 $(ENVADD) $(TEXI2DVI) $<
543remember.pdf: ${srcdir}/remember.texi 554remember.pdf: ${srcdir}/remember.texi
@@ -546,7 +557,7 @@ remember.pdf: ${srcdir}/remember.texi
546sasl : $(infodir)/sasl 557sasl : $(infodir)/sasl
547$(infodir)/sasl: sasl.texi 558$(infodir)/sasl: sasl.texi
548 $(mkinfodir) 559 $(mkinfodir)
549 cd $(srcdir); $(MAKEINFO) $< 560 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
550sasl.dvi: ${srcdir}/sasl.texi 561sasl.dvi: ${srcdir}/sasl.texi
551 $(ENVADD) $(TEXI2DVI) $< 562 $(ENVADD) $(TEXI2DVI) $<
552sasl.pdf: ${srcdir}/sasl.texi 563sasl.pdf: ${srcdir}/sasl.texi
@@ -555,7 +566,7 @@ sasl.pdf: ${srcdir}/sasl.texi
555sc : $(infodir)/sc 566sc : $(infodir)/sc
556$(infodir)/sc: sc.texi 567$(infodir)/sc: sc.texi
557 $(mkinfodir) 568 $(mkinfodir)
558 cd $(srcdir); $(MAKEINFO) $< 569 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
559sc.dvi: ${srcdir}/sc.texi 570sc.dvi: ${srcdir}/sc.texi
560 $(ENVADD) $(TEXI2DVI) $< 571 $(ENVADD) $(TEXI2DVI) $<
561sc.pdf: ${srcdir}/sc.texi 572sc.pdf: ${srcdir}/sc.texi
@@ -564,7 +575,7 @@ sc.pdf: ${srcdir}/sc.texi
564semantic : $(infodir)/semantic 575semantic : $(infodir)/semantic
565$(infodir)/semantic: semantic.texi sem-user.texi 576$(infodir)/semantic: semantic.texi sem-user.texi
566 $(mkinfodir) 577 $(mkinfodir)
567 cd $(srcdir); $(MAKEINFO) $< 578 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
568semantic.dvi: ${srcdir}/semantic.texi sem-user.texi 579semantic.dvi: ${srcdir}/semantic.texi sem-user.texi
569 $(ENVADD) $(TEXI2DVI) $< 580 $(ENVADD) $(TEXI2DVI) $<
570semantic.pdf: ${srcdir}/semantic.texi sem-user.texi 581semantic.pdf: ${srcdir}/semantic.texi sem-user.texi
@@ -573,7 +584,7 @@ semantic.pdf: ${srcdir}/semantic.texi sem-user.texi
573ses : $(infodir)/ses 584ses : $(infodir)/ses
574$(infodir)/ses: ses.texi 585$(infodir)/ses: ses.texi
575 $(mkinfodir) 586 $(mkinfodir)
576 cd $(srcdir); $(MAKEINFO) $< 587 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
577ses.dvi: ${srcdir}/ses.texi 588ses.dvi: ${srcdir}/ses.texi
578 $(ENVADD) $(TEXI2DVI) $< 589 $(ENVADD) $(TEXI2DVI) $<
579ses.pdf: ${srcdir}/ses.texi 590ses.pdf: ${srcdir}/ses.texi
@@ -582,7 +593,7 @@ ses.pdf: ${srcdir}/ses.texi
582sieve : $(infodir)/sieve 593sieve : $(infodir)/sieve
583$(infodir)/sieve: sieve.texi 594$(infodir)/sieve: sieve.texi
584 $(mkinfodir) 595 $(mkinfodir)
585 cd $(srcdir); $(MAKEINFO) $< 596 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
586sieve.dvi: ${srcdir}/sieve.texi 597sieve.dvi: ${srcdir}/sieve.texi
587 $(ENVADD) $(TEXI2DVI) $< 598 $(ENVADD) $(TEXI2DVI) $<
588sieve.pdf: ${srcdir}/sieve.texi 599sieve.pdf: ${srcdir}/sieve.texi
@@ -591,7 +602,7 @@ sieve.pdf: ${srcdir}/sieve.texi
591smtpmail : $(infodir)/smtpmail 602smtpmail : $(infodir)/smtpmail
592$(infodir)/smtpmail: smtpmail.texi 603$(infodir)/smtpmail: smtpmail.texi
593 $(mkinfodir) 604 $(mkinfodir)
594 cd $(srcdir); $(MAKEINFO) $< 605 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
595smtpmail.dvi: ${srcdir}/smtpmail.texi 606smtpmail.dvi: ${srcdir}/smtpmail.texi
596 $(ENVADD) $(TEXI2DVI) $< 607 $(ENVADD) $(TEXI2DVI) $<
597smtpmail.pdf: ${srcdir}/smtpmail.texi 608smtpmail.pdf: ${srcdir}/smtpmail.texi
@@ -600,7 +611,7 @@ smtpmail.pdf: ${srcdir}/smtpmail.texi
600speedbar : $(infodir)/speedbar 611speedbar : $(infodir)/speedbar
601$(infodir)/speedbar: speedbar.texi 612$(infodir)/speedbar: speedbar.texi
602 $(mkinfodir) 613 $(mkinfodir)
603 cd $(srcdir); $(MAKEINFO) $< 614 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
604speedbar.dvi: ${srcdir}/speedbar.texi 615speedbar.dvi: ${srcdir}/speedbar.texi
605 $(ENVADD) $(TEXI2DVI) $< 616 $(ENVADD) $(TEXI2DVI) $<
606speedbar.pdf: ${srcdir}/speedbar.texi 617speedbar.pdf: ${srcdir}/speedbar.texi
@@ -609,7 +620,7 @@ speedbar.pdf: ${srcdir}/speedbar.texi
609tramp : $(infodir)/tramp 620tramp : $(infodir)/tramp
610$(infodir)/tramp: tramp.texi trampver.texi 621$(infodir)/tramp: tramp.texi trampver.texi
611 $(mkinfodir) 622 $(mkinfodir)
612 cd $(srcdir); $(MAKEINFO) -D emacs $< 623 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) -D emacs $<
613tramp.dvi: ${srcdir}/tramp.texi trampver.texi 624tramp.dvi: ${srcdir}/tramp.texi trampver.texi
614 $(ENVADD) $(TEXI2DVI) $< 625 $(ENVADD) $(TEXI2DVI) $<
615tramp.pdf: ${srcdir}/tramp.texi trampver.texi 626tramp.pdf: ${srcdir}/tramp.texi trampver.texi
@@ -618,7 +629,7 @@ tramp.pdf: ${srcdir}/tramp.texi trampver.texi
618url : $(infodir)/url 629url : $(infodir)/url
619$(infodir)/url: url.texi 630$(infodir)/url: url.texi
620 $(mkinfodir) 631 $(mkinfodir)
621 cd $(srcdir); $(MAKEINFO) $< 632 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
622url.dvi: ${srcdir}/url.texi 633url.dvi: ${srcdir}/url.texi
623 $(ENVADD) $(TEXI2DVI) $< 634 $(ENVADD) $(TEXI2DVI) $<
624url.pdf: ${srcdir}/url.texi 635url.pdf: ${srcdir}/url.texi
@@ -627,7 +638,7 @@ url.pdf: ${srcdir}/url.texi
627vip : $(infodir)/vip 638vip : $(infodir)/vip
628$(infodir)/vip: vip.texi 639$(infodir)/vip: vip.texi
629 $(mkinfodir) 640 $(mkinfodir)
630 cd $(srcdir); $(MAKEINFO) $< 641 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
631vip.dvi: ${srcdir}/vip.texi 642vip.dvi: ${srcdir}/vip.texi
632 $(ENVADD) $(TEXI2DVI) $< 643 $(ENVADD) $(TEXI2DVI) $<
633vip.pdf: ${srcdir}/vip.texi 644vip.pdf: ${srcdir}/vip.texi
@@ -636,7 +647,7 @@ vip.pdf: ${srcdir}/vip.texi
636viper : $(infodir)/viper 647viper : $(infodir)/viper
637$(infodir)/viper: viper.texi 648$(infodir)/viper: viper.texi
638 $(mkinfodir) 649 $(mkinfodir)
639 cd $(srcdir); $(MAKEINFO) $< 650 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
640viper.dvi: ${srcdir}/viper.texi 651viper.dvi: ${srcdir}/viper.texi
641 $(ENVADD) $(TEXI2DVI) $< 652 $(ENVADD) $(TEXI2DVI) $<
642viper.pdf: ${srcdir}/viper.texi 653viper.pdf: ${srcdir}/viper.texi
@@ -645,7 +656,7 @@ viper.pdf: ${srcdir}/viper.texi
645widget : $(infodir)/widget 656widget : $(infodir)/widget
646$(infodir)/widget: widget.texi 657$(infodir)/widget: widget.texi
647 $(mkinfodir) 658 $(mkinfodir)
648 cd $(srcdir); $(MAKEINFO) $< 659 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
649widget.dvi: ${srcdir}/widget.texi 660widget.dvi: ${srcdir}/widget.texi
650 $(ENVADD) $(TEXI2DVI) $< 661 $(ENVADD) $(TEXI2DVI) $<
651widget.pdf: ${srcdir}/widget.texi 662widget.pdf: ${srcdir}/widget.texi
@@ -654,7 +665,7 @@ widget.pdf: ${srcdir}/widget.texi
654woman : $(infodir)/woman 665woman : $(infodir)/woman
655$(infodir)/woman: woman.texi 666$(infodir)/woman: woman.texi
656 $(mkinfodir) 667 $(mkinfodir)
657 cd $(srcdir); $(MAKEINFO) $< 668 cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
658woman.dvi: ${srcdir}/woman.texi 669woman.dvi: ${srcdir}/woman.texi
659 $(ENVADD) $(TEXI2DVI) $< 670 $(ENVADD) $(TEXI2DVI) $<
660woman.pdf: ${srcdir}/woman.texi 671woman.pdf: ${srcdir}/woman.texi
diff --git a/doc/misc/ada-mode.texi b/doc/misc/ada-mode.texi
index b746824df67..80949aefb33 100644
--- a/doc/misc/ada-mode.texi
+++ b/doc/misc/ada-mode.texi
@@ -3,8 +3,7 @@
3@settitle Ada Mode 3@settitle Ada Mode
4 4
5@copying 5@copying
6Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 6Copyright @copyright{} 1999-2011 Free Software Foundation, Inc.
72007, 2008, 2009, 2010 Free Software Foundation, Inc.
8 7
9@quotation 8@quotation
10Permission is granted to copy, distribute and/or modify this document 9Permission is granted to copy, distribute and/or modify this document
@@ -1524,7 +1523,3 @@ autofill the current comment.
1524@printindex fn 1523@printindex fn
1525 1524
1526@bye 1525@bye
1527
1528@ignore
1529 arch-tag: 68cf0d8a-55cc-4190-a28d-4984fa56ed1e
1530@end ignore
diff --git a/doc/misc/auth.texi b/doc/misc/auth.texi
index 2ab8fc18817..f19d6e28ddb 100644
--- a/doc/misc/auth.texi
+++ b/doc/misc/auth.texi
@@ -7,7 +7,7 @@
7@copying 7@copying
8This file describes the Emacs auth-source library. 8This file describes the Emacs auth-source library.
9 9
10Copyright @copyright{} 2008, 2009, 2010 Free Software Foundation, Inc. 10Copyright @copyright{} 2008-2011 Free Software Foundation, Inc.
11 11
12@quotation 12@quotation
13Permission is granted to copy, distribute and/or modify this document 13Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi
index 3f7ad21f1d3..bdf9ae7ab17 100644
--- a/doc/misc/autotype.texi
+++ b/doc/misc/autotype.texi
@@ -10,8 +10,7 @@
10@c @cindex autotypist 10@c @cindex autotypist
11 11
12@copying 12@copying
13Copyright @copyright{} 1994, 1995, 1999, 2001, 2002, 2003, 2004, 2005, 13Copyright @copyright{} 1994-1995, 1999, 2001-2011 Free Software Foundation, Inc.
142006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
15 14
16@quotation 15@quotation
17Permission is granted to copy, distribute and/or modify this document 16Permission is granted to copy, distribute and/or modify this document
@@ -664,7 +663,3 @@ of the expansion possibilities.
664@printindex vr 663@printindex vr
665 664
666@bye 665@bye
667
668@ignore
669 arch-tag: 54001b27-5ef8-4a9d-a199-905d650fafba
670@end ignore
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index 58de84b8194..755956a2999 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -94,8 +94,7 @@ This file documents Calc, the GNU Emacs calculator, included with
94GNU Emacs @value{EMACSVER}. 94GNU Emacs @value{EMACSVER}.
95@end ifnotinfo 95@end ifnotinfo
96 96
97Copyright @copyright{} 1990, 1991, 2001, 2002, 2003, 2004, 97Copyright @copyright{} 1990-1991, 2001-2011 Free Software Foundation, Inc.
982005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
99 98
100@quotation 99@quotation
101Permission is granted to copy, distribute and/or modify this document 100Permission is granted to copy, distribute and/or modify this document
@@ -36596,4 +36595,3 @@ the corresponding full Lisp name is derived by adding a prefix of
36596@printindex fn 36595@printindex fn
36597 36596
36598@bye 36597@bye
36599
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index da8e7082909..d4a870346ce 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -159,9 +159,7 @@ CC Mode
159@copying 159@copying
160This manual is for CC Mode in Emacs. 160This manual is for CC Mode in Emacs.
161 161
162Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 162Copyright @copyright{} 1995-2011 Free Software Foundation, Inc.
1632003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
164Free Software Foundation, Inc.
165 163
166@quotation 164@quotation
167Permission is granted to copy, distribute and/or modify this document 165Permission is granted to copy, distribute and/or modify this document
@@ -7014,4 +7012,3 @@ Since most @ccmode{} variables are prepended with the string
7014@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 7012@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
7015 7013
7016@bye 7014@bye
7017
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index 79038792a3e..13fe9b570e2 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -5,8 +5,7 @@
5@copying 5@copying
6This file documents the GNU Emacs Common Lisp emulation package. 6This file documents the GNU Emacs Common Lisp emulation package.
7 7
8Copyright @copyright{} 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 8Copyright @copyright{} 1993, 2001-2011 Free Software Foundation, Inc.
92008, 2009, 2010 Free Software Foundation, Inc.
10 9
11@quotation 10@quotation
12Permission is granted to copy, distribute and/or modify this document 11Permission is granted to copy, distribute and/or modify this document
@@ -2494,15 +2493,18 @@ term restricts the search to just the specified property. The
2494@code{of} term may specify either a buffer or a string. 2493@code{of} term may specify either a buffer or a string.
2495 2494
2496@item for @var{var} being the frames 2495@item for @var{var} being the frames
2497This clause iterates over all frames, i.e., X window system windows 2496This clause iterates over all Emacs frames. The clause @code{screens} is
2498open on Emacs files. The 2497a synonym for @code{frames}. The frames are visited in
2499clause @code{screens} is a synonym for @code{frames}. The frames 2498@code{next-frame} order starting from @code{selected-frame}.
2500are visited in @code{next-frame} order starting from
2501@code{selected-frame}.
2502 2499
2503@item for @var{var} being the windows [of @var{frame}] 2500@item for @var{var} being the windows [of @var{frame}]
2504This clause iterates over the windows (in the Emacs sense) of 2501This clause iterates over the windows (in the Emacs sense) of
2505the current frame, or of the specified @var{frame}. 2502the current frame, or of the specified @var{frame}. It visits windows
2503in @code{next-window} order starting from @code{selected-window}
2504(or @code{frame-selected-window} if you specify @var{frame}).
2505This clause treats the minibuffer window in the same way as
2506@code{next-window} does. For greater flexibility, consider using
2507@code{walk-windows} instead.
2506 2508
2507@item for @var{var} being the buffers 2509@item for @var{var} being the buffers
2508This clause iterates over all buffers in Emacs. It is equivalent 2510This clause iterates over all buffers in Emacs. It is equivalent
@@ -5322,6 +5324,3 @@ recursion.
5322 5324
5323@bye 5325@bye
5324 5326
5325@ignore
5326 arch-tag: b61e7200-3bfa-4a70-a9d3-095e152696f8
5327@end ignore
diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi
index 6f6a897e6dc..e50f48dcec1 100644
--- a/doc/misc/dbus.texi
+++ b/doc/misc/dbus.texi
@@ -9,7 +9,7 @@
9@syncodeindex fn cp 9@syncodeindex fn cp
10 10
11@copying 11@copying
12Copyright @copyright{} 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 12Copyright @copyright{} 2007-2011 Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
15Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
@@ -1243,9 +1243,73 @@ message has been arrived, and @var{handler} is called. Example:
1243@cindex method calls, returning 1243@cindex method calls, returning
1244@cindex returning method calls 1244@cindex returning method calls
1245 1245
1246Emacs can also offer own methods, which can be called by other 1246In order to register methods on the D-Bus, Emacs has to request a well
1247applications. These methods could be an implementation of an 1247known name on the D-Bus under which it will be available for other
1248interface of a well known service, like @samp{org.freedesktop.TextEditor}. 1248clients. Names on the D-Bus can be registered and unregistered using
1249the following functions:
1250
1251@defun dbus-register-service bus service &rest flags
1252Register the known name @var{service} on D-Bus @var{bus}.
1253
1254@var{bus} is either the symbol @code{:system} or the symbol
1255@code{:session}.
1256
1257@var{service} is the service name to be registered on the D-Bus. It
1258must be a known name.
1259
1260@var{flags} is a subset of the following keywords:
1261
1262@itemize
1263@item @code{:allow-replacement}: Allow another service to become the primary
1264owner if requested.
1265
1266@item @code{:replace-existing}: Request to replace the current primary owner.
1267
1268@item @code{:do-not-queue}: If we can not become the primary owner do not
1269place us in the queue.
1270@end itemize
1271
1272One of the following keywords is returned:
1273
1274@itemize
1275
1276@item @code{:primary-owner}: We have become the primary owner of the name
1277@var{service}.
1278
1279@item @code{:in-queue}: We could not become the primary owner and
1280have been placed in the queue.
1281
1282@item @code{:exists}: We already are in the queue.
1283
1284@item @code{:already-owner}: We already are the primary
1285owner.
1286@end itemize
1287@end defun
1288
1289@defun dbus-unregister-service bus service
1290Unregister all objects from D-Bus @var{bus}, registered by Emacs for
1291@var{service}.
1292
1293@var{bus} is either the symbol @code{:system} or the symbol
1294@code{:session}.
1295
1296@var{service} is the D-Bus service name of the D-Bus. It must be a
1297known name. Emacs releases its association to @var{service} from
1298D-Bus.
1299
1300One of the following keywords is returned:
1301
1302@itemize
1303@item @code{:released}: We successfully released the name @var{service}.
1304@item @code{:non-existent}: The name @var{service} does not exist on the bus.
1305@item @code{:not-owner}: We are not an owner of the name @var{service}.
1306@end itemize
1307@end defun
1308
1309When a name has been chosen, Emacs can offer own methods, which can be
1310called by other applications. These methods could be an
1311implementation of an interface of a well known service, like
1312@samp{org.freedesktop.TextEditor}.
1249 1313
1250It could be also an implementation of an own interface. In this case, 1314It could be also an implementation of an own interface. In this case,
1251the service name must be @samp{org.gnu.Emacs}. The object path shall 1315the service name must be @samp{org.gnu.Emacs}. The object path shall
@@ -1264,7 +1328,7 @@ paths, used by offered methods or signals, shall start with this
1264string. 1328string.
1265@end deffn 1329@end deffn
1266 1330
1267@defun dbus-register-method bus service path interface method handler 1331@defun dbus-register-method bus service path interface method handler dont-register-service
1268With this function, an application registers @var{method} on the D-Bus 1332With this function, an application registers @var{method} on the D-Bus
1269@var{bus}. 1333@var{bus}.
1270 1334
@@ -1272,10 +1336,11 @@ With this function, an application registers @var{method} on the D-Bus
1272@code{:session}. 1336@code{:session}.
1273 1337
1274@var{service} is the D-Bus service name of the D-Bus object 1338@var{service} is the D-Bus service name of the D-Bus object
1275@var{method} is registered for. It must be a known name. 1339@var{method} is registered for. It must be a known name (See
1340discussion of @var{dont-register-service} below).
1276 1341
1277@var{path} is the D-Bus object path @var{service} is 1342@var{path} is the D-Bus object path @var{service} is registered (See
1278registered. 1343discussion of @var{dont-register-service} below).
1279 1344
1280@var{interface} is the interface offered by @var{service}. It must 1345@var{interface} is the interface offered by @var{service}. It must
1281provide @var{method}. 1346provide @var{method}.
@@ -1294,6 +1359,13 @@ returning a list containing the object.
1294In case @var{handler} shall return a reply message with an empty 1359In case @var{handler} shall return a reply message with an empty
1295argument list, @var{handler} must return the symbol @code{:ignore}. 1360argument list, @var{handler} must return the symbol @code{:ignore}.
1296 1361
1362When @var{dont-register-service} is non-@code{nil}, the known name
1363@var{service} is not registered. This means that other D-Bus clients
1364have no way of noticing the newly registered method. When interfaces
1365are constructed incrementally by adding single methods or properties
1366at a time, @var{dont-register-service} can be used to prevent other
1367clients from discovering the still incomplete interface.
1368
1297The default D-Bus timeout when waiting for a message reply is 25 1369The default D-Bus timeout when waiting for a message reply is 25
1298seconds. This value could be even smaller, depending on the calling 1370seconds. This value could be even smaller, depending on the calling
1299client. Therefore, @var{handler} shall not last longer than 1371client. Therefore, @var{handler} shall not last longer than
@@ -1368,7 +1440,7 @@ The test runs then
1368@end example 1440@end example
1369@end defun 1441@end defun
1370 1442
1371@defun dbus-register-property bus service path interface property access value &optional emits-signal 1443@defun dbus-register-property bus service path interface property access value &optional emits-signal dont-register-service
1372With this function, an application declares a @var{property} on the D-Bus 1444With this function, an application declares a @var{property} on the D-Bus
1373@var{bus}. 1445@var{bus}.
1374 1446
@@ -1378,8 +1450,8 @@ With this function, an application declares a @var{property} on the D-Bus
1378@var{service} is the D-Bus service name of the D-Bus. It must be a 1450@var{service} is the D-Bus service name of the D-Bus. It must be a
1379known name. 1451known name.
1380 1452
1381@var{path} is the D-Bus object path @var{service} is 1453@var{path} is the D-Bus object path @var{service} is registered (See
1382registered. 1454discussion of @var{dont-register-service} below).
1383 1455
1384@var{interface} is the name of the interface used at @var{path}, 1456@var{interface} is the name of the interface used at @var{path},
1385@var{property} is the name of the property of @var{interface}. 1457@var{property} is the name of the property of @var{interface}.
@@ -1401,6 +1473,13 @@ The interface @samp{org.freedesktop.DBus.Properties} is added to
1401@samp{PropertiesChanged} is sent when the property is changed by 1473@samp{PropertiesChanged} is sent when the property is changed by
1402@code{dbus-set-property}. 1474@code{dbus-set-property}.
1403 1475
1476When @var{dont-register-service} is non-@code{nil}, the known name
1477@var{service} is not registered. This means that other D-Bus clients
1478have no way of noticing the newly registered method. When interfaces
1479are constructed incrementally by adding single methods or properties
1480at a time, @var{dont-register-service} can be used to prevent other
1481clients from discovering the still incomplete interface.
1482
1404@noindent Example: 1483@noindent Example:
1405 1484
1406@lisp 1485@lisp
@@ -1475,18 +1554,6 @@ registered for the respective service, Emacs releases its association
1475to the service from D-Bus. 1554to the service from D-Bus.
1476@end defun 1555@end defun
1477 1556
1478@defun dbus-unregister-service bus service
1479Unregister all objects from D-Bus @var{bus}, registered by Emacs for
1480@var{service}.
1481
1482@var{bus} is either the symbol @code{:system} or the symbol
1483@code{:session}.
1484
1485@var{service} is the D-Bus service name of the D-Bus. It must be a
1486known name. Emacs releases its association to @var{service} from
1487D-Bus.
1488@end defun
1489
1490 1557
1491@node Signals 1558@node Signals
1492@chapter Sending and receiving signals. 1559@chapter Sending and receiving signals.
@@ -1772,7 +1839,3 @@ whether a given D-Bus error is related to them.
1772@include doclicense.texi 1839@include doclicense.texi
1773 1840
1774@bye 1841@bye
1775
1776@ignore
1777 arch-tag: 2eeec19d-0caf-44e0-a193-329d7f9951d8
1778@end ignore
diff --git a/doc/misc/dired-x.texi b/doc/misc/dired-x.texi
index 0d05833d0ac..21f91c9125e 100644
--- a/doc/misc/dired-x.texi
+++ b/doc/misc/dired-x.texi
@@ -18,8 +18,7 @@
18@comment %**end of header (This is for running Texinfo on a region.) 18@comment %**end of header (This is for running Texinfo on a region.)
19 19
20@copying 20@copying
21Copyright @copyright{} 1994, 1995, 1999, 2001, 2002, 2003, 2004, 21Copyright @copyright{} 1994-1995, 1999, 2001-2011 Free Software Foundation, Inc.
222005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
23 22
24@quotation 23@quotation
25Permission is granted to copy, distribute and/or modify this document 24Permission is granted to copy, distribute and/or modify this document
@@ -1258,7 +1257,3 @@ Lawrence R. Dodd
1258@printindex vr 1257@printindex vr
1259 1258
1260@bye 1259@bye
1261
1262@ignore
1263 arch-tag: 201727aa-9318-4c74-a0d7-4f51c550c4de
1264@end ignore
diff --git a/doc/misc/ebrowse.texi b/doc/misc/ebrowse.texi
index 86cae35a6f4..66a5e38443d 100644
--- a/doc/misc/ebrowse.texi
+++ b/doc/misc/ebrowse.texi
@@ -10,8 +10,7 @@
10@copying 10@copying
11This file documents Ebrowse, a C++ class browser for GNU Emacs. 11This file documents Ebrowse, a C++ class browser for GNU Emacs.
12 12
13Copyright @copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 13Copyright @copyright{} 2000-2011 Free Software Foundation, Inc.
142008, 2009, 2010 Free Software Foundation, Inc.
15 14
16@quotation 15@quotation
17Permission is granted to copy, distribute and/or modify this document 16Permission is granted to copy, distribute and/or modify this document
@@ -1451,7 +1450,3 @@ in on with the command @kbd{C-c C-m m}.
1451@printindex cp 1450@printindex cp
1452 1451
1453@bye 1452@bye
1454
1455@ignore
1456 arch-tag: 52fe78ac-a1c4-48e7-815e-0a31acfad4bf
1457@end ignore
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index 7e1d6c7907a..86228a24d06 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -5,8 +5,7 @@
5@copying 5@copying
6This file describes EDE, the Emacs Development Environment. 6This file describes EDE, the Emacs Development Environment.
7 7
8Copyright @copyright{} 1998, 1999, 2000, 2001, 2004, 2005, 2008, 2009, 8Copyright @copyright{} 1998-2001, 2004-2005, 2008-2011 Free Software Foundation, Inc.
92010 Free Software Foundation, Inc.
10 9
11@quotation 10@quotation
12Permission is granted to copy, distribute and/or modify this document 11Permission is granted to copy, distribute and/or modify this document
@@ -3791,7 +3790,3 @@ For example, C code uses .o on unix, and Emacs Lisp uses .elc.
3791@end table 3790@end table
3792 3791
3793@bye 3792@bye
3794
3795@ignore
3796 arch-tag: c9bfdc6e-e6e9-4e87-97f7-d8348342fbf4
3797@end ignore
diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi
index c2897e185bf..2a55541bbfd 100644
--- a/doc/misc/ediff.texi
+++ b/doc/misc/ediff.texi
@@ -25,8 +25,7 @@
25This file documents Ediff, a comprehensive visual interface to Unix diff 25This file documents Ediff, a comprehensive visual interface to Unix diff
26and patch utilities. 26and patch utilities.
27 27
28Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 28Copyright @copyright{} 1995-2011 Free Software Foundation, Inc.
292003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
30 29
31@quotation 30@quotation
32Permission is granted to copy, distribute and/or modify this document 31Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/edt.texi b/doc/misc/edt.texi
index f3d0eacc0f3..e3117d65699 100644
--- a/doc/misc/edt.texi
+++ b/doc/misc/edt.texi
@@ -5,8 +5,7 @@
5@copying 5@copying
6This file documents the EDT emulation package for Emacs. 6This file documents the EDT emulation package for Emacs.
7 7
8Copyright @copyright{} 1986, 1992, 1994, 1995, 1999, 2000, 2001, 2002, 8Copyright @copyright{} 1986, 1992, 1994-1995, 1999-2011
92003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
10Free Software Foundation, Inc. 9Free Software Foundation, Inc.
11 10
12@quotation 11@quotation
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index 169e52c1bd0..1a22a15afba 100644
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -11,7 +11,7 @@
11@copying 11@copying
12This manual documents EIEIO, an object framework for Emacs Lisp. 12This manual documents EIEIO, an object framework for Emacs Lisp.
13 13
14Copyright @copyright{} 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 14Copyright @copyright{} 2007-2011 Free Software Foundation, Inc.
15 15
16@quotation 16@quotation
17Permission is granted to copy, distribute and/or modify this document 17Permission is granted to copy, distribute and/or modify this document
@@ -1906,7 +1906,3 @@ Allow method overloading of method-like functions in Emacs.
1906 1906
1907@contents 1907@contents
1908@bye 1908@bye
1909
1910@ignore
1911 arch-tag: 7225b7c7-2462-4563-99e7-836a20172178
1912@end ignore
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index 9511f6d10c0..62a43aa11bc 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -9,8 +9,7 @@
9@copying 9@copying
10This file documents the Emacs MIME interface functionality. 10This file documents the Emacs MIME interface functionality.
11 11
12Copyright @copyright{} 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 12Copyright @copyright{} 1998-2011 Free Software Foundation, Inc.
132006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
14 13
15@quotation 14@quotation
16Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/epa.texi b/doc/misc/epa.texi
index 7afe9c0c9b8..ae194356c3f 100644
--- a/doc/misc/epa.texi
+++ b/doc/misc/epa.texi
@@ -9,7 +9,7 @@
9@copying 9@copying
10This file describes EasyPG Assistant @value{VERSION}. 10This file describes EasyPG Assistant @value{VERSION}.
11 11
12Copyright @copyright{} 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 12Copyright @copyright{} 2007-2011 Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
15Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
@@ -353,16 +353,21 @@ key in the recipient list, use @samp{encrypt-to} option in
353 353
354@node Encrypting/decrypting *.gpg files 354@node Encrypting/decrypting *.gpg files
355@section Encrypting/decrypting *.gpg files 355@section Encrypting/decrypting *.gpg files
356By default, every file whose extension is @samp{.gpg} will be treated 356By default, every file whose name ends with @samp{.gpg} will be
357as encrypted. That is, when you attempt to open such a file which 357treated as encrypted. That is, when you open such a file, the
358already exists, the decrypted text is inserted in the buffer rather 358decrypted text is inserted in the buffer rather than encrypted one.
359than encrypted one. On the other hand, when you attempt to save the 359Similarly, when you save the buffer to a @samp{foo.gpg} file,
360buffer to a file whose extension is @samp{.gpg}, encrypted data is 360encrypted data is written.
361written.
362 361
363If you want to temporarily disable this behavior, use @kbd{M-x 362The file name pattern for encrypted files can be controlled by
364epa-file-disable}, and then to enable this behavior use @kbd{M-x 363@var{epa-file-name-regexp}.
365epa-file-enable}. 364
365@defvar epa-file-name-regexp
366Regexp which matches filenames treated as encrypted.
367@end defvar
368
369You can disable this behavior with @kbd{M-x epa-file-disable}, and
370then get it back with @kbd{M-x epa-file-enable}.
366 371
367@deffn Command epa-file-disable 372@deffn Command epa-file-disable
368Disable automatic encryption/decryption of *.gpg files. 373Disable automatic encryption/decryption of *.gpg files.
@@ -373,23 +378,48 @@ Enable automatic encryption/decryption of *.gpg files.
373@end deffn 378@end deffn
374 379
375@noindent 380@noindent
376@code{epa-file} will let you select recipients. If you want to 381By default, @code{epa-file} will try to use symmetric encryption, aka
377suppress this question, it might be a good idea to put the following 382password-based encryption. If you want to use public key encryption
378line on the first line of the text being encrypted. 383instead, do @kbd{M-x epa-file-select-keys}, which will pops up the key
384selection dialog.
385
386@deffn Command epa-file-select-keys
387Select recipient keys to encrypt the currently visiting file with
388public key encryption.
389@end deffn
390
391You can also change the default behavior with the variable
392@var{epa-file-select-keys}.
393
394@defvar epa-file-select-keys
395Control whether or not to pop up the key selection dialog.
396@end defvar
397
398For frequently visited files, it might be a good idea to tell Emacs
399which encryption method should be used through @xref{File Variables, ,
400, emacs, the Emacs Manual}. Use the @code{epa-file-encrypt-to} local
401variable for this.
379@vindex epa-file-encrypt-to 402@vindex epa-file-encrypt-to
380 403
404For example, if you want an Elisp file should be encrypted with a
405public key associated with an email address @samp{ueno@@unixuser.org},
406add the following line to the beginning of the file.
407
381@cartouche 408@cartouche
382@lisp 409@lisp
383;; -*- epa-file-encrypt-to: ("ueno@@unixuser.org") -*- 410;; -*- epa-file-encrypt-to: ("ueno@@unixuser.org") -*-
384@end lisp 411@end lisp
385@end cartouche 412@end cartouche
386 413
387The file name extension of encrypted files can be controlled by 414Instead, if you want the file always (regardless of the value of the
388@var{epa-file-name-regexp}. 415@code{epa-file-select-keys} variable) encrypted with symmetric
416encryption, change the line as follows.
389 417
390@defvar epa-file-name-regexp 418@cartouche
391Regexp which matches filenames treated as encrypted. 419@lisp
392@end defvar 420;; -*- epa-file-encrypt-to: nil -*-
421@end lisp
422@end cartouche
393 423
394Other variables which control the automatic encryption/decryption 424Other variables which control the automatic encryption/decryption
395behavior are below. 425behavior are below.
@@ -466,7 +496,3 @@ buffer name is a whitespace.
466@bye 496@bye
467 497
468@c End: 498@c End:
469
470@ignore
471 arch-tag: 7404e246-7d4c-4db4-9332-c1293a455a4f
472@end ignore
diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi
index 1c547bf80e5..1ce6e949da5 100644
--- a/doc/misc/erc.texi
+++ b/doc/misc/erc.texi
@@ -8,7 +8,7 @@
8@copying 8@copying
9This manual is for ERC version 5.3. 9This manual is for ERC version 5.3.
10 10
11Copyright @copyright{} 2005, 2006, 2007, 2008, 2009, 2010 11Copyright @copyright{} 2005-2011
12Free Software Foundation, Inc. 12Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
@@ -1061,7 +1061,3 @@ We switched to using git for our version control system.
1061@printindex cp 1061@printindex cp
1062 1062
1063@bye 1063@bye
1064
1065@ignore
1066 arch-tag: cf9cfaff-fc12-4297-ad15-ec2493002b1e
1067@end ignore
diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi
new file mode 100644
index 00000000000..978cac6992b
--- /dev/null
+++ b/doc/misc/ert.texi
@@ -0,0 +1,841 @@
1\input texinfo
2@c %**start of header
3@setfilename ../../info/ert
4@settitle Emacs Lisp Regression Testing
5@c %**end of header
6
7@dircategory Emacs
8@direntry
9* ERT: (ert). Emacs Lisp Regression Testing.
10@end direntry
11
12@copying
13Copyright @copyright{} 2008, 2010-2011 Free Software Foundation, Inc.
14
15@quotation
16Permission is granted to copy, distribute and/or modify this document
17under the terms of the GNU Free Documentation License, Version 1.3 or
18any later version published by the Free Software Foundation; with no
19Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
20and with the Back-Cover Texts as in (a) below. A copy of the license
21is included in the section entitled ``GNU Free Documentation License''
22in the Emacs manual.
23
24(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
25modify this GNU manual. Buying copies from the FSF supports it in
26developing GNU and promoting software freedom.''
27
28This document is part of a collection distributed under the GNU Free
29Documentation License. If you want to distribute this document
30separately from the collection, you can do so by adding a copy of the
31license to the document, as described in section 6 of the license.
32@end quotation
33@end copying
34
35@node Top, Introduction, (dir), (dir)
36@top ERT: Emacs Lisp Regression Testing
37
38ERT is a tool for automated testing in Emacs Lisp. Its main features
39are facilities for defining tests, running them and reporting the
40results, and for debugging test failures interactively.
41
42ERT is similar to tools for other environments such as JUnit, but has
43unique features that take advantage of the dynamic and interactive
44nature of Emacs. Despite its name, it works well both for test-driven
45development (see
46@url{http://en.wikipedia.org/wiki/Test-driven_development}) and for
47traditional software development methods.
48
49@menu
50* Introduction:: A simple example of an ERT test.
51* How to Run Tests:: Run tests in your Emacs or from the command line.
52* How to Write Tests:: How to add tests to your Emacs Lisp code.
53* How to Debug Tests:: What to do if a test fails.
54* Extending ERT:: ERT is extensible in several ways.
55* Other Testing Concepts:: Features not in ERT.
56
57@detailmenu
58 --- The Detailed Node Listing ---
59
60How to Run Tests
61
62* Running Tests Interactively:: Run tests in your current Emacs.
63* Running Tests in Batch Mode:: Run tests in emacs -Q.
64* Test Selectors:: Choose which tests to run.
65
66How to Write Tests
67
68* The @code{should} Macro:: A powerful way to express assertions.
69* Expected Failures:: Tests for known bugs.
70* Tests and Their Environment:: Don't depend on customizations; no side effects.
71* Useful Techniques:: Some examples.
72
73How to Debug Tests
74
75* Understanding Explanations:: How ERT gives details on why an assertion failed.
76* Interactive Debugging:: Tools available in the ERT results buffer.
77
78Extending ERT
79
80* Defining Explanation Functions:: Teach ERT about more predicates.
81* Low-Level Functions for Working with Tests:: Use ERT's data for your purposes.
82
83Other Testing Concepts
84
85* Mocks and Stubs:: Stubbing out code that is irrelevant to the test.
86* Fixtures and Test Suites:: How ERT differs from tools for other languages.
87
88@end detailmenu
89@end menu
90
91@node Introduction, How to Run Tests, Top, Top
92@chapter Introduction
93
94ERT allows you to define @emph{tests} in addition to functions,
95macros, variables, and the other usual Lisp constructs. Tests are
96simply Lisp code --- code that invokes other code and checks whether
97it behaves as expected.
98
99ERT keeps track of the tests that are defined and provides convenient
100commands to run them to verify whether the definitions that are
101currently loaded in Emacs pass the tests.
102
103Some Lisp files have comments like the following (adapted from the
104package @code{pp.el}):
105
106@lisp
107;; (pp-to-string '(quote quote)) ; expected: "'quote"
108;; (pp-to-string '((quote a) (quote b))) ; expected: "('a 'b)\n"
109;; (pp-to-string '('a 'b)) ; same as above
110@end lisp
111
112The code contained in these comments can be evaluated from time to
113time to compare the output with the expected output. ERT formalizes
114this and introduces a common convention, which simplifies Emacs
115development, since programmers no longer have to manually find and
116evaluate such comments.
117
118An ERT test definition equivalent to the above comments is this:
119
120@lisp
121(ert-deftest pp-test-quote ()
122 "Tests the rendering of `quote' symbols in `pp-to-string'."
123 (should (equal (pp-to-string '(quote quote)) "'quote"))
124 (should (equal (pp-to-string '((quote a) (quote b))) "('a 'b)\n"))
125 (should (equal (pp-to-string '('a 'b)) "('a 'b)\n")))
126@end lisp
127
128If you know @code{defun}, the syntax of @code{ert-deftest} should look
129familiar: This example defines a test named @code{pp-test-quote} that
130will pass if the three calls to @code{equal} all return true
131(non-nil).
132
133@code{should} is a macro with the same meaning as @code{assert} but
134better error reporting. @xref{The @code{should} Macro}.
135
136Each test should have a name that describes what functionality the
137test tests. Test names can be chosen arbitrarily --- they are in a
138namespace separate from functions and variables --- but should follow
139the usual Emacs Lisp convention of having a prefix that indicates
140which package they belong to. Test names are displayed by ERT when
141reporting failures and can be used when selecting which tests to run.
142
143The empty parentheses @code{()} in the first line don't currently have
144any meaning and are reserved for future extension. They also make
145@code{ert-deftest}'s syntax more similar to @code{defun}.
146
147The docstring describes what feature this test tests. When running
148tests interactively, the first line of the docstring is displayed for
149tests that fail, so it is good if the first line makes sense on its
150own.
151
152The body of a test can be arbitrary Lisp code. It should have as few
153side effects as possible; each test should be written to clean up
154after itself, leaving Emacs in the same state as it was before the
155test. Tests should clean up even if they fail. @xref{Tests and Their
156Environment}.
157
158
159@node How to Run Tests, How to Write Tests, Introduction, Top
160@chapter How to Run Tests
161
162You can run tests either in the Emacs you are working in, or on the
163command line in a separate Emacs process in batch mode (i.e., with no
164user interface). The former mode is convenient during interactive
165development, the latter is useful to make sure that tests pass
166independently of your customizations, allows tests to be invoked from
167makefiles and scripts to be written that run tests in several
168different Emacs versions.
169
170@menu
171* Running Tests Interactively:: Run tests in your current Emacs.
172* Running Tests in Batch Mode:: Run tests in emacs -Q.
173* Test Selectors:: Choose which tests to run.
174@end menu
175
176
177@node Running Tests Interactively, Running Tests in Batch Mode, How to Run Tests, How to Run Tests
178@section Running Tests Interactively
179
180You can run the tests that are currently defined in your Emacs with
181the command @kbd{@kbd{M-x} ert @kbd{RET} t @kbd{RET}}. ERT will pop
182up a new buffer, the ERT results buffer, showing the results of the
183tests run. It looks like this:
184
185@example
186Selector: t
187Passed: 31
188Failed: 2 (2 unexpected)
189Total: 33/33
190
191Started at: 2008-09-11 08:39:25-0700
192Finished.
193Finished at: 2008-09-11 08:39:27-0700
194
195FF...............................
196
197F addition-test
198 (ert-test-failed
199 ((should
200 (=
201 (+ 1 2)
202 4))
203 :form
204 (= 3 4)
205 :value nil))
206
207F list-test
208 (ert-test-failed
209 ((should
210 (equal
211 (list 'a 'b 'c)
212 '(a b d)))
213 :form
214 (equal
215 (a b c)
216 (a b d))
217 :value nil :explanation
218 (list-elt 2
219 (different-atoms c d))))
220@end example
221
222At the top, there is a summary of the results: We ran all tests in the
223current Emacs (@code{Selector: t}), 31 of them passed, and 2 failed
224unexpectedly. @xref{Expected Failures}, for an explanation of the
225term @emph{unexpected} in this context.
226
227The line of dots and @code{F}s is a progress bar where each character
228represents one test; it fills while the tests are running. A dot
229means that the test passed, an @code{F} means that it failed. Below
230the progress bar, ERT shows details about each test that had an
231unexpected result. In the example above, there are two failures, both
232due to failed @code{should} forms. @xref{Understanding Explanations},
233for more details.
234
235In the ERT results buffer, @kbd{TAB} and @kbd{S-TAB} cycle between
236buttons. Each name of a function or macro in this buffer is a button;
237moving point to it and typing @kbd{RET} jumps to its definition.
238
239Pressing @kbd{r} re-runs the test near point on its own. Pressing
240@kbd{d} re-runs it with the debugger enabled. @kbd{.} jumps to the
241definition of the test near point (@kbd{RET} has the same effect if
242point is on the name of the test). On a failed test, @kbd{b} shows
243the backtrace of the failure.
244
245@kbd{l} shows the list of @code{should} forms executed in the test.
246If any messages were generated (with the Lisp function @code{message})
247in a test or any of the code that it invoked, @kbd{m} will show them.
248
249By default, long expressions in the failure details are abbreviated
250using @code{print-length} and @code{print-level}. Pressing @kbd{L}
251while point is on a test failure will increase the limits to show more
252of the expression.
253
254
255@node Running Tests in Batch Mode, Test Selectors, Running Tests Interactively, How to Run Tests
256@section Running Tests in Batch Mode
257
258ERT supports automated invocations from the command line or from
259scripts or makefiles. There are two functions for this purpose,
260@code{ert-run-tests-batch} and @code{ert-run-tests-batch-and-exit}.
261They can be used like this:
262
263@example
264emacs -batch -L /path/to/ert -l ert.el -l my-tests.el -f ert-run-tests-batch-and-exit
265@end example
266
267This command will start up Emacs in batch mode, load ERT, load
268@code{my-tests.el}, and run all tests defined in it. It will exit
269with a zero exit status if all tests passed, or nonzero if any tests
270failed or if anything else went wrong. It will also print progress
271messages and error diagnostics to standard output.
272
273You may need additional @code{-L} flags to ensure that
274@code{my-tests.el} and all the files that it requires are on your
275@code{load-path}.
276
277
278@node Test Selectors, , Running Tests in Batch Mode, How to Run Tests
279@section Test Selectors
280
281Functions like @code{ert} accept a @emph{test selector}, a Lisp
282expression specifying a set of tests. Test selector syntax is similar
283to Common Lisp's type specifier syntax:
284
285@itemize
286@item @code{nil} selects no tests.
287@item @code{t} selects all tests.
288@item @code{:new} selects all tests that have not been run yet.
289@item @code{:failed} and @code{:passed} select tests according to their most recent result.
290@item @code{:expected}, @code{:unexpected} select tests according to their most recent result.
291@item A string selects all tests that have a name that matches the string, a regexp.
292@item A test selects that test.
293@item A symbol selects the test that the symbol names.
294@item @code{(member TESTS...)} selects TESTS, a list of tests or symbols naming tests.
295@item @code{(eql TEST)} selects TEST, a test or a symbol naming a test.
296@item @code{(and SELECTORS...)} selects the tests that match all SELECTORS.
297@item @code{(or SELECTORS...)} selects the tests that match any SELECTOR.
298@item @code{(not SELECTOR)} selects all tests that do not match SELECTOR.
299@item @code{(tag TAG)} selects all tests that have TAG on their tags list.
300@item @code{(satisfies PREDICATE)} Selects all tests that satisfy PREDICATE.
301@end itemize
302
303Selectors that are frequently useful when selecting tests to run
304include @code{t} to run all tests that are currently defined in Emacs,
305@code{"^foo-"} to run all tests in package @code{foo} --- this assumes
306that package @code{foo} uses the prefix @code{foo-} for its test names
307---, result-based selectors such as @code{(or :new :unexpected)} to
308run all tests that have either not run yet or that had an unexpected
309result in the last run, and tag-based selectors such as @code{(not
310(tag :causes-redisplay))} to run all tests that are not tagged
311@code{:causes-redisplay}.
312
313
314@node How to Write Tests, How to Debug Tests, How to Run Tests, Top
315@chapter How to Write Tests
316
317ERT lets you define tests in the same way you define functions. You
318can type @code{ert-deftest} forms in a buffer and evaluate them there
319with @code{eval-defun} or @code{compile-defun}, or you can save the
320file and load it, optionally byte-compiling it first.
321
322Just like @code{find-function} is only able to find where a function
323was defined if the function was loaded from a file, ERT is only able
324to find where a test was defined if the test was loaded from a file.
325
326
327@menu
328* The @code{should} Macro:: A powerful way to express assertions.
329* Expected Failures:: Tests for known bugs.
330* Tests and Their Environment:: Don't depend on customizations; no side effects.
331* Useful Techniques:: Some examples.
332@end menu
333
334@node The @code{should} Macro, Expected Failures, How to Write Tests, How to Write Tests
335@section The @code{should} Macro
336
337Test bodies can include arbitrary code; but to be useful, they need to
338have checks whether the code being tested (or @emph{code under test})
339does what it is supposed to do. The macro @code{should} is similar to
340@code{assert} from the cl package, but analyzes its argument form and
341records information that ERT can display to help debugging.
342
343This test definition
344
345@lisp
346(ert-deftest addition-test ()
347 (should (= (+ 1 2) 4)))
348@end lisp
349
350will produce this output when run via @kbd{M-x ert}:
351
352@example
353F addition-test
354 (ert-test-failed
355 ((should
356 (=
357 (+ 1 2)
358 4))
359 :form
360 (= 3 4)
361 :value nil))
362@end example
363
364In this example, @code{should} recorded the fact that (= (+ 1 2) 4)
365reduced to (= 3 4) before it reduced to nil. When debugging why the
366test failed, it helps to know that the function @code{+} returned 3
367here. ERT records the return value for any predicate called directly
368within @code{should}.
369
370In addition to @code{should}, ERT provides @code{should-not}, which
371checks that the predicate returns nil, and @code{should-error}, which
372checks that the form called within it signals an error. An example
373use of @code{should-error}:
374
375@lisp
376(ert-deftest test-divide-by-zero ()
377 (should-error (/ 1 0)
378 :type 'arith-error))
379@end lisp
380
381This checks that dividing one by zero signals an error of type
382@code{arith-error}. The @code{:type} argument to @code{should-error}
383is optional; if absent, any type of error is accepted.
384@code{should-error} returns an error description of the error that was
385signalled, to allow additional checks to be made. The error
386description has the format @code{(ERROR-SYMBOL . DATA)}.
387
388There is no @code{should-not-error} macro since tests that signal an
389error fail anyway, so @code{should-not-error} is effectively the
390default.
391
392@xref{Understanding Explanations}, for more details on what
393@code{should} reports.
394
395
396@node Expected Failures, Tests and Their Environment, The @code{should} Macro, How to Write Tests
397@section Expected Failures
398
399Some bugs are complicated to fix or not very important and are left as
400@emph{known bugs}. If there is a test case that triggers the bug and
401fails, ERT will alert you of this failure every time you run all
402tests. For known bugs, this alert is a distraction. The way to
403suppress it is to add @code{:expected-result :failed} to the test
404definition:
405
406@lisp
407(ert-deftest future-bug ()
408 "Test `time-forward' with negative arguments.
409Since this functionality isn't implemented yet, the test is known to fail."
410 :expected-result :failed
411 (time-forward -1))
412@end lisp
413
414ERT will still display a small @code{f} in the progress bar as a
415reminder that there is a known bug, and will count the test as failed,
416but it will be quiet about it otherwise.
417
418An alternative to marking the test as a known failure this way is to
419delete the test. This is a good idea if there is no intent to fix it,
420i.e., if the behavior that was formerly considered a bug has become an
421accepted feature.
422
423In general, however, it can be useful to keep tests that are known to
424fail. If someone wants to fix the bug, they will have a very good
425starting point: an automated test case that reproduces the bug. This
426makes it much easier to fix the bug, demonstrate that it is fixed, and
427prevent future regressions.
428
429ERT displays the same kind of alerts for tests that pass unexpectedly
430that it displays for unexpected failures. This way, if you make code
431changes that happen to fix a bug that you weren't aware of, you will
432know to remove the @code{:expected-result} clause of that test and
433close the corresponding bug report, if any.
434
435Since @code{:expected-result} evaluates its argument when the test is
436loaded, tests can be marked as known failures only on certain Emacs
437versions, specific architectures, etc.:
438
439@lisp
440(ert-deftest foo ()
441 "A test that is expected to fail on Emacs 23 but succeed elsewhere."
442 :expected-result (if (string-match "GNU Emacs 23[.]" (emacs-version))
443 :failed
444 :passed)
445 ...)
446@end lisp
447
448
449@node Tests and Their Environment, Useful Techniques, Expected Failures, How to Write Tests
450@section Tests and Their Environment
451
452The outcome of running a test should not depend on the current state
453of the environment, and each test should leave its environment in the
454same state it found it in. In particular, a test should not depend on
455any Emacs customization variables or hooks, and if it has to make any
456changes to Emacs' state or state external to Emacs such as the file
457system, it should undo these changes before it returns, regardless of
458whether it passed or failed.
459
460Tests should not depend on the environment because any such
461dependencies can make the test brittle or lead to failures that occur
462only under certain circumstances and are hard to reproduce. Of
463course, the code under test may have settings that affect its
464behavior. In that case, it is best to make the test @code{let}-bind
465all such settings variables to set up a specific configuration for the
466duration of the test. The test can also set up a number of different
467configurations and run the code under test with each.
468
469Tests that have side effects on their environment should restore it to
470its original state because any side effects that persist after the
471test can disrupt the workflow of the programmer running the tests. If
472the code under test has side effects on Emacs' current state, such as
473on the current buffer or window configuration, the test should create
474a temporary buffer for the code to manipulate (using
475@code{with-temp-buffer}), or save and restore the window configuration
476(using @code{save-window-excursion}), respectively. For aspects of
477the state that can not be preserved with such macros, cleanup should
478be performed with @code{unwind-protect}, to ensure that the cleanup
479occurs even if the test fails.
480
481An exception to this are messages that the code under test prints with
482@code{message} and similar logging; tests should not bother restoring
483the @code{*Message*} buffer to its original state.
484
485The above guidelines imply that tests should avoid calling highly
486customizable commands such as @code{find-file}, except, of course, if
487such commands are what they want to test. The exact behavior of
488@code{find-file} depends on many settings such as
489@code{find-file-wildcards}, @code{enable-local-variables}, and
490@code{auto-mode-alist}. It is difficult to write a meaningful test if
491its behavior can be affected by so many external factors. Also,
492@code{find-file} has side effects that are hard to predict and thus
493hard to undo: It may create a new buffer or may reuse an existing
494buffer if one is already visiting the requested file; and it runs
495@code{find-file-hook}, which can have arbitrary side effects.
496
497Instead, it is better to use lower-level mechanisms with simple and
498predictable semantics like @code{with-temp-buffer}, @code{insert} or
499@code{insert-file-contents-literally}, and activating the desired mode
500by calling the corresponding function directly --- after binding the
501hook variables to nil. This avoids the above problems.
502
503
504@node Useful Techniques, , Tests and Their Environment, How to Write Tests
505@section Useful Techniques when Writing Tests
506
507Testing simple functions that have no side effects and no dependencies
508on their environment is easy. Such tests often look like this:
509
510@lisp
511(ert-deftest ert-test-mismatch ()
512 (should (eql (ert--mismatch "" "") nil))
513 (should (eql (ert--mismatch "" "a") 0))
514 (should (eql (ert--mismatch "a" "a") nil))
515 (should (eql (ert--mismatch "ab" "a") 1))
516 (should (eql (ert--mismatch "Aa" "aA") 0))
517 (should (eql (ert--mismatch '(a b c) '(a b d)) 2)))
518@end lisp
519
520This test calls the function @code{ert--mismatch} several times with
521various combinations of arguments and compares the return value to the
522expected return value. (Some programmers prefer @code{(should (eql
523EXPECTED ACTUAL))} over the @code{(should (eql ACTUAL EXPECTED))}
524shown here. ERT works either way.)
525
526Here's a more complicated test:
527
528@lisp
529(ert-deftest ert-test-record-backtrace ()
530 (let ((test (make-ert-test :body (lambda () (ert-fail "foo")))))
531 (let ((result (ert-run-test test)))
532 (should (ert-test-failed-p result))
533 (with-temp-buffer
534 (ert--print-backtrace (ert-test-failed-backtrace result))
535 (goto-char (point-min))
536 (end-of-line)
537 (let ((first-line (buffer-substring-no-properties (point-min) (point))))
538 (should (equal first-line " signal(ert-test-failed (\"foo\"))")))))))
539@end lisp
540
541This test creates a test object using @code{make-ert-test} whose body
542will immediately signal failure. It then runs that test and asserts
543that it fails. Then, it creates a temporary buffer and invokes
544@code{ert--print-backtrace} to print the backtrace of the failed test
545to the current buffer. Finally, it extracts the first line from the
546buffer and asserts that it matches what we expect. It uses
547@code{buffer-substring-no-properties} and @code{equal} to ignore text
548properties; for a test that takes properties into account,
549@code{buffer-substring} and @code{ert-equal-including-properties}
550could be used instead.
551
552The reason why this test only checks the first line of the backtrace
553is that the remainder of the backtrace is dependent on ERT's internals
554as well as whether the code is running interpreted or compiled. By
555looking only at the first line, the test checks a useful property
556--- that the backtrace correctly captures the call to @code{signal} that
557results from the call to @code{ert-fail} --- without being brittle.
558
559This example also shows that writing tests is much easier if the code
560under test was structured with testing in mind.
561
562For example, if @code{ert-run-test} accepted only symbols that name
563tests rather than test objects, the test would need a name for the
564failing test, which would have to be a temporary symbol generated with
565@code{make-symbol}, to avoid side effects on Emacs' state. Choosing
566the right interface for @code{ert-run-tests} allows the test to be
567simpler.
568
569Similarly, if @code{ert--print-backtrace} printed the backtrace to a
570buffer with a fixed name rather than the current buffer, it would be
571much harder for the test to undo the side effect. Of course, some
572code somewhere needs to pick the buffer name. But that logic is
573independent of the logic that prints backtraces, and keeping them in
574separate functions allows us to test them independently.
575
576A lot of code that you will encounter in Emacs was not written with
577testing in mind. Sometimes, the easiest way to write tests for such
578code is to restructure the code slightly to provide better interfaces
579for testing. Usually, this makes the interfaces easier to use as
580well.
581
582
583@node How to Debug Tests, Extending ERT, How to Write Tests, Top
584@chapter How to Debug Tests
585
586This section describes how to use ERT's features to understand why
587a test failed.
588
589
590@menu
591* Understanding Explanations:: How ERT gives details on why an assertion failed.
592* Interactive Debugging:: Tools available in the ERT results buffer.
593@end menu
594
595
596@node Understanding Explanations, Interactive Debugging, How to Debug Tests, How to Debug Tests
597@section Understanding Explanations
598
599Failed @code{should} forms are reported like this:
600
601@example
602F addition-test
603 (ert-test-failed
604 ((should
605 (=
606 (+ 1 2)
607 4))
608 :form
609 (= 3 4)
610 :value nil))
611@end example
612
613ERT shows what the @code{should} expression looked like and what
614values its subexpressions had: The source code of the assertion was
615@code{(should (= (+ 1 2) 4))}, which applied the function @code{=} to
616the arguments @code{3} and @code{4}, resulting in the value
617@code{nil}. In this case, the test is wrong; it should expect 3
618rather than 4.
619
620If a predicate like @code{equal} is used with @code{should}, ERT
621provides a so-called @emph{explanation}:
622
623@example
624F list-test
625 (ert-test-failed
626 ((should
627 (equal
628 (list 'a 'b 'c)
629 '(a b d)))
630 :form
631 (equal
632 (a b c)
633 (a b d))
634 :value nil :explanation
635 (list-elt 2
636 (different-atoms c d))))
637@end example
638
639In this case, the function @code{equal} was applied to the arguments
640@code{(a b c)} and @code{(a b d)}. ERT's explanation shows that
641the item at index 2 differs between the two lists; in one list, it is
642the atom c, in the other, it is the atom d.
643
644In simple examples like the above, the explanation is unnecessary.
645But in cases where the difference is not immediately apparent, it can
646save time:
647
648@example
649F test1
650 (ert-test-failed
651 ((should
652 (equal x y))
653 :form
654 (equal a a)
655 :value nil :explanation
656 (different-symbols-with-the-same-name a a)))
657@end example
658
659ERT only provides explanations for predicates that have an explanation
660function registered. @xref{Defining Explanation Functions}.
661
662
663@node Interactive Debugging, , Understanding Explanations, How to Debug Tests
664@section Interactive Debugging
665
666Debugging failed tests works essentially the same way as debugging any
667other problems with Lisp code. Here are a few tricks specific to
668tests:
669
670@itemize
671@item Re-run the failed test a few times to see if it fails in the same way
672each time. It's good to find out whether the behavior is
673deterministic before spending any time looking for a cause. In the
674ERT results buffer, @kbd{r} re-runs the selected test.
675
676@item Use @kbd{.} to jump to the source code of the test to find out what
677exactly it does. Perhaps the test is broken rather than the code
678under test.
679
680@item If the test contains a series of @code{should} forms and you can't
681tell which one failed, use @kbd{l}, which shows you the list of all
682@code{should} forms executed during the test before it failed.
683
684@item Use @kbd{b} to view the backtrace. You can also use @kbd{d} to re-run
685the test with debugging enabled, this will enter the debugger and show
686the backtrace as well; but the top few frames shown there will not be
687relevant to you since they are ERT's own debugger hook. @kbd{b}
688strips them out, so it is more convenient.
689
690@item If the test or the code under testing prints messages using
691@code{message}, use @kbd{m} to see what messages it printed before it
692failed. This can be useful to figure out how far it got.
693
694@item You can instrument tests for debugging the same way you instrument
695@code{defun}s for debugging --- go to the source code of the test and
696type @kbd{@kbd{C-u} @kbd{C-M-x}}. Then, go back to the ERT buffer and
697re-run the test with @kbd{r} or @kbd{d}.
698
699@item If you have been editing and rearranging tests, it is possible that
700ERT remembers an old test that you have since renamed or removed ---
701renamings or removals of definitions in the source code leave around a
702stray definition under the old name in the running process, this is a
703common problem in Lisp. In such a situation, hit @kbd{D} to let ERT
704forget about the obsolete test.
705@end itemize
706
707
708@node Extending ERT, Other Testing Concepts, How to Debug Tests, Top
709@chapter Extending ERT
710
711There are several ways to add functionality to ERT.
712
713@menu
714* Defining Explanation Functions:: Teach ERT about more predicates.
715* Low-Level Functions for Working with Tests:: Use ERT's data for your purposes.
716@end menu
717
718
719@node Defining Explanation Functions, Low-Level Functions for Working with Tests, Extending ERT, Extending ERT
720@section Defining Explanation Functions
721
722The explanation function for a predicate is a function that takes the
723same arguments as the predicate and returns an @emph{explanation}.
724The explanation should explain why the predicate, when invoked with
725the arguments given to the explanation function, returns the value
726that it returns. The explanation can be any object but should have a
727comprehensible printed representation. If the return value of the
728predicate needs no explanation for a given list of arguments, the
729explanation function should return nil.
730
731To associate an explanation function with a predicate, add the
732property @code{ert-explainer} to the symbol that names the predicate.
733The value of the property should be the symbol that names the
734explanation function.
735
736
737@node Low-Level Functions for Working with Tests, , Defining Explanation Functions, Extending ERT
738@section Low-Level Functions for Working with Tests
739
740Both @code{ert-run-tests-interactively} and @code{ert-run-tests-batch}
741are implemented on top of the lower-level test handling code in the
742sections named ``Facilities for running a single test'', ``Test
743selectors'', and ``Facilities for running a whole set of tests''.
744
745If you want to write code that works with ERT tests, you should take a
746look at this lower-level code. Symbols that start with @code{ert--}
747are internal to ERT, those that start with @code{ert-} but not
748@code{ert--} are meant to be usable by other code. But there is no
749mature API yet.
750
751Contributions to ERT are welcome.
752
753
754@node Other Testing Concepts, , Extending ERT, Top
755@chapter Other Testing Concepts
756
757For information on mocks, stubs, fixtures, or test suites, see below.
758
759
760@menu
761* Mocks and Stubs:: Stubbing out code that is irrelevant to the test.
762* Fixtures and Test Suites:: How ERT differs from tools for other languages.
763@end menu
764
765@node Mocks and Stubs, Fixtures and Test Suites, Other Testing Concepts, Other Testing Concepts
766@section Other Tools for Emacs Lisp
767
768Stubbing out functions or using so-called @emph{mocks} can make it
769easier to write tests. See
770@url{http://en.wikipedia.org/wiki/Mock_object} for an explanation of
771the corresponding concepts in object-oriented languages.
772
773ERT does not have built-in support for mocks or stubs. The package
774@code{el-mock} (see @url{http://www.emacswiki.org/emacs/el-mock.el})
775offers mocks for Emacs Lisp and can be used in conjunction with ERT.
776
777
778@node Fixtures and Test Suites, , Mocks and Stubs, Other Testing Concepts
779@section Fixtures and Test Suites
780
781In many ways, ERT is similar to frameworks for other languages like
782SUnit or JUnit. However, two features commonly found in such
783frameworks are notably absent from ERT: fixtures and test suites.
784
785Fixtures, as used e.g. in SUnit or JUnit, are mainly used to provide
786an environment for a set of tests, and consist of set-up and tear-down
787functions.
788
789While fixtures are a useful syntactic simplification in other
790languages, this does not apply to Lisp, where higher-order functions
791and `unwind-protect' are available. One way to implement and use a
792fixture in ERT is
793
794@lisp
795(defun my-fixture (body)
796 (unwind-protect
797 (progn [set up]
798 (funcall body))
799 [tear down]))
800
801(ert-deftest my-test ()
802 (my-fixture
803 (lambda ()
804 [test code])))
805@end lisp
806
807(Another way would be a @code{with-my-fixture} macro.) This solves
808the set-up and tear-down part, and additionally allows any test
809to use any combination of fixtures, so it is more flexible than what
810other tools typically allow.
811
812If the test needs access to the environment the fixture sets up, the
813fixture can be modified to pass arguments to the body.
814
815These are well-known Lisp techniques. Special syntax for them could
816be added but would provide only a minor simplification.
817
818(If you are interested in such syntax, note that splitting set-up and
819tear-down into separate functions, like *Unit tools usually do, makes
820it impossible to establish dynamic `let' bindings as part of the
821fixture. So, blindly imitating the way fixtures are implemented in
822other languages would be counter-productive in Lisp.)
823
824The purpose of test suites is to group related tests together.
825
826The most common use of this is to run just the tests for one
827particular module. Since symbol prefixes are the usual way of
828separating module namespaces in Emacs Lisp, test selectors already
829solve this by allowing regexp matching on test names; e.g., the
830selector "^ert-" selects ERT's self-tests.
831
832Other uses include grouping tests by their expected execution time to
833run quick tests during interactive development and slow tests less
834frequently. This can be achieved with the @code{:tag} argument to
835@code{ert-deftest} and @code{tag} test selectors.
836
837@bye
838
839@c LocalWords: ERT Hagelberg Ohler JUnit namespace docstring ERT's
840@c LocalWords: backtrace makefiles workflow backtraces API SUnit
841@c LocalWords: subexpressions
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 6ec431dccfd..51031e219ff 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -8,8 +8,7 @@
8@copying 8@copying
9This manual is for Eshell, the Emacs shell. 9This manual is for Eshell, the Emacs shell.
10 10
11Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 11Copyright @copyright{} 1999-2011 Free Software Foundation, Inc.
122007, 2008, 2009, 2010 Free Software Foundation, Inc.
13 12
14@quotation 13@quotation
15Permission is granted to copy, distribute and/or modify this document 14Permission is granted to copy, distribute and/or modify this document
@@ -1015,7 +1014,3 @@ Since it keeps the cursor up where the command was invoked.
1015 1014
1016@printindex ky 1015@printindex ky
1017@bye 1016@bye
1018
1019@ignore
1020 arch-tag: 776409ba-cb15-42b9-b2b6-d2bdc7ebad01
1021@end ignore
diff --git a/doc/misc/eudc.texi b/doc/misc/eudc.texi
index b62c0ed75ea..b0652ab3f10 100644
--- a/doc/misc/eudc.texi
+++ b/doc/misc/eudc.texi
@@ -12,8 +12,7 @@ EUDC is the Emacs Unified Directory Client, a common interface to
12directory servers using various protocols such as LDAP or the CCSO white 12directory servers using various protocols such as LDAP or the CCSO white
13pages directory system (PH/QI) 13pages directory system (PH/QI)
14 14
15Copyright @copyright{} 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 15Copyright @copyright{} 1998, 2000-2011 Free Software Foundation, Inc.
162007, 2008, 2009, 2010 Free Software Foundation, Inc.
17 16
18@quotation 17@quotation
19Permission is granted to copy, distribute and/or modify this document 18Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/faq.texi b/doc/misc/faq.texi
index ee5f72ac300..3c98588a7d5 100644
--- a/doc/misc/faq.texi
+++ b/doc/misc/faq.texi
@@ -11,8 +11,7 @@
11@c appreciate a notice if you do). 11@c appreciate a notice if you do).
12 12
13@copying 13@copying
14Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 14Copyright @copyright{} 2001-2011 Free Software Foundation, Inc.@*
152009, 2010 Free Software Foundation, Inc.@*
16Copyright @copyright{} 1994, 1995, 1996, 1997, 1998, 1999, 2000 15Copyright @copyright{} 1994, 1995, 1996, 1997, 1998, 1999, 2000
17Reuven M. Lerner@* 16Reuven M. Lerner@*
18Copyright @copyright{} 1992, 1993 Steven Byrnes@* 17Copyright @copyright{} 1992, 1993 Steven Byrnes@*
@@ -4299,12 +4298,12 @@ file.
4299Normally, Emacs expands aliases when you send the message. 4298Normally, Emacs expands aliases when you send the message.
4300To expand them before this, use @kbd{M-x expand-mail-aliases}. 4299To expand them before this, use @kbd{M-x expand-mail-aliases}.
4301 4300
4302@c FIXME there should be an interactive rebuild command for this.
4303@item 4301@item
4304Emacs normally only reads the @file{.mailrc} file once per session, 4302Emacs normally only reads the @file{.mailrc} file once per session, when
4305when you start to compose your first mail message. If you edit 4303you start to compose your first mail message. If you edit the file
4306@file{.mailrc}, you can type @kbd{M-: (build-mail-aliases) @key{RET}} to 4304after this, you can use @kbd{M-x build-mail-aliases} to make Emacs
4307make Emacs reread @file{~/.mailrc}. 4305reread it. Prior to Emacs 24.1, this is not an interactive command, so
4306you must instead type @kbd{M-: (build-mail-aliases) @key{RET}}.
4308 4307
4309@item 4308@item
4310If you like, you can expand mail aliases as abbrevs, as soon as you 4309If you like, you can expand mail aliases as abbrevs, as soon as you
diff --git a/doc/misc/flymake.texi b/doc/misc/flymake.texi
index 0606fcc134d..7f0cd77de59 100644
--- a/doc/misc/flymake.texi
+++ b/doc/misc/flymake.texi
@@ -11,7 +11,7 @@
11This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}), 11This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}),
12which is a universal on-the-fly syntax checker for GNU Emacs. 12which is a universal on-the-fly syntax checker for GNU Emacs.
13 13
14Copyright @copyright{} 2004, 2005, 2006, 2007, 2008, 2009, 2010 14Copyright @copyright{} 2004-2011
15Free Software Foundation, Inc. 15Free Software Foundation, Inc.
16 16
17@quotation 17@quotation
@@ -749,7 +749,3 @@ It just kills all the active syntax check processes before calling
749@printindex cp 749@printindex cp
750 750
751@bye 751@bye
752
753@ignore
754 arch-tag: 9f0db077-5598-49ab-90b9-8df9248a63ec
755@end ignore
diff --git a/doc/misc/forms.texi b/doc/misc/forms.texi
index a7779763c3f..f58e8d8f969 100644
--- a/doc/misc/forms.texi
+++ b/doc/misc/forms.texi
@@ -18,8 +18,7 @@
18@copying 18@copying
19This file documents Forms mode, a form-editing major mode for GNU Emacs. 19This file documents Forms mode, a form-editing major mode for GNU Emacs.
20 20
21Copyright @copyright{} 1989, 1997, 2001, 2002, 2003, 2004, 21Copyright @copyright{} 1989, 1997, 2001-2011 Free Software Foundation, Inc.
222005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
23 22
24@quotation 23@quotation
25Permission is granted to copy, distribute and/or modify this document 24Permission is granted to copy, distribute and/or modify this document
@@ -976,7 +975,3 @@ Software Foundation. Thanks, Richard!
976@printindex cp 975@printindex cp
977 976
978@bye 977@bye
979
980@ignore
981 arch-tag: 2ac9810b-aa49-4ea6-8030-d7f1ecd467ed
982@end ignore
diff --git a/doc/misc/gnus-coding.texi b/doc/misc/gnus-coding.texi
index f513bc15a24..ab9c0232d3d 100644
--- a/doc/misc/gnus-coding.texi
+++ b/doc/misc/gnus-coding.texi
@@ -7,7 +7,7 @@
7@syncodeindex pg cp 7@syncodeindex pg cp
8 8
9@copying 9@copying
10Copyright @copyright{} 2004, 2005, 2007, 2008, 2009, 2010 Free Software 10Copyright @copyright{} 2004-2005, 2007-2011 Free Software
11Foundation, Inc. 11Foundation, Inc.
12 12
13@quotation 13@quotation
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index d9df9c8db18..e8e89ed2a30 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -1,8 +1,7 @@
1@c \input texinfo @c -*-texinfo-*- 1@c \input texinfo @c -*-texinfo-*-
2@c Uncomment 1st line before texing this file alone. 2@c Uncomment 1st line before texing this file alone.
3@c %**start of header 3@c %**start of header
4@c Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 4@c Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc.
5@c 2009, 2010 Free Software Foundation, Inc.
6@c 5@c
7@setfilename gnus-faq.info 6@setfilename gnus-faq.info
8@settitle Frequently Asked Questions 7@settitle Frequently Asked Questions
diff --git a/doc/misc/gnus-news.el b/doc/misc/gnus-news.el
index e31cca9f37f..485e7ce4646 100644
--- a/doc/misc/gnus-news.el
+++ b/doc/misc/gnus-news.el
@@ -1,5 +1,5 @@
1;;; gnus-news.el --- a hack to create GNUS-NEWS from texinfo source 1;;; gnus-news.el --- a hack to create GNUS-NEWS from texinfo source
2;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 2;; Copyright (C) 2004-2011 Free Software Foundation, Inc.
3 3
4;; Author: Reiner Steib <Reiner.Steib@gmx.de> 4;; Author: Reiner Steib <Reiner.Steib@gmx.de>
5;; Keywords: tools 5;; Keywords: tools
@@ -26,8 +26,7 @@
26(defvar gnus-news-header-disclaimer 26(defvar gnus-news-header-disclaimer
27"GNUS NEWS -- history of user-visible changes. 27"GNUS NEWS -- history of user-visible changes.
28 28
29Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 29Copyright (C) 1999-2011 Free Software Foundation, Inc.
30 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
31See the end of the file for license conditions. 30See the end of the file for license conditions.
32 31
33Please send Gnus bug reports to bugs@gnus.org. 32Please send Gnus bug reports to bugs@gnus.org.
diff --git a/doc/misc/gnus-news.texi b/doc/misc/gnus-news.texi
index 6037a979acb..62c1663508b 100644
--- a/doc/misc/gnus-news.texi
+++ b/doc/misc/gnus-news.texi
@@ -1,6 +1,6 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2 2
3@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 3@c Copyright (C) 2004-2011 Free Software Foundation, Inc.
4 4
5@c Permission is granted to anyone to make or distribute verbatim copies 5@c Permission is granted to anyone to make or distribute verbatim copies
6@c of this document as received, in any medium, provided that the 6@c of this document as received, in any medium, provided that the
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 9f4d1f75ede..1dd3efd17d8 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -9,8 +9,7 @@
9@documentencoding ISO-8859-1 9@documentencoding ISO-8859-1
10 10
11@copying 11@copying
12Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 12Copyright @copyright{} 1995-2011 Free Software Foundation, Inc.
132003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
14 13
15@quotation 14@quotation
16Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
@@ -407,6 +406,7 @@ This manual corresponds to Gnus v5.13
407* Composing Messages:: Information on sending mail and news. 406* Composing Messages:: Information on sending mail and news.
408* Select Methods:: Gnus reads all messages from various select methods. 407* Select Methods:: Gnus reads all messages from various select methods.
409* Scoring:: Assigning values to articles. 408* Scoring:: Assigning values to articles.
409* Searching:: Mail and News search engines.
410* Various:: General purpose settings. 410* Various:: General purpose settings.
411* The End:: Farewell and goodbye. 411* The End:: Farewell and goodbye.
412* Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals. 412* Appendices:: Terminology, Emacs intro, @acronym{FAQ}, History, Internals.
@@ -428,7 +428,6 @@ Other related manuals
428Starting Gnus 428Starting Gnus
429 429
430* Finding the News:: Choosing a method for getting news. 430* Finding the News:: Choosing a method for getting news.
431* The First Time:: What does Gnus do the first time you start it?
432* The Server is Down:: How can I read my mail then? 431* The Server is Down:: How can I read my mail then?
433* Slave Gnusae:: You can have more than one Gnus active at a time. 432* Slave Gnusae:: You can have more than one Gnus active at a time.
434* Fetching a Group:: Starting Gnus just to read a group. 433* Fetching a Group:: Starting Gnus just to read a group.
@@ -704,6 +703,7 @@ Other Sources
704* Anything Groups:: Dired? Who needs dired? 703* Anything Groups:: Dired? Who needs dired?
705* Document Groups:: Single files can be the basis of a group. 704* Document Groups:: Single files can be the basis of a group.
706* Mail-To-News Gateways:: Posting articles via mail-to-news gateways. 705* Mail-To-News Gateways:: Posting articles via mail-to-news gateways.
706* The Empty Backend:: The backend that never has any news.
707 707
708Document Groups 708Document Groups
709 709
@@ -786,6 +786,21 @@ Advanced Scoring
786* Advanced Scoring Examples:: What they look like. 786* Advanced Scoring Examples:: What they look like.
787* Advanced Scoring Tips:: Getting the most out of it. 787* Advanced Scoring Tips:: Getting the most out of it.
788 788
789Searching
790
791* nnir:: Searching with various engines.
792* nnmairix:: Searching with Mairix.
793
794nnir
795
796* What is nnir?:: What does nnir do.
797* Basic Usage:: How to perform simple searches.
798* Setting up nnir:: How to set up nnir.
799
800Setting up nnir
801
802* Associating Engines:: How to associate engines.
803
789Various 804Various
790 805
791* Process/Prefix:: A convention used by many treatment commands. 806* Process/Prefix:: A convention used by many treatment commands.
@@ -959,7 +974,6 @@ terminology section (@pxref{Terminology}).
959 974
960@menu 975@menu
961* Finding the News:: Choosing a method for getting news. 976* Finding the News:: Choosing a method for getting news.
962* The First Time:: What does Gnus do the first time you start it?
963* The Server is Down:: How can I read my mail then? 977* The Server is Down:: How can I read my mail then?
964* Slave Gnusae:: You can have more than one Gnus active at a time. 978* Slave Gnusae:: You can have more than one Gnus active at a time.
965* New Groups:: What is Gnus supposed to do with new groups? 979* New Groups:: What is Gnus supposed to do with new groups?
@@ -1052,31 +1066,6 @@ several Gnus installations, but may slow down things a bit when fetching
1052new articles. @xref{NNTP marks}, for more information. 1066new articles. @xref{NNTP marks}, for more information.
1053 1067
1054 1068
1055@node The First Time
1056@section The First Time
1057@cindex first time usage
1058
1059If no startup files exist (@pxref{Startup Files}), Gnus will try to
1060determine what groups should be subscribed by default.
1061
1062@vindex gnus-default-subscribed-newsgroups
1063If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus
1064will subscribe you to just those groups in that list, leaving the rest
1065killed. Your system administrator should have set this variable to
1066something useful.
1067
1068Since she hasn't, Gnus will just subscribe you to a few arbitrarily
1069picked groups (i.e., @samp{*.newusers}). (@dfn{Arbitrary} is defined
1070here as @dfn{whatever Lars thinks you should read}.)
1071
1072You'll also be subscribed to the Gnus documentation group, which should
1073help you with most common problems.
1074
1075If @code{gnus-default-subscribed-newsgroups} is @code{t}, Gnus will just
1076use the normal functions for handling new groups, and not do anything
1077special.
1078
1079
1080@node The Server is Down 1069@node The Server is Down
1081@section The Server is Down 1070@section The Server is Down
1082@cindex server errors 1071@cindex server errors
@@ -1321,11 +1310,18 @@ but I thought it would be nice to have two of these. This variable is
1321more meant for setting some ground rules, while the other variable is 1310more meant for setting some ground rules, while the other variable is
1322used more for user fiddling. By default this variable makes all new 1311used more for user fiddling. By default this variable makes all new
1323groups that come from mail back ends (@code{nnml}, @code{nnbabyl}, 1312groups that come from mail back ends (@code{nnml}, @code{nnbabyl},
1324@code{nnfolder}, @code{nnmbox}, @code{nnmh}, and @code{nnmaildir}) 1313@code{nnfolder}, @code{nnmbox}, @code{nnmh}, @code{nnimap}, and
1325subscribed. If you don't like that, just set this variable to 1314@code{nnmaildir}) subscribed. If you don't like that, just set this
1326@code{nil}. 1315variable to @code{nil}.
1327 1316
1328New groups that match this regexp are subscribed using 1317@vindex gnus-auto-subscribed-categories
1318As if that wasn't enough, @code{gnus-auto-subscribed-categories} also
1319allows you to specify that new groups should be subcribed based on the
1320category their select methods belong to. The default is @samp{(mail
1321post-mail)}, meaning that all new groups from mail-like backends
1322should be subscribed automatically.
1323
1324New groups that match these variables are subscribed using
1329@code{gnus-subscribe-options-newsgroup-method}. 1325@code{gnus-subscribe-options-newsgroup-method}.
1330 1326
1331 1327
@@ -1680,7 +1676,6 @@ long as Gnus is active.
1680* Exiting Gnus:: Stop reading news and get some work done. 1676* Exiting Gnus:: Stop reading news and get some work done.
1681* Group Topics:: A folding group mode divided into topics. 1677* Group Topics:: A folding group mode divided into topics.
1682* Non-ASCII Group Names:: Accessing groups of non-English names. 1678* Non-ASCII Group Names:: Accessing groups of non-English names.
1683* Searching:: Mail search engines.
1684* Misc Group Stuff:: Other stuff that you can to do. 1679* Misc Group Stuff:: Other stuff that you can to do.
1685@end menu 1680@end menu
1686 1681
@@ -2517,6 +2512,15 @@ the command to be executed.
2517@section Foreign Groups 2512@section Foreign Groups
2518@cindex foreign groups 2513@cindex foreign groups
2519 2514
2515If you recall how to subscribe to servers (@pxref{Finding the News})
2516you will remember that @code{gnus-secondary-select-methods} and
2517@code{gnus-select-method} let you write a definition in Emacs Lisp of
2518what servers you want to see when you start up. The alternate
2519approach is to use foreign servers and groups. ``Foreign'' here means
2520they are not coming from the select methods. All foreign server
2521configuration and subscriptions are stored only in the
2522@file{~/.newsrc.eld} file.
2523
2520Below are some group mode commands for making and editing general foreign 2524Below are some group mode commands for making and editing general foreign
2521groups, as well as commands to ease the creation of a few 2525groups, as well as commands to ease the creation of a few
2522special-purpose groups. All these commands insert the newly created 2526special-purpose groups. All these commands insert the newly created
@@ -4302,712 +4306,6 @@ names should be the same in both groups. Otherwise the Newsgroups
4302header will be displayed incorrectly in the article buffer. 4306header will be displayed incorrectly in the article buffer.
4303 4307
4304 4308
4305@node Searching
4306@section Searching
4307
4308@menu
4309* nnir:: Searching on IMAP, with swish, namazu, etc.
4310* nnmairix:: Searching maildir, MH or mbox with Mairix.
4311@end menu
4312
4313@cindex Searching
4314
4315FIXME: This node is a stub.
4316
4317FIXME: Add a brief overview of Gnus search capabilities. A brief
4318comparison of nnir, nnmairix, contrib/gnus-namazu would be nice
4319as well.
4320
4321FIXME: Explain difference to @ref{Searching for Articles}, add reference
4322and back-reference.
4323
4324@node nnir
4325@subsection nnir
4326
4327FIXME: As a first step, convert the commentary of @file{nnir} to texi.
4328@cindex nnir
4329
4330@node nnmairix
4331@subsection nnmairix
4332
4333@cindex mairix
4334@cindex nnmairix
4335This paragraph describes how to set up mairix and the back end
4336@code{nnmairix} for indexing and searching your mail from within
4337Gnus. Additionally, you can create permanent ``smart'' groups which are
4338bound to mairix searches and are automatically updated.
4339
4340@menu
4341* About mairix:: About the mairix mail search engine
4342* nnmairix requirements:: What you will need for using nnmairix
4343* What nnmairix does:: What does nnmairix actually do?
4344* Setting up mairix:: Set up your mairix installation
4345* Configuring nnmairix:: Set up the nnmairix back end
4346* nnmairix keyboard shortcuts:: List of available keyboard shortcuts
4347* Propagating marks:: How to propagate marks from nnmairix groups
4348* nnmairix tips and tricks:: Some tips, tricks and examples
4349* nnmairix caveats:: Some more stuff you might want to know
4350@end menu
4351
4352@c FIXME: The markup in this section might need improvement.
4353@c E.g. adding @samp, @var, @file, @command, etc.
4354@c Cf. (info "(texinfo)Indicating")
4355
4356@node About mairix
4357@subsubsection About mairix
4358
4359Mairix is a tool for indexing and searching words in locally stored
4360mail. It was written by Richard Curnow and is licensed under the
4361GPL. Mairix comes with most popular GNU/Linux distributions, but it also
4362runs under Windows (with cygwin), Mac OS X and Solaris. The homepage can
4363be found at
4364@uref{http://www.rpcurnow.force9.co.uk/mairix/index.html}
4365
4366Though mairix might not be as flexible as other search tools like
4367swish++ or namazu, which you can use via the @code{nnir} back end, it
4368has the prime advantage of being incredibly fast. On current systems, it
4369can easily search through headers and message bodies of thousands and
4370thousands of mails in well under a second. Building the database
4371necessary for searching might take a minute or two, but only has to be
4372done once fully. Afterwards, the updates are done incrementally and
4373therefore are really fast, too. Additionally, mairix is very easy to set
4374up.
4375
4376For maximum speed though, mairix should be used with mails stored in
4377@code{Maildir} or @code{MH} format (this includes the @code{nnml} back
4378end), although it also works with mbox. Mairix presents the search
4379results by populating a @emph{virtual} maildir/MH folder with symlinks
4380which point to the ``real'' message files (if mbox is used, copies are
4381made). Since mairix already presents search results in such a virtual
4382mail folder, it is very well suited for using it as an external program
4383for creating @emph{smart} mail folders, which represent certain mail
4384searches.
4385
4386@node nnmairix requirements
4387@subsubsection nnmairix requirements
4388
4389Mairix searches local mail---that means, mairix absolutely must have
4390direct access to your mail folders. If your mail resides on another
4391server (e.g. an @acronym{IMAP} server) and you happen to have shell
4392access, @code{nnmairix} supports running mairix remotely, e.g. via ssh.
4393
4394Additionally, @code{nnmairix} only supports the following Gnus back
4395ends: @code{nnml}, @code{nnmaildir}, and @code{nnimap}. You must use
4396one of these back ends for using @code{nnmairix}. Other back ends, like
4397@code{nnmbox}, @code{nnfolder} or @code{nnmh}, won't work.
4398
4399If you absolutely must use mbox and still want to use @code{nnmairix},
4400you can set up a local @acronym{IMAP} server, which you then access via
4401@code{nnimap}. This is a rather massive setup for accessing some mbox
4402files, so just change to MH or Maildir already... However, if you're
4403really, really passionate about using mbox, you might want to look into
4404the package @file{mairix.el}, which comes with Emacs 23.
4405
4406@node What nnmairix does
4407@subsubsection What nnmairix does
4408
4409The back end @code{nnmairix} enables you to call mairix from within Gnus,
4410either to query mairix with a search term or to update the
4411database. While visiting a message in the summary buffer, you can use
4412several pre-defined shortcuts for calling mairix, e.g. to quickly
4413search for all mails from the sender of the current message or to
4414display the whole thread associated with the message, even if the
4415mails are in different folders.
4416
4417Additionally, you can create permanent @code{nnmairix} groups which are bound
4418to certain mairix searches. This way, you can easily create a group
4419containing mails from a certain sender, with a certain subject line or
4420even for one specific thread based on the Message-ID. If you check for
4421new mail in these folders (e.g. by pressing @kbd{g} or @kbd{M-g}), they
4422automatically update themselves by calling mairix.
4423
4424You might ask why you need @code{nnmairix} at all, since mairix already
4425creates the group, populates it with links to the mails so that you can
4426then access it with Gnus, right? Well, this @emph{might} work, but often
4427does not---at least not without problems. Most probably you will get
4428strange article counts, and sometimes you might see mails which Gnus
4429claims have already been canceled and are inaccessible. This is due to
4430the fact that Gnus isn't really amused when things are happening behind
4431its back. Another problem can be the mail back end itself, e.g. if you
4432use mairix with an @acronym{IMAP} server (I had Dovecot complaining
4433about corrupt index files when mairix changed the contents of the search
4434group). Using @code{nnmairix} should circumvent these problems.
4435
4436@code{nnmairix} is not really a mail back end---it's actually more like
4437a wrapper, sitting between a ``real'' mail back end where mairix stores
4438the searches and the Gnus front end. You can choose between three
4439different mail back ends for the mairix folders: @code{nnml},
4440@code{nnmaildir} or @code{nnimap}. @code{nnmairix} will call the mairix
4441binary so that the search results are stored in folders named
4442@code{zz_mairix-<NAME>-<NUMBER>} on this mail back end, but it will
4443present these folders in the Gnus front end only with @code{<NAME>}.
4444You can use an existing mail back end where you already store your mail,
4445but if you're uncomfortable with @code{nnmairix} creating new mail
4446groups alongside your other mail, you can also create e.g. a new
4447@code{nnmaildir} or @code{nnml} server exclusively for mairix, but then
4448make sure those servers do not accidentally receive your new mail
4449(@pxref{nnmairix caveats}). A special case exists if you want to use
4450mairix remotely on an IMAP server with @code{nnimap}---here the mairix
4451folders and your other mail must be on the same @code{nnimap} back end.
4452
4453@node Setting up mairix
4454@subsubsection Setting up mairix
4455
4456First: create a backup of your mail folders (@pxref{nnmairix caveats}).
4457
4458Setting up mairix is easy: simply create a @file{.mairixrc} file with
4459(at least) the following entries:
4460
4461@example
4462# Your Maildir/MH base folder
4463base=~/Maildir
4464@end example
4465
4466This is the base folder for your mails. All the following directories
4467are relative to this base folder. If you want to use @code{nnmairix}
4468with @code{nnimap}, this base directory has to point to the mail
4469directory where the @acronym{IMAP} server stores the mail folders!
4470
4471@example
4472maildir= ... your maildir folders which should be indexed ...
4473mh= ... your nnml/mh folders which should be indexed ...
4474mbox = ... your mbox files which should be indexed ...
4475@end example
4476
4477This specifies all your mail folders and mbox files (relative to the
4478base directory!) you want to index with mairix. Note that the
4479@code{nnml} back end saves mails in MH format, so you have to put those
4480directories in the @code{mh} line. See the example at the end of this
4481section and mairixrc's man-page for further details.
4482
4483@example
4484omit=zz_mairix-*
4485@end example
4486
4487@vindex nnmairix-group-prefix
4488This should make sure that you don't accidentally index the mairix
4489search results. You can change the prefix of these folders with the
4490variable @code{nnmairix-group-prefix}.
4491
4492@example
4493mformat= ... 'maildir' or 'mh' ...
4494database= ... location of database file ...
4495@end example
4496
4497The @code{format} setting specifies the output format for the mairix
4498search folder. Set this to @code{mh} if you want to access search results
4499with @code{nnml}. Otherwise choose @code{maildir}.
4500
4501To summarize, here is my shortened @file{.mairixrc} file as an example:
4502
4503@example
4504base=~/Maildir
4505maildir=.personal:.work:.logcheck:.sent
4506mh=../Mail/nnml/*...
4507mbox=../mboxmail/mailarchive_year*
4508mformat=maildir
4509omit=zz_mairix-*
4510database=~/.mairixdatabase
4511@end example
4512
4513In this case, the base directory is @file{~/Maildir}, where all my Maildir
4514folders are stored. As you can see, the folders are separated by
4515colons. If you wonder why every folder begins with a dot: this is
4516because I use Dovecot as @acronym{IMAP} server, which again uses
4517@code{Maildir++} folders. For testing nnmairix, I also have some
4518@code{nnml} mail, which is saved in @file{~/Mail/nnml}. Since this has
4519to be specified relative to the @code{base} directory, the @code{../Mail}
4520notation is needed. Note that the line ends in @code{*...}, which means
4521to recursively scan all files under this directory. Without the three
4522dots, the wildcard @code{*} will not work recursively. I also have some
4523old mbox files with archived mail lying around in @file{~/mboxmail}.
4524The other lines should be obvious.
4525
4526See the man page for @code{mairixrc} for details and further options,
4527especially regarding wildcard usage, which may be a little different
4528than you are used to.
4529
4530Now simply call @code{mairix} to create the index for the first time.
4531Note that this may take a few minutes, but every following index will do
4532the updates incrementally and hence is very fast.
4533
4534@node Configuring nnmairix
4535@subsubsection Configuring nnmairix
4536
4537In group mode, type @kbd{G b c}
4538(@code{nnmairix-create-server-and-default-group}). This will ask you for all
4539necessary information and create a @code{nnmairix} server as a foreign
4540server. You will have to specify the following:
4541
4542@itemize @bullet
4543
4544@item
4545The @strong{name} of the @code{nnmairix} server---choose whatever you
4546want.
4547
4548@item
4549The name of the @strong{back end server} where mairix should store its
4550searches. This must be a full server name, like @code{nnml:mymail}.
4551Just hit @kbd{TAB} to see the available servers. Currently, servers
4552which are accessed through @code{nnmaildir}, @code{nnimap} and
4553@code{nnml} are supported. As explained above, for locally stored
4554mails, this can be an existing server where you store your mails.
4555However, you can also create e.g. a new @code{nnmaildir} or @code{nnml}
4556server exclusively for @code{nnmairix} in your secondary select methods
4557(@pxref{Finding the News}). If you use a secondary @code{nnml} server
4558just for mairix, make sure that you explicitly set the server variable
4559@code{nnml-get-new-mail} to @code{nil}, or you might lose mail
4560(@pxref{nnmairix caveats}). If you want to use mairix remotely on an
4561@acronym{IMAP} server, you have to choose the corresponding
4562@code{nnimap} server here.
4563
4564@item
4565@vindex nnmairix-mairix-search-options
4566The @strong{command} to call the mairix binary. This will usually just
4567be @code{mairix}, but you can also choose something like @code{ssh
4568SERVER mairix} if you want to call mairix remotely, e.g. on your
4569@acronym{IMAP} server. If you want to add some default options to
4570mairix, you could do this here, but better use the variable
4571@code{nnmairix-mairix-search-options} instead.
4572
4573@item
4574The name of the @strong{default search group}. This will be the group
4575where all temporary mairix searches are stored, i.e. all searches which
4576are not bound to permanent @code{nnmairix} groups. Choose whatever you
4577like.
4578
4579@item
4580If the mail back end is @code{nnimap} or @code{nnmaildir}, you will be
4581asked if you work with @strong{Maildir++}, i.e. with hidden maildir
4582folders (=beginning with a dot). For example, you have to answer
4583@samp{yes} here if you work with the Dovecot @acronym{IMAP}
4584server. Otherwise, you should answer @samp{no} here.
4585
4586@end itemize
4587
4588@node nnmairix keyboard shortcuts
4589@subsubsection nnmairix keyboard shortcuts
4590
4591In group mode:
4592
4593@table @kbd
4594
4595@item G b c
4596@kindex G b c (Group)
4597@findex nnmairix-create-server-and-default-group
4598Creates @code{nnmairix} server and default search group for this server
4599(@code{nnmairix-create-server-and-default-group}). You should have done
4600this by now (@pxref{Configuring nnmairix}).
4601
4602@item G b s
4603@kindex G b s (Group)
4604@findex nnmairix-search
4605Prompts for query which is then sent to the mairix binary. Search
4606results are put into the default search group which is automatically
4607displayed (@code{nnmairix-search}).
4608
4609@item G b m
4610@kindex G b m (Group)
4611@findex nnmairix-widget-search
4612Allows you to create a mairix search or a permanent group more
4613comfortably using graphical widgets, similar to a customization
4614group. Just try it to see how it works (@code{nnmairix-widget-search}).
4615
4616@item G b i
4617@kindex G b i (Group)
4618@findex nnmairix-search-interactive
4619Another command for creating a mairix query more comfortably, but uses
4620only the minibuffer (@code{nnmairix-search-interactive}).
4621
4622@item G b g
4623@kindex G b g (Group)
4624@findex nnmairix-create-search-group
4625Creates a permanent group which is associated with a search query
4626(@code{nnmairix-create-search-group}). The @code{nnmairix} back end
4627automatically calls mairix when you update this group with @kbd{g} or
4628@kbd{M-g}.
4629
4630@item G b q
4631@kindex G b q (Group)
4632@findex nnmairix-group-change-query-this-group
4633Changes the search query for the @code{nnmairix} group under cursor
4634(@code{nnmairix-group-change-query-this-group}).
4635
4636@item G b t
4637@kindex G b t (Group)
4638@findex nnmairix-group-toggle-threads-this-group
4639Toggles the 'threads' parameter for the @code{nnmairix} group under cursor,
4640i.e. if you want see the whole threads of the found messages
4641(@code{nnmairix-group-toggle-threads-this-group}).
4642
4643@item G b u
4644@kindex G b u (Group)
4645@findex nnmairix-update-database
4646@vindex nnmairix-mairix-update-options
4647Calls mairix binary for updating the database
4648(@code{nnmairix-update-database}). The default parameters are @code{-F}
4649and @code{-Q} for making this as fast as possible (see variable
4650@code{nnmairix-mairix-update-options} for defining these default
4651options).
4652
4653@item G b r
4654@kindex G b r (Group)
4655@findex nnmairix-group-toggle-readmarks-this-group
4656Keep articles in this @code{nnmairix} group always read or unread, or leave the
4657marks unchanged (@code{nnmairix-group-toggle-readmarks-this-group}).
4658
4659@item G b d
4660@kindex G b d (Group)
4661@findex nnmairix-group-delete-recreate-this-group
4662Recreate @code{nnmairix} group on the ``real'' mail back end
4663(@code{nnmairix-group-delete-recreate-this-group}). You can do this if
4664you always get wrong article counts with a @code{nnmairix} group.
4665
4666@item G b a
4667@kindex G b a (Group)
4668@findex nnmairix-group-toggle-allowfast-this-group
4669Toggles the @code{allow-fast} parameters for group under cursor
4670(@code{nnmairix-group-toggle-allowfast-this-group}). The default
4671behavior of @code{nnmairix} is to do a mairix search every time you
4672update or enter the group. With the @code{allow-fast} parameter set,
4673mairix will only be called when you explicitly update the group, but not
4674upon entering. This makes entering the group faster, but it may also
4675lead to dangling symlinks if something changed between updating and
4676entering the group which is not yet in the mairix database.
4677
4678@item G b p
4679@kindex G b p (Group)
4680@findex nnmairix-group-toggle-propmarks-this-group
4681Toggle marks propagation for this group
4682(@code{nnmairix-group-toggle-propmarks-this-group}). (@pxref{Propagating
4683marks}).
4684
4685@item G b o
4686@kindex G b o (Group)
4687@findex nnmairix-propagate-marks
4688Manually propagate marks (@code{nnmairix-propagate-marks}); needed only when
4689@code{nnmairix-propagate-marks-upon-close} is set to @code{nil}.
4690
4691@end table
4692
4693In summary mode:
4694
4695@table @kbd
4696
4697@item $ m
4698@kindex $ m (Summary)
4699@findex nnmairix-widget-search-from-this-article
4700Allows you to create a mairix query or group based on the current
4701message using graphical widgets (same as @code{nnmairix-widget-search})
4702(@code{nnmairix-widget-search-from-this-article}).
4703
4704@item $ g
4705@kindex $ g (Summary)
4706@findex nnmairix-create-search-group-from-message
4707Interactively creates a new search group with query based on the current
4708message, but uses the minibuffer instead of graphical widgets
4709(@code{nnmairix-create-search-group-from-message}).
4710
4711@item $ t
4712@kindex $ t (Summary)
4713@findex nnmairix-search-thread-this-article
4714Searches thread for the current article
4715(@code{nnmairix-search-thread-this-article}). This is effectively a
4716shortcut for calling @code{nnmairix-search} with @samp{m:msgid} of the
4717current article and enabled threads.
4718
4719@item $ f
4720@kindex $ f (Summary)
4721@findex nnmairix-search-from-this-article
4722Searches all messages from sender of the current article
4723(@code{nnmairix-search-from-this-article}). This is a shortcut for
4724calling @code{nnmairix-search} with @samp{f:From}.
4725
4726@item $ o
4727@kindex $ o (Summary)
4728@findex nnmairix-goto-original-article
4729(Only in @code{nnmairix} groups!) Tries determine the group this article
4730originally came from and displays the article in this group, so that
4731e.g. replying to this article the correct posting styles/group
4732parameters are applied (@code{nnmairix-goto-original-article}). This
4733function will use the registry if available, but can also parse the
4734article file name as a fallback method.
4735
4736@item $ u
4737@kindex $ u (Summary)
4738@findex nnmairix-remove-tick-mark-original-article
4739Remove possibly existing tick mark from original article
4740(@code{nnmairix-remove-tick-mark-original-article}). (@pxref{nnmairix
4741tips and tricks}).
4742
4743@end table
4744
4745@node Propagating marks
4746@subsubsection Propagating marks
4747
4748First of: you really need a patched mairix binary for using the marks
4749propagation feature efficiently. Otherwise, you would have to update
4750the mairix database all the time. You can get the patch at
4751
4752@uref{http://www.randomsample.de/mairix-maildir-patch.tar}
4753
4754You need the mairix v0.21 source code for this patch; everything else
4755is explained in the accompanied readme file. If you don't want to use
4756marks propagation, you don't have to apply these patches, but they also
4757fix some annoyances regarding changing maildir flags, so it might still
4758be useful to you.
4759
4760With the patched mairix binary, you can use @code{nnmairix} as an
4761alternative to mail splitting (@pxref{Fancy Mail Splitting}). For
4762example, instead of splitting all mails from @samp{david@@foobar.com}
4763into a group, you can simply create a search group with the query
4764@samp{f:david@@foobar.com}. This is actually what ``smart folders'' are
4765all about: simply put everything in one mail folder and dynamically
4766create searches instead of splitting. This is more flexible, since you
4767can dynamically change your folders any time you want to. This also
4768implies that you will usually read your mails in the @code{nnmairix}
4769groups instead of your ``real'' mail groups.
4770
4771There is one problem, though: say you got a new mail from
4772@samp{david@@foobar.com}; it will now show up in two groups, the
4773``real'' group (your INBOX, for example) and in the @code{nnmairix}
4774search group (provided you have updated the mairix database). Now you
4775enter the @code{nnmairix} group and read the mail. The mail will be
4776marked as read, but only in the @code{nnmairix} group---in the ``real''
4777mail group it will be still shown as unread.
4778
4779You could now catch up the mail group (@pxref{Group Data}), but this is
4780tedious and error prone, since you may overlook mails you don't have
4781created @code{nnmairix} groups for. Of course, you could first use
4782@code{nnmairix-goto-original-article} (@pxref{nnmairix keyboard
4783shortcuts}) and then read the mail in the original group, but that's
4784even more cumbersome.
4785
4786Clearly, the easiest way would be if marks could somehow be
4787automatically set for the original article. This is exactly what
4788@emph{marks propagation} is about.
4789
4790Marks propagation is deactivated by default. You can activate it for a
4791certain @code{nnmairix} group with
4792@code{nnmairix-group-toggle-propmarks-this-group} (bound to @kbd{G b
4793p}). This function will warn you if you try to use it with your default
4794search group; the reason is that the default search group is used for
4795temporary searches, and it's easy to accidentally propagate marks from
4796this group. However, you can ignore this warning if you really want to.
4797
4798With marks propagation enabled, all the marks you set in a @code{nnmairix}
4799group should now be propagated to the original article. For example,
4800you can now tick an article (by default with @kbd{!}) and this mark should
4801magically be set for the original article, too.
4802
4803A few more remarks which you may or may not want to know:
4804
4805@vindex nnmairix-propagate-marks-upon-close
4806Marks will not be set immediately, but only upon closing a group. This
4807not only makes marks propagation faster, it also avoids problems with
4808dangling symlinks when dealing with maildir files (since changing flags
4809will change the file name). You can also control when to propagate marks
4810via @code{nnmairix-propagate-marks-upon-close} (see the doc-string for
4811details).
4812
4813Obviously, @code{nnmairix} will have to look up the original group for every
4814article you want to set marks for. If available, @code{nnmairix} will first use
4815the registry for determining the original group. The registry is very
4816fast, hence you should really, really enable the registry when using
4817marks propagation. If you don't have to worry about RAM and disc space,
4818set @code{gnus-registry-max-entries} to a large enough value; to be on
4819the safe side, choose roughly the amount of mails you index with mairix.
4820
4821@vindex nnmairix-only-use-registry
4822If you don't want to use the registry or the registry hasn't seen the
4823original article yet, @code{nnmairix} will use an additional mairix
4824search for determining the file name of the article. This, of course, is
4825way slower than the registry---if you set hundreds or even thousands of
4826marks this way, it might take some time. You can avoid this situation by
4827setting @code{nnmairix-only-use-registry} to t.
4828
4829Maybe you also want to propagate marks the other way round, i.e. if you
4830tick an article in a "real" mail group, you'd like to have the same
4831article in a @code{nnmairix} group ticked, too. For several good
4832reasons, this can only be done efficiently if you use maildir. To
4833immediately contradict myself, let me mention that it WON'T work with
4834@code{nnmaildir}, since @code{nnmaildir} stores the marks externally and
4835not in the file name. Therefore, propagating marks to @code{nnmairix}
4836groups will usually only work if you use an IMAP server which uses
4837maildir as its file format.
4838
4839@vindex nnmairix-propagate-marks-to-nnmairix-groups
4840If you work with this setup, just set
4841@code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t} and see what
4842happens. If you don't like what you see, just set it to @code{nil} again. One
4843problem might be that you get a wrong number of unread articles; this
4844usually happens when you delete or expire articles in the original
4845groups. When this happens, you can recreate the @code{nnmairix} group on the
4846back end using @kbd{G b d}.
4847
4848@node nnmairix tips and tricks
4849@subsubsection nnmairix tips and tricks
4850
4851@itemize
4852@item
4853Checking Mail
4854
4855@findex nnmairix-update-groups
4856I put all my important mail groups at group level 1. The mairix groups
4857have group level 5, so they do not get checked at start up (@pxref{Group
4858Levels}).
4859
4860I use the following to check for mails:
4861
4862@lisp
4863(defun my-check-mail-mairix-update (level)
4864 (interactive "P")
4865 ;; if no prefix given, set level=1
4866 (gnus-group-get-new-news (or level 1))
4867 (nnmairix-update-groups "mairixsearch" t t)
4868 (gnus-group-list-groups))
4869
4870(define-key gnus-group-mode-map "g" 'my-check-mail-mairix-update)
4871@end lisp
4872
4873Instead of @samp{"mairixsearch"} use the name of your @code{nnmairix}
4874server. See the doc string for @code{nnmairix-update-groups} for
4875details.
4876
4877@item
4878Example: search group for ticked articles
4879
4880For example, you can create a group for all ticked articles, where the
4881articles always stay unread:
4882
4883Hit @kbd{G b g}, enter group name (e.g. @samp{important}), use
4884@samp{F:f} as query and do not include threads.
4885
4886Now activate marks propagation for this group by using @kbd{G b p}. Then
4887activate the always-unread feature by using @kbd{G b r} twice.
4888
4889So far so good---but how do you remove the tick marks in the @code{nnmairix}
4890group? There are two options: You may simply use
4891@code{nnmairix-remove-tick-mark-original-article} (bound to @kbd{$ u}) to remove
4892tick marks from the original article. The other possibility is to set
4893@code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t}, but see the above
4894comments about this option. If it works for you, the tick marks should
4895also exist in the @code{nnmairix} group and you can remove them as usual,
4896e.g. by marking an article as read.
4897
4898When you have removed a tick mark from the original article, this
4899article should vanish from the @code{nnmairix} group after you have updated the
4900mairix database and updated the group. Fortunately, there is a function
4901for doing exactly that: @code{nnmairix-update-groups}. See the previous code
4902snippet and the doc string for details.
4903
4904@item
4905Dealing with auto-subscription of mail groups
4906
4907As described before, all @code{nnmairix} groups are in fact stored on
4908the mail back end in the form @samp{zz_mairix-<NAME>-<NUMBER>}. You can
4909see them when you enter the back end server in the server buffer. You
4910should not subscribe these groups! Unfortunately, these groups will
4911usually get @emph{auto-subscribed} when you use @code{nnmaildir} or
4912@code{nnml}, i.e. you will suddenly see groups of the form
4913@samp{zz_mairix*} pop up in your group buffer. If this happens to you,
4914simply kill these groups with C-k. For avoiding this, turn off
4915auto-subscription completely by setting the variable
4916@code{gnus-auto-subscribed-groups} to @code{nil} (@pxref{Filtering New
4917Groups}), or if you like to keep this feature use the following kludge
4918for turning it off for all groups beginning with @samp{zz_}:
4919
4920@lisp
4921(setq gnus-auto-subscribed-groups
4922 "^\\(nnml\\|nnfolder\\|nnmbox\\|nnmh\\|nnbabyl\\|nnmaildir\\).*:\\([^z]\\|z$\\|\\z[^z]\\|zz$\\|zz[^_]\\|zz_$\\).*")
4923@end lisp
4924
4925@end itemize
4926
4927@node nnmairix caveats
4928@subsubsection nnmairix caveats
4929
4930@itemize
4931@item
4932You can create a secondary @code{nnml} server just for nnmairix, but then
4933you have to explicitly set the corresponding server variable
4934@code{nnml-get-new-mail} to @code{nil}. Otherwise, new mail might get
4935put into this secondary server (and would never show up again). Here's
4936an example server definition:
4937
4938@lisp
4939(nnml "mairix" (nnml-directory "mairix") (nnml-get-new-mail nil))
4940@end lisp
4941
4942(The @code{nnmaildir} back end also has a server variabe
4943@code{get-new-mail}, but its default value is @code{nil}, so you don't
4944have to explicitly set it if you use a @code{nnmaildir} server just for
4945mairix.)
4946
4947@item
4948If you use the Gnus registry: don't use the registry with
4949@code{nnmairix} groups (put them in
4950@code{gnus-registry-unfollowed-groups}). Be @emph{extra careful} if
4951you use @code{gnus-registry-split-fancy-with-parent}; mails which are
4952split into @code{nnmairix} groups are usually gone for good as soon as
4953you check the group for new mail (yes, it has happened to me...).
4954
4955@item
4956Therefore: @emph{Never ever} put ``real'' mails into @code{nnmairix}
4957groups (you shouldn't be able to, anyway).
4958
4959@item
4960If you use the Gnus agent (@pxref{Gnus Unplugged}): don't agentize
4961@code{nnmairix} groups (though I have no idea what happens if you do).
4962
4963@item
4964mairix does only support us-ascii characters.
4965
4966@item
4967@code{nnmairix} uses a rather brute force method to force Gnus to
4968completely reread the group on the mail back end after mairix was
4969called---it simply deletes and re-creates the group on the mail
4970back end. So far, this has worked for me without any problems, and I
4971don't see how @code{nnmairix} could delete other mail groups than its
4972own, but anyway: you really should have a backup of your mail
4973folders.
4974
4975@item
4976All necessary information is stored in the group parameters
4977(@pxref{Group Parameters}). This has the advantage that no active file
4978is needed, but also implies that when you kill a @code{nnmairix} group,
4979it is gone for good.
4980
4981@item
4982@findex nnmairix-purge-old-groups
4983If you create and kill a lot of @code{nnmairix} groups, the
4984``zz_mairix-*'' groups will accumulate on the mail back end server. To
4985delete old groups which are no longer needed, call
4986@code{nnmairix-purge-old-groups}. Note that this assumes that you don't
4987save any ``real'' mail in folders of the form
4988@code{zz_mairix-<NAME>-<NUMBER>}. You can change the prefix of
4989@code{nnmairix} groups by changing the variable
4990@code{nnmairix-group-prefix}.
4991
4992@item
4993The following only applies if you @emph{don't} use the mentioned patch
4994for mairix (@pxref{Propagating marks}):
4995
4996A problem can occur when using @code{nnmairix} with maildir folders and
4997comes with the fact that maildir stores mail flags like @samp{Seen} or
4998@samp{Replied} by appending chars @samp{S} and @samp{R} to the message
4999file name, respectively. This implies that currently you would have to
5000update the mairix database not only when new mail arrives, but also when
5001mail flags are changing. The same applies to new mails which are indexed
5002while they are still in the @samp{new} folder but then get moved to
5003@samp{cur} when Gnus has seen the mail. If you don't update the database
5004after this has happened, a mairix query can lead to symlinks pointing to
5005non-existing files. In Gnus, these messages will usually appear with
5006``(none)'' entries in the header and can't be accessed. If this happens
5007to you, using @kbd{G b u} and updating the group will usually fix this.
5008
5009@end itemize
5010
5011@node Misc Group Stuff 4309@node Misc Group Stuff
5012@section Misc Group Stuff 4310@section Misc Group Stuff
5013 4311
@@ -10194,26 +9492,19 @@ Say how much time has elapsed between the article was posted and now
10194(@code{gnus-article-date-lapsed}). It looks something like: 9492(@code{gnus-article-date-lapsed}). It looks something like:
10195 9493
10196@example 9494@example
10197X-Sent: 6 weeks, 4 days, 1 hour, 3 minutes, 8 seconds ago 9495Date: 6 weeks, 4 days, 1 hour, 3 minutes, 8 seconds ago
10198@end example 9496@end example
10199 9497
10200@vindex gnus-article-date-lapsed-new-header 9498This line is updated continually by default. If you wish to switch
10201The value of @code{gnus-article-date-lapsed-new-header} determines 9499that off, say:
10202whether this header will just be added below the old Date one, or will
10203replace it.
10204
10205An advantage of using Gnus to read mail is that it converts simple bugs
10206into wonderful absurdities.
10207
10208If you want to have this line updated continually, you can put
10209 9500
9501@vindex gnus-article-update-date-headers
10210@lisp 9502@lisp
10211(gnus-start-date-timer) 9503(setq gnus-article-update-date-headers nil)
10212@end lisp 9504@end lisp
10213 9505
10214in your @file{~/.gnus.el} file, or you can run it off of some hook. If 9506in your @file{~/.gnus.el} file. If you want to stop the updating
10215you want to stop the timer, you can use the @code{gnus-stop-date-timer} 9507dynamically, you can use the @code{gnus-stop-date-timer} command.
10216command.
10217 9508
10218@item W T o 9509@item W T o
10219@kindex W T o (Summary) 9510@kindex W T o (Summary)
@@ -12579,13 +11870,7 @@ controlling variable is a predicate list, as described above.
12579@vindex gnus-treat-strip-trailing-blank-lines 11870@vindex gnus-treat-strip-trailing-blank-lines
12580@vindex gnus-treat-unsplit-urls 11871@vindex gnus-treat-unsplit-urls
12581@vindex gnus-treat-wash-html 11872@vindex gnus-treat-wash-html
12582@vindex gnus-treat-date-english 11873@vindex gnus-treat-date
12583@vindex gnus-treat-date-iso8601
12584@vindex gnus-treat-date-lapsed
12585@vindex gnus-treat-date-local
12586@vindex gnus-treat-date-original
12587@vindex gnus-treat-date-user-defined
12588@vindex gnus-treat-date-ut
12589@vindex gnus-treat-from-picon 11874@vindex gnus-treat-from-picon
12590@vindex gnus-treat-mail-picon 11875@vindex gnus-treat-mail-picon
12591@vindex gnus-treat-newsgroups-picon 11876@vindex gnus-treat-newsgroups-picon
@@ -12640,13 +11925,39 @@ possible but those listed are probably sufficient for most people.
12640 11925
12641@xref{Article Washing}. 11926@xref{Article Washing}.
12642 11927
12643@item gnus-treat-date-english (head) 11928@item gnus-treat-date (head)
12644@item gnus-treat-date-iso8601 (head) 11929
12645@item gnus-treat-date-lapsed (head) 11930This will transform/add date headers according to the
12646@item gnus-treat-date-local (head) 11931@code{gnus-article-date-headers} variable. This is a list of Date
12647@item gnus-treat-date-original (head) 11932headers to display. The formats available are:
12648@item gnus-treat-date-user-defined (head) 11933
12649@item gnus-treat-date-ut (head) 11934@table @code
11935@item ut
11936Universal time, aka GMT, aka ZULU.
11937
11938@item local
11939The user's local time zone.
11940
11941@item english
11942A semi-readable English sentence.
11943
11944@item lapsed
11945The time elapsed since the message was posted.
11946
11947@item combined-elapsed
11948Both the original date header and a (shortened) elapsed time.
11949
11950@item original
11951The original date header.
11952
11953@item iso8601
11954ISO8601 format, i.e., ``2010-11-23T22:05:21''.
11955
11956@item user-defined
11957A format done according to the @code{gnus-article-time-format}
11958variable.
11959
11960@end table
12650 11961
12651@xref{Article Date}. 11962@xref{Article Date}.
12652 11963
@@ -13322,9 +12633,6 @@ messages in one file per month:
13322 (concat "mail." (format-time-string "%Y-%m"))))) 12633 (concat "mail." (format-time-string "%Y-%m")))))
13323@end lisp 12634@end lisp
13324 12635
13325@c (XEmacs 19.13 doesn't have @code{format-time-string}, so you'll have to
13326@c use a different value for @code{gnus-message-archive-group} there.)
13327
13328Now, when you send a message off, it will be stored in the appropriate 12636Now, when you send a message off, it will be stored in the appropriate
13329group. (If you want to disable storing for just one particular message, 12637group. (If you want to disable storing for just one particular message,
13330you can just remove the @code{Gcc} header that has been inserted.) The 12638you can just remove the @code{Gcc} header that has been inserted.) The
@@ -13336,11 +12644,6 @@ if (using @kbd{G r} in the group buffer) to something
13336nice---@samp{misc-mail-september-1995}, or whatever. New messages will 12644nice---@samp{misc-mail-september-1995}, or whatever. New messages will
13337continue to be stored in the old (now empty) group. 12645continue to be stored in the old (now empty) group.
13338 12646
13339That's the default method of archiving sent messages. Gnus offers a
13340different way for the people who don't like the default method. In that
13341case you should set @code{gnus-message-archive-group} to @code{nil};
13342this will disable archiving.
13343
13344@table @code 12647@table @code
13345@item gnus-gcc-mark-as-read 12648@item gnus-gcc-mark-as-read
13346@vindex gnus-gcc-mark-as-read 12649@vindex gnus-gcc-mark-as-read
@@ -14953,6 +14256,18 @@ The default is @samp{(%Deleted %Seen)}.
14953 14256
14954@end table 14257@end table
14955 14258
14259Here's a complete example @code{nnimap} backend with a client-side
14260``fancy'' splitting method:
14261
14262@example
14263(nnimap "imap.example.com"
14264 (nnimap-inbox "INBOX")
14265 (nnimap-split-methods
14266 (| ("MailScanner-SpamCheck" "spam" "spam.detected")
14267 (to "foo@@bar.com" "foo")
14268 "undecided")))
14269@end example
14270
14956 14271
14957@node Getting Mail 14272@node Getting Mail
14958@section Getting Mail 14273@section Getting Mail
@@ -17837,6 +17152,7 @@ newsgroups.
17837* Anything Groups:: Dired? Who needs dired? 17152* Anything Groups:: Dired? Who needs dired?
17838* Document Groups:: Single files can be the basis of a group. 17153* Document Groups:: Single files can be the basis of a group.
17839* Mail-To-News Gateways:: Posting articles via mail-to-news gateways. 17154* Mail-To-News Gateways:: Posting articles via mail-to-news gateways.
17155* The Empty Backend:: The backend that never has any news.
17840@end menu 17156@end menu
17841 17157
17842 17158
@@ -18284,6 +17600,22 @@ So, to use this, simply say something like:
18284@end lisp 17600@end lisp
18285 17601
18286 17602
17603@node The Empty Backend
17604@subsection The Empty Backend
17605@cindex nnnil
17606
17607@code{nnnil} is a backend that can be used as a placeholder if you
17608have to specify a backend somewhere, but don't really want to. The
17609classical example is if you don't want to have a primary select
17610methods, but want to only use secondary ones:
17611
17612@lisp
17613(setq gnus-select-method '(nnnil ""))
17614(setq gnus-secondary-select-methods
17615 '((nnimap "foo")
17616 (nnml "")))
17617@end lisp
17618
18287 17619
18288@node Combined Groups 17620@node Combined Groups
18289@section Combined Groups 17621@section Combined Groups
@@ -21711,6 +21043,1071 @@ the new score, which should be an integer.
21711Gnus will try to decay scores once a day. If you haven't run Gnus for 21043Gnus will try to decay scores once a day. If you haven't run Gnus for
21712four days, Gnus will decay the scores four times, for instance. 21044four days, Gnus will decay the scores four times, for instance.
21713 21045
21046@node Searching
21047@chapter Searching
21048@cindex searching
21049
21050FIXME: Add a brief overview of Gnus search capabilities. A brief
21051comparison of nnir, nnmairix, contrib/gnus-namazu would be nice
21052as well.
21053
21054This chapter describes tools for searching groups and servers for
21055articles matching a query and then retrieving those articles. Gnus
21056provides a simpler mechanism for searching through articles in a summary buffer
21057to find those matching a pattern. @xref{Searching for Articles}.
21058
21059@menu
21060* nnir:: Searching with various engines.
21061* nnmairix:: Searching with Mairix.
21062@end menu
21063
21064@node nnir
21065@section nnir
21066@cindex nnir
21067
21068This section describes how to use @code{nnir} to search for articles
21069within gnus.
21070
21071@menu
21072* What is nnir?:: What does @code{nnir} do?
21073* Basic Usage:: How to perform simple searches.
21074* Setting up nnir:: How to set up @code{nnir}.
21075@end menu
21076
21077@node What is nnir?
21078@subsection What is nnir?
21079
21080@code{nnir} is a Gnus interface to a number of tools for searching
21081through mail and news repositories. Different backends (like
21082@code{nnimap} and @code{nntp}) work with different tools (called
21083@dfn{engines} in @code{nnir} lingo), but all use the same basic search
21084interface.
21085
21086The @code{nnimap} and @code{gmane} search engines should work with no
21087configuration. Other engines require a local index that needs to be
21088created and maintained outside of Gnus.
21089
21090
21091@node Basic Usage
21092@subsection Basic Usage
21093
21094In the group buffer typing @kbd{G G} will search the group on the
21095current line by calling @code{gnus-group-make-nnir-group}. This prompts
21096for a query string, creates an ephemeral @code{nnir} group containing
21097the articles that match this query, and takes you to a summary buffer
21098showing these articles. Articles may then be read, moved and deleted
21099using the usual commands.
21100
21101The @code{nnir} group made in this way is an @code{ephemeral} group, and
21102some changes are not permanent: aside from reading, moving, and
21103deleting, you can't act on the original article. But there is an
21104alternative: you can @emph{warp} to the original group for the article
21105on the current line with @kbd{A W}, aka
21106@code{gnus-warp-to-article}. Even better, the function
21107@code{gnus-summary-refer-thread}, bound by default in summary buffers to
21108@kbd{A T}, will first warp to the original group before it works its
21109magic and includes all the articles in the thread. From here you can
21110read, move and delete articles, but also copy them, alter article marks,
21111whatever. Go nuts.
21112
21113You say you want to search more than just the group on the current line?
21114No problem: just process-mark the groups you want to search. You want
21115even more? Calling for an nnir search with the cursor on a topic heading
21116will search all the groups under that heading.
21117
21118Still not enough? OK, in the server buffer
21119@code{gnus-group-make-nnir-group} (now bound to @kbd{G}) will search all
21120groups from the server on the current line. Too much? Want to ignore
21121certain groups when searching, like spam groups? Just customize
21122@code{nnir-ignored-newsgroups}.
21123
21124One more thing: individual search engines may have special search
21125features. You can access these special features by giving a prefix-arg
21126to @code{gnus-group-make-nnir-group}. If you are searching multiple
21127groups with different search engines you will be prompted for the
21128special search features for each engine separately.
21129
21130
21131@node Setting up nnir
21132@subsection Setting up nnir
21133
21134To set up nnir you may need to do some prep work. Firstly, you may need
21135to configure the search engines you plan to use. Some of them, like
21136@code{imap} and @code{gmane}, need no special configuration. Others,
21137like @code{namazu} and @code{swish}, require configuration as described
21138below. Secondly, you need to associate a search engine with a server or
21139a backend.
21140
21141If you just want to use the @code{imap} engine to search @code{nnimap}
21142servers, and the @code{gmane} engine to search @code{gmane} then you
21143don't have to do anything. But you might want to read the details of the
21144query language anyway.
21145
21146@menu
21147* Associating Engines:: How to associate engines.
21148* The imap Engine:: Imap configuration and usage.
21149* The gmane Engine:: Gmane configuration and usage.
21150* The swish++ Engine:: Swish++ configuration and usage.
21151* The swish-e Engine:: Swish-e configuration and usage.
21152* The namazu Engine:: Namazu configuration and usage.
21153* The hyrex Engine:: Hyrex configuration and usage.
21154* Customizations:: User customizable settings.
21155@end menu
21156
21157@node Associating Engines
21158@subsubsection Associating Engines
21159
21160
21161When searching a group, @code{nnir} needs to know which search engine to
21162use. You can configure a given server to use a particular engine by
21163setting the server variable @code{nnir-search-engine} to the engine
21164name. For example to use the @code{namazu} engine to search the server
21165named @code{home} you can use
21166
21167@lisp
21168(setq gnus-secondary-select-methods
21169 '((nnml "home"
21170 (nnimap-address "localhost")
21171 (nnir-search-engine namazu))))
21172@end lisp
21173
21174Alternatively you might want to use a particular engine for all servers
21175with a given backend. For example, you might want to use the @code{imap}
21176engine for all servers using the @code{nnimap} backend. In this case you
21177can customize the variable @code{nnir-method-default-engines}. This is
21178an alist of pairs of the form @code{(backend . engine)}. By default this
21179variable is set to use the @code{imap} engine for all servers using the
21180@code{nnimap} backend, and the @code{gmane} backend for @code{nntp}
21181servers. (Don't worry, the @code{gmane} search engine won't actually try
21182to search non-gmane @code{nntp} servers.) But if you wanted to use
21183@code{namazu} for all your servers with an @code{nnimap} backend you
21184could change this to
21185
21186@lisp
21187'((nnimap . namazu)
21188 (nntp . gmane))
21189@end lisp
21190
21191@node The imap Engine
21192@subsubsection The imap Engine
21193
21194The @code{imap} engine requires no configuration.
21195
21196Queries using the @code{imap} engine follow a simple query language.
21197The search is always case-insensitive and supports the following
21198features (inspired by the Google search input language):
21199
21200@table @samp
21201
21202@item Boolean query operators
21203AND, OR, and NOT are supported, and parentheses can be used to control
21204operator precedence, e.g. (emacs OR xemacs) AND linux. Note that
21205operators must be written with all capital letters to be
21206recognised. Also preceding a term with a - sign is equivalent to NOT
21207term.
21208
21209@item Automatic AND queries
21210If you specify multiple words then they will be treated as an AND
21211expression intended to match all components.
21212
21213@item Phrase searches
21214If you wrap your query in double-quotes then it will be treated as a
21215literal string.
21216
21217@end table
21218
21219By default the whole message will be searched. The query can be limited
21220to a specific part of a message by using a prefix-arg. After inputting
21221the query this will prompt (with completion) for a message part.
21222Choices include ``Whole message'', ``Subject'', ``From'', and
21223``To''. Any unrecognized input is interpreted as a header name. For
21224example, typing @kbd{Message-ID} in response to this prompt will limit
21225the query to the Message-ID header.
21226
21227Finally selecting ``Imap'' will interpret the query as a raw
21228@acronym{IMAP} search query. The format of such queries can be found in
21229RFC3501.
21230
21231If you don't like the default of searching whole messages you can
21232customize @code{nnir-imap-default-search-key}. For example to use
21233@acronym{IMAP} queries by default
21234
21235@lisp
21236(setq nnir-imap-default-search-key "Imap")
21237@end lisp
21238
21239@node The gmane Engine
21240@subsubsection The gmane Engine
21241
21242The @code{gmane} engine requires no configuration.
21243
21244Gmane queries follow a simple query language:
21245
21246@table @samp
21247@item Boolean query operators
21248AND, OR, NOT (or AND NOT), and XOR are supported, and brackets can be
21249used to control operator precedence, e.g. (emacs OR xemacs) AND linux.
21250Note that operators must be written with all capital letters to be
21251recognised.
21252
21253@item Required and excluded terms
21254+ and - can be used to require or exclude terms, e.g. football -american
21255
21256@item Unicode handling
21257The search engine converts all text to utf-8, so searching should work
21258in any language.
21259
21260@item Stopwords
21261Common English words (like 'the' and 'a') are ignored by default. You
21262can override this by prefixing such words with a + (e.g. +the) or
21263enclosing the word in quotes (e.g. "the").
21264
21265@end table
21266
21267The query can be limited to articles by a specific author using a
21268prefix-arg. After inputting the query this will prompt for an author
21269name (or part of a name) to match.
21270
21271@node The swish++ Engine
21272@subsubsection The swish++ Engine
21273
21274FIXEM: Say something more here.
21275
21276Documentation for swish++ may be found at the swish++ sourceforge page:
21277@uref{http://swishplusplus.sourceforge.net}
21278
21279@table @code
21280
21281@item nnir-swish++-program
21282The name of the swish++ executable. Defaults to @code{search}
21283
21284@item nnir-swish++-additional-switches
21285A list of strings to be given as additional arguments to
21286swish++. @code{nil} by default.
21287
21288@item nnir-swish++-remove-prefix
21289The prefix to remove from each file name returned by swish++ in order
21290to get a group name. By default this is @code{$HOME/Mail}.
21291
21292@end table
21293
21294@node The swish-e Engine
21295@subsubsection The swish-e Engine
21296
21297FIXEM: Say something more here.
21298
21299Documentation for swish-e may be found at the swish-e homepage
21300@uref{http://swish-e.org}
21301
21302@table @code
21303
21304@item nnir-swish-e-program
21305The name of the swish-e search program. Defaults to @code{swish-e}.
21306
21307@item nnir-swish-e-additional-switches
21308A list of strings to be given as additional arguments to
21309swish-e. @code{nil} by default.
21310
21311@item nnir-swish-e-remove-prefix
21312The prefix to remove from each file name returned by swish-e in order
21313to get a group name. By default this is @code{$HOME/Mail}.
21314
21315@end table
21316
21317@node The namazu Engine
21318@subsubsection The namazu Engine
21319
21320Using the namazu engine requires creating and maintaining index files.
21321One directory should contain all the index files, and nnir must be told
21322where to find them by setting the @code{nnir-namazu-index-directory}
21323variable.
21324
21325To work correctly the @code{nnir-namazu-remove-prefix} variable must
21326also be correct. This is the prefix to remove from each file name
21327returned by Namazu in order to get a proper group name (albeit with `/'
21328instead of `.').
21329
21330For example, suppose that Namazu returns file names such as
21331@samp{/home/john/Mail/mail/misc/42}. For this example, use the
21332following setting: @code{(setq nnir-namazu-remove-prefix
21333"/home/john/Mail/")} Note the trailing slash. Removing this prefix from
21334the directory gives @samp{mail/misc/42}. @code{nnir} knows to remove
21335the @samp{/42} and to replace @samp{/} with @samp{.} to arrive at the
21336correct group name @samp{mail.misc}.
21337
21338Extra switches may be passed to the namazu search command by setting the
21339variable @code{nnir-namazu-additional-switches}. It is particularly
21340important not to pass any any switches to namazu that will change the
21341output format. Good switches to use include `--sort', `--ascending',
21342`--early' and `--late'. Refer to the Namazu documentation for further
21343information on valid switches.
21344
21345Mail must first be indexed with the `mknmz' program. Read the documentation
21346for namazu to create a configuration file. Here is an example:
21347
21348@cartouche
21349@example
21350 package conf; # Don't remove this line!
21351
21352 # Paths which will not be indexed. Don't use `^' or `$' anchors.
21353 $EXCLUDE_PATH = "spam|sent";
21354
21355 # Header fields which should be searchable. case-insensitive
21356 $REMAIN_HEADER = "from|date|message-id|subject";
21357
21358 # Searchable fields. case-insensitive
21359 $SEARCH_FIELD = "from|date|message-id|subject";
21360
21361 # The max length of a word.
21362 $WORD_LENG_MAX = 128;
21363
21364 # The max length of a field.
21365 $MAX_FIELD_LENGTH = 256;
21366@end example
21367@end cartouche
21368
21369For this example, mail is stored in the directories @samp{~/Mail/mail/},
21370@samp{~/Mail/lists/} and @samp{~/Mail/archive/}, so to index them go to
21371the index directory set in @code{nnir-namazu-index-directory} and issue
21372the following command:
21373
21374@example
21375mknmz --mailnews ~/Mail/archive/ ~/Mail/mail/ ~/Mail/lists/
21376@end example
21377
21378For maximum searching efficiency you might want to have a cron job run
21379this command periodically, say every four hours.
21380
21381@node The hyrex Engine
21382@subsubsection The hyrex Engine
21383This engine is obsolete.
21384
21385@node Customizations
21386@subsubsection Custimozations
21387
21388@table @code
21389
21390@item nnir-method-default-engines
21391Alist of server backend - search engine pairs. The default associations
21392are
21393@example
21394(nnimap . imap)
21395(nntp . gmane)
21396@end example
21397
21398@item nnir-ignored-newsgroups
21399A regexp to match newsgroups in the active file that should be skipped
21400when searching all groups on a server.
21401
21402@item nnir-summary-line-format
21403The format specification to be used for lines in an nnir summary buffer.
21404All the items from `gnus-summary-line-format' are available, along with
21405three items unique to nnir summary buffers:
21406
21407@example
21408%Z Search retrieval score value (integer)
21409%G Article original full group name (string)
21410%g Article original short group name (string)
21411@end example
21412
21413If nil (the default) this will use @code{gnus-summary-line-format}.
21414
21415@item nnir-retrieve-headers-override-function
21416If non-nil, a function that retrieves article headers rather than using
21417the gnus built-in function. This function takes an article list and
21418group as arguments and populates the `nntp-server-buffer' with the
21419retrieved headers. It should then return either 'nov or 'headers
21420indicating the retrieved header format. Failure to retrieve headers
21421should return @code{nil}
21422
21423If this variable is nil, or if the provided function returns nil for a
21424search result, @code{gnus-retrieve-headers} will be called instead."
21425
21426
21427@end table
21428
21429
21430@node nnmairix
21431@section nnmairix
21432
21433@cindex mairix
21434@cindex nnmairix
21435This paragraph describes how to set up mairix and the back end
21436@code{nnmairix} for indexing and searching your mail from within
21437Gnus. Additionally, you can create permanent ``smart'' groups which are
21438bound to mairix searches and are automatically updated.
21439
21440@menu
21441* About mairix:: About the mairix mail search engine
21442* nnmairix requirements:: What you will need for using nnmairix
21443* What nnmairix does:: What does nnmairix actually do?
21444* Setting up mairix:: Set up your mairix installation
21445* Configuring nnmairix:: Set up the nnmairix back end
21446* nnmairix keyboard shortcuts:: List of available keyboard shortcuts
21447* Propagating marks:: How to propagate marks from nnmairix groups
21448* nnmairix tips and tricks:: Some tips, tricks and examples
21449* nnmairix caveats:: Some more stuff you might want to know
21450@end menu
21451
21452@c FIXME: The markup in this section might need improvement.
21453@c E.g. adding @samp, @var, @file, @command, etc.
21454@c Cf. (info "(texinfo)Indicating")
21455
21456@node About mairix
21457@subsection About mairix
21458
21459Mairix is a tool for indexing and searching words in locally stored
21460mail. It was written by Richard Curnow and is licensed under the
21461GPL. Mairix comes with most popular GNU/Linux distributions, but it also
21462runs under Windows (with cygwin), Mac OS X and Solaris. The homepage can
21463be found at
21464@uref{http://www.rpcurnow.force9.co.uk/mairix/index.html}
21465
21466Though mairix might not be as flexible as other search tools like
21467swish++ or namazu, which you can use via the @code{nnir} back end, it
21468has the prime advantage of being incredibly fast. On current systems, it
21469can easily search through headers and message bodies of thousands and
21470thousands of mails in well under a second. Building the database
21471necessary for searching might take a minute or two, but only has to be
21472done once fully. Afterwards, the updates are done incrementally and
21473therefore are really fast, too. Additionally, mairix is very easy to set
21474up.
21475
21476For maximum speed though, mairix should be used with mails stored in
21477@code{Maildir} or @code{MH} format (this includes the @code{nnml} back
21478end), although it also works with mbox. Mairix presents the search
21479results by populating a @emph{virtual} maildir/MH folder with symlinks
21480which point to the ``real'' message files (if mbox is used, copies are
21481made). Since mairix already presents search results in such a virtual
21482mail folder, it is very well suited for using it as an external program
21483for creating @emph{smart} mail folders, which represent certain mail
21484searches.
21485
21486@node nnmairix requirements
21487@subsection nnmairix requirements
21488
21489Mairix searches local mail---that means, mairix absolutely must have
21490direct access to your mail folders. If your mail resides on another
21491server (e.g. an @acronym{IMAP} server) and you happen to have shell
21492access, @code{nnmairix} supports running mairix remotely, e.g. via ssh.
21493
21494Additionally, @code{nnmairix} only supports the following Gnus back
21495ends: @code{nnml}, @code{nnmaildir}, and @code{nnimap}. You must use
21496one of these back ends for using @code{nnmairix}. Other back ends, like
21497@code{nnmbox}, @code{nnfolder} or @code{nnmh}, won't work.
21498
21499If you absolutely must use mbox and still want to use @code{nnmairix},
21500you can set up a local @acronym{IMAP} server, which you then access via
21501@code{nnimap}. This is a rather massive setup for accessing some mbox
21502files, so just change to MH or Maildir already... However, if you're
21503really, really passionate about using mbox, you might want to look into
21504the package @file{mairix.el}, which comes with Emacs 23.
21505
21506@node What nnmairix does
21507@subsection What nnmairix does
21508
21509The back end @code{nnmairix} enables you to call mairix from within Gnus,
21510either to query mairix with a search term or to update the
21511database. While visiting a message in the summary buffer, you can use
21512several pre-defined shortcuts for calling mairix, e.g. to quickly
21513search for all mails from the sender of the current message or to
21514display the whole thread associated with the message, even if the
21515mails are in different folders.
21516
21517Additionally, you can create permanent @code{nnmairix} groups which are bound
21518to certain mairix searches. This way, you can easily create a group
21519containing mails from a certain sender, with a certain subject line or
21520even for one specific thread based on the Message-ID. If you check for
21521new mail in these folders (e.g. by pressing @kbd{g} or @kbd{M-g}), they
21522automatically update themselves by calling mairix.
21523
21524You might ask why you need @code{nnmairix} at all, since mairix already
21525creates the group, populates it with links to the mails so that you can
21526then access it with Gnus, right? Well, this @emph{might} work, but often
21527does not---at least not without problems. Most probably you will get
21528strange article counts, and sometimes you might see mails which Gnus
21529claims have already been canceled and are inaccessible. This is due to
21530the fact that Gnus isn't really amused when things are happening behind
21531its back. Another problem can be the mail back end itself, e.g. if you
21532use mairix with an @acronym{IMAP} server (I had Dovecot complaining
21533about corrupt index files when mairix changed the contents of the search
21534group). Using @code{nnmairix} should circumvent these problems.
21535
21536@code{nnmairix} is not really a mail back end---it's actually more like
21537a wrapper, sitting between a ``real'' mail back end where mairix stores
21538the searches and the Gnus front end. You can choose between three
21539different mail back ends for the mairix folders: @code{nnml},
21540@code{nnmaildir} or @code{nnimap}. @code{nnmairix} will call the mairix
21541binary so that the search results are stored in folders named
21542@code{zz_mairix-<NAME>-<NUMBER>} on this mail back end, but it will
21543present these folders in the Gnus front end only with @code{<NAME>}.
21544You can use an existing mail back end where you already store your mail,
21545but if you're uncomfortable with @code{nnmairix} creating new mail
21546groups alongside your other mail, you can also create e.g. a new
21547@code{nnmaildir} or @code{nnml} server exclusively for mairix, but then
21548make sure those servers do not accidentally receive your new mail
21549(@pxref{nnmairix caveats}). A special case exists if you want to use
21550mairix remotely on an IMAP server with @code{nnimap}---here the mairix
21551folders and your other mail must be on the same @code{nnimap} back end.
21552
21553@node Setting up mairix
21554@subsection Setting up mairix
21555
21556First: create a backup of your mail folders (@pxref{nnmairix caveats}).
21557
21558Setting up mairix is easy: simply create a @file{.mairixrc} file with
21559(at least) the following entries:
21560
21561@example
21562# Your Maildir/MH base folder
21563base=~/Maildir
21564@end example
21565
21566This is the base folder for your mails. All the following directories
21567are relative to this base folder. If you want to use @code{nnmairix}
21568with @code{nnimap}, this base directory has to point to the mail
21569directory where the @acronym{IMAP} server stores the mail folders!
21570
21571@example
21572maildir= ... your maildir folders which should be indexed ...
21573mh= ... your nnml/mh folders which should be indexed ...
21574mbox = ... your mbox files which should be indexed ...
21575@end example
21576
21577This specifies all your mail folders and mbox files (relative to the
21578base directory!) you want to index with mairix. Note that the
21579@code{nnml} back end saves mails in MH format, so you have to put those
21580directories in the @code{mh} line. See the example at the end of this
21581section and mairixrc's man-page for further details.
21582
21583@example
21584omit=zz_mairix-*
21585@end example
21586
21587@vindex nnmairix-group-prefix
21588This should make sure that you don't accidentally index the mairix
21589search results. You can change the prefix of these folders with the
21590variable @code{nnmairix-group-prefix}.
21591
21592@example
21593mformat= ... 'maildir' or 'mh' ...
21594database= ... location of database file ...
21595@end example
21596
21597The @code{format} setting specifies the output format for the mairix
21598search folder. Set this to @code{mh} if you want to access search results
21599with @code{nnml}. Otherwise choose @code{maildir}.
21600
21601To summarize, here is my shortened @file{.mairixrc} file as an example:
21602
21603@example
21604base=~/Maildir
21605maildir=.personal:.work:.logcheck:.sent
21606mh=../Mail/nnml/*...
21607mbox=../mboxmail/mailarchive_year*
21608mformat=maildir
21609omit=zz_mairix-*
21610database=~/.mairixdatabase
21611@end example
21612
21613In this case, the base directory is @file{~/Maildir}, where all my Maildir
21614folders are stored. As you can see, the folders are separated by
21615colons. If you wonder why every folder begins with a dot: this is
21616because I use Dovecot as @acronym{IMAP} server, which again uses
21617@code{Maildir++} folders. For testing nnmairix, I also have some
21618@code{nnml} mail, which is saved in @file{~/Mail/nnml}. Since this has
21619to be specified relative to the @code{base} directory, the @code{../Mail}
21620notation is needed. Note that the line ends in @code{*...}, which means
21621to recursively scan all files under this directory. Without the three
21622dots, the wildcard @code{*} will not work recursively. I also have some
21623old mbox files with archived mail lying around in @file{~/mboxmail}.
21624The other lines should be obvious.
21625
21626See the man page for @code{mairixrc} for details and further options,
21627especially regarding wildcard usage, which may be a little different
21628than you are used to.
21629
21630Now simply call @code{mairix} to create the index for the first time.
21631Note that this may take a few minutes, but every following index will do
21632the updates incrementally and hence is very fast.
21633
21634@node Configuring nnmairix
21635@subsection Configuring nnmairix
21636
21637In group mode, type @kbd{G b c}
21638(@code{nnmairix-create-server-and-default-group}). This will ask you for all
21639necessary information and create a @code{nnmairix} server as a foreign
21640server. You will have to specify the following:
21641
21642@itemize @bullet
21643
21644@item
21645The @strong{name} of the @code{nnmairix} server---choose whatever you
21646want.
21647
21648@item
21649The name of the @strong{back end server} where mairix should store its
21650searches. This must be a full server name, like @code{nnml:mymail}.
21651Just hit @kbd{TAB} to see the available servers. Currently, servers
21652which are accessed through @code{nnmaildir}, @code{nnimap} and
21653@code{nnml} are supported. As explained above, for locally stored
21654mails, this can be an existing server where you store your mails.
21655However, you can also create e.g. a new @code{nnmaildir} or @code{nnml}
21656server exclusively for @code{nnmairix} in your secondary select methods
21657(@pxref{Finding the News}). If you use a secondary @code{nnml} server
21658just for mairix, make sure that you explicitly set the server variable
21659@code{nnml-get-new-mail} to @code{nil}, or you might lose mail
21660(@pxref{nnmairix caveats}). If you want to use mairix remotely on an
21661@acronym{IMAP} server, you have to choose the corresponding
21662@code{nnimap} server here.
21663
21664@item
21665@vindex nnmairix-mairix-search-options
21666The @strong{command} to call the mairix binary. This will usually just
21667be @code{mairix}, but you can also choose something like @code{ssh
21668SERVER mairix} if you want to call mairix remotely, e.g. on your
21669@acronym{IMAP} server. If you want to add some default options to
21670mairix, you could do this here, but better use the variable
21671@code{nnmairix-mairix-search-options} instead.
21672
21673@item
21674The name of the @strong{default search group}. This will be the group
21675where all temporary mairix searches are stored, i.e. all searches which
21676are not bound to permanent @code{nnmairix} groups. Choose whatever you
21677like.
21678
21679@item
21680If the mail back end is @code{nnimap} or @code{nnmaildir}, you will be
21681asked if you work with @strong{Maildir++}, i.e. with hidden maildir
21682folders (=beginning with a dot). For example, you have to answer
21683@samp{yes} here if you work with the Dovecot @acronym{IMAP}
21684server. Otherwise, you should answer @samp{no} here.
21685
21686@end itemize
21687
21688@node nnmairix keyboard shortcuts
21689@subsection nnmairix keyboard shortcuts
21690
21691In group mode:
21692
21693@table @kbd
21694
21695@item G b c
21696@kindex G b c (Group)
21697@findex nnmairix-create-server-and-default-group
21698Creates @code{nnmairix} server and default search group for this server
21699(@code{nnmairix-create-server-and-default-group}). You should have done
21700this by now (@pxref{Configuring nnmairix}).
21701
21702@item G b s
21703@kindex G b s (Group)
21704@findex nnmairix-search
21705Prompts for query which is then sent to the mairix binary. Search
21706results are put into the default search group which is automatically
21707displayed (@code{nnmairix-search}).
21708
21709@item G b m
21710@kindex G b m (Group)
21711@findex nnmairix-widget-search
21712Allows you to create a mairix search or a permanent group more
21713comfortably using graphical widgets, similar to a customization
21714group. Just try it to see how it works (@code{nnmairix-widget-search}).
21715
21716@item G b i
21717@kindex G b i (Group)
21718@findex nnmairix-search-interactive
21719Another command for creating a mairix query more comfortably, but uses
21720only the minibuffer (@code{nnmairix-search-interactive}).
21721
21722@item G b g
21723@kindex G b g (Group)
21724@findex nnmairix-create-search-group
21725Creates a permanent group which is associated with a search query
21726(@code{nnmairix-create-search-group}). The @code{nnmairix} back end
21727automatically calls mairix when you update this group with @kbd{g} or
21728@kbd{M-g}.
21729
21730@item G b q
21731@kindex G b q (Group)
21732@findex nnmairix-group-change-query-this-group
21733Changes the search query for the @code{nnmairix} group under cursor
21734(@code{nnmairix-group-change-query-this-group}).
21735
21736@item G b t
21737@kindex G b t (Group)
21738@findex nnmairix-group-toggle-threads-this-group
21739Toggles the 'threads' parameter for the @code{nnmairix} group under cursor,
21740i.e. if you want see the whole threads of the found messages
21741(@code{nnmairix-group-toggle-threads-this-group}).
21742
21743@item G b u
21744@kindex G b u (Group)
21745@findex nnmairix-update-database
21746@vindex nnmairix-mairix-update-options
21747Calls mairix binary for updating the database
21748(@code{nnmairix-update-database}). The default parameters are @code{-F}
21749and @code{-Q} for making this as fast as possible (see variable
21750@code{nnmairix-mairix-update-options} for defining these default
21751options).
21752
21753@item G b r
21754@kindex G b r (Group)
21755@findex nnmairix-group-toggle-readmarks-this-group
21756Keep articles in this @code{nnmairix} group always read or unread, or leave the
21757marks unchanged (@code{nnmairix-group-toggle-readmarks-this-group}).
21758
21759@item G b d
21760@kindex G b d (Group)
21761@findex nnmairix-group-delete-recreate-this-group
21762Recreate @code{nnmairix} group on the ``real'' mail back end
21763(@code{nnmairix-group-delete-recreate-this-group}). You can do this if
21764you always get wrong article counts with a @code{nnmairix} group.
21765
21766@item G b a
21767@kindex G b a (Group)
21768@findex nnmairix-group-toggle-allowfast-this-group
21769Toggles the @code{allow-fast} parameters for group under cursor
21770(@code{nnmairix-group-toggle-allowfast-this-group}). The default
21771behavior of @code{nnmairix} is to do a mairix search every time you
21772update or enter the group. With the @code{allow-fast} parameter set,
21773mairix will only be called when you explicitly update the group, but not
21774upon entering. This makes entering the group faster, but it may also
21775lead to dangling symlinks if something changed between updating and
21776entering the group which is not yet in the mairix database.
21777
21778@item G b p
21779@kindex G b p (Group)
21780@findex nnmairix-group-toggle-propmarks-this-group
21781Toggle marks propagation for this group
21782(@code{nnmairix-group-toggle-propmarks-this-group}). (@pxref{Propagating
21783marks}).
21784
21785@item G b o
21786@kindex G b o (Group)
21787@findex nnmairix-propagate-marks
21788Manually propagate marks (@code{nnmairix-propagate-marks}); needed only when
21789@code{nnmairix-propagate-marks-upon-close} is set to @code{nil}.
21790
21791@end table
21792
21793In summary mode:
21794
21795@table @kbd
21796
21797@item $ m
21798@kindex $ m (Summary)
21799@findex nnmairix-widget-search-from-this-article
21800Allows you to create a mairix query or group based on the current
21801message using graphical widgets (same as @code{nnmairix-widget-search})
21802(@code{nnmairix-widget-search-from-this-article}).
21803
21804@item $ g
21805@kindex $ g (Summary)
21806@findex nnmairix-create-search-group-from-message
21807Interactively creates a new search group with query based on the current
21808message, but uses the minibuffer instead of graphical widgets
21809(@code{nnmairix-create-search-group-from-message}).
21810
21811@item $ t
21812@kindex $ t (Summary)
21813@findex nnmairix-search-thread-this-article
21814Searches thread for the current article
21815(@code{nnmairix-search-thread-this-article}). This is effectively a
21816shortcut for calling @code{nnmairix-search} with @samp{m:msgid} of the
21817current article and enabled threads.
21818
21819@item $ f
21820@kindex $ f (Summary)
21821@findex nnmairix-search-from-this-article
21822Searches all messages from sender of the current article
21823(@code{nnmairix-search-from-this-article}). This is a shortcut for
21824calling @code{nnmairix-search} with @samp{f:From}.
21825
21826@item $ o
21827@kindex $ o (Summary)
21828@findex nnmairix-goto-original-article
21829(Only in @code{nnmairix} groups!) Tries determine the group this article
21830originally came from and displays the article in this group, so that
21831e.g. replying to this article the correct posting styles/group
21832parameters are applied (@code{nnmairix-goto-original-article}). This
21833function will use the registry if available, but can also parse the
21834article file name as a fallback method.
21835
21836@item $ u
21837@kindex $ u (Summary)
21838@findex nnmairix-remove-tick-mark-original-article
21839Remove possibly existing tick mark from original article
21840(@code{nnmairix-remove-tick-mark-original-article}). (@pxref{nnmairix
21841tips and tricks}).
21842
21843@end table
21844
21845@node Propagating marks
21846@subsection Propagating marks
21847
21848First of: you really need a patched mairix binary for using the marks
21849propagation feature efficiently. Otherwise, you would have to update
21850the mairix database all the time. You can get the patch at
21851
21852@uref{http://www.randomsample.de/mairix-maildir-patch.tar}
21853
21854You need the mairix v0.21 source code for this patch; everything else
21855is explained in the accompanied readme file. If you don't want to use
21856marks propagation, you don't have to apply these patches, but they also
21857fix some annoyances regarding changing maildir flags, so it might still
21858be useful to you.
21859
21860With the patched mairix binary, you can use @code{nnmairix} as an
21861alternative to mail splitting (@pxref{Fancy Mail Splitting}). For
21862example, instead of splitting all mails from @samp{david@@foobar.com}
21863into a group, you can simply create a search group with the query
21864@samp{f:david@@foobar.com}. This is actually what ``smart folders'' are
21865all about: simply put everything in one mail folder and dynamically
21866create searches instead of splitting. This is more flexible, since you
21867can dynamically change your folders any time you want to. This also
21868implies that you will usually read your mails in the @code{nnmairix}
21869groups instead of your ``real'' mail groups.
21870
21871There is one problem, though: say you got a new mail from
21872@samp{david@@foobar.com}; it will now show up in two groups, the
21873``real'' group (your INBOX, for example) and in the @code{nnmairix}
21874search group (provided you have updated the mairix database). Now you
21875enter the @code{nnmairix} group and read the mail. The mail will be
21876marked as read, but only in the @code{nnmairix} group---in the ``real''
21877mail group it will be still shown as unread.
21878
21879You could now catch up the mail group (@pxref{Group Data}), but this is
21880tedious and error prone, since you may overlook mails you don't have
21881created @code{nnmairix} groups for. Of course, you could first use
21882@code{nnmairix-goto-original-article} (@pxref{nnmairix keyboard
21883shortcuts}) and then read the mail in the original group, but that's
21884even more cumbersome.
21885
21886Clearly, the easiest way would be if marks could somehow be
21887automatically set for the original article. This is exactly what
21888@emph{marks propagation} is about.
21889
21890Marks propagation is deactivated by default. You can activate it for a
21891certain @code{nnmairix} group with
21892@code{nnmairix-group-toggle-propmarks-this-group} (bound to @kbd{G b
21893p}). This function will warn you if you try to use it with your default
21894search group; the reason is that the default search group is used for
21895temporary searches, and it's easy to accidentally propagate marks from
21896this group. However, you can ignore this warning if you really want to.
21897
21898With marks propagation enabled, all the marks you set in a @code{nnmairix}
21899group should now be propagated to the original article. For example,
21900you can now tick an article (by default with @kbd{!}) and this mark should
21901magically be set for the original article, too.
21902
21903A few more remarks which you may or may not want to know:
21904
21905@vindex nnmairix-propagate-marks-upon-close
21906Marks will not be set immediately, but only upon closing a group. This
21907not only makes marks propagation faster, it also avoids problems with
21908dangling symlinks when dealing with maildir files (since changing flags
21909will change the file name). You can also control when to propagate marks
21910via @code{nnmairix-propagate-marks-upon-close} (see the doc-string for
21911details).
21912
21913Obviously, @code{nnmairix} will have to look up the original group for every
21914article you want to set marks for. If available, @code{nnmairix} will first use
21915the registry for determining the original group. The registry is very
21916fast, hence you should really, really enable the registry when using
21917marks propagation. If you don't have to worry about RAM and disc space,
21918set @code{gnus-registry-max-entries} to a large enough value; to be on
21919the safe side, choose roughly the amount of mails you index with mairix.
21920
21921@vindex nnmairix-only-use-registry
21922If you don't want to use the registry or the registry hasn't seen the
21923original article yet, @code{nnmairix} will use an additional mairix
21924search for determining the file name of the article. This, of course, is
21925way slower than the registry---if you set hundreds or even thousands of
21926marks this way, it might take some time. You can avoid this situation by
21927setting @code{nnmairix-only-use-registry} to t.
21928
21929Maybe you also want to propagate marks the other way round, i.e. if you
21930tick an article in a "real" mail group, you'd like to have the same
21931article in a @code{nnmairix} group ticked, too. For several good
21932reasons, this can only be done efficiently if you use maildir. To
21933immediately contradict myself, let me mention that it WON'T work with
21934@code{nnmaildir}, since @code{nnmaildir} stores the marks externally and
21935not in the file name. Therefore, propagating marks to @code{nnmairix}
21936groups will usually only work if you use an IMAP server which uses
21937maildir as its file format.
21938
21939@vindex nnmairix-propagate-marks-to-nnmairix-groups
21940If you work with this setup, just set
21941@code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t} and see what
21942happens. If you don't like what you see, just set it to @code{nil} again. One
21943problem might be that you get a wrong number of unread articles; this
21944usually happens when you delete or expire articles in the original
21945groups. When this happens, you can recreate the @code{nnmairix} group on the
21946back end using @kbd{G b d}.
21947
21948@node nnmairix tips and tricks
21949@subsection nnmairix tips and tricks
21950
21951@itemize
21952@item
21953Checking Mail
21954
21955@findex nnmairix-update-groups
21956I put all my important mail groups at group level 1. The mairix groups
21957have group level 5, so they do not get checked at start up (@pxref{Group
21958Levels}).
21959
21960I use the following to check for mails:
21961
21962@lisp
21963(defun my-check-mail-mairix-update (level)
21964 (interactive "P")
21965 ;; if no prefix given, set level=1
21966 (gnus-group-get-new-news (or level 1))
21967 (nnmairix-update-groups "mairixsearch" t t)
21968 (gnus-group-list-groups))
21969
21970(define-key gnus-group-mode-map "g" 'my-check-mail-mairix-update)
21971@end lisp
21972
21973Instead of @samp{"mairixsearch"} use the name of your @code{nnmairix}
21974server. See the doc string for @code{nnmairix-update-groups} for
21975details.
21976
21977@item
21978Example: search group for ticked articles
21979
21980For example, you can create a group for all ticked articles, where the
21981articles always stay unread:
21982
21983Hit @kbd{G b g}, enter group name (e.g. @samp{important}), use
21984@samp{F:f} as query and do not include threads.
21985
21986Now activate marks propagation for this group by using @kbd{G b p}. Then
21987activate the always-unread feature by using @kbd{G b r} twice.
21988
21989So far so good---but how do you remove the tick marks in the @code{nnmairix}
21990group? There are two options: You may simply use
21991@code{nnmairix-remove-tick-mark-original-article} (bound to @kbd{$ u}) to remove
21992tick marks from the original article. The other possibility is to set
21993@code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t}, but see the above
21994comments about this option. If it works for you, the tick marks should
21995also exist in the @code{nnmairix} group and you can remove them as usual,
21996e.g. by marking an article as read.
21997
21998When you have removed a tick mark from the original article, this
21999article should vanish from the @code{nnmairix} group after you have updated the
22000mairix database and updated the group. Fortunately, there is a function
22001for doing exactly that: @code{nnmairix-update-groups}. See the previous code
22002snippet and the doc string for details.
22003
22004@item
22005Dealing with auto-subscription of mail groups
22006
22007As described before, all @code{nnmairix} groups are in fact stored on
22008the mail back end in the form @samp{zz_mairix-<NAME>-<NUMBER>}. You can
22009see them when you enter the back end server in the server buffer. You
22010should not subscribe these groups! Unfortunately, these groups will
22011usually get @emph{auto-subscribed} when you use @code{nnmaildir} or
22012@code{nnml}, i.e. you will suddenly see groups of the form
22013@samp{zz_mairix*} pop up in your group buffer. If this happens to you,
22014simply kill these groups with C-k. For avoiding this, turn off
22015auto-subscription completely by setting the variable
22016@code{gnus-auto-subscribed-groups} to @code{nil} (@pxref{Filtering New
22017Groups}), or if you like to keep this feature use the following kludge
22018for turning it off for all groups beginning with @samp{zz_}:
22019
22020@lisp
22021(setq gnus-auto-subscribed-groups
22022 "^\\(nnml\\|nnfolder\\|nnmbox\\|nnmh\\|nnbabyl\\|nnmaildir\\).*:\\([^z]\\|z$\\|\\z[^z]\\|zz$\\|zz[^_]\\|zz_$\\).*")
22023@end lisp
22024
22025@end itemize
22026
22027@node nnmairix caveats
22028@subsection nnmairix caveats
22029
22030@itemize
22031@item
22032You can create a secondary @code{nnml} server just for nnmairix, but then
22033you have to explicitly set the corresponding server variable
22034@code{nnml-get-new-mail} to @code{nil}. Otherwise, new mail might get
22035put into this secondary server (and would never show up again). Here's
22036an example server definition:
22037
22038@lisp
22039(nnml "mairix" (nnml-directory "mairix") (nnml-get-new-mail nil))
22040@end lisp
22041
22042(The @code{nnmaildir} back end also has a server variabe
22043@code{get-new-mail}, but its default value is @code{nil}, so you don't
22044have to explicitly set it if you use a @code{nnmaildir} server just for
22045mairix.)
22046
22047@item
22048If you use the Gnus registry: don't use the registry with
22049@code{nnmairix} groups (put them in
22050@code{gnus-registry-unfollowed-groups}). Be @emph{extra careful} if
22051you use @code{gnus-registry-split-fancy-with-parent}; mails which are
22052split into @code{nnmairix} groups are usually gone for good as soon as
22053you check the group for new mail (yes, it has happened to me...).
22054
22055@item
22056Therefore: @emph{Never ever} put ``real'' mails into @code{nnmairix}
22057groups (you shouldn't be able to, anyway).
22058
22059@item
22060If you use the Gnus agent (@pxref{Gnus Unplugged}): don't agentize
22061@code{nnmairix} groups (though I have no idea what happens if you do).
22062
22063@item
22064mairix does only support us-ascii characters.
22065
22066@item
22067@code{nnmairix} uses a rather brute force method to force Gnus to
22068completely reread the group on the mail back end after mairix was
22069called---it simply deletes and re-creates the group on the mail
22070back end. So far, this has worked for me without any problems, and I
22071don't see how @code{nnmairix} could delete other mail groups than its
22072own, but anyway: you really should have a backup of your mail
22073folders.
22074
22075@item
22076All necessary information is stored in the group parameters
22077(@pxref{Group Parameters}). This has the advantage that no active file
22078is needed, but also implies that when you kill a @code{nnmairix} group,
22079it is gone for good.
22080
22081@item
22082@findex nnmairix-purge-old-groups
22083If you create and kill a lot of @code{nnmairix} groups, the
22084``zz_mairix-*'' groups will accumulate on the mail back end server. To
22085delete old groups which are no longer needed, call
22086@code{nnmairix-purge-old-groups}. Note that this assumes that you don't
22087save any ``real'' mail in folders of the form
22088@code{zz_mairix-<NAME>-<NUMBER>}. You can change the prefix of
22089@code{nnmairix} groups by changing the variable
22090@code{nnmairix-group-prefix}.
22091
22092@item
22093The following only applies if you @emph{don't} use the mentioned patch
22094for mairix (@pxref{Propagating marks}):
22095
22096A problem can occur when using @code{nnmairix} with maildir folders and
22097comes with the fact that maildir stores mail flags like @samp{Seen} or
22098@samp{Replied} by appending chars @samp{S} and @samp{R} to the message
22099file name, respectively. This implies that currently you would have to
22100update the mairix database not only when new mail arrives, but also when
22101mail flags are changing. The same applies to new mails which are indexed
22102while they are still in the @samp{new} folder but then get moved to
22103@samp{cur} when Gnus has seen the mail. If you don't update the database
22104after this has happened, a mairix query can lead to symlinks pointing to
22105non-existing files. In Gnus, these messages will usually appear with
22106``(none)'' entries in the header and can't be accessed. If this happens
22107to you, using @kbd{G b u} and updating the group will usually fix this.
22108
22109@end itemize
22110
21714@iftex 22111@iftex
21715@iflatex 22112@iflatex
21716@chapter Message 22113@chapter Message
diff --git a/doc/misc/gpl.texi b/doc/misc/gpl.texi
index 5b416d3cb41..1908d1f8f98 100644
--- a/doc/misc/gpl.texi
+++ b/doc/misc/gpl.texi
@@ -715,7 +715,3 @@ library, you may consider it more useful to permit linking proprietary
715applications with the library. If this is what you want to do, use 715applications with the library. If this is what you want to do, use
716the GNU Lesser General Public License instead of this License. But 716the GNU Lesser General Public License instead of this License. But
717first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}. 717first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}.
718
719@ignore
720 arch-tag: 0c4a2556-f87e-464f-9b1d-efd920fcaf67
721@end ignore
diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi
index 0618f110c30..be518db6463 100644
--- a/doc/misc/idlwave.texi
+++ b/doc/misc/idlwave.texi
@@ -22,8 +22,7 @@ Emacs, and interacting with an IDL shell run as a subprocess.
22This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE 22This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE
23@value{VERSION}. 23@value{VERSION}.
24 24
25Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 25Copyright @copyright{} 1999-2011 Free Software Foundation, Inc.
262007, 2008, 2009, 2010 Free Software Foundation, Inc.
27 26
28@quotation 27@quotation
29Permission is granted to copy, distribute and/or modify this document 28Permission is granted to copy, distribute and/or modify this document
@@ -4295,7 +4294,3 @@ IDLWAVE is @samp{fsf-compat, xemacs-base, mail-lib}.
4295@printindex cp 4294@printindex cp
4296 4295
4297@bye 4296@bye
4298
4299@ignore
4300 arch-tag: f1d73958-1423-4127-b8aa-f7b953d64492
4301@end ignore
diff --git a/doc/misc/info.texi b/doc/misc/info.texi
index 97cc17812e4..68390a2f0cc 100644
--- a/doc/misc/info.texi
+++ b/doc/misc/info.texi
@@ -14,8 +14,7 @@
14This file describes how to use Info, the on-line, menu-driven GNU 14This file describes how to use Info, the on-line, menu-driven GNU
15documentation system. 15documentation system.
16 16
17Copyright @copyright{} 1989, 1992, 1996, 1997, 1998, 1999, 2000, 2001, 17Copyright @copyright{} 1989, 1992, 1996-2011
182002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
19Free Software Foundation, Inc. 18Free Software Foundation, Inc.
20 19
21@quotation 20@quotation
@@ -1508,7 +1507,3 @@ topics discussed in this document.
1508@printindex cp 1507@printindex cp
1509 1508
1510@bye 1509@bye
1511
1512@ignore
1513 arch-tag: 965c1638-01d6-4156-9227-b10418b9d8e8
1514@end ignore
diff --git a/doc/misc/mairix-el.texi b/doc/misc/mairix-el.texi
index 578164e8e57..4235e825fb6 100644
--- a/doc/misc/mairix-el.texi
+++ b/doc/misc/mairix-el.texi
@@ -6,7 +6,7 @@
6@documentencoding ISO-8859-1 6@documentencoding ISO-8859-1
7 7
8@copying 8@copying
9Copyright @copyright{} 2008, 2009, 2010 Free Software Foundation, Inc. 9Copyright @copyright{} 2008-2011 Free Software Foundation, Inc.
10 10
11@quotation 11@quotation
12Permission is granted to copy, distribute and/or modify this document 12Permission is granted to copy, distribute and/or modify this document
@@ -349,7 +349,3 @@ And that's it!
349 349
350 350
351@bye 351@bye
352
353@ignore
354 arch-tag: cb81470f-e080-489d-bb67-0d11516b63b9
355@end ignore
diff --git a/doc/misc/makefile.w32-in b/doc/misc/makefile.w32-in
index fd3b1476b55..1e497fe309f 100644
--- a/doc/misc/makefile.w32-in
+++ b/doc/misc/makefile.w32-in
@@ -1,7 +1,6 @@
1#### -*- Makefile -*- for documentation other than the Emacs manual. 1#### -*- Makefile -*- for documentation other than the Emacs manual.
2 2
3# Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 3# Copyright (C) 2003-2011 Free Software Foundation, Inc.
4# Free Software Foundation, Inc.
5 4
6# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
7 6
@@ -32,7 +31,8 @@ infodir = $(srcdir)/../../info
32emacsdir = $(srcdir)/../emacs 31emacsdir = $(srcdir)/../emacs
33 32
34# The makeinfo program is part of the Texinfo distribution. 33# The makeinfo program is part of the Texinfo distribution.
35MAKEINFO = makeinfo --force -I$(emacsdir) 34MAKEINFO = makeinfo
35MAKEINFO_OPTS = --force -I$(emacsdir)
36MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat 36MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat
37INFO_TARGETS = $(infodir)/ccmode \ 37INFO_TARGETS = $(infodir)/ccmode \
38 $(infodir)/cl $(infodir)/dbus $(infodir)/dired-x \ 38 $(infodir)/cl $(infodir)/dbus $(infodir)/dired-x \
@@ -47,7 +47,8 @@ INFO_TARGETS = $(infodir)/ccmode \
47 $(infodir)/org $(infodir)/url $(infodir)/speedbar \ 47 $(infodir)/org $(infodir)/url $(infodir)/speedbar \
48 $(infodir)/tramp $(infodir)/ses $(infodir)/smtpmail \ 48 $(infodir)/tramp $(infodir)/ses $(infodir)/smtpmail \
49 $(infodir)/flymake $(infodir)/newsticker $(infodir)/rcirc \ 49 $(infodir)/flymake $(infodir)/newsticker $(infodir)/rcirc \
50 $(infodir)/erc $(infodir)/remember $(infodir)/nxml-mode \ 50 $(infodir)/erc $(infodir)/ert \
51 $(infodir)/remember $(infodir)/nxml-mode \
51 $(infodir)/epa $(infodir)/mairix-el $(infodir)/sasl \ 52 $(infodir)/epa $(infodir)/mairix-el $(infodir)/sasl \
52 $(infodir)/auth $(infodir)/eieio $(infodir)/ede \ 53 $(infodir)/auth $(infodir)/eieio $(infodir)/ede \
53 $(infodir)/semantic $(infodir)/edt 54 $(infodir)/semantic $(infodir)/edt
@@ -58,7 +59,8 @@ DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dbus.dvi dired-x.dvi \
58 ada-mode.dvi autotype.dvi idlwave.dvi eudc.dvi ebrowse.dvi \ 59 ada-mode.dvi autotype.dvi idlwave.dvi eudc.dvi ebrowse.dvi \
59 pcl-cvs.dvi woman.dvi eshell.dvi org.dvi url.dvi \ 60 pcl-cvs.dvi woman.dvi eshell.dvi org.dvi url.dvi \
60 speedbar.dvi tramp.dvi ses.dvi smtpmail.dvi flymake.dvi \ 61 speedbar.dvi tramp.dvi ses.dvi smtpmail.dvi flymake.dvi \
61 newsticker.dvi rcirc.dvi erc.dvi remember.dvi nxml-mode.dvi \ 62 newsticker.dvi rcirc.dvi erc.dvi ert.dvi \
63 remember.dvi nxml-mode.dvi \
62 epa.dvi mairix-el.dvi sasl.dvi auth.dvi eieio.dvi ede.dvi \ 64 epa.dvi mairix-el.dvi sasl.dvi auth.dvi eieio.dvi ede.dvi \
63 semantic.dvi edt.dvi 65 semantic.dvi edt.dvi
64INFOSOURCES = info.texi 66INFOSOURCES = info.texi
@@ -70,7 +72,7 @@ INFOSOURCES = info.texi
70 72
71TEXI2DVI = texi2dvi 73TEXI2DVI = texi2dvi
72ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \ 74ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \
73 "MAKEINFO=$(MAKEINFO) -I$(srcdir)" /C 75 "MAKEINFO=$(MAKEINFO) $(MAKEINFO_OPTS)" /C
74 76
75 77
76info: $(INFO_TARGETS) 78info: $(INFO_TARGETS)
@@ -92,65 +94,65 @@ $(infodir)/dir:
92# texi filename, contrary to GNU standards. 94# texi filename, contrary to GNU standards.
93 95
94$(infodir)/info: $(INFOSOURCES) 96$(infodir)/info: $(INFOSOURCES)
95 $(MAKEINFO) --no-split -o $@ info.texi 97 $(MAKEINFO) $(MAKEINFO_OPTS) --no-split -o $@ info.texi
96 98
97info.dvi: $(INFOSOURCES) 99info.dvi: $(INFOSOURCES)
98 $(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi 100 $(ENVADD) $(TEXI2DVI) $(srcdir)/info.texi
99 101
100 102
101$(infodir)/ccmode: cc-mode.texi 103$(infodir)/ccmode: cc-mode.texi
102 $(MAKEINFO) cc-mode.texi 104 $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi
103cc-mode.dvi: cc-mode.texi 105cc-mode.dvi: cc-mode.texi
104 $(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi 106 $(ENVADD) $(TEXI2DVI) $(srcdir)/cc-mode.texi
105 107
106$(infodir)/ada-mode: ada-mode.texi 108$(infodir)/ada-mode: ada-mode.texi
107 $(MAKEINFO) ada-mode.texi 109 $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi
108ada-mode.dvi: ada-mode.texi 110ada-mode.dvi: ada-mode.texi
109 $(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi 111 $(ENVADD) $(TEXI2DVI) $(srcdir)/ada-mode.texi
110 112
111$(infodir)/pcl-cvs: pcl-cvs.texi 113$(infodir)/pcl-cvs: pcl-cvs.texi
112 $(MAKEINFO) pcl-cvs.texi 114 $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi
113pcl-cvs.dvi: pcl-cvs.texi 115pcl-cvs.dvi: pcl-cvs.texi
114 $(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi 116 $(ENVADD) $(TEXI2DVI) $(srcdir)/pcl-cvs.texi
115 117
116$(infodir)/eshell: eshell.texi 118$(infodir)/eshell: eshell.texi
117 $(MAKEINFO) eshell.texi 119 $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi
118eshell.dvi: eshell.texi 120eshell.dvi: eshell.texi
119 $(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi 121 $(ENVADD) $(TEXI2DVI) $(srcdir)/eshell.texi
120 122
121$(infodir)/cl: cl.texi 123$(infodir)/cl: cl.texi
122 $(MAKEINFO) cl.texi 124 $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi
123cl.dvi: cl.texi 125cl.dvi: cl.texi
124 $(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi 126 $(ENVADD) $(TEXI2DVI) $(srcdir)/cl.texi
125 127
126$(infodir)/dbus: dbus.texi 128$(infodir)/dbus: dbus.texi
127 $(MAKEINFO) dbus.texi 129 $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi
128dbus.dvi: dbus.texi 130dbus.dvi: dbus.texi
129 $(ENVADD) $(TEXI2DVI) $(srcdir)/dbus.texi 131 $(ENVADD) $(TEXI2DVI) $(srcdir)/dbus.texi
130 132
131$(infodir)/dired-x: dired-x.texi 133$(infodir)/dired-x: dired-x.texi
132 $(MAKEINFO) dired-x.texi 134 $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi
133dired-x.dvi: dired-x.texi 135dired-x.dvi: dired-x.texi
134 $(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi 136 $(ENVADD) $(TEXI2DVI) $(srcdir)/dired-x.texi
135 137
136$(infodir)/ediff: ediff.texi 138$(infodir)/ediff: ediff.texi
137 $(MAKEINFO) ediff.texi 139 $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi
138ediff.dvi: ediff.texi 140ediff.dvi: ediff.texi
139 $(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi 141 $(ENVADD) $(TEXI2DVI) $(srcdir)/ediff.texi
140 142
141$(infodir)/flymake: flymake.texi 143$(infodir)/flymake: flymake.texi
142 $(MAKEINFO) flymake.texi 144 $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi
143flymake.dvi: flymake.texi 145flymake.dvi: flymake.texi
144 $(ENVADD) $(TEXI2DVI) $(srcdir)/flymake.texi 146 $(ENVADD) $(TEXI2DVI) $(srcdir)/flymake.texi
145 147
146$(infodir)/forms: forms.texi 148$(infodir)/forms: forms.texi
147 $(MAKEINFO) forms.texi 149 $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi
148forms.dvi: forms.texi 150forms.dvi: forms.texi
149 $(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi 151 $(ENVADD) $(TEXI2DVI) $(srcdir)/forms.texi
150 152
151# gnus/message/emacs-mime/sieve/pgg are part of Gnus: 153# gnus/message/emacs-mime/sieve/pgg are part of Gnus:
152$(infodir)/gnus: gnus.texi 154$(infodir)/gnus: gnus.texi
153 $(MAKEINFO) gnus.texi 155 $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi
154gnus.dvi: gnus.texi 156gnus.dvi: gnus.texi
155 sed -e "/@iflatex/,/@end iflatex/d" $(srcdir)/gnus.texi > gnustmp.texi 157 sed -e "/@iflatex/,/@end iflatex/d" $(srcdir)/gnus.texi > gnustmp.texi
156 $(ENVADD) $(TEXI2DVI) gnustmp.texi 158 $(ENVADD) $(TEXI2DVI) gnustmp.texi
@@ -158,77 +160,77 @@ gnus.dvi: gnus.texi
158 rm gnustmp.* 160 rm gnustmp.*
159# 161#
160$(infodir)/message: message.texi 162$(infodir)/message: message.texi
161 $(MAKEINFO) message.texi 163 $(MAKEINFO) $(MAKEINFO_OPTS) message.texi
162message.dvi: message.texi 164message.dvi: message.texi
163 $(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi 165 $(ENVADD) $(TEXI2DVI) $(srcdir)/message.texi
164# 166#
165$(infodir)/emacs-mime: emacs-mime.texi 167$(infodir)/emacs-mime: emacs-mime.texi
166 $(MAKEINFO) --enable-encoding emacs-mime.texi 168 $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi
167emacs-mime.dvi: emacs-mime.texi 169emacs-mime.dvi: emacs-mime.texi
168 $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi 170 $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-mime.texi
169# 171#
170$(infodir)/sieve: sieve.texi 172$(infodir)/sieve: sieve.texi
171 $(MAKEINFO) sieve.texi 173 $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi
172sieve.dvi: sieve.texi 174sieve.dvi: sieve.texi
173 $(ENVADD) $(TEXI2DVI) $(srcdir)/sieve.texi 175 $(ENVADD) $(TEXI2DVI) $(srcdir)/sieve.texi
174# 176#
175$(infodir)/pgg: pgg.texi 177$(infodir)/pgg: pgg.texi
176 $(MAKEINFO) pgg.texi 178 $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi
177pgg.dvi: pgg.texi 179pgg.dvi: pgg.texi
178 $(ENVADD) $(TEXI2DVI) $(srcdir)/pgg.texi 180 $(ENVADD) $(TEXI2DVI) $(srcdir)/pgg.texi
179 181
180$(infodir)/mh-e: mh-e.texi 182$(infodir)/mh-e: mh-e.texi
181 $(MAKEINFO) mh-e.texi 183 $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi
182mh-e.dvi: mh-e.texi 184mh-e.dvi: mh-e.texi
183 $(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi 185 $(ENVADD) $(TEXI2DVI) $(srcdir)/mh-e.texi
184 186
185$(infodir)/reftex: reftex.texi 187$(infodir)/reftex: reftex.texi
186 $(MAKEINFO) reftex.texi 188 $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi
187reftex.dvi: reftex.texi 189reftex.dvi: reftex.texi
188 $(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi 190 $(ENVADD) $(TEXI2DVI) $(srcdir)/reftex.texi
189 191
190$(infodir)/remember: remember.texi 192$(infodir)/remember: remember.texi
191 $(MAKEINFO) remember.texi 193 $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi
192remember.dvi: remember.texi 194remember.dvi: remember.texi
193 $(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi 195 $(ENVADD) $(TEXI2DVI) $(srcdir)/remember.texi
194 196
195$(infodir)/sasl: sasl.texi 197$(infodir)/sasl: sasl.texi
196 $(MAKEINFO) sasl.texi 198 $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi
197sasl.dvi: sasl.texi 199sasl.dvi: sasl.texi
198 $(ENVADD) $(TEXI2DVI) $(srcdir)/sasl.texi 200 $(ENVADD) $(TEXI2DVI) $(srcdir)/sasl.texi
199 201
200$(infodir)/sc: sc.texi 202$(infodir)/sc: sc.texi
201 $(MAKEINFO) sc.texi 203 $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi
202sc.dvi: sc.texi 204sc.dvi: sc.texi
203 $(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi 205 $(ENVADD) $(TEXI2DVI) $(srcdir)/sc.texi
204 206
205$(infodir)/vip: vip.texi 207$(infodir)/vip: vip.texi
206 $(MAKEINFO) vip.texi 208 $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi
207vip.dvi: vip.texi 209vip.dvi: vip.texi
208 $(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi 210 $(ENVADD) $(TEXI2DVI) $(srcdir)/vip.texi
209 211
210$(infodir)/viper: viper.texi 212$(infodir)/viper: viper.texi
211 $(MAKEINFO) viper.texi 213 $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi
212viper.dvi: viper.texi 214viper.dvi: viper.texi
213 $(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi 215 $(ENVADD) $(TEXI2DVI) $(srcdir)/viper.texi
214 216
215$(infodir)/widget: widget.texi 217$(infodir)/widget: widget.texi
216 $(MAKEINFO) widget.texi 218 $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi
217widget.dvi: widget.texi 219widget.dvi: widget.texi
218 $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi 220 $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi
219 221
220$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi 222$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi
221 $(MAKEINFO) faq.texi 223 $(MAKEINFO) $(MAKEINFO_OPTS) faq.texi
222faq.dvi: faq.texi $(emacsdir)/emacsver.texi 224faq.dvi: faq.texi $(emacsdir)/emacsver.texi
223 $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi 225 $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi
224 226
225$(infodir)/autotype: autotype.texi 227$(infodir)/autotype: autotype.texi
226 $(MAKEINFO) autotype.texi 228 $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi
227autotype.dvi: autotype.texi 229autotype.dvi: autotype.texi
228 $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi 230 $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi
229 231
230$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi 232$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi
231 $(MAKEINFO) calc.texi 233 $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi
232 234
233calc.dvi: calc.texi $(emacsdir)/emacsver.texi 235calc.dvi: calc.texi $(emacsdir)/emacsver.texi
234 $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi 236 $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi
@@ -236,107 +238,112 @@ calc.dvi: calc.texi $(emacsdir)/emacsver.texi
236# This is produced with --no-split to avoid making files whose 238# This is produced with --no-split to avoid making files whose
237# names clash on DOS 8+3 filesystems 239# names clash on DOS 8+3 filesystems
238$(infodir)/idlwave: idlwave.texi 240$(infodir)/idlwave: idlwave.texi
239 $(MAKEINFO) --no-split idlwave.texi 241 $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi
240idlwave.dvi: idlwave.texi 242idlwave.dvi: idlwave.texi
241 $(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi 243 $(ENVADD) $(TEXI2DVI) $(srcdir)/idlwave.texi
242 244
243$(infodir)/eudc: eudc.texi 245$(infodir)/eudc: eudc.texi
244 $(MAKEINFO) eudc.texi 246 $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi
245eudc.dvi: eudc.texi 247eudc.dvi: eudc.texi
246 $(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi 248 $(ENVADD) $(TEXI2DVI) $(srcdir)/eudc.texi
247 249
248$(infodir)/ebrowse: ebrowse.texi 250$(infodir)/ebrowse: ebrowse.texi
249 $(MAKEINFO) ebrowse.texi 251 $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi
250ebrowse.dvi: ebrowse.texi 252ebrowse.dvi: ebrowse.texi
251 $(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi 253 $(ENVADD) $(TEXI2DVI) $(srcdir)/ebrowse.texi
252 254
253$(infodir)/woman: woman.texi 255$(infodir)/woman: woman.texi
254 $(MAKEINFO) woman.texi 256 $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi
255woman.dvi: woman.texi 257woman.dvi: woman.texi
256 $(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi 258 $(ENVADD) $(TEXI2DVI) $(srcdir)/woman.texi
257 259
258$(infodir)/speedbar: speedbar.texi 260$(infodir)/speedbar: speedbar.texi
259 $(MAKEINFO) speedbar.texi 261 $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi
260speedbar.dvi: speedbar.texi 262speedbar.dvi: speedbar.texi
261 $(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi 263 $(ENVADD) $(TEXI2DVI) $(srcdir)/speedbar.texi
262 264
263$(infodir)/tramp: tramp.texi 265$(infodir)/tramp: tramp.texi
264 $(MAKEINFO) tramp.texi 266 $(MAKEINFO) $(MAKEINFO_OPTS) tramp.texi
265tramp.dvi: tramp.texi 267tramp.dvi: tramp.texi
266 $(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi 268 $(ENVADD) $(TEXI2DVI) $(srcdir)/tramp.texi
267 269
268$(infodir)/ses: ses.texi 270$(infodir)/ses: ses.texi
269 $(MAKEINFO) ses.texi 271 $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi
270ses.dvi: ses.texi 272ses.dvi: ses.texi
271 $(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi 273 $(ENVADD) $(TEXI2DVI) $(srcdir)/ses.texi
272 274
273$(infodir)/smtpmail: smtpmail.texi 275$(infodir)/smtpmail: smtpmail.texi
274 $(MAKEINFO) smtpmail.texi 276 $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi
275smtpmail.dvi: smtpmail.texi 277smtpmail.dvi: smtpmail.texi
276 $(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi 278 $(ENVADD) $(TEXI2DVI) $(srcdir)/smtpmail.texi
277 279
278$(infodir)/org: org.texi 280$(infodir)/org: org.texi
279 $(MAKEINFO) org.texi 281 $(MAKEINFO) $(MAKEINFO_OPTS) org.texi
280org.dvi: org.texi 282org.dvi: org.texi
281 $(ENVADD) $(TEXI2DVI) $(srcdir)/org.texi 283 $(ENVADD) $(TEXI2DVI) $(srcdir)/org.texi
282 284
283$(infodir)/url: url.texi 285$(infodir)/url: url.texi
284 $(MAKEINFO) url.texi 286 $(MAKEINFO) $(MAKEINFO_OPTS) url.texi
285url.dvi: url.texi 287url.dvi: url.texi
286 $(ENVADD) $(TEXI2DVI) $(srcdir)/url.texi 288 $(ENVADD) $(TEXI2DVI) $(srcdir)/url.texi
287 289
288$(infodir)/newsticker: newsticker.texi 290$(infodir)/newsticker: newsticker.texi
289 $(MAKEINFO) newsticker.texi 291 $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi
290newsticker.dvi: newsticker.texi 292newsticker.dvi: newsticker.texi
291 $(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi 293 $(ENVADD) $(TEXI2DVI) $(srcdir)/newsticker.texi
292 294
293$(infodir)/nxml-mode: nxml-mode.texi 295$(infodir)/nxml-mode: nxml-mode.texi
294 $(MAKEINFO) nxml-mode.texi 296 $(MAKEINFO) $(MAKEINFO_OPTS) nxml-mode.texi
295nxml-mod.dvi: nxml-mode.texi 297nxml-mod.dvi: nxml-mode.texi
296 $(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi 298 $(ENVADD) $(TEXI2DVI) $(srcdir)/nxml-mode.texi
297 299
298$(infodir)/rcirc: rcirc.texi 300$(infodir)/rcirc: rcirc.texi
299 $(MAKEINFO) rcirc.texi 301 $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi
300rcirc.dvi: rcirc.texi 302rcirc.dvi: rcirc.texi
301 $(ENVADD) $(TEXI2DVI) $(srcdir)/rcirc.texi 303 $(ENVADD) $(TEXI2DVI) $(srcdir)/rcirc.texi
302 304
303$(infodir)/erc: erc.texi 305$(infodir)/erc: erc.texi
304 $(MAKEINFO) erc.texi 306 $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi
305erc.dvi: erc.texi 307erc.dvi: erc.texi
306 $(ENVADD) $(TEXI2DVI) $(srcdir)/erc.texi 308 $(ENVADD) $(TEXI2DVI) $(srcdir)/erc.texi
307 309
310$(infodir)/ert: ert.texi
311 $(MAKEINFO) $(MAKEINFO_OPTS) ert.texi
312ert.dvi: ert.texi
313 $(ENVADD) $(TEXI2DVI) $(srcdir)/ert.texi
314
308$(infodir)/epa: epa.texi 315$(infodir)/epa: epa.texi
309 $(MAKEINFO) epa.texi 316 $(MAKEINFO) $(MAKEINFO_OPTS) epa.texi
310epa.dvi: epa.texi 317epa.dvi: epa.texi
311 $(ENVADD) $(TEXI2DVI) $(srcdir)/epa.texi 318 $(ENVADD) $(TEXI2DVI) $(srcdir)/epa.texi
312 319
313$(infodir)/mairix-el: mairix-el.texi 320$(infodir)/mairix-el: mairix-el.texi
314 $(MAKEINFO) mairix-el.texi 321 $(MAKEINFO) $(MAKEINFO_OPTS) mairix-el.texi
315mairix-el.dvi: mairix-el.texi 322mairix-el.dvi: mairix-el.texi
316 $(ENVADD) $(TEXI2DVI) $(srcdir)/mairix-el.texi 323 $(ENVADD) $(TEXI2DVI) $(srcdir)/mairix-el.texi
317 324
318$(infodir)/auth: auth.texi 325$(infodir)/auth: auth.texi
319 $(MAKEINFO) auth.texi 326 $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi
320auth.dvi: auth.texi 327auth.dvi: auth.texi
321 $(ENVADD) $(TEXI2DVI) $(srcdir)/auth.texi 328 $(ENVADD) $(TEXI2DVI) $(srcdir)/auth.texi
322 329
323$(infodir)/eieio: eieio.texi 330$(infodir)/eieio: eieio.texi
324 $(MAKEINFO) eieio.texi 331 $(MAKEINFO) $(MAKEINFO_OPTS) eieio.texi
325eieio.dvi: eieio.texi 332eieio.dvi: eieio.texi
326 $(ENVADD) $(TEXI2DVI) $(srcdir)/eieio.texi 333 $(ENVADD) $(TEXI2DVI) $(srcdir)/eieio.texi
327 334
328$(infodir)/ede: ede.texi 335$(infodir)/ede: ede.texi
329 $(MAKEINFO) ede.texi 336 $(MAKEINFO) $(MAKEINFO_OPTS) ede.texi
330ede.dvi: ede.texi 337ede.dvi: ede.texi
331 $(ENVADD) $(TEXI2DVI) $(srcdir)/ede.texi 338 $(ENVADD) $(TEXI2DVI) $(srcdir)/ede.texi
332 339
333$(infodir)/semantic: semantic.texi 340$(infodir)/semantic: semantic.texi
334 $(MAKEINFO) semantic.texi 341 $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi
335semantic.dvi: semantic.texi 342semantic.dvi: semantic.texi
336 $(ENVADD) $(TEXI2DVI) $(srcdir)/semantic.texi 343 $(ENVADD) $(TEXI2DVI) $(srcdir)/semantic.texi
337 344
338$(infodir)/edt: edt.texi 345$(infodir)/edt: edt.texi
339 $(MAKEINFO) edt.texi 346 $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi
340edt.dvi: edt.texi 347edt.dvi: edt.texi
341 $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi 348 $(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi
342 349
@@ -362,7 +369,7 @@ clean: mostlyclean
362 $(infodir)/url* $(infodir)/org* \ 369 $(infodir)/url* $(infodir)/org* \
363 $(infodir)/flymake* $(infodir)/newsticker* \ 370 $(infodir)/flymake* $(infodir)/newsticker* \
364 $(infodir)/sieve* $(infodir)/pgg* \ 371 $(infodir)/sieve* $(infodir)/pgg* \
365 $(infodir)/erc* $(infodir)/rcirc* \ 372 $(infodir)/erc* $(infodir)/ert* $(infodir)/rcirc* \
366 $(infodir)/remember* $(infodir)/nxml-mode* \ 373 $(infodir)/remember* $(infodir)/nxml-mode* \
367 $(infodir)/epa* $(infodir)/sasl* \ 374 $(infodir)/epa* $(infodir)/sasl* \
368 $(infodir)/mairix-el* $(infodir)/auth* \ 375 $(infodir)/mairix-el* $(infodir)/auth* \
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 1fec34f147b..34bd14f2a82 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -8,8 +8,7 @@
8@copying 8@copying
9This file documents Message, the Emacs message composition mode. 9This file documents Message, the Emacs message composition mode.
10 10
11Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 11Copyright @copyright{} 1996-2011 Free Software Foundation, Inc.
122004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
13 12
14@quotation 13@quotation
15Permission is granted to copy, distribute and/or modify this document 14Permission is granted to copy, distribute and/or modify this document
@@ -886,6 +885,10 @@ Manual}).
886@cindex internationalized domain names 885@cindex internationalized domain names
887@cindex non-ascii domain names 886@cindex non-ascii domain names
888 887
888@acronym{IDNA} is a standard way to encode non-@acronym{ASCII} domain
889names into a readable @acronym{ASCII} string. The details can be
890found in RFC 3490.
891
889Message is a @acronym{IDNA}-compliant posting agent. The user 892Message is a @acronym{IDNA}-compliant posting agent. The user
890generally doesn't have to do anything to make the @acronym{IDNA} 893generally doesn't have to do anything to make the @acronym{IDNA}
891happen---Message will encode non-@acronym{ASCII} domain names in @code{From}, 894happen---Message will encode non-@acronym{ASCII} domain names in @code{From},
diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi
index a06a7231112..546f9e629fe 100644
--- a/doc/misc/mh-e.texi
+++ b/doc/misc/mh-e.texi
@@ -24,8 +24,7 @@
24This is version @value{VERSION}@value{EDITION} of @cite{The MH-E 24This is version @value{VERSION}@value{EDITION} of @cite{The MH-E
25Manual}, last updated @value{UPDATED}. 25Manual}, last updated @value{UPDATED}.
26 26
27Copyright @copyright{} 1995, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 27Copyright @copyright{} 1995, 2001-2003, 2005-2011 Free Software Foundation, Inc.
28 2009, 2010 Free Software Foundation, Inc.
29 28
30@c This dual license has been agreed upon by the FSF. 29@c This dual license has been agreed upon by the FSF.
31 30
diff --git a/doc/misc/newsticker.texi b/doc/misc/newsticker.texi
index 5c975772139..fadcf1ea17b 100644
--- a/doc/misc/newsticker.texi
+++ b/doc/misc/newsticker.texi
@@ -13,7 +13,7 @@
13This manual is for Newsticker (version @value{VERSION}, @value{UPDATED}). 13This manual is for Newsticker (version @value{VERSION}, @value{UPDATED}).
14 14
15@noindent 15@noindent
16Copyright @copyright{} 2004, 2005, 2006, 2007, 2008, 2009, 2010 16Copyright @copyright{} 2004-2011
17Free Software Foundation, Inc. 17Free Software Foundation, Inc.
18 18
19@quotation 19@quotation
@@ -315,7 +315,3 @@ Byte-compiling newsticker.el is recommended.
315@bye 315@bye
316 316
317 317
318
319@ignore
320 arch-tag: 7a4de539-117c-4658-b799-0b9e3d0ccec0
321@end ignore
diff --git a/doc/misc/nxml-mode.texi b/doc/misc/nxml-mode.texi
index d076f0dd820..b2003a139d0 100644
--- a/doc/misc/nxml-mode.texi
+++ b/doc/misc/nxml-mode.texi
@@ -8,7 +8,7 @@
8This manual documents nxml-mode, an Emacs major mode for editing 8This manual documents nxml-mode, an Emacs major mode for editing
9XML with RELAX NG support. 9XML with RELAX NG support.
10 10
11Copyright @copyright{} 2007, 2008, 2009, 2010 11Copyright @copyright{} 2007-2011
12Free Software Foundation, Inc. 12Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
@@ -70,8 +70,8 @@ Once in nXML mode, you can type @kbd{C-h m} for basic information on the
70mode. 70mode.
71 71
72The @file{etc/nxml} directory in the Emacs distribution contains some data 72The @file{etc/nxml} directory in the Emacs distribution contains some data
73files used by nXML mode, and includes two files (@file{test.valid.xml} and 73files used by nXML mode, and includes two files (@file{test-valid.xml} and
74@file{test.invalid.xml}) that provide examples of valid and invalid XML 74@file{test-invalid.xml}) that provide examples of valid and invalid XML
75documents. 75documents.
76 76
77To get validation and schema-sensitive editing, you need a RELAX NG Compact 77To get validation and schema-sensitive editing, you need a RELAX NG Compact
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 5a676786fdd..7618bad1f73 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -265,8 +265,7 @@
265@copying 265@copying
266This manual is for Org version @value{VERSION}. 266This manual is for Org version @value{VERSION}.
267 267
268Copyright @copyright{} 2004, 2005, 2006, 2007, 2008, 2009, 2010 268Copyright @copyright{} 2004-2011 Free Software Foundation, Inc.
269Free Software Foundation, Inc.
270 269
271@quotation 270@quotation
272Permission is granted to copy, distribute and/or modify this document 271Permission is granted to copy, distribute and/or modify this document
@@ -14759,10 +14758,6 @@ org-customize @key{RET}} and then click yourself through the tree.
14759 14758
14760@bye 14759@bye
14761 14760
14762@ignore
14763 arch-tag: 7893d1Fe-cc57-4d13-b5e5-f494a1CBC7ac
14764@end ignore
14765
14766@c Local variables: 14761@c Local variables:
14767@c fill-column: 77 14762@c fill-column: 77
14768@c indent-tabs-mode: nil 14763@c indent-tabs-mode: nil
diff --git a/doc/misc/pcl-cvs.texi b/doc/misc/pcl-cvs.texi
index e4adf47ddb2..7301bf3747a 100644
--- a/doc/misc/pcl-cvs.texi
+++ b/doc/misc/pcl-cvs.texi
@@ -6,8 +6,7 @@
6@c %**end of header 6@c %**end of header
7 7
8@copying 8@copying
9Copyright @copyright{} 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 9Copyright @copyright{} 1991-2011
101999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
11Free Software Foundation, Inc. 10Free Software Foundation, Inc.
12 11
13@quotation 12@quotation
@@ -1432,7 +1431,3 @@ this manual.
1432@printindex ky 1431@printindex ky
1433 1432
1434@bye 1433@bye
1435
1436@ignore
1437 arch-tag: 5c7178ce-56fa-40b0-abd7-f4a09758b235
1438@end ignore
diff --git a/doc/misc/pgg.texi b/doc/misc/pgg.texi
index eefada00d9a..9bdb1eaa216 100644
--- a/doc/misc/pgg.texi
+++ b/doc/misc/pgg.texi
@@ -8,8 +8,7 @@
8This file describes PGG @value{VERSION}, an Emacs interface to various 8This file describes PGG @value{VERSION}, an Emacs interface to various
9PGP implementations. 9PGP implementations.
10 10
11Copyright @copyright{} 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 11Copyright @copyright{} 2001, 2003-2011 Free Software Foundation, Inc.
122010 Free Software Foundation, Inc.
13 12
14@quotation 13@quotation
15Permission is granted to copy, distribute and/or modify this document 14Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi
index c27cf4dc182..6402c91c57a 100644
--- a/doc/misc/rcirc.texi
+++ b/doc/misc/rcirc.texi
@@ -5,7 +5,7 @@
5@c %**end of header 5@c %**end of header
6 6
7@copying 7@copying
8Copyright @copyright{} 2006, 2007, 2008, 2009, 2010 8Copyright @copyright{} 2006-2011
9Free Software Foundation, Inc. 9Free Software Foundation, Inc.
10 10
11@quotation 11@quotation
@@ -948,7 +948,3 @@ The real answer, therefore, is a @code{/reconnect} command:
948@printindex cp 948@printindex cp
949 949
950@bye 950@bye
951
952@ignore
953 arch-tag: 2589e562-3843-4ffc-8c2f-477cbad57c01
954@end ignore
diff --git a/doc/misc/reftex.texi b/doc/misc/reftex.texi
index 9d06ceccd9e..880cfb988a3 100644
--- a/doc/misc/reftex.texi
+++ b/doc/misc/reftex.texi
@@ -27,8 +27,7 @@ citations and indices for LaTeX documents with Emacs.
27This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for 27This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for
28@b{Ref@TeX{}} @value{VERSION} 28@b{Ref@TeX{}} @value{VERSION}
29 29
30Copyright @copyright{} 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 30Copyright @copyright{} 1997-2011 Free Software Foundation, Inc.
312005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
32 31
33@quotation 32@quotation
34Permission is granted to copy, distribute and/or modify this document 33Permission is granted to copy, distribute and/or modify this document
@@ -5890,7 +5889,3 @@ released on 7 Jan 1997.
5890@printindex cp 5889@printindex cp
5891 5890
5892@bye 5891@bye
5893
5894@ignore
5895 arch-tag: 1e055774-0576-4b1b-b47f-550d0961fd43
5896@end ignore
diff --git a/doc/misc/remember.texi b/doc/misc/remember.texi
index f9b75e1be00..cdb45140093 100644
--- a/doc/misc/remember.texi
+++ b/doc/misc/remember.texi
@@ -8,7 +8,7 @@
8@copying 8@copying
9This manual is for Remember Mode, version 1.9 9This manual is for Remember Mode, version 1.9
10 10
11Copyright @copyright{} 2001, 2004, 2005, 2007, 2008, 2009, 2010 11Copyright @copyright{} 2001, 2004-2005, 2007-2011
12Free Software Foundation, Inc. 12Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
@@ -403,7 +403,3 @@ consult @ref{Remember, , , org}.
403@printindex cp 403@printindex cp
404 404
405@bye 405@bye
406
407@ignore
408 arch-tag: 5b980db0-20cc-4167-b845-52dc11d53b9f
409@end ignore
diff --git a/doc/misc/sasl.texi b/doc/misc/sasl.texi
index 80ea9bc45be..99c4c98e439 100644
--- a/doc/misc/sasl.texi
+++ b/doc/misc/sasl.texi
@@ -7,7 +7,7 @@
7@copying 7@copying
8This file describes the Emacs SASL library, version @value{VERSION}. 8This file describes the Emacs SASL library, version @value{VERSION}.
9 9
10Copyright @copyright{} 2000, 2004, 2005, 2006, 2007, 2008, 2009, 2010 10Copyright @copyright{} 2000, 2004-2011
11Free Software Foundation, Inc. 11Free Software Foundation, Inc.
12 12
13@quotation 13@quotation
diff --git a/doc/misc/sc.texi b/doc/misc/sc.texi
index 72a6bfc8989..621d78b962f 100644
--- a/doc/misc/sc.texi
+++ b/doc/misc/sc.texi
@@ -14,8 +14,7 @@
14This document describes Supercite, an Emacs package for citing and 14This document describes Supercite, an Emacs package for citing and
15attributing replies to mail and news messages. 15attributing replies to mail and news messages.
16 16
17Copyright @copyright{} 1993, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 17Copyright @copyright{} 1993, 2001-2011 Free Software Foundation, Inc.
182008, 2009, 2010 Free Software Foundation, Inc.
19 18
20@quotation 19@quotation
21Permission is granted to copy, distribute and/or modify this document 20Permission is granted to copy, distribute and/or modify this document
@@ -1941,7 +1940,3 @@ its @var{variable} name.
1941@end iftex 1940@end iftex
1942@printindex vr 1941@printindex vr
1943@bye 1942@bye
1944
1945@ignore
1946 arch-tag: 0521847a-4680-44b6-ae6e-13ce20e18436
1947@end ignore
diff --git a/doc/misc/sem-user.texi b/doc/misc/sem-user.texi
index c731c1843dd..b17f1ab7e93 100644
--- a/doc/misc/sem-user.texi
+++ b/doc/misc/sem-user.texi
@@ -1,7 +1,6 @@
1@c This file is included by semantic.texi 1@c This file is included by semantic.texi
2 2
3@c Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 3@c Copyright (C) 1999-2005, 2007, 2009-2011 Free Software Foundation, Inc.
4@c 2010 Free Software Foundation, Inc.
5 4
6@c Permission is granted to copy, distribute and/or modify this 5@c Permission is granted to copy, distribute and/or modify this
7@c document under the terms of the GNU Free Documentation License, 6@c document under the terms of the GNU Free Documentation License,
@@ -1330,7 +1329,3 @@ To add other kind of decorations on a tag, @code{NAME-highlight} must use
1330@dfn{semantic-decorate-tag}, and other functions of the semantic 1329@dfn{semantic-decorate-tag}, and other functions of the semantic
1331decoration @var{api} found in this library. 1330decoration @var{api} found in this library.
1332@end defun 1331@end defun
1333
1334@ignore
1335 arch-tag: 760dca58-7119-484e-8237-866cbaf36f79
1336@end ignore
diff --git a/doc/misc/semantic.texi b/doc/misc/semantic.texi
index 65bd718dfff..89e83df5bc3 100644
--- a/doc/misc/semantic.texi
+++ b/doc/misc/semantic.texi
@@ -24,8 +24,7 @@
24@copying 24@copying
25This manual documents the Semantic library and utilities. 25This manual documents the Semantic library and utilities.
26 26
27Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 27Copyright @copyright{} 1999-2005, 2007, 2009-2011 Free Software Foundation, Inc.
282009, 2010 Free Software Foundation, Inc.
29 28
30@quotation 29@quotation
31Permission is granted to copy, distribute and/or modify this document 30Permission is granted to copy, distribute and/or modify this document
@@ -622,7 +621,3 @@ Emacs Lisp. It is an LALR parser suitable for complex languages.
622@c LocalWords: subsubsection sw sym texi texinfo titlefont titlepage 621@c LocalWords: subsubsection sw sym texi texinfo titlefont titlepage
623@c LocalWords: tok TOKEN's toplevel typemodifiers uml unset untar 622@c LocalWords: tok TOKEN's toplevel typemodifiers uml unset untar
624@c LocalWords: uref usedb var vskip xref yak 623@c LocalWords: uref usedb var vskip xref yak
625
626@ignore
627 arch-tag: cbc6e78c-4ff1-410e-9fc7-936487e39bbf
628@end ignore
diff --git a/doc/misc/ses.texi b/doc/misc/ses.texi
index 60d419083e2..45e5e9efc0e 100644
--- a/doc/misc/ses.texi
+++ b/doc/misc/ses.texi
@@ -11,8 +11,7 @@
11@copying 11@copying
12This file documents SES: the Simple Emacs Spreadsheet. 12This file documents SES: the Simple Emacs Spreadsheet.
13 13
14Copyright @copyright{} 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 14Copyright @copyright{} 2002-2011 Free Software Foundation, Inc.
152010 Free Software Foundation, Inc.
16 15
17@quotation 16@quotation
18Permission is granted to copy, distribute and/or modify this document 17Permission is granted to copy, distribute and/or modify this document
@@ -982,7 +981,3 @@ Jean-Philippe Theberge @email{jphil@@acs.pagesjaunes.fr}
982@include doclicense.texi 981@include doclicense.texi
983 982
984@bye 983@bye
985
986@ignore
987 arch-tag: 10a4ee1c-7ef4-4c06-8b7a-f975e39f0dec
988@end ignore
diff --git a/doc/misc/sieve.texi b/doc/misc/sieve.texi
index b8f09904858..5c069f619ff 100644
--- a/doc/misc/sieve.texi
+++ b/doc/misc/sieve.texi
@@ -8,8 +8,7 @@
8@copying 8@copying
9This file documents the Emacs Sieve package, for server-side mail filtering. 9This file documents the Emacs Sieve package, for server-side mail filtering.
10 10
11Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 11Copyright @copyright{} 2001-2011 Free Software Foundation, Inc.
122009, 2010 Free Software Foundation, Inc.
13 12
14@quotation 13@quotation
15Permission is granted to copy, distribute and/or modify this document 14Permission is granted to copy, distribute and/or modify this document
diff --git a/doc/misc/smtpmail.texi b/doc/misc/smtpmail.texi
index 05bae38e7a8..abd7d8974dc 100644
--- a/doc/misc/smtpmail.texi
+++ b/doc/misc/smtpmail.texi
@@ -3,7 +3,7 @@
3@settitle Emacs SMTP Library 3@settitle Emacs SMTP Library
4@syncodeindex vr fn 4@syncodeindex vr fn
5@copying 5@copying
6Copyright @copyright{} 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 6Copyright @copyright{} 2003-2011
7Free Software Foundation, Inc. 7Free Software Foundation, Inc.
8 8
9@quotation 9@quotation
@@ -415,7 +415,3 @@ cannot accept mail.
415@printindex fn 415@printindex fn
416 416
417@bye 417@bye
418
419@ignore
420 arch-tag: 6316abdf-b366-4562-87a2-f37e8f894b6f
421@end ignore
diff --git a/doc/misc/speedbar.texi b/doc/misc/speedbar.texi
index aaf9e938de7..980839cdec9 100644
--- a/doc/misc/speedbar.texi
+++ b/doc/misc/speedbar.texi
@@ -4,8 +4,7 @@
4@syncodeindex fn cp 4@syncodeindex fn cp
5 5
6@copying 6@copying
7Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 7Copyright @copyright{} 1999-2011 Free Software Foundation, Inc.
82007, 2008, 2009, 2010 Free Software Foundation, Inc.
9 8
10@quotation 9@quotation
11Permission is granted to copy, distribute and/or modify this document 10Permission is granted to copy, distribute and/or modify this document
@@ -1253,7 +1252,3 @@ Two good values are @code{nil} and @code{statictag}.
1253@bye 1252@bye
1254@c LocalWords: speedbar's xref slowbar kbd subsubsection 1253@c LocalWords: speedbar's xref slowbar kbd subsubsection
1255@c LocalWords: keybindings 1254@c LocalWords: keybindings
1256
1257@ignore
1258 arch-tag: e1fc85f0-1eeb-489f-a8d4-a2bfe711fa02
1259@end ignore
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex
index 91408263bc9..057b321fd71 100644
--- a/doc/misc/texinfo.tex
+++ b/doc/misc/texinfo.tex
@@ -3,11 +3,11 @@
3% Load plain if necessary, i.e., if running under initex. 3% Load plain if necessary, i.e., if running under initex.
4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi 4\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
5% 5%
6\def\texinfoversion{2009-08-14.15} 6\def\texinfoversion{2011-01-15.17}
7% 7%
8% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 8% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 9% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
10% 2007, 2008, 2009 Free Software Foundation, Inc. 10% 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
11% 11%
12% This texinfo.tex file is free software: you can redistribute it and/or 12% This texinfo.tex file is free software: you can redistribute it and/or
13% modify it under the terms of the GNU General Public License as 13% modify it under the terms of the GNU General Public License as
@@ -65,7 +65,6 @@
65\everyjob{\message{[Texinfo version \texinfoversion]}% 65\everyjob{\message{[Texinfo version \texinfoversion]}%
66 \catcode`+=\active \catcode`\_=\active} 66 \catcode`+=\active \catcode`\_=\active}
67 67
68
69\chardef\other=12 68\chardef\other=12
70 69
71% We never want plain's \outer definition of \+ in Texinfo. 70% We never want plain's \outer definition of \+ in Texinfo.
@@ -93,14 +92,13 @@
93\let\ptexnewwrite\newwrite 92\let\ptexnewwrite\newwrite
94\let\ptexnoindent=\noindent 93\let\ptexnoindent=\noindent
95\let\ptexplus=+ 94\let\ptexplus=+
95\let\ptexraggedright=\raggedright
96\let\ptexrbrace=\} 96\let\ptexrbrace=\}
97\let\ptexslash=\/ 97\let\ptexslash=\/
98\let\ptexstar=\* 98\let\ptexstar=\*
99\let\ptext=\t 99\let\ptext=\t
100\let\ptextop=\top 100\let\ptextop=\top
101{\catcode`\'=\active 101{\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode
102\global\let\ptexquoteright'}% Math-mode def from plain.tex.
103\let\ptexraggedright=\raggedright
104 102
105% If this character appears in an error message or help string, it 103% If this character appears in an error message or help string, it
106% starts a new line in the output. 104% starts a new line in the output.
@@ -199,36 +197,7 @@
199% that mark overfull boxes (in case you have decided 197% that mark overfull boxes (in case you have decided
200% that the text looks ok even though it passes the margin). 198% that the text looks ok even though it passes the margin).
201% 199%
202\def\finalout{\overfullrule=0pt} 200\def\finalout{\overfullrule=0pt }
203
204% @| inserts a changebar to the left of the current line. It should
205% surround any changed text. This approach does *not* work if the
206% change spans more than two lines of output. To handle that, we would
207% have adopt a much more difficult approach (putting marks into the main
208% vertical list for the beginning and end of each change).
209%
210\def\|{%
211 % \vadjust can only be used in horizontal mode.
212 \leavevmode
213 %
214 % Append this vertical mode material after the current line in the output.
215 \vadjust{%
216 % We want to insert a rule with the height and depth of the current
217 % leading; that is exactly what \strutbox is supposed to record.
218 \vskip-\baselineskip
219 %
220 % \vadjust-items are inserted at the left edge of the type. So
221 % the \llap here moves out into the left-hand margin.
222 \llap{%
223 %
224 % For a thicker or thinner bar, change the `1pt'.
225 \vrule height\baselineskip width1pt
226 %
227 % This is the space between the bar and the text.
228 \hskip 12pt
229 }%
230 }%
231}
232 201
233% Sometimes it is convenient to have everything in the transcript file 202% Sometimes it is convenient to have everything in the transcript file
234% and nothing on the terminal. We don't just call \tracingall here, 203% and nothing on the terminal. We don't just call \tracingall here,
@@ -267,7 +236,6 @@
267\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount 236\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
268 \removelastskip\penalty-200\bigskip\fi\fi} 237 \removelastskip\penalty-200\bigskip\fi\fi}
269 238
270% For @cropmarks command.
271% Do @cropmarks to get crop marks. 239% Do @cropmarks to get crop marks.
272% 240%
273\newif\ifcropmarks 241\newif\ifcropmarks
@@ -599,85 +567,6 @@
599\newhelp\EMsimple{Press RETURN to continue.} 567\newhelp\EMsimple{Press RETURN to continue.}
600 568
601 569
602%% Simple single-character @ commands
603
604% @@ prints an @
605% Kludge this until the fonts are right (grr).
606\def\@{{\tt\char64}}
607
608% This is turned off because it was never documented
609% and you can use @w{...} around a quote to suppress ligatures.
610%% Define @` and @' to be the same as ` and '
611%% but suppressing ligatures.
612%\def\`{{`}}
613%\def\'{{'}}
614
615% Used to generate quoted braces.
616\def\mylbrace {{\tt\char123}}
617\def\myrbrace {{\tt\char125}}
618\let\{=\mylbrace
619\let\}=\myrbrace
620\begingroup
621 % Definitions to produce \{ and \} commands for indices,
622 % and @{ and @} for the aux/toc files.
623 \catcode`\{ = \other \catcode`\} = \other
624 \catcode`\[ = 1 \catcode`\] = 2
625 \catcode`\! = 0 \catcode`\\ = \other
626 !gdef!lbracecmd[\{]%
627 !gdef!rbracecmd[\}]%
628 !gdef!lbraceatcmd[@{]%
629 !gdef!rbraceatcmd[@}]%
630!endgroup
631
632% @comma{} to avoid , parsing problems.
633\let\comma = ,
634
635% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
636% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
637\let\, = \c
638\let\dotaccent = \.
639\def\ringaccent#1{{\accent23 #1}}
640\let\tieaccent = \t
641\let\ubaraccent = \b
642\let\udotaccent = \d
643
644% Other special characters: @questiondown @exclamdown @ordf @ordm
645% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
646\def\questiondown{?`}
647\def\exclamdown{!`}
648\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
649\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
650
651% Dotless i and dotless j, used for accents.
652\def\imacro{i}
653\def\jmacro{j}
654\def\dotless#1{%
655 \def\temp{#1}%
656 \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi
657 \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi
658 \else \errmessage{@dotless can be used only with i or j}%
659 \fi\fi
660}
661
662% The \TeX{} logo, as in plain, but resetting the spacing so that a
663% period following counts as ending a sentence. (Idea found in latex.)
664%
665\edef\TeX{\TeX \spacefactor=1000 }
666
667% @LaTeX{} logo. Not quite the same results as the definition in
668% latex.ltx, since we use a different font for the raised A; it's most
669% convenient for us to use an explicitly smaller font, rather than using
670% the \scriptstyle font (since we don't reset \scriptstyle and
671% \scriptscriptstyle).
672%
673\def\LaTeX{%
674 L\kern-.36em
675 {\setbox0=\hbox{T}%
676 \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}%
677 \kern-.15em
678 \TeX
679}
680
681% Be sure we're in horizontal mode when doing a tie, since we make space 570% Be sure we're in horizontal mode when doing a tie, since we make space
682% equivalent to this in @example-like environments. Otherwise, a space 571% equivalent to this in @example-like environments. Otherwise, a space
683% at the beginning of a line will start with \penalty -- and 572% at the beginning of a line will start with \penalty -- and
@@ -873,7 +762,7 @@ where each line of input produces a line of output.}
873 762
874% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current 763% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
875% paragraph. For more general purposes, use the \margin insertion 764% paragraph. For more general purposes, use the \margin insertion
876% class. WHICH is `l' or `r'. 765% class. WHICH is `l' or `r'. Not documented, written for gawk manual.
877% 766%
878\newskip\inmarginspacing \inmarginspacing=1cm 767\newskip\inmarginspacing \inmarginspacing=1cm
879\def\strutdepth{\dp\strutbox} 768\def\strutdepth{\dp\strutbox}
@@ -920,6 +809,36 @@ where each line of input produces a line of output.}
920 \temp 809 \temp
921} 810}
922 811
812% @| inserts a changebar to the left of the current line. It should
813% surround any changed text. This approach does *not* work if the
814% change spans more than two lines of output. To handle that, we would
815% have adopt a much more difficult approach (putting marks into the main
816% vertical list for the beginning and end of each change). This command
817% is not documented, not supported, and doesn't work.
818%
819\def\|{%
820 % \vadjust can only be used in horizontal mode.
821 \leavevmode
822 %
823 % Append this vertical mode material after the current line in the output.
824 \vadjust{%
825 % We want to insert a rule with the height and depth of the current
826 % leading; that is exactly what \strutbox is supposed to record.
827 \vskip-\baselineskip
828 %
829 % \vadjust-items are inserted at the left edge of the type. So
830 % the \llap here moves out into the left-hand margin.
831 \llap{%
832 %
833 % For a thicker or thinner bar, change the `1pt'.
834 \vrule height\baselineskip width1pt
835 %
836 % This is the space between the bar and the text.
837 \hskip 12pt
838 }%
839 }%
840}
841
923% @include FILE -- \input text of FILE. 842% @include FILE -- \input text of FILE.
924% 843%
925\def\include{\parseargusing\filenamecatcodes\includezzz} 844\def\include{\parseargusing\filenamecatcodes\includezzz}
@@ -930,6 +849,7 @@ where each line of input produces a line of output.}
930 \makevalueexpandable % we want to expand any @value in FILE. 849 \makevalueexpandable % we want to expand any @value in FILE.
931 \turnoffactive % and allow special characters in the expansion 850 \turnoffactive % and allow special characters in the expansion
932 \indexnofonts % Allow `@@' and other weird things in file names. 851 \indexnofonts % Allow `@@' and other weird things in file names.
852 \wlog{texinfo.tex: doing @include of #1^^J}%
933 \edef\temp{\noexpand\input #1 }% 853 \edef\temp{\noexpand\input #1 }%
934 % 854 %
935 % This trickery is to read FILE outside of a group, in case it makes 855 % This trickery is to read FILE outside of a group, in case it makes
@@ -1095,109 +1015,6 @@ where each line of input produces a line of output.}
1095} 1015}
1096 1016
1097 1017
1098% @asis just yields its argument. Used with @table, for example.
1099%
1100\def\asis#1{#1}
1101
1102% @math outputs its argument in math mode.
1103%
1104% One complication: _ usually means subscripts, but it could also mean
1105% an actual _ character, as in @math{@var{some_variable} + 1}. So make
1106% _ active, and distinguish by seeing if the current family is \slfam,
1107% which is what @var uses.
1108{
1109 \catcode`\_ = \active
1110 \gdef\mathunderscore{%
1111 \catcode`\_=\active
1112 \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
1113 }
1114}
1115% Another complication: we want \\ (and @\) to output a \ character.
1116% FYI, plain.tex uses \\ as a temporary control sequence (why?), but
1117% this is not advertised and we don't care. Texinfo does not
1118% otherwise define @\.
1119%
1120% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
1121\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
1122%
1123\def\math{%
1124 \tex
1125 \mathunderscore
1126 \let\\ = \mathbackslash
1127 \mathactive
1128 % make the texinfo accent commands work in math mode
1129 \let\"=\ddot
1130 \let\'=\acute
1131 \let\==\bar
1132 \let\^=\hat
1133 \let\`=\grave
1134 \let\u=\breve
1135 \let\v=\check
1136 \let\~=\tilde
1137 \let\dotaccent=\dot
1138 $\finishmath
1139}
1140\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
1141
1142% Some active characters (such as <) are spaced differently in math.
1143% We have to reset their definitions in case the @math was an argument
1144% to a command which sets the catcodes (such as @item or @section).
1145%
1146{
1147 \catcode`^ = \active
1148 \catcode`< = \active
1149 \catcode`> = \active
1150 \catcode`+ = \active
1151 \catcode`' = \active
1152 \gdef\mathactive{%
1153 \let^ = \ptexhat
1154 \let< = \ptexless
1155 \let> = \ptexgtr
1156 \let+ = \ptexplus
1157 \let' = \ptexquoteright
1158 }
1159}
1160
1161% Some math mode symbols.
1162\def\bullet{$\ptexbullet$}
1163\def\geq{\ifmmode \ge\else $\ge$\fi}
1164\def\leq{\ifmmode \le\else $\le$\fi}
1165\def\minus{\ifmmode -\else $-$\fi}
1166
1167% @dots{} outputs an ellipsis using the current font.
1168% We do .5em per period so that it has the same spacing in the cm
1169% typewriter fonts as three actual period characters; on the other hand,
1170% in other typewriter fonts three periods are wider than 1.5em. So do
1171% whichever is larger.
1172%
1173\def\dots{%
1174 \leavevmode
1175 \setbox0=\hbox{...}% get width of three periods
1176 \ifdim\wd0 > 1.5em
1177 \dimen0 = \wd0
1178 \else
1179 \dimen0 = 1.5em
1180 \fi
1181 \hbox to \dimen0{%
1182 \hskip 0pt plus.25fil
1183 .\hskip 0pt plus1fil
1184 .\hskip 0pt plus1fil
1185 .\hskip 0pt plus.5fil
1186 }%
1187}
1188
1189% @enddots{} is an end-of-sentence ellipsis.
1190%
1191\def\enddots{%
1192 \dots
1193 \spacefactor=\endofsentencespacefactor
1194}
1195
1196% @comma{} is so commas can be inserted into text without messing up
1197% Texinfo's parsing.
1198%
1199\let\comma = ,
1200
1201% @refill is a no-op. 1018% @refill is a no-op.
1202\let\refill=\relax 1019\let\refill=\relax
1203 1020
@@ -1492,6 +1309,7 @@ output) for that.)}
1492 \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace 1309 \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
1493 % 1310 %
1494 % Read toc silently, to get counts of subentries for \pdfoutline. 1311 % Read toc silently, to get counts of subentries for \pdfoutline.
1312 \def\partentry##1##2##3##4{}% ignore parts in the outlines
1495 \def\numchapentry##1##2##3##4{% 1313 \def\numchapentry##1##2##3##4{%
1496 \def\thischapnum{##2}% 1314 \def\thischapnum{##2}%
1497 \def\thissecnum{0}% 1315 \def\thissecnum{0}%
@@ -2105,8 +1923,8 @@ end
2105\font\reducedsy=cmsy10 1923\font\reducedsy=cmsy10
2106\def\reducedecsize{1000} 1924\def\reducedecsize{1000}
2107 1925
2108% reset the current fonts 1926\textleading = 13.2pt % line spacing for 11pt CM
2109\textfonts 1927\textfonts % reset the current fonts
2110\rm 1928\rm
2111} % end of 11pt text font size definitions 1929} % end of 11pt text font size definitions
2112 1930
@@ -2236,11 +2054,9 @@ end
2236\font\reducedsy=cmsy9 2054\font\reducedsy=cmsy9
2237\def\reducedecsize{0900} 2055\def\reducedecsize{0900}
2238 2056
2239% reduce space between paragraphs 2057\divide\parskip by 2 % reduce space between paragraphs
2240\divide\parskip by 2 2058\textleading = 12pt % line spacing for 10pt CM
2241 2059\textfonts % reset the current fonts
2242% reset the current fonts
2243\textfonts
2244\rm 2060\rm
2245} % end of 10pt text font size definitions 2061} % end of 10pt text font size definitions
2246 2062
@@ -2249,12 +2065,13 @@ end
2249% @fonttextsize 10 2065% @fonttextsize 10
2250% (or 11) to redefine the text font size. pt is assumed. 2066% (or 11) to redefine the text font size. pt is assumed.
2251% 2067%
2252\def\xword{10}
2253\def\xiword{11} 2068\def\xiword{11}
2069\def\xword{10}
2070\def\xwordpt{10pt}
2254% 2071%
2255\parseargdef\fonttextsize{% 2072\parseargdef\fonttextsize{%
2256 \def\textsizearg{#1}% 2073 \def\textsizearg{#1}%
2257 \wlog{doing @fonttextsize \textsizearg}% 2074 %\wlog{doing @fonttextsize \textsizearg}%
2258 % 2075 %
2259 % Set \globaldefs so that documents can use this inside @tex, since 2076 % Set \globaldefs so that documents can use this inside @tex, since
2260 % makeinfo 4.8 does not support it, but we need it nonetheless. 2077 % makeinfo 4.8 does not support it, but we need it nonetheless.
@@ -2308,7 +2125,7 @@ end
2308 \let\tenttsl=\titlettsl 2125 \let\tenttsl=\titlettsl
2309 \def\curfontsize{title}% 2126 \def\curfontsize{title}%
2310 \def\lsize{chap}\def\lllsize{subsec}% 2127 \def\lsize{chap}\def\lllsize{subsec}%
2311 \resetmathfonts \setleading{25pt}} 2128 \resetmathfonts \setleading{27pt}}
2312\def\titlefont#1{{\titlefonts\rmisbold #1}} 2129\def\titlefont#1{{\titlefonts\rmisbold #1}}
2313\def\chapfonts{% 2130\def\chapfonts{%
2314 \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl 2131 \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
@@ -2460,14 +2277,19 @@ end
2460 2277
2461\let\markupsetuplqcode \markupsetcodequoteleft 2278\let\markupsetuplqcode \markupsetcodequoteleft
2462\let\markupsetuprqcode \markupsetcodequoteright 2279\let\markupsetuprqcode \markupsetcodequoteright
2280%
2463\let\markupsetuplqexample \markupsetcodequoteleft 2281\let\markupsetuplqexample \markupsetcodequoteleft
2464\let\markupsetuprqexample \markupsetcodequoteright 2282\let\markupsetuprqexample \markupsetcodequoteright
2283%
2284\let\markupsetuplqsamp \markupsetcodequoteleft
2285\let\markupsetuprqsamp \markupsetcodequoteright
2286%
2465\let\markupsetuplqverb \markupsetcodequoteleft 2287\let\markupsetuplqverb \markupsetcodequoteleft
2466\let\markupsetuprqverb \markupsetcodequoteright 2288\let\markupsetuprqverb \markupsetcodequoteright
2289%
2467\let\markupsetuplqverbatim \markupsetcodequoteleft 2290\let\markupsetuplqverbatim \markupsetcodequoteleft
2468\let\markupsetuprqverbatim \markupsetcodequoteright 2291\let\markupsetuprqverbatim \markupsetcodequoteright
2469 2292
2470\let\markupsetuplqsamp \markupsetnoligaturesquoteleft
2471\let\markupsetuplqkbd \markupsetnoligaturesquoteleft 2293\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
2472 2294
2473% Allow an option to not replace quotes with a regular directed right 2295% Allow an option to not replace quotes with a regular directed right
@@ -2505,27 +2327,40 @@ end
2505% Count depth in font-changes, for error checks 2327% Count depth in font-changes, for error checks
2506\newcount\fontdepth \fontdepth=0 2328\newcount\fontdepth \fontdepth=0
2507 2329
2508%% Add scribe-like font environments, plus @l for inline lisp (usually sans 2330% Font commands.
2509%% serif) and @ii for TeX italic 2331
2332% #1 is the font command (\sl or \it), #2 is the text to slant.
2333% If we are in a monospaced environment, however, 1) always use \ttsl,
2334% and 2) do not add an italic correction.
2335\def\dosmartslant#1#2{%
2336 \ifusingtt
2337 {{\ttsl #2}\let\next=\relax}%
2338 {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}%
2339 \next
2340}
2341\def\smartslanted{\dosmartslant\sl}
2342\def\smartitalic{\dosmartslant\it}
2510 2343
2511% \smartitalic{ARG} outputs arg in italics, followed by an italic correction 2344% Output an italic correction unless \next (presumed to be the following
2512% unless the following character is such as not to need one. 2345% character) is such as not to need one.
2513\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else 2346\def\smartitaliccorrection{%
2514 \ptexslash\fi\fi\fi} 2347 \ifx\next,%
2515\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} 2348 \else\ifx\next-%
2516\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} 2349 \else\ifx\next.%
2350 \else\ptexslash
2351 \fi\fi\fi}
2517 2352
2518% like \smartslanted except unconditionally uses \ttsl. 2353% like \smartslanted except unconditionally uses \ttsl, and no ic.
2519% @var is set to this for defun arguments. 2354% @var is set to this for defun arguments.
2520\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} 2355\def\ttslanted#1{{\ttsl #1}}
2521 2356
2522% @cite is like \smartslanted except unconditionally use \sl. We never want 2357% @cite is like \smartslanted except unconditionally use \sl. We never want
2523% ttsl for book titles, do we? 2358% ttsl for book titles, do we?
2524\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} 2359\def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection}
2525 2360
2526\let\i=\smartitalic 2361\let\i=\smartitalic
2527\let\slanted=\smartslanted 2362\let\slanted=\smartslanted
2528\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}} 2363\def\var#1{\smartslanted{#1}}
2529\let\dfn=\smartslanted 2364\let\dfn=\smartslanted
2530\let\emph=\smartitalic 2365\let\emph=\smartitalic
2531 2366
@@ -2819,8 +2654,188 @@ end
2819 \fi 2654 \fi
2820} 2655}
2821 2656
2657% @asis just yields its argument. Used with @table, for example.
2658%
2659\def\asis#1{#1}
2660
2661% @math outputs its argument in math mode.
2662%
2663% One complication: _ usually means subscripts, but it could also mean
2664% an actual _ character, as in @math{@var{some_variable} + 1}. So make
2665% _ active, and distinguish by seeing if the current family is \slfam,
2666% which is what @var uses.
2667{
2668 \catcode`\_ = \active
2669 \gdef\mathunderscore{%
2670 \catcode`\_=\active
2671 \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
2672 }
2673}
2674% Another complication: we want \\ (and @\) to output a math (or tt) \.
2675% FYI, plain.tex uses \\ as a temporary control sequence (for no
2676% particular reason), but this is not advertised and we don't care.
2677%
2678% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
2679\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
2680%
2681\def\math{%
2682 \tex
2683 \mathunderscore
2684 \let\\ = \mathbackslash
2685 \mathactive
2686 % make the texinfo accent commands work in math mode
2687 \let\"=\ddot
2688 \let\'=\acute
2689 \let\==\bar
2690 \let\^=\hat
2691 \let\`=\grave
2692 \let\u=\breve
2693 \let\v=\check
2694 \let\~=\tilde
2695 \let\dotaccent=\dot
2696 $\finishmath
2697}
2698\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
2699
2700% Some active characters (such as <) are spaced differently in math.
2701% We have to reset their definitions in case the @math was an argument
2702% to a command which sets the catcodes (such as @item or @section).
2703%
2704{
2705 \catcode`^ = \active
2706 \catcode`< = \active
2707 \catcode`> = \active
2708 \catcode`+ = \active
2709 \catcode`' = \active
2710 \gdef\mathactive{%
2711 \let^ = \ptexhat
2712 \let< = \ptexless
2713 \let> = \ptexgtr
2714 \let+ = \ptexplus
2715 \let' = \ptexquoteright
2716 }
2717}
2718
2822 2719
2823\message{glyphs,} 2720\message{glyphs,}
2721% and logos.
2722
2723% @@ prints an @.
2724\def\@{\char64 }
2725
2726% Used to generate quoted braces. Unless we're in typewriter, use
2727% \ecfont because the CM text fonts do not have braces, and we don't
2728% want to switch into math.
2729\def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}}
2730\def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}}
2731\let\{=\mylbrace
2732\let\}=\myrbrace
2733\begingroup
2734 % Definitions to produce \{ and \} commands for indices,
2735 % and @{ and @} for the aux/toc files.
2736 \catcode`\{ = \other \catcode`\} = \other
2737 \catcode`\[ = 1 \catcode`\] = 2
2738 \catcode`\! = 0 \catcode`\\ = \other
2739 !gdef!lbracecmd[\{]%
2740 !gdef!rbracecmd[\}]%
2741 !gdef!lbraceatcmd[@{]%
2742 !gdef!rbraceatcmd[@}]%
2743!endgroup
2744
2745% @comma{} to avoid , parsing problems.
2746\let\comma = ,
2747
2748% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
2749% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
2750\let\, = \ptexc
2751\let\dotaccent = \ptexdot
2752\def\ringaccent#1{{\accent23 #1}}
2753\let\tieaccent = \ptext
2754\let\ubaraccent = \ptexb
2755\let\udotaccent = \d
2756
2757% Other special characters: @questiondown @exclamdown @ordf @ordm
2758% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
2759\def\questiondown{?`}
2760\def\exclamdown{!`}
2761\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
2762\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
2763
2764% Dotless i and dotless j, used for accents.
2765\def\imacro{i}
2766\def\jmacro{j}
2767\def\dotless#1{%
2768 \def\temp{#1}%
2769 \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi
2770 \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi
2771 \else \errmessage{@dotless can be used only with i or j}%
2772 \fi\fi
2773}
2774
2775% The \TeX{} logo, as in plain, but resetting the spacing so that a
2776% period following counts as ending a sentence. (Idea found in latex.)
2777%
2778\edef\TeX{\TeX \spacefactor=1000 }
2779
2780% @LaTeX{} logo. Not quite the same results as the definition in
2781% latex.ltx, since we use a different font for the raised A; it's most
2782% convenient for us to use an explicitly smaller font, rather than using
2783% the \scriptstyle font (since we don't reset \scriptstyle and
2784% \scriptscriptstyle).
2785%
2786\def\LaTeX{%
2787 L\kern-.36em
2788 {\setbox0=\hbox{T}%
2789 \vbox to \ht0{\hbox{%
2790 \ifx\textnominalsize\xwordpt
2791 % for 10pt running text, \lllsize (8pt) is too small for the A in LaTeX.
2792 % Revert to plain's \scriptsize, which is 7pt.
2793 \count255=\the\fam $\fam\count255 \scriptstyle A$%
2794 \else
2795 % For 11pt, we can use our lllsize.
2796 \selectfonts\lllsize A%
2797 \fi
2798 }%
2799 \vss
2800 }}%
2801 \kern-.15em
2802 \TeX
2803}
2804
2805% Some math mode symbols.
2806\def\bullet{$\ptexbullet$}
2807\def\geq{\ifmmode \ge\else $\ge$\fi}
2808\def\leq{\ifmmode \le\else $\le$\fi}
2809\def\minus{\ifmmode -\else $-$\fi}
2810
2811% @dots{} outputs an ellipsis using the current font.
2812% We do .5em per period so that it has the same spacing in the cm
2813% typewriter fonts as three actual period characters; on the other hand,
2814% in other typewriter fonts three periods are wider than 1.5em. So do
2815% whichever is larger.
2816%
2817\def\dots{%
2818 \leavevmode
2819 \setbox0=\hbox{...}% get width of three periods
2820 \ifdim\wd0 > 1.5em
2821 \dimen0 = \wd0
2822 \else
2823 \dimen0 = 1.5em
2824 \fi
2825 \hbox to \dimen0{%
2826 \hskip 0pt plus.25fil
2827 .\hskip 0pt plus1fil
2828 .\hskip 0pt plus1fil
2829 .\hskip 0pt plus.5fil
2830 }%
2831}
2832
2833% @enddots{} is an end-of-sentence ellipsis.
2834%
2835\def\enddots{%
2836 \dots
2837 \spacefactor=\endofsentencespacefactor
2838}
2824 2839
2825% @point{}, @result{}, @expansion{}, @print{}, @equiv{}. 2840% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
2826% 2841%
@@ -3207,10 +3222,14 @@ end
3207 3222
3208\def\headings #1 {\csname HEADINGS#1\endcsname} 3223\def\headings #1 {\csname HEADINGS#1\endcsname}
3209 3224
3210\def\HEADINGSoff{% 3225\def\headingsoff{% non-global headings elimination
3211\global\evenheadline={\hfil} \global\evenfootline={\hfil} 3226 \evenheadline={\hfil}\evenfootline={\hfil}%
3212\global\oddheadline={\hfil} \global\oddfootline={\hfil}} 3227 \oddheadline={\hfil}\oddfootline={\hfil}%
3213\HEADINGSoff 3228}
3229
3230\def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting
3231\HEADINGSoff % it's the default
3232
3214% When we turn headings on, set the page number to 1. 3233% When we turn headings on, set the page number to 1.
3215% For double-sided printing, put current file name in lower left corner, 3234% For double-sided printing, put current file name in lower left corner,
3216% chapter name on inside top of right hand pages, document 3235% chapter name on inside top of right hand pages, document
@@ -3322,7 +3341,7 @@ end
3322 \begingroup 3341 \begingroup
3323 \advance\leftskip by-\tableindent 3342 \advance\leftskip by-\tableindent
3324 \advance\hsize by\tableindent 3343 \advance\hsize by\tableindent
3325 \advance\rightskip by0pt plus1fil 3344 \advance\rightskip by0pt plus1fil\relax
3326 \leavevmode\unhbox0\par 3345 \leavevmode\unhbox0\par
3327 \endgroup 3346 \endgroup
3328 % 3347 %
@@ -4134,11 +4153,14 @@ end
4134 \def\@{@}% change to @@ when we switch to @ as escape char in index files. 4153 \def\@{@}% change to @@ when we switch to @ as escape char in index files.
4135 \def\ {\realbackslash\space }% 4154 \def\ {\realbackslash\space }%
4136 % 4155 %
4137 % Need these in case \tex is in effect and \{ is a \delimiter again. 4156 % Need these unexpandable (because we define \tt as a dummy)
4138 % But can't use \lbracecmd and \rbracecmd because texindex assumes 4157 % definitions when @{ or @} appear in index entry text. Also, more
4139 % braces and backslashes are used only as delimiters. 4158 % complicated, when \tex is in effect and \{ is a \delimiter again.
4140 \let\{ = \mylbrace 4159 % We can't use \lbracecmd and \rbracecmd because texindex assumes
4141 \let\} = \myrbrace 4160 % braces and backslashes are used only as delimiters. Perhaps we
4161 % should define @lbrace and @rbrace commands a la @comma.
4162 \def\{{{\tt\char123}}%
4163 \def\}{{\tt\char125}}%
4142 % 4164 %
4143 % I don't entirely understand this, but when an index entry is 4165 % I don't entirely understand this, but when an index entry is
4144 % generated from a macro call, the \endinput which \scanmacro inserts 4166 % generated from a macro call, the \endinput which \scanmacro inserts
@@ -4191,7 +4213,7 @@ end
4191\def\commondummies{% 4213\def\commondummies{%
4192 % 4214 %
4193 % \definedummyword defines \#1 as \string\#1\space, thus effectively 4215 % \definedummyword defines \#1 as \string\#1\space, thus effectively
4194 % preventing its expansion. This is used only for control% words, 4216 % preventing its expansion. This is used only for control words,
4195 % not control letters, because the \space would be incorrect for 4217 % not control letters, because the \space would be incorrect for
4196 % control characters, but is needed to separate the control word 4218 % control characters, but is needed to separate the control word
4197 % from whatever follows. 4219 % from whatever follows.
@@ -4210,6 +4232,7 @@ end
4210 \commondummiesnofonts 4232 \commondummiesnofonts
4211 % 4233 %
4212 \definedummyletter\_% 4234 \definedummyletter\_%
4235 \definedummyletter\-%
4213 % 4236 %
4214 % Non-English letters. 4237 % Non-English letters.
4215 \definedummyword\AA 4238 \definedummyword\AA
@@ -4246,20 +4269,24 @@ end
4246 \definedummyword\TeX 4269 \definedummyword\TeX
4247 % 4270 %
4248 % Assorted special characters. 4271 % Assorted special characters.
4272 \definedummyword\arrow
4249 \definedummyword\bullet 4273 \definedummyword\bullet
4250 \definedummyword\comma 4274 \definedummyword\comma
4251 \definedummyword\copyright 4275 \definedummyword\copyright
4252 \definedummyword\registeredsymbol 4276 \definedummyword\registeredsymbol
4253 \definedummyword\dots 4277 \definedummyword\dots
4254 \definedummyword\enddots 4278 \definedummyword\enddots
4279 \definedummyword\entrybreak
4255 \definedummyword\equiv 4280 \definedummyword\equiv
4256 \definedummyword\error 4281 \definedummyword\error
4257 \definedummyword\euro 4282 \definedummyword\euro
4283 \definedummyword\expansion
4284 \definedummyword\geq
4258 \definedummyword\guillemetleft 4285 \definedummyword\guillemetleft
4259 \definedummyword\guillemetright 4286 \definedummyword\guillemetright
4260 \definedummyword\guilsinglleft 4287 \definedummyword\guilsinglleft
4261 \definedummyword\guilsinglright 4288 \definedummyword\guilsinglright
4262 \definedummyword\expansion 4289 \definedummyword\leq
4263 \definedummyword\minus 4290 \definedummyword\minus
4264 \definedummyword\ogonek 4291 \definedummyword\ogonek
4265 \definedummyword\pounds 4292 \definedummyword\pounds
@@ -4316,7 +4343,9 @@ end
4316 \definedummyword\b 4343 \definedummyword\b
4317 \definedummyword\i 4344 \definedummyword\i
4318 \definedummyword\r 4345 \definedummyword\r
4346 \definedummyword\sansserif
4319 \definedummyword\sc 4347 \definedummyword\sc
4348 \definedummyword\slanted
4320 \definedummyword\t 4349 \definedummyword\t
4321 % 4350 %
4322 % Commands that take arguments. 4351 % Commands that take arguments.
@@ -4325,10 +4354,12 @@ end
4325 \definedummyword\code 4354 \definedummyword\code
4326 \definedummyword\command 4355 \definedummyword\command
4327 \definedummyword\dfn 4356 \definedummyword\dfn
4357 \definedummyword\dmn
4328 \definedummyword\email 4358 \definedummyword\email
4329 \definedummyword\emph 4359 \definedummyword\emph
4330 \definedummyword\env 4360 \definedummyword\env
4331 \definedummyword\file 4361 \definedummyword\file
4362 \definedummyword\indicateurl
4332 \definedummyword\kbd 4363 \definedummyword\kbd
4333 \definedummyword\key 4364 \definedummyword\key
4334 \definedummyword\math 4365 \definedummyword\math
@@ -4356,7 +4387,7 @@ end
4356 \def\definedummyaccent##1{\let##1\asis}% 4387 \def\definedummyaccent##1{\let##1\asis}%
4357 % We can just ignore other control letters. 4388 % We can just ignore other control letters.
4358 \def\definedummyletter##1{\let##1\empty}% 4389 \def\definedummyletter##1{\let##1\empty}%
4359 % Hopefully, all control words can become @asis. 4390 % All control words become @asis by default; overrides below.
4360 \let\definedummyword\definedummyaccent 4391 \let\definedummyword\definedummyaccent
4361 % 4392 %
4362 \commondummiesnofonts 4393 \commondummiesnofonts
@@ -4368,8 +4399,14 @@ end
4368 % 4399 %
4369 \def\ { }% 4400 \def\ { }%
4370 \def\@{@}% 4401 \def\@{@}%
4371 % how to handle braces?
4372 \def\_{\normalunderscore}% 4402 \def\_{\normalunderscore}%
4403 \def\-{}% @- shouldn't affect sorting
4404 %
4405 % Unfortunately, texindex is not prepared to handle braces in the
4406 % content at all. So for index sorting, we map @{ and @} to strings
4407 % starting with |, since that ASCII character is between ASCII { and }.
4408 \def\{{|a}%
4409 \def\}{|b}%
4373 % 4410 %
4374 % Non-English letters. 4411 % Non-English letters.
4375 \def\AA{AA}% 4412 \def\AA{AA}%
@@ -4397,6 +4434,7 @@ end
4397 % 4434 %
4398 % Assorted special characters. 4435 % Assorted special characters.
4399 % (The following {} will end up in the sort string, but that's ok.) 4436 % (The following {} will end up in the sort string, but that's ok.)
4437 \def\arrow{->}%
4400 \def\bullet{bullet}% 4438 \def\bullet{bullet}%
4401 \def\comma{,}% 4439 \def\comma{,}%
4402 \def\copyright{copyright}% 4440 \def\copyright{copyright}%
@@ -4406,10 +4444,12 @@ end
4406 \def\error{error}% 4444 \def\error{error}%
4407 \def\euro{euro}% 4445 \def\euro{euro}%
4408 \def\expansion{==>}% 4446 \def\expansion{==>}%
4447 \def\geq{>=}%
4409 \def\guillemetleft{<<}% 4448 \def\guillemetleft{<<}%
4410 \def\guillemetright{>>}% 4449 \def\guillemetright{>>}%
4411 \def\guilsinglleft{<}% 4450 \def\guilsinglleft{<}%
4412 \def\guilsinglright{>}% 4451 \def\guilsinglright{>}%
4452 \def\leq{<=}%
4413 \def\minus{-}% 4453 \def\minus{-}%
4414 \def\point{.}% 4454 \def\point{.}%
4415 \def\pounds{pounds}% 4455 \def\pounds{pounds}%
@@ -4424,6 +4464,9 @@ end
4424 \def\result{=>}% 4464 \def\result{=>}%
4425 \def\textdegree{o}% 4465 \def\textdegree{o}%
4426 % 4466 %
4467 \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax
4468 \else \indexlquoteignore \fi
4469 %
4427 % We need to get rid of all macros, leaving only the arguments (if present). 4470 % We need to get rid of all macros, leaving only the arguments (if present).
4428 % Of course this is not nearly correct, but it is the best we can do for now. 4471 % Of course this is not nearly correct, but it is the best we can do for now.
4429 % makeinfo does not expand macros in the argument to @deffn, which ends up 4472 % makeinfo does not expand macros in the argument to @deffn, which ends up
@@ -4437,6 +4480,11 @@ end
4437 \macrolist 4480 \macrolist
4438} 4481}
4439 4482
4483% Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us
4484% ignore left quotes in the sort term.
4485{\catcode`\`=\active
4486 \gdef\indexlquoteignore{\let`=\empty}}
4487
4440\let\indexbackslash=0 %overridden during \printindex. 4488\let\indexbackslash=0 %overridden during \printindex.
4441\let\SETmarginindex=\relax % put index entries in margin (undocumented)? 4489\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
4442 4490
@@ -4694,7 +4742,6 @@ end
4694% But this freezes the catcodes in the argument, and can cause problems to 4742% But this freezes the catcodes in the argument, and can cause problems to
4695% @code, which sets - active. This problem was fixed by a kludge--- 4743% @code, which sets - active. This problem was fixed by a kludge---
4696% ``-'' was active throughout whole index, but this isn't really right. 4744% ``-'' was active throughout whole index, but this isn't really right.
4697%
4698% The right solution is to prevent \entry from swallowing the whole text. 4745% The right solution is to prevent \entry from swallowing the whole text.
4699% --kasal, 21nov03 4746% --kasal, 21nov03
4700\def\entry{% 4747\def\entry{%
@@ -4731,10 +4778,17 @@ end
4731 % columns. 4778 % columns.
4732 \vskip 0pt plus1pt 4779 \vskip 0pt plus1pt
4733 % 4780 %
4781 % When reading the text of entry, convert explicit line breaks
4782 % from @* into spaces. The user might give these in long section
4783 % titles, for instance.
4784 \def\*{\unskip\space\ignorespaces}%
4785 \def\entrybreak{\hfil\break}%
4786 %
4734 % Swallow the left brace of the text (first parameter): 4787 % Swallow the left brace of the text (first parameter):
4735 \afterassignment\doentry 4788 \afterassignment\doentry
4736 \let\temp = 4789 \let\temp =
4737} 4790}
4791\def\entrybreak{\unskip\space\ignorespaces}%
4738\def\doentry{% 4792\def\doentry{%
4739 \bgroup % Instead of the swallowed brace. 4793 \bgroup % Instead of the swallowed brace.
4740 \noindent 4794 \noindent
@@ -4967,7 +5021,22 @@ end
4967\message{sectioning,} 5021\message{sectioning,}
4968% Chapters, sections, etc. 5022% Chapters, sections, etc.
4969 5023
4970% \unnumberedno is an oxymoron, of course. But we count the unnumbered 5024% Let's start with @part.
5025\outer\parseargdef\part{\partzzz{#1}}
5026\def\partzzz#1{%
5027 \chapoddpage
5028 \null
5029 \vskip.3\vsize % move it down on the page a bit
5030 \begingroup
5031 \noindent \titlefonts\rmisbold #1\par % the text
5032 \let\lastnode=\empty % no node to associate with
5033 \writetocentry{part}{#1}{}% but put it in the toc
5034 \headingsoff % no headline or footline on the part page
5035 \chapoddpage
5036 \endgroup
5037}
5038
5039% \unnumberedno is an oxymoron. But we count the unnumbered
4971% sections so that we can refer to them unambiguously in the pdf 5040% sections so that we can refer to them unambiguously in the pdf
4972% outlines by their "section number". We avoid collisions with chapter 5041% outlines by their "section number". We avoid collisions with chapter
4973% numbers by starting them at 10000. (If a document ever has 10000 5042% numbers by starting them at 10000. (If a document ever has 10000
@@ -5046,8 +5115,8 @@ end
5046\chardef\maxseclevel = 3 5115\chardef\maxseclevel = 3
5047% 5116%
5048% A numbered section within an unnumbered changes to unnumbered too. 5117% A numbered section within an unnumbered changes to unnumbered too.
5049% To achive this, remember the "biggest" unnum. sec. we are currently in: 5118% To achieve this, remember the "biggest" unnum. sec. we are currently in:
5050\chardef\unmlevel = \maxseclevel 5119\chardef\unnlevel = \maxseclevel
5051% 5120%
5052% Trace whether the current chapter is an appendix or not: 5121% Trace whether the current chapter is an appendix or not:
5053% \chapheadtype is "N" or "A", unnumbered chapters are ignored. 5122% \chapheadtype is "N" or "A", unnumbered chapters are ignored.
@@ -5072,8 +5141,8 @@ end
5072 % The heading type: 5141 % The heading type:
5073 \def\headtype{#1}% 5142 \def\headtype{#1}%
5074 \if \headtype U% 5143 \if \headtype U%
5075 \ifnum \absseclevel < \unmlevel 5144 \ifnum \absseclevel < \unnlevel
5076 \chardef\unmlevel = \absseclevel 5145 \chardef\unnlevel = \absseclevel
5077 \fi 5146 \fi
5078 \else 5147 \else
5079 % Check for appendix sections: 5148 % Check for appendix sections:
@@ -5085,10 +5154,10 @@ end
5085 \fi\fi 5154 \fi\fi
5086 \fi 5155 \fi
5087 % Check for numbered within unnumbered: 5156 % Check for numbered within unnumbered:
5088 \ifnum \absseclevel > \unmlevel 5157 \ifnum \absseclevel > \unnlevel
5089 \def\headtype{U}% 5158 \def\headtype{U}%
5090 \else 5159 \else
5091 \chardef\unmlevel = 3 5160 \chardef\unnlevel = 3
5092 \fi 5161 \fi
5093 \fi 5162 \fi
5094 % Now print the heading: 5163 % Now print the heading:
@@ -5340,9 +5409,8 @@ end
5340 \chappager 5409 \chappager
5341 \ifodd\pageno \else 5410 \ifodd\pageno \else
5342 \begingroup 5411 \begingroup
5343 \evenheadline={\hfil}\evenfootline={\hfil}% 5412 \headingsoff
5344 \oddheadline={\hfil}\oddfootline={\hfil}% 5413 \null
5345 \hbox to 0pt{}%
5346 \chappager 5414 \chappager
5347 \endgroup 5415 \endgroup
5348 \fi 5416 \fi
@@ -5785,6 +5853,7 @@ end
5785\def\summarycontents{% 5853\def\summarycontents{%
5786 \startcontents{\putwordShortTOC}% 5854 \startcontents{\putwordShortTOC}%
5787 % 5855 %
5856 \let\partentry = \shortpartentry
5788 \let\numchapentry = \shortchapentry 5857 \let\numchapentry = \shortchapentry
5789 \let\appentry = \shortchapentry 5858 \let\appentry = \shortchapentry
5790 \let\unnchapentry = \shortunnchapentry 5859 \let\unnchapentry = \shortunnchapentry
@@ -5840,6 +5909,19 @@ end
5840% The last argument is the page number. 5909% The last argument is the page number.
5841% The arguments in between are the chapter number, section number, ... 5910% The arguments in between are the chapter number, section number, ...
5842 5911
5912% Parts, in the main contents. Replace the part number, which doesn't
5913% exist, with an empty box. Let's hope all the numbers have the same width.
5914% Also ignore the page number, which is conventionally not printed.
5915\def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}}
5916\def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}}
5917%
5918% Parts, in the short toc.
5919\def\shortpartentry#1#2#3#4{%
5920 \penalty-300
5921 \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip
5922 \shortchapentry{{\bf #1}}{\numeralbox}{}{}%
5923}
5924
5843% Chapters, in the main contents. 5925% Chapters, in the main contents.
5844\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} 5926\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
5845% 5927%
@@ -5929,9 +6011,9 @@ end
5929\message{environments,} 6011\message{environments,}
5930% @foo ... @end foo. 6012% @foo ... @end foo.
5931 6013
5932% @tex ... @end tex escapes into raw Tex temporarily. 6014% @tex ... @end tex escapes into raw TeX temporarily.
5933% One exception: @ is still an escape character, so that @end tex works. 6015% One exception: @ is still an escape character, so that @end tex works.
5934% But \@ or @@ will get a plain tex @ character. 6016% But \@ or @@ will get a plain @ character.
5935 6017
5936\envdef\tex{% 6018\envdef\tex{%
5937 \setupmarkupstyle{tex}% 6019 \setupmarkupstyle{tex}%
@@ -5948,6 +6030,10 @@ end
5948 \catcode`\'=\other 6030 \catcode`\'=\other
5949 \escapechar=`\\ 6031 \escapechar=`\\
5950 % 6032 %
6033 % ' is active in math mode (mathcode"8000). So reset it, and all our
6034 % other math active characters (just in case), to plain's definitions.
6035 \mathactive
6036 %
5951 \let\b=\ptexb 6037 \let\b=\ptexb
5952 \let\bullet=\ptexbullet 6038 \let\bullet=\ptexbullet
5953 \let\c=\ptexc 6039 \let\c=\ptexc
@@ -6150,41 +6236,42 @@ end
6150} 6236}
6151 6237
6152% We often define two environments, @foo and @smallfoo. 6238% We often define two environments, @foo and @smallfoo.
6153% Let's do it by one command: 6239% Let's do it in one command. #1 is the env name, #2 the definition.
6154\def\makedispenv #1#2{ 6240\def\makedispenvdef#1#2{%
6155 \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2} 6241 \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}%
6156 \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2} 6242 \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}%
6157 \expandafter\let\csname E#1\endcsname \afterenvbreak 6243 \expandafter\let\csname E#1\endcsname \afterenvbreak
6158 \expandafter\let\csname Esmall#1\endcsname \afterenvbreak 6244 \expandafter\let\csname Esmall#1\endcsname \afterenvbreak
6159} 6245}
6160 6246
6161% Define two synonyms: 6247% Define two environment synonyms (#1 and #2) for an environment.
6162\def\maketwodispenvs #1#2#3{ 6248\def\maketwodispenvdef#1#2#3{%
6163 \makedispenv{#1}{#3} 6249 \makedispenvdef{#1}{#3}%
6164 \makedispenv{#2}{#3} 6250 \makedispenvdef{#2}{#3}%
6165} 6251}
6166 6252%
6167% @lisp: indented, narrowed, typewriter font; @example: same as @lisp. 6253% @lisp: indented, narrowed, typewriter font;
6254% @example: same as @lisp.
6168% 6255%
6169% @smallexample and @smalllisp: use smaller fonts. 6256% @smallexample and @smalllisp: use smaller fonts.
6170% Originally contributed by Pavel@xerox. 6257% Originally contributed by Pavel@xerox.
6171% 6258%
6172\maketwodispenvs {lisp}{example}{% 6259\maketwodispenvdef{lisp}{example}{%
6173 \nonfillstart 6260 \nonfillstart
6174 \tt\setupmarkupstyle{example}% 6261 \tt\setupmarkupstyle{example}%
6175 \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. 6262 \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
6176 \gobble % eat return 6263 \gobble % eat return
6177} 6264}
6178% @display/@smalldisplay: same as @lisp except keep current font. 6265% @display/@smalldisplay: same as @lisp except keep current font.
6179% 6266%
6180\makedispenv {display}{% 6267\makedispenvdef{display}{%
6181 \nonfillstart 6268 \nonfillstart
6182 \gobble 6269 \gobble
6183} 6270}
6184 6271
6185% @format/@smallformat: same as @display except don't narrow margins. 6272% @format/@smallformat: same as @display except don't narrow margins.
6186% 6273%
6187\makedispenv{format}{% 6274\makedispenvdef{format}{%
6188 \let\nonarrowing = t% 6275 \let\nonarrowing = t%
6189 \nonfillstart 6276 \nonfillstart
6190 \gobble 6277 \gobble
@@ -6203,7 +6290,7 @@ end
6203\envdef\flushright{% 6290\envdef\flushright{%
6204 \let\nonarrowing = t% 6291 \let\nonarrowing = t%
6205 \nonfillstart 6292 \nonfillstart
6206 \advance\leftskip by 0pt plus 1fill 6293 \advance\leftskip by 0pt plus 1fill\relax
6207 \gobble 6294 \gobble
6208} 6295}
6209\let\Eflushright = \afterenvbreak 6296\let\Eflushright = \afterenvbreak
@@ -6238,6 +6325,8 @@ end
6238% we're doing normal filling. So, when using \aboveenvbreak and 6325% we're doing normal filling. So, when using \aboveenvbreak and
6239% \afterenvbreak, temporarily make \parskip 0. 6326% \afterenvbreak, temporarily make \parskip 0.
6240% 6327%
6328\makedispenvdef{quotation}{\quotationstart}
6329%
6241\def\quotationstart{% 6330\def\quotationstart{%
6242 {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip 6331 {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
6243 \parindent=0pt 6332 \parindent=0pt
@@ -6253,17 +6342,6 @@ end
6253 \parsearg\quotationlabel 6342 \parsearg\quotationlabel
6254} 6343}
6255 6344
6256\envdef\quotation{%
6257 \setnormaldispenv
6258 \quotationstart
6259}
6260
6261\envdef\smallquotation{%
6262 \setsmalldispenv
6263 \quotationstart
6264}
6265\let\Esmallquotation = \Equotation
6266
6267% We have retained a nonzero parskip for the environment, since we're 6345% We have retained a nonzero parskip for the environment, since we're
6268% doing normal filling. 6346% doing normal filling.
6269% 6347%
@@ -6275,6 +6353,7 @@ end
6275 \fi 6353 \fi
6276 {\parskip=0pt \afterenvbreak}% 6354 {\parskip=0pt \afterenvbreak}%
6277} 6355}
6356\def\Esmallquotation{\Equotation}
6278 6357
6279% If we're given an argument, typeset it in bold with a colon after. 6358% If we're given an argument, typeset it in bold with a colon after.
6280\def\quotationlabel#1{% 6359\def\quotationlabel#1{%
@@ -6331,21 +6410,28 @@ end
6331 6410
6332% Setup for the @verbatim environment 6411% Setup for the @verbatim environment
6333% 6412%
6334% Real tab expansion 6413% Real tab expansion.
6335\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount 6414\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
6336% 6415%
6337\def\starttabbox{\setbox0=\hbox\bgroup} 6416% We typeset each line of the verbatim in an \hbox, so we can handle
6417% tabs. The \global is in case the verbatim line starts with an accent,
6418% or some other command that starts with a begin-group. Otherwise, the
6419% entire \verbbox would disappear at the corresponding end-group, before
6420% it is typeset. Meanwhile, we can't have nested verbatim commands
6421% (can we?), so the \global won't be overwriting itself.
6422\newbox\verbbox
6423\def\starttabbox{\global\setbox\verbbox=\hbox\bgroup}
6338% 6424%
6339\begingroup 6425\begingroup
6340 \catcode`\^^I=\active 6426 \catcode`\^^I=\active
6341 \gdef\tabexpand{% 6427 \gdef\tabexpand{%
6342 \catcode`\^^I=\active 6428 \catcode`\^^I=\active
6343 \def^^I{\leavevmode\egroup 6429 \def^^I{\leavevmode\egroup
6344 \dimen0=\wd0 % the width so far, or since the previous tab 6430 \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab
6345 \divide\dimen0 by\tabw 6431 \divide\dimen\verbbox by\tabw
6346 \multiply\dimen0 by\tabw % compute previous multiple of \tabw 6432 \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw
6347 \advance\dimen0 by\tabw % advance to next multiple of \tabw 6433 \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw
6348 \wd0=\dimen0 \box0 \starttabbox 6434 \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox
6349 }% 6435 }%
6350 } 6436 }
6351\endgroup 6437\endgroup
@@ -6354,15 +6440,16 @@ end
6354\def\setupverbatim{% 6440\def\setupverbatim{%
6355 \let\nonarrowing = t% 6441 \let\nonarrowing = t%
6356 \nonfillstart 6442 \nonfillstart
6357 % Easiest (and conventionally used) font for verbatim 6443 \tt % easiest (and conventionally used) font for verbatim
6358 \tt 6444 % The \leavevmode here is for blank lines. Otherwise, we would
6359 \def\par{\leavevmode\egroup\box0\endgraf}% 6445 % never \starttabox and the \egroup would end verbatim mode.
6446 \def\par{\leavevmode\egroup\box\verbbox\endgraf}%
6360 \tabexpand 6447 \tabexpand
6361 \setupmarkupstyle{verbatim}% 6448 \setupmarkupstyle{verbatim}%
6362 % Respect line breaks, 6449 % Respect line breaks,
6363 % print special symbols as themselves, and 6450 % print special symbols as themselves, and
6364 % make each space count 6451 % make each space count.
6365 % must do in this order: 6452 % Must do in this order:
6366 \obeylines \uncatcodespecials \sepspaces 6453 \obeylines \uncatcodespecials \sepspaces
6367 \everypar{\starttabbox}% 6454 \everypar{\starttabbox}%
6368} 6455}
@@ -6419,6 +6506,7 @@ end
6419 \makevalueexpandable 6506 \makevalueexpandable
6420 \setupverbatim 6507 \setupverbatim
6421 \indexnofonts % Allow `@@' and other weird things in file names. 6508 \indexnofonts % Allow `@@' and other weird things in file names.
6509 \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}%
6422 \input #1 6510 \input #1
6423 \afterenvbreak 6511 \afterenvbreak
6424 }% 6512 }%
@@ -6505,7 +6593,7 @@ end
6505 #1#2 \endheader 6593 #1#2 \endheader
6506 % common ending: 6594 % common ending:
6507 \interlinepenalty = 10000 6595 \interlinepenalty = 10000
6508 \advance\rightskip by 0pt plus 1fil 6596 \advance\rightskip by 0pt plus 1fil\relax
6509 \endgraf 6597 \endgraf
6510 \nobreak\vskip -\parskip 6598 \nobreak\vskip -\parskip
6511 \penalty\defunpenalty % signal to \startdefun and \dodefunx 6599 \penalty\defunpenalty % signal to \startdefun and \dodefunx
@@ -6805,25 +6893,28 @@ end
6805 } 6893 }
6806\fi 6894\fi
6807 6895
6808\def\scanmacro#1{% 6896\def\scanmacro#1{\begingroup
6809 \begingroup 6897 \newlinechar`\^^M
6810 \newlinechar`\^^M 6898 \let\xeatspaces\eatspaces
6811 \let\xeatspaces\eatspaces 6899 %
6812 % Undo catcode changes of \startcontents and \doprintindex 6900 % Undo catcode changes of \startcontents and \doprintindex
6813 % When called from @insertcopying or (short)caption, we need active 6901 % When called from @insertcopying or (short)caption, we need active
6814 % backslash to get it printed correctly. Previously, we had 6902 % backslash to get it printed correctly. Previously, we had
6815 % \catcode`\\=\other instead. We'll see whether a problem appears 6903 % \catcode`\\=\other instead. We'll see whether a problem appears
6816 % with macro expansion. --kasal, 19aug04 6904 % with macro expansion. --kasal, 19aug04
6817 \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ 6905 \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
6818 % ... and \example 6906 %
6819 \spaceisspace 6907 % ... and for \example:
6820 % 6908 \spaceisspace
6821 % Append \endinput to make sure that TeX does not see the ending newline. 6909 %
6822 % I've verified that it is necessary both for e-TeX and for ordinary TeX 6910 % The \empty here causes a following catcode 5 newline to be eaten
6823 % --kasal, 29nov03 6911 % as part of reading whitespace after a control sequence. It does
6824 \scantokens{#1\endinput}% 6912 % not eat a catcode 13 newline. There's no good way to handle the
6825 \endgroup 6913 % two cases. See the Macro Details node in the manual for the
6826} 6914 % workaround we currently have to recommend for macros and
6915 % line-oriented commands.
6916 \scantokens{#1\empty}%
6917\endgroup}
6827 6918
6828\def\scanexp#1{% 6919\def\scanexp#1{%
6829 \edef\temp{\noexpand\scanmacro{#1}}% 6920 \edef\temp{\noexpand\scanmacro{#1}}%
@@ -6877,17 +6968,18 @@ end
6877 6968
6878% Macro bodies are absorbed as an argument in a context where 6969% Macro bodies are absorbed as an argument in a context where
6879% all characters are catcode 10, 11 or 12, except \ which is active 6970% all characters are catcode 10, 11 or 12, except \ which is active
6880% (as in normal texinfo). It is necessary to change the definition of \. 6971% (as in normal texinfo). It is necessary to change the definition of \
6881 6972% to recognize macro arguments; this is the job of \mbodybackslash.
6973%
6882% Non-ASCII encodings make 8-bit characters active, so un-activate 6974% Non-ASCII encodings make 8-bit characters active, so un-activate
6883% them to avoid their expansion. Must do this non-globally, to 6975% them to avoid their expansion. Must do this non-globally, to
6884% confine the change to the current group. 6976% confine the change to the current group.
6885 6977%
6886% It's necessary to have hard CRs when the macro is executed. This is 6978% It's necessary to have hard CRs when the macro is executed. This is
6887% done by making ^^M (\endlinechar) catcode 12 when reading the macro 6979% done by making ^^M (\endlinechar) catcode 12 when reading the macro
6888% body, and then making it the \newlinechar in \scanmacro. 6980% body, and then making it the \newlinechar in \scanmacro.
6889 6981%
6890\def\scanctxt{% 6982\def\scanctxt{% used as subroutine
6891 \catcode`\"=\other 6983 \catcode`\"=\other
6892 \catcode`\+=\other 6984 \catcode`\+=\other
6893 \catcode`\<=\other 6985 \catcode`\<=\other
@@ -6900,13 +6992,13 @@ end
6900 \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi 6992 \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
6901} 6993}
6902 6994
6903\def\scanargctxt{% 6995\def\scanargctxt{% used for copying and captions, not macros.
6904 \scanctxt 6996 \scanctxt
6905 \catcode`\\=\other 6997 \catcode`\\=\other
6906 \catcode`\^^M=\other 6998 \catcode`\^^M=\other
6907} 6999}
6908 7000
6909\def\macrobodyctxt{% 7001\def\macrobodyctxt{% used for @macro definitions
6910 \scanctxt 7002 \scanctxt
6911 \catcode`\{=\other 7003 \catcode`\{=\other
6912 \catcode`\}=\other 7004 \catcode`\}=\other
@@ -6914,30 +7006,48 @@ end
6914 \usembodybackslash 7006 \usembodybackslash
6915} 7007}
6916 7008
6917\def\macroargctxt{% 7009\def\macroargctxt{% used when scanning invocations
6918 \scanctxt 7010 \scanctxt
6919 \catcode`\\=\other 7011 \catcode`\\=0
6920} 7012}
7013% why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes"
7014% for the single characters \ { }. Thus, we end up with the "commands"
7015% that would be written @\ @{ @} in a Texinfo document.
7016%
7017% We already have @{ and @}. For @\, we define it here, and only for
7018% this purpose, to produce a typewriter backslash (so, the @\ that we
7019% define for @math can't be used with @macro calls):
7020%
7021\def\\{\normalbackslash}%
7022%
7023% We would like to do this for \, too, since that is what makeinfo does.
7024% But it is not possible, because Texinfo already has a command @, for a
7025% cedilla accent. Documents must use @comma{} instead.
7026%
7027% \anythingelse will almost certainly be an error of some kind.
7028
6921 7029
6922% \mbodybackslash is the definition of \ in @macro bodies. 7030% \mbodybackslash is the definition of \ in @macro bodies.
6923% It maps \foo\ => \csname macarg.foo\endcsname => #N 7031% It maps \foo\ => \csname macarg.foo\endcsname => #N
6924% where N is the macro parameter number. 7032% where N is the macro parameter number.
6925% We define \csname macarg.\endcsname to be \realbackslash, so 7033% We define \csname macarg.\endcsname to be \realbackslash, so
6926% \\ in macro replacement text gets you a backslash. 7034% \\ in macro replacement text gets you a backslash.
6927 7035%
6928{\catcode`@=0 @catcode`@\=@active 7036{\catcode`@=0 @catcode`@\=@active
6929 @gdef@usembodybackslash{@let\=@mbodybackslash} 7037 @gdef@usembodybackslash{@let\=@mbodybackslash}
6930 @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} 7038 @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
6931} 7039}
6932\expandafter\def\csname macarg.\endcsname{\realbackslash} 7040\expandafter\def\csname macarg.\endcsname{\realbackslash}
6933 7041
7042\def\margbackslash#1{\char`\#1 }
7043
6934\def\macro{\recursivefalse\parsearg\macroxxx} 7044\def\macro{\recursivefalse\parsearg\macroxxx}
6935\def\rmacro{\recursivetrue\parsearg\macroxxx} 7045\def\rmacro{\recursivetrue\parsearg\macroxxx}
6936 7046
6937\def\macroxxx#1{% 7047\def\macroxxx#1{%
6938 \getargs{#1}% now \macname is the macname and \argl the arglist 7048 \getargs{#1}% now \macname is the macname and \argl the arglist
6939 \ifx\argl\empty % no arguments 7049 \ifx\argl\empty % no arguments
6940 \paramno=0% 7050 \paramno=0
6941 \else 7051 \else
6942 \expandafter\parsemargdef \argl;% 7052 \expandafter\parsemargdef \argl;%
6943 \fi 7053 \fi
@@ -6986,28 +7096,32 @@ end
6986% an opening brace, and that opening brace is not consumed. 7096% an opening brace, and that opening brace is not consumed.
6987\def\getargs#1{\getargsxxx#1{}} 7097\def\getargs#1{\getargsxxx#1{}}
6988\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} 7098\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
6989\def\getmacname #1 #2\relax{\macname={#1}} 7099\def\getmacname#1 #2\relax{\macname={#1}}
6990\def\getmacargs#1{\def\argl{#1}} 7100\def\getmacargs#1{\def\argl{#1}}
6991 7101
6992% Parse the optional {params} list. Set up \paramno and \paramlist 7102% Parse the optional {params} list. Set up \paramno and \paramlist
6993% so \defmacro knows what to do. Define \macarg.blah for each blah 7103% so \defmacro knows what to do. Define \macarg.blah for each blah
6994% in the params list, to be ##N where N is the position in that list. 7104% in the params list to be ##N where N is the position in that list.
6995% That gets used by \mbodybackslash (above). 7105% That gets used by \mbodybackslash (above).
6996 7106%
6997% We need to get `macro parameter char #' into several definitions. 7107% We need to get `macro parameter char #' into several definitions.
6998% The technique used is stolen from LaTeX: let \hash be something 7108% The technique used is stolen from LaTeX: let \hash be something
6999% unexpandable, insert that wherever you need a #, and then redefine 7109% unexpandable, insert that wherever you need a #, and then redefine
7000% it to # just before using the token list produced. 7110% it to # just before using the token list produced.
7001% 7111%
7002% The same technique is used to protect \eatspaces till just before 7112% The same technique is used to protect \eatspaces till just before
7003% the macro is used. 7113% the macro is used.
7004 7114
7005\def\parsemargdef#1;{\paramno=0\def\paramlist{}% 7115\def\parsemargdef#1;{%
7006 \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,} 7116 \paramno=0\def\paramlist{}%
7117 \let\hash\relax
7118 \let\xeatspaces\relax
7119 \parsemargdefxxx#1,;,%
7120}
7007\def\parsemargdefxxx#1,{% 7121\def\parsemargdefxxx#1,{%
7008 \if#1;\let\next=\relax 7122 \if#1;\let\next=\relax
7009 \else \let\next=\parsemargdefxxx 7123 \else \let\next=\parsemargdefxxx
7010 \advance\paramno by 1% 7124 \advance\paramno by 1
7011 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname 7125 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
7012 {\xeatspaces{\hash\the\paramno}}% 7126 {\xeatspaces{\hash\the\paramno}}%
7013 \edef\paramlist{\paramlist\hash\the\paramno,}% 7127 \edef\paramlist{\paramlist\hash\the\paramno,}%
@@ -7015,7 +7129,7 @@ end
7015 7129
7016% These two commands read recursive and nonrecursive macro bodies. 7130% These two commands read recursive and nonrecursive macro bodies.
7017% (They're different since rec and nonrec macros end differently.) 7131% (They're different since rec and nonrec macros end differently.)
7018 7132%
7019\long\def\parsemacbody#1@end macro% 7133\long\def\parsemacbody#1@end macro%
7020{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% 7134{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
7021\long\def\parsermacbody#1@end rmacro% 7135\long\def\parsermacbody#1@end rmacro%
@@ -7026,6 +7140,7 @@ end
7026% Much magic with \expandafter here. 7140% Much magic with \expandafter here.
7027% \xdef is used so that macro definitions will survive the file 7141% \xdef is used so that macro definitions will survive the file
7028% they're defined in; @include reads the file inside a group. 7142% they're defined in; @include reads the file inside a group.
7143%
7029\def\defmacro{% 7144\def\defmacro{%
7030 \let\hash=##% convert placeholders to macro parameter chars 7145 \let\hash=##% convert placeholders to macro parameter chars
7031 \ifrecursive 7146 \ifrecursive
@@ -7089,7 +7204,8 @@ end
7089% \braceorline decides whether the next nonwhitespace character is a 7204% \braceorline decides whether the next nonwhitespace character is a
7090% {. If so it reads up to the closing }, if not, it reads the whole 7205% {. If so it reads up to the closing }, if not, it reads the whole
7091% line. Whatever was read is then fed to the next control sequence 7206% line. Whatever was read is then fed to the next control sequence
7092% as an argument (by \parsebrace or \parsearg) 7207% as an argument (by \parsebrace or \parsearg).
7208%
7093\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} 7209\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
7094\def\braceorlinexxx{% 7210\def\braceorlinexxx{%
7095 \ifx\nchar\bgroup\else 7211 \ifx\nchar\bgroup\else
@@ -7099,7 +7215,8 @@ end
7099 7215
7100% @alias. 7216% @alias.
7101% We need some trickery to remove the optional spaces around the equal 7217% We need some trickery to remove the optional spaces around the equal
7102% sign. Just make them active and then expand them all to nothing. 7218% sign. Make them active and then expand them all to nothing.
7219%
7103\def\alias{\parseargusing\obeyspaces\aliasxxx} 7220\def\alias{\parseargusing\obeyspaces\aliasxxx}
7104\def\aliasxxx #1{\aliasyyy#1\relax} 7221\def\aliasxxx #1{\aliasyyy#1\relax}
7105\def\aliasyyy #1=#2\relax{% 7222\def\aliasyyy #1=#2\relax{%
@@ -7357,7 +7474,8 @@ end
7357 \angleleft un\-de\-fined\angleright 7474 \angleleft un\-de\-fined\angleright
7358 \iflinks 7475 \iflinks
7359 \ifhavexrefs 7476 \ifhavexrefs
7360 \message{\linenumber Undefined cross reference `#1'.}% 7477 {\toks0 = {#1}% avoid expansion of possibly-complex value
7478 \message{\linenumber Undefined cross reference `\the\toks0'.}}%
7361 \else 7479 \else
7362 \ifwarnedxrefs\else 7480 \ifwarnedxrefs\else
7363 \global\warnedxrefstrue 7481 \global\warnedxrefstrue
@@ -7687,7 +7805,7 @@ end
7687% #2 is (optional) width, #3 is (optional) height. 7805% #2 is (optional) width, #3 is (optional) height.
7688% #4 is (ignored optional) html alt text. 7806% #4 is (ignored optional) html alt text.
7689% #5 is (ignored optional) extension. 7807% #5 is (ignored optional) extension.
7690% #6 is just the usual extra ignored arg for parsing this stuff. 7808% #6 is just the usual extra ignored arg for parsing stuff.
7691\newif\ifimagevmode 7809\newif\ifimagevmode
7692\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup 7810\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
7693 \catcode`\^^M = 5 % in case we're inside an example 7811 \catcode`\^^M = 5 % in case we're inside an example
@@ -8339,8 +8457,8 @@ directory should work if nowhere else does.}
8339 \gdef^^ea{\ogonek{e}} 8457 \gdef^^ea{\ogonek{e}}
8340 \gdef^^eb{\"e} 8458 \gdef^^eb{\"e}
8341 \gdef^^ec{\v e} 8459 \gdef^^ec{\v e}
8342 \gdef^^ed{\'\i} 8460 \gdef^^ed{\'{\dotless{i}}}
8343 \gdef^^ee{\^\i} 8461 \gdef^^ee{\^{\dotless{i}}}
8344 \gdef^^ef{\v d} 8462 \gdef^^ef{\v d}
8345 % 8463 %
8346 \gdef^^f0{\dh} 8464 \gdef^^f0{\dh}
@@ -8431,7 +8549,7 @@ directory should work if nowhere else does.}
8431 8549
8432 \gdef\DeclareUnicodeCharacter#1#2{% 8550 \gdef\DeclareUnicodeCharacter#1#2{%
8433 \countUTFz = "#1\relax 8551 \countUTFz = "#1\relax
8434 \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% 8552 %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
8435 \begingroup 8553 \begingroup
8436 \parseXMLCharref 8554 \parseXMLCharref
8437 \def\UTFviiiTwoOctets##1##2{% 8555 \def\UTFviiiTwoOctets##1##2{%
@@ -8899,8 +9017,8 @@ directory should work if nowhere else does.}
8899% Prevent underfull vbox error messages. 9017% Prevent underfull vbox error messages.
8900\vbadness = 10000 9018\vbadness = 10000
8901 9019
8902% Don't be so finicky about underfull hboxes, either. 9020% Don't be very finicky about underfull hboxes, either.
8903\hbadness = 2000 9021\hbadness = 6666
8904 9022
8905% Following George Bush, get rid of widows and orphans. 9023% Following George Bush, get rid of widows and orphans.
8906\widowpenalty=10000 9024\widowpenalty=10000
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 6a77c138404..7f911b81f09 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -37,8 +37,7 @@
37@end macro 37@end macro
38 38
39@copying 39@copying
40Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 40Copyright @copyright{} 1999-2011 Free Software Foundation, Inc.
412006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
42 41
43@quotation 42@quotation
44Permission is granted to copy, distribute and/or modify this document 43Permission is granted to copy, distribute and/or modify this document
@@ -696,6 +695,14 @@ This method is also similar to @option{ssh}. It only uses the
696@command{krlogin -x} command to log in to the remote host. 695@command{krlogin -x} command to log in to the remote host.
697 696
698 697
698@item @option{ksu}
699@cindex method ksu
700@cindex ksu method
701@cindex Kerberos (with ksu method)
702
703This is another method from the Kerberos suite. It behaves like @option{su}.
704
705
699@item @option{plink} 706@item @option{plink}
700@cindex method plink 707@cindex method plink
701@cindex plink method 708@cindex plink method
@@ -2483,6 +2490,15 @@ remote file names. It does not work for the @option{ftp} and
2483@option{smb} methods. Association of a pty, as specified in 2490@option{smb} methods. Association of a pty, as specified in
2484@code{start-file-process}, is not supported. 2491@code{start-file-process}, is not supported.
2485 2492
2493@code{process-file} and @code{start-file-process} work on the remote
2494host, when the variable @code{default-directory} is remote:
2495
2496@lisp
2497(let ((default-directory "/ssh:remote.host:"))
2498 (start-file-process "grep" (get-buffer-create "*grep*")
2499 "/bin/sh" "-c" "grep -e tramp *"))
2500@end lisp
2501
2486@ifset emacsgvfs 2502@ifset emacsgvfs
2487If the remote host is mounted via GVFS (see @ref{GVFS based methods}), 2503If the remote host is mounted via GVFS (see @ref{GVFS based methods}),
2488the remote filesystem is mounted locally. Therefore, there are no 2504the remote filesystem is mounted locally. Therefore, there are no
@@ -3665,7 +3681,3 @@ for @value{emacsothername}.
3665@c * Use `filename' resp. `file name' consistently. 3681@c * Use `filename' resp. `file name' consistently.
3666@c * Use `host' resp. `machine' consistently. 3682@c * Use `host' resp. `machine' consistently.
3667@c * Consistent small or capitalized words especially in menues. 3683@c * Consistent small or capitalized words especially in menues.
3668
3669@ignore
3670 arch-tag: f96dd66e-6dd3-4c92-8d77-9c56205ba808
3671@end ignore
diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi
index 38758d39bc9..e72e68d9a2b 100644
--- a/doc/misc/trampver.texi
+++ b/doc/misc/trampver.texi
@@ -2,8 +2,7 @@
2@c texi/trampver.texi. Generated from trampver.texi.in by configure. 2@c texi/trampver.texi. Generated from trampver.texi.in by configure.
3 3
4@c This is part of the Emacs manual. 4@c This is part of the Emacs manual.
5@c Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 5@c Copyright (C) 2003-2011 Free Software Foundation, Inc.
6@c 2010 Free Software Foundation, Inc.
7@c See file doclicense.texi for copying conditions. 6@c See file doclicense.texi for copying conditions.
8 7
9@c In the Tramp CVS, the version number is auto-frobbed from 8@c In the Tramp CVS, the version number is auto-frobbed from
diff --git a/doc/misc/url.texi b/doc/misc/url.texi
index acb4145f120..5bfa96ec673 100644
--- a/doc/misc/url.texi
+++ b/doc/misc/url.texi
@@ -21,8 +21,7 @@
21@copying 21@copying
22This file documents the Emacs Lisp URL loading package. 22This file documents the Emacs Lisp URL loading package.
23 23
24Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2002, 24Copyright @copyright{} 1993-1999, 2002, 2004-2011 Free Software Foundation, Inc.
252004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
26 25
27@quotation 26@quotation
28Permission is granted to copy, distribute and/or modify this document 27Permission is granted to copy, distribute and/or modify this document
@@ -1194,7 +1193,3 @@ Connect directly.
1194@printindex cp 1193@printindex cp
1195 1194
1196@bye 1195@bye
1197
1198@ignore
1199 arch-tag: c96be356-7e2d-4196-bcda-b13246c5c3f0
1200@end ignore
diff --git a/doc/misc/vip.texi b/doc/misc/vip.texi
index 2a4d4191082..fe1098c49ff 100644
--- a/doc/misc/vip.texi
+++ b/doc/misc/vip.texi
@@ -3,8 +3,7 @@
3@settitle VIP 3@settitle VIP
4 4
5@copying 5@copying
6Copyright @copyright{} 1987, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 6Copyright @copyright{} 1987, 2001-2011 Free Software Foundation, Inc.
72008, 2009, 2010 Free Software Foundation, Inc.
8 7
9@quotation 8@quotation
10Permission is granted to copy, distribute and/or modify this document 9Permission is granted to copy, distribute and/or modify this document
@@ -1946,7 +1945,3 @@ file.
1946@printindex cp 1945@printindex cp
1947 1946
1948@bye 1947@bye
1949
1950@ignore
1951 arch-tag: 7c5d17b9-1d21-4261-a88a-b9fdbbf1020b
1952@end ignore
diff --git a/doc/misc/viper.texi b/doc/misc/viper.texi
index 2100e652950..9e55e08242f 100644
--- a/doc/misc/viper.texi
+++ b/doc/misc/viper.texi
@@ -7,8 +7,7 @@
7@setfilename ../../info/viper 7@setfilename ../../info/viper
8 8
9@copying 9@copying
10Copyright @copyright{} 1995, 1996, 1997, 2001, 2002, 2003, 2004, 10Copyright @copyright{} 1995-1997, 2001-2011 Free Software Foundation, Inc.
112005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
12 11
13@quotation 12@quotation
14Permission is granted to copy, distribute and/or modify this document 13Permission is granted to copy, distribute and/or modify this document
@@ -4558,7 +4557,3 @@ zapman@@cc.gatech.edu (Jason Zapman II),
4558@printindex cp 4557@printindex cp
4559 4558
4560@bye 4559@bye
4561
4562@ignore
4563 arch-tag: f53e866a-15cf-4b1e-aead-77da9da1e864
4564@end ignore
diff --git a/doc/misc/widget.texi b/doc/misc/widget.texi
index 2d95daf36d4..667dab55221 100644
--- a/doc/misc/widget.texi
+++ b/doc/misc/widget.texi
@@ -8,8 +8,7 @@
8@c %**end of header 8@c %**end of header
9 9
10@copying 10@copying
11Copyright @copyright{} 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 11Copyright @copyright{} 2000-2011 Free Software Foundation, Inc.
122008, 2009, 2010 Free Software Foundation, Inc.
13 12
14@quotation 13@quotation
15Permission is granted to copy, distribute and/or modify this document 14Permission is granted to copy, distribute and/or modify this document
@@ -1829,7 +1828,3 @@ variables, and widgets described in this manual.
1829@printindex cp 1828@printindex cp
1830 1829
1831@bye 1830@bye
1832
1833@ignore
1834 arch-tag: 2b427731-4c61-4e72-85de-5ccec9c623f0
1835@end ignore
diff --git a/doc/misc/woman.texi b/doc/misc/woman.texi
index 788c10b87dd..9f77a077703 100644
--- a/doc/misc/woman.texi
+++ b/doc/misc/woman.texi
@@ -18,8 +18,7 @@
18This file documents WoMan: A program to browse Unix manual pages `W.O. 18This file documents WoMan: A program to browse Unix manual pages `W.O.
19(without) man'. 19(without) man'.
20 20
21Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 21Copyright @copyright{} 2001-2011 Free Software Foundation, Inc.
222009, 2010 Free Software Foundation, Inc.
23 22
24@quotation 23@quotation
25Permission is granted to copy, distribute and/or modify this document 24Permission is granted to copy, distribute and/or modify this document
@@ -1430,7 +1429,3 @@ Eli Zaretskii, @email{eliz@@is.elta.co.il}
1430@printindex cp 1429@printindex cp
1431 1430
1432@bye 1431@bye
1433
1434@ignore
1435 arch-tag: a1a6b715-396f-4378-9b94-0b2ca0aa5028
1436@end ignore