aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorStefan Monnier2010-12-10 19:13:08 -0500
committerStefan Monnier2010-12-10 19:13:08 -0500
commit2c302df3a13236bfbf8ea1b771d13618fcda8d71 (patch)
treef26dc9f22861dc37610de319d05255de058c221b /doc
parent0c747cb143fa227e78f350ac353d703f489209df (diff)
parent175069efeb080517afefdd44a06f7a779ea8c25c (diff)
downloademacs-2c302df3a13236bfbf8ea1b771d13618fcda8d71.tar.gz
emacs-2c302df3a13236bfbf8ea1b771d13618fcda8d71.zip
Merge from trunk
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/ChangeLog49
-rw-r--r--doc/emacs/basic.texi5
-rw-r--r--doc/emacs/display.texi42
-rw-r--r--doc/emacs/emacs.texi5
-rw-r--r--doc/emacs/macos.texi89
-rw-r--r--doc/emacs/maintaining.texi374
-rw-r--r--doc/emacs/msdog.texi26
-rw-r--r--doc/emacs/mule.texi18
-rw-r--r--doc/emacs/rmail.texi3
-rw-r--r--doc/emacs/vc1-xtra.texi6
-rw-r--r--doc/lispintro/ChangeLog5
-rw-r--r--doc/lispintro/emacs-lisp-intro.texi147
-rw-r--r--doc/lispref/ChangeLog74
-rw-r--r--doc/lispref/Makefile.in4
-rw-r--r--doc/lispref/buffers.texi18
-rw-r--r--doc/lispref/commands.texi17
-rw-r--r--doc/lispref/customize.texi2
-rw-r--r--doc/lispref/display.texi14
-rw-r--r--doc/lispref/frames.texi9
-rw-r--r--doc/lispref/functions.texi2
-rw-r--r--doc/lispref/help.texi14
-rw-r--r--doc/lispref/loading.texi10
-rw-r--r--doc/lispref/maps.texi12
-rw-r--r--doc/lispref/nonascii.texi7
-rw-r--r--doc/lispref/numbers.texi8
-rw-r--r--doc/lispref/objects.texi1
-rw-r--r--doc/lispref/strings.texi63
-rw-r--r--doc/lispref/symbols.texi2
-rw-r--r--doc/lispref/text.texi47
-rw-r--r--doc/lispref/variables.texi18
-rw-r--r--doc/misc/ChangeLog308
-rw-r--r--doc/misc/Makefile.in14
-rw-r--r--doc/misc/calc.texi21
-rw-r--r--doc/misc/cc-mode.texi11
-rw-r--r--doc/misc/dbus.texi10
-rw-r--r--doc/misc/ediff.texi7
-rw-r--r--doc/misc/edt.texi21
-rw-r--r--doc/misc/emacs-mime.texi4
-rw-r--r--doc/misc/epa.texi22
-rw-r--r--doc/misc/gnus-coding.texi34
-rw-r--r--doc/misc/gnus-news.texi6
-rw-r--r--doc/misc/gnus.texi197
-rw-r--r--doc/misc/makefile.w32-in10
-rw-r--r--doc/misc/message.texi6
-rw-r--r--doc/misc/mh-e.texi10
-rw-r--r--doc/misc/nxml-mode.texi59
-rw-r--r--doc/misc/org.texi963
-rw-r--r--doc/misc/tramp.texi38
-rw-r--r--doc/misc/trampver.texi6
49 files changed, 1839 insertions, 999 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 5c0ff3da206..e390c6cbc16 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,52 @@
12010-11-27 Bob Rogers <rogers-emacs@rgrjr.dyndns.org>
2
3 * maintaining.texi (VC With A Locking VCS, VC Directory Commands):
4 * vc1-xtra.texi (Customizing VC, General VC Options): Small fixes.
5
62010-11-27 Chong Yidong <cyd@stupidchicken.com>
7
8 * maintaining.texi (Version Control Systems): Fix repeated sentence.
9 Suggested by Štěpán Němec.
10
112010-11-27 Chong Yidong <cyd@stupidchicken.com>
12
13 * maintaining.texi (Version Control): Say "commit", not "check in".
14 (Version Control Systems): Simplify descriptions.
15 (VCS Merging, VCS Changesets, VCS Repositories): New nodes, split from
16 VCS Concepts.
17 (VC Mode Line): Update example.
18 (Old Revisions): Document revert-buffer for vc-diff.
19 (Log Buffer): Promote to a subsection. Document header lines.
20
21 * macos.texi (Mac / GNUstep Basics): Document
22 ns-right-alternate-modifier.
23
24 * emacs.texi (Top): Update node listing.
25
262010-11-13 Eli Zaretskii <eliz@gnu.org>
27
28 * rmail.texi (Rmail Coding): Characters with no fonts are not
29 necessarily displayed as empty boxes.
30
31 * mule.texi (Language Environments, Fontsets): Characters with no
32 fonts are not necessarily displayed as empty boxes.
33
34 * display.texi (Text Display): Document display of glyphless
35 characters.
36
372010-11-13 Glenn Morris <rgm@gnu.org>
38
39 * basic.texi (Position Info): Add M-x count-words-region.
40
412010-11-11 Glenn Morris <rgm@gnu.org>
42
43 * msdog.texi (ls in Lisp): Update for ls-lisp changes.
44
452010-11-09 Eli Zaretskii <eliz@gnu.org>
46
47 * msdog.texi (Windows HOME): Add information regarding startup
48 directory when invoking Emacs from a desktop shortcut. (bug#7300)
49
12010-10-11 Glenn Morris <rgm@gnu.org> 502010-10-11 Glenn Morris <rgm@gnu.org>
2 51
3 * Makefile.in (MAKEINFO): Add explicit -I$srcdir. 52 * Makefile.in (MAKEINFO): Add explicit -I$srcdir.
diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi
index a4751e7f99d..35c41a01097 100644
--- a/doc/emacs/basic.texi
+++ b/doc/emacs/basic.texi
@@ -537,6 +537,8 @@ Toggle automatic display of the current line number or column number.
537Display the number of lines in the current region. Normally bound to 537Display the number of lines in the current region. Normally bound to
538@kbd{M-=}, except in a few specialist modes. @xref{Mark}, for 538@kbd{M-=}, except in a few specialist modes. @xref{Mark}, for
539information about the region. 539information about the region.
540@item M-x count-words-region
541Display the number of words in the current region.
540@item C-x = 542@item C-x =
541Display the character code of character after point, character position of 543Display the character code of character after point, character position of
542point, and column of point (@code{what-cursor-position}). 544point, and column of point (@code{what-cursor-position}).
@@ -743,6 +745,3 @@ additional times, to delete a total of 80 characters, by typing @kbd{C-x
743z z z}. The first @kbd{C-x z} repeats the command once, and each 745z z z}. The first @kbd{C-x z} repeats the command once, and each
744subsequent @kbd{z} repeats it once again. 746subsequent @kbd{z} repeats it once again.
745 747
746@ignore
747 arch-tag: cda8952a-c439-41c1-aecf-4bc0d6482956
748@end ignore
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 3b5e7b0b955..cd08a524f50 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -1136,6 +1136,48 @@ prefix these characters with an escape character.
1136by means of a display table. @xref{Display Tables,, Display Tables, 1136by means of a display table. @xref{Display Tables,, Display Tables,
1137elisp, The Emacs Lisp Reference Manual}. 1137elisp, The Emacs Lisp Reference Manual}.
1138 1138
1139@cindex glyphless characters
1140@cindex characters with no font glyphs
1141 On graphics displays, some characters could have no glyphs in any of
1142the fonts available to Emacs. On text terminals, some characters
1143could be impossible to encode with the terminal coding system
1144(@pxref{Terminal Coding}). Emacs can display such @dfn{glyphless}
1145characters using one of the following methods:
1146
1147@table @code
1148@item zero-width
1149Don't display the character.
1150
1151@item thin-space
1152Display a thin space, 1-pixel wide on graphics displays or 1-character
1153wide on text terminals.
1154
1155@item empty-box
1156Display an empty box.
1157
1158@item acronym
1159Display the acronym of the character's name (such as @sc{zwnj} or
1160@sc{rlm}) in a box.
1161
1162@item hex-code
1163Display the Unicode codepoint of the character in hexadecimal
1164notation, in a box.
1165@end table
1166
1167@noindent
1168@cindex @code{glyphless-char} face
1169With the exception of @code{zero-width}, all other methods draw these
1170characters in a special face @code{glyphless-char}, which you can
1171customize.
1172
1173@vindex glyphless-char-display-control
1174@vindex char-acronym-table
1175To control what glyphless characters are displayed using which method,
1176customize the variable @code{glyphless-char-display-control}; see its
1177doc string for the details. For even finer control, set the elements
1178of 2 char-tables: @code{glyphless-char-display} and
1179@code{char-acronym-table}.
1180
1139@node Cursor Display 1181@node Cursor Display
1140@section Displaying the Cursor 1182@section Displaying the Cursor
1141 1183
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 1ece1ea6dd8..65a565dbe8e 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -771,6 +771,7 @@ Version Control
771* Introduction to VC:: How version control works in general. 771* Introduction to VC:: How version control works in general.
772* VC Mode Line:: How the mode line shows version control status. 772* VC Mode Line:: How the mode line shows version control status.
773* Basic VC Editing:: How to edit a file under version control. 773* Basic VC Editing:: How to edit a file under version control.
774* Log Buffer:: Features available in log entry buffers.
774* Old Revisions:: Examining and comparing old versions. 775* Old Revisions:: Examining and comparing old versions.
775* Secondary VC Commands:: The commands used a little less frequently. 776* Secondary VC Commands:: The commands used a little less frequently.
776* VC Directory Mode:: Listing files managed by version control. 777* VC Directory Mode:: Listing files managed by version control.
@@ -785,6 +786,9 @@ Introduction to Version Control
785* Why Version Control?:: Understanding the problems it addresses. 786* Why Version Control?:: Understanding the problems it addresses.
786* Version Control Systems:: Supported version control back-end systems. 787* Version Control Systems:: Supported version control back-end systems.
787* VCS Concepts:: Words and concepts related to version control. 788* VCS Concepts:: Words and concepts related to version control.
789* VCS Merging:: How file conflicts are handled.
790* VCS Changesets:: Changesets in version control.
791* VCS Repositories:: Where version control repositories are stored.
788* Types of Log File:: The VCS log in contrast to the ChangeLog. 792* Types of Log File:: The VCS log in contrast to the ChangeLog.
789 793
790Basic Editing under Version Control 794Basic Editing under Version Control
@@ -792,7 +796,6 @@ Basic Editing under Version Control
792* VC With A Merging VCS:: Without locking: default mode for CVS. 796* VC With A Merging VCS:: Without locking: default mode for CVS.
793* VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS. 797* VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS.
794* Advanced C-x v v:: Advanced features available with a prefix argument. 798* Advanced C-x v v:: Advanced features available with a prefix argument.
795* Log Buffer:: Features available in log entry buffers.
796 799
797The Secondary Commands of VC 800The Secondary Commands of VC
798 801
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi
index 6fa5666ba6f..044a722a07a 100644
--- a/doc/emacs/macos.texi
+++ b/doc/emacs/macos.texi
@@ -8,23 +8,22 @@
8@cindex Macintosh 8@cindex Macintosh
9@cindex GNUstep 9@cindex GNUstep
10 10
11 This section briefly describes the peculiarities of using Emacs built with 11 This section describes the peculiarities of using Emacs built with
12the GNUstep libraries on GNU/Linux or other operating systems, or on Mac OS X 12the GNUstep libraries on GNU/Linux or other operating systems, or on
13with native window system support. For Mac OS X, Emacs can be built either 13Mac OS X with native window system support. On Mac OS X, Emacs can be
14without window system support, with X11, or with the Cocoa interface. This 14built either without window system support, with X11, or with the
15section only applies to the Cocoa build. Emacs 23 does not support Mac OS 15Cocoa interface; this section only applies to the Cocoa build. Emacs
16Classic. 16does not support earlier versions of Mac OS.
17 17
18 Emacs, when built on Mac OS X, uses the Cocoa application interface. For 18 For various historical and technical reasons, Emacs uses the term
19various historical and technical reasons, Emacs uses the term @samp{Nextstep} 19@samp{Nextstep} internally, instead of ``Cocoa'' or ``Mac OS X''; for
20internally, instead of ``Cocoa'' or ``Mac OS X''; for instance, most of the 20instance, most of the commands and variables described in this section
21commands and variables described in the following sections begin with 21begin with @samp{ns-}, which is short for @samp{Nextstep}. NeXTstep
22@samp{ns-}, which is short for @samp{Nextstep}. NeXTstep was an application 22was an application interface released by NeXT Inc during the 1980s, of
23interface released by NeXT Inc during the 1980s, of which Cocoa is a direct 23which Cocoa is a direct descendant. Apart from Cocoa, there is
24descendant. Apart from Cocoa, there is another NeXTstep-style system: 24another NeXTstep-style system: GNUstep, which is free software. As of
25GNUstep, which is free software. As of this writing, the GNUstep support is 25this writing, the GNUstep support is alpha status (@pxref{GNUstep
26alpha status (@pxref{GNUstep Support}), but we hope to improve it in the 26Support}), but we hope to improve it in the future.
27future.
28 27
29@menu 28@menu
30* Mac / GNUstep Basics:: Basic Emacs usage under GNUstep or Mac OS. 29* Mac / GNUstep Basics:: Basic Emacs usage under GNUstep or Mac OS.
@@ -37,19 +36,24 @@ future.
37@section Basic Emacs usage under Mac OS and GNUstep 36@section Basic Emacs usage under Mac OS and GNUstep
38 37
39 By default, the @key{alt} and @key{option} keys are the same as 38 By default, the @key{alt} and @key{option} keys are the same as
40@key{Meta} when running under Mac OS. The Mac @key{Cmd} key is the 39@key{Meta}. The Mac @key{Cmd} key is the same as @key{Super}, and
41same as @key{Super}, and Emacs provides a set of keybindings using 40Emacs provides a set of keybindings using this modifier key that mimic
42this modifier key that mimic other Mac / GNUstep applications (@pxref{Mac / 41other Mac / GNUstep applications (@pxref{Mac / GNUstep Events}). You
43GNUstep Events}). You can change these bindings in the usual way (@pxref{Key 42can change these bindings in the usual way (@pxref{Key Bindings}).
44Bindings}). 43
45 44 The variable @code{ns-right-alternate-modifier} controls the
46 The standard Mac / GNUstep font and color panels are accessible via Lisp commands. 45behavior of the right @key{alt} and @key{option} keys. These keys
47 To use the color panel, drag from it to an Emacs frame to change the 46behave like the left-hand keys if the value is @code{left} (the
48foreground color of the face at that position (if the @key{shift} key 47default). A value of @code{control}, @code{meta}, @code{alt},
49is held down, it changes the background color instead). To discard the 48@code{super}, or @code{hyper} makes them behave like the corresponding
50settings, create a new frame and close the altered one. 49modifier keys; a value of @code{none} tells Emacs to ignore them.
51@c [unclear if the following holds.] 50
52@c To finalize the settings for either color or font, choose @samp{Save Options} in the @samp{Options} menu. 51 The standard Mac / GNUstep font and color panels are accessible via
52Lisp commands. To use the color panel, drag from it to an Emacs frame
53to change the foreground color of the face at that position (if the
54@key{shift} key is held down, it changes the background color
55instead). To discard the settings, create a new frame and close the
56altered one.
53 57
54 @key{S-Mouse-1} (i.e., clicking the left mouse button 58 @key{S-Mouse-1} (i.e., clicking the left mouse button
55while holding down the @key{Shift} key) adjusts the region to the 59while holding down the @key{Shift} key) adjusts the region to the
@@ -58,7 +62,7 @@ it does not pop up a menu for changing the default face, as
58@key{S-Mouse-1} normally does (@pxref{Temporary Face Changes}). This 62@key{S-Mouse-1} normally does (@pxref{Temporary Face Changes}). This
59change makes Emacs behave more like other Mac / GNUstep applications. 63change makes Emacs behave more like other Mac / GNUstep applications.
60 64
61 When you open or save files using the menus, or using the 65 When you open or save files using the menus, or using the
62@key{Cmd-o} and @key{Cmd-S} bindings, Emacs uses graphical file 66@key{Cmd-o} and @key{Cmd-S} bindings, Emacs uses graphical file
63dialogs to read file names. However, if you use the regular Emacs key 67dialogs to read file names. However, if you use the regular Emacs key
64sequences, such as @key{C-x C-f}, Emacs uses the minibuffer to read 68sequences, such as @key{C-x C-f}, Emacs uses the minibuffer to read
@@ -110,7 +114,7 @@ dragging will alter the foreground color. Shift dragging will alter the
110background color. 114background color.
111 115
112@c To make the changes permanent select the "Save Options" 116@c To make the changes permanent select the "Save Options"
113@c item in the "Options" menu, or run @code{menu-bar-options-save}. 117@c item in the "Options" menu, or run @code{menu-bar-options-save}.
114 118
115Useful in this context is the listing of all faces obtained by @key{M-x} 119Useful in this context is the listing of all faces obtained by @key{M-x}
116@code{list-faces-display}. 120@code{list-faces-display}.
@@ -193,7 +197,7 @@ font are stored in the variables @code{ns-input-font} and
193@code{ns-input-fontsize}, respectively. 197@code{ns-input-fontsize}, respectively.
194 198
195@item ns-power-off 199@item ns-power-off
196This event occurs when the user logs out and Emacs is still running, or when 200This event occurs when the user logs out and Emacs is still running, or when
197`Quit Emacs' is chosen from the application menu. 201`Quit Emacs' is chosen from the application menu.
198The default behavior is to save all file-visiting buffers. 202The default behavior is to save all file-visiting buffers.
199@end table 203@end table
@@ -208,26 +212,9 @@ and return the result as a string. You can also use the Lisp function
208services and receive the results back. Note that you may need to 212services and receive the results back. Note that you may need to
209restart Emacs to access newly-available services. 213restart Emacs to access newly-available services.
210 214
211
212@node GNUstep Support, , Mac / GNUstep Events, Mac OS / GNUstep 215@node GNUstep Support, , Mac / GNUstep Events, Mac OS / GNUstep
213@section GNUstep Support 216@section GNUstep Support
214 217
215Emacs can be built and run under GNUstep, however there are still some 218Emacs can be built and run under GNUstep, but there are still some
216issues to be addressed. Interested developers should contact 219issues to be addressed. Interested developers should contact
217@email{emacs-devel@@gnu.org}. 220@email{emacs-devel@@gnu.org}.
218
219@c Presumably no longer relevant since CANNOT_DUMP removed 2009-05-06:
220@ignore
221In particular, it may be necessary to run @samp{make bootstrap} with a
222plain X configuration, then @samp{make clean} and @samp{./configure
223--with-ns} followed by @samp{make install}.
224
225Currently CANNOT_DUMP is automatically enabled in GNUstep configurations,
226because the unex file(s) for GNUstep, mainly @samp{unexelf.c}, have not been
227updated yet with the ``zone'' code in and related to @samp{unexmacosx.c}.
228@end ignore
229
230
231@ignore
232 arch-tag: a822c2ab-4273-4997-927e-c153bb71dcf6
233@end ignore
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index b407f5b9c99..cf504b6be2a 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -24,20 +24,20 @@ programs.
24@section Version Control 24@section Version Control
25@cindex version control 25@cindex version control
26 26
27 A @dfn{version control system} is a package that can record multiple 27 A @dfn{version control system} is a program that can record multiple
28versions of a source file, storing information such as the creation 28versions of a source file, storing information such as the creation
29time of each version, who created it, and a description of what was 29time of each version, who made it, and a description of what was
30changed in that version. 30changed.
31 31
32 The Emacs version control interface is called VC. Its commands work 32 The Emacs version control interface is called @dfn{VC}. VC commands
33with several different version control systems; currently, it supports 33work with several different version control systems; currently, it
34GNU Arch, Bazaar, CVS, Git, Mercurial, Monotone, RCS, SCCS/CSSC, and 34supports GNU Arch, Bazaar, CVS, Git, Mercurial, Monotone, RCS,
35Subversion. Of these, the GNU project distributes CVS, GNU Arch, RCS, 35SCCS/CSSC, and Subversion. Of these, the GNU project distributes CVS,
36and Bazaar. 36Arch, RCS, and Bazaar.
37 37
38 VC is enabled automatically whenever you visit a file that is 38 VC is enabled automatically whenever you visit a file governed by a
39governed by a version control system. To disable VC entirely, set the 39version control system. To disable VC entirely, set the customizable
40customizable variable @code{vc-handled-backends} to @code{nil} 40variable @code{vc-handled-backends} to @code{nil}
41@iftex 41@iftex
42(@pxref{Customizing VC,,,emacs-xtra, Specialized Emacs Features}). 42(@pxref{Customizing VC,,,emacs-xtra, Specialized Emacs Features}).
43@end iftex 43@end iftex
@@ -49,6 +49,7 @@ customizable variable @code{vc-handled-backends} to @code{nil}
49* Introduction to VC:: How version control works in general. 49* Introduction to VC:: How version control works in general.
50* VC Mode Line:: How the mode line shows version control status. 50* VC Mode Line:: How the mode line shows version control status.
51* Basic VC Editing:: How to edit a file under version control. 51* Basic VC Editing:: How to edit a file under version control.
52* Log Buffer:: Features available in log entry buffers.
52* Old Revisions:: Examining and comparing old versions. 53* Old Revisions:: Examining and comparing old versions.
53* Secondary VC Commands:: The commands used a little less frequently. 54* Secondary VC Commands:: The commands used a little less frequently.
54* VC Directory Mode:: Listing files managed by version control. 55* VC Directory Mode:: Listing files managed by version control.
@@ -65,12 +66,13 @@ customizable variable @code{vc-handled-backends} to @code{nil}
65@subsection Introduction to Version Control 66@subsection Introduction to Version Control
66 67
67 VC allows you to use a version control system from within Emacs, 68 VC allows you to use a version control system from within Emacs,
68integrating the version control operations smoothly with editing. 69integrating the version control operations smoothly with editing. It
69Though VC cannot completely bridge the gaps between version control 70provides a uniform interface for common operations in many version
70systems with widely differing capabilities, it does provide a uniform 71control operations.
71interface to many version control operations. Regardless of which 72
72version control system is in use, you will be able to do basic 73 Some uncommon or intricate version control operations, such as
73operations in much the same way. 74altering repository settings, are not supported in VC. You should
75perform such tasks outside Emacs, e.g. via the command line.
74 76
75 This section provides a general overview of version control, and 77 This section provides a general overview of version control, and
76describes the version control systems that VC supports. You can skip 78describes the version control systems that VC supports. You can skip
@@ -81,6 +83,9 @@ you want to use.
81* Why Version Control?:: Understanding the problems it addresses. 83* Why Version Control?:: Understanding the problems it addresses.
82* Version Control Systems:: Supported version control back-end systems. 84* Version Control Systems:: Supported version control back-end systems.
83* VCS Concepts:: Words and concepts related to version control. 85* VCS Concepts:: Words and concepts related to version control.
86* VCS Merging:: How file conflicts are handled.
87* VCS Changesets:: How changes are grouped.
88* VCS Repositories:: Where version control repositories are stored.
84* Types of Log File:: The VCS log in contrast to the ChangeLog. 89* Types of Log File:: The VCS log in contrast to the ChangeLog.
85@end menu 90@end menu
86 91
@@ -112,8 +117,8 @@ vitally important form of communication among developers.
112@subsubsection Supported Version Control Systems 117@subsubsection Supported Version Control Systems
113 118
114@cindex back end (version control) 119@cindex back end (version control)
115 VC currently works with many different version control systems or 120 VC currently works with many different version control systems,
116@dfn{back ends}: 121which it refers to as @dfn{back ends}:
117 122
118@itemize @bullet 123@itemize @bullet
119 124
@@ -134,73 +139,60 @@ control system.
134@cindex RCS 139@cindex RCS
135@item 140@item
136RCS is the free version control system around which VC was initially 141RCS is the free version control system around which VC was initially
137built. Almost everything you can do with RCS can be done through VC. 142built. It is relatively primitive: it cannot be used over the
138However, you cannot use RCS over the network, and it only works at the 143network, and works at the level of individual files. Almost
139level of individual files rather than projects. 144everything you can do with RCS can be done through VC.
140 145
141@cindex CVS 146@cindex CVS
142@item 147@item
143CVS is the free version control system that was, until recently (circa 148CVS is the free version control system that was, until recently (circa
1442008), used by the majority of free software projects. Nowadays, it 1492008), used by the majority of free software projects. Nowadays, it
145is slowly being superseded by newer systems. CVS allows concurrent 150is slowly being superseded by newer systems. CVS allows concurrent
146multi-user development either locally or over the network. It lacks 151multi-user development either locally or over the network. Unlike
147support for atomic commits or file moving/renaming. VC supports all 152newer systems, it lacks support for atomic commits and file
148basic editing operations under CVS. For some less common tasks, you 153moving/renaming. VC supports all basic editing operations under CVS.
149still need to call CVS from the command line. Note also that before
150using CVS you must set up a repository, which is a subject too complex
151to treat here.
152 154
153@cindex SVN 155@cindex SVN
154@cindex Subversion 156@cindex Subversion
155@item 157@item
156Subversion (SVN) is a free version control system designed to be 158Subversion (SVN) is a free version control system designed to be
157similar to CVS but without its problems. It supports atomic commits 159similar to CVS but without its problems (e.g., it supports atomic
158of filesets, and versioning of directories, symbolic links, meta-data, 160commits of filesets, and versioning of directories, symbolic links,
159renames, copies, and deletes. 161meta-data, renames, copies, and deletes).
160 162
161@cindex GNU Arch 163@cindex GNU Arch
162@cindex Arch 164@cindex Arch
163@item 165@item
164GNU Arch is a version control system designed for distributed work. 166GNU Arch is one of the earliest @dfn{distributed} version control
165It differs in many ways from older systems like CVS and RCS. It 167systems (the other being Monotone). @xref{VCS Concepts}, for a
166provides different methods for interoperating between users, support 168description of distributed version control systems. It is no longer
167for offline operations, and good branching and merging features. It 169under active development, and has been deprecated in favor of Bazaar.
168also supports atomic commits of filesets and file moving/renaming. VC
169does not support all operations provided by GNU Arch, so you must
170sometimes invoke it from the command line.
171 170
172@cindex git 171@cindex git
173@item 172@item
174Git is a distributed version control system invented by Linus Torvalds to support 173Git is a distributed version control system originally invented by
175development of Linux (his kernel). It supports atomic commits of filesets and 174Linus Torvalds to support development of Linux (his kernel). VC
176file moving/renaming. One significant feature of git is that it 175supports many common git operations, but others, such as repository
177largely abolishes the notion of a single centralized repository; 176syncing, must be done from the command line.
178instead, each working copy of a git project is its own repository and
179coordination is done through repository-sync operations. VC supports
180most git operations, with the exception of news merges and repository
181syncing; these must be done from the command line.
182 177
183@cindex hg 178@cindex hg
184@cindex Mercurial 179@cindex Mercurial
185@item 180@item
186Mercurial (hg) is a distributed version control system broadly 181Mercurial (hg) is a distributed version control system broadly
187resembling GNU Arch and git, with atomic fileset commits and file 182resembling git. VC supports most Mercurial commands, with the
188moving/renaming. Like git, it is fully decentralized. VC supports 183exception of repository sync operations.
189most Mercurial commands, with the exception of repository sync
190operations; this needs to be done from the command line.
191 184
192@cindex bzr 185@cindex bzr
193@cindex Bazaar 186@cindex Bazaar
194@item 187@item
195Bazaar (bzr) is a distributed version control system that supports both 188Bazaar (bzr) is a distributed version control system that supports
196repository-based and distributed versioning, with atomic fileset 189both repository-based and distributed versioning. VC supports most
197commits and file moving/renaming. VC supports most basic editing 190basic editing operations under Bazaar.
198operations under Bazaar.
199@end itemize 191@end itemize
200 192
201 Previous versions of VC supported a version control system known as 193 Previous versions of VC supported a version control system known as
202Meta-CVS. This support has been dropped because of limited interest 194Meta-CVS. This support was dropped due to limited interest from users
203from users and developers. 195and developers.
204 196
205@node VCS Concepts 197@node VCS Concepts
206@subsubsection Concepts of Version Control 198@subsubsection Concepts of Version Control
@@ -216,11 +208,11 @@ as @dfn{log entries} that describe the changes made to each file.
216 208
217@cindex work file 209@cindex work file
218@cindex checking out files 210@cindex checking out files
219 A file @dfn{checked out} of a repository is called the @dfn{work 211 The copy of a version-controlled file that you actually edit is
220file}. You edit the work file and make changes in it, as you would 212called the @dfn{work file}. You can change each work file as you
221with an ordinary file. After you are done with a set of changes, you 213would an ordinary file. After you are done with a set of changes, you
222@dfn{check in} or @dfn{commit} the file; this records the changes in 214@dfn{commit} (or @dfn{check in}) the changes; this records the changes
223the repository, along with a log entry for those changes. 215in the repository, along with a descriptive log entry.
224 216
225@cindex revision 217@cindex revision
226@cindex revision ID 218@cindex revision ID
@@ -231,12 +223,15 @@ on the version control system; in the simplest case, it is just an
231integer. 223integer.
232 224
233 To go beyond these basic concepts, you will need to understand three 225 To go beyond these basic concepts, you will need to understand three
234aspects in which version control systems differ. 226aspects in which version control systems differ. As explained in the
235They can be locking-based or merging-based; they can be file-based or 227next three sections, they can be lock-based or merge-based; file-based
236changeset-based; and they can be centralized or decentralized. VC 228or changeset-based; and centralized or decentralized. VC handles all
237handles all these modes of operation, but it cannot hide the differences. 229these modes of operation, but it cannot hide the differences.
238 230
231@node VCS Merging
232@subsubsection Merge-based vs lock-based Version Control
239@cindex locking versus merging 233@cindex locking versus merging
234
240 A version control system typically has some mechanism to coordinate 235 A version control system typically has some mechanism to coordinate
241between users who want to change the same file. There are two ways to 236between users who want to change the same file. There are two ways to
242do this: merging and locking. 237do this: merging and locking.
@@ -244,8 +239,7 @@ do this: merging and locking.
244 In a version control system that uses merging, each user may check 239 In a version control system that uses merging, each user may check
245out and modify a work file at any time. The system lets you 240out and modify a work file at any time. The system lets you
246@dfn{merge} your work file, which may contain changes that have not 241@dfn{merge} your work file, which may contain changes that have not
247been checked in, with the latest changes that others have checked into 242been committed, with the latest changes that others have committed.
248the repository.
249 243
250 Older version control systems use a @dfn{locking} scheme instead. 244 Older version control systems use a @dfn{locking} scheme instead.
251Here, work files are normally read-only. To edit a file, you ask the 245Here, work files are normally read-only. To edit a file, you ask the
@@ -253,7 +247,7 @@ version control system to make it writable for you by @dfn{locking}
253it; only one user can lock a given file at any given time. This 247it; only one user can lock a given file at any given time. This
254procedure is analogous to, but different from, the locking that Emacs 248procedure is analogous to, but different from, the locking that Emacs
255uses to detect simultaneous editing of ordinary files 249uses to detect simultaneous editing of ordinary files
256(@pxref{Interlocking}). When you check in your changes, that unlocks 250(@pxref{Interlocking}). When you commit your changes, that unlocks
257the file, and the work file becomes read-only again. Other users may 251the file, and the work file becomes read-only again. Other users may
258then lock the file to make their own changes. 252then lock the file to make their own changes.
259 253
@@ -261,8 +255,8 @@ then lock the file to make their own changes.
261users try to modify the same file at the same time. Locking systems 255users try to modify the same file at the same time. Locking systems
262have @dfn{lock conflicts}; a user may try to check a file out and be 256have @dfn{lock conflicts}; a user may try to check a file out and be
263unable to because it is locked. In merging systems, @dfn{merge 257unable to because it is locked. In merging systems, @dfn{merge
264conflicts} happen when you check in a change to a file that conflicts 258conflicts} happen when you commit a change to a file that conflicts
265with a change checked in by someone else after your checkout. Both 259with a change committed by someone else after your checkout. Both
266kinds of conflict have to be resolved by human judgment and 260kinds of conflict have to be resolved by human judgment and
267communication. Experience has shown that merging is superior to 261communication. Experience has shown that merging is superior to
268locking, both in convenience to developers and in minimizing the 262locking, both in convenience to developers and in minimizing the
@@ -275,27 +269,33 @@ Distributed version control systems, such as GNU Arch, git, and
275Mercurial, are exclusively merging-based. 269Mercurial, are exclusively merging-based.
276 270
277 VC mode supports both locking and merging version control. The 271 VC mode supports both locking and merging version control. The
278terms ``checkin'' and ``checkout'' come from locking-based version 272terms ``commit'' and ``update'' are used in newer version control
279control systems; newer version control systems have slightly different 273systems; older lock-based systems use the terms ``check in'' and
280operations usually called ``commit'' and ``update'', but VC hides the 274``check out''. VC hides the differences between them as much as
281differences between them as much as possible. 275possible.
276
277@node VCS Changesets
278@subsubsection Changeset-based vs File-based Version Control
282 279
283@cindex files versus changesets. 280@cindex changesets
284 On SCCS, RCS, CVS, and other early version control systems, version 281 On SCCS, RCS, CVS, and other early version control systems, version
285control operations are @dfn{file-based}: each file has its own comment 282control operations are @dfn{file-based}: each file has its own comment
286and revision history separate from that of all other files in the 283and revision history separate from that of all other files. Newer
287system. Later systems, beginning with Subversion, are 284systems, beginning with Subversion, are @dfn{changeset-based}: a
288@dfn{changeset-based}: a checkin may include changes to several files, 285checkin may include changes to several files, and the entire set of
289and the entire set of changes is treated as a unit by the system. Any 286changes is handled as a unit. Any comment associated with the change
290comment associated with the change does not belong to a single file, 287does not belong to a single file, but to the changeset itself.
291but to the changeset itself.
292 288
293 Changeset-based version control is more flexible and powerful than 289 Changeset-based version control is more flexible and powerful than
294file-based version control; usually, when a change to multiple files 290file-based version control; usually, when a change to multiple files
295has to be reversed, it's good to be able to easily identify and remove 291has to be reversed, it's good to be able to easily identify and remove
296all of it. 292all of it.
297 293
298@cindex centralized vs. decentralized version control 294@node VCS Repositories
295@subsubsection Decentralized vs Centralized Repositories
296
297@cindex centralized version control
298@cindex decentralized version control
299 Early version control systems were designed around a 299 Early version control systems were designed around a
300@dfn{centralized} model in which each project has only one repository 300@dfn{centralized} model in which each project has only one repository
301used by all developers. SCCS, RCS, CVS, and Subversion share this 301used by all developers. SCCS, RCS, CVS, and Subversion share this
@@ -306,14 +306,12 @@ point for reliability and efficiency.
306control, later implemented in git, Mercurial, and Bazaar. A project 306control, later implemented in git, Mercurial, and Bazaar. A project
307may have several different repositories, and these systems support a 307may have several different repositories, and these systems support a
308sort of super-merge between repositories that tries to reconcile their 308sort of super-merge between repositories that tries to reconcile their
309change histories. At the limit, each developer has his/her own 309change histories. In effect, there is one repository for each
310repository, and repository merges replace checkin/commit operations. 310developer, and repository merges take the place of commit operations.
311 311
312 VC's job is to help you manage the traffic between your personal 312 VC helps you manage the traffic between your personal workfiles and
313workfiles and a repository. Whether that repository is a single 313a repository. Whether the repository is a single master, or one of a
314master or one of a network of peer repositories is not something VC 314network of peer repositories, is not something VC has to care about.
315has to care about. Thus, the difference between a centralized and a
316decentralized version control system is invisible to VC mode.
317 315
318@node Types of Log File 316@node Types of Log File
319@subsubsection Types of Log File 317@subsubsection Types of Log File
@@ -323,9 +321,9 @@ decentralized version control system is invisible to VC mode.
323 321
324 Projects that use a version control system can have two types of log 322 Projects that use a version control system can have two types of log
325for changes. One is the log maintained by the version control system: 323for changes. One is the log maintained by the version control system:
326each time you check in a change, you fill out a @dfn{log entry} for 324each time you commit a change, you fill out a @dfn{log entry} for the
327the change (@pxref{Log Buffer}). This is called the @dfn{version 325change (@pxref{Log Buffer}). This is called the @dfn{version control
328control log}. 326log}.
329 327
330 The other kind of log is the file @file{ChangeLog} (@pxref{Change 328 The other kind of log is the file @file{ChangeLog} (@pxref{Change
331Log}). It provides a chronological record of all changes to a large 329Log}). It provides a chronological record of all changes to a large
@@ -365,32 +363,29 @@ change, and later use the @kbd{C-x v a} command to copy it to
365@cindex VC, mode line indicator 363@cindex VC, mode line indicator
366 364
367 When you visit a file that is under version control, Emacs indicates 365 When you visit a file that is under version control, Emacs indicates
368this on the mode line. For example, @samp{RCS-1.3} says that the RCS 366this on the mode line. For example, @samp{Bzr-1223} says that Bazaar
369back end is used for that file, and the current version of the file is 367is used for that file, and the current revision ID is 1223.
3701.3.
371
372 The first part of the VC mode-line indicator is the name of the back
373end: @samp{RCS}, @samp{CVS}, @samp{Bzr}, etc. The back-end name is
374followed by a single character and the version of the file.
375 368
376 The character between the back-end name and the revision ID 369 The character between the back-end name and the revision ID
377indicates the version control status of the file. @samp{-} means that 370indicates the status of the work file. In a merge-based version
378the work file is not locked (if locking is in use), or not modified (if 371control system, a @samp{-} character indicates that the work file is
379locking is not in use). @samp{:} indicates that the file is locked, or 372unmodified, and @samp{:} indicates that it has been modified.
380that it is modified. If the file is locked by some other user (for 373@samp{!} indicates that the file contains conflicts as result of a
374recent merge operation (@pxref{Merging}), or that the file was removed
375from the version control. Finally, @samp{?} means that the file is
376under version control, but is missing from the working tree.
377
378 In a lock-based system, @samp{-} indicates an unlocked file, and
379@samp{:} a locked file; if the file is locked by another user (for
381instance, @samp{jim}), that is displayed as @samp{RCS:jim:1.3}. 380instance, @samp{jim}), that is displayed as @samp{RCS:jim:1.3}.
382@samp{@@} means that the file was locally added, but not yet committed 381@samp{@@} means that the file was locally added, but not yet committed
383to the master repository. @samp{!} indicates that the file contains 382to the master repository.
384conflicts as result of a recent merge operation (@pxref{Merging}), or
385that the file was removed from the version control. Finally, @samp{?}
386means that the file is under version control, but is missing from the
387working tree.
388 383
389 On a graphical display, you can move the mouse over this mode line 384 On a graphical display, you can move the mouse over this mode line
390indicator to pop up a ``tool-tip'', which displays a more verbose 385indicator to pop up a ``tool-tip'', which displays a more verbose
391description of the version control status. Pressing @kbd{Mouse-1} 386description of the version control status. Pressing @kbd{Mouse-1}
392over the indicator pops up a menu of VC commands. This menu is 387over the indicator pops up a menu of VC commands, identical to
393identical to the @samp{Tools / Version Control} menu item. 388@samp{Tools / Version Control} on the menu bar.
394 389
395@vindex auto-revert-check-vc-info 390@vindex auto-revert-check-vc-info
396 When Auto Revert mode (@pxref{Reverting}) reverts a buffer that is 391 When Auto Revert mode (@pxref{Reverting}) reverts a buffer that is
@@ -442,12 +437,6 @@ command line. All files in a VC fileset must be under the same
442version control system; if they are not, Emacs signals an error when 437version control system; if they are not, Emacs signals an error when
443you attempt to execute a command on the fileset. 438you attempt to execute a command on the fileset.
444 439
445 Support for VC filesets and changeset-based version control systems
446is the main improvement to VC in Emacs 23. When you mark multi-file
447VC in a VC Directory buffer, VC operations treat them as a VC fileset,
448and operate on them all at once if the version control system is
449changeset-based. @xref{VC Directory Mode}.
450
451 VC filesets are distinct from the ``named filesets'' used for 440 VC filesets are distinct from the ``named filesets'' used for
452viewing and visiting files in functional groups (@pxref{Filesets}). 441viewing and visiting files in functional groups (@pxref{Filesets}).
453Unlike named filesets, VC filesets are not named and don't persist 442Unlike named filesets, VC filesets are not named and don't persist
@@ -457,7 +446,6 @@ across sessions.
457* VC With A Merging VCS:: Without locking: default mode for CVS. 446* VC With A Merging VCS:: Without locking: default mode for CVS.
458* VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS. 447* VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS.
459* Advanced C-x v v:: Advanced features available with a prefix argument. 448* Advanced C-x v v:: Advanced features available with a prefix argument.
460* Log Buffer:: Features available in log entry buffers.
461@end menu 449@end menu
462 450
463@node VC With A Merging VCS 451@node VC With A Merging VCS
@@ -490,9 +478,9 @@ If you have not changed the work file, but some other user has checked
490in changes to the repository, merge those changes into the work file. 478in changes to the repository, merge those changes into the work file.
491 479
492@item 480@item
493If you have made modifications to the work file, attempts to check in 481If you have made modifications to the work file, attempt to commit
494your changes. To do this, Emacs first reads the log entry for the new 482the changes. To do this, Emacs first reads the log entry for the new
495revision (@pxref{Log Buffer}). If some other user has checked in 483revision (@pxref{Log Buffer}). If some other user has committed
496changes to the repository since you last checked it out, the checkin 484changes to the repository since you last checked it out, the checkin
497fails. In that case, type @kbd{C-x v v} again to merge those changes 485fails. In that case, type @kbd{C-x v v} again to merge those changes
498into your own work file; this puts the work file into a ``conflicted'' 486into your own work file; this puts the work file into a ``conflicted''
@@ -507,8 +495,8 @@ trying to commit your own changes, type @kbd{C-x v m @key{RET}}.
507 495
508 These rules also apply when you use RCS in its ``non-locking'' mode, 496 These rules also apply when you use RCS in its ``non-locking'' mode,
509except that changes are not automatically merged from the repository. 497except that changes are not automatically merged from the repository.
510Nothing informs you if another user has checked in changes in the same 498Nothing informs you if another user has committed changes in the same
511file since you began editing it; when you check in your revision, his 499file since you began editing it; when you commit your revision, his
512changes are removed (however, they remain in the repository and are 500changes are removed (however, they remain in the repository and are
513thus not irrevocably lost). Therefore, you must verify that the 501thus not irrevocably lost). Therefore, you must verify that the
514current revision is unchanged before checking in your changes. In 502current revision is unchanged before checking in your changes. In
@@ -528,7 +516,7 @@ If the file is not locked, lock it and make it writable, so that you
528can change it. 516can change it.
529 517
530@item 518@item
531If the file is locked by you, and contains changes, check in the 519If the file is locked by you, and contains changes, commit the
532changes. In order to do this, Emacs first reads the log entry for the 520changes. In order to do this, Emacs first reads the log entry for the
533new revision. @xref{Log Buffer}. 521new revision. @xref{Log Buffer}.
534 522
@@ -544,12 +532,12 @@ locked the file, to inform him of what has happened.
544@end itemize 532@end itemize
545 533
546 These rules also apply when you use CVS in locking mode, except 534 These rules also apply when you use CVS in locking mode, except
547that there is no such thing as stealing a lock. 535that CVS does not support stealing a lock.
548 536
549@node Advanced C-x v v 537@node Advanced C-x v v
550@subsubsection Advanced Control in @kbd{C-x v v} 538@subsubsection Advanced Control in @kbd{C-x v v}
551 539
552@cindex revision ID to check in/out 540@cindex revision ID in version control
553 When you give a prefix argument to @code{vc-next-action} (@kbd{C-u 541 When you give a prefix argument to @code{vc-next-action} (@kbd{C-u
554C-x v v}), it still performs the next logical version control 542C-x v v}), it still performs the next logical version control
555operation, but accepts additional arguments to specify precisely how 543operation, but accepts additional arguments to specify precisely how
@@ -558,8 +546,8 @@ to do the operation.
558@itemize @bullet 546@itemize @bullet
559@item 547@item
560If the file is modified (or locked), you can specify the revision ID 548If the file is modified (or locked), you can specify the revision ID
561to use for the new version that you check in. This is one way 549to use for the new version that you commit. This is one way to create
562to create a new branch (@pxref{Branches}). 550a new branch (@pxref{Branches}).
563 551
564@item 552@item
565If the file is not modified (and unlocked), you can specify the 553If the file is not modified (and unlocked), you can specify the
@@ -585,34 +573,53 @@ Features}).
585@end itemize 573@end itemize
586 574
587@node Log Buffer 575@node Log Buffer
588@subsubsection Features of the Log Entry Buffer 576@subsection Features of the Log Entry Buffer
577
578 When you tell VC to commit a change, it pops up a buffer called
579@samp{*VC-Log*}. In this buffer, you should write a @dfn{log entry}
580describing the changes you have made (@pxref{Why Version Control?}).
581After you are done, type @kbd{C-c C-c}; this exits the buffer and
582commits the change, together with your log entry.
583
584 While in the @samp{*VC-Log*} buffer, you can write one or more
585@dfn{header lines}, specifying additional information to be supplied
586to the version control system. Each header line must occupy a single
587line at the top of the buffer; the first line that is not a header
588line is treated as the start of the log entry. For example, the
589following header line states that the present change was not written
590by you, but by another developer:
589 591
590 When you check in changes, Emacs pops up a buffer called 592@smallexample
591@samp{*VC-Log*} for you to enter a log entry. 593Author: J. R. Hacker <jrh@@example.com>
594@end smallexample
592 595
593 After you have finished editing the log message, type @kbd{C-c C-c} 596@noindent
594to exit the buffer and commit the change. 597Apart from the @samp{Author} header, Emacs recognizes the headers
598@samp{Date} (a manually-specified commit time) and @samp{Fixes} (a
599reference to a bug fixed by the change). Not all version control
600systems recognize all headers: Bazaar recognizes all three headers,
601while git, Mercurial, and Monotone recognizes only @samp{Author} and
602@samp{Summary}. If you specify a header for a version control that
603does not support it, the header is treated as part of the log entry.
595 604
596@findex log-edit-show-files 605@findex log-edit-show-files
597@findex log-edit-show-diff 606@findex log-edit-show-diff
598 In the @samp{*VC-Log*} buffer, typing @kbd{C-c C-f} 607 Type @kbd{C-c C-f} (@code{log-edit-show-files}) to display a list of
599(@code{log-edit-show-files}) displays a list of files in the VC 608files in the current VC fileset. If you called @kbd{C-x v v} directly
600fileset you are committing. If you called @kbd{C-x v v} directly from 609from a work file, the fileset consists of that single file; if you
601a work file, the VC fileset consists of that single file, so this 610called @kbd{C-x v v} from a VC directory buffer (@pxref{VC Directory
602command is not very useful. If you called @kbd{C-x v v} from a VC 611Mode}), the fileset may consist of multiple files.
603directory buffer, the VC fileset may consist of multiple files
604(@pxref{VC Directory Mode}).
605 612
606@findex log-edit-insert-changelog 613@findex log-edit-insert-changelog
607 Type @kbd{C-c C-d} (@code{log-edit-show-diff}) to show a ``diff'' of 614 Type @kbd{C-c C-d} (@code{log-edit-show-diff}) to show a @dfn{diff}
608the changes you have made (i.e., the differences between the work file 615of the changes you have made (i.e., the differences between the work
609and the repository revision from which you started editing the file). 616file and the repository revision from which you started editing).
610The diff is displayed in a special buffer in another window. 617@xref{Old Revisions}.
611@xref{Comparing Files}. 618
612 619 If the current VC fileset includes one or more @file{ChangeLog}
613 If you have written an entry in the @file{ChangeLog} (@pxref{Change 620files (@pxref{Change Log}), type @kbd{C-c C-a}
614Log}), type @kbd{C-c C-a} (@code{log-edit-insert-changelog}) to pull 621(@code{log-edit-insert-changelog}) to pull the relevant entries into
615it into the @samp{*VC-Log*} buffer. If the topmost item in the 622the @samp{*VC-Log*} buffer. If the topmost item in each
616@file{ChangeLog} was made under your user name on the current date, 623@file{ChangeLog} was made under your user name on the current date,
617this command searches that item for entries that match the file(s) to 624this command searches that item for entries that match the file(s) to
618be committed; if found, these entries are inserted. 625be committed; if found, these entries are inserted.
@@ -627,7 +634,7 @@ the revision control log.
627 634
628 To abort a check-in, just @strong{don't} type @kbd{C-c C-c} in that 635 To abort a check-in, just @strong{don't} type @kbd{C-c C-c} in that
629buffer. You can switch buffers and do other editing. As long as you 636buffer. You can switch buffers and do other editing. As long as you
630don't try to check in another file, the entry you were editing remains 637don't try to commit another file, the entry you were editing remains
631in the @samp{*VC-Log*} buffer, and you can go back to that buffer at 638in the @samp{*VC-Log*} buffer, and you can go back to that buffer at
632any time to complete the check-in. 639any time to complete the check-in.
633 640
@@ -636,7 +643,7 @@ convenient to specify the same log entry for many of the files. (This
636is the normal way to do things on a changeset-oriented system, where 643is the normal way to do things on a changeset-oriented system, where
637comments are attached to changesets rather than the history of 644comments are attached to changesets rather than the history of
638individual files.) The most convenient way to do this is to mark all 645individual files.) The most convenient way to do this is to mark all
639the files in VC Directory Mode and check in from there; the log buffer 646the files in VC Directory Mode and commit from there; the log buffer
640will carry the fileset information with it and do a group commit when 647will carry the fileset information with it and do a group commit when
641you type @kbd{C-c C-c}. 648you type @kbd{C-c C-c}.
642 649
@@ -648,7 +655,7 @@ work just like the minibuffer history commands (except that these
648versions are used outside the minibuffer). 655versions are used outside the minibuffer).
649 656
650@vindex vc-log-mode-hook 657@vindex vc-log-mode-hook
651 Each time you check in a change, the log entry buffer is put into VC 658 Each time you commit a change, the log entry buffer is put into VC
652Log Edit mode, which involves running two hooks: @code{text-mode-hook} 659Log Edit mode, which involves running two hooks: @code{text-mode-hook}
653and @code{vc-log-mode-hook}. @xref{Hooks}. 660and @code{vc-log-mode-hook}. @xref{Hooks}.
654 661
@@ -700,8 +707,12 @@ buffer in a separate window.
700 @kbd{C-x v =} (@code{vc-diff}) compares each file in the current VC 707 @kbd{C-x v =} (@code{vc-diff}) compares each file in the current VC
701fileset (saving them if necessary) with the repository revision(s) 708fileset (saving them if necessary) with the repository revision(s)
702from which you started editing. Note that the latter may or may not 709from which you started editing. Note that the latter may or may not
703be the latest revision of the file(s). The diff is displayed in a 710be the latest revision of the file(s).
704special buffer in another window. @xref{Comparing Files}. 711
712 The diff is displayed in another window, in a Diff mode buffer
713(@pxref{Diff Mode}) named @file{*vc-diff*}. In this buffer, the
714@kbd{g} (@code{revert-buffer}) command performs the file comparison
715again, generating a new diff.
705 716
706@findex vc-diff 717@findex vc-diff
707@kindex C-u C-x v = 718@kindex C-u C-x v =
@@ -1008,7 +1019,7 @@ then decide not to change it.
1008 1019
1009@kindex C-x v c 1020@kindex C-x v c
1010@findex vc-rollback 1021@findex vc-rollback
1011 To cancel a change that you already checked in, use @kbd{C-x v c} 1022 To cancel a change that you already committed, use @kbd{C-x v c}
1012(@code{vc-rollback}). This command discards all record of the most 1023(@code{vc-rollback}). This command discards all record of the most
1013recent checked-in revision, but only if your work file corresponds to 1024recent checked-in revision, but only if your work file corresponds to
1014that revision---you cannot use @kbd{C-x v c} to cancel a revision that 1025that revision---you cannot use @kbd{C-x v c} to cancel a revision that
@@ -1075,8 +1086,8 @@ output is used. Here is an example using CVS:
1075@noindent 1086@noindent
1076In this example, @samp{file1.c} is modified with respect to the 1087In this example, @samp{file1.c} is modified with respect to the
1077repository, and @samp{file2.c} is not. @samp{file3.c} is modified, 1088repository, and @samp{file2.c} is not. @samp{file3.c} is modified,
1078but other changes have also been checked in to the repository---you 1089but other changes have also been committed---you need to merge them
1079need to merge them with the work file before you can check it in. 1090with the work file before you can check it in.
1080 1091
1081@vindex vc-stay-local 1092@vindex vc-stay-local
1082@vindex vc-cvs-stay-local 1093@vindex vc-cvs-stay-local
@@ -1114,7 +1125,7 @@ this includes Version Control subdirectories such as @samp{RCS} and
1114 1125
1115 VC Directory mode has a full set of navigation and marking commands 1126 VC Directory mode has a full set of navigation and marking commands
1116for picking out filesets. Some of these are also available in a 1127for picking out filesets. Some of these are also available in a
1117context menu invoked by the @kbd{mouse-2} button. 1128context menu invoked by @kbd{mouse-2}.
1118 1129
1119 Up- and down-arrow keys move in the buffer; @kbd{n} and @kbd{p} also 1130 Up- and down-arrow keys move in the buffer; @kbd{n} and @kbd{p} also
1120move vertically as in other list-browsing modes. @key{SPC} and 1131move vertically as in other list-browsing modes. @key{SPC} and
@@ -1158,7 +1169,8 @@ directory buffer will be used.
1158 1169
1159 @kbd{M-s a C-s} does an incremental search on the marked files. 1170 @kbd{M-s a C-s} does an incremental search on the marked files.
1160 1171
1161 @kbd{M-s a C-M-s} does an incremental search on the marked files. 1172 @kbd{M-s a C-M-s} does an incremental regular expression search
1173on the marked files.
1162 1174
1163@cindex stashes in version control 1175@cindex stashes in version control
1164@cindex shelves in version control 1176@cindex shelves in version control
@@ -1174,11 +1186,11 @@ buffers. Some single-key shortcuts are available as well; @kbd{=},
1174@kbd{+}, @kbd{l}, @kbd{i}, and @kbd{v} behave as through prefixed with 1186@kbd{+}, @kbd{l}, @kbd{i}, and @kbd{v} behave as through prefixed with
1175@kbd{C-x v}. 1187@kbd{C-x v}.
1176 1188
1177 The command @kbd{C-x v v} (@code{vc-next-action}) operates on all the 1189 The command @kbd{C-x v v} (@code{vc-next-action}) operates on all
1178marked files, so that you can check in several files at once. 1190the marked files, so that you can commit several files at once. If
1179If the underlying VC supports atomic commits of multiple-file 1191the underlying VC supports atomic commits of multiple-file changesets,
1180changesets, @kbd{C-x v v} with a selected set of modified but not 1192@kbd{C-x v v} with a selected set of modified but not committed files
1181committed files will commit all of them at once as a single changeset. 1193will commit all of them at once as a single changeset.
1182 1194
1183 When @kbd{C-x v v} (@code{vc-next-action}) operates on multiple 1195 When @kbd{C-x v v} (@code{vc-next-action}) operates on multiple
1184files, all of those files must be either in the same state or in 1196files, all of those files must be either in the same state or in
@@ -1261,15 +1273,15 @@ other branch.
1261@node Creating Branches 1273@node Creating Branches
1262@subsubsection Creating New Branches 1274@subsubsection Creating New Branches
1263 1275
1264 To create a new branch from a head revision (one that is the latest in 1276 To create a new branch from a head revision (one that is the latest
1265the branch that contains it), first select that revision if necessary, 1277in the branch that contains it), first select that revision if
1266lock it with @kbd{C-x v v}, and make whatever changes you want. Then, 1278necessary, lock it with @kbd{C-x v v}, and make whatever changes you
1267when you check in the changes, use @kbd{C-u C-x v v}. This lets you 1279want. Then, when you commit the changes, use @kbd{C-u C-x v v}. This
1268specify the revision ID for the new revision. You should specify a 1280lets you specify the revision ID for the new revision. You should
1269suitable branch ID for a branch starting at the current revision. 1281specify a suitable branch ID for a branch starting at the current
1270For example, if the current revision is 2.5, the branch ID should be 1282revision. For example, if the current revision is 2.5, the branch ID
12712.5.1, 2.5.2, and so on, depending on the number of existing branches at 1283should be 2.5.1, 2.5.2, and so on, depending on the number of existing
1272that point. 1284branches at that point.
1273 1285
1274 To create a new branch at an older revision (one that is no longer the 1286 To create a new branch at an older revision (one that is no longer the
1275head of a branch), first select that revision (@pxref{Switching 1287head of a branch), first select that revision (@pxref{Switching
@@ -1282,11 +1294,11 @@ revision, that you really mean to create a new branch---if you say no,
1282you'll be offered a chance to lock the latest revision instead. On 1294you'll be offered a chance to lock the latest revision instead. On
1283a merging-based VCS you will skip this step. 1295a merging-based VCS you will skip this step.
1284 1296
1285 Then make your changes and type @kbd{C-x v v} again to check in a new 1297 Then make your changes and type @kbd{C-x v v} again to commit a new
1286revision. This automatically creates a new branch starting from the 1298revision. This automatically creates a new branch starting from the
1287selected revision. You need not specially request a new branch, because 1299selected revision. You need not specially request a new branch,
1288that's the only way to add a new revision at a point that is not the head 1300because that's the only way to add a new revision at a point that is
1289of a branch. 1301not the head of a branch.
1290 1302
1291 After the branch is created, you ``stay'' on it. That means that 1303 After the branch is created, you ``stay'' on it. That means that
1292subsequent check-ins create new revisions on that branch. To leave the 1304subsequent check-ins create new revisions on that branch. To leave the
@@ -1334,11 +1346,11 @@ type @kbd{C-x v v} to lock revision 1.5 so that you can change it. Next,
1334type @kbd{C-x v m 1.3.1 @key{RET}}. This takes the entire set of changes on 1346type @kbd{C-x v m 1.3.1 @key{RET}}. This takes the entire set of changes on
1335branch 1.3.1 (relative to revision 1.3, where the branch started, up to 1347branch 1.3.1 (relative to revision 1.3, where the branch started, up to
1336the last revision on the branch) and merges it into the current revision 1348the last revision on the branch) and merges it into the current revision
1337of the work file. You can now check in the changed file, thus creating 1349of the work file. You can now commit the changed file, thus creating
1338revision 1.6 containing the changes from the branch. 1350revision 1.6 containing the changes from the branch.
1339 1351
1340 It is possible to do further editing after merging the branch, before 1352 It is possible to do further editing after merging the branch, before
1341the next check-in. But it is usually wiser to check in the merged 1353the next check-in. But it is usually wiser to commit the merged
1342revision, then lock it and make the further changes. This will keep 1354revision, then lock it and make the further changes. This will keep
1343a better record of the history of changes. 1355a better record of the history of changes.
1344 1356
@@ -1374,7 +1386,7 @@ master file revision with user B's changes in it is 1.11.
1374 Then you can resolve the conflicts by editing the file manually. Or 1386 Then you can resolve the conflicts by editing the file manually. Or
1375you can type @code{M-x vc-resolve-conflicts} after visiting the file. 1387you can type @code{M-x vc-resolve-conflicts} after visiting the file.
1376This starts an Ediff session, as described above. Don't forget to 1388This starts an Ediff session, as described above. Don't forget to
1377check in the merged version afterwards. 1389commit the merged version afterwards.
1378 1390
1379@node Multi-User Branching 1391@node Multi-User Branching
1380@subsubsection Multi-User Branching 1392@subsubsection Multi-User Branching
diff --git a/doc/emacs/msdog.texi b/doc/emacs/msdog.texi
index a44438bf81f..4be67aa31de 100644
--- a/doc/emacs/msdog.texi
+++ b/doc/emacs/msdog.texi
@@ -31,7 +31,8 @@ here.
31* Text and Binary:: Text files use CRLF to terminate lines. 31* Text and Binary:: Text files use CRLF to terminate lines.
32* Windows Files:: File-name conventions on Windows. 32* Windows Files:: File-name conventions on Windows.
33* ls in Lisp:: Emulation of @code{ls} for Dired. 33* ls in Lisp:: Emulation of @code{ls} for Dired.
34* Windows HOME:: Where Emacs looks for your @file{.emacs}. 34* Windows HOME:: Where Emacs looks for your @file{.emacs} and
35 where it starts up.
35* Windows Keyboard:: Windows-specific keyboard features. 36* Windows Keyboard:: Windows-specific keyboard features.
36* Windows Mouse:: Windows-specific mouse features. 37* Windows Mouse:: Windows-specific mouse features.
37* Windows Processes:: Running subprocesses on Windows. 38* Windows Processes:: Running subprocesses on Windows.
@@ -284,11 +285,12 @@ on Windows, since many users of Emacs on those platforms prefer the
284@end table 285@end table
285 286
286@noindent 287@noindent
287Any other value of @code{ls-lisp-emulation} means the same as 288Any other value of @code{ls-lisp-emulation} means the same as @code{GNU}.
288@code{GNU}. Note that this option needs to be set @emph{before} 289Customizing this option calls the function @code{ls-lisp-set-options} to
289@file{ls-lisp.el} is loaded, which means that on MS-Windows and MS-DOS 290update the 3 dependent options as needed. If you change the value of
290you will have to set the value from your @file{.emacs} file and then 291this variable without using customize after @file{ls-lisp.el} is loaded
291restart Emacs, since @file{ls-lisp.el} is preloaded. 292(note that it is preloaded on MS-Windows and MS-DOS), you can call that
293function manually for the same result.
292 294
293@vindex ls-lisp-support-shell-wildcards 295@vindex ls-lisp-support-shell-wildcards
294 The variable @code{ls-lisp-support-shell-wildcards} controls how 296 The variable @code{ls-lisp-support-shell-wildcards} controls how
@@ -329,7 +331,7 @@ names, which might cause misalignment of columns in Dired display.
329@end ifnottex 331@end ifnottex
330 332
331@node Windows HOME 333@node Windows HOME
332@section HOME Directory on MS-Windows 334@section HOME and Startup Directories on MS-Windows
333@cindex @code{HOME} directory on MS-Windows 335@cindex @code{HOME} directory on MS-Windows
334 336
335 The Windows equivalent of the @code{HOME} directory is the 337 The Windows equivalent of the @code{HOME} directory is the
@@ -371,6 +373,13 @@ names, the Windows port of Emacs supports an alternative name
371@file{_emacs} as a fallback, if such a file exists in the home 373@file{_emacs} as a fallback, if such a file exists in the home
372directory, whereas @file{.emacs} does not. 374directory, whereas @file{.emacs} does not.
373 375
376@cindex start directory, MS-Windows
377@cindex directory where Emacs starts on MS-Windows
378 If you use a Windows desktop shortcut to start Emacs, it starts in
379the directory specified by the shortcut. To control where that is,
380right-click on the shortcut, select ``Properties'', and in the
381``Shortcut'' tab modify the ``Start in'' field to your liking.
382
374@node Windows Keyboard 383@node Windows Keyboard
375@section Keyboard Usage on MS-Windows 384@section Keyboard Usage on MS-Windows
376@cindex keyboard, MS-Windows 385@cindex keyboard, MS-Windows
@@ -917,6 +926,3 @@ click-to-focus policy.
917@include msdog-xtra.texi 926@include msdog-xtra.texi
918@end ifnottex 927@end ifnottex
919 928
920@ignore
921 arch-tag: f39d2590-5dcc-4318-88d9-0eb73ca10fa2
922@end ignore
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index 9fdef175826..c8846b35e4b 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -351,10 +351,11 @@ which prefers Cyrillic characters and files encoded in Windows-1255).
351@cindex Intlfonts package, installation 351@cindex Intlfonts package, installation
352 To display the script(s) used by your language environment on a 352 To display the script(s) used by your language environment on a
353graphical display, you need to have a suitable font. If some of the 353graphical display, you need to have a suitable font. If some of the
354characters appear as empty boxes, you should install the GNU Intlfonts 354characters appear as empty boxes or hex codes, you should install the
355package, which includes fonts for most supported scripts.@footnote{If 355GNU Intlfonts package, which includes fonts for most supported
356you run Emacs on X, you need to inform the X server about the location 356scripts.@footnote{If you run Emacs on X, you need to inform the X
357of the newly installed fonts with the following commands: 357server about the location of the newly installed fonts with the
358following commands:
358 359
359@example 360@example
360 xset fp+ /usr/local/share/emacs/fonts 361 xset fp+ /usr/local/share/emacs/fonts
@@ -1314,10 +1315,11 @@ characters the font does not cover. The standard fontset is only used if
1314explicitly requested, despite its name. 1315explicitly requested, despite its name.
1315 1316
1316 A fontset does not necessarily specify a font for every character 1317 A fontset does not necessarily specify a font for every character
1317code. If a fontset specifies no font for a certain character, or if it 1318code. If a fontset specifies no font for a certain character, or if
1318specifies a font that does not exist on your system, then it cannot 1319it specifies a font that does not exist on your system, then it cannot
1319display that character properly. It will display that character as an 1320display that character properly. It will display that character as a
1320empty box instead. 1321hex code or thin space or an empty box instead. (@xref{Text Display, ,
1322glyphless characters}, for details.)
1321 1323
1322@node Defining Fontsets 1324@node Defining Fontsets
1323@section Defining fontsets 1325@section Defining fontsets
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index d477ca73c46..ddf68e62bbf 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -1192,7 +1192,8 @@ specification, or because the specification was inaccurate. For
1192example, a misconfigured mailer could send a message with a 1192example, a misconfigured mailer could send a message with a
1193@samp{charset=iso-8859-1} header when the message is actually encoded 1193@samp{charset=iso-8859-1} header when the message is actually encoded
1194in @code{koi8-r}. When you see the message text garbled, or some of 1194in @code{koi8-r}. When you see the message text garbled, or some of
1195its characters displayed as empty boxes, this may have happened. 1195its characters displayed as hex codes or empty boxes, this may have
1196happened.
1196 1197
1197@findex rmail-redecode-body 1198@findex rmail-redecode-body
1198 You can correct the problem by decoding the message again using the 1199 You can correct the problem by decoding the message again using the
diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi
index 5095c3f4764..04d37719013 100644
--- a/doc/emacs/vc1-xtra.texi
+++ b/doc/emacs/vc1-xtra.texi
@@ -594,7 +594,7 @@ headers.
594@vindex vc-handled-backends 594@vindex vc-handled-backends
595The variable @code{vc-handled-backends} determines which version 595The variable @code{vc-handled-backends} determines which version
596control systems VC should handle. The default value is @code{(RCS CVS 596control systems VC should handle. The default value is @code{(RCS CVS
597SVN SCCS BZR GIT HG Arch)}, so it contains all the version systems 597SVN SCCS Bzr Git Hg Mtn Arch)}, so it contains all the version systems
598that are currently supported. If you want VC to ignore one or more of 598that are currently supported. If you want VC to ignore one or more of
599these systems, exclude its name from the list. To disable VC entirely, 599these systems, exclude its name from the list. To disable VC entirely,
600set this variable to @code{nil}. 600set this variable to @code{nil}.
@@ -657,8 +657,8 @@ variable does not affect @kbd{C-x v c}; that operation is so drastic
657that it should always ask for confirmation.) 657that it should always ask for confirmation.)
658 658
659@vindex vc-command-messages 659@vindex vc-command-messages
660 VC mode does much of its work by running the shell commands for RCS, 660 VC mode does much of its work by running the shell commands for the
661CVS and SCCS. If @code{vc-command-messages} is non-@code{nil}, VC 661appropriate backend. If @code{vc-command-messages} is non-@code{nil}, VC
662displays messages to indicate which shell commands it runs, and 662displays messages to indicate which shell commands it runs, and
663additional messages when the commands finish. 663additional messages when the commands finish.
664 664
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index 101e5b1d8b7..d75bb003279 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -1,3 +1,8 @@
12010-11-13 Glenn Morris <rgm@gnu.org>
2
3 * emacs-lisp-intro.texi: Rename the `count-words-region' example,
4 since there is now a standard command of that name.
5
12010-10-11 Glenn Morris <rgm@gnu.org> 62010-10-11 Glenn Morris <rgm@gnu.org>
2 7
3 * Makefile.in (.dvi.ps): Remove unnecessary suffix rule. 8 * Makefile.in (.dvi.ps): Remove unnecessary suffix rule.
diff --git a/doc/lispintro/emacs-lisp-intro.texi b/doc/lispintro/emacs-lisp-intro.texi
index dfba68cc911..50b11a62fa0 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -704,23 +704,25 @@ Regular Expression Searches
704* fwd-para while:: The forward motion @code{while} loop. 704* fwd-para while:: The forward motion @code{while} loop.
705 705
706Counting: Repetition and Regexps 706Counting: Repetition and Regexps
707@set COUNT-WORDS count-words-example
708@c Length of variable name chosen so that things still line up when expanded.
707 709
708* Why Count Words:: 710* Why Count Words::
709* count-words-region:: Use a regexp, but find a problem. 711* @value{COUNT-WORDS}:: Use a regexp, but find a problem.
710* recursive-count-words:: Start with case of no words in region. 712* recursive-count-words:: Start with case of no words in region.
711* Counting Exercise:: 713* Counting Exercise::
712 714
713The @code{count-words-region} Function 715The @code{@value{COUNT-WORDS}} Function
714 716
715* Design count-words-region:: The definition using a @code{while} loop. 717* Design @value{COUNT-WORDS}:: The definition using a @code{while} loop.
716* Whitespace Bug:: The Whitespace Bug in @code{count-words-region}. 718* Whitespace Bug:: The Whitespace Bug in @code{@value{COUNT-WORDS}}.
717 719
718Counting Words in a @code{defun} 720Counting Words in a @code{defun}
719 721
720* Divide and Conquer:: 722* Divide and Conquer::
721* Words and Symbols:: What to count? 723* Words and Symbols:: What to count?
722* Syntax:: What constitutes a word or symbol? 724* Syntax:: What constitutes a word or symbol?
723* count-words-in-defun:: Very like @code{count-words}. 725* count-words-in-defun:: Very like @code{@value{COUNT-WORDS}}.
724* Several defuns:: Counting several defuns in a file. 726* Several defuns:: Counting several defuns in a file.
725* Find a File:: Do you want to look at a file? 727* Find a File:: Do you want to look at a file?
726* lengths-list-file:: A list of the lengths of many definitions. 728* lengths-list-file:: A list of the lengths of many definitions.
@@ -13829,35 +13831,37 @@ word count commands using @code{while} loops and recursion.
13829 13831
13830@menu 13832@menu
13831* Why Count Words:: 13833* Why Count Words::
13832* count-words-region:: Use a regexp, but find a problem. 13834* @value{COUNT-WORDS}:: Use a regexp, but find a problem.
13833* recursive-count-words:: Start with case of no words in region. 13835* recursive-count-words:: Start with case of no words in region.
13834* Counting Exercise:: 13836* Counting Exercise::
13835@end menu 13837@end menu
13836 13838
13837@node Why Count Words, count-words-region, Counting Words, Counting Words 13839@node Why Count Words, @value{COUNT-WORDS}, Counting Words, Counting Words
13838@ifnottex 13840@ifnottex
13839@unnumberedsec Counting words 13841@unnumberedsec Counting words
13840@end ifnottex 13842@end ifnottex
13841 13843
13842The standard Emacs distribution contains a function for counting the 13844The standard Emacs distribution contains functions for counting the
13843number of lines within a region. However, there is no corresponding 13845number of lines and words within a region.
13844function for counting words.
13845 13846
13846Certain types of writing ask you to count words. Thus, if you write 13847Certain types of writing ask you to count words. Thus, if you write
13847an essay, you may be limited to 800 words; if you write a novel, you 13848an essay, you may be limited to 800 words; if you write a novel, you
13848may discipline yourself to write 1000 words a day. It seems odd to me 13849may discipline yourself to write 1000 words a day. It seems odd, but
13849that Emacs lacks a word count command. Perhaps people use Emacs 13850for a long time, Emacs lacked a word count command. Perhaps people used
13850mostly for code or types of documentation that do not require word 13851Emacs mostly for code or types of documentation that did not require
13851counts; or perhaps they restrict themselves to the operating system 13852word counts; or perhaps they restricted themselves to the operating
13852word count command, @code{wc}. Alternatively, people may follow 13853system word count command, @code{wc}. Alternatively, people may have
13853the publishers' convention and compute a word count by dividing the 13854followed the publishers' convention and computed a word count by
13854number of characters in a document by five. In any event, here are 13855dividing the number of characters in a document by five.
13855commands to count words. 13856
13856 13857There are many ways to implement a command to count words. Here are
13857@node count-words-region, recursive-count-words, Why Count Words, Counting Words 13858some examples, which you may wish to compare with the standard Emacs
13859command, @code{count-words-region}.
13860
13861@node @value{COUNT-WORDS}, recursive-count-words, Why Count Words, Counting Words
13858@comment node-name, next, previous, up 13862@comment node-name, next, previous, up
13859@section The @code{count-words-region} Function 13863@section The @code{@value{COUNT-WORDS}} Function
13860@findex count-words-region 13864@findex @value{COUNT-WORDS}
13861 13865
13862A word count command could count words in a line, paragraph, region, 13866A word count command could count words in a line, paragraph, region,
13863or buffer. What should the command cover? You could design the 13867or buffer. What should the command cover? You could design the
@@ -13865,7 +13869,7 @@ command to count the number of words in a complete buffer. However,
13865the Emacs tradition encourages flexibility---you may want to count 13869the Emacs tradition encourages flexibility---you may want to count
13866words in just a section, rather than all of a buffer. So it makes 13870words in just a section, rather than all of a buffer. So it makes
13867more sense to design the command to count the number of words in a 13871more sense to design the command to count the number of words in a
13868region. Once you have a @code{count-words-region} command, you can, 13872region. Once you have a command to count words in a region, you can,
13869if you wish, count words in a whole buffer by marking it with 13873if you wish, count words in a whole buffer by marking it with
13870@w{@kbd{C-x h}} (@code{mark-whole-buffer}). 13874@w{@kbd{C-x h}} (@code{mark-whole-buffer}).
13871 13875
@@ -13876,13 +13880,13 @@ region. This means that word counting is ideally suited to recursion
13876or to a @code{while} loop. 13880or to a @code{while} loop.
13877 13881
13878@menu 13882@menu
13879* Design count-words-region:: The definition using a @code{while} loop. 13883* Design @value{COUNT-WORDS}:: The definition using a @code{while} loop.
13880* Whitespace Bug:: The Whitespace Bug in @code{count-words-region}. 13884* Whitespace Bug:: The Whitespace Bug in @code{@value{COUNT-WORDS}}.
13881@end menu 13885@end menu
13882 13886
13883@node Design count-words-region, Whitespace Bug, count-words-region, count-words-region 13887@node Design @value{COUNT-WORDS}, Whitespace Bug, @value{COUNT-WORDS}, @value{COUNT-WORDS}
13884@ifnottex 13888@ifnottex
13885@unnumberedsubsec Designing @code{count-words-region} 13889@unnumberedsubsec Designing @code{@value{COUNT-WORDS}}
13886@end ifnottex 13890@end ifnottex
13887 13891
13888First, we will implement the word count command with a @code{while} 13892First, we will implement the word count command with a @code{while}
@@ -13905,7 +13909,9 @@ What we need to do is fill in the slots.
13905 13909
13906The name of the function should be self-explanatory and similar to the 13910The name of the function should be self-explanatory and similar to the
13907existing @code{count-lines-region} name. This makes the name easier 13911existing @code{count-lines-region} name. This makes the name easier
13908to remember. @code{count-words-region} is a good choice. 13912to remember. @code{count-words-region} is the obvious choice. Since
13913that name is now used for the standard Emacs command to count words, we
13914will name our implementation @code{@value{COUNT-WORDS}}.
13909 13915
13910The function counts words within a region. This means that the 13916The function counts words within a region. This means that the
13911argument list must contain symbols that are bound to the two 13917argument list must contain symbols that are bound to the two
@@ -13923,7 +13929,7 @@ first, to set up conditions under which the @code{while} loop can
13923count words, second, to run the @code{while} loop, and third, to send 13929count words, second, to run the @code{while} loop, and third, to send
13924a message to the user. 13930a message to the user.
13925 13931
13926When a user calls @code{count-words-region}, point may be at the 13932When a user calls @code{@value{COUNT-WORDS}}, point may be at the
13927beginning or the end of the region. However, the counting process 13933beginning or the end of the region. However, the counting process
13928must start at the beginning of the region. This means we will want 13934must start at the beginning of the region. This means we will want
13929to put point there if it is not already there. Executing 13935to put point there if it is not already there. Executing
@@ -14015,7 +14021,7 @@ All this leads to the following function definition:
14015@smallexample 14021@smallexample
14016@group 14022@group
14017;;; @r{First version; has bugs!} 14023;;; @r{First version; has bugs!}
14018(defun count-words-region (beginning end) 14024(defun @value{COUNT-WORDS} (beginning end)
14019 "Print number of words in the region. 14025 "Print number of words in the region.
14020Words are defined as at least one word-constituent 14026Words are defined as at least one word-constituent
14021character followed by at least one character that 14027character followed by at least one character that
@@ -14056,14 +14062,14 @@ table determines which characters these are."
14056@noindent 14062@noindent
14057As written, the function works, but not in all circumstances. 14063As written, the function works, but not in all circumstances.
14058 14064
14059@node Whitespace Bug, , Design count-words-region, count-words-region 14065@node Whitespace Bug, , Design @value{COUNT-WORDS}, @value{COUNT-WORDS}
14060@comment node-name, next, previous, up 14066@comment node-name, next, previous, up
14061@subsection The Whitespace Bug in @code{count-words-region} 14067@subsection The Whitespace Bug in @code{@value{COUNT-WORDS}}
14062 14068
14063The @code{count-words-region} command described in the preceding 14069The @code{@value{COUNT-WORDS}} command described in the preceding
14064section has two bugs, or rather, one bug with two manifestations. 14070section has two bugs, or rather, one bug with two manifestations.
14065First, if you mark a region containing only whitespace in the middle 14071First, if you mark a region containing only whitespace in the middle
14066of some text, the @code{count-words-region} command tells you that the 14072of some text, the @code{@value{COUNT-WORDS}} command tells you that the
14067region contains one word! Second, if you mark a region containing 14073region contains one word! Second, if you mark a region containing
14068only whitespace at the end of the buffer or the accessible portion of 14074only whitespace at the end of the buffer or the accessible portion of
14069a narrowed buffer, the command displays an error message that looks 14075a narrowed buffer, the command displays an error message that looks
@@ -14084,7 +14090,7 @@ parenthesis and type @kbd{C-x C-e} to install it.
14084@smallexample 14090@smallexample
14085@group 14091@group
14086;; @r{First version; has bugs!} 14092;; @r{First version; has bugs!}
14087(defun count-words-region (beginning end) 14093(defun @value{COUNT-WORDS} (beginning end)
14088 "Print number of words in the region. 14094 "Print number of words in the region.
14089Words are defined as at least one word-constituent character followed 14095Words are defined as at least one word-constituent character followed
14090by at least one character that is not a word-constituent. The buffer's 14096by at least one character that is not a word-constituent. The buffer's
@@ -14123,12 +14129,12 @@ syntax table determines which characters these are."
14123If you wish, you can also install this keybinding by evaluating it: 14129If you wish, you can also install this keybinding by evaluating it:
14124 14130
14125@smallexample 14131@smallexample
14126(global-set-key "\C-c=" 'count-words-region) 14132(global-set-key "\C-c=" '@value{COUNT-WORDS})
14127@end smallexample 14133@end smallexample
14128 14134
14129To conduct the first test, set mark and point to the beginning and end 14135To conduct the first test, set mark and point to the beginning and end
14130of the following line and then type @kbd{C-c =} (or @kbd{M-x 14136of the following line and then type @kbd{C-c =} (or @kbd{M-x
14131count-words-region} if you have not bound @kbd{C-c =}): 14137@value{COUNT-WORDS}} if you have not bound @kbd{C-c =}):
14132 14138
14133@smallexample 14139@smallexample
14134 one two three 14140 one two three
@@ -14139,7 +14145,7 @@ Emacs will tell you, correctly, that the region has three words.
14139 14145
14140Repeat the test, but place mark at the beginning of the line and place 14146Repeat the test, but place mark at the beginning of the line and place
14141point just @emph{before} the word @samp{one}. Again type the command 14147point just @emph{before} the word @samp{one}. Again type the command
14142@kbd{C-c =} (or @kbd{M-x count-words-region}). Emacs should tell you 14148@kbd{C-c =} (or @kbd{M-x @value{COUNT-WORDS}}). Emacs should tell you
14143that the region has no words, since it is composed only of the 14149that the region has no words, since it is composed only of the
14144whitespace at the beginning of the line. But instead Emacs tells you 14150whitespace at the beginning of the line. But instead Emacs tells you
14145that the region has one word! 14151that the region has one word!
@@ -14148,7 +14154,7 @@ For the third test, copy the sample line to the end of the
14148@file{*scratch*} buffer and then type several spaces at the end of the 14154@file{*scratch*} buffer and then type several spaces at the end of the
14149line. Place mark right after the word @samp{three} and point at the 14155line. Place mark right after the word @samp{three} and point at the
14150end of line. (The end of the line will be the end of the buffer.) 14156end of line. (The end of the line will be the end of the buffer.)
14151Type @kbd{C-c =} (or @kbd{M-x count-words-region}) as you did before. 14157Type @kbd{C-c =} (or @kbd{M-x @value{COUNT-WORDS}}) as you did before.
14152Again, Emacs should tell you that the region has no words, since it is 14158Again, Emacs should tell you that the region has no words, since it is
14153composed only of the whitespace at the end of the line. Instead, 14159composed only of the whitespace at the end of the line. Instead,
14154Emacs displays an error message saying @samp{Search failed}. 14160Emacs displays an error message saying @samp{Search failed}.
@@ -14157,7 +14163,7 @@ The two bugs stem from the same problem.
14157 14163
14158Consider the first manifestation of the bug, in which the command 14164Consider the first manifestation of the bug, in which the command
14159tells you that the whitespace at the beginning of the line contains 14165tells you that the whitespace at the beginning of the line contains
14160one word. What happens is this: The @code{M-x count-words-region} 14166one word. What happens is this: The @code{M-x @value{COUNT-WORDS}}
14161command moves point to the beginning of the region. The @code{while} 14167command moves point to the beginning of the region. The @code{while}
14162tests whether the value of point is smaller than the value of 14168tests whether the value of point is smaller than the value of
14163@code{end}, which it is. Consequently, the regular expression search 14169@code{end}, which it is. Consequently, the regular expression search
@@ -14191,7 +14197,7 @@ an error if the search fails. The optional fourth argument is a
14191repeat count. (In Emacs, you can see a function's documentation by 14197repeat count. (In Emacs, you can see a function's documentation by
14192typing @kbd{C-h f}, the name of the function, and then @key{RET}.) 14198typing @kbd{C-h f}, the name of the function, and then @key{RET}.)
14193 14199
14194In the @code{count-words-region} definition, the value of the end of 14200In the @code{@value{COUNT-WORDS}} definition, the value of the end of
14195the region is held by the variable @code{end} which is passed as an 14201the region is held by the variable @code{end} which is passed as an
14196argument to the function. Thus, we can add @code{end} as an argument 14202argument to the function. Thus, we can add @code{end} as an argument
14197to the regular expression search expression: 14203to the regular expression search expression:
@@ -14200,7 +14206,7 @@ to the regular expression search expression:
14200(re-search-forward "\\w+\\W*" end) 14206(re-search-forward "\\w+\\W*" end)
14201@end smallexample 14207@end smallexample
14202 14208
14203However, if you make only this change to the @code{count-words-region} 14209However, if you make only this change to the @code{@value{COUNT-WORDS}}
14204definition and then test the new version of the definition on a 14210definition and then test the new version of the definition on a
14205stretch of whitespace, you will receive an error message saying 14211stretch of whitespace, you will receive an error message saying
14206@samp{Search failed}. 14212@samp{Search failed}.
@@ -14231,7 +14237,7 @@ true-or-false-test tests true because the value of point is still less
14231than the value of end, since the @code{re-search-forward} expression 14237than the value of end, since the @code{re-search-forward} expression
14232did not move point. @dots{} and the cycle repeats @dots{} 14238did not move point. @dots{} and the cycle repeats @dots{}
14233 14239
14234The @code{count-words-region} definition requires yet another 14240The @code{@value{COUNT-WORDS}} definition requires yet another
14235modification, to cause the true-or-false-test of the @code{while} loop 14241modification, to cause the true-or-false-test of the @code{while} loop
14236to test false if the search fails. Put another way, there are two 14242to test false if the search fails. Put another way, there are two
14237conditions that must be satisfied in the true-or-false-test before the 14243conditions that must be satisfied in the true-or-false-test before the
@@ -14265,17 +14271,17 @@ succeeds and as a side effect moves point. Consequently, as words are
14265found, point is moved through the region. When the search expression 14271found, point is moved through the region. When the search expression
14266fails to find another word, or when point reaches the end of the 14272fails to find another word, or when point reaches the end of the
14267region, the true-or-false-test tests false, the @code{while} loop 14273region, the true-or-false-test tests false, the @code{while} loop
14268exits, and the @code{count-words-region} function displays one or 14274exits, and the @code{@value{COUNT-WORDS}} function displays one or
14269other of its messages. 14275other of its messages.
14270 14276
14271After incorporating these final changes, the @code{count-words-region} 14277After incorporating these final changes, the @code{@value{COUNT-WORDS}}
14272works without bugs (or at least, without bugs that I have found!). 14278works without bugs (or at least, without bugs that I have found!).
14273Here is what it looks like: 14279Here is what it looks like:
14274 14280
14275@smallexample 14281@smallexample
14276@group 14282@group
14277;;; @r{Final version:} @code{while} 14283;;; @r{Final version:} @code{while}
14278(defun count-words-region (beginning end) 14284(defun @value{COUNT-WORDS} (beginning end)
14279 "Print number of words in the region." 14285 "Print number of words in the region."
14280 (interactive "r") 14286 (interactive "r")
14281 (message "Counting words in region ... ") 14287 (message "Counting words in region ... ")
@@ -14309,7 +14315,7 @@ Here is what it looks like:
14309@end group 14315@end group
14310@end smallexample 14316@end smallexample
14311 14317
14312@node recursive-count-words, Counting Exercise, count-words-region, Counting Words 14318@node recursive-count-words, Counting Exercise, @value{COUNT-WORDS}, Counting Words
14313@comment node-name, next, previous, up 14319@comment node-name, next, previous, up
14314@section Count Words Recursively 14320@section Count Words Recursively
14315@cindex Count words recursively 14321@cindex Count words recursively
@@ -14319,7 +14325,7 @@ Here is what it looks like:
14319You can write the function for counting words recursively as well as 14325You can write the function for counting words recursively as well as
14320with a @code{while} loop. Let's see how this is done. 14326with a @code{while} loop. Let's see how this is done.
14321 14327
14322First, we need to recognize that the @code{count-words-region} 14328First, we need to recognize that the @code{@value{COUNT-WORDS}}
14323function has three jobs: it sets up the appropriate conditions for 14329function has three jobs: it sets up the appropriate conditions for
14324counting to occur; it counts the words in the region; and it sends a 14330counting to occur; it counts the words in the region; and it sends a
14325message to the user telling how many words there are. 14331message to the user telling how many words there are.
@@ -14333,7 +14339,7 @@ other. One function will set up the conditions and display the
14333message; the other will return the word count. 14339message; the other will return the word count.
14334 14340
14335Let us start with the function that causes the message to be displayed. 14341Let us start with the function that causes the message to be displayed.
14336We can continue to call this @code{count-words-region}. 14342We can continue to call this @code{@value{COUNT-WORDS}}.
14337 14343
14338This is the function that the user will call. It will be interactive. 14344This is the function that the user will call. It will be interactive.
14339Indeed, it will be similar to our previous versions of this 14345Indeed, it will be similar to our previous versions of this
@@ -14347,7 +14353,7 @@ previous versions:
14347@smallexample 14353@smallexample
14348@group 14354@group
14349;; @r{Recursive version; uses regular expression search} 14355;; @r{Recursive version; uses regular expression search}
14350(defun count-words-region (beginning end) 14356(defun @value{COUNT-WORDS} (beginning end)
14351 "@var{documentation}@dots{}" 14357 "@var{documentation}@dots{}"
14352 (@var{interactive-expression}@dots{}) 14358 (@var{interactive-expression}@dots{})
14353@end group 14359@end group
@@ -14388,7 +14394,7 @@ Using @code{let}, the function definition looks like this:
14388 14394
14389@smallexample 14395@smallexample
14390@group 14396@group
14391(defun count-words-region (beginning end) 14397(defun @value{COUNT-WORDS} (beginning end)
14392 "Print number of words in the region." 14398 "Print number of words in the region."
14393 (interactive "r") 14399 (interactive "r")
14394@end group 14400@end group
@@ -14484,7 +14490,7 @@ Thus, the do-again-test should look like this:
14484Note that the search expression is part of the do-again-test---the 14490Note that the search expression is part of the do-again-test---the
14485function returns @code{t} if its search succeeds and @code{nil} if it 14491function returns @code{t} if its search succeeds and @code{nil} if it
14486fails. (@xref{Whitespace Bug, , The Whitespace Bug in 14492fails. (@xref{Whitespace Bug, , The Whitespace Bug in
14487@code{count-words-region}}, for an explanation of how 14493@code{@value{COUNT-WORDS}}}, for an explanation of how
14488@code{re-search-forward} works.) 14494@code{re-search-forward} works.)
14489 14495
14490The do-again-test is the true-or-false test of an @code{if} clause. 14496The do-again-test is the true-or-false test of an @code{if} clause.
@@ -14657,7 +14663,7 @@ The wrapper:
14657@smallexample 14663@smallexample
14658@group 14664@group
14659;;; @r{Recursive version} 14665;;; @r{Recursive version}
14660(defun count-words-region (beginning end) 14666(defun @value{COUNT-WORDS} (beginning end)
14661 "Print number of words in the region. 14667 "Print number of words in the region.
14662@end group 14668@end group
14663 14669
@@ -14702,11 +14708,11 @@ exclamation mark, and question mark. Do the same using recursion.
14702 14708
14703Our next project is to count the number of words in a function 14709Our next project is to count the number of words in a function
14704definition. Clearly, this can be done using some variant of 14710definition. Clearly, this can be done using some variant of
14705@code{count-word-region}. @xref{Counting Words, , Counting Words: 14711@code{@value{COUNT-WORDS}}. @xref{Counting Words, , Counting Words:
14706Repetition and Regexps}. If we are just going to count the words in 14712Repetition and Regexps}. If we are just going to count the words in
14707one definition, it is easy enough to mark the definition with the 14713one definition, it is easy enough to mark the definition with the
14708@kbd{C-M-h} (@code{mark-defun}) command, and then call 14714@kbd{C-M-h} (@code{mark-defun}) command, and then call
14709@code{count-word-region}. 14715@code{@value{COUNT-WORDS}}.
14710 14716
14711However, I am more ambitious: I want to count the words and symbols in 14717However, I am more ambitious: I want to count the words and symbols in
14712every definition in the Emacs sources and then print a graph that 14718every definition in the Emacs sources and then print a graph that
@@ -14719,7 +14725,7 @@ and this will tell.
14719* Divide and Conquer:: 14725* Divide and Conquer::
14720* Words and Symbols:: What to count? 14726* Words and Symbols:: What to count?
14721* Syntax:: What constitutes a word or symbol? 14727* Syntax:: What constitutes a word or symbol?
14722* count-words-in-defun:: Very like @code{count-words}. 14728* count-words-in-defun:: Very like @code{@value{COUNT-WORDS}}.
14723* Several defuns:: Counting several defuns in a file. 14729* Several defuns:: Counting several defuns in a file.
14724* Find a File:: Do you want to look at a file? 14730* Find a File:: Do you want to look at a file?
14725* lengths-list-file:: A list of the lengths of many definitions. 14731* lengths-list-file:: A list of the lengths of many definitions.
@@ -14793,11 +14799,11 @@ of ten words and symbols.
14793@noindent 14799@noindent
14794However, if we mark the @code{multiply-by-seven} definition with 14800However, if we mark the @code{multiply-by-seven} definition with
14795@kbd{C-M-h} (@code{mark-defun}), and then call 14801@kbd{C-M-h} (@code{mark-defun}), and then call
14796@code{count-words-region} on it, we will find that 14802@code{@value{COUNT-WORDS}} on it, we will find that
14797@code{count-words-region} claims the definition has eleven words, not 14803@code{@value{COUNT-WORDS}} claims the definition has eleven words, not
14798ten! Something is wrong! 14804ten! Something is wrong!
14799 14805
14800The problem is twofold: @code{count-words-region} does not count the 14806The problem is twofold: @code{@value{COUNT-WORDS}} does not count the
14801@samp{*} as a word, and it counts the single symbol, 14807@samp{*} as a word, and it counts the single symbol,
14802@code{multiply-by-seven}, as containing three words. The hyphens are 14808@code{multiply-by-seven}, as containing three words. The hyphens are
14803treated as if they were interword spaces rather than intraword 14809treated as if they were interword spaces rather than intraword
@@ -14805,8 +14811,8 @@ connectors: @samp{multiply-by-seven} is counted as if it were written
14805@samp{multiply by seven}. 14811@samp{multiply by seven}.
14806 14812
14807The cause of this confusion is the regular expression search within 14813The cause of this confusion is the regular expression search within
14808the @code{count-words-region} definition that moves point forward word 14814the @code{@value{COUNT-WORDS}} definition that moves point forward word
14809by word. In the canonical version of @code{count-words-region}, the 14815by word. In the canonical version of @code{@value{COUNT-WORDS}}, the
14810regexp is: 14816regexp is:
14811 14817
14812@smallexample 14818@smallexample
@@ -14839,8 +14845,8 @@ Syntax tables specify which characters belong to which categories.
14839Usually, a hyphen is not specified as a `word constituent character'. 14845Usually, a hyphen is not specified as a `word constituent character'.
14840Instead, it is specified as being in the `class of characters that are 14846Instead, it is specified as being in the `class of characters that are
14841part of symbol names but not words.' This means that the 14847part of symbol names but not words.' This means that the
14842@code{count-words-region} function treats it in the same way it treats 14848@code{@value{COUNT-WORDS}} function treats it in the same way it treats
14843an interword white space, which is why @code{count-words-region} 14849an interword white space, which is why @code{@value{COUNT-WORDS}}
14844counts @samp{multiply-by-seven} as three words. 14850counts @samp{multiply-by-seven} as three words.
14845 14851
14846There are two ways to cause Emacs to count @samp{multiply-by-seven} as 14852There are two ways to cause Emacs to count @samp{multiply-by-seven} as
@@ -14853,7 +14859,7 @@ most common character within symbols that is not typically a word
14853constituent character; there are others, too. 14859constituent character; there are others, too.
14854 14860
14855Alternatively, we can redefine the regular expression used in the 14861Alternatively, we can redefine the regular expression used in the
14856@code{count-words} definition so as to include symbols. This 14862@code{@value{COUNT-WORDS}} definition so as to include symbols. This
14857procedure has the merit of clarity, but the task is a little tricky. 14863procedure has the merit of clarity, but the task is a little tricky.
14858 14864
14859@need 1200 14865@need 1200
@@ -14910,7 +14916,7 @@ Here is the full regular expression:
14910@cindex Counting words in a @code{defun} 14916@cindex Counting words in a @code{defun}
14911 14917
14912We have seen that there are several ways to write a 14918We have seen that there are several ways to write a
14913@code{count-word-region} function. To write a 14919@code{count-words-region} function. To write a
14914@code{count-words-in-defun}, we need merely adapt one of these 14920@code{count-words-in-defun}, we need merely adapt one of these
14915versions. 14921versions.
14916 14922
@@ -15044,7 +15050,7 @@ Put together, the @code{count-words-in-defun} definition looks like this:
15044How to test this? The function is not interactive, but it is easy to 15050How to test this? The function is not interactive, but it is easy to
15045put a wrapper around the function to make it interactive; we can use 15051put a wrapper around the function to make it interactive; we can use
15046almost the same code as for the recursive version of 15052almost the same code as for the recursive version of
15047@code{count-words-region}: 15053@code{@value{COUNT-WORDS}}:
15048 15054
15049@smallexample 15055@smallexample
15050@group 15056@group
@@ -18885,7 +18891,7 @@ Lisp Reference Manual}.
18885 18891
18886@itemize @bullet 18892@itemize @bullet
18887@item 18893@item
18888Install the @code{count-words-region} function and then cause it to 18894Install the @code{@value{COUNT-WORDS}} function and then cause it to
18889enter the built-in debugger when you call it. Run the command on a 18895enter the built-in debugger when you call it. Run the command on a
18890region containing two words. You will need to press @kbd{d} a 18896region containing two words. You will need to press @kbd{d} a
18891remarkable number of times. On your system, is a `hook' called after 18897remarkable number of times. On your system, is a `hook' called after
@@ -18894,7 +18900,7 @@ Overview, , Command Loop Overview, elisp, The GNU Emacs Lisp Reference
18894Manual}.) 18900Manual}.)
18895 18901
18896@item 18902@item
18897Copy @code{count-words-region} into the @file{*scratch*} buffer, 18903Copy @code{@value{COUNT-WORDS}} into the @file{*scratch*} buffer,
18898instrument the function for Edebug, and walk through its execution. 18904instrument the function for Edebug, and walk through its execution.
18899The function does not need to have a bug, although you can introduce 18905The function does not need to have a bug, although you can introduce
18900one if you wish. If the function lacks a bug, the walk-through 18906one if you wish. If the function lacks a bug, the walk-through
@@ -18909,7 +18915,7 @@ for commands made outside of the Edebug debugging buffer.)
18909@item 18915@item
18910In the Edebug debugging buffer, use the @kbd{p} 18916In the Edebug debugging buffer, use the @kbd{p}
18911(@code{edebug-bounce-point}) command to see where in the region the 18917(@code{edebug-bounce-point}) command to see where in the region the
18912@code{count-words-region} is working. 18918@code{@value{COUNT-WORDS}} is working.
18913 18919
18914@item 18920@item
18915Move point to some spot further down the function and then type the 18921Move point to some spot further down the function and then type the
@@ -22272,6 +22278,3 @@ airplane.
22272 22278
22273@bye 22279@bye
22274 22280
22275@ignore
22276 arch-tag: da1a2154-531f-43a8-8e33-fc7faad10acf
22277@end ignore
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index f5878dfed74..36d85bc98ba 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,77 @@
12010-12-08 Glenn Morris <rgm@gnu.org>
2
3 * buffers.texi (Modification Time):
4 verify-visited-file-modtime now defaults to the current buffer.
5
62010-11-27 Chong Yidong <cyd@stupidchicken.com>
7
8 * nonascii.texi (Converting Representations): Document byte-to-string.
9
10 * strings.texi (Creating Strings): Don't mention semi-obsolete
11 function char-to-string.
12 (String Conversion): Shorten discussion of semi-obsolete function
13 string-to-char. Link to Converting Representations.
14
15 * objects.texi (Symbol Type):
16 * text.texi (Near Point):
17 * help.texi (Help Functions):
18 * functions.texi (Mapping Functions): Use string instead of
19 char-to-string in examples.
20
212010-11-27 Chong Yidong <cyd@stupidchicken.com>
22
23 * text.texi (Kill Functions, Kill Functions)
24 (Low-Level Kill Ring, Low-Level Kill Ring): Remove obsolete
25 YANK-HANDLER args.
26
27 * symbols.texi (Creating Symbols): Using unintern without an
28 obarray arg is now obsolete.
29
30 * numbers.texi (Float Basics): Document float-e and float-pi.
31
32 * variables.texi (Defining Variables): Change "pi" example to
33 "float-pi".
34
352010-11-26 Eli Zaretskii <eliz@gnu.org>
36
37 * commands.texi (Click Events): Document the values of X, Y and
38 COL, ROW in the event's position, when the click is on the header
39 or mode line, on the fringes, or in the margins.
40
412010-11-17 Eli Zaretskii <eliz@gnu.org>
42
43 * customize.texi (Composite Types): Lower-case index entry.
44
45 * loading.texi (How Programs Do Loading): Document
46 load-file-name. (Bug#7346)
47
482010-11-17 Glenn Morris <rgm@gnu.org>
49
50 * text.texi (Kill Functions, Low-Level Kill Ring): Small fixes.
51
522010-11-13 Eli Zaretskii <eliz@gnu.org>
53
54 * display.texi (Usual Display): Characters with no fonts are not
55 necessarily displayed as empty boxes.
56
572010-10-31 Glenn Morris <rgm@gnu.org>
58
59 * maps.texi (Standard Keymaps): Update File menu description.
60
612010-10-28 Glenn Morris <rgm@gnu.org>
62
63 * Makefile.in (elisp.dvi, elisp.pdf): Also include $emacsdir.
64
652010-10-24 Eli Zaretskii <eliz@gnu.org>
66
67 * display.texi (Window Systems): Deprecate use of window-system as
68 a predicate.
69
702010-10-23 Glenn Morris <rgm@gnu.org>
71
72 * help.texi (Documentation Basics): Remove mentions of digest-doc and
73 sorted-doc.
74
12010-10-15 Eli Zaretskii <eliz@gnu.org> 752010-10-15 Eli Zaretskii <eliz@gnu.org>
2 76
3 * os.texi (Dynamic Libraries): New node, with slightly modified 77 * os.texi (Dynamic Libraries): New node, with slightly modified
diff --git a/doc/lispref/Makefile.in b/doc/lispref/Makefile.in
index f1caa9abfa2..be8b6ca2c9e 100644
--- a/doc/lispref/Makefile.in
+++ b/doc/lispref/Makefile.in
@@ -109,7 +109,7 @@ $(infodir)/elisp: $(srcs)
109 $(MAKEINFO) -o $@ $< 109 $(MAKEINFO) -o $@ $<
110 110
111elisp.dvi: $(srcs) 111elisp.dvi: $(srcs)
112 $(TEXI2DVI) -I $(srcdir) -I $(texinfodir) $< 112 $(TEXI2DVI) -I $(srcdir) -I $(texinfodir) -I $(emacsdir) $<
113 113
114elisp.html: $(srcs) 114elisp.html: $(srcs)
115 $(MAKEINFO) --html -o $@ $< 115 $(MAKEINFO) --html -o $@ $<
@@ -118,7 +118,7 @@ elisp.ps: elisp.dvi
118 $(DVIPS) -o $@ $< 118 $(DVIPS) -o $@ $<
119 119
120elisp.pdf: $(srcs) 120elisp.pdf: $(srcs)
121 $(TEXI2PDF) -I $(srcdir) -I $(texinfodir) $< 121 $(TEXI2PDF) -I $(srcdir) -I $(texinfodir) -I $(emacsdir) $<
122 122
123.PHONY: mostlyclean clean distclean maintainer-clean infoclean 123.PHONY: mostlyclean clean distclean maintainer-clean infoclean
124 124
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
index 2a7a603e733..8811178fe92 100644
--- a/doc/lispref/buffers.texi
+++ b/doc/lispref/buffers.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/buffers 7@setfilename ../../info/buffers
7@node Buffers, Windows, Backups and Auto-Saving, Top 8@node Buffers, Windows, Backups and Auto-Saving, Top
@@ -594,12 +595,12 @@ therefore checks the file's modification time using the functions
594described below before saving the file. (@xref{File Attributes}, 595described below before saving the file. (@xref{File Attributes},
595for how to examine a file's modification time.) 596for how to examine a file's modification time.)
596 597
597@defun verify-visited-file-modtime buffer 598@defun verify-visited-file-modtime &optional buffer
598This function compares what @var{buffer} has recorded for the 599This function compares what @var{buffer} (by default, the
599modification time of its visited file against the actual modification 600current-buffer) has recorded for the modification time of its visited
600time of the file as recorded by the operating system. The two should be 601file against the actual modification time of the file as recorded by the
601the same unless some other process has written the file since Emacs 602operating system. The two should be the same unless some other process
602visited or saved it. 603has written the file since Emacs visited or saved it.
603 604
604The function returns @code{t} if the last actual modification time and 605The function returns @code{t} if the last actual modification time and
605Emacs's recorded modification time are the same, @code{nil} otherwise. 606Emacs's recorded modification time are the same, @code{nil} otherwise.
@@ -1223,6 +1224,3 @@ This function returns the current gap position in the current buffer.
1223This function returns the current gap size of the current buffer. 1224This function returns the current gap size of the current buffer.
1224@end defun 1225@end defun
1225 1226
1226@ignore
1227 arch-tag: 2e53cfab-5691-41f6-b5a8-9c6a3462399c
1228@end ignore
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index 17cfcc0def8..d83396750ca 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -1285,8 +1285,12 @@ input stream. @xref{Key Sequence Input}.
1285@item @var{x}, @var{y} 1285@item @var{x}, @var{y}
1286These are the pixel coordinates of the click, relative to 1286These are the pixel coordinates of the click, relative to
1287the top left corner of @var{window}, which is @code{(0 . 0)}. 1287the top left corner of @var{window}, which is @code{(0 . 0)}.
1288For the mode or header line, @var{y} does not have meaningful data. 1288For a click on text, these are relative to the top left corner of
1289For the vertical line, @var{x} does not have meaningful data. 1289the window's text area. For the mode or header line, they are
1290relative to the top left window edge. For fringes, margins, and the
1291vertical border, @var{x} does not have meaningful data. For fringes
1292and margins, @var{y} is relative to the bottom edge of the header
1293line.
1290 1294
1291@item @var{timestamp} 1295@item @var{timestamp}
1292This is the time at which the event occurred, in milliseconds. 1296This is the time at which the event occurred, in milliseconds.
@@ -1316,7 +1320,12 @@ the window.
1316@item @var{col}, @var{row} 1320@item @var{col}, @var{row}
1317These are the actual coordinates of the glyph under the @var{x}, 1321These are the actual coordinates of the glyph under the @var{x},
1318@var{y} position, possibly padded with default character width 1322@var{y} position, possibly padded with default character width
1319glyphs if @var{x} is beyond the last glyph on the line. 1323glyphs if @var{x} is beyond the last glyph on the line. For clicks on
1324the header or mode line, these are measured from the top left edge of
1325the header or mode line. For clicks on the fringes and on the
1326vertical border, these have no meaningful data. For clicks on the
1327margins, @var{col} is measured from the left edge of the margin area
1328and @var{row} is measured from the top of the margin area.
1320 1329
1321@item @var{image} 1330@item @var{image}
1322This is the image object on which the click occurred. It is either 1331This is the image object on which the click occurred. It is either
@@ -1333,7 +1342,7 @@ left corner of the character glyph clicked on.
1333These are the pixel width and height of @var{object} or, if this is 1342These are the pixel width and height of @var{object} or, if this is
1334@code{nil}, those of the character glyph clicked on. 1343@code{nil}, those of the character glyph clicked on.
1335@end table 1344@end table
1336 1345
1337@sp 1 1346@sp 1
1338For mouse clicks on a scroll-bar, @var{position} has this form: 1347For mouse clicks on a scroll-bar, @var{position} has this form:
1339 1348
diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi
index 4b620049b04..bfd45518bc8 100644
--- a/doc/lispref/customize.texi
+++ b/doc/lispref/customize.texi
@@ -733,7 +733,7 @@ The value must be a valid color name, and you can do completion with
733 733
734@node Composite Types 734@node Composite Types
735@subsection Composite Types 735@subsection Composite Types
736@cindex Composite Types (customization) 736@cindex composite types (customization)
737 737
738 When none of the simple types is appropriate, you can use composite 738 When none of the simple types is appropriate, you can use composite
739types, which build new types from other types or from specified data. 739types, which build new types from other types or from specified data.
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index f4092cfa7ea..6e872ad4233 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -5579,9 +5579,9 @@ digit characters representing the character code in octal. (A display
5579table can specify a glyph to use instead of @samp{\}.) 5579table can specify a glyph to use instead of @samp{\}.)
5580 5580
5581@item 5581@item
5582Multibyte character codes above 256 are displayed as themselves, or as a 5582Multibyte character codes above 256 are displayed as themselves, or as
5583question mark or empty box if the terminal cannot display that 5583a question mark or a hex code or an empty box if the terminal cannot
5584character. 5584display that character.
5585@end itemize 5585@end itemize
5586 5586
5587 The usual display conventions apply even when there is a display 5587 The usual display conventions apply even when there is a display
@@ -5928,6 +5928,14 @@ selected frame). The list of possible symbols it returns is the same
5928one documented for the variable @code{window-system} above. 5928one documented for the variable @code{window-system} above.
5929@end defun 5929@end defun
5930 5930
5931 Do @emph{not} use @code{window-system} and
5932@code{initial-window-system} as predicates or boolean flag variables,
5933if you want to write code that works differently on text terminals and
5934graphic displays. That is because @code{window-system} is not a good
5935indicator of Emacs capabilities on a given display type. Instead, use
5936@code{display-graphic-p} or any of the other @code{display-*-p}
5937predicates described in @ref{Display Feature Testing}.
5938
5931@defvar window-setup-hook 5939@defvar window-setup-hook
5932This variable is a normal hook which Emacs runs after handling the 5940This variable is a normal hook which Emacs runs after handling the
5933initialization files. Emacs runs this hook after it has completed 5941initialization files. Emacs runs this hook after it has completed
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index d27010d2096..4c44d0a6439 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -1748,6 +1748,15 @@ If @var{frame} is not visible, this function does nothing. The return
1748value is not significant. 1748value is not significant.
1749@end defun 1749@end defun
1750 1750
1751@defun frame-pointer-visible-p &optional frame
1752This predicate function returns non-@code{nil} if the mouse pointer
1753displayed on @var{frame} is visible; otherwise it returns @code{nil}.
1754@var{frame} omitted or @code{nil} means the selected frame. This is
1755useful when @code{make-pointer-invisible} is set to @code{t}: it
1756allows to know if the pointer has been hidden.
1757@xref{Mouse Avoidance,,,emacs}.
1758@end defun
1759
1751@need 3000 1760@need 3000
1752 1761
1753@node Pop-Up Menus 1762@node Pop-Up Menus
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index d5c89dd7cf3..e9003601516 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -843,7 +843,7 @@ length of @var{sequence}. For example:
843 @result{} (a c e) 843 @result{} (a c e)
844(mapcar '1+ [1 2 3]) 844(mapcar '1+ [1 2 3])
845 @result{} (2 3 4) 845 @result{} (2 3 4)
846(mapcar 'char-to-string "abc") 846(mapcar 'string "abc")
847 @result{} ("a" "b" "c") 847 @result{} ("a" "b" "c")
848@end group 848@end group
849 849
diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi
index 026258f2472..f21e16e104a 100644
--- a/doc/lispref/help.texi
+++ b/doc/lispref/help.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/help 7@setfilename ../../info/help
7@node Documentation, Files, Modes, Top 8@node Documentation, Files, Modes, Top
@@ -106,12 +107,6 @@ documentation string. The functions @code{documentation} and
106documentation string from the appropriate file; this is transparent to 107documentation string from the appropriate file; this is transparent to
107the user. 108the user.
108 109
109@c Wordy to prevent overfull hbox. --rjc 15mar92
110 The @file{emacs/lib-src} directory contains two utilities that you can
111use to print nice-looking hardcopy for the file
112@file{emacs/etc/DOC-@var{version}}. These are @file{sorted-doc} and
113@file{digest-doc}.
114
115@node Accessing Documentation 110@node Accessing Documentation
116@section Access to Documentation Strings 111@section Access to Documentation Strings
117 112
@@ -551,7 +546,7 @@ follows:
551 546
552@smallexample 547@smallexample
553@group 548@group
554(define-key global-map (char-to-string help-char) 'help-command) 549(define-key global-map (string help-char) 'help-command)
555(fset 'help-command help-map) 550(fset 'help-command help-map)
556@end group 551@end group
557@end smallexample 552@end smallexample
@@ -701,6 +696,3 @@ echo area at first, and display the longer @var{help-text} strings only
701if the user types the help character again. 696if the user types the help character again.
702@end defopt 697@end defopt
703 698
704@ignore
705 arch-tag: ba36b4c2-e60f-49e2-bc25-61158fdcd815
706@end ignore
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
index dee2a0252eb..05d836140c7 100644
--- a/doc/lispref/loading.texi
+++ b/doc/lispref/loading.texi
@@ -107,6 +107,10 @@ in @code{load-path}, where @code{nil} stands for the default directory.
107@code{load-path}, then all three suffixes in the second directory, and 107@code{load-path}, then all three suffixes in the second directory, and
108so on. @xref{Library Search}. 108so on. @xref{Library Search}.
109 109
110Whatever the name under which the file is eventually found, and the
111directory where Emacs found it, Emacs sets the value of the variable
112@code{load-file-name} to that file's name.
113
110If you get a warning that @file{foo.elc} is older than @file{foo.el}, it 114If you get a warning that @file{foo.elc} is older than @file{foo.el}, it
111means you should consider recompiling @file{foo.el}. @xref{Byte 115means you should consider recompiling @file{foo.el}. @xref{Byte
112Compilation}. 116Compilation}.
@@ -157,6 +161,12 @@ This variable is non-@code{nil} if Emacs is in the process of loading a
157file, and it is @code{nil} otherwise. 161file, and it is @code{nil} otherwise.
158@end defvar 162@end defvar
159 163
164@defvar load-file-name
165When Emacs is in the process of loading a file, this variable's value
166is the name of that file, as Emacs found it during the search
167described earlier in this section.
168@end defvar
169
160@defvar load-read-function 170@defvar load-read-function
161@anchor{Definition of load-read-function} 171@anchor{Definition of load-read-function}
162@c do not allow page break at anchor; work around Texinfo deficiency. 172@c do not allow page break at anchor; work around Texinfo deficiency.
diff --git a/doc/lispref/maps.texi b/doc/lispref/maps.texi
index a5b126afcb2..4b416a82d64 100644
--- a/doc/lispref/maps.texi
+++ b/doc/lispref/maps.texi
@@ -1,7 +1,8 @@
1@c -*-texinfo-*- 1@c -*-texinfo-*-
2@c This is part of the GNU Emacs Lisp Reference Manual. 2@c This is part of the GNU Emacs Lisp Reference Manual.
3@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2001, 2002, 2003, 2004, 3@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2001, 2002, 2003, 2004,
4@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 4@c 2005, 2006, 2007, 2008, 2009, 2010
5@c Free Software Foundation, Inc.
5@c See the file elisp.texi for copying conditions. 6@c See the file elisp.texi for copying conditions.
6@setfilename ../../info/maps 7@setfilename ../../info/maps
7@node Standard Keymaps, Standard Hooks, Standard Buffer-Local Variables, Top 8@node Standard Keymaps, Standard Hooks, Standard Buffer-Local Variables, Top
@@ -183,9 +184,9 @@ A sparse keymap used by Lisp mode.
183@vindex menu-bar-edit-menu 184@vindex menu-bar-edit-menu
184The keymap which displays the Edit menu in the menu bar. 185The keymap which displays the Edit menu in the menu bar.
185 186
186@item menu-bar-files-menu 187@item menu-bar-file-menu
187@vindex menu-bar-files-menu 188@vindex menu-bar-file-menu
188The keymap which displays the Files menu in the menu bar. 189The keymap which displays the File menu in the menu bar.
189 190
190@item menu-bar-help-menu 191@item menu-bar-help-menu
191@vindex menu-bar-help-menu 192@vindex menu-bar-help-menu
@@ -239,6 +240,3 @@ The keymap defining the contents of the tool bar.
239A full keymap used by View mode. 240A full keymap used by View mode.
240@end table 241@end table
241 242
242@ignore
243 arch-tag: b741253c-7e23-4a02-b3fa-cffd9e4d72b9
244@end ignore
diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi
index 40c78d97da7..1c196c93f27 100644
--- a/doc/lispref/nonascii.texi
+++ b/doc/lispref/nonascii.texi
@@ -199,6 +199,13 @@ unibyte string, it is returned unchanged. Use this function for
199characters. 199characters.
200@end defun 200@end defun
201 201
202@defun byte-to-string byte
203@cindex byte to string
204This function returns a unibyte string containing a single byte of
205character data, @var{character}. It signals a error if
206@var{character} is not an integer between 0 and 255.
207@end defun
208
202@defun multibyte-char-to-unibyte char 209@defun multibyte-char-to-unibyte char
203This converts the multibyte character @var{char} to a unibyte 210This converts the multibyte character @var{char} to a unibyte
204character, and returns that character. If @var{char} is neither 211character, and returns that character. If @var{char} is neither
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi
index 62b4796350e..e83da348e05 100644
--- a/doc/lispref/numbers.texi
+++ b/doc/lispref/numbers.texi
@@ -224,6 +224,14 @@ down to an integer.
224@end example 224@end example
225@end defun 225@end defun
226 226
227@defvar float-e
228The mathematical constant @math{e} (2.71828@dots{}).
229@end defvar
230
231@defvar float-pi
232The mathematical constant @math{pi} (3.14159@dots{}).
233@end defvar
234
227@node Predicates on Numbers 235@node Predicates on Numbers
228@section Type Predicates for Numbers 236@section Type Predicates for Numbers
229@cindex predicates for numbers 237@cindex predicates for numbers
diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi
index b0b0e1d0042..93776f3b4f0 100644
--- a/doc/lispref/objects.texi
+++ b/doc/lispref/objects.texi
@@ -582,7 +582,6 @@ makes it invalid as a number.
582@group 582@group
583foo ; @r{A symbol named @samp{foo}.} 583foo ; @r{A symbol named @samp{foo}.}
584FOO ; @r{A symbol named @samp{FOO}, different from @samp{foo}.} 584FOO ; @r{A symbol named @samp{FOO}, different from @samp{foo}.}
585char-to-string ; @r{A symbol named @samp{char-to-string}.}
586@end group 585@end group
587@group 586@group
5881+ ; @r{A symbol named @samp{1+}} 5871+ ; @r{A symbol named @samp{1+}}
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 1128ca87d8a..94d2765a833 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -126,9 +126,8 @@ This function returns a string made up of @var{count} repetitions of
126 @result{} "" 126 @result{} ""
127@end example 127@end example
128 128
129 Other functions to compare with this one include @code{char-to-string} 129 Other functions to compare with this one include @code{make-vector}
130(@pxref{String Conversion}), @code{make-vector} (@pxref{Vectors}), and 130(@pxref{Vectors}) and @code{make-list} (@pxref{Building Lists}).
131@code{make-list} (@pxref{Building Lists}).
132@end defun 131@end defun
133 132
134@defun string &rest characters 133@defun string &rest characters
@@ -565,38 +564,6 @@ of text characters and general input events
565(@code{single-key-description} and @code{text-char-description}). These 564(@code{single-key-description} and @code{text-char-description}). These
566are used primarily for making help messages. 565are used primarily for making help messages.
567 566
568@defun char-to-string character
569@cindex character to string
570This function returns a new string containing one character,
571@var{character}. This function is semi-obsolete because the function
572@code{string} is more general. @xref{Creating Strings}.
573@end defun
574
575@defun string-to-char string
576@cindex string to character
577 This function returns the first character in @var{string}. If the
578string is empty, the function returns 0. The value is also 0 when the
579first character of @var{string} is the null character, @acronym{ASCII} code
5800.
581
582@example
583(string-to-char "ABC")
584 @result{} 65
585
586(string-to-char "xyz")
587 @result{} 120
588(string-to-char "")
589 @result{} 0
590@group
591(string-to-char "\000")
592 @result{} 0
593@end group
594@end example
595
596This function may be eliminated in the future if it does not seem useful
597enough to retain.
598@end defun
599
600@defun number-to-string number 567@defun number-to-string number
601@cindex integer to string 568@cindex integer to string
602@cindex integer to decimal 569@cindex integer to decimal
@@ -659,19 +626,39 @@ this function returns 0.
659@code{string-to-int} is an obsolete alias for this function. 626@code{string-to-int} is an obsolete alias for this function.
660@end defun 627@end defun
661 628
629@defun char-to-string character
630@cindex character to string
631This function returns a new string containing one character,
632@var{character}. This function is semi-obsolete because the function
633@code{string} is more general. @xref{Creating Strings}.
634@end defun
635
636@defun string-to-char string
637 This function returns the first character in @var{string}. This
638mostly identical to @code{(aref string 0)}, except that it returns 0
639if the string is empty. (The value is also 0 when the first character
640of @var{string} is the null character, @acronym{ASCII} code 0.) This
641function may be eliminated in the future if it does not seem useful
642enough to retain.
643@end defun
644
662 Here are some other functions that can convert to or from a string: 645 Here are some other functions that can convert to or from a string:
663 646
664@table @code 647@table @code
665@item concat 648@item concat
666@code{concat} can convert a vector or a list into a string. 649This function converts a vector or a list into a string.
667@xref{Creating Strings}. 650@xref{Creating Strings}.
668 651
669@item vconcat 652@item vconcat
670@code{vconcat} can convert a string into a vector. @xref{Vector 653This function converts a string into a vector. @xref{Vector
671Functions}. 654Functions}.
672 655
673@item append 656@item append
674@code{append} can convert a string into a list. @xref{Building Lists}. 657This function converts a string into a list. @xref{Building Lists}.
658
659@item byte-to-string
660This function converts a byte of character data into a unibyte string.
661@xref{Converting Representations}.
675@end table 662@end table
676 663
677@node Formatting Strings 664@node Formatting Strings
diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi
index 5bb44ff9675..ccf90e33cd0 100644
--- a/doc/lispref/symbols.texi
+++ b/doc/lispref/symbols.texi
@@ -383,7 +383,7 @@ See @code{documentation} in @ref{Accessing Documentation}, for another
383example using @code{mapatoms}. 383example using @code{mapatoms}.
384@end defun 384@end defun
385 385
386@defun unintern symbol &optional obarray 386@defun unintern symbol obarray
387This function deletes @var{symbol} from the obarray @var{obarray}. If 387This function deletes @var{symbol} from the obarray @var{obarray}. If
388@code{symbol} is not actually in the obarray, @code{unintern} does 388@code{symbol} is not actually in the obarray, @code{unintern} does
389nothing. If @var{obarray} is @code{nil}, the current obarray is used. 389nothing. If @var{obarray} is @code{nil}, the current obarray is used.
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 04e1e714133..45d358366de 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -87,7 +87,7 @@ buffer is @samp{@@}:
87 87
88@example 88@example
89@group 89@group
90(char-to-string (char-after 1)) 90(string (char-after 1))
91 @result{} "@@" 91 @result{} "@@"
92@end group 92@end group
93@end example 93@end example
@@ -122,9 +122,9 @@ but there is no peace.
122@end group 122@end group
123 123
124@group 124@group
125(char-to-string (preceding-char)) 125(string (preceding-char))
126 @result{} "a" 126 @result{} "a"
127(char-to-string (following-char)) 127(string (following-char))
128 @result{} "c" 128 @result{} "c"
129@end group 129@end group
130@end example 130@end example
@@ -866,7 +866,7 @@ adds it to the most recent element. It determines automatically (using
866@code{last-command}) whether the previous command was a kill command, 866@code{last-command}) whether the previous command was a kill command,
867and if so appends the killed text to the most recent entry. 867and if so appends the killed text to the most recent entry.
868 868
869@deffn Command kill-region start end &optional yank-handler 869@deffn Command kill-region start end
870This function kills the text in the region defined by @var{start} and 870This function kills the text in the region defined by @var{start} and
871@var{end}. The text is deleted but saved in the kill ring, along with 871@var{end}. The text is deleted but saved in the kill ring, along with
872its text properties. The value is always @code{nil}. 872its text properties. The value is always @code{nil}.
@@ -874,17 +874,10 @@ its text properties. The value is always @code{nil}.
874In an interactive call, @var{start} and @var{end} are point and 874In an interactive call, @var{start} and @var{end} are point and
875the mark. 875the mark.
876 876
877@c Emacs 19 feature
878If the buffer or text is read-only, @code{kill-region} modifies the kill 877If the buffer or text is read-only, @code{kill-region} modifies the kill
879ring just the same, then signals an error without modifying the buffer. 878ring just the same, then signals an error without modifying the buffer.
880This is convenient because it lets the user use a series of kill 879This is convenient because it lets the user use a series of kill
881commands to copy text from a read-only buffer into the kill ring. 880commands to copy text from a read-only buffer into the kill ring.
882
883If @var{yank-handler} is non-@code{nil}, this puts that value onto
884the string of killed text, as a @code{yank-handler} text property.
885@xref{Yanking}. Note that if @var{yank-handler} is @code{nil}, any
886@code{yank-handler} properties present on the killed text are copied
887onto the kill ring, like other text properties.
888@end deffn 881@end deffn
889 882
890@defopt kill-read-only-ok 883@defopt kill-read-only-ok
@@ -901,10 +894,10 @@ from the buffer. It returns @code{nil}.
901The command does not set @code{this-command} to @code{kill-region}, so a 894The command does not set @code{this-command} to @code{kill-region}, so a
902subsequent kill command does not append to the same kill ring entry. 895subsequent kill command does not append to the same kill ring entry.
903 896
904Don't call @code{copy-region-as-kill} in Lisp programs unless you aim to 897@c FIXME Why is it better? Why isn't copy-region-as-kill obsolete then?
905support Emacs 18. For newer Emacs versions, it is better to use 898@c Why is it used in many places in Emacs?
906@code{kill-new} or @code{kill-append} instead. @xref{Low-Level Kill 899In Lisp programs, it is better to use @code{kill-new} or
907Ring}. 900@code{kill-append} instead of this command. @xref{Low-Level Kill Ring}.
908@end deffn 901@end deffn
909 902
910@node Yanking 903@node Yanking
@@ -1042,8 +1035,8 @@ text property, if there is one.
1042@subsection Low-Level Kill Ring 1035@subsection Low-Level Kill Ring
1043 1036
1044 These functions and variables provide access to the kill ring at a 1037 These functions and variables provide access to the kill ring at a
1045lower level, but still convenient for use in Lisp programs, because they 1038lower level, but are still convenient for use in Lisp programs,
1046take care of interaction with window system selections 1039because they take care of interaction with window system selections
1047(@pxref{Window System Selections}). 1040(@pxref{Window System Selections}).
1048 1041
1049@defun current-kill n &optional do-not-move 1042@defun current-kill n &optional do-not-move
@@ -1069,7 +1062,7 @@ it returns the entry pointed at by the yanking pointer and does not
1069move the yanking pointer. 1062move the yanking pointer.
1070@end defun 1063@end defun
1071 1064
1072@defun kill-new string &optional replace yank-handler 1065@defun kill-new string &optional replace
1073This function pushes the text @var{string} onto the kill ring and 1066This function pushes the text @var{string} onto the kill ring and
1074makes the yanking pointer point to it. It discards the oldest entry 1067makes the yanking pointer point to it. It discards the oldest entry
1075if appropriate. It also invokes the value of 1068if appropriate. It also invokes the value of
@@ -1078,25 +1071,15 @@ if appropriate. It also invokes the value of
1078If @var{replace} is non-@code{nil}, then @code{kill-new} replaces the 1071If @var{replace} is non-@code{nil}, then @code{kill-new} replaces the
1079first element of the kill ring with @var{string}, rather than pushing 1072first element of the kill ring with @var{string}, rather than pushing
1080@var{string} onto the kill ring. 1073@var{string} onto the kill ring.
1081
1082If @var{yank-handler} is non-@code{nil}, this puts that value onto
1083the string of killed text, as a @code{yank-handler} property.
1084@xref{Yanking}. Note that if @var{yank-handler} is @code{nil}, then
1085@code{kill-new} copies any @code{yank-handler} properties present on
1086@var{string} onto the kill ring, as it does with other text properties.
1087@end defun 1074@end defun
1088 1075
1089@defun kill-append string before-p &optional yank-handler 1076@defun kill-append string before-p
1090This function appends the text @var{string} to the first entry in the 1077This function appends the text @var{string} to the first entry in the
1091kill ring and makes the yanking pointer point to the combined entry. 1078kill ring and makes the yanking pointer point to the combined entry.
1092Normally @var{string} goes at the end of the entry, but if 1079Normally @var{string} goes at the end of the entry, but if
1093@var{before-p} is non-@code{nil}, it goes at the beginning. This 1080@var{before-p} is non-@code{nil}, it goes at the beginning. This
1094function also invokes the value of @code{interprogram-cut-function} 1081function also invokes the value of @code{interprogram-cut-function}
1095(see below). This handles @var{yank-handler} just like 1082(see below).
1096@code{kill-new}, except that if @var{yank-handler} is different from
1097the @code{yank-handler} property of the first entry of the kill ring,
1098@code{kill-append} pushes the concatenated string onto the kill ring,
1099instead of replacing the original first entry with it.
1100@end defun 1083@end defun
1101 1084
1102@defvar interprogram-paste-function 1085@defvar interprogram-paste-function
@@ -4324,6 +4307,4 @@ code that is itself run from a modification hook, then rebind locally
4324@code{inhibit-modification-hooks} to @code{nil}. 4307@code{inhibit-modification-hooks} to @code{nil}.
4325@end defvar 4308@end defvar
4326 4309
4327@ignore 4310
4328 arch-tag: 3721e738-a1cb-4085-bc1a-6cb8d8e1d32b
4329@end ignore
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index a3a550868f5..20fe4dbc9fa 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -544,21 +544,23 @@ not the buffer-local value. (But you should not be making
544buffer-local bindings for a symbol that is defined with 544buffer-local bindings for a symbol that is defined with
545@code{defconst}.) 545@code{defconst}.)
546 546
547Here, @code{pi} is a constant that presumably ought not to be changed 547An example of the use of @code{defconst} is Emacs' definition of
548by anyone (attempts by the Indiana State Legislature notwithstanding). 548@code{float-pi}---the mathematical constant @math{pi}, which ought not
549As the second form illustrates, however, this is only advisory. 549to be changed by anyone (attempts by the Indiana State Legislature
550notwithstanding). As the second form illustrates, however,
551@code{defconst} is only advisory.
550 552
551@example 553@example
552@group 554@group
553(defconst pi 3.1415 "Pi to five places.") 555(defconst float-pi 3.141592653589793 "The value of Pi.")
554 @result{} pi 556 @result{} float-pi
555@end group 557@end group
556@group 558@group
557(setq pi 3) 559(setq float-pi 3)
558 @result{} pi 560 @result{} float-pi
559@end group 561@end group
560@group 562@group
561pi 563float-pi
562 @result{} 3 564 @result{} 3
563@end group 565@end group
564@end example 566@end example
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index df6e478a34e..b1b3b440767 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,311 @@
12010-12-06 Tassilo Horn <tassilo@member.fsf.org>
2
3 * gnus.texi (Server Commands): Point to the rest of the server
4 commands.
5
62010-12-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
7
8 * gnus.texi (Paging the Article): Note the reverse meanings of `C-u C-u
9 g'.
10
112010-12-02 Julien Danjou <julien@danjou.info>
12
13 * gnus.texi (Archived Messages): Remove gnus-outgoing-message-group.
14
152010-11-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
16
17 * gnus.texi (Customizing the IMAP Connection): Note the new defaults.
18 (Direct Functions): Note the STARTTLS upgrade.
19
202010-11-27 Glenn Morris <rgm@gnu.org>
21 James Clark <none@example.com>
22
23 * nxml-mode.texi (Introduction): New section.
24
252010-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
26
27 * gnus.texi (Server Commands): Document gnus-server-show-server.
28
292010-11-20 Michael Albinus <michael.albinus@gmx.de>
30
31 Sync with Tramp 2.2.0.
32
33 * trampver.texi: Update release number.
34
352010-11-19 Jay Belanger <jay.p.belanger@gmail.com>
36
37 * calc.texi (TeX and LaTeX Language Modes, Predefined Units):
38 Mention that the TeX specific units won't use the `tex' prefix
39 in TeX mode.
40
412010-11-18 Katsumi Yamaoka <yamaoka@jpl.org>
42
43 * gnus.texi (Misc Article): Document gnus-inhibit-images.
44
452010-11-17 Glenn Morris <rgm@gnu.org>
46
47 * edt.texi: Remove information about Emacs 19.
48
492010-11-17 Michael Albinus <michael.albinus@gmx.de>
50
51 * trampver.texi: Update release number.
52
532010-11-12 Katsumi Yamaoka <yamaoka@jpl.org>
54
55 * gnus.texi (Article Washing): Fix typo.
56
572010-11-11 Noorul Islam <noorul@noorul.com>
58
59 * org.texi: Fix typo.
60
612010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
62
63 * org.texi (Using capture): Explain that refiling is
64 sensitive to cursor position.
65
662010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
67
68 * org.texi (Images and tables): Add cross reference to link section.
69
702010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
71
72 * org.texi: Document the <c> cookie.
73
742010-11-11 Eric Schulte <schulte.eric@gmail.com>
75
76 * org.texi: multi-line header arguments :PROPERTIES: :ID:
77 b77c8857-6c76-4ea9-8a61-ddc2648d96c4 :END:.
78
792010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
80
81 * org.texi (CSS support): Document :HTML_CONTAINER_CLASS: property.
82
832010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
84
85 * org.texi (Project alist): Mention that this is a property list.
86
872010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
88
89 * org.texi (Setting up the staging area): Document that
90 file names remain visible when encrypting the MobileOrg files.
91
922010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
93
94 * org.texi (Setting up the staging area): Document which
95 versions are needed for encryption.
96
972010-11-11 Eric Schulte <schulte.eric@gmail.com>
98
99 * org.texi (noweb): Update :noweb documentation to
100 reflect the new "tangle" argument.
101
1022010-11-11 Eric Schulte <schulte.eric@gmail.com>
103
104 * org.texi (Batch execution): Improve tangling script in
105 documentation.
106
1072010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
108
109 * org.texi (Handling links):
110 (In-buffer settings): Document inlining images on startup.
111
1122010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
113
114 * org.texi (Setting up the staging area): Document use of
115 crypt password.
116
1172010-11-11 David Maus <dmaus@ictsoc.de>
118
119 * org.texi (Template expansion): Add date related link type escapes.
120
1212010-11-11 David Maus <dmaus@ictsoc.de>
122
123 * org.texi (Template expansion): Add mew in table for link type
124 escapes.
125
1262010-11-11 David Maus <dmaus@ictsoc.de>
127
128 * org.texi (Template expansion): Fix typo in link type escapes.
129
1302010-11-11 Eric Schulte <schulte.eric@gmail.com>
131
132 * org.texi (Structure of code blocks): Another documentation tweak.
133
1342010-11-11 Eric Schulte <schulte.eric@gmail.com>
135
136 * org.texi (Structure of code blocks): Documentation tweak.
137
1382010-11-11 Eric Schulte <schulte.eric@gmail.com>
139
140 * org.texi (Structure of code blocks):
141 Update documentation to mention inline code block syntax.
142
1432010-11-11 Eric Schulte <schulte.eric@gmail.com>
144
145 * org.texi (comments): Improve wording.
146
1472010-11-11 Eric Schulte <schulte.eric@gmail.com>
148
149 * org.texi (comments): Document the new :comments header arguments.
150
1512010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
152
153 * org.texi (Installation): Remove the special
154 installation instructions for XEmacs.
155
1562010-11-11 Jambunathan K <kjambunathan@gmail.com> (tiny change)
157
158 * org.texi (Easy Templates): New section. Documents quick
159 insertion of empty structural elements.
160
1612010-11-11 Noorul Islam <noorul@noorul.com>
162
163 * org.texi: Fix doc.
164
1652010-11-11 Jambunathan K <kjambunathan@gmail.com> (tiny change)
166
167 * org.texi (The date/time prompt): Document specification
168 of time ranges.
169
1702010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
171
172 * org.texi (Internal links): Document the changes in
173 internal links.
174
1752010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
176
177 * org.texi (Agenda commands): Document the limitation for
178 the filter preset - it can only be used for an entire agenda
179 view, not in an individual block in a block agenda.
180
1812010-11-11 Eric S Fraga <e.fraga@ucl.ac.uk>
182
183 * org.texi (iCalendar export): Document alarm creation.
184
1852010-11-10 Michael Albinus <michael.albinus@gmx.de>
186
187 * dbus.texi (Type Conversion): Introduce `:unix-fd' type mapping.
188
1892010-11-09 Lars Magne Ingebrigtsen <larsi@gnus.org>
190
191 * gnus.texi (Article Washing): Document gnus-article-treat-non-ascii.
192
1932010-11-09 Jay Belanger <jay.p.belanger@gmail.com>
194
195 * calc.texi: Use emacsver.texi to determine Emacs version.
196
1972010-11-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
198
199 * gnus.texi (Customizing the IMAP Connection): Remove nnir mention,
200 since that works by default.
201
2022010-11-03 Kan-Ru Chen <kanru@kanru.info> (tiny change)
203
204 * gnus.texi (Customizing the IMAP Connection): Document
205 `nnimap-expunge' and remove `nnimap-expunge-inbox' from example.
206
2072010-11-04 Michael Albinus <michael.albinus@gmx.de>
208
209 * tramp.texi (Remote shell setup): New item "Interactive shell
210 prompt". Reported by Christian Millour <cm@abtela.com>.
211 (Remote shell setup, Remote processes): Use @code{} for
212 environment variables.
213
2142010-11-03 Glenn Morris <rgm@gnu.org>
215
216 * ediff.texi (Quick Help Commands, Miscellaneous):
217 * gnus.texi (Agent Variables, Configuring nnmairix): Spelling fix.
218
2192010-10-31 Lars Magne Ingebrigtsen <larsi@gnus.org>
220
221 * gnus.texi (Paging the Article): Document C-u g/C-u C-u g.
222
2232010-10-31 Glenn Morris <rgm@gnu.org>
224
225 * mh-e.texi (Preface, From Bill Wohler): Change 23 to past tense.
226
2272010-10-31 Glenn Morris <rgm@gnu.org>
228
229 * cc-mode.texi: Remove reference to defunct viewcvs URL.
230
2312010-10-29 Lars Magne Ingebrigtsen <larsi@gnus.org>
232
233 * gnus.texi (Client-Side IMAP Splitting): Mention
234 nnimap-unsplittable-articles.
235
2362010-10-29 Julien Danjou <julien@danjou.info>
237
238 * gnus.texi (Finding the News): Remove references to obsoletes
239 variables `gnus-nntp-server' and `gnus-secondary-servers'.
240
2412010-10-29 Eli Zaretskii <eliz@gnu.org>
242
243 * makefile.w32-in (MAKEINFO): Add -I$(emacsdir).
244 (ENVADD): Remove extra -I$(emacsdir), included in $(MAKEINFO).
245 ($(infodir)/efaq): Remove -I$(emacsdir), included in $(MAKEINFO).
246 ($(infodir)/calc, calc.dvi): Depend on $(emacsdir)/emacsver.texi.
247
2482010-10-28 Glenn Morris <rgm@gnu.org>
249
250 * Makefile.in (MAKEINFO, ENVADD): Add $emacsdir to include path.
251 (($(infodir)/calc, calc.dvi, calc.pdf): Depend on emacsver.texi.
252 ($(infodir)/efaq): Remove -I option now in $MAKEINFO.
253
2542010-10-25 Daiki Ueno <ueno@unixuser.org>
255
256 * epa.texi (Mail-mode integration): Add alternative key bindings
257 for epa-mail commands; escape comma.
258 Don't use the word "PGP", since it is a non-free program.
259
2602010-10-24 Jay Belanger <jay.p.belanger@gmail.com>
261
262 * calc.texi: Use emacsver.texi to determine Emacs version.
263
2642010-10-24 Juanma Barranquero <lekktu@gmail.com>
265
266 * gnus.texi (Group Parameters, Buttons): Fix typos.
267
2682010-10-22 Tassilo Horn <tassilo@member.fsf.org>
269
270 * gnus.texi (Subscription Commands): Mention that you can also
271 subscribe to new groups via the Server buffer, which is probably more
272 convenient when subscribing to many groups.
273
2742010-10-21 Julien Danjou <julien@danjou.info>
275
276 * message.texi (Message Headers): Allow message-default-headers to be a
277 function.
278
2792010-10-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
280
281 * gnus-news.texi: Mention new archive defaults.
282
2832010-10-21 Katsumi Yamaoka <yamaoka@jpl.org>
284
285 * gnus.texi (RSS): Remove nnrss-wash-html-in-text-plain-parts.
286
2872010-10-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
288
289 * gnus.texi (HTML): Document the function value of
290 gnus-blocked-images.
291 (Article Washing): shr and gnus-w3m, not the direct function names.
292
2932010-10-20 Julien Danjou <julien@danjou.info>
294
295 * emacs-mime.texi (Flowed text): Add a note about mml-enable-flowed
296 variable.
297
2982010-10-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
299
300 * gnus.texi (Customizing the IMAP Connection): The port strings are
301 strings.
302 (Document Groups): Mention git.
303
3042010-10-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
305
306 * gnus-coding.texi (Gnus Maintainance Guide): Update to mention Emacs
307 bzr/Gnus git sync.
308
12010-10-15 Eli Zaretskii <eliz@gnu.org> 3092010-10-15 Eli Zaretskii <eliz@gnu.org>
2 310
3 * auth.texi (GnuPG and EasyPG Assistant Configuration): Fix last 311 * auth.texi (GnuPG and EasyPG Assistant Configuration): Fix last
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index d5afabd0374..deeafa2c1b2 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -37,12 +37,12 @@ VPATH=@srcdir@
37## Note that the setfilename command in the .texi files assumes this. 37## Note that the setfilename command in the .texi files assumes this.
38infodir=../../info 38infodir=../../info
39## Directory with emacsver.texi. 39## Directory with emacsver.texi.
40## Currently only used by efaq; could be added to MAKEINFO. 40## Currently only used by efaq and calc.
41emacsdir = $(srcdir)/../emacs 41emacsdir = $(srcdir)/../emacs
42 42
43# The makeinfo program is part of the Texinfo distribution. 43# The makeinfo program is part of the Texinfo distribution.
44# Use --force so that it generates output even if there are errors. 44# Use --force so that it generates output even if there are errors.
45MAKEINFO = makeinfo --force 45MAKEINFO = makeinfo --force -I$(emacsdir)
46 46
47# Also add new entries to INFO_FILES in the top-level Makefile.in. 47# Also add new entries to INFO_FILES in the top-level Makefile.in.
48INFO_TARGETS = \ 48INFO_TARGETS = \
@@ -198,7 +198,7 @@ PDF_TARGETS = \
198TEXI2DVI = texi2dvi 198TEXI2DVI = texi2dvi
199TEXI2PDF = texi2pdf 199TEXI2PDF = texi2pdf
200 200
201ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)" 201ENVADD = TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)"
202 202
203mkinfodir = @cd ${srcdir}; test -d ${infodir} || mkdir ${infodir} || test -d ${infodir} 203mkinfodir = @cd ${srcdir}; test -d ${infodir} || mkdir ${infodir} || test -d ${infodir}
204 204
@@ -244,12 +244,12 @@ autotype.pdf: ${srcdir}/autotype.texi
244 $(ENVADD) $(TEXI2PDF) $< 244 $(ENVADD) $(TEXI2PDF) $<
245 245
246calc : $(infodir)/calc 246calc : $(infodir)/calc
247$(infodir)/calc: calc.texi 247$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi
248 $(mkinfodir) 248 $(mkinfodir)
249 cd $(srcdir); $(MAKEINFO) $< 249 cd $(srcdir); $(MAKEINFO) $<
250calc.dvi: ${srcdir}/calc.texi 250calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
251 $(ENVADD) $(TEXI2DVI) $< 251 $(ENVADD) $(TEXI2DVI) $<
252calc.pdf: ${srcdir}/calc.texi 252calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
253 $(ENVADD) $(TEXI2PDF) $< 253 $(ENVADD) $(TEXI2PDF) $<
254 254
255ccmode : $(infodir)/ccmode 255ccmode : $(infodir)/ccmode
@@ -381,7 +381,7 @@ eudc.pdf: ${srcdir}/eudc.texi
381efaq : $(infodir)/efaq 381efaq : $(infodir)/efaq
382$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi 382$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi
383 $(mkinfodir) 383 $(mkinfodir)
384 cd $(srcdir); $(MAKEINFO) -I $(emacsdir) $< 384 cd $(srcdir); $(MAKEINFO) $<
385faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi 385faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
386 $(ENVADD) $(TEXI2DVI) $< 386 $(ENVADD) $(TEXI2DVI) $<
387faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi 387faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index f0b79e95dc8..58de84b8194 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -7,6 +7,8 @@
7@setchapternewpage odd 7@setchapternewpage odd
8@comment %**end of header (This is for running Texinfo on a region.) 8@comment %**end of header (This is for running Texinfo on a region.)
9 9
10@include emacsver.texi
11
10@c The following macros are used for conditional output for single lines. 12@c The following macros are used for conditional output for single lines.
11@c @texline foo 13@c @texline foo
12@c `foo' will appear only in TeX output 14@c `foo' will appear only in TeX output
@@ -88,7 +90,8 @@
88This file documents Calc, the GNU Emacs calculator. 90This file documents Calc, the GNU Emacs calculator.
89@end ifinfo 91@end ifinfo
90@ifnotinfo 92@ifnotinfo
91This file documents Calc, the GNU Emacs calculator, included with GNU Emacs 23.1. 93This file documents Calc, the GNU Emacs calculator, included with
94GNU Emacs @value{EMACSVER}.
92@end ifnotinfo 95@end ifnotinfo
93 96
94Copyright @copyright{} 1990, 1991, 2001, 2002, 2003, 2004, 97Copyright @copyright{} 1990, 1991, 2001, 2002, 2003, 2004,
@@ -14119,6 +14122,10 @@ but
14119@texline @math{\sin(2 + x)}. 14122@texline @math{\sin(2 + x)}.
14120@infoline @expr{sin(2 + x)}. 14123@infoline @expr{sin(2 + x)}.
14121 14124
14125The @TeX{} specific unit names (@pxref{Predefined Units}) will not use
14126the @samp{tex} prefix; the unit name for a @TeX{} point will be
14127@samp{pt} instead of @samp{texpt}, for example.
14128
14122Function and variable names not treated specially by @TeX{} and La@TeX{} 14129Function and variable names not treated specially by @TeX{} and La@TeX{}
14123are simply written out as-is, which will cause them to come out in 14130are simply written out as-is, which will cause them to come out in
14124italic letters in the printed document. If you invoke @kbd{d T} or 14131italic letters in the printed document. If you invoke @kbd{d T} or
@@ -27987,6 +27994,14 @@ than the point used by @TeX{}), @code{texdd} (a Didot point),
27987@code{texcc} (a Cicero) and @code{texsp} (a scaled @TeX{} point, 27994@code{texcc} (a Cicero) and @code{texsp} (a scaled @TeX{} point,
27988all dimensions representable in @TeX{} are multiples of this value). 27995all dimensions representable in @TeX{} are multiples of this value).
27989 27996
27997When Calc is using the @TeX{} or La@TeX{} language mode (@pxref{TeX
27998and LaTeX Language Modes}), the @TeX{} specific unit names will not
27999use the @samp{tex} prefix; the unit name for a @TeX{} point will be
28000@samp{pt} instead of @samp{texpt}, for example. To avoid conflicts,
28001the unit names for pint and parsec will simply be @samp{pint} and
28002@samp{parsec} instead of @samp{pt} and @samp{pc}.
28003
28004
27990The unit @code{e} stands for the elementary (electron) unit of charge; 28005The unit @code{e} stands for the elementary (electron) unit of charge;
27991because algebra command could mistake this for the special constant 28006because algebra command could mistake this for the special constant
27992@expr{e}, Calc provides the alternate unit name @code{ech} which is 28007@expr{e}, Calc provides the alternate unit name @code{ech} which is
@@ -36582,7 +36597,3 @@ the corresponding full Lisp name is derived by adding a prefix of
36582 36597
36583@bye 36598@bye
36584 36599
36585
36586@ignore
36587 arch-tag: 77a71809-fa4d-40be-b2cc-da3e8fb137c0
36588@end ignore
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 73ee0e107d3..da8e7082909 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -160,7 +160,8 @@ CC Mode
160This manual is for CC Mode in Emacs. 160This manual is for CC Mode in Emacs.
161 161
162Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 162Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
1632003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 1632003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
164Free Software Foundation, Inc.
164 165
165@quotation 166@quotation
166Permission is granted to copy, distribute and/or modify this document 167Permission is granted to copy, distribute and/or modify this document
@@ -201,9 +202,8 @@ developing GNU and promoting software freedom.''
201@vskip 0pt plus 1filll 202@vskip 0pt plus 1filll
202@insertcopying 203@insertcopying
203 204
204This manual was generated from cc-mode.texi, which can be downloaded 205This manual was generated from cc-mode.texi, which is distributed with Emacs,
205from 206or can be downloaded from @url{http://savannah.gnu.org/projects/emacs/}.
206@url{http://cvs.savannah.gnu.org/viewcvs/emacs/emacs/doc/misc/cc-mode.texi}.
207@end titlepage 207@end titlepage
208 208
209@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 209@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -7015,6 +7015,3 @@ Since most @ccmode{} variables are prepended with the string
7015 7015
7016@bye 7016@bye
7017 7017
7018@ignore
7019 arch-tag: c4cab162-5e57-4366-bdce-4a9db2fc97f0
7020@end ignore
diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi
index f4f96d55391..6f6a897e6dc 100644
--- a/doc/misc/dbus.texi
+++ b/doc/misc/dbus.texi
@@ -890,7 +890,8 @@ symbol can be preceeded to the corresponding Lisp object. Basic D-Bus
890types are represented by the type symbols @code{:byte}, 890types are represented by the type symbols @code{:byte},
891@code{:boolean}, @code{:int16}, @code{:uint16}, @code{:int32}, 891@code{:boolean}, @code{:int16}, @code{:uint16}, @code{:int32},
892@code{:uint32}, @code{:int64}, @code{:uint64}, @code{:double}, 892@code{:uint32}, @code{:int64}, @code{:uint64}, @code{:double},
893@code{:string}, @code{:object-path} and @code{:signature}. 893@code{:string}, @code{:object-path}, @code{:signature} and
894@code{:unix-fd}.
894 895
895@noindent 896@noindent
896Example: 897Example:
@@ -1009,6 +1010,7 @@ objects.
1009@item DBUS_TYPE_UINT16 @tab @expansion{} @tab natural number 1010@item DBUS_TYPE_UINT16 @tab @expansion{} @tab natural number
1010@item DBUS_TYPE_INT16 @tab @expansion{} @tab integer 1011@item DBUS_TYPE_INT16 @tab @expansion{} @tab integer
1011@item DBUS_TYPE_UINT32 @tab @expansion{} @tab natural number or float 1012@item DBUS_TYPE_UINT32 @tab @expansion{} @tab natural number or float
1013@item DBUS_TYPE_UNIX_FD @tab @expansion{} @tab natural number or float
1012@item DBUS_TYPE_INT32 @tab @expansion{} @tab integer or float 1014@item DBUS_TYPE_INT32 @tab @expansion{} @tab integer or float
1013@item DBUS_TYPE_UINT64 @tab @expansion{} @tab natural number or float 1015@item DBUS_TYPE_UINT64 @tab @expansion{} @tab natural number or float
1014@item DBUS_TYPE_INT64 @tab @expansion{} @tab integer or float 1016@item DBUS_TYPE_INT64 @tab @expansion{} @tab integer or float
@@ -1024,9 +1026,9 @@ objects.
1024@end example 1026@end example
1025 1027
1026A float object in case of @code{DBUS_TYPE_UINT32}, 1028A float object in case of @code{DBUS_TYPE_UINT32},
1027@code{DBUS_TYPE_INT32}, @code{DBUS_TYPE_UINT64} and 1029@code{DBUS_TYPE_INT32}, @code{DBUS_TYPE_UINT64},
1028@code{DBUS_TYPE_INT6432} is returned, when the C value exceeds the 1030@code{DBUS_TYPE_INT64} and @code{DBUS_TYPE_UNIX_FD} is returned, when
1029Emacs number size range. 1031the C value exceeds the Emacs number size range.
1030 1032
1031The resulting list of the last 4 D-Bus compound types contains as 1033The resulting list of the last 4 D-Bus compound types contains as
1032elements the elements of the D-Bus container, mapped according to the 1034elements the elements of the D-Bus container, mapped according to the
diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi
index 4259fccb390..c2897e185bf 100644
--- a/doc/misc/ediff.texi
+++ b/doc/misc/ediff.texi
@@ -759,7 +759,7 @@ Displays a list of currently active Ediff sessions---the Ediff Registry.
759You can then restart any of these sessions by either clicking on a session 759You can then restart any of these sessions by either clicking on a session
760record or by putting the cursor over it and then typing the return key. 760record or by putting the cursor over it and then typing the return key.
761 761
762(Some poor souls leave so many active Ediff sessions around that they loose 762(Some poor souls leave so many active Ediff sessions around that they lose
763track of them completely... The `R' command is designed to save these 763track of them completely... The `R' command is designed to save these
764people from the recently discovered Ediff Proficiency Syndrome.) 764people from the recently discovered Ediff Proficiency Syndrome.)
765 765
@@ -2315,7 +2315,7 @@ other behavior.
2315 2315
2316However, Ediff temporarily resets this variable to @code{t} if it is 2316However, Ediff temporarily resets this variable to @code{t} if it is
2317invoked via one of the "buffer" jobs, such as @code{ediff-buffers}. 2317invoked via one of the "buffer" jobs, such as @code{ediff-buffers}.
2318This is because it is all too easy to loose day's work otherwise. 2318This is because it is all too easy to lose a day's work otherwise.
2319Besides, in a "buffer" job, the variant buffers have already been loaded 2319Besides, in a "buffer" job, the variant buffers have already been loaded
2320prior to starting Ediff, so Ediff just preserves status quo here. 2320prior to starting Ediff, so Ediff just preserves status quo here.
2321 2321
@@ -2542,6 +2542,3 @@ Eli Zaretskii (eliz at is.elta.co.il)
2542 2542
2543@bye 2543@bye
2544 2544
2545@ignore
2546 arch-tag: 165ecb88-d03c-44b1-a921-b93f50b05b46
2547@end ignore
diff --git a/doc/misc/edt.texi b/doc/misc/edt.texi
index d394137d76b..f3d0eacc0f3 100644
--- a/doc/misc/edt.texi
+++ b/doc/misc/edt.texi
@@ -63,8 +63,8 @@ of DEC's EDT editor.
63@node Overview 63@node Overview
64@chapter Overview of the EDT Package 64@chapter Overview of the EDT Package
65 65
66This manual describes version 4.0 of the EDT Emulation for Emacs 19 and 66This manual describes version 4.0 of the EDT Emulation for Emacs.
67above. It comes with special functions which replicate nearly all of 67It comes with special functions which replicate nearly all of
68EDT's keypad mode behavior. It sets up default keypad and function key 68EDT's keypad mode behavior. It sets up default keypad and function key
69bindings which closely match those found in EDT. Support is provided so 69bindings which closely match those found in EDT. Support is provided so
70that users may reconfigure most keypad and function key bindings to 70that users may reconfigure most keypad and function key bindings to
@@ -152,9 +152,8 @@ You can also invoke @code{edt-set-scroll-margins} interactively while
152EDT Emulation is active to change the settings for that session. 152EDT Emulation is active to change the settings for that session.
153 153
154@strong{Please note:} Another way to set the scroll margins is to use 154@strong{Please note:} Another way to set the scroll margins is to use
155the Emacs customization feature (not available in Emacs 19) to set the 155the Emacs customization feature to set the following two variables
156following two variables directly: @code{edt-top-scroll-margin} and 156directly: @code{edt-top-scroll-margin} and @code{edt-bottom-scroll-margin}.
157@code{edt-bottom-scroll-margin}.
158 157
159Enter the Emacs @code{customize} command. First select the 158Enter the Emacs @code{customize} command. First select the
160@samp{Editing} group and then select the @samp{Emulations} group. 159@samp{Editing} group and then select the @samp{Emulations} group.
@@ -239,8 +238,7 @@ Provide an easy way to restore @strong{all} original Emacs key bindings,
239just as they existed before the EDT emulation was first invoked. 238just as they existed before the EDT emulation was first invoked.
240 239
241@item 240@item
242Support GNU Emacs 19 and higher. (GNU Emacs 18 and below is no longer 241Support GNU Emacs 19 and higher. XEmacs 19, and above, is also supported.
243supported.) XEmacs 19, and above, is also supported.
244 242
245@item 243@item
246Supports highlighting of marked text within the EDT emulation on all 244Supports highlighting of marked text within the EDT emulation on all
@@ -933,9 +931,8 @@ You can also invoke @code{edt-set-scroll-margins} interactively while
933EDT Emulation is active to change the settings for that session. 931EDT Emulation is active to change the settings for that session.
934 932
935@strong{Please note:} Another way to set the scroll margins is to use 933@strong{Please note:} Another way to set the scroll margins is to use
936the Emacs customization feature (not available in Emacs 19) to set the 934the Emacs customization feature to set the following two variables
937following two variables directly: @code{edt-top-scroll-margin} and 935directly: @code{edt-top-scroll-margin} and @code{edt-bottom-scroll-margin}.
938@code{edt-bottom-scroll-margin}.
939 936
940Enter the Emacs @code{customize} command. First select the 937Enter the Emacs @code{customize} command. First select the
941@samp{Editing} group and then select the @samp{Emulations} group. 938@samp{Editing} group and then select the @samp{Emulations} group.
@@ -946,7 +943,3 @@ Finally, select the @samp{Edt} group and follow the directions.
946@include doclicense.texi 943@include doclicense.texi
947 944
948@bye 945@bye
949
950@ignore
951 arch-tag: 1b7ebe01-754b-4834-a12b-f152ef7db9e0
952@end ignore
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index 475ce2bb53f..9511f6d10c0 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -1040,6 +1040,10 @@ flowed text, the default is to wrap after 66 characters. If hard
1040newline characters are not present in the buffer, no flow encoding 1040newline characters are not present in the buffer, no flow encoding
1041occurs. 1041occurs.
1042 1042
1043You can customize the value of the @code{mml-enable-flowed} variable
1044to enable or disable the flowed encoding usage when newline
1045characteres are present in the buffer.
1046
1043On decoding flowed text, lines with soft newline characters are filled 1047On decoding flowed text, lines with soft newline characters are filled
1044together and wrapped after the column decided by 1048together and wrapped after the column decided by
1045@code{fill-flowed-display-column}. The default is to wrap after 1049@code{fill-flowed-display-column}. The default is to wrap after
diff --git a/doc/misc/epa.texi b/doc/misc/epa.texi
index 32bf9e7fe1d..7afe9c0c9b8 100644
--- a/doc/misc/epa.texi
+++ b/doc/misc/epa.texi
@@ -306,14 +306,14 @@ Encrypt marked files.
306@section Mail-mode integration 306@section Mail-mode integration
307 307
308EasyPG Assistant provides a minor mode @code{epa-mail-mode} to help 308EasyPG Assistant provides a minor mode @code{epa-mail-mode} to help
309user compose inline PGP messages. Inline PGP is a traditional style 309user compose inline OpenPGP messages. Inline OpenPGP is a traditional
310of sending signed/encrypted emails by embedding raw OpenPGP blobs 310style of sending signed/encrypted emails by embedding raw OpenPGP
311inside a message body, not using modern MIME format. 311blobs inside a message body, not using modern MIME format.
312 312
313NOTE: Inline PGP is not recommended and you should consider to use 313NOTE: Inline OpenPGP is not recommended and you should consider to use
314PGP/MIME. See 314PGP/MIME. See
315@uref{http://josefsson.org/inline-openpgp-considered-harmful.html, 315@uref{http://josefsson.org/inline-openpgp-considered-harmful.html,
316Inline PGP in E-mail is bad, Mm'kay?}. 316Inline OpenPGP in E-mail is bad@comma{} Mm'kay?}.
317 317
318@noindent 318@noindent
319Once @code{epa-mail-mode} is enabled, the following keys are assigned. 319Once @code{epa-mail-mode} is enabled, the following keys are assigned.
@@ -321,22 +321,26 @@ You can do it by @kbd{C-u 1 M-x epa-mail-mode} or through the Customize
321interface. Try @kbd{M-x customize-variable epa-global-mail-mode}. 321interface. Try @kbd{M-x customize-variable epa-global-mail-mode}.
322 322
323@table @kbd 323@table @kbd
324@item C-c C-e d 324@item C-c C-e C-d and C-c C-e d
325@kindex @kbd{C-c C-e C-d}
325@kindex @kbd{C-c C-e d} 326@kindex @kbd{C-c C-e d}
326@findex epa-mail-decrypt 327@findex epa-mail-decrypt
327Decrypt OpenPGP armors in the current buffer. 328Decrypt OpenPGP armors in the current buffer.
328 329
329@item C-c C-e v 330@item C-c C-e C-v and C-c C-e v
331@kindex @kbd{C-c C-e C-v}
330@kindex @kbd{C-c C-e v} 332@kindex @kbd{C-c C-e v}
331@findex epa-mail-verify 333@findex epa-mail-verify
332Verify OpenPGP cleartext signed messages in the current buffer. 334Verify OpenPGP cleartext signed messages in the current buffer.
333 335
334@item C-c C-e s 336@item C-c C-e C-s and C-c C-e s
337@kindex @kbd{C-c C-e C-s}
335@kindex @kbd{C-c C-e s} 338@kindex @kbd{C-c C-e s}
336@findex epa-mail-sign 339@findex epa-mail-sign
337Compose a signed message from the current buffer. 340Compose a signed message from the current buffer.
338 341
339@item C-c C-e e 342@item C-c C-e C-e and C-c C-e e
343@kindex @kbd{C-c C-e C-e}
340@kindex @kbd{C-c C-e e} 344@kindex @kbd{C-c C-e e}
341@findex epa-mail-encrypt 345@findex epa-mail-encrypt
342Compose an encrypted message from the current buffer. 346Compose an encrypted message from the current buffer.
diff --git a/doc/misc/gnus-coding.texi b/doc/misc/gnus-coding.texi
index 22b74c900b0..f513bc15a24 100644
--- a/doc/misc/gnus-coding.texi
+++ b/doc/misc/gnus-coding.texi
@@ -288,14 +288,21 @@ Emacs repository might have been lost.
288 288
289With the inclusion of Gnus 5.10, Miles Bader has set up an Emacs-Gnus 289With the inclusion of Gnus 5.10, Miles Bader has set up an Emacs-Gnus
290gateway to ensure the bug fixes from Emacs CVS are propagated to Gnus 290gateway to ensure the bug fixes from Emacs CVS are propagated to Gnus
291CVS semi-automatically. These bug fixes are installed on the stable 291CVS semi-automatically.
292branch and on the trunk. Basically the idea is that the gateway will 292
293cause all common files in Emacs and Gnus v5-10 to be identical except 293After Emacs moved to bzr and Gnus moved to git, Katsumi Yamaoka has
294when there's a very good reason (e.g., the Gnus version string in Emacs 294taken over the chore of keeping Emacs and Gnus in sync. In general,
295says @samp{5.11}, but the v5-10 version string remains @samp{5.10.x}). 295changes made to one repository will usually be replicated in the other
296Furthermore, all changes in these files in either Emacs or the v5-10 296within a few days.
297branch will be installed into the Gnus CVS trunk, again except where 297
298there's a good reason. 298Basically the idea is that the gateway will cause all common files in
299Emacs and Gnus v5-13 to be identical except when there's a very good
300reason (e.g., the Gnus version string in Emacs says @samp{5.11}, but
301the v5-13 version string remains @samp{5.13.x}). Furthermore, all
302changes in these files in either Emacs or the v5-13 branch will be
303installed into the Gnus git trunk, again except where there's a good
304reason.
305
299@c (typically so far the only exception has been that the changes 306@c (typically so far the only exception has been that the changes
300@c already exist in the trunk in modified form). 307@c already exist in the trunk in modified form).
301Because of this, when the next major version of Gnus will be included in 308Because of this, when the next major version of Gnus will be included in
@@ -311,9 +318,9 @@ If it's a file which is thought of as being outside of Gnus (e.g., the
311new @file{encrypt.el}), you should probably make the change in the Emacs 318new @file{encrypt.el}), you should probably make the change in the Emacs
312tree, and it will show up in the Gnus tree a few days later. 319tree, and it will show up in the Gnus tree a few days later.
313 320
314If you don't have Emacs CVS access (or it's inconvenient), you can 321If you don't have Emacs bzr access (or it's inconvenient), you can
315change such a file in the v5-10 branch, and it should propagate to Emacs 322change such a file in the v5-10 branch, and it should propagate to Emacs
316CVS -- however, it will get some extra scrutiny (by Miles) to see if the 323bzr -- however, it will get some extra scrutiny (by Miles) to see if the
317changes are possibly controversial and need discussion on the mailing 324changes are possibly controversial and need discussion on the mailing
318list. Many changes are obvious bug-fixes however, so often there won't 325list. Many changes are obvious bug-fixes however, so often there won't
319be any problem. 326be any problem.
@@ -321,12 +328,12 @@ be any problem.
321@item 328@item
322If it's to a Gnus file, and it's important enough that it should be part 329If it's to a Gnus file, and it's important enough that it should be part
323of Emacs and the v5-10 branch, then you can make the change on the v5-10 330of Emacs and the v5-10 branch, then you can make the change on the v5-10
324branch, and it will go into Emacs CVS and the Gnus CVS trunk (a few days 331branch, and it will go into Emacs bzr and the Gnus git trunk (a few days
325later). The most prominent examples for such changes are bug-fixed 332later). The most prominent examples for such changes are bug-fixed
326including improvements on the documentation. 333including improvements on the documentation.
327 334
328If you know that there will be conflicts (perhaps because the affected 335If you know that there will be conflicts (perhaps because the affected
329source code is different in v5-10 and the Gnus CVS trunk), then you can 336source code is different in v5-10 and the Gnus git trunk), then you can
330install your change in both places, and when I try to sync them, there 337install your change in both places, and when I try to sync them, there
331will be a conflict -- however, since in most such cases there would be a 338will be a conflict -- however, since in most such cases there would be a
332conflict @emph{anyway}, it's often easier for me to resolve it simply if 339conflict @emph{anyway}, it's often easier for me to resolve it simply if
@@ -338,9 +345,6 @@ For general Gnus development changes, of course you just make the
338change on the Gnus Git trunk and it goes into Emacs a few years 345change on the Gnus Git trunk and it goes into Emacs a few years
339later... :-) 346later... :-)
340 347
341With the new Git repository, we'll probably set up something to
342automatically synchronize with Emacs when possible. CVS was much less
343powerful for this kind of synchronization.
344@end itemize 348@end itemize
345 349
346Of course in any case, if you just can't wait for me to sync your 350Of course in any case, if you just can't wait for me to sync your
diff --git a/doc/misc/gnus-news.texi b/doc/misc/gnus-news.texi
index 1136d52e51d..6037a979acb 100644
--- a/doc/misc/gnus-news.texi
+++ b/doc/misc/gnus-news.texi
@@ -124,6 +124,9 @@ Customization}.
124 124
125@itemize @bullet 125@itemize @bullet
126 126
127@item There's now only one variable that determines how @acronym{HTML}
128is rendered: @code{mm-text-html-renderer}.
129
127@item Gnus now supports sticky article buffers. Those are article buffers 130@item Gnus now supports sticky article buffers. Those are article buffers
128that are not reused when you select another article. @xref{Sticky 131that are not reused when you select another article. @xref{Sticky
129Articles}. 132Articles}.
@@ -221,6 +224,9 @@ that are accessible from the article buffer.
221@item Changes in Message mode 224@item Changes in Message mode
222 225
223@itemize @bullet 226@itemize @bullet
227@item Gnus now defaults to saving all outgoing messages in per-month
228nnfolder archives.
229
224@item Gnus now supports the ``hashcash'' client puzzle anti-spam mechanism. 230@item Gnus now supports the ``hashcash'' client puzzle anti-spam mechanism.
225Use @code{(setq message-generate-hashcash t)} to enable. 231Use @code{(setq message-generate-hashcash t)} to enable.
226@xref{Hashcash}. 232@xref{Hashcash}.
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 1a1f0d48eb9..2df6d90cc07 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -1020,22 +1020,6 @@ Gnus will see whether @code{gnus-nntpserver-file}
1020If that fails as well, Gnus will try to use the machine running Emacs 1020If that fails as well, Gnus will try to use the machine running Emacs
1021as an @acronym{NNTP} server. That's a long shot, though. 1021as an @acronym{NNTP} server. That's a long shot, though.
1022 1022
1023@vindex gnus-nntp-server
1024If @code{gnus-nntp-server} is set, this variable will override
1025@code{gnus-select-method}. You should therefore set
1026@code{gnus-nntp-server} to @code{nil}, which is what it is by default.
1027
1028@vindex gnus-secondary-servers
1029@vindex gnus-nntp-server
1030You can also make Gnus prompt you interactively for the name of an
1031@acronym{NNTP} server. If you give a non-numerical prefix to @code{gnus}
1032(i.e., @kbd{C-u M-x gnus}), Gnus will let you choose between the servers
1033in the @code{gnus-secondary-servers} list (if any). You can also just
1034type in the name of any server you feel like visiting. (Note that this
1035will set @code{gnus-nntp-server}, which means that if you then @kbd{M-x
1036gnus} later in the same Emacs session, Gnus will contact the same
1037server.)
1038
1039@findex gnus-group-browse-foreign-server 1023@findex gnus-group-browse-foreign-server
1040@kindex B (Group) 1024@kindex B (Group)
1041However, if you use one @acronym{NNTP} server regularly and are just 1025However, if you use one @acronym{NNTP} server regularly and are just
@@ -2211,6 +2195,12 @@ selected.
2211@section Subscription Commands 2195@section Subscription Commands
2212@cindex subscription 2196@cindex subscription
2213 2197
2198The following commands allow for managing your subscriptions in the
2199Group buffer. If you want to subscribe to many groups, it's probably
2200more convenient to go to the @ref{Server Buffer}, and choose the
2201server there using @kbd{RET} or @kbd{SPC}. Then you'll have the
2202commands listed in @ref{Browse Foreign Server} at hand.
2203
2214@table @kbd 2204@table @kbd
2215 2205
2216@item S t 2206@item S t
@@ -2409,6 +2399,9 @@ one with the best level.
2409All groups with a level less than or equal to 2399All groups with a level less than or equal to
2410@code{gnus-group-default-list-level} will be listed in the group buffer 2400@code{gnus-group-default-list-level} will be listed in the group buffer
2411by default. 2401by default.
2402This variable can also be a function. In that case, that function will
2403be called and the result will be used as value.
2404
2412 2405
2413@vindex gnus-group-list-inactive-groups 2406@vindex gnus-group-list-inactive-groups
2414If @code{gnus-group-list-inactive-groups} is non-@code{nil}, non-active 2407If @code{gnus-group-list-inactive-groups} is non-@code{nil}, non-active
@@ -3085,8 +3078,8 @@ The Sieve language is described in RFC 3028. @xref{Top, Emacs Sieve,
3085Top, sieve, Emacs Sieve}. 3078Top, sieve, Emacs Sieve}.
3086 3079
3087@item (agent parameters) 3080@item (agent parameters)
3088If the agent has been enabled, you can set any of the its parameters 3081If the agent has been enabled, you can set any of its parameters to
3089to control the behavior of the agent in individual groups. See Agent 3082control the behavior of the agent in individual groups. See Agent
3090Parameters in @ref{Category Syntax}. Most users will choose to set 3083Parameters in @ref{Category Syntax}. Most users will choose to set
3091agent parameters in either an agent category or group topic to 3084agent parameters in either an agent category or group topic to
3092minimize the configuration effort. 3085minimize the configuration effort.
@@ -4563,7 +4556,7 @@ However, you can also create e.g. a new @code{nnmaildir} or @code{nnml}
4563server exclusively for @code{nnmairix} in your secondary select methods 4556server exclusively for @code{nnmairix} in your secondary select methods
4564(@pxref{Finding the News}). If you use a secondary @code{nnml} server 4557(@pxref{Finding the News}). If you use a secondary @code{nnml} server
4565just for mairix, make sure that you explicitly set the server variable 4558just for mairix, make sure that you explicitly set the server variable
4566@code{nnml-get-new-mail} to @code{nil}, or you might loose mail 4559@code{nnml-get-new-mail} to @code{nil}, or you might lose mail
4567(@pxref{nnmairix caveats}). If you want to use mairix remotely on an 4560(@pxref{nnmairix caveats}). If you want to use mairix remotely on an
4568@acronym{IMAP} server, you have to choose the corresponding 4561@acronym{IMAP} server, you have to choose the corresponding
4569@code{nnimap} server here. 4562@code{nnimap} server here.
@@ -5195,24 +5188,6 @@ used for fetching the file.
5195If fetching from the first site is unsuccessful, Gnus will attempt to go 5188If fetching from the first site is unsuccessful, Gnus will attempt to go
5196through @code{gnus-group-faq-directory} and try to open them one by one. 5189through @code{gnus-group-faq-directory} and try to open them one by one.
5197 5190
5198@item H C
5199@kindex H C (Group)
5200@findex gnus-group-fetch-control
5201@vindex gnus-group-fetch-control-use-browse-url
5202@cindex control message
5203Fetch the control messages for the group from the archive at
5204@code{ftp.isc.org} (@code{gnus-group-fetch-control}). Query for a
5205group if given a prefix argument.
5206
5207If @code{gnus-group-fetch-control-use-browse-url} is non-@code{nil},
5208Gnus will open the control messages in a browser using
5209@code{browse-url}. Otherwise they are fetched using @code{ange-ftp}
5210and displayed in an ephemeral group.
5211
5212Note that the control messages are compressed. To use this command
5213you need to turn on @code{auto-compression-mode} (@pxref{Compressed
5214Files, ,Compressed Files, emacs, The Emacs Manual}).
5215
5216@item H d 5191@item H d
5217@itemx C-c C-d 5192@itemx C-c C-d
5218@c @icon{gnus-group-describe-group} 5193@c @icon{gnus-group-describe-group}
@@ -6177,9 +6152,10 @@ Scroll the current article one line backward
6177@findex gnus-summary-show-article 6152@findex gnus-summary-show-article
6178@vindex gnus-summary-show-article-charset-alist 6153@vindex gnus-summary-show-article-charset-alist
6179(Re)fetch the current article (@code{gnus-summary-show-article}). If 6154(Re)fetch the current article (@code{gnus-summary-show-article}). If
6180given a prefix, fetch the current article, but don't run any of the 6155given a prefix, show a completely ``raw'' article, just the way it
6181article treatment functions. This will give you a ``raw'' article, just 6156came from the server. If given a prefix twice (i.e., @kbd{C-u C-u
6182the way it came from the server. 6157g'}), fetch the current article, but don't run any of the article
6158treatment functions.
6183 6159
6184@cindex charset, view article with different charset 6160@cindex charset, view article with different charset
6185If given a numerical prefix, you can do semi-manual charset stuff. 6161If given a numerical prefix, you can do semi-manual charset stuff.
@@ -9688,6 +9664,17 @@ an attempt to provide more quoting characters. If you see something
9688like @code{\222} or @code{\264} where you're expecting some kind of 9664like @code{\222} or @code{\264} where you're expecting some kind of
9689apostrophe or quotation mark, then try this wash. 9665apostrophe or quotation mark, then try this wash.
9690 9666
9667@item W U
9668@kindex W U (Summary)
9669@findex gnus-article-treat-non-ascii
9670@cindex Unicode
9671@cindex Non-@acronym{ASCII}
9672Translate many non-@acronym{ASCII} characters into their
9673@acronym{ASCII} equivalents (@code{gnus-article-treat-non-ascii}).
9674This is mostly useful if you're on a terminal that has a limited font
9675and does't show accented characters, ``advanced'' punctuation, and the
9676like. For instance, @samp{»} is tranlated into @samp{>>}, and so on.
9677
9691@item W Y f 9678@item W Y f
9692@kindex W Y f (Summary) 9679@kindex W Y f (Summary)
9693@findex gnus-article-outlook-deuglify-article 9680@findex gnus-article-outlook-deuglify-article
@@ -9803,19 +9790,16 @@ If a prefix is given, a charset will be asked for. If it is a number,
9803the charset defined in @code{gnus-summary-show-article-charset-alist} 9790the charset defined in @code{gnus-summary-show-article-charset-alist}
9804(@pxref{Paging the Article}) will be used. 9791(@pxref{Paging the Article}) will be used.
9805 9792
9806@vindex gnus-article-wash-function
9807The default is to use the function specified by 9793The default is to use the function specified by
9808@code{mm-text-html-renderer} (@pxref{Display Customization, ,Display 9794@code{mm-text-html-renderer} (@pxref{Display Customization, ,Display
9809Customization, emacs-mime, The Emacs MIME Manual}) to convert the 9795Customization, emacs-mime, The Emacs MIME Manual}) to convert the
9810@acronym{HTML}, but this is controlled by the 9796@acronym{HTML}. Pre-defined functions you can use include:
9811@code{gnus-article-wash-function} variable. Pre-defined functions you
9812can use include:
9813 9797
9814@table @code 9798@table @code
9815@item mm-shr 9799@item shr
9816Use Gnus simple html renderer. 9800Use Gnus simple html renderer.
9817 9801
9818@item gnus-article-html 9802@item gnus-w3m
9819Use Gnus rendered based on w3m. 9803Use Gnus rendered based on w3m.
9820 9804
9821@item w3 9805@item w3
@@ -12462,15 +12446,22 @@ that's based on @code{w3m}.
12462 12446
12463@item gnus-blocked-images 12447@item gnus-blocked-images
12464@vindex gnus-blocked-images 12448@vindex gnus-blocked-images
12465Images that have @acronym{URL}s that match this regexp won't be 12449External images that have @acronym{URL}s that match this regexp won't
12466fetched and displayed. For instance, do block all @acronym{URL}s that 12450be fetched and displayed. For instance, do block all @acronym{URL}s
12467have the string ``ads'' in them, do the following: 12451that have the string ``ads'' in them, do the following:
12468 12452
12469@lisp 12453@lisp
12470(setq gnus-blocked-images "ads") 12454(setq gnus-blocked-images "ads")
12471@end lisp 12455@end lisp
12472 12456
12473The default is to block all external images. 12457This can also be a function to be evaluated. If so, it will be
12458called with the group name as the parameter. The default value is
12459@code{gnus-block-private-groups}, which will return @samp{"."} for
12460anything that isn't a newsgroup. This means that no external images
12461will be fetched as a result of reading mail, so that nobody can use
12462web bugs (and the like) to track whether you've read email.
12463
12464Also @pxref{Misc Article} for @code{gnus-inhibit-images}.
12474 12465
12475@item gnus-html-cache-directory 12466@item gnus-html-cache-directory
12476@vindex gnus-html-cache-directory 12467@vindex gnus-html-cache-directory
@@ -12952,6 +12943,15 @@ for how to compose such messages. This requires
12952@uref{http://www.gnu.org/software/libidn/, GNU Libidn}, and this 12943@uref{http://www.gnu.org/software/libidn/, GNU Libidn}, and this
12953variable is only enabled if you have installed it. 12944variable is only enabled if you have installed it.
12954 12945
12946@vindex gnus-inhibit-images
12947@item gnus-inhibit-images
12948If this is non-@code{nil}, inhibit displaying of images inline in the
12949article body. It is effective to images that are in articles as
12950@acronym{MIME} parts, and images in @acronym{HTML} articles rendered
12951when @code{mm-text-html-renderer} (@pxref{Display Customization,
12952,Display Customization, emacs-mime, The Emacs MIME Manual}) is
12953@code{shr} or @code{gnus-w3m}.
12954
12955@end table 12955@end table
12956 12956
12957 12957
@@ -13342,21 +13342,6 @@ case you should set @code{gnus-message-archive-group} to @code{nil};
13342this will disable archiving. 13342this will disable archiving.
13343 13343
13344@table @code 13344@table @code
13345@item gnus-outgoing-message-group
13346@vindex gnus-outgoing-message-group
13347All outgoing messages will be put in this group. If you want to store
13348all your outgoing mail and articles in the group @samp{nnml:archive},
13349you set this variable to that value. This variable can also be a list of
13350group names.
13351
13352If you want to have greater control over what group to put each
13353message in, you can set this variable to a function that checks the
13354current newsgroup name and then returns a suitable group name (or list
13355of names).
13356
13357This variable can be used instead of @code{gnus-message-archive-group},
13358but the latter is the preferred method.
13359
13360@item gnus-gcc-mark-as-read 13345@item gnus-gcc-mark-as-read
13361@vindex gnus-gcc-mark-as-read 13346@vindex gnus-gcc-mark-as-read
13362If non-@code{nil}, automatically mark @code{Gcc} articles as read. 13347If non-@code{nil}, automatically mark @code{Gcc} articles as read.
@@ -13451,14 +13436,20 @@ the headers of the article; if the value is @code{nil}, the header
13451name will be removed. If the attribute name is @code{eval}, the form 13436name will be removed. If the attribute name is @code{eval}, the form
13452is evaluated, and the result is thrown away. 13437is evaluated, and the result is thrown away.
13453 13438
13454The attribute value can be a string (used verbatim), a function with 13439The attribute value can be a string, a function with zero arguments
13455zero arguments (the return value will be used), a variable (its value 13440(the return value will be used), a variable (its value will be used)
13456will be used) or a list (it will be @code{eval}ed and the return value 13441or a list (it will be @code{eval}ed and the return value will be
13457will be used). The functions and sexps are called/@code{eval}ed in the 13442used). The functions and sexps are called/@code{eval}ed in the
13458message buffer that is being set up. The headers of the current article 13443message buffer that is being set up. The headers of the current
13459are available through the @code{message-reply-headers} variable, which 13444article are available through the @code{message-reply-headers}
13460is a vector of the following headers: number subject from date id 13445variable, which is a vector of the following headers: number subject
13461references chars lines xref extra. 13446from date id references chars lines xref extra.
13447
13448In the case of a string value, if the @code{match} is a regular
13449expression, a @samp{gnus-match-substitute-replacement} is proceed on
13450the value to replace the positional parameters @samp{\@var{n}} by the
13451corresponding parenthetical matches (see @xref{Replacing the Text that
13452Matched, , Text Replacement, elisp, The Emacs Lisp Reference Manual}.)
13462 13453
13463@vindex message-reply-headers 13454@vindex message-reply-headers
13464 13455
@@ -13834,6 +13825,11 @@ Add a new server (@code{gnus-server-add-server}).
13834@findex gnus-server-edit-server 13825@findex gnus-server-edit-server
13835Edit a server (@code{gnus-server-edit-server}). 13826Edit a server (@code{gnus-server-edit-server}).
13836 13827
13828@item S
13829@kindex S (Server)
13830@findex gnus-server-show-server
13831Show the definition of a server (@code{gnus-server-show-server}).
13832
13837@item SPACE 13833@item SPACE
13838@kindex SPACE (Server) 13834@kindex SPACE (Server)
13839@findex gnus-server-read-server 13835@findex gnus-server-read-server
@@ -13889,6 +13885,9 @@ hence getting a correct total article count.
13889 13885
13890@end table 13886@end table
13891 13887
13888Some more commands for closing, disabling, and re-opening servers are
13889listed in @ref{Unavailable Servers}.
13890
13892 13891
13893@node Example Methods 13892@node Example Methods
13894@subsection Example Methods 13893@subsection Example Methods
@@ -14442,7 +14441,9 @@ functions is also affected by commonly understood variables
14442@findex nntp-open-network-stream 14441@findex nntp-open-network-stream
14443@item nntp-open-network-stream 14442@item nntp-open-network-stream
14444This is the default, and simply connects to some port or other on the 14443This is the default, and simply connects to some port or other on the
14445remote system. 14444remote system. If both Emacs and the server supports it, the
14445connection will be upgraded to an encrypted @acronym{STARTTLS}
14446connection automatically.
14446 14447
14447@findex nntp-open-tls-stream 14448@findex nntp-open-tls-stream
14448@item nntp-open-tls-stream 14449@item nntp-open-tls-stream
@@ -14861,9 +14862,7 @@ Here's an example method that's more complex:
14861 (nnimap-inbox "INBOX") 14862 (nnimap-inbox "INBOX")
14862 (nnimap-split-methods default) 14863 (nnimap-split-methods default)
14863 (nnimap-expunge t) 14864 (nnimap-expunge t)
14864 (nnimap-stream ssl) 14865 (nnimap-stream ssl))
14865 (nnir-search-engine imap)
14866 (nnimap-expunge-inbox t))
14867@end example 14866@end example
14868 14867
14869@table @code 14868@table @code
@@ -14872,18 +14871,23 @@ The address of the server, like @samp{imap.gmail.com}.
14872 14871
14873@item nnimap-server-port 14872@item nnimap-server-port
14874If the server uses a non-standard port, that can be specified here. A 14873If the server uses a non-standard port, that can be specified here. A
14875typical port would be @samp{imap} or @samp{imaps}. 14874typical port would be @code{"imap"} or @code{"imaps"}.
14876 14875
14877@item nnimap-stream 14876@item nnimap-stream
14878How @code{nnimap} should connect to the server. Possible values are: 14877How @code{nnimap} should connect to the server. Possible values are:
14879 14878
14880@table @code 14879@table @code
14880@item undecided
14881This is the default, and this first tries the @code{ssl} setting, and
14882then tries the @code{network} setting.
14883
14881@item ssl 14884@item ssl
14882This is the default, and this uses standard 14885This uses standard @acronym{TLS}/@acronym{SSL} connections.
14883@acronym{TLS}/@acronym{SSL} connection.
14884 14886
14885@item network 14887@item network
14886Non-encrypted and unsafe straight socket connection. 14888Non-encrypted and unsafe straight socket connection, but will upgrade
14889to encrypted @acronym{STARTTLS} if both Emacs and the server
14890supports it.
14887 14891
14888@item starttls 14892@item starttls
14889Encrypted @acronym{STARTTLS} over the normal @acronym{IMAP} port. 14893Encrypted @acronym{STARTTLS} over the normal @acronym{IMAP} port.
@@ -14899,6 +14903,11 @@ what you need.
14899Some @acronym{IMAP} servers allow anonymous logins. In that case, 14903Some @acronym{IMAP} servers allow anonymous logins. In that case,
14900this should be set to @code{anonymous}. 14904this should be set to @code{anonymous}.
14901 14905
14906@item nnimap-expunge
14907If non-@code{nil}, expunge articles after deleting them. This is always done
14908if the server supports UID EXPUNGE, but it's not done by default on
14909servers that doesn't support that command.
14910
14902@item nnimap-streaming 14911@item nnimap-streaming
14903Virtually all @code{IMAP} server support fast streaming of data. If 14912Virtually all @code{IMAP} server support fast streaming of data. If
14904you have problems connecting to the server, try setting this to @code{nil}. 14913you have problems connecting to the server, try setting this to @code{nil}.
@@ -14934,6 +14943,11 @@ use the value of the @code{nnmail-split-methods} variable.
14934@item nnimap-split-fancy 14943@item nnimap-split-fancy
14935Uses the same syntax as @code{nnmail-split-fancy}. 14944Uses the same syntax as @code{nnmail-split-fancy}.
14936 14945
14946@item nnimap-unsplittable-articles
14947List of flag symbols to ignore when doing splitting. That is,
14948articles that have these flags won't be considered when splitting.
14949The default is @samp{(%Deleted %Seen)}.
14950
14937@end table 14951@end table
14938 14952
14939 14953
@@ -17711,15 +17725,6 @@ If you set @code{nnrss-use-local} to @code{t}, @code{nnrss} will read
17711the feeds from local files in @code{nnrss-directory}. You can use 17725the feeds from local files in @code{nnrss-directory}. You can use
17712the command @code{nnrss-generate-download-script} to generate a 17726the command @code{nnrss-generate-download-script} to generate a
17713download script using @command{wget}. 17727download script using @command{wget}.
17714
17715@item nnrss-wash-html-in-text-plain-parts
17716Non-@code{nil} means that @code{nnrss} renders text in @samp{text/plain}
17717parts as @acronym{HTML}. The function specified by the
17718@code{mm-text-html-renderer} variable (@pxref{Display Customization,
17719,Display Customization, emacs-mime, The Emacs MIME Manual}) will be used
17720to render text. If it is @code{nil}, which is the default, text will
17721simply be folded. Leave it @code{nil} if you prefer to see
17722@samp{text/html} parts.
17723@end table 17728@end table
17724 17729
17725The following code may be helpful, if you want to show the description in 17730The following code may be helpful, if you want to show the description in
@@ -17969,6 +17974,10 @@ A @acronym{MIME} digest of messages.
17969@item lanl-gov-announce 17974@item lanl-gov-announce
17970Announcement messages from LANL Gov Announce. 17975Announcement messages from LANL Gov Announce.
17971 17976
17977@cindex git commit messages
17978@item git
17979@code{git} commit messages.
17980
17972@cindex forwarded messages 17981@cindex forwarded messages
17973@item rfc822-forward 17982@item rfc822-forward
17974A message forwarded according to RFC822. 17983A message forwarded according to RFC822.
@@ -19856,7 +19865,7 @@ limit to control how often the cycling occurs. A large value improves
19856performance. A small value minimizes the time lost should the 19865performance. A small value minimizes the time lost should the
19857connection be lost while fetching (You may need to run 19866connection be lost while fetching (You may need to run
19858@code{gnus-agent-regenerate-group} to update the group's state. 19867@code{gnus-agent-regenerate-group} to update the group's state.
19859However, all articles parsed prior to loosing the connection will be 19868However, all articles parsed prior to losing the connection will be
19860available while unplugged). The default is 10M so it is unusual to 19869available while unplugged). The default is 10M so it is unusual to
19861see any cycling. 19870see any cycling.
19862 19871
@@ -30096,11 +30105,11 @@ that means:
30096(setq gnus-read-active-file 'some) 30105(setq gnus-read-active-file 'some)
30097@end lisp 30106@end lisp
30098 30107
30099On the other hand, if the manual says ``set @code{gnus-nntp-server} to 30108On the other hand, if the manual says ``set @code{gnus-nntp-server-file} to
30100@samp{nntp.ifi.uio.no}'', that means: 30109@samp{/etc/nntpserver}'', that means:
30101 30110
30102@lisp 30111@lisp
30103(setq gnus-nntp-server "nntp.ifi.uio.no") 30112(setq gnus-nntp-server-file "/etc/nntpserver")
30104@end lisp 30113@end lisp
30105 30114
30106So be careful not to mix up strings (the latter) with symbols (the 30115So be careful not to mix up strings (the latter) with symbols (the
diff --git a/doc/misc/makefile.w32-in b/doc/misc/makefile.w32-in
index f4887738411..fd3b1476b55 100644
--- a/doc/misc/makefile.w32-in
+++ b/doc/misc/makefile.w32-in
@@ -32,7 +32,7 @@ infodir = $(srcdir)/../../info
32emacsdir = $(srcdir)/../emacs 32emacsdir = $(srcdir)/../emacs
33 33
34# The makeinfo program is part of the Texinfo distribution. 34# The makeinfo program is part of the Texinfo distribution.
35MAKEINFO = makeinfo --force 35MAKEINFO = makeinfo --force -I$(emacsdir)
36MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat 36MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat
37INFO_TARGETS = $(infodir)/ccmode \ 37INFO_TARGETS = $(infodir)/ccmode \
38 $(infodir)/cl $(infodir)/dbus $(infodir)/dired-x \ 38 $(infodir)/cl $(infodir)/dbus $(infodir)/dired-x \
@@ -70,7 +70,7 @@ INFOSOURCES = info.texi
70 70
71TEXI2DVI = texi2dvi 71TEXI2DVI = texi2dvi
72ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \ 72ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \
73 "MAKEINFO=$(MAKEINFO) -I$(srcdir) -I$(emacsdir)" /C 73 "MAKEINFO=$(MAKEINFO) -I$(srcdir)" /C
74 74
75 75
76info: $(INFO_TARGETS) 76info: $(INFO_TARGETS)
@@ -218,7 +218,7 @@ widget.dvi: widget.texi
218 $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi 218 $(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi
219 219
220$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi 220$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi
221 $(MAKEINFO) -I$(emacsdir) faq.texi 221 $(MAKEINFO) faq.texi
222faq.dvi: faq.texi $(emacsdir)/emacsver.texi 222faq.dvi: faq.texi $(emacsdir)/emacsver.texi
223 $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi 223 $(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi
224 224
@@ -227,10 +227,10 @@ $(infodir)/autotype: autotype.texi
227autotype.dvi: autotype.texi 227autotype.dvi: autotype.texi
228 $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi 228 $(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi
229 229
230$(infodir)/calc: calc.texi 230$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi
231 $(MAKEINFO) calc.texi 231 $(MAKEINFO) calc.texi
232 232
233calc.dvi: calc.texi 233calc.dvi: calc.texi $(emacsdir)/emacsver.texi
234 $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi 234 $(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi
235 235
236# This is produced with --no-split to avoid making files whose 236# This is produced with --no-split to avoid making files whose
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 8e9eca55177..1fec34f147b 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -1450,8 +1450,10 @@ Allegedly.
1450 1450
1451@item message-default-headers 1451@item message-default-headers
1452@vindex message-default-headers 1452@vindex message-default-headers
1453This string is inserted at the end of the headers in all message 1453Header lines to be inserted in outgoing messages before you edit the
1454buffers. 1454message, so you can edit or delete their lines. If set to a string, it
1455is directly inserted. If set to a function, it is called and its
1456result is inserted.
1455 1457
1456@item message-subject-re-regexp 1458@item message-subject-re-regexp
1457@vindex message-subject-re-regexp 1459@vindex message-subject-re-regexp
diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi
index ed64f91ac39..a06a7231112 100644
--- a/doc/misc/mh-e.texi
+++ b/doc/misc/mh-e.texi
@@ -213,7 +213,7 @@ more niceties about GNU Emacs and MH@. Now I'm fully hooked on both of
213them. 213them.
214 214
215The MH-E package is distributed with GNU Emacs@footnote{Version 215The MH-E package is distributed with GNU Emacs@footnote{Version
216@value{VERSION} of MH-E will appear in GNU Emacs 23.1. It is supported 216@value{VERSION} of MH-E appeared in GNU Emacs 23.1. It is supported
217in GNU Emacs 21 and 22, as well as XEmacs 21 (except for versions 217in GNU Emacs 21 and 22, as well as XEmacs 21 (except for versions
21821.5.9-21.5.16). It is compatible with MH versions 6.8.4 and higher, 21821.5.9-21.5.16). It is compatible with MH versions 6.8.4 and higher,
219all versions of nmh, and GNU mailutils 1.0 and higher.}, so you 219all versions of nmh, and GNU mailutils 1.0 and higher.}, so you
@@ -8951,8 +8951,8 @@ files that were already part of Emacs) and the software was completely
8951reorganized to push back two decades of entropy. Version 8 appeared in 8951reorganized to push back two decades of entropy. Version 8 appeared in
8952Emacs 22.1 in 2006. 8952Emacs 22.1 in 2006.
8953 8953
8954Development was then quiet for a couple of years. Emacs 23.1, which is 8954Development was then quiet for a couple of years. Emacs 23.1, released
8955due out in 2009, will contain version 8.1. This version includes a few 8955in June 2009, contains version 8.2. This version includes a few
8956new features and several bug fixes. 8956new features and several bug fixes.
8957 8957
8958Bill Wohler, August 2008 8958Bill Wohler, August 2008
@@ -9061,6 +9061,4 @@ Bill Wohler, August 2008
9061@c sentence-end-double-space: nil 9061@c sentence-end-double-space: nil
9062@c End: 9062@c End:
9063 9063
9064@ignore 9064
9065 arch-tag: b778477d-1a10-4a99-84de-f877a2ea6bef
9066@end ignore
diff --git a/doc/misc/nxml-mode.texi b/doc/misc/nxml-mode.texi
index 423bdc85a24..d076f0dd820 100644
--- a/doc/misc/nxml-mode.texi
+++ b/doc/misc/nxml-mode.texi
@@ -8,7 +8,8 @@
8This manual documents nxml-mode, an Emacs major mode for editing 8This manual documents nxml-mode, an Emacs major mode for editing
9XML with RELAX NG support. 9XML with RELAX NG support.
10 10
11Copyright @copyright{} 2007, 2008, 2009, 2010 Free Software Foundation, Inc. 11Copyright @copyright{} 2007, 2008, 2009, 2010
12Free Software Foundation, Inc.
12 13
13@quotation 14@quotation
14Permission is granted to copy, distribute and/or modify this document 15Permission is granted to copy, distribute and/or modify this document
@@ -43,6 +44,7 @@ license to the document, as described in section 6 of the license.
43This manual is not yet complete. 44This manual is not yet complete.
44 45
45@menu 46@menu
47* Introduction::
46* Completion:: 48* Completion::
47* Inserting end-tags:: 49* Inserting end-tags::
48* Paragraphs:: 50* Paragraphs::
@@ -52,6 +54,58 @@ This manual is not yet complete.
52* Limitations:: 54* Limitations::
53@end menu 55@end menu
54 56
57@node Introduction
58@chapter Introduction
59
60nXML mode is an Emacs major-mode for editing XML documents. It supports
61editing well-formed XML documents, and provides schema-sensitive editing
62using RELAX NG Compact Syntax. To get started, visit a file containing an
63XML document, and, if necessary, use @kbd{M-x nxml-mode} to switch to nXML
64mode. By default, @code{auto-mode-alist} and @code{magic-fallback-alist}
65put buffers in nXML mode if they have recognizable XML content or file
66extensions. You may wish to customize the settings, for example to
67recognize different file extensions.
68
69Once in nXML mode, you can type @kbd{C-h m} for basic information on the
70mode.
71
72The @file{etc/nxml} directory in the Emacs distribution contains some data
73files used by nXML mode, and includes two files (@file{test.valid.xml} and
74@file{test.invalid.xml}) that provide examples of valid and invalid XML
75documents.
76
77To get validation and schema-sensitive editing, you need a RELAX NG Compact
78Syntax (RNC) schema for your document (@pxref{Locating a schema}). The
79@file{etc/schema} directory includes some schemas for popular document
80types. See @url{http://relaxng.org/} for more information on RELAX NG.
81You can use the @samp{Trang} program from
82@url{http://www.thaiopensource.com/relaxng/trang.html} to
83automatically create RNC schemas. This program can:
84
85@itemize @bullet
86@item
87infer an RNC schema from an instance document;
88@item
89convert a DTD to an RNC schema;
90@item
91convert a RELAX NG XML syntax schema to an RNC schema.
92@end itemize
93
94@noindent To convert a RELAX NG XML syntax (@samp{.rng}) schema to a RNC
95one, you can also use the XSLT stylesheet from
96@url{http://www.pantor.com/download.html}.
97
98To convert a W3C XML Schema to an RNC schema, you need first to convert it
99to RELAX NG XML syntax using the RELAX NG converter tool @code{rngconv}
100(built on top of MSV). See @url{https://github.com/kohsuke/msv}
101and @url{https://msv.dev.java.net/}.
102
103For historical discussions only, see the mailing list archives at
104@url{http://groups.yahoo.com/group/emacs-nxml-mode/}. Please make all new
105discussions on the @samp{help-gnu-emacs} and @samp{emacs-devel} mailing
106lists. Report any bugs with @kbd{M-x report-emacs-bug}.
107
108
55@node Completion 109@node Completion
56@chapter Completion 110@chapter Completion
57 111
@@ -855,6 +909,3 @@ specification are not enforced.
855 909
856@bye 910@bye
857 911
858@ignore
859 arch-tag: 3b6e8ac2-ae8d-4f38-bd43-ce9f80be04d6
860@end ignore
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 97b8d3ebc03..af7a4b48032 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -4,8 +4,8 @@
4@setfilename ../../info/org 4@setfilename ../../info/org
5@settitle The Org Manual 5@settitle The Org Manual
6 6
7@set VERSION 7.01 7@set VERSION 7.3
8@set DATE July 2010 8@set DATE November 2010
9 9
10@c Use proper quote and backtick for code sections in PDF output 10@c Use proper quote and backtick for code sections in PDF output
11@c Cf. Texinfo manual 14.2 11@c Cf. Texinfo manual 14.2
@@ -22,6 +22,24 @@
22@finalout 22@finalout
23 23
24@c Macro definitions 24@c Macro definitions
25@macro orgcmd{key,command}
26@iftex
27@kindex \key\
28@findex \command\
29@item @kbd{\key\} @hskip 0pt plus 1filll @code{\command\}
30@end iftex
31@ifnottex
32@kindex \key\
33@findex \command\
34@item @kbd{\key\} @tie{}@tie{}@tie{}@tie{}(@code{\command\})
35@end ifnottex
36@end macro
37
38@macro orgkey{key}
39@kindex \key\
40@item @kbd{\key\}
41@end macro
42
25@iftex 43@iftex
26@c @hyphenation{time-stamp time-stamps time-stamp-ing time-stamp-ed} 44@c @hyphenation{time-stamp time-stamps time-stamp-ing time-stamp-ed}
27@end iftex 45@end iftex
@@ -122,6 +140,7 @@ with contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison,
122* History and Acknowledgments:: How Org came into being 140* History and Acknowledgments:: How Org came into being
123* Main Index:: An index of Org's concepts and features 141* Main Index:: An index of Org's concepts and features
124* Key Index:: Key bindings and where they are described 142* Key Index:: Key bindings and where they are described
143* Command and Function Index:: Command names and some internal functions
125* Variable Index:: Variables mentioned in the manual 144* Variable Index:: Variables mentioned in the manual
126 145
127@detailmenu 146@detailmenu
@@ -244,6 +263,7 @@ Dates and times
244* Resolving idle time:: Resolving time if you've been idle 263* Resolving idle time:: Resolving time if you've been idle
245* Effort estimates:: Planning work effort in advance 264* Effort estimates:: Planning work effort in advance
246* Relative timer:: Notes with a running timer 265* Relative timer:: Notes with a running timer
266* Countdown timer:: Starting a countdown timer for a task
247 267
248Creating timestamps 268Creating timestamps
249 269
@@ -364,6 +384,7 @@ HTML export
364* Links in HTML export:: How links will be interpreted and formatted 384* Links in HTML export:: How links will be interpreted and formatted
365* Tables in HTML export:: How to modify the formatting of tables 385* Tables in HTML export:: How to modify the formatting of tables
366* Images in HTML export:: How to insert figures into HTML output 386* Images in HTML export:: How to insert figures into HTML output
387* Math formatting in HTML export:: Beautiful math also on the web
367* Text areas in HTML export:: An alternative way to show an example 388* Text areas in HTML export:: An alternative way to show an example
368* CSS support:: Changing the appearance of the output 389* CSS support:: Changing the appearance of the output
369* JavaScript support:: Info and Folding in a web browser 390* JavaScript support:: Info and Folding in a web browser
@@ -436,16 +457,22 @@ Using header arguments
436* Buffer-wide header arguments:: Set default values for a specific buffer 457* Buffer-wide header arguments:: Set default values for a specific buffer
437* Header arguments in Org-mode properties:: Set default values for a buffer or heading 458* Header arguments in Org-mode properties:: Set default values for a buffer or heading
438* Code block specific header arguments:: The most common way to set values 459* Code block specific header arguments:: The most common way to set values
460* Header arguments in function calls:: The most specific level
439 461
440Specific header arguments 462Specific header arguments
441 463
442* var:: Pass arguments to code blocks 464* var:: Pass arguments to code blocks
443* results:: Specify the type of results and how they will be collected and handled 465* results:: Specify the type of results and how they will
466 be collected and handled
444* file:: Specify a path for file output 467* file:: Specify a path for file output
445* dir:: Specify the default directory for code block execution 468* dir:: Specify the default (possibly remote)
469 directory for code block execution
446* exports:: Export code and/or results 470* exports:: Export code and/or results
447* tangle:: Toggle tangling and specify file name 471* tangle:: Toggle tangling and specify file name
448* no-expand:: Turn off variable assignment and noweb expansion during tangling 472* comments:: Toggle insertion of comments in tangled
473 code files
474* no-expand:: Turn off variable assignment and noweb
475 expansion during tangling
449* session:: Preserve the state of code evaluation 476* session:: Preserve the state of code evaluation
450* noweb:: Toggle expansion of noweb references 477* noweb:: Toggle expansion of noweb references
451* cache:: Avoid re-evaluating unchanged code blocks 478* cache:: Avoid re-evaluating unchanged code blocks
@@ -453,10 +480,12 @@ Specific header arguments
453* colnames:: Handle column names in tables 480* colnames:: Handle column names in tables
454* rownames:: Handle row names in tables 481* rownames:: Handle row names in tables
455* shebang:: Make tangled files executable 482* shebang:: Make tangled files executable
483* eval:: Limit evaluation of specific code blocks
456 484
457Miscellaneous 485Miscellaneous
458 486
459* Completion:: M-TAB knows what you need 487* Completion:: M-TAB knows what you need
488* Easy Templates:: Quick insertion of structural elements
460* Speed keys:: Electric commands at the beginning of a headline 489* Speed keys:: Electric commands at the beginning of a headline
461* Code evaluation security:: Org mode files evaluate inline code 490* Code evaluation security:: Org mode files evaluate inline code
462* Customization:: Adapting Org to your taste 491* Customization:: Adapting Org to your taste
@@ -608,18 +637,6 @@ step for this directory:
608(setq load-path (cons "~/path/to/orgdir/contrib/lisp" load-path)) 637(setq load-path (cons "~/path/to/orgdir/contrib/lisp" load-path))
609@end example 638@end example
610 639
611@sp 2
612@cartouche
613XEmacs users now need to install the file @file{noutline.el} from
614the @file{xemacs} sub-directory of the Org distribution. Use the
615command:
616
617@example
618 make install-noutline
619@end example
620@end cartouche
621@sp 2
622
623@noindent Now byte-compile the Lisp files with the shell command: 640@noindent Now byte-compile the Lisp files with the shell command:
624 641
625@example 642@example
@@ -720,10 +737,15 @@ active region by using the mouse to select a region, or pressing
720If you find problems with Org, or if you have questions, remarks, or ideas 737If you find problems with Org, or if you have questions, remarks, or ideas
721about it, please mail to the Org mailing list @email{emacs-orgmode@@gnu.org}. 738about it, please mail to the Org mailing list @email{emacs-orgmode@@gnu.org}.
722If you are not a member of the mailing list, your mail will be passed to the 739If you are not a member of the mailing list, your mail will be passed to the
723list after a moderator has approved it. 740list after a moderator has approved it@footnote{Please consider subscribing
724 741to the mailing list, in order to minimize the work the mailing list
725For bug reports, please provide as much information as possible, including 742moderators have to do.}.
726the version information of Emacs (@kbd{M-x emacs-version @key{RET}}) and Org 743
744For bug reports, please first try to reproduce the bug with the latest
745version of Org available - if you are running an outdated version, it is
746quite possible that the bug has been fixed already. If the bug persists,
747prepare a report and provide as much information as possible, including the
748version information of Emacs (@kbd{M-x emacs-version @key{RET}}) and Org
727(@kbd{M-x org-version @key{RET}}), as well as the Org related setup in 749(@kbd{M-x org-version @key{RET}}), as well as the Org related setup in
728@file{.emacs}. The easiest way to do this is to use the command 750@file{.emacs}. The easiest way to do this is to use the command
729@example 751@example
@@ -742,7 +764,7 @@ about:
742@item What did you expect to happen? 764@item What did you expect to happen?
743@item What happened instead? 765@item What happened instead?
744@end enumerate 766@end enumerate
745@noindent Thank you for helping to improve this mode. 767@noindent Thank you for helping to improve this program.
746 768
747@subsubheading How to create a useful backtrace 769@subsubheading How to create a useful backtrace
748 770
@@ -886,9 +908,8 @@ Org uses just two commands, bound to @key{TAB} and
886@cindex folded, subtree visibility state 908@cindex folded, subtree visibility state
887@cindex children, subtree visibility state 909@cindex children, subtree visibility state
888@cindex subtree, subtree visibility state 910@cindex subtree, subtree visibility state
889@table @kbd 911@table @asis
890@kindex @key{TAB} 912@orgcmd{@key{TAB},org-cycle}
891@item @key{TAB}
892@emph{Subtree cycling}: Rotate current subtree among the states 913@emph{Subtree cycling}: Rotate current subtree among the states
893 914
894@example 915@example
@@ -910,8 +931,7 @@ argument (@kbd{C-u @key{TAB}}), global cycling is invoked.
910@cindex overview, global visibility state 931@cindex overview, global visibility state
911@cindex contents, global visibility state 932@cindex contents, global visibility state
912@cindex show all, global visibility state 933@cindex show all, global visibility state
913@kindex S-@key{TAB} 934@orgcmd{S-@key{TAB},org-global-cycle}
914@item S-@key{TAB}
915@itemx C-u @key{TAB} 935@itemx C-u @key{TAB}
916@emph{Global cycling}: Rotate the entire buffer among the states 936@emph{Global cycling}: Rotate the entire buffer among the states
917 937
@@ -925,22 +945,18 @@ CONTENTS view up to headlines of level N will be shown. Note that inside
925tables, @kbd{S-@key{TAB}} jumps to the previous field. 945tables, @kbd{S-@key{TAB}} jumps to the previous field.
926 946
927@cindex show all, command 947@cindex show all, command
928@kindex C-u C-u C-u @key{TAB} 948@orgcmd{C-u C-u C-u @key{TAB},show-all}
929@item C-u C-u C-u @key{TAB}
930Show all, including drawers. 949Show all, including drawers.
931@kindex C-c C-r 950@orgcmd{C-c C-r,org-reveal}
932@item C-c C-r
933Reveal context around point, showing the current entry, the following heading 951Reveal context around point, showing the current entry, the following heading
934and the hierarchy above. Useful for working near a location that has been 952and the hierarchy above. Useful for working near a location that has been
935exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda command 953exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda command
936(@pxref{Agenda commands}). With a prefix argument show, on each 954(@pxref{Agenda commands}). With a prefix argument show, on each
937level, all sibling headings. With double prefix arg, also show the entire 955level, all sibling headings. With double prefix arg, also show the entire
938subtree of the parent. 956subtree of the parent.
939@kindex C-c C-k 957@orgcmd{C-c C-k,show-branches}
940@item C-c C-k
941Expose all the headings of the subtree, CONTENT view for just one subtree. 958Expose all the headings of the subtree, CONTENT view for just one subtree.
942@kindex C-c C-x b 959@orgcmd{C-c C-x b,org-tree-to-indirect-buffer}
943@item C-c C-x b
944Show the current subtree in an indirect buffer@footnote{The indirect 960Show the current subtree in an indirect buffer@footnote{The indirect
945buffer 961buffer
946@ifinfo 962@ifinfo
@@ -982,9 +998,8 @@ Furthermore, any entries with a @samp{VISIBILITY} property (@pxref{Properties
982and Columns}) will get their visibility adapted accordingly. Allowed values 998and Columns}) will get their visibility adapted accordingly. Allowed values
983for this property are @code{folded}, @code{children}, @code{content}, and 999for this property are @code{folded}, @code{children}, @code{content}, and
984@code{all}. 1000@code{all}.
985@table @kbd 1001@table @asis
986@kindex C-u C-u @key{TAB} 1002@orgcmd{C-u C-u @key{TAB},org-set-startup-visibility}
987@item C-u C-u @key{TAB}
988Switch back to the startup visibility of the buffer, i.e. whatever is 1003Switch back to the startup visibility of the buffer, i.e. whatever is
989requested by startup options and @samp{VISIBILITY} properties in individual 1004requested by startup options and @samp{VISIBILITY} properties in individual
990entries. 1005entries.
@@ -997,24 +1012,18 @@ entries.
997@cindex headline navigation 1012@cindex headline navigation
998The following commands jump to other headlines in the buffer. 1013The following commands jump to other headlines in the buffer.
999 1014
1000@table @kbd 1015@table @asis
1001@kindex C-c C-n 1016@orgcmd{C-c C-n,outline-next-visible-heading}
1002@item C-c C-n
1003Next heading. 1017Next heading.
1004@kindex C-c C-p 1018@orgcmd{C-c C-p,outline-previous-visible-heading}
1005@item C-c C-p
1006Previous heading. 1019Previous heading.
1007@kindex C-c C-f 1020@orgcmd{C-c C-f,org-forward-same-level}
1008@item C-c C-f
1009Next heading same level. 1021Next heading same level.
1010@kindex C-c C-b 1022@orgcmd{C-c C-b,org-backward-same-level}
1011@item C-c C-b
1012Previous heading same level. 1023Previous heading same level.
1013@kindex C-c C-u 1024@orgcmd{C-c C-u,outline-up-heading}
1014@item C-c C-u
1015Backward to higher level heading. 1025Backward to higher level heading.
1016@kindex C-c C-j 1026@orgcmd{C-c C-j,org-goto}
1017@item C-c C-j
1018Jump to a different place without changing the current outline 1027Jump to a different place without changing the current outline
1019visibility. Shows the document structure in a temporary buffer, where 1028visibility. Shows the document structure in a temporary buffer, where
1020you can use the following keys to find your destination: 1029you can use the following keys to find your destination:
@@ -1049,9 +1058,8 @@ See also the variable @code{org-goto-interface}.
1049@cindex sorting, of subtrees 1058@cindex sorting, of subtrees
1050@cindex subtrees, cut and paste 1059@cindex subtrees, cut and paste
1051 1060
1052@table @kbd 1061@table @asis
1053@kindex M-@key{RET} 1062@orgcmd{M-@key{RET},org-insert-heading}
1054@item M-@key{RET}
1055@vindex org-M-RET-may-split-line 1063@vindex org-M-RET-may-split-line
1056Insert new heading with same level as current. If the cursor is in a 1064Insert new heading with same level as current. If the cursor is in a
1057plain list item, a new item is created (@pxref{Plain lists}). To force 1065plain list item, a new item is created (@pxref{Plain lists}). To force
@@ -1066,62 +1074,48 @@ the content of that line is made the new heading. If the command is
1066used at the end of a folded subtree (i.e. behind the ellipses at the end 1074used at the end of a folded subtree (i.e. behind the ellipses at the end
1067of a headline), then a headline like the current one will be inserted 1075of a headline), then a headline like the current one will be inserted
1068after the end of the subtree. 1076after the end of the subtree.
1069@kindex C-@key{RET} 1077@orgcmd{C-@key{RET},org-insert-heading-respect-content}
1070@item C-@key{RET}
1071Just like @kbd{M-@key{RET}}, except when adding a new heading below the 1078Just like @kbd{M-@key{RET}}, except when adding a new heading below the
1072current heading, the new heading is placed after the body instead of before 1079current heading, the new heading is placed after the body instead of before
1073it. This command works from anywhere in the entry. 1080it. This command works from anywhere in the entry.
1074@kindex M-S-@key{RET} 1081@orgcmd{M-S-@key{RET},org-insert-todo-heading}
1075@item M-S-@key{RET}
1076@vindex org-treat-insert-todo-heading-as-state-change 1082@vindex org-treat-insert-todo-heading-as-state-change
1077Insert new TODO entry with same level as current heading. See also the 1083Insert new TODO entry with same level as current heading. See also the
1078variable @code{org-treat-insert-todo-heading-as-state-change}. 1084variable @code{org-treat-insert-todo-heading-as-state-change}.
1079@kindex C-S-@key{RET} 1085@orgcmd{C-S-@key{RET},org-insert-todo-heading-respect-content}
1080@item C-S-@key{RET}
1081Insert new TODO entry with same level as current heading. Like 1086Insert new TODO entry with same level as current heading. Like
1082@kbd{C-@key{RET}}, the new headline will be inserted after the current 1087@kbd{C-@key{RET}}, the new headline will be inserted after the current
1083subtree. 1088subtree.
1084@kindex @key{TAB} 1089@orgcmd{@key{TAB},org-cycle}
1085@item @key{TAB} @r{in new, empty entry}
1086In a new entry with no text yet, the first @key{TAB} demotes the entry to 1090In a new entry with no text yet, the first @key{TAB} demotes the entry to
1087become a child of the previous one. The next @key{TAB} makes it a parent, 1091become a child of the previous one. The next @key{TAB} makes it a parent,
1088and so on, all the way to top level. Yet another @key{TAB}, and you are back 1092and so on, all the way to top level. Yet another @key{TAB}, and you are back
1089to the initial level. 1093to the initial level.
1090@kindex M-@key{left} 1094@orgcmd{M-@key{left},org-do-promote}
1091@item M-@key{left}
1092Promote current heading by one level. 1095Promote current heading by one level.
1093@kindex M-@key{right} 1096@orgcmd{M-@key{right},org-do-demote}
1094@item M-@key{right}
1095Demote current heading by one level. 1097Demote current heading by one level.
1096@kindex M-S-@key{left} 1098@orgcmd{M-S-@key{left},org-promote-subtree}
1097@item M-S-@key{left}
1098Promote the current subtree by one level. 1099Promote the current subtree by one level.
1099@kindex M-S-@key{right} 1100@orgcmd{M-S-@key{right},org-demote-subtree}
1100@item M-S-@key{right}
1101Demote the current subtree by one level. 1101Demote the current subtree by one level.
1102@kindex M-S-@key{up} 1102@orgcmd{M-S-@key{up},org-move-subtree-up}
1103@item M-S-@key{up}
1104Move subtree up (swap with previous subtree of same 1103Move subtree up (swap with previous subtree of same
1105level). 1104level).
1106@kindex M-S-@key{down} 1105@orgcmd{M-S-@key{down},org-move-subtree-down}
1107@item M-S-@key{down}
1108Move subtree down (swap with next subtree of same level). 1106Move subtree down (swap with next subtree of same level).
1109@kindex C-c C-x C-w 1107@orgcmd{C-c C-x C-w,org-cut-subtree}
1110@item C-c C-x C-w
1111Kill subtree, i.e. remove it from buffer but save in kill ring. 1108Kill subtree, i.e. remove it from buffer but save in kill ring.
1112With a numeric prefix argument N, kill N sequential subtrees. 1109With a numeric prefix argument N, kill N sequential subtrees.
1113@kindex C-c C-x M-w 1110@orgcmd{C-c C-x M-w,org-copy-subtree}
1114@item C-c C-x M-w
1115Copy subtree to kill ring. With a numeric prefix argument N, copy the N 1111Copy subtree to kill ring. With a numeric prefix argument N, copy the N
1116sequential subtrees. 1112sequential subtrees.
1117@kindex C-c C-x C-y 1113@orgcmd{C-c C-x C-y,org-paste-subtree}
1118@item C-c C-x C-y
1119Yank subtree from kill ring. This does modify the level of the subtree to 1114Yank subtree from kill ring. This does modify the level of the subtree to
1120make sure the tree fits in nicely at the yank position. The yank level can 1115make sure the tree fits in nicely at the yank position. The yank level can
1121also be specified with a numeric prefix argument, or by yanking after a 1116also be specified with a numeric prefix argument, or by yanking after a
1122headline marker like @samp{****}. 1117headline marker like @samp{****}.
1123@kindex C-y 1118@orgcmd{C-y,org-yank}
1124@item C-y
1125@vindex org-yank-adjusted-subtrees 1119@vindex org-yank-adjusted-subtrees
1126@vindex org-yank-folded-subtrees 1120@vindex org-yank-folded-subtrees
1127Depending on the variables @code{org-yank-adjusted-subtrees} and 1121Depending on the variables @code{org-yank-adjusted-subtrees} and
@@ -1134,19 +1128,16 @@ previously visible. Any prefix argument to this command will force a normal
1134force a normal yank is @kbd{C-u C-y}. If you use @code{yank-pop} after a 1128force a normal yank is @kbd{C-u C-y}. If you use @code{yank-pop} after a
1135yank, it will yank previous kill items plainly, without adjustment and 1129yank, it will yank previous kill items plainly, without adjustment and
1136folding. 1130folding.
1137@kindex C-c C-x c 1131@orgcmd{C-c C-x c,org-clone-subtree-with-time-shift}
1138@item C-c C-x c
1139Clone a subtree by making a number of sibling copies of it. You will be 1132Clone a subtree by making a number of sibling copies of it. You will be
1140prompted for the number of copies to make, and you can also specify if any 1133prompted for the number of copies to make, and you can also specify if any
1141timestamps in the entry should be shifted. This can be useful, for example, 1134timestamps in the entry should be shifted. This can be useful, for example,
1142to create a number of tasks related to a series of lectures to prepare. For 1135to create a number of tasks related to a series of lectures to prepare. For
1143more details, see the docstring of the command 1136more details, see the docstring of the command
1144@code{org-clone-subtree-with-time-shift}. 1137@code{org-clone-subtree-with-time-shift}.
1145@kindex C-c C-w 1138@orgcmd{C-c C-w,org-refile}
1146@item C-c C-w
1147Refile entry or region to a different location. @xref{Refiling notes}. 1139Refile entry or region to a different location. @xref{Refiling notes}.
1148@kindex C-c ^ 1140@orgcmd{C-c ^,org-sort-entries-or-items}
1149@item C-c ^
1150Sort same-level entries. When there is an active region, all entries in the 1141Sort same-level entries. When there is an active region, all entries in the
1151region will be sorted. Otherwise the children of the current headline are 1142region will be sorted. Otherwise the children of the current headline are
1152sorted. The command prompts for the sorting method, which can be 1143sorted. The command prompts for the sorting method, which can be
@@ -1157,14 +1148,11 @@ of a property. Reverse sorting is possible as well. You can also supply
1157your own function to extract the sorting key. With a @kbd{C-u} prefix, 1148your own function to extract the sorting key. With a @kbd{C-u} prefix,
1158sorting will be case-sensitive. With two @kbd{C-u C-u} prefixes, duplicate 1149sorting will be case-sensitive. With two @kbd{C-u C-u} prefixes, duplicate
1159entries will also be removed. 1150entries will also be removed.
1160@kindex C-x n s 1151@orgcmd{C-x n s,org-narrow-to-subtree}
1161@item C-x n s
1162Narrow buffer to current subtree. 1152Narrow buffer to current subtree.
1163@kindex C-x n w 1153@orgcmd{C-x n w,widen}
1164@item C-x n w
1165Widen buffer to remove narrowing. 1154Widen buffer to remove narrowing.
1166@kindex C-c * 1155@orgcmd{C-c *,org-toggle-heading}
1167@item C-c *
1168Turn a normal line or plain list item into a headline (so that it becomes a 1156Turn a normal line or plain list item into a headline (so that it becomes a
1169subheading at its location). Also turn a headline into a normal line by 1157subheading at its location). Also turn a headline into a normal line by
1170removing the stars. If there is an active region, turn all lines in the 1158removing the stars. If there is an active region, turn all lines in the
@@ -1208,9 +1196,8 @@ and you will see immediately how it works.
1208Org-mode contains several commands creating such trees, all these 1196Org-mode contains several commands creating such trees, all these
1209commands can be accessed through a dispatcher: 1197commands can be accessed through a dispatcher:
1210 1198
1211@table @kbd 1199@table @asis
1212@kindex C-c / 1200@orgcmd{C-c /,org-sparse-tree}
1213@item C-c /
1214This prompts for an extra key to select a sparse-tree creating command. 1201This prompts for an extra key to select a sparse-tree creating command.
1215@kindex C-c / r 1202@kindex C-c / r
1216@item C-c / r 1203@item C-c / r
@@ -1264,9 +1251,9 @@ part of the document and print the resulting file.
1264@cindex ordered lists 1251@cindex ordered lists
1265 1252
1266Within an entry of the outline tree, hand-formatted lists can provide 1253Within an entry of the outline tree, hand-formatted lists can provide
1267additional structure. They also provide a way to create lists of 1254additional structure. They also provide a way to create lists of checkboxes
1268checkboxes (@pxref{Checkboxes}). Org supports editing such lists, 1255(@pxref{Checkboxes}). Org supports editing such lists, and every exporter
1269and the HTML exporter (@pxref{Exporting}) parses and formats them. 1256(@pxref{Exporting}) can parse and format them.
1270 1257
1271Org knows ordered lists, unordered lists, and description lists. 1258Org knows ordered lists, unordered lists, and description lists.
1272@itemize @bullet 1259@itemize @bullet
@@ -1279,26 +1266,39 @@ visually indistinguishable from true headlines. In short: even though
1279@samp{*} is supported, it may be better to not use it for plain list items.} 1266@samp{*} is supported, it may be better to not use it for plain list items.}
1280as bullets. 1267as bullets.
1281@item 1268@item
1269@vindex org-plain-list-ordered-item-terminator
1282@emph{Ordered} list items start with a numeral followed by either a period or 1270@emph{Ordered} list items start with a numeral followed by either a period or
1283a right parenthesis, such as @samp{1.} or @samp{1)}. If you want a list to 1271a right parenthesis@footnote{You can filter out any of them by configuring
1284start a different value (e.g. 20), start the text of the item with 1272@code{org-plain-list-ordered-item-terminator}.}, such as @samp{1.} or
1285@code{[@@start:20]}. 1273@samp{1)}. If you want a list to start a different value (e.g. 20), start
1274the text of the item with @code{[@@20]}@footnote{If there's a checkbox in the
1275item, the cookie must be put @emph{before} the checkbox.}. Those constructs
1276can be used in any item of the list in order to enforce a particular
1277numbering.
1286@item 1278@item
1287@emph{Description} list items are unordered list items, and contain the 1279@emph{Description} list items are unordered list items, and contain the
1288separator @samp{ :: } to separate the description @emph{term} from the 1280separator @samp{ :: } to separate the description @emph{term} from the
1289description. 1281description.
1290@end itemize 1282@end itemize
1291 1283
1292@vindex org-empty-line-terminates-plain-lists
1293Items belonging to the same list must have the same indentation on the first 1284Items belonging to the same list must have the same indentation on the first
1294line. In particular, if an ordered list reaches number @samp{10.}, then the 1285line. In particular, if an ordered list reaches number @samp{10.}, then the
12952--digit numbers must be written left-aligned with the other numbers in the 12862--digit numbers must be written left-aligned with the other numbers in the
1296list. Indentation also determines the end of a list item. It ends before 1287list.
1297the next line that is indented like the bullet/number, or less. Empty lines 1288
1298are part of the previous item, so you can have several paragraphs in one 1289@vindex org-list-ending-method
1299item. If you would like an empty line to terminate all currently open plain 1290@vindex org-list-end-regexp
1300lists, configure the variable @code{org-empty-line-terminates-plain-lists}. 1291@vindex org-empty-line-terminates-plain-lists
1301Here is an example: 1292Two methods@footnote{To disable either of them, configure
1293@code{org-list-ending-method}.} are provided to terminate lists. A list ends
1294before the next line that is indented like the bullet/number or less, or it
1295ends before two blank lines@footnote{See also
1296@code{org-empty-line-terminates-plain-lists}.}. In both cases, all levels of
1297the list are closed@footnote{So you cannot have a sublist, some text and then
1298another sublist while still in the same top-level list item. This used to be
1299possible, but it was only supported in the HTML exporter and difficult to
1300manage with automatic indentation.}. For finer control, you can end lists
1301with any pattern set in @code{org-list-end-regexp}. Here is an example:
1302 1302
1303@example 1303@example
1304@group 1304@group
@@ -1309,8 +1309,8 @@ Here is an example:
1309 + this was already my favorite scene in the book 1309 + this was already my favorite scene in the book
1310 + I really like Miranda Otto. 1310 + I really like Miranda Otto.
1311 3. Peter Jackson being shot by Legolas 1311 3. Peter Jackson being shot by Legolas
1312 - on DVD only
1313 He makes a really funny face when it happens. 1312 He makes a really funny face when it happens.
1313 - on DVD only
1314 But in the end, no individual scenes matter but the film as a whole. 1314 But in the end, no individual scenes matter but the film as a whole.
1315 Important actors in this film are: 1315 Important actors in this film are:
1316 - @b{Elijah Wood} :: He plays Frodo 1316 - @b{Elijah Wood} :: He plays Frodo
@@ -1325,19 +1325,23 @@ XEmacs, you should use Kyle E. Jones' @file{filladapt.el}. To turn this on,
1325put into @file{.emacs}: @code{(require 'filladapt)}}, and by exporting them 1325put into @file{.emacs}: @code{(require 'filladapt)}}, and by exporting them
1326properly (@pxref{Exporting}). Since indentation is what governs the 1326properly (@pxref{Exporting}). Since indentation is what governs the
1327structure of these lists, many structural constructs like @code{#+BEGIN_...} 1327structure of these lists, many structural constructs like @code{#+BEGIN_...}
1328blocks can be indented to signal that they should be part of a list item. 1328blocks can be indented to signal that they should be considered of a list
1329item.
1329 1330
1330@vindex org-list-demote-modify-bullet 1331@vindex org-list-demote-modify-bullet
1331If you find that using a different bullet for a sub-list (than that used for 1332If you find that using a different bullet for a sub-list (than that used for
1332the current list-level) improves readability, customize the variable 1333the current list-level) improves readability, customize the variable
1333@code{org-list-demote-modify-bullet}. 1334@code{org-list-demote-modify-bullet}.
1334 1335
1335The following commands act on items when the cursor is in the first line 1336@vindex org-list-automatic-rules
1336of an item (the line with the bullet or number). 1337The following commands act on items when the cursor is in the first line of
1338an item (the line with the bullet or number). Some of them imply the
1339application of automatic rules to keep list structure in tact. If some of
1340these actions get in your way, configure @code{org-list-automatic-rules}
1341to disable them individually.
1337 1342
1338@table @kbd 1343@table @asis
1339@kindex @key{TAB} 1344@orgcmd{@key{TAB},org-cycle}
1340@item @key{TAB}
1341@vindex org-cycle-include-plain-lists 1345@vindex org-cycle-include-plain-lists
1342Items can be folded just like headline levels. Normally this works only if 1346Items can be folded just like headline levels. Normally this works only if
1343the cursor is on a plain list item. For more details, see the variable 1347the cursor is on a plain list item. For more details, see the variable
@@ -1345,31 +1349,29 @@ the cursor is on a plain list item. For more details, see the variable
1345will be treated like low-level. The level of an item is then given by the 1349will be treated like low-level. The level of an item is then given by the
1346indentation of the bullet/number. Items are always subordinate to real 1350indentation of the bullet/number. Items are always subordinate to real
1347headlines, however; the hierarchies remain completely separated. 1351headlines, however; the hierarchies remain completely separated.
1348 1352@orgcmd{M-@key{RET},org-insert-heading}
1349If @code{org-cycle-include-plain-lists} has not been set, @key{TAB}
1350fixes the indentation of the current line in a heuristic way.
1351@kindex M-@key{RET}
1352@item M-@key{RET}
1353@vindex org-M-RET-may-split-line 1353@vindex org-M-RET-may-split-line
1354@vindex org-list-automatic-rules
1354Insert new item at current level. With a prefix argument, force a new 1355Insert new item at current level. With a prefix argument, force a new
1355heading (@pxref{Structure editing}). If this command is used in the middle 1356heading (@pxref{Structure editing}). If this command is used in the middle
1356of a line, the line is @emph{split} and the rest of the line becomes the new 1357of a line, the line is @emph{split} and the rest of the line becomes the new
1357item@footnote{If you do not want the line to be split, customize the variable 1358item@footnote{If you do not want the line to be split, customize the variable
1358@code{org-M-RET-may-split-line}.}. If this command is executed in the 1359@code{org-M-RET-may-split-line}.}. If this command is executed @emph{before
1359@emph{whitespace before a bullet or number}, the new item is created 1360item's body}, the new item is created @emph{before} the current item. If the
1360@emph{before} the current item. If the command is executed in the white 1361command is executed in the white space before the text that is part of an
1361space before the text that is part of an item but does not contain the 1362item but does not contain the bullet, a bullet is added to the current line.
1362bullet, a bullet is added to the current line. 1363
1364As a new item cannot be inserted in a structural construct (like an example
1365or source code block) within a list, Org will instead insert it right before
1366the structure, or return an error.
1363@kindex M-S-@key{RET} 1367@kindex M-S-@key{RET}
1364@item M-S-@key{RET} 1368@item M-S-@key{RET}
1365Insert a new item with a checkbox (@pxref{Checkboxes}). 1369Insert a new item with a checkbox (@pxref{Checkboxes}).
1366@kindex @key{TAB} 1370@orgcmd{@key{TAB},org-cycle}
1367@item @key{TAB} @r{in new, empty item}
1368In a new item with no text yet, the first @key{TAB} demotes the item to 1371In a new item with no text yet, the first @key{TAB} demotes the item to
1369become a child of the previous one. The next @key{TAB} makes it a parent, 1372become a child of the previous one. Subsequents @key{TAB} move the item to
1370and so on, all the way to the left margin. Yet another @key{TAB}, and you 1373meaningful levels in the list and eventually get it back to its initial
1371are back to the initial level. 1374position.
1372@kindex S-@key{up}
1373@kindex S-@key{down} 1375@kindex S-@key{down}
1374@item S-@key{up} 1376@item S-@key{up}
1375@itemx S-@key{down} 1377@itemx S-@key{down}
@@ -1396,25 +1398,35 @@ Decrease/increase the indentation of an item, leaving children alone.
1396@item M-S-@key{left} 1398@item M-S-@key{left}
1397@itemx M-S-@key{right} 1399@itemx M-S-@key{right}
1398Decrease/increase the indentation of the item, including subitems. 1400Decrease/increase the indentation of the item, including subitems.
1399Initially, the item tree is selected based on current indentation. 1401Initially, the item tree is selected based on current indentation. When
1400When these commands are executed several times in direct succession, 1402these commands are executed several times in direct succession, the initially
1401the initially selected region is used, even if the new indentation 1403selected region is used, even if the new indentation would imply a different
1402would imply a different hierarchy. To use the new hierarchy, break 1404hierarchy. To use the new hierarchy, break the command chain with a cursor
1403the command chain with a cursor motion or so. 1405motion or so.
1406
1407As a special case, using this command on the very first item of a list will
1408move the whole list. This behavior can be disabled by configuring
1409@code{org-list-automatic-rules}. The global indentation of a list has no
1410influence on the text @emph{after} the list.
1404@kindex C-c C-c 1411@kindex C-c C-c
1405@item C-c C-c 1412@item C-c C-c
1406If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the 1413If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the
1407state of the checkbox. If not, this command makes sure that all the 1414state of the checkbox. Also, makes sure that all the
1408items on this list level use the same bullet. Furthermore, if this is 1415items on this list level use the same bullet and that the numbering of list
1409an ordered list, make sure the numbering is OK. 1416items (if applicable) is correct.
1410@kindex C-c - 1417@kindex C-c -
1418@vindex org-plain-list-ordered-item-terminator
1419@vindex org-list-automatic-rules
1411@item C-c - 1420@item C-c -
1412Cycle the entire list level through the different itemize/enumerate bullets 1421Cycle the entire list level through the different itemize/enumerate bullets
1413(@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}). With a numeric prefix 1422(@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}) or a subset of them,
1414argument N, select the Nth bullet from this list. If there is an active 1423depending on @code{org-plain-list-ordered-item-terminator}, the type of list,
1415region when calling this, all lines will be converted to list items. If the 1424and its position@footnote{See @code{bullet} rule in
1416first line already was a list item, any item markers will be removed from the 1425@code{org-list-automatic-rules} for more information.}. With a numeric
1417list. Finally, even without an active region, a normal line will be 1426prefix argument N, select the Nth bullet from this list. If there is an
1427active region when calling this, all lines will be converted to list items.
1428If the first line already was a list item, any item markers will be removed
1429from the list. Finally, even without an active region, a normal line will be
1418converted into a list item. 1430converted into a list item.
1419@kindex C-c * 1431@kindex C-c *
1420@item C-c * 1432@item C-c *
@@ -1696,8 +1708,7 @@ unpredictable for you, configure the variables
1696 1708
1697@table @kbd 1709@table @kbd
1698@tsubheading{Creation and conversion} 1710@tsubheading{Creation and conversion}
1699@kindex C-c | 1711@orgcmd{C-c |,org-table-create-or-convert-from-region}
1700@item C-c |
1701Convert the active region to table. If every line contains at least one 1712Convert the active region to table. If every line contains at least one
1702TAB character, the function assumes that the material is tab separated. 1713TAB character, the function assumes that the material is tab separated.
1703If every line contains a comma, comma-separated values (CSV) are assumed. 1714If every line contains a comma, comma-separated values (CSV) are assumed.
@@ -1711,21 +1722,17 @@ table. But it's easier just to start typing, like
1711@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}. 1722@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}.
1712 1723
1713@tsubheading{Re-aligning and field motion} 1724@tsubheading{Re-aligning and field motion}
1714@kindex C-c C-c 1725@orgcmd{C-c C-c,org-ctrl-c-ctrl-c}
1715@item C-c C-c
1716Re-align the table without moving the cursor. 1726Re-align the table without moving the cursor.
1717@c 1727@c
1718@kindex @key{TAB} 1728@orgcmd{<TAB>,org-cycle}
1719@item @key{TAB}
1720Re-align the table, move to the next field. Creates a new row if 1729Re-align the table, move to the next field. Creates a new row if
1721necessary. 1730necessary.
1722@c 1731@c
1723@kindex S-@key{TAB} 1732@orgcmd{S-@key{TAB},org-shifttab}
1724@item S-@key{TAB}
1725Re-align, move to previous field. 1733Re-align, move to previous field.
1726@c 1734@c
1727@kindex @key{RET} 1735@orgcmd{@key{RET},org-return}
1728@item @key{RET}
1729Re-align the table and move down to next row. Creates a new row if 1736Re-align the table and move down to next row. Creates a new row if
1730necessary. At the beginning or end of a line, @key{RET} still does 1737necessary. At the beginning or end of a line, @key{RET} still does
1731NEWLINE, so it can be used to split a table. 1738NEWLINE, so it can be used to split a table.
@@ -1940,9 +1947,10 @@ on a per-file basis with:
1940@end example 1947@end example
1941 1948
1942If you would like to overrule the automatic alignment of number-rich columns 1949If you would like to overrule the automatic alignment of number-rich columns
1943to the right and of string-rich column to the left, you and use @samp{<r>} or 1950to the right and of string-rich column to the left, you and use @samp{<r>},
1944@samp{<l>} in a similar fashion. You may also combine alignment and field 1951@samp{c}@footnote{Centering does not work inside Emacs, but it does have an
1945width like this: @samp{<l10>}. 1952effect when exporting to HTML.} or @samp{<l>} in a similar fashion. You may
1953also combine alignment and field width like this: @samp{<l10>}.
1946 1954
1947Lines which only contain these formatting cookies will be removed 1955Lines which only contain these formatting cookies will be removed
1948automatically when exporting the document. 1956automatically when exporting the document.
@@ -2807,23 +2815,13 @@ text before the first headline is usually not exported, so the first such
2807target should be after the first headline, or in the line directly before the 2815target should be after the first headline, or in the line directly before the
2808first headline.}. 2816first headline.}.
2809 2817
2810If no dedicated target exists, Org will search for the words in the link. In 2818If no dedicated target exists, Org will search for a headline that is exactly
2811the above example the search would be for @samp{my target}. Links starting 2819the link text but may also include a TODO keyword and tags@footnote{To insert
2812with a star like @samp{*My Target} restrict the search to 2820a link targeting a headline, in-buffer completion can be used. Just type a
2813headlines@footnote{To insert a link targeting a headline, in-buffer 2821star followed by a few optional letters into the buffer and press
2814completion can be used. Just type a star followed by a few optional letters 2822@kbd{M-@key{TAB}}. All headlines in the current buffer will be offered as
2815into the buffer and press @kbd{M-@key{TAB}}. All headlines in the current 2823completions.}. In non-Org files, the search will look for the words in the
2816buffer will be offered as completions. @xref{Handling links}, for more 2824link text, in the above example the search would be for @samp{my target}.
2817commands creating links.}. When searching, Org-mode will first try an
2818exact match, but then move on to more and more lenient searches. For
2819example, the link @samp{[[*My Targets]]} will find any of the following:
2820
2821@example
2822** My targets
2823** TODO my targets are bright
2824** my 20 targets are
2825@end example
2826
2827 2825
2828Following a link pushes a mark onto Org's own mark ring. You can 2826Following a link pushes a mark onto Org's own mark ring. You can
2829return to the previous position with @kbd{C-c &}. Using this command 2827return to the previous position with @kbd{C-c &}. Using this command
@@ -3087,11 +3085,17 @@ variable @code{org-display-internal-link-with-indirect-buffer}}.
3087@cindex inlining images 3085@cindex inlining images
3088@cindex images, inlining 3086@cindex images, inlining
3089@kindex C-c C-x C-v 3087@kindex C-c C-x C-v
3088@vindex org-startup-with-inline-images
3089@cindex @code{inlineimages}, STARTUP keyword
3090@cindex @code{noinlineimages}, STARTUP keyword
3090@item C-c C-x C-v 3091@item C-c C-x C-v
3091Toggle the inline display of linked images. Normally this will only inline 3092Toggle the inline display of linked images. Normally this will only inline
3092images that have no description part in the link, i.e. images that will also 3093images that have no description part in the link, i.e. images that will also
3093be inlined during export. When called with a prefix argument, also display 3094be inlined during export. When called with a prefix argument, also display
3094images that do have a link description. 3095images that do have a link description. You can ask for inline images to be
3096displayed at startup by configuring the variable
3097@code{org-startup-with-inline-images}@footnote{with corresponding
3098@code{#+STARTUP} keywords @code{inlineimages} and @code{inlineimages}}.
3095@cindex mark ring 3099@cindex mark ring
3096@kindex C-c % 3100@kindex C-c %
3097@item C-c % 3101@item C-c %
@@ -3157,15 +3161,16 @@ letters, numbers, @samp{-}, and @samp{_}. Abbreviations are resolved
3157according to the information in the variable @code{org-link-abbrev-alist} 3161according to the information in the variable @code{org-link-abbrev-alist}
3158that relates the linkwords to replacement text. Here is an example: 3162that relates the linkwords to replacement text. Here is an example:
3159 3163
3160@lisp 3164@smalllisp
3161@group 3165@group
3162(setq org-link-abbrev-alist 3166(setq org-link-abbrev-alist
3163 '(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=") 3167 '(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
3164 ("google" . "http://www.google.com/search?q=") 3168 ("google" . "http://www.google.com/search?q=")
3165 ("ads" . "http://adsabs.harvard.edu/cgi-bin/ 3169 ("gmap" . "http://maps.google.com/maps?q=%s")
3166 nph-abs_connect?author=%s&db_key=AST"))) 3170 ("omap" . "http://nominatim.openstreetmap.org/search?q=%s&polygon=1")
3171 ("ads" . "http://adsabs.harvard.edu/cgi-bin/nph-abs_connect?author=%s&db_key=AST")))
3167@end group 3172@end group
3168@end lisp 3173@end smalllisp
3169 3174
3170If the replacement text contains the string @samp{%s}, it will be 3175If the replacement text contains the string @samp{%s}, it will be
3171replaced with the tag. Otherwise the tag will be appended to the string 3176replaced with the tag. Otherwise the tag will be appended to the string
@@ -3174,8 +3179,11 @@ be called with the tag as the only argument to create the link.
3174 3179
3175With the above setting, you could link to a specific bug with 3180With the above setting, you could link to a specific bug with
3176@code{[[bugzilla:129]]}, search the web for @samp{OrgMode} with 3181@code{[[bugzilla:129]]}, search the web for @samp{OrgMode} with
3177@code{[[google:OrgMode]]} and find out what the Org author is 3182@code{[[google:OrgMode]]}, show the map location of the Free Software
3178doing besides Emacs hacking with @code{[[ads:Dominik,C]]}. 3183Foundation @code{[[gmap:51 Franklin Street, Boston]]} or of Carsten office
3184@code{[[omap:Science Park 904, Amsterdam, The Netherlands]]} and find out
3185what the Org author is doing besides Emacs hacking with
3186@code{[[ads:Dominik,C]]}.
3179 3187
3180If you need special abbreviations just for a single Org buffer, you 3188If you need special abbreviations just for a single Org buffer, you
3181can define them in the file with 3189can define them in the file with
@@ -3810,7 +3818,10 @@ The habit is a TODO, with a TODO keyword representing an open state.
3810@item 3818@item
3811The property @code{STYLE} is set to the value @code{habit}. 3819The property @code{STYLE} is set to the value @code{habit}.
3812@item 3820@item
3813The TODO has a scheduled date, with a @code{.+} style repeat interval. 3821The TODO has a scheduled date, usually with a @code{.+} style repeat
3822interval. A @code{++} style may be appropriate for habits with time
3823constraints, e.g., must be done on weekends, or a @code{+} style for an
3824unusual habit that can have a backlog, e.g., weekly reports.
3814@item 3825@item
3815The TODO may also have minimum and maximum ranges specified by using the 3826The TODO may also have minimum and maximum ranges specified by using the
3816syntax @samp{.+2d/3d}, which says that you want to do the task at least every 3827syntax @samp{.+2d/3d}, which says that you want to do the task at least every
@@ -3908,13 +3919,13 @@ placing a @emph{priority cookie} into the headline of a TODO item, like this
3908@vindex org-priority-faces 3919@vindex org-priority-faces
3909By default, Org-mode supports three priorities: @samp{A}, @samp{B}, and 3920By default, Org-mode supports three priorities: @samp{A}, @samp{B}, and
3910@samp{C}. @samp{A} is the highest priority. An entry without a cookie is 3921@samp{C}. @samp{A} is the highest priority. An entry without a cookie is
3911treated as priority @samp{B}. Priorities make a difference only in the 3922treated just like priority @samp{B}. Priorities make a difference only for
3912agenda (@pxref{Weekly/daily agenda}); outside the agenda, they have no 3923sorting in the agenda (@pxref{Weekly/daily agenda}); outside the agenda, they
3913inherent meaning to Org-mode. The cookies can be highlighted with special 3924have no inherent meaning to Org-mode. The cookies can be highlighted with
3914faces by customizing the variable @code{org-priority-faces}. 3925special faces by customizing the variable @code{org-priority-faces}.
3915 3926
3916Priorities can be attached to any outline tree entries; they do not need 3927Priorities can be attached to any outline node; they do not need to be TODO
3917to be TODO items. 3928items.
3918 3929
3919@table @kbd 3930@table @kbd
3920@kindex @kbd{C-c ,} 3931@kindex @kbd{C-c ,}
@@ -4017,13 +4028,16 @@ large number of subtasks (@pxref{Checkboxes}).
4017@section Checkboxes 4028@section Checkboxes
4018@cindex checkboxes 4029@cindex checkboxes
4019 4030
4020Every item in a plain list (@pxref{Plain lists}) can be made into a 4031@vindex org-list-automatic-rules
4021checkbox by starting it with the string @samp{[ ]}. This feature is 4032Every item in a plain list@footnote{With the exception of description
4022similar to TODO items (@pxref{TODO Items}), but is more lightweight. 4033lists. But you can allow it by modifying @code{org-list-automatic-rules}
4023Checkboxes are not included into the global TODO list, so they are often 4034accordingly.} (@pxref{Plain lists}) can be made into a checkbox by starting
4024great to split a task into a number of simple steps. Or you can use 4035it with the string @samp{[ ]}. This feature is similar to TODO items
4025them in a shopping list. To toggle a checkbox, use @kbd{C-c C-c}, or 4036(@pxref{TODO Items}), but is more lightweight. Checkboxes are not included
4026use the mouse (thanks to Piotr Zielinski's @file{org-mouse.el}). 4037into the global TODO list, so they are often great to split a task into a
4038number of simple steps. Or you can use them in a shopping list. To toggle a
4039checkbox, use @kbd{C-c C-c}, or use the mouse (thanks to Piotr Zielinski's
4040@file{org-mouse.el}).
4027 4041
4028Here is an example of a checkbox list. 4042Here is an example of a checkbox list.
4029 4043
@@ -4738,8 +4752,8 @@ optional. The individual parts have the following meaning:
4738@var{property} @r{The property that should be edited in this column.} 4752@var{property} @r{The property that should be edited in this column.}
4739 @r{Special properties representing meta data are allowed here} 4753 @r{Special properties representing meta data are allowed here}
4740 @r{as well (@pxref{Special properties})} 4754 @r{as well (@pxref{Special properties})}
4741(title) @r{The header text for the column. If omitted, the} 4755@var{title} @r{The header text for the column. If omitted, the property}
4742 @r{property name is used.} 4756 @r{name is used.}
4743@{@var{summary-type}@} @r{The summary type. If specified, the column values for} 4757@{@var{summary-type}@} @r{The summary type. If specified, the column values for}
4744 @r{parent nodes are computed from the children.} 4758 @r{parent nodes are computed from the children.}
4745 @r{Supported summary types are:} 4759 @r{Supported summary types are:}
@@ -4756,9 +4770,10 @@ optional. The individual parts have the following meaning:
4756 @{:min@} @r{Smallest time value in column.} 4770 @{:min@} @r{Smallest time value in column.}
4757 @{:max@} @r{Largest time value.} 4771 @{:max@} @r{Largest time value.}
4758 @{:mean@} @r{Arithmetic mean of time values.} 4772 @{:mean@} @r{Arithmetic mean of time values.}
4759 @{@@min@} @r{Minimum age (in days/hours/mins/seconds).} 4773 @{@@min@} @r{Minimum age (in days/hours/mins/seconds).}
4760 @{@@max@} @r{Maximum age (in days/hours/mins/seconds).} 4774 @{@@max@} @r{Maximum age (in days/hours/mins/seconds).}
4761 @{@@mean@} @r{Arithmetic mean of ages (in days/hours/mins/seconds).} 4775 @{@@mean@} @r{Arithmetic mean of ages (in days/hours/mins/seconds).}
4776 @{est+@} @r{Add low-high estimates.}
4762@end example 4777@end example
4763 4778
4764@noindent 4779@noindent
@@ -4766,6 +4781,22 @@ Be aware that you can only have one summary type for any property you
4766include. Subsequent columns referencing the same property will all display the 4781include. Subsequent columns referencing the same property will all display the
4767same summary information. 4782same summary information.
4768 4783
4784The @code{est+} summary type requires further explanation. It is used for
4785combining estimates, expressed as low-high ranges. For example, instead
4786of estimating a particular task will take 5 days, you might estimate it as
47875-6 days if you're fairly confident you know how much woark is required, or
47881-10 days if you don't really know what needs to be done. Both ranges
4789average at 5.5 days, but the first represents a more predictable delivery.
4790
4791When combining a set of such estimates, simply adding the lows and highs
4792produces an unrealistically wide result. Instead, @code{est+} adds the
4793statistical mean and variance of the sub-tasks, generating a final estimate
4794from the sum. For example, suppose you had ten tasks, each of which was
4795estimated at 0.5 to 2 days of work. Straight addition produces an estimate
4796of 5 to 20 days, representing what to expect if everything goes either
4797extremely well or extremely poorly. In contrast, @code{est+} estimates the
4798full job more realistically, at 10-15 days.
4799
4769Here is an example for a complete columns definition, along with allowed 4800Here is an example for a complete columns definition, along with allowed
4770values. 4801values.
4771 4802
@@ -4978,6 +5009,7 @@ is used in a much wider sense.
4978* Resolving idle time:: Resolving time if you've been idle 5009* Resolving idle time:: Resolving time if you've been idle
4979* Effort estimates:: Planning work effort in advance 5010* Effort estimates:: Planning work effort in advance
4980* Relative timer:: Notes with a running timer 5011* Relative timer:: Notes with a running timer
5012* Countdown timer:: Starting a countdown timer for a task
4981@end menu 5013@end menu
4982 5014
4983 5015
@@ -5067,15 +5099,13 @@ format. All commands listed below produce timestamps in the correct
5067format. 5099format.
5068 5100
5069@table @kbd 5101@table @kbd
5070@kindex C-c . 5102@orgcmd{C-c .,org-time-stamp}
5071@item C-c .
5072Prompt for a date and insert a corresponding timestamp. When the cursor is 5103Prompt for a date and insert a corresponding timestamp. When the cursor is
5073at an existing timestamp in the buffer, the command is used to modify this 5104at an existing timestamp in the buffer, the command is used to modify this
5074timestamp instead of inserting a new one. When this command is used twice in 5105timestamp instead of inserting a new one. When this command is used twice in
5075succession, a time range is inserted. 5106succession, a time range is inserted.
5076@c 5107@c
5077@kindex C-c ! 5108@orgcmd{C-c !,org-time-stamp-inactive}
5078@item C-c !
5079Like @kbd{C-c .}, but insert an inactive timestamp that will not cause 5109Like @kbd{C-c .}, but insert an inactive timestamp that will not cause
5080an agenda entry. 5110an agenda entry.
5081@c 5111@c
@@ -5088,18 +5118,15 @@ Like @kbd{C-c .} and @kbd{C-c !}, but use the alternative format which
5088contains date and time. The default time can be rounded to multiples of 5 5118contains date and time. The default time can be rounded to multiples of 5
5089minutes, see the option @code{org-time-stamp-rounding-minutes}. 5119minutes, see the option @code{org-time-stamp-rounding-minutes}.
5090@c 5120@c
5091@kindex C-c < 5121@orgcmd{C-c <,org-date-from-calendar}
5092@item C-c <
5093Insert a timestamp corresponding to the cursor date in the Calendar. 5122Insert a timestamp corresponding to the cursor date in the Calendar.
5094@c 5123@c
5095@kindex C-c > 5124@orgcmd{C-c >,org-goto-calendar}
5096@item C-c >
5097Access the Emacs calendar for the current date. If there is a 5125Access the Emacs calendar for the current date. If there is a
5098timestamp in the current line, go to the corresponding date 5126timestamp in the current line, go to the corresponding date
5099instead. 5127instead.
5100@c 5128@c
5101@kindex C-c C-o 5129@orgcmd{C-c C-o,org-open-at-point}
5102@item C-c C-o
5103Access the agenda for the date given by the timestamp or -range at 5130Access the agenda for the date given by the timestamp or -range at
5104point (@pxref{Weekly/daily agenda}). 5131point (@pxref{Weekly/daily agenda}).
5105@c 5132@c
@@ -5206,6 +5233,16 @@ The function understands English month and weekday abbreviations. If
5206you want to use unabbreviated names and/or other languages, configure 5233you want to use unabbreviated names and/or other languages, configure
5207the variables @code{parse-time-months} and @code{parse-time-weekdays}. 5234the variables @code{parse-time-months} and @code{parse-time-weekdays}.
5208 5235
5236You can specify a time range by giving start and end times or by giving a
5237start time and a duration (in HH:MM format). Use '-' or '--' as the separator
5238in the former case and use '+' as the separator in the latter case. E.g.
5239
5240@example
524111am-1:15pm --> 11:00-13:15
524211am--1:15pm --> same as above
524311am+2:15 --> same as above
5244@end example
5245
5209@cindex calendar, for selecting date 5246@cindex calendar, for selecting date
5210@vindex org-popup-calendar-for-date-prompt 5247@vindex org-popup-calendar-for-date-prompt
5211Parallel to the minibuffer prompt, a calendar is popped up@footnote{If 5248Parallel to the minibuffer prompt, a calendar is popped up@footnote{If
@@ -5593,9 +5630,8 @@ Cancel the current clock. This is useful if a clock was started by
5593mistake, or if you ended up working on something else. 5630mistake, or if you ended up working on something else.
5594@kindex C-c C-x C-j 5631@kindex C-c C-x C-j
5595@item C-c C-x C-j 5632@item C-c C-x C-j
5596Jump to the entry that contains the currently running clock. With a 5633Jump to the headline of the currently clocked in task. With a @kbd{C-u}
5597@kbd{C-u} prefix arg, select the target task from a list of recently clocked 5634prefix arg, select the target task from a list of recently clocked tasks.
5598tasks.
5599@kindex C-c C-x C-d 5635@kindex C-c C-x C-d
5600@item C-c C-x C-d 5636@item C-c C-x C-d
5601@vindex org-remove-highlights-with-change 5637@vindex org-remove-highlights-with-change
@@ -5835,7 +5871,7 @@ with the @kbd{/} key in the agenda (@pxref{Agenda commands}). If you have
5835these estimates defined consistently, two or three key presses will narrow 5871these estimates defined consistently, two or three key presses will narrow
5836down the list to stuff that fits into an available time slot. 5872down the list to stuff that fits into an available time slot.
5837 5873
5838@node Relative timer, , Effort estimates, Dates and Times 5874@node Relative timer, Countdown timer, Effort estimates, Dates and Times
5839@section Taking notes with a relative timer 5875@section Taking notes with a relative timer
5840@cindex relative timer 5876@cindex relative timer
5841 5877
@@ -5877,6 +5913,20 @@ by a certain amount. This can be used to fix timer strings if the timer was
5877not started at exactly the right moment. 5913not started at exactly the right moment.
5878@end table 5914@end table
5879 5915
5916@node Countdown timer, , Relative timer, Dates and Times
5917@section Countdown timer
5918@cindex Countdown timer
5919@kindex C-c C-x ;
5920@kindex ;
5921
5922Calling @code{org-timer-set-timer} from an Org-mode buffer runs a countdown
5923timer. Use @key{;} from agenda buffers, @key{C-c C-x ;} everwhere else.
5924
5925@code{org-timer-set-timer} prompts the user for a duration and displays a
5926countdown timer in the modeline. @code{org-timer-default-timer} sets the
5927default countdown value. Giving a prefix numeric argument overrides this
5928default value.
5929
5880@node Capture - Refile - Archive, Agenda Views, Dates and Times, Top 5930@node Capture - Refile - Archive, Agenda Views, Dates and Times, Top
5881@chapter Capture - Refile - Archive 5931@chapter Capture - Refile - Archive
5882@cindex capture 5932@cindex capture
@@ -5934,6 +5984,7 @@ The following customization sets a default target file for notes, and defines
5934a global key@footnote{Please select your own key, @kbd{C-c c} is only a 5984a global key@footnote{Please select your own key, @kbd{C-c c} is only a
5935suggestion.} for capturing new material. 5985suggestion.} for capturing new material.
5936 5986
5987@vindex org-default-notes-file
5937@example 5988@example
5938(setq org-default-notes-file (concat org-directory "/notes.org")) 5989(setq org-default-notes-file (concat org-directory "/notes.org"))
5939(define-key global-map "\C-cc" 'org-capture) 5990(define-key global-map "\C-cc" 'org-capture)
@@ -5960,7 +6011,10 @@ process, so that you can resume your work without further distraction.
5960@kindex C-c C-w 6011@kindex C-c C-w
5961@item C-c C-w 6012@item C-c C-w
5962Finalize the capture process by refiling (@pxref{Refiling notes}) the note to 6013Finalize the capture process by refiling (@pxref{Refiling notes}) the note to
5963a different place. 6014a different place. Please realize that this is a normal refiling command
6015that will be executed - so the cursor position at the moment you run this
6016command is important. If you have inserted a tree with a parent and
6017children, first move the cursor back to the parent.
5964 6018
5965@kindex C-c C-k 6019@kindex C-c C-k
5966@item C-c C-k 6020@item C-c C-k
@@ -6067,10 +6121,12 @@ Text to be inserted as it is.
6067@end table 6121@end table
6068 6122
6069@item target 6123@item target
6070Specification of where the captured item should be placed. 6124@vindex org-default-notes-file
6071In Org-mode files, targets usually define a node. Entries will become 6125Specification of where the captured item should be placed. In Org-mode
6072children of this node, other types will be added to the table or list in the 6126files, targets usually define a node. Entries will become children of this
6073body of this node. 6127node, other types will be added to the table or list in the body of this
6128node. Most target specifications contain a file name. If that file name is
6129the empty string, it defaults to @code{org-default-notes-file}.
6074 6130
6075Valid values are: 6131Valid values are:
6076@table @code 6132@table @code
@@ -6139,6 +6195,10 @@ with the capture.
6139@item :unnarrowed 6195@item :unnarrowed
6140Do not narrow the target buffer, simply show the full buffer. Default is to 6196Do not narrow the target buffer, simply show the full buffer. Default is to
6141narrow it so that you only see the new material. 6197narrow it so that you only see the new material.
6198
6199@item :kill-buffer
6200If the target file was not yet visited when capture was invoked, kill the
6201buffer again after capture is completed.
6142@end table 6202@end table
6143@end table 6203@end table
6144 6204
@@ -6191,16 +6251,19 @@ similar way.}:
6191@smallexample 6251@smallexample
6192Link type | Available keywords 6252Link type | Available keywords
6193-------------------+---------------------------------------------- 6253-------------------+----------------------------------------------
6194bbdb | %:name %:company 6254bbdb | %:name %:company
6195bbdb | %::server %:port %:nick 6255irc | %:server %:port %:nick
6196vm, wl, mh, rmail | %:type %:subject %:message-id 6256vm, wl, mh, mew, rmail | %:type %:subject %:message-id
6197 | %:from %:fromname %:fromaddress 6257 | %:from %:fromname %:fromaddress
6198 | %:to %:toname %:toaddress 6258 | %:to %:toname %:toaddress
6199 | %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user. See the variable @code{org-from-is-user-regexp}.}} 6259 | %:date @r{(message date header field)}
6200gnus | %:group, @r{for messages also all email fields} 6260 | %:date-timestamp @r{(date as active timestamp)}
6201w3, w3m | %:url 6261 | %:date-timestamp-inactive @r{(date as inactive timestamp)}
6202info | %:file %:node 6262 | %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user. See the variable @code{org-from-is-user-regexp}.}}
6203calendar | %:date 6263gnus | %:group, @r{for messages also all email fields}
6264w3, w3m | %:url
6265info | %:file %:node
6266calendar | %:date
6204@end smallexample 6267@end smallexample
6205 6268
6206@noindent 6269@noindent
@@ -7247,6 +7310,7 @@ associated with the item.
7247@subsection Categories 7310@subsection Categories
7248 7311
7249@cindex category 7312@cindex category
7313@cindex #+CATEGORY
7250The category is a broad label assigned to each agenda item. By default, 7314The category is a broad label assigned to each agenda item. By default,
7251the category is simply derived from the file name, but you can also 7315the category is simply derived from the file name, but you can also
7252specify it with a special line in the buffer, like this@footnote{For 7316specify it with a special line in the buffer, like this@footnote{For
@@ -7474,6 +7538,10 @@ Go to today.
7474@item j 7538@item j
7475Prompt for a date and go there. 7539Prompt for a date and go there.
7476@c 7540@c
7541@kindex J
7542@item J
7543Go to the currently clocked in task in the agenda buffer.
7544@c
7477@kindex D 7545@kindex D
7478@item D 7546@item D
7479Toggle the inclusion of diary entries. See @ref{Weekly/daily agenda}. 7547Toggle the inclusion of diary entries. See @ref{Weekly/daily agenda}.
@@ -7584,7 +7652,9 @@ very fast, so that you can switch quickly between different filters without
7584having to recreate the agenda@footnote{Custom commands can preset a filter by 7652having to recreate the agenda@footnote{Custom commands can preset a filter by
7585binding the variable @code{org-agenda-filter-preset} as an option. This 7653binding the variable @code{org-agenda-filter-preset} as an option. This
7586filter will then be applied to the view and persist as a basic filter through 7654filter will then be applied to the view and persist as a basic filter through
7587refreshes and more secondary filtering.} 7655refreshes and more secondary filtering. The filter is a global property of
7656the entire agenda view - in a block agenda, you should only set this in the
7657global options section, not in the section of an individual block.}
7588 7658
7589You will be prompted for a tag selection letter, SPC will mean any tag at 7659You will be prompted for a tag selection letter, SPC will mean any tag at
7590all. Pressing @key{TAB} at that prompt will offer use completion to select a 7660all. Pressing @key{TAB} at that prompt will offer use completion to select a
@@ -8600,6 +8670,7 @@ You may also define additional attributes for the figure. As this is
8600backend-specific, see the sections about the individual backends for more 8670backend-specific, see the sections about the individual backends for more
8601information. 8671information.
8602 8672
8673@xref{Handling links,the discussion of image links}.
8603 8674
8604@node Literal examples, Include files, Images and tables, Markup 8675@node Literal examples, Include files, Images and tables, Markup
8605@section Literal examples 8676@section Literal examples
@@ -8631,13 +8702,24 @@ Here is an example
8631@cindex formatting source code, markup rules 8702@cindex formatting source code, markup rules
8632If the example is source code from a programming language, or any other text 8703If the example is source code from a programming language, or any other text
8633that can be marked up by font-lock in Emacs, you can ask for the example to 8704that can be marked up by font-lock in Emacs, you can ask for the example to
8634look like the fontified Emacs buffer@footnote{Currently this works for the 8705look like the fontified Emacs buffer@footnote{This works automatically for
8635HTML backend, and requires the @file{htmlize.el} package version 1.34 or 8706the HTML backend (it requires version 1.34 of the @file{htmlize.el} package,
8636later. It also works for LaTeX with the listings package, if you turn on the 8707which is distributed with Org.) Fontified code chunks in LaTeX can be
8637option @code{org-export-latex-listings} and make sure that the listings 8708achieved using either the listings or the
8638package is included by the LaTeX header.}. This is done with the @samp{src} 8709@url{http://code.google.com/p/minted, minted,} package. To use listings, turn
8639block, where you also need to specify the name of the major mode that should 8710on the variable @code{org-export-latex-listings} and ensure that the listings
8640be used to fontify the example: 8711package is included by the LaTeX header (e.g. by configuring
8712@code{org-export-latex-packages-alist}). See the listings documentation for
8713configuration options, including obtaining colored output. For minted it is
8714necessary to install the program @url{http://pygments.org, pygments}, in
8715addition to setting @code{org-export-latex-minted}, ensuring that the minted
8716package is included by the LaTeX header, and ensuring that the
8717@code{-shell-escape} option is passed to @file{pdflatex} (see
8718@code{org-latex-to-pdf-process}). See the documentation of the variables
8719@code{org-export-latex-listings} and @code{org-export-latex-minted} for
8720further details.}. This is done with the @samp{src} block, where you also
8721need to specify the name of the major mode that should be used to fontify the
8722example:
8641@cindex #+BEGIN_SRC 8723@cindex #+BEGIN_SRC
8642 8724
8643@example 8725@example
@@ -8794,12 +8876,9 @@ is a macro system based on Donald E. Knuth's @TeX{} system. Many of the
8794features described here as ``La@TeX{}'' are really from @TeX{}, but for 8876features described here as ``La@TeX{}'' are really from @TeX{}, but for
8795simplicity I am blurring this distinction.} is widely used to typeset 8877simplicity I am blurring this distinction.} is widely used to typeset
8796scientific documents. Org-mode supports embedding La@TeX{} code into its 8878scientific documents. Org-mode supports embedding La@TeX{} code into its
8797files, because many academics are used to reading La@TeX{} source code, and 8879files, because many academics are used to writing and reading La@TeX{} source
8798because it can be readily processed into images for HTML production. 8880code, and because it can be readily processed to produce pretty output for a
8799 8881number of export backends.
8800It is not necessary to mark La@TeX{} macros and code in any special way.
8801If you observe a few conventions, Org-mode knows how to find it and what
8802to do with it.
8803 8882
8804@menu 8883@menu
8805* Special symbols:: Greek letters and other symbols 8884* Special symbols:: Greek letters and other symbols
@@ -8843,7 +8922,7 @@ La@TeX{}, see the variable @code{org-entities} for the complete list.
8843@samp{...} are all converted into special commands creating hyphens of 8922@samp{...} are all converted into special commands creating hyphens of
8844different lengths or a compact set of dots. 8923different lengths or a compact set of dots.
8845 8924
8846If you would like to see entities displayed as utf8 characters, use the 8925If you would like to see entities displayed as UTF8 characters, use the
8847following command@footnote{You can turn this on by default by setting the 8926following command@footnote{You can turn this on by default by setting the
8848variable @code{org-pretty-entities}, or on a per-file base with the 8927variable @code{org-pretty-entities}, or on a per-file base with the
8849@code{#+STARTUP} option @code{entitiespretty}.}: 8928@code{#+STARTUP} option @code{entitiespretty}.}:
@@ -8884,6 +8963,9 @@ convention, or use, on a per-file basis:
8884#+OPTIONS: ^:@{@} 8963#+OPTIONS: ^:@{@}
8885@end example 8964@end example
8886 8965
8966@noindent With this setting, @samp{a_b} will not be interpreted as a
8967subscript, but @samp{a_@{b@}} will.
8968
8887@table @kbd 8969@table @kbd
8888@kindex C-c C-x \ 8970@kindex C-c C-x \
8889@item C-c C-x \ 8971@item C-c C-x \
@@ -8896,31 +8978,31 @@ format sub- and superscripts in a WYSIWYM way.
8896@cindex La@TeX{} fragments 8978@cindex La@TeX{} fragments
8897 8979
8898@vindex org-format-latex-header 8980@vindex org-format-latex-header
8899With symbols, sub- and superscripts, HTML is pretty much at its end when 8981Going beyond symbols and sub- and superscripts, a full formula language is
8900it comes to representing mathematical formulas@footnote{Yes, there is 8982needed. Org-mode can contain La@TeX{} math fragments, and it supports ways
8901MathML, but that is not yet fully supported by many browsers, and there 8983to process these for several export backends. When exporting to La@TeX{},
8902is no decent converter for turning La@TeX{} or ASCII representations of 8984the code is obviously left as it is. When exporting to HTML, Org invokes the
8903formulas into MathML. So for the time being, converting formulas into 8985@uref{http://www.mathjax.org, MathJax library} (@pxref{Math formatting in
8904images seems the way to go.}. More complex expressions need a dedicated 8986HTML export}) to process and display the math@footnote{If you plan to use
8905formula processor. To this end, Org-mode can contain arbitrary La@TeX{} 8987this regularly or on pages with significant page views, you should install
8906fragments. It provides commands to preview the typeset result of these 8988@file{MathJax} on your own server in order to limit the load of our server.}.
8907fragments, and upon export to HTML, all fragments will be converted to 8989Finally, it can also process the mathematical expressions into
8908images and inlined into the HTML document@footnote{The La@TeX{} export 8990images@footnote{For this to work you need to be on a system with a working
8909will not use images for displaying La@TeX{} fragments but include these 8991La@TeX{} installation. You also need the @file{dvipng} program, available at
8910fragments directly into the La@TeX{} code.}. For this to work you 8992@url{http://sourceforge.net/projects/dvipng/}. The La@TeX{} header that will
8911need to be on a system with a working La@TeX{} installation. You also 8993be used when processing a fragment can be configured with the variable
8912need the @file{dvipng} program, available at 8994@code{org-format-latex-header}.} that can be displayed in a browser or in
8913@url{http://sourceforge.net/projects/dvipng/}. The La@TeX{} header that 8995DocBook documents.
8914will be used when processing a fragment can be configured with the
8915variable @code{org-format-latex-header}.
8916 8996
8917La@TeX{} fragments don't need any special marking at all. The following 8997La@TeX{} fragments don't need any special marking at all. The following
8918snippets will be identified as La@TeX{} source code: 8998snippets will be identified as La@TeX{} source code:
8919@itemize @bullet 8999@itemize @bullet
8920@item 9000@item
8921Environments of any kind. The only requirement is that the 9001Environments of any kind@footnote{When @file{MathJax} is used, only the
8922@code{\begin} statement appears on a new line, preceded by only 9002environment recognized by @file{MathJax} will be processed. When dvipng is
8923whitespace. 9003used to create images, any La@TeX{} environments will be handled.}. The only
9004requirement is that the @code{\begin} statement appears on a new line,
9005preceded by only whitespace.
8924@item 9006@item
8925Text within the usual La@TeX{} math delimiters. To avoid conflicts with 9007Text within the usual La@TeX{} math delimiters. To avoid conflicts with
8926currency specifications, single @samp{$} characters are only recognized as 9008currency specifications, single @samp{$} characters are only recognized as
@@ -8948,12 +9030,26 @@ If you need any of the delimiter ASCII sequences for other purposes, you
8948can configure the option @code{org-format-latex-options} to deselect the 9030can configure the option @code{org-format-latex-options} to deselect the
8949ones you do not wish to have interpreted by the La@TeX{} converter. 9031ones you do not wish to have interpreted by the La@TeX{} converter.
8950 9032
9033@vindex org-export-with-LaTeX-fragments
9034LaTeX processing can be configured with the variable
9035@code{org-export-with-LaTeX-fragments}. The default setting is @code{t}
9036which means @file{MathJax} for HTML, and no processing for DocBook, ASCII and
9037LaTeX backends. You can also set this variable on a per-file basis using one
9038of these lines:
9039
9040@example
9041#+OPTIONS: LaTeX:t @r{Do the right thing automatically (MathJax)}
9042#+OPTIONS: LaTeX:dvipng @r{Force using dvipng images}
9043#+OPTIONS: LaTeX:nil @r{Do not process La@TeX{} fragments at all}
9044#+OPTIONS: LaTeX:verbatim @r{Verbatim export, for jsMath or so}
9045@end example
9046
8951@node Previewing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX 9047@node Previewing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX
8952@subsection Previewing LaTeX fragments 9048@subsection Previewing LaTeX fragments
8953@cindex LaTeX fragments, preview 9049@cindex LaTeX fragments, preview
8954 9050
8955La@TeX{} fragments can be processed to produce preview images of the 9051If you have @file{dvipng} installed, La@TeX{} fragments can be processed to
8956typeset expressions: 9052produce preview images of the typeset expressions:
8957 9053
8958@table @kbd 9054@table @kbd
8959@kindex C-c C-x C-l 9055@kindex C-c C-x C-l
@@ -8975,14 +9071,6 @@ some aspects of the preview. In particular, the @code{:scale} (and for HTML
8975export, @code{:html-scale}) property can be used to adjust the size of the 9071export, @code{:html-scale}) property can be used to adjust the size of the
8976preview images. 9072preview images.
8977 9073
8978During HTML export (@pxref{HTML export}), all La@TeX{} fragments are
8979converted into images and inlined into the document if the following
8980setting is active:
8981
8982@lisp
8983(setq org-export-with-LaTeX-fragments t)
8984@end lisp
8985
8986@node CDLaTeX mode, , Previewing LaTeX fragments, Embedded LaTeX 9074@node CDLaTeX mode, , Previewing LaTeX fragments, Embedded LaTeX
8987@subsection Using CDLa@TeX{} to enter math 9075@subsection Using CDLa@TeX{} to enter math
8988@cindex CDLa@TeX{} 9076@cindex CDLa@TeX{}
@@ -9200,7 +9288,7 @@ tags: @r{turn on/off inclusion of tags, may also be @code{not-in-toc}}
9200<: @r{turn on/off inclusion of any time/date stamps like DEADLINES} 9288<: @r{turn on/off inclusion of any time/date stamps like DEADLINES}
9201*: @r{turn on/off emphasized text (bold, italic, underlined)} 9289*: @r{turn on/off emphasized text (bold, italic, underlined)}
9202TeX: @r{turn on/off simple @TeX{} macros in plain text} 9290TeX: @r{turn on/off simple @TeX{} macros in plain text}
9203LaTeX: @r{turn on/off La@TeX{} fragments} 9291LaTeX: @r{configure export of La@TeX{} fragments. Default @code{auto}}
9204skip: @r{turn on/off skipping the text before the first heading} 9292skip: @r{turn on/off skipping the text before the first heading}
9205author: @r{turn on/off inclusion of author name/email into exported file} 9293author: @r{turn on/off inclusion of author name/email into exported file}
9206email: @r{turn on/off inclusion of author email into exported file} 9294email: @r{turn on/off inclusion of author email into exported file}
@@ -9333,6 +9421,7 @@ language, but with additional support for tables.
9333* Links in HTML export:: How links will be interpreted and formatted 9421* Links in HTML export:: How links will be interpreted and formatted
9334* Tables in HTML export:: How to modify the formatting of tables 9422* Tables in HTML export:: How to modify the formatting of tables
9335* Images in HTML export:: How to insert figures into HTML output 9423* Images in HTML export:: How to insert figures into HTML output
9424* Math formatting in HTML export:: Beautiful math also on the web
9336* Text areas in HTML export:: An alternative way to show an example 9425* Text areas in HTML export:: An alternative way to show an example
9337* CSS support:: Changing the appearance of the output 9426* CSS support:: Changing the appearance of the output
9338* JavaScript support:: Info and Folding in a web browser 9427* JavaScript support:: Info and Folding in a web browser
@@ -9468,7 +9557,7 @@ tables, place something like the following before the table:
9468#+ATTR_HTML: border="2" rules="all" frame="all" 9557#+ATTR_HTML: border="2" rules="all" frame="all"
9469@end example 9558@end example
9470 9559
9471@node Images in HTML export, Text areas in HTML export, Tables in HTML export, HTML export 9560@node Images in HTML export, Math formatting in HTML export, Tables in HTML export, HTML export
9472@subsection Images in HTML export 9561@subsection Images in HTML export
9473 9562
9474@cindex images, inline in HTML 9563@cindex images, inline in HTML
@@ -9505,7 +9594,41 @@ support text viewers and accessibility, and align it to the right.
9505@noindent 9594@noindent
9506and you could use @code{http} addresses just as well. 9595and you could use @code{http} addresses just as well.
9507 9596
9508@node Text areas in HTML export, CSS support, Images in HTML export, HTML export 9597@node Math formatting in HTML export, Text areas in HTML export, Images in HTML export, HTML export
9598@subsection Math formatting in HTML export
9599@cindex MathJax
9600@cindex dvipng
9601
9602La@TeX{} math snippets (@pxref{LaTeX fragments}) can be displayed in two
9603different ways on HTML pages. The default is to use the
9604@uref{http://www.mathjax.org, MathJax system} which should work out of the
9605box with Org mode installation because @code{http://orgmode.org} serves
9606@file{MathJax} for Org-mode users for small applications and for testing
9607purposes. @b{If you plan to use this regularly or on pages with significant
9608page views, you should install MathJax on your own server in order to limit
9609the load of our server.} To configure @file{MathJax}, use the variable
9610@code{org-export-html-mathjax-options} or insert something like the following
9611into the buffer:
9612
9613@example
9614#+MATHJAX: align:"left" mathml:t path:"/MathJax/MathJax.js"
9615@end example
9616
9617@noindent See the docstring of the variable
9618@code{org-export-html-mathjax-options} for the meaning of the parameters in
9619this line.
9620
9621If you prefer, you can also request that La@TeX{} are processed into small
9622images that will be inserted into the browser page. Before the availability
9623of MathJax, this was the default method for Org files. This method requires
9624that the @file{dvipng} program is available on your system. You can still
9625get this processing with
9626
9627@example
9628#+OPTIONS: LaTeX:dvipng
9629@end example
9630
9631@node Text areas in HTML export, CSS support, Math formatting in HTML export, HTML export
9509@subsection Text areas in HTML export 9632@subsection Text areas in HTML export
9510 9633
9511@cindex text areas, in HTML 9634@cindex text areas, in HTML
@@ -9595,6 +9718,11 @@ For longer style definitions, you can use several such lines. You could also
9595directly write a @code{<style>} @code{</style>} section in this way, without 9718directly write a @code{<style>} @code{</style>} section in this way, without
9596referring to an external file. 9719referring to an external file.
9597 9720
9721In order to add styles to a subtree, use the @code{:HTML_CONTAINER_CLASS:}
9722property to assign a class to the tree. In order to specify CSS styles for a
9723particular headline, you can use the id specified in a @code{:CUSTOM_ID:}
9724property.
9725
9598@c FIXME: More about header and footer styles 9726@c FIXME: More about header and footer styles
9599@c FIXME: Talk about links and targets. 9727@c FIXME: Talk about links and targets.
9600 9728
@@ -9890,9 +10018,9 @@ different level - then the hierarchy above frames will produce the sectioning
9890structure of the presentation. 10018structure of the presentation.
9891 10019
9892A template for useful in-buffer settings or properties can be inserted into 10020A template for useful in-buffer settings or properties can be inserted into
9893the buffer with @kbd{M-x org-beamer-settings-template}. Among other things, 10021the buffer with @kbd{M-x org-insert-beamer-options-template}. Among other
9894this will install a column view format which is very handy for editing 10022things, this will install a column view format which is very handy for
9895special properties used by beamer. 10023editing special properties used by beamer.
9896 10024
9897You can influence the structure of the presentation using the following 10025You can influence the structure of the presentation using the following
9898properties: 10026properties:
@@ -9957,7 +10085,7 @@ environment or the @code{BEAMER_col} property.
9957Column view provides a great way to set the environment of a node and other 10085Column view provides a great way to set the environment of a node and other
9958important parameters. Make sure you are using a COLUMN format that is geared 10086important parameters. Make sure you are using a COLUMN format that is geared
9959toward this special purpose. The command @kbd{M-x 10087toward this special purpose. The command @kbd{M-x
9960org-beamer-settings-template} defines such a format. 10088org-insert-beamer-options-template} defines such a format.
9961 10089
9962Here is a simple example Org document that is intended for beamer export. 10090Here is a simple example Org document that is intended for beamer export.
9963 10091
@@ -10366,6 +10494,7 @@ Export only the visible part of the document.
10366@vindex org-icalendar-use-deadline 10494@vindex org-icalendar-use-deadline
10367@vindex org-icalendar-use-scheduled 10495@vindex org-icalendar-use-scheduled
10368@vindex org-icalendar-categories 10496@vindex org-icalendar-categories
10497@vindex org-icalendar-alarm-time
10369Some people use Org-mode for keeping track of projects, but still prefer a 10498Some people use Org-mode for keeping track of projects, but still prefer a
10370standard calendar application for anniversaries and appointments. In this 10499standard calendar application for anniversaries and appointments. In this
10371case it can be useful to show deadlines and other time-stamped items in Org 10500case it can be useful to show deadlines and other time-stamped items in Org
@@ -10379,7 +10508,9 @@ to set the start and due dates for the TODO entry@footnote{See the variables
10379@code{org-icalendar-use-deadline} and @code{org-icalendar-use-scheduled}.}. 10508@code{org-icalendar-use-deadline} and @code{org-icalendar-use-scheduled}.}.
10380As categories, it will use the tags locally defined in the heading, and the 10509As categories, it will use the tags locally defined in the heading, and the
10381file/tree category@footnote{To add inherited tags or the TODO state, 10510file/tree category@footnote{To add inherited tags or the TODO state,
10382configure the variable @code{org-icalendar-categories}.}. 10511configure the variable @code{org-icalendar-categories}.}. See the variable
10512@code{org-icalendar-alarm-time} for a way to assign alarms to entries with a
10513time.
10383 10514
10384@vindex org-icalendar-store-UID 10515@vindex org-icalendar-store-UID
10385@cindex property, ID 10516@cindex property, ID
@@ -10477,7 +10608,8 @@ variable, called @code{org-publish-project-alist}. Each element of the list
10477configures one project, and may be in one of the two following forms: 10608configures one project, and may be in one of the two following forms:
10478 10609
10479@lisp 10610@lisp
10480 ("project-name" :property value :property value ...) 10611 ("project-name" :property value :property value ...)
10612 @r{i.e. a well-formed property list with alternating keys and values}
10481@r{or} 10613@r{or}
10482 ("project-name" :components ("project-name" "project-name" ...)) 10614 ("project-name" :components ("project-name" "project-name" ...))
10483 10615
@@ -10553,20 +10685,20 @@ possibly transformed in the process. The default transformation is to export
10553Org files as HTML files, and this is done by the function 10685Org files as HTML files, and this is done by the function
10554@code{org-publish-org-to-html} which calls the HTML exporter (@pxref{HTML 10686@code{org-publish-org-to-html} which calls the HTML exporter (@pxref{HTML
10555export}). But you also can publish your content as PDF files using 10687export}). But you also can publish your content as PDF files using
10556@code{org-publish-org-to-pdf}. If you want to publish the Org file itself, 10688@code{org-publish-org-to-pdf}, or as @code{ascii}, @code{latin1} or
10557but with @i{archived}, @i{commented}, and @i{tag-excluded} trees removed, use 10689@code{utf8} encoded files using the corresponding functions. If you want to
10558@code{org-publish-org-to-org} and set the parameters @code{:plain-source} 10690publish the Org file itself, but with @i{archived}, @i{commented}, and
10559and/or @code{:htmlized-source}. This will produce @file{file.org} and 10691@i{tag-excluded} trees removed, use @code{org-publish-org-to-org} and set the
10560@file{file.org.html} in the publishing 10692parameters @code{:plain-source} and/or @code{:htmlized-source}. This will
10693produce @file{file.org} and @file{file.org.html} in the publishing
10561directory@footnote{@file{file-source.org} and @file{file-source.org.html} if 10694directory@footnote{@file{file-source.org} and @file{file-source.org.html} if
10562source and publishing directories are equal. Note that with this kind of 10695source and publishing directories are equal. Note that with this kind of
10563setup, you need to add @code{:exclude "-source\\.org"} to the project 10696setup, you need to add @code{:exclude "-source\\.org"} to the project
10564definition in @code{org-publish-project-alist} to avoid that the published 10697definition in @code{org-publish-project-alist} to avoid that the published
10565source files will be considered as new org files the next time the project is 10698source files will be considered as new org files the next time the project is
10566published.}. Other files like images only 10699published.}. Other files like images only need to be copied to the
10567need to be copied to the publishing destination, for this you may use 10700publishing destination, for this you may use @code{org-publish-attachment}.
10568@code{org-publish-attachment}. For non-Org files, you always need to 10701For non-Org files, you always need to specify the publishing function:
10569specify the publishing function:
10570 10702
10571@multitable @columnfractions 0.3 0.7 10703@multitable @columnfractions 0.3 0.7
10572@item @code{:publishing-function} 10704@item @code{:publishing-function}
@@ -10960,9 +11092,9 @@ e.g.
10960 11092
10961Org-mode provides a number of features for working with live source code, 11093Org-mode provides a number of features for working with live source code,
10962including editing of code blocks in their native major-mode, evaluation of 11094including editing of code blocks in their native major-mode, evaluation of
10963code blocks, tangling of code blocks, and exporting code blocks and 11095code blocks, tangling of code blocks, and exporting code blocks and their
10964their results in several formats. This functionality was contributed by Dan 11096results in several formats. This functionality was contributed by Eric
10965Davison and Eric Schulte, and was originally named Org-babel. 11097Schulte and Dan Davison, and was originally named Org-babel.
10966 11098
10967The following sections describe Org-mode's code block handling facilities. 11099The following sections describe Org-mode's code block handling facilities.
10968 11100
@@ -10998,6 +11130,18 @@ The structure of code blocks is as follows:
10998#+end_src 11130#+end_src
10999@end example 11131@end example
11000 11132
11133code blocks can also be embedded in text as so called inline code blocks as
11134
11135@example
11136src_<language>@{<body>@}
11137@end example
11138
11139or
11140
11141@example
11142src_<language>[<header arguments>]@{<body>@}
11143@end example
11144
11001@table @code 11145@table @code
11002@item <name> 11146@item <name>
11003This name is associated with the code block. This is similar to the 11147This name is associated with the code block. This is similar to the
@@ -11124,10 +11268,10 @@ Include the code block in the tangled output to file @samp{filename}.
11124@kindex C-c C-v t 11268@kindex C-c C-v t
11125@subsubheading Functions 11269@subsubheading Functions
11126@table @code 11270@table @code
11127@item org-babel-tangle @kbd{C-c C-v t} 11271@item org-babel-tangle
11128Tangle the current file. 11272Tangle the current file. Bound to @kbd{C-c C-v t}.
11129@item org-babel-tangle-file 11273@item org-babel-tangle-file
11130Choose a file to tangle. 11274Choose a file to tangle. Bound to @kbd{C-c C-v f}.
11131@end table 11275@end table
11132 11276
11133@subsubheading Hooks 11277@subsubheading Hooks
@@ -11200,10 +11344,10 @@ Code blocks defined in the ``Library of Babel'' can be called remotely as if
11200they were in the current Org-mode buffer (see @ref{Evaluating code blocks} 11344they were in the current Org-mode buffer (see @ref{Evaluating code blocks}
11201for information on the syntax of remote code block evaluation). 11345for information on the syntax of remote code block evaluation).
11202 11346
11203@kindex C-c C-v l 11347@kindex C-c C-v i
11204Code blocks located in any Org-mode file can be loaded into the ``Library of 11348Code blocks located in any Org-mode file can be loaded into the ``Library of
11205Babel'' with the @code{org-babel-lob-ingest} function, bound to @kbd{C-c C-v 11349Babel'' with the @code{org-babel-lob-ingest} function, bound to @kbd{C-c C-v
11206l}. 11350i}.
11207 11351
11208@node Languages, Header arguments, Library of Babel, Working With Source Code 11352@node Languages, Header arguments, Library of Babel, Working With Source Code
11209@section Languages 11353@section Languages
@@ -11279,7 +11423,7 @@ describes each header argument in detail.
11279@node Using header arguments, Specific header arguments, Header arguments, Header arguments 11423@node Using header arguments, Specific header arguments, Header arguments, Header arguments
11280@subsection Using header arguments 11424@subsection Using header arguments
11281 11425
11282The values of header arguments can be set in five different ways, each more 11426The values of header arguments can be set in six different ways, each more
11283specific (and having higher priority) than the last. 11427specific (and having higher priority) than the last.
11284@menu 11428@menu
11285* System-wide header arguments:: Set global default values 11429* System-wide header arguments:: Set global default values
@@ -11287,6 +11431,7 @@ specific (and having higher priority) than the last.
11287* Buffer-wide header arguments:: Set default values for a specific buffer 11431* Buffer-wide header arguments:: Set default values for a specific buffer
11288* Header arguments in Org-mode properties:: Set default values for a buffer or heading 11432* Header arguments in Org-mode properties:: Set default values for a buffer or heading
11289* Code block specific header arguments:: The most common way to set values 11433* Code block specific header arguments:: The most common way to set values
11434* Header arguments in function calls:: The most specific level
11290@end menu 11435@end menu
11291 11436
11292 11437
@@ -11381,7 +11526,7 @@ Properties defined in this way override the properties set in
11381@code{org-set-property} function bound to @kbd{C-c C-x p} to set properties 11526@code{org-set-property} function bound to @kbd{C-c C-x p} to set properties
11382in Org-mode documents. 11527in Org-mode documents.
11383 11528
11384@node Code block specific header arguments, , Header arguments in Org-mode properties, Using header arguments 11529@node Code block specific header arguments, Header arguments in function calls, Header arguments in Org-mode properties, Using header arguments
11385@subsubheading Code block specific header arguments 11530@subsubheading Code block specific header arguments
11386 11531
11387The most common way to assign values to header arguments is at the 11532The most common way to assign values to header arguments is at the
@@ -11402,14 +11547,18 @@ fac 0 = 1
11402fac n = n * fac (n-1) 11547fac n = n * fac (n-1)
11403#+end_src 11548#+end_src
11404@end example 11549@end example
11405
11406Similarly, it is possible to set header arguments for inline code blocks: 11550Similarly, it is possible to set header arguments for inline code blocks:
11407 11551
11408@example 11552@example
11409src_haskell[:exports both]@{fac 5@} 11553src_haskell[:exports both]@{fac 5@}
11410@end example 11554@end example
11411 11555
11412Header arguments for ``Library of Babel'' or function call lines can be set as shown below: 11556@node Header arguments in function calls, , Code block specific header arguments, Using header arguments
11557@comment node-name, next, previous, up
11558@subsubheading Header arguments in function calls
11559
11560At the most specific level, header arguments for ``Library of Babel'' or
11561function call lines can be set as shown below:
11413 11562
11414@example 11563@example
11415#+call: factorial(n=5) :exports results 11564#+call: factorial(n=5) :exports results
@@ -11428,10 +11577,10 @@ The following header arguments are defined:
11428 directory for code block execution 11577 directory for code block execution
11429* exports:: Export code and/or results 11578* exports:: Export code and/or results
11430* tangle:: Toggle tangling and specify file name 11579* tangle:: Toggle tangling and specify file name
11431* no-expand:: Turn off variable assignment and noweb
11432 expansion during tangling
11433* comments:: Toggle insertion of comments in tangled 11580* comments:: Toggle insertion of comments in tangled
11434 code files 11581 code files
11582* no-expand:: Turn off variable assignment and noweb
11583 expansion during tangling
11435* session:: Preserve the state of code evaluation 11584* session:: Preserve the state of code evaluation
11436* noweb:: Toggle expansion of noweb references 11585* noweb:: Toggle expansion of noweb references
11437* cache:: Avoid re-evaluating unchanged code blocks 11586* cache:: Avoid re-evaluating unchanged code blocks
@@ -11842,10 +11991,25 @@ basename}.
11842@subsubsection @code{:comments} 11991@subsubsection @code{:comments}
11843By default code blocks are tangled to source-code files without any insertion 11992By default code blocks are tangled to source-code files without any insertion
11844of comments beyond those which may already exist in the body of the code 11993of comments beyond those which may already exist in the body of the code
11845block. The @code{:comments} header argument can be set to ``yes'' 11994block. The @code{:comments} header argument can be set as follows to control
11846e.g. @code{:comments yes} to enable the insertion of comments around code 11995the insertion of extra comments into the tangled code file.
11847blocks during tangling. The inserted comments contain pointers back to the 11996
11848original Org file from which the comment was tangled. 11997@itemize @bullet
11998@item @code{no}
11999The default. No extra comments are inserted during tangling.
12000@item @code{link}
12001The code block is wrapped in comments which contain pointers back to the
12002original Org file from which the code was tangled.
12003@item @code{yes}
12004A synonym for ``link'' to maintain backwards compatibility.
12005@item @code{org}
12006Include text from the org-mode file as a comment.
12007
12008The text is picked from the leading context of the tangled code and is
12009limited by the nearest headline or source block as the case may be.
12010@item @code{both}
12011Turns on both the ``link'' and ``org'' comment options.
12012@end itemize
11849 12013
11850@node no-expand, session, comments, Specific header arguments 12014@node no-expand, session, comments, Specific header arguments
11851@subsubsection @code{:no-expand} 12015@subsubsection @code{:no-expand}
@@ -11873,16 +12037,20 @@ interpreted language.
11873 12037
11874The @code{:noweb} header argument controls expansion of ``noweb'' style (see 12038The @code{:noweb} header argument controls expansion of ``noweb'' style (see
11875@ref{Noweb reference syntax}) references in a code block. This header 12039@ref{Noweb reference syntax}) references in a code block. This header
11876argument can have one of two values: @code{yes} or @code{no}. 12040argument can have one of three values: @code{yes} @code{no} or @code{tangle}.
11877 12041
11878@itemize @bullet 12042@itemize @bullet
12043@item @code{yes}
12044All ``noweb'' syntax references in the body of the code block will be
12045expanded before the block is evaluated, tangled or exported.
11879@item @code{no} 12046@item @code{no}
11880The default. No ``noweb'' syntax specific action is taken on evaluating 12047The default. No ``noweb'' syntax specific action is taken on evaluating
11881code blocks, However, noweb references will still be expanded during 12048code blocks, However, noweb references will still be expanded during
11882tangling. 12049tangling.
11883@item @code{yes} 12050@item @code{yes}
11884All ``noweb'' syntax references in the body of the code block will be 12051All ``noweb'' syntax references in the body of the code block will be
11885expanded before the block is evaluated. 12052expanded before the block is tangled, however ``noweb'' references will not
12053be expanded when the block is evaluated or exported.
11886@end itemize 12054@end itemize
11887 12055
11888@subsubheading Noweb prefix lines 12056@subsubheading Noweb prefix lines
@@ -12067,7 +12235,7 @@ Setting the @code{:shebang} header argument to a string value
12067first line of any tangled file holding the code block, and the file 12235first line of any tangled file holding the code block, and the file
12068permissions of the tangled file are set to make it executable. 12236permissions of the tangled file are set to make it executable.
12069 12237
12070@node eval, , shebang, Specific header arguments 12238@node eval, , shebang, Specific header arguments
12071@subsubsection @code{:eval} 12239@subsubsection @code{:eval}
12072The @code{:eval} header argument can be used to limit the evaluation of 12240The @code{:eval} header argument can be used to limit the evaluation of
12073specific code blocks. @code{:eval} accepts two arguments ``never'' and 12241specific code blocks. @code{:eval} accepts two arguments ``never'' and
@@ -12268,17 +12436,18 @@ Be sure to adjust the paths to fit your system.
12268#!/bin/sh 12436#!/bin/sh
12269# -*- mode: shell-script -*- 12437# -*- mode: shell-script -*-
12270# 12438#
12271# tangle a file with org-mode 12439# tangle files with org-mode
12272# 12440#
12273DIR=`pwd` 12441DIR=`pwd`
12274FILES="" 12442FILES=""
12443ORGINSTALL="~/src/org/lisp/org-install.el"
12275 12444
12276# wrap each argument in the code required to call tangle on it 12445# wrap each argument in the code required to call tangle on it
12277for i in $@@; do 12446for i in $@@; do
12278FILES="$FILES \"$i\"" 12447 FILES="$FILES \"$i\""
12279done 12448done
12280 12449
12281emacsclient \ 12450emacs -Q --batch -l $ORGINSTALL \
12282--eval "(progn 12451--eval "(progn
12283(add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\")) 12452(add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\"))
12284(add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\")) 12453(add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\"))
@@ -12286,7 +12455,7 @@ emacsclient \
12286(mapc (lambda (file) 12455(mapc (lambda (file)
12287 (find-file (expand-file-name file \"$DIR\")) 12456 (find-file (expand-file-name file \"$DIR\"))
12288 (org-babel-tangle) 12457 (org-babel-tangle)
12289 (kill-buffer)) '($FILES)))" 12458 (kill-buffer)) '($FILES)))" 2>&1 |grep tangled
12290@end example 12459@end example
12291 12460
12292@node Miscellaneous, Hacking, Working With Source Code, Top 12461@node Miscellaneous, Hacking, Working With Source Code, Top
@@ -12294,6 +12463,7 @@ emacsclient \
12294 12463
12295@menu 12464@menu
12296* Completion:: M-TAB knows what you need 12465* Completion:: M-TAB knows what you need
12466* Easy Templates:: Quick insertion of structural elements
12297* Speed keys:: Electric commands at the beginning of a headline 12467* Speed keys:: Electric commands at the beginning of a headline
12298* Code evaluation security:: Org mode files evaluate inline code 12468* Code evaluation security:: Org mode files evaluate inline code
12299* Customization:: Adapting Org to your taste 12469* Customization:: Adapting Org to your taste
@@ -12305,7 +12475,7 @@ emacsclient \
12305@end menu 12475@end menu
12306 12476
12307 12477
12308@node Completion, Speed keys, Miscellaneous, Miscellaneous 12478@node Completion, Easy Templates, Miscellaneous, Miscellaneous
12309@section Completion 12479@section Completion
12310@cindex completion, of @TeX{} symbols 12480@cindex completion, of @TeX{} symbols
12311@cindex completion, of TODO keywords 12481@cindex completion, of TODO keywords
@@ -12367,7 +12537,46 @@ Elsewhere, complete dictionary words using Ispell.
12367@end itemize 12537@end itemize
12368@end table 12538@end table
12369 12539
12370@node Speed keys, Code evaluation security, Completion, Miscellaneous 12540@node Easy Templates, Speed keys, Completion, Miscellaneous
12541@section Easy Templates
12542@cindex template insertion
12543@cindex insertion, of templates
12544
12545Org-mode supports insertion of empty structural elements (like
12546@code{#+BEGIN_SRC} and @code{#+END_SRC} pairs) with just a few key
12547strokes. This is achieved through a native template expansion mechanism.
12548Note that Emacs has several other template mechanisms which could be used in
12549a similar way, for example @file{yasnippet}.
12550
12551To insert a structural element, type a @samp{<}, followed by a template
12552selector and @kbd{@key{TAB}}. Completion takes effect only when the above
12553keystrokes are typed on a line by itself.
12554
12555The following template selectors are currently supported.
12556
12557@multitable @columnfractions 0.1 0.9
12558@item @kbd{s} @tab @code{#+begin_src ... #+end_src}
12559@item @kbd{e} @tab @code{#+begin_example ... #+end_example}
12560@item @kbd{q} @tab @code{#+begin_quote ... #+end_quote}
12561@item @kbd{v} @tab @code{#+begin_verse ... #+end_verse}
12562@item @kbd{c} @tab @code{#+begin_center ... #+end_center}
12563@item @kbd{l} @tab @code{#+begin_latex ... #+end_latex}
12564@item @kbd{L} @tab @code{#+latex:}
12565@item @kbd{h} @tab @code{#+begin_html ... #+end_html}
12566@item @kbd{H} @tab @code{#+html:}
12567@item @kbd{a} @tab @code{#+begin_ascii ... #+end_ascii}
12568@item @kbd{A} @tab @code{#+ascii:}
12569@item @kbd{i} @tab @code{#+include:} line
12570@end multitable
12571
12572For example, on an empty line, typing "<e" and then pressing TAB, will expand
12573into a complete EXAMPLE template.
12574
12575You can install additional templates by customizing the variable
12576@code{org-structure-template-alist}. Refer docstring of the variable for
12577additional details.
12578
12579@node Speed keys, Code evaluation security, Easy Templates, Miscellaneous
12371@section Speed keys 12580@section Speed keys
12372@cindex speed keys 12581@cindex speed keys
12373@vindex org-use-speed-commands 12582@vindex org-use-speed-commands
@@ -12388,7 +12597,7 @@ with the cursor at the beginning of a headline.
12388@node Code evaluation security, Customization, Speed keys, Miscellaneous 12597@node Code evaluation security, Customization, Speed keys, Miscellaneous
12389@section Code evaluation and security issues 12598@section Code evaluation and security issues
12390 12599
12391Org provides tool to work with the code snippets, including evaluating them. 12600Org provides tools to work with the code snippets, including evaluating them.
12392 12601
12393Running code on your machine always comes with a security risk. Badly 12602Running code on your machine always comes with a security risk. Badly
12394written or malicious code can be executed on purpose or by accident. Org has 12603written or malicious code can be executed on purpose or by accident. Org has
@@ -12406,12 +12615,12 @@ Code evaluation can happen under the following circumstances:
12406@item Source code blocks 12615@item Source code blocks
12407Source code blocks can be evaluated during export, or when pressing @kbd{C-c 12616Source code blocks can be evaluated during export, or when pressing @kbd{C-c
12408C-c} in the block. The most important thing to realize here is that Org mode 12617C-c} in the block. The most important thing to realize here is that Org mode
12409files which contain code snippets are in a certain sense like executable 12618files which contain code snippets are, in a certain sense, like executable
12410files. So you should accept them and load them into Emacs only from trusted 12619files. So you should accept them and load them into Emacs only from trusted
12411sources - just like you would do with a program you install on your computer. 12620sources - just like you would do with a program you install on your computer.
12412 12621
12413Make sure you know what you are doing before customizing the variables 12622Make sure you know what you are doing before customizing the variables
12414which take of the default security brakes. 12623which take off the default security brakes.
12415 12624
12416@defopt org-confirm-babel-evaluate 12625@defopt org-confirm-babel-evaluate
12417When set to t user is queried before code block evaluation 12626When set to t user is queried before code block evaluation
@@ -12419,7 +12628,7 @@ When set to t user is queried before code block evaluation
12419 12628
12420@item Following @code{shell} and @code{elisp} links 12629@item Following @code{shell} and @code{elisp} links
12421Org has two link types that can directly evaluate code (@pxref{External 12630Org has two link types that can directly evaluate code (@pxref{External
12422links}). These links can be problematic because the code to be evaluated his 12631links}). These links can be problematic because the code to be evaluated is
12423not visible. 12632not visible.
12424 12633
12425@defopt org-confirm-shell-link-function 12634@defopt org-confirm-shell-link-function
@@ -12429,12 +12638,6 @@ Function to queries user about shell link execution.
12429Functions to query user for Emacs Lisp link execution. 12638Functions to query user for Emacs Lisp link execution.
12430@end defopt 12639@end defopt
12431 12640
12432@item Following @code{shell} and @code{elisp} links
12433Org has two link types that can directly evaluate code (@pxref{External
12434links}). These links can be problematic because the code to be evaluated his
12435not visible. @b{Security advice:} Do not use these links, use source code
12436blocks which make the associated actions much more transparent.
12437
12438@item Formulas in tables 12641@item Formulas in tables
12439Formulas in tables (@pxref{The spreadsheet}) are code that is evaluated 12642Formulas in tables (@pxref{The spreadsheet}) are code that is evaluated
12440either by the @i{calc} interpreter, or by the @i{Emacs Lisp} interpreter. 12643either by the @i{calc} interpreter, or by the @i{Emacs Lisp} interpreter.
@@ -12565,6 +12768,18 @@ variable is @code{org-startup-align-all-tables}, with a default value
12565align @r{align all tables} 12768align @r{align all tables}
12566noalign @r{don't align tables on startup} 12769noalign @r{don't align tables on startup}
12567@end example 12770@end example
12771
12772@vindex org-startup-with-inline-images
12773When visiting a file, inline images can be automatically displayed. The
12774corresponding variable is @code{org-startup-with-inline-images}, with a
12775default value @code{nil} to avoid delays when visiting a file.
12776@cindex @code{inlineimages}, STARTUP keyword
12777@cindex @code{noinlineimages}, STARTUP keyword
12778@example
12779inlineimages @r{show inline images}
12780noinlineimages @r{don't show inline images on startup}
12781@end example
12782
12568@vindex org-log-done 12783@vindex org-log-done
12569@vindex org-log-note-clock-out 12784@vindex org-log-note-clock-out
12570@vindex org-log-repeat 12785@vindex org-log-repeat
@@ -13273,8 +13488,10 @@ Also the @kbd{M-cursor} and @kbd{M-S-cursor} keys have this property.
13273Add-ons can tap into this functionality by providing a function that detects 13488Add-ons can tap into this functionality by providing a function that detects
13274special context for that add-on and executes functionality appropriate for 13489special context for that add-on and executes functionality appropriate for
13275the context. Here is an example from Dan Davison's @file{org-R.el} which 13490the context. Here is an example from Dan Davison's @file{org-R.el} which
13276allows you to evaluate commands based on the @file{R} programming language. For 13491allows you to evaluate commands based on the @file{R} programming language
13277this package, special contexts are lines that start with @code{#+R:} or 13492@footnote{@file{org-R.el} has been replaced by the org-mode functionality
13493described in @ref{Working With Source Code} and is now obsolete.}. For this
13494package, special contexts are lines that start with @code{#+R:} or
13278@code{#+RR:}. 13495@code{#+RR:}.
13279 13496
13280@lisp 13497@lisp
@@ -13693,10 +13910,11 @@ written in a way such that it does nothing in buffers that are not in
13693@section Special agenda views 13910@section Special agenda views
13694@cindex agenda views, user-defined 13911@cindex agenda views, user-defined
13695 13912
13696Org provides a special hook that can be used to narrow down the 13913Org provides a special hook that can be used to narrow down the selection
13697selection made by any of the agenda views. You may specify a function 13914made by these agenda views: @code{todo}, @code{alltodo}, @code{tags}, @code{tags-todo},
13698that is used at each match to verify if the match should indeed be part 13915@code{tags-tree}. You may specify a function that is used at each match to verify
13699of the agenda view, and if not, how much should be skipped. 13916if the match should indeed be part of the agenda view, and if not, how
13917much should be skipped.
13700 13918
13701Let's say you want to produce a list of projects that contain a WAITING 13919Let's say you want to produce a list of projects that contain a WAITING
13702tag anywhere in the project tree. Let's further assume that you have 13920tag anywhere in the project tree. Let's further assume that you have
@@ -14107,16 +14325,23 @@ in-buffer settings, but it will understand the logistics of TODO state
14107@node Setting up the staging area, Pushing to MobileOrg, MobileOrg, MobileOrg 14325@node Setting up the staging area, Pushing to MobileOrg, MobileOrg, MobileOrg
14108@section Setting up the staging area 14326@section Setting up the staging area
14109 14327
14110MobileOrg needs to interact with Emacs through directory on a 14328MobileOrg needs to interact with Emacs through directory on a server. If you
14111server@footnote{If you are using a public server, you might prefer to encrypt 14329are using a public server, you should consider to encrypt the files that are
14112the files on the server. This can be done with Org-mode 6.35 and, hopefully, 14330uploaded to the server. This can be done with Org-mode 7.02 and with
14113with MobileOrg 1.4 (please check before trying to use this). On the Emacs 14331@i{MobileOrg 1.5} (iPhone version), and you need an @file{openssl}
14114side, configure the variables @code{org-mobile-use-encryption} and 14332installation on your system. To turn on encryption, set a password in
14115@code{org-mobile-encryption-password}.}. The easiest way to create that 14333@i{MobileOrg} and, on the Emacs side, configure the variable
14116directory is to use a free @uref{http://dropbox.com,Dropbox.com} 14334@code{org-mobile-use-encryption}@footnote{If you can safely store the
14117account@footnote{If you cannot use Dropbox, or if your version of MobileOrg 14335password in your Emacs setup, you might also want to configure
14118does not support it, you can use a webdav server. For more information, 14336@code{org-mobile-encryption-password}. Please read the docstring of that
14119check out the the documentation of MobileOrg and also this 14337variable. Note that encryption will apply only to the contents of the
14338@file{.org} files. The file names themselves will remain visible.}.
14339
14340The easiest way to create that directory is to use a free
14341@uref{http://dropbox.com,Dropbox.com} account@footnote{If you cannot use
14342Dropbox, or if your version of MobileOrg does not support it, you can use a
14343webdav server. For more information, check out the the documentation of
14344MobileOrg and also this
14120@uref{http://orgmode.org/worg/org-faq.php#mobileorg_webdav, FAQ entry}.}. 14345@uref{http://orgmode.org/worg/org-faq.php#mobileorg_webdav, FAQ entry}.}.
14121When MobileOrg first connects to your Dropbox, it will create a directory 14346When MobileOrg first connects to your Dropbox, it will create a directory
14122@i{MobileOrg} inside the Dropbox. After the directory has been created, tell 14347@i{MobileOrg} inside the Dropbox. After the directory has been created, tell
@@ -14139,15 +14364,17 @@ can be included by customizing @code{org-mobiles-files}. File names will be
14139staged with path relative to @code{org-directory}, so all files should be 14364staged with path relative to @code{org-directory}, so all files should be
14140inside this directory. The push operation also creates a special Org file 14365inside this directory. The push operation also creates a special Org file
14141@file{agendas.org} with all custom agenda view defined by the 14366@file{agendas.org} with all custom agenda view defined by the
14142user@footnote{While creating the agendas, Org-mode will force (see the 14367user@footnote{While creating the agendas, Org-mode will force ID properties
14143variable @code{org-mobile-force-id-on-agenda-items}) ID properties on all 14368on all referenced entries, so that these entries can be uniquely identified
14144referenced entries, so that these entries can be uniquely 14369if @i{MobileOrg} flags them for further action. If you do not want to get
14145identified if @i{MobileOrg} flags them for further action.}. Finally, Org 14370these properties in so many entries, you can set the variable
14146writes the file @file{index.org}, containing links to all other files. 14371@code{org-mobile-force-id-on-agenda-items} to @code{nil}. Org mode will then
14147@i{MobileOrg} first reads this file from the server, and then downloads all 14372rely on outline paths, in the hope that these will be unique enough.}.
14148agendas and Org files listed in it. To speed up the download, MobileOrg will 14373Finally, Org writes the file @file{index.org}, containing links to all other
14149only read files whose checksums@footnote{stored automatically in the file 14374files. @i{MobileOrg} first reads this file from the server, and then
14150@file{checksums.dat}} have changed. 14375downloads all agendas and Org files listed in it. To speed up the download,
14376MobileOrg will only read files whose checksums@footnote{stored automatically
14377in the file @file{checksums.dat}} have changed.
14151 14378
14152@node Pulling from MobileOrg, , Pushing to MobileOrg, MobileOrg 14379@node Pulling from MobileOrg, , Pushing to MobileOrg, MobileOrg
14153@section Pulling from MobileOrg 14380@section Pulling from MobileOrg
@@ -14195,12 +14422,12 @@ this flagged entry is finished.
14195 14422
14196@kindex C-c a ? 14423@kindex C-c a ?
14197If you are not able to process all flagged entries directly, you can always 14424If you are not able to process all flagged entries directly, you can always
14198return to this agenda view using @kbd{C-c a ?}. Note, however, that there is 14425return to this agenda view@footnote{Note, however, that there is a subtle
14199a subtle difference. The view created automatically by @kbd{M-x 14426difference. The view created automatically by @kbd{M-x org-mobile-pull
14200org-mobile-pull @key{RET}} is guaranteed to search all files that have been 14427@key{RET}} is guaranteed to search all files that have been addressed by the
14201addressed by the last pull. This might include a file that is not currently 14428last pull. This might include a file that is not currently in your list of
14202in your list of agenda files. If you later use @kbd{C-c a ?} to regenerate 14429agenda files. If you later use @kbd{C-c a ?} to regenerate the view, only
14203the view, only the current agenda files will be searched. 14430the current agenda files will be searched.} using @kbd{C-c a ?}.
14204 14431
14205@node History and Acknowledgments, Main Index, MobileOrg, Top 14432@node History and Acknowledgments, Main Index, MobileOrg, Top
14206@appendix History and acknowledgments 14433@appendix History and acknowledgments
@@ -14331,6 +14558,8 @@ around a match in a hidden outline tree.
14331@item 14558@item
14332@i{Niels Giesen} had the idea to automatically archive DONE trees. 14559@i{Niels Giesen} had the idea to automatically archive DONE trees.
14333@item 14560@item
14561@i{Nicolas Goaziou} rewrote much of the plain list code.
14562@item
14334@i{Kai Grossjohann} pointed out key-binding conflicts with other packages. 14563@i{Kai Grossjohann} pointed out key-binding conflicts with other packages.
14335@item 14564@item
14336@i{Bernt Hansen} has driven much of the support for auto-repeating tasks, 14565@i{Bernt Hansen} has driven much of the support for auto-repeating tasks,
@@ -14482,12 +14711,17 @@ and contributed various ideas and code snippets.
14482 14711
14483@printindex cp 14712@printindex cp
14484 14713
14485@node Key Index, Variable Index, Main Index, Top 14714@node Key Index, Command and Function Index, Main Index, Top
14486@unnumbered Key index 14715@unnumbered Key index
14487 14716
14488@printindex ky 14717@printindex ky
14489 14718
14490@node Variable Index, , Key Index, Top 14719@node Command and Function Index, Variable Index, Key Index, Top
14720@unnumbered Command and function index
14721
14722@printindex fn
14723
14724@node Variable Index, , Command and Function Index, Top
14491@unnumbered Variable index 14725@unnumbered Variable index
14492 14726
14493This is not a complete index of variables and faces, only the ones that are 14727This is not a complete index of variables and faces, only the ones that are
@@ -14504,6 +14738,7 @@ org-customize @key{RET}} and then click yourself through the tree.
14504 14738
14505@c Local variables: 14739@c Local variables:
14506@c fill-column: 77 14740@c fill-column: 77
14741@c indent-tabs-mode: nil
14507@c End: 14742@c End:
14508 14743
14509 14744
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 2c82becf6ae..6a77c138404 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -1942,7 +1942,7 @@ understand this syntax and will emit a syntax error when it reaches
1942this line. 1942this line.
1943 1943
1944Another example is the tilde (@code{~}) character, say when adding 1944Another example is the tilde (@code{~}) character, say when adding
1945@file{~/bin} to @code{$PATH}. Many Bourne shells will not expand this 1945@file{~/bin} to @code{PATH}. Many Bourne shells will not expand this
1946character, and since there is usually no directory whose name consists 1946character, and since there is usually no directory whose name consists
1947of the single character tilde, strange things will happen. 1947of the single character tilde, strange things will happen.
1948 1948
@@ -1969,6 +1969,38 @@ shell is Bourne-ish already, then it might be prudent to omit the
1969@command{exec /bin/sh} step. But how to find out if the shell is 1969@command{exec /bin/sh} step. But how to find out if the shell is
1970Bourne-ish? 1970Bourne-ish?
1971 1971
1972
1973@item Interactive shell prompt
1974
1975@value{tramp} redefines the shell prompt in order to parse the shell's
1976output robustly. When calling an interactive shell by @kbd{M-x
1977shell}, this doesn't look nice.
1978
1979You can redefine the shell prompt by checking the environment variable
1980@code{INSIDE_EMACS}, which is set by @value{tramp}, in your startup
1981script @file{~/.emacs_SHELLNAME}. @code{SHELLNAME} might be the string
1982@code{bash} or similar, in case of doubt you could set it the
1983environment variable @code{ESHELL} in your @file{.emacs}:
1984
1985@lisp
1986(setenv "ESHELL" "bash")
1987@end lisp
1988
1989Your file @file{~/.emacs_SHELLNAME} could contain code like
1990
1991@example
1992# Reset the prompt for remote Tramp shells.
1993if [ "$@{INSIDE_EMACS/*tramp*/tramp@}" == "tramp" ] ; then
1994 PS1="[\u@@\h \w]$ "
1995fi
1996@end example
1997
1998@ifinfo
1999@ifset emacs
2000@xref{Interactive Shell, , , @value{emacsdir}}.
2001@end ifset
2002@end ifinfo
2003
1972@end table 2004@end table
1973 2005
1974 2006
@@ -2493,7 +2525,7 @@ Adding an entry can be performed via @code{add-to-list}:
2493Changing or removing an existing entry is not encouraged. The default 2525Changing or removing an existing entry is not encouraged. The default
2494values are chosen for proper @value{tramp} work. Nevertheless, if for 2526values are chosen for proper @value{tramp} work. Nevertheless, if for
2495example a paranoid system administrator disallows changing the 2527example a paranoid system administrator disallows changing the
2496@var{$HISTORY} environment variable, you can customize 2528@code{HISTORY} environment variable, you can customize
2497@code{tramp-remote-process-environment}, or you can apply the 2529@code{tramp-remote-process-environment}, or you can apply the
2498following code in your @file{.emacs}: 2530following code in your @file{.emacs}:
2499 2531
@@ -2512,7 +2544,7 @@ integrate them as well. @xref{Bug Reports}.
2512 2544
2513If you want to run a remote program, which shall connect the X11 2545If you want to run a remote program, which shall connect the X11
2514server you are using with your local host, you can set the 2546server you are using with your local host, you can set the
2515@var{$DISPLAY} environment variable on the remote host: 2547@code{DISPLAY} environment variable on the remote host:
2516 2548
2517@lisp 2549@lisp
2518(add-to-list 'tramp-remote-process-environment 2550(add-to-list 'tramp-remote-process-environment
diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi
index 107e4d70aa3..38758d39bc9 100644
--- a/doc/misc/trampver.texi
+++ b/doc/misc/trampver.texi
@@ -9,7 +9,7 @@
9@c In the Tramp CVS, the version number is auto-frobbed from 9@c In the Tramp CVS, the version number is auto-frobbed from
10@c configure.ac, so you should edit that file and run 10@c configure.ac, so you should edit that file and run
11@c "autoconf && ./configure" to change the version number. 11@c "autoconf && ./configure" to change the version number.
12@set trampver 2.2.0-pre 12@set trampver 2.2.0
13 13
14@c Other flags from configuration 14@c Other flags from configuration
15@set instprefix /usr/local 15@set instprefix /usr/local
@@ -73,7 +73,3 @@
73@set emacsotherdir emacs 73@set emacsotherdir emacs
74@set emacsotherfilename tramp-emacs.html 74@set emacsotherfilename tramp-emacs.html
75@end ifset 75@end ifset
76
77@ignore
78 arch-tag: e0fe322c-e06b-46eb-bb5b-d091b521f41c
79@end ignore