diff options
| author | Xue Fuqiao | 2013-09-04 08:39:34 +0800 |
|---|---|---|
| committer | Xue Fuqiao | 2013-09-04 08:39:34 +0800 |
| commit | adf2fc4a01efe77d73cd52bc9173914ed56ff531 (patch) | |
| tree | a5a280a5554a7bffeaf94fccae29fa3ac1a5d066 /doc | |
| parent | 63191d9f2043d2e67657e85a7b3842805dd1dad6 (diff) | |
| parent | 38726039b77db432989fed106c88e9f1aa463281 (diff) | |
| download | emacs-adf2fc4a01efe77d73cd52bc9173914ed56ff531.tar.gz emacs-adf2fc4a01efe77d73cd52bc9173914ed56ff531.zip | |
Merge from mainline.
Diffstat (limited to 'doc')
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 | ||
| 5 | 2013-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 | |||
| 11 | 2013-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 | |||
| 16 | 2013-08-17 Xue Fuqiao <xfq.free@gmail.com> | ||
| 17 | |||
| 18 | * text.texi (Enriched Justification): Minor fixes. | ||
| 19 | |||
| 20 | 2013-08-14 Xue Fuqiao <xfq.free@gmail.com> | ||
| 21 | |||
| 22 | * files.texi (Filesets): Add an index. | ||
| 23 | |||
| 24 | 2013-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 | |||
| 5 | 2013-07-31 Eli Zaretskii <eliz@gnu.org> | 48 | 2013-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 | ||
| 20 | SHELL = /bin/sh | 20 | SHELL = @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. |
| 39 | texinfodir = $(srcdir)/../misc | 39 | texinfodir = $(srcdir)/../misc |
| 40 | 40 | ||
| 41 | prefix = @prefix@ | ||
| 42 | datarootdir = @datarootdir@ | ||
| 43 | datadir = @datadir@ | ||
| 44 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
| 45 | docdir = @docdir@ | ||
| 46 | dvidir = @dvidir@ | ||
| 47 | htmldir = @htmldir@ | ||
| 48 | pdfdir = @pdfdir@ | ||
| 49 | psdir = @psdir@ | ||
| 50 | |||
| 41 | MKDIR_P = @MKDIR_P@ | 51 | MKDIR_P = @MKDIR_P@ |
| 42 | 52 | ||
| 53 | GZIP_PROG = @GZIP_PROG@ | ||
| 54 | |||
| 55 | HTML_OPTS = --no-split --html | ||
| 56 | |||
| 43 | INFO_EXT=@INFO_EXT@ | 57 | INFO_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 |
| 48 | INFO_OPTS=@INFO_OPTS@ | 62 | INFO_OPTS=@INFO_OPTS@ |
| 49 | 63 | ||
| 64 | INSTALL = @INSTALL@ | ||
| 65 | INSTALL_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. |
| 52 | MAKEINFO = @MAKEINFO@ | 69 | MAKEINFO = @MAKEINFO@ |
| @@ -60,6 +77,10 @@ DVIPS = dvips | |||
| 60 | ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \ | 77 | ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(TEXINPUTS)" \ |
| 61 | MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" | 78 | MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" |
| 62 | 79 | ||
| 80 | DVI_TARGETS = emacs.dvi emacs-xtra.dvi | ||
| 81 | HTML_TARGETS = emacs.html | ||
| 82 | PDF_TARGETS = emacs.pdf emacs-xtra.pdf | ||
| 83 | PS_TARGETS = emacs.ps emacs-xtra.ps | ||
| 63 | 84 | ||
| 64 | EMACS_XTRA= \ | 85 | EMACS_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 | |||
| 131 | info: $(buildinfodir)/emacs$(INFO_EXT) | 157 | info: $(buildinfodir)/emacs$(INFO_EXT) |
| 132 | dvi: emacs.dvi | 158 | dvi: $(DVI_TARGETS) |
| 133 | html: emacs.html | 159 | html: $(HTML_TARGETS) |
| 134 | pdf: emacs.pdf | 160 | pdf: $(PDF_TARGETS) |
| 135 | ps: emacs.ps | 161 | ps: $(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} | |||
| 145 | emacs.dvi: ${EMACSSOURCES} | 171 | emacs.dvi: ${EMACSSOURCES} |
| 146 | $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi | 172 | $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi |
| 147 | 173 | ||
| 148 | emacs.ps: emacs.dvi | ||
| 149 | $(DVIPS) -o $@ emacs.dvi | ||
| 150 | |||
| 151 | emacs.pdf: ${EMACSSOURCES} | 174 | emacs.pdf: ${EMACSSOURCES} |
| 152 | $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs.texi | 175 | $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs.texi |
| 153 | 176 | ||
| 154 | emacs.html: ${EMACSSOURCES} | 177 | emacs.html: ${EMACSSOURCES} |
| 155 | $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ ${srcdir}/emacs.texi | 178 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/emacs.texi |
| 156 | 179 | ||
| 157 | emacs-xtra.dvi: $(EMACS_XTRA) | 180 | emacs-xtra.dvi: $(EMACS_XTRA) |
| 158 | $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-xtra.texi | 181 | $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-xtra.texi |
| 159 | 182 | ||
| 160 | emacs-xtra.ps: emacs-xtra.dvi | ||
| 161 | $(DVIPS) -o $@ emacs-xtra.dvi | ||
| 162 | |||
| 163 | emacs-xtra.pdf: $(EMACS_XTRA) | 183 | emacs-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. |
| 174 | clean: mostlyclean | 194 | clean: 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 | ||
| 180 | distclean: clean | 198 | distclean: 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 | |||
| 231 | install-dvi: dvi | ||
| 232 | umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir) | ||
| 233 | $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir) | ||
| 234 | install-html: html | ||
| 235 | umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir) | ||
| 236 | $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir) | ||
| 237 | install-pdf: pdf | ||
| 238 | umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir) | ||
| 239 | $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir) | ||
| 240 | install-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. | ||
| 250 | install-doc: install-dvi install-html install-pdf install-ps | ||
| 251 | |||
| 252 | |||
| 253 | .PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps uninstall-doc | ||
| 254 | |||
| 255 | uninstall-dvi: | ||
| 256 | for file in $(DVI_TARGETS); do \ | ||
| 257 | rm -f $(DESTDIR)$(dvidir)/$${file}; \ | ||
| 258 | done | ||
| 259 | uninstall-html: | ||
| 260 | for file in $(HTML_TARGETS); do \ | ||
| 261 | rm -f $(DESTDIR)$(htmldir)/$${file}; \ | ||
| 262 | done | ||
| 263 | uninstall-ps: | ||
| 264 | ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \ | ||
| 265 | for file in $(PS_TARGETS); do \ | ||
| 266 | rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \ | ||
| 267 | done | ||
| 268 | uninstall-pdf: | ||
| 269 | for file in $(PDF_TARGETS); do \ | ||
| 270 | rm -f $(DESTDIR)$(pdfdir)/$${file}; \ | ||
| 271 | done | ||
| 272 | |||
| 273 | uninstall-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 | ||
| 1195 | GTK resources | 1195 | GTK 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 | |||
| 873 | which configures Emacs for editing a certain sort of text. Ideally, | 873 | which configures Emacs for editing a certain sort of text. Ideally, |
| 874 | each programming language has its own major mode. @xref{Major Modes}. | 874 | each 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 |
| 877 | The space between the usable part of a window (including the | 878 | The space between the usable part of a window (including the |
| 878 | fringe) and the window edge. | 879 | fringe) 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 | |||
| 109 | delete all the text in the region if it is active (@pxref{Using | 109 | delete all the text in the region if it is active (@pxref{Using |
| 110 | Region}). | 110 | Region}). |
| 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 | ||
| 211 | Emacs can be built and run under GNUstep, but there are still | 211 | Emacs can be built and run under GNUstep, but there are still |
| 212 | issues to be addressed. Interested developers should contact | 212 | issues 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 | ||
| 218 | emacs-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 |
| 2260 | various @dfn{justification styles} for filling. These commands apply | 2261 | various @dfn{justification styles} for filling. These commands apply |
| @@ -2293,13 +2294,13 @@ commands do nothing on text with this setting. You can, however, | |||
| 2293 | still indent the left margin. | 2294 | still 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 |
| 2298 | submenu in the Text Properties menu. | 2300 | submenu in the Text Properties menu. The default justification style |
| 2299 | The default justification style is specified by the per-buffer | 2301 | is specified by the per-buffer variable @code{default-justification}. |
| 2300 | variable @code{default-justification}. Its value should be one of the | 2302 | Its value should be one of the symbols @code{left}, @code{right}, |
| 2301 | symbols @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 | |||
| 658 | decide for themselves. | 658 | decide for themselves. |
| 659 | 659 | ||
| 660 | When you have finished writing your report, type @kbd{C-c C-c} and it | 660 | When you have finished writing your report, type @kbd{C-c C-c} and it |
| 661 | will be sent to the Emacs maintainers at @email{bug-gnu-emacs@@gnu.org}. | 661 | will 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 |
| 663 | address.) If you cannot send mail from inside Emacs, you can copy the | 669 | address.) If you cannot send mail from inside Emacs, you can copy the |
| 664 | text of your report to your normal mail client (if your system | 670 | text 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 | ||
| 1141 | If you would like to work on improving Emacs, please contact | 1147 | If you would like to work on improving Emacs, please contact the maintainers at |
| 1142 | the maintainers at @email{emacs-devel@@gnu.org}. You can ask for | 1148 | @ifnothtml |
| 1143 | suggested 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 | ||
| 1153 | emacs-devel mailing list}. | ||
| 1154 | @end ifhtml | ||
| 1155 | You can ask for suggested projects or suggest your own ideas. | ||
| 1144 | 1156 | ||
| 1145 | If you have already written an improvement, please tell us about it. If | 1157 | If you have already written an improvement, please tell us about it. If |
| 1146 | you have not yet started work, it is useful to contact | 1158 | you have not yet started work, it is useful to contact |
| 1147 | @email{emacs-devel@@gnu.org} before you start; it might be | 1159 | @ifnothtml |
| 1148 | possible to suggest ways to make your extension fit in better with the | 1160 | @email{emacs-devel@@gnu.org} |
| 1149 | rest of Emacs. | 1161 | @end ifnothtml |
| 1162 | @ifhtml | ||
| 1163 | @url{http://lists.gnu.org/mailman/listinfo/emacs-devel, emacs-devel} | ||
| 1164 | @end ifhtml | ||
| 1165 | before you start; it might be possible to suggest ways to make your | ||
| 1166 | extension fit in better with the rest of Emacs. | ||
| 1150 | 1167 | ||
| 1151 | The development version of Emacs can be downloaded from the | 1168 | The development version of Emacs can be downloaded from the |
| 1152 | repository where it is actively maintained by a group of developers. | 1169 | repository 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 |
| 1167 | Send a message to the mailing list | 1184 | Send a message to |
| 1168 | @email{help-gnu-emacs@@gnu.org}, or post your request on | 1185 | @ifnothtml |
| 1169 | newsgroup @code{gnu.emacs.help}. (This mailing list and newsgroup | 1186 | the mailing list @email{help-gnu-emacs@@gnu.org}, |
| 1170 | interconnect, 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 | ||
| 1190 | help-gnu-emacs mailing list}, | ||
| 1191 | @end ifhtml | ||
| 1192 | or post your request on newsgroup @code{gnu.emacs.help}. (This | ||
| 1193 | mailing list and newsgroup interconnect, so it does not matter which | ||
| 1194 | one you use.) | ||
| 1171 | 1195 | ||
| 1172 | @item | 1196 | @item |
| 1173 | Look in the service directory for someone who might help you for a fee. | 1197 | Look 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}) |
| 262 | Font name for pop-up menu items, in non-toolkit versions of Emacs. (For | 262 | Font name for pop-up menu items, in non-toolkit versions of Emacs. (For |
| 263 | toolkit versions, see @ref{Lucid Resources}, also see @ref{LessTif | 263 | toolkit versions, see @ref{Lucid Resources}, also see @ref{Motif |
| 264 | Resources}.) | 264 | Resources}.) |
| 265 | 265 | ||
| 266 | @item @code{selectionTimeout} (class @code{SelectionTimeout}) | 266 | @item @code{selectionTimeout} (class @code{SelectionTimeout}) |
| @@ -370,15 +370,15 @@ elements. Default is 1. | |||
| 370 | Margin of the menu bar, in characters. Default is 1. | 370 | Margin 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 |
| 379 | Motif widgets, you can use X resources to customize the appearance of | 379 | LessTif widgets, you can use X resources to customize the appearance |
| 380 | the menu bar, pop-up menus, and dialog boxes. However, the resources | 380 | of the menu bar, pop-up menus, and dialog boxes. However, the |
| 381 | are organized differently from Lucid widgets. | 381 | resources 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} |
| 384 | class, and they must be specified in this form: | 384 | class, 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 @@ | |||
| 1 | 2013-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 | |||
| 6 | 2013-09-01 Dani Moncayo <dmoncayo@gmail.com> | ||
| 7 | |||
| 8 | * emacs-lisp-intro.texi (beginning-of-buffer complete): | ||
| 9 | Update function details. (Bug#15085) | ||
| 10 | |||
| 11 | 2013-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 | |||
| 16 | 2013-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 | |||
| 40 | 2013-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 | |||
| 1 | 2013-08-02 Xue Fuqiao <xfq.free@gmail.com> | 48 | 2013-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 | ||
| 20 | SHELL = /bin/sh | 20 | SHELL = @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. |
| 31 | emacsdir = $(srcdir)/../emacs | 31 | emacsdir = $(srcdir)/../emacs |
| 32 | 32 | ||
| 33 | prefix = @prefix@ | ||
| 34 | datarootdir = @datarootdir@ | ||
| 35 | datadir = @datadir@ | ||
| 36 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
| 37 | docdir = @docdir@ | ||
| 38 | dvidir = @dvidir@ | ||
| 39 | htmldir = @htmldir@ | ||
| 40 | pdfdir = @pdfdir@ | ||
| 41 | psdir = @psdir@ | ||
| 42 | |||
| 33 | MKDIR_P = @MKDIR_P@ | 43 | MKDIR_P = @MKDIR_P@ |
| 34 | 44 | ||
| 45 | GZIP_PROG = @GZIP_PROG@ | ||
| 46 | |||
| 47 | HTML_OPTS = --no-split --html | ||
| 48 | |||
| 35 | INFO_EXT=@INFO_EXT@ | 49 | INFO_EXT=@INFO_EXT@ |
| 36 | # Options used only when making info output. | 50 | # Options used only when making info output. |
| 37 | INFO_OPTS=@INFO_OPTS@ | 51 | INFO_OPTS=@INFO_OPTS@ |
| 38 | 52 | ||
| 53 | INSTALL = @INSTALL@ | ||
| 54 | INSTALL_DATA = @INSTALL_DATA@ | ||
| 55 | |||
| 39 | MAKEINFO = @MAKEINFO@ | 56 | MAKEINFO = @MAKEINFO@ |
| 40 | MAKEINFO_OPTS = --force -I $(emacsdir) -I $(srcdir) | 57 | MAKEINFO_OPTS = --force -I $(emacsdir) -I $(srcdir) |
| 41 | TEXI2DVI = texi2dvi | 58 | TEXI2DVI = texi2dvi |
| @@ -45,6 +62,11 @@ DVIPS = dvips | |||
| 45 | ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \ | 62 | ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \ |
| 46 | MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" | 63 | MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" |
| 47 | 64 | ||
| 65 | DVI_TARGETS = emacs-lisp-intro.dvi | ||
| 66 | HTML_TARGETS = emacs-lisp-intro.html | ||
| 67 | PDF_TARGETS = emacs-lisp-intro.pdf | ||
| 68 | PS_TARGETS = emacs-lisp-intro.ps | ||
| 69 | |||
| 48 | mkinfodir = @${MKDIR_P} ${buildinfodir} | 70 | mkinfodir = @${MKDIR_P} ${buildinfodir} |
| 49 | 71 | ||
| 50 | srcs = ${srcdir}/emacs-lisp-intro.texi ${srcdir}/doclicense.texi \ | 72 | srcs = ${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 | |||
| 55 | info: ${buildinfodir}/eintr$(INFO_EXT) | 82 | info: ${buildinfodir}/eintr$(INFO_EXT) |
| 56 | 83 | ||
| 57 | dvi: emacs-lisp-intro.dvi | 84 | dvi: $(DVI_TARGETS) |
| 58 | html: emacs-lisp-intro.html | 85 | html: $(HTML_TARGETS) |
| 59 | pdf: emacs-lisp-intro.pdf | 86 | pdf: $(PDF_TARGETS) |
| 60 | ps: emacs-lisp-intro.ps | 87 | ps: $(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} | |||
| 69 | emacs-lisp-intro.dvi: ${srcs} | 96 | emacs-lisp-intro.dvi: ${srcs} |
| 70 | $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-lisp-intro.texi | 97 | $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-lisp-intro.texi |
| 71 | 98 | ||
| 72 | emacs-lisp-intro.ps: emacs-lisp-intro.dvi | ||
| 73 | $(DVIPS) -o $@ emacs-lisp-intro.dvi | ||
| 74 | |||
| 75 | emacs-lisp-intro.pdf: ${srcs} | 99 | emacs-lisp-intro.pdf: ${srcs} |
| 76 | $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-lisp-intro.texi | 100 | $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-lisp-intro.texi |
| 77 | 101 | ||
| 78 | emacs-lisp-intro.html: ${srcs} | 102 | emacs-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 | ||
| 87 | clean: mostlyclean | 111 | clean: 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 | ||
| 92 | distclean: clean | 115 | distclean: 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 | |||
| 147 | install-dvi: dvi | ||
| 148 | umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir) | ||
| 149 | $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir) | ||
| 150 | install-html: html | ||
| 151 | umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir) | ||
| 152 | $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir) | ||
| 153 | install-pdf: pdf | ||
| 154 | umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir) | ||
| 155 | $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir) | ||
| 156 | install-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. | ||
| 166 | install-doc: install-dvi install-html install-pdf install-ps | ||
| 167 | |||
| 168 | |||
| 169 | .PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps uninstall-doc | ||
| 170 | |||
| 171 | uninstall-dvi: | ||
| 172 | for file in $(DVI_TARGETS); do \ | ||
| 173 | rm -f $(DESTDIR)$(dvidir)/$${file}; \ | ||
| 174 | done | ||
| 175 | uninstall-html: | ||
| 176 | for file in $(HTML_TARGETS); do \ | ||
| 177 | rm -f $(DESTDIR)$(htmldir)/$${file}; \ | ||
| 178 | done | ||
| 179 | uninstall-ps: | ||
| 180 | ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \ | ||
| 181 | for file in $(PS_TARGETS); do \ | ||
| 182 | rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \ | ||
| 183 | done | ||
| 184 | uninstall-pdf: | ||
| 185 | for file in $(PDF_TARGETS); do \ | ||
| 186 | rm -f $(DESTDIR)$(pdfdir)/$${file}; \ | ||
| 187 | done | ||
| 188 | |||
| 189 | uninstall-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 |
| 956 | Robert J. Chassell | 956 | Robert J. Chassell |
| 957 | @ifnothtml | ||
| 957 | @email{bob@@gnu.org} | 958 | @email{bob@@gnu.org} |
| 959 | @end ifnothtml | ||
| 960 | @ifhtml | ||
| 961 | bob@@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 | |||
| 3260 | end of the comment. To stretch a comment over two or more lines, begin | 3265 | end of the comment. To stretch a comment over two or more lines, begin |
| 3261 | each line with a semicolon. | 3266 | each 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} |
| 3264 | File}, and @ref{Comments, , Comments, elisp, The GNU Emacs Lisp | 3269 | File}, and @ref{Comments, , Comments, elisp, The GNU Emacs Lisp |
| 3265 | Reference Manual}, for more about comments. | 3270 | Reference 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 | |||
| 6385 | invoked with an argument: | 6390 | invoked 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 | |||
| 6394 | means that the cursor is always located @emph{at least} the requested | 6399 | means that the cursor is always located @emph{at least} the requested |
| 6395 | tenths of the way through the buffer, which is a nicety that is, | 6400 | tenths of the way through the buffer, which is a nicety that is, |
| 6396 | perhaps, not necessary, but which, if it did not occur, would be sure | 6401 | perhaps, not necessary, but which, if it did not occur, would be sure |
| 6397 | to draw complaints. | 6402 | to draw complaints. (The @code{(not (consp arg))} portion is so that |
| 6398 | 6403 | if you specify the command with a @kbd{C-u}, but without a number, | |
| 6399 | On the other hand, it also means that if you specify the command with | 6404 | that is to say, if the `raw prefix argument' is simply a cons cell, |
| 6400 | a @kbd{C-u}, but without a number, that is to say, if the `raw prefix | 6405 | the command does not put you at the beginning of the second line.) |
| 6401 | argument' is simply a cons cell, then the command puts you at the | ||
| 6402 | beginning of the second line @dots{} I don't know whether this is | ||
| 6403 | intended or whether no one has dealt with the code to avoid this | ||
| 6404 | happening. | ||
| 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 | ||
| 8313 | The arguments are @code{beg} and @code{end} and the function is | 8314 | The arguments are @code{beg} and @code{end} and the function is |
| 8314 | interactive with @code{"r"}, so the two arguments must refer to the | 8315 | interactive with @code{"r"}, so the two arguments must refer to the |
| 8315 | beginning and end of the region. If you have been reading though this | 8316 | beginning and end of the region. If you have been reading through this |
| 8316 | document from the beginning, understanding these parts of a function is | 8317 | document from the beginning, understanding these parts of a function is |
| 8317 | almost becoming routine. | 8318 | almost 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 | |||
| 16977 | set by @code{defconst}. (You can change it; the value set is a | 16978 | set by @code{defconst}. (You can change it; the value set is a |
| 16978 | variable; but please do not.) | 16979 | variable; 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 @@ | |||
| 1 | 2013-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 | |||
| 6 | 2013-08-26 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 7 | |||
| 8 | * variables.texi (File Local Variables): Don't recommend quoting! Ever! | ||
| 9 | |||
| 10 | 2013-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 | |||
| 15 | 2013-08-18 Xue Fuqiao <xfq.free@gmail.com> | ||
| 16 | |||
| 17 | * positions.texi (Positions): Improve indexing. | ||
| 18 | |||
| 19 | 2013-08-18 Eli Zaretskii <eliz@gnu.org> | ||
| 20 | |||
| 21 | * markers.texi (The Region): Improve indexing. | ||
| 22 | |||
| 23 | 2013-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 | |||
| 34 | 2013-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 | |||
| 44 | 2013-08-15 Xue Fuqiao <xfq.free@gmail.com> | ||
| 45 | |||
| 46 | * markers.texi (The Region): Add/move indexes. | ||
| 47 | |||
| 48 | 2013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 49 | |||
| 50 | * display.texi (ImageMagick Images): Mention :content-type and | ||
| 51 | `image-content-type-suffixes'. | ||
| 52 | |||
| 53 | 2013-08-13 Xue Fuqiao <xfq.free@gmail.com> | ||
| 54 | |||
| 55 | * positions.texi (Word Motion): Remove redundant sentence. | ||
| 56 | |||
| 57 | 2013-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 | |||
| 62 | 2013-08-13 Xue Fuqiao <xfq.free@gmail.com> | ||
| 63 | |||
| 64 | * frames.texi (Display Feature Testing): Add indexes. | ||
| 65 | |||
| 66 | 2013-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 | |||
| 86 | 2013-08-10 Xue Fuqiao <xfq.free@gmail.com> | ||
| 87 | |||
| 88 | * edebug.texi (Instrumenting Macro Calls): Use @defmac for macros. | ||
| 89 | |||
| 90 | 2013-08-09 Xue Fuqiao <xfq.free@gmail.com> | ||
| 91 | |||
| 92 | * control.texi (Error Symbols): Minor fix for previous change. | ||
| 93 | |||
| 94 | 2013-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 | |||
| 101 | 2013-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 | |||
| 107 | 2013-08-05 Xue Fuqiao <xfq.free@gmail.com> | ||
| 108 | |||
| 109 | * windows.texi (Window Start and End): Add an index. | ||
| 110 | |||
| 1 | 2013-08-02 Xue Fuqiao <xfq.free@gmail.com> | 111 | 2013-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 | ||
| 20 | SHELL = /bin/sh | 20 | SHELL = @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. |
| 34 | emacsdir = $(srcdir)/../emacs | 34 | emacsdir = $(srcdir)/../emacs |
| 35 | 35 | ||
| 36 | prefix = @prefix@ | ||
| 37 | datarootdir = @datarootdir@ | ||
| 38 | datadir = @datadir@ | ||
| 39 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
| 40 | docdir = @docdir@ | ||
| 41 | dvidir = @dvidir@ | ||
| 42 | htmldir = @htmldir@ | ||
| 43 | pdfdir = @pdfdir@ | ||
| 44 | psdir = @psdir@ | ||
| 45 | |||
| 36 | MKDIR_P = @MKDIR_P@ | 46 | MKDIR_P = @MKDIR_P@ |
| 37 | 47 | ||
| 48 | GZIP_PROG = @GZIP_PROG@ | ||
| 49 | |||
| 50 | HTML_OPTS = --no-split --html | ||
| 51 | |||
| 38 | INFO_EXT=@INFO_EXT@ | 52 | INFO_EXT=@INFO_EXT@ |
| 39 | # Options used only when making info output. | 53 | # Options used only when making info output. |
| 40 | INFO_OPTS=@INFO_OPTS@ | 54 | INFO_OPTS=@INFO_OPTS@ |
| 41 | 55 | ||
| 56 | INSTALL = @INSTALL@ | ||
| 57 | INSTALL_DATA = @INSTALL_DATA@ | ||
| 58 | |||
| 42 | MAKEINFO = @MAKEINFO@ | 59 | MAKEINFO = @MAKEINFO@ |
| 43 | MAKEINFO_OPTS = --force --enable-encoding -I $(emacsdir) -I $(srcdir) | 60 | MAKEINFO_OPTS = --force --enable-encoding -I $(emacsdir) -I $(srcdir) |
| 44 | TEXI2DVI = texi2dvi | 61 | TEXI2DVI = texi2dvi |
| @@ -48,6 +65,11 @@ DVIPS = dvips | |||
| 48 | ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \ | 65 | ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \ |
| 49 | MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" | 66 | MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" |
| 50 | 67 | ||
| 68 | DVI_TARGETS = elisp.dvi | ||
| 69 | HTML_TARGETS = elisp.html | ||
| 70 | PDF_TARGETS = elisp.pdf | ||
| 71 | PS_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 | ||
| 53 | srcs = \ | 75 | srcs = \ |
| @@ -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 | |||
| 111 | info: $(buildinfodir)/elisp$(INFO_EXT) | 138 | info: $(buildinfodir)/elisp$(INFO_EXT) |
| 112 | dvi: elisp.dvi | 139 | dvi: $(DVI_TARGETS) |
| 113 | html: elisp.html | 140 | html: $(HTML_TARGETS) |
| 114 | pdf: elisp.pdf | 141 | pdf: $(PDF_TARGETS) |
| 115 | ps: elisp.ps | 142 | ps: $(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 | ||
| 125 | elisp.html: $(srcs) | 152 | elisp.html: $(srcs) |
| 126 | $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $(srcdir)/elisp.texi | 153 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ $(srcdir)/elisp.texi |
| 127 | |||
| 128 | elisp.ps: elisp.dvi | ||
| 129 | $(DVIPS) -o $@ elisp.dvi | ||
| 130 | 154 | ||
| 131 | elisp.pdf: $(srcs) | 155 | elisp.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 | ||
| 142 | clean: mostlyclean | 166 | clean: 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 | ||
| 148 | distclean: clean | 171 | distclean: 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 | |||
| 203 | install-dvi: dvi | ||
| 204 | umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir) | ||
| 205 | $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir) | ||
| 206 | install-html: html | ||
| 207 | umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir) | ||
| 208 | $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir) | ||
| 209 | install-pdf: pdf | ||
| 210 | umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir) | ||
| 211 | $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir) | ||
| 212 | install-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. | ||
| 222 | install-doc: install-dvi install-html install-pdf install-ps | ||
| 223 | |||
| 224 | |||
| 225 | .PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps uninstall-doc | ||
| 226 | |||
| 227 | uninstall-dvi: | ||
| 228 | for file in $(DVI_TARGETS); do \ | ||
| 229 | rm -f $(DESTDIR)$(dvidir)/$${file}; \ | ||
| 230 | done | ||
| 231 | uninstall-html: | ||
| 232 | for file in $(HTML_TARGETS); do \ | ||
| 233 | rm -f $(DESTDIR)$(htmldir)/$${file}; \ | ||
| 234 | done | ||
| 235 | uninstall-ps: | ||
| 236 | ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \ | ||
| 237 | for file in $(PS_TARGETS); do \ | ||
| 238 | rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \ | ||
| 239 | done | ||
| 240 | uninstall-pdf: | ||
| 241 | for file in $(PDF_TARGETS); do \ | ||
| 242 | rm -f $(DESTDIR)$(pdfdir)/$${file}; \ | ||
| 243 | done | ||
| 244 | |||
| 245 | uninstall-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 | |||
| 890 | the circumstances of the error. | 890 | the circumstances of the error. |
| 891 | 891 | ||
| 892 | The argument @var{error-symbol} must be an @dfn{error symbol}---a symbol | 892 | The argument @var{error-symbol} must be an @dfn{error symbol}---a symbol |
| 893 | bearing a property @code{error-conditions} whose value is a list of | 893 | defined with @code{define-error}. This is how Emacs Lisp classifies different |
| 894 | condition names. This is how Emacs Lisp classifies different sorts of | 894 | sorts of errors. @xref{Error Symbols}, for a description of error symbols, |
| 895 | errors. @xref{Error Symbols}, for a description of error symbols, | ||
| 896 | error conditions and condition names. | 895 | error conditions and condition names. |
| 897 | 896 | ||
| 898 | If the error is not handled, the two arguments are used in printing | 897 | If 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 | ||
| 1120 | Each error that occurs has an @dfn{error symbol} that describes what | 1119 | Each error that occurs has an @dfn{error symbol} that describes what |
| 1121 | kind of error it is. The @code{error-conditions} property of this | 1120 | kind of error it is, and which describes also a list of condition names |
| 1122 | symbol is a list of condition names (@pxref{Error Symbols}). Emacs | 1121 | (@pxref{Error Symbols}). Emacs |
| 1123 | searches all the active @code{condition-case} forms for a handler that | 1122 | searches all the active @code{condition-case} forms for a handler that |
| 1124 | specifies one or more of these condition names; the innermost matching | 1123 | specifies 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 |
| 1264 | the kind of error you have in mind. Each error has one and only one | 1264 | the 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 | |||
| 1275 | error symbol if that is distinct from @code{error}, and perhaps some | 1275 | error symbol if that is distinct from @code{error}, and perhaps some |
| 1276 | intermediate classifications. | 1276 | intermediate 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 |
| 1280 | This 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 | 1281 | This parent defines the conditions that this kind of error belongs to. |
| 1282 | members of this list.) Thus, the hierarchy of condition names is | 1282 | The transitive set of parents always includes the error symbol itself, and the |
| 1283 | defined by the @code{error-conditions} properties of the error symbols. | 1283 | symbol @code{error}. Because quitting is not considered an error, the set of |
| 1284 | Because quitting is not considered an error, the value of the | 1284 | parents 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 |
| 1289 | should have an @code{error-message} property whose value is a string to | 1289 | is a string to be printed when that error is signaled but not handled. If that |
| 1290 | be printed when that error is signaled but not handled. If the | 1290 | message is not valid, the error message @samp{peculiar error} is used. |
| 1291 | error 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 | |
| 1293 | message @samp{peculiar error} is used. @xref{Definition of signal}. | 1293 | Internally, the set of parents is stored in the @code{error-conditions} |
| 1294 | property 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 |
| 1311 | This error has three condition names: @code{new-error}, the narrowest | 1306 | This error has several condition names: @code{new-error}, the narrowest |
| 1312 | classification; @code{my-own-errors}, which we imagine is a wider | 1307 | classification; @code{my-own-errors}, which we imagine is a wider |
| 1313 | classification; and @code{error}, which is the widest of all. | 1308 | classification; and all the conditions of @code{my-own-errors} which should |
| 1309 | include @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 |
| 1316 | not end with a period. This is for consistency with the rest of Emacs. | 1312 | not 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. |
| 1330 | This example handles @code{new-error} and any other errors in the class | 1326 | This 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}. | |||
| 217 | continuation to display them, computing the continuation lines can | 217 | continuation to display them, computing the continuation lines can |
| 218 | make redisplay slow. The column computation and indentation functions | 218 | make redisplay slow. The column computation and indentation functions |
| 219 | also become slow. Then you might find it advisable to set | 219 | also 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 |
| 223 | If this variable is non-@code{nil}, various indentation and motion | 223 | If this variable is non-@code{nil}, various indentation and motion |
| 224 | functions, and Emacs redisplay, cache the results of scanning the | 224 | functions, and Emacs redisplay, cache the results of scanning the |
| 225 | buffer, and consult the cache to avoid rescanning regions of the buffer | 225 | buffer, 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 | ||
| 1247 | You can use @dfn{overlays} to alter the appearance of a buffer's text on | 1248 | You can use @dfn{overlays} to alter the appearance of a buffer's text on |
| 1248 | the screen, for the sake of presentation features. An overlay is an | 1249 | the 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 | |||
| 4663 | wish. @code{:max-width} and @code{:max-height} will always preserve | 4664 | wish. @code{:max-width} and @code{:max-height} will always preserve |
| 4664 | the aspect ratio. | 4665 | the aspect ratio. |
| 4665 | 4666 | ||
| 4667 | @item :format | ||
| 4668 | ImageMagick tries to auto-detect the image type, but it isn't always | ||
| 4669 | able to. By using @code{:format-type}, we can give ImageMagick a hint | ||
| 4670 | to try to help it. It's used in conjunction with the | ||
| 4671 | @code{image-format-suffixes} variable, which provides a mapping from | ||
| 4672 | content types to file name suffixes. This is then given to | ||
| 4673 | ImageMagick as a file name hint. | ||
| 4674 | |||
| 4666 | @item :rotation | 4675 | @item :rotation |
| 4667 | Specifies a rotation angle in degrees. | 4676 | Specifies 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 | |||
| 1132 | definitions in Lisp, but @code{def-edebug-spec} makes it possible to | 1132 | definitions in Lisp, but @code{def-edebug-spec} makes it possible to |
| 1133 | define Edebug specifications for special forms implemented in C. | 1133 | define 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 |
| 1136 | Specify which expressions of a call to macro @var{macro} are forms to be | 1136 | Specify which expressions of a call to macro @var{macro} are forms to be |
| 1137 | evaluated. @var{specification} should be the edebug specification. | 1137 | evaluated. @var{specification} should be the edebug specification. |
| 1138 | Neither argument is evaluated. | 1138 | Neither argument is evaluated. |
| 1139 | 1139 | ||
| 1140 | The @var{macro} argument can actually be any symbol, not just a macro | 1140 | The @var{macro} argument can actually be any symbol, not just a macro |
| 1141 | name. | 1141 | name. |
| 1142 | @end deffn | 1142 | @end defmac |
| 1143 | 1143 | ||
| 1144 | Here is a table of the possibilities for @var{specification} and how each | 1144 | Here is a table of the possibilities for @var{specification} and how each |
| 1145 | directs processing of arguments. | 1145 | directs 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 |
| 11 | grouped by concept. The list includes each symbol's message (on the | 11 | by 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 | 12 | to a description of how the error can occur. |
| 13 | description 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 |
| 16 | list of symbols. Normally this list includes the error symbol itself | 15 | list of symbols. Normally this list includes the error symbol itself |
| 17 | and the symbol @code{error}. Occasionally it includes additional | 16 | and the symbol @code{error}. Occasionally it includes additional |
| 18 | symbols, which are intermediate classifications, narrower than | 17 | symbols, 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 |
| 25 | condition @code{error}, because quitting is not considered an error. | 24 | condition @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}), |
| 30 | but some are defined in Lisp. For example, the file @file{userlock.el} | 27 | but some are defined in Lisp. For example, the file @file{userlock.el} |
| 31 | defines the @code{file-locked} and @code{file-supersession} errors. | 28 | defines 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 | |||
| 776 | arguments must all exist as actual files or directories unless | 776 | arguments must all exist as actual files or directories unless |
| 777 | otherwise noted. | 777 | otherwise noted. |
| 778 | 778 | ||
| 779 | @cindex file names, trailing whitespace | ||
| 780 | @cindex trailing blanks in file names | ||
| 781 | Be careful with file names that end in blanks: some filesystems | ||
| 782 | (notably, MS-Windows) will ignore trailing whitespace in file names, | ||
| 783 | and return information about the file after stripping those blanks | ||
| 784 | from the name, not about the file whose name you passed to the | ||
| 785 | functions 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. | |||
| 446 | If you invoke Emacs with command-line options that specify frame | 446 | If you invoke Emacs with command-line options that specify frame |
| 447 | appearance, those options take effect by adding elements to either | 447 | appearance, 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 |
| 449 | which affect just the initial frame, such as @samp{-geometry} and | 449 | which 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 |
| 451 | to @code{default-frame-alist}. @pxref{Emacs Invocation,, Command Line | 451 | to @code{default-frame-alist}. @pxref{Emacs Invocation,, Command Line |
| 452 | Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}. | 452 | Arguments 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 | ||
| 1367 | At any time, one frame in Emacs is the @dfn{selected frame}. The selected | 1367 | At any time, one frame in Emacs is the @dfn{selected frame}. The selected |
| 1368 | window always resides on the selected frame. | 1368 | window 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 |
| 2395 | This function returns the backing store capability of the display. | 2396 | This function returns the backing store capability of the display. |
| 2396 | Backing store means recording the pixels of windows (and parts of | 2397 | Backing 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 | |||
| 2402 | when the question is inapplicable to a certain kind of display. | 2403 | when 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 |
| 2406 | This function returns non-@code{nil} if the display supports the | 2408 | This function returns non-@code{nil} if the display supports the |
| 2407 | SaveUnder feature. That feature is used by pop-up windows | 2409 | SaveUnder 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 | |||
| 270 | element number zero. If the length of @var{list} is @var{n} or less, | 270 | element number zero. If the length of @var{list} is @var{n} or less, |
| 271 | the value is @code{nil}. | 271 | the value is @code{nil}. |
| 272 | 272 | ||
| 273 | If @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 |
| 275 | If @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 | |||
| 300 | words, it skips past the first @var{n} links of @var{list} and returns | 298 | words, it skips past the first @var{n} links of @var{list} and returns |
| 301 | what follows. | 299 | what follows. |
| 302 | 300 | ||
| 303 | If @var{n} is zero or negative, @code{nthcdr} returns all of | 301 | @c "or negative" removed 2013/08; see bug#15059. |
| 302 | If @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 | |||
| 216 | The new marker's insertion type is specified by the argument | 216 | The 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 | ||
| 219 | If passed an integer argument less than 1, @code{copy-marker} returns a | 221 | If passed an integer argument less than 1, @code{copy-marker} returns a |
| 220 | new marker that points to the beginning of the current buffer. If | 222 | new marker that points to the beginning of the current buffer. If |
| 221 | passed an integer argument greater than the length of the buffer, | 223 | passed 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 |
| 223 | buffer. | 225 | buffer. |
| 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 | |||
| 279 | This function returns the buffer that @var{marker} points into, or | 282 | This 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} | |||
| 349 | in @var{buffer}. If @var{buffer} is not provided, it defaults to | 354 | in @var{buffer}. If @var{buffer} is not provided, it defaults to |
| 350 | the current buffer. | 355 | the current buffer. |
| 351 | 356 | ||
| 357 | @c This behavior used to be documented until 2013/08. | ||
| 358 | @ignore | ||
| 352 | If @var{position} is less than 1, @code{set-marker} moves @var{marker} | 359 | If @var{position} is less than 1, @code{set-marker} moves @var{marker} |
| 353 | to the beginning of the buffer. If @var{position} is greater than the | 360 | to the beginning of the buffer. If @var{position} is greater than the |
| 354 | size of the buffer (@pxref{Point}), @code{set-marker} moves marker to | 361 | size of the buffer (@pxref{Point}), @code{set-marker} moves marker to |
| 355 | the end of the buffer. If @var{position} is @code{nil} or a marker | 362 | the end of the buffer. |
| 356 | that points nowhere, then @var{marker} is set to point nowhere. | 363 | @end ignore |
| 364 | If @var{position} is @code{nil} or a marker that points nowhere, then | ||
| 365 | @var{marker} is set to point nowhere. | ||
| 357 | 366 | ||
| 358 | The value returned is @var{marker}. | 367 | The 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 |
| 390 | mark}. When a buffer is newly created, this marker exists but does | 399 | mark}. 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 | |||
| 423 | Mark mode. (Another is that this enables highlighting of the region | 432 | Mark mode. (Another is that this enables highlighting of the region |
| 424 | when the mark is active. @xref{Display}.) | 433 | when 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 |
| 427 | list of markers containing previous values of the mark. When editing | 437 | list of markers containing previous values of the mark. When editing |
| 428 | commands change the mark, they should normally save the old value of the | 438 | commands 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}. |
| 650 | Various functions operate on text delimited by point and the mark, but | 665 | Various 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 | |||
| 668 | larger. | 683 | larger. |
| 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 |
| 672 | command designed to operate on a region should normally use | 688 | command 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 | |||
| 680 | function is intended to be used by commands that operate on the | 696 | function is intended to be used by commands that operate on the |
| 681 | region, instead of on text near point, when the mark is active. | 697 | region, instead of on text near point, when the mark is active. |
| 682 | 698 | ||
| 699 | @cindex empty region | ||
| 700 | @vindex use-empty-active-region | ||
| 683 | A region is valid if it has a non-zero size, or if the user option | 701 | A 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 | ||
| 3385 | SMIE is a package that provides a generic navigation and indentation | 3386 | SMIE is a package that provides a generic navigation and indentation |
| 3386 | engine. Based on a very simple parser using an ``operator precedence | 3387 | engine. 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 | ||
| 3552 | The usual way to define the SMIE grammar of a language is by | 3555 | The usual way to define the SMIE grammar of a language is by |
| 3553 | defining a new global variable that holds the precedence table by | 3556 | defining 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 | ||
| 3627 | SMIE comes with a predefined lexical analyzer which uses syntax tables | 3632 | SMIE comes with a predefined lexical analyzer which uses syntax tables |
| 3628 | in the following way: any sequence of characters that have word or | 3633 | in 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 | ||
| 3761 | Based on the provided grammar, SMIE will be able to provide automatic | 3767 | Based on the provided grammar, SMIE will be able to provide automatic |
| 3762 | indentation without any extra effort. But in practice, this default | 3768 | indentation 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 | |||
| 248 | characters. | 248 | characters. |
| 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 |
| 253 | This function returns a unibyte string containing a single byte of | 254 | This 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 | |||
| 401 | during text processing and display. Thus, character properties are an | 402 | during text processing and display. Thus, character properties are an |
| 402 | important part of specifying the character's semantics. | 403 | important 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 |
| 405 | of character properties. In particular, Emacs supports the | 408 | of 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. |
| 10 | More precisely, a position identifies the place between two characters | 11 | More 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 |
| 148 | This function sets point in the current buffer to the value | 149 | This 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}. |
| 150 | beginning of the buffer. If @var{position} is greater than the length | 151 | @c This behavior used to be documented until 2013/08. |
| 151 | of the buffer, it moves point to the end. | 152 | @ignore |
| 153 | If @var{position} is less than 1, it moves point to the beginning of | ||
| 154 | the buffer. If @var{position} is greater than the length of the | ||
| 155 | buffer, it moves point to the end. | ||
| 156 | @end ignore | ||
| 152 | 157 | ||
| 153 | If narrowing is in effect, @var{position} still counts from the | 158 | If narrowing is in effect, @var{position} still counts from the |
| 154 | beginning of the buffer, but point cannot go outside the accessible | 159 | beginning 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 |
| 193 | This function moves point forward @var{count} words (or backward if | 198 | This 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 |
| 195 | forward one word. | 200 | defaults to 1. |
| 196 | 201 | ||
| 197 | ``Moving one word'' means moving until point crosses a | 202 | ``Moving one word'' means moving until point crosses a |
| 198 | word-constituent character and then encounters a word-separator | 203 | word-constituent character and then encounters a word-separator |
| @@ -210,7 +215,7 @@ If @code{inhibit-field-text-motion} is non-@code{nil}, | |||
| 210 | this function ignores field boundaries. | 215 | this function ignores field boundaries. |
| 211 | 216 | ||
| 212 | In an interactive call, @var{count} is specified by the numeric prefix | 217 | In an interactive call, @var{count} is specified by the numeric prefix |
| 213 | argument. If @var{count} is omitted or @code{nil}, it defaults to 1. | 218 | argument. |
| 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 |
| 484 | thus take time proportional to the distance scanned. If you intend to | 489 | thus take time proportional to the distance scanned. If you intend to |
| 485 | use them heavily, Emacs provides caches which may improve the | 490 | use them heavily, Emacs provides caches which may improve the |
| 486 | performance of your code. @xref{Truncation, cache-long-line-scans}. | 491 | performance of your code. @xref{Truncation, cache-long-scans}. |
| 487 | 492 | ||
| 488 | @defun vertical-motion count &optional window | 493 | @defun vertical-motion count &optional window |
| 489 | This function moves point to the start of the screen line @var{count} | 494 | This 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. | |||
| 805 | buffer, use @code{save-current-buffer} or @code{with-current-buffer} | 810 | buffer, use @code{save-current-buffer} or @code{with-current-buffer} |
| 806 | instead (@pxref{Current Buffer}). If you need to save or restore | 811 | instead (@pxref{Current Buffer}). If you need to save or restore |
| 807 | window configurations, see the forms described in @ref{Window | 812 | window configurations, see the forms described in @ref{Window |
| 808 | Configurations} and in @ref{Frame Configurations}. | 813 | Configurations} 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 | |||
| 240 | copied out of the buffer. | 240 | copied 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 |
| 244 | This variable is a wrapper hook (@pxref{Running Hooks}), whose members | 245 | This variable is a wrapper hook (@pxref{Running Hooks}), whose members |
| 245 | should be functions that accept four arguments: @var{fun}, | 246 | should be functions that accept four arguments: @var{fun}, |
| @@ -365,7 +366,8 @@ not relocate the marker, depending on the marker's insertion type | |||
| 365 | the inserted text, regardless of the markers' insertion type. | 366 | the 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 |
| 368 | read-only or if they insert within read-only text. | 369 | read-only (@pxref{Read Only Buffers}) or if they insert within |
| 370 | read-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 |
| 371 | with their properties. The inserted characters have exactly the same | 373 | with 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 |
| 423 | This function inserts a portion of buffer @var{from-buffer-or-name} | 425 | This function inserts a portion of buffer @var{from-buffer-or-name} |
| 424 | (which must already exist) into the current buffer before point. The | 426 | into the current buffer before point. The text inserted is the region |
| 425 | text inserted is the region between @var{start} and @var{end}. (These | 427 | between @var{start} (inclusive) and @var{end} (exclusive). (These |
| 426 | arguments default to the beginning and end of the accessible portion of | 428 | arguments default to the beginning and end of the accessible portion |
| 427 | that buffer.) This function returns @code{nil}. | 429 | of that buffer.) This function returns @code{nil}. |
| 428 | 430 | ||
| 429 | In this example, the form is executed with buffer @samp{bar} as the | 431 | In this example, the form is executed with buffer @samp{bar} as the |
| 430 | current buffer. We assume that buffer @samp{bar} is initially empty. | 432 | current buffer. We assume that buffer @samp{bar} is initially empty. |
| @@ -482,6 +484,7 @@ it except to install it on a keymap. | |||
| 482 | 484 | ||
| 483 | In an interactive call, @var{count} is the numeric prefix argument. | 485 | In an interactive call, @var{count} is the numeric prefix argument. |
| 484 | 486 | ||
| 487 | @c FIXME: This variable is obsolete since 23.1. | ||
| 485 | Self-insertion translates the input character through | 488 | Self-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 | |||
| 776 | blank lines immediately following it. | 779 | blank lines immediately following it. |
| 777 | 780 | ||
| 778 | A blank line is defined as a line containing only tabs and spaces. | 781 | A 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 | |||
| 920 | text anyway.) | 924 | text 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 |
| 924 | string, that alters how @code{insert-for-yank} inserts the string. If | 929 | string, that alters how @code{insert-for-yank} inserts the string. If |
| 925 | different parts of the string have different @code{yank-handler} | 930 | different 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}) |
| 1285 | This is an extensible undo item, which records a change limited to the | 1290 | This is an extensible undo item, which records a change limited to the |
| 1286 | range @var{beg} to @var{end}, which increased the size of the buffer | 1291 | range @var{beg} to @var{end}, which increased the size of the buffer |
| 1287 | by @var{delta}. It is undone by calling @var{funname} with arguments | 1292 | by @var{delta} characters. It is undone by calling @var{funname} with |
| 1288 | @var{args}. | 1293 | arguments @var{args}. |
| 1289 | 1294 | ||
| 1290 | This kind of element enables undo limited to a region to determine | 1295 | This kind of element enables undo limited to a region to determine |
| 1291 | whether the element pertains to that region. | 1296 | whether the element pertains to that region. |
| @@ -1376,7 +1381,8 @@ possible to undo either previous changes or any subsequent changes. If | |||
| 1376 | the undo list of @var{buffer-or-name} is already disabled, this function | 1381 | the undo list of @var{buffer-or-name} is already disabled, this function |
| 1377 | has no effect. | 1382 | has no effect. |
| 1378 | 1383 | ||
| 1379 | This function returns @code{nil}. | 1384 | In an interactive call, BUFFER-OR-NAME is the current buffer. You |
| 1385 | cannot 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 | |||
| 1493 | a regular expression; if it matches the beginning of a line, that line | 1499 | a regular expression; if it matches the beginning of a line, that line |
| 1494 | is treated as a citation marker. | 1500 | is treated as a citation marker. |
| 1495 | 1501 | ||
| 1502 | @c FIXME: "That mode" is confusing. It isn't a major/minor mode. | ||
| 1496 | Ordinarily, @code{fill-individual-paragraphs} regards each change in | 1503 | Ordinarily, @code{fill-individual-paragraphs} regards each change in |
| 1497 | indentation as starting a new paragraph. If | 1504 | indentation 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 |
| 1607 | If this variable is non-@code{nil}, the filling functions do not delete | 1614 | If this variable is non-@code{nil}, the filling functions do not delete |
| 1608 | newlines that have the @code{hard} text property. These ``hard | 1615 | newlines that have the @code{hard} text property. These ``hard |
| 1609 | newlines'' act as paragraph separators. | 1616 | newlines'' act as paragraph separators. @xref{Hard and Soft |
| 1617 | Newlines,, 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 |
| 1616 | This buffer-local variable, if non-@code{nil}, specifies a string of | 1625 | This 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 |
| 1804 | is inserted. This section describes the hook used by Auto Fill mode. | 1814 | is inserted. This section describes the hook used by Auto Fill mode. |
| 1805 | For a description of functions that you can call explicitly to fill and | 1815 | For 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. | |||
| 2130 | When called interactively, @var{column} is the value of prefix numeric | 2140 | When called interactively, @var{column} is the value of prefix numeric |
| 2131 | argument. If @var{column} is not an integer, an error is signaled. | 2141 | argument. 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 | ||
| 2133 | If column @var{column} is beyond the end of the line, point moves to | 2145 | If column @var{column} is beyond the end of the line, point moves to |
| 2134 | the end of the line. If @var{column} is negative, point moves to the | 2146 | the end of the line. If @var{column} is negative, point moves to the |
| 2135 | beginning of the line. | 2147 | beginning of the line. |
| 2148 | @end ignore | ||
| 2136 | 2149 | ||
| 2137 | If it is impossible to move to column @var{column} because that is in | 2150 | If it is impossible to move to column @var{column} because that is in |
| 2138 | the middle of a multicolumn character such as a tab, point moves to the | 2151 | the middle of a multicolumn character such as a tab, point moves to the |
| @@ -2341,6 +2354,8 @@ code. | |||
| 2341 | For example, if @var{count} is 3, this command adds 3 columns of | 2354 | For example, if @var{count} is 3, this command adds 3 columns of |
| 2342 | indentation to each of the lines beginning in the region specified. | 2355 | indentation 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 | ||
| 2344 | In Mail mode, @kbd{C-c C-y} (@code{mail-yank-original}) uses | 2359 | In 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 |
| 2346 | replied to. | 2361 | replied 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 |
| 3029 | If a character has a @code{category} property, we call it the | 3045 | If a character has a @code{category} property, we call it the |
| @@ -4012,6 +4028,7 @@ A rectangle is represented by a list of strings. | |||
| 4012 | This represents a window configuration to restore in one frame, and a | 4028 | This represents a window configuration to restore in one frame, and a |
| 4013 | position to jump to in the current buffer. | 4029 | position 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})} |
| 4016 | This represents a frame configuration to restore, and a position | 4033 | This represents a frame configuration to restore, and a position |
| 4017 | to jump to in the current buffer. | 4034 | to 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 | |||
| 1649 | variables have @code{safe-local-variable} properties; these include | 1649 | variables 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}. |
| 1651 | For boolean-valued variables that are safe, use @code{booleanp} as the | 1651 | For boolean-valued variables that are safe, use @code{booleanp} as the |
| 1652 | property value. Lambda expressions should be quoted so that | 1652 | property 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 |
| 2574 | that specifies where in the buffer display should start. This position | 2575 | that 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} |
| 3195 | is off the screen due to horizontal scrolling: | 3196 | is 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 @@ | |||
| 1 | 2013-08-31 Ulrich Müller <ulm@gentoo.org> | ||
| 2 | |||
| 3 | * emacs.1: Update manual links. | ||
| 4 | |||
| 1 | 2013-04-20 Petr Hracek <phracek@redhat.com> (tiny change) | 5 | 2013-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 ; |
| 446 | don't have menu bars if | 446 | don't have menu bars if |
| 447 | .IR off . | 447 | .IR off . |
| 448 | See the Emacs manual, sections "Lucid Resources" and "LessTif | 448 | See the Emacs manual, sections "Lucid Resources" and "Motif |
| 449 | Resources", for how to control the appearance of the menu bar | 449 | Resources", for how to control the appearance of the menu bar |
| 450 | if you have one. | 450 | if you have one. |
| 451 | .TP | 451 | .TP |
| @@ -492,7 +492,7 @@ The scroll bar width in pixels, equivalent to the frame parameter | |||
| 492 | Font name for pop-up menu items, in non-toolkit versions of | 492 | Font 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 ) |
| 498 | Number of milliseconds to wait for a selection reply. | 498 | Number 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 @@ | |||
| 1 | 2013-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 | |||
| 6 | 2013-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 | |||
| 13 | 2013-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 | |||
| 36 | 2013-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 | |||
| 42 | 2013-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 | |||
| 57 | 2013-08-12 Katsumi Yamaoka <yamaoka@jpl.org> | ||
| 58 | |||
| 59 | * gnus.texi (Mail Source Specifiers): Fix description for pop3's :leave. | ||
| 60 | |||
| 61 | 2013-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 | |||
| 105 | 2013-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 | |||
| 111 | 2013-08-09 Xue Fuqiao <xfq.free@gmail.com> | ||
| 112 | |||
| 113 | * htmlfontify.texi (Customization): Remove documentation of | ||
| 114 | `hfy-fast-lock-save'. Minor fixes. | ||
| 115 | |||
| 116 | 2013-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 | |||
| 123 | 2013-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 | |||
| 130 | 2013-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 | |||
| 154 | 2013-08-05 Xue Fuqiao <xfq.free@gmail.com> | ||
| 155 | |||
| 156 | * cl.texi (Blocks and Exits): Add an index. | ||
| 157 | |||
| 158 | 2013-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 | |||
| 1 | 2013-08-01 Lars Magne Ingebrigtsen <larsi@gnus.org> | 166 | 2013-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 | ||
| 186 | 2013-05-25 Xue Fuqiao <xfq.free@gmail.com> | 351 | 2013-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 | ||
| 190 | 2013-05-04 Stefan Monnier <monnier@iro.umontreal.ca> | 355 | 2013-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 | ||
| 20 | SHELL = /bin/sh | 20 | SHELL = @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. |
| 32 | emacsdir = $(srcdir)/../emacs | 32 | emacsdir = $(srcdir)/../emacs |
| 33 | 33 | ||
| 34 | prefix = @prefix@ | ||
| 35 | datarootdir = @datarootdir@ | ||
| 36 | datadir = @datadir@ | ||
| 37 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | ||
| 38 | docdir = @docdir@ | ||
| 39 | dvidir = @dvidir@ | ||
| 40 | htmldir = @htmldir@ | ||
| 41 | pdfdir = @pdfdir@ | ||
| 42 | psdir = @psdir@ | ||
| 43 | |||
| 34 | MKDIR_P = @MKDIR_P@ | 44 | MKDIR_P = @MKDIR_P@ |
| 35 | 45 | ||
| 46 | GZIP_PROG = @GZIP_PROG@ | ||
| 47 | |||
| 48 | HTML_OPTS = --no-split --html | ||
| 49 | |||
| 36 | INFO_EXT=@INFO_EXT@ | 50 | INFO_EXT=@INFO_EXT@ |
| 37 | # Options used only when making info output. | 51 | # Options used only when making info output. |
| 38 | INFO_OPTS=@INFO_OPTS@ | 52 | INFO_OPTS=@INFO_OPTS@ |
| 39 | 53 | ||
| 54 | INSTALL = @INSTALL@ | ||
| 55 | INSTALL_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. |
| 42 | MAKEINFO = @MAKEINFO@ | 59 | MAKEINFO = @MAKEINFO@ |
| 43 | MAKEINFO_OPTS = --force -I$(emacsdir) | 60 | MAKEINFO_OPTS = --force -I$(emacsdir) |
| 44 | 61 | ||
| 45 | INFO_TARGETS = ada-mode auth autotype bovine calc ccmode cl \ | 62 | ## On MS Windows, efaq-w32; otherwise blank. |
| 63 | DOCMISC_W32 = @DOCMISC_W32@ | ||
| 64 | |||
| 65 | ## Info files to build and install on all platforms. | ||
| 66 | INFO_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 | ||
| 54 | DVI_TARGETS = \ | 75 | ## Info files to install on current platform. |
| 55 | ada-mode.dvi \ | 76 | INFO_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 \ | 81 | INFO_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 \ | 85 | TARGETS_1 = $(INFO_INSTALL:ccmode=cc-mode) |
| 65 | ede.dvi \ | 86 | TARGETS = $(TARGETS_1:info.info=info) |
| 66 | ediff.dvi \ | 87 | |
| 67 | edt.dvi \ | 88 | DVI_TARGETS = $(TARGETS:=.dvi) |
| 68 | eieio.dvi \ | 89 | HTML_TARGETS = $(TARGETS:=.html) |
| 69 | emacs-mime.dvi \ | 90 | PDF_TARGETS = $(TARGETS:=.pdf) |
| 70 | epa.dvi \ | 91 | PS_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 | |||
| 111 | PDF_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 | ||
| 168 | TEXI2DVI = texi2dvi | 93 | TEXI2DVI = texi2dvi |
| 169 | TEXI2PDF = texi2pdf | 94 | TEXI2PDF = texi2pdf |
| 95 | DVIPS = dvips | ||
| 170 | 96 | ||
| 171 | ENVADD = TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \ | 97 | ENVADD = TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" \ |
| 172 | MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" | 98 | MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" |
| @@ -175,539 +101,732 @@ mkinfodir = @${MKDIR_P} ${buildinfodir} | |||
| 175 | 101 | ||
| 176 | gfdl = ${srcdir}/doclicense.texi | 102 | gfdl = ${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. |
| 183 | info: $(INFO_TARGETS) | 114 | info: $(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. |
| 187 | echo-info: | 118 | echo-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 | ||
| 192 | webhack: clean | ||
| 193 | $(MAKE) pdf MAKEINFO_OPTS="-DWEBHACKDEVEL $(MAKEINFO_OPTS)" | ||
| 194 | |||
| 195 | dvi: $(DVI_TARGETS) | 122 | dvi: $(DVI_TARGETS) |
| 196 | 123 | ||
| 124 | html: $(HTML_TARGETS) | ||
| 125 | |||
| 197 | pdf: $(PDF_TARGETS) | 126 | pdf: $(PDF_TARGETS) |
| 198 | 127 | ||
| 128 | ps: $(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 | ||
| 136 | ada_mode_deps = ${srcdir}/ada-mode.texi ${gfdl} | ||
| 205 | ada-mode : $(buildinfodir)/ada-mode$(INFO_EXT) | 137 | ada-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 |
| 209 | ada-mode.dvi: ${srcdir}/ada-mode.texi ${gfdl} | 141 | ada-mode.dvi: $(ada_mode_deps) |
| 210 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi | 142 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi |
| 211 | ada-mode.pdf: ${srcdir}/ada-mode.texi ${gfdl} | 143 | ada-mode.pdf: $(ada_mode_deps) |
| 212 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi | 144 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi |
| 145 | ada-mode.html: $(ada_mode_deps) | ||
| 146 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ada-mode.texi | ||
| 213 | 147 | ||
| 148 | auth_deps = ${srcdir}/auth.texi ${gfdl} | ||
| 214 | auth : $(buildinfodir)/auth$(INFO_EXT) | 149 | auth : $(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 |
| 218 | auth.dvi: ${srcdir}/auth.texi ${gfdl} | 153 | auth.dvi: $(auth_deps) |
| 219 | $(ENVADD) $(TEXI2DVI) ${srcdir}/auth.texi | 154 | $(ENVADD) $(TEXI2DVI) ${srcdir}/auth.texi |
| 220 | auth.pdf: ${srcdir}/auth.texi ${gfdl} | 155 | auth.pdf: $(auth_deps) |
| 221 | $(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi | 156 | $(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi |
| 157 | auth.html: $(auth_deps) | ||
| 158 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/auth.texi | ||
| 222 | 159 | ||
| 160 | autotype_deps = ${srcdir}/autotype.texi ${gfdl} | ||
| 223 | autotype : $(buildinfodir)/autotype$(INFO_EXT) | 161 | autotype : $(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 |
| 227 | autotype.dvi: ${srcdir}/autotype.texi ${gfdl} | 165 | autotype.dvi: $(autotype_deps) |
| 228 | $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi | 166 | $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi |
| 229 | autotype.pdf: ${srcdir}/autotype.texi ${gfdl} | 167 | autotype.pdf: $(autotype_deps) |
| 230 | $(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi | 168 | $(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi |
| 169 | autotype.html: $(autotype_deps) | ||
| 170 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/autotype.texi | ||
| 231 | 171 | ||
| 172 | bovine_deps = ${srcdir}/bovine.texi ${gfdl} | ||
| 232 | bovine : $(buildinfodir)/bovine$(INFO_EXT) | 173 | bovine : $(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 |
| 236 | bovine.dvi: ${srcdir}/bovine.texi ${gfdl} | 177 | bovine.dvi: $(bovine_deps) |
| 237 | $(ENVADD) $(TEXI2DVI) ${srcdir}/bovine.texi | 178 | $(ENVADD) $(TEXI2DVI) ${srcdir}/bovine.texi |
| 238 | bovine.pdf: ${srcdir}/bovine.texi ${gfdl} | 179 | bovine.pdf: $(bovine_deps) |
| 239 | $(ENVADD) $(TEXI2PDF) ${srcdir}/bovine.texi | 180 | $(ENVADD) $(TEXI2PDF) ${srcdir}/bovine.texi |
| 181 | bovine.html: $(bovine_deps) | ||
| 182 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/bovine.texi | ||
| 240 | 183 | ||
| 184 | calc_deps = ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl} | ||
| 241 | calc : $(buildinfodir)/calc$(INFO_EXT) | 185 | calc : $(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 |
| 245 | calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl} | 189 | calc.dvi: $(calc_deps) |
| 246 | $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi | 190 | $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi |
| 247 | calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi ${gfdl} | 191 | calc.pdf: $(calc_deps) |
| 248 | $(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi | 192 | $(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi |
| 193 | calc.html: $(calc_deps) | ||
| 194 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/calc.texi | ||
| 249 | 195 | ||
| 196 | ccmode_deps = ${srcdir}/cc-mode.texi ${gfdl} | ||
| 250 | ccmode : $(buildinfodir)/ccmode$(INFO_EXT) | 197 | ccmode : $(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 |
| 254 | cc-mode.dvi: ${srcdir}/cc-mode.texi ${gfdl} | 201 | cc-mode.dvi: $(cc_mode_deps) |
| 255 | $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi | 202 | $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi |
| 256 | cc-mode.pdf: ${srcdir}/cc-mode.texi ${gfdl} | 203 | cc-mode.pdf: $(cc_mode_deps) |
| 257 | $(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi | 204 | $(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi |
| 205 | cc-mode.html: $(cc_mode_deps) | ||
| 206 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/cc-mode.texi | ||
| 258 | 207 | ||
| 208 | cl_deps = ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl} | ||
| 259 | cl : $(buildinfodir)/cl$(INFO_EXT) | 209 | cl : $(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 |
| 263 | cl.dvi: ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl} | 213 | cl.dvi: $(cl_deps) |
| 264 | $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi | 214 | $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi |
| 265 | cl.pdf: ${srcdir}/cl.texi $(emacsdir)/emacsver.texi ${gfdl} | 215 | cl.pdf: $(cl_deps) |
| 266 | $(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi | 216 | $(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi |
| 217 | cl.html: $(cl_deps) | ||
| 218 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/cl.texi | ||
| 267 | 219 | ||
| 220 | dbus_deps = ${srcdir}/dbus.texi ${gfdl} | ||
| 268 | dbus : $(buildinfodir)/dbus$(INFO_EXT) | 221 | dbus : $(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 |
| 272 | dbus.dvi: ${srcdir}/dbus.texi ${gfdl} | 225 | dbus.dvi: $(dbus_deps) |
| 273 | $(ENVADD) $(TEXI2DVI) ${srcdir}/dbus.texi | 226 | $(ENVADD) $(TEXI2DVI) ${srcdir}/dbus.texi |
| 274 | dbus.pdf: ${srcdir}/dbus.texi ${gfdl} | 227 | dbus.pdf: $(dbus_deps) |
| 275 | $(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi | 228 | $(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi |
| 229 | dbus.html: $(dbus_deps) | ||
| 230 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/dbus.texi | ||
| 276 | 231 | ||
| 232 | dired_x_deps = ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl} | ||
| 277 | dired-x : $(buildinfodir)/dired-x$(INFO_EXT) | 233 | dired-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 |
| 281 | dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl} | 237 | dired-x.dvi: $(dired_x_deps) |
| 282 | $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi | 238 | $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi |
| 283 | dired-x.pdf: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi ${gfdl} | 239 | dired-x.pdf: $(dired_x_deps) |
| 284 | $(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi | 240 | $(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi |
| 241 | dired-x.html: $(dired_x_deps) | ||
| 242 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/dired-x.texi | ||
| 285 | 243 | ||
| 244 | ebrowse_deps = ${srcdir}/ebrowse.texi ${gfdl} | ||
| 286 | ebrowse : $(buildinfodir)/ebrowse$(INFO_EXT) | 245 | ebrowse : $(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 |
| 290 | ebrowse.dvi: ${srcdir}/ebrowse.texi ${gfdl} | 249 | ebrowse.dvi: $(ebrowse_deps) |
| 291 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi | 250 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi |
| 292 | ebrowse.pdf: ${srcdir}/ebrowse.texi ${gfdl} | 251 | ebrowse.pdf: $(ebrowse_deps) |
| 293 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi | 252 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi |
| 253 | ebrowse.html: $(ebrowse_deps) | ||
| 254 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ebrowse.texi | ||
| 294 | 255 | ||
| 256 | ede_deps = ${srcdir}/ede.texi ${gfdl} | ||
| 295 | ede : $(buildinfodir)/ede$(INFO_EXT) | 257 | ede : $(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 |
| 299 | ede.dvi: ${srcdir}/ede.texi ${gfdl} | 261 | ede.dvi: $(ede_deps) |
| 300 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ede.texi | 262 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ede.texi |
| 301 | ede.pdf: ${srcdir}/ede.texi ${gfdl} | 263 | ede.pdf: $(ede_deps) |
| 302 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi | 264 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi |
| 265 | ede.html: $(ede_deps) | ||
| 266 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ede.texi | ||
| 303 | 267 | ||
| 268 | ediff_deps = ${srcdir}/ediff.texi ${gfdl} | ||
| 304 | ediff : $(buildinfodir)/ediff$(INFO_EXT) | 269 | ediff : $(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 |
| 308 | ediff.dvi: ${srcdir}/ediff.texi ${gfdl} | 273 | ediff.dvi: $(ediff_deps) |
| 309 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi | 274 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi |
| 310 | ediff.pdf: ${srcdir}/ediff.texi ${gfdl} | 275 | ediff.pdf: $(ediff_deps) |
| 311 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi | 276 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi |
| 277 | ediff.html: $(ediff_deps) | ||
| 278 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ediff.texi | ||
| 312 | 279 | ||
| 280 | edt_deps = ${srcdir}/edt.texi ${gfdl} | ||
| 313 | edt : $(buildinfodir)/edt$(INFO_EXT) | 281 | edt : $(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 |
| 317 | edt.dvi: ${srcdir}/edt.texi ${gfdl} | 285 | edt.dvi: $(edt_deps) |
| 318 | $(ENVADD) $(TEXI2DVI) ${srcdir}/edt.texi | 286 | $(ENVADD) $(TEXI2DVI) ${srcdir}/edt.texi |
| 319 | edt.pdf: ${srcdir}/edt.texi ${gfdl} | 287 | edt.pdf: $(edt_deps) |
| 320 | $(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi | 288 | $(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi |
| 289 | edt.html: $(edt_deps) | ||
| 290 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/edt.texi | ||
| 321 | 291 | ||
| 292 | ## No gfdl dependency. | ||
| 293 | efaq_deps = ${srcdir}/efaq.texi $(emacsdir)/emacsver.texi | ||
| 294 | efaq : $(buildinfodir)/efaq$(INFO_EXT) | ||
| 295 | $(buildinfodir)/efaq$(INFO_EXT): $(efaq_deps) | ||
| 296 | $(mkinfodir) | ||
| 297 | $(MAKEINFO) $(MAKEINFO_OPTS) $(INFO_OPTS) -o $@ ${srcdir}/efaq.texi | ||
| 298 | efaq.dvi: $(efaq_deps) | ||
| 299 | $(ENVADD) $(TEXI2DVI) ${srcdir}/efaq.texi | ||
| 300 | efaq.pdf: $(efaq_deps) | ||
| 301 | $(ENVADD) $(TEXI2PDF) ${srcdir}/efaq.texi | ||
| 302 | efaq.html: $(efaq_deps) | ||
| 303 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/efaq.texi | ||
| 304 | |||
| 305 | efaq_w32_deps = ${srcdir}/efaq-w32.texi $(emacsdir)/emacsver.texi | ||
| 306 | efaq-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 | ||
| 310 | efaq-w32.dvi: $(efaq_w32_deps) | ||
| 311 | $(ENVADD) $(TEXI2DVI) ${srcdir}/efaq-w32.texi | ||
| 312 | efaq-w32.pdf: $(efaq_w32_deps) | ||
| 313 | $(ENVADD) $(TEXI2PDF) ${srcdir}/efaq-w32.texi | ||
| 314 | efaq-w32.html: $(efaq_w32_deps) | ||
| 315 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/efaq-w32.texi | ||
| 316 | |||
| 317 | eieio_deps = ${srcdir}/eieio.texi ${gfdl} | ||
| 322 | eieio : $(buildinfodir)/eieio$(INFO_EXT) | 318 | eieio : $(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 |
| 326 | eieio.dvi: ${srcdir}/eieio.texi ${gfdl} | 322 | eieio.dvi: $(eieio_deps) |
| 327 | $(ENVADD) $(TEXI2DVI) ${srcdir}/eieio.texi | 323 | $(ENVADD) $(TEXI2DVI) ${srcdir}/eieio.texi |
| 328 | eieio.pdf: ${srcdir}/eieio.texi ${gfdl} | 324 | eieio.pdf: $(eieio_deps) |
| 329 | $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi | 325 | $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi |
| 326 | eieio.html: $(eieio_deps) | ||
| 327 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/eieio.texi | ||
| 330 | 328 | ||
| 329 | emacs_gnutls_deps = ${srcdir}/emacs-gnutls.texi ${gfdl} | ||
| 331 | emacs-gnutls : $(buildinfodir)/emacs-gnutls$(INFO_EXT) | 330 | emacs-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 |
| 335 | emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi ${gfdl} | 334 | emacs-gnutls.dvi: $(emacs_gnutls_deps) |
| 336 | $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-gnutls.texi | 335 | $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-gnutls.texi |
| 337 | emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi ${gfdl} | 336 | emacs-gnutls.pdf: $(emacs_gnutls_deps) |
| 338 | $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-gnutls.texi | 337 | $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-gnutls.texi |
| 338 | emacs-gnutls.html: $(emacs_gnutls_deps) | ||
| 339 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/emacs-gnutls.texi | ||
| 339 | 340 | ||
| 341 | emacs_mime_deps = ${srcdir}/emacs-mime.texi ${gfdl} | ||
| 340 | emacs-mime : $(buildinfodir)/emacs-mime$(INFO_EXT) | 342 | emacs-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 |
| 344 | emacs-mime.dvi: ${srcdir}/emacs-mime.texi ${gfdl} | 346 | emacs-mime.dvi: $(emacs_mime_deps) |
| 345 | $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi | 347 | $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi |
| 346 | emacs-mime.pdf: ${srcdir}/emacs-mime.texi ${gfdl} | 348 | emacs-mime.pdf: $(emacs_mime_deps) |
| 347 | $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi | 349 | $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi |
| 350 | emacs-mime.html: $(emacs_mime_deps) | ||
| 351 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) --enable-encoding -o $@ ${srcdir}/emacs-mime.texi | ||
| 348 | 352 | ||
| 353 | epa_deps = ${srcdir}/epa.texi ${gfdl} | ||
| 349 | epa : $(buildinfodir)/epa$(INFO_EXT) | 354 | epa : $(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 |
| 353 | epa.dvi: ${srcdir}/epa.texi ${gfdl} | 358 | epa.dvi: $(epa_deps) |
| 354 | $(ENVADD) $(TEXI2DVI) ${srcdir}/epa.texi | 359 | $(ENVADD) $(TEXI2DVI) ${srcdir}/epa.texi |
| 355 | epa.pdf: ${srcdir}/epa.texi ${gfdl} | 360 | epa.pdf: $(epa_deps) |
| 356 | $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi | 361 | $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi |
| 362 | epa.html: $(epa_deps) | ||
| 363 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/epa.texi | ||
| 357 | 364 | ||
| 365 | erc_deps = ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl} | ||
| 358 | erc : $(buildinfodir)/erc$(INFO_EXT) | 366 | erc : $(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 |
| 362 | erc.dvi: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl} | 370 | erc.dvi: $(erc_deps) |
| 363 | $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi | 371 | $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi |
| 364 | erc.pdf: ${srcdir}/erc.texi $(emacsdir)/emacsver.texi ${gfdl} | 372 | erc.pdf: $(erc_deps) |
| 365 | $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi | 373 | $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi |
| 374 | erc.html: $(erc_deps) | ||
| 375 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/erc.texi | ||
| 366 | 376 | ||
| 377 | ert_deps = ${srcdir}/ert.texi ${gfdl} | ||
| 367 | ert : $(buildinfodir)/ert$(INFO_EXT) | 378 | ert : $(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 |
| 371 | ert.dvi: ${srcdir}/ert.texi ${gfdl} | 382 | ert.dvi: $(ert_deps) |
| 372 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi | 383 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi |
| 373 | ert.pdf: ${srcdir}/ert.texi ${gfdl} | 384 | ert.pdf: $(ert_deps) |
| 374 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi | 385 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi |
| 386 | ert.html: $(ert_deps) | ||
| 387 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ert.texi | ||
| 375 | 388 | ||
| 389 | eshell_deps = ${srcdir}/eshell.texi ${gfdl} | ||
| 376 | eshell : $(buildinfodir)/eshell$(INFO_EXT) | 390 | eshell : $(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 |
| 380 | eshell.dvi: ${srcdir}/eshell.texi ${gfdl} | 394 | eshell.dvi: $(eshell_deps) |
| 381 | $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi | 395 | $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi |
| 382 | eshell.pdf: ${srcdir}/eshell.texi ${gfdl} | 396 | eshell.pdf: $(eshell_deps) |
| 383 | $(ENVADD) $(TEXI2PDF) ${srcdir}/eshell.texi | 397 | $(ENVADD) $(TEXI2PDF) ${srcdir}/eshell.texi |
| 398 | eshell.html: $(eshell_deps) | ||
| 399 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/eshell.texi | ||
| 384 | 400 | ||
| 401 | eudc_deps = ${srcdir}/eudc.texi ${gfdl} | ||
| 385 | eudc : $(buildinfodir)/eudc$(INFO_EXT) | 402 | eudc : $(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 |
| 389 | eudc.dvi: ${srcdir}/eudc.texi ${gfdl} | 406 | eudc.dvi: $(eudc_deps) |
| 390 | $(ENVADD) $(TEXI2DVI) ${srcdir}/eudc.texi | 407 | $(ENVADD) $(TEXI2DVI) ${srcdir}/eudc.texi |
| 391 | eudc.pdf: ${srcdir}/eudc.texi ${gfdl} | 408 | eudc.pdf: $(eudc_deps) |
| 392 | $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi | 409 | $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi |
| 410 | eudc.html: $(eudc_deps) | ||
| 411 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/eudc.texi | ||
| 393 | 412 | ||
| 394 | ## No gfdl dependency. | 413 | flymake_deps = ${srcdir}/flymake.texi ${gfdl} |
| 395 | efaq : $(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 | ||
| 399 | faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi | ||
| 400 | $(ENVADD) $(TEXI2DVI) ${srcdir}/faq.texi | ||
| 401 | faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi | ||
| 402 | $(ENVADD) $(TEXI2PDF) ${srcdir}/faq.texi | ||
| 403 | |||
| 404 | flymake : $(buildinfodir)/flymake$(INFO_EXT) | 414 | flymake : $(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 |
| 408 | flymake.dvi: ${srcdir}/flymake.texi ${gfdl} | 418 | flymake.dvi: $(flymake_deps) |
| 409 | $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi | 419 | $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi |
| 410 | flymake.pdf: ${srcdir}/flymake.texi ${gfdl} | 420 | flymake.pdf: $(flymake_deps) |
| 411 | $(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi | 421 | $(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi |
| 422 | flymake.html: $(flymake_deps) | ||
| 423 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/flymake.texi | ||
| 412 | 424 | ||
| 425 | forms_deps = ${srcdir}/forms.texi ${gfdl} | ||
| 413 | forms : $(buildinfodir)/forms$(INFO_EXT) | 426 | forms : $(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 |
| 417 | forms.dvi: ${srcdir}/forms.texi ${gfdl} | 430 | forms.dvi: $(forms_deps) |
| 418 | $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi | 431 | $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi |
| 419 | forms.pdf: ${srcdir}/forms.texi ${gfdl} | 432 | forms.pdf: $(forms_deps) |
| 420 | $(ENVADD) $(TEXI2PDF) ${srcdir}/forms.texi | 433 | $(ENVADD) $(TEXI2PDF) ${srcdir}/forms.texi |
| 434 | forms.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. |
| 438 | gnus_deps = ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl} | ||
| 423 | gnus : $(buildinfodir)/gnus$(INFO_EXT) | 439 | gnus : $(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 |
| 427 | gnus.dvi: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl} | 443 | gnus.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.* |
| 432 | gnus.pdf: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi ${gfdl} | 448 | gnus.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.* |
| 453 | gnus.html: $(gnus_deps) | ||
| 454 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/gnus.texi | ||
| 437 | 455 | ||
| 456 | htmlfontify_deps = ${srcdir}/htmlfontify.texi ${gfdl} | ||
| 438 | htmlfontify : $(buildinfodir)/htmlfontify$(INFO_EXT) | 457 | htmlfontify : $(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 |
| 442 | htmlfontify.dvi: ${srcdir}/htmlfontify.texi ${gfdl} | 461 | htmlfontify.dvi: $(htmlfontify_deps) |
| 443 | $(ENVADD) $(TEXI2DVI) ${srcdir}/htmlfontify.texi | 462 | $(ENVADD) $(TEXI2DVI) ${srcdir}/htmlfontify.texi |
| 444 | htmlfontify.pdf: ${srcdir}/htmlfontify.texi ${gfdl} | 463 | htmlfontify.pdf: $(htmlfontify_deps) |
| 445 | $(ENVADD) $(TEXI2PDF) ${srcdir}/htmlfontify.texi | 464 | $(ENVADD) $(TEXI2PDF) ${srcdir}/htmlfontify.texi |
| 465 | htmlfontify.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. | 468 | idlwave_deps = ${srcdir}/idlwave.texi ${gfdl} |
| 448 | idlwave : $(buildinfodir)/idlwave$(INFO_EXT) | 469 | idlwave : $(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 |
| 452 | idlwave.dvi: ${srcdir}/idlwave.texi ${gfdl} | 474 | idlwave.dvi: $(idlwave_deps) |
| 453 | $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi | 475 | $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi |
| 454 | idlwave.pdf: ${srcdir}/idlwave.texi ${gfdl} | 476 | idlwave.pdf: $(idlwave_deps) |
| 455 | $(ENVADD) $(TEXI2PDF) ${srcdir}/idlwave.texi | 477 | $(ENVADD) $(TEXI2PDF) ${srcdir}/idlwave.texi |
| 478 | idlwave.html: $(idlwave_deps) | ||
| 479 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/idlwave.texi | ||
| 456 | 480 | ||
| 481 | ido_deps = ${srcdir}/ido.texi $(emacsdir)/emacsver.texi ${gfdl} | ||
| 457 | ido : $(buildinfodir)/ido$(INFO_EXT) | 482 | ido : $(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 |
| 461 | ido.dvi: ${srcdir}/ido.texi $(emacsdir)/emacsver.texi ${gfdl} | 486 | ido.dvi: $(ido_deps) |
| 462 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ido.texi | 487 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ido.texi |
| 463 | ido.pdf: ${srcdir}/ido.texi $(emacsdir)/emacsver.texi ${gfdl} | 488 | ido.pdf: $(ido_deps) |
| 464 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ido.texi | 489 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ido.texi |
| 490 | ido.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. | 493 | info_deps = ${srcdir}/info.texi ${gfdl} |
| 467 | # Avoid name clash with overall "info" target. | 494 | # Avoid name clash with overall "info" target. |
| 468 | info.info : $(buildinfodir)/info$(INFO_EXT) | 495 | info.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 |
| 472 | info.dvi: ${srcdir}/info.texi ${gfdl} | 500 | info.dvi: $(info_deps) |
| 473 | $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi | 501 | $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi |
| 474 | info.pdf: ${srcdir}/info.texi ${gfdl} | 502 | info.pdf: $(info_deps) |
| 475 | $(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi | 503 | $(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi |
| 504 | info.html: $(info_deps) | ||
| 505 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/info.texi | ||
| 476 | 506 | ||
| 507 | mairix_el_deps = ${srcdir}/mairix-el.texi ${gfdl} | ||
| 477 | mairix-el : $(buildinfodir)/mairix-el$(INFO_EXT) | 508 | mairix-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 |
| 481 | mairix-el.dvi: ${srcdir}/mairix-el.texi ${gfdl} | 512 | mairix-el.dvi: $(mairix_el_deps) |
| 482 | $(ENVADD) $(TEXI2DVI) ${srcdir}/mairix-el.texi | 513 | $(ENVADD) $(TEXI2DVI) ${srcdir}/mairix-el.texi |
| 483 | mairix-el.pdf: ${srcdir}/mairix-el.texi ${gfdl} | 514 | mairix-el.pdf: $(mairix_el_deps) |
| 484 | $(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi | 515 | $(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi |
| 516 | mairix-el.html: $(mairix_el_deps) | ||
| 517 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/mairix-el.texi | ||
| 485 | 518 | ||
| 519 | message_deps = ${srcdir}/message.texi ${gfdl} | ||
| 486 | message : $(buildinfodir)/message$(INFO_EXT) | 520 | message : $(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 |
| 490 | message.dvi: ${srcdir}/message.texi ${gfdl} | 524 | message.dvi: $(message_deps) |
| 491 | $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi | 525 | $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi |
| 492 | message.pdf: ${srcdir}/message.texi ${gfdl} | 526 | message.pdf: $(message_deps) |
| 493 | $(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi | 527 | $(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi |
| 528 | message.html: $(message_deps) | ||
| 529 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/message.texi | ||
| 494 | 530 | ||
| 531 | mh_e_deps = ${srcdir}/mh-e.texi ${gfdl} | ||
| 495 | mh-e : $(buildinfodir)/mh-e$(INFO_EXT) | 532 | mh-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 |
| 499 | mh-e.dvi: ${srcdir}/mh-e.texi ${gfdl} | 536 | mh-e.dvi: $(mh_e_deps) |
| 500 | $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi | 537 | $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi |
| 501 | mh-e.pdf: ${srcdir}/mh-e.texi ${gfdl} | 538 | mh-e.pdf: $(mh_e_deps) |
| 502 | $(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi | 539 | $(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi |
| 540 | mh-e.html: $(mh_e_deps) | ||
| 541 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/mh-e.texi | ||
| 503 | 542 | ||
| 543 | newsticker_deps = ${srcdir}/newsticker.texi ${gfdl} | ||
| 504 | newsticker : $(buildinfodir)/newsticker$(INFO_EXT) | 544 | newsticker : $(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 |
| 508 | newsticker.dvi: ${srcdir}/newsticker.texi ${gfdl} | 548 | newsticker.dvi: $(newsticker_deps) |
| 509 | $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi | 549 | $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi |
| 510 | newsticker.pdf: ${srcdir}/newsticker.texi ${gfdl} | 550 | newsticker.pdf: $(newsticker_deps) |
| 511 | $(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi | 551 | $(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi |
| 552 | newsticker.html: $(newsticker_deps) | ||
| 553 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/newsticker.texi | ||
| 512 | 554 | ||
| 555 | nxml_mode_deps = ${srcdir}/nxml-mode.texi ${gfdl} | ||
| 513 | nxml-mode : $(buildinfodir)/nxml-mode$(INFO_EXT) | 556 | nxml-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 |
| 517 | nxml-mode.dvi: ${srcdir}/nxml-mode.texi ${gfdl} | 560 | nxml-mode.dvi: $(nxml_mode_deps) |
| 518 | $(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi | 561 | $(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi |
| 519 | nxml-mode.pdf: ${srcdir}/nxml-mode.texi ${gfdl} | 562 | nxml-mode.pdf: $(nxml_mode_deps) |
| 520 | $(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi | 563 | $(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi |
| 564 | nxml-mode.html: $(nxml_mode_deps) | ||
| 565 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/nxml-mode.texi | ||
| 521 | 566 | ||
| 567 | org_deps = ${srcdir}/org.texi ${gfdl} | ||
| 522 | org : $(buildinfodir)/org$(INFO_EXT) | 568 | org : $(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 |
| 526 | org.dvi: ${srcdir}/org.texi ${gfdl} | 572 | org.dvi: $(org_deps) |
| 527 | $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi | 573 | $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi |
| 528 | org.pdf: ${srcdir}/org.texi ${gfdl} | 574 | org.pdf: $(org_deps) |
| 529 | $(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi | 575 | $(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi |
| 576 | org.html: $(org_deps) | ||
| 577 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/org.texi | ||
| 530 | 578 | ||
| 579 | pcl_cvs_deps = ${srcdir}/pcl-cvs.texi ${gfdl} | ||
| 531 | pcl-cvs : $(buildinfodir)/pcl-cvs$(INFO_EXT) | 580 | pcl-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 |
| 535 | pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi ${gfdl} | 584 | pcl-cvs.dvi: $(pcl_cvs_deps) |
| 536 | $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi | 585 | $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi |
| 537 | pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi ${gfdl} | 586 | pcl-cvs.pdf: $(pcl_cvs_deps) |
| 538 | $(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi | 587 | $(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi |
| 588 | pcl-cvs.html: $(pcl_cvs_deps) | ||
| 589 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/pcl-cvs.texi | ||
| 539 | 590 | ||
| 591 | pgg_deps = ${srcdir}/pgg.texi ${gfdl} | ||
| 540 | pgg : $(buildinfodir)/pgg$(INFO_EXT) | 592 | pgg : $(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 |
| 544 | pgg.dvi: ${srcdir}/pgg.texi ${gfdl} | 596 | pgg.dvi: $(pgg_deps) |
| 545 | $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi | 597 | $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi |
| 546 | pgg.pdf: ${srcdir}/pgg.texi ${gfdl} | 598 | pgg.pdf: $(pgg_deps) |
| 547 | $(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi | 599 | $(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi |
| 600 | pgg.html: $(pgg_deps) | ||
| 601 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/pgg.texi | ||
| 548 | 602 | ||
| 603 | rcirc_deps = ${srcdir}/rcirc.texi ${gfdl} | ||
| 549 | rcirc : $(buildinfodir)/rcirc$(INFO_EXT) | 604 | rcirc : $(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 |
| 553 | rcirc.dvi: ${srcdir}/rcirc.texi ${gfdl} | 608 | rcirc.dvi: $(rcirc_deps) |
| 554 | $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi | 609 | $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi |
| 555 | rcirc.pdf: ${srcdir}/rcirc.texi ${gfdl} | 610 | rcirc.pdf: $(rcirc_deps) |
| 556 | $(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi | 611 | $(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi |
| 612 | rcirc.html: $(rcirc_deps) | ||
| 613 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/rcirc.texi | ||
| 557 | 614 | ||
| 615 | reftex_deps = ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl} | ||
| 558 | reftex : $(buildinfodir)/reftex$(INFO_EXT) | 616 | reftex : $(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 |
| 562 | reftex.dvi: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl} | 620 | reftex.dvi: $(reftex_deps) |
| 563 | $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi | 621 | $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi |
| 564 | reftex.pdf: ${srcdir}/reftex.texi $(emacsdir)/emacsver.texi ${gfdl} | 622 | reftex.pdf: $(reftex_deps) |
| 565 | $(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi | 623 | $(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi |
| 624 | reftex.html: $(reftex_deps) | ||
| 625 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/reftex.texi | ||
| 566 | 626 | ||
| 627 | remember_deps = ${srcdir}/remember.texi ${gfdl} | ||
| 567 | remember : $(buildinfodir)/remember$(INFO_EXT) | 628 | remember : $(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 |
| 571 | remember.dvi: ${srcdir}/remember.texi ${gfdl} | 632 | remember.dvi: $(remember_deps) |
| 572 | $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi | 633 | $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi |
| 573 | remember.pdf: ${srcdir}/remember.texi ${gfdl} | 634 | remember.pdf: $(remember_deps) |
| 574 | $(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi | 635 | $(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi |
| 636 | remember.html: $(remember_deps) | ||
| 637 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/remember.texi | ||
| 575 | 638 | ||
| 639 | sasl_deps = ${srcdir}/sasl.texi ${gfdl} | ||
| 576 | sasl : $(buildinfodir)/sasl$(INFO_EXT) | 640 | sasl : $(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 |
| 580 | sasl.dvi: ${srcdir}/sasl.texi ${gfdl} | 644 | sasl.dvi: $(sasl_deps) |
| 581 | $(ENVADD) $(TEXI2DVI) ${srcdir}/sasl.texi | 645 | $(ENVADD) $(TEXI2DVI) ${srcdir}/sasl.texi |
| 582 | sasl.pdf: ${srcdir}/sasl.texi ${gfdl} | 646 | sasl.pdf: $(sasl_deps) |
| 583 | $(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi | 647 | $(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi |
| 648 | sasl.html: $(sasl_deps) | ||
| 649 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/sasl.texi | ||
| 584 | 650 | ||
| 651 | sc_deps = ${srcdir}/sc.texi ${gfdl} | ||
| 585 | sc : $(buildinfodir)/sc$(INFO_EXT) | 652 | sc : $(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 |
| 589 | sc.dvi: ${srcdir}/sc.texi ${gfdl} | 656 | sc.dvi: $(sc_deps) |
| 590 | $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi | 657 | $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi |
| 591 | sc.pdf: ${srcdir}/sc.texi ${gfdl} | 658 | sc.pdf: $(sc_deps) |
| 592 | $(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi | 659 | $(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi |
| 660 | sc.html: $(sc_deps) | ||
| 661 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/sc.texi | ||
| 593 | 662 | ||
| 663 | semantic_deps = ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl} | ||
| 594 | semantic : $(buildinfodir)/semantic$(INFO_EXT) | 664 | semantic : $(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 |
| 598 | semantic.dvi: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl} | 668 | semantic.dvi: $(semantic_deps) |
| 599 | $(ENVADD) $(TEXI2DVI) ${srcdir}/semantic.texi | 669 | $(ENVADD) $(TEXI2DVI) ${srcdir}/semantic.texi |
| 600 | semantic.pdf: ${srcdir}/semantic.texi ${srcdir}/sem-user.texi ${gfdl} | 670 | semantic.pdf: $(semantic_deps) |
| 601 | $(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi | 671 | $(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi |
| 672 | semantic.html: $(semantic_deps) | ||
| 673 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/semantic.texi | ||
| 602 | 674 | ||
| 675 | ses_deps = ${srcdir}/ses.texi ${gfdl} | ||
| 603 | ses : $(buildinfodir)/ses$(INFO_EXT) | 676 | ses : $(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 |
| 607 | ses.dvi: ${srcdir}/ses.texi ${gfdl} | 680 | ses.dvi: $(ses_deps) |
| 608 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi | 681 | $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi |
| 609 | ses.pdf: ${srcdir}/ses.texi ${gfdl} | 682 | ses.pdf: $(ses_deps) |
| 610 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi | 683 | $(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi |
| 684 | ses.html: $(ses_deps) | ||
| 685 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/ses.texi | ||
| 611 | 686 | ||
| 687 | sieve_deps = ${srcdir}/sieve.texi ${gfdl} | ||
| 612 | sieve : $(buildinfodir)/sieve$(INFO_EXT) | 688 | sieve : $(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 |
| 616 | sieve.dvi: ${srcdir}/sieve.texi ${gfdl} | 692 | sieve.dvi: $(sieve_deps) |
| 617 | $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi | 693 | $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi |
| 618 | sieve.pdf: ${srcdir}/sieve.texi ${gfdl} | 694 | sieve.pdf: $(sieve_deps) |
| 619 | $(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi | 695 | $(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi |
| 696 | sieve.html: $(sieve_deps) | ||
| 697 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/sieve.texi | ||
| 620 | 698 | ||
| 699 | smtpmail_deps = ${srcdir}/smtpmail.texi ${gfdl} | ||
| 621 | smtpmail : $(buildinfodir)/smtpmail$(INFO_EXT) | 700 | smtpmail : $(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 |
| 625 | smtpmail.dvi: ${srcdir}/smtpmail.texi ${gfdl} | 704 | smtpmail.dvi: $(smtpmail_deps) |
| 626 | $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi | 705 | $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi |
| 627 | smtpmail.pdf: ${srcdir}/smtpmail.texi ${gfdl} | 706 | smtpmail.pdf: $(smtpmail_deps) |
| 628 | $(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi | 707 | $(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi |
| 708 | smtpmail.html: $(smtpmail_deps) | ||
| 709 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/smtpmail.texi | ||
| 629 | 710 | ||
| 711 | speedbar_deps = ${srcdir}/speedbar.texi ${gfdl} | ||
| 630 | speedbar : $(buildinfodir)/speedbar$(INFO_EXT) | 712 | speedbar : $(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 |
| 634 | speedbar.dvi: ${srcdir}/speedbar.texi ${gfdl} | 716 | speedbar.dvi: $(speedbar_deps) |
| 635 | $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi | 717 | $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi |
| 636 | speedbar.pdf: ${srcdir}/speedbar.texi ${gfdl} | 718 | speedbar.pdf: $(speedbar_deps) |
| 637 | $(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi | 719 | $(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi |
| 720 | speedbar.html: $(speedbar_deps) | ||
| 721 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/speedbar.texi | ||
| 638 | 722 | ||
| 723 | srecode_deps = ${srcdir}/srecode.texi ${gfdl} | ||
| 639 | srecode : $(buildinfodir)/srecode$(INFO_EXT) | 724 | srecode : $(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 |
| 643 | srecode.dvi: ${srcdir}/srecode.texi ${gfdl} | 728 | srecode.dvi: $(srecode_deps) |
| 644 | $(ENVADD) $(TEXI2DVI) ${srcdir}/srecode.texi | 729 | $(ENVADD) $(TEXI2DVI) ${srcdir}/srecode.texi |
| 645 | srecode.pdf: ${srcdir}/srecode.texi ${gfdl} | 730 | srecode.pdf: $(srecode_deps) |
| 646 | $(ENVADD) $(TEXI2PDF) ${srcdir}/srecode.texi | 731 | $(ENVADD) $(TEXI2PDF) ${srcdir}/srecode.texi |
| 647 | 732 | srecode.html: $(srecode_deps) | |
| 733 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/srecode.texi | ||
| 734 | |||
| 735 | todo_mode_deps = ${srcdir}/todo-mode.texi ${gfdl} | ||
| 736 | todo-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 | ||
| 740 | todo-mode.dvi: $(todo_mode_deps) | ||
| 741 | $(ENVADD) $(TEXI2DVI) ${srcdir}/todo-mode.texi | ||
| 742 | todo-mode.pdf: $(todo_mode_deps) | ||
| 743 | $(ENVADD) $(TEXI2PDF) ${srcdir}/todo-mode.texi | ||
| 744 | todo-mode.html: $(todo_mode_deps) | ||
| 745 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/todo-mode.texi | ||
| 746 | |||
| 747 | tramp_deps = ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl} | ||
| 648 | tramp : $(buildinfodir)/tramp$(INFO_EXT) | 748 | tramp : $(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 |
| 652 | tramp.dvi: ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl} | 752 | tramp.dvi: $(tramp_deps) |
| 653 | $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi | 753 | $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi |
| 654 | tramp.pdf: ${srcdir}/tramp.texi ${srcdir}/trampver.texi ${gfdl} | 754 | tramp.pdf: $(tramp_deps) |
| 655 | $(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi | 755 | $(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi |
| 756 | tramp.html: $(tramp_deps) | ||
| 757 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ -D emacs ${srcdir}/tramp.texi | ||
| 656 | 758 | ||
| 759 | url_deps = ${srcdir}/url.texi ${gfdl} | ||
| 657 | url : $(buildinfodir)/url$(INFO_EXT) | 760 | url : $(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 |
| 661 | url.dvi: ${srcdir}/url.texi ${gfdl} | 764 | url.dvi: $(url_deps) |
| 662 | $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi | 765 | $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi |
| 663 | url.pdf: ${srcdir}/url.texi ${gfdl} | 766 | url.pdf: $(url_deps) |
| 664 | $(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi | 767 | $(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi |
| 768 | url.html: $(url_deps) | ||
| 769 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/url.texi | ||
| 665 | 770 | ||
| 771 | vip_deps = ${srcdir}/vip.texi ${gfdl} | ||
| 666 | vip : $(buildinfodir)/vip$(INFO_EXT) | 772 | vip : $(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 |
| 670 | vip.dvi: ${srcdir}/vip.texi ${gfdl} | 776 | vip.dvi: $(vip_deps) |
| 671 | $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi | 777 | $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi |
| 672 | vip.pdf: ${srcdir}/vip.texi ${gfdl} | 778 | vip.pdf: $(vip_deps) |
| 673 | $(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi | 779 | $(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi |
| 780 | vip.html: $(vip_deps) | ||
| 781 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/vip.texi | ||
| 674 | 782 | ||
| 783 | viper_deps = ${srcdir}/viper.texi ${gfdl} | ||
| 675 | viper : $(buildinfodir)/viper$(INFO_EXT) | 784 | viper : $(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 |
| 679 | viper.dvi: ${srcdir}/viper.texi ${gfdl} | 788 | viper.dvi: $(viper_deps) |
| 680 | $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi | 789 | $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi |
| 681 | viper.pdf: ${srcdir}/viper.texi ${gfdl} | 790 | viper.pdf: $(viper_deps) |
| 682 | $(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi | 791 | $(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi |
| 792 | viper.html: $(viper_deps) | ||
| 793 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/viper.texi | ||
| 683 | 794 | ||
| 795 | widget_deps = ${srcdir}/wisent.texi ${gfdl} | ||
| 684 | widget : $(buildinfodir)/widget$(INFO_EXT) | 796 | widget : $(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 |
| 688 | widget.dvi: ${srcdir}/widget.texi ${gfdl} | 800 | widget.dvi: $(widget_deps) |
| 689 | $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi | 801 | $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi |
| 690 | widget.pdf: ${srcdir}/widget.texi ${gfdl} | 802 | widget.pdf: $(widget_deps) |
| 691 | $(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi | 803 | $(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi |
| 804 | widget.html: $(widget_deps) | ||
| 805 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/widget.texi | ||
| 692 | 806 | ||
| 807 | wisent_deps = ${srcdir}/wisent.texi ${gfdl} | ||
| 693 | wisent : $(buildinfodir)/wisent$(INFO_EXT) | 808 | wisent : $(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 |
| 697 | wisent.dvi: ${srcdir}/wisent.texi ${gfdl} | 812 | wisent.dvi: $(wisent_deps) |
| 698 | $(ENVADD) $(TEXI2DVI) ${srcdir}/wisent.texi | 813 | $(ENVADD) $(TEXI2DVI) ${srcdir}/wisent.texi |
| 699 | wisent.pdf: ${srcdir}/wisent.texi ${gfdl} | 814 | wisent.pdf: $(wisent_deps) |
| 700 | $(ENVADD) $(TEXI2PDF) ${srcdir}/wisent.texi | 815 | $(ENVADD) $(TEXI2PDF) ${srcdir}/wisent.texi |
| 816 | wisent.html: $(wisent_deps) | ||
| 817 | $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ ${srcdir}/wisent.texi | ||
| 701 | 818 | ||
| 819 | woman_deps = ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl} | ||
| 702 | woman : $(buildinfodir)/woman$(INFO_EXT) | 820 | woman : $(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 |
| 706 | woman.dvi: ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl} | 824 | woman.dvi: $(woman_deps) |
| 707 | $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi | 825 | $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi |
| 708 | woman.pdf: ${srcdir}/woman.texi $(emacsdir)/emacsver.texi ${gfdl} | 826 | woman.pdf: $(woman_deps) |
| 709 | $(ENVADD) $(TEXI2PDF) ${srcdir}/woman.texi | 827 | $(ENVADD) $(TEXI2PDF) ${srcdir}/woman.texi |
| 710 | 828 | woman.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 | ||
| 720 | clean: mostlyclean | 839 | clean: 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 | ||
| 724 | distclean: clean | 844 | distclean: 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 | |||
| 879 | install-dvi: dvi | ||
| 880 | umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir) | ||
| 881 | $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir) | ||
| 882 | install-html: html | ||
| 883 | umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir) | ||
| 884 | $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir) | ||
| 885 | install-pdf: pdf | ||
| 886 | umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir) | ||
| 887 | $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir) | ||
| 888 | install-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. | ||
| 898 | install-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 | |||
| 904 | uninstall-dvi: | ||
| 905 | for file in $(DVI_TARGETS); do \ | ||
| 906 | rm -f $(DESTDIR)$(dvidir)/$${file}; \ | ||
| 907 | done | ||
| 908 | uninstall-html: | ||
| 909 | for file in $(HTML_TARGETS); do \ | ||
| 910 | rm -f $(DESTDIR)$(htmldir)/$${file}; \ | ||
| 911 | done | ||
| 912 | uninstall-ps: | ||
| 913 | ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \ | ||
| 914 | for file in $(PS_TARGETS); do \ | ||
| 915 | rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \ | ||
| 916 | done | ||
| 917 | uninstall-pdf: | ||
| 918 | for file in $(PDF_TARGETS); do \ | ||
| 919 | rm -f $(DESTDIR)$(pdfdir)/$${file}; \ | ||
| 920 | done | ||
| 921 | |||
| 922 | uninstall-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.}. | |||
| 1113 | This function is not bound to a key by default, but it's intended to be | 1113 | This function is not bound to a key by default, but it's intended to be |
| 1114 | used on the @kbd{RET} key. If you like the behavior of | 1114 | used 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 |
| 1116 | this function. @xref{Sample .emacs File}. | 1116 | this 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 | ||
| 1171 | You can toggle each of these minor modes on and off, and you can | 1171 | You can toggle each of these minor modes on and off, and you can |
| 1172 | configure @ccmode{} so that it starts up with your favorite | 1172 | configure @ccmode{} so that it starts up with your favorite |
| 1173 | combination of them (@pxref{Sample .emacs File}). By default, when | 1173 | combination of them (@pxref{Sample Init File}). By default, when |
| 1174 | you initialize a buffer, electric mode and syntactic-indentation mode | 1174 | you initialize a buffer, electric mode and syntactic-indentation mode |
| 1175 | are enabled but the other two modes are disabled. | 1175 | are 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-) |
| 2379 | Hook run only once per Emacs session, when @ccmode{} is initialized. | 2379 | Hook run only once per Emacs session, when @ccmode{} is initialized. |
| 2380 | This is a good place to change key bindings (or add new ones) in any | 2380 | This is a good place to change key bindings (or add new ones) in any |
| 2381 | of the @ccmode{} key maps. @xref{Sample .emacs File}. | 2381 | of 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. | |||
| 2406 | Here's a simplified example of what you can add to your @file{.emacs} | 2406 | Here's a simplified example of what you can add to your @file{.emacs} |
| 2407 | file to do things whenever any @ccmode{} language is edited. See the | 2407 | file to do things whenever any @ccmode{} language is edited. See the |
| 2408 | Emacs manuals for more information on customizing Emacs via hooks. | 2408 | Emacs 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} |
| 2410 | file. | 2410 | file. |
| 2411 | 2411 | ||
| 2412 | @example | 2412 | @example |
| @@ -2685,7 +2685,7 @@ create a new @dfn{style definition}, possibly based on an existing | |||
| 2685 | style. To do this, put the new style's settings into a list with the | 2685 | style. To do this, put the new style's settings into a list with the |
| 2686 | following format; the list can then be passed as an argument to the | 2686 | following format; the list can then be passed as an argument to the |
| 2687 | function @code{c-add-style}. You can see an example of a style | 2687 | function @code{c-add-style}. You can see an example of a style |
| 2688 | definition in @ref{Sample .emacs File}. | 2688 | definition 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. | |||
| 2753 | You should use @code{c-set-style} instead. | 2753 | You should use @code{c-set-style} instead. |
| 2754 | 2754 | ||
| 2755 | The sample @file{.emacs} file provides a concrete example of how a new | 2755 | The sample @file{.emacs} file provides a concrete example of how a new |
| 2756 | style can be added and automatically set. @xref{Sample .emacs File}. | 2756 | style 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 | ||
| 6812 | Here's a sample .emacs file fragment that might help you along the way. | 6812 | Here'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 | ||
| 464 | Argument lists support @dfn{destructuring}. In Common Lisp, | 465 | Argument lists support @dfn{destructuring}. In Common Lisp, |
| 465 | destructuring is only allowed with @code{defmacro}; this package | 466 | destructuring is only allowed with @code{defmacro}; this package |
| 466 | allows it with @code{cl-defun} and other argument lists as well. | 467 | allows 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 |
| 1497 | Common Lisp @dfn{blocks} provide a non-local exit mechanism very | 1499 | Common 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, | |||
| 2139 | based on the value of @code{x} left over from the previous time | 2141 | based on the value of @code{x} left over from the previous time |
| 2140 | through the loop. | 2142 | through the loop. |
| 2141 | 2143 | ||
| 2144 | @cindex destructuring, in cl-loop | ||
| 2142 | Another feature of the @code{cl-loop} macro is @emph{destructuring}, | 2145 | Another feature of the @code{cl-loop} macro is @emph{destructuring}, |
| 2143 | similar in concept to the destructuring provided by @code{defmacro} | 2146 | similar 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 | |||
| 2503 | or with incorrect keyword arguments. | 2506 | or with incorrect keyword arguments. |
| 2504 | @end defmac | 2507 | @end defmac |
| 2505 | 2508 | ||
| 2509 | @cindex compiler macros | ||
| 2510 | @cindex define compiler macros | ||
| 2506 | This package also includes the Common Lisp @code{define-compiler-macro} | 2511 | This package also includes the Common Lisp @code{define-compiler-macro} |
| 2507 | facility, which allows you to define compile-time expansions and | 2512 | facility, which allows you to define compile-time expansions and |
| 2508 | optimizations for your functions. | 2513 | optimizations 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 | |||
| 789 | special needs. | 789 | special 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 | ||
| 801 | A sample @file{edt-user.el} file is provided in the Emacs @file{etc/} | 801 | A 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 | ||
| 11 | Answers 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 | ||
| 20 | Copyright @copyright{} 2008, 2010-2013 Free Software Foundation, Inc. | ||
| 21 | |||
| 22 | @quotation | ||
| 23 | This list of frequently asked questions about GNU Emacs on MS Windows | ||
| 24 | with answers (``FAQ'') may be translated into other languages, | ||
| 25 | transformed into other formats (e.g. Texinfo, Info, WWW), and updated | ||
| 26 | with new information. | ||
| 27 | |||
| 28 | The same conditions apply to any derivative of the FAQ as apply to the FAQ | ||
| 29 | itself. Every copy of the FAQ must include this notice or an approved | ||
| 30 | translation, information on who is currently maintaining the FAQ and how to | ||
| 31 | contact them (including their e-mail address), and information on where the | ||
| 32 | latest version of the FAQ is archived (including FTP information). | ||
| 33 | |||
| 34 | The FAQ may be copied and redistributed under these conditions, except that | ||
| 35 | the FAQ may not be embedded in a larger literary work unless that work | ||
| 36 | itself 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 | |||
| 61 | This is the FAQ for using GNU Emacs on MS Windows, as distributed with | ||
| 62 | Emacs @value{EMACSVER}. | ||
| 63 | |||
| 64 | This FAQ is maintained by the developers and users of Emacs on MS Windows. | ||
| 65 | If you find any errors, or have any suggestions, please send them to | ||
| 66 | the @url{http://lists.gnu.org/mailman/listinfo/help-emacs-windows, | ||
| 67 | help-emacs-windows} mailing list. | ||
| 68 | |||
| 69 | At 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 | |||
| 97 | This FAQ covers questions that are specific to running GNU Emacs on Windows. | ||
| 98 | For 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 | |||
| 111 | It is not our goal to ``help Windows users'' by making text editing | ||
| 112 | on Windows more convenient. We aim to replace proprietary software, | ||
| 113 | not to enhance it. So why support GNU Emacs on Windows? | ||
| 114 | |||
| 115 | We hope that the experience of using GNU Emacs on Windows will give | ||
| 116 | programmers a taste of freedom, and that this will later inspire them | ||
| 117 | to move to a free operating system such as GNU/Linux. That is the | ||
| 118 | main valid reason to support free applications on nonfree operating | ||
| 119 | systems. | ||
| 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 | |||
| 126 | Emacs @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? | ||
| 128 | Windows 98 and Windows NT 4.0 through to Windows 7. The Windows port is | ||
| 129 | built using the Win32 API and supports most features of the X version, | ||
| 130 | including 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 | ||
| 140 | Emacs can also be compiled for MSDOS. When run on recent MS Windows, | ||
| 141 | it supports long file names, and uses the Windows clipboard. | ||
| 142 | See the @file{msdos} directory in the Emacs sources for building | ||
| 143 | instructions (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 | ||
| 160 | Pre-compiled versions are distributed from | ||
| 161 | @uref{http://ftpmirror.gnu.org/emacs/windows/, ftp.gnu.org mirrors}. | ||
| 162 | Emacs binaries are distributed as zip files, digitally | ||
| 163 | signed by the developer who built them. Generally most users will | ||
| 164 | want the file @file{emacs-@value{EMACSVER}-bin-i386.zip}, which | ||
| 165 | contains everything you need to get started. | ||
| 166 | |||
| 167 | @cindex where to get sources | ||
| 168 | @cindex Emacs source code | ||
| 169 | @cindex source for Emacs | ||
| 170 | The latest source is available from | ||
| 171 | @uref{http://ftpmirror.gnu.org/emacs/, ftp.gnu.org mirrors}. It is | ||
| 172 | distributed as a compressed tar file, digitally signed by the maintainer | ||
| 173 | who made the release. | ||
| 174 | |||
| 175 | @cindex Bzr, getting Emacs | ||
| 176 | @cindex latest development version of Emacs | ||
| 177 | @cindex Emacs Development | ||
| 178 | The development version of Emacs is available from | ||
| 179 | @uref{http://savannah.gnu.org/projects/emacs, Savannah}, the GNU | ||
| 180 | development site. | ||
| 181 | |||
| 182 | @node Compiling | ||
| 183 | @section How can I compile Emacs myself? | ||
| 184 | @cindex compiling Emacs | ||
| 185 | |||
| 186 | To compile Emacs on Windows, you will need the MingW or Cygwin port of | ||
| 187 | GCC with MingW make, or a Microsoft C compiler with nmake and the | ||
| 188 | single threaded C runtime library. Recent versions of Microsoft | ||
| 189 | Visual Studio no longer come with the single threaded C runtime | ||
| 190 | library, which is required for certain POSIX compatibility, so MingW | ||
| 191 | is usually the best choice. Image support requires external | ||
| 192 | libraries, the headers and import libraries for which will need to be | ||
| 193 | installed where your compiler can find them. You will also need ports | ||
| 194 | of GNU @command{rm} and @command{cp}, as the Windows native | ||
| 195 | equivalents are not consistent between versions. GNU texinfo will be | ||
| 196 | required to build the manuals. @xref{Other useful ports}. | ||
| 197 | |||
| 198 | After unpacking the source, or checking out of Bzr, be sure to read the | ||
| 199 | instructions 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 | |||
| 207 | By default, Emacs is compiled with debugging on, and optimizations enabled. | ||
| 208 | The optimizations may interfere with some types of debugging; the debugger | ||
| 209 | may not show clearly where it is, or may not be able to inspect certain | ||
| 210 | variables. If this is the case, reconfigure with @option{--no-opt}. | ||
| 211 | |||
| 212 | The file @file{etc/DEBUG} contains general debugging hints, as well as | ||
| 213 | specific 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 | |||
| 225 | GDB is the GNU debugger, which can be used to debug Emacs when it has | ||
| 226 | been compiled with GCC. The best results will be obtained if you | ||
| 227 | start gdb from the @file{src} directory as @samp{gdb oo/i386/emacs.exe}. | ||
| 228 | This will load the init file @file{.gdbinit} in that directory, to | ||
| 229 | define some extra commands for working with lisp while debugging, and | ||
| 230 | set 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 | |||
| 238 | MS DevStudio can be used to debug Emacs when it has been compiled with | ||
| 239 | a Microsoft compiler. To view lisp variables, you can call the | ||
| 240 | function @code{debug_print} from the Quickwatch window. Some | ||
| 241 | @uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/debug.txt, | ||
| 242 | old 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 | |||
| 275 | The binary distributions are distributed as zip files, which are handled | ||
| 276 | natively by Windows XP and later. For earlier versions, there are many | ||
| 277 | tools that can handle the zip format, from InfoZip's command line unzip | ||
| 278 | tool, to 7zip's multi-format graphical archive explorer. Although | ||
| 279 | popular, WinZip has caused problems with line-ends in the past, and is not | ||
| 280 | Free software, so we do not recommend it. | ||
| 281 | |||
| 282 | Source distributions are distributed as gzipped tar files. 7zip and | ||
| 283 | similar multi-format graphical tools can handle these, or you can get | ||
| 284 | Windows ports of the command line gzip and tar tools from multiple sources. | ||
| 285 | @xref{Other useful ports}. | ||
| 286 | |||
| 287 | The command to unpack a source distribution from the command line is: | ||
| 288 | @example | ||
| 289 | tar xzf emacs-@value{EMACSVER}.tar.gz | ||
| 290 | @end example | ||
| 291 | |||
| 292 | If this does not work with the versions of tar and gzip that you have, | ||
| 293 | you may need to try a two step process: | ||
| 294 | @example | ||
| 295 | gzip -dc emacs-@value{EMACSVER}.tar.gz | tar xvf - | ||
| 296 | @end example | ||
| 297 | |||
| 298 | You may see many messages from tar complaining about being unable to change | ||
| 299 | the modification time on directories, and from gzip complaining about a | ||
| 300 | broken pipe. These messages are usually harmless, caused by incomplete ports | ||
| 301 | that 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 | |||
| 309 | You can run Emacs without any extra steps, but if you want icons in your | ||
| 310 | Start Menu, or for Emacs to detect the image libraries that are already | ||
| 311 | installed 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 | |||
| 327 | Emacs has built in support for XBM and PBM/PGM/PPM images. This is | ||
| 328 | sufficient to see the monochrome splash screen and tool-bar icons. | ||
| 329 | Since 22.2, the official precompiled binaries for Windows have bundled | ||
| 330 | libXpm, which is required to display the color versions of those images. | ||
| 331 | |||
| 332 | Emacs is compiled to recognize JPEG, PNG, GIF and TIFF images also, | ||
| 333 | but displaying these image types require external DLLs which are not | ||
| 334 | bundled 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 | |||
| 341 | When Emacs starts up, it attempts to load and execute the contents of | ||
| 342 | a 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 | ||
| 344 | customizations 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 | ||
| 347 | with 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 | |||
| 357 | On Windows, the .emacs file may be called _emacs for backward | ||
| 358 | compatibility with DOS and FAT filesystems where filenames could not | ||
| 359 | start with a dot. Some users prefer to continue using such a name, | ||
| 360 | because Explorer cannot create a file with a name starting with a dot, | ||
| 361 | even though the filesystem and most other programs can handle it. | ||
| 362 | In 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 | ||
| 364 | by lisp packages are now stored in the @file{.emacs.d} directory too, | ||
| 365 | so this keeps all your Emacs related files in one place. | ||
| 366 | |||
| 367 | All the files mentioned above should go in your @env{HOME} directory. | ||
| 368 | The @env{HOME} directory is determined by following the steps below: | ||
| 369 | |||
| 370 | @enumerate | ||
| 371 | @item | ||
| 372 | If the environment variable @env{HOME} is set, use the directory it indicates. | ||
| 373 | @item | ||
| 374 | If the registry entry @code{HKCU\SOFTWARE\GNU\Emacs\HOME} is set, use the | ||
| 375 | directory it indicates. | ||
| 376 | @item | ||
| 377 | If the registry entry @code{HKLM\SOFTWARE\GNU\Emacs\HOME} is set, use the | ||
| 378 | directory it indicates. Not recommended, as it results in users sharing | ||
| 379 | the same HOME directory. | ||
| 380 | @item | ||
| 381 | If @file{C:\.emacs} exists, then use @file{C:/}. This is for | ||
| 382 | backward compatibility, as previous versions defaulted to @file{C:/} | ||
| 383 | if @env{HOME} was not set. | ||
| 384 | @item | ||
| 385 | Use the user's AppData directory, usually a directory called | ||
| 386 | @file{Application Data} under the user's profile directory, the location | ||
| 387 | of which varies according to Windows version and whether the computer is | ||
| 388 | part of a domain. | ||
| 389 | @end enumerate | ||
| 390 | |||
| 391 | Within 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 | |||
| 401 | If you've set @env{HOME} to a directory using one of the above | ||
| 402 | methods, and Emacs still doesn't load your init file, the first | ||
| 403 | thing you should do is check to see what Emacs thinks @env{HOME} is set | ||
| 404 | to. 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 | |||
| 411 | Look carefully at what is printed and make sure the value is | ||
| 412 | valid. For example, if the value has trailing whitespace, Emacs won't | ||
| 413 | be able to find the directory. Also, be sure that the value isn't a | ||
| 414 | relative drive letter (e.g., @file{d:} without a backslash); if it is, | ||
| 415 | then @env{HOME} is going to be whatever the current directory on that | ||
| 416 | drive 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 | |||
| 427 | The recommended way to associate files is to associate them with | ||
| 428 | @command{emacsclientw.exe}. In order for this to work when Emacs is | ||
| 429 | not yet started, you will also need to set the environment variable | ||
| 430 | @env{ALTERNATE_EDITOR} to @command{runemacs.exe}. To open files | ||
| 431 | in a running instance of Emacs, you will need to add the following | ||
| 432 | to 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 | |||
| 448 | You can use Emacs as the editor for composing mail for | ||
| 449 | @indicateurl{mailto:} links, reading usenet for @indicateurl{news:} | ||
| 450 | links, and viewing source. The following registry entries control | ||
| 451 | this: | ||
| 452 | |||
| 453 | @itemize @w{} | ||
| 454 | @item | ||
| 455 | |||
| 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 | ||
| 462 | News | ||
| 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 | ||
| 469 | View 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 | |||
| 477 | Thanks 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 | |||
| 485 | The location of the Desktop varies between different versions of | ||
| 486 | Windows, and in a corporate environment can be moved around by the | ||
| 487 | network administrator. On NT derivatives, you can use the value of | ||
| 488 | the @env{USERPROFILE} environment variable to find where the desktop | ||
| 489 | might be: | ||
| 490 | |||
| 491 | @example | ||
| 492 | @kbd{C-x C-f $USERPROFILE/Desktop} | ||
| 493 | @end example | ||
| 494 | |||
| 495 | If this doesn't work, then you probably have to forgo the keyboard | ||
| 496 | just this once, and either drag a file onto the Emacs frame from the | ||
| 497 | desktop, or use the file dialog (displayed when you use the toolbar or | ||
| 498 | menu 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 | |||
| 516 | Customize the variables @code{focus-follows-mouse} and | ||
| 517 | @code{mouse-autoselect-window}. The former can be used to mislead | ||
| 518 | Emacs into giving focus to other frames when the mouse is over them, | ||
| 519 | even though Windows has a click to focus policy by default (there is | ||
| 520 | software available to change that though). The latter can be used to | ||
| 521 | make 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 | |||
| 532 | This cannot be done within Emacs, but you can modify the scan code | ||
| 533 | mappings in the registry or define a new keyboard layout to swap the | ||
| 534 | keys 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 | ||
| 546 | From Chris McMahon. To make CapsLock a Control key (leaving your | ||
| 547 | original control keys as they were), use this registry file: | ||
| 548 | @example | ||
| 549 | REGEDIT4 | ||
| 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 | ||
| 554 | To swap CapsLock and the left Control key, use: | ||
| 555 | @example | ||
| 556 | REGEDIT4 | ||
| 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 | ||
| 561 | Save these as files with a @file{.reg} extension, and double-click on | ||
| 562 | them in Explorer, or ``run'' them from a command prompt to have them | ||
| 563 | update your registry (you may need to reboot). | ||
| 564 | @item | ||
| 565 | Shane Holder gives some background on how "Scancode Map" is used | ||
| 566 | by the system: | ||
| 567 | @ignore | ||
| 568 | http://ftp.gnu.org/old-gnu/emacs/windows/docs/ntemacs/contrib/caps-ctrl-registry.txt | ||
| 569 | From: Shane Holder <holder@@mordor.rsn.hp.com> | ||
| 570 | To: ntemacs-users@@cs.washington.edu | ||
| 571 | Date: 04 Dec 1996 14:36:21 -0600 | ||
| 572 | Message-ID: <fawg21mm4hm.fsf@@mordor.rsn.hp.com> | ||
| 573 | Subject: Re: Re[2]: problem with caps/ctrl swap on NT 4.0 | ||
| 574 | @end ignore | ||
| 575 | @example | ||
| 576 | It's a binary value that lets you map keystrokes in the low-level keyboard | ||
| 577 | drivers in NT. As a result you don't have to worry about applications | ||
| 578 | bypassing mappings that you've done at a higher level (i.e. it just works). | ||
| 579 | |||
| 580 | Here'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 | |||
| 590 | Each mapping DWORD has two parts: the input scancode, and an output | ||
| 591 | scancode. To map scancode 0x1d (left control) to scancode 0x3a (caps | ||
| 592 | lock), you want a value of 0x003a001d. Note that this does not swap the | ||
| 593 | keys. Using just this mapping value, both the left control and the caps | ||
| 594 | lock key will behave as caps-lock. To swap, you also need to map 0x3a to | ||
| 595 | 0x1d, using 0x001d003a. | ||
| 596 | |||
| 597 | This registry value is system wide, and can't be made user-specific. It | ||
| 598 | also only takes affect on reboot. | ||
| 599 | @end example | ||
| 600 | @item | ||
| 601 | Ulfar Erlingsson has provided a registry file that sets the CapsLock key | ||
| 602 | to be a Control key and the Windows key to be an Alt key: | ||
| 603 | @example | ||
| 604 | REGEDIT4 | ||
| 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 | |||
| 614 | Microsoft has a tool called keyremap that is part of their Kernel Toys add ons | ||
| 615 | for 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 | |||
| 622 | Many beginning users find Emacs difficult to use because its user | ||
| 623 | interface is different in many ways. Emacs predates most UI | ||
| 624 | standards, and experienced Emacs users are used to the way things are, | ||
| 625 | so changing the defaults is difficult. Most of the ``standard'' | ||
| 626 | behavior 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 | |||
| 644 | Emacs has a concept of a mark and point that is similar to selections | ||
| 645 | in other programs. But the mark in Emacs is used for more than just | ||
| 646 | defining the selected region, it lives on while you continue to edit | ||
| 647 | and move around the buffer so it can also be a kind of bookmark. The | ||
| 648 | history of marks is saved so you can pop previous marks back to the | ||
| 649 | top of the stack to go back to somewhere you were some time ago. | ||
| 650 | Because of this dual purpose, the region between mark and point is not | ||
| 651 | highlighted by default unless you select a region by clicking and | ||
| 652 | dragging the mouse. | ||
| 653 | |||
| 654 | The minor mode @code{transient-mark-mode} changes the behavior of | ||
| 655 | the mark in two ways. First, it distinguishes between an active mark | ||
| 656 | that has just been defined or reactivated, and an inactive mark. When | ||
| 657 | the mark is active, some commands that normally act on lines, words, | ||
| 658 | buffers etc. will instead act on the region. An inactive mark needs | ||
| 659 | to be reactivated to operate on it, unless @code{mark-even-if-inactive} | ||
| 660 | is set. Secondly, @code{transient-mark-mode} also highlights the | ||
| 661 | region when it is active, providing the same visual clue that you get | ||
| 662 | in other programs. | ||
| 663 | |||
| 664 | In addition to seeing the highlighting, new Emacs users often expect | ||
| 665 | editing commands to replace the region when it is active. This behavior | ||
| 666 | can be obtained with @code{delete-selection-mode}, but see the following | ||
| 667 | question 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 | |||
| 682 | The keybindings of Emacs predate modern GUIs, and the keys that were | ||
| 683 | chosen by later GUIs for cut and copy were given important functions | ||
| 684 | as extended keymaps in Emacs. CUA mode attempts to let both bindings | ||
| 685 | co-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 | ||
| 687 | them have their normal Emacs bindings when the region is not active. | ||
| 688 | Many people find this to be an acceptable compromise. CUA mode also | ||
| 689 | defines a number of other keys (C-v, Shift selection), and can be turned | ||
| 690 | on 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 | |||
| 699 | The function @code{w32-send-sys-command} can be used to simulate | ||
| 700 | choosing commands from the system menu (in the top left corner of the | ||
| 701 | Window) and a few other system wide functions. It takes an integer | ||
| 702 | argument, the value of which should be a valid @code{WM_SYSCOMMAND} | ||
| 703 | message 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 | |||
| 715 | Emacs does not come with an uninstall program. No files are installed | ||
| 716 | outside of the Emacs base directory, so deleting that directory is | ||
| 717 | sufficient to clean away the files. If you ran @command{addpm}, | ||
| 718 | you'll need to delete the Start Menu group too. The registry entries | ||
| 719 | inserted by @command{addpm} will not cause any problems if you leave | ||
| 720 | them there, but for the sake of completeness, you can use @command{regedit} | ||
| 721 | to 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 | |||
| 732 | Emacs could have failed to run for a number of reasons. The most | ||
| 733 | common symptom is that, when Emacs is started, the cursor changes for | ||
| 734 | a second but nothing happens. If this happens to you, it is quite | ||
| 735 | likely that the distribution was unpacked incorrectly. | ||
| 736 | |||
| 737 | Check for the following to see if there was a problem during unpacking: | ||
| 738 | @enumerate | ||
| 739 | @item | ||
| 740 | Be sure to disable the CR/LF translation or the executables will be | ||
| 741 | unusable. Older versions of WinZipNT would enable this translation by | ||
| 742 | default. If you are using WinZipNT, disable it. | ||
| 743 | @item | ||
| 744 | Check that filenames were not truncated to 8.3. For example, there | ||
| 745 | should be a file CONTRIBUTE in the top level directory; if this has | ||
| 746 | been truncated to CONTRIBU or CONTRI~1, your distribution has been | ||
| 747 | corrupted while unpacking and Emacs will not start. | ||
| 748 | @end enumerate | ||
| 749 | |||
| 750 | If it is still not working, send mail to the list, describing what | ||
| 751 | you've done, and what you are seeing. (The more information you send | ||
| 752 | the 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 | |||
| 759 | There have been reports in the past that some virus scanners claim | ||
| 760 | that the Emacs distribution has a virus. This is extremely unlikely if | ||
| 761 | you have downloaded Emacs from the GNU FTP site or one of its mirrors | ||
| 762 | and the GPG signature for it is valid and listed in the GNU keyring, | ||
| 763 | unless perhaps it is a new release made in the last few days, in which | ||
| 764 | case you should exercise more caution and report the problem. Past | ||
| 765 | problems seem to have been caused by virus checkers running into a | ||
| 766 | buffer size limit when unpacking large tar.gz files for scanning, and | ||
| 767 | reporting 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 | |||
| 779 | Anti-virus and firewall software can block Emacs from starting subprocesses | ||
| 780 | and opening network connections. Most such products have an Advanced | ||
| 781 | mode where they will prompt you rather than silently blocking. In some cases | ||
| 782 | the ``scan all files'' or ``auto protect'' option of anti-virus programs | ||
| 783 | has 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 | |||
| 805 | The variable @code{w32-use-full-screen-buffer} controls whether Emacs uses | ||
| 806 | the window size or buffer size to determine the number of lines on screen. | ||
| 807 | Normally the window size is correct, but when running Emacs over some | ||
| 808 | telnet servers, the buffer size needs to be used. Emacs tries to guess | ||
| 809 | the correct value at startup, but if it guesses wrong, you can customize | ||
| 810 | that 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 | |||
| 826 | Emacs assigns bindings assuming a three button mouse. On Windows, if | ||
| 827 | a two button mouse is detected, a hack is enabled which lets you | ||
| 828 | simulate the third button by pressing both mouse buttons | ||
| 829 | simultaneously. @code{w32-mouse-button-tolerance} defines the timeout | ||
| 830 | for what is considered ``simultaneous''. You can check how many | ||
| 831 | buttons Emacs thinks your mouse has with @kbd{C-h v} | ||
| 832 | @code{w32-num-mouse-buttons}. | ||
| 833 | |||
| 834 | If you find yourself needing the mouse-3 bindings more often than mouse-2, | ||
| 835 | you 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 | |||
| 844 | If you attempt to cut and paste text with NUL characters embedded in it, | ||
| 845 | then the text will be truncated at the first NUL character. This is a | ||
| 846 | limitation of the Windows clipboard, and does not affect killing and yanking | ||
| 847 | from 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 | |||
| 857 | You can try @code{set-selection-coding-system}, but generally such | ||
| 858 | corruption is a thing of the past, as Emacs uses Unicode for the clipboard | ||
| 859 | by 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 | |||
| 867 | You can use the function @code{set-message-beep} to change the sound | ||
| 868 | that Emacs uses for its beep. This affects both console and GUI frames. | ||
| 869 | The 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 | |||
| 893 | Fonts in Emacs 22 and earlier are named using the X Logical Font | ||
| 894 | Description (XLFD) format. Emacs on Windows ignores many of the | ||
| 895 | fields, and populates them with * when listing fonts. Former | ||
| 896 | maintainer Andrew Innes wrote | ||
| 897 | @uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/x-font-details, | ||
| 898 | this explanation} of what each field in the font string means and how | ||
| 899 | Emacs treated them back in 19.34. Since then, multilingual support and | ||
| 900 | a redisplay overhaul to support variable width fonts have changed things | ||
| 901 | slightly; more character sets are recognized (and the old pseudo character | ||
| 902 | sets are deprecated), and the resolution fields are used to calculate the | ||
| 903 | difference between point and pixel sizes, but normally you should leave | ||
| 904 | these at the system default. The foundry field is also populated with | ||
| 905 | an indication of whether the font is outline (.TTF, .ATM) or raster (.FON) | ||
| 906 | based when fonts are listed, which may let you differentiate between two | ||
| 907 | fonts with the same name and different technologies. | ||
| 908 | |||
| 909 | From Emacs 23, the preferred font name format will be moving to the simpler | ||
| 910 | and more flexible fontconfig format. XLFD names will continue to be | ||
| 911 | supported for backward compatibility. | ||
| 912 | |||
| 913 | @example | ||
| 914 | XLFD: -*-Courier New-normal-r-*-*-13-*-*-*-c-*-iso8859-1 | ||
| 915 | Fontconfig: Courier New-13 | ||
| 916 | @end example | ||
| 917 | |||
| 918 | To 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 | |||
| 924 | To 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 | |||
| 930 | The command line options and frame-parameters for changing the default font | ||
| 931 | in Emacs are documented in the manual. Fonts can also be used when defining | ||
| 932 | faces, though family and size are generally specified individually there. | ||
| 933 | In addition, Emacs on Windows reads the registry to find X Resources. This | ||
| 934 | is 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 | |||
| 944 | Emacs will only use the italic (and bold) versions of a font automatically | ||
| 945 | if it has the same width as the normal version. Many fonts have italic | ||
| 946 | and bold versions that are slightly wider. It will also only use real | ||
| 947 | bold and italic fonts by default, where other applications may use | ||
| 948 | synthesized variations that are derived from the normal font. To enable | ||
| 949 | more italic and bold fonts to be displayed, you can enable synthesized fonts | ||
| 950 | and 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 | |||
| 978 | To display all the languages that Emacs is capable of displaying, you will | ||
| 979 | require the BDF fonts from the GNU intlfonts package. | ||
| 980 | @xref{Fonts and text translation,,How do I use bdf fonts with Emacs?}. | ||
| 981 | |||
| 982 | For many languages, native truetype fonts are sufficient, and in Emacs | ||
| 983 | 23 the need for BDF fonts will disappear for almost all languages. At | ||
| 984 | the time of writing, some Arabic characters in the HELLO file still do | ||
| 985 | not display with native fonts, because they are pre-composed characters | ||
| 986 | from MULE character sets rather than standard Unicode Arabic, but all | ||
| 987 | other characters are able to be displayed with appropriate truetype or | ||
| 988 | opentype 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 | |||
| 999 | Recent versions of Emacs display a large range of characters out of | ||
| 1000 | the box, but if you are having problems with a particular character | ||
| 1001 | set which you know you have fonts for, you can try defining a | ||
| 1002 | new 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 | |||
| 1033 | In addition to the wide range of fonts that come with the language | ||
| 1034 | support packages of various components of Windows itself, GNU/Linux | ||
| 1035 | distributions these days come with a number of Free truetype fonts | ||
| 1036 | that cover a wide range of languages. The GNU intlfonts source | ||
| 1037 | distribution contains BDF fonts covering all of the languages that can | ||
| 1038 | be 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 | |||
| 1047 | You 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 | ||
| 1049 | updates have made third party software unnecessary in most cases. | ||
| 1050 | If you are having trouble displaying text, try defining a fontset | ||
| 1051 | with the font for the languages that the third party software handles | ||
| 1052 | set to what that software expects (which may not be an appropriate font | ||
| 1053 | for that language, but the third party software is intercepting it | ||
| 1054 | and using a different font behind the scenes). | ||
| 1055 | @xref{Non-latin display}. | ||
| 1056 | |||
| 1057 | In addition to defining a fontset with the expected font, you may also need | ||
| 1058 | to 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 | |||
| 1068 | Normally Emacs should initialize @code{locale-coding-system} appropriately | ||
| 1069 | based on your locale, which will let Emacs use font names in your local | ||
| 1070 | language 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 | |||
| 1083 | To use bdf fonts with Emacs, you need to tell Emacs where the fonts | ||
| 1084 | are located, create fontsets for them, and then use them. We'll use | ||
| 1085 | the 16 dot international fonts from @uref{http://ftpmirror.gnu.org/intlfonts, | ||
| 1086 | ftp.gnu.org/gnu/intlfonts} as an | ||
| 1087 | example put together by Jason Rumney. | ||
| 1088 | |||
| 1089 | Download @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 | ||
| 1091 | fonts returned by using @code{w32-find-bdf-fonts} to enumerate all of | ||
| 1092 | the 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 | ||
| 1094 | to 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 | |||
| 1106 | Then create fontsets for the BDF fonts: | ||
| 1107 | |||
| 1108 | @example | ||
| 1109 | (create-fontset-from-fontset-spec | ||
| 1110 | "-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf, | ||
| 1111 | japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*, | ||
| 1112 | katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*, | ||
| 1113 | latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*, | ||
| 1114 | japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*, | ||
| 1115 | thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1, | ||
| 1116 | lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1, | ||
| 1117 | tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1, | ||
| 1118 | ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode, | ||
| 1119 | tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0") | ||
| 1120 | @end example | ||
| 1121 | |||
| 1122 | Many of the international bdf fonts from gnu.org are type 0, and therefore | ||
| 1123 | need 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 | |||
| 1140 | You can now use the Emacs font menu (@pxref{Fonts and text | ||
| 1141 | translation,,How can I have Emacs use a font menu like on X?}) to | ||
| 1142 | select the @emph{bdf: 16-dot medium} fontset, or you can select it by | ||
| 1143 | setting the default font: | ||
| 1144 | |||
| 1145 | @example | ||
| 1146 | (set-frame-font "fontset-bdf") | ||
| 1147 | @end example | ||
| 1148 | |||
| 1149 | Try loading the file @file{etc/HELLO}, and you should be able to see the | ||
| 1150 | various international fonts displayed (except for Hindi, which is not | ||
| 1151 | included 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 | |||
| 1160 | Place 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 | |||
| 1175 | If you have set w32-use-w32-font-dialog to nil, you can add fonts to | ||
| 1176 | the 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 | |||
| 1194 | There are a number of methods by which you can control automatic CR/LF | ||
| 1195 | translation in Emacs, a situation that reflects the fact that the | ||
| 1196 | default support was not very robust in the past. For a discussion of | ||
| 1197 | this issue, take a look at | ||
| 1198 | @uref{http://www.gnu.org/software/emacs/windows/ntemacs/todo/translate, | ||
| 1199 | this 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 | |||
| 1211 | For existing files, Emacs scans the file to determine the line ending | ||
| 1212 | convention as part of the same scan it does to determine the file | ||
| 1213 | encoding. Embedded Ctrl-M (ASCII 13) characters and inconsistent line | ||
| 1214 | ends can confuse the automatic scanning, and Emacs will present the | ||
| 1215 | file in Unix (LF) mode with the Ctrl-M characters displayed as @samp{^M}. | ||
| 1216 | It does this to be safe, as no data loss will occur if the file is really | ||
| 1217 | binary 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 | |||
| 1225 | The variable @code{file-name-buffer-file-type-alist} holds a list of | ||
| 1226 | filename patterns and their associated type; binary or text. Files marked | ||
| 1227 | as binary will not have line-end detection performed on them, and instead | ||
| 1228 | will always be displayed as is. With auto-detection in recent versions of | ||
| 1229 | Emacs, this is seldom useful for existing files, but can still be used | ||
| 1230 | to 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 | |||
| 1240 | The variable @code{untranslated-filesystem-list} defines whole | ||
| 1241 | directory trees that should not have CR/LF autodetection performed on | ||
| 1242 | them. The list can be manipulated with the functions | ||
| 1243 | @code{add-untranslated-filesystem} and | ||
| 1244 | @code{remove-untranslated-filesystem}. With auto-detection in | ||
| 1245 | recent versions of Emacs, this is seldom useful for existing files, | ||
| 1246 | but can still be used to influence the choice of line ends for newly | ||
| 1247 | created files. | ||
| 1248 | |||
| 1249 | @c ------------------------------------------------------------ | ||
| 1250 | @node Printing | ||
| 1251 | @chapter Printing | ||
| 1252 | @cindex printing | ||
| 1253 | |||
| 1254 | A lot of effort has gone into making it easier to print from Emacs on | ||
| 1255 | MS Windows, but this has still been insufficient to keep up with | ||
| 1256 | changes in printing technology from text and postscript based printers | ||
| 1257 | connected via ports that can be accessed directly, to graphical | ||
| 1258 | printers that are only accessible via USB. For details, see | ||
| 1259 | @uref{http://www.emacswiki.org/cgi-bin/wiki/PrintingFromEmacs, Emacs | ||
| 1260 | Wiki}. | ||
| 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 | |||
| 1289 | The quoting rules for native Windows shells and Cygwin shells have | ||
| 1290 | some subtle differences. When Emacs spawns subprocesses, it tries to | ||
| 1291 | determine whether the process is a Cygwin program and changes its | ||
| 1292 | quoting mechanism appropriately. See this | ||
| 1293 | @uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/shell-quoting, | ||
| 1294 | previous 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 | |||
| 1303 | Programs that explicitly use a handle to the console (@file{CON} or | ||
| 1304 | @file{CON:}) instead of stdin and stdout cannot be used as | ||
| 1305 | subprocesses to Emacs, and they will also not work in shell-mode. The | ||
| 1306 | default ftp client on Windows is an example of such a program - this | ||
| 1307 | ftp 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 | ||
| 1309 | I use FTP within Emacs}). There is no convenient way for either Emacs | ||
| 1310 | or any shell used in @code{shell-mode} to redirect the input and | ||
| 1311 | output of such processes from the console to input and output pipes. | ||
| 1312 | The only workaround is to use a different implementation of the | ||
| 1313 | program that does not use the console directly. Microsoft's new | ||
| 1314 | PowerShell appears to be another such program, so that cannot be used | ||
| 1315 | as 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 | |||
| 1329 | You may notice that some programs, when run in a shell in | ||
| 1330 | @code{shell-mode}, | ||
| 1331 | have their output buffered (e.g., people have found this happening to | ||
| 1332 | them with @code{sql-mode}). When the program has a lot of output, it | ||
| 1333 | overflows the buffering and gets printed to the shell buffer; however, | ||
| 1334 | if the program only outputs a small amount of text, it will remain | ||
| 1335 | buffered and won't appear in the shell buffer. The same can happen | ||
| 1336 | in other subprocesses that themselves run other programs as | ||
| 1337 | subprocesses, for example when using @command{cvs} from Emacs, which | ||
| 1338 | is itself configured to use @command{ssh}, password prompts fail to | ||
| 1339 | appear when expected, and @command{cvs} appears to hang. | ||
| 1340 | |||
| 1341 | Although it may at first seem like the shell is buffering the output | ||
| 1342 | from the program, it is actually the program that is buffering | ||
| 1343 | output. The C runtime typically decides how to buffer output based | ||
| 1344 | upon whether stdout is bound to a handle to a console window or | ||
| 1345 | not. If bound to a console window, output is buffered line by line; if | ||
| 1346 | bound to a block device, such as a file, output is buffered block by | ||
| 1347 | block. | ||
| 1348 | |||
| 1349 | In a shell buffer, stdout is a pipe handle and so is buffered in | ||
| 1350 | blocks. If you would like the buffering behavior of your program to | ||
| 1351 | behave differently, the program itself is going to have to be changed; | ||
| 1352 | you can use @code{setbuf} and @code{setvbuf} to manipulate | ||
| 1353 | the buffering semantics. | ||
| 1354 | |||
| 1355 | Some programs handle this by having an explicit flag to control their | ||
| 1356 | buffering behaviour, typically @option{-i} for interactive. Other | ||
| 1357 | programs manage to detect that they are running under Emacs, by | ||
| 1358 | using @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 | |||
| 1368 | A handy solution for Perl scripts to the above problem is to use: | ||
| 1369 | |||
| 1370 | @example | ||
| 1371 | # Turn all buffering off. | ||
| 1372 | select((select(STDOUT), $| = 1)[0]); | ||
| 1373 | select((select(STDERR), $| = 1)[0]); | ||
| 1374 | select((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 | |||
| 1382 | If you are finding the 16 bit DOS subprocesses cause your A: drive to | ||
| 1383 | be accessed, hanging Emacs until the read times out if there is no | ||
| 1384 | floppy in the drive, check to see if your virus software is causing | ||
| 1385 | the 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 | |||
| 1393 | Emacs cannot guarantee that a subprocess gets killed on Windows 95 and | ||
| 1394 | its descendants, and it is a difficult limitation to work around. To | ||
| 1395 | avoid problems on these systems, you should let subprocesses run to | ||
| 1396 | completion including explicitly exiting shells before killing the | ||
| 1397 | associated buffer. | ||
| 1398 | |||
| 1399 | If you find that while shutting down, Windows complains that there is | ||
| 1400 | a running @command{cmdproxy.exe} even though you carefully exited all | ||
| 1401 | shells and none were showing in Task Manager before the shutdown, this | ||
| 1402 | could 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 | |||
| 1410 | When an EOF is sent to a subprocess running in an interactive shell | ||
| 1411 | with @code{process-send-eof}, the shell terminates unexpectedly as | ||
| 1412 | if its input was closed. This affects the use of @kbd{C-c C-d} in | ||
| 1413 | shell buffers. See | ||
| 1414 | @uref{http://www.gnu.org/software/emacs/windows/ntemacs/todo/shell-ctrl-d, | ||
| 1415 | this 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 | |||
| 1426 | You can start an interactive shell in Emacs by typing @kbd{M-x shell}. | ||
| 1427 | Emacs uses the @env{SHELL} environment variable to determine which | ||
| 1428 | program to use as the shell. To instruct Emacs to use a non-default | ||
| 1429 | shell, 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 | ||
| 1432 | subprocesses that are started with @code{shell-command} and | ||
| 1433 | related 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 | |||
| 1450 | Cygwin bash is a popular shell for use with Emacs. To use bash as the | ||
| 1451 | default 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 | |||
| 1466 | If you find that you are having trouble with Emacs tracking drive | ||
| 1467 | changes with bash, see Mike Fabian's | ||
| 1468 | @uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/drive-tracking, | ||
| 1469 | note}. | ||
| 1470 | |||
| 1471 | WARNING: Some versions of bash set and use the environment variable | ||
| 1472 | PID. For some as yet unknown reason, if @env{PID} is set and Emacs | ||
| 1473 | passes 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 | ||
| 1475 | the @env{PID} variable in your init file, you should be able to | ||
| 1476 | continue 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 | |||
| 1487 | The package | ||
| 1488 | @uref{http://www.emacswiki.org/cgi-bin/wiki/cygwin-mount.el, | ||
| 1489 | cygwin-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 | |||
| 1500 | Dired uses an internal lisp implementation of @command{ls} by default | ||
| 1501 | on Windows. For consistent display of symbolic links and other | ||
| 1502 | information with other programs (eg Cygwin) and performance reasons, | ||
| 1503 | you 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 | |||
| 1522 | Some shells echo the commands that you send to them, and the echoed | ||
| 1523 | commands appear in the output buffer. In particular, the default | ||
| 1524 | shells, @command{command.com} and @command{cmd.exe}, have this behavior. | ||
| 1525 | |||
| 1526 | To prevent echoed commands from being printed, you can place the | ||
| 1527 | following 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 | |||
| 1535 | If @code{shell-mode} still is not stripping echoed commands, then | ||
| 1536 | you'll have to explicitly tell the shell to not echo commands. You can | ||
| 1537 | do this by setting the @code{explicit-@var{SHELL}-args} variable | ||
| 1538 | appropriately; where @var{SHELL} is the value of your @env{SHELL} | ||
| 1539 | environment variable (do a @kbd{M-: (getenv "SHELL")} to see what it | ||
| 1540 | is currently set to). Assuming that you are on NT and that your | ||
| 1541 | @env{SHELL} environment variable is set to @command{cmd.exe}, | ||
| 1542 | then 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 | |||
| 1549 | The comint package will use the value of this variable as an argument | ||
| 1550 | to @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 | ||
| 1552 | echoing (invoking @samp{cmd /?} in a shell will show you all of the | ||
| 1553 | command line arguments to @command{cmd.exe}). | ||
| 1554 | |||
| 1555 | Note that this variable is case sensitive; if the value of your | ||
| 1556 | @env{SHELL} environment variable is @command{CMD.EXE} instead, then | ||
| 1557 | this 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 | |||
| 1565 | The character appended to directory names when completing in a shell | ||
| 1566 | buffer is controlled by the variable @code{comint-completion-addsuffix}. | ||
| 1567 | See 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 | |||
| 1575 | This might happen if, for example, you invoke @command{nmake} in a | ||
| 1576 | shell and it tries to create sub-shells. The problem happens because | ||
| 1577 | when the shell is initially created, the first argument to the shell | ||
| 1578 | is not the directory in which the shell program resides. When this | ||
| 1579 | happens, @command{command.com} fabricates a value for its | ||
| 1580 | @env{COMSPEC} environment variable that is incorrect. Then, when | ||
| 1581 | other programs go to use @env{COMSPEC} to find the shell, they are | ||
| 1582 | given the wrong value. | ||
| 1583 | |||
| 1584 | The fix for this is to either prevent any arguments from being sent to | ||
| 1585 | the shell when it starts up (in which case @command{command.com} will | ||
| 1586 | use a default, and correct, value for @env{COMSPEC}), or to have the | ||
| 1587 | first 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 | |||
| 1599 | Some anti-virus software has been reported to cause problems with | ||
| 1600 | shells in the past. Try turning off options such as ``Scan all | ||
| 1601 | files''. @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 | |||
| 1618 | Emacs comes with several options for reading and writing mail. These | ||
| 1619 | are documented in the manual, and the choice of which method to use | ||
| 1620 | depends on personal taste. There are some issues specific to Windows | ||
| 1621 | however, related to the fact that Windows machines do not have the | ||
| 1622 | mail infrastructure that is commonly installed on other platforms, so | ||
| 1623 | mail 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 | |||
| 1645 | For outgoing mail, you will need to use @file{smtpmail.el} which | ||
| 1646 | allows Emacs to talk directly to SMTP mail servers. This is included | ||
| 1647 | with 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 | |||
| 1658 | Note that if you want to change the name of the SMTP server after | ||
| 1659 | smtpmail is loaded, then you'll need to change | ||
| 1660 | @code{smtpmail-smtp-server}. | ||
| 1661 | |||
| 1662 | If you are experiencing problems with sending large messages, check | ||
| 1663 | the value of the variable @code{smtpmail-debug-info}. If it is non-nil, you | ||
| 1664 | should 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 | |||
| 1676 | For incoming mail using the Rmail package and a POP3 server, you will | ||
| 1677 | need 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 | |||
| 1692 | Although Gnus started life as a Usenet news reader, it also makes a | ||
| 1693 | good mail reader, particularly if you subscribe to a lot of mailing | ||
| 1694 | lists, or you want to use IMAP rather than POP3, which is not | ||
| 1695 | supported 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 | |||
| 1704 | Other options for reading mail in Emacs include VM, MH-E and Wanderlust. | ||
| 1705 | MH-E is included with Emacs. The others require lisp or executable code | ||
| 1706 | that does not come with Emacs, so you should seek help where you | ||
| 1707 | obtained 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 | |||
| 1717 | In your @env{HOME} directory create a file called @file{.mailcap}, | ||
| 1718 | with contents like the following: | ||
| 1719 | @example | ||
| 1720 | application/zip "C:/Program Files/7-Zip/7zFM.exe" | ||
| 1721 | video/* "C:/Program Files/VideoLAN/VLC/vlc.exe" | ||
| 1722 | @end example | ||
| 1723 | |||
| 1724 | @strong{Warning:} Associating MIME types with @command{start} or other | ||
| 1725 | generic Windows commands to open arbitrary files might seem like a | ||
| 1726 | good idea, but it leaves your system as open to attack as Outlook | ||
| 1727 | Express was at its worst. Especially dangerous is associating | ||
| 1728 | application/* 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 | |||
| 1738 | Windows built in FTP client can be used with ange-ftp. Ange-ftp is | ||
| 1739 | the Emacs package that provides FTP connectivity to tramp, a | ||
| 1740 | multi-protocol remote file access package for Emacs that is enabled by | ||
| 1741 | default. | ||
| 1742 | |||
| 1743 | The Windows FTP client does have problems with some firewalls, due to | ||
| 1744 | lack of passive mode support, so you may want to try an alternative | ||
| 1745 | ftp client instead. Make sure that the client you are trying is in | ||
| 1746 | your @env{PATH} before the default Windows client, or rename the | ||
| 1747 | default Windows client to avoid it getting in the way. Alternatively | ||
| 1748 | you can customize @code{ange-ftp-ftp-program-name} to the full path to | ||
| 1749 | the 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 | |||
| 1762 | Tramp can use a number of protocols to connect to remote machines to | ||
| 1763 | read files and even run commands on those files remotely. A popular | ||
| 1764 | one is ssh. As well as Cygwin versions of openssh, you can use | ||
| 1765 | PuTTY's command line plink program as the ssh client. The relevant | ||
| 1766 | methods to use in @code{tramp-default-method} or | ||
| 1767 | @code{tramp-default-method-alist} for these options are: | ||
| 1768 | @itemize @w{} | ||
| 1769 | @item | ||
| 1770 | openssh | ||
| 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 | ||
| 1781 | PuTTY | ||
| 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 | |||
| 1798 | To use telnet-mode on Windows, you need a telnet client that uses | ||
| 1799 | stdin and stdout for input and output. The default Windows client is | ||
| 1800 | a Windows application, and will not work as a subprocess. Several | ||
| 1801 | options exist, but information that was formerly in this FAQ is out of | ||
| 1802 | date 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 | |||
| 1821 | You will need an implementation of TeX for Windows. | ||
| 1822 | A 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 | |||
| 1835 | AUCTeX is an Emacs package for writing LaTeX files, which also | ||
| 1836 | includes preview-latex, an Emacs mode for previewing the formatted | ||
| 1837 | contents of LaTeX documents. Pre-compiled versions for Windows are | ||
| 1838 | available from | ||
| 1839 | @uref{http://www.gnu.org/software/auctex/download-for-windows.html, the | ||
| 1840 | AUCTeX 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 | |||
| 1851 | Emacs has support for spell checking on demand (@code{ispell}) and as | ||
| 1852 | your type (@code{flyspell}). Both packages depend on a copy of | ||
| 1853 | @command{ispell} 3.2 or a compatible spell-checking program. | ||
| 1854 | GNU Aspell is a popular choice these days, Windows installers are | ||
| 1855 | available from the @uref{http://aspell.net/win32/, official site}. | ||
| 1856 | |||
| 1857 | Once installed, you will need to configure @code{ispell-program-name} | ||
| 1858 | to tell ispell and flyspell to use @command{aspell} as a replacement for | ||
| 1859 | ispell. You can include the full path to the @file{aspell} binary, which | ||
| 1860 | means 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 | |||
| 1870 | GNU Privacy Guard is a Free replacement for PGP, with Windows binaries | ||
| 1871 | available. 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 | |||
| 1880 | Some wheel mice ship with default settings that do not send the | ||
| 1881 | standard wheel events to programs, but instead try to simulate scroll | ||
| 1882 | bar events. Usually this is configurable from the hardware specific | ||
| 1883 | pages on the mouse control panel. The middle button is often mapped | ||
| 1884 | in the same settings to have some functionality other than sending | ||
| 1885 | middle mouse button events. In some cases, uninstalling the | ||
| 1886 | manufacturer's drivers and telling Windows to use the generic USB or | ||
| 1887 | PS/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 | |||
| 1896 | The best way to use @kbd{M-x grep} with Emacs is to download a port of | ||
| 1897 | GNU @command{grep}. @xref{Other useful ports}. | ||
| 1898 | |||
| 1899 | If you want a quick solution without installing extra tools, a poor | ||
| 1900 | substitute that works for simple text searches is to specify the built | ||
| 1901 | in 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} | ||
| 1903 | argument 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 | |||
| 1922 | The Emacs commands @code{rgrep}, @code{grep-find} | ||
| 1923 | and @code{find-grep-dired} are all different interfaces for | ||
| 1924 | grepping recursively into subdirectories. By default, they use the | ||
| 1925 | command @command{find} to determine which files to work on, and either | ||
| 1926 | run @command{grep} directly from find, or use @command{xargs} to batch | ||
| 1927 | up files and reduce the number of invocations of @command{grep}. | ||
| 1928 | |||
| 1929 | Windows also comes with a @command{find} command, but it is not in any | ||
| 1930 | way compatible with the POSIX @command{find} that Emacs tries to use. | ||
| 1931 | Emacs expects a @command{find} compatible with GNU findutils. | ||
| 1932 | @xref{Other useful ports}. After you have installed it, you will need | ||
| 1933 | to make sure that Emacs finds this version, not the standard Windows | ||
| 1934 | @command{find} command. You can do this by either renaming the | ||
| 1935 | Windows command, changing your @env{PATH} to ensure that the directory | ||
| 1936 | containing the findutils @file{bin} directory comes before the Windows | ||
| 1937 | system directory, or set the variable @code{find-program} to the full | ||
| 1938 | path to the findutils @command{find} command. | ||
| 1939 | |||
| 1940 | An 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 | ||
| 1942 | and grep. Another alternative if you don't need the full capabilities | ||
| 1943 | of 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 | |||
| 1959 | There are two ways you can use Emacs in conjunction with MSVC. You | ||
| 1960 | can use Emacs as the editor, and do everything else in the DevStudio | ||
| 1961 | IDE. Or you can use Emacs as an IDE, calling the MSVC command line | ||
| 1962 | tools 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 | |||
| 1976 | Christopher Payne wrote a Visual Studio add-in that makes Emacs the | ||
| 1977 | default text editor, this has now been taken over by Jeff Paquette. | ||
| 1978 | See 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 | |||
| 1989 | This is an app note on how to use Microsoft Visual C++ with Emacs. The | ||
| 1990 | experiments done below were done with Emacs 19.34.1 on Windows 95, | ||
| 1991 | using Visual C++ 4.0 Standard Edition. Your mileage may vary. | ||
| 1992 | |||
| 1993 | This writeup assumes minimal knowledge of Emacs hacking on the part of | ||
| 1994 | the 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 | |||
| 2008 | There is a batch file in your VC++ installation's bin directory called | ||
| 2009 | @file{vcvars32.bat}, which sets up the environment variables needed to | ||
| 2010 | run the VC++ command line tools. Arrange for those same environment | ||
| 2011 | variables to be set in your Emacs session. You can do this on Windows | ||
| 2012 | 9x by calling the @file{vcvars32.bat} script from @file{autoexec.bat}. | ||
| 2013 | On other versions of Windows you can set the environment variables | ||
| 2014 | globally using the System control panel. | ||
| 2015 | |||
| 2016 | For all versions of Windows you can alternatively set the variables | ||
| 2017 | just inside Emacs by using @code{setenv} calls in your init file. | ||
| 2018 | @xref{Installing Emacs,,Where do I put my init file?}. | ||
| 2019 | |||
| 2020 | You should now be able to compile from Emacs. Load a source file from | ||
| 2021 | a VC++ project. Type @kbd{M-x compile}. Replace the proposed command line | ||
| 2022 | with: | ||
| 2023 | @example | ||
| 2024 | nmake -f @var{ProjectName}.mak | ||
| 2025 | @end example | ||
| 2026 | |||
| 2027 | You will find that this defaults to a debug build. You can change it | ||
| 2028 | to a release build with: | ||
| 2029 | @example | ||
| 2030 | nmake -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 | |||
| 2039 | Now set the default value for the compile command line. Add the | ||
| 2040 | following to your init file: | ||
| 2041 | |||
| 2042 | @example | ||
| 2043 | ;; Set up for Visual C++ compiling | ||
| 2044 | (setq compile-command "nmake -f ") | ||
| 2045 | @end example | ||
| 2046 | |||
| 2047 | If you work on the same project long term, you can add the project | ||
| 2048 | makefile to the string. | ||
| 2049 | |||
| 2050 | David Biesack suggests that perhaps it's | ||
| 2051 | easy to write a @file{Makefile} in the project directory which does | ||
| 2052 | |||
| 2053 | @example | ||
| 2054 | PROJECT=MyProject | ||
| 2055 | all: debug | ||
| 2056 | debug: FORCE | ||
| 2057 | nmake /f $(PROJECT).mak CFG="$(PROJECT) - Win32 Debug" | ||
| 2058 | release: FORCE | ||
| 2059 | nmake /f $(PROJECT).mak CFG="$(PROJECT) - Win32 Release" | ||
| 2060 | FORCE: | ||
| 2061 | @end example | ||
| 2062 | |||
| 2063 | and then you can simply change compile-command to @command{nmake}. | ||
| 2064 | |||
| 2065 | Caleb T. Deupree reports that on VC++ | ||
| 2066 | 5.0 and up, "You can also set an option in Options/Build to export a | ||
| 2067 | makefile every time the project is saved, which you can then use to | ||
| 2068 | compile with @samp{nmake -f project.mak}." VC++ 4.0 builds the make file | ||
| 2069 | every 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 | |||
| 2079 | It is recommended that you use @code{auto-revert-mode} in buffers | ||
| 2080 | that you have open in both Emacs and MSVC++ at the same time. Then if | ||
| 2081 | you mistakenly edit the file in MSVC++, Emacs will pick up your | ||
| 2082 | changes immediately, rather than after you have written lots more code | ||
| 2083 | and 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 | |||
| 2092 | You can also set up VC++ to import a file into Emacs for you, all | ||
| 2093 | ready for editing. In VC++, go to the @code{Tools} pull-down menu, and | ||
| 2094 | click 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 | ||
| 2097 | select 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 | ||
| 2100 | Menu Text to say "Em&acs". The @option{+$(CurLine)} will set point in | ||
| 2101 | Emacs to the same line as the cursor position in VC++. The ampersand | ||
| 2102 | in the word @code{Em&acs} allows you to select emacs from the keyboard. (E | ||
| 2103 | is already used for the OLE control test container.) | ||
| 2104 | |||
| 2105 | You should now be able to go to any source file in your project. Then, | ||
| 2106 | use the pull-down menu @code{Tools->Emacs}. The active file in your | ||
| 2107 | VC++ IDE should now be front and center in Emacs, all ready to edit as | ||
| 2108 | you wish. If you use keystrokes to work the menus, try @kbd{Alt-T A} to | ||
| 2109 | move the file into Emacs. Binding this tool to a keystroke will be | ||
| 2110 | left as an exercise for the student. | ||
| 2111 | |||
| 2112 | If you have the option of saving files before running tools, make sure | ||
| 2113 | this 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 | |||
| 2119 | Jonathan 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 | |||
| 2139 | If you are using a graphical revision control tool already, check if | ||
| 2140 | it comes with command-line tools. Many such GUI tools are just | ||
| 2141 | wrappers for the same command line tools that Emacs requires for its | ||
| 2142 | VC integration. Most of the supported VC systems have well supported | ||
| 2143 | Free 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 | |||
| 2151 | From Jay Rogers: | ||
| 2152 | |||
| 2153 | Some versions of the perl debugger itself need to be patched to work | ||
| 2154 | with emacs. They are perl versions 5.001 and less, and version | ||
| 2155 | 5.004_01. To fix, locate and change the code similar to the following | ||
| 2156 | code 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 | |||
| 2172 | Doug Campbell also has some | ||
| 2173 | @uref{http://www.gnu.org/software/emacs/windows/ntemacs/discuss/perldb, | ||
| 2174 | suggestions} 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 | |||
| 2202 | Cygwin is a popular complete POSIX emulation environment for Windows. | ||
| 2203 | Most of its tools can be used with Emacs, and it covers a wide range | ||
| 2204 | of ported software. The main shell used by Cygwin is GNU | ||
| 2205 | @command{bash}, but other shells are also available. Some Cygwin | ||
| 2206 | tools may not interoperate well with Emacs or other native Windows | ||
| 2207 | tools, due to the total immersion aspect of Cygwin, including its | ||
| 2208 | non-native filesystem mapping. | ||
| 2209 | |||
| 2210 | If you choose to use Cygwin, then its tools will probably be all that | ||
| 2211 | you need, but you will need to get image libraries from elsewhere, as | ||
| 2212 | the Cygwin ones are not compatible with non-Cygwin software. In fact, | ||
| 2213 | if Cygwin is on your PATH when you run Emacs, and Emacs does not find | ||
| 2214 | other versions of the image libraries first, then the Cygwin ones can | ||
| 2215 | cause problems. Cygwin developers recommend that you do not put | ||
| 2216 | Cygwin on your system @env{PATH} for this reason. Instead you can | ||
| 2217 | make the Cygwin tools available within Emacs by setting @code{exec-path} | ||
| 2218 | in 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 | |||
| 2228 | MinGW is a set of development tools that produce native Windows | ||
| 2229 | executables, not dependent on Cygwin's POSIX emulation DLLs. | ||
| 2230 | |||
| 2231 | MSYS is a POSIX shell and minimal set of tools that are commonly used in | ||
| 2232 | configure scripts. Like Cygwin, this environment uses a non-native | ||
| 2233 | filesystem mapping to appear more POSIX like to the scripts that it | ||
| 2234 | runs. This is intended to complement the MinGW tools to make it easier | ||
| 2235 | to 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 | |||
| 2244 | UWIN is another POSIX emulation environment, like Cygwin and MSYS, | ||
| 2245 | that provides a large number of ported tools. The shell used by UWIN | ||
| 2246 | is @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 | |||
| 2257 | GnuWin32 provides precompiled native Windows ports of a wide selection | ||
| 2258 | of Free software and libraries. Tools available here that are useful | ||
| 2259 | for 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 | |||
| 2292 | GTK is a potential source for some of the image libraries that Emacs | ||
| 2293 | requires. GTK is installed along with other ports of GUI software, | ||
| 2294 | such as the GIMP image editor, and Pidgin instant messenger client. | ||
| 2295 | If GTK is installed when you run @command{addpm}, Emacs will use the | ||
| 2296 | image 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 | |||
| 2305 | Man pages for Emacs and other ported programs that you have can be | ||
| 2306 | read using Emacs' built-in manual reader @code{woman}. This | ||
| 2307 | requires no external programs, but if you do have a port of | ||
| 2308 | @command{man}, there is also an Emacs wrapper @code{man} that | ||
| 2309 | which 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 | |||
| 2329 | If you have general questions about Emacs, the best places to start | ||
| 2330 | looking are @ref{Top,,, emacs, The GNU Emacs Manual}, and | ||
| 2331 | @ref{Top,,, efaq, the standard Emacs FAQ}. | ||
| 2332 | In Emacs, you can browse the manual using Info by typing @kbd{C-h r}, | ||
| 2333 | and 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 | |||
| 2346 | The official mailing list for Windows specific help and discussion is | ||
| 2347 | @url{http://lists.gnu.org/mailman/listinfo/help-emacs-windows, | ||
| 2348 | help-emacs-windows}. See that link for information on how to subscribe | ||
| 2349 | or unsubscribe. The | ||
| 2350 | @uref{http://lists.gnu.org/archive/html/help-emacs-windows/, list archives} | ||
| 2351 | are 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 | ||
| 3455 | There is a @uref{http://www.gnu.org/software/emacs/windows/ntemacs.html, | 3455 | There is a separate FAQ for Emacs on MS-Windows, |
| 3456 | separate 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}. |
| 3457 | For 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 | |||
| 256 | textbook or tutorial first, especially if you only know OOP from | 256 | textbook or tutorial first, especially if you only know OOP from |
| 257 | languages like C++ or Java. If on the other hand you are already | 257 | languages like C++ or Java. If on the other hand you are already |
| 258 | familiar with CLOS, you should be aware that @eieio{} does not implement | 258 | familiar with CLOS, you should be aware that @eieio{} does not implement |
| 259 | the full CLOS specificiation and also differs in some other aspects | 259 | the 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 | ||
| 262 | A @dfn{class} is a definition for organizing data and methods | 262 | A @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 |
| 872 | Prioritize coding systems to use for outgoing messages. The default | 872 | Prioritize coding systems to use for outgoing messages. The default |
| 873 | is @code{nil}, which means to use the defaults in Emacs, but is | 873 | is @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 |
| 875 | running Emacs in the Japanese language environment. It is a list of | 875 | language environment. It is a list of coding system symbols (aliases of |
| 876 | coding system symbols (aliases of coding systems are also allowed, use | 876 | coding 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 | 877 | make sure you are specifying correct coding system names). For example, |
| 878 | coding system names). For example, if you have configured Emacs | 878 | if you have configured Emacs to prefer UTF-8, but wish that outgoing |
| 879 | to prefer UTF-8, but wish that outgoing messages should be sent in | 879 | messages should be sent in ISO-8859-1 if possible, you can set this |
| 880 | ISO-8859-1 if possible, you can set this variable to | 880 | variable 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 | 881 | per-message basis by using the @code{charset} @acronym{MML} tag |
| 882 | basis by using the @code{charset} @acronym{MML} tag (@pxref{MML Definition}). | 882 | (@pxref{MML Definition}). |
| 883 | 883 | ||
| 884 | As different hierarchies prefer different charsets, you may want to set | 884 | As 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 |
| 351 | By default, every file whose name ends with @samp{.gpg} will be | 351 | By default, every file whose name ends with @samp{.gpg} will be |
| 352 | treated as encrypted. That is, when you open such a file, the | 352 | treated as encrypted. That is, when you open such a file, the |
| 353 | decrypted text is inserted in the buffer rather than encrypted one. | 353 | decrypted 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 | ||
| 465 | To set up elisp passphrase cache, set | 465 | To 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 |
| 14798 | Non-@code{nil} if the mail is to be left on the @acronym{POP} server | 14798 | Non-@code{nil} if the mail is to be left on the @acronym{POP} server |
| 14799 | after fetching. Mails once fetched will never be fetched again by the | 14799 | after fetching. Only the built-in @code{pop3-movemail} program (the |
| 14800 | @acronym{UIDL} control. Only the built-in @code{pop3-movemail} program | 14800 | default) supports this keyword. |
| 14801 | (the default) supports this keyword. | 14801 | |
| 14802 | 14802 | If this is a number, leave mails on the server for this many days since | |
| 14803 | If this is neither @code{nil} nor a number, all mails will be left on | 14803 | you first checked new mails. In that case, mails once fetched will |
| 14804 | the server. If this is a number, leave mails on the server for this | 14804 | never be fetched again by the @acronym{UIDL} control. If this is |
| 14805 | many 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. | 14806 | after fetching. If this is neither @code{nil} nor a number, all mails |
| 14807 | will be left on the server, and you will end up getting the same mails | ||
| 14808 | again and again. | ||
| 14807 | 14809 | ||
| 14808 | @vindex pop3-uidl-file | 14810 | @vindex pop3-uidl-file |
| 14809 | The @code{pop3-uidl-file} variable specifies the file to which the | 14811 | The @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 | ||
| 1278 | Regex to match (with a single back-reference per match) strings in HTML | 1279 | Regex to match (with a single back-reference per match) strings in HTML |
| 1279 | which should be quoted with @ref{hfy-html-quote} | 1280 | which 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 | ||
| 1341 | String to add to the @samp{<style> a} variant of an Htmlfontify CSS class. | 1342 | String 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 | |||
| 1347 | Minimum size of a buffer for cached fontification. | ||
| 1348 | This value is temporarily assigned to @code{fast-lock-minimum-size} during | ||
| 1349 | html-fontification. | ||
| 1350 | |||
| 1351 | Only buffers more than this can have associated Font Lock cache files saved. | ||
| 1352 | |||
| 1353 | If nil, means cache files are never created. | ||
| 1354 | |||
| 1355 | If a list, each element should be a cons pair of the form | ||
| 1356 | @code{(@var{major-mode} . @var{size})}, where @var{major-mode} | ||
| 1357 | is 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 | |||
| 1365 | means that the minimum size is 25K for buffers in C or C++ modes, one megabyte | ||
| 1366 | for 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 | ||
| 1386 | File extension used for output files | 1362 | File 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 | ||
| 1467 | Regex to remove from the <style> a variant of an Htmlfontify CSS class. | 1443 | Regex 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 | ||
| 63 | Appendices | 63 | Appendices |
| 64 | * GNU Free Documentation License:: The license for this documentation. | 64 | * GNU Free Documentation License:: The license for this documentation. |
| 65 | 65 | ||
| 66 | Indexes | 66 | Indexes |
| 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 | ||
| 72 | Overview | 72 | Overview |
| 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 | ||
| 76 | Matching | 77 | Matching |
| 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 | ||
| 83 | Customization | 84 | Customization |
| 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 | ||
| 90 | Miscellaneous | 91 | Miscellaneous |
| 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 | ||
| 152 | recently been opened. The current directory is inserted at the front | ||
| 153 | of 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 | ||
| 172 | This user option specifies maximum number of working directories to | ||
| 173 | record. | ||
| 174 | @end defopt | ||
| 175 | |||
| 176 | @c see (info "(elisp) File Name Completion") | ||
| 177 | @defopt ido-max-dir-file-cache | ||
| 178 | This user option specifies maximum number of working directories to be | ||
| 179 | cached. This is the size of the cache of | ||
| 180 | @code{file-name-all-completions} results. Each cache entry is time | ||
| 181 | stamped with the modification time of the directory. Some systems, | ||
| 182 | like MS-Windows, have unreliable directory modification times, so you | ||
| 183 | may choose to disable caching on such systems, or explicitly refresh | ||
| 184 | the 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 | |||
| 153 | do with various kinds of @emph{matching}: among buffers, files, and directories. | 194 | do 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}. | |||
| 265 | To go up to the parent directory, delete any partial file name already | 306 | To go up to the parent directory, delete any partial file name already |
| 266 | specified (e.g. using @key{DEL}) and hit @key{DEL}. | 307 | specified (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 |
| 280 | You can also visit files on other hosts using the ange-ftp | 321 | You can also visit files on other hosts using the ange-ftp |
| 281 | notations @samp{/host:} and @samp{/user@@host:}. | 322 | notations @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 | ||
| 288 | You can type @kbd{M-p} and @kbd{M-n} to change to previous/next | 329 | You can type @kbd{M-p} and @kbd{M-n} to change to previous/next |
| 289 | directories from the history, @kbd{M-s} to search for a file matching | 330 | directories 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 |
| 342 | If non-@code{nil}, Ido will do flexible string matching. Flexible | 381 | If non-@code{nil}, Ido will do flexible string matching. Flexible |
| 343 | matching means that if the entered string does not match any item, any | 382 | matching means that if the entered string does not match any item, any |
| 344 | item containing the entered characters in the given sequence will | 383 | item containing the entered characters in the given sequence will |
| 345 | match. | 384 | match. |
| 346 | @end defvr | 385 | @end defopt |
| 347 | 386 | ||
| 348 | @noindent | 387 | @noindent |
| 349 | If @code{ido-enable-flex-matching} is non-@code{nil}, Ido will do a | 388 | If @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 | |||
| 371 | you to type @samp{[ch]$} for example and see all file names ending in | 410 | you 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 |
| 375 | If the value of this user option is non-@code{nil}, Ido will do regexp | 414 | If the value of this user option is non-@code{nil}, Ido will do regexp |
| 376 | matching. The value of this user option can be toggled within | 415 | matching. The value of this user option can be toggled within |
| 377 | ido-mode using @code{ido-toggle-regexp}. | 416 | ido-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 |
| 381 | enable regexp matching. | 420 | enable regexp matching. |
| @@ -405,7 +444,7 @@ buffers or files. | |||
| 405 | You can toggle display of the hidden buffers and files with @kbd{C-a} | 444 | You 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 | ||
| 486 | You can disable URL ffap support by toggling | 528 | You 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 |
| 490 | If the value of this user option is non-@code{nil}, Ido will look for | 532 | If the value of this user option is non-@code{nil}, Ido will look for |
| 491 | a URL at point. If found, call @code{find-file-at-point} to visit it. | 533 | a 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. | |||
| 500 | Ido is capable of ignoring buffers, directories, files and extensions | 542 | Ido is capable of ignoring buffers, directories, files and extensions |
| 501 | using regular expression. | 543 | using regular expression. |
| 502 | 544 | ||
| 503 | @defvr {User Option} ido-ignore-buffers | 545 | @defopt ido-ignore-buffers |
| 504 | This variable takes a list of regular expressions for buffers to | 546 | This variable takes a list of regular expressions for buffers to |
| 505 | ignore in @code{ido-switch-buffer}. | 547 | ignore 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 |
| 509 | This variable takes a list of regular expressions for (sub)directories | 551 | This variable takes a list of regular expressions for (sub)directories |
| 510 | names to ignore in @code{ido-dired} and @code{ido-find-file}. | 552 | names 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 |
| 514 | This variable takes a list of regular expressions for files to ignore | 556 | This variable takes a list of regular expressions for files to ignore |
| 515 | in @code{ido-find-file}. | 557 | in @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 |
| 519 | This variable takes a list of regular expressions matching UNC hosts | 561 | This variable takes a list of regular expressions matching UNC hosts |
| 520 | to ignore. The letter case will be ignored if | 562 | to 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 | ||
| 526 | To make Ido use @code{completion-ignored-extensions} you need to | 569 | To make Ido use @code{completion-ignored-extensions} you need to |
| 527 | enable it: | 570 | enable 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 | ||
| 546 | This user option determines for which functional group (buffer and | 592 | This user option determines for which functional group (buffer and |
| 547 | files) Ido behavior should be enabled. | 593 | files) 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 |
| 551 | If the value of this user option is non-@code{nil}, searching of | 597 | If the value of this user option is non-@code{nil}, searching of |
| 552 | buffer and file names should ignore case. | 598 | buffer 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 |
| 556 | If the value of this user option is non-@code{nil} , always put | 602 | If 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 |
| 558 | current directory to be opened immediately with Dired | 604 | current 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 |
| 562 | If the value of this user option is non-@code{nil}, Ido will match | 608 | If the value of this user option is non-@code{nil}, Ido will match |
| 563 | leading dot as prefix. I.e., hidden files and buffers will match only | 609 | leading dot as prefix. I.e., hidden files and buffers will match only |
| 564 | if you type a dot as first char (even if @code{ido-enable-prefix} is | 610 | if 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 | 615 | If the value of this user option is non-@code{nil}, even a unique |
| 570 | @c @defvr {User Option} ido-record-commands | 616 | completion 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 | 622 | When @code{ido-complete} can't complete any more, it will run the |
| 577 | @c @defvr {User Option} ido-downcase-unc-hosts | 623 | command 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 | 625 | alternatives, or @code{ido-next-match} or @code{ido-prev-match}, which |
| 580 | @c @defvr {User Option} ido-work-directory-match-only | 626 | cycle 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 | 630 | This user option specifies the upper limit of the prompt string. If |
| 585 | @c @defvr {User Option} ido-max-dir-file-cache | 631 | its value is an integer, it specifies the number of characters of the |
| 586 | @c @defvr {User Option} ido-max-directory-size | 632 | string. If its value is a floating point number, it specifies a |
| 587 | @c @defvr {User Option} ido-rotate-file-list-default | 633 | fraction 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 | 637 | If the value of this user option is non-@code{nil}, its value will |
| 592 | @c @defvr {User Option} ido-decorations | 638 | override the variable @code{max-mini-window-height}, which is the |
| 593 | @c @defvr {User Option} ido-use-virtual-buffers | 639 | maximum height for resizing mini-windows (the minibuffer and the echo |
| 594 | @c @defvr {User Option} ido-use-faces | 640 | area). If it's a floating point number, it specifies a fraction of |
| 595 | @c @defvr {User Option} ido-make-file-list-hook | 641 | the mini-window frame's height. If it's an integer, it specifies the |
| 596 | @c @defvr {User Option} ido-make-dir-list-hook | 642 | number 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 | 646 | If the value of this user option is non-@code{nil}, Ido will record |
| 601 | @c @defvr {User Option} ido-all-frames | 647 | commands in the variable @code{command-history}. Note that non-Ido |
| 602 | @c @defvr {User Option} ido-minibuffer-setup-hook | 648 | equivalent 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 | 652 | This 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 |
| 654 | Window Ordering, , Cyclic Ordering of Windows, elisp, GNU Emacs Lisp | ||
| 655 | Reference Manual}. | ||
| 656 | @end defopt | ||
| 657 | |||
| 658 | @defopt ido-minibuffer-setup-hook | ||
| 659 | This hook variable contains Ido-specific customization of minibuffer | ||
| 660 | setup. It is run during minibuffer setup if Ido is active, and is | ||
| 661 | intended for use in customizing ido for interoperation with other | ||
| 662 | packages. | ||
| 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 | |||
| 624 | press @kbd{C-f} to immediately drop into @code{ido-find-file}. And | 715 | press @kbd{C-f} to immediately drop into @code{ido-find-file}. And |
| 625 | you can switch back to buffer selection with @kbd{C-b}. | 716 | you 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 | ||
| 630 | You can also use Ido in your Emacs Lisp programs: | 721 | You 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 | |||
| 657 | matching items is limited to 12, but you can increase or removed this | 748 | matching items is limited to 12, but you can increase or removed this |
| 658 | limit via the @code{ido-max-prospects} user option. | 749 | limit 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 | ||
| 662 | To see a full list of all matching buffers in a separate buffer, hit | 753 | To 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}. | |||
| 675 | To use ido for all buffer and file selections in Emacs, customize the | 766 | To use ido for all buffer and file selections in Emacs, customize the |
| 676 | variable @code{ido-everywhere}. | 767 | variable @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 | ||
| 69 | Mairix is a tool for indexing and searching words in locally stored | 69 | Mairix 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 | |||
| 98 | with RMail, Gnus, or VM as the Emacs mail program. However, it should | 98 | with RMail, Gnus, or VM as the Emacs mail program. However, it should |
| 99 | also work with Maildir or MH, and it should be very easy to integrate | 99 | also work with Maildir or MH, and it should be very easy to integrate |
| 100 | other Emacs mail programs into @code{mairix.el} | 100 | other Emacs mail programs into @code{mairix.el} |
| 101 | (@pxref{Extending mairix.el}). | 101 | (@pxref{Extending}). |
| 102 | 102 | ||
| 103 | If you use Gnus with maildir or MH, you should really use the native | 103 | If you use Gnus with maildir or MH, you should really use the native |
| 104 | Gnus back end @code{nnmairix} instead, since it is more tightly | 104 | Gnus 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. | |||
| 165 | Note that this may take a few minutes, but every following index will do | 165 | Note that this may take a few minutes, but every following index will do |
| 166 | the updates incrementally and hence is very fast. | 166 | the 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 | ||
| 171 | First, put @code{mairix.el} in your Emacs search path and put | 171 | First, 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 | |||
| 179 | nnmairix instead. | 179 | nnmairix instead. |
| 180 | 180 | ||
| 181 | If you use another Emacs mail program which is not yet supported by | 181 | If you use another Emacs mail program which is not yet supported by |
| 182 | mairix.el, it is pretty easy to integrate it. @xref{Extending | 182 | mairix.el, it is pretty easy to integrate it. @xref{Extending}, |
| 183 | mairix.el}, on how to integrate it into mairix.el. | 183 | on how to integrate it into mairix.el. |
| 184 | 184 | ||
| 185 | Now you should be ready to go. @xref{Using mairix.el}, for the available | 185 | Now you should be ready to go. @xref{Using}, for the available commands. |
| 186 | commands. | ||
| 187 | 186 | ||
| 188 | @node Using mairix.el | 187 | @node Using |
| 189 | @chapter Using mairix.el | 188 | @chapter Using mairix.el |
| 190 | 189 | ||
| 191 | There are currently no default key bindings for mairix.el, since those | 190 | There 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 | ||
| 320 | Your favorite Emacs mail program is not supported? Shame on me. But | 319 | Your 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 |
| 170 | arrived. | 170 | arrived. |
| 171 | @end itemize | 171 | @end itemize |
| 172 | In both views clicking mouse-button 2 or pressing RET on a headline | 172 | In both views clicking mouse-button 2 or pressing @key{RET} on a |
| 173 | will call @code{browse-url} to load the corresponding news story in | 173 | headline will call @code{browse-url} to load the corresponding news |
| 174 | your favorite web browser. | 174 | story 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 | ||
| 158 | Defining Label Environments | 158 | Defining Label Environments |
| 159 | 159 | ||
| @@ -196,17 +196,17 @@ AUCTeX | |||
| 196 | 196 | ||
| 197 | Options, Keymaps, Hooks | 197 | Options, 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 |
| 583 | Clicking with mouse button 2 on a line has the same effect as @key{RET}. | 583 | Clicking with mouse button 2 on a line has the same effect as @key{RET}. |
| 584 | See also variable @code{reftex-highlight-selection}, @ref{Options | 584 | See 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 |
| 703 | Switch to the @file{*toc*} buffer of an external document. When the | 703 | Switch to the @file{*toc*} buffer of an external document. When the |
| 704 | current document is using the @code{xr} package (@pxref{xr (LaTeX | 704 | current document is using the @code{xr} package (@pxref{LaTeX xr Package}), |
| 705 | package)}), @RefTeX{} will switch to one of the external | 705 | @RefTeX{} will switch to one of the external documents. |
| 706 | documents. | ||
| 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 |
| 861 | If you want to change the way certain labels are created, check out the | 860 | If you want to change the way certain labels are created, check out the |
| 862 | variable @code{reftex-insert-label-flags} (@pxref{Options (Creating | 861 | variable @code{reftex-insert-label-flags} (@pxref{Options - Creating |
| 863 | Labels)}). | 862 | Labels}). |
| 864 | 863 | ||
| 865 | If you are using @AUCTeX{} to write your @LaTeX{} documents, you can | 864 | If you are using @AUCTeX{} to write your @LaTeX{} documents, you can |
| 866 | set it up to delegate the creation of labels to | 865 | set 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 |
| 982 | Clicking with mouse button 2 on a label will accept it like @key{RET} | 981 | Clicking with mouse button 2 on a label will accept it like @key{RET} |
| 983 | would. See also variable @code{reftex-highlight-selection}, | 982 | would. 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 |
| 1036 | The defaults for the following flags can be configured with the variable | 1035 | The 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 |
| 1040 | Toggle the display of the one-line label definition context in the | 1039 | Toggle the display of the one-line label definition context in the |
| @@ -1082,8 +1081,7 @@ a menu for that category will be shown. | |||
| 1082 | Reference a label from an external document. With the @LaTeX{} package | 1081 | Reference 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 |
| 1084 | document. This key will switch to the label menu of an external | 1083 | document. This key will switch to the label menu of an external |
| 1085 | document and let you select a label from there (@pxref{xr (LaTeX | 1084 | document and let you select a label from there (@pxref{LaTeX xr Package,,xr}). |
| 1086 | package),,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 |
| 1205 | environments and macros. This is done with the variable | 1203 | environments 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 |
| 1207 | Environments)}). If you are not familiar with Lisp, you can use the | 1205 | Environments}). 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 |
| 1209 | this, use | 1207 | this, 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 |
| 1304 | For more complex ways of getting context, see the variable | 1302 | For 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}). |
| 1306 | Environments)}). | ||
| 1307 | @end itemize | 1304 | @end itemize |
| 1308 | 1305 | ||
| 1309 | The following list of strings is used to guess the correct label type | 1306 | The following list of strings is used to guess the correct label type |
| @@ -1356,9 +1353,8 @@ Reftex Label Alist: [Hide] | |||
| 1356 | Depending on how you would like the label insertion and selection for | 1353 | Depending on how you would like the label insertion and selection for |
| 1357 | the new environments to work, you might want to add the letters @samp{a} | 1354 | the new environments to work, you might want to add the letters @samp{a} |
| 1358 | and @samp{h} to some of the flags in the variables | 1355 | and @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}) |
| 1360 | and @code{reftex-label-menu-flags} (@pxref{Options (Referencing | 1357 | and @code{reftex-label-menu-flags} (@pxref{Options - Referencing Labels}). |
| 1361 | Labels)}). | ||
| 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, | |||
| 1749 | these variables are deprecated now. Instead of setting them, the | 1745 | these variables are deprecated now. Instead of setting them, the |
| 1750 | variable @code{reftex-ref-style-default-list} should be adapted now. | 1746 | variable @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 |
| 1885 | Clicking with mouse button 2 on a citation will accept it like @key{RET} | 1881 | Clicking with mouse button 2 on a citation will accept it like @key{RET} |
| 1886 | would. See also variable @code{reftex-highlight-selection}, @ref{Options | 1882 | would. See also variable @code{reftex-highlight-selection}, |
| 1887 | (Misc)}. | 1883 | @ref{Options - Misc}. |
| 1888 | 1884 | ||
| 1889 | @item m | 1885 | @item m |
| 1890 | Mark the current entry. When one or several entries are marked, | 1886 | Mark the current entry. When one or several entries are marked, |
| @@ -2403,8 +2399,9 @@ Abort the indexing process. | |||
| 2403 | 2399 | ||
| 2404 | The @samp{Find and Index in Document} menu in the phrases buffer also | 2400 | The @samp{Find and Index in Document} menu in the phrases buffer also |
| 2405 | lists a few options for the indexing process. The options have | 2401 | lists a few options for the indexing process. The options have |
| 2406 | associated customization variables to set the defaults (@pxref{Options | 2402 | associated 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 |
| 2404 | what 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 |
| 2760 | cross-reference display. This works also for labels defined in an | 2757 | cross-reference display. This works also for labels defined in an |
| 2761 | external document when the current document refers to them through the | 2758 | external 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 | |||
| 2908 | use faces only when @code{font-lock} is loaded. This seems to be | 2905 | use faces only when @code{font-lock} is loaded. This seems to be |
| 2909 | reasonable because people who like faces will very likely have it | 2906 | reasonable because people who like faces will very likely have it |
| 2910 | loaded. If you wish to turn off fontification or change the involved | 2907 | loaded. If you wish to turn off fontification or change the involved |
| 2911 | faces, see @ref{Options (Fontification)}. | 2908 | faces, 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 | |||
| 3894 | reftex-customize} will get you there. | 3891 | reftex-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 | |||
| 4259 | non-footnote labels. | 4256 | non-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 | |||
| 4955 | scans. In order to clear it, use @kbd{M-x reftex-reset-mode}. | 4952 | scans. 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 | |||
| 5154 | non-@code{nil}. | 5151 | non-@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). | |||
| 5252 | Face name for index entries. | 5249 | Face 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 | ||
| 87 | Supercite is a GNU Emacs package written entirely in Emacs Lisp. It | 87 | @cindex MUA |
| 88 | @cindex NUA | ||
| 89 | Supercite is a GNU Emacs package written entirely in Emacs Lisp. It | ||
| 88 | interfaces to most of the commonly used Emacs mail user agents | 90 | interfaces 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 |
| 90 | sophisticated facilities for the citing and attributing of message | 92 | sophisticated facilities for the citing and attributing of message |
| 91 | replies. Supercite has a very specific and limited role in the process | 93 | replies. Supercite has a very specific and limited role in the |
| 92 | of composing replies to both USENET network news and electronic mail. | 94 | process of composing replies to both USENET network news and |
| 95 | electronic mail. | ||
| 93 | 96 | ||
| 94 | The preferred way to spell Supercite is with a capital @samp{S}, | 97 | The preferred way to spell Supercite is with a capital @samp{S}, |
| 95 | lowercase @samp{upercite}. | 98 | lowercase @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 | ||
| 105 | Supercite is only useful in conjunction with MUAs and NUAs such as VM, | 107 | Supercite is only useful in conjunction with MUAs and NUAs such as VM, |
| 106 | Gnus, RMAIL, MH-E, etc. Supercite is typically called by the MUA after a | 108 | Gnus, RMAIL, MH-E, etc. Supercite is typically called by the MUA after a |
| 107 | reply buffer has been setup. Thereafter, Supercite's many commands and | 109 | reply 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 | ||
| 121 | Typical usage is as follows. You want to reply or followup to a message | 123 | Typical usage is as follows. You want to reply or followup to a |
| 122 | in your MUA@. You will probably hit @kbd{r} (i.e., ``reply'') or @kbd{f} | 124 | message 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 | 125 | or @kbd{f} (i.e., ``forward'') to begin composing the reply. In |
| 124 | will create a reply buffer and initialize the outgoing mail headers | 126 | response, the MUA will create a reply buffer and initialize the |
| 125 | appropriately. The body of the reply will usually be empty at this | 127 | outgoing mail headers appropriately. The body of the reply will |
| 126 | point. You now decide that you would like to include part of the | 128 | usually be empty at this point. You now decide that you would like to |
| 127 | original message in your reply. To do this, you @dfn{yank} the original | 129 | include part of the original message in your reply. To do this, you |
| 128 | message 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 | 131 | a key stroke such as @kbd{C-c C-y}. This sequence will invoke an |
| 130 | fills the body of the reply with the original message and then | 132 | MUA-specific function which fills the body of the reply with the |
| 131 | @dfn{attributes} this text to its author. This is called @dfn{citing} | 133 | original message and then @dfn{attributes} this text to its author. |
| 132 | and its effect is to prefix every line from the original message with a | 134 | This is called @dfn{citing} and its effect is to prefix every line |
| 133 | special text tag. Most MUAs provide some default style of citing; by | 135 | from the original message with a special text tag. Most MUAs provide |
| 134 | using Supercite you gain a wider flexibility in the look and style of | 136 | some default style of citing; by using Supercite you gain a wider |
| 135 | citations. Supercite's only job is to cite the original message. | 137 | flexibility in the look and style of citations. Supercite's only job |
| 138 | is 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 |
| 185 | Next, Supercite visits each line in the reply, transforming the line | 188 | Next, Supercite visits each line in the reply, transforming the line |
| 186 | according to a customizable ``script.'' Lines which were not previously | 189 | according to a customizable ``script''. Lines which were not previously |
| 187 | cited in the original message are given a citation, while already cited | 190 | cited in the original message are given a citation, while already cited |
| 188 | lines remain untouched, or are coerced to your preferred style. | 191 | lines remain untouched, or are coerced to your preferred style. |
| 189 | Finally, Supercite installs a keymap into the reply buffer so that you | 192 | Finally, 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 |
| 255 | In @dfn{non-nested citations}, each cited line begins with an | 258 | In @dfn{non-nested citations}, each cited line begins with an |
| 256 | informative string attributing that line to the original author. Only | 259 | informative string attributing that line to the original author. Only |
| 257 | the first level of attribution will be shown; subsequent citations don't | 260 | the first level of attribution will be shown; subsequent citations |
| 258 | nest the citation strings. The above dialog might look like this when | 261 | don't nest the citation strings. The above dialog might look like |
| 259 | non-nested citations are used: | 262 | this when non-nested citations are used: |
| 260 | 263 | ||
| 261 | @example | 264 | @example |
| 262 | John> John originally wrote this | 265 | John> 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-) |
| 274 | Supercite supports both styles of citation, and the variable | 277 | Supercite 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 |
| 276 | previously uncited text. When this variable is @code{nil} (the default), | 279 | citing previously uncited text. When this variable is @code{nil} (the |
| 277 | non-nested citations are used. When non-@code{nil}, nested citations | 280 | default), non-nested citations are used. When non-@code{nil}, nested |
| 278 | are used. | 281 | citations 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. |
| 286 | citations are composed of four elements, three of which are directly | 289 | Non-nested citations are composed of four elements, three of which are |
| 287 | user definable. The elements are concatenated together, in this order: | 290 | directly user definable. The elements are concatenated together, in |
| 291 | this 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 | ||
| 339 | Supercite also recognizes citations in the original article, and can | 343 | Supercite also recognizes citations in the original article, and can |
| 340 | transform these already cited lines in a number of ways. This is how | 344 | transform these already cited lines in a number of ways. This is how |
| 341 | Supercite suppresses the multiple citing of non-nested citations. | 345 | Supercite suppresses the multiple citing of non-nested citations. |
| 342 | Recognition of cited lines is controlled by variables analogous to those | 346 | Recognition of cited lines is controlled by variables analogous to |
| 343 | that make up the citation string as mentioned previously. | 347 | those 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 |
| 389 | Supercite extracts from the various mail headers of the original | 393 | Supercite extracts from the various mail headers of the original |
| 390 | message, placed in the reply buffer by the MUA@. Information is kept in | 394 | message, placed in the reply buffer by the MUA@. Information is kept |
| 391 | the @dfn{Info Alist} as key-value pairs, and can be retrieved for use in | 395 | in the @dfn{Info Alist} as key-value pairs, and can be retrieved for |
| 392 | various places within Supercite, such as in header rewrite functions and | 396 | use in various places within Supercite, such as in header rewrite |
| 393 | attribution selection. Other bits of data, composed and created by | 397 | functions and attribution selection. Other bits of data, composed and |
| 394 | Supercite, are also kept as key-value pairs in this alist. In the case | 398 | created by Supercite, are also kept as key-value pairs in this alist. |
| 395 | of mail fields, the key is the name of the field, omitting the trailing | 399 | In the case of mail fields, the key is the name of the field, omitting |
| 396 | colon. Info keys are always case insensitive (as are mail headers), and | 400 | the trailing colon. Info keys are always case insensitive (as are |
| 397 | the value for a corresponding key can be retrieved from the alist with | 401 | mail headers), and the value for a corresponding key can be retrieved |
| 398 | the @code{sc-mail-field} function. Thus, if the following fields were | 402 | from the alist with the @code{sc-mail-field} function. Thus, if the |
| 399 | present in the original article:@refill | 403 | following fields were present in the original article:@refill |
| 400 | 404 | ||
| 401 | @example | 405 | @example |
| 402 | Date:@: 08 April 1991, 17:32:09 EST | 406 | Date:@: 08 April 1991, 17:32:09 EST |
| @@ -419,7 +423,7 @@ then, the following lisp constructs return: | |||
| 419 | Since the argument to @code{sc-mail-field} can be any string, it is | 423 | Since the argument to @code{sc-mail-field} can be any string, it is |
| 420 | possible that the mail field will not be present on the info alist | 424 | possible 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 |
| 422 | message). In this case, @code{sc-mail-field} will return the value of | 426 | message). In this case, @code{sc-mail-field} will return the value of |
| 423 | the variable @code{sc-mumble}. | 427 | the variable @code{sc-mumble}. |
| 424 | 428 | ||
| 425 | Supercite always places all mail fields found in the yanked original | 429 | Supercite 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-) |
| 512 | There are a number of built-in @dfn{header rewrite functions} supplied | 516 | There are a number of built-in @dfn{header rewrite functions} supplied |
| 513 | by Supercite, but you can write your own custom header rewrite functions | 517 | by Supercite, but you can write your own custom header rewrite |
| 514 | (perhaps using the built-in ones as examples). The variable | 518 | functions (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 |
| 516 | functions. This list is consulted both when inserting the initial | 520 | functions. This list is consulted both when inserting the initial |
| 517 | reference header, and when displaying @dfn{electric references}. | 521 | reference 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-) |
| 522 | When Supercite is initially run on a reply buffer (via | 526 | When 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 |
| 524 | functions. The one it uses is defined in the variable | 528 | functions. 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 |
| 526 | integer which is an index into the @code{sc-rewrite-header-list}, | 530 | integer which is an index into the @code{sc-rewrite-header-list}, |
| 527 | beginning at zero. | 531 | beginning 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 |
| 559 | This function produces no header. It should be used instead of | 563 | This 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 |
| 561 | a blank line after the @code{mail-header-separator} line. | 565 | contain 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. | |||
| 612 | By default, when Supercite cites the original message for the first | 616 | By default, when Supercite cites the original message for the first |
| 613 | time, it just goes ahead and inserts the reference header indexed by | 617 | time, 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 |
| 615 | different reference headers based on the type of reply or forwarding you | 619 | different reference headers based on the type of reply or forwarding |
| 616 | are doing. You may also want to preview the reference header before | 620 | you are doing. You may also want to preview the reference header |
| 617 | deciding whether to insert it into the reply buffer or not. Supercite | 621 | before deciding whether to insert it into the reply buffer or |
| 618 | provides an optional @dfn{electric reference} mode which you can drop | 622 | not. Supercite provides an optional @dfn{electric reference} mode |
| 619 | into to give you this functionality. | 623 | which 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 | ||
| 631 | You can also set a new preferred header style, jump to any header, or | 635 | You can also set a new preferred header style, jump to any header, or |
| 632 | jump to the preferred header. The header will be shown in the electric | 636 | jump to the preferred header. The header will be shown in the electric |
| 633 | reference buffer and the header index and function name will appear in | 637 | reference buffer and the header index and function name will appear in |
| 634 | the echo area. | 638 | the 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-) |
| 646 | Displays the next reference header in the electric reference buffer. If | 650 | Displays the next reference header in the electric reference buffer. If |
| 647 | the variable @code{sc-electric-circular-p} is non-@code{nil}, invoking | 651 | the 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 |
| 649 | will wrap around to the first header.@refill | 653 | will 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-) |
| 855 | All previously retrieved info key-value pairs are deleted from the info | 859 | All previously retrieved info key-value pairs are deleted from the info |
| 856 | alist, then the mail headers in the body of the yanked message are | 860 | alist, then the mail headers in the body of the yanked message are |
| 857 | scanned. Info key-value pairs are created for each header found. Also, | 861 | scanned. Info key-value pairs are created for each header found. Also, |
| 858 | such useful information as the author's name and email address are | 862 | such useful information as the author's name and email address are |
| 859 | extracted. If the variable @code{sc-mail-warn-if-non-rfc822-p} is | 863 | extracted. If the variable @code{sc-mail-warn-if-non-rfc822-p} is |
| 860 | non-@code{nil}, then Supercite will warn you if it finds a mail header | 864 | non-@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 | |||
| 931 | non-@code{nil}, blank lines will be cited just like non-blank lines. | 935 | non-@code{nil}, blank lines will be cited just like non-blank lines. |
| 932 | Otherwise, blank lines will be treated as paragraph separators. | 936 | Otherwise, blank lines will be treated as paragraph separators. |
| 933 | 937 | ||
| 934 | Citing of the original message is highly configurable. Supercite's | 938 | Citing of the original message is highly configurable. Supercite's |
| 935 | default setup does a pretty good job of citing many common forms of | 939 | default setup does a pretty good job of citing many common forms of |
| 936 | previously cited messages. But there are as many citation styles out | 940 | previously cited messages. But there are as many citation styles out |
| 937 | there as people on the net, or just about! It would be impossible for | 941 | there 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-) |
| 947 | This variable is very similar to @code{sc-pre-hook}, except that it runs | 951 | This variable is very similar to @code{sc-pre-hook}, except that it runs |
| 948 | after @code{sc-cite-original} is finished. This hook is provided mostly | 952 | after @code{sc-cite-original} is finished. This hook is provided mostly |
| 949 | for completeness and backward compatibility. Perhaps it could be used to | 953 | for completeness and backward compatibility. Perhaps it could be used to |
| 950 | reset certain variables set in @code{sc-pre-hook}.@refill | 954 | reset 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 | ||
| 1014 | You will noticed that the minor mode string will | 1018 | You will noticed that the minor mode string will |
| 1015 | show the state of these variables as qualifier characters. When both | 1019 | show the state of these variables as qualifier characters. When both |
| 1016 | variables are @code{nil}, the Supercite minor mode string will display | 1020 | variables 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 |
| 1018 | string will display @samp{SC:f}, and when just | 1022 | string 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 | ||
| 1038 | As you know, the attribution string is the part of the author's name | 1042 | As you know, the attribution string is the part of the author's name |
| 1039 | that will be used to composed a non-nested citation string. Supercite | 1043 | that will be used to composed a non-nested citation string. Supercite |
| 1040 | scans the various mail headers present in the original article and uses | 1044 | scans the various mail headers present in the original article and uses |
| 1041 | a number of heuristics to extract strings which it puts into the | 1045 | a 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 |
| 1043 | analogous, but different than, the info alist previously mentioned. Each | 1047 | analogous, but different than, the info alist previously mentioned. Each |
| 1044 | element in the attribution alist is a key-value pair containing such | 1048 | element in the attribution alist is a key-value pair containing such |
| 1045 | information as the author's first name, middle names, and last name, the | 1049 | information as the author's first name, middle names, and last name, the |
| 1046 | author's initials, and the author's email terminus. | 1050 | author's initials, and the author's email terminus. |
| @@ -1083,7 +1087,7 @@ the author's last name. | |||
| 1083 | the author's first middle name. | 1087 | the author's first middle name. |
| 1084 | 1088 | ||
| 1085 | @item "sc-lastchoice" | 1089 | @item "sc-lastchoice" |
| 1086 | the last attribution string you have selected. This is useful when you | 1090 | the last attribution string you have selected. This is useful when you |
| 1087 | recite paragraphs in the reply.@refill | 1091 | recite 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 | |||
| 1094 | key. See below for details. | 1098 | key. See below for details. |
| 1095 | 1099 | ||
| 1096 | @item "x-attribution" | 1100 | @item "x-attribution" |
| 1097 | the original author's suggestion for attribution string choice. See below | 1101 | the original author's suggestion for attribution string choice. See below |
| 1098 | for details.@refill | 1102 | for 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-) |
| 1143 | where @var{infokey} is a key for @code{sc-mail-field} and @var{regexp} | 1147 | where @var{infokey} is a key for @code{sc-mail-field} and @var{regexp} |
| 1144 | is a regular expression to match against the @var{infokey}'s value. If | 1148 | is 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 |
| 1146 | used as the attribution string. Actually, @var{attribution} can be a | 1150 | used as the attribution string. Actually, @var{attribution} can be a |
| 1147 | string or a list; if it is a list, it is @code{eval}uated and the return | 1151 | string 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 |
| 1167 | contained in the variable @code{sc-default-attribution}. Default values | 1171 | contained in the variable @code{sc-default-attribution}. Default values |
| 1168 | for these variables are @code{"Anonymous"} and @code{"Anon"}, | 1172 | for these variables are @code{"Anonymous"} and @code{"Anon"}, |
| 1169 | respectively. Note that in most circumstances, getting the default | 1173 | respectively. Note that in most circumstances, getting the default |
| 1170 | author name or attribution is a sign that something is set up | 1174 | author name or attribution is a sign that something is set up |
| 1171 | incorrectly. | 1175 | incorrectly. |
| 1172 | 1176 | ||
| @@ -1174,7 +1178,7 @@ incorrectly. | |||
| 1174 | @vindex use-only-preference-p (sc-) | 1178 | @vindex use-only-preference-p (sc-) |
| 1175 | Also, if the preferred attribution, which you specified in your | 1179 | Also, 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 |
| 1177 | secondary method can be employed to find a valid attribution string. The | 1181 | secondary method can be employed to find a valid attribution string. The |
| 1178 | variable @code{sc-use-only-preference-p} controls what happens in this | 1182 | variable @code{sc-use-only-preference-p} controls what happens in this |
| 1179 | case. If the variable's value is non-@code{nil}, then | 1183 | case. 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-) |
| 1211 | Once the attribution string has been automatically selected, a number of | 1215 | Once the attribution string has been automatically selected, a number of |
| 1212 | things can happen. If the variable @code{sc-confirm-always-p} is | 1216 | things can happen. If the variable @code{sc-confirm-always-p} is |
| 1213 | non-@code{nil}, you are queried for confirmation of the chosen | 1217 | non-@code{nil}, you are queried for confirmation of the chosen |
| 1214 | attribution string. The possible values for completion are those strings | 1218 | attribution string. The possible values for completion are those strings |
| 1215 | in the attribution alist, however you are not limited to these choices. | 1219 | in the attribution alist, however you are not limited to these choices. |
| 1216 | You can type any arbitrary string at the confirmation prompt. The string | 1220 | You can type any arbitrary string at the confirmation prompt. The string |
| 1217 | you enter becomes the value associated with the @code{"sc-lastchoice"} | 1221 | you enter becomes the value associated with the @code{"sc-lastchoice"} |
| 1218 | key in the attribution alist. | 1222 | key in the attribution alist. |
| 1219 | 1223 | ||
| @@ -1279,7 +1283,7 @@ author's name proper. Examples include the titles ``Dr.'', ``Mr.'', | |||
| 1279 | Also, some companies prepend or append the name of the division, | 1283 | Also, some companies prepend or append the name of the division, |
| 1280 | organization, or project on the author's name. All of these titles are | 1284 | organization, or project on the author's name. All of these titles are |
| 1281 | noise which should be ignored. The variable @code{sc-name-filter-alist} | 1285 | noise which should be ignored. The variable @code{sc-name-filter-alist} |
| 1282 | is used for this purpose. As implied by its name, this variable is an | 1286 | is used for this purpose. As implied by its name, this variable is an |
| 1283 | association list, where each element is a cons cell of the form: | 1287 | association 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: | |||
| 1290 | where @var{regexp} is a regular expression that is matched (using | 1294 | where @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 |
| 1292 | author name. @var{position} is a position indicator, starting at zero. | 1296 | author name. @var{position} is a position indicator, starting at zero. |
| 1293 | Thus to strip out all titles of ``Dr.'', ``Mr.'', etc. from the name, | 1297 | Thus 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 |
| 1381 | Always produces a true outcome. | 1385 | Always produces a true outcome. |
| 1382 | @item begin | 1386 | @item begin |
| 1383 | Always executed before the frame is interpreted. This can be used to | 1387 | Always executed before the frame is interpreted. This can be used to |
| 1384 | initialize some global variables for example. | 1388 | initialize some global variables for example. |
| 1385 | @item end | 1389 | @item end |
| 1386 | Always executed after frame interpreting is completed. This can be used | 1390 | Always executed after frame interpreting is completed. This can be used |
| 1387 | to perform any necessary post-processing. | 1391 | to perform any necessary post-processing. |
| 1388 | @item every | 1392 | @item every |
| 1389 | Executes whenever the frame is reset, usually after the entire frame has | 1393 | Executes 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} |
| 1408 | This tells Regi to continue processing entries after a match, instead of | 1412 | This tells Regi to continue processing entries after a match, instead of |
| 1409 | resetting the frame and moving @samp{point}. In this way, lines of text | 1413 | resetting the frame and moving @samp{point}. In this way, lines of text |
| 1410 | can have multiple matches, but you have to be careful to avoid entering | 1414 | can have multiple matches, but you have to be careful to avoid entering |
| 1411 | infinite loops. | 1415 | infinite loops. |
| 1412 | 1416 | ||
| 1413 | @item the symbol @code{abort} | 1417 | @item the symbol @code{abort} |
| 1414 | This tells Regi to terminate frame processing. However, any @code{end} | 1418 | This tells Regi to terminate frame processing. However, any @code{end} |
| 1415 | entry is still processed. | 1419 | entry 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})} |
| 1424 | Tells Regi to move @var{step} number of lines forward as it continues | 1428 | Tells Regi to move @var{step} number of lines forward as it continues |
| 1425 | processing. By default, Regi moves forward one line. @var{step} can be | 1429 | processing. By default, Regi moves forward one line. @var{step} can be |
| 1426 | zero or negative of course, but watch out for infinite loops.@refill | 1430 | zero 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 | ||
| 1511 | Once the original message has been yanked into the reply buffer, and | 1515 | Once 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 |
| 1513 | useful Supercite commands will be available to you. Since there is wide | 1517 | useful Supercite commands will be available to you. Since there is wide |
| 1514 | variety in the keymaps that MUAs set up in their reply buffers, it is | 1518 | variety in the keymaps that MUAs set up in their reply buffers, it is |
| 1515 | next to impossible for Supercite to properly sprinkle its commands into | 1519 | next to impossible for Supercite to properly sprinkle its commands into |
| 1516 | the existing keymap. For this reason Supercite places its commands on a | 1520 | the existing keymap. For this reason Supercite places its commands on a |
| 1517 | separate keymap, putting this keymap onto a prefix key in the reply | 1521 | separate keymap, putting this keymap onto a prefix key in the reply |
| 1518 | buffer. You can customize the prefix key Supercite uses by changing the | 1522 | buffer. You can customize the prefix key Supercite uses by changing the |
| 1519 | variable @code{sc-mode-map-prefix}. By default, the | 1523 | variable @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, |
| 1521 | but unfortunately the best general solution so far. In the rest of this | 1525 | but unfortunately the best general solution so far. In the rest of this |
| @@ -1536,7 +1540,7 @@ prefix.@refill | |||
| 1536 | 1540 | ||
| 1537 | Probably the three most common post-yank formatting operations that you | 1541 | Probably the three most common post-yank formatting operations that you |
| 1538 | will perform will be the manual citing, reciting, and unciting of | 1542 | will perform will be the manual citing, reciting, and unciting of |
| 1539 | regions of text in the reply buffer. Often you may want to recite a | 1543 | regions of text in the reply buffer. Often you may want to recite a |
| 1540 | paragraph to use a nickname, or manually cite a message when setting | 1544 | paragraph 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 |
| 1542 | perform these functions on the region of text between @samp{point} and | 1546 | perform 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}) |
| 1583 | This command recites each line the region by interpreting the selected | 1587 | This command recites each line the region by interpreting the selected |
| 1584 | frame from @code{sc-recite-frame-alist}, or the default reciting frame | 1588 | frame 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-) |
| 1607 | Inserts a reference header into the reply buffer at @samp{point}. With | 1611 | Inserts a reference header into the reply buffer at @samp{point}. With |
| 1608 | no arguments, the header indexed by @code{sc-preferred-header-style} is | 1612 | no arguments, the header indexed by @code{sc-preferred-header-style} is |
| 1609 | inserted. An optional numeric argument is the index into | 1613 | inserted. 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 |
| 1611 | write.@refill | 1615 | write.@refill |
| 1612 | 1616 | ||
| @@ -1719,7 +1723,7 @@ Allows you to interactively view, modify, add, and delete info alist | |||
| 1719 | key-value pairs. With no argument, you are prompted (with completion) | 1723 | key-value pairs. With no argument, you are prompted (with completion) |
| 1720 | for a info key. The value associated with that key is displayed in the | 1724 | for a info key. The value associated with that key is displayed in the |
| 1721 | minibuffer. With an argument, this command will first ask if you want | 1725 | minibuffer. With an argument, this command will first ask if you want |
| 1722 | to view, modify, add, or delete an info key. Viewing is identical to | 1726 | to view, modify, add, or delete an info key. Viewing is identical to |
| 1723 | running the command with no arguments. | 1727 | running the command with no arguments. |
| 1724 | 1728 | ||
| 1725 | If you want to modify the value of a key, Supercite will first prompt | 1729 | If 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 | ||
| 1772 | In June of 1989, some discussion was held between the various MUA | 1776 | In June of 1989, some discussion was held between the various MUA |
| 1773 | authors, the Supercite author, and other Supercite users. These | 1777 | authors, the Supercite author, and other Supercite users. These |
| 1774 | discussions centered around the need for a standard interface between | 1778 | discussions centered around the need for a standard interface between |
| 1775 | MUAs and Supercite (or any future Supercite-like packages). This | 1779 | MUAs and Supercite (or any future Supercite-like packages). This |
| 1776 | interface was formally proposed by Martin Neitzel on Fri, 23 Jun 89, in | 1780 | interface 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 | ||
| 1811 | If you are writing a new MUA package, or maintaining an existing MUA | 1815 | If you are writing a new MUA package, or maintaining an existing MUA |
| 1812 | package, you should make it conform to this interface so that your users | 1816 | package, you should make it conform to this interface so that your users |
| 1813 | will be able to link Supercite easily and seamlessly. To do this, when | 1817 | will be able to link Supercite easily and seamlessly. To do this, when |
| 1814 | setting up a reply or forward buffer, your MUA should follow these | 1818 | setting up a reply or forward buffer, your MUA should follow these |
| 1815 | steps: | 1819 | steps: |
| 1816 | 1820 | ||
| 1817 | @enumerate | 1821 | @enumerate |
| 1818 | @item | 1822 | @item |
| 1819 | Insert the original message, including the mail headers into the reply | 1823 | Insert the original message, including the mail headers into the reply |
| 1820 | buffer. At this point you should not modify the raw text in any way | 1824 | buffer. 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 |
| 1822 | you should place all the original headers into the body of the reply. | 1826 | you should place all the original headers into the body of the reply. |
| 1823 | This means that many of the mail headers will be duplicated, one copy | 1827 | This 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 |
| 1828 | Set @samp{point} to the beginning of the line containing the first mail | 1832 | Set @samp{point} to the beginning of the line containing the first mail |
| 1829 | header in the body of the reply. Set @samp{mark} at the end of the | 1833 | header in the body of the reply. Set @samp{mark} at the end of the |
| 1830 | message text. It is very important that the region be set around the | 1834 | message text. It is very important that the region be set around the |
| 1831 | text Supercite is to modify and that the mail headers are within this | 1835 | text Supercite is to modify and that the mail headers are within this |
| 1832 | region. Supercite will not venture outside the region for any reason, | 1836 | region. 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 |
| 1837 | Run the hook @code{mail-citation-hook}. You will probably want to | 1841 | Run the hook @code{mail-citation-hook}. You will probably want to |
| 1838 | provide some kind of default citation functions in cases where the user | 1842 | provide some kind of default citation functions in cases where the user |
| 1839 | does not have Supercite installed. By default, your MUA should | 1843 | does 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 | ||
| 1854 | The Supercite package was derived from its predecessor Superyank 1.11 | 1858 | The Supercite package was derived from its predecessor Superyank 1.11 |
| 1855 | which was inspired by various bits of code and ideas from Martin Neitzel | 1859 | which was inspired by various bits of code and ideas from Martin Neitzel |
| 1856 | and Ashwin Ram. They were the folks who came up with the idea of | 1860 | and Ashwin Ram. They were the folks who came up with the idea of |
| 1857 | non-nested citations and implemented some rough code to provide this | 1861 | non-nested citations and implemented some rough code to provide this |
| 1858 | style. Superyank and Supercite version 2 evolved to the point where much | 1862 | style. Superyank and Supercite version 2 evolved to the point where much |
| 1859 | of the attribution selection mechanism was automatic, and features have | 1863 | of the attribution selection mechanism was automatic, and features have |
| 1860 | been continuously added through the comments and suggestions of the | 1864 | been continuously added through the comments and suggestions of the |
| 1861 | Supercite mailing list participants. | 1865 | Supercite 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 | ||
| 11 | Copyright @copyright{} 2013 Free Software Foundation, Inc. | ||
| 12 | |||
| 13 | @quotation | ||
| 14 | Permission is granted to copy, distribute and/or modify this document | ||
| 15 | under the terms of the GNU Free Documentation License, Version 1.3 or | ||
| 16 | any later version published by the Free Software Foundation; with no | ||
| 17 | Invariant Sections, with the Front-Cover texts being ``A GNU Manual'', | ||
| 18 | and with the Back-Cover Texts as in (a) below. A copy of the license | ||
| 19 | is 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 | ||
| 22 | modify 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 | |||
| 49 | This manual describes the version of Todo mode first appearing in | ||
| 50 | Emacs 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 | |||
| 77 | Overview | ||
| 78 | |||
| 79 | * Levels of Organization:: | ||
| 80 | * Todo Items as Diary Entries:: | ||
| 81 | |||
| 82 | Editing | ||
| 83 | |||
| 84 | * File Editing:: | ||
| 85 | * Category Editing:: | ||
| 86 | * Item Editing:: | ||
| 87 | |||
| 88 | Item Editing | ||
| 89 | |||
| 90 | * Inserting New Items:: | ||
| 91 | * Editing Item Headers and Text:: | ||
| 92 | * Relocating and Removing Items:: | ||
| 93 | |||
| 94 | Relocating and Removing Items | ||
| 95 | |||
| 96 | * Reprioritizing Items:: | ||
| 97 | * Moving and Deleting Items:: | ||
| 98 | * Done Items:: | ||
| 99 | |||
| 100 | Todo Archives | ||
| 101 | |||
| 102 | * Creating and Visiting Archives:: | ||
| 103 | * Todo Archive Mode:: | ||
| 104 | |||
| 105 | Todo Categories Mode | ||
| 106 | |||
| 107 | * Table of Item Counts:: | ||
| 108 | * Reordering Categories:: | ||
| 109 | |||
| 110 | Todo Filtered Items Mode | ||
| 111 | |||
| 112 | * Filtering Items:: | ||
| 113 | * Todo Filtered Items Mode Commands:: | ||
| 114 | * Files of Filtered Items:: | ||
| 115 | |||
| 116 | Todo 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 | |||
| 127 | The Todo mode package provides facilities for making and maintaining | ||
| 128 | todo lists. A todo list is a list of todo items---things to do (in the | ||
| 129 | widest sense)---arranged in order of priority, with the highest priority | ||
| 130 | item at the top of the list and the lowest priority item at the bottom. | ||
| 131 | |||
| 132 | This manual describes the Todo mode user interface. Todo mode comprises | ||
| 133 | a large number of commands and user options for creating, displaying, | ||
| 134 | navigating and editing todo lists, distributed across five major modes. | ||
| 135 | The principle major mode is Todo mode; the other four (Todo Edit mode, | ||
| 136 | Todo Archive mode, Todo Categories mode, and Todo Filtered Items mode) | ||
| 137 | are subsidiary to and accessible from Todo mode. | ||
| 138 | |||
| 139 | This version of Todo mode greatly expands on, and in significant ways | ||
| 140 | differs from, the original version; for details and consequences of the | ||
| 141 | most 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 | |||
| 151 | In Todo mode each todo list is identified with a named category, so you | ||
| 152 | can group together thematically related todo items. Each category is | ||
| 153 | stored in a file, which thus provides a further level of organization. | ||
| 154 | You can create as many todo files, and in each as many categories, as | ||
| 155 | you want. | ||
| 156 | |||
| 157 | All todo files reside in a single directory, whose location is specified | ||
| 158 | by the user option @code{todo-directory}. This directory may also | ||
| 159 | contain other types of Todo files, which are discussed later | ||
| 160 | (@pxref{Todo Archive Mode} and @ref{Todo Filtered Items Mode}). Emacs | ||
| 161 | recognizes Todo files by their extension, so when you visit the files | ||
| 162 | the buffer is in the appropriate mode and the current category is | ||
| 163 | correctly displayed. | ||
| 164 | |||
| 165 | When 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 | ||
| 167 | rule, this name is also used for the other types of Todo files, which | ||
| 168 | have their own extensions). As a user, you only have to deal with the | ||
| 169 | base name of a Todo file. | ||
| 170 | |||
| 171 | When you create a new todo file, you must also add at least one category | ||
| 172 | to it, and each todo item belongs to a category. It is not possible to | ||
| 173 | have an uncategorized todo list, but you can always make a catch-all | ||
| 174 | category with a generic name like ``Todo'', which is in fact the default | ||
| 175 | name assigned to the first category when you create a new todo file, if | ||
| 176 | you don't provide a different name; you can change the default by | ||
| 177 | customizing @code{todo-initial-category}. | ||
| 178 | |||
| 179 | The most basic level of organization is the todo item itself, since it | ||
| 180 | contains the information about what you want to do. As detailed in | ||
| 181 | subsequent sections of this manual, most Todo mode commands and user | ||
| 182 | options concern ways of classifying and deploying this information by | ||
| 183 | associating various kinds of metadata with it, e.g., the category it | ||
| 184 | belongs to, its priority, whether it is to be included in the Emacs | ||
| 185 | diary, 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 | |||
| 190 | Each todo item is also a potential diary item: if you include a todo | ||
| 191 | file in the Emacs diary file (@pxref{Fancy Diary Display,,, emacs}), the | ||
| 192 | Fancy Diary display will show those todo items that are not marked with | ||
| 193 | @code{todo-nondiary-marker}. This effectively augments the Emacs diary | ||
| 194 | with categorized diary entries. For the various options available for | ||
| 195 | making a todo item a diary entry, see @ref{Inserting New Items} and | ||
| 196 | @ref{Editing Item Headers and Text}. | ||
| 197 | |||
| 198 | To ensure the proper display of todo items in the Fancy Diary display, | ||
| 199 | they must have the format of diary entries, i.e., they have to begin | ||
| 200 | with a date string recognized by the Emacs diary,@footnote{Two types of | ||
| 201 | dates recognized by the Emacs diary are not supported in the current | ||
| 202 | Todo mode implementation: sexp diary entries and date strings in which | ||
| 203 | the year is omitted (however, the latter type is equivalent to using | ||
| 204 | @samp{*} for an arbitrary year, which Todo mode does support).} and if | ||
| 205 | they are longer than one line, all lines but the first must begin with | ||
| 206 | white space. Todo mode ensures that these requirements are satisfied | ||
| 207 | (@pxref{Other Display Commands and Options}). | ||
| 208 | |||
| 209 | The Fancy Diary display is also Todo mode aware: if it contains an item | ||
| 210 | from a Todo mode file, clicking or typing @key{RET} on this item will | ||
| 211 | switch to the buffer visiting that file and properly display the item's | ||
| 212 | category, with point on the item. | ||
| 213 | |||
| 214 | @node Todo Mode Entry Points, Key Binding Conventions, Overview, Top | ||
| 215 | @chapter Todo Mode Entry Points | ||
| 216 | |||
| 217 | To initialize your first todo file, invoke the command @code{todo-show}. | ||
| 218 | This prompts you for a file name (defaulting to the value of | ||
| 219 | @code{todo-initial-file}), prompts you for the name of the first | ||
| 220 | category (defaulting to the value of @code{todo-initial-category}), | ||
| 221 | creates and visits the file and displays the category in Todo mode, and | ||
| 222 | then prompts you to enter the first item. If you choose not to enter an | ||
| 223 | item now, simply type @kbd{C-g}, which leaves the category empty but | ||
| 224 | otherwise well-formed. If you prefer not to be prompted to enter an | ||
| 225 | item on adding a new category, disable the option | ||
| 226 | @code{todo-add-item-if-new-category}. | ||
| 227 | |||
| 228 | Once at least one todo file exists, invoking @code{todo-show} enters | ||
| 229 | Todo mode. Invoked with a prefix argument, the command prompts for | ||
| 230 | which todo file to visit. Otherwise, the first invocation of this | ||
| 231 | command 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 | |||
| 237 | If you leave Todo mode and later invoke @code{todo-show} to re-enter it, | ||
| 238 | by default this returns you to the current (i.e., last displayed) | ||
| 239 | category of the current todo file, which is the one in the most recently | ||
| 240 | selected and still live buffer visiting a todo file. If you disable the | ||
| 241 | option @code{todo-show-current-file}, then non-initial invocations of | ||
| 242 | @code{todo-show} always return to the first or current category of the | ||
| 243 | default todo file. | ||
| 244 | |||
| 245 | If you want to enter Todo mode and go directly to a specific category | ||
| 246 | instead the first or current category in the current or default todo | ||
| 247 | file, use the command @code{todo-jump-to-category}; @ref{Navigation}, for | ||
| 248 | details. You can also enter Todo mode by invoking a todo item insertion | ||
| 249 | command; @ref{Inserting New Items}, for details. | ||
| 250 | |||
| 251 | The most convenient way to use these commands to enter Todo mode is to | ||
| 252 | define global key bindings for them in your init file. Good choices are | ||
| 253 | for @code{todo-show} and @code{todo-jump-to-category} are @kbd{C-c t} | ||
| 254 | and @kbd{C-c j}, since these commands are bound to @kbd{t} and @kbd{j}, | ||
| 255 | respectively, in Todo mode. For invoking item insertion from outside of | ||
| 256 | Todo mode, it is useful to bind @code{todo-insertion-map}, which is the | ||
| 257 | key 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 | ||
| 259 | invocation, supply the rest of the key sequence (@pxref{Inserting New | ||
| 260 | Items}). | ||
| 261 | |||
| 262 | You can also visit a Todo file via @code{find-file} or Dired, like any | ||
| 263 | other file, and since Emacs recognizes it, the buffer will automatically | ||
| 264 | be in the appropriate Todo mode. Moreover, as long as the command you | ||
| 265 | use 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 | ||
| 268 | display the file's first category on first visiting the file (otherwise | ||
| 269 | you have to use one of the commands for navigating between categories in | ||
| 270 | order to get a proper display). | ||
| 271 | |||
| 272 | You can leave Todo mode by typing @kbd{q} (@code{todo-quit}), which | ||
| 273 | buries the current todo file buffer. Doing this also saves any changes | ||
| 274 | you have made to the file, and leaves both the file and the category | ||
| 275 | that was displayed on quitting current for subsequent Todo mode commands | ||
| 276 | (unless the buffer made current by quitting is visiting another file and | ||
| 277 | category in Todo mode, in which case the latter become current for Todo | ||
| 278 | mode commands). | ||
| 279 | |||
| 280 | @node Key Binding Conventions, Navigation, Todo Mode Entry Points, Top | ||
| 281 | @chapter Key Binding Conventions | ||
| 282 | |||
| 283 | For Todo mode commands to function properly, it is essential to maintain | ||
| 284 | the correct format at all three levels of organization---item, category, | ||
| 285 | and file. Todo mode tries to minimize the risk of format corruption by | ||
| 286 | hiding certain parts of the format from the user, making the buffer | ||
| 287 | read-only and suppressing the self-insertion keys. Consequently, it is | ||
| 288 | normally impossible to make changes to your todo files without | ||
| 289 | explicitly invoking Todo mode commands. | ||
| 290 | |||
| 291 | A beneficial side effect of this restrictiveness is that you can invoke | ||
| 292 | almost all Todo commands by typing ordinary printing characters, either | ||
| 293 | singly or in specified sequences, without using modifier keys, except | ||
| 294 | for the shift key for capitalization and the raw prefix argument | ||
| 295 | @kbd{C-u}; numeric prefix arguments can be entered just by typing a | ||
| 296 | number key. | ||
| 297 | |||
| 298 | The predefined key bindings in Todo are more or less mnemonic. As a | ||
| 299 | rule, key sequences beginning with @kbd{C} are bound to commands | ||
| 300 | applying to categories, sequences beginning with @kbd{F} apply to | ||
| 301 | (non-archive) file-level commands, and those beginning with @kbd{A} | ||
| 302 | apply to archives (a special type of Todo file; @ref{Todo Archive | ||
| 303 | Mode}). Todo commands applying to items, which constitute the majority, | ||
| 304 | are bound to lower case key sequences. | ||
| 305 | |||
| 306 | @node Navigation, Editing, Key Binding Conventions, Top | ||
| 307 | @chapter Navigation | ||
| 308 | |||
| 309 | The navigation commands are for making another todo file, category, or | ||
| 310 | item the current one by moving point to it.@footnote{Many editing | ||
| 311 | commands can also do this by side effect, but since that is not their | ||
| 312 | main function, they are not included in this section.} Since these | ||
| 313 | commands are likely to be used frequently and repetitively, it is | ||
| 314 | convenient for their key bindings to be single lower case keys, even for | ||
| 315 | navigation commands applying to categories and files. | ||
| 316 | |||
| 317 | Two of the navigation commands were already mentioned in the section on | ||
| 318 | Todo mode entry points: | ||
| 319 | |||
| 320 | @table @kbd | ||
| 321 | |||
| 322 | @item t | ||
| 323 | Display another todo file in the selected window (@code{todo-show}). | ||
| 324 | When you invoke this command in Todo mode, it prompts for a file name, | ||
| 325 | which you can choose via minibuffer completion (like invoking | ||
| 326 | @code{todo-show} with a prefix argument outside of Todo mode). If a | ||
| 327 | buffer is already visiting that file, it displays its current category; | ||
| 328 | if invoking @kbd{t} opens the file, it display its first category (by | ||
| 329 | default; see the option @code{todo-show-first} for other possibilities). | ||
| 330 | |||
| 331 | @item j | ||
| 332 | Display another todo category in the selected window | ||
| 333 | (@code{todo-jump-to-category}). When you invoke this command, it | ||
| 334 | prompts for a category name, which you can choose via minibuffer | ||
| 335 | completion. The candidates for completion include the categories in the | ||
| 336 | current 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 | ||
| 338 | choosing a category, the current category of the current todo file is | ||
| 339 | automatically selected (this can be a useful shortcut when you invoke | ||
| 340 | @code{todo-jump-to-category} outside of Todo mode). If you type the | ||
| 341 | name of a non-existing category, you can add this to the file as a new | ||
| 342 | category and jump to it. If you invoke this command with a prefix | ||
| 343 | argument, it first you prompts for which todo file to jump to (which you | ||
| 344 | can also choose with minibuffer completion) and then for which category | ||
| 345 | from that file; in this case, completion is only against the categories | ||
| 346 | in the selected file. | ||
| 347 | @end table | ||
| 348 | |||
| 349 | It is also convenient to navigate back and forth sequentially between | ||
| 350 | the categories of a single todo file. The categories of a todo file are | ||
| 351 | numbered consecutively starting with @samp{1}.@footnote{A category's | ||
| 352 | number is automatically assigned when the category is created: the | ||
| 353 | category is appended to the end of the file, so its number is simply the | ||
| 354 | highest until another category is added. There is no command in Todo | ||
| 355 | mode to reorder the numbering of the categories in a todo file, but this | ||
| 356 | is possible from the file's table of categories; @ref{Todo Categories | ||
| 357 | Mode}.} The current category's number and name appear in the mode line. | ||
| 358 | |||
| 359 | @table @kbd | ||
| 360 | |||
| 361 | @item f | ||
| 362 | Move point to the first item of the category numerically directly | ||
| 363 | following the current category (@code{todo-forward-category}). | ||
| 364 | |||
| 365 | @item b | ||
| 366 | Move point to the first item of the category numerically directly | ||
| 367 | preceding the current category (@code{todo-backward-category}). | ||
| 368 | @end table | ||
| 369 | |||
| 370 | With @kbd{f} and @kbd{b} you can cycle through the categories, so for example, | ||
| 371 | if the last category is current and you type @kbd{f}, then the first | ||
| 372 | category becomes current. | ||
| 373 | |||
| 374 | You can also navigate between the items in the current category: | ||
| 375 | |||
| 376 | @table @kbd | ||
| 377 | |||
| 378 | @item n | ||
| 379 | Move point down to the next item below the current one (i.e., to the | ||
| 380 | item with the next lower priority) (@code{todo-next-item}). | ||
| 381 | |||
| 382 | @item p | ||
| 383 | Move point up to the item directly above the current one (i.e., to the | ||
| 384 | item with the next higher priority) (@code{todo-previous-item}). | ||
| 385 | @end table | ||
| 386 | |||
| 387 | These commands also accept a positive numeric prefix argument; e.g., | ||
| 388 | typing @kbd{5 n} or @kbd{5 p} navigates in one step to the item five items lower | ||
| 389 | or higher than the current one. | ||
| 390 | |||
| 391 | Navigation to other types of Todo files is discussed in the relevant | ||
| 392 | sections below. | ||
| 393 | |||
| 394 | @node Editing, Todo Archives, Navigation, Top | ||
| 395 | @chapter Editing | ||
| 396 | |||
| 397 | Editing in Todo mode means making structural or textual changes at one | ||
| 398 | of the levels of organization (file, category, or item). Structural | ||
| 399 | editing includes adding, relocating and removing, textual editing includes | ||
| 400 | renaming files or categories and changing an item's content or date, or | ||
| 401 | adding certain kinds of marks or tags to items. To save changes you | ||
| 402 | make to the current todo file, type @kbd{s} (@code{todo-save}). Changes | ||
| 403 | are 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 | |||
| 414 | There are four file-level editing commands: | ||
| 415 | |||
| 416 | @table @kbd | ||
| 417 | |||
| 418 | @item F a | ||
| 419 | Add a new todo file (@code{todo-add-file}). This command prompts for a | ||
| 420 | name and creates the file in @code{todo-directory}, adding the | ||
| 421 | @samp{.todo} extension (so you should not include the extension in the | ||
| 422 | name you enter). The command also prompts for the file's first category and, if | ||
| 423 | option @code{todo-add-item-if-new-category} is enabled (the default), | ||
| 424 | for that category's first item. | ||
| 425 | |||
| 426 | @item F r | ||
| 427 | Rename the current todo file (@code{todo-rename-file}). If called with | ||
| 428 | a prefix argument, prompt for a todo file and rename it. If the todo | ||
| 429 | file has an archive (@pxref{Todo Archive Mode}) or there are | ||
| 430 | corresponding filtered items files (@pxref{Todo Filtered Items Mode}), | ||
| 431 | this command renames these accordingly. If there are live buffers | ||
| 432 | visiting any of these files, the command also rename them accordingly. | ||
| 433 | |||
| 434 | @item F k | ||
| 435 | Delete the current todo file (@code{todo-delete-file}).@footnote{The key | ||
| 436 | binding 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 | ||
| 438 | editing command (@pxref{Done Items}).} If the todo file has an archive | ||
| 439 | (@pxref{Todo Archive Mode}), prompt whether to delete that as well. | ||
| 440 | This command also kill the buffers visiting the deleted files. | ||
| 441 | |||
| 442 | @item F e | ||
| 443 | This command (@code{todo-edit-file}) changes the buffer's major mode to | ||
| 444 | Todo Edit mode. In this mode the entire file is visible, the buffer is | ||
| 445 | writeable and you can use the self-insertion keys and standard Emacs | ||
| 446 | editing commands to make changes. To return to Todo mode, type @kbd{C-x | ||
| 447 | C-q} (@code{todo-edit-quit}). | ||
| 448 | |||
| 449 | The command @kbd{F e} is not intended for normal editing of items and | ||
| 450 | categories, as it circumvents the restrictions that Todo imposes to | ||
| 451 | protect against file format corruption (i.e., all categories, not just | ||
| 452 | the current one, and all internal formatting are exposed and editable). | ||
| 453 | It is provided primarily as a convenience for two types of use cases | ||
| 454 | that are likely to arise infrequently. One is to be able to use | ||
| 455 | standard Emacs commands like @code{query-replace} to replace a piece of | ||
| 456 | text that occurs in different categories throughout the file. The other | ||
| 457 | use case is to recover from a mistake, such as accidentally deleting an | ||
| 458 | item, since this cannot be undone in Todo mode. | ||
| 459 | |||
| 460 | Using @kbd{C-x C-q} to quit Todo Edit mode provides a measure of safety, | ||
| 461 | since it runs a file format check, signaling an error if the format has | ||
| 462 | become invalid. However, this check cannot tell if the number of items | ||
| 463 | changed, which could result in the file containing inconsistent | ||
| 464 | information (see the cautionary note in @ref{Reordering Categories}, for | ||
| 465 | more 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 | |||
| 471 | The following commands are available for editing at the category level | ||
| 472 | (for additional category-editing commands, which are extensions of item | ||
| 473 | commands, @pxref{Editing Item Headers and Text}): | ||
| 474 | |||
| 475 | @table @kbd | ||
| 476 | |||
| 477 | @item C a | ||
| 478 | Add a new category to the current todo file and make that category | ||
| 479 | current (@code{todo-add-category}). If called with a prefix argument, | ||
| 480 | prompt for a file name and add the new category to that file. This | ||
| 481 | command is similar to using @kbd{j}, but it only accepts category names | ||
| 482 | that are not the name of an existing category in the file. | ||
| 483 | |||
| 484 | @item C r | ||
| 485 | Rename the current category (@code{todo-rename-category}). If this | ||
| 486 | category's file has an archive (@pxref{Todo Archive Mode}) with a | ||
| 487 | corresponding category, rename the category there as well. | ||
| 488 | |||
| 489 | @item C m | ||
| 490 | Move 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 | ||
| 493 | also moves that category to the archive file corresponding to the moved | ||
| 494 | to todo file; if there is no such archive file, the command creates it | ||
| 495 | and adds the category. | ||
| 496 | |||
| 497 | @item C k | ||
| 498 | Delete the current category (@code{todo-delete-category}).@footnote{This | ||
| 499 | binding is mnemonic for ``kill'' to parallel the binding @kbd{k} for | ||
| 500 | item deletion, since @kbd{d} is bound to another item editing command | ||
| 501 | (@pxref{Done Items}).} To delete a category that contains items, you | ||
| 502 | have to confirm your intent; if the category is empty, deletion is | ||
| 503 | immediate. | ||
| 504 | |||
| 505 | @item C g | ||
| 506 | Merge the items of one category into another category, delete the first | ||
| 507 | category and make the second category current | ||
| 508 | (@code{todo-merge-category}). If both the first and second categories | ||
| 509 | also have archived items (@pxref{Todo Archive Mode}), merge the former | ||
| 510 | to the latter. If only the first category has archived items, rename | ||
| 511 | the archive category to the merged to category. Minibuffer completion | ||
| 512 | of the name of the category merged to works as with the navigation | ||
| 513 | command @kbd{j}, and as with that command, passing a prefix argument, | ||
| 514 | i.e., typing @kbd{C-u C g}, prompts for a file and confines merging to a | ||
| 515 | category in that file. | ||
| 516 | @end table | ||
| 517 | |||
| 518 | @node Item Editing, , Category Editing, Editing | ||
| 519 | @section Item Editing | ||
| 520 | |||
| 521 | Todo mode provides a wide variety of commands for adding and textually | ||
| 522 | changing 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 | |||
| 533 | There are many commands for adding new todo items. The command names | ||
| 534 | contain the word ``insert'' instead of ``add'' and their key bindings are | ||
| 535 | sequences beginning with @kbd{i}. The motivation for this terminology is | ||
| 536 | that speaking of adding an item to a category suggests appending it to | ||
| 537 | the top or bottom, whereas you can insert an item into the category | ||
| 538 | anywhere, giving each new item any priority in the list. | ||
| 539 | |||
| 540 | @table @kbd | ||
| 541 | |||
| 542 | @item i i | ||
| 543 | This is the basic command for inserting new items into a category | ||
| 544 | (@code{todo-insert-item}). Called without a prefix argument, it prompts | ||
| 545 | for the text of the item and its priority (a number between 1 and one | ||
| 546 | more than the number of items already in the category), both of which | ||
| 547 | you enter in the minibuffer, and inserts the item into the current | ||
| 548 | category of the current todo file at the position in the list | ||
| 549 | corresponding to the priority you chose. Called with one prefix | ||
| 550 | argument, it also prompts for a category, and called with two prefix | ||
| 551 | arguments, it prompts for both a file and a category from that file, and | ||
| 552 | inserts the item accordingly. Category name completion works as with | ||
| 553 | the navigation command @kbd{j}. | ||
| 554 | @end table | ||
| 555 | |||
| 556 | Each invocation of @kbd{i i} adds a header string to the item, which | ||
| 557 | includes at least the current date in the same format used by | ||
| 558 | @code{diary-insert-entry} (@pxref{Date Formats,,, emacs}). You can | ||
| 559 | control what other information is included in the header by customizing | ||
| 560 | the following options: | ||
| 561 | |||
| 562 | @itemize @bullet | ||
| 563 | |||
| 564 | @item | ||
| 565 | @code{todo-always-add-time-string} is for including or omitting the | ||
| 566 | current time. The time string is omitted by default. | ||
| 567 | |||
| 568 | @item | ||
| 569 | @code{todo-include-in-diary} is for specifying whether the item appears | ||
| 570 | in the Fancy Diary display by adding or omitting | ||
| 571 | @code{todo-nondiary-marker}. By default, new todo items are marked for | ||
| 572 | exclusion 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 | ||
| 577 | control whether they are marked in the calendar (@pxref{Format of Diary | ||
| 578 | File,,, emacs}). By default, todo items that are diary entries are | ||
| 579 | marked in the calendar. | ||
| 580 | @end itemize | ||
| 581 | |||
| 582 | Instead of always adding the same header information to a new item, you | ||
| 583 | can use more specific insertion commands that let you decide what to | ||
| 584 | include in the item header each time you insert a new item. And instead | ||
| 585 | of always being prompted to choose the new item's priority, you can | ||
| 586 | invoke a command to insert it at the position (hence with the priority) | ||
| 587 | of the item at point. Finally, instead of always typing the text of the | ||
| 588 | new item in the minibuffer, you can invoke a command that makes the | ||
| 589 | selected region in an Emacs buffer automatically become the new item's | ||
| 590 | text. The following paragraphs discuss how to invoke these commands by | ||
| 591 | typing certain key sequences. | ||
| 592 | |||
| 593 | There are eight parameters of item insertion in Todo mode, six | ||
| 594 | concerning the item header, and one each concerning its priority and its | ||
| 595 | text. Each unique combination of these parameters produces a different | ||
| 596 | insertion command. The command @kbd{i i} realizes one of these | ||
| 597 | combinations. For the commands that realize the remaining combinations | ||
| 598 | it is convenient to associate each parameter with a mnemonically chosen | ||
| 599 | key. Then by typing certain sequences of these keys, you complete the | ||
| 600 | insertion command invocation that realizes the specified combination. | ||
| 601 | As with @kbd{i i}, the effect of many of these commands also depends on | ||
| 602 | the values of the item insertion options mentioned above (see the | ||
| 603 | examples below). | ||
| 604 | |||
| 605 | Here is a list of the parameters and their associated keys, in the order | ||
| 606 | in which you must type them when building a key sequence (this order | ||
| 607 | roughly reflects the order in which the corresponding parts of the item | ||
| 608 | occur 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 | ||
| 618 | calendar, or@* | ||
| 619 | @kbd{d} for interactively entering the date header as a string of year, | ||
| 620 | month and day number components in the minibuffer, or@* | ||
| 621 | @kbd{n} for interactively entering the date header as a weekday name in | ||
| 622 | the 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 | |||
| 632 | Each insertion command key sequence begins (disregarding prefix | ||
| 633 | arguments) with @kbd{i}, followed by one or more of these eight keys, in | ||
| 634 | the order listed. But as you can see in the above table, since some of | ||
| 635 | the insertion parameters are mutually exclusive, they occupy only five | ||
| 636 | positions, so the complete (unprefixed) sequences are maximally six keys | ||
| 637 | long. Shorter sequences are also possible, since a parameter may be | ||
| 638 | omitted. But since the order in any key sequence is fixed, if the last | ||
| 639 | key in the sequence could be followed by another insertion key, i.e., if | ||
| 640 | the last key is not @kbd{h} or @kbd{r}, it has to be doubled to complete | ||
| 641 | the 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 | ||
| 643 | i} and not @kbd{i}). | ||
| 644 | |||
| 645 | Here 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 | ||
| 651 | the latter down) with a header containing the current date and, | ||
| 652 | depending on the values of the mentioned options, possibly the current | ||
| 653 | time 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 | ||
| 657 | non-nil and omitted if that option is nil; that is, the diary key @kbd{y} | ||
| 658 | overrides the setting of this option. | ||
| 659 | @item | ||
| 660 | @kbd{i y t h} does the same as the preceding command, except that it | ||
| 661 | prompts for a time string instead of automatically inserting the | ||
| 662 | current time; however, typing @key{RET} at the prompt returns the | ||
| 663 | current time if @code{todo-always-add-time-string} is non-nil, otherwise | ||
| 664 | the 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 | ||
| 667 | prompts for the item's priority and inserts it accordingly. | ||
| 668 | @end itemize | ||
| 669 | |||
| 670 | Note that the commands whose key sequences include @kbd{y}, @kbd{k} or @kbd{t} | ||
| 671 | reverse the effect of the options @code{todo-include-in-diary}, | ||
| 672 | @code{todo-diary-nonmarking} and @code{todo-always-add-time-string}, | ||
| 673 | respectively, thus temporarily overriding their values. | ||
| 674 | |||
| 675 | The names of the item insertion commands correspond to their key | ||
| 676 | bindings, 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 | ||
| 678 | combinations, instead of trying to memorize either the names or the key | ||
| 679 | sequences, you can, as usual, just type an initial part of a key | ||
| 680 | sequence (minimally @kbd{i}), followed by @kbd{C-h} to see the valid | ||
| 681 | completions. | ||
| 682 | |||
| 683 | An alternative to using the key @kbd{c} for choosing the item's date | ||
| 684 | from the calendar is also available: if point is on a date in the | ||
| 685 | calendar, typing @kbd{i t} (@code{todo-insert-item-from-calendar}) will | ||
| 686 | prompt for a new item and its priority and insert it in the current | ||
| 687 | category. Like @kbd{i i} and the other item insertion commands, this | ||
| 688 | also accepts one or two prefix arguments for choosing the category via | ||
| 689 | minibuffer completion. Note, however, that the key sequence @kbd{i t} | ||
| 690 | is not defined in Todo mode but in the Calendar mode keymap. It is a | ||
| 691 | convenient shortcut if you happen to be using the calendar when you | ||
| 692 | decide 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 | ||
| 694 | item's text, and then you can choose a date from the calendar.) | ||
| 695 | |||
| 696 | There is one more item insertion command, which does not derive from the | ||
| 697 | item insertion parameters: | ||
| 698 | |||
| 699 | @table @kbd | ||
| 700 | |||
| 701 | @item i p | ||
| 702 | This command (@code{todo-copy-item}) makes a complete copy of the item | ||
| 703 | at point, including its header, prompts for its priority in the current | ||
| 704 | category and inserts it accordingly. | ||
| 705 | @end table | ||
| 706 | |||
| 707 | @noindent | ||
| 708 | This command is useful for quickly adding a todo item whose text or | ||
| 709 | header you want to differ only partly from that of an existing item: | ||
| 710 | after inserting the copy, you can quickly edit it as needed by using | ||
| 711 | commands 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 | |||
| 716 | There are a number of commands for editing an existing item's text or | ||
| 717 | header; these commands are bound to key sequences with @kbd{e}. | ||
| 718 | |||
| 719 | There are two commands for editing an item's text (and manually editing | ||
| 720 | its header), one appropriate for short items and simple edits and one | ||
| 721 | better suited for more complex changes or for editing lengthy items: | ||
| 722 | |||
| 723 | @table @kbd | ||
| 724 | |||
| 725 | @item e e | ||
| 726 | Edit the text of the current item in the minibuffer | ||
| 727 | (@code{todo-edit-item}). If called with a prefix argument (@kbd{C-u e | ||
| 728 | e}), the item's header is also included in the minibuffer and so can be | ||
| 729 | edited manually. | ||
| 730 | |||
| 731 | @item e m | ||
| 732 | Edit 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 | ||
| 735 | the 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 | ||
| 737 | putting the file in an inconsistent state, since it puts only the | ||
| 738 | current item in Todo Edit mode.} | ||
| 739 | @end table | ||
| 740 | |||
| 741 | A number of commands are available for interactively editing all or part | ||
| 742 | of the item header, permitting quick edits and helping avoid formatting | ||
| 743 | errors. | ||
| 744 | |||
| 745 | The following three commands are for editing any or all of the year, | ||
| 746 | month and day components of a date header: | ||
| 747 | |||
| 748 | @table @kbd | ||
| 749 | |||
| 750 | @item e d t | ||
| 751 | Successively prompt for changes to the date's year, month and | ||
| 752 | day number, and if the option @code{todo-always-add-time-string} is | ||
| 753 | non-nil, also for editing the time string (see also @kbd{e t} below). | ||
| 754 | |||
| 755 | @item e d a | ||
| 756 | Change the date to today's date. | ||
| 757 | |||
| 758 | @item e d c | ||
| 759 | This command pops up the Emacs calendar, and after you type @key{RET} on | ||
| 760 | a date in the calendar makes that date the item's date. | ||
| 761 | @end table | ||
| 762 | |||
| 763 | @noindent | ||
| 764 | You can also use these commands on items whose date header consists of a | ||
| 765 | weekday name, which then changes to a header with year, month and day | ||
| 766 | components. | ||
| 767 | |||
| 768 | Each of the following three commands, in contrast to the preceding | ||
| 769 | three, changes only a single date component and has no effect on a date | ||
| 770 | header consisting of a weekday name: | ||
| 771 | |||
| 772 | @table @kbd | ||
| 773 | @item e d y | ||
| 774 | @itemx e d m | ||
| 775 | @itemx e d d | ||
| 776 | Prompt for changing just the year, month or day number, respectively; if | ||
| 777 | invoked with a positive or negative numeric prefix argument, directly | ||
| 778 | increment or decrement the date component accordingly and automatically | ||
| 779 | adjust the other date component if necessary. For example, if the date | ||
| 780 | string 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 | ||
| 786 | Prompt for a weekday name and make it the item's date header. Note that | ||
| 787 | this replaces an existing date string, it does not add the day name to | ||
| 788 | the date string. | ||
| 789 | |||
| 790 | @item e t | ||
| 791 | Edit just the item's time string. A time string can be added both to a | ||
| 792 | date string and to a weekday name. If you type @key{RET} at the | ||
| 793 | prompt, this omits a time string from the header, or deletes an existing | ||
| 794 | time string. | ||
| 795 | |||
| 796 | @item e y y | ||
| 797 | Change the item's diary inclusion status by adding or removing | ||
| 798 | @code{todo-nondiary-marker}. | ||
| 799 | |||
| 800 | @item e y k | ||
| 801 | Change the item's diary marking status by adding or removing | ||
| 802 | @code{diary-nonmarking-symbol} (this command has an effect only if the | ||
| 803 | item is not marked for exclusion from the diary). | ||
| 804 | @end table | ||
| 805 | |||
| 806 | @noindent | ||
| 807 | Parallel to the latter two item-level commands are the | ||
| 808 | following category-level commands: | ||
| 809 | |||
| 810 | @table @kbd | ||
| 811 | |||
| 812 | @item C e y | ||
| 813 | @itemx C e k | ||
| 814 | Add @code{todo-nondiary-marker} and @code{diary-nonmarking-symbol}, | ||
| 815 | respectively, to all todo items in the current category; if invoked with | ||
| 816 | a prefix argument, these markings are removed from all items in the | ||
| 817 | category. | ||
| 818 | @end table | ||
| 819 | |||
| 820 | @node Relocating and Removing Items, , Editing Item Headers and Text, Item Editing | ||
| 821 | @subsection Relocating and Removing Items | ||
| 822 | |||
| 823 | In addition to inserting a new todo item and changing the text or header | ||
| 824 | of an existing item, you can also move an item to another category | ||
| 825 | (i.e., recategorize it), change its priority within its category, delete | ||
| 826 | it from the category and file, or mark it as a ``done'' item, which | ||
| 827 | removes 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 | |||
| 838 | There are three ways to change a todo item's priority: | ||
| 839 | |||
| 840 | @table @kbd | ||
| 841 | |||
| 842 | @item r | ||
| 843 | Raise the current item's priority by one, exchanging its position in the list | ||
| 844 | with that of the item directly above it (@code{todo-raise-item-priority}). | ||
| 845 | |||
| 846 | @item l | ||
| 847 | Lower the current item's priority by one, exchanging its position in the list | ||
| 848 | with that of the item directly below it (@code{todo-lower-item-priority}). | ||
| 849 | |||
| 850 | @item # | ||
| 851 | Prompt for a number and relocate the item to the corresponding position | ||
| 852 | in 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., | ||
| 854 | gives it third highest priority. You can also pass the desired priority | ||
| 855 | as a numeric prefix argument, e.g., @kbd{3 #} gives the item third | ||
| 856 | highest priority without prompting. (Prefix arguments have no effect | ||
| 857 | with @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 | |||
| 863 | You can move an item to another category, thereby recategorizing it: | ||
| 864 | |||
| 865 | @table @kbd | ||
| 866 | |||
| 867 | @item m | ||
| 868 | Move the item at point to another category (@code{todo-move-item}). | ||
| 869 | This prompts for a category to move the item to, displays that category, | ||
| 870 | prompts for the priority of the moved item in the category moved to and | ||
| 871 | inserts the item accordingly. Minibuffer completion of the name of the | ||
| 872 | category moved to works as with the navigation command @kbd{j}, and as | ||
| 873 | with that command, passing a prefix argument prompts for a file and | ||
| 874 | moves the item to a category in that file; and if the category name you | ||
| 875 | enter is new, then you are asked whether to add the category to the | ||
| 876 | file, and if you affirm, the item is moved to the new category. | ||
| 877 | @end table | ||
| 878 | |||
| 879 | You delete an item, thereby permanently removing it: | ||
| 880 | |||
| 881 | @table @kbd | ||
| 882 | |||
| 883 | @item k | ||
| 884 | Delete the todo item at point (@code{todo-delete-item}; the binding is | ||
| 885 | mnemonic 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 | ||
| 887 | the kill ring). This command requires confirmation that you want to | ||
| 888 | delete the item, since you cannot undo the deletion in Todo mode. (You | ||
| 889 | could use @kbd{F e} to recover the item, but be aware that this would | ||
| 890 | put the file in an inconsistent state, which you can recover from, but | ||
| 891 | not without a risk; cf.@: the cautionary note in @ref{Reordering | ||
| 892 | Categories}.) | ||
| 893 | @end table | ||
| 894 | |||
| 895 | @quotation Note | ||
| 896 | Todo commands that require user confirmation, such as @kbd{k}, use a | ||
| 897 | modified form of @code{y-or-n-p}, which by default only accepts @kbd{y} | ||
| 898 | or @kbd{Y}, but not @key{SPC}, as an affirmative answer. This is to | ||
| 899 | diminish the risk of unintentionally executing the command, which is | ||
| 900 | especially important with commands that do deletion, since there is no | ||
| 901 | Todo command to undo a deletion. If you want to be able to use SPC for | ||
| 902 | confirmation, 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 | |||
| 908 | When the activity or thing that a todo item is about has been done, it | ||
| 909 | is natural to eliminate the item from the todo list. But instead of | ||
| 910 | deleting it permanently, you may prefer to keep a record of your | ||
| 911 | accomplishments by marking the item as done. In Todo mode, this removes | ||
| 912 | the done item from the todo list, so as not to clutter it up, and stores | ||
| 913 | it elsewhere. Such stored items form a record or diary of things done. | ||
| 914 | The Todo package provides two such stores: the ``done items'' section of | ||
| 915 | a Todo category, described here, and done item archives (@pxref{Todo | ||
| 916 | Archive Mode}). | ||
| 917 | |||
| 918 | @table @kbd | ||
| 919 | |||
| 920 | @item d | ||
| 921 | This command (@code{todo-item-done}) removes the todo item at point from | ||
| 922 | the todo list, appends to the original header a header consisting of | ||
| 923 | @code{todo-done-string} (by default ``DONE '') and the current date, and | ||
| 924 | if @code{todo-always-add-time-string} is enabled, also the current time, | ||
| 925 | and adds the resulting done item to the top of the done items section of | ||
| 926 | the category. Invoked with a prefix argument, it also prompts you to | ||
| 927 | enter a comment, which is appended to the end of the done item, prefixed | ||
| 928 | with @code{todo-comment-string} (by default ``COMMENT: ''). | ||
| 929 | @end table | ||
| 930 | |||
| 931 | A category's done items section is located below the last todo (i.e., | ||
| 932 | not done) item in the category. By default this section is hidden from | ||
| 933 | view. There are two commands for viewing and hiding done items; since | ||
| 934 | these are toggle commands, for convenience they also have a single key | ||
| 935 | binding: | ||
| 936 | |||
| 937 | @table @kbd | ||
| 938 | |||
| 939 | @item C v | ||
| 940 | @itemx v | ||
| 941 | Make the done items section of the current category visible if it is | ||
| 942 | hidden, or hide it if it is visible | ||
| 943 | (@code{todo-toggle-view-done-items}). If you always want to see the | ||
| 944 | done 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 | ||
| 946 | hide (and unhide) it. | ||
| 947 | |||
| 948 | @item F V | ||
| 949 | @itemx V | ||
| 950 | Toggle the standard category display in the current todo file, i.e., | ||
| 951 | display only the done items section of each category in the file, or if | ||
| 952 | this is visible, hide it again and display only the todo items section | ||
| 953 | (@code{todo-toggle-view-done-only}). | ||
| 954 | @end table | ||
| 955 | |||
| 956 | Three editing commands for done items are available: | ||
| 957 | |||
| 958 | @table @kbd | ||
| 959 | |||
| 960 | @item e c | ||
| 961 | If you type this command (@code{todo-edit-done-item-comment}) when point is | ||
| 962 | on a done item that has a comment, you can edit the text of the | ||
| 963 | comment. If you invoke it with a prefix argument (@kbd{C-u e c}), the | ||
| 964 | comment is deleted on confirmation. If the done item does not have a | ||
| 965 | comment, this command allows you to add one. | ||
| 966 | |||
| 967 | @item m | ||
| 968 | Move the done item at point to the top of the done items section of | ||
| 969 | another category (@code{todo-move-item}). This is useful in case, after | ||
| 970 | having relocated an item to its category's done items section, you | ||
| 971 | create a category that is better suited to the content of the done item | ||
| 972 | than its current category, so you can recategorize the done item. | ||
| 973 | |||
| 974 | @item u | ||
| 975 | If 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 | ||
| 977 | the priority you choose for it (@code{todo-item-undone}). If the done | ||
| 978 | item has a comment, you are asked whether to delete it from the restored | ||
| 979 | item. | ||
| 980 | @end table | ||
| 981 | |||
| 982 | @node Todo Archives, Marked Items, Editing, Top | ||
| 983 | @chapter Todo Archives | ||
| 984 | |||
| 985 | When the done items section of a category itself starts to become | ||
| 986 | cluttered, or if you just want to store some accomplished todo items in | ||
| 987 | a separate file, you can move them to a Todo archive. This is a file | ||
| 988 | with exactly the same structure as a todo file, i.e., divided into | ||
| 989 | categories, but differs in that the categories contain only done items. | ||
| 990 | Todo archives reside, like todo files, in @code{todo-directory} but have | ||
| 991 | the 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 | |||
| 1001 | Todo mode provides the following command for archiving items: | ||
| 1002 | |||
| 1003 | @table @kbd | ||
| 1004 | |||
| 1005 | @item A d | ||
| 1006 | This command (@code{todo-archive-done-item}) archives the done item at point. | ||
| 1007 | Invoked with a prefix argument, it archives all done items in the | ||
| 1008 | current todo category. If an archive for the current todo file | ||
| 1009 | already exists and contains a category with the same name as the | ||
| 1010 | current todo category, then this command moves the done item to the | ||
| 1011 | top of the corresponding archive category. If the archive exists but | ||
| 1012 | it does not have a corresponding category, this command creates the | ||
| 1013 | category in the archive and moves the done item to it. If no archive | ||
| 1014 | for the todo file exists, the command creates both the archive file, | ||
| 1015 | using the same base name as that of the todo file, as well as the | ||
| 1016 | category, and moves the done item to it. | ||
| 1017 | @end table | ||
| 1018 | |||
| 1019 | Typing @kbd{A d} is also the only way within the Todo mode package to | ||
| 1020 | create an archive file and its categories. Consequently, as a rule each | ||
| 1021 | archive file corresponds to exactly one todo file and has the same base | ||
| 1022 | name as this file, and each category in an archive file corresponds to | ||
| 1023 | and has the same name as a category in the corresponding todo file. | ||
| 1024 | Exceptions can only arise if you delete a todo file but not the | ||
| 1025 | corresponding archive, or if you delete a category in a todo file that | ||
| 1026 | has a corresponding category in an archive. | ||
| 1027 | |||
| 1028 | You might be inclined to do the latter if you have archived all the | ||
| 1029 | items from a given todo category and you don't plan to add new items to | ||
| 1030 | it. In particular, if you have numerous such empty categories in a todo | ||
| 1031 | file, this can make sequential navigation in the file annoying. You can | ||
| 1032 | avoid this annoyance by deleting these categories, but only at the cost | ||
| 1033 | of putting the todo file out of synch with the archive file. | ||
| 1034 | |||
| 1035 | You may find it preferable not to delete empty todo categories but to | ||
| 1036 | enable the option @code{todo-skip-archived-categories}. When this is | ||
| 1037 | non-nil, such empty todo categories are skipped over by the sequential | ||
| 1038 | category navigation commands @kbd{f} and @kbd{b}, so they don't distract you | ||
| 1039 | while navigating and you maintain the structural correspondence between | ||
| 1040 | todo and archive files (you can also still jump to empty todo categories | ||
| 1041 | with @kbd{j}). | ||
| 1042 | |||
| 1043 | If you rename a todo category that has a corresponding category in an | ||
| 1044 | archive, the archive category is also automatically identically renamed. | ||
| 1045 | Likewise, if you move such a todo category to another file; in this | ||
| 1046 | case, if there is no archive file corresponding to the todo file the | ||
| 1047 | category is moved to, then the archive is automatically created and the | ||
| 1048 | archived category is moved to it. | ||
| 1049 | |||
| 1050 | There are two commands in Todo mode for visiting archive files: | ||
| 1051 | |||
| 1052 | @table @kbd | ||
| 1053 | |||
| 1054 | @item A f | ||
| 1055 | Switch to a buffer displaying the archived category corresponding to the | ||
| 1056 | current todo category (@code{todo-find-archive}). If the todo category | ||
| 1057 | has no archived items, the command asks if you want to visit the archive | ||
| 1058 | anyway. If there is no archive for this todo file, it asks if you want | ||
| 1059 | to visit another archive, which you can select via minibuffer | ||
| 1060 | completion. | ||
| 1061 | |||
| 1062 | @item A c | ||
| 1063 | Choose an archive to visit, whether or not the current todo file has an | ||
| 1064 | archive (@code{todo-choose-archive}). | ||
| 1065 | @end table | ||
| 1066 | |||
| 1067 | As with todo files, you can also visit a Todo archive by invoking a | ||
| 1068 | standard Emacs file-visiting command; this displays the first (on the | ||
| 1069 | initial 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 | |||
| 1074 | When you visit a Todo archive, the buffer is in Todo Archive mode. It | ||
| 1075 | displays categories just as in Todo mode, except that they only contain | ||
| 1076 | done items. It provides the same sequential navigation commands as | ||
| 1077 | Todo mode: @kbd{f} and @kbd{b} navigate between the categories of the current | ||
| 1078 | archive, and @kbd{n} and @kbd{p} navigate between the done items of the current | ||
| 1079 | archive category. | ||
| 1080 | |||
| 1081 | The commands @kbd{t} and @kbd{j} are also available in Todo Archive | ||
| 1082 | mode, and they work the same as in Todo mode, which means they can only | ||
| 1083 | be used to return to Todo mode: @kbd{t} prompt for and switch to a todo | ||
| 1084 | file, and with @kbd{j} you can only jump to a todo category. These | ||
| 1085 | commands exclude archives because an archive file has the same base name | ||
| 1086 | as the corresponding todo file, and category name completion uses only | ||
| 1087 | the base names, so the commands cannot know which type of file you want | ||
| 1088 | to visit. For this reason, there is a special command in Todo Archive | ||
| 1089 | mode for jumping to another archive category or visiting another archive | ||
| 1090 | file: | ||
| 1091 | |||
| 1092 | @table @kbd | ||
| 1093 | |||
| 1094 | @item a | ||
| 1095 | This command (@code{todo-jump-to-archive-category}) prompts for a category in the | ||
| 1096 | current archive and jumps to it. Called with a prefix argument, it | ||
| 1097 | prompts for another archive, then for a category in it and jumps to | ||
| 1098 | that category. | ||
| 1099 | @end table | ||
| 1100 | |||
| 1101 | None of the Todo mode editing commands are available in Todo Archive | ||
| 1102 | mode, since archives are meant to be static records of accomplished todo | ||
| 1103 | items. Should you, however, archive an item by mistake or simply change | ||
| 1104 | your mind about the archival status of an item, you can ``unarchive'' it: | ||
| 1105 | |||
| 1106 | @table @kbd | ||
| 1107 | |||
| 1108 | @item u | ||
| 1109 | Restore the done item at point to the top of the done items section of | ||
| 1110 | the corresponding category in the corresponding todo file, i.e., an | ||
| 1111 | unarchived item remains a done item (@code{todo-unarchive-items}). When | ||
| 1112 | the last item in an archive category has been unarchived, the category | ||
| 1113 | is automatically deleted from the archive. If this was the only | ||
| 1114 | category in the archive, the archive file is also automatically deleted. | ||
| 1115 | @end table | ||
| 1116 | |||
| 1117 | Since it is natural to visit an archive from the corresponding todo | ||
| 1118 | file, it would be convenient to easily return to the todo file when you | ||
| 1119 | have finished browsing the archive. If you type `q' to quit Todo | ||
| 1120 | Archive mode, this switches to the corresponding todo file and shows the | ||
| 1121 | todo category corresponding to the archive category you were just | ||
| 1122 | visiting. | ||
| 1123 | |||
| 1124 | The command @kbd{F k} (@pxref{File Editing}) is also available in Todo | ||
| 1125 | Archive mode. It deletes the current archive file and prompts you | ||
| 1126 | whether to delete the corresponding todo file. | ||
| 1127 | |||
| 1128 | @node Marked Items, Todo Categories Mode, Todo Archives, Top | ||
| 1129 | @chapter Marked Items | ||
| 1130 | |||
| 1131 | For many item editing commands it can make sense and be convenient to | ||
| 1132 | apply them simultaneously to more than one item in the current category. | ||
| 1133 | Todo facilitates this by means of marked items. | ||
| 1134 | |||
| 1135 | @table @kbd | ||
| 1136 | |||
| 1137 | @item * | ||
| 1138 | Mark the item at point if it is unmarked, and remove the mark it is | ||
| 1139 | already marked (@code{todo-toggle-mark-item}). The mark is a string | ||
| 1140 | specified by the option @code{todo-item-mark} (by default @samp{*}) | ||
| 1141 | appended in front of the item header (more precisely, in front of the | ||
| 1142 | item's priority number or prefix; see @ref{Todo Display Features}, for | ||
| 1143 | details of the latter). After marking the current item, the command | ||
| 1144 | advances point to the next item. It also accepts a numeric prefix | ||
| 1145 | argument, which allows toggling the mark of multiple consecutive items. | ||
| 1146 | |||
| 1147 | @item C * | ||
| 1148 | Mark all todo items in the current category. | ||
| 1149 | |||
| 1150 | @item C u | ||
| 1151 | Unmark all todo item in the current category. | ||
| 1152 | @end table | ||
| 1153 | |||
| 1154 | You can also use the last two commands to mark or unmark all done items in | ||
| 1155 | the category, but only when only the done items section is being | ||
| 1156 | displayed, i.e., after invoking @kbd{C V} or @kbd{V}. | ||
| 1157 | |||
| 1158 | The following commands operate on marked items: @kbd{k} (deleting), @kbd{m} | ||
| 1159 | (moving to another category), @kbd{d} (moving to the done items section; | ||
| 1160 | note 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 | ||
| 1162 | Todo Archive mode for unarchiving an item), as well as the commands for | ||
| 1163 | editing the item header (those beginning with the prefix @kbd{e d} as well | ||
| 1164 | as @kbd{e t}, @kbd{e y y} and @kbd{e y k}). The item insertion, textual editing and | ||
| 1165 | priority changing commands do not operate on marked items. | ||
| 1166 | |||
| 1167 | If you use @kbd{m}, @kbd{d}, @kbd{A d} or @kbd{u} on multiple noncontiguous marked | ||
| 1168 | items, the relocated items retain their relative order but are now | ||
| 1169 | listed consecutively en bloc. | ||
| 1170 | |||
| 1171 | You can mark both todo and done items, but note that only @kbd{m} can apply | ||
| 1172 | to both; other commands only affect either marked todo or marked done | ||
| 1173 | items, so if both types of items are marked, invoking these commands | ||
| 1174 | has 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 | |||
| 1179 | It can be helpful to have a compact overview of the categories in a todo | ||
| 1180 | file and the types of items it contains; Todo provides a tabular view | ||
| 1181 | of this information. | ||
| 1182 | |||
| 1183 | @table @kbd | ||
| 1184 | |||
| 1185 | @item F c | ||
| 1186 | Typing this command (@code{todo-show-categories-table}) in Todo mode or Todo | ||
| 1187 | Archive mode switches to a buffer displaying a table that gives an | ||
| 1188 | overview of the categories in the current todo or archive file. This | ||
| 1189 | buffer is in Todo Categories mode. | ||
| 1190 | @end table | ||
| 1191 | |||
| 1192 | The table consists of a column containing the names of the categories in | ||
| 1193 | the file, followed by columns containing counts of certain types of | ||
| 1194 | items in each category. With todo files there are four count types: all | ||
| 1195 | todo (i.e., not done) items, diary items (i.e., those todo items lacking | ||
| 1196 | the @code{todo-nondiary-marker}, which hence can appear in the Fancy Diary | ||
| 1197 | display), done (but not archived) items, and archived items. With | ||
| 1198 | archive files all items are done, so the table only has a column for | ||
| 1199 | this count. The final row of the table gives total item counts across | ||
| 1200 | all categories in the file. | ||
| 1201 | |||
| 1202 | Aside from explicitly invoking @kbd{F c} to display the table of | ||
| 1203 | categories, you can also arrange to have it displayed on the first | ||
| 1204 | invocation 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 | ||
| 1206 | to 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 | |||
| 1217 | Above each column of the table is a labeled button you can press by | ||
| 1218 | clicking with the mouse or by typing @key{RET} on it. Pressing an item | ||
| 1219 | count button sorts the table alternately in ascending or descending | ||
| 1220 | order according to the type of count. Pressing the category button | ||
| 1221 | alternates between the initial numerical order of the categories and | ||
| 1222 | alphabetical order. In numerical order the column of category names is | ||
| 1223 | preceded by a column containing the corresponding category numbers; this | ||
| 1224 | column is not displayed in the alphabetical listing. Instead of | ||
| 1225 | pressing the buttons, you can also sort the table by typing the | ||
| 1226 | following keys: | ||
| 1227 | |||
| 1228 | @itemize | ||
| 1229 | |||
| 1230 | @item @kbd{c} | ||
| 1231 | to sort by category numerically or alphabetically; | ||
| 1232 | @item @kbd{t} | ||
| 1233 | to sort by todo item counts; | ||
| 1234 | @item @kbd{y} | ||
| 1235 | to sort by diary item counts; | ||
| 1236 | @item @kbd{d} | ||
| 1237 | to sort by done item counts; | ||
| 1238 | @item @kbd{a} | ||
| 1239 | to sort by archived item counts. | ||
| 1240 | @end itemize | ||
| 1241 | |||
| 1242 | Each row of the table is also buttonized; pressing one of these exits | ||
| 1243 | the buffer (killing it), returns to the buffer of the file from which | ||
| 1244 | you had invoked `F c', and displays the category that was named in the | ||
| 1245 | row button you pressed (i.e., pressing this button jumps to that | ||
| 1246 | category). However, if the category named in the row is in a todo file | ||
| 1247 | and 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 | ||
| 1249 | the archive category instead of the empty todo category. You can | ||
| 1250 | recognize such categories by their items counts in the table---all | ||
| 1251 | columns but the archived one have counts of zero---and in addition, | ||
| 1252 | their lines in the table are also distinguished from the others by a | ||
| 1253 | different face. | ||
| 1254 | |||
| 1255 | You can navigate around the table: | ||
| 1256 | |||
| 1257 | @table @kbd | ||
| 1258 | |||
| 1259 | @item n | ||
| 1260 | @itemx @key{TAB} | ||
| 1261 | Advance point to the next button. | ||
| 1262 | |||
| 1263 | @item p | ||
| 1264 | @itemx S-@key{TAB} | ||
| 1265 | Put point on the previous button. | ||
| 1266 | @end table | ||
| 1267 | |||
| 1268 | These commands are cyclic, e.g. when point is on the last button, | ||
| 1269 | pressing @kbd{n} moves it to the first button. | ||
| 1270 | |||
| 1271 | Typing @kbd{q} exits Todo Categories mode, killing the buffer and returning | ||
| 1272 | to the current category in the Todo mode or Todo Archive mode buffer | ||
| 1273 | from which you had invoked @kbd{F c}. | ||
| 1274 | |||
| 1275 | @node Reordering Categories, , Table of Item Counts, Todo Categories Mode | ||
| 1276 | @section Reordering Categories | ||
| 1277 | |||
| 1278 | Todo Categories mode provide commands with which you can change the | ||
| 1279 | numbering of the categories in the current file. This renumbering has | ||
| 1280 | the effect of reordering the categories for sequential navigation by | ||
| 1281 | @kbd{f} and @kbd{b} in Todo mode and Todo Archive mode. These commands | ||
| 1282 | are only operative when the table displays the categories in their | ||
| 1283 | numerical order. They work just like reprioritizing items in Todo mode, | ||
| 1284 | hence have the same key bindings: | ||
| 1285 | |||
| 1286 | @table @kbd | ||
| 1287 | |||
| 1288 | @item r | ||
| 1289 | Raise the current line of the table (the one the cursor is on), | ||
| 1290 | decreasing the category's number by one (@code{todo-raise-category}). | ||
| 1291 | This command exchanges lines, and hence the numbers, of the category at | ||
| 1292 | point and the one above it before invoking the command. | ||
| 1293 | |||
| 1294 | @item l | ||
| 1295 | Lower the current line of the table, increasing the category's number by | ||
| 1296 | one (@code{todo-lower-category}). This command exchanges lines, and | ||
| 1297 | hence the numbers, of the category at point and the one below it before | ||
| 1298 | invoking the command. | ||
| 1299 | |||
| 1300 | @item # | ||
| 1301 | Prompt for a number between 1 and the number of categories in the file | ||
| 1302 | and reorder the table accordingly (@code{todo-set-category-number}). If | ||
| 1303 | called with a numeric prefix argument within the allowed range, reorder | ||
| 1304 | the table without prompting. | ||
| 1305 | @end table | ||
| 1306 | |||
| 1307 | The reordering done by these commands remains in effect when you return | ||
| 1308 | to Todo mode or Todo Archive mode and, as long as you save the todo | ||
| 1309 | or archive file after reordering, in subsequent sessions as well. | ||
| 1310 | |||
| 1311 | @quotation @strong{Caution} | ||
| 1312 | It is important to be aware that renumbering the categories does not | ||
| 1313 | change the textual order of the categories in the file. This is | ||
| 1314 | significant if you should invoke @kbd{F e} to edit the entire file | ||
| 1315 | manually and in so doing alter the number of items in a category: this | ||
| 1316 | will make the item count shown in the table of categories of this file | ||
| 1317 | inconsistent with the actual number. You can repair this inconsistency | ||
| 1318 | by invoking the command @code{todo-repair-categories-sexp} (which lacks | ||
| 1319 | a key binding, since it is meant to be a rarely needed rescue | ||
| 1320 | operation). But this will revert any renumbering of the categories you | ||
| 1321 | have made, so you will have to renumber them again. This is the reason | ||
| 1322 | why 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 | |||
| 1328 | It can be useful to be able to locate and examine all todo items that | ||
| 1329 | fit certain criteria, regardless of which category they belong to. One | ||
| 1330 | way to do this in Todo mode is by sequentially searching in the file: | ||
| 1331 | |||
| 1332 | @table @kbd | ||
| 1333 | |||
| 1334 | @item S | ||
| 1335 | This command (@code{todo-search}; the key is capital @kbd{S}) prompts for a | ||
| 1336 | regular expression, searches from the beginning of the current todo file | ||
| 1337 | and displays the category containing the first match it finds, with the | ||
| 1338 | match highlighted. If there are further matches, a message saying how | ||
| 1339 | many are left is displayed and you are asked if you want to go to the | ||
| 1340 | next match. When you reach the last match, or if you decide not to go | ||
| 1341 | to further matches, you are asked whether the match highlighting should | ||
| 1342 | be removed. | ||
| 1343 | |||
| 1344 | @item X | ||
| 1345 | This command (@code{todo-clear-matches}) removes any highlighting added by @kbd{S}. | ||
| 1346 | This is so you can leave the matches highlighted at the end of the | ||
| 1347 | search and remove the highlighting later. | ||
| 1348 | @end table | ||
| 1349 | |||
| 1350 | These 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 | |||
| 1355 | A more powerful alternative to sequential searching is item filtering, | ||
| 1356 | by which items from different categories that match specified criteria | ||
| 1357 | are gathered and displayed in a new buffer as a kind of virtual | ||
| 1358 | category 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 | |||
| 1369 | Todo mode provides three ways to filter items: a general filter for | ||
| 1370 | items matching a user-entered regular expression, as with the search | ||
| 1371 | command; and two specific filters, one for diary-displayable items | ||
| 1372 | (i.e., those lacking @code{todo-nondiary-marker}) and one for top | ||
| 1373 | priority items (more on the latter below). The commands for each | ||
| 1374 | filter come in pairs, one for filtering just the current todo file and | ||
| 1375 | one for filtering a user-specified list of todo files. Thus, there | ||
| 1376 | are six item filtering commands:@footnote{The use of @kbd{F} in the key | ||
| 1377 | sequences of these commands naturally recalls ``filter'', but is also | ||
| 1378 | consistent with the Todo mode mnemonic key binding convention, since the | ||
| 1379 | commands 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 | |||
| 1397 | There are two ways to specify which files the multifile filtering | ||
| 1398 | commands apply to. If there are files you want to filter every time you | ||
| 1399 | use these commands, customize the option @code{todo-filter-files}. If you | ||
| 1400 | leave this option empty (the default), invoking a multifile filtering | ||
| 1401 | command 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 | ||
| 1403 | this invocation. | ||
| 1404 | |||
| 1405 | Diary and top priority items are by definition non-done todo items, but | ||
| 1406 | when filtering by regular expression, you can extend the scope of the | ||
| 1407 | command to done items by enabling the option @code{todo-filter-done-items}. | ||
| 1408 | Then @kbd{F x x} and @kbd{F x m} will gather both matching todo and matching | ||
| 1409 | done items (including done items from any archive files corresponding to | ||
| 1410 | the selected todo files) into the virtual category of filtered items. | ||
| 1411 | |||
| 1412 | There are several ways to specify how many items in each category count | ||
| 1413 | as top priorities and hence get filtered by @kbd{F t t} and @kbd{F t m}: | ||
| 1414 | |||
| 1415 | @itemize @bullet | ||
| 1416 | |||
| 1417 | @item | ||
| 1418 | The option @code{todo-top-priorities} specifies a single default number | ||
| 1419 | for all categories and all todo files; its default value is 1, which | ||
| 1420 | means just the highest priority item in every category is filtered, | ||
| 1421 | unless otherwise specified. | ||
| 1422 | @item | ||
| 1423 | The option @code{todo-top-priorities-overrides} lists file-wide overrides | ||
| 1424 | of @code{todo-top-priorities} as well as category-specific overrides. It | ||
| 1425 | is empty by default. However, using the Custom facility to set this | ||
| 1426 | option would be tedious and error-prone, so instead you should use the | ||
| 1427 | commands @kbd{F t s} and @kbd{C t s}. The former sets (i.e., overrides) the | ||
| 1428 | default number of top priorities for all categories in the current | ||
| 1429 | todo file, and the latter sets the number of top priorities for the | ||
| 1430 | current category. To exclude a category or file from filtering by @kbd{F t t} | ||
| 1431 | and @kbd{F t m}, set the number to @samp{0}. | ||
| 1432 | @item | ||
| 1433 | You can invoke `F t t' and `F t m' with a numeric prefix argument, | ||
| 1434 | which specifies the number of top priorities in each category just for | ||
| 1435 | this 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 | |||
| 1442 | The output of the item filtering commands looks similar to a regular | ||
| 1443 | Todo category, but it is not contained in any todo file and does not | ||
| 1444 | have 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 | ||
| 1446 | section; either there are no done items in the list (when the filtered | ||
| 1447 | items are diary or top priority items), or these are displayed in the | ||
| 1448 | same list as todo items (if you filtered by regular expression and | ||
| 1449 | allowed done items). A further difference is that the items have an | ||
| 1450 | additional header, between the item's date/time header and its text, | ||
| 1451 | specifying which category (and if you invoked a multifile command, also | ||
| 1452 | which file) the item comes from, and if you filtered by regular | ||
| 1453 | expression, also whether the item comes from a Todo archive. | ||
| 1454 | |||
| 1455 | The sequential item navigation commands @kbd{n} and @kbd{p} work the same in | ||
| 1456 | Todo Filtered Items mode as in Todo mode, as do the file and category | ||
| 1457 | jumping commands @kbd{t} and @kbd{j}; however, the sequential category | ||
| 1458 | navigation commands are unavailable, since virtual categories of | ||
| 1459 | filtered items are not ordered with respect to ``real'' categories. In | ||
| 1460 | addition, Todo Filtered Items mode provides a special navigation | ||
| 1461 | command: | ||
| 1462 | |||
| 1463 | @table @kbd | ||
| 1464 | |||
| 1465 | @item g | ||
| 1466 | @itemx @key{RET} | ||
| 1467 | If you type this command (@code{todo-go-to-source-item}) with point on a | ||
| 1468 | filtered item, the buffer switches to the item's source file (in Todo | ||
| 1469 | mode or Todo Archive mode, as the case may be) and displays its | ||
| 1470 | category, with point on the item. | ||
| 1471 | @end table | ||
| 1472 | |||
| 1473 | Filtered items cannot be textually edited, moved to another category, | ||
| 1474 | marked done or archived like items in a real todo category, since these | ||
| 1475 | would then be out of synch with each other. But there is one type of | ||
| 1476 | editing command that does work in Todo Filtered Items mode: changing an | ||
| 1477 | item's priority: | ||
| 1478 | |||
| 1479 | @table @kbd | ||
| 1480 | |||
| 1481 | @item r | ||
| 1482 | @itemx l | ||
| 1483 | @itemx # | ||
| 1484 | These commands raise, lower, or set, respectively, the current item's | ||
| 1485 | priority in the virtual category. | ||
| 1486 | @end table | ||
| 1487 | |||
| 1488 | @noindent | ||
| 1489 | Using these commands, you can create a cross-category (and even | ||
| 1490 | cross-file) prioritized list of filtered items. However, there is a | ||
| 1491 | restriction on these commands in Todo Filtered Items mode: you cannot | ||
| 1492 | change the relative priorities of items from the same real category, | ||
| 1493 | since that would make the filtered list inconsistent with the source | ||
| 1494 | todo list. | ||
| 1495 | |||
| 1496 | @node Files of Filtered Items, , Todo Filtered Items Mode Commands, Todo Filtered Items Mode | ||
| 1497 | @section Files of Filtered Items | ||
| 1498 | |||
| 1499 | Typing @kbd{s} in Todo Filtered Items mode saves the buffer of filtered | ||
| 1500 | items to a file in @code{todo-directory}. Files of items filtered by | ||
| 1501 | regular expression have the extension @samp{.todr}, those with filtered | ||
| 1502 | diary items have the extension @samp{.tody} and those with filtered top | ||
| 1503 | priorities have the extension @samp{.todt}. The extensions are added | ||
| 1504 | automatically the first time you save the buffer to a file. | ||
| 1505 | |||
| 1506 | With filtered top priority or diary items, the file is automatically | ||
| 1507 | named on first saving it, using as the base name either the same base | ||
| 1508 | name as the single todo file it was generated from, or combining the | ||
| 1509 | base names of the todo files used in multifile filtering commands. | ||
| 1510 | With items filtered by regular expression, it can be useful to save | ||
| 1511 | separate lists generated from the same file(s) using different regular | ||
| 1512 | expressions, so when saving such a list, you are prompted for a short | ||
| 1513 | identifying string to add to the file name. | ||
| 1514 | |||
| 1515 | When you invoke one of the item filtering commands without a prefix | ||
| 1516 | argument and a corresponding file already exists, the command visits | ||
| 1517 | this file (if, for the current file or chosen files, there are multiple | ||
| 1518 | files of items filtered by regular expression, you are prompted to | ||
| 1519 | choose one). To force generation of a new filtered list, invoke the | ||
| 1520 | command with a prefix argument (in the case of top priority items, | ||
| 1521 | either numeric as described above, or the raw prefix argument @kbd{C-u} to | ||
| 1522 | use the values of @code{todo-top-priorities-overrides} or | ||
| 1523 | @code{todo-top-priorities}). | ||
| 1524 | |||
| 1525 | Aside from explicitly invoking an item filtering command to display a | ||
| 1526 | saved list of items filtered by a given method from given todo files, | ||
| 1527 | there are two other ways to visit a saved file of filtered items: | ||
| 1528 | |||
| 1529 | @table @kbd | ||
| 1530 | @item F f | ||
| 1531 | Visit a saved file of filtered items, which you choose via minibuffer | ||
| 1532 | completion (@code{todo-find-filtered-items-file}). | ||
| 1533 | @end table | ||
| 1534 | |||
| 1535 | @itemize @bullet | ||
| 1536 | @item | ||
| 1537 | As with tables of categories, by customizing @code{todo-show-first} you | ||
| 1538 | can have the first invocation of @code{todo-show} for a given todo file | ||
| 1539 | display the corresponding saved file of filtered items. If there is | ||
| 1540 | no saved filtered items list for the file, @code{todo-show} simply | ||
| 1541 | defaults to visiting the file and displaying its first category, as | ||
| 1542 | usual. | ||
| 1543 | @end itemize | ||
| 1544 | |||
| 1545 | The command @kbd{F k} (@pxref{File Editing}) is also available in Todo | ||
| 1546 | Filtered 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 | |||
| 1551 | You 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 | |||
| 1562 | Each of the Todo modes uses faces to distinguish various aspects of the | ||
| 1563 | display, both structural and informational. For example, the faces for | ||
| 1564 | the date and time strings of todo item headers by default inherit the | ||
| 1565 | attributes of the corresponding faces used by the Emacs diary; but when | ||
| 1566 | the 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, | ||
| 1568 | they are displayed in a different face. In this way, you can readily | ||
| 1569 | recognize diary items that have ``expired'' and act accordingly (e.g., | ||
| 1570 | by tagging them as done or by updating the deadlines). | ||
| 1571 | |||
| 1572 | Another example of an informational face is the face used to distinguish | ||
| 1573 | top priority items. A third case is the face used in Todo Categories | ||
| 1574 | mode to mark rows of the table containing categories with only archived | ||
| 1575 | items. | ||
| 1576 | |||
| 1577 | The @code{todo-faces} customization group contains a complete list of | ||
| 1578 | Todo 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 | |||
| 1584 | In the default display of (real or virtual) categories in Todo mode, | ||
| 1585 | Todo Archive mode and Todo Filtered Item mode the items are visually | ||
| 1586 | numbered in ascending order, starting with @samp{1} on the top item, | ||
| 1587 | displayed to the left of its header (date/time string). With todo items | ||
| 1588 | the numbers indicate each item's priority in the list, so when you | ||
| 1589 | reprioritize an item with @kbd{#} or move it with @kbd{m}, these numbers make | ||
| 1590 | it easier to choose the item's new priority. The numbering also lets | ||
| 1591 | you to see at a glance how many items there are in the list. When an | ||
| 1592 | item is inserted, deleted, or moved, the numbering is automatically | ||
| 1593 | updated. In Todo mode, the todo and done items sections in each | ||
| 1594 | category are separately numbered. | ||
| 1595 | |||
| 1596 | If 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 | ||
| 1598 | simply with its header. But you can also replace the numbering with a | ||
| 1599 | visually distinctive string of your choice by customizing the option | ||
| 1600 | @code{todo-prefix} (the empty string by default). Another alternative is to | ||
| 1601 | temporarily hide the item numbering: | ||
| 1602 | |||
| 1603 | @table @kbd | ||
| 1604 | |||
| 1605 | @item F N | ||
| 1606 | @itemx N | ||
| 1607 | Toggle between displaying item numbering and displaying the | ||
| 1608 | @code{todo-prefix} string in the current Todo file (todo, archive, or | ||
| 1609 | saved virtual category of filtered items. This command also works in | ||
| 1610 | buffers of filtered items that have not yet been written to a file.) | ||
| 1611 | @end table | ||
| 1612 | |||
| 1613 | In 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 | ||
| 1616 | different face from the prefix of the other items, so you see at a | ||
| 1617 | glance 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 | |||
| 1622 | There are two additional toggle commands that affect display in the | ||
| 1623 | current file: | ||
| 1624 | |||
| 1625 | @table @kbd | ||
| 1626 | |||
| 1627 | @item F h | ||
| 1628 | @itemx h | ||
| 1629 | Hide the item headers if visible, or show them if they are hidden. | ||
| 1630 | With done items, only the done header (i.e. the done tag and date-time | ||
| 1631 | string inserted when the item was marked done) is hidden, the original | ||
| 1632 | date-time string is not. With filtered items, the category (or | ||
| 1633 | category-file) tag is not hidden. | ||
| 1634 | |||
| 1635 | @item F H | ||
| 1636 | @itemx H | ||
| 1637 | Highlight the current item if unhighlighted, or remove its highlighting. | ||
| 1638 | When item highlighting is enabled, it follows navigation by @kbd{n} or | ||
| 1639 | @kbd{p}. If you want to have current item highlighting by default, | ||
| 1640 | enable the option @code{todo-highlight-item}. @kbd{F H} or @kbd{H} will | ||
| 1641 | still toggle it. | ||
| 1642 | @end table | ||
| 1643 | |||
| 1644 | There are two options which affect the display of items whose content is | ||
| 1645 | longer 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 | ||
| 1651 | after the first in multiline todo items, which is necessary in order | ||
| 1652 | for todo diary items to be fully visible in the Fancy Diary display. | ||
| 1653 | The default indentation is 3 spaces. For a uniform appearance this | ||
| 1654 | option applies to all items, i.e., diary and nondiary todo items and | ||
| 1655 | also done items. | ||
| 1656 | |||
| 1657 | @item | ||
| 1658 | @code{todo-wrap-lines} allows you to choose, for the purposes of | ||
| 1659 | insertion and editing, between treating multiline todo items as | ||
| 1660 | containing multiple logical lines with hard line breaks or as multiple | ||
| 1661 | visual lines using Visual Line mode; the latter is the default. Since | ||
| 1662 | multiparagraph items also contain hard line breaks in Visual Line mode, | ||
| 1663 | for a uniform appearance this display shows indentation on wrapped lines | ||
| 1664 | by using a wrap-prefix of @code{todo-indent-to-here} spaces. | ||
| 1665 | @end itemize | ||
| 1666 | |||
| 1667 | The indentation inserted after a hard newline is actually a tab | ||
| 1668 | character, 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 | ||
| 1670 | latter, the next time you visit a Todo file, the indentation will | ||
| 1671 | reflect your change. | ||
| 1672 | |||
| 1673 | By default, the todo and done items sections of a todo category are | ||
| 1674 | visually separated by a line as wide as the window the buffer is | ||
| 1675 | displayed in. You can change the appearance and width of the separator | ||
| 1676 | by customizing @code{todo-done-separator-string}; you can also change the | ||
| 1677 | face of the separator string. | ||
| 1678 | |||
| 1679 | There are also several options for changing the appearance in Todo | ||
| 1680 | Categories mode and Todo Filtered Items mode, beyond those mentioned | ||
| 1681 | above 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 | |||
| 1687 | If you print a Todo buffer using one of the standard Emacs printing | ||
| 1688 | commands, it does not look exactly like what you see in the buffer. | ||
| 1689 | This is because some of the display features are non-printable | ||
| 1690 | (specifically, those using overlays, word-wrap and wrap-prefix). Todo | ||
| 1691 | mode provides two print commands that produce output which includes | ||
| 1692 | printable counterparts of such display features: | ||
| 1693 | |||
| 1694 | @table @kbd | ||
| 1695 | |||
| 1696 | @item P B | ||
| 1697 | Send the printable buffer output directly to your printer. | ||
| 1698 | |||
| 1699 | @item P F | ||
| 1700 | Prompt for a file name and write the printable output to that file. | ||
| 1701 | @end table | ||
| 1702 | |||
| 1703 | By default, Todo uses @code{ps-print-buffer-with-faces} to make the | ||
| 1704 | printable 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 | |||
| 1710 | Users of the original version of Todo mode will recognize from the | ||
| 1711 | description in this user manual that, although the new version shares | ||
| 1712 | with the original version the same basic user interface and handling of | ||
| 1713 | todo items, there are some incompatible differences between them, such | ||
| 1714 | as the done items sections (there are also other file format | ||
| 1715 | incompatibilities behind the scenes that are normally not visible to | ||
| 1716 | users). | ||
| 1717 | |||
| 1718 | The most significant incompatibility concerns the item prefix. In the | ||
| 1719 | earlier version of Todo mode the prefix was the initial part of the item | ||
| 1720 | string itself, so in order for the item to be displayable in the Emacs | ||
| 1721 | diary, the prefix had to be a date/time pattern recognizable by the | ||
| 1722 | diary (although the todo item also has its own date/time header). | ||
| 1723 | Moreover, since all items had the same prefix string in the original | ||
| 1724 | version, this means that either only all or no items could appear in the | ||
| 1725 | Fancy Diary display on any given date. This considerably restricts the | ||
| 1726 | practicality of including todo items in the diary. In contrast, the | ||
| 1727 | current version of Todo mode uses overlays for item priority numbering | ||
| 1728 | or prefixes, and item-specific diary-compatible date/time headers and | ||
| 1729 | special marks for todo items to be excluded from the diary, so you can | ||
| 1730 | determine for each item whether and when it appears in the Fancy Diary | ||
| 1731 | display. | ||
| 1732 | |||
| 1733 | Due to these incompatibilities, files created with the original version | ||
| 1734 | of Todo mode cannot be displayed or edited with the current version. | ||
| 1735 | However, this version provides a function that converts the two main | ||
| 1736 | types of files used by the original version into new-style valid todo | ||
| 1737 | and archive files, respectively, and saves them in | ||
| 1738 | @code{todo-directory}.@footnote{The original version of Todo mode also | ||
| 1739 | allowed saving a file of top priority items, but since you can readily | ||
| 1740 | create such a file with the new version, which is also more flexible, | ||
| 1741 | no conversion is provided for this file.} | ||
| 1742 | |||
| 1743 | This conversion function is automatically called the first time you | ||
| 1744 | invoke @code{todo-show} (i.e., before you have created a todo file with | ||
| 1745 | the new version), and if it finds the old-style files, it offers to | ||
| 1746 | convert them, making them the first new-style todo and archive files. | ||
| 1747 | If you choose not to convert the old-style files at this time, you can | ||
| 1748 | do 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 | ||
| 1750 | it often). (A delicate part of the conversion concerns the customizable | ||
| 1751 | format of item date/time headers in the old-style; see the documentation | ||
| 1752 | string 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 |
| 68 | As distributed with Emacs @value{EMACSVER}. | 68 | As 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 | ||
| 74 | Francis 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} |
| 72 | Queen Mary and Westfield College (University of London) | 77 | Queen Mary and Westfield College (University of London) |
| 73 | Mile End Road, London E1 4NS, UK | 78 | Mile End Road, London E1 4NS, UK |