aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorXue Fuqiao2013-09-04 08:39:34 +0800
committerXue Fuqiao2013-09-04 08:39:34 +0800
commitadf2fc4a01efe77d73cd52bc9173914ed56ff531 (patch)
treea5a280a5554a7bffeaf94fccae29fa3ac1a5d066 /doc
parent63191d9f2043d2e67657e85a7b3842805dd1dad6 (diff)
parent38726039b77db432989fed106c88e9f1aa463281 (diff)
downloademacs-adf2fc4a01efe77d73cd52bc9173914ed56ff531.tar.gz
emacs-adf2fc4a01efe77d73cd52bc9173914ed56ff531.zip
Merge from mainline.
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/ChangeLog43
-rw-r--r--doc/emacs/Makefile.in96
-rw-r--r--doc/emacs/emacs.texi2
-rw-r--r--doc/emacs/files.texi1
-rw-r--r--doc/emacs/glossary.texi1
-rw-r--r--doc/emacs/killing.texi2
-rw-r--r--doc/emacs/macos.texi6
-rw-r--r--doc/emacs/text.texi11
-rw-r--r--doc/emacs/trouble.texi46
-rw-r--r--doc/emacs/xresources.texi20
-rw-r--r--doc/lispintro/ChangeLog47
-rw-r--r--doc/lispintro/Makefile.in93
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi31
-rw-r--r--doc/lispref/ChangeLog110
-rw-r--r--doc/lispref/Makefile.in92
-rw-r--r--doc/lispref/control.texi56
-rw-r--r--doc/lispref/display.texi13
-rw-r--r--doc/lispref/edebug.texi4
-rw-r--r--doc/lispref/errors.texi11
-rw-r--r--doc/lispref/files.texi8
-rw-r--r--doc/lispref/frames.texi6
-rw-r--r--doc/lispref/lists.texi15
-rw-r--r--doc/lispref/markers.texi26
-rw-r--r--doc/lispref/modes.texi6
-rw-r--r--doc/lispref/nonascii.texi3
-rw-r--r--doc/lispref/positions.texi21
-rw-r--r--doc/lispref/text.texi45
-rw-r--r--doc/lispref/variables.texi3
-rw-r--r--doc/lispref/windows.texi2
-rw-r--r--doc/man/ChangeLog4
-rw-r--r--doc/man/emacs.14
-rw-r--r--doc/misc/ChangeLog167
-rw-r--r--doc/misc/Makefile.in769
-rw-r--r--doc/misc/cc-mode.texi22
-rw-r--r--doc/misc/cl.texi5
-rw-r--r--doc/misc/edt.texi4
-rw-r--r--doc/misc/efaq-w32.texi2365
-rw-r--r--doc/misc/efaq.texi (renamed from doc/misc/faq.texi)5
-rw-r--r--doc/misc/eieio.texi2
-rw-r--r--doc/misc/emacs-mime.texi20
-rw-r--r--doc/misc/epa.texi8
-rw-r--r--doc/misc/gnus.texi18
-rw-r--r--doc/misc/htmlfontify.texi30
-rw-r--r--doc/misc/ido.texi321
-rw-r--r--doc/misc/mairix-el.texi29
-rw-r--r--doc/misc/newsticker.texi6
-rw-r--r--doc/misc/reftex.texi117
-rw-r--r--doc/misc/sc.texi194
-rw-r--r--doc/misc/texinfo.tex18
-rw-r--r--doc/misc/todo-mode.texi1760
-rw-r--r--doc/misc/woman.texi5
51 files changed, 5872 insertions, 821 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 73de1ce2920..7ff13a70718 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -2,6 +2,49 @@
2 2
3 * maintaining.texi (VC Ignore): Mention `vc-ignore' with prefix argument. 3 * maintaining.texi (VC Ignore): Mention `vc-ignore' with prefix argument.
4 4
52013-08-31 Ulrich Müller <ulm@gentoo.org>
6
7 * xresources.texi (Motif Resources):
8 Rename from LessTif Resources. Update xrefs. (Bug#15145)
9 * emacs.texi: Update menu.
10
112013-08-28 Paul Eggert <eggert@cs.ucla.edu>
12
13 * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
14 for portability to hosts where /bin/sh has problems.
15
162013-08-17 Xue Fuqiao <xfq.free@gmail.com>
17
18 * text.texi (Enriched Justification): Minor fixes.
19
202013-08-14 Xue Fuqiao <xfq.free@gmail.com>
21
22 * files.texi (Filesets): Add an index.
23
242013-08-12 Glenn Morris <rgm@gnu.org>
25
26 * macos.texi (GNUstep Support):
27 * trouble.texi (Checklist, Contributing, Service):
28 Avoid mailto: in html output.
29
30 * Makefile.in (prefix, datarootdir, datadir, PACKAGE_TARNAME)
31 (docdir, dvidir, htmldir, pdfdir, psdir, GZIP_PROG, INSTALL)
32 (INSTALL_DATA): New, set by configure.
33 (HTML_OPTS, DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS):
34 New variables.
35 (.SUFFIXES): Add .ps and .dvi.
36 (.dvi.ps): New suffix rule.
37 (dvi, html, pdf, ps): Use *_TARGETS variables.
38 (emacs.ps, emacs-xtra.ps): Remove explicit rules.
39 (emacs.html): Use HTML_OPTS.
40 (clean): Use DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS.
41 (.PHONY): install-dvi, install-html, install-pdf, install-ps
42 ,install-doc, uninstall-dvi, uninstall-html, uninstall-pdf,
43 uninstall-ps, and uninstall-doc.
44 (install-dvi, install-html, install-pdf, install-ps, install-doc)
45 (uninstall-dvi, uninstall-html, uninstall-ps, uninstall-pdf)
46 (uninstall-doc): New rules.
47
52013-07-31 Eli Zaretskii <eliz@gnu.org> 482013-07-31 Eli Zaretskii <eliz@gnu.org>
6 49
7 * emacs.texi (Top): Remove menu item for the removed "Disabling 50 * emacs.texi (Top): Remove menu item for the removed "Disabling
diff --git a/doc/emacs/Makefile.in b/doc/emacs/Makefile.in
index 32bb39b127a..bf9f8152ad4 100644
--- a/doc/emacs/Makefile.in
+++ b/doc/emacs/Makefile.in
@@ -17,7 +17,7 @@
17# You should have received a copy of the GNU General Public License 17# You should have received a copy of the GNU General Public License
18# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 18# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
19 19
20SHELL = /bin/sh 20SHELL = @SHELL@
21 21
22# NB If you add any more configure variables, 22# NB If you add any more configure variables,
23# update the sed rules in the dist target below. 23# update the sed rules in the dist target below.
@@ -38,8 +38,22 @@ buildinfodir = $(srcdir)/../../info
38# Directory with the (customized) texinfo.tex file. 38# Directory with the (customized) texinfo.tex file.
39texinfodir = $(srcdir)/../misc 39texinfodir = $(srcdir)/../misc
40 40
41prefix = @prefix@
42datarootdir = @datarootdir@
43datadir = @datadir@
44PACKAGE_TARNAME = @PACKAGE_TARNAME@
45docdir = @docdir@
46dvidir = @dvidir@
47htmldir = @htmldir@
48pdfdir = @pdfdir@
49psdir = @psdir@
50
41MKDIR_P = @MKDIR_P@ 51MKDIR_P = @MKDIR_P@
42 52
53GZIP_PROG = @GZIP_PROG@
54
55HTML_OPTS = --no-split --html
56
43INFO_EXT=@INFO_EXT@ 57INFO_EXT=@INFO_EXT@
44# Options used only when making info output. 58# Options used only when making info output.
45# --no-split is only needed because of MS-DOS. 59# --no-split is only needed because of MS-DOS.
@@ -47,6 +61,9 @@ INFO_EXT=@INFO_EXT@
47# http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg01182.html 61# http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg01182.html
48INFO_OPTS=@INFO_OPTS@ 62INFO_OPTS=@INFO_OPTS@
49 63
64INSTALL = @INSTALL@
65INSTALL_DATA = @INSTALL_DATA@
66
50# The makeinfo program is part of the Texinfo distribution. 67# The makeinfo program is part of the Texinfo distribution.
51# Use --force so that it generates output even if there are errors. 68# Use --force so that it generates output even if there are errors.
52MAKEINFO = @MAKEINFO@ 69MAKEINFO = @MAKEINFO@
@@ -60,6 +77,10 @@ DVIPS = dvips
60ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \ 77ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \
61 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" 78 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
62 79
80DVI_TARGETS = emacs.dvi emacs-xtra.dvi
81HTML_TARGETS = emacs.html
82PDF_TARGETS = emacs.pdf emacs-xtra.pdf
83PS_TARGETS = emacs.ps emacs-xtra.ps
63 84
64EMACS_XTRA= \ 85EMACS_XTRA= \
65 ${srcdir}/emacs-xtra.texi \ 86 ${srcdir}/emacs-xtra.texi \
@@ -128,11 +149,16 @@ mkinfodir = @${MKDIR_P} ${buildinfodir}
128 149
129.PHONY: info dvi html pdf ps 150.PHONY: info dvi html pdf ps
130 151
152.SUFFIXES: .ps .dvi
153
154.dvi.ps:
155 $(DVIPS) -o $@ $<
156
131info: $(buildinfodir)/emacs$(INFO_EXT) 157info: $(buildinfodir)/emacs$(INFO_EXT)
132dvi: emacs.dvi 158dvi: $(DVI_TARGETS)
133html: emacs.html 159html: $(HTML_TARGETS)
134pdf: emacs.pdf 160pdf: $(PDF_TARGETS)
135ps: emacs.ps 161ps: $(PS_TARGETS)
136 162
137# Note that all the Info targets build the Info files in srcdir. 163# Note that all the Info targets build the Info files in srcdir.
138# There is no provision for Info files to exist in the build directory. 164# There is no provision for Info files to exist in the build directory.
@@ -145,21 +171,15 @@ $(buildinfodir)/emacs$(INFO_EXT): ${EMACSSOURCES}
145emacs.dvi: ${EMACSSOURCES} 171emacs.dvi: ${EMACSSOURCES}
146 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi 172 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi
147 173
148emacs.ps: emacs.dvi
149 $(DVIPS) -o $@ emacs.dvi
150
151emacs.pdf: ${EMACSSOURCES} 174emacs.pdf: ${EMACSSOURCES}
152 $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs.texi 175 $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs.texi
153 176
154emacs.html: ${EMACSSOURCES} 177emacs.html: ${EMACSSOURCES}
155 $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ ${srcdir}/emacs.texi 178 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/emacs.texi
156 179
157emacs-xtra.dvi: $(EMACS_XTRA) 180emacs-xtra.dvi: $(EMACS_XTRA)
158 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-xtra.texi 181 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-xtra.texi
159 182
160emacs-xtra.ps: emacs-xtra.dvi
161 $(DVIPS) -o $@ emacs-xtra.dvi
162
163emacs-xtra.pdf: $(EMACS_XTRA) 183emacs-xtra.pdf: $(EMACS_XTRA)
164 $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-xtra.texi 184 $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-xtra.texi
165 185
@@ -172,9 +192,7 @@ mostlyclean:
172 192
173## Products not in the release tarfiles. 193## Products not in the release tarfiles.
174clean: mostlyclean 194clean: mostlyclean
175 rm -f emacs.dvi emacs-xtra.dvi emacs.pdf emacs-xtra.pdf \ 195 rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS)
176 emacs.ps emacs-xtra.ps
177 rm -rf emacs.html/
178 rm -f emacs-manual-${version}.tar* 196 rm -f emacs-manual-${version}.tar*
179 197
180distclean: clean 198distclean: clean
@@ -207,4 +225,52 @@ dist:
207 tar -cf emacs-manual-${version}.tar emacs-manual-${version} 225 tar -cf emacs-manual-${version}.tar emacs-manual-${version}
208 rm -rf emacs-manual-${version} 226 rm -rf emacs-manual-${version}
209 227
228
229.PHONY: install-dvi install-html install-pdf install-ps install-doc
230
231install-dvi: dvi
232 umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir)
233 $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir)
234install-html: html
235 umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir)
236 $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir)
237install-pdf: pdf
238 umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir)
239 $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir)
240install-ps: ps
241 umask 022; $(MKDIR_P) $(DESTDIR)$(psdir)
242 for file in $(PS_TARGETS); do \
243 $(INSTALL_DATA) $${file} $(DESTDIR)$(psdir); \
244 [ -n "${GZIP_PROG}" ] || continue; \
245 rm -f $(DESTDIR)$(psdir)/$${file}.gz; \
246 ${GZIP_PROG} -9n $(DESTDIR)$(psdir)/$${file}; \
247 done
248
249## Top-level Makefile installs the info pages.
250install-doc: install-dvi install-html install-pdf install-ps
251
252
253.PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps uninstall-doc
254
255uninstall-dvi:
256 for file in $(DVI_TARGETS); do \
257 rm -f $(DESTDIR)$(dvidir)/$${file}; \
258 done
259uninstall-html:
260 for file in $(HTML_TARGETS); do \
261 rm -f $(DESTDIR)$(htmldir)/$${file}; \
262 done
263uninstall-ps:
264 ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \
265 for file in $(PS_TARGETS); do \
266 rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \
267 done
268uninstall-pdf:
269 for file in $(PDF_TARGETS); do \
270 rm -f $(DESTDIR)$(pdfdir)/$${file}; \
271 done
272
273uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
274
275
210### Makefile ends here 276### Makefile ends here
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 8a518b82abb..985466810f2 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -1189,7 +1189,7 @@ X Options and Resources
1189* Resources:: Using X resources with Emacs (in general). 1189* Resources:: Using X resources with Emacs (in general).
1190* Table of Resources:: Table of specific X resources that affect Emacs. 1190* Table of Resources:: Table of specific X resources that affect Emacs.
1191* Lucid Resources:: X resources for Lucid menus. 1191* Lucid Resources:: X resources for Lucid menus.
1192* LessTif Resources:: X resources for LessTif and Motif menus. 1192* Motif Resources:: X resources for Motif and LessTif menus.
1193* GTK resources:: Resources for GTK widgets. 1193* GTK resources:: Resources for GTK widgets.
1194 1194
1195GTK resources 1195GTK resources
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 7daeca3bf38..bff0926f347 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -1982,6 +1982,7 @@ thumbnails. @xref{Image-Dired}.
1982@node Filesets 1982@node Filesets
1983@section Filesets 1983@section Filesets
1984@cindex filesets 1984@cindex filesets
1985@cindex sets of files
1985 1986
1986@findex filesets-init 1987@findex filesets-init
1987 If you regularly edit a certain group of files, you can define them 1988 If you regularly edit a certain group of files, you can define them
diff --git a/doc/emacs/glossary.texi b/doc/emacs/glossary.texi
index 43441c20814..e4693a5293f 100644
--- a/doc/emacs/glossary.texi
+++ b/doc/emacs/glossary.texi
@@ -873,6 +873,7 @@ The Emacs major modes are a mutually exclusive set of options, each of
873which configures Emacs for editing a certain sort of text. Ideally, 873which configures Emacs for editing a certain sort of text. Ideally,
874each programming language has its own major mode. @xref{Major Modes}. 874each programming language has its own major mode. @xref{Major Modes}.
875 875
876@c FIXME: Mention margins for filling?
876@item Margin 877@item Margin
877The space between the usable part of a window (including the 878The space between the usable part of a window (including the
878fringe) and the window edge. 879fringe) and the window edge.
diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi
index 051bfe3eae8..cb33327faa1 100644
--- a/doc/emacs/killing.texi
+++ b/doc/emacs/killing.texi
@@ -109,6 +109,8 @@ number of characters. If the numeric argument is omitted or one, they
109delete all the text in the region if it is active (@pxref{Using 109delete all the text in the region if it is active (@pxref{Using
110Region}). 110Region}).
111 111
112@c FIXME: `cycle-spacing' should be documented, too. (Maybe not in
113@c this node, tho.) --xfq
112@kindex M-\ 114@kindex M-\
113@findex delete-horizontal-space 115@findex delete-horizontal-space
114@kindex M-SPC 116@kindex M-SPC
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi
index 61c056ceb4b..50a7ea2c335 100644
--- a/doc/emacs/macos.texi
+++ b/doc/emacs/macos.texi
@@ -210,4 +210,10 @@ restart Emacs to access newly-available services.
210 210
211Emacs can be built and run under GNUstep, but there are still 211Emacs can be built and run under GNUstep, but there are still
212issues to be addressed. Interested developers should contact 212issues to be addressed. Interested developers should contact
213@ifnothtml
213@email{emacs-devel@@gnu.org}. 214@email{emacs-devel@@gnu.org}.
215@end ifnothtml
216@ifhtml
217@url{http://lists.gnu.org/mailman/listinfo/emacs-devel, the
218emacs-devel mailing list}.
219@end ifhtml
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index d50a841d509..e5743b064fb 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -2255,6 +2255,7 @@ Prefix}.
2255 2255
2256@node Enriched Justification 2256@node Enriched Justification
2257@subsection Justification in Enriched Text 2257@subsection Justification in Enriched Text
2258@cindex justification style
2258 2259
2259 In Enriched mode, you can use the following commands to specify 2260 In Enriched mode, you can use the following commands to specify
2260various @dfn{justification styles} for filling. These commands apply 2261various @dfn{justification styles} for filling. These commands apply
@@ -2293,13 +2294,13 @@ commands do nothing on text with this setting. You can, however,
2293still indent the left margin. 2294still indent the left margin.
2294@end table 2295@end table
2295 2296
2297@c FIXME: We should explain the effect of these symbols. --xfq
2296@vindex default-justification 2298@vindex default-justification
2297 You can also specify justification styles using the Justification 2299 You can also specify justification styles using the Justification
2298submenu in the Text Properties menu. 2300submenu in the Text Properties menu. The default justification style
2299 The default justification style is specified by the per-buffer 2301is specified by the per-buffer variable @code{default-justification}.
2300variable @code{default-justification}. Its value should be one of the 2302Its value should be one of the symbols @code{left}, @code{right},
2301symbols @code{left}, @code{right}, @code{full}, @code{center}, or 2303@code{full}, @code{center}, or @code{none}.
2302@code{none}.
2303 2304
2304@node Enriched Properties 2305@node Enriched Properties
2305@subsection Setting Other Text Properties 2306@subsection Setting Other Text Properties
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index d0b6b5191c1..0d5ce6820c7 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -658,7 +658,13 @@ absolutely sure it is best to leave it, so that the developers can
658decide for themselves. 658decide for themselves.
659 659
660When you have finished writing your report, type @kbd{C-c C-c} and it 660When you have finished writing your report, type @kbd{C-c C-c} and it
661will be sent to the Emacs maintainers at @email{bug-gnu-emacs@@gnu.org}. 661will be sent to the Emacs maintainers at
662@ifnothtml
663@email{bug-gnu-emacs@@gnu.org}.
664@end ifnothtml
665@ifhtml
666@url{http://lists.gnu.org/mailman/listinfo/bug-gnu-emacs, bug-gnu-emacs}.
667@end ifhtml
662(If you want to suggest an improvement or new feature, use the same 668(If you want to suggest an improvement or new feature, use the same
663address.) If you cannot send mail from inside Emacs, you can copy the 669address.) If you cannot send mail from inside Emacs, you can copy the
664text of your report to your normal mail client (if your system 670text of your report to your normal mail client (if your system
@@ -1138,15 +1144,26 @@ form that is clearly safe to install.
1138@section Contributing to Emacs Development 1144@section Contributing to Emacs Development
1139@cindex contributing to Emacs 1145@cindex contributing to Emacs
1140 1146
1141If you would like to work on improving Emacs, please contact 1147If you would like to work on improving Emacs, please contact the maintainers at
1142the maintainers at @email{emacs-devel@@gnu.org}. You can ask for 1148@ifnothtml
1143suggested projects or suggest your own ideas. 1149@email{emacs-devel@@gnu.org}.
1150@end ifnothtml
1151@ifhtml
1152@url{http://lists.gnu.org/mailman/listinfo/emacs-devel, the
1153emacs-devel mailing list}.
1154@end ifhtml
1155You can ask for suggested projects or suggest your own ideas.
1144 1156
1145If you have already written an improvement, please tell us about it. If 1157If you have already written an improvement, please tell us about it. If
1146you have not yet started work, it is useful to contact 1158you have not yet started work, it is useful to contact
1147@email{emacs-devel@@gnu.org} before you start; it might be 1159@ifnothtml
1148possible to suggest ways to make your extension fit in better with the 1160@email{emacs-devel@@gnu.org}
1149rest of Emacs. 1161@end ifnothtml
1162@ifhtml
1163@url{http://lists.gnu.org/mailman/listinfo/emacs-devel, emacs-devel}
1164@end ifhtml
1165before you start; it might be possible to suggest ways to make your
1166extension fit in better with the rest of Emacs.
1150 1167
1151The development version of Emacs can be downloaded from the 1168The development version of Emacs can be downloaded from the
1152repository where it is actively maintained by a group of developers. 1169repository where it is actively maintained by a group of developers.
@@ -1164,10 +1181,17 @@ ways to find it:
1164 1181
1165@itemize @bullet 1182@itemize @bullet
1166@item 1183@item
1167Send a message to the mailing list 1184Send a message to
1168@email{help-gnu-emacs@@gnu.org}, or post your request on 1185@ifnothtml
1169newsgroup @code{gnu.emacs.help}. (This mailing list and newsgroup 1186the mailing list @email{help-gnu-emacs@@gnu.org},
1170interconnect, so it does not matter which one you use.) 1187@end ifnothtml
1188@ifhtml
1189@url{http://lists.gnu.org/mailman/listinfo/help-gnu-emacs, the
1190help-gnu-emacs mailing list},
1191@end ifhtml
1192or post your request on newsgroup @code{gnu.emacs.help}. (This
1193mailing list and newsgroup interconnect, so it does not matter which
1194one you use.)
1171 1195
1172@item 1196@item
1173Look in the service directory for someone who might help you for a fee. 1197Look in the service directory for someone who might help you for a fee.
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi
index 3723c8e5e1d..b2ebf634ba0 100644
--- a/doc/emacs/xresources.texi
+++ b/doc/emacs/xresources.texi
@@ -27,7 +27,7 @@ system registry (@pxref{MS-Windows Registry}).
27* Resources:: Using X resources with Emacs (in general). 27* Resources:: Using X resources with Emacs (in general).
28* Table of Resources:: Table of specific X resources that affect Emacs. 28* Table of Resources:: Table of specific X resources that affect Emacs.
29* Lucid Resources:: X resources for Lucid menus. 29* Lucid Resources:: X resources for Lucid menus.
30* LessTif Resources:: X resources for LessTif and Motif menus. 30* Motif Resources:: X resources for Motif and LessTif menus.
31* GTK resources:: Resources for GTK widgets. 31* GTK resources:: Resources for GTK widgets.
32@end menu 32@end menu
33 33
@@ -260,7 +260,7 @@ compiled with GTK+ support.
260@ifnottex 260@ifnottex
261@item @code{selectionFont} (class @code{SelectionFont}) 261@item @code{selectionFont} (class @code{SelectionFont})
262Font name for pop-up menu items, in non-toolkit versions of Emacs. (For 262Font name for pop-up menu items, in non-toolkit versions of Emacs. (For
263toolkit versions, see @ref{Lucid Resources}, also see @ref{LessTif 263toolkit versions, see @ref{Lucid Resources}, also see @ref{Motif
264Resources}.) 264Resources}.)
265 265
266@item @code{selectionTimeout} (class @code{SelectionTimeout}) 266@item @code{selectionTimeout} (class @code{SelectionTimeout})
@@ -370,15 +370,15 @@ elements. Default is 1.
370Margin of the menu bar, in characters. Default is 1. 370Margin of the menu bar, in characters. Default is 1.
371@end table 371@end table
372 372
373@node LessTif Resources 373@node Motif Resources
374@appendixsec LessTif Menu X Resources 374@appendixsec Motif Menu X Resources
375@cindex Menu X Resources (LessTif widgets) 375@cindex Menu X Resources (Motif widgets)
376@cindex LessTif Widget X Resources 376@cindex Motif Widget X Resources
377 377
378 If Emacs is compiled with the X toolkit support using LessTif or 378 If Emacs is compiled with the X toolkit support using Motif or
379Motif widgets, you can use X resources to customize the appearance of 379LessTif widgets, you can use X resources to customize the appearance
380the menu bar, pop-up menus, and dialog boxes. However, the resources 380of the menu bar, pop-up menus, and dialog boxes. However, the
381are organized differently from Lucid widgets. 381resources are organized differently from Lucid widgets.
382 382
383 The resource names for the menu bar are in the @samp{pane.menubar} 383 The resource names for the menu bar are in the @samp{pane.menubar}
384class, and they must be specified in this form: 384class, and they must be specified in this form:
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index 481eb0c9db8..ec082eecb52 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -1,3 +1,50 @@
12013-09-01 Glenn Morris <rgm@gnu.org>
2
3 * emacs-lisp-intro.texi (beginning-of-buffer complete):
4 Put back a version of the removed paragraph about raw prefix arg.
5
62013-09-01 Dani Moncayo <dmoncayo@gmail.com>
7
8 * emacs-lisp-intro.texi (beginning-of-buffer complete):
9 Update function details. (Bug#15085)
10
112013-08-28 Paul Eggert <eggert@cs.ucla.edu>
12
13 * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
14 for portability to hosts where /bin/sh has problems.
15
162013-08-12 Glenn Morris <rgm@gnu.org>
17
18 * emacs-lisp-intro.texi (Complete copy-region-as-kill): Fix typo.
19
20 * emacs-lisp-intro.texi (Thank You): Avoid mailto: in html output.
21
22 * Makefile.in (prefix, datarootdir, datadir, PACKAGE_TARNAME)
23 (docdir, dvidir, htmldir, pdfdir, psdir, GZIP_PROG, INSTALL)
24 (INSTALL_DATA): New, set by configure.
25 (HTML_OPTS, DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS):
26 New variables.
27 (.SUFFIXES): Add .ps and .dvi.
28 (.dvi.ps): New suffix rule.
29 (dvi, html, pdf, ps): Use *_TARGETS variables.
30 (emacs-lisp-intro.ps): Remove explicit rule.
31 (emacs-lisp-intro.html): Use HTML_OPTS.
32 (clean): Use DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS.
33 (.PHONY): install-dvi, install-html, install-pdf, install-ps
34 ,install-doc, uninstall-dvi, uninstall-html, uninstall-pdf,
35 uninstall-ps, and uninstall-doc.
36 (install-dvi, install-html, install-pdf, install-ps, install-doc)
37 (uninstall-dvi, uninstall-html, uninstall-ps, uninstall-pdf)
38 (uninstall-doc): New rules.
39
402013-08-07 Eli Zaretskii <eliz@gnu.org>
41
42 * emacs-lisp-intro.texi (Beginning init File): Rename from
43 "Beginning a .emacs File", since a node name cannot include a
44 period.
45 (Top, Emacs Initialization, Change a defun): All references
46 changed. (Bug#15038)
47
12013-08-02 Xue Fuqiao <xfq.free@gmail.com> 482013-08-02 Xue Fuqiao <xfq.free@gmail.com>
2 49
3 * emacs-lisp-intro.texi (zap-to-char): Remove obsolete stuff. 50 * emacs-lisp-intro.texi (zap-to-char): Remove obsolete stuff.
diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in
index d5462f9e70f..363e12215b3 100644
--- a/doc/lispintro/Makefile.in
+++ b/doc/lispintro/Makefile.in
@@ -17,7 +17,7 @@
17# You should have received a copy of the GNU General Public License 17# You should have received a copy of the GNU General Public License
18# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 18# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
19 19
20SHELL = /bin/sh 20SHELL = @SHELL@
21 21
22# NB If you add any more configure variables, 22# NB If you add any more configure variables,
23# update the sed rules in the dist target below. 23# update the sed rules in the dist target below.
@@ -30,12 +30,29 @@ texinfodir = $(srcdir)/../misc
30# Directory with emacsver.texi. 30# Directory with emacsver.texi.
31emacsdir = $(srcdir)/../emacs 31emacsdir = $(srcdir)/../emacs
32 32
33prefix = @prefix@
34datarootdir = @datarootdir@
35datadir = @datadir@
36PACKAGE_TARNAME = @PACKAGE_TARNAME@
37docdir = @docdir@
38dvidir = @dvidir@
39htmldir = @htmldir@
40pdfdir = @pdfdir@
41psdir = @psdir@
42
33MKDIR_P = @MKDIR_P@ 43MKDIR_P = @MKDIR_P@
34 44
45GZIP_PROG = @GZIP_PROG@
46
47HTML_OPTS = --no-split --html
48
35INFO_EXT=@INFO_EXT@ 49INFO_EXT=@INFO_EXT@
36# Options used only when making info output. 50# Options used only when making info output.
37INFO_OPTS=@INFO_OPTS@ 51INFO_OPTS=@INFO_OPTS@
38 52
53INSTALL = @INSTALL@
54INSTALL_DATA = @INSTALL_DATA@
55
39MAKEINFO = @MAKEINFO@ 56MAKEINFO = @MAKEINFO@
40MAKEINFO_OPTS = --force -I $(emacsdir) -I $(srcdir) 57MAKEINFO_OPTS = --force -I $(emacsdir) -I $(srcdir)
41TEXI2DVI = texi2dvi 58TEXI2DVI = texi2dvi
@@ -45,6 +62,11 @@ DVIPS = dvips
45ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \ 62ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \
46 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" 63 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
47 64
65DVI_TARGETS = emacs-lisp-intro.dvi
66HTML_TARGETS = emacs-lisp-intro.html
67PDF_TARGETS = emacs-lisp-intro.pdf
68PS_TARGETS = emacs-lisp-intro.ps
69
48mkinfodir = @${MKDIR_P} ${buildinfodir} 70mkinfodir = @${MKDIR_P} ${buildinfodir}
49 71
50srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi \ 72srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi \
@@ -52,12 +74,17 @@ srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi \
52 74
53.PHONY: info dvi html pdf ps 75.PHONY: info dvi html pdf ps
54 76
77.SUFFIXES: .ps .dvi
78
79.dvi.ps:
80 $(DVIPS) -o $@ $<
81
55info: ${buildinfodir}/eintr$(INFO_EXT) 82info: ${buildinfodir}/eintr$(INFO_EXT)
56 83
57dvi: emacs-lisp-intro.dvi 84dvi: $(DVI_TARGETS)
58html: emacs-lisp-intro.html 85html: $(HTML_TARGETS)
59pdf: emacs-lisp-intro.pdf 86pdf: $(PDF_TARGETS)
60ps: emacs-lisp-intro.ps 87ps: $(PS_TARGETS)
61 88
62# The file name eintr must fit within 5 characters, to allow for 89# The file name eintr must fit within 5 characters, to allow for
63# -NN extensions to fit into DOS 8+3 limits without clashing. 90# -NN extensions to fit into DOS 8+3 limits without clashing.
@@ -69,14 +96,11 @@ ${buildinfodir}/eintr$(INFO_EXT): ${srcs}
69emacs-lisp-intro.dvi: ${srcs} 96emacs-lisp-intro.dvi: ${srcs}
70 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-lisp-intro.texi 97 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-lisp-intro.texi
71 98
72emacs-lisp-intro.ps: emacs-lisp-intro.dvi
73 $(DVIPS) -o $@ emacs-lisp-intro.dvi
74
75emacs-lisp-intro.pdf: ${srcs} 99emacs-lisp-intro.pdf: ${srcs}
76 $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-lisp-intro.texi 100 $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-lisp-intro.texi
77 101
78emacs-lisp-intro.html: ${srcs} 102emacs-lisp-intro.html: ${srcs}
79 $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ ${srcdir}/emacs-lisp-intro.texi 103 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/emacs-lisp-intro.texi
80 104
81.PHONY: mostlyclean clean distclean maintainer-clean infoclean 105.PHONY: mostlyclean clean distclean maintainer-clean infoclean
82 106
@@ -85,8 +109,7 @@ mostlyclean:
85 *.op *.ops *.pg *.pgs *.tp *.tps *.vr *.vrs 109 *.op *.ops *.pg *.pgs *.tp *.tps *.vr *.vrs
86 110
87clean: mostlyclean 111clean: mostlyclean
88 rm -f emacs-lisp-intro.dvi emacs-lisp-intro.pdf emacs-lisp-intro.ps 112 rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS)
89 rm -rf emacs-lisp-intro.html/
90 rm -f emacs-lispintro-${version}.tar* 113 rm -f emacs-lispintro-${version}.tar*
91 114
92distclean: clean 115distclean: clean
@@ -118,4 +141,52 @@ dist:
118 tar -cf emacs-lispintro-${version}.tar emacs-lispintro-${version} 141 tar -cf emacs-lispintro-${version}.tar emacs-lispintro-${version}
119 rm -rf emacs-lispintro-${version} 142 rm -rf emacs-lispintro-${version}
120 143
144
145.PHONY: install-dvi install-html install-pdf install-ps install-doc
146
147install-dvi: dvi
148 umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir)
149 $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir)
150install-html: html
151 umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir)
152 $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir)
153install-pdf: pdf
154 umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir)
155 $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir)
156install-ps: ps
157 umask 022; $(MKDIR_P) $(DESTDIR)$(psdir)
158 for file in $(PS_TARGETS); do \
159 $(INSTALL_DATA) $${file} $(DESTDIR)$(psdir); \
160 [ -n "${GZIP_PROG}" ] || continue; \
161 rm -f $(DESTDIR)$(psdir)/$${file}.gz; \
162 ${GZIP_PROG} -9n $(DESTDIR)$(psdir)/$${file}; \
163 done
164
165## Top-level Makefile installs the info pages.
166install-doc: install-dvi install-html install-pdf install-ps
167
168
169.PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps uninstall-doc
170
171uninstall-dvi:
172 for file in $(DVI_TARGETS); do \
173 rm -f $(DESTDIR)$(dvidir)/$${file}; \
174 done
175uninstall-html:
176 for file in $(HTML_TARGETS); do \
177 rm -f $(DESTDIR)$(htmldir)/$${file}; \
178 done
179uninstall-ps:
180 ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \
181 for file in $(PS_TARGETS); do \
182 rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \
183 done
184uninstall-pdf:
185 for file in $(PDF_TARGETS); do \
186 rm -f $(DESTDIR)$(pdfdir)/$${file}; \
187 done
188
189uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
190
191
121### Makefile ends here 192### Makefile ends here
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index f0d9ab63935..84c9d905487 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -648,7 +648,7 @@ Your @file{.emacs} File
648* Default Configuration:: 648* Default Configuration::
649* Site-wide Init:: You can write site-wide init files. 649* Site-wide Init:: You can write site-wide init files.
650* defcustom:: Emacs will write code for you. 650* defcustom:: Emacs will write code for you.
651* Beginning a .emacs File:: How to write a @code{.emacs file}. 651* Beginning init File:: How to write a @file{.emacs} init file.
652* Text and Auto-fill:: Automatically wrap lines. 652* Text and Auto-fill:: Automatically wrap lines.
653* Mail Aliases:: Use abbreviations for email addresses. 653* Mail Aliases:: Use abbreviations for email addresses.
654* Indent Tabs Mode:: Don't use tabs with @TeX{} 654* Indent Tabs Mode:: Don't use tabs with @TeX{}
@@ -954,7 +954,12 @@ encouragement. My mistakes are my own.
954 954
955@flushright 955@flushright
956Robert J. Chassell 956Robert J. Chassell
957@ifnothtml
957@email{bob@@gnu.org} 958@email{bob@@gnu.org}
959@end ifnothtml
960@ifhtml
961bob@@gnu.org
962@end ifhtml
958@end flushright 963@end flushright
959 964
960@c ================ Beginning of main text ================ 965@c ================ Beginning of main text ================
@@ -3260,7 +3265,7 @@ line that follows a semicolon is a comment. The end of the line is the
3260end of the comment. To stretch a comment over two or more lines, begin 3265end of the comment. To stretch a comment over two or more lines, begin
3261each line with a semicolon. 3266each line with a semicolon.
3262 3267
3263@xref{Beginning a .emacs File, , Beginning a @file{.emacs} 3268@xref{Beginning init File, , Beginning a @file{.emacs}
3264File}, and @ref{Comments, , Comments, elisp, The GNU Emacs Lisp 3269File}, and @ref{Comments, , Comments, elisp, The GNU Emacs Lisp
3265Reference Manual}, for more about comments. 3270Reference Manual}, for more about comments.
3266 3271
@@ -6318,7 +6323,7 @@ and avoids clobbering the mark."
6318 (/ (+ 10 (* size (prefix-numeric-value arg))) 6323 (/ (+ 10 (* size (prefix-numeric-value arg)))
6319 10))) 6324 10)))
6320 (point-min)))) 6325 (point-min))))
6321 (if arg (forward-line 1))) 6326 (if (and arg (not (consp arg))) (forward-line 1)))
6322@end group 6327@end group
6323@end smallexample 6328@end smallexample
6324 6329
@@ -6385,7 +6390,7 @@ to move point to the beginning of the next line if the command is
6385invoked with an argument: 6390invoked with an argument:
6386 6391
6387@smallexample 6392@smallexample
6388(if arg (forward-line 1))) 6393(if (and arg (not (consp arg))) (forward-line 1))
6389@end smallexample 6394@end smallexample
6390 6395
6391@noindent 6396@noindent
@@ -6394,14 +6399,10 @@ appropriate tenths position in the buffer. This is a flourish that
6394means that the cursor is always located @emph{at least} the requested 6399means that the cursor is always located @emph{at least} the requested
6395tenths of the way through the buffer, which is a nicety that is, 6400tenths of the way through the buffer, which is a nicety that is,
6396perhaps, not necessary, but which, if it did not occur, would be sure 6401perhaps, not necessary, but which, if it did not occur, would be sure
6397to draw complaints. 6402to draw complaints. (The @code{(not (consp arg))} portion is so that
6398 6403if you specify the command with a @kbd{C-u}, but without a number,
6399On the other hand, it also means that if you specify the command with 6404that is to say, if the `raw prefix argument' is simply a cons cell,
6400a @kbd{C-u}, but without a number, that is to say, if the `raw prefix 6405the command does not put you at the beginning of the second line.)
6401argument' is simply a cons cell, then the command puts you at the
6402beginning of the second line @dots{} I don't know whether this is
6403intended or whether no one has dealt with the code to avoid this
6404happening.
6405 6406
6406@node Second Buffer Related Review 6407@node Second Buffer Related Review
6407@section Review 6408@section Review
@@ -8312,7 +8313,7 @@ As usual, this function can be divided into its component parts:
8312 8313
8313The arguments are @code{beg} and @code{end} and the function is 8314The arguments are @code{beg} and @code{end} and the function is
8314interactive with @code{"r"}, so the two arguments must refer to the 8315interactive with @code{"r"}, so the two arguments must refer to the
8315beginning and end of the region. If you have been reading though this 8316beginning and end of the region. If you have been reading through this
8316document from the beginning, understanding these parts of a function is 8317document from the beginning, understanding these parts of a function is
8317almost becoming routine. 8318almost becoming routine.
8318 8319
@@ -16706,7 +16707,7 @@ expressions in Emacs Lisp you can change or extend Emacs.
16706* Default Configuration:: 16707* Default Configuration::
16707* Site-wide Init:: You can write site-wide init files. 16708* Site-wide Init:: You can write site-wide init files.
16708* defcustom:: Emacs will write code for you. 16709* defcustom:: Emacs will write code for you.
16709* Beginning a .emacs File:: How to write a @code{.emacs file}. 16710* Beginning init File:: How to write a @file{.emacs} init file.
16710* Text and Auto-fill:: Automatically wrap lines. 16711* Text and Auto-fill:: Automatically wrap lines.
16711* Mail Aliases:: Use abbreviations for email addresses. 16712* Mail Aliases:: Use abbreviations for email addresses.
16712* Indent Tabs Mode:: Don't use tabs with @TeX{} 16713* Indent Tabs Mode:: Don't use tabs with @TeX{}
@@ -16977,7 +16978,7 @@ intent is that neither programs nor users should ever change a value
16977set by @code{defconst}. (You can change it; the value set is a 16978set by @code{defconst}. (You can change it; the value set is a
16978variable; but please do not.) 16979variable; but please do not.)
16979 16980
16980@node Beginning a .emacs File 16981@node Beginning init File
16981@section Beginning a @file{.emacs} File 16982@section Beginning a @file{.emacs} File
16982@cindex @file{.emacs} file, beginning of 16983@cindex @file{.emacs} file, beginning of
16983 16984
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index d77ede29da1..8b5aa65ff96 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,113 @@
12013-08-28 Paul Eggert <eggert@cs.ucla.edu>
2
3 * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
4 for portability to hosts where /bin/sh has problems.
5
62013-08-26 Stefan Monnier <monnier@iro.umontreal.ca>
7
8 * variables.texi (File Local Variables): Don't recommend quoting! Ever!
9
102013-08-20 Eli Zaretskii <eliz@gnu.org>
11
12 * files.texi (Information about Files): Mention file names with
13 trailing blanks on MS-Windows. (Bug#15130)
14
152013-08-18 Xue Fuqiao <xfq.free@gmail.com>
16
17 * positions.texi (Positions): Improve indexing.
18
192013-08-18 Eli Zaretskii <eliz@gnu.org>
20
21 * markers.texi (The Region): Improve indexing.
22
232013-08-17 Xue Fuqiao <xfq.free@gmail.com>
24
25 * modes.texi (SMIE, SMIE Grammar, SMIE Indentation): Add some indexes.
26
27 * text.texi (Maintaining Undo): Mention interactive call of
28 buffer-disable-undo.
29 (Filling): Add cross-reference for hard newlines.
30 (Sorting): Fix indentation.
31 (Columns): Comment out undefined behavior.
32 (Case Changes): Fix an `args-out-of-range' error in the example.
33
342013-08-16 Xue Fuqiao <xfq.free@gmail.com>
35
36 * text.texi (Insertion): Refine.
37 (Margins): Add an index.
38 (Undo): Doc fix for `buffer-undo-list'.
39
40 * positions.texi (Character Motion):
41 * markers.texi (Moving Markers):
42 (Creating Markers): Comment out undefined behavior.
43
442013-08-15 Xue Fuqiao <xfq.free@gmail.com>
45
46 * markers.texi (The Region): Add/move indexes.
47
482013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
49
50 * display.texi (ImageMagick Images): Mention :content-type and
51 `image-content-type-suffixes'.
52
532013-08-13 Xue Fuqiao <xfq.free@gmail.com>
54
55 * positions.texi (Word Motion): Remove redundant sentence.
56
572013-08-13 Glenn Morris <rgm@gnu.org>
58
59 * lists.texi (List Elements):
60 Undocument behavior of nth and nthcdr with n < 0. (Bug#15059)
61
622013-08-13 Xue Fuqiao <xfq.free@gmail.com>
63
64 * frames.texi (Display Feature Testing): Add indexes.
65
662013-08-12 Glenn Morris <rgm@gnu.org>
67
68 * Makefile.in (prefix, datarootdir, datadir, PACKAGE_TARNAME)
69 (docdir, dvidir, htmldir, pdfdir, psdir, GZIP_PROG, INSTALL)
70 (INSTALL_DATA): New, set by configure.
71 (HTML_OPTS, DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS):
72 New variables.
73 (.SUFFIXES): Add .ps and .dvi.
74 (.dvi.ps): New suffix rule.
75 (dvi, html, pdf, ps): Use *_TARGETS variables.
76 (elisp.html): Use HTML_OPTS.
77 (elisp.ps): Remove explicit rule.
78 (.PHONY): install-dvi, install-html, install-pdf, install-ps
79 ,install-doc, uninstall-dvi, uninstall-html, uninstall-pdf,
80 uninstall-ps, and uninstall-doc.
81 (install-dvi, install-html, install-pdf, install-ps, install-doc)
82 (uninstall-dvi, uninstall-html, uninstall-ps, uninstall-pdf)
83 (uninstall-doc): New rules.
84 (clean): Use DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS.
85
862013-08-10 Xue Fuqiao <xfq.free@gmail.com>
87
88 * edebug.texi (Instrumenting Macro Calls): Use @defmac for macros.
89
902013-08-09 Xue Fuqiao <xfq.free@gmail.com>
91
92 * control.texi (Error Symbols): Minor fix for previous change.
93
942013-08-09 Stefan Monnier <monnier@iro.umontreal.ca>
95
96 * errors.texi (Standard Errors): Don't refer to `error-conditions'.
97
98 * control.texi (Signaling Errors): Refer to define-error.
99 (Error Symbols): Add `define-error'.
100
1012013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
102
103 * positions.texi (Motion by Screen Lines):
104 * display.texi (Truncation): Rename `cache-long-line-scans'
105 to `cache-long-scans'.
106
1072013-08-05 Xue Fuqiao <xfq.free@gmail.com>
108
109 * windows.texi (Window Start and End): Add an index.
110
12013-08-02 Xue Fuqiao <xfq.free@gmail.com> 1112013-08-02 Xue Fuqiao <xfq.free@gmail.com>
2 112
3 * display.texi (Face Functions): Add an index. 113 * display.texi (Face Functions): Add an index.
diff --git a/doc/lispref/Makefile.in b/doc/lispref/Makefile.in
index 8e6d034804e..164646ac433 100644
--- a/doc/lispref/Makefile.in
+++ b/doc/lispref/Makefile.in
@@ -17,7 +17,7 @@
17# You should have received a copy of the GNU General Public License 17# You should have received a copy of the GNU General Public License
18# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 18# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
19 19
20SHELL = /bin/sh 20SHELL = @SHELL@
21 21
22# NB If you add any more configure variables, 22# NB If you add any more configure variables,
23# update the sed rules in the dist target below. 23# update the sed rules in the dist target below.
@@ -33,12 +33,29 @@ texinfodir = $(srcdir)/../misc
33# Directory with emacsver.texi. 33# Directory with emacsver.texi.
34emacsdir = $(srcdir)/../emacs 34emacsdir = $(srcdir)/../emacs
35 35
36prefix = @prefix@
37datarootdir = @datarootdir@
38datadir = @datadir@
39PACKAGE_TARNAME = @PACKAGE_TARNAME@
40docdir = @docdir@
41dvidir = @dvidir@
42htmldir = @htmldir@
43pdfdir = @pdfdir@
44psdir = @psdir@
45
36MKDIR_P = @MKDIR_P@ 46MKDIR_P = @MKDIR_P@
37 47
48GZIP_PROG = @GZIP_PROG@
49
50HTML_OPTS = --no-split --html
51
38INFO_EXT=@INFO_EXT@ 52INFO_EXT=@INFO_EXT@
39# Options used only when making info output. 53# Options used only when making info output.
40INFO_OPTS=@INFO_OPTS@ 54INFO_OPTS=@INFO_OPTS@
41 55
56INSTALL = @INSTALL@
57INSTALL_DATA = @INSTALL_DATA@
58
42MAKEINFO = @MAKEINFO@ 59MAKEINFO = @MAKEINFO@
43MAKEINFO_OPTS = --force --enable-encoding -I $(emacsdir) -I $(srcdir) 60MAKEINFO_OPTS = --force --enable-encoding -I $(emacsdir) -I $(srcdir)
44TEXI2DVI = texi2dvi 61TEXI2DVI = texi2dvi
@@ -48,6 +65,11 @@ DVIPS = dvips
48ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \ 65ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \
49 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" 66 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
50 67
68DVI_TARGETS = elisp.dvi
69HTML_TARGETS = elisp.html
70PDF_TARGETS = elisp.pdf
71PS_TARGETS = elisp.ps
72
51# List of all the texinfo files in the manual: 73# List of all the texinfo files in the manual:
52 74
53srcs = \ 75srcs = \
@@ -108,11 +130,16 @@ mkinfodir = @${MKDIR_P} ${buildinfodir}
108 130
109.PHONY: info dvi pdf ps 131.PHONY: info dvi pdf ps
110 132
133.SUFFIXES: .ps .dvi
134
135.dvi.ps:
136 $(DVIPS) -o $@ $<
137
111info: $(buildinfodir)/elisp$(INFO_EXT) 138info: $(buildinfodir)/elisp$(INFO_EXT)
112dvi: elisp.dvi 139dvi: $(DVI_TARGETS)
113html: elisp.html 140html: $(HTML_TARGETS)
114pdf: elisp.pdf 141pdf: $(PDF_TARGETS)
115ps: elisp.ps 142ps: $(PS_TARGETS)
116 143
117## Note: "<" is not portable in ordinary make rules. 144## Note: "<" is not portable in ordinary make rules.
118$(buildinfodir)/elisp$(INFO_EXT): $(srcs) 145$(buildinfodir)/elisp$(INFO_EXT): $(srcs)
@@ -123,10 +150,7 @@ elisp.dvi: $(srcs)
123 $(ENVADD) $(TEXI2DVI) $(srcdir)/elisp.texi 150 $(ENVADD) $(TEXI2DVI) $(srcdir)/elisp.texi
124 151
125elisp.html: $(srcs) 152elisp.html: $(srcs)
126 $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $(srcdir)/elisp.texi 153 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ $(srcdir)/elisp.texi
127
128elisp.ps: elisp.dvi
129 $(DVIPS) -o $@ elisp.dvi
130 154
131elisp.pdf: $(srcs) 155elisp.pdf: $(srcs)
132 $(ENVADD) $(TEXI2PDF) $(srcdir)/elisp.texi 156 $(ENVADD) $(TEXI2PDF) $(srcdir)/elisp.texi
@@ -140,9 +164,8 @@ mostlyclean:
140 rm -f elisp[12]* vol[12].tmp 164 rm -f elisp[12]* vol[12].tmp
141 165
142clean: mostlyclean 166clean: mostlyclean
143 rm -f elisp.dvi elisp.pdf elisp.ps 167 rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS)
144 rm -f vol[12].dvi vol[12].pdf vol[12].ps 168 rm -f vol[12].dvi vol[12].pdf vol[12].ps
145 rm -rf elisp.html
146 rm -f emacs-lispref-${version}.tar* 169 rm -f emacs-lispref-${version}.tar*
147 170
148distclean: clean 171distclean: clean
@@ -175,4 +198,51 @@ dist:
175 tar -cf emacs-lispref-${version}.tar emacs-lispref-${version} 198 tar -cf emacs-lispref-${version}.tar emacs-lispref-${version}
176 rm -rf emacs-lispref-${version} 199 rm -rf emacs-lispref-${version}
177 200
201.PHONY: install-dvi install-html install-pdf install-ps install-doc
202
203install-dvi: dvi
204 umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir)
205 $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir)
206install-html: html
207 umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir)
208 $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir)
209install-pdf: pdf
210 umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir)
211 $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir)
212install-ps: ps
213 umask 022; $(MKDIR_P) $(DESTDIR)$(psdir)
214 for file in $(PS_TARGETS); do \
215 $(INSTALL_DATA) $${file} $(DESTDIR)$(psdir); \
216 [ -n "${GZIP_PROG}" ] || continue; \
217 rm -f $(DESTDIR)$(psdir)/$${file}.gz; \
218 ${GZIP_PROG} -9n $(DESTDIR)$(psdir)/$${file}; \
219 done
220
221## Top-level Makefile installs the info pages.
222install-doc: install-dvi install-html install-pdf install-ps
223
224
225.PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps uninstall-doc
226
227uninstall-dvi:
228 for file in $(DVI_TARGETS); do \
229 rm -f $(DESTDIR)$(dvidir)/$${file}; \
230 done
231uninstall-html:
232 for file in $(HTML_TARGETS); do \
233 rm -f $(DESTDIR)$(htmldir)/$${file}; \
234 done
235uninstall-ps:
236 ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \
237 for file in $(PS_TARGETS); do \
238 rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \
239 done
240uninstall-pdf:
241 for file in $(PDF_TARGETS); do \
242 rm -f $(DESTDIR)$(pdfdir)/$${file}; \
243 done
244
245uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
246
247
178### Makefile ends here 248### Makefile ends here
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index 9ee01299260..70eabcd84a4 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -890,9 +890,8 @@ argument @var{data} is a list of additional Lisp objects relevant to
890the circumstances of the error. 890the circumstances of the error.
891 891
892The argument @var{error-symbol} must be an @dfn{error symbol}---a symbol 892The argument @var{error-symbol} must be an @dfn{error symbol}---a symbol
893bearing a property @code{error-conditions} whose value is a list of 893defined with @code{define-error}. This is how Emacs Lisp classifies different
894condition names. This is how Emacs Lisp classifies different sorts of 894sorts of errors. @xref{Error Symbols}, for a description of error symbols,
895errors. @xref{Error Symbols}, for a description of error symbols,
896error conditions and condition names. 895error conditions and condition names.
897 896
898If the error is not handled, the two arguments are used in printing 897If the error is not handled, the two arguments are used in printing
@@ -1118,8 +1117,8 @@ Here are examples of handlers:
1118@end example 1117@end example
1119 1118
1120Each error that occurs has an @dfn{error symbol} that describes what 1119Each error that occurs has an @dfn{error symbol} that describes what
1121kind of error it is. The @code{error-conditions} property of this 1120kind of error it is, and which describes also a list of condition names
1122symbol is a list of condition names (@pxref{Error Symbols}). Emacs 1121(@pxref{Error Symbols}). Emacs
1123searches all the active @code{condition-case} forms for a handler that 1122searches all the active @code{condition-case} forms for a handler that
1124specifies one or more of these condition names; the innermost matching 1123specifies one or more of these condition names; the innermost matching
1125@code{condition-case} handles the error. Within this 1124@code{condition-case} handles the error. Within this
@@ -1259,6 +1258,7 @@ should be robust if one does occur. Note that this macro uses
1259@cindex condition name 1258@cindex condition name
1260@cindex user-defined error 1259@cindex user-defined error
1261@kindex error-conditions 1260@kindex error-conditions
1261@kindex define-error
1262 1262
1263 When you signal an error, you specify an @dfn{error symbol} to specify 1263 When you signal an error, you specify an @dfn{error symbol} to specify
1264the kind of error you have in mind. Each error has one and only one 1264the kind of error you have in mind. Each error has one and only one
@@ -1275,42 +1275,38 @@ Thus, each error has one or more condition names: @code{error}, the
1275error symbol if that is distinct from @code{error}, and perhaps some 1275error symbol if that is distinct from @code{error}, and perhaps some
1276intermediate classifications. 1276intermediate classifications.
1277 1277
1278 In order for a symbol to be an error symbol, it must have an 1278@defun define-error name message &optional parent
1279@code{error-conditions} property which gives a list of condition names. 1279 In order for a symbol to be an error symbol, it must be defined with
1280This list defines the conditions that this kind of error belongs to. 1280@code{define-error} which takes a parent condition (defaults to @code{error}).
1281(The error symbol itself, and the symbol @code{error}, should always be 1281This parent defines the conditions that this kind of error belongs to.
1282members of this list.) Thus, the hierarchy of condition names is 1282The transitive set of parents always includes the error symbol itself, and the
1283defined by the @code{error-conditions} properties of the error symbols. 1283symbol @code{error}. Because quitting is not considered an error, the set of
1284Because quitting is not considered an error, the value of the 1284parents of @code{quit} is just @code{(quit)}.
1285@code{error-conditions} property of @code{quit} is just @code{(quit)}. 1285@end defun
1286 1286
1287@cindex peculiar error 1287@cindex peculiar error
1288 In addition to the @code{error-conditions} list, the error symbol 1288 In addition to its parents, the error symbol has a @var{message} which
1289should have an @code{error-message} property whose value is a string to 1289is a string to be printed when that error is signaled but not handled. If that
1290be printed when that error is signaled but not handled. If the 1290message is not valid, the error message @samp{peculiar error} is used.
1291error symbol has no @code{error-message} property or if the 1291@xref{Definition of signal}.
1292@code{error-message} property exists, but is not a string, the error 1292
1293message @samp{peculiar error} is used. @xref{Definition of signal}. 1293Internally, the set of parents is stored in the @code{error-conditions}
1294property of the error symbol and the message is stored in the
1295@code{error-message} property of the error symbol.
1294 1296
1295 Here is how we define a new error symbol, @code{new-error}: 1297 Here is how we define a new error symbol, @code{new-error}:
1296 1298
1297@example 1299@example
1298@group 1300@group
1299(put 'new-error 1301(define-error 'new-error "A new error" 'my-own-errors)
1300 'error-conditions
1301 '(error my-own-errors new-error))
1302@result{} (error my-own-errors new-error)
1303@end group
1304@group
1305(put 'new-error 'error-message "A new error")
1306@result{} "A new error"
1307@end group 1302@end group
1308@end example 1303@end example
1309 1304
1310@noindent 1305@noindent
1311This error has three condition names: @code{new-error}, the narrowest 1306This error has several condition names: @code{new-error}, the narrowest
1312classification; @code{my-own-errors}, which we imagine is a wider 1307classification; @code{my-own-errors}, which we imagine is a wider
1313classification; and @code{error}, which is the widest of all. 1308classification; and all the conditions of @code{my-own-errors} which should
1309include @code{error}, which is the widest of all.
1314 1310
1315 The error string should start with a capital letter but it should 1311 The error string should start with a capital letter but it should
1316not end with a period. This is for consistency with the rest of Emacs. 1312not end with a period. This is for consistency with the rest of Emacs.
@@ -1326,7 +1322,7 @@ your code can do this:
1326@end group 1322@end group
1327@end example 1323@end example
1328 1324
1329 This error can be handled through any of the three condition names. 1325 This error can be handled through any of its condition names.
1330This example handles @code{new-error} and any other errors in the class 1326This example handles @code{new-error} and any other errors in the class
1331@code{my-own-errors}: 1327@code{my-own-errors}:
1332 1328
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index c5068425c66..ff9d98170d1 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -217,9 +217,9 @@ over the @code{line-prefix} variable. @xref{Special Properties}.
217continuation to display them, computing the continuation lines can 217continuation to display them, computing the continuation lines can
218make redisplay slow. The column computation and indentation functions 218make redisplay slow. The column computation and indentation functions
219also become slow. Then you might find it advisable to set 219also become slow. Then you might find it advisable to set
220@code{cache-long-line-scans} to @code{t}. 220@code{cache-long-scans} to @code{t}.
221 221
222@defvar cache-long-line-scans 222@defvar cache-long-scans
223If this variable is non-@code{nil}, various indentation and motion 223If this variable is non-@code{nil}, various indentation and motion
224functions, and Emacs redisplay, cache the results of scanning the 224functions, and Emacs redisplay, cache the results of scanning the
225buffer, and consult the cache to avoid rescanning regions of the buffer 225buffer, and consult the cache to avoid rescanning regions of the buffer
@@ -1243,6 +1243,7 @@ Type RET when done reading
1243@node Overlays 1243@node Overlays
1244@section Overlays 1244@section Overlays
1245@cindex overlays 1245@cindex overlays
1246@c FIXME: mention intervals in this section?
1246 1247
1247You can use @dfn{overlays} to alter the appearance of a buffer's text on 1248You can use @dfn{overlays} to alter the appearance of a buffer's text on
1248the screen, for the sake of presentation features. An overlay is an 1249the screen, for the sake of presentation features. An overlay is an
@@ -4663,6 +4664,14 @@ and if @code{:height} is set it will have precedence over
4663wish. @code{:max-width} and @code{:max-height} will always preserve 4664wish. @code{:max-width} and @code{:max-height} will always preserve
4664the aspect ratio. 4665the aspect ratio.
4665 4666
4667@item :format
4668ImageMagick tries to auto-detect the image type, but it isn't always
4669able to. By using @code{:format-type}, we can give ImageMagick a hint
4670to try to help it. It's used in conjunction with the
4671@code{image-format-suffixes} variable, which provides a mapping from
4672content types to file name suffixes. This is then given to
4673ImageMagick as a file name hint.
4674
4666@item :rotation 4675@item :rotation
4667Specifies a rotation angle in degrees. 4676Specifies a rotation angle in degrees.
4668 4677
diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi
index 8e394b5d92d..8384c31a380 100644
--- a/doc/lispref/edebug.texi
+++ b/doc/lispref/edebug.texi
@@ -1132,14 +1132,14 @@ from the macro definition with @code{def-edebug-spec}. Adding
1132definitions in Lisp, but @code{def-edebug-spec} makes it possible to 1132definitions in Lisp, but @code{def-edebug-spec} makes it possible to
1133define Edebug specifications for special forms implemented in C. 1133define Edebug specifications for special forms implemented in C.
1134 1134
1135@deffn Macro def-edebug-spec macro specification 1135@defmac def-edebug-spec macro specification
1136Specify which expressions of a call to macro @var{macro} are forms to be 1136Specify which expressions of a call to macro @var{macro} are forms to be
1137evaluated. @var{specification} should be the edebug specification. 1137evaluated. @var{specification} should be the edebug specification.
1138Neither argument is evaluated. 1138Neither argument is evaluated.
1139 1139
1140The @var{macro} argument can actually be any symbol, not just a macro 1140The @var{macro} argument can actually be any symbol, not just a macro
1141name. 1141name.
1142@end deffn 1142@end defmac
1143 1143
1144Here is a table of the possibilities for @var{specification} and how each 1144Here is a table of the possibilities for @var{specification} and how each
1145directs processing of arguments. 1145directs processing of arguments.
diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi
index 87cfcfa532c..8a10fbf0c47 100644
--- a/doc/lispref/errors.texi
+++ b/doc/lispref/errors.texi
@@ -7,12 +7,11 @@
7@appendix Standard Errors 7@appendix Standard Errors
8@cindex standard errors 8@cindex standard errors
9 9
10 Here is a list of the more important error symbols in standard Emacs, 10 Here is a list of the more important error symbols in standard Emacs, grouped
11grouped by concept. The list includes each symbol's message (on the 11by concept. The list includes each symbol's message and a cross reference
12@code{error-message} property of the symbol) and a cross reference to a 12to a description of how the error can occur.
13description of how the error can occur.
14 13
15 Each error symbol has an @code{error-conditions} property that is a 14 Each error symbol has an set of parent error conditions that is a
16list of symbols. Normally this list includes the error symbol itself 15list of symbols. Normally this list includes the error symbol itself
17and the symbol @code{error}. Occasionally it includes additional 16and the symbol @code{error}. Occasionally it includes additional
18symbols, which are intermediate classifications, narrower than 17symbols, which are intermediate classifications, narrower than
@@ -24,8 +23,6 @@ conditions, that means it has none.
24 As a special exception, the error symbol @code{quit} does not have the 23 As a special exception, the error symbol @code{quit} does not have the
25condition @code{error}, because quitting is not considered an error. 24condition @code{error}, because quitting is not considered an error.
26 25
27@c You can grep for "(put 'foo 'error-conditions ...) to find
28@c examples defined in Lisp. E.g., soap-client.el, sasl.el.
29 Most of these error symbols are defined in C (mainly @file{data.c}), 26 Most of these error symbols are defined in C (mainly @file{data.c}),
30but some are defined in Lisp. For example, the file @file{userlock.el} 27but some are defined in Lisp. For example, the file @file{userlock.el}
31defines the @code{file-locked} and @code{file-supersession} errors. 28defines the @code{file-locked} and @code{file-supersession} errors.
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 77b097ae90a..1f7169522cc 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -776,6 +776,14 @@ return information about actual files or directories, so their
776arguments must all exist as actual files or directories unless 776arguments must all exist as actual files or directories unless
777otherwise noted. 777otherwise noted.
778 778
779@cindex file names, trailing whitespace
780@cindex trailing blanks in file names
781Be careful with file names that end in blanks: some filesystems
782(notably, MS-Windows) will ignore trailing whitespace in file names,
783and return information about the file after stripping those blanks
784from the name, not about the file whose name you passed to the
785functions described in this section.
786
779@menu 787@menu
780* Testing Accessibility:: Is a given file readable? Writable? 788* Testing Accessibility:: Is a given file readable? Writable?
781* Kinds of Files:: Is it a directory? A symbolic link? 789* Kinds of Files:: Is it a directory? A symbolic link?
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 01d2d1d6c45..370098c8b62 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -446,7 +446,7 @@ default parameters by supplying their own parameters.
446If you invoke Emacs with command-line options that specify frame 446If you invoke Emacs with command-line options that specify frame
447appearance, those options take effect by adding elements to either 447appearance, those options take effect by adding elements to either
448@code{initial-frame-alist} or @code{default-frame-alist}. Options 448@code{initial-frame-alist} or @code{default-frame-alist}. Options
449which affect just the initial frame, such as @samp{-geometry} and 449which affect just the initial frame, such as @samp{--geometry} and
450@samp{--maximized}, add to @code{initial-frame-alist}; the others add 450@samp{--maximized}, add to @code{initial-frame-alist}; the others add
451to @code{default-frame-alist}. @pxref{Emacs Invocation,, Command Line 451to @code{default-frame-alist}. @pxref{Emacs Invocation,, Command Line
452Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}. 452Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}.
@@ -1362,7 +1362,7 @@ Terminals}.
1362@node Input Focus 1362@node Input Focus
1363@section Input Focus 1363@section Input Focus
1364@cindex input focus 1364@cindex input focus
1365@c @cindex selected frame Duplicates selected-frame 1365@c @cindex selected frame Duplicates selected-frame, same for selected-window.
1366 1366
1367At any time, one frame in Emacs is the @dfn{selected frame}. The selected 1367At any time, one frame in Emacs is the @dfn{selected frame}. The selected
1368window always resides on the selected frame. 1368window always resides on the selected frame.
@@ -2391,6 +2391,7 @@ displays returned by @code{display-mm-height} and
2391@code{display-mm-width} in case the system provides incorrect values. 2391@code{display-mm-width} in case the system provides incorrect values.
2392@end defopt 2392@end defopt
2393 2393
2394@cindex backing store
2394@defun display-backing-store &optional display 2395@defun display-backing-store &optional display
2395This function returns the backing store capability of the display. 2396This function returns the backing store capability of the display.
2396Backing store means recording the pixels of windows (and parts of 2397Backing store means recording the pixels of windows (and parts of
@@ -2402,6 +2403,7 @@ Values can be the symbols @code{always}, @code{when-mapped}, or
2402when the question is inapplicable to a certain kind of display. 2403when the question is inapplicable to a certain kind of display.
2403@end defun 2404@end defun
2404 2405
2406@cindex SaveUnder feature
2405@defun display-save-under &optional display 2407@defun display-save-under &optional display
2406This function returns non-@code{nil} if the display supports the 2408This function returns non-@code{nil} if the display supports the
2407SaveUnder feature. That feature is used by pop-up windows 2409SaveUnder feature. That feature is used by pop-up windows
diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi
index 14601de1814..9daf01cd0a2 100644
--- a/doc/lispref/lists.texi
+++ b/doc/lispref/lists.texi
@@ -270,8 +270,10 @@ are numbered starting with zero, so the @sc{car} of @var{list} is
270element number zero. If the length of @var{list} is @var{n} or less, 270element number zero. If the length of @var{list} is @var{n} or less,
271the value is @code{nil}. 271the value is @code{nil}.
272 272
273If @var{n} is negative, @code{nth} returns the first element of 273@c Behavior for -ve n undefined since 2013/08; see bug#15059.
274@var{list}. 274@ignore
275If @var{n} is negative, @code{nth} returns the first element of @var{list}.
276@end ignore
275 277
276@example 278@example
277@group 279@group
@@ -281,10 +283,6 @@ If @var{n} is negative, @code{nth} returns the first element of
281@group 283@group
282(nth 10 '(1 2 3 4)) 284(nth 10 '(1 2 3 4))
283 @result{} nil 285 @result{} nil
284@end group
285@group
286(nth -3 '(1 2 3 4))
287 @result{} 1
288 286
289(nth n x) @equiv{} (car (nthcdr n x)) 287(nth n x) @equiv{} (car (nthcdr n x))
290@end group 288@end group
@@ -300,7 +298,8 @@ This function returns the @var{n}th @sc{cdr} of @var{list}. In other
300words, it skips past the first @var{n} links of @var{list} and returns 298words, it skips past the first @var{n} links of @var{list} and returns
301what follows. 299what follows.
302 300
303If @var{n} is zero or negative, @code{nthcdr} returns all of 301@c "or negative" removed 2013/08; see bug#15059.
302If @var{n} is zero, @code{nthcdr} returns all of
304@var{list}. If the length of @var{list} is @var{n} or less, 303@var{list}. If the length of @var{list} is @var{n} or less,
305@code{nthcdr} returns @code{nil}. 304@code{nthcdr} returns @code{nil}.
306 305
@@ -314,7 +313,7 @@ If @var{n} is zero or negative, @code{nthcdr} returns all of
314 @result{} nil 313 @result{} nil
315@end group 314@end group
316@group 315@group
317(nthcdr -3 '(1 2 3 4)) 316(nthcdr 0 '(1 2 3 4))
318 @result{} (1 2 3 4) 317 @result{} (1 2 3 4)
319@end group 318@end group
320@end example 319@end example
diff --git a/doc/lispref/markers.texi b/doc/lispref/markers.texi
index cae14ab9a78..d94908994e9 100644
--- a/doc/lispref/markers.texi
+++ b/doc/lispref/markers.texi
@@ -216,11 +216,14 @@ new marker that points to the same place and the same buffer as does
216The new marker's insertion type is specified by the argument 216The new marker's insertion type is specified by the argument
217@var{insertion-type}. @xref{Marker Insertion Types}. 217@var{insertion-type}. @xref{Marker Insertion Types}.
218 218
219@c This behavior used to be documented until 2013/08.
220@ignore
219If passed an integer argument less than 1, @code{copy-marker} returns a 221If passed an integer argument less than 1, @code{copy-marker} returns a
220new marker that points to the beginning of the current buffer. If 222new marker that points to the beginning of the current buffer. If
221passed an integer argument greater than the length of the buffer, 223passed an integer argument greater than the length of the buffer,
222@code{copy-marker} returns a new marker that points to the end of the 224@code{copy-marker} returns a new marker that points to the end of the
223buffer. 225buffer.
226@end ignore
224 227
225@example 228@example
226@group 229@group
@@ -279,6 +282,8 @@ This function returns the position that @var{marker} points to, or
279This function returns the buffer that @var{marker} points into, or 282This function returns the buffer that @var{marker} points into, or
280@code{nil} if it points nowhere. 283@code{nil} if it points nowhere.
281 284
285@c FIXME: The `buffer' argument of `set-marker' already defaults to
286@c the current buffer, why use `(current-buffer)' explicitly here?
282@example 287@example
283@group 288@group
284(setq m (make-marker)) 289(setq m (make-marker))
@@ -349,11 +354,15 @@ This function moves @var{marker} to @var{position}
349in @var{buffer}. If @var{buffer} is not provided, it defaults to 354in @var{buffer}. If @var{buffer} is not provided, it defaults to
350the current buffer. 355the current buffer.
351 356
357@c This behavior used to be documented until 2013/08.
358@ignore
352If @var{position} is less than 1, @code{set-marker} moves @var{marker} 359If @var{position} is less than 1, @code{set-marker} moves @var{marker}
353to the beginning of the buffer. If @var{position} is greater than the 360to the beginning of the buffer. If @var{position} is greater than the
354size of the buffer (@pxref{Point}), @code{set-marker} moves marker to 361size of the buffer (@pxref{Point}), @code{set-marker} moves marker to
355the end of the buffer. If @var{position} is @code{nil} or a marker 362the end of the buffer.
356that points nowhere, then @var{marker} is set to point nowhere. 363@end ignore
364If @var{position} is @code{nil} or a marker that points nowhere, then
365@var{marker} is set to point nowhere.
357 366
358The value returned is @var{marker}. 367The value returned is @var{marker}.
359 368
@@ -384,7 +393,7 @@ This is another name for @code{set-marker}.
384@node The Mark 393@node The Mark
385@section The Mark 394@section The Mark
386@cindex mark, the 395@cindex mark, the
387@cindex mark ring 396@c @cindex the mark?
388 397
389 Each buffer has a special marker, which is designated @dfn{the 398 Each buffer has a special marker, which is designated @dfn{the
390mark}. When a buffer is newly created, this marker exists but does 399mark}. When a buffer is newly created, this marker exists but does
@@ -423,6 +432,7 @@ the mark is active. This is the main motivation for using Transient
423Mark mode. (Another is that this enables highlighting of the region 432Mark mode. (Another is that this enables highlighting of the region
424when the mark is active. @xref{Display}.) 433when the mark is active. @xref{Display}.)
425 434
435@cindex mark ring
426 In addition to the mark, each buffer has a @dfn{mark ring} which is a 436 In addition to the mark, each buffer has a @dfn{mark ring} which is a
427list of markers containing previous values of the mark. When editing 437list of markers containing previous values of the mark. When editing
428commands change the mark, they should normally save the old value of the 438commands change the mark, they should normally save the old value of the
@@ -644,7 +654,12 @@ more marks than this are pushed onto the @code{mark-ring},
644 654
645@node The Region 655@node The Region
646@section The Region 656@section The Region
647@cindex region (between point and mark) 657@c The index entry must be just ``region'' to make it the first hit
658@c when the user types ``i region RET'', because otherwise the Info
659@c reader will present substring matches in alphabetical order,
660@c putting this one near the end, with something utterly unrelated as
661@c the first hit.
662@cindex region
648 663
649 The text between point and the mark is known as @dfn{the region}. 664 The text between point and the mark is known as @dfn{the region}.
650Various functions operate on text delimited by point and the mark, but 665Various functions operate on text delimited by point and the mark, but
@@ -668,6 +683,7 @@ integer). This is the position of either point or the mark, whichever is
668larger. 683larger.
669@end defun 684@end defun
670 685
686@c FIXME: Mention it in tips.texi?
671 Instead of using @code{region-beginning} and @code{region-end}, a 687 Instead of using @code{region-beginning} and @code{region-end}, a
672command designed to operate on a region should normally use 688command designed to operate on a region should normally use
673@code{interactive} with the @samp{r} specification to find the 689@code{interactive} with the @samp{r} specification to find the
@@ -680,6 +696,8 @@ mark is active, and there is a valid region in the buffer. This
680function is intended to be used by commands that operate on the 696function is intended to be used by commands that operate on the
681region, instead of on text near point, when the mark is active. 697region, instead of on text near point, when the mark is active.
682 698
699@cindex empty region
700@vindex use-empty-active-region
683A region is valid if it has a non-zero size, or if the user option 701A region is valid if it has a non-zero size, or if the user option
684@code{use-empty-active-region} is non-@code{nil} (by default, it is 702@code{use-empty-active-region} is non-@code{nil} (by default, it is
685@code{nil}). The function @code{region-active-p} is similar to 703@code{nil}). The function @code{region-active-p} is similar to
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 59729380ea7..180fef7241d 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -3381,6 +3381,7 @@ of Lisp sexps and adapts it to non-Lisp languages.
3381 3381
3382@node SMIE 3382@node SMIE
3383@subsection Simple Minded Indentation Engine 3383@subsection Simple Minded Indentation Engine
3384@cindex SMIE
3384 3385
3385SMIE is a package that provides a generic navigation and indentation 3386SMIE is a package that provides a generic navigation and indentation
3386engine. Based on a very simple parser using an ``operator precedence 3387engine. Based on a very simple parser using an ``operator precedence
@@ -3548,6 +3549,8 @@ simply ignored.
3548 3549
3549@node SMIE Grammar 3550@node SMIE Grammar
3550@subsubsection Defining the Grammar of a Language 3551@subsubsection Defining the Grammar of a Language
3552@cindex SMIE grammar
3553@cindex grammar, SMIE
3551 3554
3552The usual way to define the SMIE grammar of a language is by 3555The usual way to define the SMIE grammar of a language is by
3553defining a new global variable that holds the precedence table by 3556defining a new global variable that holds the precedence table by
@@ -3623,6 +3626,8 @@ formally as left associative.
3623 3626
3624@node SMIE Lexer 3627@node SMIE Lexer
3625@subsubsection Defining Tokens 3628@subsubsection Defining Tokens
3629@cindex SMIE lexer
3630@cindex defining tokens, SMIE
3626 3631
3627SMIE comes with a predefined lexical analyzer which uses syntax tables 3632SMIE comes with a predefined lexical analyzer which uses syntax tables
3628in the following way: any sequence of characters that have word or 3633in the following way: any sequence of characters that have word or
@@ -3757,6 +3762,7 @@ surrounding text to find ad-hoc clues.
3757 3762
3758@node SMIE Indentation 3763@node SMIE Indentation
3759@subsubsection Specifying Indentation Rules 3764@subsubsection Specifying Indentation Rules
3765@cindex indentation rules, SMIE
3760 3766
3761Based on the provided grammar, SMIE will be able to provide automatic 3767Based on the provided grammar, SMIE will be able to provide automatic
3762indentation without any extra effort. But in practice, this default 3768indentation without any extra effort. But in practice, this default
diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi
index 090310c5545..f351829e4cf 100644
--- a/doc/lispref/nonascii.texi
+++ b/doc/lispref/nonascii.texi
@@ -248,6 +248,7 @@ unibyte string, it is returned unchanged. Use this function for
248characters. 248characters.
249@end defun 249@end defun
250 250
251@c FIXME: Should `@var{character}' be `@var{byte}'?
251@defun byte-to-string byte 252@defun byte-to-string byte
252@cindex byte to string 253@cindex byte to string
253This function returns a unibyte string containing a single byte of 254This function returns a unibyte string containing a single byte of
@@ -401,6 +402,8 @@ specifies how the character behaves and how it should be handled
401during text processing and display. Thus, character properties are an 402during text processing and display. Thus, character properties are an
402important part of specifying the character's semantics. 403important part of specifying the character's semantics.
403 404
405@c FIXME: Use the latest URI of this chapter?
406@c http://www.unicode.org/versions/latest/ch04.pdf
404 On the whole, Emacs follows the Unicode Standard in its implementation 407 On the whole, Emacs follows the Unicode Standard in its implementation
405of character properties. In particular, Emacs supports the 408of character properties. In particular, Emacs supports the
406@uref{http://www.unicode.org/reports/tr23/, Unicode Character Property 409@uref{http://www.unicode.org/reports/tr23/, Unicode Character Property
diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi
index e8b6166f63c..69f1b80c431 100644
--- a/doc/lispref/positions.texi
+++ b/doc/lispref/positions.texi
@@ -5,6 +5,7 @@
5@node Positions 5@node Positions
6@chapter Positions 6@chapter Positions
7@cindex position (in buffer) 7@cindex position (in buffer)
8@cindex buffer position
8 9
9 A @dfn{position} is the index of a character in the text of a buffer. 10 A @dfn{position} is the index of a character in the text of a buffer.
10More precisely, a position identifies the place between two characters 11More precisely, a position identifies the place between two characters
@@ -146,9 +147,13 @@ that.
146 147
147@deffn Command goto-char position 148@deffn Command goto-char position
148This function sets point in the current buffer to the value 149This function sets point in the current buffer to the value
149@var{position}. If @var{position} is less than 1, it moves point to the 150@var{position}.
150beginning of the buffer. If @var{position} is greater than the length 151@c This behavior used to be documented until 2013/08.
151of the buffer, it moves point to the end. 152@ignore
153If @var{position} is less than 1, it moves point to the beginning of
154the buffer. If @var{position} is greater than the length of the
155buffer, it moves point to the end.
156@end ignore
152 157
153If narrowing is in effect, @var{position} still counts from the 158If narrowing is in effect, @var{position} still counts from the
154beginning of the buffer, but point cannot go outside the accessible 159beginning of the buffer, but point cannot go outside the accessible
@@ -191,8 +196,8 @@ whether a given character is part of a word. @xref{Syntax Tables}.
191 196
192@deffn Command forward-word &optional count 197@deffn Command forward-word &optional count
193This function moves point forward @var{count} words (or backward if 198This function moves point forward @var{count} words (or backward if
194@var{count} is negative). If @var{count} is @code{nil}, it moves 199@var{count} is negative). If @var{count} is omitted or @code{nil}, it
195forward one word. 200defaults to 1.
196 201
197``Moving one word'' means moving until point crosses a 202``Moving one word'' means moving until point crosses a
198word-constituent character and then encounters a word-separator 203word-constituent character and then encounters a word-separator
@@ -210,7 +215,7 @@ If @code{inhibit-field-text-motion} is non-@code{nil},
210this function ignores field boundaries. 215this function ignores field boundaries.
211 216
212In an interactive call, @var{count} is specified by the numeric prefix 217In an interactive call, @var{count} is specified by the numeric prefix
213argument. If @var{count} is omitted or @code{nil}, it defaults to 1. 218argument.
214@end deffn 219@end deffn
215 220
216@deffn Command backward-word &optional count 221@deffn Command backward-word &optional count
@@ -483,7 +488,7 @@ Display}.
483 These functions scan text to determine where screen lines break, and 488 These functions scan text to determine where screen lines break, and
484thus take time proportional to the distance scanned. If you intend to 489thus take time proportional to the distance scanned. If you intend to
485use them heavily, Emacs provides caches which may improve the 490use them heavily, Emacs provides caches which may improve the
486performance of your code. @xref{Truncation, cache-long-line-scans}. 491performance of your code. @xref{Truncation, cache-long-scans}.
487 492
488@defun vertical-motion count &optional window 493@defun vertical-motion count &optional window
489This function moves point to the start of the screen line @var{count} 494This function moves point to the start of the screen line @var{count}
@@ -805,7 +810,7 @@ thousands of times in the Lisp sources of Emacs.
805buffer, use @code{save-current-buffer} or @code{with-current-buffer} 810buffer, use @code{save-current-buffer} or @code{with-current-buffer}
806instead (@pxref{Current Buffer}). If you need to save or restore 811instead (@pxref{Current Buffer}). If you need to save or restore
807window configurations, see the forms described in @ref{Window 812window configurations, see the forms described in @ref{Window
808Configurations} and in @ref{Frame Configurations}. 813Configurations} and in @ref{Frame Configurations}. @c frameset?
809 814
810@defspec save-excursion body@dots{} 815@defspec save-excursion body@dots{}
811@cindex mark excursion 816@cindex mark excursion
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 7cace70ad07..c4250f2f0ba 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -240,6 +240,7 @@ Major and minor modes can add functions to
240copied out of the buffer. 240copied out of the buffer.
241@end defun 241@end defun
242 242
243@c FIXME: `filter-buffer-substring-function' should be documented.
243@defvar filter-buffer-substring-functions 244@defvar filter-buffer-substring-functions
244This variable is a wrapper hook (@pxref{Running Hooks}), whose members 245This variable is a wrapper hook (@pxref{Running Hooks}), whose members
245should be functions that accept four arguments: @var{fun}, 246should be functions that accept four arguments: @var{fun},
@@ -365,7 +366,8 @@ not relocate the marker, depending on the marker's insertion type
365the inserted text, regardless of the markers' insertion type. 366the inserted text, regardless of the markers' insertion type.
366 367
367 Insertion functions signal an error if the current buffer is 368 Insertion functions signal an error if the current buffer is
368read-only or if they insert within read-only text. 369read-only (@pxref{Read Only Buffers}) or if they insert within
370read-only text (@pxref{Special Properties}).
369 371
370 These functions copy text characters from strings and buffers along 372 These functions copy text characters from strings and buffers along
371with their properties. The inserted characters have exactly the same 373with their properties. The inserted characters have exactly the same
@@ -421,10 +423,10 @@ insertion point. @xref{Sticky Properties}.
421 423
422@defun insert-buffer-substring from-buffer-or-name &optional start end 424@defun insert-buffer-substring from-buffer-or-name &optional start end
423This function inserts a portion of buffer @var{from-buffer-or-name} 425This function inserts a portion of buffer @var{from-buffer-or-name}
424(which must already exist) into the current buffer before point. The 426into the current buffer before point. The text inserted is the region
425text inserted is the region between @var{start} and @var{end}. (These 427between @var{start} (inclusive) and @var{end} (exclusive). (These
426arguments default to the beginning and end of the accessible portion of 428arguments default to the beginning and end of the accessible portion
427that buffer.) This function returns @code{nil}. 429of that buffer.) This function returns @code{nil}.
428 430
429In this example, the form is executed with buffer @samp{bar} as the 431In this example, the form is executed with buffer @samp{bar} as the
430current buffer. We assume that buffer @samp{bar} is initially empty. 432current buffer. We assume that buffer @samp{bar} is initially empty.
@@ -482,6 +484,7 @@ it except to install it on a keymap.
482 484
483In an interactive call, @var{count} is the numeric prefix argument. 485In an interactive call, @var{count} is the numeric prefix argument.
484 486
487@c FIXME: This variable is obsolete since 23.1.
485Self-insertion translates the input character through 488Self-insertion translates the input character through
486@code{translation-table-for-input}. @xref{Translation of Characters}. 489@code{translation-table-for-input}. @xref{Translation of Characters}.
487 490
@@ -776,6 +779,7 @@ is deleted. If point is on a nonblank line, the command deletes all
776blank lines immediately following it. 779blank lines immediately following it.
777 780
778A blank line is defined as a line containing only tabs and spaces. 781A blank line is defined as a line containing only tabs and spaces.
782@c and the Newline character?
779 783
780@code{delete-blank-lines} returns @code{nil}. 784@code{delete-blank-lines} returns @code{nil}.
781@end deffn 785@end deffn
@@ -920,6 +924,7 @@ processes the text according to @code{yank-handled-properties} and
920text anyway.) 924text anyway.)
921@end defun 925@end defun
922 926
927@c FIXME: Add an index for yank-handler.
923 If you put a @code{yank-handler} text property on all or part of a 928 If you put a @code{yank-handler} text property on all or part of a
924string, that alters how @code{insert-for-yank} inserts the string. If 929string, that alters how @code{insert-for-yank} inserts the string. If
925different parts of the string have different @code{yank-handler} 930different parts of the string have different @code{yank-handler}
@@ -1284,8 +1289,8 @@ This is an extensible undo item, which is undone by calling
1284@item (apply @var{delta} @var{beg} @var{end} @var{funname} . @var{args}) 1289@item (apply @var{delta} @var{beg} @var{end} @var{funname} . @var{args})
1285This is an extensible undo item, which records a change limited to the 1290This is an extensible undo item, which records a change limited to the
1286range @var{beg} to @var{end}, which increased the size of the buffer 1291range @var{beg} to @var{end}, which increased the size of the buffer
1287by @var{delta}. It is undone by calling @var{funname} with arguments 1292by @var{delta} characters. It is undone by calling @var{funname} with
1288@var{args}. 1293arguments @var{args}.
1289 1294
1290This kind of element enables undo limited to a region to determine 1295This kind of element enables undo limited to a region to determine
1291whether the element pertains to that region. 1296whether the element pertains to that region.
@@ -1376,7 +1381,8 @@ possible to undo either previous changes or any subsequent changes. If
1376the undo list of @var{buffer-or-name} is already disabled, this function 1381the undo list of @var{buffer-or-name} is already disabled, this function
1377has no effect. 1382has no effect.
1378 1383
1379This function returns @code{nil}. 1384In an interactive call, BUFFER-OR-NAME is the current buffer. You
1385cannot specify any other buffer. This function returns @code{nil}.
1380@end deffn 1386@end deffn
1381 1387
1382 As editing continues, undo lists get longer and longer. To prevent 1388 As editing continues, undo lists get longer and longer. To prevent
@@ -1493,6 +1499,7 @@ the header lines. If @var{citation-regexp} is a string, it is used as
1493a regular expression; if it matches the beginning of a line, that line 1499a regular expression; if it matches the beginning of a line, that line
1494is treated as a citation marker. 1500is treated as a citation marker.
1495 1501
1502@c FIXME: "That mode" is confusing. It isn't a major/minor mode.
1496Ordinarily, @code{fill-individual-paragraphs} regards each change in 1503Ordinarily, @code{fill-individual-paragraphs} regards each change in
1497indentation as starting a new paragraph. If 1504indentation as starting a new paragraph. If
1498@code{fill-individual-varying-indent} is non-@code{nil}, then only 1505@code{fill-individual-varying-indent} is non-@code{nil}, then only
@@ -1606,11 +1613,13 @@ Manual}.
1606@defvar use-hard-newlines 1613@defvar use-hard-newlines
1607If this variable is non-@code{nil}, the filling functions do not delete 1614If this variable is non-@code{nil}, the filling functions do not delete
1608newlines that have the @code{hard} text property. These ``hard 1615newlines that have the @code{hard} text property. These ``hard
1609newlines'' act as paragraph separators. 1616newlines'' act as paragraph separators. @xref{Hard and Soft
1617Newlines,, Hard and Soft Newlines, emacs, The GNU Emacs Manual}.
1610@end defvar 1618@end defvar
1611 1619
1612@node Margins 1620@node Margins
1613@section Margins for Filling 1621@section Margins for Filling
1622@cindex margins, filling
1614 1623
1615@defopt fill-prefix 1624@defopt fill-prefix
1616This buffer-local variable, if non-@code{nil}, specifies a string of 1625This buffer-local variable, if non-@code{nil}, specifies a string of
@@ -1800,6 +1809,7 @@ prefix or @code{nil}, meaning it has failed to determine a prefix.
1800@cindex filling, automatic 1809@cindex filling, automatic
1801@cindex Auto Fill mode 1810@cindex Auto Fill mode
1802 1811
1812@c FIXME: I don't think any of the variables below is a/an normal/abnormal hook.
1803 Auto Fill mode is a minor mode that fills lines automatically as text 1813 Auto Fill mode is a minor mode that fills lines automatically as text
1804is inserted. This section describes the hook used by Auto Fill mode. 1814is inserted. This section describes the hook used by Auto Fill mode.
1805For a description of functions that you can call explicitly to fill and 1815For a description of functions that you can call explicitly to fill and
@@ -1941,10 +1951,10 @@ its @code{sort-subr} call looks like this:
1941@group 1951@group
1942(sort-subr reverse 1952(sort-subr reverse
1943 (function 1953 (function
1944 (lambda () 1954 (lambda ()
1945 (while (and (not (eobp)) 1955 (while (and (not (eobp))
1946 (looking-at paragraph-separate)) 1956 (looking-at paragraph-separate))
1947 (forward-line 1)))) 1957 (forward-line 1))))
1948 'forward-paragraph) 1958 'forward-paragraph)
1949@end group 1959@end group
1950@end example 1960@end example
@@ -2130,9 +2140,12 @@ line and point.
2130When called interactively, @var{column} is the value of prefix numeric 2140When called interactively, @var{column} is the value of prefix numeric
2131argument. If @var{column} is not an integer, an error is signaled. 2141argument. If @var{column} is not an integer, an error is signaled.
2132 2142
2143@c This behavior used to be documented until 2013/08.
2144@ignore
2133If column @var{column} is beyond the end of the line, point moves to 2145If column @var{column} is beyond the end of the line, point moves to
2134the end of the line. If @var{column} is negative, point moves to the 2146the end of the line. If @var{column} is negative, point moves to the
2135beginning of the line. 2147beginning of the line.
2148@end ignore
2136 2149
2137If it is impossible to move to column @var{column} because that is in 2150If it is impossible to move to column @var{column} because that is in
2138the middle of a multicolumn character such as a tab, point moves to the 2151the middle of a multicolumn character such as a tab, point moves to the
@@ -2341,6 +2354,8 @@ code.
2341For example, if @var{count} is 3, this command adds 3 columns of 2354For example, if @var{count} is 3, this command adds 3 columns of
2342indentation to each of the lines beginning in the region specified. 2355indentation to each of the lines beginning in the region specified.
2343 2356
2357@c FIXME: I suggest using message-indent-citation as the example, or
2358@c just remove this paragraph. --xfq
2344In Mail mode, @kbd{C-c C-y} (@code{mail-yank-original}) uses 2359In Mail mode, @kbd{C-c C-y} (@code{mail-yank-original}) uses
2345@code{indent-rigidly} to indent the text copied from the message being 2360@code{indent-rigidly} to indent the text copied from the message being
2346replied to. 2361replied to.
@@ -2518,7 +2533,7 @@ This is the contents of the 5th foo.
2518@end group 2533@end group
2519 2534
2520@group 2535@group
2521(capitalize-region 1 44) 2536(capitalize-region 1 37)
2522@result{} nil 2537@result{} nil
2523 2538
2524---------- Buffer: foo ---------- 2539---------- Buffer: foo ----------
@@ -3024,6 +3039,7 @@ Point}.
3024 3039
3025@table @code 3040@table @code
3026@cindex property category of text character 3041@cindex property category of text character
3042@c FIXME: Isn't @kindex for keyboard commands?
3027@kindex category @r{(text property)} 3043@kindex category @r{(text property)}
3028@item category 3044@item category
3029If a character has a @code{category} property, we call it the 3045If a character has a @code{category} property, we call it the
@@ -4012,6 +4028,7 @@ A rectangle is represented by a list of strings.
4012This represents a window configuration to restore in one frame, and a 4028This represents a window configuration to restore in one frame, and a
4013position to jump to in the current buffer. 4029position to jump to in the current buffer.
4014 4030
4031@c FIXME: Mention frameset here.
4015@item @code{(@var{frame-configuration} @var{position})} 4032@item @code{(@var{frame-configuration} @var{position})}
4016This represents a frame configuration to restore, and a position 4033This represents a frame configuration to restore, and a position
4017to jump to in the current buffer. 4034to jump to in the current buffer.
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index 557add738ba..866f3774999 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -1649,8 +1649,7 @@ non-@code{nil} given that value. Many commonly-encountered file
1649variables have @code{safe-local-variable} properties; these include 1649variables have @code{safe-local-variable} properties; these include
1650@code{fill-column}, @code{fill-prefix}, and @code{indent-tabs-mode}. 1650@code{fill-column}, @code{fill-prefix}, and @code{indent-tabs-mode}.
1651For boolean-valued variables that are safe, use @code{booleanp} as the 1651For boolean-valued variables that are safe, use @code{booleanp} as the
1652property value. Lambda expressions should be quoted so that 1652property value.
1653@code{describe-variable} can display the predicate.
1654 1653
1655 When defining a user option using @code{defcustom}, you can set its 1654 When defining a user option using @code{defcustom}, you can set its
1656@code{safe-local-variable} property by adding the arguments 1655@code{safe-local-variable} property by adding the arguments
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index 51a52218633..13c9ca53222 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -2569,6 +2569,7 @@ so @code{window-point} will stay behind text inserted there.
2569@node Window Start and End 2569@node Window Start and End
2570@section The Window Start and End Positions 2570@section The Window Start and End Positions
2571@cindex window start position 2571@cindex window start position
2572@cindex display-start position
2572 2573
2573 Each window maintains a marker used to keep track of a buffer position 2574 Each window maintains a marker used to keep track of a buffer position
2574that specifies where in the buffer display should start. This position 2575that specifies where in the buffer display should start. This position
@@ -3194,6 +3195,7 @@ The value returned is @var{columns}.
3194 Here is how you can determine whether a given position @var{position} 3195 Here is how you can determine whether a given position @var{position}
3195is off the screen due to horizontal scrolling: 3196is off the screen due to horizontal scrolling:
3196 3197
3198@c FIXME: Maybe hscroll-on-screen-p is a better name?
3197@example 3199@example
3198@group 3200@group
3199(defun hscroll-on-screen (window position) 3201(defun hscroll-on-screen (window position)
diff --git a/doc/man/ChangeLog b/doc/man/ChangeLog
index 8b550dc4417..0235b5f7b9b 100644
--- a/doc/man/ChangeLog
+++ b/doc/man/ChangeLog
@@ -1,3 +1,7 @@
12013-08-31 Ulrich Müller <ulm@gentoo.org>
2
3 * emacs.1: Update manual links.
4
12013-04-20 Petr Hracek <phracek@redhat.com> (tiny change) 52013-04-20 Petr Hracek <phracek@redhat.com> (tiny change)
2 6
3 * emacs.1: Add some more command-line options. (Bug#14165) 7 * emacs.1: Add some more command-line options. (Bug#14165)
diff --git a/doc/man/emacs.1 b/doc/man/emacs.1
index 9149be2c523..a306edc3ca9 100644
--- a/doc/man/emacs.1
+++ b/doc/man/emacs.1
@@ -445,7 +445,7 @@ Gives frames menu bars if
445.IR on ; 445.IR on ;
446don't have menu bars if 446don't have menu bars if
447.IR off . 447.IR off .
448See the Emacs manual, sections "Lucid Resources" and "LessTif 448See the Emacs manual, sections "Lucid Resources" and "Motif
449Resources", for how to control the appearance of the menu bar 449Resources", for how to control the appearance of the menu bar
450if you have one. 450if you have one.
451.TP 451.TP
@@ -492,7 +492,7 @@ The scroll bar width in pixels, equivalent to the frame parameter
492Font name for pop-up menu items, in non-toolkit versions of 492Font name for pop-up menu items, in non-toolkit versions of
493.IR Emacs . 493.IR Emacs .
494(For toolkit versions, see the Emacs manual, sections 494(For toolkit versions, see the Emacs manual, sections
495"Lucid Resources" and "LessTif Resources".) 495"Lucid Resources" and "Motif Resources".)
496.TP 496.TP
497.BR selectionTimeout " (class " SelectionTimeout ) 497.BR selectionTimeout " (class " SelectionTimeout )
498Number of milliseconds to wait for a selection reply. 498Number of milliseconds to wait for a selection reply.
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 7f5c70e07e3..22148deace0 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,168 @@
12013-08-28 Paul Eggert <eggert@cs.ucla.edu>
2
3 * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
4 for portability to hosts where /bin/sh has problems.
5
62013-08-28 Stefan Monnier <monnier@iro.umontreal.ca>
7
8 Try to reduce redundancy in doc/misc/Makefile.in.
9 * Makefile.in (DOCMISC_W32): New var to replace DOCMISC_*_W32.
10 (TARGETS): New intermediate variable.
11 (DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS): Use it.
12
132013-08-27 Glenn Morris <rgm@gnu.org>
14
15 * efaq.texi (Emacs for MS-Windows): Update location of MS FAQ.
16
17 * efaq.texi: Rename from faq.texi, to match its output files.
18 * Makefile.in: Update for faq.texi name change.
19
20 * efaq-w32.texi (EMACSVER): Get it from emacsver.texi.
21
22 * Makefile.in (webhack): Remove; it's nothing to do with Emacs.
23
24 * efaq-w32.texi: Move here from the web-pages repository.
25 * Makefile.in (DOCMISC_DVI_W32, DOCMISC_HTML_W32, DOCMISC_INFO_W32)
26 (DOCMISC_PDF_W32, DOCMISC_PS_W32): New configure output variables.
27 (INFO_COMMON, INFO_INSTALL): New derivations of INFO_TARGETS.
28 (DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS):
29 Add DOCMISC_*_W32 variables.
30 (echo-info): Use INFO_INSTALL rather than INFO_TARGETS.
31 (efaq_w32_deps): New variable.
32 (efaq-w32, $(buildinfodir)/efaq-w32$(INFO_EXT), efaq-w32.dvi)
33 (efaq-w32.pdf, efaq-w32.html): New rules.
34 (clean): Remove efaq-w32 products.
35
362013-08-19 Katsumi Yamaoka <yamaoka@jpl.org>
37
38 * emacs-mime.texi (Encoding Customization): Exclude iso-2022-jp-2 and
39 shift_jis from the default value set to mm-coding-system-priorities for
40 Japanese users.
41
422013-08-13 Glenn Morris <rgm@gnu.org>
43
44 * reftex.texi (LaTeX xr Package, Options - Table of Contents)
45 (Options - Defining Label Environments, Options - Creating Labels)
46 (Options - Referencing Labels, Options - Creating Citations)
47 (Options - Index Support, Options - Viewing Cross-References)
48 (Options - Finding Files, Options - Optimizations)
49 (Options - Fontification, Options - Misc):
50 * cc-mode.texi (Sample Init File):
51 * edt.texi (Init file):
52 * epa.texi (Encrypting/decrypting gpg files):
53 * mairix-el.texi (About, Setting up the mairix interface, Using)
54 (Extending):
55 Rename nodes to avoid characters that can cause Texinfo problems.
56
572013-08-12 Katsumi Yamaoka <yamaoka@jpl.org>
58
59 * gnus.texi (Mail Source Specifiers): Fix description for pop3's :leave.
60
612013-08-12 Glenn Morris <rgm@gnu.org>
62
63 * Makefile.in (ada_mode_deps, auth_deps, autotype_deps)
64 (bovine_deps, calc_deps, ccmode_deps, cl_deps, dbus_deps)
65 (dired_x_deps, ebrowse_deps, ede_deps, ediff_deps, edt_deps)
66 (eieio_deps, emacs_gnutls_deps, emacs_mime_deps, epa_deps)
67 (erc_deps, ert_deps, eshell_deps, eudc_deps, faq_deps)
68 (flymake_deps, forms_deps, gnus_deps, htmlfontify_deps)
69 (idlwave_deps, ido_deps, info_deps, mairix_el_deps, message_deps)
70 (mh_e_deps, newsticker_deps, nxml_mode_deps, org_deps)
71 (pcl_cvs_deps, pgg_deps, rcirc_deps, reftex_deps, remember_deps)
72 (sasl_deps, sc_deps, semantic_deps, ses_deps, sieve_deps)
73 (smtpmail_deps, speedbar_deps, srecode_deps, todo_mode_deps)
74 (tramp_deps, url_deps, vip_deps, viper_deps, widget_deps)
75 (wisent_deps, woman_deps): New variables. Use to reduce duplication.
76
77 * woman.texi (Top): Avoid mailto: in html output.
78
79 * Makefile.in (prefix, datarootdir, datadir, PACKAGE_TARNAME)
80 (docdir, dvidir, htmldir, pdfdir, psdir, GZIP_PROG, INSTALL)
81 (INSTALL_DATA): New, set by configure.
82 (HTML_OPTS, HTML_TARGETS, PS_TARGETS, DVIPS): New variables.
83 (.PHONY): Add html, ps, install-dvi, install-html, install-pdf,
84 install-ps ,install-doc, uninstall-dvi, uninstall-html, uninstall-pdf,
85 uninstall-ps, and uninstall-doc.
86 (.SUFFIXES): Add .ps and .dvi.
87 (.dvi.ps): New suffix rule.
88 (html, ps, ada-mode.html, auth.html, autotype.html, bovine.html)
89 (calc.html, cc-mode.html, cl.html, dbus.html, dired-x.html)
90 (ebrowse.html, ede.html, ediff.html, edt.html, eieio.html)
91 (emacs-gnutls.html, emacs-mime.html, epa.html, erc.html)
92 (ert.html, eshell.html, eudc.html, faq.html, flymake.html)
93 (forms.html, gnus.html, htmlfontify.html, idlwave.html)
94 (ido.html, mairix-el.html, message.html, mh-e.html)
95 (newsticker.html, nxml-mode.html, org.html, pgg.html)
96 (rcirc.html, reftex.html, remember.html, sasl.html, sc.html)
97 (semantic.html, sieve.html, smtpmail.html, speedbar.html)
98 (srecode.html, todo-mode.html, tramp.html, url.html, vip.html)
99 (viper.html, widget.html, wisent.html, woman.html, install-dvi)
100 (install-html, install-pdf, install-ps, install-doc, uninstall-dvi)
101 (uninstall-html, uninstall-ps, uninstall-pdf, uninstall-doc):
102 New rules.
103 (clean): Remove HTML_TARGETS and PS_TARGETS.
104
1052013-08-10 Xue Fuqiao <xfq.free@gmail.com>
106
107 * ido.texi (Working Directories):
108 (Flexible Matching, Regexp Matching, Find File At Point)
109 (Ignoring, Misc Customization): Use @defopt for user options.
110
1112013-08-09 Xue Fuqiao <xfq.free@gmail.com>
112
113 * htmlfontify.texi (Customization): Remove documentation of
114 `hfy-fast-lock-save'. Minor fixes.
115
1162013-08-08 Xue Fuqiao <xfq.free@gmail.com>
117
118 * ido.texi (Top): Insert node "Working Directories" in menu.
119 (Working Directories): New node.
120 (Misc Customization): Add documentation of
121 `ido-confirm-unique-completion' and some other user options.
122
1232013-08-07 Eli Zaretskii <eliz@gnu.org>
124
125 * todo-mode.texi: Update @dircategory.
126 (Overview, Todo Items as Diary Entries, Todo Mode Entry Points)
127 (File Editing, Marked Items, Item Prefix): Fix usage of @xref and
128 @ref.
129
1302013-08-07 Xue Fuqiao <xfq.free@gmail.com>
131
132 * sc.texi (Introduction): Fix index.
133 (Usage Overview):
134 (Citations, Citation Elements, Recognizing Citations)
135 (Information Keys and the Info Alist, Reference Headers)
136 (The Built-in Header Rewrite Functions)
137 (Electric References, Reply Buffer Initialization)
138 (Filling Cited Text, Selecting an Attribution)
139 (Attribution Preferences)
140 (Anonymous Attributions, Author Names)
141 (Using Regi, Post-yank Formatting Commands)
142 (Citing Commands, Insertion Commands)
143 (Mail Field Commands)
144 (Hints to MUA Authors, Thanks and History): Change from one space
145 between sentences to two.
146 (What Supercite Does): Typo fix.
147
148 * newsticker.texi (Usage): Use @key for RET.
149
150 * cl.texi (Argument Lists):
151 (For Clauses):
152 (Macros): Add indexes.
153
1542013-08-05 Xue Fuqiao <xfq.free@gmail.com>
155
156 * cl.texi (Blocks and Exits): Add an index.
157
1582013-08-04 Stephen Berman <stephen.berman@gmx.net>
159
160 * Makefile.in (INFO_TARGETS, DVI_TARGETS, PDF_TARGETS): Add todo-mode.
161 (todo-mode, $(buildinfodir)/todo-mode$(INFO_EXT)):
162 (todo-mode.dvi, todo-mode.pdf): New rules.
163
164 * todo-mode.texi: New file.
165
12013-08-01 Lars Magne Ingebrigtsen <larsi@gnus.org> 1662013-08-01 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 167
3 * gnus.texi (Basic Usage): Mention that warp means jump here. 168 * gnus.texi (Basic Usage): Mention that warp means jump here.
@@ -185,7 +350,7 @@
185 350
1862013-05-25 Xue Fuqiao <xfq.free@gmail.com> 3512013-05-25 Xue Fuqiao <xfq.free@gmail.com>
187 352
188 * flymake.texi: Changing from one space between sentences to two. 353 * flymake.texi: Change from one space between sentences to two.
189 354
1902013-05-04 Stefan Monnier <monnier@iro.umontreal.ca> 3552013-05-04 Stefan Monnier <monnier@iro.umontreal.ca>
191 356
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index 67a899af8ce..30fc4953172 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -17,7 +17,7 @@
17# You should have received a copy of the GNU General Public License 17# You should have received a copy of the GNU General Public License
18# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 18# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
19 19
20SHELL = /bin/sh 20SHELL = @SHELL@
21 21
22# Where to find the source code. $(srcdir) will be the man-aux 22# Where to find the source code. $(srcdir) will be the man-aux
23# subdirectory of the source tree. This is 23# subdirectory of the source tree. This is
@@ -31,142 +31,68 @@ buildinfodir = $(srcdir)/../../info
31## Directory with emacsver.texi. 31## Directory with emacsver.texi.
32emacsdir = $(srcdir)/../emacs 32emacsdir = $(srcdir)/../emacs
33 33
34prefix = @prefix@
35datarootdir = @datarootdir@
36datadir = @datadir@
37PACKAGE_TARNAME = @PACKAGE_TARNAME@
38docdir = @docdir@
39dvidir = @dvidir@
40htmldir = @htmldir@
41pdfdir = @pdfdir@
42psdir = @psdir@
43
34MKDIR_P = @MKDIR_P@ 44MKDIR_P = @MKDIR_P@
35 45
46GZIP_PROG = @GZIP_PROG@
47
48HTML_OPTS = --no-split --html
49
36INFO_EXT=@INFO_EXT@ 50INFO_EXT=@INFO_EXT@
37# Options used only when making info output. 51# Options used only when making info output.
38INFO_OPTS=@INFO_OPTS@ 52INFO_OPTS=@INFO_OPTS@
39 53
54INSTALL = @INSTALL@
55INSTALL_DATA = @INSTALL_DATA@
56
40# The makeinfo program is part of the Texinfo distribution. 57# The makeinfo program is part of the Texinfo distribution.
41# Use --force so that it generates output even if there are errors. 58# Use --force so that it generates output even if there are errors.
42MAKEINFO = @MAKEINFO@ 59MAKEINFO = @MAKEINFO@
43MAKEINFO_OPTS = --force -I$(emacsdir) 60MAKEINFO_OPTS = --force -I$(emacsdir)
44 61
45INFO_TARGETS = ada-mode auth autotype bovine calc ccmode cl \ 62## On MS Windows, efaq-w32; otherwise blank.
63DOCMISC_W32 = @DOCMISC_W32@
64
65## Info files to build and install on all platforms.
66INFO_COMMON = ada-mode auth autotype bovine calc ccmode cl \
46 dbus dired-x ebrowse ede ediff edt eieio \ 67 dbus dired-x ebrowse ede ediff edt eieio \
47 emacs-mime epa erc ert eshell eudc efaq \ 68 emacs-mime epa erc ert eshell eudc efaq \
48 flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info \ 69 flymake forms gnus emacs-gnutls htmlfontify idlwave ido info.info \
49 mairix-el message mh-e newsticker nxml-mode \ 70 mairix-el message mh-e newsticker nxml-mode \
50 org pcl-cvs pgg rcirc remember reftex sasl \ 71 org pcl-cvs pgg rcirc remember reftex sasl \
51 sc semantic ses sieve smtpmail speedbar srecode tramp \ 72 sc semantic ses sieve smtpmail speedbar srecode todo-mode tramp \
52 url vip viper widget wisent woman 73 url vip viper widget wisent woman
53 74
54DVI_TARGETS = \ 75## Info files to install on current platform.
55 ada-mode.dvi \ 76INFO_INSTALL = $(INFO_COMMON) $(DOCMISC_INFO_W32)
56 auth.dvi \ 77
57 autotype.dvi \ 78## Info files to build on current platform.
58 bovine.dvi \ 79## This is all of them, even though they might not all get installed,
59 calc.dvi \ 80## because the info files are pre-built in release tarfiles.
60 cc-mode.dvi \ 81INFO_TARGETS = $(INFO_COMMON) efaq-w32
61 cl.dvi \ 82
62 dbus.dvi \ 83# There are some naming differences between the info targets and the other
63 dired-x.dvi \ 84# targets, so let's resolve them here.
64 ebrowse.dvi \ 85TARGETS_1 = $(INFO_INSTALL:ccmode=cc-mode)
65 ede.dvi \ 86TARGETS = $(TARGETS_1:info.info=info)
66 ediff.dvi \ 87
67 edt.dvi \ 88DVI_TARGETS = $(TARGETS:=.dvi)
68 eieio.dvi \ 89HTML_TARGETS = $(TARGETS:=.html)
69 emacs-mime.dvi \ 90PDF_TARGETS = $(TARGETS:=.pdf)
70 epa.dvi \ 91PS_TARGETS = $(TARGETS:=.ps)
71 erc.dvi \
72 ert.dvi \
73 eshell.dvi \
74 eudc.dvi \
75 faq.dvi \
76 flymake.dvi \
77 forms.dvi \
78 gnus.dvi \
79 emacs-gnutls.dvi \
80 htmlfontify.dvi \
81 idlwave.dvi \
82 ido.dvi \
83 info.dvi \
84 mairix-el.dvi \
85 message.dvi \
86 mh-e.dvi \
87 newsticker.dvi \
88 nxml-mode.dvi \
89 org.dvi \
90 pcl-cvs.dvi \
91 pgg.dvi \
92 rcirc.dvi \
93 reftex.dvi \
94 remember.dvi \
95 sasl.dvi \
96 sc.dvi \
97 semantic.dvi \
98 ses.dvi \
99 sieve.dvi \
100 smtpmail.dvi \
101 speedbar.dvi \
102 srecode.dvi \
103 tramp.dvi \
104 url.dvi \
105 vip.dvi \
106 viper.dvi \
107 widget.dvi \
108 wisent.dvi \
109 woman.dvi
110
111PDF_TARGETS = \
112 ada-mode.pdf \
113 auth.pdf \
114 autotype.pdf \
115 bovine.pdf \
116 calc.pdf \
117 cc-mode.pdf \
118 cl.pdf \
119 dbus.pdf \
120 dired-x.pdf \
121 ebrowse.pdf \
122 ede.pdf \
123 ediff.pdf \
124 edt.pdf \
125 eieio.pdf \
126 emacs-mime.pdf \
127 epa.pdf \
128 erc.pdf \
129 ert.pdf \
130 eshell.pdf \
131 eudc.pdf \
132 faq.pdf \
133 flymake.pdf \
134 forms.pdf \
135 gnus.pdf \
136 htmlfontify.pdf \
137 emacs-gnutls.pdf \
138 idlwave.pdf \
139 ido.pdf \
140 info.pdf \
141 mairix-el.pdf \
142 message.pdf \
143 mh-e.pdf \
144 newsticker.pdf \
145 nxml-mode.pdf \
146 org.pdf \
147 pcl-cvs.pdf \
148 pgg.pdf \
149 rcirc.pdf \
150 reftex.pdf \
151 remember.pdf \
152 sasl.pdf \
153 sc.pdf \
154 semantic.pdf \
155 ses.pdf \
156 sieve.pdf \
157 smtpmail.pdf \
158 speedbar.pdf \
159 srecode.pdf \
160 tramp.pdf \
161 url.pdf \
162 vip.pdf \
163 viper.pdf \
164 widget.pdf \
165 wisent.pdf \
166 woman.pdf
167 92
168TEXI2DVI = texi2dvi 93TEXI2DVI = texi2dvi
169TEXI2PDF = texi2pdf 94TEXI2PDF = texi2pdf
95DVIPS = dvips
170 96
171ENVADD = TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \ 97ENVADD = TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \
172 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" 98 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
@@ -175,539 +101,732 @@ mkinfodir = @${MKDIR_P} ${buildinfodir}
175 101
176gfdl = ${srcdir}/doclicense.texi 102gfdl = ${srcdir}/doclicense.texi
177 103
178.PHONY: info dvi pdf echo-info 104.PHONY: info dvi html pdf ps echo-info
179## Prevent implicit rule triggering for foo.info. 105## Prevent implicit rule triggering for foo.info.
180.SUFFIXES: 106.SUFFIXES:
181 107
108.SUFFIXES: .ps .dvi
109
110.dvi.ps:
111 $(DVIPS) -o $@ $<
112
182# Default. 113# Default.
183info: $(INFO_TARGETS) 114info: $(INFO_TARGETS)
184 115
185## Used by top-level Makefile. 116## Used by top-level Makefile.
186## Base file names of output info files. 117## Base file names of output info files.
187echo-info: 118echo-info:
188 @echo "$(INFO_TARGETS) " | \ 119 @echo "$(INFO_INSTALL) " | \
189 sed -e 's|[^ ]*/||g' -e 's/\.info//g' -e "s/ */$(INFO_EXT) /g" 120 sed -e 's|[^ ]*/||g' -e 's/\.info//g' -e "s/ */$(INFO_EXT) /g"
190 121
191# please modify this for all the web manual targets
192webhack: clean
193 $(MAKE) pdf MAKEINFO_OPTS="-DWEBHACKDEVEL $(MAKEINFO_OPTS)"
194
195dvi: $(DVI_TARGETS) 122dvi: $(DVI_TARGETS)
196 123
124html: $(HTML_TARGETS)
125
197pdf: $(PDF_TARGETS) 126pdf: $(PDF_TARGETS)
198 127
128ps: $(PS_TARGETS)
129
199# Note that all the Info targets build the Info files in srcdir. 130# Note that all the Info targets build the Info files in srcdir.
200# There is no provision for Info files to exist in the build directory. 131# There is no provision for Info files to exist in the build directory.
201# In a distribution of Emacs, the Info files should be up to date. 132# In a distribution of Emacs, the Info files should be up to date.
202 133
203# Note: "<" is not portable in ordinary make rules. 134# Note: "<" is not portable in ordinary make rules.
204 135
136ada_mode_deps = ${srcdir}/ada-mode.texi ${gfdl}
205ada-mode : $(buildinfodir)/ada-mode$(INFO_EXT) 137ada-mode : $(buildinfodir)/ada-mode$(INFO_EXT)
206$(buildinfodir)/ada-mode$(INFO_EXT): ${srcdir}/ada-mode.texi ${gfdl} 138$(buildinfodir)/ada-mode$(INFO_EXT): $(ada_mode_deps)
207 $(mkinfodir) 139 $(mkinfodir)
208 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ada-mode.texi 140 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ada-mode.texi
209ada-mode.dvi: ${srcdir}/ada-mode.texi ${gfdl} 141ada-mode.dvi: $(ada_mode_deps)
210 $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi 142 $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi
211ada-mode.pdf: ${srcdir}/ada-mode.texi ${gfdl} 143ada-mode.pdf: $(ada_mode_deps)
212 $(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi 144 $(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi
145ada-mode.html: $(ada_mode_deps)
146 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ada-mode.texi
213 147
148auth_deps = ${srcdir}/auth.texi ${gfdl}
214auth : $(buildinfodir)/auth$(INFO_EXT) 149auth : $(buildinfodir)/auth$(INFO_EXT)
215$(buildinfodir)/auth$(INFO_EXT): ${srcdir}/auth.texi ${gfdl} 150$(buildinfodir)/auth$(INFO_EXT): $(auth_deps)
216 $(mkinfodir) 151 $(mkinfodir)
217 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/auth.texi 152 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/auth.texi
218auth.dvi: ${srcdir}/auth.texi ${gfdl} 153auth.dvi: $(auth_deps)
219 $(ENVADD) $(TEXI2DVI) ${srcdir}/auth.texi 154 $(ENVADD) $(TEXI2DVI) ${srcdir}/auth.texi
220auth.pdf: ${srcdir}/auth.texi ${gfdl} 155auth.pdf: $(auth_deps)
221 $(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi 156 $(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi
157auth.html: $(auth_deps)
158 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/auth.texi
222 159
160autotype_deps = ${srcdir}/autotype.texi ${gfdl}
223autotype : $(buildinfodir)/autotype$(INFO_EXT) 161autotype : $(buildinfodir)/autotype$(INFO_EXT)
224$(buildinfodir)/autotype$(INFO_EXT): ${srcdir}/autotype.texi ${gfdl} 162$(buildinfodir)/autotype$(INFO_EXT): $(autotype_deps)
225 $(mkinfodir) 163 $(mkinfodir)
226 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/autotype.texi 164 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/autotype.texi
227autotype.dvi: ${srcdir}/autotype.texi ${gfdl} 165autotype.dvi: $(autotype_deps)
228 $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi 166 $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi
229autotype.pdf: ${srcdir}/autotype.texi ${gfdl} 167autotype.pdf: $(autotype_deps)
230 $(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi 168 $(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi
169autotype.html: $(autotype_deps)
170 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/autotype.texi
231 171
172bovine_deps = ${srcdir}/bovine.texi ${gfdl}
232bovine : $(buildinfodir)/bovine$(INFO_EXT) 173bovine : $(buildinfodir)/bovine$(INFO_EXT)
233$(buildinfodir)/bovine$(INFO_EXT): ${srcdir}/bovine.texi ${gfdl} 174$(buildinfodir)/bovine$(INFO_EXT): $(bovine_deps)
234 $(mkinfodir) 175 $(mkinfodir)
235 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/bovine.texi 176 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/bovine.texi
236bovine.dvi: ${srcdir}/bovine.texi ${gfdl} 177bovine.dvi: $(bovine_deps)
237 $(ENVADD) $(TEXI2DVI) ${srcdir}/bovine.texi 178 $(ENVADD) $(TEXI2DVI) ${srcdir}/bovine.texi
238bovine.pdf: ${srcdir}/bovine.texi ${gfdl} 179bovine.pdf: $(bovine_deps)
239 $(ENVADD) $(TEXI2PDF) ${srcdir}/bovine.texi 180 $(ENVADD) $(TEXI2PDF) ${srcdir}/bovine.texi
181bovine.html: $(bovine_deps)
182 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/bovine.texi
240 183
184calc_deps = ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl}
241calc : $(buildinfodir)/calc$(INFO_EXT) 185calc : $(buildinfodir)/calc$(INFO_EXT)
242$(buildinfodir)/calc$(INFO_EXT): ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl} 186$(buildinfodir)/calc$(INFO_EXT): $(calc_deps)
243 $(mkinfodir) 187 $(mkinfodir)
244 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/calc.texi 188 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/calc.texi
245calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl} 189calc.dvi: $(calc_deps)
246 $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi 190 $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi
247calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl} 191calc.pdf: $(calc_deps)
248 $(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi 192 $(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi
193calc.html: $(calc_deps)
194 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/calc.texi
249 195
196ccmode_deps = ${srcdir}/cc-mode.texi ${gfdl}
250ccmode : $(buildinfodir)/ccmode$(INFO_EXT) 197ccmode : $(buildinfodir)/ccmode$(INFO_EXT)
251$(buildinfodir)/ccmode$(INFO_EXT): ${srcdir}/cc-mode.texi ${gfdl} 198$(buildinfodir)/ccmode$(INFO_EXT): $(cc_mode_deps)
252 $(mkinfodir) 199 $(mkinfodir)
253 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/cc-mode.texi 200 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/cc-mode.texi
254cc-mode.dvi: ${srcdir}/cc-mode.texi ${gfdl} 201cc-mode.dvi: $(cc_mode_deps)
255 $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi 202 $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi
256cc-mode.pdf: ${srcdir}/cc-mode.texi ${gfdl} 203cc-mode.pdf: $(cc_mode_deps)
257 $(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi 204 $(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi
205cc-mode.html: $(cc_mode_deps)
206 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/cc-mode.texi
258 207
208cl_deps = ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl}
259cl : $(buildinfodir)/cl$(INFO_EXT) 209cl : $(buildinfodir)/cl$(INFO_EXT)
260$(buildinfodir)/cl$(INFO_EXT): ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl} 210$(buildinfodir)/cl$(INFO_EXT): $(cl_deps)
261 $(mkinfodir) 211 $(mkinfodir)
262 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/cl.texi 212 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/cl.texi
263cl.dvi: ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl} 213cl.dvi: $(cl_deps)
264 $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi 214 $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi
265cl.pdf: ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl} 215cl.pdf: $(cl_deps)
266 $(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi 216 $(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi
217cl.html: $(cl_deps)
218 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/cl.texi
267 219
220dbus_deps = ${srcdir}/dbus.texi ${gfdl}
268dbus : $(buildinfodir)/dbus$(INFO_EXT) 221dbus : $(buildinfodir)/dbus$(INFO_EXT)
269$(buildinfodir)/dbus$(INFO_EXT): ${srcdir}/dbus.texi ${gfdl} 222$(buildinfodir)/dbus$(INFO_EXT): $(dbus_deps)
270 $(mkinfodir) 223 $(mkinfodir)
271 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/dbus.texi 224 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/dbus.texi
272dbus.dvi: ${srcdir}/dbus.texi ${gfdl} 225dbus.dvi: $(dbus_deps)
273 $(ENVADD) $(TEXI2DVI) ${srcdir}/dbus.texi 226 $(ENVADD) $(TEXI2DVI) ${srcdir}/dbus.texi
274dbus.pdf: ${srcdir}/dbus.texi ${gfdl} 227dbus.pdf: $(dbus_deps)
275 $(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi 228 $(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi
229dbus.html: $(dbus_deps)
230 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/dbus.texi
276 231
232dired_x_deps = ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl}
277dired-x : $(buildinfodir)/dired-x$(INFO_EXT) 233dired-x : $(buildinfodir)/dired-x$(INFO_EXT)
278$(buildinfodir)/dired-x$(INFO_EXT): ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl} 234$(buildinfodir)/dired-x$(INFO_EXT): $(dired_x_deps)
279 $(mkinfodir) 235 $(mkinfodir)
280 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/dired-x.texi 236 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/dired-x.texi
281dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl} 237dired-x.dvi: $(dired_x_deps)
282 $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi 238 $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi
283dired-x.pdf: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl} 239dired-x.pdf: $(dired_x_deps)
284 $(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi 240 $(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi
241dired-x.html: $(dired_x_deps)
242 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/dired-x.texi
285 243
244ebrowse_deps = ${srcdir}/ebrowse.texi ${gfdl}
286ebrowse : $(buildinfodir)/ebrowse$(INFO_EXT) 245ebrowse : $(buildinfodir)/ebrowse$(INFO_EXT)
287$(buildinfodir)/ebrowse$(INFO_EXT): ${srcdir}/ebrowse.texi ${gfdl} 246$(buildinfodir)/ebrowse$(INFO_EXT): $(ebrowse_deps)
288 $(mkinfodir) 247 $(mkinfodir)
289 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ebrowse.texi 248 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ebrowse.texi
290ebrowse.dvi: ${srcdir}/ebrowse.texi ${gfdl} 249ebrowse.dvi: $(ebrowse_deps)
291 $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi 250 $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi
292ebrowse.pdf: ${srcdir}/ebrowse.texi ${gfdl} 251ebrowse.pdf: $(ebrowse_deps)
293 $(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi 252 $(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi
253ebrowse.html: $(ebrowse_deps)
254 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ebrowse.texi
294 255
256ede_deps = ${srcdir}/ede.texi ${gfdl}
295ede : $(buildinfodir)/ede$(INFO_EXT) 257ede : $(buildinfodir)/ede$(INFO_EXT)
296$(buildinfodir)/ede$(INFO_EXT): ${srcdir}/ede.texi ${gfdl} 258$(buildinfodir)/ede$(INFO_EXT): $(ede_deps)
297 $(mkinfodir) 259 $(mkinfodir)
298 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ede.texi 260 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ede.texi
299ede.dvi: ${srcdir}/ede.texi ${gfdl} 261ede.dvi: $(ede_deps)
300 $(ENVADD) $(TEXI2DVI) ${srcdir}/ede.texi 262 $(ENVADD) $(TEXI2DVI) ${srcdir}/ede.texi
301ede.pdf: ${srcdir}/ede.texi ${gfdl} 263ede.pdf: $(ede_deps)
302 $(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi 264 $(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi
265ede.html: $(ede_deps)
266 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ede.texi
303 267
268ediff_deps = ${srcdir}/ediff.texi ${gfdl}
304ediff : $(buildinfodir)/ediff$(INFO_EXT) 269ediff : $(buildinfodir)/ediff$(INFO_EXT)
305$(buildinfodir)/ediff$(INFO_EXT): ${srcdir}/ediff.texi ${gfdl} 270$(buildinfodir)/ediff$(INFO_EXT): $(ediff_deps)
306 $(mkinfodir) 271 $(mkinfodir)
307 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ediff.texi 272 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ediff.texi
308ediff.dvi: ${srcdir}/ediff.texi ${gfdl} 273ediff.dvi: $(ediff_deps)
309 $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi 274 $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi
310ediff.pdf: ${srcdir}/ediff.texi ${gfdl} 275ediff.pdf: $(ediff_deps)
311 $(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi 276 $(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi
277ediff.html: $(ediff_deps)
278 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ediff.texi
312 279
280edt_deps = ${srcdir}/edt.texi ${gfdl}
313edt : $(buildinfodir)/edt$(INFO_EXT) 281edt : $(buildinfodir)/edt$(INFO_EXT)
314$(buildinfodir)/edt$(INFO_EXT): ${srcdir}/edt.texi ${gfdl} 282$(buildinfodir)/edt$(INFO_EXT): $(edt_deps)
315 $(mkinfodir) 283 $(mkinfodir)
316 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/edt.texi 284 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/edt.texi
317edt.dvi: ${srcdir}/edt.texi ${gfdl} 285edt.dvi: $(edt_deps)
318 $(ENVADD) $(TEXI2DVI) ${srcdir}/edt.texi 286 $(ENVADD) $(TEXI2DVI) ${srcdir}/edt.texi
319edt.pdf: ${srcdir}/edt.texi ${gfdl} 287edt.pdf: $(edt_deps)
320 $(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi 288 $(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi
289edt.html: $(edt_deps)
290 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/edt.texi
321 291
292## No gfdl dependency.
293efaq_deps = ${srcdir}/efaq.texi $(emacsdir)/emacsver.texi
294efaq : $(buildinfodir)/efaq$(INFO_EXT)
295$(buildinfodir)/efaq$(INFO_EXT): $(efaq_deps)
296 $(mkinfodir)
297 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/efaq.texi
298efaq.dvi: $(efaq_deps)
299 $(ENVADD) $(TEXI2DVI) ${srcdir}/efaq.texi
300efaq.pdf: $(efaq_deps)
301 $(ENVADD) $(TEXI2PDF) ${srcdir}/efaq.texi
302efaq.html: $(efaq_deps)
303 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/efaq.texi
304
305efaq_w32_deps = ${srcdir}/efaq-w32.texi $(emacsdir)/emacsver.texi
306efaq-w32 : $(buildinfodir)/efaq-w32$(INFO_EXT)
307$(buildinfodir)/efaq-w32$(INFO_EXT): $(efaq_w32_deps)
308 $(mkinfodir)
309 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/efaq-w32.texi
310efaq-w32.dvi: $(efaq_w32_deps)
311 $(ENVADD) $(TEXI2DVI) ${srcdir}/efaq-w32.texi
312efaq-w32.pdf: $(efaq_w32_deps)
313 $(ENVADD) $(TEXI2PDF) ${srcdir}/efaq-w32.texi
314efaq-w32.html: $(efaq_w32_deps)
315 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/efaq-w32.texi
316
317eieio_deps = ${srcdir}/eieio.texi ${gfdl}
322eieio : $(buildinfodir)/eieio$(INFO_EXT) 318eieio : $(buildinfodir)/eieio$(INFO_EXT)
323$(buildinfodir)/eieio$(INFO_EXT): ${srcdir}/eieio.texi ${gfdl} 319$(buildinfodir)/eieio$(INFO_EXT): $(eieio_deps)
324 $(mkinfodir) 320 $(mkinfodir)
325 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eieio.texi 321 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eieio.texi
326eieio.dvi: ${srcdir}/eieio.texi ${gfdl} 322eieio.dvi: $(eieio_deps)
327 $(ENVADD) $(TEXI2DVI) ${srcdir}/eieio.texi 323 $(ENVADD) $(TEXI2DVI) ${srcdir}/eieio.texi
328eieio.pdf: ${srcdir}/eieio.texi ${gfdl} 324eieio.pdf: $(eieio_deps)
329 $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi 325 $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi
326eieio.html: $(eieio_deps)
327 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/eieio.texi
330 328
329emacs_gnutls_deps = ${srcdir}/emacs-gnutls.texi ${gfdl}
331emacs-gnutls : $(buildinfodir)/emacs-gnutls$(INFO_EXT) 330emacs-gnutls : $(buildinfodir)/emacs-gnutls$(INFO_EXT)
332$(buildinfodir)/emacs-gnutls$(INFO_EXT): ${srcdir}/emacs-gnutls.texi ${gfdl} 331$(buildinfodir)/emacs-gnutls$(INFO_EXT): $(emacs_gnutls_deps)
333 $(mkinfodir) 332 $(mkinfodir)
334 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs-gnutls.texi 333 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/emacs-gnutls.texi
335emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi ${gfdl} 334emacs-gnutls.dvi: $(emacs_gnutls_deps)
336 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-gnutls.texi 335 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-gnutls.texi
337emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi ${gfdl} 336emacs-gnutls.pdf: $(emacs_gnutls_deps)
338 $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-gnutls.texi 337 $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-gnutls.texi
338emacs-gnutls.html: $(emacs_gnutls_deps)
339 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/emacs-gnutls.texi
339 340
341emacs_mime_deps = ${srcdir}/emacs-mime.texi ${gfdl}
340emacs-mime : $(buildinfodir)/emacs-mime$(INFO_EXT) 342emacs-mime : $(buildinfodir)/emacs-mime$(INFO_EXT)
341$(buildinfodir)/emacs-mime$(INFO_EXT): ${srcdir}/emacs-mime.texi ${gfdl} 343$(buildinfodir)/emacs-mime$(INFO_EXT): $(emacs_mime_deps)
342 $(mkinfodir) 344 $(mkinfodir)
343 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) --enable-encoding -o $@ ${srcdir}/emacs-mime.texi 345 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) --enable-encoding -o $@ ${srcdir}/emacs-mime.texi
344emacs-mime.dvi: ${srcdir}/emacs-mime.texi ${gfdl} 346emacs-mime.dvi: $(emacs_mime_deps)
345 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi 347 $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi
346emacs-mime.pdf: ${srcdir}/emacs-mime.texi ${gfdl} 348emacs-mime.pdf: $(emacs_mime_deps)
347 $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi 349 $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi
350emacs-mime.html: $(emacs_mime_deps)
351 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) --enable-encoding -o $@ ${srcdir}/emacs-mime.texi
348 352
353epa_deps = ${srcdir}/epa.texi ${gfdl}
349epa : $(buildinfodir)/epa$(INFO_EXT) 354epa : $(buildinfodir)/epa$(INFO_EXT)
350$(buildinfodir)/epa$(INFO_EXT): ${srcdir}/epa.texi ${gfdl} 355$(buildinfodir)/epa$(INFO_EXT): $(epa_deps)
351 $(mkinfodir) 356 $(mkinfodir)
352 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/epa.texi 357 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/epa.texi
353epa.dvi: ${srcdir}/epa.texi ${gfdl} 358epa.dvi: $(epa_deps)
354 $(ENVADD) $(TEXI2DVI) ${srcdir}/epa.texi 359 $(ENVADD) $(TEXI2DVI) ${srcdir}/epa.texi
355epa.pdf: ${srcdir}/epa.texi ${gfdl} 360epa.pdf: $(epa_deps)
356 $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi 361 $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi
362epa.html: $(epa_deps)
363 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/epa.texi
357 364
365erc_deps = ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl}
358erc : $(buildinfodir)/erc$(INFO_EXT) 366erc : $(buildinfodir)/erc$(INFO_EXT)
359$(buildinfodir)/erc$(INFO_EXT): ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl} 367$(buildinfodir)/erc$(INFO_EXT): $(erc_deps)
360 $(mkinfodir) 368 $(mkinfodir)
361 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/erc.texi 369 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/erc.texi
362erc.dvi: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl} 370erc.dvi: $(erc_deps)
363 $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi 371 $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi
364erc.pdf: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl} 372erc.pdf: $(erc_deps)
365 $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi 373 $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi
374erc.html: $(erc_deps)
375 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/erc.texi
366 376
377ert_deps = ${srcdir}/ert.texi ${gfdl}
367ert : $(buildinfodir)/ert$(INFO_EXT) 378ert : $(buildinfodir)/ert$(INFO_EXT)
368$(buildinfodir)/ert$(INFO_EXT): ${srcdir}/ert.texi ${gfdl} 379$(buildinfodir)/ert$(INFO_EXT): $(ert_deps)
369 $(mkinfodir) 380 $(mkinfodir)
370 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ert.texi 381 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ert.texi
371ert.dvi: ${srcdir}/ert.texi ${gfdl} 382ert.dvi: $(ert_deps)
372 $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi 383 $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi
373ert.pdf: ${srcdir}/ert.texi ${gfdl} 384ert.pdf: $(ert_deps)
374 $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi 385 $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi
386ert.html: $(ert_deps)
387 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ert.texi
375 388
389eshell_deps = ${srcdir}/eshell.texi ${gfdl}
376eshell : $(buildinfodir)/eshell$(INFO_EXT) 390eshell : $(buildinfodir)/eshell$(INFO_EXT)
377$(buildinfodir)/eshell$(INFO_EXT): ${srcdir}/eshell.texi ${gfdl} 391$(buildinfodir)/eshell$(INFO_EXT): $(eshell_deps)
378 $(mkinfodir) 392 $(mkinfodir)
379 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eshell.texi 393 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eshell.texi
380eshell.dvi: ${srcdir}/eshell.texi ${gfdl} 394eshell.dvi: $(eshell_deps)
381 $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi 395 $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi
382eshell.pdf: ${srcdir}/eshell.texi ${gfdl} 396eshell.pdf: $(eshell_deps)
383 $(ENVADD) $(TEXI2PDF) ${srcdir}/eshell.texi 397 $(ENVADD) $(TEXI2PDF) ${srcdir}/eshell.texi
398eshell.html: $(eshell_deps)
399 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/eshell.texi
384 400
401eudc_deps = ${srcdir}/eudc.texi ${gfdl}
385eudc : $(buildinfodir)/eudc$(INFO_EXT) 402eudc : $(buildinfodir)/eudc$(INFO_EXT)
386$(buildinfodir)/eudc$(INFO_EXT): ${srcdir}/eudc.texi ${gfdl} 403$(buildinfodir)/eudc$(INFO_EXT): $(eudc_deps)
387 $(mkinfodir) 404 $(mkinfodir)
388 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eudc.texi 405 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/eudc.texi
389eudc.dvi: ${srcdir}/eudc.texi ${gfdl} 406eudc.dvi: $(eudc_deps)
390 $(ENVADD) $(TEXI2DVI) ${srcdir}/eudc.texi 407 $(ENVADD) $(TEXI2DVI) ${srcdir}/eudc.texi
391eudc.pdf: ${srcdir}/eudc.texi ${gfdl} 408eudc.pdf: $(eudc_deps)
392 $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi 409 $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi
410eudc.html: $(eudc_deps)
411 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/eudc.texi
393 412
394## No gfdl dependency. 413flymake_deps = ${srcdir}/flymake.texi ${gfdl}
395efaq : $(buildinfodir)/efaq$(INFO_EXT)
396$(buildinfodir)/efaq$(INFO_EXT): ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
397 $(mkinfodir)
398 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/faq.texi
399faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
400 $(ENVADD) $(TEXI2DVI) ${srcdir}/faq.texi
401faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
402 $(ENVADD) $(TEXI2PDF) ${srcdir}/faq.texi
403
404flymake : $(buildinfodir)/flymake$(INFO_EXT) 414flymake : $(buildinfodir)/flymake$(INFO_EXT)
405$(buildinfodir)/flymake$(INFO_EXT): ${srcdir}/flymake.texi ${gfdl} 415$(buildinfodir)/flymake$(INFO_EXT): $(flymake_deps)
406 $(mkinfodir) 416 $(mkinfodir)
407 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/flymake.texi 417 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/flymake.texi
408flymake.dvi: ${srcdir}/flymake.texi ${gfdl} 418flymake.dvi: $(flymake_deps)
409 $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi 419 $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi
410flymake.pdf: ${srcdir}/flymake.texi ${gfdl} 420flymake.pdf: $(flymake_deps)
411 $(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi 421 $(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi
422flymake.html: $(flymake_deps)
423 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/flymake.texi
412 424
425forms_deps = ${srcdir}/forms.texi ${gfdl}
413forms : $(buildinfodir)/forms$(INFO_EXT) 426forms : $(buildinfodir)/forms$(INFO_EXT)
414$(buildinfodir)/forms$(INFO_EXT): ${srcdir}/forms.texi ${gfdl} 427$(buildinfodir)/forms$(INFO_EXT): $(forms_deps)
415 $(mkinfodir) 428 $(mkinfodir)
416 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/forms.texi 429 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/forms.texi
417forms.dvi: ${srcdir}/forms.texi ${gfdl} 430forms.dvi: $(forms_deps)
418 $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi 431 $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi
419forms.pdf: ${srcdir}/forms.texi ${gfdl} 432forms.pdf: $(forms_deps)
420 $(ENVADD) $(TEXI2PDF) ${srcdir}/forms.texi 433 $(ENVADD) $(TEXI2PDF) ${srcdir}/forms.texi
434forms.html: $(forms_deps)
435 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/forms.texi
421 436
422# gnus/message/emacs-mime/sieve/pgg are part of Gnus: 437## gnus/message/emacs-mime/sieve/pgg are part of Gnus.
438gnus_deps = ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl}
423gnus : $(buildinfodir)/gnus$(INFO_EXT) 439gnus : $(buildinfodir)/gnus$(INFO_EXT)
424$(buildinfodir)/gnus$(INFO_EXT): ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl} 440$(buildinfodir)/gnus$(INFO_EXT): $(gnus_deps)
425 $(mkinfodir) 441 $(mkinfodir)
426 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/gnus.texi 442 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/gnus.texi
427gnus.dvi: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl} 443gnus.dvi: $(gnus_deps)
428 sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi 444 sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi
429 $(ENVADD) $(TEXI2DVI) gnustmp.texi 445 $(ENVADD) $(TEXI2DVI) gnustmp.texi
430 cp gnustmp.dvi $@ 446 cp gnustmp.dvi $@
431 rm gnustmp.* 447 rm gnustmp.*
432gnus.pdf: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl} 448gnus.pdf: $(gnus_deps)
433 sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi 449 sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi
434 $(ENVADD) $(TEXI2PDF) gnustmp.texi 450 $(ENVADD) $(TEXI2PDF) gnustmp.texi
435 cp gnustmp.pdf $@ 451 cp gnustmp.pdf $@
436 rm gnustmp.* 452 rm gnustmp.*
453gnus.html: $(gnus_deps)
454 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/gnus.texi
437 455
456htmlfontify_deps = ${srcdir}/htmlfontify.texi ${gfdl}
438htmlfontify : $(buildinfodir)/htmlfontify$(INFO_EXT) 457htmlfontify : $(buildinfodir)/htmlfontify$(INFO_EXT)
439$(buildinfodir)/htmlfontify$(INFO_EXT): ${srcdir}/htmlfontify.texi ${gfdl} 458$(buildinfodir)/htmlfontify$(INFO_EXT): $(htmlfontify_deps)
440 $(mkinfodir) 459 $(mkinfodir)
441 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/htmlfontify.texi 460 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/htmlfontify.texi
442htmlfontify.dvi: ${srcdir}/htmlfontify.texi ${gfdl} 461htmlfontify.dvi: $(htmlfontify_deps)
443 $(ENVADD) $(TEXI2DVI) ${srcdir}/htmlfontify.texi 462 $(ENVADD) $(TEXI2DVI) ${srcdir}/htmlfontify.texi
444htmlfontify.pdf: ${srcdir}/htmlfontify.texi ${gfdl} 463htmlfontify.pdf: $(htmlfontify_deps)
445 $(ENVADD) $(TEXI2PDF) ${srcdir}/htmlfontify.texi 464 $(ENVADD) $(TEXI2PDF) ${srcdir}/htmlfontify.texi
465htmlfontify.html: $(htmlfontify_deps)
466 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/htmlfontify.texi
446 467
447# NB this one needs --no-split even without a .info extension. 468idlwave_deps = ${srcdir}/idlwave.texi ${gfdl}
448idlwave : $(buildinfodir)/idlwave$(INFO_EXT) 469idlwave : $(buildinfodir)/idlwave$(INFO_EXT)
449$(buildinfodir)/idlwave$(INFO_EXT): ${srcdir}/idlwave.texi ${gfdl} 470# NB this one needs --no-split even without a .info extension.
471$(buildinfodir)/idlwave$(INFO_EXT): $(idlwave_deps)
450 $(mkinfodir) 472 $(mkinfodir)
451 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/idlwave.texi 473 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/idlwave.texi
452idlwave.dvi: ${srcdir}/idlwave.texi ${gfdl} 474idlwave.dvi: $(idlwave_deps)
453 $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi 475 $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi
454idlwave.pdf: ${srcdir}/idlwave.texi ${gfdl} 476idlwave.pdf: $(idlwave_deps)
455 $(ENVADD) $(TEXI2PDF) ${srcdir}/idlwave.texi 477 $(ENVADD) $(TEXI2PDF) ${srcdir}/idlwave.texi
478idlwave.html: $(idlwave_deps)
479 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/idlwave.texi
456 480
481ido_deps = ${srcdir}/ido.texi $(emacsdir)/emacsver.texi ${gfdl}
457ido : $(buildinfodir)/ido$(INFO_EXT) 482ido : $(buildinfodir)/ido$(INFO_EXT)
458$(buildinfodir)/ido$(INFO_EXT): ${srcdir}/ido.texi $(emacsdir)/emacsver.texi ${gfdl} 483$(buildinfodir)/ido$(INFO_EXT): $(ido_deps)
459 $(mkinfodir) 484 $(mkinfodir)
460 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ido.texi 485 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ido.texi
461ido.dvi: ${srcdir}/ido.texi $(emacsdir)/emacsver.texi ${gfdl} 486ido.dvi: $(ido_deps)
462 $(ENVADD) $(TEXI2DVI) ${srcdir}/ido.texi 487 $(ENVADD) $(TEXI2DVI) ${srcdir}/ido.texi
463ido.pdf: ${srcdir}/ido.texi $(emacsdir)/emacsver.texi ${gfdl} 488ido.pdf: $(ido_deps)
464 $(ENVADD) $(TEXI2PDF) ${srcdir}/ido.texi 489 $(ENVADD) $(TEXI2PDF) ${srcdir}/ido.texi
490ido.html: $(ido_deps)
491 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ido.texi
465 492
466# NB this one needs --no-split even without a .info extension. 493info_deps = ${srcdir}/info.texi ${gfdl}
467# Avoid name clash with overall "info" target. 494# Avoid name clash with overall "info" target.
468info.info : $(buildinfodir)/info$(INFO_EXT) 495info.info : $(buildinfodir)/info$(INFO_EXT)
469$(buildinfodir)/info$(INFO_EXT): ${srcdir}/info.texi ${gfdl} 496# NB this one needs --no-split even without a .info extension.
497$(buildinfodir)/info$(INFO_EXT): $(info_deps)
470 $(mkinfodir) 498 $(mkinfodir)
471 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/info.texi 499 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/info.texi
472info.dvi: ${srcdir}/info.texi ${gfdl} 500info.dvi: $(info_deps)
473 $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi 501 $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi
474info.pdf: ${srcdir}/info.texi ${gfdl} 502info.pdf: $(info_deps)
475 $(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi 503 $(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi
504info.html: $(info_deps)
505 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/info.texi
476 506
507mairix_el_deps = ${srcdir}/mairix-el.texi ${gfdl}
477mairix-el : $(buildinfodir)/mairix-el$(INFO_EXT) 508mairix-el : $(buildinfodir)/mairix-el$(INFO_EXT)
478$(buildinfodir)/mairix-el$(INFO_EXT): ${srcdir}/mairix-el.texi ${gfdl} 509$(buildinfodir)/mairix-el$(INFO_EXT): $(mairix_el_deps)
479 $(mkinfodir) 510 $(mkinfodir)
480 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/mairix-el.texi 511 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/mairix-el.texi
481mairix-el.dvi: ${srcdir}/mairix-el.texi ${gfdl} 512mairix-el.dvi: $(mairix_el_deps)
482 $(ENVADD) $(TEXI2DVI) ${srcdir}/mairix-el.texi 513 $(ENVADD) $(TEXI2DVI) ${srcdir}/mairix-el.texi
483mairix-el.pdf: ${srcdir}/mairix-el.texi ${gfdl} 514mairix-el.pdf: $(mairix_el_deps)
484 $(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi 515 $(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi
516mairix-el.html: $(mairix_el_deps)
517 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/mairix-el.texi
485 518
519message_deps = ${srcdir}/message.texi ${gfdl}
486message : $(buildinfodir)/message$(INFO_EXT) 520message : $(buildinfodir)/message$(INFO_EXT)
487$(buildinfodir)/message$(INFO_EXT): ${srcdir}/message.texi ${gfdl} 521$(buildinfodir)/message$(INFO_EXT): $(message_deps)
488 $(mkinfodir) 522 $(mkinfodir)
489 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/message.texi 523 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/message.texi
490message.dvi: ${srcdir}/message.texi ${gfdl} 524message.dvi: $(message_deps)
491 $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi 525 $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi
492message.pdf: ${srcdir}/message.texi ${gfdl} 526message.pdf: $(message_deps)
493 $(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi 527 $(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi
528message.html: $(message_deps)
529 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/message.texi
494 530
531mh_e_deps = ${srcdir}/mh-e.texi ${gfdl}
495mh-e : $(buildinfodir)/mh-e$(INFO_EXT) 532mh-e : $(buildinfodir)/mh-e$(INFO_EXT)
496$(buildinfodir)/mh-e$(INFO_EXT): ${srcdir}/mh-e.texi ${gfdl} 533$(buildinfodir)/mh-e$(INFO_EXT): $(mh_e_deps)
497 $(mkinfodir) 534 $(mkinfodir)
498 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/mh-e.texi 535 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/mh-e.texi
499mh-e.dvi: ${srcdir}/mh-e.texi ${gfdl} 536mh-e.dvi: $(mh_e_deps)
500 $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi 537 $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi
501mh-e.pdf: ${srcdir}/mh-e.texi ${gfdl} 538mh-e.pdf: $(mh_e_deps)
502 $(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi 539 $(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi
540mh-e.html: $(mh_e_deps)
541 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/mh-e.texi
503 542
543newsticker_deps = ${srcdir}/newsticker.texi ${gfdl}
504newsticker : $(buildinfodir)/newsticker$(INFO_EXT) 544newsticker : $(buildinfodir)/newsticker$(INFO_EXT)
505$(buildinfodir)/newsticker$(INFO_EXT): ${srcdir}/newsticker.texi ${gfdl} 545$(buildinfodir)/newsticker$(INFO_EXT): $(newsticker_deps)
506 $(mkinfodir) 546 $(mkinfodir)
507 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/newsticker.texi 547 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/newsticker.texi
508newsticker.dvi: ${srcdir}/newsticker.texi ${gfdl} 548newsticker.dvi: $(newsticker_deps)
509 $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi 549 $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi
510newsticker.pdf: ${srcdir}/newsticker.texi ${gfdl} 550newsticker.pdf: $(newsticker_deps)
511 $(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi 551 $(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi
552newsticker.html: $(newsticker_deps)
553 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/newsticker.texi
512 554
555nxml_mode_deps = ${srcdir}/nxml-mode.texi ${gfdl}
513nxml-mode : $(buildinfodir)/nxml-mode$(INFO_EXT) 556nxml-mode : $(buildinfodir)/nxml-mode$(INFO_EXT)
514$(buildinfodir)/nxml-mode$(INFO_EXT): ${srcdir}/nxml-mode.texi ${gfdl} 557$(buildinfodir)/nxml-mode$(INFO_EXT): $(nxml_mode_deps)
515 $(mkinfodir) 558 $(mkinfodir)
516 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/nxml-mode.texi 559 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/nxml-mode.texi
517nxml-mode.dvi: ${srcdir}/nxml-mode.texi ${gfdl} 560nxml-mode.dvi: $(nxml_mode_deps)
518 $(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi 561 $(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi
519nxml-mode.pdf: ${srcdir}/nxml-mode.texi ${gfdl} 562nxml-mode.pdf: $(nxml_mode_deps)
520 $(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi 563 $(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi
564nxml-mode.html: $(nxml_mode_deps)
565 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/nxml-mode.texi
521 566
567org_deps = ${srcdir}/org.texi ${gfdl}
522org : $(buildinfodir)/org$(INFO_EXT) 568org : $(buildinfodir)/org$(INFO_EXT)
523$(buildinfodir)/org$(INFO_EXT): ${srcdir}/org.texi ${gfdl} 569$(buildinfodir)/org$(INFO_EXT): $(org_deps)
524 $(mkinfodir) 570 $(mkinfodir)
525 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/org.texi 571 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/org.texi
526org.dvi: ${srcdir}/org.texi ${gfdl} 572org.dvi: $(org_deps)
527 $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi 573 $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi
528org.pdf: ${srcdir}/org.texi ${gfdl} 574org.pdf: $(org_deps)
529 $(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi 575 $(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi
576org.html: $(org_deps)
577 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/org.texi
530 578
579pcl_cvs_deps = ${srcdir}/pcl-cvs.texi ${gfdl}
531pcl-cvs : $(buildinfodir)/pcl-cvs$(INFO_EXT) 580pcl-cvs : $(buildinfodir)/pcl-cvs$(INFO_EXT)
532$(buildinfodir)/pcl-cvs$(INFO_EXT): ${srcdir}/pcl-cvs.texi ${gfdl} 581$(buildinfodir)/pcl-cvs$(INFO_EXT): $(pcl_cvs_deps)
533 $(mkinfodir) 582 $(mkinfodir)
534 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/pcl-cvs.texi 583 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/pcl-cvs.texi
535pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi ${gfdl} 584pcl-cvs.dvi: $(pcl_cvs_deps)
536 $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi 585 $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi
537pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi ${gfdl} 586pcl-cvs.pdf: $(pcl_cvs_deps)
538 $(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi 587 $(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi
588pcl-cvs.html: $(pcl_cvs_deps)
589 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/pcl-cvs.texi
539 590
591pgg_deps = ${srcdir}/pgg.texi ${gfdl}
540pgg : $(buildinfodir)/pgg$(INFO_EXT) 592pgg : $(buildinfodir)/pgg$(INFO_EXT)
541$(buildinfodir)/pgg$(INFO_EXT): ${srcdir}/pgg.texi ${gfdl} 593$(buildinfodir)/pgg$(INFO_EXT): $(pgg_deps)
542 $(mkinfodir) 594 $(mkinfodir)
543 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/pgg.texi 595 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/pgg.texi
544pgg.dvi: ${srcdir}/pgg.texi ${gfdl} 596pgg.dvi: $(pgg_deps)
545 $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi 597 $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi
546pgg.pdf: ${srcdir}/pgg.texi ${gfdl} 598pgg.pdf: $(pgg_deps)
547 $(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi 599 $(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi
600pgg.html: $(pgg_deps)
601 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/pgg.texi
548 602
603rcirc_deps = ${srcdir}/rcirc.texi ${gfdl}
549rcirc : $(buildinfodir)/rcirc$(INFO_EXT) 604rcirc : $(buildinfodir)/rcirc$(INFO_EXT)
550$(buildinfodir)/rcirc$(INFO_EXT): ${srcdir}/rcirc.texi ${gfdl} 605$(buildinfodir)/rcirc$(INFO_EXT): $(rcirc_deps)
551 $(mkinfodir) 606 $(mkinfodir)
552 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/rcirc.texi 607 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/rcirc.texi
553rcirc.dvi: ${srcdir}/rcirc.texi ${gfdl} 608rcirc.dvi: $(rcirc_deps)
554 $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi 609 $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi
555rcirc.pdf: ${srcdir}/rcirc.texi ${gfdl} 610rcirc.pdf: $(rcirc_deps)
556 $(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi 611 $(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi
612rcirc.html: $(rcirc_deps)
613 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/rcirc.texi
557 614
615reftex_deps = ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl}
558reftex : $(buildinfodir)/reftex$(INFO_EXT) 616reftex : $(buildinfodir)/reftex$(INFO_EXT)
559$(buildinfodir)/reftex$(INFO_EXT): ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl} 617$(buildinfodir)/reftex$(INFO_EXT): $(reftex_deps)
560 $(mkinfodir) 618 $(mkinfodir)
561 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/reftex.texi 619 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/reftex.texi
562reftex.dvi: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl} 620reftex.dvi: $(reftex_deps)
563 $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi 621 $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi
564reftex.pdf: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl} 622reftex.pdf: $(reftex_deps)
565 $(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi 623 $(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi
624reftex.html: $(reftex_deps)
625 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/reftex.texi
566 626
627remember_deps = ${srcdir}/remember.texi ${gfdl}
567remember : $(buildinfodir)/remember$(INFO_EXT) 628remember : $(buildinfodir)/remember$(INFO_EXT)
568$(buildinfodir)/remember$(INFO_EXT): ${srcdir}/remember.texi ${gfdl} 629$(buildinfodir)/remember$(INFO_EXT): $(remember_deps)
569 $(mkinfodir) 630 $(mkinfodir)
570 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/remember.texi 631 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/remember.texi
571remember.dvi: ${srcdir}/remember.texi ${gfdl} 632remember.dvi: $(remember_deps)
572 $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi 633 $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi
573remember.pdf: ${srcdir}/remember.texi ${gfdl} 634remember.pdf: $(remember_deps)
574 $(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi 635 $(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi
636remember.html: $(remember_deps)
637 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/remember.texi
575 638
639sasl_deps = ${srcdir}/sasl.texi ${gfdl}
576sasl : $(buildinfodir)/sasl$(INFO_EXT) 640sasl : $(buildinfodir)/sasl$(INFO_EXT)
577$(buildinfodir)/sasl$(INFO_EXT): ${srcdir}/sasl.texi ${gfdl} 641$(buildinfodir)/sasl$(INFO_EXT): $(sasl_deps)
578 $(mkinfodir) 642 $(mkinfodir)
579 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sasl.texi 643 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sasl.texi
580sasl.dvi: ${srcdir}/sasl.texi ${gfdl} 644sasl.dvi: $(sasl_deps)
581 $(ENVADD) $(TEXI2DVI) ${srcdir}/sasl.texi 645 $(ENVADD) $(TEXI2DVI) ${srcdir}/sasl.texi
582sasl.pdf: ${srcdir}/sasl.texi ${gfdl} 646sasl.pdf: $(sasl_deps)
583 $(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi 647 $(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi
648sasl.html: $(sasl_deps)
649 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/sasl.texi
584 650
651sc_deps = ${srcdir}/sc.texi ${gfdl}
585sc : $(buildinfodir)/sc$(INFO_EXT) 652sc : $(buildinfodir)/sc$(INFO_EXT)
586$(buildinfodir)/sc$(INFO_EXT): ${srcdir}/sc.texi ${gfdl} 653$(buildinfodir)/sc$(INFO_EXT): $(sc_deps)
587 $(mkinfodir) 654 $(mkinfodir)
588 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sc.texi 655 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sc.texi
589sc.dvi: ${srcdir}/sc.texi ${gfdl} 656sc.dvi: $(sc_deps)
590 $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi 657 $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi
591sc.pdf: ${srcdir}/sc.texi ${gfdl} 658sc.pdf: $(sc_deps)
592 $(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi 659 $(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi
660sc.html: $(sc_deps)
661 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/sc.texi
593 662
663semantic_deps = ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl}
594semantic : $(buildinfodir)/semantic$(INFO_EXT) 664semantic : $(buildinfodir)/semantic$(INFO_EXT)
595$(buildinfodir)/semantic$(INFO_EXT): ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl} 665$(buildinfodir)/semantic$(INFO_EXT): $(semantic_deps)
596 $(mkinfodir) 666 $(mkinfodir)
597 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/semantic.texi 667 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/semantic.texi
598semantic.dvi: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl} 668semantic.dvi: $(semantic_deps)
599 $(ENVADD) $(TEXI2DVI) ${srcdir}/semantic.texi 669 $(ENVADD) $(TEXI2DVI) ${srcdir}/semantic.texi
600semantic.pdf: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl} 670semantic.pdf: $(semantic_deps)
601 $(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi 671 $(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi
672semantic.html: $(semantic_deps)
673 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/semantic.texi
602 674
675ses_deps = ${srcdir}/ses.texi ${gfdl}
603ses : $(buildinfodir)/ses$(INFO_EXT) 676ses : $(buildinfodir)/ses$(INFO_EXT)
604$(buildinfodir)/ses$(INFO_EXT): ${srcdir}/ses.texi ${gfdl} 677$(buildinfodir)/ses$(INFO_EXT): $(ses_deps)
605 $(mkinfodir) 678 $(mkinfodir)
606 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ses.texi 679 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/ses.texi
607ses.dvi: ${srcdir}/ses.texi ${gfdl} 680ses.dvi: $(ses_deps)
608 $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi 681 $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi
609ses.pdf: ${srcdir}/ses.texi ${gfdl} 682ses.pdf: $(ses_deps)
610 $(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi 683 $(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi
684ses.html: $(ses_deps)
685 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ses.texi
611 686
687sieve_deps = ${srcdir}/sieve.texi ${gfdl}
612sieve : $(buildinfodir)/sieve$(INFO_EXT) 688sieve : $(buildinfodir)/sieve$(INFO_EXT)
613$(buildinfodir)/sieve$(INFO_EXT): ${srcdir}/sieve.texi ${gfdl} 689$(buildinfodir)/sieve$(INFO_EXT): $(sieve_deps)
614 $(mkinfodir) 690 $(mkinfodir)
615 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sieve.texi 691 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/sieve.texi
616sieve.dvi: ${srcdir}/sieve.texi ${gfdl} 692sieve.dvi: $(sieve_deps)
617 $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi 693 $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi
618sieve.pdf: ${srcdir}/sieve.texi ${gfdl} 694sieve.pdf: $(sieve_deps)
619 $(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi 695 $(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi
696sieve.html: $(sieve_deps)
697 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/sieve.texi
620 698
699smtpmail_deps = ${srcdir}/smtpmail.texi ${gfdl}
621smtpmail : $(buildinfodir)/smtpmail$(INFO_EXT) 700smtpmail : $(buildinfodir)/smtpmail$(INFO_EXT)
622$(buildinfodir)/smtpmail$(INFO_EXT): ${srcdir}/smtpmail.texi ${gfdl} 701$(buildinfodir)/smtpmail$(INFO_EXT): $(smtpmail_deps)
623 $(mkinfodir) 702 $(mkinfodir)
624 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/smtpmail.texi 703 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/smtpmail.texi
625smtpmail.dvi: ${srcdir}/smtpmail.texi ${gfdl} 704smtpmail.dvi: $(smtpmail_deps)
626 $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi 705 $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi
627smtpmail.pdf: ${srcdir}/smtpmail.texi ${gfdl} 706smtpmail.pdf: $(smtpmail_deps)
628 $(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi 707 $(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi
708smtpmail.html: $(smtpmail_deps)
709 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/smtpmail.texi
629 710
711speedbar_deps = ${srcdir}/speedbar.texi ${gfdl}
630speedbar : $(buildinfodir)/speedbar$(INFO_EXT) 712speedbar : $(buildinfodir)/speedbar$(INFO_EXT)
631$(buildinfodir)/speedbar$(INFO_EXT): ${srcdir}/speedbar.texi ${gfdl} 713$(buildinfodir)/speedbar$(INFO_EXT): $(speedbar_deps)
632 $(mkinfodir) 714 $(mkinfodir)
633 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/speedbar.texi 715 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/speedbar.texi
634speedbar.dvi: ${srcdir}/speedbar.texi ${gfdl} 716speedbar.dvi: $(speedbar_deps)
635 $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi 717 $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi
636speedbar.pdf: ${srcdir}/speedbar.texi ${gfdl} 718speedbar.pdf: $(speedbar_deps)
637 $(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi 719 $(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi
720speedbar.html: $(speedbar_deps)
721 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/speedbar.texi
638 722
723srecode_deps = ${srcdir}/srecode.texi ${gfdl}
639srecode : $(buildinfodir)/srecode$(INFO_EXT) 724srecode : $(buildinfodir)/srecode$(INFO_EXT)
640$(buildinfodir)/srecode$(INFO_EXT): ${srcdir}/srecode.texi ${gfdl} 725$(buildinfodir)/srecode$(INFO_EXT): $(srecode_deps)
641 $(mkinfodir) 726 $(mkinfodir)
642 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/srecode.texi 727 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/srecode.texi
643srecode.dvi: ${srcdir}/srecode.texi ${gfdl} 728srecode.dvi: $(srecode_deps)
644 $(ENVADD) $(TEXI2DVI) ${srcdir}/srecode.texi 729 $(ENVADD) $(TEXI2DVI) ${srcdir}/srecode.texi
645srecode.pdf: ${srcdir}/srecode.texi ${gfdl} 730srecode.pdf: $(srecode_deps)
646 $(ENVADD) $(TEXI2PDF) ${srcdir}/srecode.texi 731 $(ENVADD) $(TEXI2PDF) ${srcdir}/srecode.texi
647 732srecode.html: $(srecode_deps)
733 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/srecode.texi
734
735todo_mode_deps = ${srcdir}/todo-mode.texi ${gfdl}
736todo-mode : $(buildinfodir)/todo-mode$(INFO_EXT)
737$(buildinfodir)/todo-mode$(INFO_EXT): $(todo_mode_deps)
738 $(mkinfodir)
739 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/todo-mode.texi
740todo-mode.dvi: $(todo_mode_deps)
741 $(ENVADD) $(TEXI2DVI) ${srcdir}/todo-mode.texi
742todo-mode.pdf: $(todo_mode_deps)
743 $(ENVADD) $(TEXI2PDF) ${srcdir}/todo-mode.texi
744todo-mode.html: $(todo_mode_deps)
745 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/todo-mode.texi
746
747tramp_deps = ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl}
648tramp : $(buildinfodir)/tramp$(INFO_EXT) 748tramp : $(buildinfodir)/tramp$(INFO_EXT)
649$(buildinfodir)/tramp$(INFO_EXT): ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl} 749$(buildinfodir)/tramp$(INFO_EXT): $(tramp_deps)
650 $(mkinfodir) 750 $(mkinfodir)
651 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ -D emacs ${srcdir}/tramp.texi 751 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ -D emacs ${srcdir}/tramp.texi
652tramp.dvi: ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl} 752tramp.dvi: $(tramp_deps)
653 $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi 753 $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi
654tramp.pdf: ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl} 754tramp.pdf: $(tramp_deps)
655 $(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi 755 $(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi
756tramp.html: $(tramp_deps)
757 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ -D emacs ${srcdir}/tramp.texi
656 758
759url_deps = ${srcdir}/url.texi ${gfdl}
657url : $(buildinfodir)/url$(INFO_EXT) 760url : $(buildinfodir)/url$(INFO_EXT)
658$(buildinfodir)/url$(INFO_EXT): ${srcdir}/url.texi ${gfdl} 761$(buildinfodir)/url$(INFO_EXT): $(url_deps)
659 $(mkinfodir) 762 $(mkinfodir)
660 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/url.texi 763 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/url.texi
661url.dvi: ${srcdir}/url.texi ${gfdl} 764url.dvi: $(url_deps)
662 $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi 765 $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi
663url.pdf: ${srcdir}/url.texi ${gfdl} 766url.pdf: $(url_deps)
664 $(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi 767 $(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi
768url.html: $(url_deps)
769 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/url.texi
665 770
771vip_deps = ${srcdir}/vip.texi ${gfdl}
666vip : $(buildinfodir)/vip$(INFO_EXT) 772vip : $(buildinfodir)/vip$(INFO_EXT)
667$(buildinfodir)/vip$(INFO_EXT): ${srcdir}/vip.texi ${gfdl} 773$(buildinfodir)/vip$(INFO_EXT): $(vip_deps)
668 $(mkinfodir) 774 $(mkinfodir)
669 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/vip.texi 775 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/vip.texi
670vip.dvi: ${srcdir}/vip.texi ${gfdl} 776vip.dvi: $(vip_deps)
671 $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi 777 $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi
672vip.pdf: ${srcdir}/vip.texi ${gfdl} 778vip.pdf: $(vip_deps)
673 $(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi 779 $(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi
780vip.html: $(vip_deps)
781 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/vip.texi
674 782
783viper_deps = ${srcdir}/viper.texi ${gfdl}
675viper : $(buildinfodir)/viper$(INFO_EXT) 784viper : $(buildinfodir)/viper$(INFO_EXT)
676$(buildinfodir)/viper$(INFO_EXT): ${srcdir}/viper.texi ${gfdl} 785$(buildinfodir)/viper$(INFO_EXT): $(viper_deps)
677 $(mkinfodir) 786 $(mkinfodir)
678 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/viper.texi 787 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/viper.texi
679viper.dvi: ${srcdir}/viper.texi ${gfdl} 788viper.dvi: $(viper_deps)
680 $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi 789 $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi
681viper.pdf: ${srcdir}/viper.texi ${gfdl} 790viper.pdf: $(viper_deps)
682 $(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi 791 $(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi
792viper.html: $(viper_deps)
793 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/viper.texi
683 794
795widget_deps = ${srcdir}/wisent.texi ${gfdl}
684widget : $(buildinfodir)/widget$(INFO_EXT) 796widget : $(buildinfodir)/widget$(INFO_EXT)
685$(buildinfodir)/widget$(INFO_EXT): ${srcdir}/widget.texi ${gfdl} 797$(buildinfodir)/widget$(INFO_EXT): $(widget_deps)
686 $(mkinfodir) 798 $(mkinfodir)
687 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/widget.texi 799 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/widget.texi
688widget.dvi: ${srcdir}/widget.texi ${gfdl} 800widget.dvi: $(widget_deps)
689 $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi 801 $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi
690widget.pdf: ${srcdir}/widget.texi ${gfdl} 802widget.pdf: $(widget_deps)
691 $(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi 803 $(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi
804widget.html: $(widget_deps)
805 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/widget.texi
692 806
807wisent_deps = ${srcdir}/wisent.texi ${gfdl}
693wisent : $(buildinfodir)/wisent$(INFO_EXT) 808wisent : $(buildinfodir)/wisent$(INFO_EXT)
694$(buildinfodir)/wisent$(INFO_EXT): ${srcdir}/wisent.texi ${gfdl} 809$(buildinfodir)/wisent$(INFO_EXT): $(wisent_deps)
695 $(mkinfodir) 810 $(mkinfodir)
696 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/wisent.texi 811 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/wisent.texi
697wisent.dvi: ${srcdir}/wisent.texi ${gfdl} 812wisent.dvi: $(wisent_deps)
698 $(ENVADD) $(TEXI2DVI) ${srcdir}/wisent.texi 813 $(ENVADD) $(TEXI2DVI) ${srcdir}/wisent.texi
699wisent.pdf: ${srcdir}/wisent.texi ${gfdl} 814wisent.pdf: $(wisent_deps)
700 $(ENVADD) $(TEXI2PDF) ${srcdir}/wisent.texi 815 $(ENVADD) $(TEXI2PDF) ${srcdir}/wisent.texi
816wisent.html: $(wisent_deps)
817 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/wisent.texi
701 818
819woman_deps = ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl}
702woman : $(buildinfodir)/woman$(INFO_EXT) 820woman : $(buildinfodir)/woman$(INFO_EXT)
703$(buildinfodir)/woman$(INFO_EXT): ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl} 821$(buildinfodir)/woman$(INFO_EXT): $(woman_deps)
704 $(mkinfodir) 822 $(mkinfodir)
705 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/woman.texi 823 $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/woman.texi
706woman.dvi: ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl} 824woman.dvi: $(woman_deps)
707 $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi 825 $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi
708woman.pdf: ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl} 826woman.pdf: $(woman_deps)
709 $(ENVADD) $(TEXI2PDF) ${srcdir}/woman.texi 827 $(ENVADD) $(TEXI2PDF) ${srcdir}/woman.texi
710 828woman.html: $(woman_deps)
829 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/woman.texi
711 830
712.PHONY: mostlyclean clean distclean maintainer-clean 831.PHONY: mostlyclean clean distclean maintainer-clean
713 832
@@ -718,7 +837,8 @@ mostlyclean:
718 rm -f gnustmp.* 837 rm -f gnustmp.*
719 838
720clean: mostlyclean 839clean: mostlyclean
721 rm -f $(DVI_TARGETS) $(PDF_TARGETS) 840 rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS)
841 rm -f efaq-w32.dvi efaq-w32.html efaq-w32.pdf efaq-w32.ps
722 rm -f emacs-misc-${version}.tar* 842 rm -f emacs-misc-${version}.tar*
723 843
724distclean: clean 844distclean: clean
@@ -753,4 +873,53 @@ dist:
753 tar -cf emacs-misc-${version}.tar emacs-misc-${version} 873 tar -cf emacs-misc-${version}.tar emacs-misc-${version}
754 rm -rf emacs-misc-${version} 874 rm -rf emacs-misc-${version}
755 875
876
877.PHONY: install-dvi install-html install-pdf install-ps install-doc
878
879install-dvi: dvi
880 umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir)
881 $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir)
882install-html: html
883 umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir)
884 $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir)
885install-pdf: pdf
886 umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir)
887 $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir)
888install-ps: ps
889 umask 022; $(MKDIR_P) $(DESTDIR)$(psdir)
890 for file in $(PS_TARGETS); do \
891 $(INSTALL_DATA) $${file} $(DESTDIR)$(psdir); \
892 [ -n "${GZIP_PROG}" ] || continue; \
893 rm -f $(DESTDIR)$(psdir)/$${file}.gz; \
894 ${GZIP_PROG} -9n $(DESTDIR)$(psdir)/$${file}; \
895 done
896
897## Top-level Makefile installs the info pages.
898install-doc: install-dvi install-html install-pdf install-ps
899
900
901
902.PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps uninstall-doc
903
904uninstall-dvi:
905 for file in $(DVI_TARGETS); do \
906 rm -f $(DESTDIR)$(dvidir)/$${file}; \
907 done
908uninstall-html:
909 for file in $(HTML_TARGETS); do \
910 rm -f $(DESTDIR)$(htmldir)/$${file}; \
911 done
912uninstall-ps:
913 ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \
914 for file in $(PS_TARGETS); do \
915 rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \
916 done
917uninstall-pdf:
918 for file in $(PDF_TARGETS); do \
919 rm -f $(DESTDIR)$(pdfdir)/$${file}; \
920 done
921
922uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
923
924
756### Makefile ends here 925### Makefile ends here
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 4cc5d9c5767..c62d7026541 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -241,7 +241,7 @@ functions, classes, etc.; there are other packages for that.
241* Customizing Indentation:: 241* Customizing Indentation::
242* Custom Macros:: 242* Custom Macros::
243* Odds and Ends:: 243* Odds and Ends::
244* Sample .emacs File:: 244* Sample Init File::
245* Performance Issues:: 245* Performance Issues::
246* Limitations and Known Bugs:: 246* Limitations and Known Bugs::
247* FAQ:: 247* FAQ::
@@ -1113,7 +1113,7 @@ valid.}.
1113This function is not bound to a key by default, but it's intended to be 1113This function is not bound to a key by default, but it's intended to be
1114used on the @kbd{RET} key. If you like the behavior of 1114used on the @kbd{RET} key. If you like the behavior of
1115@code{newline-and-indent} on @kbd{RET}, you should consider switching to 1115@code{newline-and-indent} on @kbd{RET}, you should consider switching to
1116this function. @xref{Sample .emacs File}. 1116this function. @xref{Sample Init File}.
1117 1117
1118@item @kbd{M-x c-context-open-line} 1118@item @kbd{M-x c-context-open-line}
1119@findex c-context-open-line 1119@findex c-context-open-line
@@ -1170,7 +1170,7 @@ and @ref{Indentation Engine Basics}.
1170 1170
1171You can toggle each of these minor modes on and off, and you can 1171You can toggle each of these minor modes on and off, and you can
1172configure @ccmode{} so that it starts up with your favorite 1172configure @ccmode{} so that it starts up with your favorite
1173combination of them (@pxref{Sample .emacs File}). By default, when 1173combination of them (@pxref{Sample Init File}). By default, when
1174you initialize a buffer, electric mode and syntactic-indentation mode 1174you initialize a buffer, electric mode and syntactic-indentation mode
1175are enabled but the other two modes are disabled. 1175are enabled but the other two modes are disabled.
1176 1176
@@ -2378,7 +2378,7 @@ those set by @code{c-default-style}.
2378@vindex initialization-hook (c-) 2378@vindex initialization-hook (c-)
2379Hook run only once per Emacs session, when @ccmode{} is initialized. 2379Hook run only once per Emacs session, when @ccmode{} is initialized.
2380This is a good place to change key bindings (or add new ones) in any 2380This is a good place to change key bindings (or add new ones) in any
2381of the @ccmode{} key maps. @xref{Sample .emacs File}. 2381of the @ccmode{} key maps. @xref{Sample Init File}.
2382@end defvar 2382@end defvar
2383 2383
2384@defvar c-mode-common-hook 2384@defvar c-mode-common-hook
@@ -2406,7 +2406,7 @@ overwritten when @ccmode{} gets loaded.
2406Here's a simplified example of what you can add to your @file{.emacs} 2406Here's a simplified example of what you can add to your @file{.emacs}
2407file to do things whenever any @ccmode{} language is edited. See the 2407file to do things whenever any @ccmode{} language is edited. See the
2408Emacs manuals for more information on customizing Emacs via hooks. 2408Emacs manuals for more information on customizing Emacs via hooks.
2409@xref{Sample .emacs File}, for a more complete sample @file{.emacs} 2409@xref{Sample Init File}, for a more complete sample @file{.emacs}
2410file. 2410file.
2411 2411
2412@example 2412@example
@@ -2685,7 +2685,7 @@ create a new @dfn{style definition}, possibly based on an existing
2685style. To do this, put the new style's settings into a list with the 2685style. To do this, put the new style's settings into a list with the
2686following format; the list can then be passed as an argument to the 2686following format; the list can then be passed as an argument to the
2687function @code{c-add-style}. You can see an example of a style 2687function @code{c-add-style}. You can see an example of a style
2688definition in @ref{Sample .emacs File}. 2688definition in @ref{Sample Init File}.
2689 2689
2690@cindex style definition 2690@cindex style definition
2691@c @defvr {List} style definition 2691@c @defvr {List} style definition
@@ -2753,7 +2753,7 @@ deprecated and it might be removed from @ccmode{} in a future release.
2753You should use @code{c-set-style} instead. 2753You should use @code{c-set-style} instead.
2754 2754
2755The sample @file{.emacs} file provides a concrete example of how a new 2755The sample @file{.emacs} file provides a concrete example of how a new
2756style can be added and automatically set. @xref{Sample .emacs File}. 2756style can be added and automatically set. @xref{Sample Init File}.
2757@end defun 2757@end defun
2758 2758
2759@defvar c-style-alist 2759@defvar c-style-alist
@@ -6760,7 +6760,7 @@ initialization code.
6760@end defun 6760@end defun
6761 6761
6762@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6762@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6763@node Odds and Ends, Sample .emacs File, Custom Macros, Top 6763@node Odds and Ends, Sample Init File, Custom Macros, Top
6764@comment node-name, next, previous, up 6764@comment node-name, next, previous, up
6765@chapter Odds and Ends 6765@chapter Odds and Ends
6766@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6766@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -6804,9 +6804,9 @@ anchoring position to indent the line in that case.
6804 6804
6805 6805
6806@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6806@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6807@node Sample .emacs File, Performance Issues, Odds and Ends, Top 6807@node Sample Init File, Performance Issues, Odds and Ends, Top
6808@comment node-name, next, previous, up 6808@comment node-name, next, previous, up
6809@appendix Sample .emacs File 6809@appendix Sample Init File
6810@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6810@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6811 6811
6812Here's a sample .emacs file fragment that might help you along the way. 6812Here's a sample .emacs file fragment that might help you along the way.
@@ -6863,7 +6863,7 @@ to change some of the actual values.
6863@end verbatim 6863@end verbatim
6864 6864
6865@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 6865@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
6866@node Performance Issues, Limitations and Known Bugs, Sample .emacs File, Top 6866@node Performance Issues, Limitations and Known Bugs, Sample Init File, Top
6867@comment node-name, next, previous, up 6867@comment node-name, next, previous, up
6868@chapter Performance Issues 6868@chapter Performance Issues
6869@cindex performance 6869@cindex performance
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index 90f8a258d23..6dfc41d83f3 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -461,6 +461,7 @@ matter of stylistic taste:
461 @var{body})) 461 @var{body}))
462@end example 462@end example
463 463
464@cindex destructuring, in argument list
464Argument lists support @dfn{destructuring}. In Common Lisp, 465Argument lists support @dfn{destructuring}. In Common Lisp,
465destructuring is only allowed with @code{defmacro}; this package 466destructuring is only allowed with @code{defmacro}; this package
466allows it with @code{cl-defun} and other argument lists as well. 467allows it with @code{cl-defun} and other argument lists as well.
@@ -1492,6 +1493,7 @@ simply returning @code{nil}.
1492 1493
1493@node Blocks and Exits 1494@node Blocks and Exits
1494@section Blocks and Exits 1495@section Blocks and Exits
1496@cindex block
1495 1497
1496@noindent 1498@noindent
1497Common Lisp @dfn{blocks} provide a non-local exit mechanism very 1499Common Lisp @dfn{blocks} provide a non-local exit mechanism very
@@ -2139,6 +2141,7 @@ that was just set by the previous clause; in the second loop,
2139based on the value of @code{x} left over from the previous time 2141based on the value of @code{x} left over from the previous time
2140through the loop. 2142through the loop.
2141 2143
2144@cindex destructuring, in cl-loop
2142Another feature of the @code{cl-loop} macro is @emph{destructuring}, 2145Another feature of the @code{cl-loop} macro is @emph{destructuring},
2143similar in concept to the destructuring provided by @code{defmacro} 2146similar in concept to the destructuring provided by @code{defmacro}
2144(@pxref{Argument Lists}). 2147(@pxref{Argument Lists}).
@@ -2503,6 +2506,8 @@ if @var{expr} returns a list of the wrong number of arguments
2503or with incorrect keyword arguments. 2506or with incorrect keyword arguments.
2504@end defmac 2507@end defmac
2505 2508
2509@cindex compiler macros
2510@cindex define compiler macros
2506This package also includes the Common Lisp @code{define-compiler-macro} 2511This package also includes the Common Lisp @code{define-compiler-macro}
2507facility, which allows you to define compile-time expansions and 2512facility, which allows you to define compile-time expansions and
2508optimizations for your functions. 2513optimizations for your functions.
diff --git a/doc/misc/edt.texi b/doc/misc/edt.texi
index 339d59bd123..40aeae836ef 100644
--- a/doc/misc/edt.texi
+++ b/doc/misc/edt.texi
@@ -789,13 +789,13 @@ so the above directions may need some modification if your site has such
789special needs. 789special needs.
790 790
791@menu 791@menu
792* edt-user.el:: Creating your own @file{edt-user.el} file. 792* Init file:: Creating your own @file{edt-user.el} file.
793* Words:: Specifying word entities. 793* Words:: Specifying word entities.
794* Control keys:: Enabling EDT control key sequence bindings. 794* Control keys:: Enabling EDT control key sequence bindings.
795* Scroll margins:: Setting scroll margins. 795* Scroll margins:: Setting scroll margins.
796@end menu 796@end menu
797 797
798@node edt-user.el 798@node Init file
799@section Creating your own @file{edt-user.el} File 799@section Creating your own @file{edt-user.el} File
800 800
801A sample @file{edt-user.el} file is provided in the Emacs @file{etc/} 801A sample @file{edt-user.el} file is provided in the Emacs @file{etc/}
diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi
new file mode 100644
index 00000000000..c6f44cea2b8
--- /dev/null
+++ b/doc/misc/efaq-w32.texi
@@ -0,0 +1,2365 @@
1\input texinfo @c -*-coding:utf-8 -*-
2@setfilename efaq-w32
3@settitle GNU Emacs FAQ For MS Windows
4@setchapternewpage odd
5@syncodeindex pg cp
6@syncodeindex ky cp
7@syncodeindex tp cp
8@syncodeindex vr fn
9
10@documentdescription
11Answers to Frequently asked Questions about using Emacs on Microsoft Windows.
12@end documentdescription
13
14@include emacsver.texi
15
16@documentencoding utf-8
17@documentlanguage en
18
19@copying
20Copyright @copyright{} 2008, 2010-2013 Free Software Foundation, Inc.
21
22@quotation
23This list of frequently asked questions about GNU Emacs on MS Windows
24with answers (``FAQ'') may be translated into other languages,
25transformed into other formats (e.g. Texinfo, Info, WWW), and updated
26with new information.
27
28The same conditions apply to any derivative of the FAQ as apply to the FAQ
29itself. Every copy of the FAQ must include this notice or an approved
30translation, information on who is currently maintaining the FAQ and how to
31contact them (including their e-mail address), and information on where the
32latest version of the FAQ is archived (including FTP information).
33
34The FAQ may be copied and redistributed under these conditions, except that
35the FAQ may not be embedded in a larger literary work unless that work
36itself allows free copying and redistribution.
37@end quotation
38@end copying
39
40@dircategory Emacs
41@direntry
42* Emacs W32 FAQ: (efaq-w32). FAQs about Emacs on MS Windows.
43@end direntry
44
45@c The @titlepage stuff only appears in the printed version
46@titlepage
47@sp 10
48@center @titlefont{GNU Emacs FAQ for MS Windows}
49
50@c The following two commands start the copyright page.
51@page
52@vskip 0pt plus 1filll
53@insertcopying
54@end titlepage
55
56@footnotestyle end
57
58@node Top
59@top GNU Emacs FAQ for MS Windows
60
61This is the FAQ for using GNU Emacs on MS Windows, as distributed with
62Emacs @value{EMACSVER}.
63
64This FAQ is maintained by the developers and users of Emacs on MS Windows.
65If you find any errors, or have any suggestions, please send them to
66the @url{http://lists.gnu.org/mailman/listinfo/help-emacs-windows,
67help-emacs-windows} mailing list.
68
69At time of writing, the latest version of GNU Emacs is version @value{EMACSVER}.
70
71@c Links to ftp.gnu.org are given as http links, since Windows ftp clients
72@c are notoriously bad at handling firewalls etc.
73
74@contents
75
76@menu
77* Introduction::
78* Getting Emacs::
79* Installing Emacs::
80* Display Settings::
81* Fonts and text translation::
82* Printing::
83* Sub-processes::
84* Network access::
85* Text and Utility modes::
86* Developing with Emacs::
87* Other useful ports::
88* Further information::
89* Indexes::
90@end menu
91
92@c ------------------------------------------------------------
93@node Introduction
94@chapter Introduction
95@cindex scope of FAQ
96
97This FAQ covers questions that are specific to running GNU Emacs on Windows.
98For more general information, see the other Emacs manuals.
99@xref{Further information}.
100
101@menu
102* Why Emacs on Windows::
103* Which versions of Windows::
104* Other versions of Emacs::
105@end menu
106
107@node Why Emacs on Windows
108@section Why support GNU Emacs on Windows?
109@cindex Why Windows
110
111It is not our goal to ``help Windows users'' by making text editing
112on Windows more convenient. We aim to replace proprietary software,
113not to enhance it. So why support GNU Emacs on Windows?
114
115We hope that the experience of using GNU Emacs on Windows will give
116programmers a taste of freedom, and that this will later inspire them
117to move to a free operating system such as GNU/Linux. That is the
118main valid reason to support free applications on nonfree operating
119systems.
120
121@node Which versions of Windows
122@section Which versions of Windows are supported?
123@cindex Windows, versions
124@cindex supported versions of Windows
125
126Emacs @value{EMACSVER} is known to run on all versions of Windows from
127@c FIXME does it really still support Windows 98? Does it matter?
128Windows 98 and Windows NT 4.0 through to Windows 7. The Windows port is
129built using the Win32 API and supports most features of the X version,
130including variable width fonts, images and tooltips.
131
132@node Other versions of Emacs
133@section What other versions of Emacs run on Windows?
134@cindex other ports of Emacs
135
136@xref{Cygwin}.
137
138@cindex DOS port
139@cindex Windows 3.11 port
140Emacs can also be compiled for MSDOS. When run on recent MS Windows,
141it supports long file names, and uses the Windows clipboard.
142See the @file{msdos} directory in the Emacs sources for building
143instructions (requires DJGPP).
144
145@c ------------------------------------------------------------
146@node Getting Emacs
147@chapter Getting Emacs
148
149@menu
150* Downloading::
151* Compiling::
152* Debugging::
153@end menu
154
155@node Downloading
156@section Where can I download Emacs?
157
158@cindex precompiled binaries
159@cindex where to get Emacs binaries
160Pre-compiled versions are distributed from
161@uref{http://ftpmirror.gnu.org/emacs/windows/, ftp.gnu.org mirrors}.
162Emacs binaries are distributed as zip files, digitally
163signed by the developer who built them. Generally most users will
164want the file @file{emacs-@value{EMACSVER}-bin-i386.zip}, which
165contains everything you need to get started.
166
167@cindex where to get sources
168@cindex Emacs source code
169@cindex source for Emacs
170The latest source is available from
171@uref{http://ftpmirror.gnu.org/emacs/, ftp.gnu.org mirrors}. It is
172distributed as a compressed tar file, digitally signed by the maintainer
173who made the release.
174
175@cindex Bzr, getting Emacs
176@cindex latest development version of Emacs
177@cindex Emacs Development
178The development version of Emacs is available from
179@uref{http://savannah.gnu.org/projects/emacs, Savannah}, the GNU
180development site.
181
182@node Compiling
183@section How can I compile Emacs myself?
184@cindex compiling Emacs
185
186To compile Emacs on Windows, you will need the MingW or Cygwin port of
187GCC with MingW make, or a Microsoft C compiler with nmake and the
188single threaded C runtime library. Recent versions of Microsoft
189Visual Studio no longer come with the single threaded C runtime
190library, which is required for certain POSIX compatibility, so MingW
191is usually the best choice. Image support requires external
192libraries, the headers and import libraries for which will need to be
193installed where your compiler can find them. You will also need ports
194of GNU @command{rm} and @command{cp}, as the Windows native
195equivalents are not consistent between versions. GNU texinfo will be
196required to build the manuals. @xref{Other useful ports}.
197
198After unpacking the source, or checking out of Bzr, be sure to read the
199instructions in @file{nt/README} and @file{nt/INSTALL}.
200
201@node Debugging
202@section How do I use a debugger on Emacs?
203@cindex debugging Emacs
204@cindex bugs in Emacs, how to debug
205@cindex Emacs debugging
206
207By default, Emacs is compiled with debugging on, and optimizations enabled.
208The optimizations may interfere with some types of debugging; the debugger
209may not show clearly where it is, or may not be able to inspect certain
210variables. If this is the case, reconfigure with @option{--no-opt}.
211
212The file @file{etc/DEBUG} contains general debugging hints, as well as
213specific notes about debugging Emacs with both gdb and Microsoft debuggers.
214
215@menu
216* GDB::
217* Microsoft Developer Studio::
218@end menu
219
220@node GDB
221@subsection GDB
222@cindex GDB, debugging Emacs with
223@cindex debugging Emacs with GDB
224
225GDB is the GNU debugger, which can be used to debug Emacs when it has
226been compiled with GCC. The best results will be obtained if you
227start gdb from the @file{src} directory as @samp{gdb oo/i386/emacs.exe}.
228This will load the init file @file{.gdbinit} in that directory, to
229define some extra commands for working with lisp while debugging, and
230set up breakpoints to catch abnormal aborts.
231
232@node Microsoft Developer Studio
233@subsection Microsoft Developer Studio
234@cindex MSVC++, debugging Emacs with
235@cindex DevStudio, debugging Emacs with
236@cindex debugging Emacs with MS DevStudio
237
238MS DevStudio can be used to debug Emacs when it has been compiled with
239a Microsoft compiler. To view lisp variables, you can call the
240function @code{debug_print} from the Quickwatch window. Some
241@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/debug.txt,
242old tips} are probably still valid.
243
244@c ------------------------------------------------------------
245@node Installing Emacs
246@chapter Installing Emacs
247
248@menu
249* Unpacking::
250* Installing::
251* Image support::
252* Init file::
253* Location of init file::
254* Troubleshooting init file::
255* Associate files with Emacs::
256* Find-file and the Desktop::
257* Make Windows more like X::
258* Make Emacs like a Windows app::
259* Window operations::
260* Uninstall::
261* Does not run::
262* Virus::
263* Anti-virus::
264@end menu
265
266@node Unpacking
267@section How do I unpack the distributions?
268@cindex unpacking Emacs distribution
269@cindex extracting Emacs distribution
270@cindex unzipping Emacs distribution
271@cindex untarring Emacs distribution
272@cindex zip files, how to unpack Emacs binaries
273@cindex tar.gz files, how to unpack Emacs sources
274
275The binary distributions are distributed as zip files, which are handled
276natively by Windows XP and later. For earlier versions, there are many
277tools that can handle the zip format, from InfoZip's command line unzip
278tool, to 7zip's multi-format graphical archive explorer. Although
279popular, WinZip has caused problems with line-ends in the past, and is not
280Free software, so we do not recommend it.
281
282Source distributions are distributed as gzipped tar files. 7zip and
283similar multi-format graphical tools can handle these, or you can get
284Windows ports of the command line gzip and tar tools from multiple sources.
285@xref{Other useful ports}.
286
287The command to unpack a source distribution from the command line is:
288@example
289tar xzf emacs-@value{EMACSVER}.tar.gz
290@end example
291
292If this does not work with the versions of tar and gzip that you have,
293you may need to try a two step process:
294@example
295gzip -dc emacs-@value{EMACSVER}.tar.gz | tar xvf -
296@end example
297
298You may see many messages from tar complaining about being unable to change
299the modification time on directories, and from gzip complaining about a
300broken pipe. These messages are usually harmless, caused by incomplete ports
301that are not fully aware of the limitations of Windows.
302
303@node Installing
304@section How do I install Emacs after unpacking?
305@cindex installing Emacs
306@pindex addpm
307@cindex Start Menu, creating icons for Emacs
308
309You can run Emacs without any extra steps, but if you want icons in your
310Start Menu, or for Emacs to detect the image libraries that are already
311installed on your system as part of GTK, then you should run the program
312@file{emacs-@value{EMACSVER}\bin\addpm.exe}.
313
314@node Image support
315@section How do I get image support?
316@cindex images, installing libraries for
317@cindex jpeg, installing image support in Emacs
318@cindex png, installing image support in Emacs
319@cindex gif, installing image support in Emacs
320@cindex tiff, installing image support in Emacs
321@cindex xpm, installing image support in Emacs
322@cindex toolbar, installing color icons in
323@cindex color images, installing support for images in Emacs
324@cindex monochrome images, getting color images in Emacs
325@cindex black and white images, getting color images in Emacs
326
327Emacs has built in support for XBM and PBM/PGM/PPM images. This is
328sufficient to see the monochrome splash screen and tool-bar icons.
329Since 22.2, the official precompiled binaries for Windows have bundled
330libXpm, which is required to display the color versions of those images.
331
332Emacs is compiled to recognize JPEG, PNG, GIF and TIFF images also,
333but displaying these image types require external DLLs which are not
334bundled with Emacs. @xref{Other useful ports}.
335
336@node Init file
337@section What is my init file?
338@cindex .emacs
339@cindex init file
340
341When Emacs starts up, it attempts to load and execute the contents of
342a file commonly called @file{.emacs} (though it may have other names,
343@pxref{Installing Emacs,,Where do I put my init file?}) which contains any
344customizations you have made. You can manually add lisp code to your
345.emacs, or you can use the Customization interface accessible from the
346@emph{Options} menu. If the file does not exist, Emacs will start
347with the default settings.
348
349@node Location of init file
350@section Where do I put my init file?
351@cindex HOME directory
352@cindex .emacs.d
353@cindex _emacs
354@cindex init.el
355@cindex registry, setting the HOME directory in
356
357On Windows, the .emacs file may be called _emacs for backward
358compatibility with DOS and FAT filesystems where filenames could not
359start with a dot. Some users prefer to continue using such a name,
360because Explorer cannot create a file with a name starting with a dot,
361even though the filesystem and most other programs can handle it.
362In Emacs 22 and later, the init file may also be called
363@file{.emacs.d/init.el}. Many of the other files that are created
364by lisp packages are now stored in the @file{.emacs.d} directory too,
365so this keeps all your Emacs related files in one place.
366
367All the files mentioned above should go in your @env{HOME} directory.
368The @env{HOME} directory is determined by following the steps below:
369
370@enumerate
371@item
372If the environment variable @env{HOME} is set, use the directory it indicates.
373@item
374If the registry entry @code{HKCU\SOFTWARE\GNU\Emacs\HOME} is set, use the
375directory it indicates.
376@item
377If the registry entry @code{HKLM\SOFTWARE\GNU\Emacs\HOME} is set, use the
378directory it indicates. Not recommended, as it results in users sharing
379the same HOME directory.
380@item
381If @file{C:\.emacs} exists, then use @file{C:/}. This is for
382backward compatibility, as previous versions defaulted to @file{C:/}
383if @env{HOME} was not set.
384@item
385Use the user's AppData directory, usually a directory called
386@file{Application Data} under the user's profile directory, the location
387of which varies according to Windows version and whether the computer is
388part of a domain.
389@end enumerate
390
391Within Emacs, @key{~} at the beginning of a file name is expanded to your
392@env{HOME} directory, so you can always find your .emacs file with
393@kbd{C-x C-f ~/.emacs}.
394
395@node Troubleshooting init file
396@section Troubleshooting init file problems
397@cindex troubleshooting init problems
398@cindex debugging init problems
399@cindex checking that HOME is set correctly
400
401If you've set @env{HOME} to a directory using one of the above
402methods, and Emacs still doesn't load your init file, the first
403thing you should do is check to see what Emacs thinks @env{HOME} is set
404to. You can do this by evaluating the following expression in the
405@file{*scratch*} buffer using @kbd{C-x C-e}:
406
407@example
408(insert (getenv "HOME"))
409@end example
410
411Look carefully at what is printed and make sure the value is
412valid. For example, if the value has trailing whitespace, Emacs won't
413be able to find the directory. Also, be sure that the value isn't a
414relative drive letter (e.g., @file{d:} without a backslash); if it is,
415then @env{HOME} is going to be whatever the current directory on that
416drive is, which is likely not what you want to happen.
417
418@node Associate files with Emacs
419@section How do I associate files with Emacs?
420@cindex Explorer, associating Emacs with files in
421@cindex emacsclient, associating files with
422@cindex file associations
423@cindex associating files with Emacs
424@cindex ALTERNATE_EDITOR
425@findex server-start
426
427The recommended way to associate files is to associate them with
428@command{emacsclientw.exe}. In order for this to work when Emacs is
429not yet started, you will also need to set the environment variable
430@env{ALTERNATE_EDITOR} to @command{runemacs.exe}. To open files
431in a running instance of Emacs, you will need to add the following
432to your init file:
433@example
434(server-start)
435@end example
436
437@menu
438* Using with Explorer::
439@end menu
440
441@node Using with Explorer
442@subsection For use with Internet Explorer
443@cindex Internet Explorer, view source in Emacs
444@cindex mailto urls, associating with Emacs
445@cindex news urls, associating with Emacs
446@cindex URLs, associating mail and news URLs with Emacs
447
448You can use Emacs as the editor for composing mail for
449@indicateurl{mailto:} links, reading usenet for @indicateurl{news:}
450links, and viewing source. The following registry entries control
451this:
452
453@itemize @w{}
454@item
455Mail
456@itemize
457@item @strong{Key:} HKCR\mailto\shell\open\command\(Default)
458@item @strong{Value:} emacsclientw -e "(message-mail (substring \"%1\" 7))"
459@end itemize
460
461@item
462News
463@itemize
464@item @strong{Key:} HKCR\news\shell\open\command\(Default)
465@item @strong{Value:} emacsclientw -e "(gnus-fetch-group (substring \"%1\" 5)"
466@end itemize
467
468@item
469View Source
470@itemize
471@item @strong{Key:} HKCR\htmlfile\shell\edit\command\(Default)
472@item @strong{Value:} emacsclientw "%1"
473@end itemize
474
475@end itemize
476
477Thanks to Jason Rumney and Sigbjorn Finne for these tips.
478
479@node Find-file and the Desktop
480@section How do I use find-file to open files that are on the Desktop?
481@cindex Desktop, finding where it is
482@cindex finding the Desktop
483@cindex locating files on the Desktop
484
485The location of the Desktop varies between different versions of
486Windows, and in a corporate environment can be moved around by the
487network administrator. On NT derivatives, you can use the value of
488the @env{USERPROFILE} environment variable to find where the desktop
489might be:
490
491@example
492@kbd{C-x C-f $USERPROFILE/Desktop}
493@end example
494
495If this doesn't work, then you probably have to forgo the keyboard
496just this once, and either drag a file onto the Emacs frame from the
497desktop, or use the file dialog (displayed when you use the toolbar or
498menu by default). Once you have a file from the Desktop inside Emacs,
499@kbd{C-x C-f} will quickly reveal where your desktop is kept.
500
501@node Make Windows more like X
502@section How can I modify Windows to act more like X?
503@cindex X, making Windows behave like
504
505@menu
506* Focus follows mouse::
507* Swap CapsLock and Control::
508@end menu
509
510@node Focus follows mouse
511@subsection How do it make the active window follow the mouse?
512@vindex focus-follows-mouse
513@cindex point to focus
514@cindex mouse over to focus
515
516Customize the variables @code{focus-follows-mouse} and
517@code{mouse-autoselect-window}. The former can be used to mislead
518Emacs into giving focus to other frames when the mouse is over them,
519even though Windows has a click to focus policy by default (there is
520software available to change that though). The latter can be used to
521make Emacs use a focus-follow-mouse policy within its own frames.
522
523@node Swap CapsLock and Control
524@subsection How do I swap CapsLock and Control?
525@cindex scan codes, modifying
526@cindex key layout, customizing
527@cindex caps-lock, swapping with control key
528@cindex control key, swapping with caps-lock
529@cindex windows key, use as alt
530@cindex alt key, using windows keys as additional
531
532This cannot be done within Emacs, but you can modify the scan code
533mappings in the registry or define a new keyboard layout to swap the
534keys on a system wide basis.
535
536@menu
537* Swap Caps NT::
538* Swap Caps 98::
539@end menu
540
541@node Swap Caps NT
542@subsubsection Windows NT/2000/XP/Vista?
543
544@itemize
545@item
546From Chris McMahon. To make CapsLock a Control key (leaving your
547original control keys as they were), use this registry file:
548@example
549REGEDIT4
550
551[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
552"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00
553@end example
554To swap CapsLock and the left Control key, use:
555@example
556REGEDIT4
557
558[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
559"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,1d,00,3a,00,3a,00,1d,00,00,00,00,00
560@end example
561Save these as files with a @file{.reg} extension, and double-click on
562them in Explorer, or ``run'' them from a command prompt to have them
563update your registry (you may need to reboot).
564@item
565Shane Holder gives some background on how "Scancode Map" is used
566by the system:
567@ignore
568http://ftp.gnu.org/old-gnu/emacs/windows/docs/ntemacs/contrib/caps-ctrl-registry.txt
569From: Shane Holder <holder@@mordor.rsn.hp.com>
570To: ntemacs-users@@cs.washington.edu
571Date: 04 Dec 1996 14:36:21 -0600
572Message-ID: <fawg21mm4hm.fsf@@mordor.rsn.hp.com>
573Subject: Re: Re[2]: problem with caps/ctrl swap on NT 4.0
574@end ignore
575@example
576It's a binary value that lets you map keystrokes in the low-level keyboard
577drivers in NT. As a result you don't have to worry about applications
578bypassing mappings that you've done at a higher level (i.e. it just works).
579
580Here's the format of the value:
581
582 DWORD: 0x00000000 header
583 DWORD: 0x00000000 header
584 DWORD: length (in DWORDs) of remaining data, including terminating DWORD
585 DWORD: mapping 1
586 ...
587 DWORD: mapping n
588 DWORD: 0x00000000 terminating null DWORD
589
590Each mapping DWORD has two parts: the input scancode, and an output
591scancode. To map scancode 0x1d (left control) to scancode 0x3a (caps
592lock), you want a value of 0x003a001d. Note that this does not swap the
593keys. Using just this mapping value, both the left control and the caps
594lock key will behave as caps-lock. To swap, you also need to map 0x3a to
5950x1d, using 0x001d003a.
596
597This registry value is system wide, and can't be made user-specific. It
598also only takes affect on reboot.
599@end example
600@item
601Ulfar Erlingsson has provided a registry file that sets the CapsLock key
602to be a Control key and the Windows key to be an Alt key:
603@example
604REGEDIT4
605
606[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
607"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,1d,00,3a,00,38,00,5b,e0,00,00,00,00
608@end example
609@end itemize
610
611@node Swap Caps 98
612@subsubsection Windows 95/98/ME
613
614Microsoft has a tool called keyremap that is part of their Kernel Toys add ons
615for Windows 95. The tool has also been confirmed to work on Windows 98.
616
617@node Make Emacs like a Windows app
618@section How can I modify Emacs to act more like a Windows app?
619@cindex Windows, making Emacs act more like
620@cindex UI, making Emacs more like other Windows apps
621
622Many beginning users find Emacs difficult to use because its user
623interface is different in many ways. Emacs predates most UI
624standards, and experienced Emacs users are used to the way things are,
625so changing the defaults is difficult. Most of the ``standard''
626behavior can be approximated in Emacs after some configuring though.
627
628@menu
629* Highlight selection::
630* CUA::
631@end menu
632
633@node Highlight selection
634@subsection Highlighting the selection
635@cindex transient-mark-mode
636@cindex selection, highlighting
637@cindex region, highlighting
638@cindex highlighting the selected region
639@cindex marked region, highlighting
640@cindex point and mark, highlighting the region between
641@cindex delete-selection-mode
642@cindex overwriting the selected region
643
644Emacs has a concept of a mark and point that is similar to selections
645in other programs. But the mark in Emacs is used for more than just
646defining the selected region, it lives on while you continue to edit
647and move around the buffer so it can also be a kind of bookmark. The
648history of marks is saved so you can pop previous marks back to the
649top of the stack to go back to somewhere you were some time ago.
650Because of this dual purpose, the region between mark and point is not
651highlighted by default unless you select a region by clicking and
652dragging the mouse.
653
654The minor mode @code{transient-mark-mode} changes the behavior of
655the mark in two ways. First, it distinguishes between an active mark
656that has just been defined or reactivated, and an inactive mark. When
657the mark is active, some commands that normally act on lines, words,
658buffers etc. will instead act on the region. An inactive mark needs
659to be reactivated to operate on it, unless @code{mark-even-if-inactive}
660is set. Secondly, @code{transient-mark-mode} also highlights the
661region when it is active, providing the same visual clue that you get
662in other programs.
663
664In addition to seeing the highlighting, new Emacs users often expect
665editing commands to replace the region when it is active. This behavior
666can be obtained with @code{delete-selection-mode}, but see the following
667question also.
668
669@node CUA
670@subsection Standard Windows key bindings
671@findex cua-mode
672@cindex CUA keybindings
673@cindex shift key, selecting with
674@cindex standard Windows keybindings
675@cindex paste with C-v
676@cindex cut with C-x
677@cindex copy with C-c
678@cindex C-c to copy
679@cindex C-x to cut
680@cindex C-v to paste
681
682The keybindings of Emacs predate modern GUIs, and the keys that were
683chosen by later GUIs for cut and copy were given important functions
684as extended keymaps in Emacs. CUA mode attempts to let both bindings
685co-exist by defining C-x and C-c as @code{kill-region} and
686@code{copy-region-as-kill} when the region is active, and letting
687them have their normal Emacs bindings when the region is not active.
688Many people find this to be an acceptable compromise. CUA mode also
689defines a number of other keys (C-v, Shift selection), and can be turned
690on from the @emph{Options} menu.
691
692@node Window operations
693@section Window operations
694@cindex maximize frames from lisp
695@cindex minimize frames from lisp
696@cindex WM_SYSCOMMAND, sending system commands from lisp
697@cindex system menu, simulating from lisp
698
699The function @code{w32-send-sys-command} can be used to simulate
700choosing commands from the system menu (in the top left corner of the
701Window) and a few other system wide functions. It takes an integer
702argument, the value of which should be a valid @code{WM_SYSCOMMAND}
703message as documented in Microsoft's API documentation.
704
705@node Uninstall
706@section How do I uninstall Emacs?
707@cindex uninstall Emacs
708@cindex remove Emacs
709@cindex clean Emacs registry settings
710@cindex registry, cleaning the Emacs settings
711@cindex Start Menu, removing Emacs from
712@cindex upgrading Emacs
713@cindex delete Emacs directory
714
715Emacs does not come with an uninstall program. No files are installed
716outside of the Emacs base directory, so deleting that directory is
717sufficient to clean away the files. If you ran @command{addpm},
718you'll need to delete the Start Menu group too. The registry entries
719inserted by @command{addpm} will not cause any problems if you leave
720them there, but for the sake of completeness, you can use @command{regedit}
721to remove the keys under @code{HKEY_LOCAL_MACHINE} orx
722@code{HKEY_CURRENT_USER}: @code{SOFTWARE\GNU\Emacs}, and the key
723@code{HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\emacs.exe} if it exists.
724
725@node Does not run
726@section When I run Emacs nothing happens
727@cindex troubleshooting installation problems
728@cindex window not appearing, Emacs
729@cindex failure to run, Emacs
730@cindex 8.3 filenames, problems caused
731
732Emacs could have failed to run for a number of reasons. The most
733common symptom is that, when Emacs is started, the cursor changes for
734a second but nothing happens. If this happens to you, it is quite
735likely that the distribution was unpacked incorrectly.
736
737Check for the following to see if there was a problem during unpacking:
738@enumerate
739@item
740Be sure to disable the CR/LF translation or the executables will be
741unusable. Older versions of WinZipNT would enable this translation by
742default. If you are using WinZipNT, disable it.
743@item
744Check that filenames were not truncated to 8.3. For example, there
745should be a file CONTRIBUTE in the top level directory; if this has
746been truncated to CONTRIBU or CONTRI~1, your distribution has been
747corrupted while unpacking and Emacs will not start.
748@end enumerate
749
750If it is still not working, send mail to the list, describing what
751you've done, and what you are seeing. (The more information you send
752the more likely it is that you'll receive a helpful response..
753
754@node Virus
755@section Does Emacs contain a virus?
756@cindex virus reported in Emacs
757@cindex anti-virus software reporting a virus in Emacs
758
759There have been reports in the past that some virus scanners claim
760that the Emacs distribution has a virus. This is extremely unlikely if
761you have downloaded Emacs from the GNU FTP site or one of its mirrors
762and the GPG signature for it is valid and listed in the GNU keyring,
763unless perhaps it is a new release made in the last few days, in which
764case you should exercise more caution and report the problem. Past
765problems seem to have been caused by virus checkers running into a
766buffer size limit when unpacking large tar.gz files for scanning, and
767reporting the failure as an ``unknown virus''.
768
769@node Anti-virus
770@section What known problems are there with anti-virus software?
771@cindex anti-virus software, bad interaction with
772@cindex virus software, bad interaction with
773@cindex firewall, bad interaction with
774@cindex scan all files, anti-virus option causing problems
775@cindex auto protect, anti-virus option causing problems
776@cindex shell, interacting badly with anti-virus
777@cindex subprocesses, interacting badly with anti-virus
778
779Anti-virus and firewall software can block Emacs from starting subprocesses
780and opening network connections. Most such products have an Advanced
781mode where they will prompt you rather than silently blocking. In some cases
782the ``scan all files'' or ``auto protect'' option of anti-virus programs
783has caused failures running shell related commands within Emacs.
784@xref{Sub-processes,,Why is nothing happening when I enter shell commands?}.
785
786@c ------------------------------------------------------------
787@node Display Settings
788@chapter Display Settings
789
790@menu
791* Console window size::
792* Mouse trouble::
793* Cut and paste NUL::
794* Garbled clipboard::
795* Beep sound::
796@end menu
797
798@node Console window size
799@section Emacs in console mode goes beyond the window size
800@cindex console, window size
801@cindex telnet, display size problems running emacs over
802@cindex -nw, window size
803@vindex w32-use-full-screen-buffer
804
805The variable @code{w32-use-full-screen-buffer} controls whether Emacs uses
806the window size or buffer size to determine the number of lines on screen.
807Normally the window size is correct, but when running Emacs over some
808telnet servers, the buffer size needs to be used. Emacs tries to guess
809the correct value at startup, but if it guesses wrong, you can customize
810that variable yourself.
811
812@node Mouse trouble
813@section What do I do if I have problems with my mouse buttons?
814@cindex mouse buttons, problems with
815@cindex 2 button mouse
816@cindex two button mouse
817@cindex third mouse button, simulating
818@cindex middle mouse button, simulating
819@cindex simulating three button mouse with two buttons
820@cindex swap right and middle mouse buttons
821@cindex exchange mouse-2 and mouse-3 buttons
822@vindex w32-mouse-button-tolerance
823@vindex w32-num-mouse-buttons
824@vindex w32-swap-mouse-buttons
825
826Emacs assigns bindings assuming a three button mouse. On Windows, if
827a two button mouse is detected, a hack is enabled which lets you
828simulate the third button by pressing both mouse buttons
829simultaneously. @code{w32-mouse-button-tolerance} defines the timeout
830for what is considered ``simultaneous''. You can check how many
831buttons Emacs thinks your mouse has with @kbd{C-h v}
832@code{w32-num-mouse-buttons}.
833
834If you find yourself needing the mouse-3 bindings more often than mouse-2,
835you can swap the buttons with the following code in your init file:
836@example
837(setq w32-swap-mouse-buttons t)
838@end example
839
840@node Cut and paste NUL
841@section How do I cut and paste text with NUL characters?
842@cindex clipboard, NUL characters
843
844If you attempt to cut and paste text with NUL characters embedded in it,
845then the text will be truncated at the first NUL character. This is a
846limitation of the Windows clipboard, and does not affect killing and yanking
847from the kill-ring within Emacs.
848
849@node Garbled clipboard
850@section How can I fix garbled text yanked from the clipboard?
851@cindex clipboard, corruption of
852@cindex garbage on the clipboard
853@cindex clipboard encoding
854@cindex encoding, clipboard
855@findex set-selection-coding-system
856
857You can try @code{set-selection-coding-system}, but generally such
858corruption is a thing of the past, as Emacs uses Unicode for the clipboard
859by default now.
860
861@node Beep sound
862@section How do I change the sound of the Emacs beep?
863@cindex beep, changing the sound
864@cindex sound, changing the beep
865@findex set-message-beep
866
867You can use the function @code{set-message-beep} to change the sound
868that Emacs uses for its beep. This affects both console and GUI frames.
869The doc string contains a list of the system sounds you can use.
870
871@c ------------------------------------------------------------
872@node Fonts and text translation
873@chapter Fonts and text translation
874
875@menu
876* Font names::
877* Bold and italic::
878* Multilingual fonts::
879* BDF fonts::
880* Font menu::
881* Line ends::
882@end menu
883
884@node Font names
885@section Font names
886@cindex XLFD font names
887@cindex font XLFD name format
888@cindex fontconfig font names in Emacs 23
889@cindex font dialog, using to find font names
890@findex w32-select-font
891@findex x-list-fonts
892
893Fonts in Emacs 22 and earlier are named using the X Logical Font
894Description (XLFD) format. Emacs on Windows ignores many of the
895fields, and populates them with * when listing fonts. Former
896maintainer Andrew Innes wrote
897@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/x-font-details,
898this explanation} of what each field in the font string means and how
899Emacs treated them back in 19.34. Since then, multilingual support and
900a redisplay overhaul to support variable width fonts have changed things
901slightly; more character sets are recognized (and the old pseudo character
902sets are deprecated), and the resolution fields are used to calculate the
903difference between point and pixel sizes, but normally you should leave
904these at the system default. The foundry field is also populated with
905an indication of whether the font is outline (.TTF, .ATM) or raster (.FON)
906based when fonts are listed, which may let you differentiate between two
907fonts with the same name and different technologies.
908
909From Emacs 23, the preferred font name format will be moving to the simpler
910and more flexible fontconfig format. XLFD names will continue to be
911supported for backward compatibility.
912
913@example
914XLFD: -*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-1
915Fontconfig: Courier New-13
916@end example
917
918To find the XFLD name for a font, you can execute the following in the
919@file{*scratch*} buffer by pressing C-j at the end of the line:
920@example
921(w32-select-font nil t)
922@end example
923
924To see a complete list of fonts, execute the following in the
925@file{*scratch*} buffer by pressing C-x C-e at the end of the line:
926@example
927(insert (prin1-to-string (x-list-fonts "*")))
928@end example
929
930The command line options and frame-parameters for changing the default font
931in Emacs are documented in the manual. Fonts can also be used when defining
932faces, though family and size are generally specified individually there.
933In addition, Emacs on Windows reads the registry to find X Resources. This
934is also documented in the manual.
935
936@node Bold and italic
937@section How can I get bold and italic fonts to work?
938@cindex italic fonts
939@cindex synthesized italic and bold fonts
940@cindex bold fonts, synthesized
941@findex set-face-font
942@vindex w32-enable-synthesized-fonts
943
944Emacs will only use the italic (and bold) versions of a font automatically
945if it has the same width as the normal version. Many fonts have italic
946and bold versions that are slightly wider. It will also only use real
947bold and italic fonts by default, where other applications may use
948synthesized variations that are derived from the normal font. To enable
949more italic and bold fonts to be displayed, you can enable synthesized fonts
950and manually set the font for italic, bold and bold-italic as follows:
951
952@example
953(setq w32-enable-synthesized-fonts t)
954(set-face-font 'italic "-*-Courier New-normal-i-*-*-11-*-*-*-c-*-iso8859-1")
955(set-face-font 'bold-italic "-*-Courier New-bold-i-*-*-11-*-*-*-c-*-iso8859-1")
956@end example
957
958@node Multilingual fonts
959@section Multilingual font support
960@cindex multilingual display, fonts
961@cindex MULE, fonts
962
963@menu
964* Language display::
965* Non-latin display::
966* International fonts::
967* Third-party multibyte::
968* Localized fonts::
969@end menu
970
971@node Language display
972@subsection Is it possible to display all the supported languages?
973@cindex HELLO file, displaying all
974@cindex language support, fonts
975@cindex GNU intlfonts, for displaying all languages
976@cindex intlfonts, for displaying all languages
977
978To display all the languages that Emacs is capable of displaying, you will
979require the BDF fonts from the GNU intlfonts package.
980@xref{Fonts and text translation,,How do I use bdf fonts with Emacs?}.
981
982For many languages, native truetype fonts are sufficient, and in Emacs
98323 the need for BDF fonts will disappear for almost all languages. At
984the time of writing, some Arabic characters in the HELLO file still do
985not display with native fonts, because they are pre-composed characters
986from MULE character sets rather than standard Unicode Arabic, but all
987other characters are able to be displayed with appropriate truetype or
988opentype fonts.
989
990@node Non-latin display
991@subsection How do I get Emacs to display non-latin characters?
992@cindex fontsets, defining
993@cindex language support, forcing Emacs to use specific fonts
994@cindex MULE, fontsets
995@cindex multilingual display, fontsets
996@findex create-fontset-from-ascii-font
997@findex create-fontset-from-fontset-spec
998
999Recent versions of Emacs display a large range of characters out of
1000the box, but if you are having problems with a particular character
1001set which you know you have fonts for, you can try defining a
1002new fontset with @code{create-fontset-from-ascii-font} or
1003@code{create-fontset-from-fontset-spec}.
1004
1005@example
1006(create-fontset-from-fontset-spec
1007 "-*-Courier New-normal-r-*-*-12-*-*-*-c-*-fontset-most,
1008 latin-iso8859-2:-*-Courier New-normal-r-*-*-12-*-*-*-c-*-iso8859-2,
1009 latin-iso8859-3:-*-Courier New-normal-r-*-*-12-*-*-*-c-*-iso8859-3,
1010 latin-iso8859-4:-*-Courier New-normal-r-*-*-12-*-*-*-c-*-iso8859-4,
1011 cyrillic-iso8859-5:-*-Courier New-normal-r-*-*-12-*-*-*-c-*-iso8859-5,
1012 greek-iso8859-7:-*-Courier New-normal-r-*-*-12-*-*-*-c-*-iso8859-7,
1013 latin-iso8859-9:-*-Courier New-normal-r-*-*-12-*-*-*-c-*-iso8859-9,
1014 japanese-jisx0208:-*-MS Gothic-normal-r-*-*-12-*-*-*-c-*-jisx0208-sjis,
1015 katakana-jisx0201:-*-MS Gothic-normal-r-*-*-12-*-*-*-c-*-jisx0208-sjis,
1016 latin-jisx0201:-*-MS Gothic-normal-r-*-*-12-*-*-*-c-*-jisx0208-sjis,
1017 japanese-jisx0208-1978:-*-MS Gothic-normal-r-*-*-12-*-*-*-c-*-jisx0208-sjis,
1018 korean-ksc5601:-*-Gulim-normal-r-*-*-12-*-*-*-c-*-ksc5601-*,
1019 chinese-gb2312:-*-MS Song-normal-r-*-*-12-*-*-*-c-*-gb2312-*,
1020 chinese-big5-1:-*-MingLiU-normal-r-*-*-12-*-*-*-c-*-big5-*,
1021 chinese-big5-2:-*-MingLiU-normal-r-*-*-12-*-*-*-c-*-big5-*" t)
1022@end example
1023
1024@node International fonts
1025@subsection Where can I find fonts for other languages?
1026@cindex language support, finding fonts
1027@cindex fonts, where to find
1028@cindex MULE, finding fonts
1029@cindex multilingual display, finding fonts
1030@cindex GNU intlfonts, where to get
1031@cindex intlfonts, where to get
1032
1033In addition to the wide range of fonts that come with the language
1034support packages of various components of Windows itself, GNU/Linux
1035distributions these days come with a number of Free truetype fonts
1036that cover a wide range of languages. The GNU intlfonts source
1037distribution contains BDF fonts covering all of the languages that can
1038be displayed by Emacs 22, and can be downloaded from
1039@uref{http://ftpmirror.gnu.org/intlfonts, ftp.gnu.org mirrors}.
1040
1041@node Third-party multibyte
1042@subsection How do I use third party programs to display multibyte characters?
1043@cindex multilingual display, third party programs on Windows 9x/ME
1044@cindex language support, third party programs on Windows 9x/ME
1045@vindex w32-enable-unicode-output
1046
1047You probably only need to do this on the non-Unicode versions of Windows
1048(95, 98 and ME), and even then, various Windows and Internet Explorer
1049updates have made third party software unnecessary in most cases.
1050If you are having trouble displaying text, try defining a fontset
1051with the font for the languages that the third party software handles
1052set to what that software expects (which may not be an appropriate font
1053for that language, but the third party software is intercepting it
1054and using a different font behind the scenes).
1055@xref{Non-latin display}.
1056
1057In addition to defining a fontset with the expected font, you may also need
1058to disable unicode output with:
1059@example
1060(setq w32-enable-unicode-output nil)
1061@end example
1062
1063@node Localized fonts
1064@subsection Can I use a font with a name in my language?
1065@cindex fonts, localized font names
1066@vindex locale-coding-system
1067
1068Normally Emacs should initialize @code{locale-coding-system} appropriately
1069based on your locale, which will let Emacs use font names in your local
1070language successfully.
1071
1072@node BDF fonts
1073@section How do I use bdf fonts with Emacs?
1074@cindex BDF fonts, using
1075@cindex GNU intlfonts, using
1076@cindex intlfonts, using
1077@vindex w32-bdf-filename-alist
1078@vindex bdf-directory-alist
1079@vindex font-encoding-alist
1080@findex w32-find-bdf-fonts
1081@findex set-frame-font
1082
1083To use bdf fonts with Emacs, you need to tell Emacs where the fonts
1084are located, create fontsets for them, and then use them. We'll use
1085the 16 dot international fonts from @uref{http://ftpmirror.gnu.org/intlfonts,
1086ftp.gnu.org/gnu/intlfonts} as an
1087example put together by Jason Rumney.
1088
1089Download @file{16dots.tar.gz} and unpack it; I'll assume that they are in
1090@file{c:\intlfonts}. Then set @code{w32-bdf-filename-alist} to the list of
1091fonts returned by using @code{w32-find-bdf-fonts} to enumerate all of
1092the font files. It is a good idea to set the variable
1093@code{bdf-directory-list} at the same time so @code{ps-print} knows where
1094to find the fonts:
1095@example
1096(setq bdf-directory-list
1097 '("c:/intlfonts/Asian" "c:/intlfonts/Chinese"
1098 "c:/intlfonts/Chinese-X" "c:/intlfonts/Ethiopic"
1099 "c:/intlfonts/European" "c:/intlfonts/Japanese"
1100 "c:/intlfonts/Japanese-X" "c:/intlfonts/Korean-X"
1101 "c:/intlfonts/Misc/"))
1102
1103(setq w32-bdf-filename-alist (w32-find-bdf-fonts bdf-directory-list))
1104@end example
1105
1106Then create fontsets for the BDF fonts:
1107
1108@example
1109(create-fontset-from-fontset-spec
1110 "-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf,
1111japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*,
1112katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
1113latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
1114japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*,
1115thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1,
1116lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1,
1117tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1,
1118ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode,
1119tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0")
1120@end example
1121
1122Many of the international bdf fonts from gnu.org are type 0, and therefore
1123need to be added to font-encoding-alist:
1124
1125@example
1126;; Need to add some fonts to font-encoding-alist since the bdf fonts
1127;; are type 0 not the default type 1.
1128(setq font-encoding-alist
1129 (append '(("MuleTibetan-0" (tibetan . 0))
1130 ("GB2312" (chinese-gb2312 . 0))
1131 ("JISX0208" (japanese-jisx0208 . 0))
1132 ("JISX0212" (japanese-jisx0212 . 0))
1133 ("VISCII" (vietnamese-viscii-lower . 0))
1134 ("KSC5601" (korean-ksc5601 . 0))
1135 ("MuleArabic-0" (arabic-digit . 0))
1136 ("MuleArabic-1" (arabic-1-column . 0))
1137 ("MuleArabic-2" (arabic-2-column . 0))) font-encoding-alist))
1138@end example
1139
1140You can now use the Emacs font menu (@pxref{Fonts and text
1141translation,,How can I have Emacs use a font menu like on X?}) to
1142select the @emph{bdf: 16-dot medium} fontset, or you can select it by
1143setting the default font:
1144
1145@example
1146 (set-frame-font "fontset-bdf")
1147@end example
1148
1149Try loading the file @file{etc/HELLO}, and you should be able to see the
1150various international fonts displayed (except for Hindi, which is not
1151included in the 16-dot font distribution).
1152
1153@node Font menu
1154@section How can I have Emacs use a font menu like on X?
1155@cindex fonts, displaying a menu
1156@cindex fontsets, displaying a menu
1157@cindex font dialog, using a menu instead
1158@vindex w32-use-w32-font-dialog
1159
1160Place the following in your init file:
1161
1162@example
1163(setq w32-use-w32-font-dialog nil)
1164@end example
1165
1166@menu
1167* Add fonts to menu::
1168@end menu
1169
1170@node Add fonts to menu
1171@subsection How can I add my font to the font menu?
1172@cindex font menu, adding fonts
1173@vindex w32-fixed-font-alist
1174
1175If you have set w32-use-w32-font-dialog to nil, you can add fonts to
1176the font menu by changing `w32-fixed-font-alist'. For example:
1177
1178@example
1179(setq w32-fixed-font-alist
1180 (append w32-fixed-font-alist
1181 '(("Monotype.com"
1182 ("8" "-*-Monotype.com-normal-r-*-*-11-*-*-*-c-iso8859-1")
1183 ("9" "-*-Monotype.com-normal-r-*-*-12-*-*-*-c-iso8859-1")
1184 ("10" "-*-Monotype.com-normal-r-*-*-13-*-*-*-c-iso8859-1")
1185 ("11" "-*-Monotype.com-normal-r-*-*-15-*-*-*-c-iso8859-1")))))
1186@end example
1187
1188@node Line ends
1189@section How can I control CR/LF translation?
1190@cindex DOS line ends
1191@cindex Unix line ends
1192@cindex Mac line ends
1193
1194There are a number of methods by which you can control automatic CR/LF
1195translation in Emacs, a situation that reflects the fact that the
1196default support was not very robust in the past. For a discussion of
1197this issue, take a look at
1198@uref{http://www.gnu.org/software/emacs/windows/ntemacs/todo/translate,
1199this collection of email messages} on the topic.
1200
1201@menu
1202* Automatic line ends::
1203* Line ends by filename::
1204* Line ends by file system::
1205@end menu
1206
1207@node Automatic line ends
1208@subsection Automatic CR/LF translation
1209@cindex line ends, automatic detection
1210
1211For existing files, Emacs scans the file to determine the line ending
1212convention as part of the same scan it does to determine the file
1213encoding. Embedded Ctrl-M (ASCII 13) characters and inconsistent line
1214ends can confuse the automatic scanning, and Emacs will present the
1215file in Unix (LF) mode with the Ctrl-M characters displayed as @samp{^M}.
1216It does this to be safe, as no data loss will occur if the file is really
1217binary and the Ctrl-M characters are significant.
1218
1219@node Line ends by filename
1220@subsection CR/LF translation by file extension
1221@cindex line ends, determining by filename
1222@cindex binary files, determining by file name
1223@vindex file-name-buffer-file-type-alist
1224
1225The variable @code{file-name-buffer-file-type-alist} holds a list of
1226filename patterns and their associated type; binary or text. Files marked
1227as binary will not have line-end detection performed on them, and instead
1228will always be displayed as is. With auto-detection in recent versions of
1229Emacs, this is seldom useful for existing files, but can still be used
1230to influence the choice of line ends for newly created files.
1231
1232@node Line ends by file system
1233@subsection CR/LF translation by file system
1234@cindex line ends, determining by filesystem
1235@cindex binary files, determining by filesystem
1236@vindex untranslated-filesystem-list
1237@findex add-untranslated-filesystem
1238@findex remove-untranslated-filesystem
1239
1240The variable @code{untranslated-filesystem-list} defines whole
1241directory trees that should not have CR/LF autodetection performed on
1242them. The list can be manipulated with the functions
1243@code{add-untranslated-filesystem} and
1244@code{remove-untranslated-filesystem}. With auto-detection in
1245recent versions of Emacs, this is seldom useful for existing files,
1246but can still be used to influence the choice of line ends for newly
1247created files.
1248
1249@c ------------------------------------------------------------
1250@node Printing
1251@chapter Printing
1252@cindex printing
1253
1254A lot of effort has gone into making it easier to print from Emacs on
1255MS Windows, but this has still been insufficient to keep up with
1256changes in printing technology from text and postscript based printers
1257connected via ports that can be accessed directly, to graphical
1258printers that are only accessible via USB. For details, see
1259@uref{http://www.emacswiki.org/cgi-bin/wiki/PrintingFromEmacs, Emacs
1260Wiki}.
1261
1262@c ------------------------------------------------------------
1263@node Sub-processes
1264@chapter Subprocesses
1265@cindex subprocesses
1266
1267@menu
1268* Quoting issues::
1269* Subprocess hang::
1270* Subprocess buffering::
1271* Subprocesses and floppy drive::
1272* Killing subprocesses::
1273* Subprocess EOF::
1274* Using shell::
1275* Cygwin paths::
1276* Dired ls::
1277* Shell echo::
1278* Shell completion forward slash::
1279* Incorrect DOS version::
1280* Shell commands do nothing::
1281@end menu
1282
1283@node Quoting issues
1284@section Quoting issues
1285@cindex quoting arguments to subprocesses
1286@cindex sub-processes, quoting arguments to
1287@cindex cygwin, quoting arguments
1288
1289The quoting rules for native Windows shells and Cygwin shells have
1290some subtle differences. When Emacs spawns subprocesses, it tries to
1291determine whether the process is a Cygwin program and changes its
1292quoting mechanism appropriately. See this
1293@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/shell-quoting,
1294previous discussion} for details.
1295
1296@node Subprocess hang
1297@section Programs reading input hang
1298@cindex subprocesses, hanging when reading input
1299@cindex full-screen console programs, as subprocesses
1300@cindex ftp, client hanging
1301@findex ftp
1302
1303Programs that explicitly use a handle to the console (@file{CON} or
1304@file{CON:}) instead of stdin and stdout cannot be used as
1305subprocesses to Emacs, and they will also not work in shell-mode. The
1306default ftp client on Windows is an example of such a program - this
1307ftp program is mostly fine for use with @code{ange-ftp} or
1308@code{tramp}, but not for @kbd{M-x ftp} (@pxref{Network access,,How do
1309I use FTP within Emacs}). There is no convenient way for either Emacs
1310or any shell used in @code{shell-mode} to redirect the input and
1311output of such processes from the console to input and output pipes.
1312The only workaround is to use a different implementation of the
1313program that does not use the console directly. Microsoft's new
1314PowerShell appears to be another such program, so that cannot be used
1315as a replacement shell for Emacs.
1316
1317@node Subprocess buffering
1318@section Buffering in shells and subprocesses
1319@cindex subprocesses, buffering output
1320@cindex output not displaying, subprocesses
1321@cindex SQL subprocess hanging
1322@cindex cvs hanging when login needed
1323@cindex ssh, password prompt not appearing when using with cvs
1324@findex sql-mode
1325@findex shell-mode
1326@cindex setbuf, using in subprocesses to prevent buffering
1327@cindex setvbuf, using in subprocesses to prevent buffering
1328
1329You may notice that some programs, when run in a shell in
1330@code{shell-mode},
1331have their output buffered (e.g., people have found this happening to
1332them with @code{sql-mode}). When the program has a lot of output, it
1333overflows the buffering and gets printed to the shell buffer; however,
1334if the program only outputs a small amount of text, it will remain
1335buffered and won't appear in the shell buffer. The same can happen
1336in other subprocesses that themselves run other programs as
1337subprocesses, for example when using @command{cvs} from Emacs, which
1338is itself configured to use @command{ssh}, password prompts fail to
1339appear when expected, and @command{cvs} appears to hang.
1340
1341Although it may at first seem like the shell is buffering the output
1342from the program, it is actually the program that is buffering
1343output. The C runtime typically decides how to buffer output based
1344upon whether stdout is bound to a handle to a console window or
1345not. If bound to a console window, output is buffered line by line; if
1346bound to a block device, such as a file, output is buffered block by
1347block.
1348
1349In a shell buffer, stdout is a pipe handle and so is buffered in
1350blocks. If you would like the buffering behavior of your program to
1351behave differently, the program itself is going to have to be changed;
1352you can use @code{setbuf} and @code{setvbuf} to manipulate
1353the buffering semantics.
1354
1355Some programs handle this by having an explicit flag to control their
1356buffering behaviour, typically @option{-i} for interactive. Other
1357programs manage to detect that they are running under Emacs, by
1358using @samp{getenv("emacs")} internally.
1359
1360@menu
1361* Perl script buffering::
1362@end menu
1363
1364@node Perl script buffering
1365@subsection Perl script buffering
1366@cindex perl, avoiding buffering when used as a subprocess of Emacs
1367
1368A handy solution for Perl scripts to the above problem is to use:
1369
1370@example
1371# Turn all buffering off.
1372select((select(STDOUT), $| = 1)[0]);
1373select((select(STDERR), $| = 1)[0]);
1374select((select(STDIN), $| = 1)[0]);
1375@end example
1376
1377@node Subprocesses and floppy drive
1378@section 16-bit subprocesses accessing the floppy drive
1379@cindex floppy drive, access when subprocesses started
1380@cindex subprocess starting causes floppy drive access
1381
1382If you are finding the 16 bit DOS subprocesses cause your A: drive to
1383be accessed, hanging Emacs until the read times out if there is no
1384floppy in the drive, check to see if your virus software is causing
1385the problem.
1386
1387@node Killing subprocesses
1388@section Killing subprocesses on Windows 95/98/Me
1389@cindex subprocess, killing on Windows 95/98/ME
1390@cindex killing subprocesses, Windows 95/98/ME
1391@cindex shutdown, complaints about cmdproxy.exe running
1392
1393Emacs cannot guarantee that a subprocess gets killed on Windows 95 and
1394its descendants, and it is a difficult limitation to work around. To
1395avoid problems on these systems, you should let subprocesses run to
1396completion including explicitly exiting shells before killing the
1397associated buffer.
1398
1399If you find that while shutting down, Windows complains that there is
1400a running @command{cmdproxy.exe} even though you carefully exited all
1401shells and none were showing in Task Manager before the shutdown, this
1402could be due to buggy interaction with your virus scanner.
1403
1404@node Subprocess EOF
1405@section Sending EOF to subprocesses
1406@cindex EOF, sending to subprocesses
1407@cindex shell terminates when EOF sent to subprocess
1408@findex process-send-eof
1409
1410When an EOF is sent to a subprocess running in an interactive shell
1411with @code{process-send-eof}, the shell terminates unexpectedly as
1412if its input was closed. This affects the use of @kbd{C-c C-d} in
1413shell buffers. See
1414@uref{http://www.gnu.org/software/emacs/windows/ntemacs/todo/shell-ctrl-d,
1415this discussion} for more details.
1416
1417@node Using shell
1418@section How do I use a shell in Emacs?
1419@cindex interactive shell, using
1420@cindex shell within emacs, using
1421@findex shell
1422@findex shell-command
1423@vindex shell-file-name
1424@vindex explicit-shell-file-name
1425
1426You can start an interactive shell in Emacs by typing @kbd{M-x shell}.
1427Emacs uses the @env{SHELL} environment variable to determine which
1428program to use as the shell. To instruct Emacs to use a non-default
1429shell, you can either set this environment variable, or customize
1430@code{explicit-shell-file-name}. You can also customize
1431@code{shell-file-name} to change the shell that will be used by
1432subprocesses that are started with @code{shell-command} and
1433related non-interactive shell commands.
1434
1435@menu
1436* Bash::
1437@end menu
1438
1439@node Bash
1440@subsection bash
1441@cindex cygwin bash as shell within Emacs
1442@cindex shell, using cygwin bash within Emacs
1443@cindex bash, using cygwin shell within Emacs
1444@vindex comint-scroll-show-maximum-output
1445@vindex comint-completion-addsuffix
1446@vindex comint-eol-on-send
1447@vindex w32-quote-process-args
1448@vindex shell-mode-hook
1449
1450Cygwin bash is a popular shell for use with Emacs. To use bash as the
1451default shell in Emacs, you can place the following in your init file:
1452
1453@example
1454(defun my-shell-setup ()
1455 "For Cygwin bash under Emacs 20"
1456 (setq comint-scroll-show-maximum-output 'this)
1457 (make-variable-buffer-local 'comint-completion-addsuffix))
1458 (setq comint-completion-addsuffix t)
1459 ;; (setq comint-process-echoes t) ;; reported that this is no longer needed
1460 (setq comint-eol-on-send t)
1461 (setq w32-quote-process-args ?\")
1462
1463(setq shell-mode-hook 'my-shell-setup)
1464@end example
1465
1466If you find that you are having trouble with Emacs tracking drive
1467changes with bash, see Mike Fabian's
1468@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/drive-tracking,
1469note}.
1470
1471WARNING: Some versions of bash set and use the environment variable
1472PID. For some as yet unknown reason, if @env{PID} is set and Emacs
1473passes it on to bash subshells, bash dies (Emacs can inherit the
1474@env{PID} variable if it's started from a bash shell). If you clear
1475the @env{PID} variable in your init file, you should be able to
1476continue to use bash as your subshell:
1477@example
1478 (setenv "PID" nil)
1479@end example
1480
1481@node Cygwin paths
1482@section How do I use Cygwin style paths in Emacs?
1483@cindex cygwin paths, using within Emacs
1484@cindex mount points, cygwin
1485@cindex cygwin mount points, using within Emacs
1486
1487The package
1488@uref{http://www.emacswiki.org/cgi-bin/wiki/cygwin-mount.el,
1489cygwin-mount.el} teaches Emacs about Cygwin mount points.
1490
1491@node Dired ls
1492@section How do I make dired use my ls program?
1493@cindex dired, using an external ls program
1494@cindex dired, interpreting symlinks the same way as cygwin
1495@cindex symlinks in dired, interpreting the same way as cygwin
1496@cindex cygwin symlinks in dired
1497@vindex ls-lisp-use-insert-directory-program
1498@vindex insert-directory-program
1499
1500Dired uses an internal lisp implementation of @command{ls} by default
1501on Windows. For consistent display of symbolic links and other
1502information with other programs (eg Cygwin) and performance reasons,
1503you may want to use a Windows port of @command{ls} instead.
1504
1505@example
1506(setq ls-lisp-use-insert-directory-program t) ;; use external ls
1507(setq insert-directory-program "c:/cygwin/bin/ls") ;; ls program name
1508@end example
1509
1510@node Shell echo
1511@section How do I prevent shell commands from being echoed?
1512@cindex echo, suppressing for shell input
1513@cindex shell commands, suppressing echo
1514@vindex comint-process-echoes
1515@vindex comint-mode-hook
1516@vindex explicit-cmd.exe-args
1517@vindex explicit-cmdproxy.exe-args
1518@vindex explicit-bash.exe-args
1519@vindex explicit-bash-args
1520@cindex shell specific arguments
1521
1522Some shells echo the commands that you send to them, and the echoed
1523commands appear in the output buffer. In particular, the default
1524shells, @command{command.com} and @command{cmd.exe}, have this behavior.
1525
1526To prevent echoed commands from being printed, you can place the
1527following in your init file:
1528
1529@example
1530 (defun my-comint-init ()
1531 (setq comint-process-echoes t))
1532 (add-hook 'comint-mode-hook 'my-comint-init)
1533@end example
1534
1535If @code{shell-mode} still is not stripping echoed commands, then
1536you'll have to explicitly tell the shell to not echo commands. You can
1537do this by setting the @code{explicit-@var{SHELL}-args} variable
1538appropriately; where @var{SHELL} is the value of your @env{SHELL}
1539environment variable (do a @kbd{M-: (getenv "SHELL")} to see what it
1540is currently set to). Assuming that you are on NT and that your
1541@env{SHELL} environment variable is set to @command{cmd.exe},
1542then placing the following in your init file will tell
1543@command{cmd.exe} to not echo commands:
1544
1545@example
1546 (setq explicit-cmd.exe-args '("/q"))
1547@end example
1548
1549The comint package will use the value of this variable as an argument
1550to @command{cmd.exe} every time it starts up a new shell; the
1551@option{/q} is the argument to @command{cmd.exe} that stops the
1552echoing (invoking @samp{cmd /?} in a shell will show you all of the
1553command line arguments to @command{cmd.exe}).
1554
1555Note that this variable is case sensitive; if the value of your
1556@env{SHELL} environment variable is @command{CMD.EXE} instead, then
1557this variable needs to be named @code{explicit-CMD.EXE-args} instead.
1558
1559@node Shell completion forward slash
1560@section How can I make shell completion use forward slashes?
1561@cindex completion, using forward slashes in shell buffers
1562@cindex forward slashes for completion in shell buffers
1563@vindex comint-completion-addsuffix
1564
1565The character appended to directory names when completing in a shell
1566buffer is controlled by the variable @code{comint-completion-addsuffix}.
1567See its documentation (with @kbd{C-h v}) for details.
1568
1569@node Incorrect DOS version
1570@section Why do I get incorrect DOS version messages?
1571@cindex nmake, Incorrect DOS version messages
1572@cindex shell, Incorrect DOS version messages
1573@cindex COMSPEC, effect on subprocesses of subprocesses
1574
1575This might happen if, for example, you invoke @command{nmake} in a
1576shell and it tries to create sub-shells. The problem happens because
1577when the shell is initially created, the first argument to the shell
1578is not the directory in which the shell program resides. When this
1579happens, @command{command.com} fabricates a value for its
1580@env{COMSPEC} environment variable that is incorrect. Then, when
1581other programs go to use @env{COMSPEC} to find the shell, they are
1582given the wrong value.
1583
1584The fix for this is to either prevent any arguments from being sent to
1585the shell when it starts up (in which case @command{command.com} will
1586use a default, and correct, value for @env{COMSPEC}), or to have the
1587first argument be the directory in which the shell executable resides.
1588
1589@node Shell commands do nothing
1590@section Why is nothing happening when I enter shell commands?
1591@cindex shell commands not working
1592@cindex anti-virus software, bad interaction with
1593@cindex virus software, bad interaction with
1594@cindex firewall, bad interaction with
1595@cindex scan all files, anti-virus option causing problems
1596@cindex auto protect, anti-virus option causing problems
1597@cindex shell, interacting badly with anti-virus
1598
1599Some anti-virus software has been reported to cause problems with
1600shells in the past. Try turning off options such as ``Scan all
1601files''. @xref{Installing Emacs,,What known problems are there with anti-virus software?}.
1602
1603@c ------------------------------------------------------------
1604@node Network access
1605@chapter Network access
1606
1607@menu
1608* Mail::
1609* Attachments with Gnus::
1610* Using FTP::
1611* Tramp ssh::
1612* telnet::
1613@end menu
1614
1615@node Mail
1616@section How do I use mail in Emacs?
1617
1618Emacs comes with several options for reading and writing mail. These
1619are documented in the manual, and the choice of which method to use
1620depends on personal taste. There are some issues specific to Windows
1621however, related to the fact that Windows machines do not have the
1622mail infrastructure that is commonly installed on other platforms, so
1623mail will not work without some configuration.
1624
1625@menu
1626* Outgoing mail::
1627* Incoming mail with Rmail::
1628* Incoming mail with Gnus::
1629* Incoming mail other::
1630@end menu
1631
1632@node Outgoing mail
1633@subsection Outgoing mail
1634@cindex mail, outgoing
1635@cindex smtp server
1636@vindex user-full-name
1637@vindex user-mail-address
1638@vindex smtpmail-default-smtp-server
1639@vindex smtpmail-smtp-server
1640@vindex send-mail-command
1641@vindex message-send-mail-function
1642@findex smtpmail-send-it
1643@vindex smtpmail-debug-info
1644
1645For outgoing mail, you will need to use @file{smtpmail.el} which
1646allows Emacs to talk directly to SMTP mail servers. This is included
1647with Emacs, and can be set up as follows:
1648
1649@example
1650(setq user-full-name "@var{Your full name}")
1651(setq user-mail-address "@var{Your@@email.address}")
1652(setq smtpmail-default-smtp-server "@var{domain.name.of.your.smtp.server}")
1653
1654(setq send-mail-command 'smtpmail-send-it) ; For mail-mode (Rmail)
1655(setq message-send-mail-function 'smtpmail-send-it) ; For message-mode (Gnus)
1656@end example
1657
1658Note that if you want to change the name of the SMTP server after
1659smtpmail is loaded, then you'll need to change
1660@code{smtpmail-smtp-server}.
1661
1662If you are experiencing problems with sending large messages, check
1663the value of the variable @code{smtpmail-debug-info}. If it is non-nil, you
1664should set it to @code{nil}:
1665
1666@node Incoming mail with Rmail
1667@subsection Incoming mail with Rmail and POP3
1668@cindex mail, incoming with rmail
1669@cindex pop3, using rmail
1670@cindex rmail, mail client
1671@cindex movemail, using pop3
1672@cindex MAILHOST
1673@vindex rmail-primary-inbox-list
1674@vindex rmail-pop-password-required
1675
1676For incoming mail using the Rmail package and a POP3 server, you will
1677need the following configuration:
1678
1679@example
1680(setenv "MAILHOST" "@var{domain.name.of.your.pop3.server}")
1681(setq rmail-primary-inbox-list '("po:@var{your logon id}"))
1682(setq rmail-pop-password-required t)
1683@end example
1684
1685@node Incoming mail with Gnus
1686@subsection Incoming mail with Gnus
1687@cindex mail, incoming with Gnus
1688@cindex pop3, using Gnus
1689@cindex imap, using Gnus
1690@cindex gnus, mail and news client
1691
1692Although Gnus started life as a Usenet news reader, it also makes a
1693good mail reader, particularly if you subscribe to a lot of mailing
1694lists, or you want to use IMAP rather than POP3, which is not
1695supported by Rmail. @xref{Top,The Gnus manual,,gnus, The Gnus manual}.
1696
1697@node Incoming mail other
1698@subsection Other incoming mail options
1699@cindex mail, other options
1700@cindex wanderlust, mail and news client
1701@cindex vm, mail client
1702@cindex mh-e, mail client
1703
1704Other options for reading mail in Emacs include VM, MH-E and Wanderlust.
1705MH-E is included with Emacs. The others require lisp or executable code
1706that does not come with Emacs, so you should seek help where you
1707obtained the packages from if you want to use them.
1708
1709@node Attachments with Gnus
1710@section How do I open attachments in Gnus?
1711@cindex gnus, attachments
1712@cindex attachments, in gnus
1713@cindex mail, attachments in gnus
1714@cindex .mailcap
1715@cindex MIME, configuration for Gnus
1716
1717In your @env{HOME} directory create a file called @file{.mailcap},
1718with contents like the following:
1719@example
1720application/zip "C:/Program Files/7-Zip/7zFM.exe"
1721video/* "C:/Program Files/VideoLAN/VLC/vlc.exe"
1722@end example
1723
1724@strong{Warning:} Associating MIME types with @command{start} or other
1725generic Windows commands to open arbitrary files might seem like a
1726good idea, but it leaves your system as open to attack as Outlook
1727Express was at its worst. Especially dangerous is associating
1728application/* or */* in this way.
1729
1730@node Using FTP
1731@section How do I use FTP within Emacs?
1732@cindex ftp, using within Emacs
1733@cindex ange-ftp
1734@cindex tramp, ftp
1735@cindex remote hosts via ftp
1736@vindex ange-ftp-ftp-program-name
1737
1738Windows built in FTP client can be used with ange-ftp. Ange-ftp is
1739the Emacs package that provides FTP connectivity to tramp, a
1740multi-protocol remote file access package for Emacs that is enabled by
1741default.
1742
1743The Windows FTP client does have problems with some firewalls, due to
1744lack of passive mode support, so you may want to try an alternative
1745ftp client instead. Make sure that the client you are trying is in
1746your @env{PATH} before the default Windows client, or rename the
1747default Windows client to avoid it getting in the way. Alternatively
1748you can customize @code{ange-ftp-ftp-program-name} to the full path to
1749the version you are trying. @xref{Other useful ports}.
1750
1751@node Tramp ssh
1752@section How do I use Tramp to work in Emacs via SSH?
1753@cindex tramp, ssh
1754@cindex ssh, accessing remote hosts within Emacs
1755@cindex remote hosts via ssh
1756@cindex openssh
1757@cindex PuTTY
1758@cindex plink
1759@vindex tramp-default-method
1760@vindex tramp-default-method-alist
1761
1762Tramp can use a number of protocols to connect to remote machines to
1763read files and even run commands on those files remotely. A popular
1764one is ssh. As well as Cygwin versions of openssh, you can use
1765PuTTY's command line plink program as the ssh client. The relevant
1766methods to use in @code{tramp-default-method} or
1767@code{tramp-default-method-alist} for these options are:
1768@itemize @w{}
1769@item
1770openssh
1771@itemize
1772@item @code{scp} Uses scp for copying, ssh for shell operations.
1773@item @code{scp1} scp with forced SSH protocol version 1
1774@item @code{scp2} scp with forced SSH protocol version 2
1775@item @code{ssh} Uses ssh with encoding on stdin/stdout for file transfer.
1776@item @code{ssh1} ssh with forced SSH protocol version 1
1777@item @code{ssh2} ssh with forced SSH protocol version 2
1778@end itemize
1779
1780@item
1781PuTTY
1782@itemize
1783@item @code{pscp} Uses pscp for copying, plink for shell operations.
1784@item @code{pscp1} pscp, with forced SSH protocol version 1
1785@item @code{pscp2} pscp, with forced SSH protocol version 2
1786@item @code{plink} Uses plink with encoding on stdin/stdout for file transfer.
1787@item @code{plink1} plink with forced SSH protocol version 1
1788@item @code{plink2} plink with forced SSH protocol version 2
1789@end itemize
1790@end itemize
1791
1792@node telnet
1793@section How do I use telnet with Emacs?
1794@cindex telnet, in Emacs
1795@findex telnet
1796@cindex telnet client, that works with Emacs
1797
1798To use telnet-mode on Windows, you need a telnet client that uses
1799stdin and stdout for input and output. The default Windows client is
1800a Windows application, and will not work as a subprocess. Several
1801options exist, but information that was formerly in this FAQ is out of
1802date now, so no concrete pointers are available.
1803
1804@c ------------------------------------------------------------
1805@node Text and Utility modes
1806@chapter Text and Utility modes
1807
1808@menu
1809* TeX::
1810* Spell check::
1811* Encryption::
1812* Mouse wheel::
1813* Grep::
1814@end menu
1815
1816@node TeX
1817@section How do I use TeX with Emacs?
1818@cindex tex
1819@cindex typesetting
1820
1821You will need an implementation of TeX for Windows.
1822A number of implementations are listed on the
1823@uref{http://www.tug.org/interest.html#free, TeX Users Group} website.
1824
1825@menu
1826* AUCTeX::
1827@end menu
1828
1829@node AUCTeX
1830@subsection AUCTeX
1831@cindex auctex, precompiled for Windows
1832@cindex latex
1833@cindex preview-latex
1834
1835AUCTeX is an Emacs package for writing LaTeX files, which also
1836includes preview-latex, an Emacs mode for previewing the formatted
1837contents of LaTeX documents. Pre-compiled versions for Windows are
1838available from
1839@uref{http://www.gnu.org/software/auctex/download-for-windows.html, the
1840AUCTeX site}.
1841
1842@node Spell check
1843@section How do I perform spell checks?
1844@cindex spell checking
1845@cindex ispell
1846@cindex aspell
1847@cindex flyspell
1848@vindex ispell-program-name
1849@findex flyspell-mode
1850
1851Emacs has support for spell checking on demand (@code{ispell}) and as
1852your type (@code{flyspell}). Both packages depend on a copy of
1853@command{ispell} 3.2 or a compatible spell-checking program.
1854GNU Aspell is a popular choice these days, Windows installers are
1855available from the @uref{http://aspell.net/win32/, official site}.
1856
1857Once installed, you will need to configure @code{ispell-program-name}
1858to tell ispell and flyspell to use @command{aspell} as a replacement for
1859ispell. You can include the full path to the @file{aspell} binary, which
1860means you do not need to add its installation directory to the @env{PATH}.
1861
1862@node Encryption
1863@section Emacs and encryption
1864@cindex encryption
1865@cindex gpg, Windows binaries
1866@cindex pgp encryption, with GNU Privacy Guard
1867@cindex signatures on Emacs distribution, checking
1868@cindex Emacs distribution, checking digital signatures
1869
1870GNU Privacy Guard is a Free replacement for PGP, with Windows binaries
1871available. See @uref{http://www.gnupg.org/}.
1872
1873@node Mouse wheel
1874@section Why doesn't my wheel mouse work in Emacs?
1875@cindex mouse wheel
1876@cindex wheel mouse
1877@cindex middle button, on wheel mouse
1878@cindex scrolling, with mouse wheel
1879
1880Some wheel mice ship with default settings that do not send the
1881standard wheel events to programs, but instead try to simulate scroll
1882bar events. Usually this is configurable from the hardware specific
1883pages on the mouse control panel. The middle button is often mapped
1884in the same settings to have some functionality other than sending
1885middle mouse button events. In some cases, uninstalling the
1886manufacturer's drivers and telling Windows to use the generic USB or
1887PS/2 drivers is the only way to make the mouse work properly.
1888
1889@node Grep
1890@section How do I use grep with Emacs?
1891@cindex searching through files with grep
1892@cindex grep
1893@cindex findstr
1894@findex grep
1895
1896The best way to use @kbd{M-x grep} with Emacs is to download a port of
1897GNU @command{grep}. @xref{Other useful ports}.
1898
1899If you want a quick solution without installing extra tools, a poor
1900substitute that works for simple text searches is to specify the built
1901in Windows command @command{findstr} as the command to run at the
1902@kbd{M-x grep} prompt. Normally you will want to use the @option{/n}
1903argument to @command{findstr}.
1904
1905@menu
1906* Recursive grep::
1907@end menu
1908
1909@node Recursive grep
1910@subsection How do I do a recursive grep?
1911@cindex recursive searching with grep
1912@cindex grep, recursive through subdirectories
1913@cindex findstr, recursive
1914@cindex find, using with grep
1915@cindex find, the POSIX command
1916@findex rgrep
1917@findex grep-find
1918@findex find-grep-dired
1919@vindex find-program
1920@vindex grep-find-command
1921
1922The Emacs commands @code{rgrep}, @code{grep-find}
1923and @code{find-grep-dired} are all different interfaces for
1924grepping recursively into subdirectories. By default, they use the
1925command @command{find} to determine which files to work on, and either
1926run @command{grep} directly from find, or use @command{xargs} to batch
1927up files and reduce the number of invocations of @command{grep}.
1928
1929Windows also comes with a @command{find} command, but it is not in any
1930way compatible with the POSIX @command{find} that Emacs tries to use.
1931Emacs expects a @command{find} compatible with GNU findutils.
1932@xref{Other useful ports}. After you have installed it, you will need
1933to make sure that Emacs finds this version, not the standard Windows
1934@command{find} command. You can do this by either renaming the
1935Windows command, changing your @env{PATH} to ensure that the directory
1936containing the findutils @file{bin} directory comes before the Windows
1937system directory, or set the variable @code{find-program} to the full
1938path to the findutils @command{find} command.
1939
1940An alternative if you have a recent version of grep is to customize
1941@code{grep-find-command} to use @samp{grep -r} instead of both find
1942and grep. Another alternative if you don't need the full capabilities
1943of grep is to use @samp{findstr /n /r}.
1944
1945@c ------------------------------------------------------------
1946@node Developing with Emacs
1947@chapter Developing with Emacs
1948
1949@menu
1950* MSVC::
1951* Borland C++ Builder::
1952* Version control::
1953* Perldb::
1954@end menu
1955
1956@node MSVC
1957@section How do I use Emacs with Microsoft Visual C++
1958
1959There are two ways you can use Emacs in conjunction with MSVC. You
1960can use Emacs as the editor, and do everything else in the DevStudio
1961IDE. Or you can use Emacs as an IDE, calling the MSVC command line
1962tools to build your project.
1963
1964@menu
1965* DevStudio::
1966* MSVC command line::
1967@end menu
1968
1969@node DevStudio
1970@subsection Emacs as the text editor for DevStudio
1971@cindex DevStudio, using Emacs as editor in
1972@cindex MSVC++, using Emacs as editor with
1973@cindex Visual Studio, using Emacs as editor in
1974@cindex VisEmacs, add in for MS Developer Studio
1975
1976Christopher Payne wrote a Visual Studio add-in that makes Emacs the
1977default text editor, this has now been taken over by Jeff Paquette.
1978See the following two URLS for details:
1979@itemize
1980@item @uref{http://sourceforge.net/projects/visemacs/} for the latest version.
1981@item @uref{http://www.smathers.net/VisEmacs.htm} for notes on usage.
1982@end itemize
1983
1984@node MSVC command line
1985@subsection Using MSVC command line tools from Emacs
1986@cindex MSVC++, compiling within Emacs
1987@findex compile
1988
1989This is an app note on how to use Microsoft Visual C++ with Emacs. The
1990experiments done below were done with Emacs 19.34.1 on Windows 95,
1991using Visual C++ 4.0 Standard Edition. Your mileage may vary.
1992
1993This writeup assumes minimal knowledge of Emacs hacking on the part of
1994the reader.
1995
1996@menu
1997* VC++ environment::
1998* Default compile command::
1999* Reverting buffers::
2000* Edit MSVC::
2001@end menu
2002
2003@node VC++ environment
2004@subsubsection VC++ Environment Variables
2005@cindex vcvars32.bat
2006@cindex MSVC++, environment variables
2007
2008There is a batch file in your VC++ installation's bin directory called
2009@file{vcvars32.bat}, which sets up the environment variables needed to
2010run the VC++ command line tools. Arrange for those same environment
2011variables to be set in your Emacs session. You can do this on Windows
20129x by calling the @file{vcvars32.bat} script from @file{autoexec.bat}.
2013On other versions of Windows you can set the environment variables
2014globally using the System control panel.
2015
2016For all versions of Windows you can alternatively set the variables
2017just inside Emacs by using @code{setenv} calls in your init file.
2018@xref{Installing Emacs,,Where do I put my init file?}.
2019
2020You should now be able to compile from Emacs. Load a source file from
2021a VC++ project. Type @kbd{M-x compile}. Replace the proposed command line
2022with:
2023@example
2024nmake -f @var{ProjectName}.mak
2025@end example
2026
2027You will find that this defaults to a debug build. You can change it
2028to a release build with:
2029@example
2030nmake -f @var{ProjectName}.mak CFG="@var{ProjectName} - Win32 Release"
2031@end example
2032
2033@node Default compile command
2034@subsubsection Setting the default compile command
2035@cindex compile, setting default command
2036@cindex nmake, as default compile command
2037@vindex compile-command
2038
2039Now set the default value for the compile command line. Add the
2040following to your init file:
2041
2042@example
2043;; Set up for Visual C++ compiling
2044(setq compile-command "nmake -f ")
2045@end example
2046
2047If you work on the same project long term, you can add the project
2048makefile to the string.
2049
2050David Biesack suggests that perhaps it's
2051easy to write a @file{Makefile} in the project directory which does
2052
2053@example
2054PROJECT=MyProject
2055all: debug
2056debug: FORCE
2057 nmake /f $(PROJECT).mak CFG="$(PROJECT) - Win32 Debug"
2058release: FORCE
2059 nmake /f $(PROJECT).mak CFG="$(PROJECT) - Win32 Release"
2060FORCE:
2061@end example
2062
2063and then you can simply change compile-command to @command{nmake}.
2064
2065Caleb T. Deupree reports that on VC++
20665.0 and up, "You can also set an option in Options/Build to export a
2067makefile every time the project is saved, which you can then use to
2068compile with @samp{nmake -f project.mak}." VC++ 4.0 builds the make file
2069every time, and there is no option.
2070
2071@node Reverting buffers
2072@subsubsection Reverting Buffers
2073@cindex DevStudio, keeping source in sync
2074@cindex Visual Studio, keeping source in sync
2075@cindex MSVC++, keeping source in sync
2076@findex auto-revert-mode
2077@findex global-auto-revert-mode
2078
2079It is recommended that you use @code{auto-revert-mode} in buffers
2080that you have open in both Emacs and MSVC++ at the same time. Then if
2081you mistakenly edit the file in MSVC++, Emacs will pick up your
2082changes immediately, rather than after you have written lots more code
2083and attempt to save.
2084
2085@node Edit MSVC
2086@subsubsection Edit with Emacs function for MSVC
2087@cindex DevStudio, load in Emacs command
2088@cindex Visual Studio, load in Emacs command
2089@cindex MSVC++, load in Emacs command
2090@cindex emacsclient, calling from Visual Studio
2091
2092You can also set up VC++ to import a file into Emacs for you, all
2093ready for editing. In VC++, go to the @code{Tools} pull-down menu, and
2094click on @code{Customize...}. In the @code{Tools} tab, click on
2095@code{Add}. Use @code{Browse} to locate the
2096@file{emacsclientw.exe} file in your Emacs bin directory, and
2097select it. For arguments, use @option{+$(CurLine)}
2098@option{"$(FilePath)"} and for the directory use the @code{$(WkspDir)}
2099(the quotes around FilePath handle paths with spaces in them). Set the
2100Menu Text to say "Em&acs". The @option{+$(CurLine)} will set point in
2101Emacs to the same line as the cursor position in VC++. The ampersand
2102in the word @code{Em&acs} allows you to select emacs from the keyboard. (E
2103is already used for the OLE control test container.)
2104
2105You should now be able to go to any source file in your project. Then,
2106use the pull-down menu @code{Tools->Emacs}. The active file in your
2107VC++ IDE should now be front and center in Emacs, all ready to edit as
2108you wish. If you use keystrokes to work the menus, try @kbd{Alt-T A} to
2109move the file into Emacs. Binding this tool to a keystroke will be
2110left as an exercise for the student.
2111
2112If you have the option of saving files before running tools, make sure
2113this option is set. (I don't see it on VC++ 4.0.)
2114
2115@node Borland C++ Builder
2116@section Emacs and Borland C++ Builder
2117@cindex Borland C++, integration with Emacs
2118
2119Jonathan Arnold has written an
2120@uref{http://www.buddydog.org/C++Builder/c++builder.html, EmacsEdit
2121``expert''} for interfacing C++ Builder and Emacs.
2122
2123@node Version control
2124@section Is there a version of my VC software I can use with Emacs?
2125@cindex version control, integration with Emacs
2126@cindex revision control, integration with Emacs
2127@cindex source control, integration with Emacs
2128@cindex cvs, version control integration with Emacs
2129@cindex rcs, version control integration with Emacs
2130@cindex svn, version control integration with Emacs
2131@cindex git, version control integration with Emacs
2132@cindex bzr, version control integration with Emacs
2133@cindex arch, version control integration with Emacs
2134@cindex mercurial, version control integration with Emacs
2135@cindex hg, version control integration with Emacs
2136@cindex monotone, version control integration with Emacs
2137@cindex mcvs, version control integration with Emacs
2138
2139If you are using a graphical revision control tool already, check if
2140it comes with command-line tools. Many such GUI tools are just
2141wrappers for the same command line tools that Emacs requires for its
2142VC integration. Most of the supported VC systems have well supported
2143Free native Windows binaries. For those that don't Cygwin may be an option.
2144@xref{Other useful ports}.
2145
2146@node Perldb
2147@section How do I use the Perl debugger with Emacs?
2148@cindex perl, debugging within Emacs
2149@cindex perldb, using with Emacs
2150
2151From Jay Rogers:
2152
2153Some versions of the perl debugger itself need to be patched to work
2154with emacs. They are perl versions 5.001 and less, and version
21555.004_01. To fix, locate and change the code similar to the following
2156code in lib/perl5db.pl
2157@example
2158 if (-e "/dev/tty") @{
2159 $console = "/dev/tty";
2160 $rcfile=".perldb";
2161 @}
2162 elsif (-e "con") @{
2163 $console = ""; <---- change "con" to ""
2164 $rcfile="perldb.ini";
2165 @}
2166 else @{
2167 $console = "sys\$command";
2168 $rcfile="perldb.ini";
2169 @}
2170@end example
2171
2172Doug Campbell also has some
2173@uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/perldb,
2174suggestions} for improving the interaction of perldb and Emacs.
2175
2176@c ------------------------------------------------------------
2177@node Other useful ports
2178@chapter Other useful ports
2179@cindex useful tools
2180@cindex subprocesses, useful tools
2181
2182@menu
2183* Cygwin::
2184* MinGW::
2185* UWIN::
2186* GnuWin32::
2187* GTK::
2188* Read man pages::
2189@end menu
2190
2191@node Cygwin
2192@section Cygwin
2193@cindex cygwin environment
2194@cindex cygwin, library conflicts
2195@cindex library conflicts with cygwin
2196@cindex interoperability with cygwin
2197@cindex subprocesses, cygwin tools
2198@vindex exec-path
2199
2200@uref{http://www.cygwin.com/}.
2201
2202Cygwin is a popular complete POSIX emulation environment for Windows.
2203Most of its tools can be used with Emacs, and it covers a wide range
2204of ported software. The main shell used by Cygwin is GNU
2205@command{bash}, but other shells are also available. Some Cygwin
2206tools may not interoperate well with Emacs or other native Windows
2207tools, due to the total immersion aspect of Cygwin, including its
2208non-native filesystem mapping.
2209
2210If you choose to use Cygwin, then its tools will probably be all that
2211you need, but you will need to get image libraries from elsewhere, as
2212the Cygwin ones are not compatible with non-Cygwin software. In fact,
2213if Cygwin is on your PATH when you run Emacs, and Emacs does not find
2214other versions of the image libraries first, then the Cygwin ones can
2215cause problems. Cygwin developers recommend that you do not put
2216Cygwin on your system @env{PATH} for this reason. Instead you can
2217make the Cygwin tools available within Emacs by setting @code{exec-path}
2218in your init file.
2219
2220@node MinGW
2221@section MinGW and MSYS
2222@cindex mingw tools
2223@cindex msys environment
2224@cindex subprocesses, mingw and msys
2225
2226@uref{http://www.mingw.org/}
2227
2228MinGW is a set of development tools that produce native Windows
2229executables, not dependent on Cygwin's POSIX emulation DLLs.
2230
2231MSYS is a POSIX shell and minimal set of tools that are commonly used in
2232configure scripts. Like Cygwin, this environment uses a non-native
2233filesystem mapping to appear more POSIX like to the scripts that it
2234runs. This is intended to complement the MinGW tools to make it easier
2235to port software to Windows.
2236
2237@node UWIN
2238@section UWIN
2239@cindex uwin environment
2240@cindex subprocesses, uwin
2241
2242@uref{http://www.research.att.com/sw/tools/uwin/}
2243
2244UWIN is another POSIX emulation environment, like Cygwin and MSYS,
2245that provides a large number of ported tools. The shell used by UWIN
2246is @command{ksh}, the Korn shell.
2247
2248@node GnuWin32
2249@section GnuWin32
2250@cindex gnuwin32 tools
2251@cindex subprocesses, gnuwin32
2252@cindex image libraries, gnuwin32
2253@cindex image libraries, development
2254
2255@uref{http://gnuwin32.sourceforge.net/}
2256
2257GnuWin32 provides precompiled native Windows ports of a wide selection
2258of Free software and libraries. Tools available here that are useful
2259for Emacs include:
2260
2261@itemize
2262@item Arc - used by @code{archive-mode} to edit .arc files.
2263@item Bzip2 - used by Emacs to automatically decompress .bz2 files.
2264@item CompFace - used by @code{gnus} to display XFace headers in messages.
2265@item CoreUtils - GNU file, shell and text utilities (also in MSYS)
2266@item DiffUtils - for @code{ediff} and producing patches
2267@item FindUtils - for @code{grep-find} and other file searches.
2268@item GifLib - library to support GIF images.
2269@item Grep - for searching through files with @code{grep}.
2270@item Gzip - used by Emacs to automatically decompress .gz files.
2271@item Jpeg - library to support JPEG images (also in GTK).
2272@item Lha - used by @code{archive-mode} to edit .lzh files.
2273@item LibPng - library to support PNG images (also in GTK).
2274@item LibTiff - library to support TIFF images (also in GTK).
2275@item Make - used by @code{compile} for building projects (also in MinGW)
2276@item OpenSSL - used by @code{gnus} to talk to servers over SSL.
2277@item Patch - used by @code{ediff-patch-file} and others to apply patches.
2278@item Tar - used by @code{tar-mode} to edit tar files.
2279@item TexInfo - used to build Emacs' manuals.
2280@item Unzip - used by @code{archive-mode} for extracting zip files.
2281@item Xpm - library to support XPM images (bundled with Emacs binaries)
2282@item Zip - used by @code{archive-mode} for editing zip files.
2283@item Zlib - required by LibPng (also in GTK).
2284@end itemize
2285
2286@node GTK
2287@section GTK
2288@cindex GTK image libraries
2289@cindex image libraries, GTK
2290@cindex addpm, using GTK image libraries
2291
2292GTK is a potential source for some of the image libraries that Emacs
2293requires. GTK is installed along with other ports of GUI software,
2294such as the GIMP image editor, and Pidgin instant messenger client.
2295If GTK is installed when you run @command{addpm}, Emacs will use the
2296image libraries that it provides, even if they are not on the
2297@env{PATH}. GTK ships with JPEG, PNG and TIFF support.
2298
2299@node Read man pages
2300@section How do I read man pages?
2301@cindex man pages
2302@findex woman
2303@findex man
2304
2305Man pages for Emacs and other ported programs that you have can be
2306read using Emacs' built-in manual reader @code{woman}. This
2307requires no external programs, but if you do have a port of
2308@command{man}, there is also an Emacs wrapper @code{man} that
2309which may be slightly faster.
2310
2311@c ------------------------------------------------------------
2312@node Further information
2313@chapter Further information
2314
2315@menu
2316* More information::
2317* Mailing lists::
2318@end menu
2319
2320@node More information
2321@section Where can I get more information about Emacs?
2322@cindex other sources of information
2323@cindex faqs, general
2324@cindex faqs, old
2325@cindex help, manuals and other sources
2326@cindex manuals
2327@cindex wiki
2328
2329If you have general questions about Emacs, the best places to start
2330looking are @ref{Top,,, emacs, The GNU Emacs Manual}, and
2331@ref{Top,,, efaq, the standard Emacs FAQ}.
2332In Emacs, you can browse the manual using Info by typing @kbd{C-h r},
2333and you can view the FAQ by typing @kbd{C-h C-f}. Other resources include:
2334
2335@itemize
2336@item @uref{http://www.gnu.org/software/emacs/, The Emacs homepage}
2337@item @uref{http://www.gnu.org/software/emacs/manual/, Other Emacs manuals}
2338@item @uref{http://www.emacswiki.org/, Emacs Wiki}
2339@end itemize
2340
2341@node Mailing lists
2342@section What mailing lists are there for discussing Emacs on Windows?
2343@cindex mailing lists
2344@cindex help, mailing lists
2345
2346The official mailing list for Windows specific help and discussion is
2347@url{http://lists.gnu.org/mailman/listinfo/help-emacs-windows,
2348help-emacs-windows}. See that link for information on how to subscribe
2349or unsubscribe. The
2350@uref{http://lists.gnu.org/archive/html/help-emacs-windows/, list archives}
2351are available online.
2352
2353@c ------------------------------------------------------------
2354@node Indexes
2355@unnumbered Indexes
2356
2357@unnumberedsec Function and Variable Index
2358
2359@printindex fn
2360
2361@unnumberedsec Concept Index
2362
2363@printindex cp
2364
2365@bye
diff --git a/doc/misc/faq.texi b/doc/misc/efaq.texi
index 1354f68cc9f..54e067d65bd 100644
--- a/doc/misc/faq.texi
+++ b/doc/misc/efaq.texi
@@ -3452,8 +3452,9 @@ lack certain features, such as the Emacs Lisp extension language.
3452@cindex Emacs for MS-Windows 3452@cindex Emacs for MS-Windows
3453@cindex Microsoft Windows, Emacs for 3453@cindex Microsoft Windows, Emacs for
3454 3454
3455There is a @uref{http://www.gnu.org/software/emacs/windows/ntemacs.html, 3455There is a separate FAQ for Emacs on MS-Windows,
3456separate FAQ} for Emacs on MS-Windows. For MS-DOS, @pxref{Emacs for MS-DOS}. 3456@pxref{Top,,,efaq-w32,FAQ for Emacs on MS Windows}.
3457For MS-DOS, @pxref{Emacs for MS-DOS}.
3457 3458
3458 3459
3459@node Emacs for GNUstep 3460@node Emacs for GNUstep
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index c8e8fb6d2e2..e199417aa9d 100644
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -256,7 +256,7 @@ concepts. Therefore, it is highly recommended to learn these from a
256textbook or tutorial first, especially if you only know OOP from 256textbook or tutorial first, especially if you only know OOP from
257languages like C++ or Java. If on the other hand you are already 257languages like C++ or Java. If on the other hand you are already
258familiar with CLOS, you should be aware that @eieio{} does not implement 258familiar with CLOS, you should be aware that @eieio{} does not implement
259the full CLOS specificiation and also differs in some other aspects 259the full CLOS specification and also differs in some other aspects
260(@xref{Introduction}, and @ref{CLOS compatibility}). 260(@xref{Introduction}, and @ref{CLOS compatibility}).
261 261
262A @dfn{class} is a definition for organizing data and methods 262A @dfn{class} is a definition for organizing data and methods
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index cbb78af9d59..2c0e929e532 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -871,15 +871,15 @@ by using the @code{encoding} @acronym{MML} tag (@pxref{MML Definition}).
871@vindex mm-coding-system-priorities 871@vindex mm-coding-system-priorities
872Prioritize coding systems to use for outgoing messages. The default 872Prioritize coding systems to use for outgoing messages. The default
873is @code{nil}, which means to use the defaults in Emacs, but is 873is @code{nil}, which means to use the defaults in Emacs, but is
874@code{(iso-8859-1 iso-2022-jp iso-2022-jp-2 shift_jis utf-8)} when 874@code{(iso-8859-1 iso-2022-jp utf-8)} when running Emacs in the Japanese
875running Emacs in the Japanese language environment. It is a list of 875language environment. It is a list of coding system symbols (aliases of
876coding system symbols (aliases of coding systems are also allowed, use 876coding systems are also allowed, use @kbd{M-x describe-coding-system} to
877@kbd{M-x describe-coding-system} to make sure you are specifying correct 877make sure you are specifying correct coding system names). For example,
878coding system names). For example, if you have configured Emacs 878if you have configured Emacs to prefer UTF-8, but wish that outgoing
879to prefer UTF-8, but wish that outgoing messages should be sent in 879messages should be sent in ISO-8859-1 if possible, you can set this
880ISO-8859-1 if possible, you can set this variable to 880variable to @code{(iso-8859-1)}. You can override this setting on a
881@code{(iso-8859-1)}. You can override this setting on a per-message 881per-message basis by using the @code{charset} @acronym{MML} tag
882basis by using the @code{charset} @acronym{MML} tag (@pxref{MML Definition}). 882(@pxref{MML Definition}).
883 883
884As different hierarchies prefer different charsets, you may want to set 884As different hierarchies prefer different charsets, you may want to set
885@code{mm-coding-system-priorities} according to the hierarchy in Gnus. 885@code{mm-coding-system-priorities} according to the hierarchy in Gnus.
@@ -904,7 +904,7 @@ Here's an example:
904 (mm-coding-system-priorities '(iso-8859-15 iso-8859-1 utf-8))) 904 (mm-coding-system-priorities '(iso-8859-15 iso-8859-1 utf-8)))
905 ("^fj\\." ;; Japanese 905 ("^fj\\." ;; Japanese
906 (mm-coding-system-priorities 906 (mm-coding-system-priorities
907 '(iso-8859-1 iso-2022-jp iso-2022-jp-2 shift_jis utf-8))) 907 '(iso-8859-1 iso-2022-jp utf-8)))
908 ("^ru\\." ;; Cyrillic 908 ("^ru\\." ;; Cyrillic
909 (mm-coding-system-priorities 909 (mm-coding-system-priorities
910 '(koi8-r iso-8859-5 iso-8859-1 utf-8)))) 910 '(koi8-r iso-8859-5 iso-8859-1 utf-8))))
diff --git a/doc/misc/epa.texi b/doc/misc/epa.texi
index adc63cc0bdb..bdba071be55 100644
--- a/doc/misc/epa.texi
+++ b/doc/misc/epa.texi
@@ -106,7 +106,7 @@ This chapter introduces various commands for typical use cases.
106* Cryptographic operations on files:: 106* Cryptographic operations on files::
107* Dired integration:: 107* Dired integration::
108* Mail-mode integration:: 108* Mail-mode integration::
109* Encrypting/decrypting *.gpg files:: 109* Encrypting/decrypting gpg files::
110@end menu 110@end menu
111 111
112@node Key management 112@node Key management
@@ -346,8 +346,8 @@ key in the recipient list, use @samp{encrypt-to} option in
346 346
347@end table 347@end table
348 348
349@node Encrypting/decrypting *.gpg files 349@node Encrypting/decrypting gpg files
350@section Encrypting/decrypting *.gpg files 350@section Encrypting/decrypting gpg files
351By default, every file whose name ends with @samp{.gpg} will be 351By default, every file whose name ends with @samp{.gpg} will be
352treated as encrypted. That is, when you open such a file, the 352treated as encrypted. That is, when you open such a file, the
353decrypted text is inserted in the buffer rather than encrypted one. 353decrypted text is inserted in the buffer rather than encrypted one.
@@ -464,7 +464,7 @@ To set up gpg-agent, follow the instruction in GnuPG manual.
464 464
465To set up elisp passphrase cache, set 465To set up elisp passphrase cache, set
466@code{epa-file-cache-passphrase-for-symmetric-encryption}. 466@code{epa-file-cache-passphrase-for-symmetric-encryption}.
467@xref{Encrypting/decrypting *.gpg files}. 467@xref{Encrypting/decrypting gpg files}.
468 468
469@node Bug Reports 469@node Bug Reports
470@chapter Bug Reports 470@chapter Bug Reports
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 4edc1d62f1a..f7f373664c6 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -14796,14 +14796,16 @@ and says what authentication scheme to use. The default is
14796 14796
14797@item :leave 14797@item :leave
14798Non-@code{nil} if the mail is to be left on the @acronym{POP} server 14798Non-@code{nil} if the mail is to be left on the @acronym{POP} server
14799after fetching. Mails once fetched will never be fetched again by the 14799after fetching. Only the built-in @code{pop3-movemail} program (the
14800@acronym{UIDL} control. Only the built-in @code{pop3-movemail} program 14800default) supports this keyword.
14801(the default) supports this keyword. 14801
14802 14802If this is a number, leave mails on the server for this many days since
14803If this is neither @code{nil} nor a number, all mails will be left on 14803you first checked new mails. In that case, mails once fetched will
14804the server. If this is a number, leave mails on the server for this 14804never be fetched again by the @acronym{UIDL} control. If this is
14805many days since you first checked new mails. If this is @code{nil} 14805@code{nil} (the default), mails will be deleted on the server right
14806(the default), mails will be deleted on the server right after fetching. 14806after fetching. If this is neither @code{nil} nor a number, all mails
14807will be left on the server, and you will end up getting the same mails
14808again and again.
14807 14809
14808@vindex pop3-uidl-file 14810@vindex pop3-uidl-file
14809The @code{pop3-uidl-file} variable specifies the file to which the 14811The @code{pop3-uidl-file} variable specifies the file to which the
diff --git a/doc/misc/htmlfontify.texi b/doc/misc/htmlfontify.texi
index e45234872e2..4bb6a9d6900 100644
--- a/doc/misc/htmlfontify.texi
+++ b/doc/misc/htmlfontify.texi
@@ -1275,6 +1275,7 @@ normally be applied.
1275@vindex hfy-html-quote-regex 1275@vindex hfy-html-quote-regex
1276@anchor{hfy-html-quote-regex} 1276@anchor{hfy-html-quote-regex}
1277 1277
1278@c FIXME: the cross-reference below looks ugly
1278Regex to match (with a single back-reference per match) strings in HTML 1279Regex to match (with a single back-reference per match) strings in HTML
1279which should be quoted with @ref{hfy-html-quote} 1280which should be quoted with @ref{hfy-html-quote}
1280(and @pxref{hfy-html-quote-map}) to make them safe. 1281(and @pxref{hfy-html-quote-map}) to make them safe.
@@ -1340,31 +1341,6 @@ See also: @ref{hfy-page-footer}
1340 1341
1341String to add to the @samp{<style> a} variant of an Htmlfontify CSS class. 1342String to add to the @samp{<style> a} variant of an Htmlfontify CSS class.
1342 1343
1343@item hfy-fast-lock-save
1344@vindex hfy-fast-lock-save
1345@anchor{hfy-fast-lock-save}
1346
1347Minimum size of a buffer for cached fontification.
1348This value is temporarily assigned to @code{fast-lock-minimum-size} during
1349html-fontification.
1350
1351Only buffers more than this can have associated Font Lock cache files saved.
1352
1353If nil, means cache files are never created.
1354
1355If a list, each element should be a cons pair of the form
1356@code{(@var{major-mode} . @var{size})}, where @var{major-mode}
1357is a symbol or t (meaning the default). For example:
1358
1359@lisp
1360 ((c-mode . 25600 )
1361 (c++-mode . 25600 )
1362 (rmail-mode . 1048576))
1363@end lisp
1364
1365means that the minimum size is 25K for buffers in C or C++ modes, one megabyte
1366for buffers in Rmail mode, and size is irrelevant (i.e., no saves) otherwise.
1367
1368@item hfy-split-index 1344@item hfy-split-index
1369@vindex hfy-split-index 1345@vindex hfy-split-index
1370@anchor{hfy-split-index} 1346@anchor{hfy-split-index}
@@ -1383,7 +1359,7 @@ be large and take a long time to render or be difficult to navigate.
1383@vindex hfy-extn 1359@vindex hfy-extn
1384@anchor{hfy-extn} 1360@anchor{hfy-extn}
1385 1361
1386File extension used for output files 1362File extension used for output files.
1387 1363
1388@item hfy-default-face-def 1364@item hfy-default-face-def
1389@vindex hfy-default-face-def 1365@vindex hfy-default-face-def
@@ -1464,7 +1440,7 @@ which can never slow you down, but may result in incomplete fontification.
1464@vindex hfy-src-doc-link-unstyle 1440@vindex hfy-src-doc-link-unstyle
1465@anchor{hfy-src-doc-link-unstyle} 1441@anchor{hfy-src-doc-link-unstyle}
1466 1442
1467Regex to remove from the <style> a variant of an Htmlfontify CSS class. 1443Regex to remove from the @samp{<style> a} variant of an Htmlfontify CSS class.
1468 1444
1469@item hfy-link-extn 1445@item hfy-link-extn
1470@vindex hfy-link-extn 1446@vindex hfy-link-extn
diff --git a/doc/misc/ido.texi b/doc/misc/ido.texi
index dbc35b09bb8..623fb4bfa79 100644
--- a/doc/misc/ido.texi
+++ b/doc/misc/ido.texi
@@ -53,45 +53,46 @@ modify this GNU manual.''
53@end ifnottex 53@end ifnottex
54 54
55@menu 55@menu
56* Overview:: Basics, activation. 56* Overview:: Basics, activation.
57* Matching:: Interactivity, matching, scrolling. 57* Matching:: Interactivity, matching, scrolling.
58* Highlighting:: Highlighting of matching items. 58* Highlighting:: Highlighting of matching items.
59* Hidden Buffers and Files:: Hidden buffers, files, and directories. 59* Hidden Buffers and Files:: Hidden buffers, files, and directories.
60* Customization:: Change the Ido functionality. 60* Customization:: Change the Ido functionality.
61* Misc:: Various other features. 61* Misc:: Various other features.
62 62
63Appendices 63Appendices
64* GNU Free Documentation License:: The license for this documentation. 64* GNU Free Documentation License:: The license for this documentation.
65 65
66Indexes 66Indexes
67* Variable Index:: An entry for each documented variable. 67* Variable Index:: An entry for each documented variable.
68 68
69@detailmenu 69@detailmenu
70 --- The Detailed Node Listing --- 70 --- The Detailed Node Listing ---
71 71
72Overview 72Overview
73 73
74* Activation:: How to use this package. 74* Activation:: How to use this package.
75* Working Directories:: Where files have most recently been opened.
75 76
76Matching 77Matching
77 78
78* Interactive Substring Matching:: Interactivity, matching, scrolling. 79* Interactive Substring Matching:: Interactivity, matching, scrolling.
79* Prefix Matching:: Standard completion. 80* Prefix Matching:: Standard completion.
80* Flexible Matching:: More flexible matching. 81* Flexible Matching:: More flexible matching.
81* Regexp Matching:: Matching using regular expression. 82* Regexp Matching:: Matching using regular expression.
82 83
83Customization 84Customization
84 85
85* Changing List Order:: Changing the list of files. 86* Changing List Order:: Changing the list of files.
86* Find File At Point:: Make Ido guess the context. 87* Find File At Point:: Make Ido guess the context.
87* Ignoring:: Ignorance is bliss. 88* Ignoring:: Ignorance is bliss.
88* Misc Customization:: Miscellaneous customization for Ido. 89* Misc Customization:: Miscellaneous customization for Ido.
89 90
90Miscellaneous 91Miscellaneous
91 92
92* All Matching:: Seeing all the matching buffers or files. 93* All Matching:: Seeing all the matching buffers or files.
93* Replacement:: Replacement for @code{read-buffer} and @code{read-file-name}. 94* Replacement:: Replacement for @code{read-buffer} and @code{read-file-name}.
94* Other Packages:: Don't want to depend on @code{ido-everywhere}? 95* Other Packages:: Don't want to depend on @code{ido-everywhere}?
95 96
96@end detailmenu 97@end detailmenu
97@end menu 98@end menu
@@ -116,7 +117,8 @@ This package was originally written by Kim F. Storm, based on the
116 @file{iswitchb.el} package by Stephen Eglen. 117 @file{iswitchb.el} package by Stephen Eglen.
117 118
118@menu 119@menu
119* Activation:: How to use this package. 120* Activation:: How to use this package.
121* Working Directories:: Where files have most recently been opened.
120@end menu 122@end menu
121 123
122@node Activation 124@node Activation
@@ -140,9 +142,48 @@ package.
140(ido-mode t) 142(ido-mode t)
141@end example 143@end example
142 144
143@c @node Working Directories 145@node Working Directories
144@c @section Working Directories 146@section Working Directories
145@c @cindex working directories 147@cindex working directories
148
149@vindex ido-work-directory-list
150@noindent
151@dfn{Working directories} are directories where files have most
152recently been opened. The current directory is inserted at the front
153of this @code{ido-work-directory-list} whenever a file is opened with
154@code{ido-find-file} and other file-related functions.
155
156@c @cindex merge
157@c or maybe a new node for ``merge''
158
159@c @deffn Command ido-merge-work-directories
160
161@c @deffn Command ido-prev-work-directory
162
163@c @deffn Command ido-next-work-directory
164
165@c @deffn Command ido-forget-work-directory
166
167@c @defvar ido-use-merged-list
168@c @defvar ido-try-merged-list
169@c @defvar ido-pre-merge-state
170
171@defopt ido-max-work-directory-list
172This user option specifies maximum number of working directories to
173record.
174@end defopt
175
176@c see (info "(elisp) File Name Completion")
177@defopt ido-max-dir-file-cache
178This user option specifies maximum number of working directories to be
179cached. This is the size of the cache of
180@code{file-name-all-completions} results. Each cache entry is time
181stamped with the modification time of the directory. Some systems,
182like MS-Windows, have unreliable directory modification times, so you
183may choose to disable caching on such systems, or explicitly refresh
184the cache contents using the command @code{ido-reread-directory}
185(usually @kbd{C-l}) in the minibuffer.
186@end defopt
146 187
147@node Matching 188@node Matching
148@chapter Matching 189@chapter Matching
@@ -153,10 +194,10 @@ This section describes features of this package that have to
153do with various kinds of @emph{matching}: among buffers, files, and directories. 194do with various kinds of @emph{matching}: among buffers, files, and directories.
154 195
155@menu 196@menu
156* Interactive Substring Matching:: Interactivity, matching, scrolling. 197* Interactive Substring Matching:: Interactivity, matching, scrolling.
157* Prefix Matching:: Standard completion. 198* Prefix Matching:: Standard completion.
158* Flexible Matching:: More flexible matching. 199* Flexible Matching:: More flexible matching.
159* Regexp Matching:: Matching using regular expression. 200* Regexp Matching:: Matching using regular expression.
160@end menu 201@end menu
161 202
162@node Interactive Substring Matching 203@node Interactive Substring Matching
@@ -265,7 +306,7 @@ of the list and hit @key{RET}.
265To go up to the parent directory, delete any partial file name already 306To go up to the parent directory, delete any partial file name already
266specified (e.g. using @key{DEL}) and hit @key{DEL}. 307specified (e.g. using @key{DEL}) and hit @key{DEL}.
267 308
268@c @defun ido-delete-backward-updir 309@c @deffn Command ido-delete-backward-updir
269 310
270@cindex root directory 311@cindex root directory
271@cindex home directory 312@cindex home directory
@@ -279,11 +320,11 @@ directory, enter @samp{~/}. To enter Dired for this directory, use
279@cindex ftp hosts 320@cindex ftp hosts
280You can also visit files on other hosts using the ange-ftp 321You can also visit files on other hosts using the ange-ftp
281notations @samp{/host:} and @samp{/user@@host:}. 322notations @samp{/host:} and @samp{/user@@host:}.
282@c @defvr {User Option} ido-record-ftp-work-directories 323@c @defopt ido-record-ftp-work-directories
283@c @defvr {User Option} ido-merge-ftp-work-directories 324@c @defopt ido-merge-ftp-work-directories
284@c @defvr {User Option} ido-cache-ftp-work-directory-time 325@c @defopt ido-cache-ftp-work-directory-time
285@c @defvr {User Option} ido-slow-ftp-hosts 326@c @defopt ido-slow-ftp-hosts
286@c @defvr {User Option} ido-slow-ftp-host-regexps 327@c @defopt ido-slow-ftp-host-regexps
287 328
288You can type @kbd{M-p} and @kbd{M-n} to change to previous/next 329You can type @kbd{M-p} and @kbd{M-n} to change to previous/next
289directories from the history, @kbd{M-s} to search for a file matching 330directories from the history, @kbd{M-s} to search for a file matching
@@ -295,22 +336,20 @@ If for some reason you cannot specify the proper file using
295@code{ido-switch-buffer}. 336@code{ido-switch-buffer}.
296 337
297@c @kindex C-x b 338@c @kindex C-x b
298@c @findex ido-switch-buffer 339@c @deffn Command ido-switch-buffer
299@c @defun ido-switch-buffer
300@c This command switch to another buffer interactively. 340@c This command switch to another buffer interactively.
301@c @end defun 341@c @end deffn
302 342
303@c @kindex C-x C-f 343@c @kindex C-x C-f
304@c @findex ido-find-file 344@c @deffn Command ido-find-file
305@c @defun ido-find-file
306@c Edit file with name obtained via minibuffer. 345@c Edit file with name obtained via minibuffer.
307@c @end defun 346@c @end deffn
308 347
309@c @kindex C-x d 348@c @kindex C-x d
310@c @findex ido-dired 349@c @findex ido-dired
311@c @defun ido-dired 350@c @deffn Command ido-dired
312@c Call Dired the Ido way. 351@c Call Dired the Ido way.
313@c @end defun 352@c @end deffn
314 353
315@node Prefix Matching 354@node Prefix Matching
316@section Prefix Matching 355@section Prefix Matching
@@ -338,12 +377,12 @@ of the buffer names.
338@section Flexible Matching 377@section Flexible Matching
339@cindex flexible matching 378@cindex flexible matching
340 379
341@defvr {User Option} ido-enable-flex-matching 380@defopt ido-enable-flex-matching
342If non-@code{nil}, Ido will do flexible string matching. Flexible 381If non-@code{nil}, Ido will do flexible string matching. Flexible
343matching means that if the entered string does not match any item, any 382matching means that if the entered string does not match any item, any
344item containing the entered characters in the given sequence will 383item containing the entered characters in the given sequence will
345match. 384match.
346@end defvr 385@end defopt
347 386
348@noindent 387@noindent
349If @code{ido-enable-flex-matching} is non-@code{nil}, Ido will do a 388If @code{ido-enable-flex-matching} is non-@code{nil}, Ido will do a
@@ -371,11 +410,11 @@ through @code{ido-enable-regexp} (toggle with @kbd{C-t}). This allows
371you to type @samp{[ch]$} for example and see all file names ending in 410you to type @samp{[ch]$} for example and see all file names ending in
372@samp{c} or @samp{h}. 411@samp{c} or @samp{h}.
373 412
374@defvr {User Option} ido-enable-regexp 413@defopt ido-enable-regexp
375If the value of this user option is non-@code{nil}, Ido will do regexp 414If the value of this user option is non-@code{nil}, Ido will do regexp
376matching. The value of this user option can be toggled within 415matching. The value of this user option can be toggled within
377ido-mode using @code{ido-toggle-regexp}. 416ido-mode using @code{ido-toggle-regexp}.
378@end defvr 417@end defopt
379 418
380@strong{Please notice:} Ido-style completion is inhibited when you 419@strong{Please notice:} Ido-style completion is inhibited when you
381enable regexp matching. 420enable regexp matching.
@@ -405,7 +444,7 @@ buffers or files.
405You can toggle display of the hidden buffers and files with @kbd{C-a} 444You can toggle display of the hidden buffers and files with @kbd{C-a}
406(@code{ido-toggle-ignore}). 445(@code{ido-toggle-ignore}).
407 446
408@c @defun ido-toggle-ignore 447@c @deffn Command ido-toggle-ignore
409 448
410@node Customization 449@node Customization
411@chapter Customization 450@chapter Customization
@@ -435,6 +474,9 @@ To modify the keybindings, use the @code{ido-setup-hook}. For example:
435 (define-key ido-completion-map " " 'ido-next-match)) 474 (define-key ido-completion-map " " 'ido-next-match))
436@end example 475@end example
437 476
477@c @defopt ido-setup-hook
478@c a new node for Ido hooks?
479
438@menu 480@menu
439* Changing List Order:: Changing the list of files. 481* Changing List Order:: Changing the list of files.
440* Find File At Point:: Make Ido guess the context. 482* Find File At Point:: Make Ido guess the context.
@@ -479,17 +521,17 @@ The following expression will make Ido guess the context:
479(setq ido-use-filename-at-point 'guess) 521(setq ido-use-filename-at-point 'guess)
480@end example 522@end example
481 523
482@c @defvr {User Option} ido-use-filename-at-point 524@c @defopt ido-use-filename-at-point
483@c If the value of this user option is non-@code{nil}, ... 525@c If the value of this user option is non-@code{nil}, ...
484@c @end defvr 526@c @end defopt
485 527
486You can disable URL ffap support by toggling 528You can disable URL ffap support by toggling
487@code{ido-use-url-at-point}. 529@code{ido-use-url-at-point}.
488 530
489@defvr {User Option} ido-use-url-at-point 531@defopt ido-use-url-at-point
490If the value of this user option is non-@code{nil}, Ido will look for 532If the value of this user option is non-@code{nil}, Ido will look for
491a URL at point. If found, call @code{find-file-at-point} to visit it. 533a URL at point. If found, call @code{find-file-at-point} to visit it.
492@end defvr 534@end defopt
493 535
494@node Ignoring 536@node Ignoring
495@section Ignoring Buffers and Files 537@section Ignoring Buffers and Files
@@ -500,28 +542,29 @@ a URL at point. If found, call @code{find-file-at-point} to visit it.
500Ido is capable of ignoring buffers, directories, files and extensions 542Ido is capable of ignoring buffers, directories, files and extensions
501using regular expression. 543using regular expression.
502 544
503@defvr {User Option} ido-ignore-buffers 545@defopt ido-ignore-buffers
504This variable takes a list of regular expressions for buffers to 546This variable takes a list of regular expressions for buffers to
505ignore in @code{ido-switch-buffer}. 547ignore in @code{ido-switch-buffer}.
506@end defvr 548@end defopt
507 549
508@defvr {User Option} ido-ignore-directories 550@defopt ido-ignore-directories
509This variable takes a list of regular expressions for (sub)directories 551This variable takes a list of regular expressions for (sub)directories
510names to ignore in @code{ido-dired} and @code{ido-find-file}. 552names to ignore in @code{ido-dired} and @code{ido-find-file}.
511@end defvr 553@end defopt
512 554
513@defvr {User Option} ido-ignore-files 555@defopt ido-ignore-files
514This variable takes a list of regular expressions for files to ignore 556This variable takes a list of regular expressions for files to ignore
515in @code{ido-find-file}. 557in @code{ido-find-file}.
516@end defvr 558@end defopt
517 559
518@defvr {User Option} ido-ignore-unc-host-regexps 560@defopt ido-ignore-unc-host-regexps
519This variable takes a list of regular expressions matching UNC hosts 561This variable takes a list of regular expressions matching UNC hosts
520to ignore. The letter case will be ignored if 562to ignore. The letter case will be ignored if
521@code{ido-downcase-unc-hosts} is non-@code{nil}. 563@code{ido-downcase-unc-hosts} is non-@code{nil}.
522@end defvr 564@end defopt
523 565
524@c @defvr {User Option} ido-work-directory-list-ignore-regexps 566@c FIXME: Where to add this variable? This node or ``working directory''?
567@c @defopt ido-work-directory-list-ignore-regexps
525 568
526To make Ido use @code{completion-ignored-extensions} you need to 569To make Ido use @code{completion-ignored-extensions} you need to
527enable it: 570enable it:
@@ -542,69 +585,117 @@ the name of an ignored file, Ido will still let you open it just fine.
542@section Miscellaneous Customization 585@section Miscellaneous Customization
543@cindex miscellaneous customization for Ido 586@cindex miscellaneous customization for Ido
544 587
545@defvr {User Option} ido-mode 588@c Variables described in this sections may be moved to new nodes in
589@c the future.
590
591@defopt ido-mode
546This user option determines for which functional group (buffer and 592This user option determines for which functional group (buffer and
547files) Ido behavior should be enabled. 593files) Ido behavior should be enabled.
548@end defvr 594@end defopt
549 595
550@defvr {User Option} ido-case-fold 596@defopt ido-case-fold
551If the value of this user option is non-@code{nil}, searching of 597If the value of this user option is non-@code{nil}, searching of
552buffer and file names should ignore case. 598buffer and file names should ignore case.
553@end defvr 599@end defopt
554 600
555@defvr {User Option} ido-show-dot-for-dired 601@defopt ido-show-dot-for-dired
556If the value of this user option is non-@code{nil} , always put 602If the value of this user option is non-@code{nil}, always put
557@samp{.} as the first item in file name lists. This allows the 603@samp{.} as the first item in file name lists. This allows the
558current directory to be opened immediately with Dired 604current directory to be opened immediately with Dired
559@end defvr 605@end defopt
560 606
561@defvr {User Option} ido-enable-dot-prefix 607@defopt ido-enable-dot-prefix
562If the value of this user option is non-@code{nil}, Ido will match 608If the value of this user option is non-@code{nil}, Ido will match
563leading dot as prefix. I.e., hidden files and buffers will match only 609leading dot as prefix. I.e., hidden files and buffers will match only
564if you type a dot as first char (even if @code{ido-enable-prefix} is 610if you type a dot as first char (even if @code{ido-enable-prefix} is
565@code{nil}). 611@code{nil}).
566@end defvr 612@end defopt
567 613
568@c @defvr {User Option} ido-confirm-unique-completion 614@defopt ido-confirm-unique-completion
569@c @defvr {User Option} ido-cannot-complete-command 615If the value of this user option is non-@code{nil}, even a unique
570@c @defvr {User Option} ido-record-commands 616completion must be confirmed. This means that @code{ido-complete}
571@c @defvr {User Option} ido-max-file-prompt-width 617(@key{TAB}) must always be followed by @code{ido-exit-minibuffer}
572@c @defvr {User Option} ido-max-window-height 618(@key{RET}) even when there is only one unique completion.
573@c @defvr {User Option} ido-enable-last-directory-history 619@end defopt
574@c @defvr {User Option} ido-max-work-directory-list 620
575@c @defvr {User Option} ido-enable-tramp-completion 621@defopt ido-cannot-complete-command
576@c @defvr {User Option} ido-unc-hosts 622When @code{ido-complete} can't complete any more, it will run the
577@c @defvr {User Option} ido-downcase-unc-hosts 623command specified by this user option. The most useful values are
578@c @defvr {User Option} ido-cache-unc-host-shares-time 624@code{ido-completion-help}, which pops up a window with completion
579@c @defvr {User Option} ido-max-work-file-list 625alternatives, or @code{ido-next-match} or @code{ido-prev-match}, which
580@c @defvr {User Option} ido-work-directory-match-only 626cycle the buffer list.
581@c @defvr {User Option} ido-auto-merge-work-directories-length 627@end defopt
582@c @defvr {User Option} ido-auto-merge-delay-time 628
583@c @defvr {User Option} ido-auto-merge-inhibit-characters-regexp 629@defopt ido-max-file-prompt-width
584@c @defvr {User Option} ido-merged-indicator 630This user option specifies the upper limit of the prompt string. If
585@c @defvr {User Option} ido-max-dir-file-cache 631its value is an integer, it specifies the number of characters of the
586@c @defvr {User Option} ido-max-directory-size 632string. If its value is a floating point number, it specifies a
587@c @defvr {User Option} ido-rotate-file-list-default 633fraction of the frame width.
588@c @defvr {User Option} ido-enter-matching-directory 634@end defopt
589@c @defvr {User Option} ido-create-new-buffer 635
590@c @defvr {User Option} ido-setup-hook 636@defopt ido-max-window-height
591@c @defvr {User Option} ido-separator 637If the value of this user option is non-@code{nil}, its value will
592@c @defvr {User Option} ido-decorations 638override the variable @code{max-mini-window-height}, which is the
593@c @defvr {User Option} ido-use-virtual-buffers 639maximum height for resizing mini-windows (the minibuffer and the echo
594@c @defvr {User Option} ido-use-faces 640area). If it's a floating point number, it specifies a fraction of
595@c @defvr {User Option} ido-make-file-list-hook 641the mini-window frame's height. If it's an integer, it specifies the
596@c @defvr {User Option} ido-make-dir-list-hook 642number of lines.
597@c @defvr {User Option} ido-make-buffer-list-hook 643@end defopt
598@c @defvr {User Option} ido-rewrite-file-prompt-functions 644
599@c @defvr {User Option} ido-completion-buffer 645@defopt ido-record-commands
600@c @defvr {User Option} ido-completion-buffer-all-completions 646If the value of this user option is non-@code{nil}, Ido will record
601@c @defvr {User Option} ido-all-frames 647commands in the variable @code{command-history}. Note that non-Ido
602@c @defvr {User Option} ido-minibuffer-setup-hook 648equivalent is recorded.
603@c @defvr {User Option} ido-save-directory-list-file 649@end defopt
604@c @defvr {User Option} ido-read-file-name-as-directory-commands 650
605@c @defvr {User Option} ido-read-file-name-non-ido 651@defopt ido-all-frames
606@c @defvr {User Option} ido-before-fallback-functions 652This user option will be passed to @code{walk-windows} as its
607@c @defvr {User Option} ido-buffer-disable-smart-matches 653@var{all-frames} argument when Ido is finding buffers. @xref{Cyclic
654Window Ordering, , Cyclic Ordering of Windows, elisp, GNU Emacs Lisp
655Reference Manual}.
656@end defopt
657
658@defopt ido-minibuffer-setup-hook
659This hook variable contains Ido-specific customization of minibuffer
660setup. It is run during minibuffer setup if Ido is active, and is
661intended for use in customizing ido for interoperation with other
662packages.
663@end defopt
664
665@c @defopt ido-enable-tramp-completion
666@c cross-reference to tramp.texi
667
668@c @cindex UNC host names, completion
669@c @defopt ido-unc-hosts
670@c @defopt ido-downcase-unc-hosts
671@c @defopt ido-cache-unc-host-shares-time
672
673@c @defopt ido-enable-last-directory-history
674@c @defopt ido-max-work-file-list
675@c @defopt ido-work-directory-match-only
676@c @defopt ido-auto-merge-work-directories-length
677@c @defopt ido-auto-merge-delay-time
678@c @defopt ido-auto-merge-inhibit-characters-regexp
679@c @defopt ido-merged-indicator
680@c @defopt ido-max-directory-size
681@c @defopt ido-rotate-file-list-default
682@c @defopt ido-enter-matching-directory
683@c @defopt ido-create-new-buffer
684@c @defopt ido-separator
685@c @defopt ido-decorations
686@c @defopt ido-use-virtual-buffers
687@c @defopt ido-use-faces
688@c @defopt ido-make-file-list-hook
689@c @defopt ido-make-dir-list-hook
690@c @defopt ido-make-buffer-list-hook
691@c @defopt ido-rewrite-file-prompt-functions
692@c @defopt ido-completion-buffer
693@c @defopt ido-completion-buffer-all-completions
694@c @defopt ido-save-directory-list-file
695@c @defopt ido-read-file-name-as-directory-commands
696@c @defopt ido-read-file-name-non-ido
697@c @defopt ido-before-fallback-functions
698@c @defopt ido-buffer-disable-smart-matches
608 699
609@node Misc 700@node Misc
610@chapter Miscellaneous 701@chapter Miscellaneous
@@ -624,8 +715,8 @@ and you find that the file you are after is not in any buffer, you can
624press @kbd{C-f} to immediately drop into @code{ido-find-file}. And 715press @kbd{C-f} to immediately drop into @code{ido-find-file}. And
625you can switch back to buffer selection with @kbd{C-b}. 716you can switch back to buffer selection with @kbd{C-b}.
626 717
627@c @defun ido-magic-forward-char 718@c @deffn Command ido-magic-forward-char
628@c @defun ido-magic-backward-char 719@c @deffn Command ido-magic-backward-char
629 720
630You can also use Ido in your Emacs Lisp programs: 721You can also use Ido in your Emacs Lisp programs:
631 722
@@ -657,7 +748,7 @@ Also, to improve the responsiveness of Ido, the maximum number of
657matching items is limited to 12, but you can increase or removed this 748matching items is limited to 12, but you can increase or removed this
658limit via the @code{ido-max-prospects} user option. 749limit via the @code{ido-max-prospects} user option.
659 750
660@c @defvr {User Option} ido-max-prospects 751@c @defopt ido-max-prospects
661 752
662To see a full list of all matching buffers in a separate buffer, hit 753To see a full list of all matching buffers in a separate buffer, hit
663@kbd{?} or press @key{TAB} when there are no further completions to 754@kbd{?} or press @key{TAB} when there are no further completions to
@@ -675,8 +766,8 @@ functions @code{read-buffer} and @code{read-file-name}.
675To use ido for all buffer and file selections in Emacs, customize the 766To use ido for all buffer and file selections in Emacs, customize the
676variable @code{ido-everywhere}. 767variable @code{ido-everywhere}.
677 768
678@c @defun ido-everywhere 769@c @deffn Command ido-everywhere
679@c @defvr {User Option} ido-everywhere 770@c @defopt ido-everywhere
680 771
681@node Other Packages 772@node Other Packages
682@section Other Packages 773@section Other Packages
diff --git a/doc/misc/mairix-el.texi b/doc/misc/mairix-el.texi
index 73a1294d28d..210b709c1ea 100644
--- a/doc/misc/mairix-el.texi
+++ b/doc/misc/mairix-el.texi
@@ -55,15 +55,15 @@ database.
55@end ifnottex 55@end ifnottex
56 56
57@menu 57@menu
58* About mairix and mairix.el:: About the mairix search engine and mairix.el 58* About:: About the mairix search engine and mairix.el.
59* Configuring mairix:: How to configure mairix 59* Configuring mairix:: How to configure mairix.
60* Setting up mairix.el:: Set up mairix.el 60* Setting up the mairix interface:: Set up mairix.el.
61* Using mairix.el:: List of interactive functions 61* Using:: List of interactive functions
62* Extending mairix.el:: Support your favorite mail reader! 62* Extending:: Support your favorite mail reader!
63* GNU Free Documentation License:: The license for this documentation. 63* GNU Free Documentation License:: The license for this documentation.
64@end menu 64@end menu
65 65
66@node About mairix and mairix.el 66@node About
67@chapter About mairix and mairix.el 67@chapter About mairix and mairix.el
68 68
69Mairix is a tool for indexing and searching words in locally stored 69Mairix is a tool for indexing and searching words in locally stored
@@ -98,7 +98,7 @@ Currently, @code{mairix.el} is only tested with mbox output together
98with RMail, Gnus, or VM as the Emacs mail program. However, it should 98with RMail, Gnus, or VM as the Emacs mail program. However, it should
99also work with Maildir or MH, and it should be very easy to integrate 99also work with Maildir or MH, and it should be very easy to integrate
100other Emacs mail programs into @code{mairix.el} 100other Emacs mail programs into @code{mairix.el}
101(@pxref{Extending mairix.el}). 101(@pxref{Extending}).
102 102
103If you use Gnus with maildir or MH, you should really use the native 103If you use Gnus with maildir or MH, you should really use the native
104Gnus back end @code{nnmairix} instead, since it is more tightly 104Gnus back end @code{nnmairix} instead, since it is more tightly
@@ -165,8 +165,8 @@ Now simply call @code{mairix} to create the index for the first time.
165Note that this may take a few minutes, but every following index will do 165Note that this may take a few minutes, but every following index will do
166the updates incrementally and hence is very fast. 166the updates incrementally and hence is very fast.
167 167
168@node Setting up mairix.el 168@node Setting up the mairix interface
169@chapter Setting up mairix.el 169@chapter Setting up the mairix interface
170 170
171First, put @code{mairix.el} in your Emacs search path and put 171First, put @code{mairix.el} in your Emacs search path and put
172@code{(require 'mairix)} into your @file{.emacs} file. Then, use 172@code{(require 'mairix)} into your @file{.emacs} file. Then, use
@@ -179,13 +179,12 @@ If you use Gnus with maildir or mh, use the native Gnus back end
179nnmairix instead. 179nnmairix instead.
180 180
181If you use another Emacs mail program which is not yet supported by 181If you use another Emacs mail program which is not yet supported by
182mairix.el, it is pretty easy to integrate it. @xref{Extending 182mairix.el, it is pretty easy to integrate it. @xref{Extending},
183mairix.el}, on how to integrate it into mairix.el. 183on how to integrate it into mairix.el.
184 184
185Now you should be ready to go. @xref{Using mairix.el}, for the available 185Now you should be ready to go. @xref{Using}, for the available commands.
186commands.
187 186
188@node Using mairix.el 187@node Using
189@chapter Using mairix.el 188@chapter Using mairix.el
190 189
191There are currently no default key bindings for mairix.el, since those 190There are currently no default key bindings for mairix.el, since those
@@ -314,7 +313,7 @@ will still be usable while the update is done.
314@end table 313@end table
315 314
316 315
317@node Extending mairix.el 316@node Extending
318@chapter Extending mairix.el 317@chapter Extending mairix.el
319 318
320Your favorite Emacs mail program is not supported? Shame on me. But 319Your favorite Emacs mail program is not supported? Shame on me. But
diff --git a/doc/misc/newsticker.texi b/doc/misc/newsticker.texi
index ab3bffc2ce9..afb44a6a396 100644
--- a/doc/misc/newsticker.texi
+++ b/doc/misc/newsticker.texi
@@ -169,9 +169,9 @@ single buffer, called @samp{*newsticker*}. The modeline in the
169@samp{*newsticker*} buffer informs you whenever new headlines have 169@samp{*newsticker*} buffer informs you whenever new headlines have
170arrived. 170arrived.
171@end itemize 171@end itemize
172In both views clicking mouse-button 2 or pressing RET on a headline 172In both views clicking mouse-button 2 or pressing @key{RET} on a
173will call @code{browse-url} to load the corresponding news story in 173headline will call @code{browse-url} to load the corresponding news
174your favorite web browser. 174story in your favorite web browser.
175 175
176@findex newsticker-start-ticker 176@findex newsticker-start-ticker
177@findex newsticker-stop-ticker 177@findex newsticker-stop-ticker
diff --git a/doc/misc/reftex.texi b/doc/misc/reftex.texi
index b9cf2335647..ba83d8129a8 100644
--- a/doc/misc/reftex.texi
+++ b/doc/misc/reftex.texi
@@ -153,7 +153,7 @@ Labels and References
153* Defining Label Environments:: ... and environments it doesn't. 153* Defining Label Environments:: ... and environments it doesn't.
154* Reference Info:: View the label corresponding to a \ref. 154* Reference Info:: View the label corresponding to a \ref.
155* Reference Styles:: Macros to be used instead of \ref. 155* Reference Styles:: Macros to be used instead of \ref.
156* xr (LaTeX package):: References to external documents. 156* LaTeX xr Package:: References to external documents.
157 157
158Defining Label Environments 158Defining Label Environments
159 159
@@ -196,17 +196,17 @@ AUCTeX
196 196
197Options, Keymaps, Hooks 197Options, Keymaps, Hooks
198 198
199* Options (Table of Contents):: 199* Options - Table of Contents::
200* Options (Defining Label Environments):: 200* Options - Defining Label Environments::
201* Options (Creating Labels):: 201* Options - Creating Labels::
202* Options (Referencing Labels):: 202* Options - Referencing Labels::
203* Options (Creating Citations):: 203* Options - Creating Citations::
204* Options (Index Support):: 204* Options - Index Support::
205* Options (Viewing Cross-References):: 205* Options - Viewing Cross-References::
206* Options (Finding Files):: 206* Options - Finding Files::
207* Options (Optimizations):: 207* Options - Optimizations::
208* Options (Fontification):: 208* Options - Fontification::
209* Options (Misc):: 209* Options - Misc::
210 210
211@end detailmenu 211@end detailmenu
212@end menu 212@end menu
@@ -581,8 +581,8 @@ called.
581@item mouse-2 581@item mouse-2
582@vindex reftex-highlight-selection 582@vindex reftex-highlight-selection
583Clicking with mouse button 2 on a line has the same effect as @key{RET}. 583Clicking with mouse button 2 on a line has the same effect as @key{RET}.
584See also variable @code{reftex-highlight-selection}, @ref{Options 584See also variable @code{reftex-highlight-selection},
585(Fontification)}. 585@ref{Options - Fontification}.
586 586
587@item f 587@item f
588@vindex reftex-toc-follow-mode 588@vindex reftex-toc-follow-mode
@@ -701,9 +701,8 @@ buffer.
701 701
702@item x 702@item x
703Switch to the @file{*toc*} buffer of an external document. When the 703Switch to the @file{*toc*} buffer of an external document. When the
704current document is using the @code{xr} package (@pxref{xr (LaTeX 704current document is using the @code{xr} package (@pxref{LaTeX xr Package}),
705package)}), @RefTeX{} will switch to one of the external 705@RefTeX{} will switch to one of the external documents.
706documents.
707 706
708 707
709@tablesubheading{Automatic recentering} 708@tablesubheading{Automatic recentering}
@@ -796,7 +795,7 @@ equation counter.
796* Defining Label Environments:: ... and environments it doesn't. 795* Defining Label Environments:: ... and environments it doesn't.
797* Reference Info:: View the label corresponding to a \ref. 796* Reference Info:: View the label corresponding to a \ref.
798* Reference Styles:: Macros to be used instead of \ref. 797* Reference Styles:: Macros to be used instead of \ref.
799* xr (LaTeX package):: References to external documents. 798* LaTeX xr Package:: References to external documents.
800@end menu 799@end menu
801 800
802@node Creating Labels 801@node Creating Labels
@@ -859,8 +858,8 @@ this label later.
859 858
860@vindex reftex-insert-label-flags 859@vindex reftex-insert-label-flags
861If you want to change the way certain labels are created, check out the 860If you want to change the way certain labels are created, check out the
862variable @code{reftex-insert-label-flags} (@pxref{Options (Creating 861variable @code{reftex-insert-label-flags} (@pxref{Options - Creating
863Labels)}). 862Labels}).
864 863
865If you are using @AUCTeX{} to write your @LaTeX{} documents, you can 864If you are using @AUCTeX{} to write your @LaTeX{} documents, you can
866set it up to delegate the creation of labels to 865set it up to delegate the creation of labels to
@@ -981,7 +980,7 @@ references all marked labels.
981@vindex reftex-highlight-selection 980@vindex reftex-highlight-selection
982Clicking with mouse button 2 on a label will accept it like @key{RET} 981Clicking with mouse button 2 on a label will accept it like @key{RET}
983would. See also variable @code{reftex-highlight-selection}, 982would. See also variable @code{reftex-highlight-selection},
984@ref{Options (Misc)}. 983@ref{Options - Misc}.
985 984
986@vindex reftex-multiref-punctuation 985@vindex reftex-multiref-punctuation
987@item m - + , 986@item m - + ,
@@ -1034,7 +1033,7 @@ buffer.
1034@tablesubheading{Controlling what gets displayed} 1033@tablesubheading{Controlling what gets displayed}
1035@vindex reftex-label-menu-flags 1034@vindex reftex-label-menu-flags
1036The defaults for the following flags can be configured with the variable 1035The defaults for the following flags can be configured with the variable
1037@code{reftex-label-menu-flags} (@pxref{Options (Referencing Labels)}). 1036@code{reftex-label-menu-flags} (@pxref{Options - Referencing Labels}).
1038 1037
1039@item c 1038@item c
1040Toggle the display of the one-line label definition context in the 1039Toggle the display of the one-line label definition context in the
@@ -1082,8 +1081,7 @@ a menu for that category will be shown.
1082Reference a label from an external document. With the @LaTeX{} package 1081Reference a label from an external document. With the @LaTeX{} package
1083@code{xr} it is possible to reference labels defined in another 1082@code{xr} it is possible to reference labels defined in another
1084document. This key will switch to the label menu of an external 1083document. This key will switch to the label menu of an external
1085document and let you select a label from there (@pxref{xr (LaTeX 1084document and let you select a label from there (@pxref{LaTeX xr Package,,xr}).
1086package),,xr}).
1087 1085
1088@end table 1086@end table
1089 1087
@@ -1203,8 +1201,8 @@ them (@pxref{Defining Label Environments}).
1203@vindex reftex-label-alist 1201@vindex reftex-label-alist
1204@RefTeX{} can be configured to recognize additional labeled 1202@RefTeX{} can be configured to recognize additional labeled
1205environments and macros. This is done with the variable 1203environments and macros. This is done with the variable
1206@code{reftex-label-alist} (@pxref{Options (Defining Label 1204@code{reftex-label-alist} (@pxref{Options - Defining Label
1207Environments)}). If you are not familiar with Lisp, you can use the 1205Environments}). If you are not familiar with Lisp, you can use the
1208@code{custom} library to configure this rather complex variable. To do 1206@code{custom} library to configure this rather complex variable. To do
1209this, use 1207this, use
1210 1208
@@ -1302,8 +1300,7 @@ a @code{\macro} or after the @code{\begin} statement). @code{t} is
1302@code{nil} means to use the text right after the label definition. 1300@code{nil} means to use the text right after the label definition.
1303@item 1301@item
1304For more complex ways of getting context, see the variable 1302For more complex ways of getting context, see the variable
1305@code{reftex-label-alist} (@ref{Options (Defining Label 1303@code{reftex-label-alist} (@ref{Options - Defining Label Environments}).
1306Environments)}).
1307@end itemize 1304@end itemize
1308 1305
1309The following list of strings is used to guess the correct label type 1306The following list of strings is used to guess the correct label type
@@ -1356,9 +1353,8 @@ Reftex Label Alist: [Hide]
1356Depending on how you would like the label insertion and selection for 1353Depending on how you would like the label insertion and selection for
1357the new environments to work, you might want to add the letters @samp{a} 1354the new environments to work, you might want to add the letters @samp{a}
1358and @samp{h} to some of the flags in the variables 1355and @samp{h} to some of the flags in the variables
1359@code{reftex-insert-label-flags} (@pxref{Options (Creating Labels)}) 1356@code{reftex-insert-label-flags} (@pxref{Options - Creating Labels})
1360and @code{reftex-label-menu-flags} (@pxref{Options (Referencing 1357and @code{reftex-label-menu-flags} (@pxref{Options - Referencing Labels}).
1361Labels)}).
1362 1358
1363 1359
1364@node Quick Equation 1360@node Quick Equation
@@ -1749,7 +1745,7 @@ and @code{reftex-fref-is-default} respectively. While still working,
1749these variables are deprecated now. Instead of setting them, the 1745these variables are deprecated now. Instead of setting them, the
1750variable @code{reftex-ref-style-default-list} should be adapted now. 1746variable @code{reftex-ref-style-default-list} should be adapted now.
1751 1747
1752@node xr (LaTeX package) 1748@node LaTeX xr Package
1753@section @code{xr}: Cross-Document References 1749@section @code{xr}: Cross-Document References
1754@cindex @code{xr}, LaTeX package 1750@cindex @code{xr}, LaTeX package
1755@cindex LaTeX packages, @code{xr} 1751@cindex LaTeX packages, @code{xr}
@@ -1883,8 +1879,8 @@ which the selection process was started.
1883@item mouse-2 1879@item mouse-2
1884@vindex reftex-highlight-selection 1880@vindex reftex-highlight-selection
1885Clicking with mouse button 2 on a citation will accept it like @key{RET} 1881Clicking with mouse button 2 on a citation will accept it like @key{RET}
1886would. See also variable @code{reftex-highlight-selection}, @ref{Options 1882would. See also variable @code{reftex-highlight-selection},
1887(Misc)}. 1883@ref{Options - Misc}.
1888 1884
1889@item m 1885@item m
1890Mark the current entry. When one or several entries are marked, 1886Mark the current entry. When one or several entries are marked,
@@ -2403,8 +2399,9 @@ Abort the indexing process.
2403 2399
2404The @samp{Find and Index in Document} menu in the phrases buffer also 2400The @samp{Find and Index in Document} menu in the phrases buffer also
2405lists a few options for the indexing process. The options have 2401lists a few options for the indexing process. The options have
2406associated customization variables to set the defaults (@pxref{Options 2402associated customization variables to set the defaults
2407(Index Support)}). Here is a short explanation of what the options do: 2403(@pxref{Options - Index Support}). Here is a short explanation of
2404what the options do:
2408 2405
2409@table @i 2406@table @i
2410@item Match Whole Words 2407@item Match Whole Words
@@ -2759,7 +2756,7 @@ variants@footnote{all macros that start with @samp{ref} or end with
2759@samp{ref} or @samp{refrange}} of the @code{\ref} macro are active for 2756@samp{ref} or @samp{refrange}} of the @code{\ref} macro are active for
2760cross-reference display. This works also for labels defined in an 2757cross-reference display. This works also for labels defined in an
2761external document when the current document refers to them through the 2758external document when the current document refers to them through the
2762@code{xr} interface (@pxref{xr (LaTeX package)}). 2759@code{xr} interface (@pxref{LaTeX xr Package}).
2763 2760
2764@item @code{\label} 2761@item @code{\label}
2765@cindex @code{\label} 2762@cindex @code{\label}
@@ -2908,7 +2905,7 @@ the ones defined in @file{font-lock.el}. Therefore, @RefTeX{} will
2908use faces only when @code{font-lock} is loaded. This seems to be 2905use faces only when @code{font-lock} is loaded. This seems to be
2909reasonable because people who like faces will very likely have it 2906reasonable because people who like faces will very likely have it
2910loaded. If you wish to turn off fontification or change the involved 2907loaded. If you wish to turn off fontification or change the involved
2911faces, see @ref{Options (Fontification)}. 2908faces, see @ref{Options - Fontification}.
2912 2909
2913@node Multifile Documents 2910@node Multifile Documents
2914@section Multifile Documents 2911@section Multifile Documents
@@ -3894,21 +3891,21 @@ Lisp (and even if you are) you might find it more comfortable to use
3894reftex-customize} will get you there. 3891reftex-customize} will get you there.
3895 3892
3896@menu 3893@menu
3897* Options (Table of Contents):: 3894* Options - Table of Contents::
3898* Options (Defining Label Environments):: 3895* Options - Defining Label Environments::
3899* Options (Creating Labels):: 3896* Options - Creating Labels::
3900* Options (Referencing Labels):: 3897* Options - Referencing Labels::
3901* Options (Creating Citations):: 3898* Options - Creating Citations::
3902* Options (Index Support):: 3899* Options - Index Support::
3903* Options (Viewing Cross-References):: 3900* Options - Viewing Cross-References::
3904* Options (Finding Files):: 3901* Options - Finding Files::
3905* Options (Optimizations):: 3902* Options - Optimizations::
3906* Options (Fontification):: 3903* Options - Fontification::
3907* Options (Misc):: 3904* Options - Misc::
3908* Keymaps and Hooks:: 3905* Keymaps and Hooks::
3909@end menu 3906@end menu
3910 3907
3911@node Options (Table of Contents) 3908@node Options - Table of Contents
3912@section Table of Contents 3909@section Table of Contents
3913@cindex Options, table of contents 3910@cindex Options, table of contents
3914@cindex Table of contents, options 3911@cindex Table of contents, options
@@ -4032,7 +4029,7 @@ The keymap which is active in the @file{*toc*} buffer.
4032(@pxref{Table of Contents}). 4029(@pxref{Table of Contents}).
4033@end deffn 4030@end deffn
4034 4031
4035@node Options (Defining Label Environments) 4032@node Options - Defining Label Environments
4036@section Defining Label Environments 4033@section Defining Label Environments
4037@cindex Options, defining label environments 4034@cindex Options, defining label environments
4038@cindex Defining label environments, options 4035@cindex Defining label environments, options
@@ -4259,7 +4256,7 @@ labels fn:xxx, you may want to set this variable to the value "^fn:$" or
4259non-footnote labels. 4256non-footnote labels.
4260@end defopt 4257@end defopt
4261 4258
4262@node Options (Creating Labels) 4259@node Options - Creating Labels
4263@section Creating Labels 4260@section Creating Labels
4264@cindex Options, creating labels 4261@cindex Options, creating labels
4265@cindex Creating labels, options 4262@cindex Creating labels, options
@@ -4375,7 +4372,7 @@ Character class after abbrev point in word.
4375@end table 4372@end table
4376@end defopt 4373@end defopt
4377 4374
4378@node Options (Referencing Labels) 4375@node Options - Referencing Labels
4379@section Referencing Labels 4376@section Referencing Labels
4380@cindex Options, referencing labels 4377@cindex Options, referencing labels
4381@cindex Referencing labels, options 4378@cindex Referencing labels, options
@@ -4497,7 +4494,7 @@ The keymap which is active in the labels selection process
4497(@pxref{Referencing Labels}). 4494(@pxref{Referencing Labels}).
4498@end deffn 4495@end deffn
4499 4496
4500@node Options (Creating Citations) 4497@node Options - Creating Citations
4501@section Creating Citations 4498@section Creating Citations
4502@cindex Options, creating citations 4499@cindex Options, creating citations
4503@cindex Creating citations, options 4500@cindex Creating citations, options
@@ -4676,7 +4673,7 @@ Footer to insert in BibTeX files generated by
4676@end defopt 4673@end defopt
4677 4674
4678 4675
4679@node Options (Index Support) 4676@node Options - Index Support, Options - Viewing Cross-References, Options - Creating Citations, Options
4680@section Index Support 4677@section Index Support
4681@cindex Options, Index support 4678@cindex Options, Index support
4682@cindex Index support, options 4679@cindex Index support, options
@@ -4896,7 +4893,7 @@ The keymap which is active in the @file{*Index*} buffer
4896(@pxref{Index Support}). 4893(@pxref{Index Support}).
4897@end deffn 4894@end deffn
4898 4895
4899@node Options (Viewing Cross-References) 4896@node Options - Viewing Cross-References
4900@section Viewing Cross-References 4897@section Viewing Cross-References
4901@cindex Options, viewing cross-references 4898@cindex Options, viewing cross-references
4902@cindex Viewing cross-references, options 4899@cindex Viewing cross-references, options
@@ -4955,7 +4952,7 @@ saved along with the parsing information. The cache survives document
4955scans. In order to clear it, use @kbd{M-x reftex-reset-mode}. 4952scans. In order to clear it, use @kbd{M-x reftex-reset-mode}.
4956@end defopt 4953@end defopt
4957 4954
4958@node Options (Finding Files) 4955@node Options - Finding Files
4959@section Finding Files 4956@section Finding Files
4960@cindex Options, Finding Files 4957@cindex Options, Finding Files
4961@cindex Finding files, options 4958@cindex Finding files, options
@@ -5045,7 +5042,7 @@ non-@code{nil}.
5045@end defopt 5042@end defopt
5046 5043
5047@page 5044@page
5048@node Options (Optimizations) 5045@node Options - Optimizations
5049@section Optimizations 5046@section Optimizations
5050@cindex Options, optimizations 5047@cindex Options, optimizations
5051@cindex Optimizations, options 5048@cindex Optimizations, options
@@ -5154,7 +5151,7 @@ effect when @code{reftex-use-multiple-selection-buffers} is
5154non-@code{nil}. 5151non-@code{nil}.
5155@end defopt 5152@end defopt
5156 5153
5157@node Options (Fontification) 5154@node Options - Fontification
5158@section Fontification 5155@section Fontification
5159@cindex Options, fontification 5156@cindex Options, fontification
5160@cindex Fontification, options 5157@cindex Fontification, options
@@ -5252,7 +5249,7 @@ Face name for index names (for multiple indices).
5252Face name for index entries. 5249Face name for index entries.
5253@end defopt 5250@end defopt
5254 5251
5255@node Options (Misc) 5252@node Options - Misc
5256@section Miscellaneous 5253@section Miscellaneous
5257@cindex Options, misc 5254@cindex Options, misc
5258 5255
diff --git a/doc/misc/sc.texi b/doc/misc/sc.texi
index cfd040f0e82..aa0752c80cd 100644
--- a/doc/misc/sc.texi
+++ b/doc/misc/sc.texi
@@ -84,12 +84,15 @@ into the following chapters.
84@node Introduction 84@node Introduction
85@chapter Introduction 85@chapter Introduction
86 86
87Supercite is a GNU Emacs package written entirely in Emacs Lisp. It 87@cindex MUA
88@cindex NUA
89Supercite is a GNU Emacs package written entirely in Emacs Lisp. It
88interfaces to most of the commonly used Emacs mail user agents 90interfaces to most of the commonly used Emacs mail user agents
89(@dfn{MUAs}) and news user agents (@dfn{NUAs}), and provides 91(@dfn{MUAs}) and news user agents (@dfn{NUAs}), and provides
90sophisticated facilities for the citing and attributing of message 92sophisticated facilities for the citing and attributing of message
91replies. Supercite has a very specific and limited role in the process 93replies. Supercite has a very specific and limited role in the
92of composing replies to both USENET network news and electronic mail. 94process of composing replies to both USENET network news and
95electronic mail.
93 96
94The preferred way to spell Supercite is with a capital @samp{S}, 97The preferred way to spell Supercite is with a capital @samp{S},
95lowercase @samp{upercite}. 98lowercase @samp{upercite}.
@@ -100,8 +103,7 @@ lowercase @samp{upercite}.
100* What Supercite Does:: 103* What Supercite Does::
101@end menu 104@end menu
102 105
103@cindex MUA 106@c FIXME: move it above the menu? --xfq
104@cindex NUA
105Supercite is only useful in conjunction with MUAs and NUAs such as VM, 107Supercite is only useful in conjunction with MUAs and NUAs such as VM,
106Gnus, RMAIL, MH-E, etc. Supercite is typically called by the MUA after a 108Gnus, RMAIL, MH-E, etc. Supercite is typically called by the MUA after a
107reply buffer has been setup. Thereafter, Supercite's many commands and 109reply buffer has been setup. Thereafter, Supercite's many commands and
@@ -118,21 +120,22 @@ sent. Supercite is re-initialized in each new reply buffer.
118@cindex cite, citing 120@cindex cite, citing
119@cindex attribute, attributing 121@cindex attribute, attributing
120 122
121Typical usage is as follows. You want to reply or followup to a message 123Typical usage is as follows. You want to reply or followup to a
122in your MUA@. You will probably hit @kbd{r} (i.e., ``reply'') or @kbd{f} 124message in your MUA@. You will probably hit @kbd{r} (i.e., ``reply'')
123(i.e., ``forward'') to begin composing the reply. In response, the MUA 125or @kbd{f} (i.e., ``forward'') to begin composing the reply. In
124will create a reply buffer and initialize the outgoing mail headers 126response, the MUA will create a reply buffer and initialize the
125appropriately. The body of the reply will usually be empty at this 127outgoing mail headers appropriately. The body of the reply will
126point. You now decide that you would like to include part of the 128usually be empty at this point. You now decide that you would like to
127original message in your reply. To do this, you @dfn{yank} the original 129include part of the original message in your reply. To do this, you
128message into the reply buffer, typically with a key stroke such as 130@dfn{yank} the original message into the reply buffer, typically with
129@kbd{C-c C-y}. This sequence will invoke an MUA-specific function which 131a key stroke such as @kbd{C-c C-y}. This sequence will invoke an
130fills the body of the reply with the original message and then 132MUA-specific function which fills the body of the reply with the
131@dfn{attributes} this text to its author. This is called @dfn{citing} 133original message and then @dfn{attributes} this text to its author.
132and its effect is to prefix every line from the original message with a 134This is called @dfn{citing} and its effect is to prefix every line
133special text tag. Most MUAs provide some default style of citing; by 135from the original message with a special text tag. Most MUAs provide
134using Supercite you gain a wider flexibility in the look and style of 136some default style of citing; by using Supercite you gain a wider
135citations. Supercite's only job is to cite the original message. 137flexibility in the look and style of citations. Supercite's only job
138is to cite the original message.
136 139
137@node What Supercite Does Not Do 140@node What Supercite Does Not Do
138@section What Supercite Doesn't Do 141@section What Supercite Doesn't Do
@@ -183,7 +186,7 @@ string carrying details about the citation it is about to perform.
183 186
184@cindex modeline 187@cindex modeline
185Next, Supercite visits each line in the reply, transforming the line 188Next, Supercite visits each line in the reply, transforming the line
186according to a customizable ``script.'' Lines which were not previously 189according to a customizable ``script''. Lines which were not previously
187cited in the original message are given a citation, while already cited 190cited in the original message are given a citation, while already cited
188lines remain untouched, or are coerced to your preferred style. 191lines remain untouched, or are coerced to your preferred style.
189Finally, Supercite installs a keymap into the reply buffer so that you 192Finally, Supercite installs a keymap into the reply buffer so that you
@@ -253,10 +256,10 @@ make the message very difficult for the eye to scan.
253 256
254@cindex non-nested citations 257@cindex non-nested citations
255In @dfn{non-nested citations}, each cited line begins with an 258In @dfn{non-nested citations}, each cited line begins with an
256informative string attributing that line to the original author. Only 259informative string attributing that line to the original author. Only
257the first level of attribution will be shown; subsequent citations don't 260the first level of attribution will be shown; subsequent citations
258nest the citation strings. The above dialog might look like this when 261don't nest the citation strings. The above dialog might look like
259non-nested citations are used: 262this when non-nested citations are used:
260 263
261@example 264@example
262John> John originally wrote this 265John> John originally wrote this
@@ -272,19 +275,20 @@ message did not result in a line cited with @samp{Jane>John>}.
272@vindex sc-nested-citation-p 275@vindex sc-nested-citation-p
273@vindex nested-citation-p (sc-) 276@vindex nested-citation-p (sc-)
274Supercite supports both styles of citation, and the variable 277Supercite supports both styles of citation, and the variable
275@code{sc-nested-citation-p} controls which style it will use when citing 278@code{sc-nested-citation-p} controls which style it will use when
276previously uncited text. When this variable is @code{nil} (the default), 279citing previously uncited text. When this variable is @code{nil} (the
277non-nested citations are used. When non-@code{nil}, nested citations 280default), non-nested citations are used. When non-@code{nil}, nested
278are used. 281citations are used.
279 282
280 283
281@node Citation Elements 284@node Citation Elements
282@section Citation Elements 285@section Citation Elements
283@cindex citation string 286@cindex citation string
284 287
285@dfn{Citation strings} are composed of one or more elements. Non-nested 288@dfn{Citation strings} are composed of one or more elements.
286citations are composed of four elements, three of which are directly 289Non-nested citations are composed of four elements, three of which are
287user definable. The elements are concatenated together, in this order: 290directly user definable. The elements are concatenated together, in
291this order:
288 292
289@cindex citation leader 293@cindex citation leader
290@vindex citation-leader (sc-) 294@vindex citation-leader (sc-)
@@ -337,10 +341,10 @@ multi-level nested citations.
337@section Recognizing Citations 341@section Recognizing Citations
338 342
339Supercite also recognizes citations in the original article, and can 343Supercite also recognizes citations in the original article, and can
340transform these already cited lines in a number of ways. This is how 344transform these already cited lines in a number of ways. This is how
341Supercite suppresses the multiple citing of non-nested citations. 345Supercite suppresses the multiple citing of non-nested citations.
342Recognition of cited lines is controlled by variables analogous to those 346Recognition of cited lines is controlled by variables analogous to
343that make up the citation string as mentioned previously. 347those that make up the citation string as mentioned previously.
344 348
345@vindex sc-citation-leader-regexp 349@vindex sc-citation-leader-regexp
346@vindex citation-leader-regexp (sc-) 350@vindex citation-leader-regexp (sc-)
@@ -387,16 +391,16 @@ change @code{sc-citation-root-regexp} you should always also change
387 391
388@dfn{Mail header information keys} are nuggets of information that 392@dfn{Mail header information keys} are nuggets of information that
389Supercite extracts from the various mail headers of the original 393Supercite extracts from the various mail headers of the original
390message, placed in the reply buffer by the MUA@. Information is kept in 394message, placed in the reply buffer by the MUA@. Information is kept
391the @dfn{Info Alist} as key-value pairs, and can be retrieved for use in 395in the @dfn{Info Alist} as key-value pairs, and can be retrieved for
392various places within Supercite, such as in header rewrite functions and 396use in various places within Supercite, such as in header rewrite
393attribution selection. Other bits of data, composed and created by 397functions and attribution selection. Other bits of data, composed and
394Supercite, are also kept as key-value pairs in this alist. In the case 398created by Supercite, are also kept as key-value pairs in this alist.
395of mail fields, the key is the name of the field, omitting the trailing 399In the case of mail fields, the key is the name of the field, omitting
396colon. Info keys are always case insensitive (as are mail headers), and 400the trailing colon. Info keys are always case insensitive (as are
397the value for a corresponding key can be retrieved from the alist with 401mail headers), and the value for a corresponding key can be retrieved
398the @code{sc-mail-field} function. Thus, if the following fields were 402from the alist with the @code{sc-mail-field} function. Thus, if the
399present in the original article:@refill 403following fields were present in the original article:@refill
400 404
401@example 405@example
402Date:@: 08 April 1991, 17:32:09 EST 406Date:@: 08 April 1991, 17:32:09 EST
@@ -419,7 +423,7 @@ then, the following lisp constructs return:
419Since the argument to @code{sc-mail-field} can be any string, it is 423Since the argument to @code{sc-mail-field} can be any string, it is
420possible that the mail field will not be present on the info alist 424possible that the mail field will not be present on the info alist
421(possibly because the mail header was not present in the original 425(possibly because the mail header was not present in the original
422message). In this case, @code{sc-mail-field} will return the value of 426message). In this case, @code{sc-mail-field} will return the value of
423the variable @code{sc-mumble}. 427the variable @code{sc-mumble}.
424 428
425Supercite always places all mail fields found in the yanked original 429Supercite always places all mail fields found in the yanked original
@@ -510,8 +514,8 @@ header.
510@vindex sc-rewrite-header-list 514@vindex sc-rewrite-header-list
511@vindex rewrite-header-list (sc-) 515@vindex rewrite-header-list (sc-)
512There are a number of built-in @dfn{header rewrite functions} supplied 516There are a number of built-in @dfn{header rewrite functions} supplied
513by Supercite, but you can write your own custom header rewrite functions 517by Supercite, but you can write your own custom header rewrite
514(perhaps using the built-in ones as examples). The variable 518functions (perhaps using the built-in ones as examples). The variable
515@code{sc-rewrite-header-list} contains the list of such header rewrite 519@code{sc-rewrite-header-list} contains the list of such header rewrite
516functions. This list is consulted both when inserting the initial 520functions. This list is consulted both when inserting the initial
517reference header, and when displaying @dfn{electric references}. 521reference header, and when displaying @dfn{electric references}.
@@ -521,7 +525,7 @@ reference header, and when displaying @dfn{electric references}.
521@vindex preferred-header-style (sc-) 525@vindex preferred-header-style (sc-)
522When Supercite is initially run on a reply buffer (via 526When Supercite is initially run on a reply buffer (via
523@code{sc-cite-original}), it will automatically call one of these 527@code{sc-cite-original}), it will automatically call one of these
524functions. The one it uses is defined in the variable 528functions. The one it uses is defined in the variable
525@code{sc-preferred-header-style}. The value of this variable is an 529@code{sc-preferred-header-style}. The value of this variable is an
526integer which is an index into the @code{sc-rewrite-header-list}, 530integer which is an index into the @code{sc-rewrite-header-list},
527beginning at zero. 531beginning at zero.
@@ -556,9 +560,9 @@ problem either in your MUA or in Supercite's installation).
556@findex sc-no-header 560@findex sc-no-header
557@findex no-header (sc-) 561@findex no-header (sc-)
558@item sc-no-header 562@item sc-no-header
559This function produces no header. It should be used instead of 563This function produces no header. It should be used instead of
560@code{nil} to produce a blank header. This header can possibly contain 564@code{nil} to produce a blank header. This header can possibly
561a blank line after the @code{mail-header-separator} line. 565contain a blank line after the @code{mail-header-separator} line.
562 566
563@item sc-no-blank-line-or-header 567@item sc-no-blank-line-or-header
564@findex sc-no-blank-line-or-header 568@findex sc-no-blank-line-or-header
@@ -612,11 +616,11 @@ line after the @code{mail-header-separator} line will be removed.
612By default, when Supercite cites the original message for the first 616By default, when Supercite cites the original message for the first
613time, it just goes ahead and inserts the reference header indexed by 617time, it just goes ahead and inserts the reference header indexed by
614@code{sc-preferred-header-style}. However, you may want to select 618@code{sc-preferred-header-style}. However, you may want to select
615different reference headers based on the type of reply or forwarding you 619different reference headers based on the type of reply or forwarding
616are doing. You may also want to preview the reference header before 620you are doing. You may also want to preview the reference header
617deciding whether to insert it into the reply buffer or not. Supercite 621before deciding whether to insert it into the reply buffer or
618provides an optional @dfn{electric reference} mode which you can drop 622not. Supercite provides an optional @dfn{electric reference} mode
619into to give you this functionality. 623which you can drop into to give you this functionality.
620 624
621@vindex sc-electric-references-p 625@vindex sc-electric-references-p
622@vindex electric-references-p (sc-) 626@vindex electric-references-p (sc-)
@@ -629,7 +633,7 @@ through all the reference header rewrite functions in your
629@code{sc-rewrite-header-list}. 633@code{sc-rewrite-header-list}.
630 634
631You can also set a new preferred header style, jump to any header, or 635You can also set a new preferred header style, jump to any header, or
632jump to the preferred header. The header will be shown in the electric 636jump to the preferred header. The header will be shown in the electric
633reference buffer and the header index and function name will appear in 637reference buffer and the header index and function name will appear in
634the echo area. 638the echo area.
635 639
@@ -643,7 +647,7 @@ The following commands are available while in electric reference mode
643@kindex n 647@kindex n
644@vindex sc-electric-circular-p 648@vindex sc-electric-circular-p
645@vindex electric-circular-p (sc-) 649@vindex electric-circular-p (sc-)
646Displays the next reference header in the electric reference buffer. If 650Displays the next reference header in the electric reference buffer. If
647the variable @code{sc-electric-circular-p} is non-@code{nil}, invoking 651the variable @code{sc-electric-circular-p} is non-@code{nil}, invoking
648@code{sc-eref-next} while viewing the last reference header in the list 652@code{sc-eref-next} while viewing the last reference header in the list
649will wrap around to the first header.@refill 653will wrap around to the first header.@refill
@@ -854,7 +858,7 @@ affect alternative citing styles.
854@vindex mail-warn-if-non-rfc822-p (sc-) 858@vindex mail-warn-if-non-rfc822-p (sc-)
855All previously retrieved info key-value pairs are deleted from the info 859All previously retrieved info key-value pairs are deleted from the info
856alist, then the mail headers in the body of the yanked message are 860alist, then the mail headers in the body of the yanked message are
857scanned. Info key-value pairs are created for each header found. Also, 861scanned. Info key-value pairs are created for each header found. Also,
858such useful information as the author's name and email address are 862such useful information as the author's name and email address are
859extracted. If the variable @code{sc-mail-warn-if-non-rfc822-p} is 863extracted. If the variable @code{sc-mail-warn-if-non-rfc822-p} is
860non-@code{nil}, then Supercite will warn you if it finds a mail header 864non-@code{nil}, then Supercite will warn you if it finds a mail header
@@ -931,7 +935,7 @@ in the original message should be cited or not. If this variable is
931non-@code{nil}, blank lines will be cited just like non-blank lines. 935non-@code{nil}, blank lines will be cited just like non-blank lines.
932Otherwise, blank lines will be treated as paragraph separators. 936Otherwise, blank lines will be treated as paragraph separators.
933 937
934Citing of the original message is highly configurable. Supercite's 938Citing of the original message is highly configurable. Supercite's
935default setup does a pretty good job of citing many common forms of 939default setup does a pretty good job of citing many common forms of
936previously cited messages. But there are as many citation styles out 940previously cited messages. But there are as many citation styles out
937there as people on the net, or just about! It would be impossible for 941there as people on the net, or just about! It would be impossible for
@@ -945,8 +949,8 @@ recognize those styles you see often.
945@vindex sc-post-hook 949@vindex sc-post-hook
946@vindex post-hook (sc-) 950@vindex post-hook (sc-)
947This variable is very similar to @code{sc-pre-hook}, except that it runs 951This variable is very similar to @code{sc-pre-hook}, except that it runs
948after @code{sc-cite-original} is finished. This hook is provided mostly 952after @code{sc-cite-original} is finished. This hook is provided mostly
949for completeness and backward compatibility. Perhaps it could be used to 953for completeness and backward compatibility. Perhaps it could be used to
950reset certain variables set in @code{sc-pre-hook}.@refill 954reset certain variables set in @code{sc-pre-hook}.@refill
951@end enumerate 955@end enumerate
952 956
@@ -1012,7 +1016,7 @@ both of these variables is provided on the key binding
1012@pxref{Post-yank Formatting Commands}).@refill 1016@pxref{Post-yank Formatting Commands}).@refill
1013 1017
1014You will noticed that the minor mode string will 1018You will noticed that the minor mode string will
1015show the state of these variables as qualifier characters. When both 1019show the state of these variables as qualifier characters. When both
1016variables are @code{nil}, the Supercite minor mode string will display 1020variables are @code{nil}, the Supercite minor mode string will display
1017@samp{SC}. When just @code{sc-auto-fill-region-p} is non-@code{nil}, the 1021@samp{SC}. When just @code{sc-auto-fill-region-p} is non-@code{nil}, the
1018string will display @samp{SC:f}, and when just 1022string will display @samp{SC:f}, and when just
@@ -1036,11 +1040,11 @@ fill cited text.
1036@vindex preferred-attribution-list (sc-) 1040@vindex preferred-attribution-list (sc-)
1037 1041
1038As you know, the attribution string is the part of the author's name 1042As you know, the attribution string is the part of the author's name
1039that will be used to composed a non-nested citation string. Supercite 1043that will be used to composed a non-nested citation string. Supercite
1040scans the various mail headers present in the original article and uses 1044scans the various mail headers present in the original article and uses
1041a number of heuristics to extract strings which it puts into the 1045a number of heuristics to extract strings which it puts into the
1042@dfn{attribution association list} or @dfn{attribution alist}. This is 1046@dfn{attribution association list} or @dfn{attribution alist}. This is
1043analogous, but different than, the info alist previously mentioned. Each 1047analogous, but different than, the info alist previously mentioned. Each
1044element in the attribution alist is a key-value pair containing such 1048element in the attribution alist is a key-value pair containing such
1045information as the author's first name, middle names, and last name, the 1049information as the author's first name, middle names, and last name, the
1046author's initials, and the author's email terminus. 1050author's initials, and the author's email terminus.
@@ -1083,7 +1087,7 @@ the author's last name.
1083the author's first middle name. 1087the author's first middle name.
1084 1088
1085@item "sc-lastchoice" 1089@item "sc-lastchoice"
1086the last attribution string you have selected. This is useful when you 1090the last attribution string you have selected. This is useful when you
1087recite paragraphs in the reply.@refill 1091recite paragraphs in the reply.@refill
1088 1092
1089@item "sc-consult" 1093@item "sc-consult"
@@ -1094,7 +1098,7 @@ be used to select special attributions based on the value of any info
1094key. See below for details. 1098key. See below for details.
1095 1099
1096@item "x-attribution" 1100@item "x-attribution"
1097the original author's suggestion for attribution string choice. See below 1101the original author's suggestion for attribution string choice. See below
1098for details.@refill 1102for details.@refill
1099@end table 1103@end table
1100 1104
@@ -1141,7 +1145,7 @@ Each element in this list contains lists of the following form:
1141@findex sc-mail-field 1145@findex sc-mail-field
1142@findex mail-field (sc-) 1146@findex mail-field (sc-)
1143where @var{infokey} is a key for @code{sc-mail-field} and @var{regexp} 1147where @var{infokey} is a key for @code{sc-mail-field} and @var{regexp}
1144is a regular expression to match against the @var{infokey}'s value. If 1148is a regular expression to match against the @var{infokey}'s value. If
1145@var{regexp} matches the @var{infokey}'s value, the @var{attribution} is 1149@var{regexp} matches the @var{infokey}'s value, the @var{attribution} is
1146used as the attribution string. Actually, @var{attribution} can be a 1150used as the attribution string. Actually, @var{attribution} can be a
1147string or a list; if it is a list, it is @code{eval}uated and the return 1151string or a list; if it is a list, it is @code{eval}uated and the return
@@ -1166,7 +1170,7 @@ The fallback author name is contained in the variable
1166@code{sc-default-author-name} and the fallback attribution string is 1170@code{sc-default-author-name} and the fallback attribution string is
1167contained in the variable @code{sc-default-attribution}. Default values 1171contained in the variable @code{sc-default-attribution}. Default values
1168for these variables are @code{"Anonymous"} and @code{"Anon"}, 1172for these variables are @code{"Anonymous"} and @code{"Anon"},
1169respectively. Note that in most circumstances, getting the default 1173respectively. Note that in most circumstances, getting the default
1170author name or attribution is a sign that something is set up 1174author name or attribution is a sign that something is set up
1171incorrectly. 1175incorrectly.
1172 1176
@@ -1174,7 +1178,7 @@ incorrectly.
1174@vindex use-only-preference-p (sc-) 1178@vindex use-only-preference-p (sc-)
1175Also, if the preferred attribution, which you specified in your 1179Also, if the preferred attribution, which you specified in your
1176@code{sc-preferred-attribution-list} variable cannot be found, a 1180@code{sc-preferred-attribution-list} variable cannot be found, a
1177secondary method can be employed to find a valid attribution string. The 1181secondary method can be employed to find a valid attribution string. The
1178variable @code{sc-use-only-preference-p} controls what happens in this 1182variable @code{sc-use-only-preference-p} controls what happens in this
1179case. If the variable's value is non-@code{nil}, then 1183case. If the variable's value is non-@code{nil}, then
1180@code{sc-default-author-name} and @code{sc-default-attribution} are 1184@code{sc-default-author-name} and @code{sc-default-attribution} are
@@ -1209,11 +1213,11 @@ attribution alist.
1209@vindex sc-confirm-always-p 1213@vindex sc-confirm-always-p
1210@vindex confirm-always-p (sc-) 1214@vindex confirm-always-p (sc-)
1211Once the attribution string has been automatically selected, a number of 1215Once the attribution string has been automatically selected, a number of
1212things can happen. If the variable @code{sc-confirm-always-p} is 1216things can happen. If the variable @code{sc-confirm-always-p} is
1213non-@code{nil}, you are queried for confirmation of the chosen 1217non-@code{nil}, you are queried for confirmation of the chosen
1214attribution string. The possible values for completion are those strings 1218attribution string. The possible values for completion are those strings
1215in the attribution alist, however you are not limited to these choices. 1219in the attribution alist, however you are not limited to these choices.
1216You can type any arbitrary string at the confirmation prompt. The string 1220You can type any arbitrary string at the confirmation prompt. The string
1217you enter becomes the value associated with the @code{"sc-lastchoice"} 1221you enter becomes the value associated with the @code{"sc-lastchoice"}
1218key in the attribution alist. 1222key in the attribution alist.
1219 1223
@@ -1279,7 +1283,7 @@ author's name proper. Examples include the titles ``Dr.'', ``Mr.'',
1279Also, some companies prepend or append the name of the division, 1283Also, some companies prepend or append the name of the division,
1280organization, or project on the author's name. All of these titles are 1284organization, or project on the author's name. All of these titles are
1281noise which should be ignored. The variable @code{sc-name-filter-alist} 1285noise which should be ignored. The variable @code{sc-name-filter-alist}
1282is used for this purpose. As implied by its name, this variable is an 1286is used for this purpose. As implied by its name, this variable is an
1283association list, where each element is a cons cell of the form: 1287association list, where each element is a cons cell of the form:
1284 1288
1285@example 1289@example
@@ -1290,7 +1294,7 @@ association list, where each element is a cons cell of the form:
1290where @var{regexp} is a regular expression that is matched (using 1294where @var{regexp} is a regular expression that is matched (using
1291@code{string-match}) against each element of the @samp{From:@:} field's 1295@code{string-match}) against each element of the @samp{From:@:} field's
1292author name. @var{position} is a position indicator, starting at zero. 1296author name. @var{position} is a position indicator, starting at zero.
1293Thus to strip out all titles of ``Dr.'', ``Mr.'', etc. from the name, 1297Thus to strip out all titles of ``Dr.'', ``Mr.'', etc. from the name,
1294@code{sc-name-filter-alist} would have an entry such as: 1298@code{sc-name-filter-alist} would have an entry such as:
1295 1299
1296@example 1300@example
@@ -1380,10 +1384,10 @@ The four special symbol values for @var{pred} are recognized:
1380@item t 1384@item t
1381Always produces a true outcome. 1385Always produces a true outcome.
1382@item begin 1386@item begin
1383Always executed before the frame is interpreted. This can be used to 1387Always executed before the frame is interpreted. This can be used to
1384initialize some global variables for example. 1388initialize some global variables for example.
1385@item end 1389@item end
1386Always executed after frame interpreting is completed. This can be used 1390Always executed after frame interpreting is completed. This can be used
1387to perform any necessary post-processing. 1391to perform any necessary post-processing.
1388@item every 1392@item every
1389Executes whenever the frame is reset, usually after the entire frame has 1393Executes whenever the frame is reset, usually after the entire frame has
@@ -1406,12 +1410,12 @@ of the following elements:@refill
1406@table @asis 1410@table @asis
1407@item the symbol @code{continue} 1411@item the symbol @code{continue}
1408This tells Regi to continue processing entries after a match, instead of 1412This tells Regi to continue processing entries after a match, instead of
1409resetting the frame and moving @samp{point}. In this way, lines of text 1413resetting the frame and moving @samp{point}. In this way, lines of text
1410can have multiple matches, but you have to be careful to avoid entering 1414can have multiple matches, but you have to be careful to avoid entering
1411infinite loops. 1415infinite loops.
1412 1416
1413@item the symbol @code{abort} 1417@item the symbol @code{abort}
1414This tells Regi to terminate frame processing. However, any @code{end} 1418This tells Regi to terminate frame processing. However, any @code{end}
1415entry is still processed. 1419entry is still processed.
1416 1420
1417@item the list @code{(frame . @var{newframe})} 1421@item the list @code{(frame . @var{newframe})}
@@ -1422,7 +1426,7 @@ can be the frame in-lined.@refill
1422 1426
1423@item the list @code{(step . @var{step})} 1427@item the list @code{(step . @var{step})}
1424Tells Regi to move @var{step} number of lines forward as it continues 1428Tells Regi to move @var{step} number of lines forward as it continues
1425processing. By default, Regi moves forward one line. @var{step} can be 1429processing. By default, Regi moves forward one line. @var{step} can be
1426zero or negative of course, but watch out for infinite loops.@refill 1430zero or negative of course, but watch out for infinite loops.@refill
1427@end table 1431@end table
1428 1432
@@ -1510,12 +1514,12 @@ is not found from the alist, then the appropriate default frame is used.
1510 1514
1511Once the original message has been yanked into the reply buffer, and 1515Once the original message has been yanked into the reply buffer, and
1512@code{sc-cite-original} has had a chance to do its thing, a number of 1516@code{sc-cite-original} has had a chance to do its thing, a number of
1513useful Supercite commands will be available to you. Since there is wide 1517useful Supercite commands will be available to you. Since there is wide
1514variety in the keymaps that MUAs set up in their reply buffers, it is 1518variety in the keymaps that MUAs set up in their reply buffers, it is
1515next to impossible for Supercite to properly sprinkle its commands into 1519next to impossible for Supercite to properly sprinkle its commands into
1516the existing keymap. For this reason Supercite places its commands on a 1520the existing keymap. For this reason Supercite places its commands on a
1517separate keymap, putting this keymap onto a prefix key in the reply 1521separate keymap, putting this keymap onto a prefix key in the reply
1518buffer. You can customize the prefix key Supercite uses by changing the 1522buffer. You can customize the prefix key Supercite uses by changing the
1519variable @code{sc-mode-map-prefix}. By default, the 1523variable @code{sc-mode-map-prefix}. By default, the
1520@code{sc-mode-map-prefix} is @kbd{C-c C-p}; granted, not a great choice, 1524@code{sc-mode-map-prefix} is @kbd{C-c C-p}; granted, not a great choice,
1521but unfortunately the best general solution so far. In the rest of this 1525but unfortunately the best general solution so far. In the rest of this
@@ -1536,7 +1540,7 @@ prefix.@refill
1536 1540
1537Probably the three most common post-yank formatting operations that you 1541Probably the three most common post-yank formatting operations that you
1538will perform will be the manual citing, reciting, and unciting of 1542will perform will be the manual citing, reciting, and unciting of
1539regions of text in the reply buffer. Often you may want to recite a 1543regions of text in the reply buffer. Often you may want to recite a
1540paragraph to use a nickname, or manually cite a message when setting 1544paragraph to use a nickname, or manually cite a message when setting
1541@code{sc-cite-region-limit} to @code{nil}. The following commands 1545@code{sc-cite-region-limit} to @code{nil}. The following commands
1542perform these functions on the region of text between @samp{point} and 1546perform these functions on the region of text between @samp{point} and
@@ -1582,7 +1586,7 @@ cited line in the region by interpreting the selected frame from
1582@item @code{sc-recite-region} (@kbd{C-c C-p r}) 1586@item @code{sc-recite-region} (@kbd{C-c C-p r})
1583This command recites each line the region by interpreting the selected 1587This command recites each line the region by interpreting the selected
1584frame from @code{sc-recite-frame-alist}, or the default reciting frame 1588frame from @code{sc-recite-frame-alist}, or the default reciting frame
1585@code{sc-default-recite-frame}. It runs the hook 1589@code{sc-default-recite-frame}. It runs the hook
1586@code{sc-pre-recite-hook} before interpreting the frame. 1590@code{sc-pre-recite-hook} before interpreting the frame.
1587@xref{Configuring the Citation Engine}.@refill 1591@xref{Configuring the Citation Engine}.@refill
1588 1592
@@ -1606,7 +1610,7 @@ These two functions insert various strings into the reply buffer.
1606@vindex preferred-header-style (sc-) 1610@vindex preferred-header-style (sc-)
1607Inserts a reference header into the reply buffer at @samp{point}. With 1611Inserts a reference header into the reply buffer at @samp{point}. With
1608no arguments, the header indexed by @code{sc-preferred-header-style} is 1612no arguments, the header indexed by @code{sc-preferred-header-style} is
1609inserted. An optional numeric argument is the index into 1613inserted. An optional numeric argument is the index into
1610@code{sc-rewrite-header-list} indicating which reference header to 1614@code{sc-rewrite-header-list} indicating which reference header to
1611write.@refill 1615write.@refill
1612 1616
@@ -1719,7 +1723,7 @@ Allows you to interactively view, modify, add, and delete info alist
1719key-value pairs. With no argument, you are prompted (with completion) 1723key-value pairs. With no argument, you are prompted (with completion)
1720for a info key. The value associated with that key is displayed in the 1724for a info key. The value associated with that key is displayed in the
1721minibuffer. With an argument, this command will first ask if you want 1725minibuffer. With an argument, this command will first ask if you want
1722to view, modify, add, or delete an info key. Viewing is identical to 1726to view, modify, add, or delete an info key. Viewing is identical to
1723running the command with no arguments. 1727running the command with no arguments.
1724 1728
1725If you want to modify the value of a key, Supercite will first prompt 1729If you want to modify the value of a key, Supercite will first prompt
@@ -1770,7 +1774,7 @@ an optional numeric argument inserts that many new lines.@refill
1770@chapter Hints to MUA Authors 1774@chapter Hints to MUA Authors
1771 1775
1772In June of 1989, some discussion was held between the various MUA 1776In June of 1989, some discussion was held between the various MUA
1773authors, the Supercite author, and other Supercite users. These 1777authors, the Supercite author, and other Supercite users. These
1774discussions centered around the need for a standard interface between 1778discussions centered around the need for a standard interface between
1775MUAs and Supercite (or any future Supercite-like packages). This 1779MUAs and Supercite (or any future Supercite-like packages). This
1776interface was formally proposed by Martin Neitzel on Fri, 23 Jun 89, in 1780interface was formally proposed by Martin Neitzel on Fri, 23 Jun 89, in
@@ -1810,14 +1814,14 @@ some default citing when that is the case.@refill
1810 1814
1811If you are writing a new MUA package, or maintaining an existing MUA 1815If you are writing a new MUA package, or maintaining an existing MUA
1812package, you should make it conform to this interface so that your users 1816package, you should make it conform to this interface so that your users
1813will be able to link Supercite easily and seamlessly. To do this, when 1817will be able to link Supercite easily and seamlessly. To do this, when
1814setting up a reply or forward buffer, your MUA should follow these 1818setting up a reply or forward buffer, your MUA should follow these
1815steps: 1819steps:
1816 1820
1817@enumerate 1821@enumerate
1818@item 1822@item
1819Insert the original message, including the mail headers into the reply 1823Insert the original message, including the mail headers into the reply
1820buffer. At this point you should not modify the raw text in any way 1824buffer. At this point you should not modify the raw text in any way
1821(except for any necessary decoding, e.g., of quoted-printable text), and 1825(except for any necessary decoding, e.g., of quoted-printable text), and
1822you should place all the original headers into the body of the reply. 1826you should place all the original headers into the body of the reply.
1823This means that many of the mail headers will be duplicated, one copy 1827This means that many of the mail headers will be duplicated, one copy
@@ -1826,7 +1830,7 @@ there will probably be more headers below this line.@refill
1826 1830
1827@item 1831@item
1828Set @samp{point} to the beginning of the line containing the first mail 1832Set @samp{point} to the beginning of the line containing the first mail
1829header in the body of the reply. Set @samp{mark} at the end of the 1833header in the body of the reply. Set @samp{mark} at the end of the
1830message text. It is very important that the region be set around the 1834message text. It is very important that the region be set around the
1831text Supercite is to modify and that the mail headers are within this 1835text Supercite is to modify and that the mail headers are within this
1832region. Supercite will not venture outside the region for any reason, 1836region. Supercite will not venture outside the region for any reason,
@@ -1834,7 +1838,7 @@ and anything within the region is fair game, so don't put anything that
1834@strong{must} remain unchanged inside the region.@refill 1838@strong{must} remain unchanged inside the region.@refill
1835 1839
1836@item 1840@item
1837Run the hook @code{mail-citation-hook}. You will probably want to 1841Run the hook @code{mail-citation-hook}. You will probably want to
1838provide some kind of default citation functions in cases where the user 1842provide some kind of default citation functions in cases where the user
1839does not have Supercite installed. By default, your MUA should 1843does not have Supercite installed. By default, your MUA should
1840@code{defvar} @code{mail-citation-hook} to @code{nil}, and in your 1844@code{defvar} @code{mail-citation-hook} to @code{nil}, and in your
@@ -1853,9 +1857,9 @@ this interface ``out of the box.''
1853 1857
1854The Supercite package was derived from its predecessor Superyank 1.11 1858The Supercite package was derived from its predecessor Superyank 1.11
1855which was inspired by various bits of code and ideas from Martin Neitzel 1859which was inspired by various bits of code and ideas from Martin Neitzel
1856and Ashwin Ram. They were the folks who came up with the idea of 1860and Ashwin Ram. They were the folks who came up with the idea of
1857non-nested citations and implemented some rough code to provide this 1861non-nested citations and implemented some rough code to provide this
1858style. Superyank and Supercite version 2 evolved to the point where much 1862style. Superyank and Supercite version 2 evolved to the point where much
1859of the attribution selection mechanism was automatic, and features have 1863of the attribution selection mechanism was automatic, and features have
1860been continuously added through the comments and suggestions of the 1864been continuously added through the comments and suggestions of the
1861Supercite mailing list participants. 1865Supercite mailing list participants.
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex
index 3427d2ad0e3..9ba8c949fd1 100644
--- a/doc/misc/texinfo.tex
+++ b/doc/misc/texinfo.tex
@@ -3,7 +3,7 @@
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{2013-06-23.10} 6\def\texinfoversion{2013-08-20.10}
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,
@@ -281,9 +281,9 @@
281 \toks6=\expandafter{\prevsectiondefs}% 281 \toks6=\expandafter{\prevsectiondefs}%
282 \toks8=\expandafter{\lastcolordefs}% 282 \toks8=\expandafter{\lastcolordefs}%
283 \mark{% 283 \mark{%
284 \the\toks0 \the\toks2 284 \the\toks0 \the\toks2 % 0: top marks (\last...)
285 \noexpand\or \the\toks4 \the\toks6 285 \noexpand\or \the\toks4 \the\toks6 % 1: bottom marks (default, \prev...)
286 \noexpand\else \the\toks8 286 \noexpand\else \the\toks8 % 2: color marks
287 }% 287 }%
288} 288}
289% \topmark doesn't work for the very first chapter (after the title 289% \topmark doesn't work for the very first chapter (after the title
@@ -2377,8 +2377,10 @@ end
2377 \ifx\next,% 2377 \ifx\next,%
2378 \else\ifx\next-% 2378 \else\ifx\next-%
2379 \else\ifx\next.% 2379 \else\ifx\next.%
2380 \else\ifx\next\.%
2381 \else\ifx\next\comma%
2380 \else\ptexslash 2382 \else\ptexslash
2381 \fi\fi\fi 2383 \fi\fi\fi\fi\fi
2382 \aftersmartic 2384 \aftersmartic
2383} 2385}
2384 2386
@@ -2519,7 +2521,9 @@ end
2519 \ifx\codedashprev\codedash 2521 \ifx\codedashprev\codedash
2520 \else \discretionary{}{}{}\fi 2522 \else \discretionary{}{}{}\fi
2521 \fi 2523 \fi
2522 \global\let\codedashprev=\next 2524 % we need the space after the = for the case when \next itself is a
2525 % space token; it would get swallowed otherwise. As in @code{- a}.
2526 \global\let\codedashprev= \next
2523 } 2527 }
2524} 2528}
2525\def\normaldash{-} 2529\def\normaldash{-}
@@ -5905,7 +5909,7 @@ end
5905 % 5909 %
5906 % Now the second mark, after the heading break. No break points 5910 % Now the second mark, after the heading break. No break points
5907 % between here and the heading. 5911 % between here and the heading.
5908 \let\prevsectiondefs=\lastsectiondefs 5912 \global\let\prevsectiondefs=\lastsectiondefs
5909 \domark 5913 \domark
5910 % 5914 %
5911 % Only insert the space after the number if we have a section number. 5915 % Only insert the space after the number if we have a section number.
diff --git a/doc/misc/todo-mode.texi b/doc/misc/todo-mode.texi
new file mode 100644
index 00000000000..a622298ba12
--- /dev/null
+++ b/doc/misc/todo-mode.texi
@@ -0,0 +1,1760 @@
1\input texinfo.tex @c -*-texinfo-*-
2@c %**start of header
3@setfilename ../../info/todo-mode
4@settitle Todo Mode User Manual
5@syncodeindex fn cp
6@syncodeindex vr cp
7@syncodeindex ky cp
8@c %**end of header
9
10@copying
11Copyright @copyright{} 2013 Free Software Foundation, Inc.
12
13@quotation
14Permission is granted to copy, distribute and/or modify this document
15under the terms of the GNU Free Documentation License, Version 1.3 or
16any later version published by the Free Software Foundation; with no
17Invariant Sections, with the Front-Cover texts being ``A GNU Manual'',
18and with the Back-Cover Texts as in (a) below. A copy of the license
19is included in the section entitled ``GNU Free Documentation License''.
20
21(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
22modify this GNU manual.''
23@end quotation
24@end copying
25
26@dircategory Emacs misc features
27@direntry
28* Todo Mode: (todo-mode). Make and maintain todo lists.
29@end direntry
30
31@titlepage
32@title Todo Mode User Manual
33@subtitle Facilities for making and maintaining todo lists.
34
35@author Stephen Berman
36@page
37
38@vskip 0pt plus 1filll
39@insertcopying
40@end titlepage
41
42@contents
43
44@ifnottex
45
46@node Top
47@top Todo Mode User Manual
48
49This manual describes the version of Todo mode first appearing in
50Emacs 24.4.
51
52@insertcopying
53@end ifnottex
54
55@menu
56* Overview::
57* Todo Mode Entry Points::
58* Key Binding Conventions::
59* Navigation:: Moving within and between categories.
60* Editing:: Adding, deleting and changing todo
61 files, categories and items.
62* Todo Archives:: Files of done todo items.
63* Marked Items:: Acting on multiple items simultaneously.
64* Todo Categories Mode:: Table of categories and item counts.
65* Searching for Items::
66* Todo Filtered Items Mode:: Making virtual categories of items from
67 different categories and files.
68* Todo Display Features::
69* Printing Todo Buffers::
70* Legacy Todo Mode Files:: Converting old-style todo files.
71
72* GNU Free Documentation License::
73
74@detailmenu
75--- The Detailed Node Listing ---
76
77Overview
78
79* Levels of Organization::
80* Todo Items as Diary Entries::
81
82Editing
83
84* File Editing::
85* Category Editing::
86* Item Editing::
87
88Item Editing
89
90* Inserting New Items::
91* Editing Item Headers and Text::
92* Relocating and Removing Items::
93
94Relocating and Removing Items
95
96* Reprioritizing Items::
97* Moving and Deleting Items::
98* Done Items::
99
100Todo Archives
101
102* Creating and Visiting Archives::
103* Todo Archive Mode::
104
105Todo Categories Mode
106
107* Table of Item Counts::
108* Reordering Categories::
109
110Todo Filtered Items Mode
111
112* Filtering Items::
113* Todo Filtered Items Mode Commands::
114* Files of Filtered Items::
115
116Todo Display Features
117
118* Faces::
119* Item Prefix::
120* Other Display Commands and Options::
121@end detailmenu
122@end menu
123
124@node Overview, Todo Mode Entry Points, Top, Top
125@chapter Overview
126
127The Todo mode package provides facilities for making and maintaining
128todo lists. A todo list is a list of todo items---things to do (in the
129widest sense)---arranged in order of priority, with the highest priority
130item at the top of the list and the lowest priority item at the bottom.
131
132This manual describes the Todo mode user interface. Todo mode comprises
133a large number of commands and user options for creating, displaying,
134navigating and editing todo lists, distributed across five major modes.
135The principle major mode is Todo mode; the other four (Todo Edit mode,
136Todo Archive mode, Todo Categories mode, and Todo Filtered Items mode)
137are subsidiary to and accessible from Todo mode.
138
139This version of Todo mode greatly expands on, and in significant ways
140differs from, the original version; for details and consequences of the
141most important differences, @ref{Legacy Todo Mode Files}.
142
143@menu
144* Levels of Organization::
145* Todo Items as Diary Entries::
146@end menu
147
148@node Levels of Organization, Todo Items as Diary Entries, , Overview
149@section Levels of Organization
150
151In Todo mode each todo list is identified with a named category, so you
152can group together thematically related todo items. Each category is
153stored in a file, which thus provides a further level of organization.
154You can create as many todo files, and in each as many categories, as
155you want.
156
157All todo files reside in a single directory, whose location is specified
158by the user option @code{todo-directory}. This directory may also
159contain other types of Todo files, which are discussed later
160(@pxref{Todo Archive Mode} and @ref{Todo Filtered Items Mode}). Emacs
161recognizes Todo files by their extension, so when you visit the files
162the buffer is in the appropriate mode and the current category is
163correctly displayed.
164
165When you use a Todo mode command to create a todo file, the extension
166@samp{.todo} is automatically added to the base name you choose (as a
167rule, this name is also used for the other types of Todo files, which
168have their own extensions). As a user, you only have to deal with the
169base name of a Todo file.
170
171When you create a new todo file, you must also add at least one category
172to it, and each todo item belongs to a category. It is not possible to
173have an uncategorized todo list, but you can always make a catch-all
174category with a generic name like ``Todo'', which is in fact the default
175name assigned to the first category when you create a new todo file, if
176you don't provide a different name; you can change the default by
177customizing @code{todo-initial-category}.
178
179The most basic level of organization is the todo item itself, since it
180contains the information about what you want to do. As detailed in
181subsequent sections of this manual, most Todo mode commands and user
182options concern ways of classifying and deploying this information by
183associating various kinds of metadata with it, e.g., the category it
184belongs to, its priority, whether it is to be included in the Emacs
185diary, date and time stamps, whether it is done or still to do.
186
187@node Todo Items as Diary Entries, , Levels of Organization, Overview
188@section Todo Items as Diary Entries
189
190Each todo item is also a potential diary item: if you include a todo
191file in the Emacs diary file (@pxref{Fancy Diary Display,,, emacs}), the
192Fancy Diary display will show those todo items that are not marked with
193@code{todo-nondiary-marker}. This effectively augments the Emacs diary
194with categorized diary entries. For the various options available for
195making a todo item a diary entry, see @ref{Inserting New Items} and
196@ref{Editing Item Headers and Text}.
197
198To ensure the proper display of todo items in the Fancy Diary display,
199they must have the format of diary entries, i.e., they have to begin
200with a date string recognized by the Emacs diary,@footnote{Two types of
201dates recognized by the Emacs diary are not supported in the current
202Todo mode implementation: sexp diary entries and date strings in which
203the year is omitted (however, the latter type is equivalent to using
204@samp{*} for an arbitrary year, which Todo mode does support).} and if
205they are longer than one line, all lines but the first must begin with
206white space. Todo mode ensures that these requirements are satisfied
207(@pxref{Other Display Commands and Options}).
208
209The Fancy Diary display is also Todo mode aware: if it contains an item
210from a Todo mode file, clicking or typing @key{RET} on this item will
211switch to the buffer visiting that file and properly display the item's
212category, with point on the item.
213
214@node Todo Mode Entry Points, Key Binding Conventions, Overview, Top
215@chapter Todo Mode Entry Points
216
217To initialize your first todo file, invoke the command @code{todo-show}.
218This prompts you for a file name (defaulting to the value of
219@code{todo-initial-file}), prompts you for the name of the first
220category (defaulting to the value of @code{todo-initial-category}),
221creates and visits the file and displays the category in Todo mode, and
222then prompts you to enter the first item. If you choose not to enter an
223item now, simply type @kbd{C-g}, which leaves the category empty but
224otherwise well-formed. If you prefer not to be prompted to enter an
225item on adding a new category, disable the option
226@code{todo-add-item-if-new-category}.
227
228Once at least one todo file exists, invoking @code{todo-show} enters
229Todo mode. Invoked with a prefix argument, the command prompts for
230which todo file to visit. Otherwise, the first invocation of this
231command after loading the Todo mode package visits the default todo file
232(option @code{todo-default-todo-file}) and shows its first category.
233(You can get a different display with the first invocation of
234@code{todo-show} by customizing the option @code{todo-show-first};
235@pxref{Todo Categories Mode} and @ref{Files of Filtered Items}.)
236
237If you leave Todo mode and later invoke @code{todo-show} to re-enter it,
238by default this returns you to the current (i.e., last displayed)
239category of the current todo file, which is the one in the most recently
240selected and still live buffer visiting a todo file. If you disable the
241option @code{todo-show-current-file}, then non-initial invocations of
242@code{todo-show} always return to the first or current category of the
243default todo file.
244
245If you want to enter Todo mode and go directly to a specific category
246instead the first or current category in the current or default todo
247file, use the command @code{todo-jump-to-category}; @ref{Navigation}, for
248details. You can also enter Todo mode by invoking a todo item insertion
249command; @ref{Inserting New Items}, for details.
250
251The most convenient way to use these commands to enter Todo mode is to
252define global key bindings for them in your init file. Good choices are
253for @code{todo-show} and @code{todo-jump-to-category} are @kbd{C-c t}
254and @kbd{C-c j}, since these commands are bound to @kbd{t} and @kbd{j},
255respectively, in Todo mode. For invoking item insertion from outside of
256Todo mode, it is useful to bind @code{todo-insertion-map}, which is the
257key map containing the bindings of all Todo item insertion commands, to
258@kbd{C-c i}, since it is bound to @kbd{i} in Todo mode; to complete the
259invocation, supply the rest of the key sequence (@pxref{Inserting New
260Items}).
261
262You can also visit a Todo file via @code{find-file} or Dired, like any
263other file, and since Emacs recognizes it, the buffer will automatically
264be in the appropriate Todo mode. Moreover, as long as the command you
265use to visit the file is listed in the option
266@code{todo-visit-files-commands} (which by default contains
267@code{find-file} and @code{dired-find-file}), it will also correctly
268display the file's first category on first visiting the file (otherwise
269you have to use one of the commands for navigating between categories in
270order to get a proper display).
271
272You can leave Todo mode by typing @kbd{q} (@code{todo-quit}), which
273buries the current todo file buffer. Doing this also saves any changes
274you have made to the file, and leaves both the file and the category
275that was displayed on quitting current for subsequent Todo mode commands
276(unless the buffer made current by quitting is visiting another file and
277category in Todo mode, in which case the latter become current for Todo
278mode commands).
279
280@node Key Binding Conventions, Navigation, Todo Mode Entry Points, Top
281@chapter Key Binding Conventions
282
283For Todo mode commands to function properly, it is essential to maintain
284the correct format at all three levels of organization---item, category,
285and file. Todo mode tries to minimize the risk of format corruption by
286hiding certain parts of the format from the user, making the buffer
287read-only and suppressing the self-insertion keys. Consequently, it is
288normally impossible to make changes to your todo files without
289explicitly invoking Todo mode commands.
290
291A beneficial side effect of this restrictiveness is that you can invoke
292almost all Todo commands by typing ordinary printing characters, either
293singly or in specified sequences, without using modifier keys, except
294for the shift key for capitalization and the raw prefix argument
295@kbd{C-u}; numeric prefix arguments can be entered just by typing a
296number key.
297
298The predefined key bindings in Todo are more or less mnemonic. As a
299rule, key sequences beginning with @kbd{C} are bound to commands
300applying to categories, sequences beginning with @kbd{F} apply to
301(non-archive) file-level commands, and those beginning with @kbd{A}
302apply to archives (a special type of Todo file; @ref{Todo Archive
303Mode}). Todo commands applying to items, which constitute the majority,
304are bound to lower case key sequences.
305
306@node Navigation, Editing, Key Binding Conventions, Top
307@chapter Navigation
308
309The navigation commands are for making another todo file, category, or
310item the current one by moving point to it.@footnote{Many editing
311commands can also do this by side effect, but since that is not their
312main function, they are not included in this section.} Since these
313commands are likely to be used frequently and repetitively, it is
314convenient for their key bindings to be single lower case keys, even for
315navigation commands applying to categories and files.
316
317Two of the navigation commands were already mentioned in the section on
318Todo mode entry points:
319
320@table @kbd
321
322@item t
323Display another todo file in the selected window (@code{todo-show}).
324When you invoke this command in Todo mode, it prompts for a file name,
325which you can choose via minibuffer completion (like invoking
326@code{todo-show} with a prefix argument outside of Todo mode). If a
327buffer is already visiting that file, it displays its current category;
328if invoking @kbd{t} opens the file, it display its first category (by
329default; see the option @code{todo-show-first} for other possibilities).
330
331@item j
332Display another todo category in the selected window
333(@code{todo-jump-to-category}). When you invoke this command, it
334prompts for a category name, which you can choose via minibuffer
335completion. The candidates for completion include the categories in the
336current todo file as well as those in the files listed in the option
337@code{todo-category-completions-files}. If you type @key{RET} without
338choosing a category, the current category of the current todo file is
339automatically selected (this can be a useful shortcut when you invoke
340@code{todo-jump-to-category} outside of Todo mode). If you type the
341name of a non-existing category, you can add this to the file as a new
342category and jump to it. If you invoke this command with a prefix
343argument, it first you prompts for which todo file to jump to (which you
344can also choose with minibuffer completion) and then for which category
345from that file; in this case, completion is only against the categories
346in the selected file.
347@end table
348
349It is also convenient to navigate back and forth sequentially between
350the categories of a single todo file. The categories of a todo file are
351numbered consecutively starting with @samp{1}.@footnote{A category's
352number is automatically assigned when the category is created: the
353category is appended to the end of the file, so its number is simply the
354highest until another category is added. There is no command in Todo
355mode to reorder the numbering of the categories in a todo file, but this
356is possible from the file's table of categories; @ref{Todo Categories
357Mode}.} The current category's number and name appear in the mode line.
358
359@table @kbd
360
361@item f
362Move point to the first item of the category numerically directly
363following the current category (@code{todo-forward-category}).
364
365@item b
366Move point to the first item of the category numerically directly
367preceding the current category (@code{todo-backward-category}).
368@end table
369
370With @kbd{f} and @kbd{b} you can cycle through the categories, so for example,
371if the last category is current and you type @kbd{f}, then the first
372category becomes current.
373
374You can also navigate between the items in the current category:
375
376@table @kbd
377
378@item n
379Move point down to the next item below the current one (i.e., to the
380item with the next lower priority) (@code{todo-next-item}).
381
382@item p
383Move point up to the item directly above the current one (i.e., to the
384item with the next higher priority) (@code{todo-previous-item}).
385@end table
386
387These commands also accept a positive numeric prefix argument; e.g.,
388typing @kbd{5 n} or @kbd{5 p} navigates in one step to the item five items lower
389or higher than the current one.
390
391Navigation to other types of Todo files is discussed in the relevant
392sections below.
393
394@node Editing, Todo Archives, Navigation, Top
395@chapter Editing
396
397Editing in Todo mode means making structural or textual changes at one
398of the levels of organization (file, category, or item). Structural
399editing includes adding, relocating and removing, textual editing includes
400renaming files or categories and changing an item's content or date, or
401adding certain kinds of marks or tags to items. To save changes you
402make to the current todo file, type @kbd{s} (@code{todo-save}). Changes
403are also saved on quitting Todo mode with @kbd{q}.
404
405@menu
406* File Editing::
407* Category Editing::
408* Item Editing::
409@end menu
410
411@node File Editing, Category Editing, , Editing
412@section File Editing and Todo Edit Mode
413
414There are four file-level editing commands:
415
416@table @kbd
417
418@item F a
419Add a new todo file (@code{todo-add-file}). This command prompts for a
420name and creates the file in @code{todo-directory}, adding the
421@samp{.todo} extension (so you should not include the extension in the
422name you enter). The command also prompts for the file's first category and, if
423option @code{todo-add-item-if-new-category} is enabled (the default),
424for that category's first item.
425
426@item F r
427Rename the current todo file (@code{todo-rename-file}). If called with
428a prefix argument, prompt for a todo file and rename it. If the todo
429file has an archive (@pxref{Todo Archive Mode}) or there are
430corresponding filtered items files (@pxref{Todo Filtered Items Mode}),
431this command renames these accordingly. If there are live buffers
432visiting any of these files, the command also rename them accordingly.
433
434@item F k
435Delete the current todo file (@code{todo-delete-file}).@footnote{The key
436binding of this command is mnemonic for ``kill'' to parallel the binding
437@kbd{k} for item deletion, since @kbd{d} is bound to another item
438editing command (@pxref{Done Items}).} If the todo file has an archive
439(@pxref{Todo Archive Mode}), prompt whether to delete that as well.
440This command also kill the buffers visiting the deleted files.
441
442@item F e
443This command (@code{todo-edit-file}) changes the buffer's major mode to
444Todo Edit mode. In this mode the entire file is visible, the buffer is
445writeable and you can use the self-insertion keys and standard Emacs
446editing commands to make changes. To return to Todo mode, type @kbd{C-x
447C-q} (@code{todo-edit-quit}).
448
449The command @kbd{F e} is not intended for normal editing of items and
450categories, as it circumvents the restrictions that Todo imposes to
451protect against file format corruption (i.e., all categories, not just
452the current one, and all internal formatting are exposed and editable).
453It is provided primarily as a convenience for two types of use cases
454that are likely to arise infrequently. One is to be able to use
455standard Emacs commands like @code{query-replace} to replace a piece of
456text that occurs in different categories throughout the file. The other
457use case is to recover from a mistake, such as accidentally deleting an
458item, since this cannot be undone in Todo mode.
459
460Using @kbd{C-x C-q} to quit Todo Edit mode provides a measure of safety,
461since it runs a file format check, signaling an error if the format has
462become invalid. However, this check cannot tell if the number of items
463changed, which could result in the file containing inconsistent
464information (see the cautionary note in @ref{Reordering Categories}, for
465more details). For this reason @kbd{F e} should be used with caution.
466@end table
467
468@node Category Editing, Item Editing, File Editing, Editing
469@section Category Editing
470
471The following commands are available for editing at the category level
472(for additional category-editing commands, which are extensions of item
473commands, @pxref{Editing Item Headers and Text}):
474
475@table @kbd
476
477@item C a
478Add a new category to the current todo file and make that category
479current (@code{todo-add-category}). If called with a prefix argument,
480prompt for a file name and add the new category to that file. This
481command is similar to using @kbd{j}, but it only accepts category names
482that are not the name of an existing category in the file.
483
484@item C r
485Rename the current category (@code{todo-rename-category}). If this
486category's file has an archive (@pxref{Todo Archive Mode}) with a
487corresponding category, rename the category there as well.
488
489@item C m
490Move the current category (with all its items) to another todo file
491(@code{todo-move-category}). If this category's file has an archive
492(@pxref{Todo Archive Mode}) with a corresponding category, this command
493also moves that category to the archive file corresponding to the moved
494to todo file; if there is no such archive file, the command creates it
495and adds the category.
496
497@item C k
498Delete the current category (@code{todo-delete-category}).@footnote{This
499binding is mnemonic for ``kill'' to parallel the binding @kbd{k} for
500item deletion, since @kbd{d} is bound to another item editing command
501(@pxref{Done Items}).} To delete a category that contains items, you
502have to confirm your intent; if the category is empty, deletion is
503immediate.
504
505@item C g
506Merge the items of one category into another category, delete the first
507category and make the second category current
508(@code{todo-merge-category}). If both the first and second categories
509also have archived items (@pxref{Todo Archive Mode}), merge the former
510to the latter. If only the first category has archived items, rename
511the archive category to the merged to category. Minibuffer completion
512of the name of the category merged to works as with the navigation
513command @kbd{j}, and as with that command, passing a prefix argument,
514i.e., typing @kbd{C-u C g}, prompts for a file and confines merging to a
515category in that file.
516@end table
517
518@node Item Editing, , Category Editing, Editing
519@section Item Editing
520
521Todo mode provides a wide variety of commands for adding and textually
522changing items, as well as for deleting and relocating items.
523
524@menu
525* Inserting New Items::
526* Editing Item Headers and Text::
527* Relocating and Removing Items::
528@end menu
529
530@node Inserting New Items, Editing Item Headers and Text, , Item Editing
531@subsection Inserting New Items
532
533There are many commands for adding new todo items. The command names
534contain the word ``insert'' instead of ``add'' and their key bindings are
535sequences beginning with @kbd{i}. The motivation for this terminology is
536that speaking of adding an item to a category suggests appending it to
537the top or bottom, whereas you can insert an item into the category
538anywhere, giving each new item any priority in the list.
539
540@table @kbd
541
542@item i i
543This is the basic command for inserting new items into a category
544(@code{todo-insert-item}). Called without a prefix argument, it prompts
545for the text of the item and its priority (a number between 1 and one
546more than the number of items already in the category), both of which
547you enter in the minibuffer, and inserts the item into the current
548category of the current todo file at the position in the list
549corresponding to the priority you chose. Called with one prefix
550argument, it also prompts for a category, and called with two prefix
551arguments, it prompts for both a file and a category from that file, and
552inserts the item accordingly. Category name completion works as with
553the navigation command @kbd{j}.
554@end table
555
556Each invocation of @kbd{i i} adds a header string to the item, which
557includes at least the current date in the same format used by
558@code{diary-insert-entry} (@pxref{Date Formats,,, emacs}). You can
559control what other information is included in the header by customizing
560the following options:
561
562@itemize @bullet
563
564@item
565@code{todo-always-add-time-string} is for including or omitting the
566current time. The time string is omitted by default.
567
568@item
569@code{todo-include-in-diary} is for specifying whether the item appears
570in the Fancy Diary display by adding or omitting
571@code{todo-nondiary-marker}. By default, new todo items are marked for
572exclusion from the diary.
573
574@item
575@code{todo-diary-nonmarking} is for adding or omitting
576@code{diary-nonmarking-symbol} to items displayed in the diary, to
577control whether they are marked in the calendar (@pxref{Format of Diary
578File,,, emacs}). By default, todo items that are diary entries are
579marked in the calendar.
580@end itemize
581
582Instead of always adding the same header information to a new item, you
583can use more specific insertion commands that let you decide what to
584include in the item header each time you insert a new item. And instead
585of always being prompted to choose the new item's priority, you can
586invoke a command to insert it at the position (hence with the priority)
587of the item at point. Finally, instead of always typing the text of the
588new item in the minibuffer, you can invoke a command that makes the
589selected region in an Emacs buffer automatically become the new item's
590text. The following paragraphs discuss how to invoke these commands by
591typing certain key sequences.
592
593There are eight parameters of item insertion in Todo mode, six
594concerning the item header, and one each concerning its priority and its
595text. Each unique combination of these parameters produces a different
596insertion command. The command @kbd{i i} realizes one of these
597combinations. For the commands that realize the remaining combinations
598it is convenient to associate each parameter with a mnemonically chosen
599key. Then by typing certain sequences of these keys, you complete the
600insertion command invocation that realizes the specified combination.
601As with @kbd{i i}, the effect of many of these commands also depends on
602the values of the item insertion options mentioned above (see the
603examples below).
604
605Here is a list of the parameters and their associated keys, in the order
606in which you must type them when building a key sequence (this order
607roughly reflects the order in which the corresponding parts of the item
608occur in a category listing):
609
610@enumerate
611
612@item
613@kbd{y} for diary (non)inclusion;
614@item
615@kbd{k} for adding or omitting `diary-nonmarking-symbol';
616@item
617@kbd{c} for adding the date header by clicking a date in the Emacs
618calendar, or@*
619@kbd{d} for interactively entering the date header as a string of year,
620month and day number components in the minibuffer, or@*
621@kbd{n} for interactively entering the date header as a weekday name in
622the minibuffer;
623@item
624@kbd{t} for adding a time string to the header in the minibuffer
625(including the empty string, which amounts to omitting the time);
626@item
627@kbd{h} for inserting the new item in the position of the item at point
628(``here''), or@*
629@kbd{r} to use the text of the selected region as the item's text.
630@end enumerate
631
632Each insertion command key sequence begins (disregarding prefix
633arguments) with @kbd{i}, followed by one or more of these eight keys, in
634the order listed. But as you can see in the above table, since some of
635the insertion parameters are mutually exclusive, they occupy only five
636positions, so the complete (unprefixed) sequences are maximally six keys
637long. Shorter sequences are also possible, since a parameter may be
638omitted. But since the order in any key sequence is fixed, if the last
639key in the sequence could be followed by another insertion key, i.e., if
640the last key is not @kbd{h} or @kbd{r}, it has to be doubled to complete
641the sequence, otherwise it would be interpreted as a prefix sequence
642(this is why the binding for the basic item insertion command is @kbd{i
643i} and not @kbd{i}).
644
645Here are some examples of item insertion command key sequences:
646
647@itemize @bullet
648
649@item
650@kbd{i h} inserts a new item at the position of the item at point (pushing
651the latter down) with a header containing the current date and,
652depending on the values of the mentioned options, possibly the current
653time and diary-related markings.
654@item
655@kbd{i y h} does the same as the preceding command, except that
656@code{todo-nondiary-marker} is added if @code{todo-include-in-diary} is
657non-nil and omitted if that option is nil; that is, the diary key @kbd{y}
658overrides the setting of this option.
659@item
660@kbd{i y t h} does the same as the preceding command, except that it
661prompts for a time string instead of automatically inserting the
662current time; however, typing @key{RET} at the prompt returns the
663current time if @code{todo-always-add-time-string} is non-nil, otherwise
664the empty string (i.e., no time string).
665@item
666@kbd{i y t t} does the same as the preceding command, except that it
667prompts for the item's priority and inserts it accordingly.
668@end itemize
669
670Note that the commands whose key sequences include @kbd{y}, @kbd{k} or @kbd{t}
671reverse the effect of the options @code{todo-include-in-diary},
672@code{todo-diary-nonmarking} and @code{todo-always-add-time-string},
673respectively, thus temporarily overriding their values.
674
675The names of the item insertion commands correspond to their key
676bindings, e.g., @kbd{i h} is bound to @code{todo-insert-item-here}, @kbd{i y h} to
677@code{todo-insert-item-diary-here}, etc. But since there are so many
678combinations, instead of trying to memorize either the names or the key
679sequences, you can, as usual, just type an initial part of a key
680sequence (minimally @kbd{i}), followed by @kbd{C-h} to see the valid
681completions.
682
683An alternative to using the key @kbd{c} for choosing the item's date
684from the calendar is also available: if point is on a date in the
685calendar, typing @kbd{i t} (@code{todo-insert-item-from-calendar}) will
686prompt for a new item and its priority and insert it in the current
687category. Like @kbd{i i} and the other item insertion commands, this
688also accepts one or two prefix arguments for choosing the category via
689minibuffer completion. Note, however, that the key sequence @kbd{i t}
690is not defined in Todo mode but in the Calendar mode keymap. It is a
691convenient shortcut if you happen to be using the calendar when you
692decide to make a new todo item. (Contrast this with a command like
693@kbd{i c c}, which pops open the calendar after you have entered the
694item's text, and then you can choose a date from the calendar.)
695
696There is one more item insertion command, which does not derive from the
697item insertion parameters:
698
699@table @kbd
700
701@item i p
702This command (@code{todo-copy-item}) makes a complete copy of the item
703at point, including its header, prompts for its priority in the current
704category and inserts it accordingly.
705@end table
706
707@noindent
708This command is useful for quickly adding a todo item whose text or
709header you want to differ only partly from that of an existing item:
710after inserting the copy, you can quickly edit it as needed by using
711commands described in the next section.
712
713@node Editing Item Headers and Text, Relocating and Removing Items, Inserting New Items, Item Editing
714@subsection Editing Item Headers and Text
715
716There are a number of commands for editing an existing item's text or
717header; these commands are bound to key sequences with @kbd{e}.
718
719There are two commands for editing an item's text (and manually editing
720its header), one appropriate for short items and simple edits and one
721better suited for more complex changes or for editing lengthy items:
722
723@table @kbd
724
725@item e e
726Edit the text of the current item in the minibuffer
727(@code{todo-edit-item}). If called with a prefix argument (@kbd{C-u e
728e}), the item's header is also included in the minibuffer and so can be
729edited manually.
730
731@item e m
732Edit the text of the current item in a special buffer in Todo Edit mode
733(@code{todo-edit-multiline-item}). When you have finished editing, type
734@kbd{C-x C-q} to return to Todo mode; this runs a format check to ensure
735the item is well-formed.@footnote{Unlike the command @kbd{F e}
736(@pxref{File Editing}), @kbd{e m} does not expose you to the risk of
737putting the file in an inconsistent state, since it puts only the
738current item in Todo Edit mode.}
739@end table
740
741A number of commands are available for interactively editing all or part
742of the item header, permitting quick edits and helping avoid formatting
743errors.
744
745The following three commands are for editing any or all of the year,
746month and day components of a date header:
747
748@table @kbd
749
750@item e d t
751Successively prompt for changes to the date's year, month and
752day number, and if the option @code{todo-always-add-time-string} is
753non-nil, also for editing the time string (see also @kbd{e t} below).
754
755@item e d a
756Change the date to today's date.
757
758@item e d c
759This command pops up the Emacs calendar, and after you type @key{RET} on
760a date in the calendar makes that date the item's date.
761@end table
762
763@noindent
764You can also use these commands on items whose date header consists of a
765weekday name, which then changes to a header with year, month and day
766components.
767
768Each of the following three commands, in contrast to the preceding
769three, changes only a single date component and has no effect on a date
770header consisting of a weekday name:
771
772@table @kbd
773@item e d y
774@itemx e d m
775@itemx e d d
776Prompt for changing just the year, month or day number, respectively; if
777invoked with a positive or negative numeric prefix argument, directly
778increment or decrement the date component accordingly and automatically
779adjust the other date component if necessary. For example, if the date
780string is ``January 1, 2013'', typing @kbd{- 3 e d d} results in
781``December 29, 2012''.
782@end table
783
784@table @kbd
785@item e d n
786Prompt for a weekday name and make it the item's date header. Note that
787this replaces an existing date string, it does not add the day name to
788the date string.
789
790@item e t
791Edit just the item's time string. A time string can be added both to a
792date string and to a weekday name. If you type @key{RET} at the
793prompt, this omits a time string from the header, or deletes an existing
794time string.
795
796@item e y y
797Change the item's diary inclusion status by adding or removing
798@code{todo-nondiary-marker}.
799
800@item e y k
801Change the item's diary marking status by adding or removing
802@code{diary-nonmarking-symbol} (this command has an effect only if the
803item is not marked for exclusion from the diary).
804@end table
805
806@noindent
807Parallel to the latter two item-level commands are the
808following category-level commands:
809
810@table @kbd
811
812@item C e y
813@itemx C e k
814Add @code{todo-nondiary-marker} and @code{diary-nonmarking-symbol},
815respectively, to all todo items in the current category; if invoked with
816a prefix argument, these markings are removed from all items in the
817category.
818@end table
819
820@node Relocating and Removing Items, , Editing Item Headers and Text, Item Editing
821@subsection Relocating and Removing Items
822
823In addition to inserting a new todo item and changing the text or header
824of an existing item, you can also move an item to another category
825(i.e., recategorize it), change its priority within its category, delete
826it from the category and file, or mark it as a ``done'' item, which
827removes it from the todo list but does not delete it.
828
829@menu
830* Reprioritizing Items::
831* Moving and Deleting Items::
832* Done Items::
833@end menu
834
835@node Reprioritizing Items, Moving and Deleting Items, , Relocating and Removing Items
836@subsubsection Reprioritizing Items
837
838There are three ways to change a todo item's priority:
839
840@table @kbd
841
842@item r
843Raise the current item's priority by one, exchanging its position in the list
844with that of the item directly above it (@code{todo-raise-item-priority}).
845
846@item l
847Lower the current item's priority by one, exchanging its position in the list
848with that of the item directly below it (@code{todo-lower-item-priority}).
849
850@item #
851Prompt for a number and relocate the item to the corresponding position
852in the list (@code{todo-set-item-priority}). For example, entering
853@kbd{3} at the prompt makes the item the third in the category, i.e.,
854gives it third highest priority. You can also pass the desired priority
855as a numeric prefix argument, e.g., @kbd{3 #} gives the item third
856highest priority without prompting. (Prefix arguments have no effect
857with @kbd{r} or @kbd{l}.)
858@end table
859
860@node Moving and Deleting Items, Done Items, Reprioritizing Items, Relocating and Removing Items
861@subsubsection Moving and Deleting Items
862
863You can move an item to another category, thereby recategorizing it:
864
865@table @kbd
866
867@item m
868Move the item at point to another category (@code{todo-move-item}).
869This prompts for a category to move the item to, displays that category,
870prompts for the priority of the moved item in the category moved to and
871inserts the item accordingly. Minibuffer completion of the name of the
872category moved to works as with the navigation command @kbd{j}, and as
873with that command, passing a prefix argument prompts for a file and
874moves the item to a category in that file; and if the category name you
875enter is new, then you are asked whether to add the category to the
876file, and if you affirm, the item is moved to the new category.
877@end table
878
879You delete an item, thereby permanently removing it:
880
881@table @kbd
882
883@item k
884Delete the todo item at point (@code{todo-delete-item}; the binding is
885mnemonic for ``kill'', since @kbd{d} is used for marking items as done
886(@pxref{Done Items}); but note that @kbd{k} does not put the item into
887the kill ring). This command requires confirmation that you want to
888delete the item, since you cannot undo the deletion in Todo mode. (You
889could use @kbd{F e} to recover the item, but be aware that this would
890put the file in an inconsistent state, which you can recover from, but
891not without a risk; cf.@: the cautionary note in @ref{Reordering
892Categories}.)
893@end table
894
895@quotation Note
896Todo commands that require user confirmation, such as @kbd{k}, use a
897modified form of @code{y-or-n-p}, which by default only accepts @kbd{y}
898or @kbd{Y}, but not @key{SPC}, as an affirmative answer. This is to
899diminish the risk of unintentionally executing the command, which is
900especially important with commands that do deletion, since there is no
901Todo command to undo a deletion. If you want to be able to use SPC for
902confirmation, enable the option @code{todo-y-with-space}.
903@end quotation
904
905@node Done Items, , Moving and Deleting Items, Relocating and Removing Items
906@subsubsection Done Items
907
908When the activity or thing that a todo item is about has been done, it
909is natural to eliminate the item from the todo list. But instead of
910deleting it permanently, you may prefer to keep a record of your
911accomplishments by marking the item as done. In Todo mode, this removes
912the done item from the todo list, so as not to clutter it up, and stores
913it elsewhere. Such stored items form a record or diary of things done.
914The Todo package provides two such stores: the ``done items'' section of
915a Todo category, described here, and done item archives (@pxref{Todo
916Archive Mode}).
917
918@table @kbd
919
920@item d
921This command (@code{todo-item-done}) removes the todo item at point from
922the todo list, appends to the original header a header consisting of
923@code{todo-done-string} (by default ``DONE '') and the current date, and
924if @code{todo-always-add-time-string} is enabled, also the current time,
925and adds the resulting done item to the top of the done items section of
926the category. Invoked with a prefix argument, it also prompts you to
927enter a comment, which is appended to the end of the done item, prefixed
928with @code{todo-comment-string} (by default ``COMMENT: '').
929@end table
930
931A category's done items section is located below the last todo (i.e.,
932not done) item in the category. By default this section is hidden from
933view. There are two commands for viewing and hiding done items; since
934these are toggle commands, for convenience they also have a single key
935binding:
936
937@table @kbd
938
939@item C v
940@itemx v
941Make the done items section of the current category visible if it is
942hidden, or hide it if it is visible
943(@code{todo-toggle-view-done-items}). If you always want to see the
944done items section on entering a category, enable the option
945@code{todo-show-with-done}; you can still use @kbd{C v} or @kbd{v} to
946hide (and unhide) it.
947
948@item F V
949@itemx V
950Toggle the standard category display in the current todo file, i.e.,
951display only the done items section of each category in the file, or if
952this is visible, hide it again and display only the todo items section
953(@code{todo-toggle-view-done-only}).
954@end table
955
956Three editing commands for done items are available:
957
958@table @kbd
959
960@item e c
961If you type this command (@code{todo-edit-done-item-comment}) when point is
962on a done item that has a comment, you can edit the text of the
963comment. If you invoke it with a prefix argument (@kbd{C-u e c}), the
964comment is deleted on confirmation. If the done item does not have a
965comment, this command allows you to add one.
966
967@item m
968Move the done item at point to the top of the done items section of
969another category (@code{todo-move-item}). This is useful in case, after
970having relocated an item to its category's done items section, you
971create a category that is better suited to the content of the done item
972than its current category, so you can recategorize the done item.
973
974@item u
975If you decide the done item at point is not done after all, this command
976``undoes'' it, i.e., restores it to the todo list of its category, with
977the priority you choose for it (@code{todo-item-undone}). If the done
978item has a comment, you are asked whether to delete it from the restored
979item.
980@end table
981
982@node Todo Archives, Marked Items, Editing, Top
983@chapter Todo Archives
984
985When the done items section of a category itself starts to become
986cluttered, or if you just want to store some accomplished todo items in
987a separate file, you can move them to a Todo archive. This is a file
988with exactly the same structure as a todo file, i.e., divided into
989categories, but differs in that the categories contain only done items.
990Todo archives reside, like todo files, in @code{todo-directory} but have
991the extension @samp{.toda} instead of @samp{.todo}.
992
993@menu
994* Creating and Visiting Archives::
995* Todo Archive Mode::
996@end menu
997
998@node Creating and Visiting Archives, Todo Archive Mode, , Todo Archives
999@section Creating and Visiting Archives
1000
1001Todo mode provides the following command for archiving items:
1002
1003@table @kbd
1004
1005@item A d
1006This command (@code{todo-archive-done-item}) archives the done item at point.
1007Invoked with a prefix argument, it archives all done items in the
1008current todo category. If an archive for the current todo file
1009already exists and contains a category with the same name as the
1010current todo category, then this command moves the done item to the
1011top of the corresponding archive category. If the archive exists but
1012it does not have a corresponding category, this command creates the
1013category in the archive and moves the done item to it. If no archive
1014for the todo file exists, the command creates both the archive file,
1015using the same base name as that of the todo file, as well as the
1016category, and moves the done item to it.
1017@end table
1018
1019Typing @kbd{A d} is also the only way within the Todo mode package to
1020create an archive file and its categories. Consequently, as a rule each
1021archive file corresponds to exactly one todo file and has the same base
1022name as this file, and each category in an archive file corresponds to
1023and has the same name as a category in the corresponding todo file.
1024Exceptions can only arise if you delete a todo file but not the
1025corresponding archive, or if you delete a category in a todo file that
1026has a corresponding category in an archive.
1027
1028You might be inclined to do the latter if you have archived all the
1029items from a given todo category and you don't plan to add new items to
1030it. In particular, if you have numerous such empty categories in a todo
1031file, this can make sequential navigation in the file annoying. You can
1032avoid this annoyance by deleting these categories, but only at the cost
1033of putting the todo file out of synch with the archive file.
1034
1035You may find it preferable not to delete empty todo categories but to
1036enable the option @code{todo-skip-archived-categories}. When this is
1037non-nil, such empty todo categories are skipped over by the sequential
1038category navigation commands @kbd{f} and @kbd{b}, so they don't distract you
1039while navigating and you maintain the structural correspondence between
1040todo and archive files (you can also still jump to empty todo categories
1041with @kbd{j}).
1042
1043If you rename a todo category that has a corresponding category in an
1044archive, the archive category is also automatically identically renamed.
1045Likewise, if you move such a todo category to another file; in this
1046case, if there is no archive file corresponding to the todo file the
1047category is moved to, then the archive is automatically created and the
1048archived category is moved to it.
1049
1050There are two commands in Todo mode for visiting archive files:
1051
1052@table @kbd
1053
1054@item A f
1055Switch to a buffer displaying the archived category corresponding to the
1056current todo category (@code{todo-find-archive}). If the todo category
1057has no archived items, the command asks if you want to visit the archive
1058anyway. If there is no archive for this todo file, it asks if you want
1059to visit another archive, which you can select via minibuffer
1060completion.
1061
1062@item A c
1063Choose an archive to visit, whether or not the current todo file has an
1064archive (@code{todo-choose-archive}).
1065@end table
1066
1067As with todo files, you can also visit a Todo archive by invoking a
1068standard Emacs file-visiting command; this displays the first (on the
1069initial invocation) or current category of the archive.
1070
1071@node Todo Archive Mode, , Creating and Visiting Archives, Todo Archives
1072@section Todo Archive Mode
1073
1074When you visit a Todo archive, the buffer is in Todo Archive mode. It
1075displays categories just as in Todo mode, except that they only contain
1076done items. It provides the same sequential navigation commands as
1077Todo mode: @kbd{f} and @kbd{b} navigate between the categories of the current
1078archive, and @kbd{n} and @kbd{p} navigate between the done items of the current
1079archive category.
1080
1081The commands @kbd{t} and @kbd{j} are also available in Todo Archive
1082mode, and they work the same as in Todo mode, which means they can only
1083be used to return to Todo mode: @kbd{t} prompt for and switch to a todo
1084file, and with @kbd{j} you can only jump to a todo category. These
1085commands exclude archives because an archive file has the same base name
1086as the corresponding todo file, and category name completion uses only
1087the base names, so the commands cannot know which type of file you want
1088to visit. For this reason, there is a special command in Todo Archive
1089mode for jumping to another archive category or visiting another archive
1090file:
1091
1092@table @kbd
1093
1094@item a
1095This command (@code{todo-jump-to-archive-category}) prompts for a category in the
1096current archive and jumps to it. Called with a prefix argument, it
1097prompts for another archive, then for a category in it and jumps to
1098that category.
1099@end table
1100
1101None of the Todo mode editing commands are available in Todo Archive
1102mode, since archives are meant to be static records of accomplished todo
1103items. Should you, however, archive an item by mistake or simply change
1104your mind about the archival status of an item, you can ``unarchive'' it:
1105
1106@table @kbd
1107
1108@item u
1109Restore the done item at point to the top of the done items section of
1110the corresponding category in the corresponding todo file, i.e., an
1111unarchived item remains a done item (@code{todo-unarchive-items}). When
1112the last item in an archive category has been unarchived, the category
1113is automatically deleted from the archive. If this was the only
1114category in the archive, the archive file is also automatically deleted.
1115@end table
1116
1117Since it is natural to visit an archive from the corresponding todo
1118file, it would be convenient to easily return to the todo file when you
1119have finished browsing the archive. If you type `q' to quit Todo
1120Archive mode, this switches to the corresponding todo file and shows the
1121todo category corresponding to the archive category you were just
1122visiting.
1123
1124The command @kbd{F k} (@pxref{File Editing}) is also available in Todo
1125Archive mode. It deletes the current archive file and prompts you
1126whether to delete the corresponding todo file.
1127
1128@node Marked Items, Todo Categories Mode, Todo Archives, Top
1129@chapter Marked Items
1130
1131For many item editing commands it can make sense and be convenient to
1132apply them simultaneously to more than one item in the current category.
1133Todo facilitates this by means of marked items.
1134
1135@table @kbd
1136
1137@item *
1138Mark the item at point if it is unmarked, and remove the mark it is
1139already marked (@code{todo-toggle-mark-item}). The mark is a string
1140specified by the option @code{todo-item-mark} (by default @samp{*})
1141appended in front of the item header (more precisely, in front of the
1142item's priority number or prefix; see @ref{Todo Display Features}, for
1143details of the latter). After marking the current item, the command
1144advances point to the next item. It also accepts a numeric prefix
1145argument, which allows toggling the mark of multiple consecutive items.
1146
1147@item C *
1148Mark all todo items in the current category.
1149
1150@item C u
1151Unmark all todo item in the current category.
1152@end table
1153
1154You can also use the last two commands to mark or unmark all done items in
1155the category, but only when only the done items section is being
1156displayed, i.e., after invoking @kbd{C V} or @kbd{V}.
1157
1158The following commands operate on marked items: @kbd{k} (deleting), @kbd{m}
1159(moving to another category), @kbd{d} (moving to the done items section;
1160note that @kbd{C-u d} adds the same comment to all marked items), @kbd{A d}
1161(archiving), @kbd{u} (both in Todo mode for undoing a done item and in
1162Todo Archive mode for unarchiving an item), as well as the commands for
1163editing the item header (those beginning with the prefix @kbd{e d} as well
1164as @kbd{e t}, @kbd{e y y} and @kbd{e y k}). The item insertion, textual editing and
1165priority changing commands do not operate on marked items.
1166
1167If you use @kbd{m}, @kbd{d}, @kbd{A d} or @kbd{u} on multiple noncontiguous marked
1168items, the relocated items retain their relative order but are now
1169listed consecutively en bloc.
1170
1171You can mark both todo and done items, but note that only @kbd{m} can apply
1172to both; other commands only affect either marked todo or marked done
1173items, so if both types of items are marked, invoking these commands
1174has no effect and informs you of your erroneous attempt.
1175
1176@node Todo Categories Mode, Searching for Items, Marked Items, Top
1177@chapter Todo Categories Mode
1178
1179It can be helpful to have a compact overview of the categories in a todo
1180file and the types of items it contains; Todo provides a tabular view
1181of this information.
1182
1183@table @kbd
1184
1185@item F c
1186Typing this command (@code{todo-show-categories-table}) in Todo mode or Todo
1187Archive mode switches to a buffer displaying a table that gives an
1188overview of the categories in the current todo or archive file. This
1189buffer is in Todo Categories mode.
1190@end table
1191
1192The table consists of a column containing the names of the categories in
1193the file, followed by columns containing counts of certain types of
1194items in each category. With todo files there are four count types: all
1195todo (i.e., not done) items, diary items (i.e., those todo items lacking
1196the @code{todo-nondiary-marker}, which hence can appear in the Fancy Diary
1197display), done (but not archived) items, and archived items. With
1198archive files all items are done, so the table only has a column for
1199this count. The final row of the table gives total item counts across
1200all categories in the file.
1201
1202Aside from explicitly invoking @kbd{F c} to display the table of
1203categories, you can also arrange to have it displayed on the first
1204invocation of @code{todo-show} for a given file (i.e., either using
1205@code{todo-show} to initiate a Todo session, or calling it in Todo mode
1206to visit another todo file). To do this customize the option
1207@code{todo-show-first}.
1208
1209@menu
1210* Table of Item Counts::
1211* Reordering Categories::
1212@end menu
1213
1214@node Table of Item Counts, Reordering Categories, , Todo Categories Mode
1215@section Table of Item Counts
1216
1217Above each column of the table is a labeled button you can press by
1218clicking with the mouse or by typing @key{RET} on it. Pressing an item
1219count button sorts the table alternately in ascending or descending
1220order according to the type of count. Pressing the category button
1221alternates between the initial numerical order of the categories and
1222alphabetical order. In numerical order the column of category names is
1223preceded by a column containing the corresponding category numbers; this
1224column is not displayed in the alphabetical listing. Instead of
1225pressing the buttons, you can also sort the table by typing the
1226following keys:
1227
1228@itemize
1229
1230@item @kbd{c}
1231to sort by category numerically or alphabetically;
1232@item @kbd{t}
1233to sort by todo item counts;
1234@item @kbd{y}
1235to sort by diary item counts;
1236@item @kbd{d}
1237to sort by done item counts;
1238@item @kbd{a}
1239to sort by archived item counts.
1240@end itemize
1241
1242Each row of the table is also buttonized; pressing one of these exits
1243the buffer (killing it), returns to the buffer of the file from which
1244you had invoked `F c', and displays the category that was named in the
1245row button you pressed (i.e., pressing this button jumps to that
1246category). However, if the category named in the row is in a todo file
1247and all of its items have been archived, and you have enabled the option
1248@code{todo-skip-archived-categories}, then pressing the button jumps to
1249the archive category instead of the empty todo category. You can
1250recognize such categories by their items counts in the table---all
1251columns but the archived one have counts of zero---and in addition,
1252their lines in the table are also distinguished from the others by a
1253different face.
1254
1255You can navigate around the table:
1256
1257@table @kbd
1258
1259@item n
1260@itemx @key{TAB}
1261Advance point to the next button.
1262
1263@item p
1264@itemx S-@key{TAB}
1265Put point on the previous button.
1266@end table
1267
1268These commands are cyclic, e.g. when point is on the last button,
1269pressing @kbd{n} moves it to the first button.
1270
1271Typing @kbd{q} exits Todo Categories mode, killing the buffer and returning
1272to the current category in the Todo mode or Todo Archive mode buffer
1273from which you had invoked @kbd{F c}.
1274
1275@node Reordering Categories, , Table of Item Counts, Todo Categories Mode
1276@section Reordering Categories
1277
1278Todo Categories mode provide commands with which you can change the
1279numbering of the categories in the current file. This renumbering has
1280the effect of reordering the categories for sequential navigation by
1281@kbd{f} and @kbd{b} in Todo mode and Todo Archive mode. These commands
1282are only operative when the table displays the categories in their
1283numerical order. They work just like reprioritizing items in Todo mode,
1284hence have the same key bindings:
1285
1286@table @kbd
1287
1288@item r
1289Raise the current line of the table (the one the cursor is on),
1290decreasing the category's number by one (@code{todo-raise-category}).
1291This command exchanges lines, and hence the numbers, of the category at
1292point and the one above it before invoking the command.
1293
1294@item l
1295Lower the current line of the table, increasing the category's number by
1296one (@code{todo-lower-category}). This command exchanges lines, and
1297hence the numbers, of the category at point and the one below it before
1298invoking the command.
1299
1300@item #
1301Prompt for a number between 1 and the number of categories in the file
1302and reorder the table accordingly (@code{todo-set-category-number}). If
1303called with a numeric prefix argument within the allowed range, reorder
1304the table without prompting.
1305@end table
1306
1307The reordering done by these commands remains in effect when you return
1308to Todo mode or Todo Archive mode and, as long as you save the todo
1309or archive file after reordering, in subsequent sessions as well.
1310
1311@quotation @strong{Caution}
1312It is important to be aware that renumbering the categories does not
1313change the textual order of the categories in the file. This is
1314significant if you should invoke @kbd{F e} to edit the entire file
1315manually and in so doing alter the number of items in a category: this
1316will make the item count shown in the table of categories of this file
1317inconsistent with the actual number. You can repair this inconsistency
1318by invoking the command @code{todo-repair-categories-sexp} (which lacks
1319a key binding, since it is meant to be a rarely needed rescue
1320operation). But this will revert any renumbering of the categories you
1321have made, so you will have to renumber them again. This is the reason
1322why you should exercise caution when using @kbd{F e}.
1323@end quotation
1324
1325@node Searching for Items, Todo Filtered Items Mode, Todo Categories Mode, Top
1326@chapter Searching for Items
1327
1328It can be useful to be able to locate and examine all todo items that
1329fit certain criteria, regardless of which category they belong to. One
1330way to do this in Todo mode is by sequentially searching in the file:
1331
1332@table @kbd
1333
1334@item S
1335This command (@code{todo-search}; the key is capital @kbd{S}) prompts for a
1336regular expression, searches from the beginning of the current todo file
1337and displays the category containing the first match it finds, with the
1338match highlighted. If there are further matches, a message saying how
1339many are left is displayed and you are asked if you want to go to the
1340next match. When you reach the last match, or if you decide not to go
1341to further matches, you are asked whether the match highlighting should
1342be removed.
1343
1344@item X
1345This command (@code{todo-clear-matches}) removes any highlighting added by @kbd{S}.
1346This is so you can leave the matches highlighted at the end of the
1347search and remove the highlighting later.
1348@end table
1349
1350These commands are also available in Todo Archive mode.
1351
1352@node Todo Filtered Items Mode, Todo Display Features, Searching for Items, Top
1353@chapter Todo Filtered Items Mode
1354
1355A more powerful alternative to sequential searching is item filtering,
1356by which items from different categories that match specified criteria
1357are gathered and displayed in a new buffer as a kind of virtual
1358category in a distinct mode, Todo Filtered Items mode.
1359
1360@menu
1361* Filtering Items::
1362* Todo Filtered Items Mode Commands::
1363* Files of Filtered Items::
1364@end menu
1365
1366@node Filtering Items, Todo Filtered Items Mode Commands, , Todo Filtered Items Mode
1367@section Filtering Items
1368
1369Todo mode provides three ways to filter items: a general filter for
1370items matching a user-entered regular expression, as with the search
1371command; and two specific filters, one for diary-displayable items
1372(i.e., those lacking @code{todo-nondiary-marker}) and one for top
1373priority items (more on the latter below). The commands for each
1374filter come in pairs, one for filtering just the current todo file and
1375one for filtering a user-specified list of todo files. Thus, there
1376are six item filtering commands:@footnote{The use of @kbd{F} in the key
1377sequences of these commands naturally recalls ``filter'', but is also
1378consistent with the Todo mode mnemonic key binding convention, since the
1379commands involve one or more whole files.}
1380
1381@itemize @bullet
1382
1383@item
1384@kbd{F x x} (@code{todo-filter-regexp-items})
1385@item
1386@kbd{F x m} (@code{todo-filter-regexp-items-multifile})
1387@item
1388@kbd{F y y} (@code{todo-filter-diary-items})
1389@item
1390@kbd{F y m} (@code{todo-filter-diary-items-multifile})
1391@item
1392@kbd{F t t} (@code{todo-filter-top-priorities})
1393@item
1394@kbd{F t m} (@code{todo-filter-top-priorities-multifile})
1395@end itemize
1396
1397There are two ways to specify which files the multifile filtering
1398commands apply to. If there are files you want to filter every time you
1399use these commands, customize the option @code{todo-filter-files}. If you
1400leave this option empty (the default), invoking a multifile filtering
1401command pops up a buffer similar to the Customization buffer for
1402@code{todo-filter-files}, in which you can select files to filter just for
1403this invocation.
1404
1405Diary and top priority items are by definition non-done todo items, but
1406when filtering by regular expression, you can extend the scope of the
1407command to done items by enabling the option @code{todo-filter-done-items}.
1408Then @kbd{F x x} and @kbd{F x m} will gather both matching todo and matching
1409done items (including done items from any archive files corresponding to
1410the selected todo files) into the virtual category of filtered items.
1411
1412There are several ways to specify how many items in each category count
1413as top priorities and hence get filtered by @kbd{F t t} and @kbd{F t m}:
1414
1415@itemize @bullet
1416
1417@item
1418The option @code{todo-top-priorities} specifies a single default number
1419for all categories and all todo files; its default value is 1, which
1420means just the highest priority item in every category is filtered,
1421unless otherwise specified.
1422@item
1423The option @code{todo-top-priorities-overrides} lists file-wide overrides
1424of @code{todo-top-priorities} as well as category-specific overrides. It
1425is empty by default. However, using the Custom facility to set this
1426option would be tedious and error-prone, so instead you should use the
1427commands @kbd{F t s} and @kbd{C t s}. The former sets (i.e., overrides) the
1428default number of top priorities for all categories in the current
1429todo file, and the latter sets the number of top priorities for the
1430current category. To exclude a category or file from filtering by @kbd{F t t}
1431and @kbd{F t m}, set the number to @samp{0}.
1432@item
1433You can invoke `F t t' and `F t m' with a numeric prefix argument,
1434which specifies the number of top priorities in each category just for
1435this invocation, overriding both @code{todo-top-priorities-overrides} and
1436@code{todo-top-priorities}.
1437@end itemize
1438
1439@node Todo Filtered Items Mode Commands, Files of Filtered Items, Filtering Items, Todo Filtered Items Mode
1440@section Todo Filtered Items Mode Commands
1441
1442The output of the item filtering commands looks similar to a regular
1443Todo category, but it is not contained in any todo file and does not
1444have a name on being created, so it is not a ``real'' category but a
1445``virtual'' category. Another difference is the lack of a done items
1446section; either there are no done items in the list (when the filtered
1447items are diary or top priority items), or these are displayed in the
1448same list as todo items (if you filtered by regular expression and
1449allowed done items). A further difference is that the items have an
1450additional header, between the item's date/time header and its text,
1451specifying which category (and if you invoked a multifile command, also
1452which file) the item comes from, and if you filtered by regular
1453expression, also whether the item comes from a Todo archive.
1454
1455The sequential item navigation commands @kbd{n} and @kbd{p} work the same in
1456Todo Filtered Items mode as in Todo mode, as do the file and category
1457jumping commands @kbd{t} and @kbd{j}; however, the sequential category
1458navigation commands are unavailable, since virtual categories of
1459filtered items are not ordered with respect to ``real'' categories. In
1460addition, Todo Filtered Items mode provides a special navigation
1461command:
1462
1463@table @kbd
1464
1465@item g
1466@itemx @key{RET}
1467If you type this command (@code{todo-go-to-source-item}) with point on a
1468filtered item, the buffer switches to the item's source file (in Todo
1469mode or Todo Archive mode, as the case may be) and displays its
1470category, with point on the item.
1471@end table
1472
1473Filtered items cannot be textually edited, moved to another category,
1474marked done or archived like items in a real todo category, since these
1475would then be out of synch with each other. But there is one type of
1476editing command that does work in Todo Filtered Items mode: changing an
1477item's priority:
1478
1479@table @kbd
1480
1481@item r
1482@itemx l
1483@itemx #
1484These commands raise, lower, or set, respectively, the current item's
1485priority in the virtual category.
1486@end table
1487
1488@noindent
1489Using these commands, you can create a cross-category (and even
1490cross-file) prioritized list of filtered items. However, there is a
1491restriction on these commands in Todo Filtered Items mode: you cannot
1492change the relative priorities of items from the same real category,
1493since that would make the filtered list inconsistent with the source
1494todo list.
1495
1496@node Files of Filtered Items, , Todo Filtered Items Mode Commands, Todo Filtered Items Mode
1497@section Files of Filtered Items
1498
1499Typing @kbd{s} in Todo Filtered Items mode saves the buffer of filtered
1500items to a file in @code{todo-directory}. Files of items filtered by
1501regular expression have the extension @samp{.todr}, those with filtered
1502diary items have the extension @samp{.tody} and those with filtered top
1503priorities have the extension @samp{.todt}. The extensions are added
1504automatically the first time you save the buffer to a file.
1505
1506With filtered top priority or diary items, the file is automatically
1507named on first saving it, using as the base name either the same base
1508name as the single todo file it was generated from, or combining the
1509base names of the todo files used in multifile filtering commands.
1510With items filtered by regular expression, it can be useful to save
1511separate lists generated from the same file(s) using different regular
1512expressions, so when saving such a list, you are prompted for a short
1513identifying string to add to the file name.
1514
1515When you invoke one of the item filtering commands without a prefix
1516argument and a corresponding file already exists, the command visits
1517this file (if, for the current file or chosen files, there are multiple
1518files of items filtered by regular expression, you are prompted to
1519choose one). To force generation of a new filtered list, invoke the
1520command with a prefix argument (in the case of top priority items,
1521either numeric as described above, or the raw prefix argument @kbd{C-u} to
1522use the values of @code{todo-top-priorities-overrides} or
1523@code{todo-top-priorities}).
1524
1525Aside from explicitly invoking an item filtering command to display a
1526saved list of items filtered by a given method from given todo files,
1527there are two other ways to visit a saved file of filtered items:
1528
1529@table @kbd
1530@item F f
1531Visit a saved file of filtered items, which you choose via minibuffer
1532completion (@code{todo-find-filtered-items-file}).
1533@end table
1534
1535@itemize @bullet
1536@item
1537As with tables of categories, by customizing @code{todo-show-first} you
1538can have the first invocation of @code{todo-show} for a given todo file
1539display the corresponding saved file of filtered items. If there is
1540no saved filtered items list for the file, @code{todo-show} simply
1541defaults to visiting the file and displaying its first category, as
1542usual.
1543@end itemize
1544
1545The command @kbd{F k} (@pxref{File Editing}) is also available in Todo
1546Filtered Items mode. It deletes the current filtered items file.
1547
1548@node Todo Display Features, Printing Todo Buffers, Todo Filtered Items Mode, Top
1549@chapter Todo Display Features
1550
1551You can change the appearance of Todo mode buffers in a variety of ways.
1552
1553@menu
1554* Faces::
1555* Item Prefix::
1556* Other Display Commands and Options::
1557@end menu
1558
1559@node Faces, Item Prefix, , Todo Display Features
1560@section Faces
1561
1562Each of the Todo modes uses faces to distinguish various aspects of the
1563display, both structural and informational. For example, the faces for
1564the date and time strings of todo item headers by default inherit the
1565attributes of the corresponding faces used by the Emacs diary; but when
1566the date and time of a Todo diary item (i.e., an item lacking
1567@code{todo-nondiary-marker}) is earlier than the current date and time,
1568they are displayed in a different face. In this way, you can readily
1569recognize diary items that have ``expired'' and act accordingly (e.g.,
1570by tagging them as done or by updating the deadlines).
1571
1572Another example of an informational face is the face used to distinguish
1573top priority items. A third case is the face used in Todo Categories
1574mode to mark rows of the table containing categories with only archived
1575items.
1576
1577The @code{todo-faces} customization group contains a complete list of
1578Todo mode faces and brief descriptions of their use.
1579
1580
1581@node Item Prefix, Other Display Commands and Options, Faces, Todo Display Features
1582@section Item Prefix
1583
1584In the default display of (real or virtual) categories in Todo mode,
1585Todo Archive mode and Todo Filtered Item mode the items are visually
1586numbered in ascending order, starting with @samp{1} on the top item,
1587displayed to the left of its header (date/time string). With todo items
1588the numbers indicate each item's priority in the list, so when you
1589reprioritize an item with @kbd{#} or move it with @kbd{m}, these numbers make
1590it easier to choose the item's new priority. The numbering also lets
1591you to see at a glance how many items there are in the list. When an
1592item is inserted, deleted, or moved, the numbering is automatically
1593updated. In Todo mode, the todo and done items sections in each
1594category are separately numbered.
1595
1596If you prefer not to have item numbering displayed, disable the option
1597@code{todo-number-prefix}; then the display of each item starts by default
1598simply with its header. But you can also replace the numbering with a
1599visually distinctive string of your choice by customizing the option
1600@code{todo-prefix} (the empty string by default). Another alternative is to
1601temporarily hide the item numbering:
1602
1603@table @kbd
1604
1605@item F N
1606@itemx N
1607Toggle between displaying item numbering and displaying the
1608@code{todo-prefix} string in the current Todo file (todo, archive, or
1609saved virtual category of filtered items. This command also works in
1610buffers of filtered items that have not yet been written to a file.)
1611@end table
1612
1613In the todo items section of each Todo mode category, the item prefix
1614(whether a priority number or a fixed string) of the top priority items
1615(determined as specified in @pxref{Filtering Items}) is displayed in a
1616different face from the prefix of the other items, so you see at a
1617glance how many items in the category are top priorities.
1618
1619@node Other Display Commands and Options, , Item Prefix, Todo Display Features
1620@section Other Display Commands and Options
1621
1622There are two additional toggle commands that affect display in the
1623current file:
1624
1625@table @kbd
1626
1627@item F h
1628@itemx h
1629Hide the item headers if visible, or show them if they are hidden.
1630With done items, only the done header (i.e. the done tag and date-time
1631string inserted when the item was marked done) is hidden, the original
1632date-time string is not. With filtered items, the category (or
1633category-file) tag is not hidden.
1634
1635@item F H
1636@itemx H
1637Highlight the current item if unhighlighted, or remove its highlighting.
1638When item highlighting is enabled, it follows navigation by @kbd{n} or
1639@kbd{p}. If you want to have current item highlighting by default,
1640enable the option @code{todo-highlight-item}. @kbd{F H} or @kbd{H} will
1641still toggle it.
1642@end table
1643
1644There are two options which affect the display of items whose content is
1645longer than one screen line:
1646
1647@itemize @bullet{}
1648
1649@item
1650@code{todo-indent-to-here} sets the amount of indentation for all lines
1651after the first in multiline todo items, which is necessary in order
1652for todo diary items to be fully visible in the Fancy Diary display.
1653The default indentation is 3 spaces. For a uniform appearance this
1654option applies to all items, i.e., diary and nondiary todo items and
1655also done items.
1656
1657@item
1658@code{todo-wrap-lines} allows you to choose, for the purposes of
1659insertion and editing, between treating multiline todo items as
1660containing multiple logical lines with hard line breaks or as multiple
1661visual lines using Visual Line mode; the latter is the default. Since
1662multiparagraph items also contain hard line breaks in Visual Line mode,
1663for a uniform appearance this display shows indentation on wrapped lines
1664by using a wrap-prefix of @code{todo-indent-to-here} spaces.
1665@end itemize
1666
1667The indentation inserted after a hard newline is actually a tab
1668character, and the Todo modes that display items bind @code{tab-width} to
1669@code{todo-indent-to-here}, so if you change the default value of the
1670latter, the next time you visit a Todo file, the indentation will
1671reflect your change.
1672
1673By default, the todo and done items sections of a todo category are
1674visually separated by a line as wide as the window the buffer is
1675displayed in. You can change the appearance and width of the separator
1676by customizing @code{todo-done-separator-string}; you can also change the
1677face of the separator string.
1678
1679There are also several options for changing the appearance in Todo
1680Categories mode and Todo Filtered Items mode, beyond those mentioned
1681above in the sections on these modes; see the customization groups
1682@code{todo-categories} and @code{todo-filtered} for details.
1683
1684@node Printing Todo Buffers, Legacy Todo Mode Files, Todo Display Features, Top
1685@chapter Printing Todo Buffers
1686
1687If you print a Todo buffer using one of the standard Emacs printing
1688commands, it does not look exactly like what you see in the buffer.
1689This is because some of the display features are non-printable
1690(specifically, those using overlays, word-wrap and wrap-prefix). Todo
1691mode provides two print commands that produce output which includes
1692printable counterparts of such display features:
1693
1694@table @kbd
1695
1696@item P B
1697Send the printable buffer output directly to your printer.
1698
1699@item P F
1700Prompt for a file name and write the printable output to that file.
1701@end table
1702
1703By default, Todo uses @code{ps-print-buffer-with-faces} to make the
1704printable version; you can change this by setting the option
1705@code{todo-print-function}.
1706
1707@node Legacy Todo Mode Files, GNU Free Documentation License, Printing Todo Buffers, Top
1708@chapter Legacy Todo Mode Files
1709
1710Users of the original version of Todo mode will recognize from the
1711description in this user manual that, although the new version shares
1712with the original version the same basic user interface and handling of
1713todo items, there are some incompatible differences between them, such
1714as the done items sections (there are also other file format
1715incompatibilities behind the scenes that are normally not visible to
1716users).
1717
1718The most significant incompatibility concerns the item prefix. In the
1719earlier version of Todo mode the prefix was the initial part of the item
1720string itself, so in order for the item to be displayable in the Emacs
1721diary, the prefix had to be a date/time pattern recognizable by the
1722diary (although the todo item also has its own date/time header).
1723Moreover, since all items had the same prefix string in the original
1724version, this means that either only all or no items could appear in the
1725Fancy Diary display on any given date. This considerably restricts the
1726practicality of including todo items in the diary. In contrast, the
1727current version of Todo mode uses overlays for item priority numbering
1728or prefixes, and item-specific diary-compatible date/time headers and
1729special marks for todo items to be excluded from the diary, so you can
1730determine for each item whether and when it appears in the Fancy Diary
1731display.
1732
1733Due to these incompatibilities, files created with the original version
1734of Todo mode cannot be displayed or edited with the current version.
1735However, this version provides a function that converts the two main
1736types of files used by the original version into new-style valid todo
1737and archive files, respectively, and saves them in
1738@code{todo-directory}.@footnote{The original version of Todo mode also
1739allowed saving a file of top priority items, but since you can readily
1740create such a file with the new version, which is also more flexible,
1741no conversion is provided for this file.}
1742
1743This conversion function is automatically called the first time you
1744invoke @code{todo-show} (i.e., before you have created a todo file with
1745the new version), and if it finds the old-style files, it offers to
1746convert them, making them the first new-style todo and archive files.
1747If you choose not to convert the old-style files at this time, you can
1748do so later by invoking the command @code{todo-convert-legacy-files}
1749(there is no key binding for it, since it shouldn't be necessary to use
1750it often). (A delicate part of the conversion concerns the customizable
1751format of item date/time headers in the old-style; see the documentation
1752string of @code{todo-todo-mode-date-time-regexp} for details.)
1753
1754@node GNU Free Documentation License, , Legacy Todo Mode Files, Top
1755@appendix GNU Free Documentation License
1756@include doclicense.texi
1757
1758@bye
1759
1760@c End:
diff --git a/doc/misc/woman.texi b/doc/misc/woman.texi
index 44a8b5573fa..8005d58ce8a 100644
--- a/doc/misc/woman.texi
+++ b/doc/misc/woman.texi
@@ -67,7 +67,12 @@ modify this GNU manual.''
67@display 67@display
68As distributed with Emacs @value{EMACSVER}. 68As distributed with Emacs @value{EMACSVER}.
69 69
70@ifnothtml
70@email{F.J.Wright@@qmw.ac.uk, Francis J. Wright} 71@email{F.J.Wright@@qmw.ac.uk, Francis J. Wright}
72@end ifnothtml
73@ifhtml
74Francis J. Wright
75@end ifhtml
71@uref{http://centaur.maths.qmw.ac.uk/, School of Mathematical Sciences} 76@uref{http://centaur.maths.qmw.ac.uk/, School of Mathematical Sciences}
72Queen Mary and Westfield College (University of London) 77Queen Mary and Westfield College (University of London)
73Mile End Road, London E1 4NS, UK 78Mile End Road, London E1 4NS, UK