aboutsummaryrefslogtreecommitdiffstats
path: root/man
diff options
context:
space:
mode:
authorMiles Bader2005-03-31 09:58:14 +0000
committerMiles Bader2005-03-31 09:58:14 +0000
commit773415d9340f12db3bd8654de5014deec57d49b7 (patch)
tree579ecf466891c80df147934b0db24cb89d0abe3d /man
parente9d5a4e18a8955cf60e78c54a511fd8e1259716f (diff)
parent7c315e1cff9019c8af55921fab6f571e68b09623 (diff)
downloademacs-773415d9340f12db3bd8654de5014deec57d49b7.tar.gz
emacs-773415d9340f12db3bd8654de5014deec57d49b7.zip
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-31
Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 206-222) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 45-52) - Update from CVS - Update from CVS: texi Makefile.in CVS keyw cruft - Update from CVS: ChangeLog tweaks
Diffstat (limited to 'man')
-rw-r--r--man/ChangeLog224
-rw-r--r--man/basic.texi63
-rw-r--r--man/building.texi26
-rw-r--r--man/calc.texi278
-rw-r--r--man/calendar.texi116
-rw-r--r--man/cl.texi20
-rw-r--r--man/commands.texi4
-rw-r--r--man/custom.texi21
-rw-r--r--man/dired-x.texi9
-rw-r--r--man/dired.texi34
-rw-r--r--man/display.texi11
-rw-r--r--man/emacs-mime.texi33
-rw-r--r--man/emacs-xtra.texi919
-rw-r--r--man/emacs.texi13
-rw-r--r--man/files.texi97
-rw-r--r--man/frames.texi16
-rw-r--r--man/gnus-faq.texi3521
-rw-r--r--man/gnus.texi4
-rw-r--r--man/help.texi43
-rw-r--r--man/idlwave.texi184
-rw-r--r--man/message.texi2
-rw-r--r--man/misc.texi15
-rw-r--r--man/mule.texi84
-rw-r--r--man/org.texi107
-rw-r--r--man/programs.texi247
-rw-r--r--man/reftex.texi35
-rw-r--r--man/text.texi166
-rw-r--r--man/xresources.texi296
28 files changed, 3851 insertions, 2737 deletions
diff --git a/man/ChangeLog b/man/ChangeLog
index bfe4eab2fa5..d808b9fe6d7 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,227 @@
12005-03-30 Glenn Morris <gmorris@ast.cam.ac.uk>
2
3 * programs.texi (Fortran Motion): Fix previous change.
4
52005-03-25 Katsumi Yamaoka <yamaoka@jpl.org>
6
7 * emacs-mime.texi (Display Customization): Markup fixes.
8 (rfc2047): Update.
9
102005-03-23 Reiner Steib <Reiner.Steib@gmx.de>
11
12 * gnus-faq.texi: Replaced with auto-generated version.
13
142005-03-29 Richard M. Stallman <rms@gnu.org>
15
16 * mule.texi (Single-Byte Character Support): Reinstall the C-x 8 info.
17
182005-03-29 Chong Yidong <cyd@stupidchicken.com>
19
20 * text.texi (Refill): Refer to Long Lines Mode.
21 (Longlines): New node.
22 (Auto Fill): Don't index "word wrap" here.
23 (Filling): Add Longlines to menu.
24
252005-03-29 Richard M. Stallman <rms@gnu.org>
26
27 * xresources.texi: Minor fixes.
28
29 * misc.texi (Emacs Server): Fix Texinfo usage.
30
31 * emacs.texi (Top): Don't use a real section heading for
32 "Detailed Node Listing". Fake it instead.
33
34 * basic.texi (Position Info): Minor cleanup.
35
36 * mule.texi (Input Methods): Minor cleanup.
37
382005-03-29 Glenn Morris <gmorris@ast.cam.ac.uk>
39
40 * programs.texi (ForIndent Vars): `fortran-if-indent' does other
41 constructs as well.
42 (Fortran Motion): Add fortran-end-of-block,
43 fortran-beginning-of-block.
44
452005-03-29 Kenichi Handa <handa@m17n.org>
46
47 * mule.texi (Input Methods): Refer to the command C-u C-x =.
48
49 * basic.texi (Position Info): Update the description about the
50 command C-u C-x =.
51
522005-03-28 Richard M. Stallman <rms@gnu.org>
53
54 * emacs.texi (Top): Use @section for the detailed node listing.
55
56 * calendar.texi: Minor fixes to previous change.
57
58 * programs.texi (Fortran): Small fixes to previous changes.
59
60 * emacs.texi (Top): Update list of subnodes of Dired.
61 Likewise for building.texi.
62
63 * files.texi (File Conveniences): Delete Auto Image File mode.
64
652005-03-28 Chong Yidong <cyd@stupidchicken.com>
66
67 * building.texi (Flymake): New node.
68
69 * custom.texi (Function Keys): Document kp- event types and
70 keypad-setup package.
71
72 * dired.texi (Wdired): New node.
73
74 * files.texi (File Conveniences): Reorder entries.
75 Explain how to turn on Auto-image-file mode.
76 Document Thumbs mode.
77
78 * mule.texi (Specify Coding): Document recode-region and
79 recode-file-name.
80
81 * programs.texi (Program Modes): Add Conf mode and DNS mode.
82
832005-03-27 Luc Teirlinck <teirllm@auburn.edu>
84
85 * commands.texi (Keys): M-o is now a prefix key.
86
872005-03-27 Glenn Morris <gmorris@ast.cam.ac.uk>
88
89 * programs.texi: Reformat and update copyright years.
90 (Fortran): Update section.
91
922005-03-26 Luc Teirlinck <teirllm@auburn.edu>
93
94 * files.texi: Several small changes in addition to:
95 (Visiting): Change xref for Dialog Boxes to ref.
96 (Version Headers): Replace references to obsolete var
97 `vc-header-alist' with `vc-BACKEND-header'.
98 (Customizing VC): Update value of `vc-handled-backends'.
99
1002005-03-26 Glenn Morris <gmorris@ast.cam.ac.uk>
101
102 * emacs-xtra.texi (Advanced Calendar/Diary Usage): New section;
103 move here from Emacs Lisp Reference Manual.
104 * calendar.texi (Calendar/Diary, Diary Commands)
105 (Special Diary Entries, Importing Diary): Change some xrefs to
106 point to emacs-xtra rather than elisp.
107
108 * emacs-xtra.texi (Calendar Customizing): Move
109 view-diary-entries-initially, view-calendar-holidays-initially,
110 mark-diary-entries-in-calendar, mark-holidays-in-calendar to main
111 Emacs Manual.
112 (Appt Customizing): Merge entire section into main Emacs Manual.
113 * calendar.texi (Holidays): Move view-calendar-holidays-initially,
114 mark-holidays-in-calendar here from emacs-xtra.
115 (Displaying the Diary): Move view-diary-entries-initially,
116 mark-diary-entries-in-calendar here from emacs-xtra.
117 (Appointments): Move appt-display-mode-line,
118 appt-display-duration, appt-disp-window-function,
119 appt-delete-window-function here from emacs-xtra.
120
121 * calendar.texi: Update and reformat copyright.
122 Change all @xrefs to the non-printing emacs-xtra to @inforefs.
123 (Calendar/Diary): Menu now only on Mouse-3, not C-Mouse-3.
124 (Diary): Refer to `diary-file' rather than ~/diary.
125 (Diary Commands): Rename node to "Displaying the Diary".
126 * emacs.texi (Top): Rename "Diary Commands" section.
127 * misc.texi (Hardcopy): Rename "Diary Commands" xref.
128
1292005-03-26 Eli Zaretskii <eliz@gnu.org>
130
131 * misc.texi (Emacs Server): Fix the command for setting
132 server-name. Add an xref to Invoking emacsclient.
133
134 * help.texi (Help Summary): Clarify when "C-h ." will do something
135 nontrivial.
136 (Apropos): Add cindex entry for apropos-sort-by-scores.
137
138 * display.texi (Text Display): Add index entries for how no-break
139 characters are displayed.
140
1412005-03-26 Stephan Stahl <stahl@eos.franken.de> (tiny change)
142
143 * dired-x.texi (Multiple Dired Directories): default-directory was
144 renamed to dired-default-directory.
145
1462005-03-26 Eli Zaretskii <eliz@gnu.org>
147
148 * files.texi (Visiting): Fix cross-references introduced with the
149 last change.
150
151 * xresources.texi (GTK resources): Fix last change.
152
1532005-03-26 Jay Belanger <belanger@truman.edu>
154
155 * calc.texi (Simplifying Formulas, Rewrite Rules): Change
156 description of top and bottom of fraction.
157 (Modulo Forms): Move description of how to create modulo forms to
158 earlier in the section.
159 (Fraction Mode): Suggest using : to get a fraction by dividing.
160 (Basic Arithmetic): Adjust placement of command name.
161 (Truncating the Stack): Emphasize that "hidden" entries are still
162 visible.
163 (Installation): Move discussion of printing manual to "About This
164 Manual".
165 (About This Manual): Mention how to print the manual.
166 (Reporting Bugs): Remove first person.
167 (Building Vectors): Add algebraic version of append.
168 (Manipulating Vectors): Fix algebraic version of calc-reverse-vector.
169 (Grouping Digits): Fix typo.
170
1712005-03-25 Chong Yidong <cyd@stupidchicken.com>
172
173 * xresources.texi (X Resources): GTK options documented too.
174 (Resources): Clarify meaning of program name.
175 (Table of Resources): Add visualClass.
176 (GTK resources): Rewrite.
177 (GTK widget names, GTK Names in Emacs, GTK styles): Cleanups.
178
179 * display.texi (Text Display): Mention non-breaking spaces.
180
181 * files.texi (Reverting): Document auto-revert-check-vc-info.
182
183 * frames.texi (Mouse Commands): Document
184 x-mouse-click-focus-ignore-position and mouse-drag-copy-region.
185
186 * help.texi (Help Summary): Add `C-h .'.
187 (Apropos): Apropos accepts a list of search terms.
188 Document apropos-sort-by-scores.
189 (Help Echo): Document display-local-help.
190
191 * misc.texi (Emacs Server): Document server-name.
192 (Invoking emacsclient): Document -s option for server names.
193
194 * text.texi (Outline Visibility): Introduce "current heading
195 line" (commands can be called with point on a body line).
196 Re-order table to follow the sequence of discussion.
197 hide-body won't hide lines before first header line.
198 (TeX Mode): Add DocTeX mode.
199
2002005-03-25 Werner Lemberg <wl@gnu.org>
201
202 * calc.texi, cl.texi, gnus.texi, idlwave.texi, reftex.texi: Replace
203 `legal' with `valid'.
204
2052005-03-25 Werner Lemberg <wl@gnu.org>
206
207 * calc.texi, reftex.texi: Replace `illegal' with `invalid'.
208
2092005-03-24 Jay Belanger <belanger@truman.edu>
210
211 * calc.texi (General Mode Commands)
212 (Mode Settings in Embedded Mode): Added some explanation of
213 recording mode settings.
214
2152005-03-24 Richard M. Stallman <rms@gnu.org>
216
217 * mule.texi (Single-Byte Character Support): Delete mention
218 of iso-acc.el and iso-transl.el.
219
220 * calc.texi: Remove praise of non-free software.
221
222 * idlwave.texi: Don't say where to get IDL or its non-free manual.
223 (Installation): Node deleted.
224
12005-03-23 Lute Kamstra <lute@gnu.org> 2252005-03-23 Lute Kamstra <lute@gnu.org>
2 226
3 * search.texi (Non-ASCII Isearch): Rename from Non-Ascii Isearch. 227 * search.texi (Non-ASCII Isearch): Rename from Non-Ascii Isearch.
diff --git a/man/basic.texi b/man/basic.texi
index 2f8c2bc1764..ad3cfbca88a 100644
--- a/man/basic.texi
+++ b/man/basic.texi
@@ -677,36 +677,57 @@ point=26957 of 26956(100%) column 0
677@cindex character set of character at point 677@cindex character set of character at point
678@cindex font of character at point 678@cindex font of character at point
679@cindex text properties at point 679@cindex text properties at point
680 @w{@kbd{C-u C-x =}} displays additional information about a 680 @w{@kbd{C-u C-x =}} displays these additional information about a
681character, including the character set name and the codes that 681character.
682identify the character within that character set; @acronym{ASCII} characters are 682
683identified as belonging to the @code{ascii} character set. It also 683@itemize @bullet
684shows the character's syntax, categories, and encodings both 684@item
685internally in the buffer and externally if you save the file. It also 685The character set name, and the codes that identify the character
686shows the character's text properties (@pxref{Text Properties,,, 686within that character set; @acronym{ASCII} characters are identified
687as belonging to the @code{ascii} character set.
688
689@item
690The character's syntax and categories.
691
692@item
693The character's encodings, both internally in the buffer, and externally
694if you were to save the file.
695
696@item
697What to type to input the character in the current input method
698(if it supports the character).
699
700@item
701If you are running Emacs on a window system, the font name and glyph
702code for the character. If you are running Emacs on a terminal, the
703code(s) sent to the terminal.
704
705@item
706The character's text properties (@pxref{Text Properties,,,
687elisp, the Emacs Lisp Reference Manual}), and any overlays containing it 707elisp, the Emacs Lisp Reference Manual}), and any overlays containing it
688(@pxref{Overlays,,, elisp, the same manual}). 708(@pxref{Overlays,,, elisp, the same manual}).
709@end itemize
689 710
690 Here's an example showing the Latin-1 character A with grave accent, 711 Here's an example showing the Latin-1 character A with grave accent,
691in a buffer whose coding system is @code{iso-2022-7bit}, whose 712in a buffer whose coding system is @code{iso-latin-1}, whose
692terminal coding system is @code{iso-latin-1} (so the terminal actually 713terminal coding system is @code{iso-latin-1} (so the terminal actually
693displays the character as @samp{@`A}), and which has font-lock-mode 714displays the character as @samp{@`A}), and which has font-lock-mode
694(@pxref{Font Lock}) enabled: 715(@pxref{Font Lock}) enabled:
695 716
696@smallexample 717@smallexample
697 character: @`A (04300, 2240, 0x8c0) 718 character: @`A (04300, 2240, 0x8c0, U+00C0)
698 charset: latin-iso8859-1 719 charset: latin-iso8859-1
699 (Right-Hand Part of Latin Alphabet 1@dots{} 720 (Right-Hand Part of Latin Alphabet 1@dots{}
700 code point: 64 721 code point: 64
701 syntax: w which means: word 722 syntax: w which means: word
702 category: l:Latin 723 category: l:Latin
703 buffer code: 0x81 0xC0 724 to input: type "`A"
704 file code: ESC 2C 41 40 (encoded by coding system iso-2022-7bit) 725buffer code: 0x81 0xC0
705terminal code: C0 726 file code: ESC 2C 41 40 (encoded by coding system iso-2022-7bit)
706 727 display: terminal code 0xC0
707Text properties 728
708 font-lock-face: font-lock-variable-name-face 729There are text properties here:
709 fontified: t 730 fontified t
710@end smallexample 731@end smallexample
711 732
712@node Arguments 733@node Arguments
diff --git a/man/building.texi b/man/building.texi
index 50490e34dd5..10b7b8053d2 100644
--- a/man/building.texi
+++ b/man/building.texi
@@ -18,6 +18,7 @@ in the larger process of developing and maintaining programs.
18* Compilation Shell:: Customizing your shell properly 18* Compilation Shell:: Customizing your shell properly
19 for use in the compilation buffer. 19 for use in the compilation buffer.
20* Grep Searching:: Searching with grep. 20* Grep Searching:: Searching with grep.
21* Flymake:: Finding syntax errors on the fly.
21* Debuggers:: Running symbolic debuggers for non-Lisp programs. 22* Debuggers:: Running symbolic debuggers for non-Lisp programs.
22* Executing Lisp:: Various modes for editing Lisp programs, 23* Executing Lisp:: Various modes for editing Lisp programs,
23 with different facilities for running 24 with different facilities for running
@@ -337,6 +338,31 @@ initial default for the command---one that runs both @code{find} and
337@code{grep}, so as to search every file in a directory tree. See also 338@code{grep}, so as to search every file in a directory tree. See also
338the @code{find-grep-dired} command, in @ref{Dired and Find}. 339the @code{find-grep-dired} command, in @ref{Dired and Find}.
339 340
341@node Flymake
342@section Finding Syntax Errors On The Fly
343@cindex checking syntax
344
345 Flymake mode is a minor mode that performs on-the-fly syntax
346checking for many programming and markup languages, including C, C++,
347Perl, HTML, and @TeX{}/La@TeX{}. It is somewhat analogous to Flyspell
348mode, which performs spell checking for ordinary human languages in a
349similar fashion (@pxref{Spelling}). As you edit a file, Flymake mode
350runs an appropriate syntax checking tool in the background, using a
351temporary copy of the buffer. It then parses the error and warning
352messages, and highlights the erroneous lines in the buffer. The
353syntax checking tool used depends on the language; for example, for
354C/C++ files this is usually the C compiler. Flymake can also use
355build tools such as @code{make} for checking complicated projects.
356
357 To activate Flymake mode, type @kbd{M-x flymake-mode}. You can move
358to the errors spotted by Flymake mode with @kbd{M-x
359flymake-goto-next-error} and @kbd{M-x flymake-goto-prev-error}. To
360display any error messages associated with the current line, use
361@kbd{M-x flymake-display-err-menu-for-current-line}.
362
363 For more details about using Flymake, see @ref{Top, Flymake,
364Flymake, flymake, The Flymake Manual}.
365
340@node Debuggers 366@node Debuggers
341@section Running Debuggers Under Emacs 367@section Running Debuggers Under Emacs
342@cindex debuggers 368@cindex debuggers
diff --git a/man/calc.texi b/man/calc.texi
index c45fd8cd227..07c33206f28 100644
--- a/man/calc.texi
+++ b/man/calc.texi
@@ -83,7 +83,7 @@
83@copying 83@copying
84This file documents Calc, the GNU Emacs calculator. 84This file documents Calc, the GNU Emacs calculator.
85 85
86Copyright (C) 1990, 1991, 2001, 2002 Free Software Foundation, Inc. 86Copyright (C) 1990, 1991, 2001, 2002, 2005 Free Software Foundation, Inc.
87 87
88@quotation 88@quotation
89Permission is granted to copy, distribute and/or modify this document 89Permission is granted to copy, distribute and/or modify this document
@@ -111,14 +111,15 @@ Software Foundation raise funds for GNU development.''
111@center GNU Emacs Calc Version 2.02g 111@center GNU Emacs Calc Version 2.02g
112@c [volume] 112@c [volume]
113@sp 1 113@sp 1
114@center January 2002 114@center March 2005
115@sp 5 115@sp 5
116@center Dave Gillespie 116@center Dave Gillespie
117@center daveg@@synaptics.com 117@center daveg@@synaptics.com
118@page 118@page
119 119
120@vskip 0pt plus 1filll 120@vskip 0pt plus 1filll
121Copyright @copyright{} 1990, 1991, 2001, 2002 Free Software Foundation, Inc. 121Copyright @copyright{} 1990, 1991, 2001, 2002, 2005
122Free Software Foundation, Inc.
122@insertcopying 123@insertcopying
123@end titlepage 124@end titlepage
124 125
@@ -476,10 +477,9 @@ large and might be intimidating to the first-time user. If you plan to
476use Calc only as a traditional desk calculator, all you really need to 477use Calc only as a traditional desk calculator, all you really need to
477read is the ``Getting Started'' chapter of this manual and possibly the 478read is the ``Getting Started'' chapter of this manual and possibly the
478first few sections of the tutorial. As you become more comfortable with 479first few sections of the tutorial. As you become more comfortable with
479the program you can learn its additional features. In terms of efficiency, 480the program you can learn its additional features. Calc does not
480scope and depth, Calc cannot replace a powerful tool like Mathematica. 481have the scope and depth of a fully-functional symbolic math package,
481But Calc has the advantages of convenience, portability, and availability 482but Calc has the advantages of convenience, portability, and freedom.
482of the source code. And, of course, it's free!
483 483
484@node About This Manual, Notations Used in This Manual, What is Calc, Getting Started 484@node About This Manual, Notations Used in This Manual, What is Calc, Getting Started
485@section About This Manual 485@section About This Manual
@@ -546,8 +546,35 @@ you can also go to the part of the manual describing any Calc key,
546function, or variable using @w{@kbd{h k}}, @kbd{h f}, or @kbd{h v}, 546function, or variable using @w{@kbd{h k}}, @kbd{h f}, or @kbd{h v},
547respectively. @xref{Help Commands}. 547respectively. @xref{Help Commands}.
548 548
549Printed copies of this manual are also available from the Free Software 549The Calc manual can be printed, but because the manual is so large, you
550Foundation. 550should only make a printed copy if you really need it. To print the
551manual, you will need the @TeX{} typesetting program (this is a free
552program by Donald Knuth at Stanford University) as well as the
553@file{texindex} program and @file{texinfo.tex} file, both of which can
554be obtained from the FSF as part of the @code{texinfo} package.
555To print the Calc manual in one huge tome, you will need the
556source code to this manual, @file{calc.texi}, available as part of the
557Emacs source. Once you have this file, type @kbd{texi2dvi calc.texi}.
558Alternatively, change to the @file{man} subdirectory of the Emacs
559source distribution, and type @kbd{make calc.dvi}. (Don't worry if you
560get some ``overfull box'' warnings while @TeX{} runs.)
561The result will be a device-independent output file called
562@file{calc.dvi}, which you must print in whatever way is right
563for your system. On many systems, the command is
564
565@example
566lpr -d calc.dvi
567@end example
568
569@noindent
570or
571
572@example
573dvips calc.dvi
574@end example
575
576@c Printed copies of this manual are also available from the Free Software
577@c Foundation.
551 578
552@node Notations Used in This Manual, Demonstration of Calc, About This Manual, Getting Started 579@node Notations Used in This Manual, Demonstration of Calc, About This Manual, Getting Started
553@section Notations Used in This Manual 580@section Notations Used in This Manual
@@ -1365,13 +1392,13 @@ to look around for other data types that might be worth having.
1365 1392
1366Around this time, my friend Rick Koshi showed me his nifty new HP-28 1393Around this time, my friend Rick Koshi showed me his nifty new HP-28
1367calculator. It allowed the user to manipulate formulas as well as 1394calculator. It allowed the user to manipulate formulas as well as
1368numerical quantities, and it could also operate on matrices. I decided 1395numerical quantities, and it could also operate on matrices. I
1369that these would be good for Calc to have, too. And once things had 1396decided that these would be good for Calc to have, too. And once
1370gone this far, I figured I might as well take a look at serious algebra 1397things had gone this far, I figured I might as well take a look at
1371systems like Mathematica, Macsyma, and Maple for further ideas. Since 1398serious algebra systems for further ideas. Since these systems did
1372these systems did far more than I could ever hope to implement, I decided 1399far more than I could ever hope to implement, I decided to focus on
1373to focus on rewrite rules and other programming features so that users 1400rewrite rules and other programming features so that users could
1374could implement what they needed for themselves. 1401implement what they needed for themselves.
1375 1402
1376Rick complained that matrices were hard to read, so I put in code to 1403Rick complained that matrices were hard to read, so I put in code to
1377format them in a 2D style. Once these routines were in place, Big mode 1404format them in a 2D style. Once these routines were in place, Big mode
@@ -1412,16 +1439,14 @@ parts. Bob Weiner helped immensely with the Lucid Emacs port.
1412Among the books used in the development of Calc were Knuth's @emph{Art 1439Among the books used in the development of Calc were Knuth's @emph{Art
1413of Computer Programming} (especially volume II, @emph{Seminumerical 1440of Computer Programming} (especially volume II, @emph{Seminumerical
1414Algorithms}); @emph{Numerical Recipes} by Press, Flannery, Teukolsky, 1441Algorithms}); @emph{Numerical Recipes} by Press, Flannery, Teukolsky,
1415and Vetterling; Bevington's @emph{Data Reduction and Error Analysis for 1442and Vetterling; Bevington's @emph{Data Reduction and Error Analysis
1416the Physical Sciences}; @emph{Concrete Mathematics} by Graham, Knuth, 1443for the Physical Sciences}; @emph{Concrete Mathematics} by Graham,
1417and Patashnik; Steele's @emph{Common Lisp, the Language}; the @emph{CRC 1444Knuth, and Patashnik; Steele's @emph{Common Lisp, the Language}; the
1418Standard Math Tables} (William H. Beyer, ed.); and Abramowitz and 1445@emph{CRC Standard Math Tables} (William H. Beyer, ed.); and
1419Stegun's venerable @emph{Handbook of Mathematical Functions}. I 1446Abramowitz and Stegun's venerable @emph{Handbook of Mathematical
1420consulted the user's manuals for the HP-28 and HP-48 calculators, as 1447Functions}. Also, of course, Calc could not have been written without
1421well as for the programs Mathematica, SMP, Macsyma, Maple, MathCAD, 1448the excellent @emph{GNU Emacs Lisp Reference Manual}, by Bil Lewis and
1422Gnuplot, and others. Also, of course, Calc could not have been written 1449Dan LaLiberte.
1423without the excellent @emph{GNU Emacs Lisp Reference Manual}, by Bil
1424Lewis and Dan LaLiberte.
1425 1450
1426Final thanks go to Richard Stallman, without whose fine implementations 1451Final thanks go to Richard Stallman, without whose fine implementations
1427of the Emacs editor, language, and environment, Calc would have been 1452of the Emacs editor, language, and environment, Calc would have been
@@ -1503,8 +1528,8 @@ general areas.
1503 1528
1504@ifinfo 1529@ifinfo
1505You may wish to print out a copy of the Calc Summary and keep notes on 1530You may wish to print out a copy of the Calc Summary and keep notes on
1506it as you learn Calc. @xref{Installation}, to see how to make a printed 1531it as you learn Calc. @xref{About This Manual}, to see how to make a
1507summary. @xref{Summary}. 1532printed summary. @xref{Summary}.
1508@end ifinfo 1533@end ifinfo
1509@iftex 1534@iftex
1510The Calc Summary at the end of the reference manual includes some blank 1535The Calc Summary at the end of the reference manual includes some blank
@@ -5601,8 +5626,8 @@ entering them on the fly.
5601 5626
5602(@bullet{}) @strong{Exercise 1.} Type @kbd{m s} to get Symbolic 5627(@bullet{}) @strong{Exercise 1.} Type @kbd{m s} to get Symbolic
5603mode, then enter the formula @samp{@w{(2 + sqrt(2))} / @w{(1 + sqrt(2))}}. 5628mode, then enter the formula @samp{@w{(2 + sqrt(2))} / @w{(1 + sqrt(2))}}.
5604Using a rewrite rule, simplify this formula by multiplying both 5629Using a rewrite rule, simplify this formula by multiplying the top and
5605sides by the conjugate @w{@samp{1 - sqrt(2)}}. The result will have 5630bottom by the conjugate @w{@samp{1 - sqrt(2)}}. The result will have
5606to be expanded by the distributive law; do this with another 5631to be expanded by the distributive law; do this with another
5607rewrite. @xref{Rewrites Answer 1, 1}. (@bullet{}) 5632rewrite. @xref{Rewrites Answer 1, 1}. (@bullet{})
5608 5633
@@ -11294,6 +11319,21 @@ where @var{a} and @var{M} are real numbers or HMS forms, and
11294In many applications @expr{a} and @expr{M} will be 11319In many applications @expr{a} and @expr{M} will be
11295integers but this is not required. 11320integers but this is not required.
11296 11321
11322@ignore
11323@mindex M
11324@end ignore
11325@kindex M (modulo forms)
11326@ignore
11327@mindex mod
11328@end ignore
11329@tindex mod (operator)
11330To create a modulo form during numeric entry, press the shift-@kbd{M}
11331key to enter the word @samp{mod}. As a special convenience, pressing
11332shift-@kbd{M} a second time automatically enters the value of @expr{M}
11333that was most recently used before. During algebraic entry, either
11334type @samp{mod} by hand or press @kbd{M-m} (that's @kbd{@key{META}-m}).
11335Once again, pressing this a second time enters the current modulo.
11336
11297Modulo forms are not to be confused with the modulo operator @samp{%}. 11337Modulo forms are not to be confused with the modulo operator @samp{%}.
11298The expression @samp{27 % 10} means to compute 27 modulo 10 to produce 11338The expression @samp{27 % 10} means to compute 27 modulo 10 to produce
11299the result 7. Further computations treat this 7 as just a regular integer. 11339the result 7. Further computations treat this 7 as just a regular integer.
@@ -11326,24 +11366,6 @@ in the sense of reducing
11326modulo @expr{M}, this is not a useful definition from the 11366modulo @expr{M}, this is not a useful definition from the
11327number-theoretical point of view.) 11367number-theoretical point of view.)
11328 11368
11329@ignore
11330@mindex M
11331@end ignore
11332@kindex M (modulo forms)
11333@ignore
11334@mindex mod
11335@end ignore
11336@tindex mod (operator)
11337To create a modulo form during numeric entry, press the shift-@kbd{M}
11338key to enter the word @samp{mod}. As a special convenience, pressing
11339shift-@kbd{M} a second time automatically enters the value of @expr{M}
11340that was most recently used before. During algebraic entry, either
11341type @samp{mod} by hand or press @kbd{M-m} (that's @kbd{@key{META}-m}).
11342Once again, pressing this a second time enters the current modulo.
11343
11344You can also use @kbd{v p} and @kbd{%} to modify modulo forms.
11345@xref{Building Vectors}. @xref{Basic Arithmetic}.
11346
11347It is possible to mix HMS forms and modulo forms. For example, an 11369It is possible to mix HMS forms and modulo forms. For example, an
11348HMS form modulo 24 could be used to manipulate clock times; an HMS 11370HMS form modulo 24 could be used to manipulate clock times; an HMS
11349form modulo 360 would be suitable for angles. Making the modulo @expr{M} 11371form modulo 360 would be suitable for angles. Making the modulo @expr{M}
@@ -11356,6 +11378,9 @@ Modulo forms cannot have variables or formulas for components. If you
11356enter the formula @samp{(x + 2) mod 5}, Calc propagates the modulus 11378enter the formula @samp{(x + 2) mod 5}, Calc propagates the modulus
11357to each of the coefficients: @samp{(1 mod 5) x + (2 mod 5)}. 11379to each of the coefficients: @samp{(1 mod 5) x + (2 mod 5)}.
11358 11380
11381You can use @kbd{v p} and @kbd{%} to modify modulo forms.
11382@xref{Packing and Unpacking}. @xref{Basic Arithmetic}.
11383
11359@ignore 11384@ignore
11360@starindex 11385@starindex
11361@end ignore 11386@end ignore
@@ -12262,9 +12287,13 @@ appended to the end of the file.
12262@kindex m R 12287@kindex m R
12263@pindex calc-mode-record-mode 12288@pindex calc-mode-record-mode
12264The @kbd{m R} (@code{calc-mode-record-mode}) command tells Calc to 12289The @kbd{m R} (@code{calc-mode-record-mode}) command tells Calc to
12265record the new mode settings (as if by pressing @kbd{m m}) every 12290record all the mode settings (as if by pressing @kbd{m m}) every
12266time a mode setting changes. If Embedded mode is enabled, other 12291time a mode setting changes. If the modes are saved this way, then this
12267options are available; @pxref{Mode Settings in Embedded Mode}. 12292``automatic mode recording'' mode is also saved.
12293Type @kbd{m R} again to disable this method of recording the mode
12294settings. To turn it off permanently, the @kbd{m m} command will also be
12295necessary. (If Embedded mode is enabled, other options for recording
12296the modes are available; @pxref{Mode Settings in Embedded Mode}.)
12268 12297
12269@kindex m F 12298@kindex m F
12270@pindex calc-settings-file-name 12299@pindex calc-settings-file-name
@@ -12485,8 +12514,10 @@ of the above example situations would produce polar complex numbers.
12485Division of two integers normally yields a floating-point number if the 12514Division of two integers normally yields a floating-point number if the
12486result cannot be expressed as an integer. In some cases you would 12515result cannot be expressed as an integer. In some cases you would
12487rather get an exact fractional answer. One way to accomplish this is 12516rather get an exact fractional answer. One way to accomplish this is
12488to multiply fractions instead: @kbd{6 @key{RET} 1:4 *} produces @expr{3:2} 12517to use the @kbd{:} (@code{calc-fdiv}) [@code{fdiv}] command, which
12489even though @kbd{6 @key{RET} 4 /} produces @expr{1.5}. 12518divides the two integers on the top of the stack to produce a fraction:
12519@kbd{6 @key{RET} 4 :} produces @expr{3:2} even though
12520@kbd{6 @key{RET} 4 /} produces @expr{1.5}.
12490 12521
12491@kindex m f 12522@kindex m f
12492@pindex calc-frac-mode 12523@pindex calc-frac-mode
@@ -13291,7 +13322,7 @@ are displayed in clumps of 3 or 4 (depending on the current radix)
13291separated by commas. 13322separated by commas.
13292 13323
13293The @kbd{d g} command toggles grouping on and off. 13324The @kbd{d g} command toggles grouping on and off.
13294With a numerix prefix of 0, this command displays the current state of 13325With a numeric prefix of 0, this command displays the current state of
13295the grouping flag; with an argument of minus one it disables grouping; 13326the grouping flag; with an argument of minus one it disables grouping;
13296with a positive argument @expr{N} it enables grouping on every @expr{N} 13327with a positive argument @expr{N} it enables grouping on every @expr{N}
13297digits. For floating-point numbers, grouping normally occurs only 13328digits. For floating-point numbers, grouping normally occurs only
@@ -13797,11 +13828,12 @@ The @kbd{d t} (@code{calc-truncate-stack}) command moves the @samp{.}@:
13797line that marks the top-of-stack up or down in the Calculator buffer. 13828line that marks the top-of-stack up or down in the Calculator buffer.
13798The number right above that line is considered to the be at the top of 13829The number right above that line is considered to the be at the top of
13799the stack. Any numbers below that line are ``hidden'' from all stack 13830the stack. Any numbers below that line are ``hidden'' from all stack
13800operations. This is similar to the Emacs ``narrowing'' feature, except 13831operations (although still visible to the user). This is similar to the
13801that the values below the @samp{.} are @emph{visible}, just temporarily 13832Emacs ``narrowing'' feature, except that the values below the @samp{.}
13802frozen. This feature allows you to keep several independent calculations 13833are @emph{visible}, just temporarily frozen. This feature allows you to
13803running at once in different parts of the stack, or to apply a certain 13834keep several independent calculations running at once in different parts
13804command to an element buried deep in the stack. 13835of the stack, or to apply a certain command to an element buried deep in
13836the stack.
13805 13837
13806Pressing @kbd{d t} by itself moves the @samp{.} to the line the cursor 13838Pressing @kbd{d t} by itself moves the @samp{.} to the line the cursor
13807is on. Thus, this line and all those below it become hidden. To un-hide 13839is on. Thus, this line and all those below it become hidden. To un-hide
@@ -13940,7 +13972,7 @@ Without being switched into C mode first, Calc would have misinterpreted
13940the brackets in @samp{a[1]} and @samp{a[2]}, would not have known that 13972the brackets in @samp{a[1]} and @samp{a[2]}, would not have known that
13941@code{atan} was equivalent to Calc's built-in @code{arctan} function, 13973@code{atan} was equivalent to Calc's built-in @code{arctan} function,
13942and would have written the formula back with notations (like implicit 13974and would have written the formula back with notations (like implicit
13943multiplication) which would not have been legal for a C program. 13975multiplication) which would not have been valid for a C program.
13944 13976
13945As another example, suppose you are maintaining a C program and a La@TeX{} 13977As another example, suppose you are maintaining a C program and a La@TeX{}
13946document, each of which needs a copy of the same formula. You can grab the 13978document, each of which needs a copy of the same formula. You can grab the
@@ -14641,8 +14673,7 @@ if the matrix justification mode so specifies.
14641@pindex calc-mathematica-language 14673@pindex calc-mathematica-language
14642@cindex Mathematica language 14674@cindex Mathematica language
14643The @kbd{d M} (@code{calc-mathematica-language}) command selects the 14675The @kbd{d M} (@code{calc-mathematica-language}) command selects the
14644conventions of Mathematica, a powerful and popular mathematical tool 14676conventions of Mathematica. Notable differences in Mathematica mode
14645from Wolfram Research, Inc. Notable differences in Mathematica mode
14646are that the names of built-in functions are capitalized, and function 14677are that the names of built-in functions are capitalized, and function
14647calls use square brackets instead of parentheses. Thus the Calc 14678calls use square brackets instead of parentheses. Thus the Calc
14648formula @samp{sin(2 x)} is entered and displayed @w{@samp{Sin[2 x]}} in 14679formula @samp{sin(2 x)} is entered and displayed @w{@samp{Sin[2 x]}} in
@@ -14665,8 +14696,7 @@ Subscripts use double square brackets: @samp{a[[i]]}.
14665@pindex calc-maple-language 14696@pindex calc-maple-language
14666@cindex Maple language 14697@cindex Maple language
14667The @kbd{d W} (@code{calc-maple-language}) command selects the 14698The @kbd{d W} (@code{calc-maple-language}) command selects the
14668conventions of Maple, another mathematical tool from the University 14699conventions of Maple.
14669of Waterloo.
14670 14700
14671Maple's language is much like C. Underscores are allowed in symbol 14701Maple's language is much like C. Underscores are allowed in symbol
14672names; square brackets are used for subscripts; explicit @samp{*}s for 14702names; square brackets are used for subscripts; explicit @samp{*}s for
@@ -15472,7 +15502,7 @@ backslashes in tokens.)
15472This will parse @samp{3 bad token 4 /"\ 5} to @samp{silly(3,4,5)}. 15502This will parse @samp{3 bad token 4 /"\ 5} to @samp{silly(3,4,5)}.
15473 15503
15474The token @kbd{#} has a predefined meaning in Calc's formula parser; 15504The token @kbd{#} has a predefined meaning in Calc's formula parser;
15475it is not legal to use @samp{"#"} in a syntax rule. However, longer 15505it is not valid to use @samp{"#"} in a syntax rule. However, longer
15476tokens that include the @samp{#} character are allowed. Also, while 15506tokens that include the @samp{#} character are allowed. Also, while
15477@samp{"$"} and @samp{"\""} are allowed as tokens, their presence in 15507@samp{"$"} and @samp{"\""} are allowed as tokens, their presence in
15478the syntax table will prevent those characters from working in their 15508the syntax table will prevent those characters from working in their
@@ -16038,7 +16068,7 @@ commands work by removing the top one or two values from the stack,
16038performing the desired operation, and pushing the result back onto the 16068performing the desired operation, and pushing the result back onto the
16039stack. If the operation cannot be performed, the result pushed is a 16069stack. If the operation cannot be performed, the result pushed is a
16040formula instead of a number, such as @samp{2/0} (because division by zero 16070formula instead of a number, such as @samp{2/0} (because division by zero
16041is illegal) or @samp{sqrt(x)} (because the argument @samp{x} is a formula). 16071is invalid) or @samp{sqrt(x)} (because the argument @samp{x} is a formula).
16042 16072
16043Most of the commands described here can be invoked by a single keystroke. 16073Most of the commands described here can be invoked by a single keystroke.
16044Some of the more obscure ones are two-letter sequences beginning with 16074Some of the more obscure ones are two-letter sequences beginning with
@@ -16242,7 +16272,7 @@ must be positive real number.
16242@kindex : 16272@kindex :
16243@pindex calc-fdiv 16273@pindex calc-fdiv
16244@tindex fdiv 16274@tindex fdiv
16245The @kbd{:} (@code{calc-fdiv}) command [@code{fdiv} function in a formula] 16275The @kbd{:} (@code{calc-fdiv}) [@code{fdiv}] command
16246divides the two integers on the top of the stack to produce a fractional 16276divides the two integers on the top of the stack to produce a fractional
16247result. This is a convenient shorthand for enabling Fraction mode (with 16277result. This is a convenient shorthand for enabling Fraction mode (with
16248@kbd{m f}) temporarily and using @samp{/}. Note that during numeric entry 16278@kbd{m f}) temporarily and using @samp{/}. Note that during numeric entry
@@ -17965,14 +17995,6 @@ and the depreciation is zero for all subsequent periods. The @code{ddb}
17965function returns the amount the book value decreased in the specified 17995function returns the amount the book value decreased in the specified
17966period. 17996period.
17967 17997
17968The Calc financial function names were borrowed mostly from Microsoft
17969Excel and Borland's Quattro. The @code{ratel} function corresponds to
17970@samp{@@CGR} in Borland's Reflex. The @code{nper} and @code{nperl}
17971functions correspond to @samp{@@TERM} and @samp{@@CTERM} in Quattro,
17972respectively. Beware that the Calc functions may take their arguments
17973in a different order than the corresponding functions in your favorite
17974spreadsheet.
17975
17976@node Binary Functions, , Financial Functions, Arithmetic 17998@node Binary Functions, , Financial Functions, Arithmetic
17977@section Binary Number Functions 17999@section Binary Number Functions
17978 18000
@@ -19536,7 +19558,7 @@ packing mode (an integer or a vector of integers) and @var{items}
19536is a vector of objects to be packed (re-packed, really) according 19558is a vector of objects to be packed (re-packed, really) according
19537to that mode. For example, @samp{pack([3, -4], [a,b,c,d,e,f])} 19559to that mode. For example, @samp{pack([3, -4], [a,b,c,d,e,f])}
19538yields @samp{[a +/- b, @w{c +/- d}, e +/- f]}. The function is 19560yields @samp{[a +/- b, @w{c +/- d}, e +/- f]}. The function is
19539left in symbolic form if the packing mode is illegal, or if the 19561left in symbolic form if the packing mode is invalid, or if the
19540number of data items does not match the number of items required 19562number of data items does not match the number of items required
19541by the mode. 19563by the mode.
19542 19564
@@ -19630,7 +19652,7 @@ subtracted, multiplied, and divided; @pxref{Basic Arithmetic}.
19630@mindex @null 19652@mindex @null
19631@end ignore 19653@end ignore
19632@tindex | 19654@tindex |
19633The @kbd{|} (@code{calc-concat}) command ``concatenates'' two vectors 19655The @kbd{|} (@code{calc-concat}) [@code{vconcat}] command ``concatenates'' two vectors
19634into one. For example, after @kbd{@w{[ 1 , 2 ]} [ 3 , 4 ] |}, the stack 19656into one. For example, after @kbd{@w{[ 1 , 2 ]} [ 3 , 4 ] |}, the stack
19635will contain the single vector @samp{[1, 2, 3, 4]}. If the arguments 19657will contain the single vector @samp{[1, 2, 3, 4]}. If the arguments
19636are matrices, the rows of the first matrix are concatenated with the 19658are matrices, the rows of the first matrix are concatenated with the
@@ -20031,7 +20053,7 @@ a one-column matrix.
20031@kindex v v 20053@kindex v v
20032@pindex calc-reverse-vector 20054@pindex calc-reverse-vector
20033@tindex rev 20055@tindex rev
20034The @kbd{v v} (@code{calc-reverse-vector}) [@code{vec}] command reverses 20056The @kbd{v v} (@code{calc-reverse-vector}) [@code{rev}] command reverses
20035a vector end-for-end. Given a matrix, it reverses the order of the rows. 20057a vector end-for-end. Given a matrix, it reverses the order of the rows.
20036(To reverse the columns instead, just use @kbd{v t v v v t}. The same 20058(To reverse the columns instead, just use @kbd{v t v v v t}. The same
20037principle can be used to apply other vector commands to the columns of 20059principle can be used to apply other vector commands to the columns of
@@ -22680,7 +22702,7 @@ on while doing algebra; @pxref{Fraction Mode}.
22680Quotients are simplified by comparing all terms in the numerator 22702Quotients are simplified by comparing all terms in the numerator
22681with all terms in the denominator for possible cancellation using 22703with all terms in the denominator for possible cancellation using
22682the distributive law. For example, @expr{a x^2 b / c x^3 d} will 22704the distributive law. For example, @expr{a x^2 b / c x^3 d} will
22683cancel @expr{x^2} from both sides to get @expr{a b / c x d}. 22705cancel @expr{x^2} from the top and bottom to get @expr{a b / c x d}.
22684(The terms in the denominator will then be rearranged to @expr{c d x} 22706(The terms in the denominator will then be rearranged to @expr{c d x}
22685as described above.) If there is any common integer or fractional 22707as described above.) If there is any common integer or fractional
22686factor in the numerator and denominator, it is cancelled out; 22708factor in the numerator and denominator, it is cancelled out;
@@ -23434,7 +23456,7 @@ is allowed only within @code{IntegRules}; it means ``integrate this
23434with respect to the same integration variable.'' If Calc is unable 23456with respect to the same integration variable.'' If Calc is unable
23435to integrate @code{u}, the integration that invoked @code{IntegRules} 23457to integrate @code{u}, the integration that invoked @code{IntegRules}
23436also fails. Thus integrating @samp{twice(f(x))} fails, returning the 23458also fails. Thus integrating @samp{twice(f(x))} fails, returning the
23437unevaluated integral @samp{integ(twice(f(x)), x)}. It is still legal 23459unevaluated integral @samp{integ(twice(f(x)), x)}. It is still valid
23438to call @code{integ} with two or more arguments, however; in this case, 23460to call @code{integ} with two or more arguments, however; in this case,
23439if @code{u} is not integrable, @code{twice} itself will still be 23461if @code{u} is not integrable, @code{twice} itself will still be
23440integrated: If the above rule is changed to @samp{... := twice(integ(u,x))}, 23462integrated: If the above rule is changed to @samp{... := twice(integ(u,x))},
@@ -25281,7 +25303,7 @@ As a special feature, if the limits are infinite (or omitted, as
25281described above) but the formula includes vectors subscripted by 25303described above) but the formula includes vectors subscripted by
25282expressions that involve the iteration variable, Calc narrows 25304expressions that involve the iteration variable, Calc narrows
25283the limits to include only the range of integers which result in 25305the limits to include only the range of integers which result in
25284legal subscripts for the vector. For example, the sum 25306valid subscripts for the vector. For example, the sum
25285@samp{sum(k [a,b,c,d,e,f,g]_(2k),k)} evaluates to @samp{b + 2 d + 3 f}. 25307@samp{sum(k [a,b,c,d,e,f,g]_(2k),k)} evaluates to @samp{b + 2 d + 3 f}.
25286 25308
25287The limits of a sum do not need to be integers. For example, 25309The limits of a sum do not need to be integers. For example,
@@ -25291,7 +25313,7 @@ Calc computes the number of iterations using the formula
25291after simplification as if by @kbd{a s}, evaluate to an integer. 25313after simplification as if by @kbd{a s}, evaluate to an integer.
25292 25314
25293If the number of iterations according to the above formula does 25315If the number of iterations according to the above formula does
25294not come out to an integer, the sum is illegal and will be left 25316not come out to an integer, the sum is invalid and will be left
25295in symbolic form. However, closed forms are still supplied, and 25317in symbolic form. However, closed forms are still supplied, and
25296you are on your honor not to misuse the resulting formulas by 25318you are on your honor not to misuse the resulting formulas by
25297substituting mismatched bounds into them. For example, 25319substituting mismatched bounds into them. For example,
@@ -28746,7 +28768,7 @@ command.
28746@kindex g A 28768@kindex g A
28747@pindex calc-graph-add-3d 28769@pindex calc-graph-add-3d
28748The @kbd{g A} (@code{calc-graph-add-3d}) command adds a 3D curve 28770The @kbd{g A} (@code{calc-graph-add-3d}) command adds a 3D curve
28749to the graph. It is not legal to intermix 2D and 3D curves in a 28771to the graph. It is not valid to intermix 2D and 3D curves in a
28750single graph. This command takes three arguments, ``x'', ``y'', 28772single graph. This command takes three arguments, ``x'', ``y'',
28751and ``z'', from the stack. With a positive prefix @expr{n}, it 28773and ``z'', from the stack. With a positive prefix @expr{n}, it
28752takes @expr{n+2} arguments (common ``x'' and ``y'', plus @expr{n} 28774takes @expr{n+2} arguments (common ``x'' and ``y'', plus @expr{n}
@@ -30451,8 +30473,8 @@ use @kbd{M-# u} to update the buffer by hand.
30451@noindent 30473@noindent
30452The mode settings can be changed while Calc is in embedded mode, but 30474The mode settings can be changed while Calc is in embedded mode, but
30453will revert to their original values when embedded mode is ended 30475will revert to their original values when embedded mode is ended
30454(except for the modes changed while the mode-setting mode was 30476(except for the modes saved when the mode-recording mode is
30455@code{Save}). 30477@code{Save}; see below).
30456 30478
30457Embedded mode has a rather complicated mechanism for handling mode 30479Embedded mode has a rather complicated mechanism for handling mode
30458settings in Embedded formulas. It is possible to put annotations 30480settings in Embedded formulas. It is possible to put annotations
@@ -30511,7 +30533,7 @@ of mode setting, the second is a name for the mode itself, and
30511the third is the value in the form of a Lisp symbol, number, 30533the third is the value in the form of a Lisp symbol, number,
30512or list. Annotations with unrecognizable text in the first or 30534or list. Annotations with unrecognizable text in the first or
30513second parts are ignored. The third part is not checked to make 30535second parts are ignored. The third part is not checked to make
30514sure the value is of a legal type or range; if you write an 30536sure the value is of a valid type or range; if you write an
30515annotation by hand, be sure to give a proper value or results 30537annotation by hand, be sure to give a proper value or results
30516will be unpredictable. Mode-setting annotations are case-sensitive. 30538will be unpredictable. Mode-setting annotations are case-sensitive.
30517 30539
@@ -30572,10 +30594,11 @@ rules of reading annotations the @samp{(sci 0)} applies to it, too.
30572We would have to go down to the other formula and press @kbd{M-# u} 30594We would have to go down to the other formula and press @kbd{M-# u}
30573on it in order to get it to notice the new annotation. 30595on it in order to get it to notice the new annotation.
30574 30596
30575Two more mode-recording modes selectable by @kbd{m R} are @code{Save} 30597Two more mode-recording modes selectable by @kbd{m R} are available
30576(which works even outside of Embedded mode), in which mode settings 30598which are also available outside of Embedded mode.
30577are recorded permanently in your Calc init file (the file given by the 30599(@pxref{General Mode Commands}.) They are @code{Save}, in which mode
30578variable @code{calc-settings-file}, typically @file{~/.calc.el}) 30600settings are recorded permanently in your Calc init file (the file given
30601by the variable @code{calc-settings-file}, typically @file{~/.calc.el})
30579rather than by annotating the current document, and no-recording 30602rather than by annotating the current document, and no-recording
30580mode (where there is no symbol like @code{Save} or @code{Local} in 30603mode (where there is no symbol like @code{Save} or @code{Local} in
30581the mode line), in which mode-changing commands do not leave any 30604the mode line), in which mode-changing commands do not leave any
@@ -31799,7 +31822,7 @@ to pop @var{num} values off the stack, resimplify them by calling
31799@code{calc-normalize}, and hand them to your function according to the 31822@code{calc-normalize}, and hand them to your function according to the
31800function's argument list. Your function may include @code{&optional} and 31823function's argument list. Your function may include @code{&optional} and
31801@code{&rest} parameters, so long as calling the function with @var{num} 31824@code{&rest} parameters, so long as calling the function with @var{num}
31802parameters is legal. 31825parameters is valid.
31803 31826
31804Your function must return either a number or a formula in a form 31827Your function must return either a number or a formula in a form
31805acceptable to Calc, or a list of such numbers or formulas. These value(s) 31828acceptable to Calc, or a list of such numbers or formulas. These value(s)
@@ -32829,7 +32852,7 @@ this function returns the selected portions rather than the entire
32829stack elements. It can be given a third ``selection-mode'' argument 32852stack elements. It can be given a third ``selection-mode'' argument
32830which selects other behaviors. If it is the symbol @code{t}, then 32853which selects other behaviors. If it is the symbol @code{t}, then
32831a selection in any of the requested stack elements produces an 32854a selection in any of the requested stack elements produces an
32832``illegal operation on selections'' error. If it is the symbol @code{full}, 32855``invalid operation on selections'' error. If it is the symbol @code{full},
32833the whole stack entry is always returned regardless of selections. 32856the whole stack entry is always returned regardless of selections.
32834If it is the symbol @code{sel}, the selected portion is always returned, 32857If it is the symbol @code{sel}, the selected portion is always returned,
32835or @code{nil} if there is no selection. (This mode ignores the @kbd{j e} 32858or @code{nil} if there is no selection. (This mode ignores the @kbd{j e}
@@ -34610,48 +34633,6 @@ plots.
34610 34633
34611@end example 34634@end example
34612@end ifinfo 34635@end ifinfo
34613@appendixsec Printed Documentation
34614
34615@noindent
34616Because the Calc manual is so large, you should only make a printed
34617copy if you really need it. To print the manual, you will need the
34618@TeX{} typesetting program (this is a free program by Donald Knuth
34619at Stanford University) as well as the @file{texindex} program and
34620@file{texinfo.tex} file, both of which can be obtained from the FSF
34621as part of the @code{texinfo} package.
34622
34623To print the Calc manual in one huge 470 page tome, you will need the
34624source code to this manual, @file{calc.texi}, available as part of the
34625Emacs source. Once you have this file, type @kbd{texi2dvi calc.texi}.
34626Alternatively, change to the @file{man} subdirectory of the Emacs
34627source distribution, and type @kbd{make calc.dvi}. (Don't worry if you
34628get some ``overfull box'' warnings while @TeX{} runs.)
34629
34630The result will be a device-independent output file called
34631@file{calc.dvi}, which you must print in whatever way is right
34632for your system. On many systems, the command is
34633
34634@example
34635lpr -d calc.dvi
34636@end example
34637
34638@noindent
34639or
34640
34641@example
34642dvips calc.dvi
34643@end example
34644
34645@c the bumpoddpages macro was deleted
34646@ignore
34647@cindex Marginal notes, adjusting
34648Marginal notes for each function and key sequence normally alternate
34649between the left and right sides of the page, which is correct if the
34650manual is going to be bound as double-sided pages. Near the top of
34651the file @file{calc.texi} you will find alternate definitions of
34652the @code{\bumpoddpages} macro that put the marginal notes always on
34653the same side, best if you plan to be binding single-sided pages.
34654@end ignore
34655 34636
34656@appendixsec Settings File 34637@appendixsec Settings File
34657 34638
@@ -34703,15 +34684,6 @@ belanger@@truman.edu
34703@end example 34684@end example
34704 34685
34705@noindent 34686@noindent
34706(In the following text, ``I'' refers to the original Calc author, Dave
34707Gillespie).
34708
34709While I cannot guarantee that I will have time to work on your bug,
34710I do try to fix bugs quickly whenever I can.
34711
34712The latest version of Calc is available from Savannah, in the Emacs
34713CVS tree. See @uref{http://savannah.gnu.org/projects/emacs}.
34714
34715There is an automatic command @kbd{M-x report-calc-bug} which helps 34687There is an automatic command @kbd{M-x report-calc-bug} which helps
34716you to report bugs. This command prompts you for a brief subject 34688you to report bugs. This command prompts you for a brief subject
34717line, then leaves you in a mail editing buffer. Type @kbd{C-c C-c} to 34689line, then leaves you in a mail editing buffer. Type @kbd{C-c C-c} to
@@ -34719,18 +34691,18 @@ send your mail. Make sure your subject line indicates that you are
34719reporting a Calc bug; this command sends mail to the maintainer's 34691reporting a Calc bug; this command sends mail to the maintainer's
34720regular mailbox. 34692regular mailbox.
34721 34693
34722If you have suggestions for additional features for Calc, I would 34694If you have suggestions for additional features for Calc, please send
34723love to hear them. Some have dared to suggest that Calc is already 34695them. Some have dared to suggest that Calc is already top-heavy with
34724top-heavy with features; I really don't see what they're talking 34696features; this obviously cannot be the case, so if you have ideas, send
34725about, so, if you have ideas, send them right in. (I may even have 34697them right in.
34726time to implement them!)
34727 34698
34728At the front of the source file, @file{calc.el}, is a list of ideas for 34699At the front of the source file, @file{calc.el}, is a list of ideas for
34729future work which I have not had time to do. If any enthusiastic souls 34700future work. If any enthusiastic souls wish to take it upon themselves
34730wish to take it upon themselves to work on these, I would be delighted. 34701to work on these, please send a message (using @kbd{M-x report-calc-bug})
34731Please let me know if you plan to contribute to Calc so I can coordinate 34702so any efforts can be coordinated.
34732your efforts with mine and those of others. I will do my best to help 34703
34733you in whatever way I can. 34704The latest version of Calc is available from Savannah, in the Emacs
34705CVS tree. See @uref{http://savannah.gnu.org/projects/emacs}.
34734 34706
34735@c [summary] 34707@c [summary]
34736@node Summary, Key Index, Reporting Bugs, Top 34708@node Summary, Key Index, Reporting Bugs, Top
diff --git a/man/calendar.texi b/man/calendar.texi
index fa37ab88d2c..999c29dae06 100644
--- a/man/calendar.texi
+++ b/man/calendar.texi
@@ -1,5 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985,86,87,93,94,95,1997,2000,2001 Free Software Foundation, Inc. 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
3@c 2005 Free Software Foundation, Inc.
3@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
4@node Calendar/Diary, Gnus, Dired, Top 5@node Calendar/Diary, Gnus, Dired, Top
5@chapter The Calendar and the Diary 6@chapter The Calendar and the Diary
@@ -19,11 +20,13 @@ calendar. The calendar uses its own buffer, whose major mode is
19Calendar mode. 20Calendar mode.
20 21
21 @kbd{Mouse-2} in the calendar brings up a menu of operations on a 22 @kbd{Mouse-2} in the calendar brings up a menu of operations on a
22particular date; @kbd{C-Mouse-3} brings up a menu of commonly used 23particular date; @kbd{Mouse-3} brings up a menu of commonly used
23calendar features that are independent of any particular date. To exit 24calendar features that are independent of any particular date. To exit
24the calendar, type @kbd{q}. @xref{Calendar, Customizing the Calendar 25the calendar, type @kbd{q}.
25and Diary,, elisp, The Emacs Lisp Reference Manual}, for customization 26
26information about the calendar and diary. 27The basic features of the Calendar/Diary are described here.
28@inforef{Advanced Calendar/Diary Usage,, emacs-xtra}, for information
29about more specialized features.
27 30
28@menu 31@menu
29* Calendar Motion:: Moving through the calendar; selecting a date. 32* Calendar Motion:: Moving through the calendar; selecting a date.
@@ -423,24 +426,31 @@ List holidays in another window for a specified range of years.
423 426
424@kindex h @r{(Calendar mode)} 427@kindex h @r{(Calendar mode)}
425@findex calendar-cursor-holidays 428@findex calendar-cursor-holidays
429@vindex view-calendar-holidays-initially
426 To see if any holidays fall on a given date, position point on that 430 To see if any holidays fall on a given date, position point on that
427date in the calendar window and use the @kbd{h} command. Alternatively, 431date in the calendar window and use the @kbd{h} command. Alternatively,
428click on that date with @kbd{Mouse-2} and then choose @kbd{Holidays} 432click on that date with @kbd{Mouse-2} and then choose @kbd{Holidays}
429from the menu that appears. Either way, this displays the holidays for 433from the menu that appears. Either way, this displays the holidays for
430that date, in the echo area if they fit there, otherwise in a separate 434that date, in the echo area if they fit there, otherwise in a separate
431window. 435window. If the variable @code{view-calendar-holidays-initially} is
436non-@code{nil}, creating the calendar displays holidays in this way.
432 437
433@kindex x @r{(Calendar mode)} 438@kindex x @r{(Calendar mode)}
434@findex mark-calendar-holidays 439@findex mark-calendar-holidays
435@kindex u @r{(Calendar mode)} 440@kindex u @r{(Calendar mode)}
436@findex calendar-unmark 441@findex calendar-unmark
442@vindex mark-holidays-in-calendar
437 To view the distribution of holidays for all the dates shown in the 443 To view the distribution of holidays for all the dates shown in the
438calendar, use the @kbd{x} command. This displays the dates that are 444calendar, use the @kbd{x} command. This displays the dates that are
439holidays in a different face (or places a @samp{*} after these dates, if 445holidays in a different face (or places a @samp{*} after these dates, if
440display with multiple faces is not available). The command applies both 446display with multiple faces is not available). @inforef{Calendar
441to the currently visible months and to other months that subsequently 447Customizing, calendar-holiday-marker, emacs-xtra}. The command applies
442become visible by scrolling. To turn marking off and erase the current 448both to the currently visible months and to other months that
443marks, type @kbd{u}, which also erases any diary marks (@pxref{Diary}). 449subsequently become visible by scrolling. To turn marking off and erase
450the current marks, type @kbd{u}, which also erases any diary marks
451(@pxref{Diary}). If the variable @code{mark-holidays-in-calendar} is
452non-@code{nil}, creating or updating the calendar marks holidays
453automatically.
444 454
445@kindex a @r{(Calendar mode)} 455@kindex a @r{(Calendar mode)}
446@findex list-calendar-holidays 456@findex list-calendar-holidays
@@ -924,9 +934,9 @@ their dates. Then Emacs can automatically pick out and display the
924events for today, for the immediate future, or for any specified 934events for today, for the immediate future, or for any specified
925date. 935date.
926 936
927 By default, Emacs uses @file{~/diary} as the diary file. This is the 937 The name of the diary file is specified by the variable
928same file that the @code{calendar} utility uses. A sample 938@code{diary-file}; @file{~/diary} is the default. A sample diary file
929@file{~/diary} file is: 939is:
930 940
931@example 941@example
93212/22/1988 Twentieth wedding anniversary!! 94212/22/1988 Twentieth wedding anniversary!!
@@ -951,18 +961,18 @@ provides a number of commands to let you view, add, and change diary
951entries. 961entries.
952 962
953@menu 963@menu
954* Diary Commands:: Viewing diary entries and associated calendar dates. 964* Displaying the Diary:: Viewing diary entries and associated calendar dates.
955* Format of Diary File:: Entering events in your diary. 965* Format of Diary File:: Entering events in your diary.
956* Date Formats:: Various ways you can specify dates. 966* Date Formats:: Various ways you can specify dates.
957* Adding to Diary:: Commands to create diary entries. 967* Adding to Diary:: Commands to create diary entries.
958* Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc. 968* Special Diary Entries:: Anniversaries, blocks of dates, cyclic entries, etc.
959@end menu 969@end menu
960 970
961@node Diary Commands 971@node Displaying the Diary
962@subsection Commands Displaying Diary Entries 972@subsection Displaying the Diary
963 973
964 Once you have created a @file{~/diary} file, you can use the calendar 974 Once you have created a diary file, you can use the calendar to view
965to view it. You can also view today's events outside of Calendar mode. 975it. You can also view today's events outside of Calendar mode.
966 976
967@table @kbd 977@table @kbd
968@item d 978@item d
@@ -987,6 +997,7 @@ Mail yourself email reminders about upcoming diary entries.
987 997
988@kindex d @r{(Calendar mode)} 998@kindex d @r{(Calendar mode)}
989@findex view-diary-entries 999@findex view-diary-entries
1000@vindex view-diary-entries-initially
990 Displaying the diary entries with @kbd{d} shows in a separate window 1001 Displaying the diary entries with @kbd{d} shows in a separate window
991the diary entries for the selected date in the calendar. The mode line 1002the diary entries for the selected date in the calendar. The mode line
992of the new window shows the date of the diary entries and any holidays 1003of the new window shows the date of the diary entries and any holidays
@@ -997,18 +1008,25 @@ following day.
997 1008
998 Another way to display the diary entries for a date is to click 1009 Another way to display the diary entries for a date is to click
999@kbd{Mouse-2} on the date, and then choose @kbd{Diary entries} from 1010@kbd{Mouse-2} on the date, and then choose @kbd{Diary entries} from
1000the menu that appears. 1011the menu that appears. If the variable
1012@code{view-diary-entries-initially} is non-@code{nil}, creating the
1013calendar also lists diary entries for the current date (provided the
1014current date is visible).
1001 1015
1002@kindex m @r{(Calendar mode)} 1016@kindex m @r{(Calendar mode)}
1003@findex mark-diary-entries 1017@findex mark-diary-entries
1018@vindex mark-diary-entries-in-calendar
1004 To get a broader view of which days are mentioned in the diary, use 1019 To get a broader view of which days are mentioned in the diary, use
1005the @kbd{m} command. This displays the dates that have diary entries 1020the @kbd{m} command. This displays the dates that have diary entries in
1006in a different face (or places a @samp{+} after these dates, if 1021a different face (or places a @samp{+} after these dates, if display
1007display with multiple faces is not available). The command applies both 1022with multiple faces is not available). @inforef{Calendar Customizing,
1008to the currently visible months and to other months that subsequently 1023diary-entry-marker, emacs-xtra}. The command applies both to the
1009become visible by scrolling. To turn marking off and erase the current 1024currently visible months and to other months that subsequently become
1010marks, type @kbd{u}, which also turns off holiday marks 1025visible by scrolling. To turn marking off and erase the current marks,
1011(@pxref{Holidays}). 1026type @kbd{u}, which also turns off holiday marks (@pxref{Holidays}).
1027If the variable @code{mark-diary-entries-in-calendar} is
1028non-@code{nil}, creating or updating the calendar marks diary dates
1029automatically.
1012 1030
1013@kindex s @r{(Calendar mode)} 1031@kindex s @r{(Calendar mode)}
1014@findex show-all-diary-entries 1032@findex show-all-diary-entries
@@ -1016,21 +1034,18 @@ marks, type @kbd{u}, which also turns off holiday marks
1016the @kbd{s} command. 1034the @kbd{s} command.
1017 1035
1018 Display of selected diary entries uses the selective display feature 1036 Display of selected diary entries uses the selective display feature
1019to hide entries that don't apply. 1037to hide entries that don't apply. The diary buffer as you see it is
1020 1038an illusion, so simply printing the buffer does not print what you see
1021 The diary buffer as you see it is an illusion, so simply printing the 1039on your screen. There is a special command to print hard copy of the
1022buffer does not print what you see on your screen. There is a special 1040diary buffer @emph{as it appears}; this command is @kbd{M-x
1023command to print hard copy of the diary buffer @emph{as it appears}; 1041print-diary-entries}. It sends the data directly to the printer. You
1024this command is @kbd{M-x print-diary-entries}. It sends the data 1042can customize it like @code{lpr-region} (@pxref{Hardcopy}).
1025directly to the printer. You can customize it like @code{lpr-region}
1026(@pxref{Hardcopy}).
1027 1043
1028@findex diary 1044@findex diary
1029 The command @kbd{M-x diary} displays the diary entries for the current 1045 The command @kbd{M-x diary} displays the diary entries for the current
1030date, independently of the calendar display, and optionally for the next 1046date, independently of the calendar display, and optionally for the next
1031few days as well; the variable @code{number-of-diary-entries} specifies 1047few days as well; the variable @code{number-of-diary-entries} specifies
1032how many days to include. @xref{Calendar, Customizing the Calendar 1048how many days to include. @inforef{Diary Customizing,, emacs-xtra}.
1033and Diary,, elisp, The Emacs Lisp Reference Manual}.
1034 1049
1035 If you put @code{(diary)} in your @file{.emacs} file, this 1050 If you put @code{(diary)} in your @file{.emacs} file, this
1036automatically displays a window with the day's diary entries, when you 1051automatically displays a window with the day's diary entries, when you
@@ -1335,8 +1350,7 @@ entry applies to all months of the year.@refill
1335specifying the name of a face or a single-character string to use when 1350specifying the name of a face or a single-character string to use when
1336marking the entry in the calendar. Most generally, sexp diary entries 1351marking the entry in the calendar. Most generally, sexp diary entries
1337can perform arbitrary computations to determine when they apply. 1352can perform arbitrary computations to determine when they apply.
1338@xref{Sexp Diary Entries,, Sexp Diary Entries, elisp, The Emacs Lisp 1353@inforef{Sexp Diary Entries,, emacs-xtra}.
1339Reference Manual}.
1340 1354
1341@node Appointments 1355@node Appointments
1342@section Appointments 1356@section Appointments
@@ -1344,16 +1358,30 @@ Reference Manual}.
1344 1358
1345@vindex appt-display-format 1359@vindex appt-display-format
1346@vindex appt-audible 1360@vindex appt-audible
1361@vindex appt-display-mode-line
1347 If you have a diary entry for an appointment, and that diary entry 1362 If you have a diary entry for an appointment, and that diary entry
1348begins with a recognizable time of day, Emacs can warn you several 1363begins with a recognizable time of day, Emacs can warn you several
1349minutes beforehand that that appointment is pending. Emacs alerts you 1364minutes beforehand that that appointment is pending. Emacs alerts you
1350to the appointment by displaying a message in your chosen format, as 1365to the appointment by displaying a message in your chosen format, as
1351specified by the variable @code{appt-display-format}. If the value 1366specified by the variable @code{appt-display-format}. If the value of
1352of @code{appt-audible} is non-@code{nil}, an audible reminder is also given. 1367@code{appt-audible} is non-@code{nil}, an audible reminder is also
1368given. In addition, if @code{appt-display-mode-line} is non-@code{nil},
1369Emacs displays the number of minutes to the appointment on the mode
1370line.
1371
1372@vindex appt-display-duration
1373@vindex appt-disp-window-function
1374@vindex appt-delete-window-function
1375 If @code{appt-display-format} has the value @code{window}, then the
1376variable @code{appt-display-duration} controls how long the reminder
1377window is visible for; and the variables
1378@code{appt-disp-window-function} and @code{appt-delete-window-function}
1379give the names of functions used to create and destroy the window,
1380respectively.
1353 1381
1354@findex appt-activate 1382@findex appt-activate
1355 To enable appointment notification, call the function 1383 To enable appointment notification, call the function
1356@code{appt-activate} with a positive argument. This sets up an 1384@code{appt-activate} with a positive argument. This sets up an
1357appointment list for today from the diary file, giving all diary entries 1385appointment list for today from the diary file, giving all diary entries
1358found with recognizable times of day, and reminds you just before each 1386found with recognizable times of day, and reminds you just before each
1359of them. Calling @code{appt-activate} with a negative argument disables 1387of them. Calling @code{appt-activate} with a negative argument disables
@@ -1370,7 +1398,7 @@ Monday
1370@vindex appt-message-warning-time 1398@vindex appt-message-warning-time
1371@noindent 1399@noindent
1372Then on Mondays, you will be reminded at around 9:20am about your coffee 1400Then on Mondays, you will be reminded at around 9:20am about your coffee
1373break and at around 11:50am about lunch. How many minutes in advance you 1401break and at around 11:50am about lunch. How many minutes in advance you
1374are first warned is determined by the value of 1402are first warned is determined by the value of
1375@code{appt-message-warning-time}. 1403@code{appt-message-warning-time}.
1376 1404
@@ -1441,8 +1469,8 @@ and adds the results to an Emacs diary file. For example:
1441 1469
1442@noindent 1470@noindent
1443You can use an @code{#include} directive to add the import file contents 1471You can use an @code{#include} directive to add the import file contents
1444to the main diary file, if these are distinct. @xref{Fancy Diary 1472to the main diary file, if these are distinct. @inforef{Fancy Diary
1445Display,,, elisp, The Emacs Lisp Reference Manual}. 1473Display,, emacs-xtra}.
1446 1474
1447@findex icalendar-export-file, icalendar-export-region 1475@findex icalendar-export-file, icalendar-export-region
1448 Use @code{icalendar-export-file} to interactively export an entire 1476 Use @code{icalendar-export-file} to interactively export an entire
diff --git a/man/cl.texi b/man/cl.texi
index 455465a27a3..6c52a16b733 100644
--- a/man/cl.texi
+++ b/man/cl.texi
@@ -5,7 +5,7 @@
5@copying 5@copying
6This file documents the GNU Emacs Common Lisp emulation package. 6This file documents the GNU Emacs Common Lisp emulation package.
7 7
8Copyright (C) 1993, 2002 Free Software Foundation, Inc. 8Copyright (C) 1993, 2002, 2005 Free Software Foundation, Inc.
9 9
10@quotation 10@quotation
11Permission is granted to copy, distribute and/or modify this document 11Permission is granted to copy, distribute and/or modify this document
@@ -991,7 +991,7 @@ just as with @code{setq}. @code{setf} returns the value of the last
991@var{form}. 991@var{form}.
992 992
993The following Lisp forms will work as generalized variables, and 993The following Lisp forms will work as generalized variables, and
994so may legally appear in the @var{place} argument of @code{setf}: 994so may appear in the @var{place} argument of @code{setf}:
995 995
996@itemize @bullet 996@itemize @bullet
997@item 997@item
@@ -1073,7 +1073,7 @@ x (point-max))} in this case).
1073 1073
1074@item 1074@item
1075A call of the form @code{(substring @var{subplace} @var{n} [@var{m}])}, 1075A call of the form @code{(substring @var{subplace} @var{n} [@var{m}])},
1076where @var{subplace} is itself a legal generalized variable whose 1076where @var{subplace} is itself a valid generalized variable whose
1077current value is a string, and where the value stored is also a 1077current value is a string, and where the value stored is also a
1078string. The new string is spliced into the specified part of the 1078string. The new string is spliced into the specified part of the
1079destination string. For example: 1079destination string. For example:
@@ -2379,7 +2379,7 @@ that they are exclusive rather than inclusive limits:
2379 2379
2380The @code{by} value is always positive, even for downward-counting 2380The @code{by} value is always positive, even for downward-counting
2381loops. Some sort of @code{from} value is required for downward 2381loops. Some sort of @code{from} value is required for downward
2382loops; @samp{for x downto 5} is not a legal loop clause all by 2382loops; @samp{for x downto 5} is not a valid loop clause all by
2383itself. 2383itself.
2384 2384
2385@item for @var{var} in @var{list} by @var{function} 2385@item for @var{var} in @var{list} by @var{function}
@@ -2481,7 +2481,7 @@ are also recognized but are equivalent to @code{symbols} in Emacs Lisp.
2481Due to a minor implementation restriction, it will not work to have 2481Due to a minor implementation restriction, it will not work to have
2482more than one @code{for} clause iterating over symbols, hash tables, 2482more than one @code{for} clause iterating over symbols, hash tables,
2483keymaps, overlays, or intervals in a given @code{loop}. Fortunately, 2483keymaps, overlays, or intervals in a given @code{loop}. Fortunately,
2484it would rarely if ever be useful to do so. It @emph{is} legal to mix 2484it would rarely if ever be useful to do so. It @emph{is} valid to mix
2485one of these types of clauses with other clauses like @code{for ... to} 2485one of these types of clauses with other clauses like @code{for ... to}
2486or @code{while}. 2486or @code{while}.
2487 2487
@@ -2727,7 +2727,7 @@ not automatically imply a return value. The loop must use some
2727explicit mechanism, such as @code{finally return}, to return 2727explicit mechanism, such as @code{finally return}, to return
2728the accumulated result. 2728the accumulated result.
2729 2729
2730It is legal for several accumulation clauses of the same type to 2730It is valid for several accumulation clauses of the same type to
2731accumulate into the same place. From Steele: 2731accumulate into the same place. From Steele:
2732 2732
2733@example 2733@example
@@ -3248,8 +3248,8 @@ In particular,
3248(get sym prop) @equiv{} (getf (symbol-plist sym) prop) 3248(get sym prop) @equiv{} (getf (symbol-plist sym) prop)
3249@end example 3249@end example
3250 3250
3251It is legal to use @code{getf} as a @code{setf} place, in which case 3251It is valid to use @code{getf} as a @code{setf} place, in which case
3252its @var{place} argument must itself be a legal @code{setf} place. 3252its @var{place} argument must itself be a valid @code{setf} place.
3253The @var{default} argument, if any, is ignored in this context. 3253The @var{default} argument, if any, is ignored in this context.
3254The effect is to change (via @code{setcar}) the value cell in the 3254The effect is to change (via @code{setcar}) the value cell in the
3255list that corresponds to @var{property}, or to cons a new property-value 3255list that corresponds to @var{property}, or to cons a new property-value
@@ -3535,7 +3535,7 @@ be an integer in which case the new object is seeded from that
3535integer; each different integer seed will result in a completely 3535integer; each different integer seed will result in a completely
3536different sequence of random numbers. 3536different sequence of random numbers.
3537 3537
3538It is legal to print a @code{random-state} object to a buffer or 3538It is valid to print a @code{random-state} object to a buffer or
3539file and later read it back with @code{read}. If a program wishes 3539file and later read it back with @code{read}. If a program wishes
3540to use a sequence of pseudo-random numbers which can be reproduced 3540to use a sequence of pseudo-random numbers which can be reproduced
3541later for debugging, it can call @code{(make-random-state t)} to 3541later for debugging, it can call @code{(make-random-state t)} to
@@ -4575,7 +4575,7 @@ initialized from the corresponding argument. Slots whose names
4575do not appear in the argument list are initialized based on the 4575do not appear in the argument list are initialized based on the
4576@var{default-value} in their slot descriptor. Also, @code{&optional} 4576@var{default-value} in their slot descriptor. Also, @code{&optional}
4577and @code{&key} arguments which don't specify defaults take their 4577and @code{&key} arguments which don't specify defaults take their
4578defaults from the slot descriptor. It is legal to include arguments 4578defaults from the slot descriptor. It is valid to include arguments
4579which don't correspond to slot names; these are useful if they are 4579which don't correspond to slot names; these are useful if they are
4580referred to in the defaults for optional, keyword, or @code{&aux} 4580referred to in the defaults for optional, keyword, or @code{&aux}
4581arguments which @emph{do} correspond to slots. 4581arguments which @emph{do} correspond to slots.
diff --git a/man/commands.texi b/man/commands.texi
index fe70983286f..e0208473419 100644
--- a/man/commands.texi
+++ b/man/commands.texi
@@ -169,8 +169,8 @@ key sequences, not one.@refill
169 169
170 All told, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-h}, 170 All told, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-h},
171@kbd{C-x}, @kbd{C-x @key{RET}}, @kbd{C-x @@}, @kbd{C-x a}, @kbd{C-x 171@kbd{C-x}, @kbd{C-x @key{RET}}, @kbd{C-x @@}, @kbd{C-x a}, @kbd{C-x
172n}, @w{@kbd{C-x r}}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, @kbd{C-x 172n}, @w{@kbd{C-x r}}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, @kbd{C-x 6},
1736}, @key{ESC}, and @kbd{M-g}. (@key{F1} and @key{F2} are aliases for 173@key{ESC}, @kbd{M-o} and @kbd{M-g}. (@key{F1} and @key{F2} are aliases for
174@kbd{C-h} and @kbd{C-x 6}.) But this list is not cast in concrete; it 174@kbd{C-h} and @kbd{C-x 6}.) But this list is not cast in concrete; it
175is just a matter of Emacs's standard key bindings. If you customize 175is just a matter of Emacs's standard key bindings. If you customize
176Emacs, you can make new prefix keys, or eliminate these. @xref{Key 176Emacs, you can make new prefix keys, or eliminate these. @xref{Key
diff --git a/man/custom.texi b/man/custom.texi
index 6c5c26b3451..30bac3bccf2 100644
--- a/man/custom.texi
+++ b/man/custom.texi
@@ -1636,6 +1636,27 @@ word:
1636(global-set-key [H-M-right] 'forward-word) 1636(global-set-key [H-M-right] 'forward-word)
1637@end example 1637@end example
1638 1638
1639@cindex keypad
1640 Many keyboards have a ``numeric keypad'' on the right hand side.
1641The numeric keys in the keypad double up as cursor motion keys,
1642toggled by a key labelled @samp{Num Lock}. By default, Emacs
1643translates these keys to the corresponding keys in the main keyboard
1644(@pxref{Keyboard Translations}). For example, when @samp{Num Lock} is
1645on, the key labelled @samp{8} on the numeric keypad produces
1646@code{kp-8}, which is translated to @kbd{8}; when @samp{Num Lock} is
1647off, the same key produces @code{kp-up}, which is translated to
1648@key{UP}. If you rebind a key such as @kbd{8} or @key{UP}, it affects
1649the equivalent keypad key too. However, if you rebind a @samp{kp-}
1650key directly, that won't affect its non-keypad equivalent.
1651
1652 Emacs provides a convenient method for binding the numeric keypad
1653keys, using the variables @code{keypad-setup},
1654@code{keypad-numlock-setup}, @code{keypad-shifted-setup}, and
1655@code{keypad-numlock-shifted-setup}. These can be found in the
1656@samp{keyboard} customization group (@pxref{Easy Customization}). You
1657can rebind the keys to perform other tasks, such as issuing numeric
1658prefix arguments.
1659
1639@node Named ASCII Chars 1660@node Named ASCII Chars
1640@subsection Named @acronym{ASCII} Control Characters 1661@subsection Named @acronym{ASCII} Control Characters
1641 1662
diff --git a/man/dired-x.texi b/man/dired-x.texi
index d51fda342df..208d07ce170 100644
--- a/man/dired-x.texi
+++ b/man/dired-x.texi
@@ -1004,10 +1004,11 @@ Alist of major modes and their notion of @code{default-directory}, as a
1004Lisp expression to evaluate. A resulting value of @code{nil} is ignored 1004Lisp expression to evaluate. A resulting value of @code{nil} is ignored
1005in favor of @code{default-directory}. 1005in favor of @code{default-directory}.
1006 1006
1007@item default-directory 1007@item dired-default-directory
1008@findex default-directory 1008@findex dired-default-directory
1009Function with usage like variable @code{default-directory}, but knows about the 1009Use this function like you would use the variable
1010special cases in variable @code{default-directory-alist}. 1010@code{default-directory}, except that @code{dired-default-directory}
1011also consults the variable @code{default-directory-alist}.
1011@end table 1012@end table
1012 1013
1013@node Find File At Point, Miscellaneous Commands, Multiple Dired Directories, Top 1014@node Find File At Point, Miscellaneous Commands, Multiple Dired Directories, Top
diff --git a/man/dired.texi b/man/dired.texi
index 6973a4e4000..b50ac82ab0b 100644
--- a/man/dired.texi
+++ b/man/dired.texi
@@ -39,6 +39,7 @@ files.
39* Hiding Subdirectories:: Making subdirectories visible or invisible. 39* Hiding Subdirectories:: Making subdirectories visible or invisible.
40* Updating: Dired Updating. Discarding lines for files of no interest. 40* Updating: Dired Updating. Discarding lines for files of no interest.
41* Find: Dired and Find. Using `find' to choose the files for Dired. 41* Find: Dired and Find. Using `find' to choose the files for Dired.
42* Wdired:: Operating on files by editing the Dired buffer.
42* Misc: Misc Dired Features. Various other features. 43* Misc: Misc Dired Features. Various other features.
43@end menu 44@end menu
44 45
@@ -1103,6 +1104,39 @@ operations work, but do not always automatically update the buffer.
1103Reverting the buffer with @kbd{g} deletes all inserted subdirectories, 1104Reverting the buffer with @kbd{g} deletes all inserted subdirectories,
1104and erases all flags and marks. 1105and erases all flags and marks.
1105 1106
1107@node Wdired
1108@section Editing the Dired Buffer
1109
1110@cindex wdired mode
1111@findex wdired-change-to-wdired-mode
1112 Wdired is a special mode that allows you to perform file operations
1113by editing the Dired buffer directly (the ``W'' in ``Wdired'' stands
1114for ``writable''.) To enter Wdired mode, type @kbd{M-x
1115wdired-change-to-wdired-mode} while in a Dired buffer. Alternatively,
1116use @samp{Edit File Names} in the @samp{Immediate} menu bar menu.
1117
1118@findex wdired-finish-edit
1119 While in Wdired mode, you can rename files by editing the file names
1120displayed in the Dired buffer. All the ordinary Emacs editing
1121commands, including rectangle operations and @code{query-replace}, are
1122available for this. Once you are done editing, type @kbd{C-c C-c}
1123(@code{wdired-finish-edit}). This applies your changes and switches
1124back to ordinary Dired mode.
1125
1126 Apart from simply renaming files, you can move a file to another
1127directory by typing in the new file name (either absolute or
1128relative). To mark a file for deletion, delete the entire filename.
1129To change the target of a symbolic link, just edit the target name
1130displayed next to the link name.
1131
1132 The rest of the text in the buffer, such as the file sizes and
1133modification dates, is marked read-only, so you can't edit it.
1134However, if you set @code{wdired-allow-to-change-permissions} to
1135@code{t}, the file permission bits can also be edited. For example,
1136you can change @samp{-rw-r--r--} to @samp{-rw-rw-rw-} to make a file
1137world-writable. These changes also take effect when you type @kbd{C-c
1138C-c}.
1139
1106@node Misc Dired Features 1140@node Misc Dired Features
1107@section Other Dired Features 1141@section Other Dired Features
1108 1142
diff --git a/man/display.texi b/man/display.texi
index ff939e00cdb..01b0291e5e8 100644
--- a/man/display.texi
+++ b/man/display.texi
@@ -913,6 +913,17 @@ they are displayed using their graphics (assuming your terminal supports
913them), otherwise as escape sequences. @xref{Single-Byte Character 913them), otherwise as escape sequences. @xref{Single-Byte Character
914Support}. 914Support}.
915 915
916@vindex show-nonbreak-escape
917@cindex no-break space, display
918@cindex no-break hyphen, display
919 Some character sets define ``no-break'' versions of the space
920and hyphen characters, which are used where a line should not be
921broken. Emacs displays these with an escape character in order to
922distinguish them from ordinary spaces and hyphens. For example, a
923non-breaking space is displayed as @samp{\ }. You can turn off this
924behavior by setting the variable @code{show-nonbreak-escape} to
925@code{nil}.
926
916@node Cursor Display 927@node Cursor Display
917@section Displaying the Cursor 928@section Displaying the Cursor
918 929
diff --git a/man/emacs-mime.texi b/man/emacs-mime.texi
index c128ed096c3..11a07df5361 100644
--- a/man/emacs-mime.texi
+++ b/man/emacs-mime.texi
@@ -387,15 +387,15 @@ The program used to start an external terminal.
387 387
388@item mm-enable-external 388@item mm-enable-external
389@vindex mm-enable-external 389@vindex mm-enable-external
390Indicate whether external MIME handlers should be used. 390Indicate whether external @acronym{MIME} handlers should be used.
391 391
392If @code{t}, all defined external MIME handlers are used. If 392If @code{t}, all defined external @acronym{MIME} handlers are used. If
393@code{nil}, files are saved to disk (@code{mailcap-save-binary-file}). 393@code{nil}, files are saved to disk (@code{mailcap-save-binary-file}).
394If it is the symbol @code{ask}, you are prompted before the external 394If it is the symbol @code{ask}, you are prompted before the external
395@acronym{MIME} handler is invoked. 395@acronym{MIME} handler is invoked.
396 396
397When you launch an attachment through mailcap (@pxref{mailcap}) an 397When you launch an attachment through mailcap (@pxref{mailcap}) an
398attempt is made to use a safe viewer with the safest options--this isn't 398attempt is made to use a safe viewer with the safest options---this isn't
399the case if you save it to disk and launch it in a different way 399the case if you save it to disk and launch it in a different way
400(command line or double-clicking). Anyhow, if you want to be sure not 400(command line or double-clicking). Anyhow, if you want to be sure not
401to launch any external programs, set this variable to @code{nil} or 401to launch any external programs, set this variable to @code{nil} or
@@ -1327,8 +1327,8 @@ RFC2047 specifies two forms of encoding---@code{Q} (a
1327Quoted-Printable-like encoding) and @code{B} (base64). This alist 1327Quoted-Printable-like encoding) and @code{B} (base64). This alist
1328specifies which charset should use which encoding. 1328specifies which charset should use which encoding.
1329 1329
1330@item rfc2047-encoding-function-alist 1330@item rfc2047-encode-function-alist
1331@vindex rfc2047-encoding-function-alist 1331@vindex rfc2047-encode-function-alist
1332This is an alist of encoding / function pairs. The encodings are 1332This is an alist of encoding / function pairs. The encodings are
1333@code{Q}, @code{B} and @code{nil}. 1333@code{Q}, @code{B} and @code{nil}.
1334 1334
@@ -1336,6 +1336,11 @@ This is an alist of encoding / function pairs. The encodings are
1336@vindex rfc2047-encoded-word-regexp 1336@vindex rfc2047-encoded-word-regexp
1337When decoding words, this library looks for matches to this regexp. 1337When decoding words, this library looks for matches to this regexp.
1338 1338
1339@item rfc2047-encode-encoded-words
1340@vindex rfc2047-encode-encoded-words
1341The boolean variable specifies whether encoded words
1342(e.g. @samp{=?hello?=}) should be encoded again.
1343
1339@end table 1344@end table
1340 1345
1341Those were the variables, and these are this functions: 1346Those were the variables, and these are this functions:
@@ -1366,6 +1371,24 @@ Decode the encoded words in the region.
1366@findex rfc2047-decode-string 1371@findex rfc2047-decode-string
1367Decode a string and return the results. 1372Decode a string and return the results.
1368 1373
1374@item rfc2047-encode-parameter
1375@findex rfc2047-encode-parameter
1376Encode a parameter in the RFC2047-like style. This is a replacement for
1377the @code{rfc2231-encode-string} function. @xref{rfc2231}.
1378
1379When attaching files as @acronym{MIME} parts, we should use the RFC2231
1380encoding to specify the file names containing non-@acronym{ASCII}
1381characters. However, many mail softwares don't support it in practice
1382and recipients won't be able to extract files with correct names.
1383Instead, the RFC2047-like encoding is acceptable generally. This
1384function provides the very RFC2047-like encoding, resigning to such a
1385regrettable trend. To use it, put the following line in your
1386@file{~/.gnus.el} file:
1387
1388@lisp
1389(defalias 'mail-header-encode-parameter 'rfc2047-encode-parameter)
1390@end lisp
1391
1369@end table 1392@end table
1370 1393
1371 1394
diff --git a/man/emacs-xtra.texi b/man/emacs-xtra.texi
index a1ccf101bd6..94a37c2ec5e 100644
--- a/man/emacs-xtra.texi
+++ b/man/emacs-xtra.texi
@@ -10,7 +10,7 @@
10@copying 10@copying
11This manual describes specialized features of Emacs. 11This manual describes specialized features of Emacs.
12 12
13Copyright (C) 2004 13Copyright (C) 2004, 2005
14Free Software Foundation, Inc. 14Free Software Foundation, Inc.
15 15
16@quotation 16@quotation
@@ -59,6 +59,7 @@ license to the document, as described in section 6 of the license.
59* Introduction:: What documentation belongs here? 59* Introduction:: What documentation belongs here?
60* Autorevert:: Auto Reverting non-file buffers. 60* Autorevert:: Auto Reverting non-file buffers.
61* Subdir switches:: Subdirectory switches in Dired. 61* Subdir switches:: Subdirectory switches in Dired.
62* Advanced Calendar/Diary Usage:: Advanced Calendar/Diary customization.
62* Index:: 63* Index::
63@end menu 64@end menu
64 65
@@ -307,6 +308,922 @@ You can make Dired forget about all subdirectory switches and relist
307all subdirectories with the buffer's default switches using 308all subdirectories with the buffer's default switches using
308@kbd{M-x dired-reset-subdir-switches}. This also reverts the Dired buffer. 309@kbd{M-x dired-reset-subdir-switches}. This also reverts the Dired buffer.
309 310
311
312@c Moved here from the Emacs Lisp Reference Manual, 2005-03-26.
313@node Advanced Calendar/Diary Usage
314@chapter Customizing the Calendar and Diary
315
316 There are many customizations that you can use to make the calendar and
317diary suit your personal tastes.
318
319@menu
320* Calendar Customizing:: Defaults you can set.
321* Holiday Customizing:: Defining your own holidays.
322* Date Display Format:: Changing the format.
323* Time Display Format:: Changing the format.
324* Daylight Savings:: Changing the default.
325* Diary Customizing:: Defaults you can set.
326* Hebrew/Islamic Entries:: How to obtain them.
327* Fancy Diary Display:: Enhancing the diary display, sorting entries,
328 using included diary files.
329* Sexp Diary Entries:: Fancy things you can do.
330@end menu
331
332@node Calendar Customizing
333@section Customizing the Calendar
334@vindex calendar-holiday-marker
335@vindex diary-entry-marker
336 The variable @code{calendar-holiday-marker} specifies how to mark a
337date as being a holiday. Its value may be a single-character string
338to insert next to the date, or a face name to use for displaying the
339date. Likewise, the variable @code{diary-entry-marker} specifies how
340to mark a date that has diary entries. The calendar creates faces
341named @code{holiday-face} and @code{diary-face} for these purposes;
342those symbols are the default values of these variables.
343
344@vindex calendar-load-hook
345 The variable @code{calendar-load-hook} is a normal hook run when the
346calendar package is first loaded (before actually starting to display
347the calendar).
348
349@vindex initial-calendar-window-hook
350 Starting the calendar runs the normal hook
351@code{initial-calendar-window-hook}. Recomputation of the calendar
352display does not run this hook. But if you leave the calendar with the
353@kbd{q} command and reenter it, the hook runs again.@refill
354
355@vindex today-visible-calendar-hook
356 The variable @code{today-visible-calendar-hook} is a normal hook run
357after the calendar buffer has been prepared with the calendar when the
358current date is visible in the window. One use of this hook is to
359replace today's date with asterisks; to do that, use the hook function
360@code{calendar-star-date}.
361
362@findex calendar-star-date
363@example
364(add-hook 'today-visible-calendar-hook 'calendar-star-date)
365@end example
366
367@noindent
368Another standard hook function marks the current date, either by
369changing its face or by adding an asterisk. Here's how to use it:
370
371@findex calendar-mark-today
372@example
373(add-hook 'today-visible-calendar-hook 'calendar-mark-today)
374@end example
375
376@noindent
377@vindex calendar-today-marker
378The variable @code{calendar-today-marker} specifies how to mark
379today's date. Its value should be a single-character string to insert
380next to the date or a face name to use for displaying the date. A
381face named @code{calendar-today-face} is provided for this purpose;
382that symbol is the default for this variable.
383
384@vindex today-invisible-calendar-hook
385@noindent
386 A similar normal hook, @code{today-invisible-calendar-hook} is run if
387the current date is @emph{not} visible in the window.
388
389@vindex calendar-move-hook
390 Each of the calendar cursor motion commands runs the hook
391@code{calendar-move-hook} after it moves the cursor.
392
393@node Holiday Customizing
394@section Customizing the Holidays
395
396@vindex calendar-holidays
397@vindex christian-holidays
398@vindex hebrew-holidays
399@vindex islamic-holidays
400 Emacs knows about holidays defined by entries on one of several lists.
401You can customize these lists of holidays to your own needs, adding or
402deleting holidays. The lists of holidays that Emacs uses are for
403general holidays (@code{general-holidays}), local holidays
404(@code{local-holidays}), Christian holidays (@code{christian-holidays}),
405Hebrew (Jewish) holidays (@code{hebrew-holidays}), Islamic (Muslim)
406holidays (@code{islamic-holidays}), and other holidays
407(@code{other-holidays}).
408
409@vindex general-holidays
410 The general holidays are, by default, holidays common throughout the
411United States. To eliminate these holidays, set @code{general-holidays}
412to @code{nil}.
413
414@vindex local-holidays
415 There are no default local holidays (but sites may supply some). You
416can set the variable @code{local-holidays} to any list of holidays, as
417described below.
418
419@vindex all-christian-calendar-holidays
420@vindex all-hebrew-calendar-holidays
421@vindex all-islamic-calendar-holidays
422 By default, Emacs does not include all the holidays of the religions
423that it knows, only those commonly found in secular calendars. For a
424more extensive collection of religious holidays, you can set any (or
425all) of the variables @code{all-christian-calendar-holidays},
426@code{all-hebrew-calendar-holidays}, or
427@code{all-islamic-calendar-holidays} to @code{t}. If you want to
428eliminate the religious holidays, set any or all of the corresponding
429variables @code{christian-holidays}, @code{hebrew-holidays}, and
430@code{islamic-holidays} to @code{nil}.@refill
431
432@vindex other-holidays
433 You can set the variable @code{other-holidays} to any list of
434holidays. This list, normally empty, is intended for individual use.
435
436@cindex holiday forms
437 Each of the lists (@code{general-holidays}, @code{local-holidays},
438@code{christian-holidays}, @code{hebrew-holidays},
439@code{islamic-holidays}, and @code{other-holidays}) is a list of
440@dfn{holiday forms}, each holiday form describing a holiday (or
441sometimes a list of holidays).
442
443 Here is a table of the possible kinds of holiday form. Day numbers
444and month numbers count starting from 1, but ``dayname'' numbers
445count Sunday as 0. The element @var{string} is always the
446name of the holiday, as a string.
447
448@table @code
449@item (holiday-fixed @var{month} @var{day} @var{string})
450A fixed date on the Gregorian calendar.
451
452@item (holiday-float @var{month} @var{dayname} @var{k} @var{string})
453The @var{k}th @var{dayname} in @var{month} on the Gregorian calendar
454(@var{dayname}=0 for Sunday, and so on); negative @var{k} means count back
455from the end of the month.
456
457@item (holiday-hebrew @var{month} @var{day} @var{string})
458A fixed date on the Hebrew calendar.
459
460@item (holiday-islamic @var{month} @var{day} @var{string})
461A fixed date on the Islamic calendar.
462
463@item (holiday-julian @var{month} @var{day} @var{string})
464A fixed date on the Julian calendar.
465
466@item (holiday-sexp @var{sexp} @var{string})
467A date calculated by the Lisp expression @var{sexp}. The expression
468should use the variable @code{year} to compute and return the date of a
469holiday, or @code{nil} if the holiday doesn't happen this year. The
470value of @var{sexp} must represent the date as a list of the form
471@code{(@var{month} @var{day} @var{year})}.
472
473@item (if @var{condition} @var{holiday-form})
474A holiday that happens only if @var{condition} is true.
475
476@item (@var{function} @r{[}@var{args}@r{]})
477A list of dates calculated by the function @var{function}, called with
478arguments @var{args}.
479@end table
480
481 For example, suppose you want to add Bastille Day, celebrated in
482France on July 14. You can do this as follows:
483
484@smallexample
485(setq other-holidays '((holiday-fixed 7 14 "Bastille Day")))
486@end smallexample
487
488@noindent
489The holiday form @code{(holiday-fixed 7 14 "Bastille Day")} specifies the
490fourteenth day of the seventh month (July).
491
492 Many holidays occur on a specific day of the week, at a specific time
493of month. Here is a holiday form describing Hurricane Supplication Day,
494celebrated in the Virgin Islands on the fourth Monday in August:
495
496@smallexample
497(holiday-float 8 1 4 "Hurricane Supplication Day")
498@end smallexample
499
500@noindent
501Here the 8 specifies August, the 1 specifies Monday (Sunday is 0,
502Tuesday is 2, and so on), and the 4 specifies the fourth occurrence in
503the month (1 specifies the first occurrence, 2 the second occurrence,
504@minus{}1 the last occurrence, @minus{}2 the second-to-last occurrence, and
505so on).
506
507 You can specify holidays that occur on fixed days of the Hebrew,
508Islamic, and Julian calendars too. For example,
509
510@smallexample
511(setq other-holidays
512 '((holiday-hebrew 10 2 "Last day of Hanukkah")
513 (holiday-islamic 3 12 "Mohammed's Birthday")
514 (holiday-julian 4 2 "Jefferson's Birthday")))
515@end smallexample
516
517@noindent
518adds the last day of Hanukkah (since the Hebrew months are numbered with
5191 starting from Nisan), the Islamic feast celebrating Mohammed's
520birthday (since the Islamic months are numbered from 1 starting with
521Muharram), and Thomas Jefferson's birthday, which is 2 April 1743 on the
522Julian calendar.
523
524 To include a holiday conditionally, use either Emacs Lisp's @code{if} or the
525@code{holiday-sexp} form. For example, American presidential elections
526occur on the first Tuesday after the first Monday in November of years
527divisible by 4:
528
529@smallexample
530(holiday-sexp '(if (= 0 (% year 4))
531 (calendar-gregorian-from-absolute
532 (1+ (calendar-dayname-on-or-before
533 1 (+ 6 (calendar-absolute-from-gregorian
534 (list 11 1 year)))))))
535 "US Presidential Election")
536@end smallexample
537
538@noindent
539or
540
541@smallexample
542(if (= 0 (% displayed-year 4))
543 (fixed 11
544 (extract-calendar-day
545 (calendar-gregorian-from-absolute
546 (1+ (calendar-dayname-on-or-before
547 1 (+ 6 (calendar-absolute-from-gregorian
548 (list 11 1 displayed-year)))))))
549 "US Presidential Election"))
550@end smallexample
551
552 Some holidays just don't fit into any of these forms because special
553calculations are involved in their determination. In such cases you
554must write a Lisp function to do the calculation. To include eclipses,
555for example, add @code{(eclipses)} to @code{other-holidays}
556and write an Emacs Lisp function @code{eclipses} that returns a
557(possibly empty) list of the relevant Gregorian dates among the range
558visible in the calendar window, with descriptive strings, like this:
559
560@smallexample
561(((6 27 1991) "Lunar Eclipse") ((7 11 1991) "Solar Eclipse") ... )
562@end smallexample
563
564@node Date Display Format
565@section Date Display Format
566@vindex calendar-date-display-form
567
568 You can customize the manner of displaying dates in the diary, in mode
569lines, and in messages by setting @code{calendar-date-display-form}.
570This variable holds a list of expressions that can involve the variables
571@code{month}, @code{day}, and @code{year}, which are all numbers in
572string form, and @code{monthname} and @code{dayname}, which are both
573alphabetic strings. In the American style, the default value of this
574list is as follows:
575
576@smallexample
577((if dayname (concat dayname ", ")) monthname " " day ", " year)
578@end smallexample
579
580@noindent
581while in the European style this value is the default:
582
583@smallexample
584((if dayname (concat dayname ", ")) day " " monthname " " year)
585@end smallexample
586
587@noindent
588The ISO standard date representation is this:
589
590@smallexample
591(year "-" month "-" day)
592@end smallexample
593
594@noindent
595This specifies a typical American format:
596
597@smallexample
598(month "/" day "/" (substring year -2))
599@end smallexample
600
601@node Time Display Format
602@section Time Display Format
603@vindex calendar-time-display-form
604
605 The calendar and diary by default display times of day in the
606conventional American style with the hours from 1 through 12, minutes,
607and either @samp{am} or @samp{pm}. If you prefer the European style,
608also known in the US as military, in which the hours go from 00 to 23,
609you can alter the variable @code{calendar-time-display-form}. This
610variable is a list of expressions that can involve the variables
611@code{12-hours}, @code{24-hours}, and @code{minutes}, which are all
612numbers in string form, and @code{am-pm} and @code{time-zone}, which are
613both alphabetic strings. The default value of
614@code{calendar-time-display-form} is as follows:
615
616@smallexample
617(12-hours ":" minutes am-pm
618 (if time-zone " (") time-zone (if time-zone ")"))
619@end smallexample
620
621@noindent
622Here is a value that provides European style times:
623
624@smallexample
625(24-hours ":" minutes
626 (if time-zone " (") time-zone (if time-zone ")"))
627@end smallexample
628
629@node Daylight Savings
630@section Daylight Savings Time
631@cindex daylight savings time
632
633 Emacs understands the difference between standard time and daylight
634savings time---the times given for sunrise, sunset, solstices,
635equinoxes, and the phases of the moon take that into account. The rules
636for daylight savings time vary from place to place and have also varied
637historically from year to year. To do the job properly, Emacs needs to
638know which rules to use.
639
640 Some operating systems keep track of the rules that apply to the place
641where you are; on these systems, Emacs gets the information it needs
642from the system automatically. If some or all of this information is
643missing, Emacs fills in the gaps with the rules currently used in
644Cambridge, Massachusetts, which is the center of GNU's world.
645
646
647@vindex calendar-daylight-savings-starts
648@vindex calendar-daylight-savings-ends
649 If the default choice of rules is not appropriate for your location,
650you can tell Emacs the rules to use by setting the variables
651@code{calendar-daylight-savings-starts} and
652@code{calendar-daylight-savings-ends}. Their values should be Lisp
653expressions that refer to the variable @code{year}, and evaluate to the
654Gregorian date on which daylight savings time starts or (respectively)
655ends, in the form of a list @code{(@var{month} @var{day} @var{year})}.
656The values should be @code{nil} if your area does not use daylight
657savings time.
658
659 Emacs uses these expressions to determine the start and end dates of
660daylight savings time as holidays and for correcting times of day in the
661solar and lunar calculations.
662
663 The values for Cambridge, Massachusetts are as follows:
664
665@example
666@group
667(calendar-nth-named-day 1 0 4 year)
668(calendar-nth-named-day -1 0 10 year)
669@end group
670@end example
671
672@noindent
673i.e., the first 0th day (Sunday) of the fourth month (April) in
674the year specified by @code{year}, and the last Sunday of the tenth month
675(October) of that year. If daylight savings time were
676changed to start on October 1, you would set
677@code{calendar-daylight-savings-starts} to this:
678
679@example
680(list 10 1 year)
681@end example
682
683 For a more complex example, suppose daylight savings time begins on
684the first of Nisan on the Hebrew calendar. You should set
685@code{calendar-daylight-savings-starts} to this value:
686
687@example
688(calendar-gregorian-from-absolute
689 (calendar-absolute-from-hebrew
690 (list 1 1 (+ year 3760))))
691@end example
692
693@noindent
694because Nisan is the first month in the Hebrew calendar and the Hebrew
695year differs from the Gregorian year by 3760 at Nisan.
696
697 If there is no daylight savings time at your location, or if you want
698all times in standard time, set @code{calendar-daylight-savings-starts}
699and @code{calendar-daylight-savings-ends} to @code{nil}.
700
701@vindex calendar-daylight-time-offset
702 The variable @code{calendar-daylight-time-offset} specifies the
703difference between daylight savings time and standard time, measured in
704minutes. The value for Cambridge is 60.
705
706@vindex calendar-daylight-savings-starts-time
707@vindex calendar-daylight-savings-ends-time
708 The variable @code{calendar-daylight-savings-starts-time} and the
709variable @code{calendar-daylight-savings-ends-time} specify the number
710of minutes after midnight local time when the transition to and from
711daylight savings time should occur. For Cambridge, both variables'
712values are 120.
713
714@node Diary Customizing
715@section Customizing the Diary
716
717@vindex holidays-in-diary-buffer
718 Ordinarily, the mode line of the diary buffer window indicates any
719holidays that fall on the date of the diary entries. The process of
720checking for holidays can take several seconds, so including holiday
721information delays the display of the diary buffer noticeably. If you'd
722prefer to have a faster display of the diary buffer but without the
723holiday information, set the variable @code{holidays-in-diary-buffer} to
724@code{nil}.@refill
725
726@vindex number-of-diary-entries
727 The variable @code{number-of-diary-entries} controls the number of
728days of diary entries to be displayed at one time. It affects the
729initial display when @code{view-diary-entries-initially} is @code{t}, as
730well as the command @kbd{M-x diary}. For example, the default value is
7311, which says to display only the current day's diary entries. If the
732value is 2, both the current day's and the next day's entries are
733displayed. The value can also be a vector of seven elements: for
734example, if the value is @code{[0 2 2 2 2 4 1]} then no diary entries
735appear on Sunday, the current date's and the next day's diary entries
736appear Monday through Thursday, Friday through Monday's entries appear
737on Friday, while on Saturday only that day's entries appear.
738
739@vindex print-diary-entries-hook
740@findex print-diary-entries
741 The variable @code{print-diary-entries-hook} is a normal hook run
742after preparation of a temporary buffer containing just the diary
743entries currently visible in the diary buffer. (The other, irrelevant
744diary entries are really absent from the temporary buffer; in the diary
745buffer, they are merely hidden.) The default value of this hook does
746the printing with the command @code{lpr-buffer}. If you want to use a
747different command to do the printing, just change the value of this
748hook. Other uses might include, for example, rearranging the lines into
749order by day and time.
750
751@vindex diary-date-forms
752 You can customize the form of dates in your diary file, if neither the
753standard American nor European styles suits your needs, by setting the
754variable @code{diary-date-forms}. This variable is a list of patterns
755for recognizing a date. Each date pattern is a list whose elements may
756be regular expressions (@pxref{Regular Expressions,,, elisp, the Emacs
757Lisp Reference Manual}) or the symbols @code{month}, @code{day},
758@code{year}, @code{monthname}, and @code{dayname}. All these elements
759serve as patterns that match certain kinds of text in the diary file.
760In order for the date pattern, as a whole, to match, all of its elements
761must match consecutively.
762
763 A regular expression in a date pattern matches in its usual fashion,
764using the standard syntax table altered so that @samp{*} is a word
765constituent.
766
767 The symbols @code{month}, @code{day}, @code{year}, @code{monthname},
768and @code{dayname} match the month number, day number, year number,
769month name, and day name of the date being considered. The symbols that
770match numbers allow leading zeros; those that match names allow
771three-letter abbreviations and capitalization. All the symbols can
772match @samp{*}; since @samp{*} in a diary entry means ``any day'', ``any
773month'', and so on, it should match regardless of the date being
774considered.
775
776 The default value of @code{diary-date-forms} in the American style is
777this:
778
779@example
780((month "/" day "[^/0-9]")
781 (month "/" day "/" year "[^0-9]")
782 (monthname " *" day "[^,0-9]")
783 (monthname " *" day ", *" year "[^0-9]")
784 (dayname "\\W"))
785@end example
786
787 The date patterns in the list must be @emph{mutually exclusive} and
788must not match any portion of the diary entry itself, just the date and
789one character of whitespace. If, to be mutually exclusive, the pattern
790must match a portion of the diary entry text---beyond the whitespace
791that ends the date---then the first element of the date pattern
792@emph{must} be @code{backup}. This causes the date recognizer to back
793up to the beginning of the current word of the diary entry, after
794finishing the match. Even if you use @code{backup}, the date pattern
795must absolutely not match more than a portion of the first word of the
796diary entry. The default value of @code{diary-date-forms} in the
797European style is this list:
798
799@example
800((day "/" month "[^/0-9]")
801 (day "/" month "/" year "[^0-9]")
802 (backup day " *" monthname "\\W+\\<[^*0-9]")
803 (day " *" monthname " *" year "[^0-9]")
804 (dayname "\\W"))
805@end example
806
807@noindent
808Notice the use of @code{backup} in the third pattern, because it needs
809to match part of a word beyond the date itself to distinguish it from
810the fourth pattern.
811
812@node Hebrew/Islamic Entries
813@section Hebrew- and Islamic-Date Diary Entries
814
815 Your diary file can have entries based on Hebrew or Islamic dates, as
816well as entries based on the world-standard Gregorian calendar.
817However, because recognition of such entries is time-consuming and most
818people don't use them, you must explicitly enable their use. If you
819want the diary to recognize Hebrew-date diary entries, for example,
820you must do this:
821
822@vindex nongregorian-diary-listing-hook
823@vindex nongregorian-diary-marking-hook
824@findex list-hebrew-diary-entries
825@findex mark-hebrew-diary-entries
826@smallexample
827(add-hook 'nongregorian-diary-listing-hook 'list-hebrew-diary-entries)
828(add-hook 'nongregorian-diary-marking-hook 'mark-hebrew-diary-entries)
829@end smallexample
830
831@noindent
832If you want Islamic-date entries, do this:
833
834@findex list-islamic-diary-entries
835@findex mark-islamic-diary-entries
836@smallexample
837(add-hook 'nongregorian-diary-listing-hook 'list-islamic-diary-entries)
838(add-hook 'nongregorian-diary-marking-hook 'mark-islamic-diary-entries)
839@end smallexample
840
841 Hebrew- and Islamic-date diary entries have the same formats as
842Gregorian-date diary entries, except that @samp{H} precedes a Hebrew
843date and @samp{I} precedes an Islamic date. Moreover, because the
844Hebrew and Islamic month names are not uniquely specified by the first
845three letters, you may not abbreviate them. For example, a diary entry
846for the Hebrew date Heshvan 25 could look like this:
847
848@smallexample
849HHeshvan 25 Happy Hebrew birthday!
850@end smallexample
851
852@noindent
853and would appear in the diary for any date that corresponds to Heshvan 25
854on the Hebrew calendar. And here is an Islamic-date diary entry that matches
855Dhu al-Qada 25:
856
857@smallexample
858IDhu al-Qada 25 Happy Islamic birthday!
859@end smallexample
860
861 As with Gregorian-date diary entries, Hebrew- and Islamic-date entries
862are nonmarking if they are preceded with an ampersand (@samp{&}).
863
864 Here is a table of commands used in the calendar to create diary entries
865that match the selected date and other dates that are similar in the Hebrew
866or Islamic calendar:
867
868@table @kbd
869@item i h d
870Add a diary entry for the Hebrew date corresponding to the selected date
871(@code{insert-hebrew-diary-entry}).
872@item i h m
873Add a diary entry for the day of the Hebrew month corresponding to the
874selected date (@code{insert-monthly-hebrew-diary-entry}). This diary
875entry matches any date that has the same Hebrew day-within-month as the
876selected date.
877@item i h y
878Add a diary entry for the day of the Hebrew year corresponding to the
879selected date (@code{insert-yearly-hebrew-diary-entry}). This diary
880entry matches any date which has the same Hebrew month and day-within-month
881as the selected date.
882@item i i d
883Add a diary entry for the Islamic date corresponding to the selected date
884(@code{insert-islamic-diary-entry}).
885@item i i m
886Add a diary entry for the day of the Islamic month corresponding to the
887selected date (@code{insert-monthly-islamic-diary-entry}).
888@item i i y
889Add a diary entry for the day of the Islamic year corresponding to the
890selected date (@code{insert-yearly-islamic-diary-entry}).
891@end table
892
893@findex insert-hebrew-diary-entry
894@findex insert-monthly-hebrew-diary-entry
895@findex insert-yearly-hebrew-diary-entry
896@findex insert-islamic-diary-entry
897@findex insert-monthly-islamic-diary-entry
898@findex insert-yearly-islamic-diary-entry
899 These commands work much like the corresponding commands for ordinary
900diary entries: they apply to the date that point is on in the calendar
901window, and what they do is insert just the date portion of a diary entry
902at the end of your diary file. You must then insert the rest of the
903diary entry.
904
905@node Fancy Diary Display
906@section Fancy Diary Display
907@vindex diary-display-hook
908@findex simple-diary-display
909
910 Diary display works by preparing the diary buffer and then running the
911hook @code{diary-display-hook}. The default value of this hook
912(@code{simple-diary-display}) hides the irrelevant diary entries and
913then displays the buffer. However, if you specify the hook as follows,
914
915@cindex diary buffer
916@findex fancy-diary-display
917@example
918(add-hook 'diary-display-hook 'fancy-diary-display)
919@end example
920
921@noindent
922this enables fancy diary display. It displays diary entries and
923holidays by copying them into a special buffer that exists only for the
924sake of display. Copying to a separate buffer provides an opportunity
925to change the displayed text to make it prettier---for example, to sort
926the entries by the dates they apply to.
927
928 As with simple diary display, you can print a hard copy of the buffer
929with @code{print-diary-entries}. To print a hard copy of a day-by-day
930diary for a week, position point on Sunday of that week, type
931@kbd{7 d}, and then do @kbd{M-x print-diary-entries}. As usual, the
932inclusion of the holidays slows down the display slightly; you can speed
933things up by setting the variable @code{holidays-in-diary-buffer} to
934@code{nil}.
935
936@vindex diary-list-include-blanks
937 Ordinarily, the fancy diary buffer does not show days for which there are
938no diary entries, even if that day is a holiday. If you want such days to be
939shown in the fancy diary buffer, set the variable
940@code{diary-list-include-blanks} to @code{t}.@refill
941
942@cindex sorting diary entries
943 If you use the fancy diary display, you can use the normal hook
944@code{list-diary-entries-hook} to sort each day's diary entries by their
945time of day. Here's how:
946
947@findex sort-diary-entries
948@example
949(add-hook 'list-diary-entries-hook 'sort-diary-entries t)
950@end example
951
952@noindent
953For each day, this sorts diary entries that begin with a recognizable
954time of day according to their times. Diary entries without times come
955first within each day.
956
957 Fancy diary display also has the ability to process included diary
958files. This permits a group of people to share a diary file for events
959that apply to all of them. Lines in the diary file of this form:
960
961@smallexample
962#include "@var{filename}"
963@end smallexample
964
965@noindent
966includes the diary entries from the file @var{filename} in the fancy
967diary buffer. The include mechanism is recursive, so that included files
968can include other files, and so on; you must be careful not to have a
969cycle of inclusions, of course. Here is how to enable the include
970facility:
971
972@vindex list-diary-entries-hook
973@vindex mark-diary-entries-hook
974@findex include-other-diary-files
975@findex mark-included-diary-files
976@smallexample
977(add-hook 'list-diary-entries-hook 'include-other-diary-files)
978(add-hook 'mark-diary-entries-hook 'mark-included-diary-files)
979@end smallexample
980
981The include mechanism works only with the fancy diary display, because
982ordinary diary display shows the entries directly from your diary file.
983
984@node Sexp Diary Entries
985@section Sexp Entries and the Fancy Diary Display
986@cindex sexp diary entries
987
988 Sexp diary entries allow you to do more than just have complicated
989conditions under which a diary entry applies. If you use the fancy
990diary display, sexp entries can generate the text of the entry depending
991on the date itself. For example, an anniversary diary entry can insert
992the number of years since the anniversary date into the text of the
993diary entry. Thus the @samp{%d} in this dairy entry:
994
995@findex diary-anniversary
996@smallexample
997%%(diary-anniversary 10 31 1948) Arthur's birthday (%d years old)
998@end smallexample
999
1000@noindent
1001gets replaced by the age, so on October 31, 1990 the entry appears in
1002the fancy diary buffer like this:
1003
1004@smallexample
1005Arthur's birthday (42 years old)
1006@end smallexample
1007
1008@noindent
1009If the diary file instead contains this entry:
1010
1011@smallexample
1012%%(diary-anniversary 10 31 1948) Arthur's %d%s birthday
1013@end smallexample
1014
1015@noindent
1016the entry in the fancy diary buffer for October 31, 1990 appears like this:
1017
1018@smallexample
1019Arthur's 42nd birthday
1020@end smallexample
1021
1022 Similarly, cyclic diary entries can interpolate the number of repetitions
1023that have occurred:
1024
1025@findex diary-cyclic
1026@smallexample
1027%%(diary-cyclic 50 1 1 1990) Renew medication (%d%s time)
1028@end smallexample
1029
1030@noindent
1031looks like this:
1032
1033@smallexample
1034Renew medication (5th time)
1035@end smallexample
1036
1037@noindent
1038in the fancy diary display on September 8, 1990.
1039
1040 There is an early reminder diary sexp that includes its entry in the
1041diary not only on the date of occurrence, but also on earlier dates.
1042For example, if you want a reminder a week before your anniversary, you
1043can use
1044
1045@findex diary-remind
1046@smallexample
1047%%(diary-remind '(diary-anniversary 12 22 1968) 7) Ed's anniversary
1048@end smallexample
1049
1050@noindent
1051and the fancy diary will show
1052@smallexample
1053Ed's anniversary
1054@end smallexample
1055@noindent
1056both on December 15 and on December 22.
1057
1058@findex diary-date
1059 The function @code{diary-date} applies to dates described by a month,
1060day, year combination, each of which can be an integer, a list of
1061integers, or @code{t}. The value @code{t} means all values. For
1062example,
1063
1064@smallexample
1065%%(diary-date '(10 11 12) 22 t) Rake leaves
1066@end smallexample
1067
1068@noindent
1069causes the fancy diary to show
1070
1071@smallexample
1072Rake leaves
1073@end smallexample
1074
1075@noindent
1076on October 22, November 22, and December 22 of every year.
1077
1078@findex diary-float
1079 The function @code{diary-float} allows you to describe diary entries
1080that apply to dates like the third Friday of November, or the last
1081Tuesday in April. The parameters are the @var{month}, @var{dayname},
1082and an index @var{n}. The entry appears on the @var{n}th @var{dayname}
1083of @var{month}, where @var{dayname}=0 means Sunday, 1 means Monday, and
1084so on. If @var{n} is negative it counts backward from the end of
1085@var{month}. The value of @var{month} can be a list of months, a single
1086month, or @code{t} to specify all months. You can also use an optional
1087parameter @var{day} to specify the @var{n}th @var{dayname} of
1088@var{month} on or after/before @var{day}; the value of @var{day} defaults
1089to 1 if @var{n} is positive and to the last day of @var{month} if
1090@var{n} is negative. For example,
1091
1092@smallexample
1093%%(diary-float t 1 -1) Pay rent
1094@end smallexample
1095
1096@noindent
1097causes the fancy diary to show
1098
1099@smallexample
1100Pay rent
1101@end smallexample
1102
1103@noindent
1104on the last Monday of every month.
1105
1106 The generality of sexp diary entries lets you specify any diary
1107entry that you can describe algorithmically. A sexp diary entry
1108contains an expression that computes whether the entry applies to any
1109given date. If its value is non-@code{nil}, the entry applies to that
1110date; otherwise, it does not. The expression can use the variable
1111@code{date} to find the date being considered; its value is a list
1112(@var{month} @var{day} @var{year}) that refers to the Gregorian
1113calendar.
1114
1115 The sexp diary entry applies to a date when the expression's value
1116is non-@code{nil}, but some values have more specific meanings. If
1117the value is a string, that string is a description of the event which
1118occurs on that date. The value can also have the form
1119@code{(@var{mark} . @var{string})}; then @var{mark} specifies how to
1120mark the date in the calendar, and @var{string} is the description of
1121the event. If @var{mark} is a single-character string, that character
1122appears next to the date in the calendar. If @var{mark} is a face
1123name, the date is displayed in that face. If @var{mark} is
1124@code{nil}, that specifies no particular highlighting for the date.
1125
1126 Suppose you get paid on the 21st of the month if it is a weekday, and
1127on the Friday before if the 21st is on a weekend. Here is how to write
1128a sexp diary entry that matches those dates:
1129
1130@smallexample
1131&%%(let ((dayname (calendar-day-of-week date))
1132 (day (car (cdr date))))
1133 (or (and (= day 21) (memq dayname '(1 2 3 4 5)))
1134 (and (memq day '(19 20)) (= dayname 5)))
1135 ) Pay check deposited
1136@end smallexample
1137
1138 The following sexp diary entries take advantage of the ability (in the fancy
1139diary display) to concoct diary entries whose text varies based on the date:
1140
1141@findex diary-sunrise-sunset
1142@findex diary-phases-of-moon
1143@findex diary-day-of-year
1144@findex diary-iso-date
1145@findex diary-julian-date
1146@findex diary-astro-day-number
1147@findex diary-hebrew-date
1148@findex diary-islamic-date
1149@findex diary-french-date
1150@findex diary-mayan-date
1151@table @code
1152@item %%(diary-sunrise-sunset)
1153Make a diary entry for the local times of today's sunrise and sunset.
1154@item %%(diary-phases-of-moon)
1155Make a diary entry for the phases (quarters) of the moon.
1156@item %%(diary-day-of-year)
1157Make a diary entry with today's day number in the current year and the number
1158of days remaining in the current year.
1159@item %%(diary-iso-date)
1160Make a diary entry with today's equivalent ISO commercial date.
1161@item %%(diary-julian-date)
1162Make a diary entry with today's equivalent date on the Julian calendar.
1163@item %%(diary-astro-day-number)
1164Make a diary entry with today's equivalent astronomical (Julian) day number.
1165@item %%(diary-hebrew-date)
1166Make a diary entry with today's equivalent date on the Hebrew calendar.
1167@item %%(diary-islamic-date)
1168Make a diary entry with today's equivalent date on the Islamic calendar.
1169@item %%(diary-french-date)
1170Make a diary entry with today's equivalent date on the French Revolutionary
1171calendar.
1172@item %%(diary-mayan-date)
1173Make a diary entry with today's equivalent date on the Mayan calendar.
1174@end table
1175
1176@noindent
1177Thus including the diary entry
1178
1179@example
1180&%%(diary-hebrew-date)
1181@end example
1182
1183@noindent
1184causes every day's diary display to contain the equivalent date on the
1185Hebrew calendar, if you are using the fancy diary display. (With simple
1186diary display, the line @samp{&%%(diary-hebrew-date)} appears in the
1187diary for any date, but does nothing particularly useful.)
1188
1189 These functions can be used to construct sexp diary entries based on
1190the Hebrew calendar in certain standard ways:
1191
1192@cindex rosh hodesh
1193@findex diary-rosh-hodesh
1194@cindex parasha, weekly
1195@findex diary-parasha
1196@cindex candle lighting times
1197@findex diary-sabbath-candles
1198@cindex omer count
1199@findex diary-omer
1200@cindex yahrzeits
1201@findex diary-yahrzeit
1202@table @code
1203@item %%(diary-rosh-hodesh)
1204Make a diary entry that tells the occurrence and ritual announcement of each
1205new Hebrew month.
1206@item %%(diary-parasha)
1207Make a Saturday diary entry that tells the weekly synagogue scripture reading.
1208@item %%(diary-sabbath-candles)
1209Make a Friday diary entry that tells the @emph{local time} of Sabbath
1210candle lighting.
1211@item %%(diary-omer)
1212Make a diary entry that gives the omer count, when appropriate.
1213@item %%(diary-yahrzeit @var{month} @var{day} @var{year}) @var{name}
1214Make a diary entry marking the anniversary of a date of death. The date
1215is the @emph{Gregorian} (civil) date of death. The diary entry appears
1216on the proper Hebrew calendar anniversary and on the day before. (In
1217the European style, the order of the parameters is changed to @var{day},
1218@var{month}, @var{year}.)
1219@end table
1220
1221 All the functions documented above take an optional argument
1222@var{mark} which specifies how to mark the date in the calendar display.
1223If one of these functions decides that it applies to a certain date,
1224it returns a value that contains @var{mark}.
1225
1226
310@node Index 1227@node Index
311@unnumbered Index 1228@unnumbered Index
312 1229
diff --git a/man/emacs.texi b/man/emacs.texi
index a619448a8ba..0ad3a5148c9 100644
--- a/man/emacs.texi
+++ b/man/emacs.texi
@@ -224,11 +224,13 @@ Recovery from Problems
224* Contributing:: How to contribute improvements to Emacs. 224* Contributing:: How to contribute improvements to Emacs.
225* Service:: How to get help for your own Emacs needs. 225* Service:: How to get help for your own Emacs needs.
226 226
227
228Detailed Node Listing
229---------------------
230
227Here are some other nodes which are really inferiors of the ones 231Here are some other nodes which are really inferiors of the ones
228already listed, mentioned here so you can get to them in one step: 232already listed, mentioned here so you can get to them in one step:
229 233
230 --- The Detailed Node Listing ---
231
232The Organization of the Screen 234The Organization of the Screen
233 235
234* Point:: The place in the text where editing commands operate. 236* Point:: The place in the text where editing commands operate.
@@ -563,6 +565,8 @@ Compiling and Testing Programs
563* Compilation Mode:: The mode for visiting compiler errors. 565* Compilation Mode:: The mode for visiting compiler errors.
564* Compilation Shell:: Customizing your shell properly 566* Compilation Shell:: Customizing your shell properly
565 for use in the compilation buffer. 567 for use in the compilation buffer.
568* Grep Searching:: Searching with grep.
569* Flymake:: Finding syntax errors on the fly.
566* Debuggers:: Running symbolic debuggers for non-Lisp programs. 570* Debuggers:: Running symbolic debuggers for non-Lisp programs.
567* Executing Lisp:: Various modes for editing Lisp programs, 571* Executing Lisp:: Various modes for editing Lisp programs,
568 with different facilities for running 572 with different facilities for running
@@ -676,6 +680,9 @@ Dired, the Directory Editor
676* Hiding Subdirectories:: Making subdirectories visible or invisible. 680* Hiding Subdirectories:: Making subdirectories visible or invisible.
677* Dired Updating:: Discarding lines for files of no interest. 681* Dired Updating:: Discarding lines for files of no interest.
678* Dired and Find:: Using `find' to choose the files for Dired. 682* Dired and Find:: Using `find' to choose the files for Dired.
683* Dired and Find:: Using `find' to choose the files for Dired.
684* Wdired:: Operating on files by editing the Dired buffer.
685* Misc Dired Features:: Various other features.
679 686
680The Calendar and the Diary 687The Calendar and the Diary
681 688
@@ -709,7 +716,7 @@ Conversion To and From Other Calendars
709 716
710The Diary 717The Diary
711 718
712* Diary Commands:: Viewing diary entries and associated calendar dates. 719* Displaying the Diary:: Viewing diary entries and associated calendar dates.
713* Format of Diary File:: Entering events in your diary. 720* Format of Diary File:: Entering events in your diary.
714* Date Formats:: Various ways you can specify dates. 721* Date Formats:: Various ways you can specify dates.
715* Adding to Diary:: Commands to create diary entries. 722* Adding to Diary:: Commands to create diary entries.
diff --git a/man/files.texi b/man/files.texi
index 4e944f83afd..7ed2baa0b93 100644
--- a/man/files.texi
+++ b/man/files.texi
@@ -238,13 +238,13 @@ or tool bar) use the toolkit's standard File Selection dialog instead
238of prompting for the file name in the minibuffer. On Unix and 238of prompting for the file name in the minibuffer. On Unix and
239GNU/Linux platforms, Emacs does that when built with GTK, LessTif, and 239GNU/Linux platforms, Emacs does that when built with GTK, LessTif, and
240Motif toolkits; on MS-Windows, the GUI version does that by default. 240Motif toolkits; on MS-Windows, the GUI version does that by default.
241For information on how to customize this, see @xref{Dialog Boxes}. 241For information on how to customize this, see @ref{Dialog Boxes}.
242 242
243 Secondly, Emacs supports the ``drag and drop'' protocol on the X 243 Secondly, Emacs supports the ``drag and drop'' protocol on the X
244window system. Dropping a file into an ordinary Emacs window visits 244window system. Dropping a file into an ordinary Emacs window visits
245the file using that window. However, dropping a file into a window 245the file using that window. However, dropping a file into a window
246displaying a Dired buffer moves or copies the file into the displayed 246displaying a Dired buffer moves or copies the file into the displayed
247directory. For details, see @xref{Drag and Drop} and @xref{Misc Dired 247directory. For details, see @ref{Drag and Drop}, @ref{Misc Dired
248Features}. 248Features}.
249 249
250@cindex creating files 250@cindex creating files
@@ -940,6 +940,15 @@ Auto-Revert Tail mode, @kbd{M-x auto-revert-tail-mode}.
940for a changed file. Since checking a remote file is too slow, these 940for a changed file. Since checking a remote file is too slow, these
941modes do not check or revert remote files. 941modes do not check or revert remote files.
942 942
943@vindex auto-revert-check-vc-info
944 Whenever Auto Revert mode reverts the buffer, it updates the version
945control information, such as the version control number displayed in
946the mode line. However, this information may not be properly updated
947if the version control state changes outside of Emacs---for example,
948if a new version is checked in from outside the current Emacs session.
949If you set @code{auto-revert-check-vc-info} to @code{t}, Auto Revert
950mode will update the version control status information periodically.
951
943@node Auto Save 952@node Auto Save
944@section Auto-Saving: Protection Against Disasters 953@section Auto-Saving: Protection Against Disasters
945@cindex Auto Save mode 954@cindex Auto Save mode
@@ -1263,6 +1272,10 @@ as multiple branches, are not available with SCCS. You should use
1263SCCS only if for some reason you cannot use RCS, or one of the 1272SCCS only if for some reason you cannot use RCS, or one of the
1264higher-level systems such as CVS or GNU Arch. 1273higher-level systems such as CVS or GNU Arch.
1265 1274
1275In the following, we discuss mainly RCS, SCCS and CVS. Nearly
1276everything said about CVS applies to Gnu Arch, Subversion and Meta-CVS
1277as well.
1278
1266@node VC Concepts 1279@node VC Concepts
1267@subsubsection Concepts of Version Control 1280@subsubsection Concepts of Version Control
1268 1281
@@ -1463,9 +1476,9 @@ informs you if another user has checked in changes in the same file
1463since you began editing it, and when this happens, his changes will be 1476since you began editing it, and when this happens, his changes will be
1464effectively removed when you check in your version (though they will 1477effectively removed when you check in your version (though they will
1465remain in the master file, so they will not be entirely lost). You must 1478remain in the master file, so they will not be entirely lost). You must
1466therefore verify the current version is unchanged, before you check in your 1479therefore verify that the current version is unchanged, before you
1467changes. We hope to eliminate this risk and provide automatic merging 1480check in your changes. We hope to eliminate this risk and provide
1468with RCS in a future Emacs version. 1481automatic merging with RCS in a future Emacs version.
1469 1482
1470 In addition, locking is possible with RCS even in this mode, although 1483 In addition, locking is possible with RCS even in this mode, although
1471it is not required; @kbd{C-x v v} with an unmodified file locks the 1484it is not required; @kbd{C-x v v} with an unmodified file locks the
@@ -1689,13 +1702,10 @@ there is more than one system in use for a directory, Emacs uses the one
1689that appears first in @code{vc-handled-backends} (@pxref{Customizing VC}). 1702that appears first in @code{vc-handled-backends} (@pxref{Customizing VC}).
1690On the other hand, if there are no files already registered, 1703On the other hand, if there are no files already registered,
1691Emacs uses the first system from @code{vc-handled-backends} that could 1704Emacs uses the first system from @code{vc-handled-backends} that could
1692register the file---for example, you cannot register a file under CVS if 1705register the file (for example, you cannot register a file under CVS if
1693its directory is not already part of a CVS tree. 1706its directory is not already part of a CVS tree); with the default
1694 1707value of @code{vc-handled-backends}, this means that Emacs uses RCS in
1695 With the default value of @code{vc-handled-backends}, this means 1708this situation.
1696that Emacs uses RCS if there are any files under RCS control, CVS if
1697there are any files under CVS, SCCS if any files are under SCCS, or
1698RCS as the ultimate default.
1699 1709
1700 If locking is in use, @kbd{C-x v i} leaves the file unlocked and 1710 If locking is in use, @kbd{C-x v i} leaves the file unlocked and
1701read-only. Type @kbd{C-x v v} if you wish to start editing it. After 1711read-only. Type @kbd{C-x v v} if you wish to start editing it. After
@@ -1883,7 +1893,8 @@ marked files, so that you can lock or check in several files at once.
1883If it operates on more than one file, it handles each file according to 1893If it operates on more than one file, it handles each file according to
1884its current state; thus, it might lock one file, but check in another 1894its current state; thus, it might lock one file, but check in another
1885file. This could be confusing; it is up to you to avoid confusing 1895file. This could be confusing; it is up to you to avoid confusing
1886behavior by marking a set of files that are in a similar state. 1896behavior by marking a set of files that are in a similar state. If no
1897files are marked, @kbd{v v} operates on the file in the current line.
1887 1898
1888 If any files call for check-in, @kbd{v v} reads a single log entry, 1899 If any files call for check-in, @kbd{v v} reads a single log entry,
1889then uses it for all the files being checked in. This is convenient for 1900then uses it for all the files being checked in. This is convenient for
@@ -1911,8 +1922,7 @@ program in which you are gradually adding various unfinished new
1911features. Each such independent line of development is called a 1922features. Each such independent line of development is called a
1912@dfn{branch}. VC allows you to create branches, switch between 1923@dfn{branch}. VC allows you to create branches, switch between
1913different branches, and merge changes from one branch to another. 1924different branches, and merge changes from one branch to another.
1914Please note, however, that branches are only supported for RCS at the 1925Please note, however, that branches are not supported for SCCS.
1915moment.
1916 1926
1917 A file's main line of development is usually called the @dfn{trunk}. 1927 A file's main line of development is usually called the @dfn{trunk}.
1918The versions on the trunk are normally numbered 1.1, 1.2, 1.3, etc. At 1928The versions on the trunk are normally numbered 1.1, 1.2, 1.3, etc. At
@@ -2255,7 +2265,8 @@ But if you do this, the revision numbers in the RCS master no longer
2255correspond to those of CVS. Technically, this is not a problem, but 2265correspond to those of CVS. Technically, this is not a problem, but
2256it can become difficult to keep track of what is in the CVS repository 2266it can become difficult to keep track of what is in the CVS repository
2257and what is not. So we suggest that you return from time to time to 2267and what is not. So we suggest that you return from time to time to
2258CVS-only operation, using @kbd{C-u C-x v v cvs @key{RET}}. 2268CVS-only operation, by committing your local changes back to the
2269repository using @kbd{C-u C-x v v cvs @key{RET}}.
2259 2270
2260@node Snapshots 2271@node Snapshots
2261@subsection Snapshots 2272@subsection Snapshots
@@ -2543,13 +2554,11 @@ insert a suitable header string.
2543Insert headers in a file for use with your version-control system. 2554Insert headers in a file for use with your version-control system.
2544@end table 2555@end table
2545 2556
2546@vindex vc-header-alist 2557@vindex vc-@var{backend}-header
2547 The default header string is @samp{@w{$}Id$} for RCS and 2558 The default header string is @samp{@w{$}Id$} for RCS and
2548@samp{@w{%}W%} for SCCS. You can specify other headers to insert by 2559@samp{@w{%}W%} for SCCS. You can specify other headers to insert by
2549setting the variable @code{vc-header-alist}. Its value is a list of 2560setting the variables @code{vc-@var{backend}-header} where
2550elements of the form @code{(@var{program} . @var{string})} where 2561@var{backend} is @code{rcs} or @code{sccs}.
2551@var{program} is @code{RCS} or @code{SCCS} and @var{string} is the
2552string to use.
2553 2562
2554 Instead of a single string, you can specify a list of strings; then 2563 Instead of a single string, you can specify a list of strings; then
2555each string in the list is inserted as a separate header on a line of 2564each string in the list is inserted as a separate header on a line of
@@ -2577,8 +2586,8 @@ elements of the form @code{(@var{regexp} . @var{format})}. Whenever
2577@var{regexp} matches the buffer name, @var{format} is inserted as part 2586@var{regexp} matches the buffer name, @var{format} is inserted as part
2578of the header. A header line is inserted for each element that matches 2587of the header. A header line is inserted for each element that matches
2579the buffer name, and for each string specified by 2588the buffer name, and for each string specified by
2580@code{vc-header-alist}. The header line is made by processing the 2589@code{vc-@var{backend}-header}. The header line is made by processing the
2581string from @code{vc-header-alist} with the format taken from the 2590string from @code{vc-@var{backend}-header} with the format taken from the
2582element. The default value for @code{vc-static-header-alist} is as follows: 2591element. The default value for @code{vc-static-header-alist} is as follows:
2583 2592
2584@example 2593@example
@@ -2615,10 +2624,10 @@ headers.
2615@vindex vc-handled-backends 2624@vindex vc-handled-backends
2616The variable @code{vc-handled-backends} determines which version 2625The variable @code{vc-handled-backends} determines which version
2617control systems VC should handle. The default value is @code{(RCS CVS 2626control systems VC should handle. The default value is @code{(RCS CVS
2618SCCS)}, so it contains all three version systems that are currently 2627SVN SCCS Arch MCVS)}, so it contains all six version systems that are
2619supported. If you want VC to ignore one or more of these systems, 2628currently supported. If you want VC to ignore one or more of these
2620exclude its name from the list. To disable VC entirely, set this 2629systems, exclude its name from the list. To disable VC entirely, set
2621variable to @code{nil}. 2630this variable to @code{nil}.
2622 2631
2623The order of systems in the list is significant: when you visit a file 2632The order of systems in the list is significant: when you visit a file
2624registered in more than one system (@pxref{Local Version Control}), 2633registered in more than one system (@pxref{Local Version Control}),
@@ -2771,8 +2780,9 @@ pick up any recent changes from the repository first, using @kbd{C-x v m
2771@key{RET}}, @pxref{Merging}). 2780@key{RET}}, @pxref{Merging}).
2772 2781
2773@vindex vc-cvs-global-switches 2782@vindex vc-cvs-global-switches
2774 The variable @code{vc-cvs-global-switches} should be a string 2783 The variable @code{vc-cvs-global-switches}, if non-@code{nil},
2775specifying switches to pass to CVS for all CVS operations. 2784should be a string specifying switches to pass to CVS for all CVS
2785operations.
2776 2786
2777 When @code{vc-cvs-stay-local} is @code{t}, VC also makes local 2787 When @code{vc-cvs-stay-local} is @code{t}, VC also makes local
2778version backups, so that simple diff and revert operations are 2788version backups, so that simple diff and revert operations are
@@ -2891,7 +2901,7 @@ the command is finished. For more information about windows in Emacs,
2891 With a numeric argument, @code{compare-windows} ignores changes in 2901 With a numeric argument, @code{compare-windows} ignores changes in
2892whitespace. If the variable @code{compare-ignore-case} is 2902whitespace. If the variable @code{compare-ignore-case} is
2893non-@code{nil}, the comparison ignores differences in case as well. 2903non-@code{nil}, the comparison ignores differences in case as well.
2894If the variable @code{compare-ignore-whitespace} is non-nil, 2904If the variable @code{compare-ignore-whitespace} is non-@code{nil},
2895@code{compare-windows} normally ignores changes in whitespace, and a 2905@code{compare-windows} normally ignores changes in whitespace, and a
2896prefix argument turns that off. 2906prefix argument turns that off.
2897 2907
@@ -3289,6 +3299,10 @@ Clear the cache; that is, remove all file names from it.
3289@node File Conveniences 3299@node File Conveniences
3290@section Convenience Features for Finding Files 3300@section Convenience Features for Finding Files
3291 3301
3302 In this section, we introduce some convenient facilities for finding
3303recently-opened files, reading file names from a buffer, and viewing
3304image files.
3305
3292@findex recentf-mode 3306@findex recentf-mode
3293@vindex recentf-mode 3307@vindex recentf-mode
3294@findex recentf-save-list 3308@findex recentf-save-list
@@ -3299,25 +3313,22 @@ opened files. @kbd{M-x recentf-save-list} saves the current
3299@code{recent-file-list} to a file, and @kbd{M-x recentf-edit-list} 3313@code{recent-file-list} to a file, and @kbd{M-x recentf-edit-list}
3300edits it. 3314edits it.
3301 3315
3302@findex auto-image-file-mode
3303@findex mode, auto-image-file
3304@cindex images, visiting
3305@cindex visiting image files
3306@vindex image-file-name-regexps
3307@vindex image-file-name-extensions
3308 When Auto-image-file minor mode is enabled, visiting an image file
3309displays it as an image, not as text. Likewise, inserting an image
3310file into a buffer inserts it as an image. This works only when Emacs
3311can display the relevant image type. The variables
3312@code{image-file-name-extensions} or @code{image-file-name-regexps}
3313control which file names are recognized as containing images.
3314
3315 The @kbd{M-x ffap} command generalizes @code{find-file} with more 3316 The @kbd{M-x ffap} command generalizes @code{find-file} with more
3316powerful heuristic defaults (@pxref{FFAP}), often based on the text at 3317powerful heuristic defaults (@pxref{FFAP}), often based on the text at
3317point. Partial Completion mode offers other features extending 3318point. Partial Completion mode offers other features extending
3318@code{find-file}, which can be used with @code{ffap}. 3319@code{find-file}, which can be used with @code{ffap}.
3319@xref{Completion Options}. 3320@xref{Completion Options}.
3320 3321
3322@findex thumbs-mode
3323@findex mode, thumbs
3324 Thumbs mode is a major mode for viewing directories containing many
3325image files. To use it, type @kbd{M-x thumbs} and specify the
3326directory to view. The images in that directory will be displayed in
3327a @samp{Thumbs} buffer as @dfn{thumbnails}; type @kbd{RET} on a
3328thumbnail to view the full-size image. Thumbs mode requires the
3329@file{convert} program, which is part of the ImageMagick software
3330package.
3331
3321@ignore 3332@ignore
3322 arch-tag: 768d32cb-e15a-4cc1-b7bf-62c00ee12250 3333 arch-tag: 768d32cb-e15a-4cc1-b7bf-62c00ee12250
3323@end ignore 3334@end ignore
diff --git a/man/frames.texi b/man/frames.texi
index edbda679b46..dee29afe050 100644
--- a/man/frames.texi
+++ b/man/frames.texi
@@ -83,6 +83,18 @@ in between the mouse command and @key{DELETE}, it does not do this.
83Move point to where you click (@code{mouse-set-point}). 83Move point to where you click (@code{mouse-set-point}).
84This is normally the left button. 84This is normally the left button.
85 85
86@vindex x-mouse-click-focus-ignore-position
87Normally, Emacs does not distinguish between ordinary mouse clicks and
88clicks that select a frame. When you click on a frame to select it,
89that also changes the selected window and cursor position according to
90the mouse click position. On the X window system, you can change this
91behavior by setting the variable
92@code{x-mouse-click-focus-ignore-position} to @code{t}. Then the
93first click selects the frame, but does not affect the selected window
94or cursor position. If you click again in the same place, since that
95click will be in the selected frame, it will change the window or
96cursor position.
97
86@item Drag-Mouse-1 98@item Drag-Mouse-1
87Set the region to the text you select by dragging, and copy it to the 99Set the region to the text you select by dragging, and copy it to the
88kill ring (@code{mouse-set-region}). You can specify both ends of the 100kill ring (@code{mouse-set-region}). You can specify both ends of the
@@ -96,6 +108,10 @@ entirely on the screen. The number of lines scrolled per step depends
96on how far away from the window edge the mouse has gone; the variable 108on how far away from the window edge the mouse has gone; the variable
97@code{mouse-scroll-min-lines} specifies a minimum step size. 109@code{mouse-scroll-min-lines} specifies a minimum step size.
98 110
111@vindex mouse-drag-copy-region
112If the variable @code{mouse-drag-copy-region} is @code{nil}, this
113mouse command does not copy the selected region into the kill ring.
114
99@item Mouse-2 115@item Mouse-2
100Yank the last killed text, where you click (@code{mouse-yank-at-click}). 116Yank the last killed text, where you click (@code{mouse-yank-at-click}).
101This is normally the middle button. 117This is normally the middle button.
diff --git a/man/gnus-faq.texi b/man/gnus-faq.texi
index 42266aa4646..742227b64fc 100644
--- a/man/gnus-faq.texi
+++ b/man/gnus-faq.texi
@@ -1,210 +1,203 @@
1@c Insert "\input texinfo" at 1st line before texing this file alone. 1@c \input texinfo @c -*-texinfo-*-
2@c -*-texinfo-*- 2@c Uncomment 1st line before texing this file alone.
3@c Copyright (C) 1995, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. 3@c %**start of header
4@c Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
5@c
6@c Do not modify this file, it was generated from gnus-faq.xml, available from
7@c <URL:http://my.gnus.org/FAQ/>.
8@c
4@setfilename gnus-faq.info 9@setfilename gnus-faq.info
5 10@settitle Frequently Asked Questions
6@c Frequently Asked Questions, FAQ - Introduction, Emacs for Heathens, Top 11@c %**end of header
12@c
7 13
8@node Frequently Asked Questions 14@node Frequently Asked Questions
9@comment node-name, next, previous, up
10
11@c @chapter Frequently Asked Questions
12@section Frequently Asked Questions 15@section Frequently Asked Questions
13@cindex FAQ
14@cindex Frequently Asked Questions
15
16@c - Uncomment @chapter, comment @section
17@c - run (texinfo-every-node-update)
18@c - revert it.
19 16
20@menu 17@menu
21* FAQ - Introduction:: About Gnus and this FAQ. 18* FAQ - Changes::
22* FAQ 1 - Installation:: Installation of Gnus. 19* FAQ - Introduction:: About Gnus and this FAQ.
23* FAQ 2 - Startup / Group buffer:: Start up questions and the first 20* FAQ 1 - Installation FAQ:: Installation of Gnus.
24 buffer Gnus shows you. 21* FAQ 2 - Startup / Group buffer:: Start up questions and the
25* FAQ 3 - Getting messages:: Making Gnus read your mail and news. 22 first buffer Gnus shows you.
26* FAQ 4 - Reading messages:: How to efficiently read messages. 23* FAQ 3 - Getting Messages:: Making Gnus read your mail
27* FAQ 5 - Composing messages:: Composing mails or Usenet postings. 24 and news.
28* FAQ 6 - Old messages:: Importing, archiving, searching 25* FAQ 4 - Reading messages:: How to efficiently read
29 and deleting messages. 26 messages.
30* FAQ 7 - Gnus in a dial-up environment:: Reading mail and news while offline. 27* FAQ 5 - Composing messages:: Composing mails or Usenet
31* FAQ 8 - Getting help:: When this FAQ isn't enough. 28 postings.
32* FAQ 9 - Tuning Gnus:: How to make Gnus faster. 29* FAQ 6 - Old messages:: Importing, archiving,
33* FAQ - Glossary:: Terms used in the FAQ explained. 30 searching and deleting messages.
31* FAQ 7 - Gnus in a dial-up environment:: Reading mail and news while
32 offline.
33* FAQ 8 - Getting help:: When this FAQ isn't enough.
34* FAQ 9 - Tuning Gnus:: How to make Gnus faster.
35* FAQ - Glossary:: Terms used in the FAQ
36 explained.
34@end menu 37@end menu
35 38
36
37@subheading Abstract 39@subheading Abstract
38 40
39 This is the new Gnus Frequently Asked Questions list. If you have a 41This is the new Gnus Frequently Asked Questions list.
40Web browser, the official hypertext version is at 42If you have a Web browser, the official hypertext version is at
41@uref{http://my.gnus.org/FAQ/}, the Docbook source is available from 43@uref{http://my.gnus.org/FAQ/},
42@uref{http://sourceforge.net/projects/gnus/}. 44the Docbook source is available from
43 45@uref{http://sourceforge.net/projects/gnus/, http://sourceforge.net}.
44 46
45 Please submit features and suggestions to the 47Please submit features and suggestions to the
46 @email{faq-discuss@@my.gnus.org,FAQ discussion list}. 48@email{faq-discuss@@my.gnus.org, FAQ discussion list}.
47 The list is protected against junk mail with 49The list is protected against junk mail with
48 @uref{http://smarden.org/qconfirm/index.html,qconfirm, qconfirm}. As 50@uref{http://smarden.org/qconfirm/index.html, qconfirm}. As
49 a subscriber, your submissions will automatically pass. You can 51a subscriber, your submissions will automatically pass. You can
50 also subscribe to the list by sending a blank email to 52also subscribe to the list by sending a blank email to
51 @email{faq-discuss-subscribe@@my.gnus.org} 53@email{faq-discuss-subscribe@@my.gnus.org, faq-discuss-subscribe@@my.gnus.org}
52 and 54and @uref{http://mail1.kens.com/cgi-bin/ezmlm-browse?command=monthbythread%26list=faq-discuss, browse
53 @uref{http://mail1.kens.com/cgi-bin/ezmlm-browse?command=monthbythread%26list=faq-discuss,browse 55the archive}.
54 the archive, browse the archive}.
55
56@node FAQ - Introduction, FAQ 1 - Installation, Frequently Asked Questions, Frequently Asked Questions
57@comment node-name, next, previous, up
58@heading Introduction
59 56
60This is the Gnus Frequently Asked Questions list. 57@node FAQ - Changes
58@subheading Changes
61 59
62Gnus is a Usenet Newsreader and Electronic Mail User Agent implemented
63 as a part of Emacs. It's been around in some form for almost a decade
64 now, and has been distributed as a standard part of Emacs for much of
65 that time. Gnus 5 is the latest (and greatest) incarnation. The
66 original version was called GNUS, and was written by Masanobu UMEDA.
67 When autumn crept up in '94, Lars Magne Ingebrigtsen grew bored and
68 decided to rewrite Gnus.
69
70 Its biggest strength is the fact that it is extremely
71 customizable. It is somewhat intimidating at first glance, but
72 most of the complexity can be ignored until you're ready to take
73 advantage of it. If you receive a reasonable volume of e-mail
74 (you're on various mailing lists), or you would like to read
75 high-volume mailing lists but cannot keep up with them, or read
76 high volume newsgroups or are just bored, then Gnus is what you
77 want.
78
79 This FAQ was maintained by Justin Sheehy until March 2002. He
80 would like to thank Steve Baur and Per Abrahamsen for doing a wonderful
81 job with this FAQ before him. We would like to do the same - thanks,
82 Justin!
83
84 60
85 If you have a Web browser, the official hypertext version is at:@*
86 @uref{http://my.gnus.org/FAQ/}.
87 This version is much nicer than the unofficial hypertext
88 versions that are archived at Utrecht, Oxford, Smart Pages, Ohio
89 State, and other FAQ archives. See the resources question below
90 if you want information on obtaining it in another format.
91
92 61
93 The information contained here was compiled with the assistance 62@itemize @bullet
94 of the Gnus development mailing list, and any errors or 63
95 misprints are the my.gnus.org team's fault, sorry. 64@item
65Updated FAQ to reflect release of Gnus 5.10 and start of
66No Gnus development.
67@end itemize
96 68
69@node FAQ - Introduction
70@subheading Introduction
71
72This is the Gnus Frequently Asked Questions list.
97 73
98@ifnottex 74Gnus is a Usenet Newsreader and Electronic Mail User Agent implemented
99@node FAQ 1 - Installation, FAQ 2 - Startup / Group buffer, FAQ - Introduction, Frequently Asked Questions 75as a part of Emacs. It's been around in some form for almost a decade
100@end ifnottex 76now, and has been distributed as a standard part of Emacs for much of
101@subsection Installation 77that time. Gnus 5 is the latest (and greatest) incarnation. The
78original version was called GNUS, and was written by Masanobu UMEDA.
79When autumn crept up in '94, Lars Magne Ingebrigtsen grew bored and
80decided to rewrite Gnus.
81
82Its biggest strength is the fact that it is extremely
83customizable. It is somewhat intimidating at first glance, but
84most of the complexity can be ignored until you're ready to take
85advantage of it. If you receive a reasonable volume of e-mail
86(you're on various mailing lists), or you would like to read
87high-volume mailing lists but cannot keep up with them, or read
88high volume newsgroups or are just bored, then Gnus is what you
89want.
90
91This FAQ was maintained by Justin Sheehy until March 2002. He
92would like to thank Steve Baur and Per Abrahamsen for doing a wonderful
93job with this FAQ before him. We would like to do the same - thanks,
94Justin!
95
96If you have a Web browser, the official hypertext version is at:
97@uref{http://my.gnus.org/FAQ/}.
98This version is much nicer than the unofficial hypertext
99versions that are archived at Utrecht, Oxford, Smart Pages, Ohio
100State, and other FAQ archives. See the resources question below
101if you want information on obtaining it in another format.
102
103The information contained here was compiled with the assistance
104of the Gnus development mailing list, and any errors or
105misprints are the my.gnus.org team's fault, sorry.
106
107@node FAQ 1 - Installation FAQ
108@subsection Installation FAQ
102 109
103@menu 110@menu
104* [1.1]:: What is the latest version of Gnus? 111* [1.1]:: What is the latest version of Gnus?
105* [1.2]:: What's new in 5.10? 112* [1.2]:: What's new in 5.10?
106* [1.3]:: Where and how to get Gnus? 113* [1.3]:: Where and how to get Gnus?
107* [1.4]:: What to do with the tarball now? 114* [1.4]:: What to do with the tarball now?
108* [1.5]:: Which version of Emacs do I need? 115* [1.5]:: I sometimes read references to No Gnus and Oort Gnus, what
109* [1.6]:: How do I run Gnus on both Emacs and XEmacs? 116 are those?
117* [1.6]:: Which version of Emacs do I need?
118* [1.7]:: How do I run Gnus on both Emacs and XEmacs?
110@end menu 119@end menu
111 120
112 121@node [1.1]
113@ifnottex 122@subsubheading Question 1.1
114@node [1.1], [1.2], FAQ 1 - Installation, FAQ 1 - Installation
115@end ifnottex
116@subsubheading Question 1.1:
117 123
118What is the latest version of Gnus? 124What is the latest version of Gnus?
119 125
120Answer: 126@subsubheading Answer
121 127
122 Jingle please: Gnus 5.10 is released, get it while it's 128Jingle please: Gnus 5.10 is released, get it while it's
123 hot! As well as the step in version number is rather 129hot! As well as the step in version number is rather
124 small, Gnus 5.10 has tons of new features which you 130small, Gnus 5.10 has tons of new features which you
125 shouldn't miss, however if you are cautious, you might 131shouldn't miss. The current release (5.10.6) should be at
126 prefer to stay with 5.8.8 respectively 5.9 (they are 132least as stable as the latest release of the 5.8 series.
127 basically the same) until some bugfix releases are out.
128
129@ifnottex
130@node [1.2], [1.3], [1.1], FAQ 1 - Installation
131@end ifnottex
132@subsubheading Question 1.2:
133 133
134What's new in 5.10? 134@node [1.2]
135@subsubheading Question 1.2
135 136
136Answer: 137What's new in 5.10?
137 138
138 First of all, you should have a look into the file 139@subsubheading Answer
139 GNUS-NEWS in the toplevel directory of the Gnus tarball,
140 there the most important changes are listed. Here's a
141 short list of the changes I find especially
142 important/interesting:
143
144 140
145 141First of all, you should have a look into the file
142GNUS-NEWS in the toplevel directory of the Gnus tarball,
143there the most important changes are listed. Here's a
144short list of the changes I find especially
145important/interesting:
146 146
147@itemize @bullet{} 147@itemize @bullet
148 148
149@item 149@item
150 Major rewrite of the Gnus agent, Gnus agent is now 150Major rewrite of the Gnus agent, Gnus agent is now
151 active by default. 151active by default.
152 152
153@item 153@item
154 Many new article washing functions for dealing with 154Many new article washing functions for dealing with
155 ugly formatted articles. 155ugly formatted articles.
156 156
157@item 157@item
158 Anti Spam features. 158Anti Spam features.
159 159
160@item 160@item
161 message-utils now included in Gnus. 161Message-utils now included in Gnus.
162 162
163@item 163@item
164 New format specifiers for summary lines, e.g. %B for 164New format specifiers for summary lines, e.g. %B for
165 a complex trn-style thread tree. 165a complex trn-style thread tree.
166
167@end itemize 166@end itemize
168 167
169@ifnottex 168@node [1.3]
170@node [1.3], [1.4], [1.2], FAQ 1 - Installation 169@subsubheading Question 1.3
171@end ifnottex
172@subsubheading Question 1.3:
173 170
174Where and how to get Gnus? 171Where and how to get Gnus?
175 172
176Answer: 173@subsubheading Answer
177 174
178 The latest released version of Gnus isn't included in 175The latest released version of Gnus isn't included in
179 Emacs 21 and until now it also isn't available through the 176Emacs 21, therefor you should get the Gnus tarball from
180 package system of XEmacs 21.4, therefor you should get the 177@uref{http://www.gnus.org/dist/gnus.tar.gz}
181 Gnus tarball from 178or via anonymous FTP from
182 @uref{http://www.gnus.org/dist/gnus.tar.gz} 179@uref{ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz}.
183 or via anonymous FTP from 180If you use XEmacs instead of Emacs you can use XEmacs'
184 @uref{ftp://ftp.gnus.org/pub/gnus/gnus.tar.gz}. 181package system instead.
185
186@ifnottex
187@node [1.4], [1.5], [1.3], FAQ 1 - Installation
188@end ifnottex
189@subsubheading Question 1.4:
190 182
191 What to do with the tarball now? 183@node [1.4]
192 184@subsubheading Question 1.4
193 185
194Answer: 186What to do with the tarball now?
195 187
196 Untar it via @samp{tar xvzf gnus.tar.gz} and do the common 188@subsubheading Answer
197 @samp{./configure; make; make install} circle. 189
198 (under MS-Windows either get the Cygwin environment from 190Untar it via @samp{tar xvzf gnus.tar.gz} and do the common
199 @uref{http://www.cygwin.com} 191@samp{./configure; make; make install} circle.
200 which allows you to do what's described above or unpack the 192(under MS-Windows either get the Cygwin environment from
201 tarball with some packer (e.g. Winace from 193@uref{http://www.cygwin.com}
202 @uref{http://www.winace.com}) 194which allows you to do what's described above or unpack the
203 and use the batch-file make.bat included in the tarball to install 195tarball with some packer (e.g. Winace from
204 Gnus. If you don't want to (or aren't allowed to) install Gnus 196@uref{http://www.winace.com})
205 system-wide, you can install it in your home directory and add the 197and use the batch-file make.bat included in the tarball to install
206 following lines to your ~/.xemacs/init.el or ~/.emacs: 198Gnus.) If you don't want to (or aren't allowed to) install Gnus
207 199system-wide, you can install it in your home directory and add the
200following lines to your ~/.xemacs/init.el or ~/.emacs:
208 201
209@example 202@example
210(add-to-list 'load-path "/path/to/gnus/lisp") 203(add-to-list 'load-path "/path/to/gnus/lisp")
@@ -212,436 +205,395 @@ Answer:
212 (add-to-list 'Info-directory-list "/path/to/gnus/texi/") 205 (add-to-list 'Info-directory-list "/path/to/gnus/texi/")
213 (add-to-list 'Info-default-directory-list "/path/to/gnus/texi/")) 206 (add-to-list 'Info-default-directory-list "/path/to/gnus/texi/"))
214@end example 207@end example
215
216@noindent 208@noindent
217 Make sure that you don't have any Gnus related stuff 209
218 before this line, on MS Windows use something like 210Make sure that you don't have any Gnus related stuff
219 "C:/path/to/lisp" (yes, "/"). 211before this line, on MS Windows use something like
220 212"C:/path/to/lisp" (yes, "/").
221@ifnottex 213
222@node [1.5], [1.6], [1.4], FAQ 1 - Installation 214@node [1.5]
223@end ifnottex 215@subsubheading Question 1.5
224@subsubheading Question 1.5: 216
217I sometimes read references to No Gnus and Oort Gnus,
218what are those?
219
220@subsubheading Answer
221
222Oort Gnus was the name of the development version of
223Gnus, which became Gnus 5.10 in autumn 2003. No Gnus is
224the name of the current development version which will
225once become Gnus 5.12 or Gnus 6. (If you're wondering why
226not 5.11, the odd version numbers are normally used for
227the Gnus versions bundled with Emacs)
228
229@node [1.6]
230@subsubheading Question 1.6
225 231
226Which version of Emacs do I need? 232Which version of Emacs do I need?
227 233
228Answer: 234@subsubheading Answer
229 235
230 Gnus 5.10 requires an Emacs version that is greater 236Gnus 5.10 requires an Emacs version that is greater
231 than or equal to Emacs 20.7 or XEmacs 21.1. 237than or equal to Emacs 20.7 or XEmacs 21.1. The
232 238development versions of Gnus (aka No Gnus) require Emacs
233@ifnottex 23921 or XEmacs 21.4.
234@node [1.6], , [1.5], FAQ 1 - Installation 240
235@end ifnottex 241@node [1.7]
236@subsubheading Question 1.6: 242@subsubheading Question 1.7
237 243
238How do I run Gnus on both Emacs and XEmacs? 244How do I run Gnus on both Emacs and XEmacs?
239 245
240Answer: 246@subsubheading Answer
241 247
242 You can't use the same copy of Gnus in both as the Lisp 248You can't use the same copy of Gnus in both as the Lisp
243 files are byte-compiled to a format which is different 249files are byte-compiled to a format which is different
244 depending on which Emacs did the compilation. Get one copy 250depending on which Emacs did the compilation. Get one copy
245 of Gnus for Emacs and one for XEmacs. 251of Gnus for Emacs and one for XEmacs.
246 252
247@ifnottex 253@node FAQ 2 - Startup / Group buffer
248@node FAQ 2 - Startup / Group buffer, FAQ 3 - Getting messages, FAQ 1 - Installation, Frequently Asked Questions
249@end ifnottex
250@subsection Startup / Group buffer 254@subsection Startup / Group buffer
251 255
252@menu 256@menu
253* [2.1]:: Every time I start Gnus I get a message 257* [2.1]:: Every time I start Gnus I get a message "Gnus auto-save
254 "Gnus auto-save file exists. Do you want to read it?", 258 file exists. Do you want to read it?", what does this mean and
255 what does this mean and how to prevent it? 259 how to prevent it?
256* [2.2]:: Gnus doesn't remember which groups I'm subscribed to, what's this? 260* [2.2]:: Gnus doesn't remember which groups I'm subscribed to,
257* [2.3]:: How to change the format of the lines in Group buffer? 261 what's this?
258* [2.4]:: My group buffer becomes a bit crowded, is there a way to sort my 262* [2.3]:: How to change the format of the lines in Group buffer?
259 groups into categories so I can easier browse through them? 263* [2.4]:: My group buffer becomes a bit crowded, is there a way to
260* [2.5]:: How to manually sort the groups in Group buffer? How to sort the 264 sort my groups into categories so I can easier browse through
261 groups in a topic? 265 them?
266* [2.5]:: How to manually sort the groups in Group buffer? How to
267 sort the groups in a topic?
262@end menu 268@end menu
263 269
264@ifnottex 270@node [2.1]
265@node [2.1], [2.2], FAQ 2 - Startup / Group buffer, FAQ 2 - Startup / Group buffer 271@subsubheading Question 2.1
266@end ifnottex
267@subsubheading Question 2.1:
268 272
269 Every time I start Gnus I get a message "Gnus auto-save 273Every time I start Gnus I get a message "Gnus auto-save
270 file exists. Do you want to read it?", what does this mean 274file exists. Do you want to read it?", what does this mean
271 and how to prevent it? 275and how to prevent it?
272
273 276
274Answer: 277@subsubheading Answer
275 278
276 This message means that the last time you used Gnus, it 279This message means that the last time you used Gnus, it
277 wasn't properly exited and therefor couldn't write its 280wasn't properly exited and therefor couldn't write its
278 informations to disk (e.g. which messages you read), you 281informations to disk (e.g. which messages you read), you
279 are now asked if you want to restore those informations 282are now asked if you want to restore those informations
280 from the auto-save file. 283from the auto-save file.
281
282 284
283 To prevent this message make sure you exit Gnus 285To prevent this message make sure you exit Gnus
284 via @samp{q} in group buffer instead of 286via @samp{q} in group buffer instead of
285 just killing Emacs. 287just killing Emacs.
286
287@ifnottex
288@node [2.2], [2.3], [2.1], FAQ 2 - Startup / Group buffer
289@end ifnottex
290@subsubheading Question: 2.2
291 288
292 Gnus doesn't remember which groups I'm subscribed to, 289@node [2.2]
293 what's this? 290@subsubheading Question 2.2
294
295 291
296Answer: 292Gnus doesn't remember which groups I'm subscribed to,
293what's this?
297 294
298 You get the message described in the q/a pair above while 295@subsubheading Answer
299 starting Gnus, right? It's an other symptom for the same
300 problem, so read the answer above.
301
302@ifnottex
303@node [2.3], [2.4], [2.2], FAQ 2 - Startup / Group buffer
304@end ifnottex
305@subsubheading Question 2.3:
306 296
307 How to change the format of the lines in Group buffer? 297You get the message described in the q/a pair above while
308 298starting Gnus, right? It's an other symptom for the same
299problem, so read the answer above.
309 300
310Answer: 301@node [2.3]
302@subsubheading Question 2.3
311 303
312 You've got to tweak the value of the variable 304How to change the format of the lines in Group buffer?
313 gnus-group-line-format. See the manual node "Group Line
314 Specification" for information on how to do this. An
315 example for this (guess from whose .gnus :-)):
316
317 305
318@example 306@subsubheading Answer
319 307
308You've got to tweak the value of the variable
309gnus-group-line-format. See the manual node "Group Line
310Specification" for information on how to do this. An
311example for this (guess from whose .gnus :-)):
312
313@example
320(setq gnus-group-line-format "%P%M%S[%5t]%5y : %(%g%)\n") 314(setq gnus-group-line-format "%P%M%S[%5t]%5y : %(%g%)\n")
321
322@end example 315@end example
323 316@noindent
324@ifnottex
325@node [2.4], [2.5], [2.3], FAQ 2 - Startup / Group buffer
326@end ifnottex
327@subsubheading Question 2.4:
328
329 My group buffer becomes a bit crowded, is there a way to
330 sort my groups into categories so I can easier browse
331 through them?
332
333 317
334Answer: 318@node [2.4]
319@subsubheading Question 2.4
335 320
336 Gnus offers the topic mode, it allows you to sort your 321My group buffer becomes a bit crowded, is there a way to
337 groups in, well, topics, e.g. all groups dealing with 322sort my groups into categories so I can easier browse
338 Linux under the topic linux, all dealing with music under 323through them?
339 the topic music and all dealing with scottish music under
340 the topic scottish which is a subtopic of music.
341
342 324
343 To enter topic mode, just hit t while in Group buffer. Now 325@subsubheading Answer
344 you can use @samp{T n} to create a topic
345 at point and @samp{T m} to move a group to
346 a specific topic. For more commands see the manual or the
347 menu. You might want to include the %P specifier at the
348 beginning of your gnus-group-line-format variable to have
349 the groups nicely indented.
350
351@ifnottex
352@node [2.5], , [2.4], FAQ 2 - Startup / Group buffer
353@end ifnottex
354@subsubheading Question 2.5:
355 326
356 How to manually sort the groups in Group buffer? How to 327Gnus offers the topic mode, it allows you to sort your
357 sort the groups in a topic? 328groups in, well, topics, e.g. all groups dealing with
358 329Linux under the topic linux, all dealing with music under
330the topic music and all dealing with scottish music under
331the topic scottish which is a subtopic of music.
359 332
360Answer: 333To enter topic mode, just hit t while in Group buffer. Now
334you can use @samp{T n} to create a topic
335at point and @samp{T m} to move a group to
336a specific topic. For more commands see the manual or the
337menu. You might want to include the %P specifier at the
338beginning of your gnus-group-line-format variable to have
339the groups nicely indented.
361 340
362 Move point over the group you want to move and 341@node [2.5]
363 hit @samp{C-k}, now move point to the 342@subsubheading Question 2.5
364 place where you want the group to be and 343
365 hit @samp{C-y}. 344How to manually sort the groups in Group buffer? How to
366 345sort the groups in a topic?
367@ifnottex 346
368@node FAQ 3 - Getting messages, FAQ 4 - Reading messages, FAQ 2 - Startup / Group buffer, Frequently Asked Questions 347@subsubheading Answer
369@end ifnottex 348
370@subsection Getting messages 349Move point over the group you want to move and
350hit @samp{C-k}, now move point to the
351place where you want the group to be and
352hit @samp{C-y}.
353
354@node FAQ 3 - Getting Messages
355@subsection Getting Messages
371 356
372@menu 357@menu
373* [3.1]:: I just installed Gnus, started it via M-x gnus but it only says 358* [3.1]:: I just installed Gnus, started it via @samp{M-x gnus}
374 "nntp (news) open error", what to do? 359 but it only says "nntp (news) open error", what to do?
375* [3.2]:: I'm working under Windows and have no idea what ~/.gnus means. 360* [3.2]:: I'm working under Windows and have no idea what ~/.gnus.el
376* [3.3]:: My news server requires authentication, how to store user name 361 means.
377 and password on disk? 362* [3.3]:: My news server requires authentication, how to store user
378* [3.4]:: Gnus seems to start up OK, but I can't find out how to 363 name and password on disk?
379 subscribe to a group. 364* [3.4]:: Gnus seems to start up OK, but I can't find out how to
380* [3.5]:: Gnus doesn't show all groups / Gnus says I'm not allowed to 365 subscribe to a group.
381 post on this server as well as I am, what's that? 366* [3.5]:: Gnus doesn't show all groups / Gnus says I'm not allowed
382* [3.6]:: I want Gnus to fetch news from several servers, is this possible? 367 to post on this server as well as I am, what's that?
383* [3.7]:: And how about local spool files? 368* [3.6]:: I want Gnus to fetch news from several servers, is this
384* [3.8]:: OK, reading news works now, but I want to be able to read my mail 369 possible?
385 with Gnus, too. How to do it? 370* [3.7]:: And how about local spool files?
386* [3.9]:: And what about IMAP? 371* [3.8]:: OK, reading news works now, but I want to be able to read
387* [3.10]:: At the office we use one of those MS Exchange servers, 372 my mail with Gnus, too. How to do it?
388 can I use Gnus to read my mail from it? 373* [3.9]:: And what about IMAP?
389* [3.11]:: Can I tell Gnus not to delete the mails on the server 374* [3.10]:: At the office we use one of those MS Exchange servers, can
390 it retrieves via POP3? 375 I use Gnus to read my mail from it?
376* [3.11]:: Can I tell Gnus not to delete the mails on the server it
377 retrieves via POP3?
391@end menu 378@end menu
392 379
393@ifnottex 380@node [3.1]
394@node [3.1], [3.2], FAQ 3 - Getting messages, FAQ 3 - Getting messages 381@subsubheading Question 3.1
395@end ifnottex
396@subsubheading Question 3.1:
397 382
398 I just installed Gnus, started it via 383I just installed Gnus, started it via
399 @samp{M-x gnus} 384@samp{M-x gnus}
400 but it only says "nntp (news) open error", what to do? 385but it only says "nntp (news) open error", what to do?
401
402 386
403Answer: 387@subsubheading Answer
404 388
405 You've got to tell Gnus where to fetch the news from. Read 389You've got to tell Gnus where to fetch the news from. Read
406 the documentation for information on how to do this. As a 390the documentation for information on how to do this. As a
407 first start, put those lines in ~/.gnus: 391first start, put those lines in ~/.gnus.el:
408
409 392
410@example 393@example
411(setq gnus-select-method '(nntp "news.yourprovider.net")) 394(setq gnus-select-method '(nntp "news.yourprovider.net"))
412(setq user-mail-address "you@@yourprovider.net") 395(setq user-mail-address "you@@yourprovider.net")
413(setq user-full-name "Your Name") 396(setq user-full-name "Your Name")
414@end example 397@end example
415 398@noindent
416@ifnottex
417@node [3.2], [3.3], [3.1], FAQ 3 - Getting messages
418@end ifnottex
419@subsubheading Question 3.2:
420
421 I'm working under Windows and have no idea what ~/.gnus means.
422
423 399
424Answer: 400@node [3.2]
425 401@subsubheading Question 3.2
426 The ~/ means the home directory where Gnus and Emacs look for the 402
427configuration files. However, you don't really need to know what this 403I'm working under Windows and have no idea what ~/.gnus.el means.
428means, it suffices that Emacs knows what it means :-) You can type 404
429@samp{C-x C-f ~/.gnus RET } (yes, with the forward slash, even on 405@subsubheading Answer
430Windows), and Emacs will open the right file for you. (It will most 406
431likely be new, and thus empty.) However, I'd discourage you from 407The ~/ means the home directory where Gnus and Emacs look
432doing so, since the directory Emacs chooses will most certainly not be 408for the configuration files. However, you don't really
433what you want, so let's do it the correct way. The first thing you've 409need to know what this means, it suffices that Emacs knows
434got to do is to create a suitable directory (no blanks in directory 410what it means :-) You can type
435name please) e.g. @file{c:\myhome}. Then you must set the environment 411@samp{C-x C-f ~/.gnus.el RET }
436variable HOME to this directory. To do this under Win9x or Me include 412(yes, with the forward slash, even on Windows), and
437the line 413Emacs will open the right file for you. (It will most
438 414likely be new, and thus empty.)
415However, I'd discourage you from doing so, since the
416directory Emacs chooses will most certainly not be what
417you want, so let's do it the correct way.
418The first thing you've got to do is to
419create a suitable directory (no blanks in directory name
420please) e.g. c:\myhome. Then you must set the environment
421variable HOME to this directory. To do this under Win9x
422or Me include the line
439 423
440@example 424@example
441
442SET HOME=C:\myhome 425SET HOME=C:\myhome
443
444@end example 426@end example
445
446@noindent 427@noindent
447 in your autoexec.bat and reboot. Under NT, 2000 and XP,
448 hit Winkey+Pause/Break to enter system options (if it
449 doesn't work, go to Control Panel -> System). There you'll
450 find the possibility to set environment variables, create
451 a new one with name HOME and value @file{c:\myhome}, a reboot is
452 not necessary.
453
454 428
455 Now to create ~/.gnus, say 429in your autoexec.bat and reboot. Under NT, 2000 and XP,
456 @samp{C-x C-f ~/.gnus RET C-x C-s}. 430hit Winkey+Pause/Break to enter system options (if it
457 in Emacs. 431doesn't work, go to Control Panel -> System). There you'll
458 432find the possibility to set environment variables, create
459@ifnottex 433a new one with name HOME and value C:\myhome, a reboot is
460@node [3.3], [3.4], [3.2], FAQ 3 - Getting messages 434not necessary.
461@end ifnottex
462@subsubheading Question 3.3:
463 435
464 My news server requires authentication, how to store 436Now to create ~/.gnus.el, say
465 user name and password on disk? 437@samp{C-x C-f ~/.gnus.el RET C-x C-s}.
466 438in Emacs.
467 439
468Answer: 440@node [3.3]
441@subsubheading Question 3.3
469 442
470 Create a file ~/.authinfo which includes for each server a line like this 443My news server requires authentication, how to store
471 444user name and password on disk?
445
446@subsubheading Answer
447
448Create a file ~/.authinfo which includes for each server a line like this
472 449
473@example 450@example
474machine news.yourprovider.net login YourUserName password YourPassword 451machine news.yourprovider.net login YourUserName password YourPassword
475@end example 452@end example
476
477@noindent 453@noindent
478. 454.
479 Make sure that the file isn't readable to others if you 455Make sure that the file isn't readable to others if you
480 work on a OS which is capable of doing so. (Under Unix 456work on a OS which is capable of doing so. (Under Unix
481 say 457say
482
483@example 458@example
484chmod 600 ~/.authinfo 459chmod 600 ~/.authinfo
485@end example 460@end example
486
487@noindent 461@noindent
488 in a shell.)
489
490@ifnottex
491@node [3.4], [3.5], [3.3], FAQ 3 - Getting messages
492@end ifnottex
493@subsubheading Question 3.4:
494 462
495 Gnus seems to start up OK, but I can't find out how to 463in a shell.)
496 subscribe to a group.
497
498 464
499Answer: 465@node [3.4]
466@subsubheading Question 3.4
500 467
501 If you know the name of the group say @samp{U 468Gnus seems to start up OK, but I can't find out how to
502 name.of.group RET} in group buffer (use the 469subscribe to a group.
503 tab-completion Luke). Otherwise hit ^ in group buffer,
504 this brings you to the server buffer. Now place point (the
505 cursor) over the server which carries the group you want,
506 hit @samp{RET}, move point to the group
507 you want to subscribe to and say @samp{u}
508 to subscribe to it.
509
510@ifnottex
511@node [3.5], [3.6], [3.4], FAQ 3 - Getting messages
512@end ifnottex
513@subsubheading Question 3.5:
514 470
515 Gnus doesn't show all groups / Gnus says I'm not allowed to 471@subsubheading Answer
516 post on this server as well as I am, what's that?
517
518 472
519Answer: 473If you know the name of the group say @samp{U
474name.of.group RET} in group buffer (use the
475tab-completion Luke). Otherwise hit ^ in group buffer,
476this brings you to the server buffer. Now place point (the
477cursor) over the server which carries the group you want,
478hit @samp{RET}, move point to the group
479you want to subscribe to and say @samp{u}
480to subscribe to it.
520 481
521 Some providers allow restricted anonymous access and full 482@node [3.5]
522 access only after authorization. To make Gnus send authinfo 483@subsubheading Question 3.5
523 to those servers append 484
524 485Gnus doesn't show all groups / Gnus says I'm not allowed to
486post on this server as well as I am, what's that?
487
488@subsubheading Answer
489
490Some providers allow restricted anonymous access and full
491access only after authorization. To make Gnus send authinfo
492to those servers append
525 493
526@example 494@example
527force yes 495force yes
528@end example 496@end example
529
530
531@noindent 497@noindent
532 to the line for those servers in ~/.authinfo.
533 498
534@ifnottex 499to the line for those servers in ~/.authinfo.
535@node [3.6], [3.7], [3.5], FAQ 3 - Getting messages
536@end ifnottex
537@subsubheading Question 3.6:
538 500
539 I want Gnus to fetch news from several servers, is this possible? 501@node [3.6]
540 502@subsubheading Question 3.6
541 503
542Answer: 504I want Gnus to fetch news from several servers, is this possible?
543 505
544 Of course. You can specify more sources for articles in the 506@subsubheading Answer
545 variable gnus-secondary-select-methods. Add something like 507
546 this in ~/.gnus: 508Of course. You can specify more sources for articles in the
547 509variable gnus-secondary-select-methods. Add something like
510this in ~/.gnus.el:
548 511
549@example 512@example
550(add-to-list 'gnus-secondary-select-methods 513(add-to-list 'gnus-secondary-select-methods
551 '(nntp "news.yourSecondProvider.net")) 514 '(nntp "news.yourSecondProvider.net"))
552(add-to-list 'gnus-secondary-select-methods 515(add-to-list 'gnus-secondary-select-methods
553 '(nntp "news.yourThirdProvider.net")) 516 '(nntp "news.yourThirdProvider.net"))
554@end example 517@end example
555 518@noindent
556@ifnottex
557@node [3.7], [3.8], [3.6], FAQ 3 - Getting messages
558@end ifnottex
559@subsubheading Question 3.7:
560 519
561 And how about local spool files? 520@node [3.7]
562 521@subsubheading Question 3.7
563 522
564Answer: 523And how about local spool files?
565 524
566 No problem, this is just one more select method called 525@subsubheading Answer
567 nnspool, so you want this: 526
568 527No problem, this is just one more select method called
528nnspool, so you want this:
569 529
570@example 530@example
571(add-to-list 'gnus-secondary-select-methods '(nnspool "")) 531(add-to-list 'gnus-secondary-select-methods '(nnspool ""))
572@end example 532@end example
573
574@noindent 533@noindent
575 Or this if you don't want an NNTP Server as primary news source: 534
576 535Or this if you don't want an NNTP Server as primary news source:
577 536
578@example 537@example
579(setq gnus-select-method '(nnspool "")) 538(setq gnus-select-method '(nnspool ""))
580@end example 539@end example
581
582@noindent 540@noindent
583 Gnus will look for the spool file in /usr/spool/news, if you 541
584 want something different, change the line above to something like this: 542Gnus will look for the spool file in /usr/spool/news, if you
585 543want something different, change the line above to something like this:
586 544
587@example 545@example
588(add-to-list 'gnus-secondary-select-methods 546(add-to-list 'gnus-secondary-select-methods
589 '(nnspool "" (nnspool-directory "/usr/local/myspoolddir"))) 547 '(nnspool ""
548 (nnspool-directory "/usr/local/myspoolddir")))
590@end example 549@end example
591
592@noindent 550@noindent
593 This sets the spool directory for this server only.
594 You might have to specify more stuff like the program used
595 to post articles, see the Gnus manual on how to do this.
596
597@ifnottex
598@node [3.8], [3.9], [3.7], FAQ 3 - Getting messages
599@end ifnottex
600@subsubheading Question 3.8:
601 551
602 OK, reading news works now, but I want to be able to read my mail 552This sets the spool directory for this server only.
603 with Gnus, too. How to do it? 553You might have to specify more stuff like the program used
604 554to post articles, see the Gnus manual on how to do this.
605 555
606Answer: 556@node [3.8]
607 557@subsubheading Question 3.8
608 That's a bit harder since there are many possible sources 558
609 for mail, many possible ways for storing mail and many 559OK, reading news works now, but I want to be able to read my mail
610 different ways for sending mail. The most common cases are 560with Gnus, too. How to do it?
611 these: 1: You want to read your mail from a pop3 server and 561
612 send them directly to a SMTP Server 2: Some program like 562@subsubheading Answer
613 fetchmail retrieves your mail and stores it on disk from 563
614 where Gnus shall read it. Outgoing mail is sent by 564That's a bit harder since there are many possible sources
615 Sendmail, Postfix or some other MTA. Sometimes, you even 565for mail, many possible ways for storing mail and many
616 need a combination of the above cases. 566different ways for sending mail. The most common cases are
617 567these: 1: You want to read your mail from a pop3 server and
618 568send them directly to a SMTP Server 2: Some program like
619 However, the first thing to do is to tell Gnus in which way 569fetchmail retrieves your mail and stores it on disk from
620 it should store the mail, in Gnus terminology which back end 570where Gnus shall read it. Outgoing mail is sent by
621 to use. Gnus supports many different back ends, the most 571Sendmail, Postfix or some other MTA. Sometimes, you even
622 commonly used one is nnml. It stores every mail in one file 572need a combination of the above cases.
623 and is therefor quite fast. However you might prefer a one 573
624 file per group approach if your file system has problems with 574However, the first thing to do is to tell Gnus in which way
625 many small files, the nnfolder back end is then probably the 575it should store the mail, in Gnus terminology which back end
626 choice for you. To use nnml add the following to ~/.gnus: 576to use. Gnus supports many different back ends, the most
627 577commonly used one is nnml. It stores every mail in one file
578and is therefor quite fast. However you might prefer a one
579file per group approach if your file system has problems with
580many small files, the nnfolder back end is then probably the
581choice for you. To use nnml add the following to ~/.gnus.el:
628 582
629@example 583@example
630(add-to-list 'gnus-secondary-select-methods '(nnml "")) 584(add-to-list 'gnus-secondary-select-methods '(nnml ""))
631@end example 585@end example
632
633@noindent 586@noindent
634 As you might have guessed, if you want nnfolder, it's 587
635 588As you might have guessed, if you want nnfolder, it's
636 589
637@example 590@example
638(add-to-list 'gnus-secondary-select-methods '(nnfolder "")) 591(add-to-list 'gnus-secondary-select-methods '(nnfolder ""))
639@end example 592@end example
640 593@noindent
641 594
642 Now we need to tell Gnus, where to get it's mail from. If 595Now we need to tell Gnus, where to get it's mail from. If
643 it's a POP3 server, then you need something like this: 596it's a POP3 server, then you need something like this:
644
645 597
646@example 598@example
647(eval-after-load "mail-source" 599(eval-after-load "mail-source"
@@ -649,75 +601,68 @@ Answer:
649 :user "yourUserName" 601 :user "yourUserName"
650 :password "yourPassword"))) 602 :password "yourPassword")))
651@end example 603@end example
652
653@noindent 604@noindent
654 Make sure ~/.gnus isn't readable to others if you store 605
655 your password there. If you want to read your mail from a 606Make sure ~/.gnus.el isn't readable to others if you store
656 traditional spool file on your local machine, it's 607your password there. If you want to read your mail from a
657 608traditional spool file on your local machine, it's
658 609
659@example 610@example
660(eval-after-load "mail-source" 611(eval-after-load "mail-source"
661 '(add-to-list 'mail-sources '(file :path "/path/to/spool/file"))) 612 '(add-to-list 'mail-sources '(file :path "/path/to/spool/file"))
662@end example 613@end example
663
664@noindent 614@noindent
665 If it's a Maildir, with one file per message as used by 615
666 postfix, Qmail and (optionally) fetchmail it's 616If it's a Maildir, with one file per message as used by
667 617postfix, Qmail and (optionally) fetchmail it's
668 618
669@example 619@example
670(eval-after-load "mail-source" 620(eval-after-load "mail-source"
671 '(add-to-list 'mail-sources '(maildir :path "/path/to/Maildir/" 621 '(add-to-list 'mail-sources '(maildir :path "/path/to/Maildir/"
672 :subdirs ("cur" "new"))) 622 :subdirs ("cur" "new")))
673@end example 623@end example
674
675@noindent 624@noindent
676 And finally if you want to read your mail from several files 625
677 in one directory, for example because procmail already split your 626And finally if you want to read your mail from several files
678 mail, it's 627in one directory, for example because procmail already split your
679 628mail, it's
680 629
681@example 630@example
682(eval-after-load "mail-source" 631(eval-after-load "mail-source"
683 '(add-to-list 'mail-sources '(directory :path "/path/to/procmail-dir/" 632 '(add-to-list 'mail-sources
684 :suffix ".prcml")) 633 '(directory :path "/path/to/procmail-dir/"
634 :suffix ".prcml")))
685@end example 635@end example
686
687@noindent 636@noindent
688 Where :suffix ".prcml" tells Gnus only to use files with the
689 suffix .prcml.
690
691 637
692 OK, now you only need to tell Gnus how to send mail. If you 638Where :suffix ".prcml" tells Gnus only to use files with the
693 want to send mail via sendmail (or whichever MTA is playing 639suffix .prcml.
694 the role of sendmail on your system), you don't need to do 640
695 anything. However, if you want to send your mail to an 641OK, now you only need to tell Gnus how to send mail. If you
696 SMTP Server you need the following in your ~/.gnus 642want to send mail via sendmail (or whichever MTA is playing
697 643the role of sendmail on your system), you don't need to do
644anything. However, if you want to send your mail to an
645SMTP Server you need the following in your ~/.gnus.el
698 646
699@example 647@example
700(setq send-mail-function 'smtpmail-send-it) 648(setq send-mail-function 'smtpmail-send-it)
701(setq message-send-mail-function 'smtpmail-send-it) 649(setq message-send-mail-function 'smtpmail-send-it)
702(setq smtpmail-default-smtp-server "smtp.yourProvider.net") 650(setq smtpmail-default-smtp-server "smtp.yourProvider.net")
703@end example 651@end example
704 652@noindent
705@ifnottex
706@node [3.9], [3.10], [3.8], FAQ 3 - Getting messages
707@end ifnottex
708@subsubheading Question 3.9:
709 653
710 And what about IMAP? 654@node [3.9]
711 655@subsubheading Question 3.9
712 656
713Answer: 657And what about IMAP?
714 658
715 There are two ways of using IMAP with Gnus. The first one is 659@subsubheading Answer
716 to use IMAP like POP3, that means Gnus fetches the mail from 660
717 the IMAP server and stores it on disk. If you want to do 661There are two ways of using IMAP with Gnus. The first one is
718 this (you don't really want to do this) add the following to 662to use IMAP like POP3, that means Gnus fetches the mail from
719 ~/.gnus 663the IMAP server and stores it on disk. If you want to do
720 664this (you don't really want to do this) add the following to
665~/.gnus.el
721 666
722@example 667@example
723(add-to-list 'mail-sources '(imap :server "mail.mycorp.com" 668(add-to-list 'mail-sources '(imap :server "mail.mycorp.com"
@@ -728,249 +673,215 @@ Answer:
728 :mailbox "INBOX" 673 :mailbox "INBOX"
729 :fetchflag "\\Seen")) 674 :fetchflag "\\Seen"))
730@end example 675@end example
731
732@noindent 676@noindent
733 You might have to tweak the values for stream and/or
734 authentification, see the Gnus manual node "Mail Source
735 Specifiers" for possible values.
736
737 677
738 If you want to use IMAP the way it's intended, you've got to 678You might have to tweak the values for stream and/or
739 follow a different approach. You've got to add the nnimap 679authentification, see the Gnus manual node "Mail Source
740 back end to your select method and give the information 680Specifiers" for possible values.
741 about the server there. 681
742 682If you want to use IMAP the way it's intended, you've got to
683follow a different approach. You've got to add the nnimap
684back end to your select method and give the information
685about the server there.
743 686
744@example 687@example
745(add-to-list 688(add-to-list 'gnus-secondary-select-methods
746 'gnus-secondary-select-methods 689 '(nnimap "Give the baby a name"
747 '(nnimap "Give the baby a name" 690 (nnimap-address "imap.yourProvider.net")
748 (nnimap-address "imap.yourProvider.net") 691 (nnimap-port 143)
749 (nnimap-port 143) 692 (nnimap-list-pattern "archive.*")))
750 (nnimap-list-pattern "archive.*")))
751@end example 693@end example
752
753@noindent 694@noindent
754 Again, you might have to specify how to authenticate to the
755 server if Gnus can't guess the correct way, see the Manual
756 Node "IMAP" for detailed information.
757
758@ifnottex
759@node [3.10], [3.11], [3.9], FAQ 3 - Getting messages
760@end ifnottex
761@subsubheading Question 3.10:
762
763 At the office we use one of those MS Exchange servers, can I use
764 Gnus to read my mail from it?
765
766
767Answer:
768 695
769 Offer your administrator a pair of new running shoes for 696Again, you might have to specify how to authenticate to the
770 activating IMAP on the server and follow the instructions 697server if Gnus can't guess the correct way, see the Manual
771 above. 698Node "IMAP" for detailed information.
772 699
773@ifnottex 700@node [3.10]
774@node [3.11], , [3.10], FAQ 3 - Getting messages 701@subsubheading Question 3.10
775@end ifnottex 702
776@subsubheading Question 3.11: 703At the office we use one of those MS Exchange servers, can I use
777 704Gnus to read my mail from it?
778 Can I tell Gnus not to delete the mails on the server it 705
779 retrieves via POP3? 706@subsubheading Answer
780 707
781 708Offer your administrator a pair of new running shoes for
782Answer: 709activating IMAP on the server and follow the instructions
783 710above.
784 First of all, that's not the way POP3 is intended to work, 711
785 if you have the possibility, you should use the IMAP 712@node [3.11]
786 Protocol if you want your messages to stay on the 713@subsubheading Question 3.11
787 server. Nevertheless there might be situations where you 714
788 need the feature, but sadly Gnus itself has no predefined 715Can I tell Gnus not to delete the mails on the server it
789 functionality to do so. 716retrieves via POP3?
790 717
791 718@subsubheading Answer
792 However this is Gnus county so there are possibilities to 719
793 achieve what you want. The easiest way is to get an external 720First of all, that's not the way POP3 is intended to work,
794 program which retrieves copies of the mail and stores them 721if you have the possibility, you should use the IMAP
795 on disk, so Gnus can read it from there. On Unix systems you 722Protocol if you want your messages to stay on the
796 could use e.g. fetchmail for this, on MS Windows you can use 723server. Nevertheless there might be situations where you
797 Hamster, an excellent local news and mail server. 724need the feature, but sadly Gnus itself has no predefined
798 725functionality to do so.
799 726
800 The other solution would be, to replace the method Gnus 727However this is Gnus county so there are possibilities to
801 uses to get mail from POP3 servers by one which is capable 728achieve what you want. The easiest way is to get an external
802 of leaving the mail on the server. If you use XEmacs, get 729program which retrieves copies of the mail and stores them
803 the package mail-lib, it includes an enhanced pop3.el, 730on disk, so Gnus can read it from there. On Unix systems you
804 look in the file, there's documentation on how to tell 731could use e.g. fetchmail for this, on MS Windows you can use
805 Gnus to use it and not to delete the retrieved mail. For 732Hamster, an excellent local news and mail server.
806 GNU Emacs look for the file epop3.el which can do the same 733
807 (If you know the home of this file, please send me an 734The other solution would be, to replace the method Gnus
808 e-mail). You can also tell Gnus to use an external program 735uses to get mail from POP3 servers by one which is capable
809 (e.g. fetchmail) to fetch your mail, see the info node 736of leaving the mail on the server. If you use XEmacs, get
810 "Mail Source Specifiers" in the Gnus manual on how to do 737the package mail-lib, it includes an enhanced pop3.el,
811 it. 738look in the file, there's documentation on how to tell
812 739Gnus to use it and not to delete the retrieved mail. For
813 740GNU Emacs look for the file epop3.el which can do the same
814@ifnottex 741(If you know the home of this file, please send me an
815@node FAQ 4 - Reading messages, FAQ 5 - Composing messages, FAQ 3 - Getting messages, Frequently Asked Questions 742e-mail). You can also tell Gnus to use an external program
816@end ifnottex 743(e.g. fetchmail) to fetch your mail, see the info node
744"Mail Source Specifiers" in the Gnus manual on how to do
745it.
746
747@node FAQ 4 - Reading messages
817@subsection Reading messages 748@subsection Reading messages
818 749
819@menu 750@menu
820* [4.1]:: When I enter a group, all read messages are gone. 751* [4.1]:: When I enter a group, all read messages are gone. How to
821 How to view them again? 752 view them again?
822* [4.2]:: How to tell Gnus to show an important message every time 753* [4.2]:: How to tell Gnus to show an important message every time I
823 I enter a group, even when it's read? 754 enter a group, even when it's read?
824* [4.3]:: How to view the headers of a message? 755* [4.3]:: How to view the headers of a message?
825* [4.4]:: How to view the raw unformatted message? 756* [4.4]:: How to view the raw unformatted message?
826* [4.5]:: How can I change the headers Gnus displays by default at the 757* [4.5]:: How can I change the headers Gnus displays by default at
827 top of the article buffer? 758 the top of the article buffer?
828* [4.6]:: I'd like Gnus NOT to render HTML-mails but show me the 759* [4.6]:: I'd like Gnus NOT to render HTML-mails but show me the
829 text part if it's available. How to do it? 760 text part if it's available. How to do it?
830* [4.7]:: Can I use some other browser than w3 to render my HTML-mails? 761* [4.7]:: Can I use some other browser than w3 to render my
831* [4.8]:: Is there anything I can do to make poorly formatted mails 762 HTML-mails?
832 more readable? 763* [4.8]:: Is there anything I can do to make poorly formatted mails
833* [4.9]:: Is there a way to automatically ignore posts by specific authors 764 more readable?
834 or with specific words in the subject? And can I highlight more 765* [4.9]:: Is there a way to automatically ignore posts by specific
835 interesting ones in some way? 766 authors or with specific words in the subject? And can I highlight
836* [4.10]:: How can I disable threading in some (e.g. mail-) groups, or set 767 more interesting ones in some way?
837 other variables specific for some groups? 768* [4.10]:: How can I disable threading in some (e.g. mail-) groups,
838* [4.11]:: Can I highlight messages written by me and follow-ups to those? 769 or set other variables specific for some groups?
839* [4.12]:: The number of total messages in a group which Gnus displays in 770* [4.11]:: Can I highlight messages written by me and follow-ups to
840 group buffer is by far to high, especially in mail groups. 771 those?
841 Is this a bug? 772* [4.12]:: The number of total messages in a group which Gnus
842* [4.13]:: I don't like the layout of summary and article buffer, 773 displays in group buffer is by far to high, especially in mail
843 how to change it? Perhaps even a three pane display? 774 groups. Is this a bug?
844* [4.14]:: I don't like the way the Summary buffer looks, how to tweak it? 775* [4.13]:: I don't like the layout of summary and article buffer, how
845* [4.15]:: How to split incoming mails in several groups? 776 to change it? Perhaps even a three pane display?
777* [4.14]:: I don't like the way the Summary buffer looks, how to
778 tweak it?
779* [4.15]:: How to split incoming mails in several groups?
846@end menu 780@end menu
847 781
848@ifnottex 782@node [4.1]
849@node [4.1], [4.2], FAQ 4 - Reading messages, FAQ 4 - Reading messages 783@subsubheading Question 4.1
850@end ifnottex
851@subsubheading Question 4.1:
852 784
853 When I enter a group, all read messages are gone. How to view them again? 785When I enter a group, all read messages are gone. How to view them again?
854
855 786
856Answer: 787@subsubheading Answer
857 788
858 If you enter the group by saying 789If you enter the group by saying
859 @samp{RET} 790@samp{RET}
860 in group buffer with point over the group, only unread and ticked messages are loaded. Say 791in group buffer with point over the group, only unread and ticked messages are loaded. Say
861 @samp{C-u RET} 792@samp{C-u RET}
862 instead to load all available messages. If you want only the e.g. 300 newest say 793instead to load all available messages. If you want only the e.g. 300 newest say
863 @samp{C-u 300 RET} 794@samp{C-u 300 RET}
864
865 795
866 Loading only unread messages can be annoying if you have threaded view enabled, say 796Loading only unread messages can be annoying if you have threaded view enabled, say
867
868 797
869@example 798@example
870(setq gnus-fetch-old-headers 'some) 799(setq gnus-fetch-old-headers 'some)
871@end example 800@end example
872
873
874@noindent 801@noindent
875 in ~/.gnus to load enough old articles to prevent teared threads, replace 'some with t to load
876 all articles (Warning: Both settings enlarge the amount of data which is
877 fetched when you enter a group and slow down the process of entering a group).
878 802
803in ~/.gnus.el to load enough old articles to prevent teared threads, replace 'some with t to load
804all articles (Warning: Both settings enlarge the amount of data which is
805fetched when you enter a group and slow down the process of entering a group).
879 806
880 If you already use Gnus 5.10, you can say 807If you already use Gnus 5.10, you can say
881 @samp{/o N} 808@samp{/o N}
882 In summary buffer to load the last N messages, this feature is not available in 5.8.8 809In summary buffer to load the last N messages, this feature is not available in 5.8.8
883
884 810
885 If you don't want all old messages, but the parent of the message you're just reading, 811If you don't want all old messages, but the parent of the message you're just reading,
886 you can say @samp{^}, if you want to retrieve the whole thread 812you can say @samp{^}, if you want to retrieve the whole thread
887 the message you're just reading belongs to, @samp{A T} is your friend. 813the message you're just reading belongs to, @samp{A T} is your friend.
888
889@ifnottex
890@node [4.2], [4.3], [4.1], FAQ 4 - Reading messages
891@end ifnottex
892@subsubheading Question 4.2:
893 814
894 How to tell Gnus to show an important message every time I 815@node [4.2]
895 enter a group, even when it's read? 816@subsubheading Question 4.2
896
897 817
898Answer: 818How to tell Gnus to show an important message every time I
819enter a group, even when it's read?
899 820
900 You can tick important messages. To do this hit 821@subsubheading Answer
901 @samp{u} while point is in summary buffer
902 over the message. When you want to remove the mark, hit
903 either @samp{d} (this deletes the tick
904 mark and set's unread mark) or @samp{M c}
905 (which deletes all marks for the message).
906
907@ifnottex
908@node [4.3], [4.4], [4.2], FAQ 4 - Reading messages
909@end ifnottex
910@subsubheading Question 4.3:
911 822
912 How to view the headers of a message? 823You can tick important messages. To do this hit
913 824@samp{u} while point is in summary buffer
825over the message. When you want to remove the mark, hit
826either @samp{d} (this deletes the tick
827mark and set's unread mark) or @samp{M c}
828(which deletes all marks for the message).
914 829
915Answer: 830@node [4.3]
831@subsubheading Question 4.3
916 832
917 Say @samp{t} 833How to view the headers of a message?
918 to show all headers, one more
919 @samp{t}
920 hides them again.
921
922@ifnottex
923@node [4.4], [4.5], [4.3], FAQ 4 - Reading messages
924@end ifnottex
925@subsubheading Question 4.4:
926 834
927 How to view the raw unformatted message? 835@subsubheading Answer
928
929 836
930Answer: 837Say @samp{t}
838to show all headers, one more
839@samp{t}
840hides them again.
931 841
932 Say 842@node [4.4]
933 @samp{C-u g} 843@subsubheading Question 4.4
934 to show the raw message
935 @samp{g}
936 returns to normal view.
937
938@ifnottex
939@node [4.5], [4.6], [4.4], FAQ 4 - Reading messages
940@end ifnottex
941@subsubheading Question 4.5:
942 844
943 How can I change the headers Gnus displays by default at 845How to view the raw unformatted message?
944 the top of the article buffer?
945
946 846
947Answer: 847@subsubheading Answer
848
849Say
850@samp{C-u g}
851to show the raw message
852@samp{g}
853returns to normal view.
854
855@node [4.5]
856@subsubheading Question 4.5
857
858How can I change the headers Gnus displays by default at
859the top of the article buffer?
860
861@subsubheading Answer
862
863The variable gnus-visible-headers controls which headers
864are shown, its value is a regular expression, header lines
865which match it are shown. So if you want author, subject,
866date, and if the header exists, Followup-To and MUA / NUA
867say this in ~/.gnus.el:
948 868
949 The variable gnus-visible-headers controls which headers
950 are shown, its value is a regular expression, header lines
951 which match it are shown. So if you want author, subject,
952 date, and if the header exists, Followup-To and MUA / NUA
953 say this in ~/.gnus:
954
955@example 869@example
956(setq gnus-visible-headers 870(setq gnus-visible-headers
957 "^\\(From:\\|Subject:\\|Date:\\|Followup-To:\ 871 '("^From" "^Subject" "^Date" "^Newsgroups" "^Followup-To"
958\\|X-Newsreader:\\|User-Agent:\\|X-Mailer:\\)") 872 "^User-Agent" "^X-Newsreader" "^X-Mailer"))
959@end example 873@end example
960 874@noindent
961@ifnottex
962@node [4.6], [4.7], [4.5], FAQ 4 - Reading messages
963@end ifnottex
964@subsubheading Question 4.6:
965 875
966 I'd like Gnus NOT to render HTML-mails but show me the 876@node [4.6]
967 text part if it's available. How to do it? 877@subsubheading Question 4.6
968
969 878
970Answer: 879I'd like Gnus NOT to render HTML-mails but show me the
880text part if it's available. How to do it?
971 881
972 Say 882@subsubheading Answer
973 883
884Say
974 885
975@example 886@example
976(eval-after-load "mm-decode" 887(eval-after-load "mm-decode"
@@ -978,240 +889,206 @@ Answer:
978 (add-to-list 'mm-discouraged-alternatives "text/html") 889 (add-to-list 'mm-discouraged-alternatives "text/html")
979 (add-to-list 'mm-discouraged-alternatives "text/richtext"))) 890 (add-to-list 'mm-discouraged-alternatives "text/richtext")))
980@end example 891@end example
981
982@noindent 892@noindent
983 in ~/.gnus. If you don't want HTML rendered, even if there's no text alternative add 893
984 894in ~/.gnus.el. If you don't want HTML rendered, even if there's no text alternative add
985 895
986@example 896@example
987(setq mm-automatic-display (remove "text/html" mm-automatic-display)) 897(setq mm-automatic-display (remove "text/html" mm-automatic-display))
988@end example 898@end example
989
990@noindent 899@noindent
991 too.
992
993@ifnottex
994@node [4.7], [4.8], [4.6], FAQ 4 - Reading messages
995@end ifnottex
996@subsubheading Question 4.7:
997 900
998 Can I use some other browser than w3 to render my HTML-mails? 901too.
999
1000 902
1001Answer: 903@node [4.7]
904@subsubheading Question 4.7
1002 905
1003 Only if you use Gnus 5.10 or younger. In this case you've got the 906Can I use some other browser than w3 to render my HTML-mails?
1004 choice between w3, w3m, links, lynx and html2text, which 907
1005 one is used can be specified in the variable 908@subsubheading Answer
1006 mm-text-html-renderer, so if you want links to render your 909
1007 mail say 910Only if you use Gnus 5.10 or younger. In this case you've got the
1008 911choice between w3, w3m, links, lynx and html2text, which
912one is used can be specified in the variable
913mm-text-html-renderer, so if you want links to render your
914mail say
1009 915
1010@example 916@example
1011(setq mm-text-html-renderer 'links) 917(setq mm-text-html-renderer 'links)
1012@end example 918@end example
1013 919@noindent
1014@ifnottex
1015@node [4.8], [4.9], [4.7], FAQ 4 - Reading messages
1016@end ifnottex
1017@subsubheading Question 4.8:
1018
1019 Is there anything I can do to make poorly formatted mails
1020 more readable?
1021
1022
1023Answer:
1024
1025 Gnus offers you several functions to "wash" incoming mail,
1026 you can find them if you browse through the menu, item Article->Washing. The most
1027 interesting ones are probably "Wrap long lines" (
1028 @samp{W w}
1029 ), "Decode ROT13" (
1030 @samp{W r}
1031 ) and "Outlook Deuglify" which repairs the dumb quoting used
1032 by many users of Microsoft products (
1033 @samp{W Y f} gives you full deuglify.
1034 See @samp{W Y C-h} or
1035 have a look at the menus for other deuglifications).
1036 Outlook deuglify is only available since Gnus 5.10.
1037
1038@ifnottex
1039@node [4.9], [4.10], [4.8], FAQ 4 - Reading messages
1040@end ifnottex
1041@subsubheading Question 4.9:
1042
1043 Is there a way to automatically ignore posts by specific
1044 authors or with specific words in the subject? And can I
1045 highlight more interesting ones in some way?
1046
1047
1048Answer:
1049
1050 You want Scoring. Scoring means, that you define rules
1051 which assign each message an integer value. Depending on
1052 the value the message is highlighted in summary buffer (if
1053 it's high, say +2000) or automatically marked read (if the
1054 value is low, say -800) or some other action happens.
1055
1056
1057 There are basically three ways of setting up rules which assign
1058 the scoring-value to messages. The first and easiest way is to set
1059 up rules based on the article you are just reading. Say you're
1060 reading a message by a guy who always writes nonsense and you want
1061 to ignore his messages in the future. Hit
1062 @samp{L}, to set up a rule which lowers the score.
1063 Now Gnus asks you which the criteria for lowering the Score shall
1064 be. Hit @samp{?} twice to see all possibilities,
1065 we want @samp{a} which means the author (the from
1066 header). Now Gnus wants to know which kind of matching we want.
1067 Hit either @samp{e} for an exact match or
1068 @samp{s} for substring-match and delete afterwards
1069 everything but the name to score down all authors with the given
1070 name no matter which email address is used. Now you need to tell
1071 Gnus when to apply the rule and how long it should last, hit e.g.
1072 @samp{p} to apply the rule now and let it last
1073 forever. If you want to raise the score instead of lowering it say
1074 @samp{I} instead of @samp{L}.
1075
1076 920
1077 You can also set up rules by hand. To do this say @samp{V 921@node [4.8]
1078 f} in summary buffer. Then you are asked for the name 922@subsubheading Question 4.8
1079 of the score file, it's name.of.group.SCORE for rules valid in 923
1080 only one group or all.Score for rules valid in all groups. See the 924Is there anything I can do to make poorly formatted mails
1081 Gnus manual for the exact syntax, basically it's one big list 925more readable?
1082 whose elements are lists again. the first element of those lists 926
1083 is the header to score on, then one more list with what to match, 927@subsubheading Answer
1084 which score to assign, when to expire the rule and how to do the 928
1085 matching. If you find me very interesting, you could e.g. add the 929Gnus offers you several functions to "wash" incoming mail, you can
1086 following to your all.Score: 930find them if you browse through the menu, item
1087 931Article->Washing. The most interesting ones are probably "Wrap
932long lines" (@samp{W w}), "Decode ROT13"
933(@samp{W r}) and "Outlook Deuglify" which repairs
934the dumb quoting used by many users of Microsoft products
935(@samp{W Y f} gives you full deuglify.
936See @samp{W Y C-h} or have a look at the menus for
937other deuglifications). Outlook deuglify is only available since
938Gnus 5.10.
939
940@node [4.9]
941@subsubheading Question 4.9
942
943Is there a way to automatically ignore posts by specific
944authors or with specific words in the subject? And can I
945highlight more interesting ones in some way?
946
947@subsubheading Answer
948
949You want Scoring. Scoring means, that you define rules
950which assign each message an integer value. Depending on
951the value the message is highlighted in summary buffer (if
952it's high, say +2000) or automatically marked read (if the
953value is low, say -800) or some other action happens.
954
955There are basically three ways of setting up rules which assign
956the scoring-value to messages. The first and easiest way is to set
957up rules based on the article you are just reading. Say you're
958reading a message by a guy who always writes nonsense and you want
959to ignore his messages in the future. Hit
960@samp{L}, to set up a rule which lowers the score.
961Now Gnus asks you which the criteria for lowering the Score shall
962be. Hit @samp{?} twice to see all possibilities,
963we want @samp{a} which means the author (the from
964header). Now Gnus wants to know which kind of matching we want.
965Hit either @samp{e} for an exact match or
966@samp{s} for substring-match and delete afterwards
967everything but the name to score down all authors with the given
968name no matter which email address is used. Now you need to tell
969Gnus when to apply the rule and how long it should last, hit e.g.
970@samp{p} to apply the rule now and let it last
971forever. If you want to raise the score instead of lowering it say
972@samp{I} instead of @samp{L}.
973
974You can also set up rules by hand. To do this say @samp{V
975f} in summary buffer. Then you are asked for the name
976of the score file, it's name.of.group.SCORE for rules valid in
977only one group or all.Score for rules valid in all groups. See the
978Gnus manual for the exact syntax, basically it's one big list
979whose elements are lists again. the first element of those lists
980is the header to score on, then one more list with what to match,
981which score to assign, when to expire the rule and how to do the
982matching. If you find me very interesting, you could e.g. add the
983following to your all.Score:
1088 984
1089@example 985@example
1090(("references" ("hschmi22.userfqdn.rz-online.de" 500 nil s)) 986(("references" ("hschmi22.userfqdn.rz-online.de" 500 nil s))
1091 ("message-id" ("hschmi22.userfqdn.rz-online.de" 999 nil s))) 987 ("message-id" ("hschmi22.userfqdn.rz-online.de" 999 nil s)))
1092@end example 988@end example
1093
1094@noindent 989@noindent
1095 This would add 999 to the score of messages written by me
1096 and 500 to the score of messages which are a (possibly
1097 indirect) answer to a message written by me. Of course
1098 nobody with a sane mind would do this :-)
1099
1100 990
1101 The third alternative is adaptive scoring. This means Gnus 991This would add 999 to the score of messages written by me
1102 watches you and tries to find out what you find 992and 500 to the score of messages which are a (possibly
1103 interesting and what annoying and sets up rules 993indirect) answer to a message written by me. Of course
1104 which reflect this. Adaptive scoring can be a huge help 994nobody with a sane mind would do this :-)
1105 when reading high traffic groups. If you want to activate 995
1106 adaptive scoring say 996The third alternative is adaptive scoring. This means Gnus
1107 997watches you and tries to find out what you find
998interesting and what annoying and sets up rules
999which reflect this. Adaptive scoring can be a huge help
1000when reading high traffic groups. If you want to activate
1001adaptive scoring say
1108 1002
1109@example 1003@example
1110(setq gnus-use-adaptive-scoring t) 1004(setq gnus-use-adaptive-scoring t)
1111@end example 1005@end example
1112
1113@noindent 1006@noindent
1114 in ~/.gnus.
1115
1116@ifnottex
1117@node [4.10], [4.11], [4.9], FAQ 4 - Reading messages
1118@end ifnottex
1119@subsubheading Question 4.10:
1120 1007
1121 How can I disable threading in some (e.g. mail-) groups, or 1008in ~/.gnus.el.
1122 set other variables specific for some groups?
1123
1124 1009
1125Answer: 1010@node [4.10]
1011@subsubheading Question 4.10
1126 1012
1127 While in group buffer move point over the group and hit 1013How can I disable threading in some (e.g. mail-) groups, or
1128 @samp{G c}, this opens a buffer where you 1014set other variables specific for some groups?
1129 can set options for the group. At the bottom of the buffer
1130 you'll find an item that allows you to set variables
1131 locally for the group. To disable threading enter
1132 gnus-show-threads as name of variable and nil as
1133 value. Hit button done at the top of the buffer when
1134 you're ready.
1135
1136@ifnottex
1137@node [4.11], [4.12], [4.10], FAQ 4 - Reading messages
1138@end ifnottex
1139@subsubheading Question 4.11:
1140 1015
1141 Can I highlight messages written by me and follow-ups to 1016@subsubheading Answer
1142 those?
1143
1144 1017
1145Answer: 1018While in group buffer move point over the group and hit
1019@samp{G c}, this opens a buffer where you
1020can set options for the group. At the bottom of the buffer
1021you'll find an item that allows you to set variables
1022locally for the group. To disable threading enter
1023gnus-show-threads as name of variable and nil as
1024value. Hit button done at the top of the buffer when
1025you're ready.
1146 1026
1147 Stop those "Can I ..." questions, the answer is always yes 1027@node [4.11]
1148 in Gnus Country :-). It's a three step process: First we 1028@subsubheading Question 4.11
1149 make faces (specifications of how summary-line shall look
1150 like) for those postings, then we'll give them some
1151 special score and finally we'll tell Gnus to use the new
1152 faces. You can find detailed instructions on how to do it on
1153 @uref{http://my.gnus.org/Members/dzimmerm/HowTo%2C2002-07-25%2C1027619165012198456/view,my.gnus.org}
1154
1155@ifnottex
1156@node [4.12], [4.13], [4.11], FAQ 4 - Reading messages
1157@end ifnottex
1158@subsubheading Question 4.12:
1159
1160 The number of total messages in a group which Gnus
1161 displays in group buffer is by far to high, especially in
1162 mail groups. Is this a bug?
1163
1164 1029
1165Answer: 1030Can I highlight messages written by me and follow-ups to
1166 1031those?
1167 No, that's a matter of design of Gnus, fixing this would
1168 mean reimplementation of major parts of Gnus'
1169 back ends. Gnus thinks "highest-article-number -
1170 lowest-article-number = total-number-of-articles". This
1171 works OK for Usenet groups, but if you delete and move
1172 many messages in mail groups, this fails. To cure the
1173 symptom, enter the group via @samp{C-u RET}
1174 (this makes Gnus get all messages), then
1175 hit @samp{M P b} to mark all messages and
1176 then say @samp{B m name.of.group} to move
1177 all messages to the group they have been in before, they
1178 get new message numbers in this process and the count is
1179 right again (until you delete and move your mail to other
1180 groups again).
1181
1182@ifnottex
1183@node [4.13], [4.14], [4.12], FAQ 4 - Reading messages
1184@end ifnottex
1185@subsubheading Question 4.13:
1186 1032
1187 I don't like the layout of summary and article buffer, how 1033@subsubheading Answer
1188 to change it? Perhaps even a three pane display?
1189
1190 1034
1191Answer: 1035Stop those "Can I ..." questions, the answer is always yes
1036in Gnus Country :-). It's a three step process: First we
1037make faces (specifications of how summary-line shall look
1038like) for those postings, then we'll give them some
1039special score and finally we'll tell Gnus to use the new
1040faces. You can find detailed instructions on how to do it on
1041@uref{http://my.gnus.org/node/view/224, my.gnus.org}
1192 1042
1193 You can control the windows configuration by calling the 1043@node [4.12]
1194 function gnus-add-configuration. The syntax is a bit 1044@subsubheading Question 4.12
1195 complicated but explained very well in the manual node
1196 "Window Layout". Some popular examples:
1197
1198 1045
1199 Instead 25% summary 75% article buffer 35% summary and 65% 1046The number of total messages in a group which Gnus
1200 article (the 1.0 for article means "take the remaining 1047displays in group buffer is by far to high, especially in
1201 space"): 1048mail groups. Is this a bug?
1202 1049
1050@subsubheading Answer
1051
1052No, that's a matter of design of Gnus, fixing this would
1053mean reimplementation of major parts of Gnus'
1054back ends. Gnus thinks "highest-article-number -
1055lowest-article-number = total-number-of-articles". This
1056works OK for Usenet groups, but if you delete and move
1057many messages in mail groups, this fails. To cure the
1058symptom, enter the group via @samp{C-u RET}
1059(this makes Gnus get all messages), then
1060hit @samp{M P b} to mark all messages and
1061then say @samp{B m name.of.group} to move
1062all messages to the group they have been in before, they
1063get new message numbers in this process and the count is
1064right again (until you delete and move your mail to other
1065groups again).
1066
1067@node [4.13]
1068@subsubheading Question 4.13
1069
1070I don't like the layout of summary and article buffer, how
1071to change it? Perhaps even a three pane display?
1072
1073@subsubheading Answer
1074
1075You can control the windows configuration by calling the
1076function gnus-add-configuration. The syntax is a bit
1077complicated but explained very well in the manual node
1078"Window Layout". Some popular examples:
1079
1080Instead 25% summary 75% article buffer 35% summary and 65%
1081article (the 1.0 for article means "take the remaining
1082space"):
1203 1083
1204@example 1084@example
1205(gnus-add-configuration 1085(gnus-add-configuration
1206 '(article (vertical 1.0 1086 '(article (vertical 1.0 (summary .35 point) (article 1.0))))
1207 (summary .35 point)
1208 (article 1.0))))
1209@end example 1087@end example
1210 1088@noindent
1211 1089
1212 A three pane layout, Group buffer on the left, summary 1090A three pane layout, Group buffer on the left, summary
1213 buffer top-right, article buffer bottom-right: 1091buffer top-right, article buffer bottom-right:
1214
1215 1092
1216@example 1093@example
1217(gnus-add-configuration 1094(gnus-add-configuration
@@ -1228,46 +1105,40 @@ Answer:
1228 (vertical 25 1105 (vertical 25
1229 (group 1.0)) 1106 (group 1.0))
1230 (vertical 1.0 1107 (vertical 1.0
1231 (summary 1.0 point))))) 1108 (summary 1.0 point)))))
1232@end example 1109@end example
1233 1110@noindent
1234@ifnottex
1235@node [4.14], [4.15], [4.13], FAQ 4 - Reading messages
1236@end ifnottex
1237@subsubheading Question 4.14:
1238 1111
1239 I don't like the way the Summary buffer looks, how to tweak it? 1112@node [4.14]
1240 1113@subsubheading Question 4.14
1241 1114
1242Answer: 1115I don't like the way the Summary buffer looks, how to tweak it?
1243
1244 You've got to play around with the variable
1245 gnus-summary-line-format. It's value is a string of
1246 symbols which stand for things like author, date, subject
1247 etc. A list of the available specifiers can be found in the
1248 manual node "Summary Buffer Lines" and the often forgotten
1249 node "Formatting Variables" and it's sub-nodes. There
1250 you'll find useful things like positioning the cursor and
1251 tabulators which allow you a summary in table form, but
1252 sadly hard tabulators are broken in 5.8.8.
1253
1254 1116
1255 Since 5.10, Gnus offers you some very nice new specifiers, 1117@subsubheading Answer
1256 e.g. %B which draws a thread-tree and %&user-date which 1118
1257 gives you a date where the details are dependent of the 1119You've got to play around with the variable
1258 articles age. Here's an example which uses both: 1120gnus-summary-line-format. It's value is a string of
1259 1121symbols which stand for things like author, date, subject
1122etc. A list of the available specifiers can be found in the
1123manual node "Summary Buffer Lines" and the often forgotten
1124node "Formatting Variables" and it's sub-nodes. There
1125you'll find useful things like positioning the cursor and
1126tabulators which allow you a summary in table form, but
1127sadly hard tabulators are broken in 5.8.8.
1128
1129Since 5.10, Gnus offers you some very nice new specifiers,
1130e.g. %B which draws a thread-tree and %&user-date which
1131gives you a date where the details are dependent of the
1132articles age. Here's an example which uses both:
1260 1133
1261@example 1134@example
1262(setq gnus-summary-line-format 1135(setq gnus-summary-line-format ":%U%R %B %s %-60=|%4L |%-20,20f |%&user-date; \n")
1263 ":%U%R %B %s %-60=|%4L |%-20,20f |%&user-date; \n")
1264@end example 1136@end example
1265
1266@noindent 1137@noindent
1267 resulting in:
1268
1269 1138
1270@smallexample 1139resulting in:
1140
1141@example
1271:O Re: [Richard Stallman] rfc2047.el | 13 |Lars Magne Ingebrigt |Sat 23:06 1142:O Re: [Richard Stallman] rfc2047.el | 13 |Lars Magne Ingebrigt |Sat 23:06
1272:O Re: Revival of the ding-patches list | 13 |Lars Magne Ingebrigt |Sat 23:12 1143:O Re: Revival of the ding-patches list | 13 |Lars Magne Ingebrigt |Sat 23:12
1273:R > Re: Find correct list of articles for a gro| 25 |Lars Magne Ingebrigt |Sat 23:16 1144:R > Re: Find correct list of articles for a gro| 25 |Lars Magne Ingebrigt |Sat 23:16
@@ -1280,54 +1151,48 @@ Answer:
1280:R > Re: Gnus still doesn't count messages prope| 23 |Lars Magne Ingebrigt |Sat 23:57 1151:R > Re: Gnus still doesn't count messages prope| 23 |Lars Magne Ingebrigt |Sat 23:57
1281:O \-> ... | 18 |Kai Grossjohann | 0:35 1152:O \-> ... | 18 |Kai Grossjohann | 0:35
1282:O \-> ... | 13 |Lars Magne Ingebrigt | 0:56 1153:O \-> ... | 13 |Lars Magne Ingebrigt | 0:56
1283@end smallexample 1154@end example
1284 1155@noindent
1285@ifnottex
1286@node [4.15], , [4.14], FAQ 4 - Reading messages
1287@end ifnottex
1288@subsubheading Question 4.15:
1289 1156
1290 How to split incoming mails in several groups? 1157@node [4.15]
1291 1158@subsubheading Question 4.15
1292 1159
1293Answer: 1160How to split incoming mails in several groups?
1294 1161
1295 Gnus offers two possibilities for splitting mail, the easy 1162@subsubheading Answer
1296 nnmail-split-methods and the more powerful Fancy Mail
1297 Splitting. I'll only talk about the first one, refer to
1298 the manual, node "Fancy Mail Splitting" for the latter.
1299
1300 1163
1301 The value of nnmail-split-methods is a list, each element 1164Gnus offers two possibilities for splitting mail, the easy
1302 is a list which stands for a splitting rule. Each rule has 1165nnmail-split-methods and the more powerful Fancy Mail
1303 the form "group where matching articles should go to", 1166Splitting. I'll only talk about the first one, refer to
1304 "regular expression which has to be matched", the first 1167the manual, node "Fancy Mail Splitting" for the latter.
1305 rule which matches wins. The last rule must always be a 1168
1306 general rule (regular expression .*) which denotes where 1169The value of nnmail-split-methods is a list, each element
1307 articles should go which don't match any other rule. If 1170is a list which stands for a splitting rule. Each rule has
1308 the folder doesn't exist yet, it will be created as soon 1171the form "group where matching articles should go to",
1309 as an article lands there. By default the mail will be 1172"regular expression which has to be matched", the first
1310 send to all groups whose rules match. If you 1173rule which matches wins. The last rule must always be a
1311 don't want that (you probably don't want), say 1174general rule (regular expression .*) which denotes where
1312 1175articles should go which don't match any other rule. If
1176the folder doesn't exist yet, it will be created as soon
1177as an article lands there. By default the mail will be
1178send to all groups whose rules match. If you
1179don't want that (you probably don't want), say
1313 1180
1314@example 1181@example
1315(setq nnmail-crosspost nil) 1182(setq nnmail-crosspost nil)
1316@end example 1183@end example
1317
1318@noindent 1184@noindent
1319 in ~/.gnus.
1320
1321 1185
1322 An example might be better than thousand words, so here's 1186in ~/.gnus.el.
1323 my nnmail-split-methods. Note that I send duplicates in a 1187
1324 special group and that the default group is spam, since I 1188An example might be better than thousand words, so here's
1325 filter all mails out which are from some list I'm 1189my nnmail-split-methods. Note that I send duplicates in a
1326 subscribed to or which are addressed directly to me 1190special group and that the default group is spam, since I
1327 before. Those rules kill about 80% of the Spam which 1191filter all mails out which are from some list I'm
1328 reaches me (Email addresses are changed to prevent spammers 1192subscribed to or which are addressed directly to me
1329 from using them): 1193before. Those rules kill about 80% of the Spam which
1330 1194reaches me (Email addresses are changed to prevent spammers
1195from using them):
1331 1196
1332@example 1197@example
1333(setq nnmail-split-methods 1198(setq nnmail-split-methods
@@ -1336,133 +1201,114 @@ Answer:
1336 ("Gnus-Tut" "^\\(To:\\|CC:\\).*localpart@@socha.bla.*") 1201 ("Gnus-Tut" "^\\(To:\\|CC:\\).*localpart@@socha.bla.*")
1337 ("tcsh" "^\\(To:\\|CC:\\).*localpart@@mx.gw.bla.*") 1202 ("tcsh" "^\\(To:\\|CC:\\).*localpart@@mx.gw.bla.*")
1338 ("BAfH" "^\\(To:\\|CC:\\).*localpart@@.*uni-muenchen.bla.*") 1203 ("BAfH" "^\\(To:\\|CC:\\).*localpart@@.*uni-muenchen.bla.*")
1339 ("Hamster-src" 1204 ("Hamster-src" "^\\(CC:\\|To:\\).*hamster-sourcen@@yahoogroups.\\(de\\|com\\).*")
1340 "^\\(CC:\\|To:\\).*hamster-sourcen@@yahoogroups.\\(de\\|com\\).*")
1341 ("Tagesschau" "^From: tagesschau <localpart@@www.tagesschau.bla>$") 1205 ("Tagesschau" "^From: tagesschau <localpart@@www.tagesschau.bla>$")
1342 ("Replies" "^\\(CC:\\|To:\\).*localpart@@Frank-Schmitt.bla.*") 1206 ("Replies" "^\\(CC:\\|To:\\).*localpart@@Frank-Schmitt.bla.*")
1343 ("EK" 1207 ("EK" "^From:.*\\(localpart@@privateprovider.bla\\|localpart@@workplace.bla\\).*")
1344 "^From:.*\\(localpart@@privateprovider.bla\\|localpart@@workplace.bla\\).*") 1208 ("Spam" "^Content-Type:.*\\(ks_c_5601-1987\\|EUC-KR\\|big5\\|iso-2022-jp\\).*")
1345 ("Spam" 1209 ("Spam" "^Subject:.*\\(This really work\\|XINGA\\|ADV:\\|XXX\\|adult\\|sex\\).*")
1346 "^Content-Type:.*\\(ks_c_5601-1987\\|EUC-KR\\|big5\\|iso-2022-jp\\).*") 1210 ("Spam" "^Subject:.*\\(\=\?ks_c_5601-1987\?\\|\=\?euc-kr\?\\|\=\?big5\?\\).*")
1347 ("Spam"
1348 "^Subject:.*\\(This really work\\|XINGA\\|ADV:\\|XXX\\|adult\\|sex\\).*")
1349 ("Spam"
1350 "^Subject:.*\\(\=\?ks_c_5601-1987\?\\|\=\?euc-kr\?\\|\=\?big5\?\\).*")
1351 ("Spam" "^X-Mailer:\\(.*BulkMailer.*\\|.*MIME::Lite.*\\|\\)") 1211 ("Spam" "^X-Mailer:\\(.*BulkMailer.*\\|.*MIME::Lite.*\\|\\)")
1352 ("Spam" 1212 ("Spam" "^X-Mailer:\\(.*CyberCreek Avalanche\\|.*http\:\/\/GetResponse\.com\\)")
1353 "^X-Mailer:\\(.*CyberCreek Avalanche\\|.*http\:\/\/GetResponse\.com\\)") 1213 ("Spam" "^From:.*\\(verizon\.net\\|prontomail\.com\\|money\\|ConsumerDirect\\).*")
1354 ("Spam"
1355 "^From:.*\\(verizon\.net\\|prontomail\.com\\|money\\|ConsumerDirect\\).*")
1356 ("Spam" "^Delivered-To: GMX delivery to spamtrap@@gmx.bla$") 1214 ("Spam" "^Delivered-To: GMX delivery to spamtrap@@gmx.bla$")
1357 ("Spam" "^Received: from link2buy.com") 1215 ("Spam" "^Received: from link2buy.com")
1358 ("Spam" "^CC: .*azzrael@@t-online.bla") 1216 ("Spam" "^CC: .*azzrael@@t-online.bla")
1359 ("Spam" "^X-Mailer-Version: 1.50 BETA") 1217 ("Spam" "^X-Mailer-Version: 1.50 BETA")
1360 ("Uni" "^\\(CC:\\|To:\\).*localpart@@uni-koblenz.bla.*") 1218 ("Uni" "^\\(CC:\\|To:\\).*localpart@@uni-koblenz.bla.*")
1361 ("Inbox" 1219 ("Inbox" "^\\(CC:\\|To:\\).*\\(my\ name\\|address@@one.bla\\|adress@@two.bla\\)")
1362 "^\\(CC:\\|To:\\).*\\(my\ name\\|address@@one.bla\\|adress@@two.bla\\)")
1363 ("Spam" ""))) 1220 ("Spam" "")))
1364@end example 1221@end example
1365 1222@noindent
1366 1223
1367@ifnottex 1224@node FAQ 5 - Composing messages
1368@node FAQ 5 - Composing messages, FAQ 6 - Old messages, FAQ 4 - Reading messages, Frequently Asked Questions
1369@end ifnottex
1370@subsection Composing messages 1225@subsection Composing messages
1371 1226
1372@menu 1227@menu
1373* [5.1]:: What are the basic commands I need to know for sending mail and 1228* [5.1]:: What are the basic commands I need to know for sending
1374 postings? 1229 mail and postings?
1375* [5.2]:: How to enable automatic word-wrap when composing messages? 1230* [5.2]:: How to enable automatic word-wrap when composing messages?
1376* [5.3]:: How to set stuff like From, Organization, Reply-To, signature...? 1231* [5.3]:: How to set stuff like From, Organization, Reply-To,
1377* [5.4]:: Can I set things like From, Signature etc group based on the 1232 signature...?
1378 group I post too? 1233* [5.4]:: Can I set things like From, Signature etc group based on
1379* [5.5]:: Is there a spell-checker? Perhaps even on-the-fly spell-checking? 1234 the group I post too?
1380* [5.6]:: Can I set the dictionary based on the group I'm posting to? 1235* [5.5]:: Is there a spell-checker? Perhaps even on-the-fly
1381* [5.7]:: Is there some kind of address-book, so I needn't remember all 1236 spell-checking?
1382 those email addresses? 1237* [5.6]:: Can I set the dictionary based on the group I'm posting
1383* [5.8]:: Sometimes I see little images at the top of article buffer. 1238 to?
1384 What's that and how can I send one with my postings, too? 1239* [5.7]:: Is there some kind of address-book, so I needn't remember
1385* [5.9]:: Sometimes I accidentally hit r instead of f in newsgroups. 1240 all those email addresses?
1386 Can Gnus warn me, when I'm replying by mail in newsgroups? 1241* [5.8]:: Sometimes I see little images at the top of article
1387* [5.10]:: How to tell Gnus not to generate a sender header? 1242 buffer. What's that and how can I send one with my postings, too?
1388* [5.11]:: I want Gnus to locally store copies of my send mail and news, 1243* [5.9]:: Sometimes I accidentally hit r instead of f in newsgroups.
1389 how to do it? 1244 Can Gnus warn me, when I'm replying by mail in newsgroups?
1390* [5.12]:: People tell me my Message-IDs are not correct, 1245* [5.10]:: How to tell Gnus not to generate a sender header?
1391 why aren't they and how to fix it? 1246* [5.11]:: I want Gnus to locally store copies of my send mail and
1247 news, how to do it?
1248* [5.12]:: People tell me my Message-IDs are not correct, why aren't
1249 they and how to fix it?
1392@end menu 1250@end menu
1393 1251
1394@ifnottex 1252@node [5.1]
1395@node [5.1], [5.2], FAQ 5 - Composing messages, FAQ 5 - Composing messages 1253@subsubheading Question 5.1
1396@end ifnottex
1397@subsubheading Question 5.1:
1398 1254
1399 What are the basic commands I need to know for sending mail and postings? 1255What are the basic commands I need to know for sending mail and postings?
1400
1401 1256
1402Answer: 1257@subsubheading Answer
1403
1404 To start composing a new mail hit @samp{m}
1405 either in Group or Summary buffer, for a posting, it's
1406 either @samp{a} in Group buffer and
1407 filling the Newsgroups header manually
1408 or @samp{a} in the Summary buffer of the
1409 group where the posting shall be send to. Replying by mail
1410 is
1411 @samp{r} if you don't want to cite the
1412 author, or import the cited text manually and
1413 @samp{R} to cite the text of the original
1414 message. For a follow up to a newsgroup, it's
1415 @samp{f} and @samp{F}
1416 (analog to @samp{r} and
1417 @samp{R}).
1418
1419 1258
1420 Enter new headers above the line saying "--text follows 1259To start composing a new mail hit @samp{m}
1421 this line--", enter the text below the line. When ready 1260either in Group or Summary buffer, for a posting, it's
1422 hit @samp{C-c C-c}, to send the message, 1261either @samp{a} in Group buffer and
1423 if you want to finish it later hit @samp{C-c 1262filling the Newsgroups header manually
1424 C-d} to save it in the drafts group, where you 1263or @samp{a} in the Summary buffer of the
1425 can start editing it again by saying @samp{D 1264group where the posting shall be send to. Replying by mail
1426 e}. 1265is
1427 1266@samp{r} if you don't want to cite the
1428@ifnottex 1267author, or import the cited text manually and
1429@node [5.2], [5.3], [5.1], FAQ 5 - Composing messages 1268@samp{R} to cite the text of the original
1430@end ifnottex 1269message. For a follow up to a newsgroup, it's
1431@subsubheading Question 5.2: 1270@samp{f} and @samp{F}
1271(analogously to @samp{r} and
1272@samp{R}).
1432 1273
1433 How to enable automatic word-wrap when composing messages? 1274Enter new headers above the line saying "--text follows
1434 1275this line--", enter the text below the line. When ready
1276hit @samp{C-c C-c}, to send the message,
1277if you want to finish it later hit @samp{C-c
1278C-d} to save it in the drafts group, where you
1279can start editing it again by saying @samp{D
1280e}.
1435 1281
1436Answer: 1282@node [5.2]
1283@subsubheading Question 5.2
1437 1284
1438 Say 1285How to enable automatic word-wrap when composing messages?
1439 1286
1287@subsubheading Answer
1288
1289Say
1440 1290
1441@example 1291@example
1442(add-hook 'message-mode-hook 1292(add-hook 'message-mode-hook
1443 (lambda () 1293 (lambda ()
1444 (setq fill-column 72) 1294 (setq fill-column 72)
1445 (turn-on-auto-fill))) 1295 (turn-on-auto-fill)))
1446@end example 1296@end example
1447
1448@noindent 1297@noindent
1449 in ~/.gnus. You can reformat a paragraph by hitting
1450 @samp{M-q} (as usual)
1451
1452@ifnottex
1453@node [5.3], [5.4], [5.2], FAQ 5 - Composing messages
1454@end ifnottex
1455@subsubheading Question 5.3:
1456 1298
1457 How to set stuff like From, Organization, Reply-To, signature...? 1299in ~/.gnus.el. You can reformat a paragraph by hitting
1458 1300@samp{M-q} (as usual)
1459 1301
1460Answer: 1302@node [5.3]
1303@subsubheading Question 5.3
1461 1304
1462 There are other ways, but you should use posting styles 1305How to set stuff like From, Organization, Reply-To, signature...?
1463 for this. (See below why). 1306
1464 This example should make the syntax clear: 1307@subsubheading Answer
1465 1308
1309There are other ways, but you should use posting styles
1310for this. (See below why).
1311This example should make the syntax clear:
1466 1312
1467@example 1313@example
1468(setq gnus-posting-styles 1314(setq gnus-posting-styles
@@ -1474,146 +1320,121 @@ Answer:
1474 ("X-SampleHeader" "foobar") 1320 ("X-SampleHeader" "foobar")
1475 (eval (setq some-variable "Foo bar"))))) 1321 (eval (setq some-variable "Foo bar")))))
1476@end example 1322@end example
1477
1478@noindent 1323@noindent
1479 The ".*" means that this settings are the default ones
1480 (see below), valid values for the first element of the
1481 following lists are signature, signature-file,
1482 organization, address, name or body. The attribute name
1483 can also be a string. In that case, this will be used as
1484 a header name, and the value will be inserted in the
1485 headers of the article; if the value is `nil', the header
1486 name will be removed. You can also say (eval (foo bar)),
1487 then the function foo will be evaluated with argument bar
1488 and the result will be thrown away.
1489
1490@ifnottex
1491@node [5.4], [5.5], [5.3], FAQ 5 - Composing messages
1492@end ifnottex
1493@subsubheading Question 5.4:
1494
1495 Can I set things like From, Signature etc group based on the group I post too?
1496
1497 1324
1498Answer: 1325The ".*" means that this settings are the default ones
1499 1326(see below), valid values for the first element of the
1500 That's the strength of posting styles. Before, we used ".*" 1327following lists are signature, signature-file,
1501 to set the default for all groups. You can use a regexp 1328organization, address, name or body. The attribute name
1502 like "^gmane" and the following settings are only applied 1329can also be a string. In that case, this will be used as
1503 to postings you send to the gmane hierarchy, use 1330a header name, and the value will be inserted in the
1504 ".*binaries" instead and they will be applied to postings 1331headers of the article; if the value is `nil', the header
1505 send to groups containing the string binaries in their 1332name will be removed. You can also say (eval (foo bar)),
1506 name etc. 1333then the function foo will be evaluated with argument bar
1507 1334and the result will be thrown away.
1508 1335
1509 You can instead of specifying a regexp specify a function 1336@node [5.4]
1510 which is evaluated, only if it returns true, the 1337@subsubheading Question 5.4
1511 corresponding settings take effect. Two interesting 1338
1512 candidates for this are message-news-p which returns t if 1339Can I set things like From, Signature etc group based on the group I post too?
1513 the current Group is a newsgroup and the corresponding 1340
1514 message-mail-p. 1341@subsubheading Answer
1515 1342
1516 1343That's the strength of posting styles. Before, we used ".*"
1517 Note that all forms that match are applied, that means in 1344to set the default for all groups. You can use a regexp
1518 the example below, when I post to 1345like "^gmane" and the following settings are only applied
1519 gmane.mail.spam.spamassassin.general, the settings under 1346to postings you send to the gmane hierarchy, use
1520 ".*" are applied and the settings under message-news-p and 1347".*binaries" instead and they will be applied to postings
1521 those under "^gmane" and those under 1348send to groups containing the string binaries in their
1522 "^gmane\\.mail\\.spam\\.spamassassin\\.general$". Because 1349name etc.
1523 of this put general settings at the top and specific ones 1350
1524 at the bottom. 1351You can instead of specifying a regexp specify a function
1525 1352which is evaluated, only if it returns true, the
1353corresponding settings take effect. Two interesting
1354candidates for this are message-news-p which returns t if
1355the current Group is a newsgroup and the corresponding
1356message-mail-p.
1357
1358Note that all forms that match are applied, that means in
1359the example below, when I post to
1360gmane.mail.spam.spamassassin.general, the settings under
1361".*" are applied and the settings under message-news-p and
1362those under "^gmane" and those under
1363"^gmane\\.mail\\.spam\\.spamassassin\\.general$". Because
1364of this put general settings at the top and specific ones
1365at the bottom.
1526 1366
1527@example 1367@example
1528(setq gnus-posting-styles 1368(setq gnus-posting-styles
1529 '((".*" ;;default 1369 '((".*" ;;default
1530 (name "Frank Schmitt") 1370 (name "Frank Schmitt")
1531 (organization "Hamme net, kren mer och nimmi") 1371 (organization "Hamme net, kren mer och nimmi")
1532 (signature-file "~/.signature")) 1372 (signature-file "~/.signature") )
1533 ((message-news-p) ;;Usenet news? 1373 ((message-news-p) ;;Usenet news?
1534 (address "mySpamTrap@@Frank-Schmitt.bla") 1374 (address "mySpamTrap@@Frank-Schmitt.bla")
1535 ("Reply-To" "hereRealRepliesOnlyPlease@@Frank-Schmitt.bla")) 1375 ("Reply-To" "hereRealRepliesOnlyPlease@@Frank-Schmitt.bla") )
1536 ((message-mail-p) ;;mail? 1376 ((message-mail-p) ;;mail?
1537 (address "usedForMails@@Frank-Schmitt.bla")) 1377 (address "usedForMails@@Frank-Schmitt.bla") )
1538 ("^gmane" ;;this is mail, too in fact 1378 ("^gmane" ;;this is mail, too in fact
1539 (address "usedForMails@@Frank-Schmitt.net") 1379 (address "usedForMails@@Frank-Schmitt.net")
1540 ("Reply-To" nil)) 1380 ("Reply-To" nil) )
1541 ("^gmane.mail.spam.spamassassin.general$" 1381 ("^gmane.mail.spam.spamassassin.general$"
1542 (eval (setq mail-envelope-from "Azzrael@@rz-online.de")) 1382 (eval (setq mail-envelope-from "Azzrael@@rz-online.de"))
1543 (address "Azzrael@@rz-online.de")))) 1383 (address "Azzrael@@rz-online.de")) ))
1544@end example 1384@end example
1545 1385@noindent
1546@ifnottex
1547@node [5.5], [5.6], [5.4], FAQ 5 - Composing messages
1548@end ifnottex
1549@subsubheading Question 5.5:
1550 1386
1551 Is there a spell-checker? Perhaps even on-the-fly spell-checking? 1387@node [5.5]
1552 1388@subsubheading Question 5.5
1553 1389
1554Answer: 1390Is there a spell-checker? Perhaps even on-the-fly spell-checking?
1555 1391
1556You can use ispell.el to spell-check stuff in Emacs. So the first 1392@subsubheading Answer
1557thing to do is to make sure that you've got either
1558@itemize @bullet
1559@item
1560@uref{http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html,ispell}
1561or
1562@item
1563@uref{http://aspell.sourceforge.net/,aspell}
1564@end itemize
1565@noindent
1566installed and in your Path.
1567
1568Then you need
1569@uref{http://www.kdstevens.com/~stevens/ispell-page.html,ispell.el,ispell.el}
1570and for on-the-fly spell-checking
1571@uref{http://www-sop.inria.fr/mimosa/personnel/Manuel.Serrano/flyspell/flyspell.html,flyspell.el,flyspell.el}.
1572Ispell.el is shipped with Gnus Emacs and available through the Emacs
1573package system, flyspell.el is shipped with Emacs and part of XEmacs
1574text-modes package which is available through the package system, so
1575there should be no need to install them manually.
1576
1577 1393
1578 Ispell.el assumes you use ispell, if you choose aspell say 1394You can use ispell.el to spell-check stuff in Emacs. So the
1579 1395first thing to do is to make sure that you've got either
1396@uref{http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell.html, ispell}
1397or @uref{http://aspell.sourceforge.net/, aspell}
1398installed and in your Path. Then you need
1399@uref{http://www.kdstevens.com/~stevens/ispell-page.html, ispell.el}
1400and for on-the-fly spell-checking
1401@uref{http://www-sop.inria.fr/mimosa/personnel/Manuel.Serrano/flyspell/flyspell.html, flyspell.el}.
1402Ispell.el is shipped with Emacs and available through the XEmacs package system,
1403flyspell.el is shipped with Emacs and part of XEmacs text-modes package which is
1404available through the package system, so there should be no need to install them
1405manually.
1406
1407Ispell.el assumes you use ispell, if you choose aspell say
1580 1408
1581@example 1409@example
1582(setq ispell-program-name "aspell") 1410(setq ispell-program-name "aspell")
1583@end example 1411@end example
1584
1585
1586@noindent 1412@noindent
1587 in your Emacs configuration file.
1588 1413
1414in your Emacs configuration file.
1589 1415
1590 If you want your outgoing messages to be spell-checked, say 1416If you want your outgoing messages to be spell-checked, say
1591
1592 1417
1593@example 1418@example
1594(add-hook 'message-send-hook 'ispell-message) 1419(add-hook 'message-send-hook 'ispell-message)
1595@end example 1420@end example
1596
1597@noindent 1421@noindent
1598 In your ~/.gnus, if you prefer on-the-fly spell-checking say 1422
1599 1423In your ~/.gnus.el, if you prefer on-the-fly spell-checking say
1600 1424
1601@example 1425@example
1602(add-hook 'message-mode-hook (lambda () (flyspell-mode 1))) 1426(add-hook 'message-mode-hook (lambda () (flyspell-mode 1)))
1603@end example 1427@end example
1604 1428@noindent
1605@ifnottex
1606@node [5.6], [5.7], [5.5], FAQ 5 - Composing messages
1607@end ifnottex
1608@subsubheading Question 5.6:
1609 1429
1610 Can I set the dictionary based on the group I'm posting to? 1430@node [5.6]
1611 1431@subsubheading Question 5.6
1612 1432
1613Answer: 1433Can I set the dictionary based on the group I'm posting to?
1614 1434
1615 Yes, say something like 1435@subsubheading Answer
1616 1436
1437Yes, say something like
1617 1438
1618@example 1439@example
1619(add-hook 'gnus-select-group-hook 1440(add-hook 'gnus-select-group-hook
@@ -1625,55 +1446,47 @@ Answer:
1625 (t 1446 (t
1626 (ispell-change-dictionary "english"))))) 1447 (ispell-change-dictionary "english")))))
1627@end example 1448@end example
1628
1629
1630@noindent 1449@noindent
1631 in ~/.gnus. Change "^de\\." and "deutsch8" to something
1632 that suits your needs.
1633 1450
1634@ifnottex 1451in ~/.gnus.el. Change "^de\\." and "deutsch8" to something
1635@node [5.7], [5.8], [5.6], FAQ 5 - Composing messages 1452that suits your needs.
1636@end ifnottex
1637@subsubheading Question 5.7:
1638 1453
1639 Is there some kind of address-book, so I needn't remember 1454@node [5.7]
1640 all those email addresses? 1455@subsubheading Question 5.7
1641
1642 1456
1643Answer: 1457Is there some kind of address-book, so I needn't remember
1458all those email addresses?
1644 1459
1645 There's an very basic solution for this, mail aliases. 1460@subsubheading Answer
1646 You can store your mail addresses in a ~/.mailrc file using a simple 1461
1647 alias syntax: 1462There's an very basic solution for this, mail aliases.
1648 1463You can store your mail addresses in a ~/.mailrc file using a simple
1464alias syntax:
1649 1465
1650@example 1466@example
1651alias al "Al <al@@english-heritage.bla>" 1467alias al "Al <al@@english-heritage.bla>"
1652@end example 1468@end example
1653
1654@noindent 1469@noindent
1655 Then typing your alias (followed by a space or punctuation
1656 character) on a To: or Cc: line in the message buffer will
1657 cause Gnus to insert the full address for you. See the
1658 node "Mail Aliases" in Message (not Gnus) manual for
1659 details.
1660
1661 1470
1662 However, what you really want is the Insidious Big Brother 1471Then typing your alias (followed by a space or punctuation
1663 Database bbdb. Get it through the XEmacs package system or from 1472character) on a To: or Cc: line in the message buffer will
1664 @uref{http://bbdb.sourceforge.net/,bbdb's homepage}. 1473cause Gnus to insert the full address for you. See the
1665 Now place the following in ~/.gnus, to activate bbdb for Gnus: 1474node "Mail Aliases" in Message (not Gnus) manual for
1666 1475details.
1476
1477However, what you really want is the Insidious Big Brother
1478Database bbdb. Get it through the XEmacs package system or from
1479@uref{http://bbdb.sourceforge.net/, bbdb's homepage}.
1480Now place the following in ~/.gnus.el, to activate bbdb for Gnus:
1667 1481
1668@example 1482@example
1669(require 'bbdb) 1483(require 'bbdb)
1670(bbdb-initialize 'gnus 'message) 1484(bbdb-initialize 'gnus 'message)
1671@end example 1485@end example
1672
1673@noindent 1486@noindent
1674 Now you probably want some general bbdb configuration, 1487
1675 place them in ~/.emacs: 1488Now you probably want some general bbdb configuration,
1676 1489place them in ~/.emacs:
1677 1490
1678@example 1491@example
1679(require 'bbdb) 1492(require 'bbdb)
@@ -1689,56 +1502,50 @@ alias al "Al <al@@english-heritage.bla>"
1689;;No popup-buffers 1502;;No popup-buffers
1690(setq bbdb-use-pop-up nil) 1503(setq bbdb-use-pop-up nil)
1691@end example 1504@end example
1692
1693@noindent 1505@noindent
1694 Now you should be ready to go. Say @samp{M-x bbdb RET
1695 RET} to open a bbdb buffer showing all
1696 entries. Say @samp{c} to create a new
1697 entry, @samp{b} to search your BBDB and
1698 @samp{C-o} to add a new field to an
1699 entry. If you want to add a sender to the BBDB you can
1700 also just hit `:' on the posting in the summary buffer and
1701 you are done. When you now compose a new mail,
1702 hit @samp{TAB} to cycle through know
1703 recipients.
1704
1705@ifnottex
1706@node [5.8], [5.9], [5.7], FAQ 5 - Composing messages
1707@end ifnottex
1708@subsubheading Question 5.8:
1709
1710 Sometimes I see little images at the top of article
1711 buffer. What's that and how can I send one with my
1712 postings, too?
1713
1714 1506
1715Answer: 1507Now you should be ready to go. Say @samp{M-x bbdb RET
1716 1508RET} to open a bbdb buffer showing all
1717 Those images are called X-Faces. They are 48*48 pixel b/w 1509entries. Say @samp{c} to create a new
1718 pictures, encoded in a header line. If you want to include 1510entry, @samp{b} to search your BBDB and
1719 one in your posts, you've got to convert some image to a 1511@samp{C-o} to add a new field to an
1720 X-Face. So fire up some image manipulation program (say 1512entry. If you want to add a sender to the BBDB you can
1721 Gimp), open the image you want to include, cut out the 1513also just hit `:' on the posting in the summary buffer and
1722 relevant part, reduce color depth to 1 bit, resize to 1514you are done. When you now compose a new mail,
1723 48*48 and save as bitmap. Now you should get the compface 1515hit @samp{TAB} to cycle through know
1724 package from 1516recipients.
1725 @uref{ftp://ftp.cs.indiana.edu:/pub/faces/,this site}. 1517
1726 and create the actual X-face by saying 1518@node [5.8]
1727 1519@subsubheading Question 5.8
1520
1521Sometimes I see little images at the top of article
1522buffer. What's that and how can I send one with my
1523postings, too?
1524
1525@subsubheading Answer
1526
1527Those images are called X-Faces. They are 48*48 pixel b/w
1528pictures, encoded in a header line. If you want to include
1529one in your posts, you've got to convert some image to a
1530X-Face. So fire up some image manipulation program (say
1531Gimp), open the image you want to include, cut out the
1532relevant part, reduce color depth to 1 bit, resize to
153348*48 and save as bitmap. Now you should get the compface
1534package from
1535@uref{ftp://ftp.cs.indiana.edu:/pub/faces/, this site}.
1536and create the actual X-face by saying
1728 1537
1729@example 1538@example
1730cat file.xbm | xbm2ikon |compface > file.face 1539cat file.xbm | xbm2ikon | compface > file.face
1731cat ./file.face | sed 's/\\/\\\\/g' | sed 's/\"/\\\"/g' > ./file.face.quoted 1540cat file.face | sed 's/\\/\\\\/g;s/\"/\\\"/g;' > file.face.quoted
1732@end example 1541@end example
1733
1734@noindent 1542@noindent
1735If you can't use compface, there's an online X-face converter at@*
1736@uref{http://www.dairiki.org/xface/}. If you use MS Windows, you
1737could also use the WinFace program from
1738@uref{http://www.xs4all.nl/~walterln/winface/}.
1739 1543
1740Now you only have to tell Gnus to include the X-face in your postings 1544If you can't use compface, there's an online X-face converter at
1741by saying 1545@uref{http://www.dairiki.org/xface/}.
1546If you use MS Windows, you could also use the WinFace program from
1547@uref{http://www.xs4all.nl/~walterln/winface/}.
1548Now you only have to tell Gnus to include the X-face in your postings by saying
1742 1549
1743@example 1550@example
1744(setq message-default-headers 1551(setq message-default-headers
@@ -1747,33 +1554,28 @@ by saying
1747 (insert-file-contents "~/.xemacs/xface") 1554 (insert-file-contents "~/.xemacs/xface")
1748 (buffer-string))) 1555 (buffer-string)))
1749@end example 1556@end example
1750
1751@noindent 1557@noindent
1752 in ~/.gnus.
1753
1754@ifnottex
1755@node [5.9], [5.10], [5.8], FAQ 5 - Composing messages
1756@end ifnottex
1757@subsubheading Question 5.9:
1758
1759 Sometimes I accidentally hit r instead of f in
1760 newsgroups. Can Gnus warn me, when I'm replying by mail in
1761 newsgroups?
1762
1763 1558
1764Answer: 1559in ~/.gnus.el.
1765 1560
1766 Put this in ~/.gnus: 1561@node [5.9]
1767 1562@subsubheading Question 5.9
1563
1564Sometimes I accidentally hit r instead of f in
1565newsgroups. Can Gnus warn me, when I'm replying by mail in
1566newsgroups?
1567
1568@subsubheading Answer
1569
1570Put this in ~/.gnus.el:
1768 1571
1769@example 1572@example
1770(setq gnus-confirm-mail-reply-to-news t) 1573(setq gnus-confirm-mail-reply-to-news t)
1771@end example 1574@end example
1772
1773@noindent 1575@noindent
1774 if you already use Gnus 5.10, if you still use 5.8.8 or 1576
1775 5.9 try this instead: 1577if you already use Gnus 5.10, if you still use 5.8.8 or
1776 15785.9 try this instead:
1777 1579
1778@example 1580@example
1779(eval-after-load "gnus-msg" 1581(eval-after-load "gnus-msg"
@@ -1785,44 +1587,37 @@ Answer:
1785 (y-or-n-p "Really reply by mail to article author? ")) 1587 (y-or-n-p "Really reply by mail to article author? "))
1786 ad-do-it)))) 1588 ad-do-it))))
1787@end example 1589@end example
1788 1590@noindent
1789@ifnottex
1790@node [5.10], [5.11], [5.9], FAQ 5 - Composing messages
1791@end ifnottex
1792@subsubheading Question 5.10:
1793 1591
1794 How to tell Gnus not to generate a sender header? 1592@node [5.10]
1795 1593@subsubheading Question 5.10
1796 1594
1797Answer: 1595How to tell Gnus not to generate a sender header?
1798 1596
1799 Since 5.10 Gnus doesn't generate a sender header by 1597@subsubheading Answer
1800 default. For older Gnus' try this in ~/.gnus: 1598
1801 1599Since 5.10 Gnus doesn't generate a sender header by
1600default. For older Gnus' try this in ~/.gnus.el:
1802 1601
1803@example 1602@example
1804(eval-after-load "message" 1603(eval-after-load "message"
1805 '(add-to-list 'message-syntax-checks '(sender . disabled))) 1604 '(add-to-list 'message-syntax-checks '(sender . disabled)))
1806@end example 1605@end example
1807 1606@noindent
1808
1809@ifnottex
1810@node [5.11], [5.12], [5.10], FAQ 5 - Composing messages
1811@end ifnottex
1812@subsubheading Question 5.11:
1813 1607
1814 I want gnus to locally store copies of my send mail and 1608@node [5.11]
1815 news, how to do it? 1609@subsubheading Question 5.11
1816
1817 1610
1818Answer: 1611I want Gnus to locally store copies of my send mail and
1612news, how to do it?
1819 1613
1820 You must set the variable gnus-message-archive-group to do 1614@subsubheading Answer
1821 this. You can set it to a string giving the name of the 1615
1822 group where the copies shall go or like in the example 1616You must set the variable gnus-message-archive-group to do
1823 below use a function which is evaluated and which returns 1617this. You can set it to a string giving the name of the
1824 the group to use. 1618group where the copies shall go or like in the example
1825 1619below use a function which is evaluated and which returns
1620the group to use.
1826 1621
1827@example 1622@example
1828(setq gnus-message-archive-group 1623(setq gnus-message-archive-group
@@ -1830,31 +1625,31 @@ Answer:
1830 "nnml:Send-News" 1625 "nnml:Send-News"
1831 "nnml:Send-Mail"))) 1626 "nnml:Send-Mail")))
1832@end example 1627@end example
1833 1628@noindent
1834
1835@ifnottex
1836@node [5.12], , [5.11], FAQ 5 - Composing messages
1837@end ifnottex
1838@subsubheading Question 5.12:
1839 1629
1840 People tell me my Message-IDs are not correct, why 1630@node [5.12]
1841 aren't they and how to fix it? 1631@subsubheading Question 5.12
1842 1632
1633People tell me my Message-IDs are not correct, why
1634aren't they and how to fix it?
1843 1635
1844Answer: 1636@subsubheading Answer
1637
1638The message-ID is an unique identifier for messages you
1639send. To make it unique, Gnus need to know which machine
1640name to put after the "@@". If the name of the machine
1641where Gnus is running isn't suitable (it probably isn't
1642at most private machines) you can tell Gnus what to use
1643by saying:
1845 1644
1846 The message-ID is an unique identifier for messages you
1847 send. To make it unique, Gnus need to know which machine
1848 name to put after the "@@". If the name of the machine
1849 where Gnus is running isn't suitable (it probably isn't
1850 at most private machines) you can tell Gnus what to use
1851 by saying
1852@example 1645@example
1853(setq message-user-fqdn "yourmachine.yourdomain.tld") 1646(setq message-user-fqdn "yourmachine.yourdomain.tld")
1854@end example 1647@end example
1855@noindent 1648@noindent
1856 in ~/.gnus. If you use Gnus 5.9 or ealier, you can use this 1649
1857instead (works for newer versions a well): 1650in ~/.gnus.el. If you use Gnus 5.9 or ealier, you can use this
1651instead (works for newer versions a well):
1652
1858@example 1653@example
1859(eval-after-load "message" 1654(eval-after-load "message"
1860 '(let ((fqdn "yourmachine.yourdomain.tld"));; <-- Edit this! 1655 '(let ((fqdn "yourmachine.yourdomain.tld"));; <-- Edit this!
@@ -1865,110 +1660,97 @@ instead (works for newer versions a well):
1865 "Return user's fully qualified domain name." 1660 "Return user's fully qualified domain name."
1866 fqdn)))) 1661 fqdn))))
1867@end example 1662@end example
1663@noindent
1868 1664
1869 If you have no idea what to insert for 1665If you have no idea what to insert for
1870 "yourmachine.yourdomain.tld", you've got several 1666"yourmachine.yourdomain.tld", you've got several
1871 choices. You can either ask your provider if he allows 1667choices. You can either ask your provider if he allows
1872 you to use something like 1668you to use something like
1873 yourUserName.userfqdn.provider.net, or you can use 1669yourUserName.userfqdn.provider.net, or you can use
1874 somethingUnique.yourdomain.tld if you own the domain 1670somethingUnique.yourdomain.tld if you own the domain
1875 yourdomain.tld, or you can register at a service which 1671yourdomain.tld, or you can register at a service which
1876 gives private users a FQDN for free, e.g. 1672gives private users a FQDN for free, e.g.
1877 @uref{http://www.stura.tu-freiberg.de/~dlx/addfqdn.html}. 1673@uref{http://www.stura.tu-freiberg.de/~dlx/addfqdn.html}.
1878 (Sorry but this website is in German, if you know of an 1674(Sorry but this website is in German, if you know of an
1879 English one offering the same, drop me a note). 1675English one offering the same, drop me a note).
1880 1676
1881 1677Finally you can tell Gnus not to generate a Message-ID
1882 Finally you can tell Gnus not to generate a Message-ID 1678for News at all (and letting the server do the job) by saying
1883 for News at all (and letting the server do the job) by saying
1884
1885 1679
1886@example 1680@example
1887(setq message-required-news-headers 1681(setq message-required-news-headers
1888 (remove' Message-ID message-required-news-headers)) 1682 (remove' Message-ID message-required-news-headers))
1889@end example 1683@end example
1890
1891@noindent 1684@noindent
1892 you can also tell Gnus not to generate Message-IDs for mail by saying 1685
1893 1686you can also tell Gnus not to generate Message-IDs for mail by saying
1894 1687
1895@example 1688@example
1896(setq message-required-mail-headers 1689(setq message-required-mail-headers
1897 (remove' Message-ID message-required-mail-headers)) 1690 (remove' Message-ID message-required-mail-headers))
1898@end example 1691@end example
1899
1900@noindent 1692@noindent
1901 , however some mail servers don't generate proper
1902 Message-IDs, too, so test if your Mail Server behaves
1903 correctly by sending yourself a Mail and looking at the Message-ID.
1904
1905 1693
1906@ifnottex 1694, however some mail servers don't generate proper
1907@node FAQ 6 - Old messages, FAQ 7 - Gnus in a dial-up environment, FAQ 5 - Composing messages, Frequently Asked Questions 1695Message-IDs, too, so test if your Mail Server behaves
1908@end ifnottex 1696correctly by sending yourself a Mail and looking at the Message-ID.
1697
1698@node FAQ 6 - Old messages
1909@subsection Old messages 1699@subsection Old messages
1910 1700
1911@menu 1701@menu
1912* [6.1]:: How to import my old mail into Gnus? 1702* [6.1]:: How to import my old mail into Gnus?
1913* [6.2]:: How to archive interesting messages? 1703* [6.2]:: How to archive interesting messages?
1914* [6.3]:: How to search for a specific message? 1704* [6.3]:: How to search for a specific message?
1915* [6.4]:: How to get rid of old unwanted mail? 1705* [6.4]:: How to get rid of old unwanted mail?
1916* [6.5]:: I want that all read messages are expired (at least in some 1706* [6.5]:: I want that all read messages are expired (at least in some
1917 groups). How to do it? 1707 groups). How to do it?
1918* [6.6]:: I don't want expiration to delete my mails but to move them 1708* [6.6]:: I don't want expiration to delete my mails but to move them
1919 to another group. 1709 to another group.
1920@end menu 1710@end menu
1921 1711
1922@ifnottex 1712@node [6.1]
1923@node [6.1], [6.2], FAQ 6 - Old messages, FAQ 6 - Old messages 1713@subsubheading Question 6.1
1924@end ifnottex 1714
1925@subsubheading Question 6.1: 1715How to import my old mail into Gnus?
1926 1716
1927 How to import my old mail into Gnus? 1717@subsubheading Answer
1928 1718
1929 1719The easiest way is to tell your old mail program to
1930Answer: 1720export the messages in mbox format. Most Unix mailers
1931 1721are able to do this, if you come from the MS Windows
1932 The easiest way is to tell your old mail program to 1722world, you may find tools at
1933 export the messages in mbox format. Most Unix mailers 1723@uref{http://mbx2mbox.sourceforge.net/}.
1934 are able to do this, if you come from the MS Windows 1724
1935 world, you may find tools at 1725Now you've got to import this mbox file into Gnus. To do
1936 @uref{http://mbx2mbox.sourceforge.net/}. 1726this, create a nndoc group based on the mbox file by
1937 1727saying @samp{G f /path/file.mbox RET} in
1938 1728Group buffer. You now have read-only access to your
1939 Now you've got to import this mbox file into Gnus. To do 1729mail. If you want to import the messages to your normal
1940 this, create a nndoc group based on the mbox file by 1730Gnus mail groups hierarchy, enter the nndoc group you've
1941 saying @samp{G f /path/file.mbox RET} in 1731just created by saying @samp{C-u RET}
1942 Group buffer. You now have read-only access to your 1732(thus making sure all messages are retrieved), mark all
1943 mail. If you want to import the messages to your normal 1733messages by saying @samp{M P b} and
1944 Gnus mail groups hierarchy, enter the nndoc group you've 1734either copy them to the desired group by saying
1945 just created by saying @samp{C-u RET} 1735@samp{B c name.of.group RET} or send them
1946 (thus making sure all messages are retrieved), mark all 1736through nnmail-split-methods (respool them) by saying
1947 messages by saying @samp{M P b} and 1737@samp{B r}.
1948 either copy them to the desired group by saying 1738
1949 @samp{B c name.of.group RET} or send them 1739@node [6.2]
1950 through nnmail-split-methods (respool them) by saying 1740@subsubheading Question 6.2
1951 @samp{B r}. 1741
1952 1742How to archive interesting messages?
1953@ifnottex 1743
1954@node [6.2], [6.3], [6.1], FAQ 6 - Old messages 1744@subsubheading Answer
1955@end ifnottex 1745
1956@subsubheading Question 6.2: 1746If you stumble across an interesting message, say in
1957 1747gnu.emacs.gnus and want to archive it there are several
1958 How to archive interesting messages? 1748solutions. The first and easiest is to save it to a file
1959 1749by saying @samp{O f}. However, wouldn't
1960 1750it be much more convenient to have more direct access to
1961Answer: 1751the archived message from Gnus? If you say yes, put this
1962 1752snippet by Frank Haun <pille3003@@fhaun.de> in
1963 If you stumble across an interesting message, say in 1753~/.gnus.el:
1964 gnu.emacs.gnus and want to archive it there are several
1965 solutions. The first and easiest is to save it to a file
1966 by saying @samp{O f}. However, wouldn't
1967 it be much more convenient to have more direct access to
1968 the archived message from Gnus? If you say yes, put this
1969 snippet by Frank Haun <pille3003@@fhaun.de> in
1970 ~/.gnus:
1971
1972 1754
1973@example 1755@example
1974(defun my-archive-article (&optional n) 1756(defun my-archive-article (&optional n)
@@ -1987,624 +1769,531 @@ more then one article."
1987 (replace-regexp-in-string "^.*:" "" gnus-newsgroup-name))))) 1769 (replace-regexp-in-string "^.*:" "" gnus-newsgroup-name)))))
1988 (gnus-summary-copy-article n archive-name))) 1770 (gnus-summary-copy-article n archive-name)))
1989@end example 1771@end example
1990
1991@noindent 1772@noindent
1992 You can now say @samp{M-x
1993 my-archive-article} in summary buffer to
1994 archive the article under the cursor in a nnml
1995 group. (Change nnml to your preferred back end)
1996
1997 1773
1998 Of course you can also make sure the cache is enabled by saying 1774You can now say @samp{M-x
1999 1775my-archive-article} in summary buffer to
1776archive the article under the cursor in a nnml
1777group. (Change nnml to your preferred back end)
1778
1779Of course you can also make sure the cache is enabled by saying
2000 1780
2001@example 1781@example
2002(setq gnus-use-cache t) 1782(setq gnus-use-cache t)
2003@end example 1783@end example
2004
2005@noindent 1784@noindent
2006 then you only have to set either the tick or the dormant
2007 mark for articles you want to keep, setting the read
2008 mark will remove them from cache.
2009
2010@ifnottex
2011@node [6.3], [6.4], [6.2], FAQ 6 - Old messages
2012@end ifnottex
2013@subsubheading Question 6.3:
2014
2015 How to search for a specific message?
2016
2017
2018Answer:
2019
2020 There are several ways for this, too. For a posting from
2021 a Usenet group the easiest solution is probably to ask
2022 @uref{http://groups.google.com,groups.google.com},
2023 if you found the posting there, tell Google to display
2024 the raw message, look for the message-id, and say
2025 @samp{M-^ the@@message.id RET} in a
2026 summary buffer.
2027 Since Gnus 5.10 there's also a Gnus interface for
2028 groups.google.com which you can call with
2029 @samp{G W}) in group buffer.
2030
2031
2032 Another idea which works for both mail and news groups
2033 is to enter the group where the message you are
2034 searching is and use the standard Emacs search
2035 @samp{C-s}, it's smart enough to look at
2036 articles in collapsed threads, too. If you want to
2037 search bodies, too try @samp{M-s}
2038 instead. Further on there are the
2039 gnus-summary-limit-to-foo functions, which can help you,
2040 too.
2041
2042 1785
2043 Of course you can also use grep to search through your 1786then you only have to set either the tick or the dormant
2044 local mail, but this is both slow for big archives and 1787mark for articles you want to keep, setting the read
2045 inconvenient since you are not displaying the found mail 1788mark will remove them from cache.
2046 in Gnus. Here comes nnir into action. Nnir is a front end 1789
2047 to search engines like swish-e or swish++ and 1790@node [6.3]
2048 others. You index your mail with one of those search 1791@subsubheading Question 6.3
2049 engines and with the help of nnir you can search trough 1792
2050 the indexed mail and generate a temporary group with all 1793How to search for a specific message?
2051 messages which met your search criteria. If this sound 1794
2052 cool to you get nnir.el from the contrib directory of the Gnus 1795@subsubheading Answer
2053 distribution or 1796
2054 @uref{http://quimby.gnus.org/cgi-bin/cvsweb.cgi/~checkout~/gnus/contrib/nnir.el?rev=HEAD&content-type=text/plain} 1797There are several ways for this, too. For a posting from
2055 Instructions on how to use it are at the top of the file. 1798a Usenet group the easiest solution is probably to ask
2056 1799@uref{http://groups.google.com, groups.google.com},
2057@ifnottex 1800if you found the posting there, tell Google to display
2058@node [6.4], [6.5], [6.3], FAQ 6 - Old messages 1801the raw message, look for the message-id, and say
2059@end ifnottex 1802@samp{M-^ the@@message.id RET} in a
2060@subsubheading Question 6.4: 1803summary buffer.
2061 1804Since Gnus 5.10 there's also a Gnus interface for
2062 How to get rid of old unwanted mail? 1805groups.google.com which you can call with
2063 1806@samp{G W}) in group buffer.
2064 1807
2065Answer: 1808Another idea which works for both mail and news groups
2066 1809is to enter the group where the message you are
2067 You can of course just mark the mail you don't need 1810searching is and use the standard Emacs search
2068 anymore by saying @samp{#} with point 1811@samp{C-s}, it's smart enough to look at
2069 over the mail and then say @samp{B DEL} 1812articles in collapsed threads, too. If you want to
2070 to get rid of them forever. You could also instead of 1813search bodies, too try @samp{M-s}
2071 actually deleting them, send them to a junk-group by 1814instead. Further on there are the
2072 saying @samp{B m nnml:trash-bin} which 1815gnus-summary-limit-to-foo functions, which can help you,
2073 you clear from time to time, but both are not the intended 1816too.
2074 way in Gnus. 1817
2075 1818Of course you can also use grep to search through your
2076 1819local mail, but this is both slow for big archives and
2077 In Gnus, we let mail expire like news expires on a news 1820inconvenient since you are not displaying the found mail
2078 server. That means you tell Gnus the message is 1821in Gnus. Here comes nnir into action. Nnir is a front end
2079 expirable (you tell Gnus "I don't need this mail 1822to search engines like swish-e or swish++ and
2080 anymore") by saying @samp{E} with point 1823others. You index your mail with one of those search
2081 over the mail in summary buffer. Now when you leave the 1824engines and with the help of nnir you can search trough
2082 group, Gnus looks at all messages which you marked as 1825the indexed mail and generate a temporary group with all
2083 expirable before and if they are old enough (default is 1826messages which met your search criteria. If this sound
2084 older than a week) they are deleted. 1827cool to you get nnir.el from
2085 1828@uref{ftp://ls6-ftp.cs.uni-dortmund.de/pub/src/emacs/}
2086@ifnottex 1829or @uref{ftp://ftp.is.informatik.uni-duisburg.de/pub/src/emacs/}.
2087@node [6.5], [6.6], [6.4], FAQ 6 - Old messages 1830Instructions on how to use it are at the top of the file.
2088@end ifnottex 1831
2089@subsubheading Question 6.5: 1832@node [6.4]
2090 1833@subsubheading Question 6.4
2091 I want that all read messages are expired (at least in 1834
2092 some groups). How to do it? 1835How to get rid of old unwanted mail?
2093 1836
2094 1837@subsubheading Answer
2095Answer: 1838
2096 1839You can of course just mark the mail you don't need
2097 If you want all read messages to be expired (e.g. in 1840anymore by saying @samp{#} with point
2098 mailing lists where there's an online archive), you've 1841over the mail and then say @samp{B DEL}
2099 got two choices: auto-expire and 1842to get rid of them forever. You could also instead of
2100 total-expire. Auto-expire means, that every article 1843actually deleting them, send them to a junk-group by
2101 which has no marks set and is selected for reading is 1844saying @samp{B m nnml:trash-bin} which
2102 marked as expirable, Gnus hits @samp{E} 1845you clear from time to time, but both are not the intended
2103 for you every time you read a message. Total-expire 1846way in Gnus.
2104 follows a slightly different approach, here all article 1847
2105 where the read mark is set are expirable. 1848In Gnus, we let mail expire like news expires on a news
2106 1849server. That means you tell Gnus the message is
2107 1850expirable (you tell Gnus "I don't need this mail
2108 To activate auto-expire, include auto-expire in the 1851anymore") by saying @samp{E} with point
2109 Group parameters for the group. (Hit @samp{G 1852over the mail in summary buffer. Now when you leave the
2110 c} in summary buffer with point over the 1853group, Gnus looks at all messages which you marked as
2111 group to change group parameters). For total-expire add 1854expirable before and if they are old enough (default is
2112 total-expire to the group-parameters. 1855older than a week) they are deleted.
2113 1856
2114 1857@node [6.5]
2115 Which method you choose is merely a matter of taste: 1858@subsubheading Question 6.5
2116 Auto-expire is faster, but it doesn't play together with 1859
2117 Adaptive Scoring, so if you want to use this feature, 1860I want that all read messages are expired (at least in
2118 you should use total-expire. 1861some groups). How to do it?
2119 1862
2120 1863@subsubheading Answer
2121 If you want a message to be excluded from expiration in 1864
2122 a group where total or auto expire is active, set either 1865If you want all read messages to be expired (e.g. in
2123 tick (hit @samp{u}) or dormant mark (hit 1866mailing lists where there's an online archive), you've
2124 @samp{u}), when you use auto-expire, you 1867got two choices: auto-expire and
2125 can also set the read mark (hit 1868total-expire. Auto-expire means, that every article
2126 @samp{d}). 1869which has no marks set and is selected for reading is
2127 1870marked as expirable, Gnus hits @samp{E}
2128@ifnottex 1871for you every time you read a message. Total-expire
2129@node [6.6], , [6.5], FAQ 6 - Old messages 1872follows a slightly different approach, here all article
2130@end ifnottex 1873where the read mark is set are expirable.
2131@subsubheading Question 6.6: 1874
2132 1875To activate auto-expire, include auto-expire in the
2133 I don't want expiration to delete my mails but to move them 1876Group parameters for the group. (Hit @samp{G
2134 to another group. 1877c} in summary buffer with point over the
2135 1878group to change group parameters). For total-expire add
2136 1879total-expire to the group-parameters.
2137Answer: 1880
2138 1881Which method you choose is merely a matter of taste:
2139 Say something like this in ~/.gnus: 1882Auto-expire is faster, but it doesn't play together with
2140 1883Adaptive Scoring, so if you want to use this feature,
1884you should use total-expire.
1885
1886If you want a message to be excluded from expiration in
1887a group where total or auto expire is active, set either
1888tick (hit @samp{u}) or dormant mark (hit
1889@samp{u}), when you use auto-expire, you
1890can also set the read mark (hit
1891@samp{d}).
1892
1893@node [6.6]
1894@subsubheading Question 6.6
1895
1896I don't want expiration to delete my mails but to move them
1897to another group.
1898
1899@subsubheading Answer
1900
1901Say something like this in ~/.gnus.el:
2141 1902
2142@example 1903@example
2143(setq nnmail-expiry-target "nnml:expired") 1904(setq nnmail-expiry-target "nnml:expired")
2144@end example 1905@end example
2145
2146@noindent 1906@noindent
2147 (If you want to change the value of nnmail-expiry-target
2148 on a per group basis see the question "How can I disable
2149 threading in some (e.g. mail-) groups, or set other
2150 variables specific for some groups?")
2151
2152 1907
2153@ifnottex 1908(If you want to change the value of nnmail-expiry-target
2154@node FAQ 7 - Gnus in a dial-up environment, FAQ 8 - Getting help, FAQ 6 - Old messages, Frequently Asked Questions 1909on a per group basis see the question "How can I disable
2155@end ifnottex 1910threading in some (e.g. mail-) groups, or set other
1911variables specific for some groups?")
1912
1913@node FAQ 7 - Gnus in a dial-up environment
2156@subsection Gnus in a dial-up environment 1914@subsection Gnus in a dial-up environment
2157 1915
2158@menu 1916@menu
2159* [7.1]:: I don't have a permanent connection to the net, how can I 1917* [7.1]:: I don't have a permanent connection to the net, how can I
2160 minimize the time I've got to be connected? 1918 minimize the time I've got to be connected?
2161* [7.2]:: So what was this thing about the Agent? 1919* [7.2]:: So what was this thing about the Agent?
2162* [7.3]:: I want to store article bodies on disk, too. How to do it? 1920* [7.3]:: I want to store article bodies on disk, too. How to do it?
2163* [7.4]:: How to tell Gnus not to try to send mails / postings while 1921* [7.4]:: How to tell Gnus not to try to send mails / postings while
2164 I'm offline? 1922 I'm offline?
2165@end menu 1923@end menu
2166 1924
2167 1925@node [7.1]
2168@ifnottex 1926@subsubheading Question 7.1
2169@node [7.1], [7.2], FAQ 7 - Gnus in a dial-up environment, FAQ 7 - Gnus in a dial-up environment 1927
2170@end ifnottex 1928I don't have a permanent connection to the net, how can
2171@subsubheading Question 7.1: 1929I minimize the time I've got to be connected?
2172 1930
2173 I don't have a permanent connection to the net, how can 1931@subsubheading Answer
2174 I minimize the time I've got to be connected? 1932
2175 1933You've got basically two options: Either you use the
2176 1934Gnus Agent (see below) for this, or you can install
2177Answer: 1935programs which fetch your news and mail to your local
2178 1936disk and Gnus reads the stuff from your local
2179 You've got basically two options: Either you use the 1937machine.
2180 Gnus Agent (see below) for this, or you can install 1938
2181 programs which fetch your news and mail to your local 1939If you want to follow the second approach, you need a
2182 disk and Gnus reads the stuff from your local 1940program which fetches news and offers them to Gnus, a
2183 machine. 1941program which does the same for mail and a program which
2184 1942receives the mail you write from Gnus and sends them
2185 1943when you're online.
2186 If you want to follow the second approach, you need a 1944
2187 program which fetches news and offers them to Gnus, a 1945Let's talk about Unix systems first: For the news part,
2188 program which does the same for mail and a program which 1946the easiest solution is a small nntp server like
2189 receives the mail you write from Gnus and sends them 1947@uref{http://www.leafnode.org/, Leafnode} or
2190 when you're online. 1948@uref{http://infa.abo.fi/~patrik/sn/, sn},
2191 1949of course you can also install a full featured news
2192 1950server like
2193Let's talk about Unix systems first: For the news part, the easiest 1951@uref{http://www.isc.org/products/INN/, inn}.
2194solution is a small nntp server like 1952Then you want to fetch your Mail, popular choices
2195@uref{http://www.leafnode.org/,Leafnode} or 1953are @uref{http://www.catb.org/~esr/fetchmail/, fetchmail}
2196@uref{http://infa.abo.fi/~patrik/sn/,sn}, of course you can also 1954and @uref{http://www.qcc.ca/~charlesc/software/getmail-3.0/, getmail}.
2197install a full featured news server like 1955You should tell those to write the mail to your disk and
2198@uref{http://www.isc.org/products/INN/,inn}. 1956Gnus to read it from there. Last but not least the mail
2199 1957sending part: This can be done with every MTA like
2200Then you want to fetch your Mail, popular choices are 1958@uref{http://www.sendmail.org/, sendmail},
2201@itemize @bullet 1959@uref{http://www.qmail.org/, postfix},
2202@item 1960@uref{http://www.exim.org/, exim} or
2203@uref{http://www.catb.org/~esr/fetchmail/,fetchmail} and 1961@uref{http://www.qmail.org/, qmail}.
2204@item 1962
2205@uref{http://www.qcc.ca/~charlesc/software/getmail-3.0/,getmail}. 1963On windows boxes I'd vote for
2206@end itemize 1964@uref{http://www.tglsoft.de/, Hamster},
2207You should tell those to write the mail to your disk and Gnus to read 1965it's a small freeware, open-source program which fetches
2208it from there. Last but not least the mail sending part: This can be 1966your mail and news from remote servers and offers them
2209done with every MTA like @uref{http://www.sendmail.org/,sendmail}, 1967to Gnus (or any other mail and/or news reader) via nntp
2210@uref{http://www.qmail.org/,postfix}, @uref{http://www.exim.org/,exim} 1968respectively POP3 or IMAP. It also includes a smtp
2211or @uref{http://www.qmail.org/,qmail}. 1969server for receiving mails from Gnus.
2212 1970
2213 1971@node [7.2]
2214 On windows boxes I'd vote for 1972@subsubheading Question 7.2
2215 @uref{http://www.tglsoft.de/,Hamster}, 1973
2216 it's a small freeware, open-source program which fetches 1974So what was this thing about the Agent?
2217 your mail and news from remote servers and offers them 1975
2218 to Gnus (or any other mail and/or news reader) via nntp 1976@subsubheading Answer
2219 respectively POP3 or IMAP. It also includes a smtp 1977
2220 server for receiving mails from Gnus. 1978The Gnus agent is part of Gnus, it allows you to fetch
2221 1979mail and news and store them on disk for reading them
2222@ifnottex 1980later when you're offline. It kind of mimics offline
2223@node [7.2], [7.3], [7.1], FAQ 7 - Gnus in a dial-up environment 1981newsreaders like e.g. Forte Agent. If you want to use
2224@end ifnottex 1982the Agent place the following in ~/.gnus.el if you are
2225@subsubheading Question 7.2: 1983still using 5.8.8 or 5.9 (it's the default since 5.10):
2226
2227 So what was this thing about the Agent?
2228
2229
2230Answer:
2231
2232 The Gnus agent is part of Gnus, it allows you to fetch
2233 mail and news and store them on disk for reading them
2234 later when you're offline. It kind of mimics offline
2235 newsreaders like e.g. Forte Agent. If you want to use
2236 the Agent place the following in ~/.gnus if you are
2237 still using 5.8.8 or 5.9 (it's the default since 5.10):
2238
2239 1984
2240@example 1985@example
2241(setq gnus-agent t) 1986(setq gnus-agent t)
2242@end example 1987@end example
2243 1988@noindent
2244 1989
2245 Now you've got to select the servers whose groups can be 1990Now you've got to select the servers whose groups can be
2246 stored locally. To do this, open the server buffer 1991stored locally. To do this, open the server buffer
2247 (that is press @samp{^} while in the 1992(that is press @samp{^} while in the
2248 group buffer). Now select a server by moving point to 1993group buffer). Now select a server by moving point to
2249 the line naming that server. Finally, agentize the 1994the line naming that server. Finally, agentize the
2250 server by typing @samp{J a}. If you 1995server by typing @samp{J a}. If you
2251 make a mistake, or change your mind, you can undo this 1996make a mistake, or change your mind, you can undo this
2252 action by typing @samp{J r}. When 1997action by typing @samp{J r}. When
2253 you're done, type 'q' to return to the group buffer. 1998you're done, type 'q' to return to the group buffer.
2254 Now the next time you enter a group on a agentized 1999Now the next time you enter a group on a agentized
2255 server, the headers will be stored on disk and read from 2000server, the headers will be stored on disk and read from
2256 there the next time you enter the group. 2001there the next time you enter the group.
2257 2002
2258@ifnottex 2003@node [7.3]
2259@node [7.3], [7.4], [7.2], FAQ 7 - Gnus in a dial-up environment 2004@subsubheading Question 7.3
2260@end ifnottex 2005
2261@subsubheading Question 7.3: 2006I want to store article bodies on disk, too. How to do it?
2007
2008@subsubheading Answer
2009
2010You can tell the agent to automatically fetch the bodies
2011of articles which fulfill certain predicates, this is
2012done in a special buffer which can be reached by
2013saying @samp{J c} in group
2014buffer. Please refer to the documentation for
2015information which predicates are possible and how
2016exactly to do it.
2017
2018Further on you can tell the agent manually which
2019articles to store on disk. There are two ways to do
2020this: Number one: In the summary buffer, process mark a
2021set of articles that shall be stored in the agent by
2022saying @samp{#} with point over the
2023article and then type @samp{J s}. The
2024other possibility is to set, again in the summary
2025buffer, downloadable (%) marks for the articles you
2026want by typing @samp{@@} with point over
2027the article and then typing @samp{J u}.
2028What's the difference? Well, process marks are erased as
2029soon as you exit the summary buffer while downloadable
2030marks are permanent. You can actually set downloadable
2031marks in several groups then use fetch session ('J s' in
2032the GROUP buffer) to fetch all of those articles. The
2033only downside is that fetch session also fetches all of
2034the headers for every selected group on an agentized
2035server. Depending on the volume of headers, the initial
2036fetch session could take hours.
2037
2038@node [7.4]
2039@subsubheading Question 7.4
2040
2041How to tell Gnus not to try to send mails / postings
2042while I'm offline?
2043
2044@subsubheading Answer
2045
2046All you've got to do is to tell Gnus when you are online
2047(plugged) and when you are offline (unplugged), the rest
2048works automatically. You can toggle plugged/unplugged
2049state by saying @samp{J j} in group
2050buffer. To start Gnus unplugged say @samp{M-x
2051gnus-unplugged} instead of
2052@samp{M-x gnus}. Note that for this to
2053work, the agent must be active.
2054
2055@node FAQ 8 - Getting help
2056@subsection Getting help
2262 2057
2263 I want to store article bodies on disk, too. How to do it? 2058@menu
2264 2059* [8.1]:: How to find information and help inside Emacs?
2060* [8.2]:: I can't find anything in the Gnus manual about X (e.g.
2061 attachments, PGP, MIME...), is it not documented?
2062* [8.3]:: Which websites should I know?
2063* [8.4]:: Which mailing lists and newsgroups are there?
2064* [8.5]:: Where to report bugs?
2065* [8.6]:: I need real-time help, where to find it?
2066@end menu
2265 2067
2266Answer: 2068@node [8.1]
2069@subsubheading Question 8.1
2267 2070
2268 You can tell the agent to automatically fetch the bodies 2071How to find information and help inside Emacs?
2269 of articles which fulfill certain predicates, this is
2270 done in a special buffer which can be reached by
2271 saying @samp{J c} in group
2272 buffer. Please refer to the documentation for
2273 information which predicates are possible and how
2274 exactly to do it.
2275
2276 2072
2277 Further on you can tell the agent manually which 2073@subsubheading Answer
2278 articles to store on disk. There are two ways to do
2279 this: Number one: In the summary buffer, process mark a
2280 set of articles that shall be stored in the agent by
2281 saying @samp{#} with point over the
2282 article and then type @samp{J s}. The
2283 other possibility is to set, again in the summary
2284 buffer, downloadable (%) marks for the articles you
2285 want by typing @samp{@@} with point over
2286 the article and then typing @samp{J u}.
2287 What's the difference? Well, process marks are erased as
2288 soon as you exit the summary buffer while downloadable
2289 marks are permanent. You can actually set downloadable
2290 marks in several groups then use fetch session ('J s' in
2291 the GROUP buffer) to fetch all of those articles. The
2292 only downside is that fetch session also fetches all of
2293 the headers for every selected group on an agentized
2294 server. Depending on the volume of headers, the initial
2295 fetch session could take hours.
2296
2297@ifnottex
2298@node [7.4], , [7.3], FAQ 7 - Gnus in a dial-up environment
2299@end ifnottex
2300@subsubheading Question 7.4:
2301 2074
2302 How to tell Gnus not to try to send mails / postings 2075The first stop should be the Gnus manual (Say
2303 while I'm offline? 2076@samp{C-h i d m Gnus RET} to start the
2304 2077Gnus manual, then walk through the menus or do a
2078full-text search with @samp{s}). Then
2079there are the general Emacs help commands starting with
2080C-h, type @samp{C-h ? ?} to get a list
2081of all available help commands and their meaning. Finally
2082@samp{M-x apropos-command} lets you
2083search through all available functions and @samp{M-x
2084apropos} searches the bound variables.
2305 2085
2306Answer: 2086@node [8.2]
2087@subsubheading Question 8.2
2307 2088
2308 All you've got to do is to tell Gnus when you are online 2089I can't find anything in the Gnus manual about X
2309 (plugged) and when you are offline (unplugged), the rest 2090(e.g. attachments, PGP, MIME...), is it not documented?
2310 works automatically. You can toggle plugged/unplugged
2311 state by saying @samp{J j} in group
2312 buffer. To start Gnus unplugged say @samp{M-x
2313 gnus-unplugged} instead of
2314 @samp{M-x gnus}. Note that for this to
2315 work, the agent must be active.
2316
2317 2091
2318@ifnottex 2092@subsubheading Answer
2319@node FAQ 8 - Getting help, FAQ 9 - Tuning Gnus, FAQ 7 - Gnus in a dial-up environment, Frequently Asked Questions
2320@end ifnottex
2321@subsection Getting help
2322 2093
2323@menu 2094There's not only the Gnus manual but also the manuals
2324* [8.1]:: How to find information and help inside Emacs? 2095for message, emacs-mime, sieve and pgg. Those packages
2325* [8.2]:: I can't find anything in the Gnus manual about X 2096are distributed with Gnus and used by Gnus but aren't
2326 (e.g. attachments, PGP, MIME...), is it not documented? 2097really part of core Gnus, so they are documented in
2327* [8.3]:: Which websites should I know? 2098different info files, you should have a look in those
2328* [8.4]:: Which mailing lists and newsgroups are there? 2099manuals, too.
2329* [8.5]:: Where to report bugs?
2330* [8.6]:: I need real-time help, where to find it?
2331@end menu
2332 2100
2333@ifnottex 2101@node [8.3]
2334@node [8.1], [8.2], FAQ 8 - Getting help, FAQ 8 - Getting help 2102@subsubheading Question 8.3
2335@end ifnottex
2336@subsubheading Question 8.1:
2337 2103
2338 How to find information and help inside Emacs? 2104Which websites should I know?
2339
2340 2105
2341Answer: 2106@subsubheading Answer
2342
2343 The first stop should be the Gnus manual (Say
2344 @samp{C-h i d m Gnus RET} to start the
2345 Gnus manual, then walk through the menus or do a
2346 full-text search with @samp{s}). Then
2347 there are the general Emacs help commands starting with
2348 C-h, type @samp{C-h ? ?} to get a list
2349 of all available help commands and their meaning. Finally
2350 @samp{M-x apropos-command} lets you
2351 search through all available functions and @samp{M-x
2352 apropos} searches the bound variables.
2353
2354@ifnottex
2355@node [8.2], [8.3], [8.1], FAQ 8 - Getting help
2356@end ifnottex
2357@subsubheading Question 8.2:
2358 2107
2359 I can't find anything in the Gnus manual about X 2108The two most important ones are the
2360 (e.g. attachments, PGP, MIME...), is it not documented? 2109@uref{http://www.gnus.org, official Gnus website}.
2361 2110and it's sister site
2111@uref{http://my.gnus.org, my.gnus.org (MGO)},
2112hosting an archive of lisp snippets, howtos, a (not
2113really finished) tutorial and this FAQ.
2362 2114
2363Answer: 2115Tell me about other sites which are interesting.
2364 2116
2365 There's not only the Gnus manual but also the manuals 2117@node [8.4]
2366 for message, emacs-mime, sieve and pgg. Those packages 2118@subsubheading Question 8.4
2367 are distributed with Gnus and used by Gnus but aren't
2368 really part of core Gnus, so they are documented in
2369 different info files, you should have a look in those
2370 manuals, too.
2371
2372@ifnottex
2373@node [8.3], [8.4], [8.2], FAQ 8 - Getting help
2374@end ifnottex
2375@subsubheading Question 8.3:
2376 2119
2377 Which websites should I know? 2120Which mailing lists and newsgroups are there?
2378
2379 2121
2380Answer: 2122@subsubheading Answer
2381 2123
2382 The two most important ones are the 2124There's the newsgroup gnu.emacs.gnus (pull it from
2383 @uref{http://www.gnus.org,official Gnus website}. 2125e.g. news.gnus.org) which deals with general questions and the
2384 and it's sister site 2126ding mailing list (ding@@gnus.org) dealing with development of
2385 @uref{http://my.gnus.org,my.gnus.org (MGO)}, 2127Gnus. You can read the ding list via NNTP, too under the name
2386 hosting an archive of lisp snippets, howtos, a (not 2128gmane.emacs.gnus.general from news.gmane.org.
2387 really finished) tutorial and this FAQ.
2388
2389 2129
2390 Tell me about other sites which are interesting. 2130If you want to stay in the big8,
2391 2131news.software.newssreaders is also read by some Gnus
2392@ifnottex 2132users (but chances for qualified help are much better in
2393@node [8.4], [8.5], [8.3], FAQ 8 - Getting help 2133the above groups) and if you speak German, there's
2394@end ifnottex 2134de.comm.software.gnus.
2395@subsubheading Question 8.4:
2396 2135
2397 Which mailing lists and newsgroups are there? 2136@node [8.5]
2398 2137@subsubheading Question 8.5
2399 2138
2400Answer: 2139Where to report bugs?
2401 2140
2402 There's the newsgroup gnu.emacs.gnus (pull it from 2141@subsubheading Answer
2403 e.g. news.gnus.org) which deals with general questions
2404 and the ding mailing list (ding@@gnus.org) dealing with
2405 development of Gnus. You can read the ding list via
2406 NNTP, too under the name gnus.ding from news.gnus.org.
2407
2408 2142
2409 If you want to stay in the big8, 2143Say @samp{M-x gnus-bug}, this will start
2410 news.software.newssreaders is also read by some Gnus 2144a message to the
2411 users (but chances for qualified help are much better in 2145@email{bugs@@gnus.org, gnus bug mailing list}
2412 the above groups) and if you speak German, there's 2146including information about your environment which make
2413 de.comm.software.gnus. 2147it easier to help you.
2414
2415@ifnottex
2416@node [8.5], [8.6], [8.4], FAQ 8 - Getting help
2417@end ifnottex
2418@subsubheading Question 8.5:
2419 2148
2420 Where to report bugs? 2149@node [8.6]
2421 2150@subsubheading Question 8.6
2422 2151
2423Answer: 2152I need real-time help, where to find it?
2424 2153
2425Say @samp{M-x gnus-bug}, this will start a message to the 2154@subsubheading Answer
2426@email{bugs@@gnus.org,gnus bug mailing list} including information
2427about your environment which make it easier to help you.
2428
2429@ifnottex
2430@node [8.6], , [8.5], FAQ 8 - Getting help
2431@end ifnottex
2432@subsubheading Question 8.6:
2433 2155
2434 I need real-time help, where to find it? 2156Point your IRC client to irc.my.gnus.org channel
2435 2157#mygnus. Don't be afraid if people there speak German,
2436 2158they are willing and capable of switching to
2437Answer: 2159English when people from outside Germany enter.
2438
2439 Point your IRC client to irc.my.gnus.org channel
2440 #mygnus. Don't be afraid if people there speak German,
2441 they are willing and capable of switching to
2442 English when people from outside Germany enter.
2443
2444 2160
2445@ifnottex 2161@node FAQ 9 - Tuning Gnus
2446@node FAQ 9 - Tuning Gnus, FAQ - Glossary, FAQ 8 - Getting help, Frequently Asked Questions
2447@end ifnottex
2448@subsection Tuning Gnus 2162@subsection Tuning Gnus
2449 2163
2450@menu 2164@menu
2451* [9.1]:: Starting Gnus is really slow, how to speed it up? 2165* [9.1]:: Starting Gnus is really slow, how to speed it up?
2452* [9.2]:: How to speed up the process of entering a group? 2166* [9.2]:: How to speed up the process of entering a group?
2453* [9.3]:: Sending mail becomes slower and slower, what's up? 2167* [9.3]:: Sending mail becomes slower and slower, what's up?
2454@end menu 2168@end menu
2455 2169
2456@ifnottex 2170@node [9.1]
2457@node [9.1], [9.2], FAQ 9 - Tuning Gnus, FAQ 9 - Tuning Gnus 2171@subsubheading Question 9.1
2458@end ifnottex
2459@subsubheading Question 9.1:
2460 2172
2461 Starting Gnus is really slow, how to speed it up? 2173Starting Gnus is really slow, how to speed it up?
2462
2463 2174
2464Answer: 2175@subsubheading Answer
2465 2176
2466 The reason for this could be the way Gnus reads it's 2177The reason for this could be the way Gnus reads it's
2467 active file, see the node "The Active File" in the Gnus 2178active file, see the node "The Active File" in the Gnus
2468 manual for things you might try to speed the process up. 2179manual for things you might try to speed the process up.
2469 An other idea would be to byte compile your ~/.gnus (say 2180An other idea would be to byte compile your ~/.gnus.el (say
2470 @samp{M-x byte-compile-file RET ~/.gnus 2181@samp{M-x byte-compile-file RET ~/.gnus.el
2471 RET} to do it). Finally, if you have require 2182RET} to do it). Finally, if you have require
2472 statements in your .gnus, you could replace them with 2183statements in your .gnus, you could replace them with
2473 eval-after-load, which loads the stuff not at startup 2184eval-after-load, which loads the stuff not at startup
2474 time, but when it's needed. Say you've got this in your 2185time, but when it's needed. Say you've got this in your
2475 ~/.gnus: 2186~/.gnus.el:
2476
2477 2187
2478@example 2188@example
2479(require 'message) 2189(require 'message)
2480(add-to-list 'message-syntax-checks '(sender . disabled)) 2190(add-to-list 'message-syntax-checks '(sender . disabled))
2481@end example 2191@end example
2482
2483@noindent 2192@noindent
2484 then as soon as you start Gnus, message.el is loaded. If 2193
2485 you replace it with 2194then as soon as you start Gnus, message.el is loaded. If
2486 2195you replace it with
2487 2196
2488@example 2197@example
2489(eval-after-load "message" 2198(eval-after-load "message"
2490 '(add-to-list 'message-syntax-checks '(sender . disabled))) 2199 '(add-to-list 'message-syntax-checks '(sender . disabled)))
2491@end example 2200@end example
2492
2493@noindent 2201@noindent
2494 it's loaded when it's needed.
2495
2496@ifnottex
2497@node [9.2], [9.3], [9.1], FAQ 9 - Tuning Gnus
2498@end ifnottex
2499@subsubheading Question 9.2:
2500 2202
2501 How to speed up the process of entering a group? 2203it's loaded when it's needed.
2502
2503 2204
2504Answer: 2205@node [9.2]
2206@subsubheading Question 9.2
2505 2207
2506 A speed killer is setting the variable 2208How to speed up the process of entering a group?
2507 gnus-fetch-old-headers to anything different from nil, 2209
2508 so don't do this if speed is an issue. To speed up 2210@subsubheading Answer
2509 building of summary say 2211
2510 2212A speed killer is setting the variable
2213gnus-fetch-old-headers to anything different from nil,
2214so don't do this if speed is an issue. To speed up
2215building of summary say
2511 2216
2512@example 2217@example
2513(gnus-compile) 2218(gnus-compile)
2514@end example 2219@end example
2515
2516@noindent 2220@noindent
2517 at the bottom of your ~/.gnus, this will make gnus 2221
2518 byte-compile things like 2222at the bottom of your ~/.gnus.el, this will make gnus
2519 gnus-summary-line-format. 2223byte-compile things like
2520 then you could increase the value of gc-cons-threshold 2224gnus-summary-line-format.
2521 by saying something like 2225then you could increase the value of gc-cons-threshold
2522 2226by saying something like
2523 2227
2524@example 2228@example
2525(setq gc-cons-threshold 3500000) 2229(setq gc-cons-threshold 3500000)
2526@end example 2230@end example
2527
2528@noindent 2231@noindent
2529 in ~/.emacs. If you don't care about width of CJK 2232
2530 characters or use Gnus 5.10 or younger together with a 2233in ~/.emacs. If you don't care about width of CJK
2531 recent GNU Emacs, you should say 2234characters or use Gnus 5.10 or younger together with a
2532 2235recent GNU Emacs, you should say
2533 2236
2534@example 2237@example
2535(setq gnus-use-correct-string-widths nil) 2238(setq gnus-use-correct-string-widths nil)
2536@end example 2239@end example
2537
2538
2539@noindent 2240@noindent
2540 in ~/.gnus (thanks to Jesper harder for the last
2541 two suggestions). Finally if you are still using 5.8.8
2542 or 5.9 and experience speed problems with summary
2543 buffer generation, you definitely should update to
2544 5.10 since there quite some work on improving it has
2545 been done.
2546 2241
2547@ifnottex 2242in ~/.gnus.el (thanks to Jesper harder for the last
2548@node [9.3], , [9.2], FAQ 9 - Tuning Gnus 2243two suggestions). Finally if you are still using 5.8.8
2549@end ifnottex 2244or 5.9 and experience speed problems with summary
2550@subsubheading Question 9.3: 2245buffer generation, you definitely should update to
22465.10 since there quite some work on improving it has
2247been done.
2551 2248
2552 Sending mail becomes slower and slower, what's up? 2249@node [9.3]
2553 2250@subsubheading Question 9.3
2554 2251
2555Answer: 2252Sending mail becomes slower and slower, what's up?
2556 2253
2557 The reason could be that you told Gnus to archive the 2254@subsubheading Answer
2558 messages you wrote by setting
2559 gnus-message-archive-group. Try to use a nnml group
2560 instead of an archive group, this should bring you back
2561 to normal speed.
2562
2563 2255
2564@ifnottex 2256The reason could be that you told Gnus to archive the
2565@node FAQ - Glossary, , FAQ 9 - Tuning Gnus, Frequently Asked Questions 2257messages you wrote by setting
2566@end ifnottex 2258gnus-message-archive-group. Try to use a nnml group
2259instead of an archive group, this should bring you back
2260to normal speed.
2261
2262@node FAQ - Glossary
2567@subsection Glossary 2263@subsection Glossary
2568 2264
2569@table @dfn 2265@table @dfn
2570 2266
2571@item ~/.gnus 2267@item ~/.gnus.el
2572 When the term ~/.gnus is used it just means your Gnus 2268When the term ~/.gnus.el is used it just means your Gnus
2573 configuration file. You might as well call it ~/.gnus.el or 2269configuration file. You might as well call it ~/.gnus or
2574 specify another name. 2270specify another name.
2575
2576 2271
2577@item Back End 2272@item Back End
2578 In Gnus terminology a back end is a virtual server, a layer 2273In Gnus terminology a back end is a virtual server, a layer
2579 between core Gnus and the real NNTP-, POP3-, IMAP- or 2274between core Gnus and the real NNTP-, POP3-, IMAP- or
2580 whatever-server which offers Gnus a standardized interface 2275whatever-server which offers Gnus a standardized interface
2581 to functions like "get message", "get Headers" etc. 2276to functions like "get message", "get Headers" etc.
2582
2583 2277
2584@item Emacs 2278@item Emacs
2585 When the term Emacs is used in this FAQ, it means either GNU 2279When the term Emacs is used in this FAQ, it means either GNU
2586 Emacs or XEmacs. 2280Emacs or XEmacs.
2587
2588 2281
2589@item Message 2282@item Message
2590 In this FAQ message means a either a mail or a posting to a 2283In this FAQ message means a either a mail or a posting to a
2591 Usenet Newsgroup or to some other fancy back end, no matter 2284Usenet Newsgroup or to some other fancy back end, no matter
2592 of which kind it is. 2285of which kind it is.
2593
2594 2286
2595@item MUA 2287@item MUA
2596 MUA is an acronym for Mail User Agent, it's the program you 2288MUA is an acronym for Mail User Agent, it's the program you
2597 use to read and write e-mails. 2289use to read and write e-mails.
2598
2599 2290
2600@item NUA 2291@item NUA
2601 NUA is an acronym for News User Agent, it's the program you 2292NUA is an acronym for News User Agent, it's the program you
2602 use to read and write Usenet news. 2293use to read and write Usenet news.
2603
2604@end table
2605 2294
2606@c @bye 2295@end table
2607 2296
2608@ignore 2297@ignore
2609 arch-tag: 64dc5692-edb4-4848-a965-7aa0181acbb8 2298arch-tag: 64dc5692-edb4-4848-a965-7aa0181acbb8
2610@end ignore 2299@end ignore
diff --git a/man/gnus.texi b/man/gnus.texi
index 3a98f64baa1..c670da11b22 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -8,7 +8,7 @@
8 8
9@copying 9@copying
10Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 10Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001,
112002, 2003, 2004 112002, 2003, 2004, 2005
12Free Software Foundation, Inc. 12Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
@@ -18594,7 +18594,7 @@ that most will look for it here, this variable tells the summary
18594buffer how to maneuver around undownloaded (only headers stored in the 18594buffer how to maneuver around undownloaded (only headers stored in the
18595agent) and unfetched (neither article nor headers stored) articles. 18595agent) and unfetched (neither article nor headers stored) articles.
18596 18596
18597The legal values are @code{nil} (maneuver to any article), 18597The valid values are @code{nil} (maneuver to any article),
18598@code{undownloaded} (maneuvering while unplugged ignores articles that 18598@code{undownloaded} (maneuvering while unplugged ignores articles that
18599have not been fetched), @code{always-undownloaded} (maneuvering always 18599have not been fetched), @code{always-undownloaded} (maneuvering always
18600ignores articles that have not been fetched), @code{unfetched} 18600ignores articles that have not been fetched), @code{unfetched}
diff --git a/man/help.texi b/man/help.texi
index 8f7eed4915c..29c06b499df 100644
--- a/man/help.texi
+++ b/man/help.texi
@@ -172,6 +172,9 @@ documented (@code{Info-goto-emacs-key-command-node}).
172@item C-h S @var{symbol} @key{RET} 172@item C-h S @var{symbol} @key{RET}
173Display the Info documentation on symbol @var{symbol} according to the 173Display the Info documentation on symbol @var{symbol} according to the
174programming language you are editing (@code{info-lookup-symbol}). 174programming language you are editing (@code{info-lookup-symbol}).
175@item C-h .
176Display a help message associated with special text areas, such as
177links in @samp{*Help*} buffers (@code{display-local-help}).
175@end table 178@end table
176 179
177@node Key Help 180@node Key Help
@@ -277,13 +280,14 @@ example, it would say that you can invoke @code{find-file} by typing
277normally checks only commands (interactive functions); if you specify a 280normally checks only commands (interactive functions); if you specify a
278prefix argument, it checks noninteractive functions as well. 281prefix argument, it checks noninteractive functions as well.
279 282
280 Because @kbd{C-h a} looks only for commands whose names contain the 283 Because @kbd{C-h a} looks only for commands matching the string you
281string you specify, you must use ingenuity in choosing the string. If 284specify, you may not find what you want on the first try. In that
282you are looking for commands for killing backwards and @kbd{C-h a 285case, don't just give up. You can give Apropos a list of words to
283kill-backwards @key{RET}} doesn't reveal any, don't give up. Try just 286search for. When more than one word is specified, at least two of
284@kbd{kill}, or just @kbd{backwards}, or just @kbd{back}. Be 287those words must be present for an item to match. If you are looking
285persistent. Also note that you can use a regular expression as the 288for commands to kill a chunk of text before point, try @kbd{C-h a kill
286argument, for more flexibility (@pxref{Regexps}). 289back behind before @key{RET}}. For even greater flexibility, you can
290also supply a regular expression to Apropos (@pxref{Regexps}).
287 291
288 Here is a set of arguments to give to @kbd{C-h a} that covers many 292 Here is a set of arguments to give to @kbd{C-h a} that covers many
289classes of Emacs commands, since there are strong conventions for naming 293classes of Emacs commands, since there are strong conventions for naming
@@ -327,6 +331,13 @@ check them.
327 If the variable @code{apropos-do-all} is non-@code{nil}, the commands 331 If the variable @code{apropos-do-all} is non-@code{nil}, the commands
328above all behave as if they had been given a prefix argument. 332above all behave as if they had been given a prefix argument.
329 333
334@vindex apropos-sort-by-scores
335@cindex apropos search results, order by score
336 By default, Apropos lists the search results in alphabetical order.
337If the variable @code{apropos-sort-by-scores} is non-@code{nil},
338Apropos tries to guess the relevance of each result, and displays the
339most relevant ones first.
340
330 If you want more information about a function definition, variable or 341 If you want more information about a function definition, variable or
331symbol property listed in the Apropos buffer, you can click on it with 342symbol property listed in the Apropos buffer, you can click on it with
332@kbd{Mouse-1} or @kbd{Mouse-2}, or move there and type @key{RET}. 343@kbd{Mouse-1} or @kbd{Mouse-2}, or move there and type @key{RET}.
@@ -590,10 +601,20 @@ Emacs (@code{describe-no-warranty}).
590@cindex balloon help 601@cindex balloon help
591 When a region of text is ``active,'' so that you can select it with 602 When a region of text is ``active,'' so that you can select it with
592the mouse or a key like @kbd{RET}, it often has associated help text. 603the mouse or a key like @kbd{RET}, it often has associated help text.
593Areas of the mode line are examples. This help will normally be 604Areas of the mode line are examples. On most window systems, the help
594shown in the echo area when you move point into the active text. In 605text is displayed as a ``tooltip'' (sometimes known as ``balloon
595a window system you can display the help text as a ``tooltip'' 606help''). @xref{Tooltips}. Otherwise, it is shown in the echo area
596(sometimes known as ``balloon help''). @xref{Tooltips}. 607when you move point into the active text.
608
609@kindex C-h .
610@findex display-local-help
611@vindex help-at-pt-display-when-idle
612 You can also access text region help info using the keyboard. The
613command @kbd{C-h .} (@code{display-local-help}) displays any help text
614associated with the text at point, using the echo area. If you want
615help text to be displayed automatically whenever it is available at
616point, set the variable @code{help-at-pt-display-when-idle} to
617@code{t}.
597 618
598@ignore 619@ignore
599 arch-tag: 6f33ab62-bc75-4367-8057-fd67cc15c3a1 620 arch-tag: 6f33ab62-bc75-4367-8057-fd67cc15c3a1
diff --git a/man/idlwave.texi b/man/idlwave.texi
index 42b3bea4034..8226c0ac63f 100644
--- a/man/idlwave.texi
+++ b/man/idlwave.texi
@@ -14,12 +14,11 @@
14@set IDLVERSION 6.1 14@set IDLVERSION 6.1
15@set NSYSROUTINES 1850 15@set NSYSROUTINES 1850
16@set NSYSKEYWORDS 7685 16@set NSYSKEYWORDS 7685
17@set DATE November, 2004 17@set DATE March, 2005
18@set AUTHOR J.D. Smith & Carsten Dominik 18@set AUTHOR J.D. Smith & Carsten Dominik
19@set AUTHOR-EMAIL jdsmith@@as.arizona.edu 19@set AUTHOR-EMAIL jdsmith@@as.arizona.edu
20@set MAINTAINER J.D. Smith 20@set MAINTAINER J.D. Smith
21@set MAINTAINER-EMAIL jdsmith@@as.arizona.edu 21@set MAINTAINER-EMAIL jdsmith@@as.arizona.edu
22@set IDLWAVE-HOMEPAGE http://idlwave.org/
23@c %**end of header 22@c %**end of header
24@finalout 23@finalout
25 24
@@ -30,7 +29,7 @@ Emacs, and interacting with an IDL shell run as a subprocess.
30This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE 29This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE
31@value{VERSION} 30@value{VERSION}
32 31
33Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004 Free Software 32Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
34Foundation, Inc. 33Foundation, Inc.
35 34
36Permission is granted to copy, distribute and/or modify this document 35Permission is granted to copy, distribute and/or modify this document
@@ -61,7 +60,7 @@ license to the document, as described in section 6 of the license.
61This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for 60This is edition @value{EDITION} of the @cite{IDLWAVE User Manual} for
62IDLWAVE version @value{VERSION}, @value{DATE}. 61IDLWAVE version @value{VERSION}, @value{DATE}.
63@sp 2 62@sp 2
64Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004 Free Software 63Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
65Foundation, Inc. 64Foundation, Inc.
66@sp 2 65@sp 2
67@cindex Copyright, of IDLWAVE 66@cindex Copyright, of IDLWAVE
@@ -101,7 +100,6 @@ Interactive Data Language (IDL), and running IDL as an inferior shell.
101* Getting Started:: Tutorial 100* Getting Started:: Tutorial
102* The IDLWAVE Major Mode:: The mode for editing IDL programs 101* The IDLWAVE Major Mode:: The mode for editing IDL programs
103* The IDLWAVE Shell:: The mode for running IDL as an inferior program 102* The IDLWAVE Shell:: The mode for running IDL as an inferior program
104* Installation:: How to Install or Upgrade
105* Acknowledgements:: Who did what 103* Acknowledgements:: Who did what
106* Sources of Routine Info:: How does IDLWAVE know about routine XYZ 104* Sources of Routine Info:: How does IDLWAVE know about routine XYZ
107* HTML Help Browser Tips:: 105* HTML Help Browser Tips::
@@ -180,11 +178,6 @@ Debugging IDL Programs
180* Walking the Calling Stack:: 178* Walking the Calling Stack::
181* Electric Debug Mode:: 179* Electric Debug Mode::
182 180
183Installation
184
185* Installing IDLWAVE:: How to install the distribution
186* Installing Online Help:: Where to get the additional files needed
187
188Sources of Routine Info 181Sources of Routine Info
189 182
190* Routine Definitions:: Where IDL Routines are defined. 183* Routine Definitions:: Where IDL Routines are defined.
@@ -204,8 +197,6 @@ Catalogs
204@node Introduction, IDLWAVE in a Nutshell, Top, Top 197@node Introduction, IDLWAVE in a Nutshell, Top, Top
205@chapter Introduction 198@chapter Introduction
206@cindex Introduction 199@cindex Introduction
207@cindex CORBA (Common Object Request Broker Architecture)
208@cindex Interface Definition Language
209@cindex Interactive Data Language 200@cindex Interactive Data Language
210@cindex cc-mode.el 201@cindex cc-mode.el
211@cindex @file{idl.el} 202@cindex @file{idl.el}
@@ -213,14 +204,13 @@ Catalogs
213@cindex Feature overview 204@cindex Feature overview
214 205
215IDLWAVE is a package which supports editing source files written in 206IDLWAVE is a package which supports editing source files written in
216the Interactive Data Language (IDL@footnote{IDL is a registered 207the Interactive Data Language, and running
217trademark of Research Systems, Inc., a Kodak Company}), and running
218IDL as an inferior shell@footnote{Note that this package has nothing 208IDL as an inferior shell@footnote{Note that this package has nothing
219to do with the Interface Definition Language, part of the Common 209to do with the Interface Definition Language, part of the Common
220Object Request Broker Architecture (CORBA)}@footnote{IDLWAVE can also 210Object Request Broker Architecture (CORBA)}@footnote{IDLWAVE can also
221be used for editing source files for the related WAVE/CL language, but 211be used for editing source files for the related WAVE/CL language, but
222with only limited support.}. It is a feature-rich replacement for the 212with only limited support.}. It is a feature-rich replacement for the
223IDLDE development environment bundled with IDL, and uses the full 213IDLDE development environment included with IDL, and uses the full
224power of Emacs to make editing and running IDL programs easier, 214power of Emacs to make editing and running IDL programs easier,
225quicker, and more structured. 215quicker, and more structured.
226 216
@@ -421,11 +411,10 @@ be discovered by reading the entire manual, or hovering over the
421shoulder of your nearest IDLWAVE guru for a few days. 411shoulder of your nearest IDLWAVE guru for a few days.
422 412
423It is assumed that you have access to Emacs or XEmacs with the full 413It is assumed that you have access to Emacs or XEmacs with the full
424IDLWAVE package including online help (@pxref{Installation}). We also 414IDLWAVE package including online help. We also assume that you are
425assume that you are familiar with Emacs and can read the nomenclature of 415familiar with Emacs and can read the nomenclature of key presses in
426key presses in Emacs (in particular, @kbd{C} stands for @key{CONTROL} 416Emacs (in particular, @kbd{C} stands for @key{CONTROL} and @kbd{M} for
427and @kbd{M} for @key{META} (often the @key{ALT} key carries this 417@key{META} (often the @key{ALT} key carries this functionality)).
428functionality)).
429 418
430Open a new source file by typing: 419Open a new source file by typing:
431 420
@@ -612,9 +601,8 @@ restart Emacs.
612 601
613You likely have your own indentation preferences for IDL code. For 602You likely have your own indentation preferences for IDL code. For
614example, some like to indent the main block of an IDL program from the 603example, some like to indent the main block of an IDL program from the
615margin, different from the conventions used by RSI, and use only 3 604margin and use only 3 spaces as indentation between @code{BEGIN} and
616spaces as indentation between @code{BEGIN} and @code{END}. Try the 605@code{END}. Try the following lines in @file{.emacs}:
617following lines in @file{.emacs}:
618 606
619@lisp 607@lisp
620(setq idlwave-main-block-indent 2) 608(setq idlwave-main-block-indent 2)
@@ -1279,19 +1267,18 @@ Maximum number of source files displayed in the Routine Info window.
1279@cindex Online Help, Installation 1267@cindex Online Help, Installation
1280@cindex Speed, of online help 1268@cindex Speed, of online help
1281 1269
1282For IDL system routines, RSI provides extensive documentation. 1270IDLWAVE can display help from an HTML version of the IDL documentation
1283IDLWAVE can access an HTML version of this documentation very quickly 1271if it is available. This is @emph{much} faster than using the IDL
1284and accurately. This is @emph{much} faster than using the IDL online 1272online help application, because IDLWAVE usually gets you to the right
1285help application, because IDLWAVE usually gets you to the right place 1273place in the documentation directly --- e.g. a specific keyword of a
1286in the documentation directly --- e.g. a specific keyword of a routine 1274routine --- without any additional browsing and scrolling. There are
1287--- without any additional browsing and scrolling. For this online 1275a variety of options for displaying the HTML help: see below. Help
1288help to work, an HTML version of the IDL documentation, which is not 1276for routines without HTML documentation is also available, using the
1289part of the standalone IDLWAVE distribution, is required. The 1277routine documentation header and/or source.
1290necessary files can be downloaded from @uref{@value{IDLWAVE-HOMEPAGE}, 1278
1291the maintainers webpage}. There are a variety of options for 1279To make this feature work, you should set
1292displaying the HTML help: see below. Help for routines without HTML 1280@code{idlwave-html-help-location} to the directory name of the
1293documentation is also available, using the routine documentation 1281directory where the IDL help files are installed.
1294header and/or source.
1295 1282
1296@kindex M-? 1283@kindex M-?
1297In any IDL program (or, as with most IDLWAVE commands, in the IDL 1284In any IDL program (or, as with most IDLWAVE commands, in the IDL
@@ -1376,19 +1363,19 @@ sent to. This function is used to set the variable
1376Customize this variable to see what choices of browsers your system 1363Customize this variable to see what choices of browsers your system
1377offers. 1364offers.
1378 1365
1379Certain browsers like @code{w3} (bundled with many versions of Emacs) 1366Certain browsers like @code{w3} and @code{w3m}
1380and @code{w3m} (@uref{http://emacs-w3m.namazu.org/}, the author's help 1367(@uref{http://emacs-w3m.namazu.org/}, the author's help browser of
1381browser of choice) are run within Emacs, and use Emacs buffers to 1368choice) are run within Emacs, and use Emacs buffers to display the
1382display the HTML help. This can be convenient, especially on small 1369HTML help. This can be convenient, especially on small displays, and
1383displays, and images can even be displayed in-line on new Emacs 1370images can even be displayed in-line on new Emacs versions. However,
1384versions. However, better formatting results are often achieved with 1371better formatting results are often achieved with external browsers,
1385external browsers, like Mozilla. IDLWAVE assumes any browser function 1372like Mozilla. IDLWAVE assumes any browser function containing "w3" is
1386containing "w3" is displayed in a local buffer. If you are using 1373displayed in a local buffer. If you are using another Emacs-local
1387another Emacs-local browser for which this is not true, set the 1374browser for which this is not true, set the variable
1388variable @code{idlwave-help-browser-is-local}. 1375@code{idlwave-help-browser-is-local}.
1389 1376
1390@emph{N.B. For Windows users}: IDLWAVE can bring up RSI help directly 1377@emph{N.B. For Windows users}: IDLWAVE can bring up help directly
1391in the Microsoft HTMLHelp documentation supplied with IDL: no 1378from the Microsoft HTMLHelp documentation supplied with IDL: no
1392additional help files are needed. Be sure to set 1379additional help files are needed. Be sure to set
1393@code{idlwave-system-directory} and the help file will be found 1380@code{idlwave-system-directory} and the help file will be found
1394automatically (or, alternatively, specify its location directly with 1381automatically (or, alternatively, specify its location directly with
@@ -2217,7 +2204,7 @@ case of routines, keywords, classes, and methods as they are completed, see
2217 2204
2218@defopt idlwave-abbrev-change-case (@code{nil}) 2205@defopt idlwave-abbrev-change-case (@code{nil})
2219Non-@code{nil} means all abbrevs will be forced to either upper or lower 2206Non-@code{nil} means all abbrevs will be forced to either upper or lower
2220case. Legal values are @code{nil}, @code{t}, and @code{down}. 2207case. Valid values are @code{nil}, @code{t}, and @code{down}.
2221@end defopt 2208@end defopt
2222 2209
2223@defopt idlwave-reserved-word-upcase (@code{nil}) 2210@defopt idlwave-reserved-word-upcase (@code{nil})
@@ -2343,7 +2330,7 @@ Normal hook. Executed when @file{idlwave.el} is loaded.
2343 2330
2344 2331
2345 2332
2346@node The IDLWAVE Shell, Installation, The IDLWAVE Major Mode, Top 2333@node The IDLWAVE Shell, Acknowledgements, The IDLWAVE Major Mode, Top
2347@chapter The IDLWAVE Shell 2334@chapter The IDLWAVE Shell
2348@cindex IDLWAVE shell 2335@cindex IDLWAVE shell
2349@cindex Major mode, @code{idlwave-shell-mode} 2336@cindex Major mode, @code{idlwave-shell-mode}
@@ -2842,7 +2829,7 @@ provides faster access (@pxref{Electric Debug Mode}).
2842 2829
2843@defopt idlwave-shell-mark-breakpoints (@code{t}) 2830@defopt idlwave-shell-mark-breakpoints (@code{t})
2844Non-@code{nil} means mark breakpoints in the source file buffers. The 2831Non-@code{nil} means mark breakpoints in the source file buffers. The
2845value indicates the preferred method. Legal values are @code{nil}, 2832value indicates the preferred method. Valid values are @code{nil},
2846@code{t}, @code{face}, and @code{glyph}. 2833@code{t}, @code{face}, and @code{glyph}.
2847@end defopt 2834@end defopt
2848 2835
@@ -2879,7 +2866,7 @@ been set (or you give two prefix arguments), the last command on the
2879 2866
2880@defopt idlwave-shell-mark-stop-line (@code{t}) 2867@defopt idlwave-shell-mark-stop-line (@code{t})
2881Non-@code{nil} means mark the source code line where IDL is currently 2868Non-@code{nil} means mark the source code line where IDL is currently
2882stopped. The value specifies the preferred method. Legal values are 2869stopped. The value specifies the preferred method. Valid values are
2883@code{nil}, @code{t}, @code{arrow}, and @code{face}. 2870@code{nil}, @code{t}, @code{arrow}, and @code{face}.
2884@end defopt 2871@end defopt
2885 2872
@@ -3209,59 +3196,7 @@ examine command strings to send, after all instances of @code{___}
3209@end defopt 3196@end defopt
3210 3197
3211 3198
3212@node Installation, Acknowledgements, The IDLWAVE Shell, Top 3199@node Acknowledgements, Sources of Routine Info, The IDLWAVE Shell, Top
3213@chapter Installation
3214@cindex Installation
3215
3216@menu
3217* Installing IDLWAVE:: How to install the distribution
3218* Installing Online Help:: Where to get the additional files needed
3219@end menu
3220
3221@node Installing IDLWAVE, Installing Online Help, Installation, Installation
3222@section Installing IDLWAVE
3223
3224@cindex FTP site
3225@cindex URL, homepage for IDLWAVE
3226@cindex Homepage for IDLWAVE
3227@cindex IDLWAVE, homepage
3228@cindex XEmacs package IDLWAVE
3229@cindex Emacs, distributed with IDLWAVE
3230@cindex Copyright, of IDL manual
3231IDLWAVE is part of Emacs 21.1 and later. It is also an XEmacs package
3232and can be installed from
3233@uref{ftp://ftp.xemacs.org/pub/xemacs/packages/,the XEmacs ftp site}
3234with the normal package management system on XEmacs 21. These
3235pre-installed versions should work out-of-the-box. However, the HTML
3236files required for online HTML help are not distributed with
3237XEmacs/Emacs and have to be installed separately@footnote{Due to
3238copyright reasons, the HTML version of the IDL manual cannot be
3239distributed under the GPL.} (@pxref{Installing Online Help}).
3240
3241You can also download IDLWAVE and install it yourself from
3242@uref{@value{IDLWAVE-HOMEPAGE}, the maintainers webpage}. Follow the
3243instructions in the INSTALL file.
3244
3245@node Installing Online Help, , Installing IDLWAVE, Installation
3246@section Installing Online Help
3247@cindex Installing online help
3248@cindex Online Help, Installation
3249
3250If you want to use the online help display, an additional set of files
3251(HTML versions of the IDL documentation) must be installed. These
3252files can also be downloaded from @uref{@value{IDLWAVE-HOMEPAGE}, the
3253maintainers webpage}. You need to place the files somewhere on your
3254system and tell IDLWAVE where they are with
3255
3256@lisp
3257(setq idlwave-html-help-location "/path/to/help/dir/") ;e.g. /usr/local/etc
3258@end lisp
3259
3260Note that the help package only changes with new versions of the IDL
3261documentation, and need not be updated unless your version of IDL
3262changes.
3263
3264@node Acknowledgements, Sources of Routine Info, Installation, Top
3265@chapter Acknowledgements 3200@chapter Acknowledgements
3266@cindex Acknowledgements 3201@cindex Acknowledgements
3267@cindex Maintainer, of IDLWAVE 3202@cindex Maintainer, of IDLWAVE
@@ -3731,10 +3666,7 @@ IDLWAVE derives its knowledge about system routines from the IDL
3731manuals. The file @file{idlw-rinfo.el} contains the routine information 3666manuals. The file @file{idlw-rinfo.el} contains the routine information
3732for the IDL system routines, and links to relevant sections of the HTML 3667for the IDL system routines, and links to relevant sections of the HTML
3733documentation. The Online Help feature of IDLWAVE requires HTML 3668documentation. The Online Help feature of IDLWAVE requires HTML
3734versions of the IDL manuals to be available; the HTML documentation is 3669versions of the IDL manuals to be available.
3735not distributed with IDLWAVE by default, but must be downloaded
3736separately from the @uref{@value{IDLWAVE-HOMEPAGE}, the maintainers
3737webpage}.
3738 3670
3739The HTML files and related images can be produced from the 3671The HTML files and related images can be produced from the
3740@file{idl.chm} HTMLHelp file distributed with IDL using the free 3672@file{idl.chm} HTMLHelp file distributed with IDL using the free
@@ -3755,22 +3687,19 @@ the online HTML help available with IDLWAVE (starting with version
37555.0). Since IDLWAVE runs on a many different system types, a single 36875.0). Since IDLWAVE runs on a many different system types, a single
3756browser configuration is not possible, but choices abound. 3688browser configuration is not possible, but choices abound.
3757 3689
3758On many systems, the default browser configured in 3690Unfortunately, the HTML manuals decompiled from the original
3759@code{browse-url-browser-function}, and hence inherited by default by 3691source contain formatting structures which Netscape 4.x does not
3760@code{idlwave-help-browser-function}, is Netscape. Unfortunately, the 3692handle well, though they are still readable. A much better choice is
3761HTML manuals decompiled from the original RSI source contain 3693Mozilla, or one of the Mozilla-derived browsers such as
3762formatting structures which Netscape 4.x does not handle well, though 3694@uref{http://galeon.sourceforge.net/,Galeon} (GNU/Linux),
3763they are still readable. A much better choice is Mozilla, or one of
3764the Mozilla-derived browsers such as
3765@uref{http://galeon.sourceforge.net/,Galeon} (Linux),
3766@uref{http://www.mozilla.org/projects/camino/,Camino} (MacOSX), or 3695@uref{http://www.mozilla.org/projects/camino/,Camino} (MacOSX), or
3767@uref{http://www.mozilla.org/projects/firebird/,Firebird} (all 3696@uref{http://www.mozilla.org/projects/firebird/,Firebird} (all
3768platforms). Newer versions of Emacs provide a browser-function choice 3697platforms). Newer versions of Emacs provide a browser-function choice
3769@code{browse-url-gnome-moz} which uses the Gnome-configured browser. 3698@code{browse-url-gnome-moz} which uses the Gnome-configured browser.
3770 3699
3771Note that the HTML files decompiled from RSI Microsoft Help sources 3700Note that the HTML files decompiled from Microsoft Help sources
3772contain specific references to the @samp{Symbol} font, which by default 3701contain specific references to the @samp{Symbol} font, which by default
3773is not permitted in normal encodings (it's technically illegal). Though 3702is not permitted in normal encodings (it's invalid, technically). Though
3774it only impacts a few symbols, you can trick Mozilla-based browsers into 3703it only impacts a few symbols, you can trick Mozilla-based browsers into
3775recognizing @samp{Symbol} by following the directions 3704recognizing @samp{Symbol} by following the directions
3776@uref{http://hutchinson.belmont.ma.us/tth/Xfonts.html, here}. With this 3705@uref{http://hutchinson.belmont.ma.us/tth/Xfonts.html, here}. With this
@@ -3995,12 +3924,9 @@ IDLWAVE was developed on a UNIX system. However, thanks to the
3995portability of Emacs, much of IDLWAVE does also work under different 3924portability of Emacs, much of IDLWAVE does also work under different
3996operating systems like Windows (with NTEmacs or NTXEmacs) or MacOS. 3925operating systems like Windows (with NTEmacs or NTXEmacs) or MacOS.
3997 3926
3998The only real problem is that RSI does not provide a command-line 3927The only real problem is that there is no command-line
3999version of IDL for Windows or MacOS(<=9) with which IDLWAVE can 3928version of IDL for Windows or MacOS(<=9) with which IDLWAVE can
4000interact@footnote{Call your RSI representative and complain --- it 3929interact. As a result, the IDLWAVE Shell
4001should be trivial for them to provide one. And if enough people ask for
4002it, maybe they will. The new MacOSX version of IDL @emph{does} have a
4003shell and works well with IDLWAVE.}. As a result, the IDLWAVE Shell
4004does not work and you have to rely on IDLDE to run and debug your 3930does not work and you have to rely on IDLDE to run and debug your
4005programs. However, editing IDL source files with Emacs/IDLWAVE works 3931programs. However, editing IDL source files with Emacs/IDLWAVE works
4006with all bells and whistles, including routine info, completion and fast 3932with all bells and whistles, including routine info, completion and fast
@@ -4018,7 +3944,7 @@ system. I am assuming that IDLWAVE has been installed in
4018;; the X/Emacs installation) 3944;; the X/Emacs installation)
4019(setq load-path (cons "c:/program files/IDLWAVE" load-path)) 3945(setq load-path (cons "c:/program files/IDLWAVE" load-path))
4020 3946
4021;; The location of the IDL library files, both from RSI and your own. 3947;; The location of the IDL library files, both standard and your own.
4022;; note that the initial "+" expands the path recursively 3948;; note that the initial "+" expands the path recursively
4023(setq idlwave-library-path 3949(setq idlwave-library-path
4024 '("+c:/RSI/IDL55/lib/" "+c:/user/me/idllibs" )) 3950 '("+c:/RSI/IDL55/lib/" "+c:/user/me/idllibs" ))
@@ -4113,9 +4039,7 @@ in compiled lisp files. Presumably, you kept the original .elc files in
4113place, and this is the source of the error. If you recompile (or just 4039place, and this is the source of the error. If you recompile (or just
4114"make; make install") from source, it should resolve this problem. 4040"make; make install") from source, it should resolve this problem.
4115Another option is to recompile the @file{idlw*.el} files by hand using 4041Another option is to recompile the @file{idlw*.el} files by hand using
4116@kbd{M-x byte-compile-file}. Why not take the opportunity to grab the 4042@kbd{M-x byte-compile-file}.
4117latest IDLWAVE version at @uref{@value{IDLWAVE-HOMEPAGE}, the
4118maintainers webpage}
4119 4043
4120@item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches 4044@item @strong{@kbd{M-@key{TAB}} doesn't complete words, it switches
4121windows on my desktop.} 4045windows on my desktop.}
@@ -4214,7 +4138,7 @@ method, and the most recent information will be available to all users.
4214@item @strong{All the Greek-font characters in the HTML help are 4138@item @strong{All the Greek-font characters in the HTML help are
4215displayed as Latin characters!} 4139displayed as Latin characters!}
4216 4140
4217Unfortunately, the HTMLHelp files RSI provides attempt to switch to 4141Unfortunately, the HTMLHelp files attempt to switch to
4218@samp{Symbol} font to display Greek characters, which is not really an 4142@samp{Symbol} font to display Greek characters, which is not really an
4219permitted method for doing this in HTML. There is a "workaround" for 4143permitted method for doing this in HTML. There is a "workaround" for
4220many browsers: @xref{HTML Help Browser Tips}. 4144many browsers: @xref{HTML Help Browser Tips}.
diff --git a/man/message.texi b/man/message.texi
index 5e488b0e7cf..8a10ea2445d 100644
--- a/man/message.texi
+++ b/man/message.texi
@@ -8,7 +8,7 @@
8@copying 8@copying
9This file documents Message, the Emacs message composition mode. 9This file documents Message, the Emacs message composition mode.
10 10
11Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 11Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
12Free Software Foundation, Inc. 12Free Software Foundation, Inc.
13 13
14@quotation 14@quotation
diff --git a/man/misc.texi b/man/misc.texi
index 5ef15d45d87..f1e05cae89c 100644
--- a/man/misc.texi
+++ b/man/misc.texi
@@ -1,5 +1,5 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000, 2001, 2004 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2004
3@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@iftex 5@iftex
@@ -1247,6 +1247,14 @@ kills it if the file name matches the regular expression
1247 If you set the variable @code{server-window} to a window or a frame, 1247 If you set the variable @code{server-window} to a window or a frame,
1248@kbd{C-x #} displays the server buffer in that window or in that frame. 1248@kbd{C-x #} displays the server buffer in that window or in that frame.
1249 1249
1250@vindex server-name
1251 You can run multiple Emacs servers on the same machine by giving
1252each one a unique ``server name'', using the variable
1253@code{server-name}. For example, @kbd{M-x set-variable @key{RET}
1254server-name @key{RET} foo @key{RET}} sets the server name to
1255@samp{foo}. The @code{emacsclient} program can visit a server by name
1256using the @samp{-s} option. @xref{Invoking emacsclient}.
1257
1250 While @code{mail} or another application is waiting for 1258 While @code{mail} or another application is waiting for
1251@code{emacsclient} to finish, @code{emacsclient} does not read terminal 1259@code{emacsclient} to finish, @code{emacsclient} does not read terminal
1252input. So the terminal that @code{mail} was using is effectively 1260input. So the terminal that @code{mail} was using is effectively
@@ -1329,6 +1337,9 @@ open the given files with the option @samp{--display=@var{DISPLAY}}.
1329This can be used typically when connecting from home to an Emacs 1337This can be used typically when connecting from home to an Emacs
1330server running on your machine at your workplace. 1338server running on your machine at your workplace.
1331 1339
1340If there is more than one Emacs server running, you can specify a
1341server name with the option @samp{-s @var{name}}.
1342
1332You can also use @code{emacsclient} to execute any piece of Emacs Lisp 1343You can also use @code{emacsclient} to execute any piece of Emacs Lisp
1333code, using the option @samp{--eval}. When this option is given, the 1344code, using the option @samp{--eval}. When this option is given, the
1334rest of the arguments is not taken as a list of files to visit but as 1345rest of the arguments is not taken as a list of files to visit but as
@@ -1341,7 +1352,7 @@ a list of expressions to evaluate.
1341 The Emacs commands for making hardcopy let you print either an entire 1352 The Emacs commands for making hardcopy let you print either an entire
1342buffer or just part of one, either with or without page headers. 1353buffer or just part of one, either with or without page headers.
1343See also the hardcopy commands of Dired (@pxref{Misc File Ops}) 1354See also the hardcopy commands of Dired (@pxref{Misc File Ops})
1344and the diary (@pxref{Diary Commands}). 1355and the diary (@pxref{Displaying the Diary}).
1345 1356
1346@table @kbd 1357@table @kbd
1347@item M-x print-buffer 1358@item M-x print-buffer
diff --git a/man/mule.texi b/man/mule.texi
index be71bd64402..c085839cbd8 100644
--- a/man/mule.texi
+++ b/man/mule.texi
@@ -428,6 +428,9 @@ is the command @kbd{C-\} (@code{toggle-input-method}) used twice.
428because it stops waiting for more characters to combine, and starts 428because it stops waiting for more characters to combine, and starts
429searching for what you have already entered. 429searching for what you have already entered.
430 430
431 To find out how to input the character after point using the current
432input method, type @kbd{C-u C-x =}. @xref{Position Info}.
433
431@vindex input-method-verbose-flag 434@vindex input-method-verbose-flag
432@vindex input-method-highlight-flag 435@vindex input-method-highlight-flag
433 The variables @code{input-method-highlight-flag} and 436 The variables @code{input-method-highlight-flag} and
@@ -928,6 +931,9 @@ files.
928@item C-x @key{RET} X @var{coding} @key{RET} 931@item C-x @key{RET} X @var{coding} @key{RET}
929Use coding system @var{coding} for transferring @emph{one} 932Use coding system @var{coding} for transferring @emph{one}
930selection---the next one---to or from the window system. 933selection---the next one---to or from the window system.
934
935@item M-x recode-region
936Convert the region from a previous coding system to a new one.
931@end table 937@end table
932 938
933@kindex C-x RET f 939@kindex C-x RET f
@@ -1056,6 +1062,12 @@ corresponding buffer.
1056 The default for translation of process input and output depends on the 1062 The default for translation of process input and output depends on the
1057current language environment. 1063current language environment.
1058 1064
1065@findex recode-region
1066 If a piece of text has already been inserted into a buffer using the
1067wrong coding system, you can decode it again using @kbd{M-x
1068recode-region}. This prompts you for the old coding system and the
1069desired coding system, and acts on the text in the region.
1070
1059@vindex file-name-coding-system 1071@vindex file-name-coding-system
1060@cindex file names with non-@acronym{ASCII} characters 1072@cindex file names with non-@acronym{ASCII} characters
1061@findex set-file-name-coding-system 1073@findex set-file-name-coding-system
@@ -1084,6 +1096,12 @@ these buffers under the visited file name, saving may use the wrong file
1084name, or it may get an error. If such a problem happens, use @kbd{C-x 1096name, or it may get an error. If such a problem happens, use @kbd{C-x
1085C-w} to specify a new file name for that buffer. 1097C-w} to specify a new file name for that buffer.
1086 1098
1099@findex recode-file-name
1100 If a mistake occurs when encoding a file name, use the command
1101command @kbd{M-x recode-file-name} to change the file name's coding
1102system. This prompts for an existing file name, its old coding
1103system, and the coding system to which you wish to convert.
1104
1087@vindex locale-coding-system 1105@vindex locale-coding-system
1088@cindex decoding non-@acronym{ASCII} keyboard input on X 1106@cindex decoding non-@acronym{ASCII} keyboard input on X
1089 The variable @code{locale-coding-system} specifies a coding system 1107 The variable @code{locale-coding-system} specifies a coding system
@@ -1333,62 +1351,52 @@ inclusive) are displayed as octal escapes. You can change this for
1333non-standard ``extended'' versions of ISO-8859 character sets by using the 1351non-standard ``extended'' versions of ISO-8859 character sets by using the
1334function @code{standard-display-8bit} in the @code{disp-table} library. 1352function @code{standard-display-8bit} in the @code{disp-table} library.
1335 1353
1336 There are several ways you can input single-byte non-@acronym{ASCII} 1354 There are two ways to input single-byte non-@acronym{ASCII}
1337characters: 1355characters:
1338 1356
1339@itemize @bullet 1357@itemize @bullet
1340@cindex 8-bit input 1358@cindex 8-bit input
1341@item 1359@item
1360You can use an input method for the selected language environment.
1361@xref{Input Methods}. When you use an input method in a unibyte buffer,
1362the non-@acronym{ASCII} character you specify with it is converted to unibyte.
1363
1364@item
1342If your keyboard can generate character codes 128 (decimal) and up, 1365If your keyboard can generate character codes 128 (decimal) and up,
1343representing non-@acronym{ASCII} characters, you can type those character codes 1366representing non-@acronym{ASCII} characters, you can type those character codes
1344directly. 1367directly.
1345 1368
1346On a windowing terminal, you should not need to do anything special to 1369On a window system, you should not need to do anything special to use
1347use these keys; they should simply work. On a text-only terminal, you 1370these keys; they should simply work. On a text-only terminal, you
1348should use the command @code{M-x set-keyboard-coding-system} or the 1371should use the command @code{M-x set-keyboard-coding-system} or the
1349variable @code{keyboard-coding-system} to specify which coding 1372variable @code{keyboard-coding-system} to specify which coding system
1350system your keyboard uses (@pxref{Specify Coding}). Enabling this 1373your keyboard uses (@pxref{Specify Coding}). Enabling this feature
1351feature will probably require you to use @kbd{ESC} to type Meta 1374will probably require you to use @kbd{ESC} to type Meta characters;
1352characters; however, on a console terminal or in @code{xterm}, you can 1375however, on a console terminal or in @code{xterm}, you can arrange for
1353arrange for Meta to be converted to @kbd{ESC} and still be able type 1376Meta to be converted to @kbd{ESC} and still be able type 8-bit
13548-bit characters present directly on the keyboard or using 1377characters present directly on the keyboard or using @kbd{Compose} or
1355@kbd{Compose} or @kbd{AltGr} keys. @xref{User Input}. 1378@kbd{AltGr} keys. @xref{User Input}.
1356
1357@item
1358You can use an input method for the selected language environment.
1359@xref{Input Methods}. When you use an input method in a unibyte buffer,
1360the non-@acronym{ASCII} character you specify with it is converted to unibyte.
1361 1379
1362@kindex C-x 8 1380@kindex C-x 8
1363@cindex @code{iso-transl} library 1381@cindex @code{iso-transl} library
1364@cindex compose character 1382@cindex compose character
1365@cindex dead character 1383@cindex dead character
1366@item 1384@item
1367For Latin-1 only, you can use the 1385For Latin-1 only, you can use the key @kbd{C-x 8} as a ``compose
1368key @kbd{C-x 8} as a ``compose character'' prefix for entry of 1386character'' prefix for entry of non-@acronym{ASCII} Latin-1 printing
1369non-@acronym{ASCII} Latin-1 printing characters. @kbd{C-x 8} is good for 1387characters. @kbd{C-x 8} is good for insertion (in the minibuffer as
1370insertion (in the minibuffer as well as other buffers), for searching, 1388well as other buffers), for searching, and in any other context where
1371and in any other context where a key sequence is allowed. 1389a key sequence is allowed.
1372 1390
1373@kbd{C-x 8} works by loading the @code{iso-transl} library. Once that 1391@kbd{C-x 8} works by loading the @code{iso-transl} library. Once that
1374library is loaded, the @key{ALT} modifier key, if you have one, serves 1392library is loaded, the @key{ALT} modifier key, if the keyboard has
1375the same purpose as @kbd{C-x 8}; use @key{ALT} together with an accent 1393one, serves the same purpose as @kbd{C-x 8}: use @key{ALT} together
1376character to modify the following letter. In addition, if you have keys 1394with an accent character to modify the following letter. In addition,
1377for the Latin-1 ``dead accent characters,'' they too are defined to 1395if the keyboard has keys for the Latin-1 ``dead accent characters,''
1378compose with the following character, once @code{iso-transl} is loaded. 1396they too are defined to compose with the following character, once
1379Use @kbd{C-x 8 C-h} to list the available translations as mnemonic 1397@code{iso-transl} is loaded.
1380command names. 1398
1381 1399Use @kbd{C-x 8 C-h} to list all the available @kbd{C-x 8} translations.
1382@item
1383@cindex @code{iso-acc} library
1384@cindex ISO Accents mode
1385@findex iso-accents-mode
1386@cindex Latin-1, Latin-2 and Latin-3 input mode
1387For Latin-1, Latin-2 and Latin-3, @kbd{M-x iso-accents-mode} enables
1388a minor mode that works much like the @code{latin-1-prefix} input
1389method, but does not depend on having the input methods installed. This
1390mode is buffer-local. It can be customized for various languages with
1391@kbd{M-x iso-accents-customize}.
1392@end itemize 1400@end itemize
1393 1401
1394@node Charsets 1402@node Charsets
diff --git a/man/org.texi b/man/org.texi
index d461e9c1020..d1a388f958a 100644
--- a/man/org.texi
+++ b/man/org.texi
@@ -3,8 +3,8 @@
3@setfilename ../info/org 3@setfilename ../info/org
4@settitle Org Mode Manual 4@settitle Org Mode Manual
5 5
6@set VERSION 3.04 6@set VERSION 3.05
7@set DATE December 2004 7@set DATE April 2005
8 8
9@dircategory Emacs 9@dircategory Emacs
10@direntry 10@direntry
@@ -34,7 +34,7 @@
34@copying 34@copying
35This manual is for Org-mode (version @value{VERSION}). 35This manual is for Org-mode (version @value{VERSION}).
36 36
37Copyright @copyright{} 2004 Free Software Foundation 37Copyright @copyright{} 2004, 2005 Free Software Foundation
38 38
39@quotation 39@quotation
40Permission is granted to copy, distribute and/or modify this document 40Permission is granted to copy, distribute and/or modify this document
@@ -184,7 +184,8 @@ top of outline-mode, which makes it possible to keep the content of
184large files well structured. Visibility cycling and structure editing 184large files well structured. Visibility cycling and structure editing
185help to work with the tree. Tables are easily created with a built-in 185help to work with the tree. Tables are easily created with a built-in
186table editor. Org-mode supports ToDo items, deadlines, time stamps, 186table editor. Org-mode supports ToDo items, deadlines, time stamps,
187and scheduling. It dynamically compiles entries into an agenda. 187and scheduling. It dynamically compiles entries into an agenda that
188utilizes and smoothly integrates much of the Emacs calendar and diary.
188Plain text URL-like links connect to websites, emails, usenet 189Plain text URL-like links connect to websites, emails, usenet
189messages, BBDB entries, and any files related to the projects. For 190messages, BBDB entries, and any files related to the projects. For
190printing and sharing of notes, an Org-mode file can be exported as a 191printing and sharing of notes, an Org-mode file can be exported as a
@@ -203,15 +204,14 @@ different levels and in different ways, for example
203@r{@bullet{} as a full agenda and planner with deadlines and work scheduling} 204@r{@bullet{} as a full agenda and planner with deadlines and work scheduling}
204@end example 205@end example
205 206
206The Org-mode table editor can be used integrated into any major mode 207The Org-mode table editor can be integrated into any major mode by
207by activating the minor Ortbl-mode. 208activating the minor Orgtbl-mode.
208 209
209There is a website for Org-mode which provides links to the newest 210There is a website for Org-mode which provides links to the newest
210version of Org-mode, as well as additional information, screen shots 211version of Org-mode, as well as additional information, screen shots
211and example files. This page is located at 212and example files. This page is located at
212@uref{http://www.astro.uva.nl/~dominik/Tools/org/}. 213@uref{http://www.astro.uva.nl/~dominik/Tools/org/}.
213 214
214
215@page 215@page
216 216
217@node Installation, , Summary, Introduction 217@node Installation, , Summary, Introduction
@@ -352,6 +352,18 @@ Note that inside tables, @kbd{S-@key{TAB}} jumps to the previous field.
352Show all. 352Show all.
353@end table 353@end table
354 354
355When Emacs firsts visits a Org-mode file, the global state is set to
356OVERVIEW, i.e. only the top level headlines are visible. This can be
357configured through the variable @code{org-startup-folded}, or on a
358per-file basis by adding one of the following lines anywhere in the
359buffer:
360
361@example
362#+STARTUP: fold
363#+STARTUP: nofold
364@end example
365
366
355@node Motion, Structure editing, Visibility cycling, Document Structure 367@node Motion, Structure editing, Visibility cycling, Document Structure
356@section Motion 368@section Motion
357@cindex motion, between headlines 369@cindex motion, between headlines
@@ -473,6 +485,17 @@ the match.
473Other commands are using this feature as well. For example @kbd{C-c 485Other commands are using this feature as well. For example @kbd{C-c
474C-v} creates a sparse TODO tree (@pxref{TODO basics}). 486C-v} creates a sparse TODO tree (@pxref{TODO basics}).
475 487
488@kindex C-c C-x v
489@cindex printing sparse trees
490@cindex visible text, printing
491To print a sparse tree, you can use the Emacs command
492@code{ps-print-buffer-with-faces} which does not print invisible parts
493of the document @footnote{this does not work under XEmacs, because
494XEmacs uses selective display for outlining, not text properties}.
495Or you can use the command @kbd{C-c C-x v} to copy the visible part of
496the document to another file (extension @file{.txt}) which then can be
497printed in any desired way.
498
476@node TODO items, Tables, Document Structure, Top 499@node TODO items, Tables, Document Structure, Top
477@chapter TODO items 500@chapter TODO items
478@cindex TODO items 501@cindex TODO items
@@ -611,7 +634,7 @@ persons.
611@end lisp 634@end lisp
612 635
613In this case, different keywords do not indicate a sequence, but 636In this case, different keywords do not indicate a sequence, but
614rather different levels. This changes the behavior of the command 637rather different types. This changes the behavior of the command
615@kbd{C-c C-t} slightly. When used several times in succession, it 638@kbd{C-c C-t} slightly. When used several times in succession, it
616will still cycle through all names. But when when you return to the 639will still cycle through all names. But when when you return to the
617item after some time and execute @kbd{C-c C-t} again, it will switch 640item after some time and execute @kbd{C-c C-t} again, it will switch
@@ -745,11 +768,6 @@ Re-align the table and move down to next row. Creates a new row if
745necessary. At the beginning or end of a line, @key{RET} still does 768necessary. At the beginning or end of a line, @key{RET} still does
746NEWLINE, so it can be used to split a table. 769NEWLINE, so it can be used to split a table.
747 770
748@kindex S-@key{RET}
749@item S-@key{RET}
750Copy from first non-empty
751 field above current field.
752
753@tsubheading{Column and row editing} 771@tsubheading{Column and row editing}
754@kindex M-@key{left} 772@kindex M-@key{left}
755@kindex M-@key{right} 773@kindex M-@key{right}
@@ -796,7 +814,7 @@ Copy an rectangular region from a table to a special clipboard, and
796blank all fields in the rectangle. 814blank all fields in the rectangle.
797@kindex C-c C-h C-y 815@kindex C-c C-h C-y
798@item C-c C-h C-y 816@item C-c C-h C-y
799Paste a rectangluar region into a table. 817Paste a rectangular region into a table.
800The upper right corner ends up in the current field. All involved fields 818The upper right corner ends up in the current field. All involved fields
801will be overwritten. If the rectangle does not fit into the present table, 819will be overwritten. If the rectangle does not fit into the present table,
802the table is enlarged as needed. The process ignores horizontal separator 820the table is enlarged as needed. The process ignores horizontal separator
@@ -828,6 +846,14 @@ Sum the numbers in the current column, or in the rectangle defined by
828the active region. The result is displayed in the echo area and can 846the active region. The result is displayed in the echo area and can
829be inserted with @kbd{C-y}. 847be inserted with @kbd{C-y}.
830 848
849@kindex S-@key{RET}
850@item S-@key{RET}
851When current field is empty, copy from first non-empty field above.
852When not empty, copy current field down to next row and move cursor
853along with it. Depending on the variable
854@code{org-table-copy-increment}, integer field values will be
855incremented during copy.
856
831@cindex formula, in tables 857@cindex formula, in tables
832@cindex calculations, in tables 858@cindex calculations, in tables
833@kindex C-c = 859@kindex C-c =
@@ -1063,7 +1089,7 @@ text has a headline, i.e. a first line that starts with a @samp{*}.
1063If not, a headline is constructed from the current date and some 1089If not, a headline is constructed from the current date and some
1064additional data. If the variable @code{org-adapt-indentation} is 1090additional data. If the variable @code{org-adapt-indentation} is
1065non-nil, the entire text is also indented so that it starts in the 1091non-nil, the entire text is also indented so that it starts in the
1066same column as the headline (after the asterixes). 1092same column as the headline (after the asterisks).
1067 1093
1068@node Timestamps, Timeline and Agenda, Hyperlinks, Top 1094@node Timestamps, Timeline and Agenda, Hyperlinks, Top
1069@chapter Timestamps 1095@chapter Timestamps
@@ -1404,11 +1430,12 @@ Sorting can be customized using the variable
1404@node Agenda commands, Calendar/Diary integration, Agenda (multiple files), Timeline and Agenda 1430@node Agenda commands, Calendar/Diary integration, Agenda (multiple files), Timeline and Agenda
1405@section Commands in the agenda buffer 1431@section Commands in the agenda buffer
1406 1432
1407Entries in the agenda buffer are linked back to the org file. You are 1433Entries in the agenda buffer are linked back to the org file or diary
1408not allowed to edit the agenda buffer itself, but commands are provided 1434file where they originate. You are not allowed to edit the agenda
1409to edit the org-files ``remotely'' from the agenda buffer. In this 1435buffer itself, but commands are provided to show and jump to the
1410way, all information is stored only once, and you don't risk that your 1436original entry location, and to edit the org-files ``remotely'' from
1411agenda and note files diverge. 1437the agenda buffer. In this way, all information is stored only once,
1438and you don't risk that your agenda and note files diverge.
1412 1439
1413Some commands can be executed with mouse clicks on agenda lines. For 1440Some commands can be executed with mouse clicks on agenda lines. For
1414the other commands, the cursor needs to be in the desired line. Most 1441the other commands, the cursor needs to be in the desired line. Most
@@ -1468,7 +1495,7 @@ S-@key{right}.
1468Display the following @code{org-agenda-ndays} days. For example, if 1495Display the following @code{org-agenda-ndays} days. For example, if
1469the display covers a week, switch to the following week. With prefix 1496the display covers a week, switch to the following week. With prefix
1470arg, go forward that many times @code{org-agenda-ndays} days. Not 1497arg, go forward that many times @code{org-agenda-ndays} days. Not
1471available in timlines. 1498available in timelines.
1472 1499
1473@kindex @key{left} 1500@kindex @key{left}
1474@item @key{left} 1501@item @key{left}
@@ -1536,6 +1563,29 @@ Insert a new entry into the diary. Prompts for the type of entry
1536entry in the diary, just like @kbd{i d} etc. would do in the calendar. 1563entry in the diary, just like @kbd{i d} etc. would do in the calendar.
1537The date is taken from the cursor position. 1564The date is taken from the cursor position.
1538 1565
1566@tsubheading{Calendar commands}
1567@kindex c
1568@item c
1569Open the Emacs calendar and move to the date at the agenda cursor.
1570
1571@kindex C
1572@item C
1573Convert the date at cursor into many other cultural and historic
1574calendars.
1575
1576@kindex M
1577@item M
1578Show the phases of the moon for three month around current date.
1579
1580@kindex S
1581@item S
1582Show sunrise and sunset times. The location must be set with calendar
1583variables, see documentation of the Emacs calendar.
1584
1585@kindex H
1586@item H
1587Show holidays for three month around the cursor date.
1588
1539@tsubheading{Quit and Exit} 1589@tsubheading{Quit and Exit}
1540@kindex q 1590@kindex q
1541@item q 1591@item q
@@ -1564,8 +1614,9 @@ Org-mode. It can be very useful to combine output from Org-mode with
1564the diary. 1614the diary.
1565 1615
1566The interaction between Org-mode and diary works both ways: You can 1616The interaction between Org-mode and diary works both ways: You can
1567list entries from the diary in the Org-mode agenda, or you can display 1617list entries from the diary in the Org-mode agenda, from which many
1568entries from the org agenda in the Emacs diary. 1618calendar and diary commands are directly accessible. Or you can
1619display entries from the org agenda in the Emacs diary.
1569 1620
1570@menu 1621@menu
1571* Diary to agenda:: Agenda incorporates the diary 1622* Diary to agenda:: Agenda incorporates the diary
@@ -1584,7 +1635,15 @@ agenda, you only need to customize the variable
1584@end lisp 1635@end lisp
1585@noindent 1636@noindent
1586 1637
1587@noindent After that, everything will happen automatically. 1638@noindent After that, everything will happen automatically. All diary
1639entries including holidays, anniversaries etc will be included in the
1640agenda buffer created by Org-mode. @key{SPC}, @key{TAB}, and
1641@key{RET} can be used from the agenda buffer to jump to the diary
1642file, in order to edit existing diary entries. Also the @kbd{i}
1643command to insert new entries for the current date works in the agenda
1644buffer, as well as the commands @kbd{S}, @kbd{M}, and @kbd{C} to
1645display Sunrise/Sunset times, show lunar phases and to convert to
1646other calendars, respectively.
1588 1647
1589@node Agenda to diary, , Diary to agenda, Calendar/Diary integration 1648@node Agenda to diary, , Diary to agenda, Calendar/Diary integration
1590@subsection Including the agenda into the diary 1649@subsection Including the agenda into the diary
diff --git a/man/programs.texi b/man/programs.texi
index 353cb85aa60..98e60d0385c 100644
--- a/man/programs.texi
+++ b/man/programs.texi
@@ -1,5 +1,6 @@
1@c This is part of the Emacs manual. 1@c This is part of the Emacs manual.
2@c Copyright (C) 1985,86,87,93,94,95,97,99,00,2001 Free Software Foundation, Inc. 2@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
3@c 2001, 2005 Free Software Foundation, Inc.
3@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
4@node Programs, Building, Text, Top 5@node Programs, Building, Text, Top
5@chapter Editing Programs 6@chapter Editing Programs
@@ -80,17 +81,19 @@ and you can select it by typing @kbd{M-x @var{l}-mode @key{RET}}.
80@cindex Shell-script mode 81@cindex Shell-script mode
81@cindex Delphi mode 82@cindex Delphi mode
82@cindex PostScript mode 83@cindex PostScript mode
84@cindex Conf mode
85@cindex DNS mode
83 The existing programming language major modes include Lisp, Scheme (a 86 The existing programming language major modes include Lisp, Scheme (a
84variant of Lisp) and the Scheme-based DSSSL expression language, Ada, 87variant of Lisp) and the Scheme-based DSSSL expression language, Ada,
85ASM, AWK, C, C++, Delphi (Object Pascal), Fortran (free format and fixed 88ASM, AWK, C, C++, Delphi (Object Pascal), Fortran (free format and fixed
86format), Icon, IDL (CORBA), IDLWAVE, Java, Metafont (@TeX{}'s 89format), Icon, IDL (CORBA), IDLWAVE, Java, Metafont (@TeX{}'s
87companion for font creation), Modula2, Objective-C, Octave, Pascal, 90companion for font creation), Modula2, Objective-C, Octave, Pascal,
88Perl, Pike, PostScript, Prolog, Python, Simula, Tcl, and VHDL. There is 91Perl, Pike, PostScript, Prolog, Python, Simula, Tcl, and VHDL. An
89also a major mode for makefiles, called Makefile mode. An alternative 92alternative mode for Perl is called CPerl mode. Modes are available for
90mode for Perl is called CPerl mode. Modes are available for the 93the scripting languages of the common GNU and Unix shells, VMS DCL, and
91scripting languages of the common GNU and Unix shells, VMS DCL, and
92MS-DOS/MS-Windows @samp{BAT} files. There are also major modes for 94MS-DOS/MS-Windows @samp{BAT} files. There are also major modes for
93editing various sorts of configuration files. 95editing makefiles, DNS master files, and various sorts of configuration
96files.
94 97
95@kindex DEL @r{(programming modes)} 98@kindex DEL @r{(programming modes)}
96@findex c-electric-backspace 99@findex c-electric-backspace
@@ -1801,11 +1804,11 @@ names.
1801@cindex Fortran mode 1804@cindex Fortran mode
1802@cindex mode, Fortran 1805@cindex mode, Fortran
1803 1806
1804 Fortran mode provides special motion commands for Fortran statements and 1807 Fortran mode provides special motion commands for Fortran statements
1805subprograms, and indentation commands that understand Fortran conventions 1808and subprograms, and indentation commands that understand Fortran
1806of nesting, line numbers and continuation statements. Fortran mode has 1809conventions of nesting, line numbers and continuation statements.
1807its own Auto Fill mode that breaks long lines into proper Fortran 1810Fortran mode has support for Auto Fill mode that breaks long lines into
1808continuation lines. 1811proper Fortran continuation lines.
1809 1812
1810 Special commands for comments are provided because Fortran comments 1813 Special commands for comments are provided because Fortran comments
1811are unlike those of other languages. Built-in abbrevs optionally save 1814are unlike those of other languages. Built-in abbrevs optionally save
@@ -1817,18 +1820,18 @@ runs the hook @code{fortran-mode-hook} (@pxref{Hooks}).
1817@cindex Fortran77 and Fortran90 1820@cindex Fortran77 and Fortran90
1818@findex f90-mode 1821@findex f90-mode
1819@findex fortran-mode 1822@findex fortran-mode
1820 Fortran mode is meant for editing Fortran77 ``fixed format'' source 1823 Fortran mode is meant for editing Fortran77 ``fixed format'' (and also
1821code. For editing the modern Fortran90 ``free format'' source code, 1824``tab format'') source code. For editing the modern Fortran90 or
1822use F90 mode (@code{f90-mode}). Emacs normally uses Fortran mode for 1825Fortran95 ``free format'' source code, use F90 mode (@code{f90-mode}).
1823files with extension @samp{.f}, @samp{.F} or @samp{.for}, and F90 mode 1826Emacs normally uses Fortran mode for files with extension @samp{.f},
1824for the extension @samp{.f90}. GNU Fortran supports both kinds of 1827@samp{.F} or @samp{.for}, and F90 mode for the extension @samp{.f90} and
1825format. 1828@samp{.f95}. GNU Fortran supports both kinds of format.
1826 1829
1827@menu 1830@menu
1828* Motion: Fortran Motion. Moving point by statements or subprograms. 1831* Motion: Fortran Motion. Moving point by statements or subprograms.
1829* Indent: Fortran Indent. Indentation commands for Fortran. 1832* Indent: Fortran Indent. Indentation commands for Fortran.
1830* Comments: Fortran Comments. Inserting and aligning comments. 1833* Comments: Fortran Comments. Inserting and aligning comments.
1831* Autofill: Fortran Autofill. Auto fill minor mode for Fortran. 1834* Autofill: Fortran Autofill. Auto fill support for Fortran.
1832* Columns: Fortran Columns. Measuring columns for valid Fortran. 1835* Columns: Fortran Columns. Measuring columns for valid Fortran.
1833* Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords. 1836* Abbrev: Fortran Abbrev. Built-in abbrevs for Fortran keywords.
1834@end menu 1837@end menu
@@ -1837,8 +1840,9 @@ format.
1837@subsection Motion Commands 1840@subsection Motion Commands
1838 1841
1839 In addition to the normal commands for moving by and operating on 1842 In addition to the normal commands for moving by and operating on
1840``defuns'' (Fortran subprograms---functions and subroutines), Fortran 1843``defuns'' (Fortran subprograms---functions and subroutines, as well as
1841mode provides special commands to move by statements. 1844modules for F90 mode), Fortran mode provides special commands to move by
1845statements and other program units.
1842 1846
1843@table @kbd 1847@table @kbd
1844@kindex C-c C-n @r{(Fortran mode)} 1848@kindex C-c C-n @r{(Fortran mode)}
@@ -1873,21 +1877,24 @@ Move point backward to the previous code block
1873(@code{f90-previous-block}). This is like @code{f90-next-block}, but 1877(@code{f90-previous-block}). This is like @code{f90-next-block}, but
1874moves backwards. 1878moves backwards.
1875 1879
1876@kindex C-M-n @r{(F90 mode)} 1880@kindex C-M-n @r{(Fortran mode)}
1881@findex fortran-end-of-block
1877@findex f90-end-of-block 1882@findex f90-end-of-block
1878@item C-M-n 1883@item C-M-n
1879Move to the end of the current code block (@code{f90-end-of-block}). 1884Move to the end of the current code block
1880This is for F90 mode only. With a numeric agument, move forward that 1885(@code{fortran-end-of-block}/@code{f90-end-of-block}). With a numeric
1881number of blocks. This command checks for consistency of block types 1886agument, move forward that number of blocks. The mark is set before
1882and labels (if present), but it does not check the outermost block 1887moving point. The F90 mode version of this command checks for
1883since that may be incomplete. The mark is set before moving point. 1888consistency of block types and labels (if present), but it does not
1884 1889check the outermost block since that may be incomplete.
1885@kindex C-M-p @r{(F90 mode)} 1890
1891@kindex C-M-p @r{(Fortran mode)}
1892@findex fortran-beginning-of-block
1886@findex f90-beginning-of-block 1893@findex f90-beginning-of-block
1887@item C-M-p 1894@item C-M-p
1888Move to the start of the current code block 1895Move to the start of the current code block
1889(@code{f90-beginning-of-block}). This is like @code{f90-end-of-block}, 1896(@code{fortran-beginning-of-block}/@code{f90-beginning-of-block}). This
1890but moves backwards. 1897is like @code{fortran-end-of-block}, but moves backwards.
1891@end table 1898@end table
1892 1899
1893@node Fortran Indent 1900@node Fortran Indent
@@ -1896,7 +1903,7 @@ but moves backwards.
1896 Special commands and features are needed for indenting Fortran code in 1903 Special commands and features are needed for indenting Fortran code in
1897order to make sure various syntactic entities (line numbers, comment line 1904order to make sure various syntactic entities (line numbers, comment line
1898indicators and continuation line flags) appear in the columns that are 1905indicators and continuation line flags) appear in the columns that are
1899required for standard Fortran. 1906required for standard, fixed (or tab) format Fortran.
1900 1907
1901@menu 1908@menu
1902* Commands: ForIndent Commands. Commands for indenting and filling Fortran. 1909* Commands: ForIndent Commands. Commands for indenting and filling Fortran.
@@ -1911,7 +1918,7 @@ required for standard Fortran.
1911 1918
1912@table @kbd 1919@table @kbd
1913@item C-M-j 1920@item C-M-j
1914Break the current line and set up a continuation line 1921Break the current line at point and set up a continuation line
1915(@code{fortran-split-line}). 1922(@code{fortran-split-line}).
1916@item M-^ 1923@item M-^
1917Join this line to the previous line (@code{fortran-join-line}). 1924Join this line to the previous line (@code{fortran-join-line}).
@@ -1953,30 +1960,39 @@ point is in. This removes any excess statement continuations.
1953@cindex Fortran continuation lines 1960@cindex Fortran continuation lines
1954 1961
1955@vindex fortran-continuation-string 1962@vindex fortran-continuation-string
1956 Most modern Fortran compilers allow two ways of writing continuation 1963 Most Fortran77 compilers allow two ways of writing continuation lines.
1957lines. If the first non-space character on a line is in column 5, then 1964If the first non-space character on a line is in column 5, then that
1958that line is a continuation of the previous line. We call this 1965line is a continuation of the previous line. We call this @dfn{fixed
1959@dfn{fixed format}. (In GNU Emacs we always count columns from 0.) The 1966format}. (In GNU Emacs we always count columns from 0; but note that
1960variable @code{fortran-continuation-string} specifies what character to 1967the Fortran standard counts from 1.) The variable
1961put on column 5. A line that starts with a tab character followed by 1968@code{fortran-continuation-string} specifies what character to put in
1962any digit except @samp{0} is also a continuation line. We call this 1969column 5. A line that starts with a tab character followed by any digit
1963style of continuation @dfn{tab format}. 1970except @samp{0} is also a continuation line. We call this style of
1971continuation @dfn{tab format}. (Fortran90 introduced ``free format'',
1972with another style of continuation lines).
1964 1973
1965@vindex indent-tabs-mode @r{(Fortran mode)} 1974@vindex indent-tabs-mode @r{(Fortran mode)}
1966 Fortran mode can make either style of continuation line, but you 1975@vindex fortran-analyze-depth
1967must specify which one you prefer. The value of the variable 1976@vindex fortran-tab-mode-default
1968@code{indent-tabs-mode} controls the choice: @code{nil} for fixed 1977 Fortran mode can use either style of continuation line. When you
1969format, and non-@code{nil} for tab format. You can tell which style 1978enter Fortran mode, it tries to deduce the proper continuation style
1970is presently in effect by the presence or absence of the string 1979automatically from the buffer contents. It does this by scanning up to
1971@samp{Tab} in the mode line. 1980@code{fortran-analyze-depth} (default 100) lines from the start of the
1972 1981buffer. The first line that begins with either a tab character or six
1973 If the text on a line starts with the conventional Fortran 1982spaces determines the choice. If the scan fails (for example, if the
1974continuation marker @samp{$}, or if it begins with any non-whitespace 1983buffer is new and therefore empty), the value of
1975character in column 5, Fortran mode treats it as a continuation line. 1984@code{fortran-tab-mode-default} (@code{nil} for fixed format, and
1976When you indent a continuation line with @key{TAB}, it converts the line 1985non-@code{nil} for tab format) is used. @samp{/t} in the mode line
1977to the current continuation style. When you split a Fortran statement 1986indicates tab format is selected. Fortran mode sets the value of
1978with @kbd{C-M-j}, the continuation marker on the newline is created 1987@code{indent-tabs-mode} accordingly (@pxref{Just Spaces}).
1979according to the continuation style. 1988
1989 If the text on a line starts with the Fortran continuation marker
1990@samp{$}, or if it begins with any non-whitespace character in column
19915, Fortran mode treats it as a continuation line. When you indent a
1992continuation line with @key{TAB}, it converts the line to the current
1993continuation style. When you split a Fortran statement with
1994@kbd{C-M-j}, the continuation marker on the newline is created according
1995to the continuation style.
1980 1996
1981 The setting of continuation style affects several other aspects of 1997 The setting of continuation style affects several other aspects of
1982editing in Fortran mode. In fixed format mode, the minimum column 1998editing in Fortran mode. In fixed format mode, the minimum column
@@ -1986,17 +2002,6 @@ space character for whitespace. In tab format mode, the minimum
1986column number for the statement body is 8, and the whitespace before 2002column number for the statement body is 8, and the whitespace before
1987column 8 must always consist of one tab character. 2003column 8 must always consist of one tab character.
1988 2004
1989@vindex fortran-tab-mode-default
1990@vindex fortran-analyze-depth
1991 When you enter Fortran mode for an existing file, it tries to deduce the
1992proper continuation style automatically from the file contents. The first
1993line that begins with either a tab character or six spaces determines the
1994choice. The variable @code{fortran-analyze-depth} specifies how many lines
1995to consider (at the beginning of the file); if none of those lines
1996indicates a style, then the variable @code{fortran-tab-mode-default}
1997specifies the style. If it is @code{nil}, that specifies fixed format, and
1998non-@code{nil} specifies tab format.
1999
2000@node ForIndent Num 2005@node ForIndent Num
2001@subsubsection Line Numbers 2006@subsubsection Line Numbers
2002 2007
@@ -2007,9 +2012,11 @@ through 4. (Columns always count from 0 in GNU Emacs.)
2007@vindex fortran-line-number-indent 2012@vindex fortran-line-number-indent
2008 Line numbers of four digits or less are normally indented one space. 2013 Line numbers of four digits or less are normally indented one space.
2009The variable @code{fortran-line-number-indent} controls this; it 2014The variable @code{fortran-line-number-indent} controls this; it
2010specifies the maximum indentation a line number can have. Line numbers 2015specifies the maximum indentation a line number can have. The default
2011are right-justified to end in column 4 unless that would require more 2016value of the variable is 1. Fortran mode tries to prevent line number
2012than this maximum indentation. The default value of the variable is 1. 2017digits passing column 4, reducing the indentation below the specified
2018maximum if necessary. If @code{fortran-line-number-indent} has the
2019value 5, line numbers are right-justified to end in column 4.
2013 2020
2014@vindex fortran-electric-line-number 2021@vindex fortran-electric-line-number
2015 Simply inserting a line number is enough to indent it according to 2022 Simply inserting a line number is enough to indent it according to
@@ -2062,54 +2069,59 @@ followed.
2062Extra indentation within each level of @samp{do} statement (default 3). 2069Extra indentation within each level of @samp{do} statement (default 3).
2063 2070
2064@item fortran-if-indent 2071@item fortran-if-indent
2065Extra indentation within each level of @samp{if} statement (default 3). 2072Extra indentation within each level of @samp{if}, @samp{select case}, or
2066This value is also used for extra indentation within each level of the 2073@samp{where} statements (default 3).
2067Fortran 90 @samp{where} statement.
2068 2074
2069@item fortran-structure-indent 2075@item fortran-structure-indent
2070Extra indentation within each level of @samp{structure}, @samp{union}, or 2076Extra indentation within each level of @samp{structure}, @samp{union},
2071@samp{map} statements (default 3). 2077@samp{map}, or @samp{interface} statements (default 3).
2072 2078
2073@item fortran-continuation-indent 2079@item fortran-continuation-indent
2074Extra indentation for bodies of continuation lines (default 5). 2080Extra indentation for bodies of continuation lines (default 5).
2075 2081
2076@item fortran-check-all-num-for-matching-do 2082@item fortran-check-all-num-for-matching-do
2077If this is @code{nil}, indentation assumes that each @samp{do} statement 2083In Fortran77, a numbered @samp{do} statement is ended by any statement
2078ends on a @samp{continue} statement. Therefore, when computing 2084with a matching line number. It is common (but not compulsory) to use a
2079indentation for a statement other than @samp{continue}, it can save time 2085@samp{continue} statement for this purpose. If this variable has a
2080by not checking for a @samp{do} statement ending there. If this is 2086non-@code{nil} value, indenting any numbered statement must check for a
2081non-@code{nil}, indenting any numbered statement must check for a 2087@samp{do} that ends there. If you always end @samp{do} statements with
2082@samp{do} that ends there. The default is @code{nil}. 2088a @samp{continue} line (or if you use the more modern @samp{enddo}),
2089then you can speed up indentation by setting this variable to
2090@code{nil}. The default is @code{nil}.
2083 2091
2084@item fortran-blink-matching-if 2092@item fortran-blink-matching-if
2085If this is @code{t}, indenting an @samp{endif} statement moves the 2093If this is @code{t}, indenting an @samp{endif} (or @samp{enddo}
2086cursor momentarily to the matching @samp{if} statement to show where it 2094statement moves the cursor momentarily to the matching @samp{if} (or
2087is. The default is @code{nil}. 2095@samp{do}) statement to show where it is. The default is @code{nil}.
2088 2096
2089@item fortran-minimum-statement-indent-fixed 2097@item fortran-minimum-statement-indent-fixed
2090Minimum indentation for fortran statements when using fixed format 2098Minimum indentation for Fortran statements when using fixed format
2091continuation line style. Statement bodies are never indented less than 2099continuation line style. Statement bodies are never indented less than
2092this much. The default is 6. 2100this much. The default is 6.
2093 2101
2094@item fortran-minimum-statement-indent-tab 2102@item fortran-minimum-statement-indent-tab
2095Minimum indentation for fortran statements for tab format continuation line 2103Minimum indentation for Fortran statements for tab format continuation line
2096style. Statement bodies are never indented less than this much. The 2104style. Statement bodies are never indented less than this much. The
2097default is 8. 2105default is 8.
2098@end table 2106@end table
2099 2107
2108The variables controlling the indentation of comments are described in
2109the following section.
2110
2100@node Fortran Comments 2111@node Fortran Comments
2101@subsection Fortran Comments 2112@subsection Fortran Comments
2102 2113
2103 The usual Emacs comment commands assume that a comment can follow a line 2114 The usual Emacs comment commands assume that a comment can follow a
2104of code. In Fortran, the standard comment syntax requires an entire line 2115line of code. In Fortran77, the standard comment syntax requires an
2105to be just a comment. Therefore, Fortran mode replaces the standard Emacs 2116entire line to be just a comment. Therefore, Fortran mode replaces the
2106comment commands and defines some new variables. 2117standard Emacs comment commands and defines some new variables.
2107 2118
2119@vindex fortran-comment-line-start
2108 Fortran mode can also handle the Fortran90 comment syntax where comments 2120 Fortran mode can also handle the Fortran90 comment syntax where comments
2109start with @samp{!} and can follow other text. Because only some Fortran77 2121start with @samp{!} and can follow other text. Because only some Fortran77
2110compilers accept this syntax, Fortran mode will not insert such comments 2122compilers accept this syntax, Fortran mode will not insert such comments
2111unless you have said in advance to do so. To do this, set the variable 2123unless you have said in advance to do so. To do this, set the variable
2112@code{comment-start} to @samp{"!"} (@pxref{Variables}). 2124@code{fortran-comment-line-start} to @samp{"!"}.
2113 2125
2114@table @kbd 2126@table @kbd
2115@item M-; 2127@item M-;
@@ -2123,6 +2135,7 @@ Turn all lines of the region into comments, or (with argument) turn them back
2123into real code (@code{fortran-comment-region}). 2135into real code (@code{fortran-comment-region}).
2124@end table 2136@end table
2125 2137
2138@findex fortran-indent-comment
2126 @kbd{M-;} in Fortran mode is redefined as the command 2139 @kbd{M-;} in Fortran mode is redefined as the command
2127@code{fortran-indent-comment}. Like the usual @kbd{M-;} command, this 2140@code{fortran-indent-comment}. Like the usual @kbd{M-;} command, this
2128recognizes any kind of existing comment and aligns its text appropriately; 2141recognizes any kind of existing comment and aligns its text appropriately;
@@ -2178,14 +2191,6 @@ never be indented at all, no matter what the value of
2178lines are directives. Matching lines are never indented, and receive 2191lines are directives. Matching lines are never indented, and receive
2179distinctive font-locking. 2192distinctive font-locking.
2180 2193
2181@vindex comment-line-start
2182@vindex comment-line-start-skip
2183 Fortran mode introduces two variables @code{comment-line-start} and
2184@code{comment-line-start-skip}, which play for full-line comments the same
2185roles played by @code{comment-start} and @code{comment-start-skip} for
2186ordinary text-following comments. Normally these are set properly by
2187Fortran mode, so you do not need to change them.
2188
2189 The normal Emacs comment command @kbd{C-x ;} has not been redefined. If 2194 The normal Emacs comment command @kbd{C-x ;} has not been redefined. If
2190you use @samp{!} comments, this command can be used with them. Otherwise 2195you use @samp{!} comments, this command can be used with them. Otherwise
2191it is useless in Fortran mode. 2196it is useless in Fortran mode.
@@ -2204,34 +2209,28 @@ of the name never conflict because in Lisp and in Emacs it is always
2204clear from the context which one is meant. 2209clear from the context which one is meant.
2205 2210
2206@node Fortran Autofill 2211@node Fortran Autofill
2207@subsection Fortran Auto Fill Mode 2212@subsection Auto Fill in Fortran Mode
2208 2213
2209 Fortran Auto Fill mode is a minor mode which automatically splits 2214 Fortran mode has specialized support for Auto Fill mode, which is a
2210Fortran statements as you insert them when they become too wide. 2215minor mode that automatically splits statements as you insert them when
2211Splitting a statement involves making continuation lines using 2216they become too wide. Splitting a statement involves making
2212@code{fortran-continuation-string} (@pxref{ForIndent Cont}). This 2217continuation lines using @code{fortran-continuation-string}
2213splitting happens when you type @key{SPC}, @key{RET}, or @key{TAB}, and 2218(@pxref{ForIndent Cont}). This splitting happens when you type
2214also in the Fortran indentation commands. 2219@key{SPC}, @key{RET}, or @key{TAB}, and also in the Fortran indentation
2215 2220commands. You activate Auto Fill in Fortran mode in the normal way
2216@findex fortran-auto-fill-mode 2221(@pxref{Auto Fill}).
2217 @kbd{M-x fortran-auto-fill-mode} toggles Fortran Auto Fill mode,
2218which is a variant of normal Auto Fill mode (@pxref{Filling}) designed
2219for Fortran programs. Fortran Auto Fill mode is a buffer-local minor
2220mode (@pxref{Minor Modes}). When Fortran Auto Fill mode is in effect,
2221the word @samp{Fill} appears in the mode line inside the parentheses.
2222 2222
2223@vindex fortran-break-before-delimiters 2223@vindex fortran-break-before-delimiters
2224 Fortran Auto Fill mode breaks lines at spaces or delimiters when the 2224 Auto Fill breaks lines at spaces or delimiters when the lines get
2225lines get longer than the desired width (the value of @code{fill-column}). 2225longer than the desired width (the value of @code{fill-column}). The
2226The delimiters that Fortran Auto Fill mode may break at are @samp{,}, 2226delimiters (besides whitespace) that Auto Fill can break at are
2227@samp{'}, @samp{+}, @samp{-}, @samp{/}, @samp{*}, @samp{=}, and @samp{)}. 2227@samp{+}, @samp{-}, @samp{/}, @samp{*}, @samp{=}, @samp{<}, @samp{>},
2228The line break comes after the delimiter if the variable 2228and @samp{,}. The line break comes after the delimiter if the
2229@code{fortran-break-before-delimiters} is @code{nil}. Otherwise (and by 2229variable @code{fortran-break-before-delimiters} is @code{nil}.
2230default), the break comes before the delimiter. 2230Otherwise (and by default), the break comes before the delimiter.
2231 2231
2232 To enable this mode permanently, add a hook function to 2232 To enable Auto Fill in all Fortran buffers, add
2233@code{fortran-mode-hook} to execute @code{(fortran-auto-fill-mode 1)}. 2233@code{turn-on-auto-fill} to @code{fortran-mode-hook}. @xref{Hooks}.
2234@xref{Hooks}.
2235 2234
2236@node Fortran Columns 2235@node Fortran Columns
2237@subsection Checking Columns in Fortran 2236@subsection Checking Columns in Fortran
@@ -2280,7 +2279,7 @@ display.
2280@findex fortran-window-create-momentarily 2279@findex fortran-window-create-momentarily
2281 @kbd{C-c C-w} (@code{fortran-window-create-momentarily}) temporarily 2280 @kbd{C-c C-w} (@code{fortran-window-create-momentarily}) temporarily
2282splits the current window horizontally, making a window 72 columns 2281splits the current window horizontally, making a window 72 columns
2283wide, so you can see which lines that is too long. Type a space to 2282wide, so you can see any lines that are too long. Type a space to
2284restore the normal width. 2283restore the normal width.
2285 2284
2286@kindex C-u C-c C-w @r{(Fortran mode)} 2285@kindex C-u C-c C-w @r{(Fortran mode)}
diff --git a/man/reftex.texi b/man/reftex.texi
index 7de16dcb0e1..0d3c5bdc32e 100644
--- a/man/reftex.texi
+++ b/man/reftex.texi
@@ -9,7 +9,7 @@
9@c Version and Contact Info 9@c Version and Contact Info
10@set VERSION 4.24 10@set VERSION 4.24
11@set EDITION 4.24 11@set EDITION 4.24
12@set DATE August 2004 12@set DATE March 2005
13@set AUCTEXSITE @uref{http://www.nongnu.org/auctex/,AUCTeX distribution site} 13@set AUCTEXSITE @uref{http://www.nongnu.org/auctex/,AUCTeX distribution site}
14@set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/,maintainers webpage} 14@set MAINTAINERSITE @uref{http://www.astro.uva.nl/~dominik/Tools/,maintainers webpage}
15@set MAINTAINER Carsten Dominik 15@set MAINTAINER Carsten Dominik
@@ -25,7 +25,8 @@ citations and indices for LaTeX documents with Emacs.
25This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for 25This is edition @value{EDITION} of the @b{Ref@TeX{}} User Manual for
26@b{Ref@TeX{}} @value{VERSION} 26@b{Ref@TeX{}} @value{VERSION}
27 27
28Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 28Copyright (c) 1997, 1998, 1999, 2000, 2001, 2002, 2005
29Free Software Foundation, Inc.
29 30
30@quotation 31@quotation
31Permission is granted to copy, distribute and/or modify this document 32Permission is granted to copy, distribute and/or modify this document
@@ -734,9 +735,9 @@ indicating the type of the label and a unique mark. @b{Ref@TeX{}} has
734A label can be derived from context. This means, @b{Ref@TeX{}} takes 735A label can be derived from context. This means, @b{Ref@TeX{}} takes
735the context of the label definition and constructs a label from 736the context of the label definition and constructs a label from
736that@footnote{Note that the context may contain constructs which are 737that@footnote{Note that the context may contain constructs which are
737illegal in labels. @b{Ref@TeX{}} will therefore strip the accent from 738invalid in labels. @b{Ref@TeX{}} will therefore strip the accent from
738accented Latin-1 characters and remove everything else which is not 739accented Latin-1 characters and remove everything else which is not
739legal in labels. This mechanism is safe, but may not be satisfactory 740valid in labels. This mechanism is safe, but may not be satisfactory
740for non-western languages. Check the following variables if you need to 741for non-western languages. Check the following variables if you need to
741change things: @code{reftex-translate-to-ascii-function}, 742change things: @code{reftex-translate-to-ascii-function},
742@code{reftex-derive-label-parameters}, @code{reftex-label-illegal-re}, 743@code{reftex-derive-label-parameters}, @code{reftex-label-illegal-re},
@@ -2832,7 +2833,7 @@ to be changed for other languages. See the variables
2832@vindex reftex-translate-to-ascii-function 2833@vindex reftex-translate-to-ascii-function
2833@vindex reftex-label-illegal-re 2834@vindex reftex-label-illegal-re
2834Also, when a label is derived from context, @b{Ref@TeX{}} clears the 2835Also, when a label is derived from context, @b{Ref@TeX{}} clears the
2835context string from non-ASCII characters in order to make a legal label. 2836context string from non-ASCII characters in order to make a valid label.
2836If there should ever be a version of @TeX{} which allows extended 2837If there should ever be a version of @TeX{} which allows extended
2837characters @emph{in labels}, then we will have to look at the 2838characters @emph{in labels}, then we will have to look at the
2838variables @code{reftex-translate-to-ascii-function} and 2839variables @code{reftex-translate-to-ascii-function} and
@@ -4119,7 +4120,7 @@ Flags governing label insertion. The value has the form
4119 4120
4120If @var{derive}is @code{t}, @b{Ref@TeX{}} will try to derive a sensible 4121If @var{derive}is @code{t}, @b{Ref@TeX{}} will try to derive a sensible
4121label from context. A section label for example will be derived from 4122label from context. A section label for example will be derived from
4122the section heading. The conversion of the context to a legal label is 4123the section heading. The conversion of the context to a valid label is
4123governed by the specifications given in 4124governed by the specifications given in
4124@code{reftex-derive-label-parameters}. If @var{derive} is @code{nil}, 4125@code{reftex-derive-label-parameters}. If @var{derive} is @code{nil},
4125the default label will consist of the prefix and a unique number, like 4126the default label will consist of the prefix and a unique number, like
@@ -4165,7 +4166,7 @@ buffer.
4165@end deffn 4166@end deffn
4166 4167
4167@deffn Hook reftex-string-to-label-function 4168@deffn Hook reftex-string-to-label-function
4168Function to turn an arbitrary string into a legal label. 4169Function to turn an arbitrary string into a valid label.
4169@b{Ref@TeX{}}'s default function uses the variable 4170@b{Ref@TeX{}}'s default function uses the variable
4170@code{reftex-derive-label-parameters}. 4171@code{reftex-derive-label-parameters}.
4171@end deffn 4172@end deffn
@@ -4173,7 +4174,7 @@ Function to turn an arbitrary string into a legal label.
4173@deffn Hook reftex-translate-to-ascii-function 4174@deffn Hook reftex-translate-to-ascii-function
4174Filter function which will process a context string before it is used to 4175Filter function which will process a context string before it is used to
4175derive a label from it. The intended application is to convert ISO or 4176derive a label from it. The intended application is to convert ISO or
4176Mule characters into something legal in labels. The default function 4177Mule characters into something valid in labels. The default function
4177@code{reftex-latin1-to-ascii} removes the accents from Latin-1 4178@code{reftex-latin1-to-ascii} removes the accents from Latin-1
4178characters. X-Symbol (>=2.6) sets this variable to the much more 4179characters. X-Symbol (>=2.6) sets this variable to the much more
4179general @code{x-symbol-translate-to-ascii}. 4180general @code{x-symbol-translate-to-ascii}.
@@ -4187,9 +4188,9 @@ list of the following items:
4187Number of words to use. 4188Number of words to use.
4188@item @var{maxchar} 4189@item @var{maxchar}
4189Maximum number of characters in a label string. 4190Maximum number of characters in a label string.
4190@item @var{illegal} 4191@item @var{invalid}
4191@code{nil}: Throw away any words containing characters illegal in labels.@* 4192@code{nil}: Throw away any words containing characters invalid in labels.@*
4192@code{t}: Throw away only the illegal characters, not the whole word. 4193@code{t}: Throw away only the invalid characters, not the whole word.
4193@item @var{abbrev} 4194@item @var{abbrev}
4194@code{nil}: Never abbreviate words.@* 4195@code{nil}: Never abbreviate words.@*
4195@code{t}: Always abbreviate words (see @code{reftex-abbrev-parameters}).@* 4196@code{t}: Always abbreviate words (see @code{reftex-abbrev-parameters}).@*
@@ -4204,7 +4205,7 @@ List of words which should not be part of labels.
4204@end defopt 4205@end defopt
4205 4206
4206@defopt reftex-label-illegal-re 4207@defopt reftex-label-illegal-re
4207Regexp matching characters not legal in labels. 4208Regexp matching characters not valid in labels.
4208@end defopt 4209@end defopt
4209 4210
4210@defopt reftex-abbrev-parameters 4211@defopt reftex-abbrev-parameters
@@ -4557,7 +4558,7 @@ indexing from the phrase buffer.
4557 4558
4558The final entry may also be a symbol. It must have an association in 4559The final entry may also be a symbol. It must have an association in
4559the variable @code{reftex-index-macros-builtin} to specify the main 4560the variable @code{reftex-index-macros-builtin} to specify the main
4560indexing package you are using. Legal values are currently 4561indexing package you are using. Valid values are currently
4561@example 4562@example
4562default @r{The LaTeX default - unnecessary to specify this one} 4563default @r{The LaTeX default - unnecessary to specify this one}
4563multind @r{The multind.sty package} 4564multind @r{The multind.sty package}
@@ -4589,7 +4590,7 @@ Default index tag. When working with multiple indexes, RefTeX queries
4589for an index tag when creating index entries or displaying a specific 4590for an index tag when creating index entries or displaying a specific
4590index. This variable controls the default offered for these queries. 4591index. This variable controls the default offered for these queries.
4591The default can be selected with @key{RET} during selection or 4592The default can be selected with @key{RET} during selection or
4592completion. Legal values of this variable are: 4593completion. Valid values of this variable are:
4593@example 4594@example
4594nil @r{Do not provide a default index} 4595nil @r{Do not provide a default index}
4595"tag" @r{The default index tag given as a string, e.g. "idx"} 4596"tag" @r{The default index tag given as a string, e.g. "idx"}
@@ -4829,9 +4830,9 @@ This is a list of items, each item is like:
4829@example 4830@example
4830@var{type}: @r{File type like @code{"bib"} or @code{"tex"}.} 4831@var{type}: @r{File type like @code{"bib"} or @code{"tex"}.}
4831@var{def-ext}: @r{The default extension for that file type, like @code{".tex"} or @code{".bib"}.} 4832@var{def-ext}: @r{The default extension for that file type, like @code{".tex"} or @code{".bib"}.}
4832@var{other-ext}: @r{Any number of other legal extensions for this file type.} 4833@var{other-ext}: @r{Any number of other valid extensions for this file type.}
4833@end example 4834@end example
4834When a files is searched and it does not have any of the legal extensions, 4835When a files is searched and it does not have any of the valid extensions,
4835we try the default extension first, and then the naked file name. 4836we try the default extension first, and then the naked file name.
4836@end defopt 4837@end defopt
4837 4838
@@ -5456,7 +5457,7 @@ lowercase labels (default @code{t}).
5456All @file{.rel} files have a final newline to avoid queries. 5457All @file{.rel} files have a final newline to avoid queries.
5457@item 5458@item
5458Single byte representations of accented European letters (ISO-8859-1) 5459Single byte representations of accented European letters (ISO-8859-1)
5459are now legal in labels. 5460are now valid in labels.
5460@end itemize 5461@end itemize
5461 5462
5462@noindent @b{Version 3.33} 5463@noindent @b{Version 3.33}
diff --git a/man/text.texi b/man/text.texi
index 327a03116f8..958e18db8d5 100644
--- a/man/text.texi
+++ b/man/text.texi
@@ -403,13 +403,13 @@ Text}).
403* Fill Prefix:: Filling paragraphs that are indented 403* Fill Prefix:: Filling paragraphs that are indented
404 or in a comment, etc. 404 or in a comment, etc.
405* Adaptive Fill:: How Emacs can determine the fill prefix automatically. 405* Adaptive Fill:: How Emacs can determine the fill prefix automatically.
406* Longlines:: Editing text with very long lines.
406@end menu 407@end menu
407 408
408@node Auto Fill 409@node Auto Fill
409@subsection Auto Fill Mode 410@subsection Auto Fill Mode
410@cindex Auto Fill mode 411@cindex Auto Fill mode
411@cindex mode, Auto Fill 412@cindex mode, Auto Fill
412@cindex word wrap
413 413
414 @dfn{Auto Fill} mode is a minor mode in which lines are broken 414 @dfn{Auto Fill} mode is a minor mode in which lines are broken
415automatically when they become too wide. Breaking happens only when 415automatically when they become too wide. Breaking happens only when
@@ -474,16 +474,19 @@ you type or modify them in other ways. It provides an effect similar
474to typical word processor behavior. This works by running a 474to typical word processor behavior. This works by running a
475paragraph-filling command at suitable times. 475paragraph-filling command at suitable times.
476 476
477 When you are typing text, only characters which normally trigger
478auto filling, like the space character, will trigger refilling. This
479is to avoid making it too slow. Apart from self-inserting characters,
480other commands which modify the text cause refilling.
481
482 The current implementation is preliminary and probably not robust.
483We expect to improve on it.
484
485 To toggle the use of Refill mode in the current buffer, type 477 To toggle the use of Refill mode in the current buffer, type
486@kbd{M-x refill-mode}. 478@kbd{M-x refill-mode}. When you are typing text, only characters
479which normally trigger auto filling, like the space character, will
480trigger refilling. This is to avoid making it too slow. Apart from
481self-inserting characters, other commands which modify the text cause
482refilling.
483
484 The current implementation is preliminary and not robust. You can
485get better ``line wrapping'' behavior using Longlines mode.
486@xref{Longlines}. However, Longlines mode has an important
487side-effect: the newlines that it inserts for you are not saved to
488disk, so the files that you make with Longlines mode will appear to be
489completely unfilled if you edit them without Longlines mode.
487 490
488@node Fill Commands 491@node Fill Commands
489@subsection Explicit Fill Commands 492@subsection Explicit Fill Commands
@@ -745,6 +748,56 @@ line, and it should return the appropriate fill prefix based on that
745line. If it returns @code{nil}, that means it sees no fill prefix in 748line. If it returns @code{nil}, that means it sees no fill prefix in
746that line. 749that line.
747 750
751@node Longlines
752@subsection Long Lines Mode
753@cindex refilling text, word processor style
754@cindex modes, Long Lines
755@cindex word wrap
756@cindex Long Lines minor mode
757
758 Long Lines mode is a minor mode for @dfn{word wrapping}; it lets you
759edit ``unfilled'' text files, which Emacs would normally display as a
760bunch of extremely long lines. Many text editors, such as those built
761into many web browsers, normally do word wrapping.
762
763@findex longlines-mode
764 To enable Long Lines mode, type @kbd{M-x longlines-mode}. If the
765text is full of long lines, this will ``wrap'' them
766immediately---i.e., break up to fit in the window. As you edit the
767text, Long Lines mode automatically re-wraps lines by inserting or
768deleting @dfn{soft newlines} as necessary (@pxref{Hard and Soft
769Newlines}.) These soft newlines won't show up when you save the
770buffer into a file, or when you copy the text into the kill ring,
771clipboard, or a register.
772
773@findex longlines-auto-wrap
774 Word wrapping is @emph{not} the same as ordinary filling
775(@pxref{Fill Commands}). It does not contract multiple spaces into a
776single space, recognize fill prefixes (@pxref{Fill Prefix}), or
777perform adaptive filling (@pxref{Adaptive Fill}). The reason for this
778is that a wrapped line is still, conceptually, a single line. Each
779soft newline is equivalent to exactly one space in that long line, and
780vice versa. However, you can still call filling functions such as
781@kbd{M-q}, and these will work as expected, inserting soft newlines
782that won't show up on disk or when the text is copied. You can even
783rely entirely on the normal fill commands by turning off automatic
784line wrapping, with @kbd{C-u M-x longlines-auto-wrap}. To turn
785automatic line wrapping back on, type @kbd{M-x longlines-auto-wrap}.
786
787@findex longlines-show-hard-newlines
788 Whenever you type @kbd{RET}, you are inserting a hard newline. If
789you want to see where all the hard newlines are, type @kbd{M-x
790longlines-show-hard-newlines}. This will mark each hard newline with
791a special symbol. The same command with a prefix argument turns this
792display off.
793
794 Long Lines mode does not change normal text files that are already
795filled, since the existing newlines are considered hard newlines.
796Before Long Lines can do anything, you need to transform each
797paragraph into a long line. One way is to set @code{fill-column} to a
798large number (e.g., @kbd{C-u 9999 C-x f}), re-fill all the paragraphs,
799and then set @code{fill-column} back to its original value.
800
748@node Case 801@node Case
749@section Case Conversion Commands 802@section Case Conversion Commands
750@cindex case conversion 803@cindex case conversion
@@ -1053,30 +1106,35 @@ Most of them fall into pairs of opposites. They are not undoable; instead,
1053you can undo right past them. Making lines visible or invisible is simply 1106you can undo right past them. Making lines visible or invisible is simply
1054not recorded by the undo mechanism. 1107not recorded by the undo mechanism.
1055 1108
1109 Many of these commands act on the ``current'' heading line. If
1110point is on a heading line, that is the current heading line; if point
1111is on a body line, the current heading line is the nearest preceding
1112header line.
1113
1056@table @kbd 1114@table @kbd
1057@item C-c C-t 1115@item C-c C-c
1058Make all body lines in the buffer invisible (@code{hide-body}). 1116Make the current heading line's body invisible (@code{hide-entry}).
1059@item C-c C-a 1117@item C-c C-e
1060Make all lines in the buffer visible (@code{show-all}). 1118Make the current heading line's body visible (@code{show-entry}).
1061@item C-c C-d 1119@item C-c C-d
1062Make everything under this heading invisible, not including this 1120Make everything under the current heading invisible, not including the
1063heading itself (@code{hide-subtree}). 1121heading itself (@code{hide-subtree}).
1064@item C-c C-s 1122@item C-c C-s
1065Make everything under this heading visible, including body, 1123Make everything under the current heading visible, including body,
1066subheadings, and their bodies (@code{show-subtree}). 1124subheadings, and their bodies (@code{show-subtree}).
1067@item C-c C-l 1125@item C-c C-l
1068Make the body of this heading line, and of all its subheadings, 1126Make the body of the current heading line, and of all its subheadings,
1069invisible (@code{hide-leaves}). 1127invisible (@code{hide-leaves}).
1070@item C-c C-k 1128@item C-c C-k
1071Make all subheadings of this heading line, at all levels, visible 1129Make all subheadings of the current heading line, at all levels,
1072(@code{show-branches}). 1130visible (@code{show-branches}).
1073@item C-c C-i 1131@item C-c C-i
1074Make immediate subheadings (one level down) of this heading line 1132Make immediate subheadings (one level down) of the current heading
1075visible (@code{show-children}). 1133line visible (@code{show-children}).
1076@item C-c C-c 1134@item C-c C-t
1077Make this heading line's body invisible (@code{hide-entry}). 1135Make all body lines in the buffer invisible (@code{hide-body}).
1078@item C-c C-e 1136@item C-c C-a
1079Make this heading line's body visible (@code{show-entry}). 1137Make all lines in the buffer visible (@code{show-all}).
1080@item C-c C-q 1138@item C-c C-q
1081Hide everything except the top @var{n} levels of heading lines 1139Hide everything except the top @var{n} levels of heading lines
1082(@code{hide-sublevels}). 1140(@code{hide-sublevels}).
@@ -1091,22 +1149,21 @@ the headings leading up from there to the top level of the outline
1091@kindex C-c C-c @r{(Outline mode)} 1149@kindex C-c C-c @r{(Outline mode)}
1092@kindex C-c C-e @r{(Outline mode)} 1150@kindex C-c C-e @r{(Outline mode)}
1093 Two commands that are exact opposites are @kbd{C-c C-c} 1151 Two commands that are exact opposites are @kbd{C-c C-c}
1094(@code{hide-entry}) and @kbd{C-c C-e} (@code{show-entry}). They are 1152(@code{hide-entry}) and @kbd{C-c C-e} (@code{show-entry}). They apply
1095used with point on a heading line, and apply only to the body lines of 1153to the body lines directly following the current heading line.
1096that heading. Subheadings and their bodies are not affected. 1154Subheadings and their bodies are not affected.
1097 1155
1098@findex hide-subtree 1156@findex hide-subtree
1099@findex show-subtree 1157@findex show-subtree
1100@kindex C-c C-s @r{(Outline mode)} 1158@kindex C-c C-s @r{(Outline mode)}
1101@kindex C-c C-d @r{(Outline mode)} 1159@kindex C-c C-d @r{(Outline mode)}
1102@cindex subtree (Outline mode) 1160@cindex subtree (Outline mode)
1103 Two more powerful opposites are @kbd{C-c C-d} (@code{hide-subtree}) and 1161 Two more powerful opposites are @kbd{C-c C-d} (@code{hide-subtree})
1104@kbd{C-c C-s} (@code{show-subtree}). Both expect to be used when point is 1162and @kbd{C-c C-s} (@code{show-subtree}). Both apply to the current
1105on a heading line, and both apply to all the lines of that heading's 1163heading line's @dfn{subtree}: its body, all its subheadings, both
1106@dfn{subtree}: its body, all its subheadings, both direct and indirect, and 1164direct and indirect, and all of their bodies. In other words, the
1107all of their bodies. In other words, the subtree contains everything 1165subtree contains everything following the current heading line, up to
1108following this heading line, up to and not including the next heading of 1166and not including the next heading of the same or higher rank.@refill
1109the same or higher rank.@refill
1110 1167
1111@findex hide-leaves 1168@findex hide-leaves
1112@findex show-branches 1169@findex show-branches
@@ -1131,9 +1188,12 @@ they were invisible.@refill
1131@kindex C-c C-a @r{(Outline mode)} 1188@kindex C-c C-a @r{(Outline mode)}
1132 Two commands have a blanket effect on the whole file. @kbd{C-c C-t} 1189 Two commands have a blanket effect on the whole file. @kbd{C-c C-t}
1133(@code{hide-body}) makes all body lines invisible, so that you see just 1190(@code{hide-body}) makes all body lines invisible, so that you see just
1134the outline structure. @kbd{C-c C-a} (@code{show-all}) makes all lines 1191the outline structure (as a special exception, it will not hide lines
1135visible. These commands can be thought of as a pair of opposites even 1192at the top of the file, preceding the first header line, even though
1136though @kbd{C-c C-a} applies to more than just body lines. 1193these are technically body lines). @kbd{C-c C-a} (@code{show-all})
1194makes all lines visible. These commands can be thought of as a pair
1195of opposites even though @kbd{C-c C-a} applies to more than just body
1196lines.
1137 1197
1138@findex hide-sublevels 1198@findex hide-sublevels
1139@kindex C-c C-q @r{(Outline mode)} 1199@kindex C-c C-q @r{(Outline mode)}
@@ -1284,39 +1344,45 @@ automatically by putting this in your @file{.emacs} file:
1284@cindex @TeX{} mode 1344@cindex @TeX{} mode
1285@cindex La@TeX{} mode 1345@cindex La@TeX{} mode
1286@cindex Sli@TeX{} mode 1346@cindex Sli@TeX{} mode
1347@cindex Doc@TeX{} mode
1287@cindex mode, @TeX{} 1348@cindex mode, @TeX{}
1288@cindex mode, La@TeX{} 1349@cindex mode, La@TeX{}
1289@cindex mode, Sli@TeX{} 1350@cindex mode, Sli@TeX{}
1351@cindex mode, Doc@TeX{}
1290@findex tex-mode 1352@findex tex-mode
1291@findex plain-tex-mode 1353@findex plain-tex-mode
1292@findex latex-mode 1354@findex latex-mode
1293@findex slitex-mode 1355@findex slitex-mode
1356@findex doctex-mode
1294 1357
1295 @TeX{} is a powerful text formatter written by Donald Knuth; it is also 1358 @TeX{} is a powerful text formatter written by Donald Knuth; it is also
1296free, like GNU Emacs. La@TeX{} is a simplified input format for @TeX{}, 1359free, like GNU Emacs. La@TeX{} is a simplified input format for @TeX{},
1297implemented by @TeX{} macros; it comes with @TeX{}. Sli@TeX{} is a special 1360implemented by @TeX{} macros; it comes with @TeX{}. Sli@TeX{} is a special
1298form of La@TeX{}.@footnote{Sli@TeX{} is obsoleted by the @samp{slides} 1361form of La@TeX{}.@footnote{Sli@TeX{} is obsoleted by the @samp{slides}
1299document class in recent La@TeX{} versions.} 1362document class in recent La@TeX{} versions.} Doc@TeX{} (@file{.dtx})
1363is a special file format in which the La@TeX{} sources are written,
1364combining sources with documentation.
1300 1365
1301 Emacs has a special @TeX{} mode for editing @TeX{} input files. 1366 Emacs has a special @TeX{} mode for editing @TeX{} input files.
1302It provides facilities for checking the balance of delimiters and for 1367It provides facilities for checking the balance of delimiters and for
1303invoking @TeX{} on all or part of the file. 1368invoking @TeX{} on all or part of the file.
1304 1369
1305@vindex tex-default-mode 1370@vindex tex-default-mode
1306 @TeX{} mode has three variants, Plain @TeX{} mode, La@TeX{} mode, and 1371 @TeX{} mode has four variants: Plain @TeX{} mode, La@TeX{} mode,
1307Sli@TeX{} mode (these three distinct major modes differ only slightly). 1372Sli@TeX{} mode, and Doc@TeX{} mode (these distinct major modes differ
1308They are designed for editing the three different formats. The command 1373only slightly). They are designed for editing the four different
1309@kbd{M-x tex-mode} looks at the contents of the buffer to determine 1374formats. The command @kbd{M-x tex-mode} looks at the contents of the
1310whether the contents appear to be either La@TeX{} input or Sli@TeX{} 1375buffer to determine whether the contents appear to be either La@TeX{}
1311input; if so, it selects the appropriate mode. If the file contents do 1376input, Sli@TeX{}, or Doc@TeX{} input; if so, it selects the
1312not appear to be La@TeX{} or Sli@TeX{}, it selects Plain @TeX{} mode. 1377appropriate mode. If the file contents do not appear to be La@TeX{},
1313If the contents are insufficient to determine this, the variable 1378Sli@TeX{} or Doc@TeX{}, it selects Plain @TeX{} mode. If the contents
1379are insufficient to determine this, the variable
1314@code{tex-default-mode} controls which mode is used. 1380@code{tex-default-mode} controls which mode is used.
1315 1381
1316 When @kbd{M-x tex-mode} does not guess right, you can use the commands 1382 When @kbd{M-x tex-mode} does not guess right, you can use the commands
1317@kbd{M-x plain-tex-mode}, @kbd{M-x latex-mode}, and @kbd{M-x 1383@kbd{M-x plain-tex-mode}, @kbd{M-x latex-mode}, @kbd{M-x slitex-mode},
1318slitex-mode} to select explicitly the particular variants of @TeX{} 1384and @kbd{doctex-mode} to select explicitly the particular variants of
1319mode. 1385@TeX{} mode.
1320 1386
1321@menu 1387@menu
1322* Editing: TeX Editing. Special commands for editing in TeX mode. 1388* Editing: TeX Editing. Special commands for editing in TeX mode.
diff --git a/man/xresources.texi b/man/xresources.texi
index b1b7d230660..aaf7262d060 100644
--- a/man/xresources.texi
+++ b/man/xresources.texi
@@ -7,10 +7,14 @@
7 You can customize some X-related aspects of Emacs behavior using X 7 You can customize some X-related aspects of Emacs behavior using X
8resources, as is usual for programs that use X. On MS-Windows, you 8resources, as is usual for programs that use X. On MS-Windows, you
9can customize some of the same aspects using the system registry. 9can customize some of the same aspects using the system registry.
10@xref{MS-Windows Registry}. X resources are the only way to customize 10@xref{MS-Windows Registry}.
11tooltip windows and LessTif menus, since the libraries that implement 11
12them don't provide for customization through Emacs. This appendix 12 When Emacs is built using an `X toolkit', such as Lucid or LessTif,
13describes the X resources that Emacs recognizes and how to use them. 13you need to use X resources to customize the appearance of the
14widgets, including the menu-bar, scroll-bar, and dialog boxes. This
15is because the libraries that implement these don't provide for
16customization through Emacs. GTK+ widgets use a separate system of
17`GTK resources', which we will also describe.
14 18
15@menu 19@menu
16* Resources:: Using X resources with Emacs (in general). 20* Resources:: Using X resources with Emacs (in general).
@@ -48,7 +52,8 @@ Registry, under the key @samp{HKEY_CURRENT_USER\SOFTWARE\GNU\Emacs}
48and then under the key @samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}. 52and then under the key @samp{HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs}.
49The menu and scrollbars are native widgets on MS-Windows, so they are 53The menu and scrollbars are native widgets on MS-Windows, so they are
50only customizable via the system-wide settings in the Display Control 54only customizable via the system-wide settings in the Display Control
51Panel. 55Panel. You can also set resources using the @samp{-xrm} command line
56option (see below.)
52 57
53 Programs define named resources with particular meanings. They also 58 Programs define named resources with particular meanings. They also
54define how to group resources into named classes. For instance, in 59define how to group resources into named classes. For instance, in
@@ -58,6 +63,11 @@ of the external border. Both of these resources are part of the
58@samp{BorderWidth} class. Case distinctions are significant in these 63@samp{BorderWidth} class. Case distinctions are significant in these
59names. 64names.
60 65
66 Every resource definition is associated with a specific program
67name---the name of the executable file that you ran. For Emacs, that
68is normally @samp{emacs}. To specify a definition for all instances
69of Emacs, regardless of their names, use @samp{Emacs}.
70
61 In @file{~/.Xdefaults}, you can specify a value for a single resource 71 In @file{~/.Xdefaults}, you can specify a value for a single resource
62on one line, like this: 72on one line, like this:
63 73
@@ -86,11 +96,8 @@ emacs.borderWidth: 4
86 96
87 The order in which the lines appear in the file does not matter. 97 The order in which the lines appear in the file does not matter.
88Also, command-line options always override the X resources file. 98Also, command-line options always override the X resources file.
89 99Here is a list of X command-line options and their corresponding
90 The string @samp{emacs} in the examples above is also a resource 100resource names.
91name. It actually represents the name of the executable file that you
92invoke to run Emacs. If Emacs is installed under a different name, it
93looks for resources under that name instead of @samp{emacs}.
94 101
95@table @samp 102@table @samp
96@item -name @var{name} 103@item -name @var{name}
@@ -272,6 +279,17 @@ especially slow X client/server links.
272@item @code{verticalScrollBars} (class @code{ScrollBars}) 279@item @code{verticalScrollBars} (class @code{ScrollBars})
273Give frames scroll bars if @samp{on}; don't have scroll bars if 280Give frames scroll bars if @samp{on}; don't have scroll bars if
274@samp{off}. 281@samp{off}.
282
283@item @code{visualClass} (class @code{VisualClass})
284Specify the ``visual'' that X should use. This tells X how to handle
285colors.
286
287The value should start with one of @samp{TrueColor},
288@samp{PseudoColor}, @samp{DirectColor}, @samp{StaticColor},
289@samp{GrayScale}, and @samp{StaticGray}, followed by
290@samp{-@var{depth}}, where @var{depth} is the number of color planes.
291Most terminals only allow a few ``visuals,'' and the @samp{dpyinfo}
292program outputs information saying which ones.
275@end table 293@end table
276 294
277@node Face Resources 295@node Face Resources
@@ -552,31 +570,32 @@ The color for the border shadow, on the top and the left.
552@cindex @file{~/.gtkrc-2.0} file 570@cindex @file{~/.gtkrc-2.0} file
553@cindex @file{~/.emacs.d/gtkrc} file 571@cindex @file{~/.emacs.d/gtkrc} file
554 572
555 If the Emacs installed at your site was built to use the GTK widget set, 573 If Emacs was built to use the GTK widget set, then the menu bar,
556then the menu bar, scroll bar and the dialogs can be customized with 574scroll bar and the dialogs are customized with the standard GTK
557the standard GTK @file{~/.gtkrc-2.0} file or with the Emacs specific 575customization file, @file{~/.gtkrc-2.0}, or with the Emacs specific
558@file{~/.emacs.d/gtkrc} file; note that these files are only for 576file @file{~/.emacs.d/gtkrc}. We recommend that you use
559customizing specific GTK widget features. To customize Emacs font, 577@file{~/.emacs.d/gtkrc} for customizations, since @file{~/.gtkrc-2.0}
560background, faces etc., use the normal X resources, see @ref{Resources}. 578seems to be ignored when running GConf with GNOME. These files apply
579only to GTK widget features. To customize Emacs font, background,
580faces, etc., use the normal X resources (@pxref{Resources}).
561 581
562 Some GTK themes override these mechanisms, which means that using 582 Some GTK themes override these mechanisms, which means that using
563these mechanisms will not work to customize them. We recommend that 583these mechanisms will not work to customize them.
564you use @file{~/.emacs.d/gtkrc} for customizations, since
565@file{~/.gtkrc-2.0} seems to be ignored when running GConf with GNOME.
566 584
567 In these files you first defines a style and then how to apply that style 585 In these files you first define a style and say what it means; then
568to widgets (@pxref{GTK widget names}). Here is an example of how to 586you specify to apply the style to various widget types (@pxref{GTK
569change the font for Emacs menus: 587widget names}). Here is an example of how to change the font for
588Emacs menus:
570 589
571@smallexample 590@smallexample
572# This is a comment. 591# @r{Define the style @samp{metafont}.}
573style "menufont" 592style "menufont"
574@{ 593@{
575 font_name = "helvetica bold 14" # This is a Pango font name 594 font_name = "helvetica bold 14" # This is a Pango font name
576@} 595@}
577 596
597# @r{Specify that widget type @samp{*emacs-menuitem*} uses @samp{metafont}.}
578widget "*emacs-menuitem*" style "menufont" 598widget "*emacs-menuitem*" style "menufont"
579
580@end smallexample 599@end smallexample
581 600
582 Here is a more elaborate example, showing how to change the parts of 601 Here is a more elaborate example, showing how to change the parts of
@@ -585,72 +604,74 @@ the scroll bar:
585@smallexample 604@smallexample
586style "scroll" 605style "scroll"
587@{ 606@{
588 fg[NORMAL] = "red"@ @ @ @ @ # The arrow color. 607 fg[NORMAL] = "red"@ @ @ @ @ # @r{The arrow color.}
589 bg[NORMAL] = "yellow"@ @ # The thumb and background around the arrow. 608 bg[NORMAL] = "yellow"@ @ # @r{The thumb and background around the arrow.}
590 bg[ACTIVE] = "blue"@ @ @ @ # The trough color. 609 bg[ACTIVE] = "blue"@ @ @ @ # @r{The trough color.}
591 bg[PRELIGHT] = "white"@ # The thumb color when the mouse is over it. 610 bg[PRELIGHT] = "white"@ # @r{The thumb color when the mouse is over it.}
592@} 611@}
593 612
594widget "*verticalScrollBar*" style "scroll" 613widget "*verticalScrollBar*" style "scroll"
595@end smallexample 614@end smallexample
596 615
597 There are some things you can set without using any style or widget name, 616 There are also parameters that affect GTK as a whole. For example,
598which affect GTK as a whole. Most of these are poorly documented, but can 617the property @code{gtk-font-name} sets the default font for GTK. You
599be found in the `Properties' section of the documentation page for 618must use Pango font names (@pxref{GTK styles}). A GTK resources file
600@code{GtkSetting}, in the GTK document references below. 619that just sets a default font looks like this:
601
602One property of interest is @code{gtk-font-name} which sets the default
603font for GTK; you must use Pango font names (@pxref{GTK styles}). A
604@file{~/.gtkrc-2.0} file that just sets a default font looks like this:
605 620
606@smallexample 621@smallexample
607gtk-font-name = "courier 12" 622gtk-font-name = "courier 12"
608@end smallexample 623@end smallexample
609 624
610 625 The GTK resources file is fully described in the GTK API document.
611 If GTK at your site is installed under @var{prefix}, 626This can be found in
612the resource file syntax is fully described in the GTK API 627@file{@var{prefix}/share/gtk-doc/html/gtk/gtk-resource-files.html},
613document 628where @file{prefix} is the directory in which the GTK libraries were
614@file{@var{prefix}/share/gtk-doc/html/gtk/gtk-resource-files.html}. 629installed (usually @file{/usr} or @file{/usr/local}). You can also
615@var{prefix} is usually @file{/usr} or @file{/usr/local}. 630find the document online, at
616You can find the same document online at
617@uref{http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html}. 631@uref{http://developer.gnome.org/doc/API/2.0/gtk/gtk-Resource-Files.html}.
618 632
619
620@menu 633@menu
621* GTK widget names:: How widgets in GTK are named in general. 634* GTK widget names:: How widgets in GTK are named in general.
622* GTK names in Emacs:: GTK widget names in Emacs. 635* GTK Names in Emacs:: GTK widget names in Emacs.
623* GTK styles:: What can be customized in a GTK widget. 636* GTK styles:: What can be customized in a GTK widget.
624@end menu 637@end menu
625 638
626
627@node GTK widget names 639@node GTK widget names
628@appendixsubsec GTK widget names 640@appendixsubsec GTK widget names
629@cindex GTK widget names 641@cindex GTK widget names
630 642
631 Widgets are specified by widget class or by widget name. 643 A GTK widget is specified by its @dfn{widget class} and
632The widget class is the type of the widget, for example @code{GtkMenuBar}. 644@dfn{widget name}. The widget class is the type of the widget: for
633The widget name is the name given to a specific widget within a program. 645example, @code{GtkMenuBar}. The widget name is the name given to a
634A widget always have a class but it is not mandatory to give a name to 646specific widget. A widget always has a class, but need not have a
635a widget. Absolute names are sequences of widget names or 647name.
636widget classes, corresponding to hierarchies of widgets embedded within
637other widgets. For example, if a @code{GtkWindow} contains a @code{GtkVBox}
638which in turn contains a @code{GtkMenuBar}, the absolute class name
639is @code{GtkWindow.GtkVBox.GtkMenuBar}.
640 648
641@noindent 649 @dfn{Absolute names} are sequences of widget names or widget
642If the widgets are named ``top'', ``box'' and ``menubar'', the absolute 650classes, corresponding to hierarchies of widgets embedded within
643widget name is @code{top.box.menubar}, 651other widgets. For example, if a @code{GtkWindow} named @code{top}
652contains a @code{GtkVBox} named @code{box}, which in turn contains
653a @code{GtkMenuBar} called @code{menubar}, the absolute class name
654of the menu-bar widget is @code{GtkWindow.GtkVBox.GtkMenuBar}, and
655its absolute widget name is @code{top.box.menubar}.
644 656
645 When assigning a style to a widget, you can use the absolute class 657 When assigning a style to a widget, you can use the absolute class
646name or the absolute widget name. 658name or the absolute widget name.
647There are two commands: @code{widget_class} will assign a style to 659
648widgets, matching only against the absolute class name. 660 There are two commands to specify changes for widgets:
649The command @code{widget} will match the absolute widget name, 661
650but if there is no name for a widget in the hierarchy, the class is matched. 662@table @asis
651These commands require the absolute name and the style name to be 663@item @code{widget_class}
652within double quotes. These commands are written at the top level in a 664specifies a style for widgets based on the absolute class name.
653@file{~/.gtkrc-2.0} file, like this: 665
666@item @code{widget}
667specifies a style for widgets based on the absolute class name,
668or just the class.
669@end table
670
671@noindent
672You must specify the class and the style in double-quotes, and put
673these commands at the top level in the GTK customization file, like
674this:
654 675
655@smallexample 676@smallexample
656style "menufont" 677style "menufont"
@@ -662,18 +683,17 @@ widget "top.box.menubar" style "menufont"
662widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "menufont" 683widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "menufont"
663@end smallexample 684@end smallexample
664 685
665 686 Matching of absolute names uses shell wildcard syntax: @samp{*}
666 Matching of absolute names is done with shell ``glob'' syntax, that is 687matches zero or more characters and @samp{?} matches one character.
667@samp{*} matches zero or more characters and @samp{?} matches one character. 688This example assigns @code{base_style} to all widgets:
668So the following would assign @code{base_style} to all widgets:
669 689
670@smallexample 690@smallexample
671widget "*" style "base_style" 691widget "*" style "base_style"
672@end smallexample 692@end smallexample
673 693
674 Given the absolute class name @code{GtkWindow.GtkVBox.GtkMenuBar} 694 Given the absolute class name @code{GtkWindow.GtkVBox.GtkMenuBar}
675and the corresponding absolute widget name @code{top.box.menubar}, 695and the corresponding absolute widget name @code{top.box.menubar}, all
676the following all assign @code{my_style} to the menu bar: 696these examples specify @code{my_style} for the menu bar:
677 697
678@smallexample 698@smallexample
679widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "my_style" 699widget_class "GtkWindow.GtkVBox.GtkMenuBar" style "my_style"
@@ -685,17 +705,17 @@ widget "*menubar" style "my_style"
685widget "*menu*" style "my_style" 705widget "*menu*" style "my_style"
686@end smallexample 706@end smallexample
687 707
688@node GTK names in Emacs 708@node GTK Names in Emacs
689@appendixsubsec GTK names in Emacs 709@appendixsubsec GTK Widget Names in Emacs
690@cindex GTK widget names 710@cindex GTK widget names
691@cindex GTK widget classes 711@cindex GTK widget classes
692 712
693 In Emacs the top level widget for a frame is a @code{GtkWindow} that 713 In Emacs, the top level widget for a frame is a @code{GtkWindow}
694contains a @code{GtkVBox}. The @code{GtkVBox} contains the 714that contains a @code{GtkVBox}. The @code{GtkVBox} contains the
695@code{GtkMenuBar} and a @code{GtkFixed} widget. 715@code{GtkMenuBar} and a @code{GtkFixed} widget. The vertical scroll
696The vertical scroll bars, @code{GtkVScrollbar}, 716bars, @code{GtkVScrollbar}, are contained in the @code{GtkFixed}
697are contained in the @code{GtkFixed} widget. 717widget. The text you write in Emacs is drawn in the @code{GtkFixed}
698The text you write in Emacs is drawn in the @code{GtkFixed} widget. 718widget.
699 719
700 Dialogs in Emacs are @code{GtkDialog} widgets. The file dialog is a 720 Dialogs in Emacs are @code{GtkDialog} widgets. The file dialog is a
701@code{GtkFileSelection} widget. 721@code{GtkFileSelection} widget.
@@ -759,14 +779,14 @@ widget "*emacs-filedialog* style "my_file_style"
759widget "*emacs-menuitem* style "my_menu_style" 779widget "*emacs-menuitem* style "my_menu_style"
760@end smallexample 780@end smallexample
761 781
762 An alternative is to put customization into @file{~/.emacs.d/gtkrc}. 782 If you specify a customization in @file{~/.emacs.d/gtkrc}, then it
763This file is only read by Emacs, so anything in @file{~/.emacs.d/gtkrc} 783automatically applies only to Emacs, since other programs don't read
764affects Emacs but leaves other applications unaffected. 784that file. For example, the drop down menu in the file dialog can not
765For example, the drop down menu in the file dialog can not 785be customized by any absolute widget name, only by an absolute class
766be customized by any absolute widget name, only by an absolute 786name. This is because the widgets in the drop down menu do not
767class name. This is so because the widgets in the drop down menu does not 787have names and the menu is not contained in the Emacs GtkWindow. To
768have names and the menu is not contained in the Emacs GtkWindow. 788have all menus in Emacs look the same, use this in
769To have all menus in Emacs look the same, use this in @file{~/.emacs.d/gtkrc}: 789@file{~/.emacs.d/gtkrc}:
770 790
771@smallexample 791@smallexample
772widget_class "*Menu*" style "my_menu_style" 792widget_class "*Menu*" style "my_menu_style"
@@ -777,16 +797,16 @@ widget_class "*Menu*" style "my_menu_style"
777@cindex GTK styles 797@cindex GTK styles
778 798
779 In a GTK style you specify the appearance widgets shall have. You 799 In a GTK style you specify the appearance widgets shall have. You
780can specify foreground and background color, background pixmap and font. 800can specify foreground and background color, background pixmap and
781The edit widget (where you edit the text) in Emacs is a GTK widget, 801font. The edit widget (where you edit the text) in Emacs is a GTK
782but trying to specify a style for the edit widget will have no effect. 802widget, but trying to specify a style for the edit widget will have no
783This is so that Emacs compiled for GTK is compatible with Emacs compiled 803effect. This is so that Emacs compiled for GTK is compatible with
784for other X toolkits. The settings for foreground, background and font 804Emacs compiled for other X toolkits. The settings for foreground,
785for the edit widget is taken from the X resources; @pxref{Resources}. 805background and font for the edit widget is taken from the X resources;
786Here is an example of two style declarations, ``default'' and ``ruler'': 806@pxref{Resources}. Here is an example of two style declarations,
807@samp{default} and @samp{ruler}:
787 808
788@smallexample 809@smallexample
789
790pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" 810pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps"
791 811
792style "default" 812style "default"
@@ -821,12 +841,13 @@ style "ruler" = "default"
821 841
822@end smallexample 842@end smallexample
823 843
824 The style ``ruler'' inherits from ``default''. This way you can build 844 The style @samp{ruler} inherits from @samp{default}. This way you can build
825on existing styles. The syntax for fonts and colors is described below. 845on existing styles. The syntax for fonts and colors is described below.
826 846
827 As this example shows, it is possible to specify several values 847 As this example shows, it is possible to specify several values for
828for foreground and background depending on which state the widget has. 848foreground and background depending on the widget's @dfn{state}. The
829The possible states are 849possible states are:
850
830@table @code 851@table @code
831@item NORMAL 852@item NORMAL
832This is the default state for widgets. 853This is the default state for widgets.
@@ -846,71 +867,73 @@ be selected text or items selected in a list.
846There is no place in Emacs where this setting has any effect. 867There is no place in Emacs where this setting has any effect.
847@item INSENSITIVE 868@item INSENSITIVE
848This is the state for widgets that are visible, but they can not be 869This is the state for widgets that are visible, but they can not be
849manipulated like they normally can. For example, buttons that can't be 870manipulated in the usual way---for example, buttons that can't be
850pressed and menu items that can't be selected. 871pressed, and disabled menu items. To display disabled menu items in
851Text for menu items that are not available can be set to yellow with 872yellow, use @code{fg[INSENSITIVE] = "yellow"}.
852@code{fg[INSENSITIVE] = "yellow"}.
853@end table 873@end table
854 874
855Here are the things that can go in a style declaration: 875 Here are the things that can go in a style declaration:
856 876
857@table @code 877@table @code
858@item bg[@var{state}] = @var{color} 878@item bg[@var{state}] = @var{color}
859This is the background color widgets use. This background is not used for 879This specifies the background color for the widget. Note that
860editable text, use @code{base} for that. 880editable text doesn't use @code{bg}; it uses @code{base} instead.
861 881
862@item base[@var{state}] = @var{color} 882@item base[@var{state}] = @var{color}
863This is the background color for editable text. 883This specifies the background color for editable text. In Emacs, this
864In Emacs, this color is used for the background of the text fields in the 884color is used for the background of the text fields in the file
865file dialog. 885dialog.
866 886
867@item bg_pixmap[@var{state}] = "@var{pixmap}" 887@item bg_pixmap[@var{state}] = "@var{pixmap}"
868You can specify a pixmap to be used instead of the background color. 888This specifies an image background (instead of a background color).
869@var{pixmap} is a file name. GTK can use a number of file formats, 889@var{pixmap} should be the image file name. GTK can use a number of
870including XPM, XBM, GIF, JPEG and PNG. If you want a widget to use the same 890image file formats, including XPM, XBM, GIF, JPEG and PNG. If you
871pixmap as its parent, use @samp{<parent>}. If you don't want any 891want a widget to use the same image as its parent, use
872pixmap use @samp{<none>}. Using @samp{<none>} can be useful 892@samp{<parent>}. If you don't want any image, use @samp{<none>}.
873if your style inherits a style that does specify a pixmap. 893@samp{<none>} is the way to cancel a background image inherited from a
874 894parent style.
875 GTK looks for the pixmap in directories specified in @code{pixmap_path}. 895
876It is not possible to refer to a file by its absolute path name. 896You can't specify the file by its absolute file name. GTK looks for
877@code{pixmap_path} is a colon-separated list of directories within double 897the pixmap file in directories specified in @code{pixmap_path}.
878quotes, specified at the top level in a @file{gtkrc} file (i.e. not inside 898@code{pixmap_path} is a colon-separated list of directories within
879a style definition; see example above): 899double quotes, specified at the top level in a @file{gtkrc} file
900(i.e. not inside a style definition; see example above):
880 901
881@smallexample 902@smallexample
882pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps" 903pixmap_path "/usr/share/pixmaps:/usr/include/X11/pixmaps"
883@end smallexample 904@end smallexample
884 905
885@item fg[@var{state}] = @var{color} 906@item fg[@var{state}] = @var{color}
886This is the foreground color widgets use. This is the color 907This specifies the foreground color for widgets to use. It is the
887of text in menus and buttons. It is also the color for the arrows in the 908color of text in menus and buttons, and the color for the arrows in
888scroll bar. For editable text, use @code{text}. 909the scroll bar. For editable text, use @code{text}.
889 910
890@item text[@var{state}] = @var{color} 911@item text[@var{state}] = @var{color}
891This is the color for editable text. In Emacs, this color is used for the 912This is the color for editable text. In Emacs, this color is used for the
892text fields in the file dialog. 913text fields in the file dialog.
893 914
894@item font_name = "@var{font}" 915@item font_name = "@var{font}"
895This is the font a widget shall use. @var{font} is a Pango font name, 916This specifies the the font for text in the widget. @var{font} is a
896for example ``Sans Italic 10'', ``Helvetica Bold 12'', ``Courier 14'', 917Pango font name, for example @samp{Sans Italic 10}, @samp{Helvetica
897``Times 18''. See below for exact syntax. The names are case insensitive. 918Bold 12}, @samp{Courier 14}, @samp{Times 18}. See below for exact
919syntax. The names are case insensitive.
898@end table 920@end table
899 921
900 Colors are specified in three ways, a name, a hexadecimal form or 922 There are three ways to specify a color: by name, in hexadecimal
901an RGB triplet. 923form, and with an RGB triplet.
902 924
903@noindent 925@noindent
904A color name is written within double quotes, for example @code{"red"}. 926A color name is written within double quotes, for example @code{"red"}.
905 927
906@noindent 928@noindent
907A hexadecimal form is written within double quotes. There are four forms, 929Hexadecimal form is the same as in X:
908@code{#rrrrggggbbbb}, @code{#rrrgggbbb}, 930@code{#@var{rrrr}@var{gggg}@var{bbbb}}, where all three color specs
909@code{#rrggbb}, or @code{#rgb}. In each of these r, g and b are hex digits. 931must have the same number of hex digits (1, 2, 3 or 4).
910 932
911@noindent 933@noindent
912An RGB triplet looks like @code{@{ r, g, b @}}, where r, g and b are either 934An RGB triplet looks like @code{@{ @var{r}, @var{g}, @var{b} @}},
913integers in the range 0-65535 or floats in the range 0.0-1.0. 935where @var{r}, @var{g} and @var{b} are either integers in the range
9360-65535 or floats in the range 0.0-1.0.
914 937
915 Pango font names have the form ``@var{family-list} @var{style-options} 938 Pango font names have the form ``@var{family-list} @var{style-options}
916@var{size}''. 939@var{size}''.
@@ -935,8 +958,9 @@ these is @code{normal}.
935 958
936@noindent 959@noindent
937A `style' corresponds to the fourth part of an X font name. In X font 960A `style' corresponds to the fourth part of an X font name. In X font
938names it is the character ``r'', ``i'' or ``o''; in Pango font names the 961names it is the character @samp{r}, @samp{i} or @samp{o}; in Pango
939corresponding values are @code{normal}, @code{italic}, or @code{oblique}. 962font names the corresponding values are @code{normal}, @code{italic},
963or @code{oblique}.
940 964
941@noindent 965@noindent
942A `variant' is either @code{normal} or @code{small-caps}. 966A `variant' is either @code{normal} or @code{small-caps}.