summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2010-12-10 19:13:08 -0500
committerStefan Monnier <monnier@iro.umontreal.ca>2010-12-10 19:13:08 -0500
commit2c302df3a13236bfbf8ea1b771d13618fcda8d71 (patch)
treef26dc9f22861dc37610de319d05255de058c221b /doc
parent0c747cb143fa227e78f350ac353d703f489209df (diff)
parent175069efeb080517afefdd44a06f7a779ea8c25c (diff)
downloademacs-2c302df3a13236bfbf8ea1b771d13618fcda8d71.tar.gz
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 @@
+2010-11-27 Bob Rogers <rogers-emacs@rgrjr.dyndns.org>
+
+ * maintaining.texi (VC With A Locking VCS, VC Directory Commands):
+ * vc1-xtra.texi (Customizing VC, General VC Options): Small fixes.
+
+2010-11-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * maintaining.texi (Version Control Systems): Fix repeated sentence.
+ Suggested by Štěpán Němec.
+
+2010-11-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * maintaining.texi (Version Control): Say "commit", not "check in".
+ (Version Control Systems): Simplify descriptions.
+ (VCS Merging, VCS Changesets, VCS Repositories): New nodes, split from
+ VCS Concepts.
+ (VC Mode Line): Update example.
+ (Old Revisions): Document revert-buffer for vc-diff.
+ (Log Buffer): Promote to a subsection. Document header lines.
+
+ * macos.texi (Mac / GNUstep Basics): Document
+ ns-right-alternate-modifier.
+
+ * emacs.texi (Top): Update node listing.
+
+2010-11-13 Eli Zaretskii <eliz@gnu.org>
+
+ * rmail.texi (Rmail Coding): Characters with no fonts are not
+ necessarily displayed as empty boxes.
+
+ * mule.texi (Language Environments, Fontsets): Characters with no
+ fonts are not necessarily displayed as empty boxes.
+
+ * display.texi (Text Display): Document display of glyphless
+ characters.
+
+2010-11-13 Glenn Morris <rgm@gnu.org>
+
+ * basic.texi (Position Info): Add M-x count-words-region.
+
+2010-11-11 Glenn Morris <rgm@gnu.org>
+
+ * msdog.texi (ls in Lisp): Update for ls-lisp changes.
+
+2010-11-09 Eli Zaretskii <eliz@gnu.org>
+
+ * msdog.texi (Windows HOME): Add information regarding startup
+ directory when invoking Emacs from a desktop shortcut. (bug#7300)
+
2010-10-11 Glenn Morris <rgm@gnu.org>
* 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.
Display the number of lines in the current region. Normally bound to
@kbd{M-=}, except in a few specialist modes. @xref{Mark}, for
information about the region.
+@item M-x count-words-region
+Display the number of words in the current region.
@item C-x =
Display the character code of character after point, character position of
point, 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
z z z}. The first @kbd{C-x z} repeats the command once, and each
subsequent @kbd{z} repeats it once again.
-@ignore
- arch-tag: cda8952a-c439-41c1-aecf-4bc0d6482956
-@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.
by means of a display table. @xref{Display Tables,, Display Tables,
elisp, The Emacs Lisp Reference Manual}.
+@cindex glyphless characters
+@cindex characters with no font glyphs
+ On graphics displays, some characters could have no glyphs in any of
+the fonts available to Emacs. On text terminals, some characters
+could be impossible to encode with the terminal coding system
+(@pxref{Terminal Coding}). Emacs can display such @dfn{glyphless}
+characters using one of the following methods:
+
+@table @code
+@item zero-width
+Don't display the character.
+
+@item thin-space
+Display a thin space, 1-pixel wide on graphics displays or 1-character
+wide on text terminals.
+
+@item empty-box
+Display an empty box.
+
+@item acronym
+Display the acronym of the character's name (such as @sc{zwnj} or
+@sc{rlm}) in a box.
+
+@item hex-code
+Display the Unicode codepoint of the character in hexadecimal
+notation, in a box.
+@end table
+
+@noindent
+@cindex @code{glyphless-char} face
+With the exception of @code{zero-width}, all other methods draw these
+characters in a special face @code{glyphless-char}, which you can
+customize.
+
+@vindex glyphless-char-display-control
+@vindex char-acronym-table
+To control what glyphless characters are displayed using which method,
+customize the variable @code{glyphless-char-display-control}; see its
+doc string for the details. For even finer control, set the elements
+of 2 char-tables: @code{glyphless-char-display} and
+@code{char-acronym-table}.
+
@node Cursor Display
@section Displaying the Cursor
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
* Introduction to VC:: How version control works in general.
* VC Mode Line:: How the mode line shows version control status.
* Basic VC Editing:: How to edit a file under version control.
+* Log Buffer:: Features available in log entry buffers.
* Old Revisions:: Examining and comparing old versions.
* Secondary VC Commands:: The commands used a little less frequently.
* VC Directory Mode:: Listing files managed by version control.
@@ -785,6 +786,9 @@ Introduction to Version Control
* Why Version Control?:: Understanding the problems it addresses.
* Version Control Systems:: Supported version control back-end systems.
* VCS Concepts:: Words and concepts related to version control.
+* VCS Merging:: How file conflicts are handled.
+* VCS Changesets:: Changesets in version control.
+* VCS Repositories:: Where version control repositories are stored.
* Types of Log File:: The VCS log in contrast to the ChangeLog.
Basic Editing under Version Control
@@ -792,7 +796,6 @@ Basic Editing under Version Control
* VC With A Merging VCS:: Without locking: default mode for CVS.
* VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS.
* Advanced C-x v v:: Advanced features available with a prefix argument.
-* Log Buffer:: Features available in log entry buffers.
The Secondary Commands of VC
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 @@
@cindex Macintosh
@cindex GNUstep
- This section briefly describes the peculiarities of using Emacs built with
-the GNUstep libraries on GNU/Linux or other operating systems, or on Mac OS X
-with native window system support. For Mac OS X, Emacs can be built either
-without window system support, with X11, or with the Cocoa interface. This
-section only applies to the Cocoa build. Emacs 23 does not support Mac OS
-Classic.
-
- Emacs, when built on Mac OS X, uses the Cocoa application interface. For
-various historical and technical reasons, Emacs uses the term @samp{Nextstep}
-internally, instead of ``Cocoa'' or ``Mac OS X''; for instance, most of the
-commands and variables described in the following sections begin with
-@samp{ns-}, which is short for @samp{Nextstep}. NeXTstep was an application
-interface released by NeXT Inc during the 1980s, of which Cocoa is a direct
-descendant. Apart from Cocoa, there is another NeXTstep-style system:
-GNUstep, which is free software. As of this writing, the GNUstep support is
-alpha status (@pxref{GNUstep Support}), but we hope to improve it in the
-future.
+ This section describes the peculiarities of using Emacs built with
+the GNUstep libraries on GNU/Linux or other operating systems, or on
+Mac OS X with native window system support. On Mac OS X, Emacs can be
+built either without window system support, with X11, or with the
+Cocoa interface; this section only applies to the Cocoa build. Emacs
+does not support earlier versions of Mac OS.
+
+ For various historical and technical reasons, Emacs uses the term
+@samp{Nextstep} internally, instead of ``Cocoa'' or ``Mac OS X''; for
+instance, most of the commands and variables described in this section
+begin with @samp{ns-}, which is short for @samp{Nextstep}. NeXTstep
+was an application interface released by NeXT Inc during the 1980s, of
+which Cocoa is a direct descendant. Apart from Cocoa, there is
+another NeXTstep-style system: GNUstep, which is free software. As of
+this writing, the GNUstep support is alpha status (@pxref{GNUstep
+Support}), but we hope to improve it in the future.
@menu
* Mac / GNUstep Basics:: Basic Emacs usage under GNUstep or Mac OS.
@@ -37,19 +36,24 @@ future.
@section Basic Emacs usage under Mac OS and GNUstep
By default, the @key{alt} and @key{option} keys are the same as
-@key{Meta} when running under Mac OS. The Mac @key{Cmd} key is the
-same as @key{Super}, and Emacs provides a set of keybindings using
-this modifier key that mimic other Mac / GNUstep applications (@pxref{Mac /
-GNUstep Events}). You can change these bindings in the usual way (@pxref{Key
-Bindings}).
-
- The standard Mac / GNUstep font and color panels are accessible via Lisp commands.
- To use the color panel, drag from it to an Emacs frame to change the
-foreground color of the face at that position (if the @key{shift} key
-is held down, it changes the background color instead). To discard the
-settings, create a new frame and close the altered one.
-@c [unclear if the following holds.]
-@c To finalize the settings for either color or font, choose @samp{Save Options} in the @samp{Options} menu.
+@key{Meta}. The Mac @key{Cmd} key is the same as @key{Super}, and
+Emacs provides a set of keybindings using this modifier key that mimic
+other Mac / GNUstep applications (@pxref{Mac / GNUstep Events}). You
+can change these bindings in the usual way (@pxref{Key Bindings}).
+
+ The variable @code{ns-right-alternate-modifier} controls the
+behavior of the right @key{alt} and @key{option} keys. These keys
+behave like the left-hand keys if the value is @code{left} (the
+default). A value of @code{control}, @code{meta}, @code{alt},
+@code{super}, or @code{hyper} makes them behave like the corresponding
+modifier keys; a value of @code{none} tells Emacs to ignore them.
+
+ The standard Mac / GNUstep font and color panels are accessible via
+Lisp commands. To use the color panel, drag from it to an Emacs frame
+to change the foreground color of the face at that position (if the
+@key{shift} key is held down, it changes the background color
+instead). To discard the settings, create a new frame and close the
+altered one.
@key{S-Mouse-1} (i.e., clicking the left mouse button
while 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
@key{S-Mouse-1} normally does (@pxref{Temporary Face Changes}). This
change makes Emacs behave more like other Mac / GNUstep applications.
- When you open or save files using the menus, or using the
+ When you open or save files using the menus, or using the
@key{Cmd-o} and @key{Cmd-S} bindings, Emacs uses graphical file
dialogs to read file names. However, if you use the regular Emacs key
sequences, 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
background color.
@c To make the changes permanent select the "Save Options"
-@c item in the "Options" menu, or run @code{menu-bar-options-save}.
+@c item in the "Options" menu, or run @code{menu-bar-options-save}.
Useful in this context is the listing of all faces obtained by @key{M-x}
@code{list-faces-display}.
@@ -193,7 +197,7 @@ font are stored in the variables @code{ns-input-font} and
@code{ns-input-fontsize}, respectively.
@item ns-power-off
-This event occurs when the user logs out and Emacs is still running, or when
+This event occurs when the user logs out and Emacs is still running, or when
`Quit Emacs' is chosen from the application menu.
The default behavior is to save all file-visiting buffers.
@end table
@@ -208,26 +212,9 @@ and return the result as a string. You can also use the Lisp function
services and receive the results back. Note that you may need to
restart Emacs to access newly-available services.
-
@node GNUstep Support, , Mac / GNUstep Events, Mac OS / GNUstep
@section GNUstep Support
-Emacs can be built and run under GNUstep, however there are still some
+Emacs can be built and run under GNUstep, but there are still some
issues to be addressed. Interested developers should contact
@email{emacs-devel@@gnu.org}.
-
-@c Presumably no longer relevant since CANNOT_DUMP removed 2009-05-06:
-@ignore
-In particular, it may be necessary to run @samp{make bootstrap} with a
-plain X configuration, then @samp{make clean} and @samp{./configure
---with-ns} followed by @samp{make install}.
-
-Currently CANNOT_DUMP is automatically enabled in GNUstep configurations,
-because the unex file(s) for GNUstep, mainly @samp{unexelf.c}, have not been
-updated yet with the ``zone'' code in and related to @samp{unexmacosx.c}.
-@end ignore
-
-
-@ignore
- arch-tag: a822c2ab-4273-4997-927e-c153bb71dcf6
-@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.
@section Version Control
@cindex version control
- A @dfn{version control system} is a package that can record multiple
+ A @dfn{version control system} is a program that can record multiple
versions of a source file, storing information such as the creation
-time of each version, who created it, and a description of what was
-changed in that version.
-
- The Emacs version control interface is called VC. Its commands work
-with several different version control systems; currently, it supports
-GNU Arch, Bazaar, CVS, Git, Mercurial, Monotone, RCS, SCCS/CSSC, and
-Subversion. Of these, the GNU project distributes CVS, GNU Arch, RCS,
-and Bazaar.
-
- VC is enabled automatically whenever you visit a file that is
-governed by a version control system. To disable VC entirely, set the
-customizable variable @code{vc-handled-backends} to @code{nil}
+time of each version, who made it, and a description of what was
+changed.
+
+ The Emacs version control interface is called @dfn{VC}. VC commands
+work with several different version control systems; currently, it
+supports GNU Arch, Bazaar, CVS, Git, Mercurial, Monotone, RCS,
+SCCS/CSSC, and Subversion. Of these, the GNU project distributes CVS,
+Arch, RCS, and Bazaar.
+
+ VC is enabled automatically whenever you visit a file governed by a
+version control system. To disable VC entirely, set the customizable
+variable @code{vc-handled-backends} to @code{nil}
@iftex
(@pxref{Customizing VC,,,emacs-xtra, Specialized Emacs Features}).
@end iftex
@@ -49,6 +49,7 @@ customizable variable @code{vc-handled-backends} to @code{nil}
* Introduction to VC:: How version control works in general.
* VC Mode Line:: How the mode line shows version control status.
* Basic VC Editing:: How to edit a file under version control.
+* Log Buffer:: Features available in log entry buffers.
* Old Revisions:: Examining and comparing old versions.
* Secondary VC Commands:: The commands used a little less frequently.
* VC Directory Mode:: Listing files managed by version control.
@@ -65,12 +66,13 @@ customizable variable @code{vc-handled-backends} to @code{nil}
@subsection Introduction to Version Control
VC allows you to use a version control system from within Emacs,
-integrating the version control operations smoothly with editing.
-Though VC cannot completely bridge the gaps between version control
-systems with widely differing capabilities, it does provide a uniform
-interface to many version control operations. Regardless of which
-version control system is in use, you will be able to do basic
-operations in much the same way.
+integrating the version control operations smoothly with editing. It
+provides a uniform interface for common operations in many version
+control operations.
+
+ Some uncommon or intricate version control operations, such as
+altering repository settings, are not supported in VC. You should
+perform such tasks outside Emacs, e.g. via the command line.
This section provides a general overview of version control, and
describes the version control systems that VC supports. You can skip
@@ -81,6 +83,9 @@ you want to use.
* Why Version Control?:: Understanding the problems it addresses.
* Version Control Systems:: Supported version control back-end systems.
* VCS Concepts:: Words and concepts related to version control.
+* VCS Merging:: How file conflicts are handled.
+* VCS Changesets:: How changes are grouped.
+* VCS Repositories:: Where version control repositories are stored.
* Types of Log File:: The VCS log in contrast to the ChangeLog.
@end menu
@@ -112,8 +117,8 @@ vitally important form of communication among developers.
@subsubsection Supported Version Control Systems
@cindex back end (version control)
- VC currently works with many different version control systems or
-@dfn{back ends}:
+ VC currently works with many different version control systems,
+which it refers to as @dfn{back ends}:
@itemize @bullet
@@ -134,73 +139,60 @@ control system.
@cindex RCS
@item
RCS is the free version control system around which VC was initially
-built. Almost everything you can do with RCS can be done through VC.
-However, you cannot use RCS over the network, and it only works at the
-level of individual files rather than projects.
+built. It is relatively primitive: it cannot be used over the
+network, and works at the level of individual files. Almost
+everything you can do with RCS can be done through VC.
@cindex CVS
@item
CVS is the free version control system that was, until recently (circa
2008), used by the majority of free software projects. Nowadays, it
is slowly being superseded by newer systems. CVS allows concurrent
-multi-user development either locally or over the network. It lacks
-support for atomic commits or file moving/renaming. VC supports all
-basic editing operations under CVS. For some less common tasks, you
-still need to call CVS from the command line. Note also that before
-using CVS you must set up a repository, which is a subject too complex
-to treat here.
+multi-user development either locally or over the network. Unlike
+newer systems, it lacks support for atomic commits and file
+moving/renaming. VC supports all basic editing operations under CVS.
@cindex SVN
@cindex Subversion
@item
Subversion (SVN) is a free version control system designed to be
-similar to CVS but without its problems. It supports atomic commits
-of filesets, and versioning of directories, symbolic links, meta-data,
-renames, copies, and deletes.
+similar to CVS but without its problems (e.g., it supports atomic
+commits of filesets, and versioning of directories, symbolic links,
+meta-data, renames, copies, and deletes).
@cindex GNU Arch
@cindex Arch
@item
-GNU Arch is a version control system designed for distributed work.
-It differs in many ways from older systems like CVS and RCS. It
-provides different methods for interoperating between users, support
-for offline operations, and good branching and merging features. It
-also supports atomic commits of filesets and file moving/renaming. VC
-does not support all operations provided by GNU Arch, so you must
-sometimes invoke it from the command line.
+GNU Arch is one of the earliest @dfn{distributed} version control
+systems (the other being Monotone). @xref{VCS Concepts}, for a
+description of distributed version control systems. It is no longer
+under active development, and has been deprecated in favor of Bazaar.
@cindex git
@item
-Git is a distributed version control system invented by Linus Torvalds to support
-development of Linux (his kernel). It supports atomic commits of filesets and
-file moving/renaming. One significant feature of git is that it
-largely abolishes the notion of a single centralized repository;
-instead, each working copy of a git project is its own repository and
-coordination is done through repository-sync operations. VC supports
-most git operations, with the exception of news merges and repository
-syncing; these must be done from the command line.
+Git is a distributed version control system originally invented by
+Linus Torvalds to support development of Linux (his kernel). VC
+supports many common git operations, but others, such as repository
+syncing, must be done from the command line.
@cindex hg
@cindex Mercurial
@item
Mercurial (hg) is a distributed version control system broadly
-resembling GNU Arch and git, with atomic fileset commits and file
-moving/renaming. Like git, it is fully decentralized. VC supports
-most Mercurial commands, with the exception of repository sync
-operations; this needs to be done from the command line.
+resembling git. VC supports most Mercurial commands, with the
+exception of repository sync operations.
@cindex bzr
@cindex Bazaar
@item
-Bazaar (bzr) is a distributed version control system that supports both
-repository-based and distributed versioning, with atomic fileset
-commits and file moving/renaming. VC supports most basic editing
-operations under Bazaar.
+Bazaar (bzr) is a distributed version control system that supports
+both repository-based and distributed versioning. VC supports most
+basic editing operations under Bazaar.
@end itemize
Previous versions of VC supported a version control system known as
-Meta-CVS. This support has been dropped because of limited interest
-from users and developers.
+Meta-CVS. This support was dropped due to limited interest from users
+and developers.
@node VCS Concepts
@subsubsection Concepts of Version Control
@@ -216,11 +208,11 @@ as @dfn{log entries} that describe the changes made to each file.
@cindex work file
@cindex checking out files
- A file @dfn{checked out} of a repository is called the @dfn{work
-file}. You edit the work file and make changes in it, as you would
-with an ordinary file. After you are done with a set of changes, you
-@dfn{check in} or @dfn{commit} the file; this records the changes in
-the repository, along with a log entry for those changes.
+ The copy of a version-controlled file that you actually edit is
+called the @dfn{work file}. You can change each work file as you
+would an ordinary file. After you are done with a set of changes, you
+@dfn{commit} (or @dfn{check in}) the changes; this records the changes
+in the repository, along with a descriptive log entry.
@cindex revision
@cindex revision ID
@@ -231,12 +223,15 @@ on the version control system; in the simplest case, it is just an
integer.
To go beyond these basic concepts, you will need to understand three
-aspects in which version control systems differ.
-They can be locking-based or merging-based; they can be file-based or
-changeset-based; and they can be centralized or decentralized. VC
-handles all these modes of operation, but it cannot hide the differences.
+aspects in which version control systems differ. As explained in the
+next three sections, they can be lock-based or merge-based; file-based
+or changeset-based; and centralized or decentralized. VC handles all
+these modes of operation, but it cannot hide the differences.
+@node VCS Merging
+@subsubsection Merge-based vs lock-based Version Control
@cindex locking versus merging
+
A version control system typically has some mechanism to coordinate
between users who want to change the same file. There are two ways to
do this: merging and locking.
@@ -244,8 +239,7 @@ do this: merging and locking.
In a version control system that uses merging, each user may check
out and modify a work file at any time. The system lets you
@dfn{merge} your work file, which may contain changes that have not
-been checked in, with the latest changes that others have checked into
-the repository.
+been committed, with the latest changes that others have committed.
Older version control systems use a @dfn{locking} scheme instead.
Here, 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}
it; only one user can lock a given file at any given time. This
procedure is analogous to, but different from, the locking that Emacs
uses to detect simultaneous editing of ordinary files
-(@pxref{Interlocking}). When you check in your changes, that unlocks
+(@pxref{Interlocking}). When you commit your changes, that unlocks
the file, and the work file becomes read-only again. Other users may
then lock the file to make their own changes.
@@ -261,8 +255,8 @@ then lock the file to make their own changes.
users try to modify the same file at the same time. Locking systems
have @dfn{lock conflicts}; a user may try to check a file out and be
unable to because it is locked. In merging systems, @dfn{merge
-conflicts} happen when you check in a change to a file that conflicts
-with a change checked in by someone else after your checkout. Both
+conflicts} happen when you commit a change to a file that conflicts
+with a change committed by someone else after your checkout. Both
kinds of conflict have to be resolved by human judgment and
communication. Experience has shown that merging is superior to
locking, both in convenience to developers and in minimizing the
@@ -275,27 +269,33 @@ Distributed version control systems, such as GNU Arch, git, and
Mercurial, are exclusively merging-based.
VC mode supports both locking and merging version control. The
-terms ``checkin'' and ``checkout'' come from locking-based version
-control systems; newer version control systems have slightly different
-operations usually called ``commit'' and ``update'', but VC hides the
-differences between them as much as possible.
+terms ``commit'' and ``update'' are used in newer version control
+systems; older lock-based systems use the terms ``check in'' and
+``check out''. VC hides the differences between them as much as
+possible.
+
+@node VCS Changesets
+@subsubsection Changeset-based vs File-based Version Control
-@cindex files versus changesets.
+@cindex changesets
On SCCS, RCS, CVS, and other early version control systems, version
control operations are @dfn{file-based}: each file has its own comment
-and revision history separate from that of all other files in the
-system. Later systems, beginning with Subversion, are
-@dfn{changeset-based}: a checkin may include changes to several files,
-and the entire set of changes is treated as a unit by the system. Any
-comment associated with the change does not belong to a single file,
-but to the changeset itself.
+and revision history separate from that of all other files. Newer
+systems, beginning with Subversion, are @dfn{changeset-based}: a
+checkin may include changes to several files, and the entire set of
+changes is handled as a unit. Any comment associated with the change
+does not belong to a single file, but to the changeset itself.
Changeset-based version control is more flexible and powerful than
file-based version control; usually, when a change to multiple files
has to be reversed, it's good to be able to easily identify and remove
all of it.
-@cindex centralized vs. decentralized version control
+@node VCS Repositories
+@subsubsection Decentralized vs Centralized Repositories
+
+@cindex centralized version control
+@cindex decentralized version control
Early version control systems were designed around a
@dfn{centralized} model in which each project has only one repository
used by all developers. SCCS, RCS, CVS, and Subversion share this
@@ -306,14 +306,12 @@ point for reliability and efficiency.
control, later implemented in git, Mercurial, and Bazaar. A project
may have several different repositories, and these systems support a
sort of super-merge between repositories that tries to reconcile their
-change histories. At the limit, each developer has his/her own
-repository, and repository merges replace checkin/commit operations.
+change histories. In effect, there is one repository for each
+developer, and repository merges take the place of commit operations.
- VC's job is to help you manage the traffic between your personal
-workfiles and a repository. Whether that repository is a single
-master or one of a network of peer repositories is not something VC
-has to care about. Thus, the difference between a centralized and a
-decentralized version control system is invisible to VC mode.
+ VC helps you manage the traffic between your personal workfiles and
+a repository. Whether the repository is a single master, or one of a
+network of peer repositories, is not something VC has to care about.
@node Types of Log File
@subsubsection Types of Log File
@@ -323,9 +321,9 @@ decentralized version control system is invisible to VC mode.
Projects that use a version control system can have two types of log
for changes. One is the log maintained by the version control system:
-each time you check in a change, you fill out a @dfn{log entry} for
-the change (@pxref{Log Buffer}). This is called the @dfn{version
-control log}.
+each time you commit a change, you fill out a @dfn{log entry} for the
+change (@pxref{Log Buffer}). This is called the @dfn{version control
+log}.
The other kind of log is the file @file{ChangeLog} (@pxref{Change
Log}). 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
@cindex VC, mode line indicator
When you visit a file that is under version control, Emacs indicates
-this on the mode line. For example, @samp{RCS-1.3} says that the RCS
-back end is used for that file, and the current version of the file is
-1.3.
-
- The first part of the VC mode-line indicator is the name of the back
-end: @samp{RCS}, @samp{CVS}, @samp{Bzr}, etc. The back-end name is
-followed by a single character and the version of the file.
+this on the mode line. For example, @samp{Bzr-1223} says that Bazaar
+is used for that file, and the current revision ID is 1223.
The character between the back-end name and the revision ID
-indicates the version control status of the file. @samp{-} means that
-the work file is not locked (if locking is in use), or not modified (if
-locking is not in use). @samp{:} indicates that the file is locked, or
-that it is modified. If the file is locked by some other user (for
+indicates the status of the work file. In a merge-based version
+control system, a @samp{-} character indicates that the work file is
+unmodified, and @samp{:} indicates that it has been modified.
+@samp{!} indicates that the file contains conflicts as result of a
+recent merge operation (@pxref{Merging}), or that the file was removed
+from the version control. Finally, @samp{?} means that the file is
+under version control, but is missing from the working tree.
+
+ In a lock-based system, @samp{-} indicates an unlocked file, and
+@samp{:} a locked file; if the file is locked by another user (for
instance, @samp{jim}), that is displayed as @samp{RCS:jim:1.3}.
@samp{@@} means that the file was locally added, but not yet committed
-to the master repository. @samp{!} indicates that the file contains
-conflicts as result of a recent merge operation (@pxref{Merging}), or
-that the file was removed from the version control. Finally, @samp{?}
-means that the file is under version control, but is missing from the
-working tree.
+to the master repository.
On a graphical display, you can move the mouse over this mode line
indicator to pop up a ``tool-tip'', which displays a more verbose
description of the version control status. Pressing @kbd{Mouse-1}
-over the indicator pops up a menu of VC commands. This menu is
-identical to the @samp{Tools / Version Control} menu item.
+over the indicator pops up a menu of VC commands, identical to
+@samp{Tools / Version Control} on the menu bar.
@vindex auto-revert-check-vc-info
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
version control system; if they are not, Emacs signals an error when
you attempt to execute a command on the fileset.
- Support for VC filesets and changeset-based version control systems
-is the main improvement to VC in Emacs 23. When you mark multi-file
-VC in a VC Directory buffer, VC operations treat them as a VC fileset,
-and operate on them all at once if the version control system is
-changeset-based. @xref{VC Directory Mode}.
-
VC filesets are distinct from the ``named filesets'' used for
viewing and visiting files in functional groups (@pxref{Filesets}).
Unlike named filesets, VC filesets are not named and don't persist
@@ -457,7 +446,6 @@ across sessions.
* VC With A Merging VCS:: Without locking: default mode for CVS.
* VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS.
* Advanced C-x v v:: Advanced features available with a prefix argument.
-* Log Buffer:: Features available in log entry buffers.
@end menu
@node VC With A Merging VCS
@@ -490,9 +478,9 @@ If you have not changed the work file, but some other user has checked
in changes to the repository, merge those changes into the work file.
@item
-If you have made modifications to the work file, attempts to check in
-your changes. To do this, Emacs first reads the log entry for the new
-revision (@pxref{Log Buffer}). If some other user has checked in
+If you have made modifications to the work file, attempt to commit
+the changes. To do this, Emacs first reads the log entry for the new
+revision (@pxref{Log Buffer}). If some other user has committed
changes to the repository since you last checked it out, the checkin
fails. In that case, type @kbd{C-x v v} again to merge those changes
into 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}}.
These rules also apply when you use RCS in its ``non-locking'' mode,
except that changes are not automatically merged from the repository.
-Nothing informs you if another user has checked in changes in the same
-file since you began editing it; when you check in your revision, his
+Nothing informs you if another user has committed changes in the same
+file since you began editing it; when you commit your revision, his
changes are removed (however, they remain in the repository and are
thus not irrevocably lost). Therefore, you must verify that the
current 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
can change it.
@item
-If the file is locked by you, and contains changes, check in the
+If the file is locked by you, and contains changes, commit the
changes. In order to do this, Emacs first reads the log entry for the
new revision. @xref{Log Buffer}.
@@ -544,12 +532,12 @@ locked the file, to inform him of what has happened.
@end itemize
These rules also apply when you use CVS in locking mode, except
-that there is no such thing as stealing a lock.
+that CVS does not support stealing a lock.
@node Advanced C-x v v
@subsubsection Advanced Control in @kbd{C-x v v}
-@cindex revision ID to check in/out
+@cindex revision ID in version control
When you give a prefix argument to @code{vc-next-action} (@kbd{C-u
C-x v v}), it still performs the next logical version control
operation, but accepts additional arguments to specify precisely how
@@ -558,8 +546,8 @@ to do the operation.
@itemize @bullet
@item
If the file is modified (or locked), you can specify the revision ID
-to use for the new version that you check in. This is one way
-to create a new branch (@pxref{Branches}).
+to use for the new version that you commit. This is one way to create
+a new branch (@pxref{Branches}).
@item
If the file is not modified (and unlocked), you can specify the
@@ -585,34 +573,53 @@ Features}).
@end itemize
@node Log Buffer
-@subsubsection Features of the Log Entry Buffer
+@subsection Features of the Log Entry Buffer
+
+ When you tell VC to commit a change, it pops up a buffer called
+@samp{*VC-Log*}. In this buffer, you should write a @dfn{log entry}
+describing the changes you have made (@pxref{Why Version Control?}).
+After you are done, type @kbd{C-c C-c}; this exits the buffer and
+commits the change, together with your log entry.
+
+ While in the @samp{*VC-Log*} buffer, you can write one or more
+@dfn{header lines}, specifying additional information to be supplied
+to the version control system. Each header line must occupy a single
+line at the top of the buffer; the first line that is not a header
+line is treated as the start of the log entry. For example, the
+following header line states that the present change was not written
+by you, but by another developer:
- When you check in changes, Emacs pops up a buffer called
-@samp{*VC-Log*} for you to enter a log entry.
+@smallexample
+Author: J. R. Hacker <jrh@@example.com>
+@end smallexample
- After you have finished editing the log message, type @kbd{C-c C-c}
-to exit the buffer and commit the change.
+@noindent
+Apart from the @samp{Author} header, Emacs recognizes the headers
+@samp{Date} (a manually-specified commit time) and @samp{Fixes} (a
+reference to a bug fixed by the change). Not all version control
+systems recognize all headers: Bazaar recognizes all three headers,
+while git, Mercurial, and Monotone recognizes only @samp{Author} and
+@samp{Summary}. If you specify a header for a version control that
+does not support it, the header is treated as part of the log entry.
@findex log-edit-show-files
@findex log-edit-show-diff
- In the @samp{*VC-Log*} buffer, typing @kbd{C-c C-f}
-(@code{log-edit-show-files}) displays a list of files in the VC
-fileset you are committing. If you called @kbd{C-x v v} directly from
-a work file, the VC fileset consists of that single file, so this
-command is not very useful. If you called @kbd{C-x v v} from a VC
-directory buffer, the VC fileset may consist of multiple files
-(@pxref{VC Directory Mode}).
+ Type @kbd{C-c C-f} (@code{log-edit-show-files}) to display a list of
+files in the current VC fileset. If you called @kbd{C-x v v} directly
+from a work file, the fileset consists of that single file; if you
+called @kbd{C-x v v} from a VC directory buffer (@pxref{VC Directory
+Mode}), the fileset may consist of multiple files.
@findex log-edit-insert-changelog
- Type @kbd{C-c C-d} (@code{log-edit-show-diff}) to show a ``diff'' of
-the changes you have made (i.e., the differences between the work file
-and the repository revision from which you started editing the file).
-The diff is displayed in a special buffer in another window.
-@xref{Comparing Files}.
-
- If you have written an entry in the @file{ChangeLog} (@pxref{Change
-Log}), type @kbd{C-c C-a} (@code{log-edit-insert-changelog}) to pull
-it into the @samp{*VC-Log*} buffer. If the topmost item in the
+ Type @kbd{C-c C-d} (@code{log-edit-show-diff}) to show a @dfn{diff}
+of the changes you have made (i.e., the differences between the work
+file and the repository revision from which you started editing).
+@xref{Old Revisions}.
+
+ If the current VC fileset includes one or more @file{ChangeLog}
+files (@pxref{Change Log}), type @kbd{C-c C-a}
+(@code{log-edit-insert-changelog}) to pull the relevant entries into
+the @samp{*VC-Log*} buffer. If the topmost item in each
@file{ChangeLog} was made under your user name on the current date,
this command searches that item for entries that match the file(s) to
be committed; if found, these entries are inserted.
@@ -627,7 +634,7 @@ the revision control log.
To abort a check-in, just @strong{don't} type @kbd{C-c C-c} in that
buffer. You can switch buffers and do other editing. As long as you
-don't try to check in another file, the entry you were editing remains
+don't try to commit another file, the entry you were editing remains
in the @samp{*VC-Log*} buffer, and you can go back to that buffer at
any time to complete the check-in.
@@ -636,7 +643,7 @@ convenient to specify the same log entry for many of the files. (This
is the normal way to do things on a changeset-oriented system, where
comments are attached to changesets rather than the history of
individual files.) The most convenient way to do this is to mark all
-the files in VC Directory Mode and check in from there; the log buffer
+the files in VC Directory Mode and commit from there; the log buffer
will carry the fileset information with it and do a group commit when
you type @kbd{C-c C-c}.
@@ -648,7 +655,7 @@ work just like the minibuffer history commands (except that these
versions are used outside the minibuffer).
@vindex vc-log-mode-hook
- Each time you check in a change, the log entry buffer is put into VC
+ Each time you commit a change, the log entry buffer is put into VC
Log Edit mode, which involves running two hooks: @code{text-mode-hook}
and @code{vc-log-mode-hook}. @xref{Hooks}.
@@ -700,8 +707,12 @@ buffer in a separate window.
@kbd{C-x v =} (@code{vc-diff}) compares each file in the current VC
fileset (saving them if necessary) with the repository revision(s)
from which you started editing. Note that the latter may or may not
-be the latest revision of the file(s). The diff is displayed in a
-special buffer in another window. @xref{Comparing Files}.
+be the latest revision of the file(s).
+
+ The diff is displayed in another window, in a Diff mode buffer
+(@pxref{Diff Mode}) named @file{*vc-diff*}. In this buffer, the
+@kbd{g} (@code{revert-buffer}) command performs the file comparison
+again, generating a new diff.
@findex vc-diff
@kindex C-u C-x v =
@@ -1008,7 +1019,7 @@ then decide not to change it.
@kindex C-x v c
@findex vc-rollback
- To cancel a change that you already checked in, use @kbd{C-x v c}
+ To cancel a change that you already committed, use @kbd{C-x v c}
(@code{vc-rollback}). This command discards all record of the most
recent checked-in revision, but only if your work file corresponds to
that 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:
@noindent
In this example, @samp{file1.c} is modified with respect to the
repository, and @samp{file2.c} is not. @samp{file3.c} is modified,
-but other changes have also been checked in to the repository---you
-need to merge them with the work file before you can check it in.
+but other changes have also been committed---you need to merge them
+with the work file before you can check it in.
@vindex vc-stay-local
@vindex vc-cvs-stay-local
@@ -1114,7 +1125,7 @@ this includes Version Control subdirectories such as @samp{RCS} and
VC Directory mode has a full set of navigation and marking commands
for picking out filesets. Some of these are also available in a
-context menu invoked by the @kbd{mouse-2} button.
+context menu invoked by @kbd{mouse-2}.
Up- and down-arrow keys move in the buffer; @kbd{n} and @kbd{p} also
move vertically as in other list-browsing modes. @key{SPC} and
@@ -1158,7 +1169,8 @@ directory buffer will be used.
@kbd{M-s a C-s} does an incremental search on the marked files.
- @kbd{M-s a C-M-s} does an incremental search on the marked files.
+ @kbd{M-s a C-M-s} does an incremental regular expression search
+on the marked files.
@cindex stashes in version control
@cindex shelves in version control
@@ -1174,11 +1186,11 @@ buffers. Some single-key shortcuts are available as well; @kbd{=},
@kbd{+}, @kbd{l}, @kbd{i}, and @kbd{v} behave as through prefixed with
@kbd{C-x v}.
- The command @kbd{C-x v v} (@code{vc-next-action}) operates on all the
-marked files, so that you can check in several files at once.
-If the underlying VC supports atomic commits of multiple-file
-changesets, @kbd{C-x v v} with a selected set of modified but not
-committed files will commit all of them at once as a single changeset.
+ The command @kbd{C-x v v} (@code{vc-next-action}) operates on all
+the marked files, so that you can commit several files at once. If
+the underlying VC supports atomic commits of multiple-file changesets,
+@kbd{C-x v v} with a selected set of modified but not committed files
+will commit all of them at once as a single changeset.
When @kbd{C-x v v} (@code{vc-next-action}) operates on multiple
files, all of those files must be either in the same state or in
@@ -1261,15 +1273,15 @@ other branch.
@node Creating Branches
@subsubsection Creating New Branches
- To create a new branch from a head revision (one that is the latest in
-the branch that contains it), first select that revision if necessary,
-lock it with @kbd{C-x v v}, and make whatever changes you want. Then,
-when you check in the changes, use @kbd{C-u C-x v v}. This lets you
-specify the revision ID for the new revision. You should specify a
-suitable branch ID for a branch starting at the current revision.
-For example, if the current revision is 2.5, the branch ID should be
-2.5.1, 2.5.2, and so on, depending on the number of existing branches at
-that point.
+ To create a new branch from a head revision (one that is the latest
+in the branch that contains it), first select that revision if
+necessary, lock it with @kbd{C-x v v}, and make whatever changes you
+want. Then, when you commit the changes, use @kbd{C-u C-x v v}. This
+lets you specify the revision ID for the new revision. You should
+specify a suitable branch ID for a branch starting at the current
+revision. For example, if the current revision is 2.5, the branch ID
+should be 2.5.1, 2.5.2, and so on, depending on the number of existing
+branches at that point.
To create a new branch at an older revision (one that is no longer the
head 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,
you'll be offered a chance to lock the latest revision instead. On
a merging-based VCS you will skip this step.
- Then make your changes and type @kbd{C-x v v} again to check in a new
+ Then make your changes and type @kbd{C-x v v} again to commit a new
revision. This automatically creates a new branch starting from the
-selected revision. You need not specially request a new branch, because
-that's the only way to add a new revision at a point that is not the head
-of a branch.
+selected revision. You need not specially request a new branch,
+because that's the only way to add a new revision at a point that is
+not the head of a branch.
After the branch is created, you ``stay'' on it. That means that
subsequent 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,
type @kbd{C-x v m 1.3.1 @key{RET}}. This takes the entire set of changes on
branch 1.3.1 (relative to revision 1.3, where the branch started, up to
the last revision on the branch) and merges it into the current revision
-of the work file. You can now check in the changed file, thus creating
+of the work file. You can now commit the changed file, thus creating
revision 1.6 containing the changes from the branch.
It is possible to do further editing after merging the branch, before
-the next check-in. But it is usually wiser to check in the merged
+the next check-in. But it is usually wiser to commit the merged
revision, then lock it and make the further changes. This will keep
a better record of the history of changes.
@@ -1374,7 +1386,7 @@ master file revision with user B's changes in it is 1.11.
Then you can resolve the conflicts by editing the file manually. Or
you can type @code{M-x vc-resolve-conflicts} after visiting the file.
This starts an Ediff session, as described above. Don't forget to
-check in the merged version afterwards.
+commit the merged version afterwards.
@node Multi-User Branching
@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.
* Text and Binary:: Text files use CRLF to terminate lines.
* Windows Files:: File-name conventions on Windows.
* ls in Lisp:: Emulation of @code{ls} for Dired.
-* Windows HOME:: Where Emacs looks for your @file{.emacs}.
+* Windows HOME:: Where Emacs looks for your @file{.emacs} and
+ where it starts up.
* Windows Keyboard:: Windows-specific keyboard features.
* Windows Mouse:: Windows-specific mouse features.
* Windows Processes:: Running subprocesses on Windows.
@@ -284,11 +285,12 @@ on Windows, since many users of Emacs on those platforms prefer the
@end table
@noindent
-Any other value of @code{ls-lisp-emulation} means the same as
-@code{GNU}. Note that this option needs to be set @emph{before}
-@file{ls-lisp.el} is loaded, which means that on MS-Windows and MS-DOS
-you will have to set the value from your @file{.emacs} file and then
-restart Emacs, since @file{ls-lisp.el} is preloaded.
+Any other value of @code{ls-lisp-emulation} means the same as @code{GNU}.
+Customizing this option calls the function @code{ls-lisp-set-options} to
+update the 3 dependent options as needed. If you change the value of
+this variable without using customize after @file{ls-lisp.el} is loaded
+(note that it is preloaded on MS-Windows and MS-DOS), you can call that
+function manually for the same result.
@vindex ls-lisp-support-shell-wildcards
The variable @code{ls-lisp-support-shell-wildcards} controls how
@@ -329,7 +331,7 @@ names, which might cause misalignment of columns in Dired display.
@end ifnottex
@node Windows HOME
-@section HOME Directory on MS-Windows
+@section HOME and Startup Directories on MS-Windows
@cindex @code{HOME} directory on MS-Windows
The Windows equivalent of the @code{HOME} directory is the
@@ -371,6 +373,13 @@ names, the Windows port of Emacs supports an alternative name
@file{_emacs} as a fallback, if such a file exists in the home
directory, whereas @file{.emacs} does not.
+@cindex start directory, MS-Windows
+@cindex directory where Emacs starts on MS-Windows
+ If you use a Windows desktop shortcut to start Emacs, it starts in
+the directory specified by the shortcut. To control where that is,
+right-click on the shortcut, select ``Properties'', and in the
+``Shortcut'' tab modify the ``Start in'' field to your liking.
+
@node Windows Keyboard
@section Keyboard Usage on MS-Windows
@cindex keyboard, MS-Windows
@@ -917,6 +926,3 @@ click-to-focus policy.
@include msdog-xtra.texi
@end ifnottex
-@ignore
- arch-tag: f39d2590-5dcc-4318-88d9-0eb73ca10fa2
-@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).
@cindex Intlfonts package, installation
To display the script(s) used by your language environment on a
graphical display, you need to have a suitable font. If some of the
-characters appear as empty boxes, you should install the GNU Intlfonts
-package, which includes fonts for most supported scripts.@footnote{If
-you run Emacs on X, you need to inform the X server about the location
-of the newly installed fonts with the following commands:
+characters appear as empty boxes or hex codes, you should install the
+GNU Intlfonts package, which includes fonts for most supported
+scripts.@footnote{If you run Emacs on X, you need to inform the X
+server about the location of the newly installed fonts with the
+following commands:
@example
xset fp+ /usr/local/share/emacs/fonts
@@ -1314,10 +1315,11 @@ characters the font does not cover. The standard fontset is only used if
explicitly requested, despite its name.
A fontset does not necessarily specify a font for every character
-code. If a fontset specifies no font for a certain character, or if it
-specifies a font that does not exist on your system, then it cannot
-display that character properly. It will display that character as an
-empty box instead.
+code. If a fontset specifies no font for a certain character, or if
+it specifies a font that does not exist on your system, then it cannot
+display that character properly. It will display that character as a
+hex code or thin space or an empty box instead. (@xref{Text Display, ,
+glyphless characters}, for details.)
@node Defining Fontsets
@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
example, a misconfigured mailer could send a message with a
@samp{charset=iso-8859-1} header when the message is actually encoded
in @code{koi8-r}. When you see the message text garbled, or some of
-its characters displayed as empty boxes, this may have happened.
+its characters displayed as hex codes or empty boxes, this may have
+happened.
@findex rmail-redecode-body
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.
@vindex vc-handled-backends
The variable @code{vc-handled-backends} determines which version
control systems VC should handle. The default value is @code{(RCS CVS
-SVN SCCS BZR GIT HG Arch)}, so it contains all the version systems
+SVN SCCS Bzr Git Hg Mtn Arch)}, so it contains all the version systems
that are currently supported. If you want VC to ignore one or more of
these systems, exclude its name from the list. To disable VC entirely,
set this variable to @code{nil}.
@@ -657,8 +657,8 @@ variable does not affect @kbd{C-x v c}; that operation is so drastic
that it should always ask for confirmation.)
@vindex vc-command-messages
- VC mode does much of its work by running the shell commands for RCS,
-CVS and SCCS. If @code{vc-command-messages} is non-@code{nil}, VC
+ VC mode does much of its work by running the shell commands for the
+appropriate backend. If @code{vc-command-messages} is non-@code{nil}, VC
displays messages to indicate which shell commands it runs, and
additional messages when the commands finish.
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 @@
+2010-11-13 Glenn Morris <rgm@gnu.org>
+
+ * emacs-lisp-intro.texi: Rename the `count-words-region' example,
+ since there is now a standard command of that name.
+
2010-10-11 Glenn Morris <rgm@gnu.org>
* 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
* fwd-para while:: The forward motion @code{while} loop.
Counting: Repetition and Regexps
+@set COUNT-WORDS count-words-example
+@c Length of variable name chosen so that things still line up when expanded.
* Why Count Words::
-* count-words-region:: Use a regexp, but find a problem.
+* @value{COUNT-WORDS}:: Use a regexp, but find a problem.
* recursive-count-words:: Start with case of no words in region.
* Counting Exercise::
-The @code{count-words-region} Function
+The @code{@value{COUNT-WORDS}} Function
-* Design count-words-region:: The definition using a @code{while} loop.
-* Whitespace Bug:: The Whitespace Bug in @code{count-words-region}.
+* Design @value{COUNT-WORDS}:: The definition using a @code{while} loop.
+* Whitespace Bug:: The Whitespace Bug in @code{@value{COUNT-WORDS}}.
Counting Words in a @code{defun}
* Divide and Conquer::
* Words and Symbols:: What to count?
* Syntax:: What constitutes a word or symbol?
-* count-words-in-defun:: Very like @code{count-words}.
+* count-words-in-defun:: Very like @code{@value{COUNT-WORDS}}.
* Several defuns:: Counting several defuns in a file.
* Find a File:: Do you want to look at a file?
* lengths-list-file:: A list of the lengths of many definitions.
@@ -13829,35 +13831,37 @@ word count commands using @code{while} loops and recursion.
@menu
* Why Count Words::
-* count-words-region:: Use a regexp, but find a problem.
+* @value{COUNT-WORDS}:: Use a regexp, but find a problem.
* recursive-count-words:: Start with case of no words in region.
* Counting Exercise::
@end menu
-@node Why Count Words, count-words-region, Counting Words, Counting Words
+@node Why Count Words, @value{COUNT-WORDS}, Counting Words, Counting Words
@ifnottex
@unnumberedsec Counting words
@end ifnottex
-The standard Emacs distribution contains a function for counting the
-number of lines within a region. However, there is no corresponding
-function for counting words.
+The standard Emacs distribution contains functions for counting the
+number of lines and words within a region.
Certain types of writing ask you to count words. Thus, if you write
an essay, you may be limited to 800 words; if you write a novel, you
-may discipline yourself to write 1000 words a day. It seems odd to me
-that Emacs lacks a word count command. Perhaps people use Emacs
-mostly for code or types of documentation that do not require word
-counts; or perhaps they restrict themselves to the operating system
-word count command, @code{wc}. Alternatively, people may follow
-the publishers' convention and compute a word count by dividing the
-number of characters in a document by five. In any event, here are
-commands to count words.
-
-@node count-words-region, recursive-count-words, Why Count Words, Counting Words
+may discipline yourself to write 1000 words a day. It seems odd, but
+for a long time, Emacs lacked a word count command. Perhaps people used
+Emacs mostly for code or types of documentation that did not require
+word counts; or perhaps they restricted themselves to the operating
+system word count command, @code{wc}. Alternatively, people may have
+followed the publishers' convention and computed a word count by
+dividing the number of characters in a document by five.
+
+There are many ways to implement a command to count words. Here are
+some examples, which you may wish to compare with the standard Emacs
+command, @code{count-words-region}.
+
+@node @value{COUNT-WORDS}, recursive-count-words, Why Count Words, Counting Words
@comment node-name, next, previous, up
-@section The @code{count-words-region} Function
-@findex count-words-region
+@section The @code{@value{COUNT-WORDS}} Function
+@findex @value{COUNT-WORDS}
A word count command could count words in a line, paragraph, region,
or 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,
the Emacs tradition encourages flexibility---you may want to count
words in just a section, rather than all of a buffer. So it makes
more sense to design the command to count the number of words in a
-region. Once you have a @code{count-words-region} command, you can,
+region. Once you have a command to count words in a region, you can,
if you wish, count words in a whole buffer by marking it with
@w{@kbd{C-x h}} (@code{mark-whole-buffer}).
@@ -13876,13 +13880,13 @@ region. This means that word counting is ideally suited to recursion
or to a @code{while} loop.
@menu
-* Design count-words-region:: The definition using a @code{while} loop.
-* Whitespace Bug:: The Whitespace Bug in @code{count-words-region}.
+* Design @value{COUNT-WORDS}:: The definition using a @code{while} loop.
+* Whitespace Bug:: The Whitespace Bug in @code{@value{COUNT-WORDS}}.
@end menu
-@node Design count-words-region, Whitespace Bug, count-words-region, count-words-region
+@node Design @value{COUNT-WORDS}, Whitespace Bug, @value{COUNT-WORDS}, @value{COUNT-WORDS}
@ifnottex
-@unnumberedsubsec Designing @code{count-words-region}
+@unnumberedsubsec Designing @code{@value{COUNT-WORDS}}
@end ifnottex
First, 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.
The name of the function should be self-explanatory and similar to the
existing @code{count-lines-region} name. This makes the name easier
-to remember. @code{count-words-region} is a good choice.
+to remember. @code{count-words-region} is the obvious choice. Since
+that name is now used for the standard Emacs command to count words, we
+will name our implementation @code{@value{COUNT-WORDS}}.
The function counts words within a region. This means that the
argument 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
count words, second, to run the @code{while} loop, and third, to send
a message to the user.
-When a user calls @code{count-words-region}, point may be at the
+When a user calls @code{@value{COUNT-WORDS}}, point may be at the
beginning or the end of the region. However, the counting process
must start at the beginning of the region. This means we will want
to put point there if it is not already there. Executing
@@ -14015,7 +14021,7 @@ All this leads to the following function definition:
@smallexample
@group
;;; @r{First version; has bugs!}
-(defun count-words-region (beginning end)
+(defun @value{COUNT-WORDS} (beginning end)
"Print number of words in the region.
Words are defined as at least one word-constituent
character followed by at least one character that
@@ -14056,14 +14062,14 @@ table determines which characters these are."
@noindent
As written, the function works, but not in all circumstances.
-@node Whitespace Bug, , Design count-words-region, count-words-region
+@node Whitespace Bug, , Design @value{COUNT-WORDS}, @value{COUNT-WORDS}
@comment node-name, next, previous, up
-@subsection The Whitespace Bug in @code{count-words-region}
+@subsection The Whitespace Bug in @code{@value{COUNT-WORDS}}
-The @code{count-words-region} command described in the preceding
+The @code{@value{COUNT-WORDS}} command described in the preceding
section has two bugs, or rather, one bug with two manifestations.
First, if you mark a region containing only whitespace in the middle
-of some text, the @code{count-words-region} command tells you that the
+of some text, the @code{@value{COUNT-WORDS}} command tells you that the
region contains one word! Second, if you mark a region containing
only whitespace at the end of the buffer or the accessible portion of
a 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.
@smallexample
@group
;; @r{First version; has bugs!}
-(defun count-words-region (beginning end)
+(defun @value{COUNT-WORDS} (beginning end)
"Print number of words in the region.
Words are defined as at least one word-constituent character followed
by at least one character that is not a word-constituent. The buffer's
@@ -14123,12 +14129,12 @@ syntax table determines which characters these are."
If you wish, you can also install this keybinding by evaluating it:
@smallexample
-(global-set-key "\C-c=" 'count-words-region)
+(global-set-key "\C-c=" '@value{COUNT-WORDS})
@end smallexample
To conduct the first test, set mark and point to the beginning and end
of the following line and then type @kbd{C-c =} (or @kbd{M-x
-count-words-region} if you have not bound @kbd{C-c =}):
+@value{COUNT-WORDS}} if you have not bound @kbd{C-c =}):
@smallexample
one two three
@@ -14139,7 +14145,7 @@ Emacs will tell you, correctly, that the region has three words.
Repeat the test, but place mark at the beginning of the line and place
point just @emph{before} the word @samp{one}. Again type the command
-@kbd{C-c =} (or @kbd{M-x count-words-region}). Emacs should tell you
+@kbd{C-c =} (or @kbd{M-x @value{COUNT-WORDS}}). Emacs should tell you
that the region has no words, since it is composed only of the
whitespace at the beginning of the line. But instead Emacs tells you
that the region has one word!
@@ -14148,7 +14154,7 @@ For the third test, copy the sample line to the end of the
@file{*scratch*} buffer and then type several spaces at the end of the
line. Place mark right after the word @samp{three} and point at the
end of line. (The end of the line will be the end of the buffer.)
-Type @kbd{C-c =} (or @kbd{M-x count-words-region}) as you did before.
+Type @kbd{C-c =} (or @kbd{M-x @value{COUNT-WORDS}}) as you did before.
Again, Emacs should tell you that the region has no words, since it is
composed only of the whitespace at the end of the line. Instead,
Emacs displays an error message saying @samp{Search failed}.
@@ -14157,7 +14163,7 @@ The two bugs stem from the same problem.
Consider the first manifestation of the bug, in which the command
tells you that the whitespace at the beginning of the line contains
-one word. What happens is this: The @code{M-x count-words-region}
+one word. What happens is this: The @code{M-x @value{COUNT-WORDS}}
command moves point to the beginning of the region. The @code{while}
tests whether the value of point is smaller than the value of
@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
repeat count. (In Emacs, you can see a function's documentation by
typing @kbd{C-h f}, the name of the function, and then @key{RET}.)
-In the @code{count-words-region} definition, the value of the end of
+In the @code{@value{COUNT-WORDS}} definition, the value of the end of
the region is held by the variable @code{end} which is passed as an
argument to the function. Thus, we can add @code{end} as an argument
to the regular expression search expression:
@@ -14200,7 +14206,7 @@ to the regular expression search expression:
(re-search-forward "\\w+\\W*" end)
@end smallexample
-However, if you make only this change to the @code{count-words-region}
+However, if you make only this change to the @code{@value{COUNT-WORDS}}
definition and then test the new version of the definition on a
stretch of whitespace, you will receive an error message saying
@samp{Search failed}.
@@ -14231,7 +14237,7 @@ true-or-false-test tests true because the value of point is still less
than the value of end, since the @code{re-search-forward} expression
did not move point. @dots{} and the cycle repeats @dots{}
-The @code{count-words-region} definition requires yet another
+The @code{@value{COUNT-WORDS}} definition requires yet another
modification, to cause the true-or-false-test of the @code{while} loop
to test false if the search fails. Put another way, there are two
conditions 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
found, point is moved through the region. When the search expression
fails to find another word, or when point reaches the end of the
region, the true-or-false-test tests false, the @code{while} loop
-exits, and the @code{count-words-region} function displays one or
+exits, and the @code{@value{COUNT-WORDS}} function displays one or
other of its messages.
-After incorporating these final changes, the @code{count-words-region}
+After incorporating these final changes, the @code{@value{COUNT-WORDS}}
works without bugs (or at least, without bugs that I have found!).
Here is what it looks like:
@smallexample
@group
;;; @r{Final version:} @code{while}
-(defun count-words-region (beginning end)
+(defun @value{COUNT-WORDS} (beginning end)
"Print number of words in the region."
(interactive "r")
(message "Counting words in region ... ")
@@ -14309,7 +14315,7 @@ Here is what it looks like:
@end group
@end smallexample
-@node recursive-count-words, Counting Exercise, count-words-region, Counting Words
+@node recursive-count-words, Counting Exercise, @value{COUNT-WORDS}, Counting Words
@comment node-name, next, previous, up
@section Count Words Recursively
@cindex Count words recursively
@@ -14319,7 +14325,7 @@ Here is what it looks like:
You can write the function for counting words recursively as well as
with a @code{while} loop. Let's see how this is done.
-First, we need to recognize that the @code{count-words-region}
+First, we need to recognize that the @code{@value{COUNT-WORDS}}
function has three jobs: it sets up the appropriate conditions for
counting to occur; it counts the words in the region; and it sends a
message to the user telling how many words there are.
@@ -14333,7 +14339,7 @@ other. One function will set up the conditions and display the
message; the other will return the word count.
Let us start with the function that causes the message to be displayed.
-We can continue to call this @code{count-words-region}.
+We can continue to call this @code{@value{COUNT-WORDS}}.
This is the function that the user will call. It will be interactive.
Indeed, it will be similar to our previous versions of this
@@ -14347,7 +14353,7 @@ previous versions:
@smallexample
@group
;; @r{Recursive version; uses regular expression search}
-(defun count-words-region (beginning end)
+(defun @value{COUNT-WORDS} (beginning end)
"@var{documentation}@dots{}"
(@var{interactive-expression}@dots{})
@end group
@@ -14388,7 +14394,7 @@ Using @code{let}, the function definition looks like this:
@smallexample
@group
-(defun count-words-region (beginning end)
+(defun @value{COUNT-WORDS} (beginning end)
"Print number of words in the region."
(interactive "r")
@end group
@@ -14484,7 +14490,7 @@ Thus, the do-again-test should look like this:
Note that the search expression is part of the do-again-test---the
function returns @code{t} if its search succeeds and @code{nil} if it
fails. (@xref{Whitespace Bug, , The Whitespace Bug in
-@code{count-words-region}}, for an explanation of how
+@code{@value{COUNT-WORDS}}}, for an explanation of how
@code{re-search-forward} works.)
The do-again-test is the true-or-false test of an @code{if} clause.
@@ -14657,7 +14663,7 @@ The wrapper:
@smallexample
@group
;;; @r{Recursive version}
-(defun count-words-region (beginning end)
+(defun @value{COUNT-WORDS} (beginning end)
"Print number of words in the region.
@end group
@@ -14702,11 +14708,11 @@ exclamation mark, and question mark. Do the same using recursion.
Our next project is to count the number of words in a function
definition. Clearly, this can be done using some variant of
-@code{count-word-region}. @xref{Counting Words, , Counting Words:
+@code{@value{COUNT-WORDS}}. @xref{Counting Words, , Counting Words:
Repetition and Regexps}. If we are just going to count the words in
one definition, it is easy enough to mark the definition with the
@kbd{C-M-h} (@code{mark-defun}) command, and then call
-@code{count-word-region}.
+@code{@value{COUNT-WORDS}}.
However, I am more ambitious: I want to count the words and symbols in
every definition in the Emacs sources and then print a graph that
@@ -14719,7 +14725,7 @@ and this will tell.
* Divide and Conquer::
* Words and Symbols:: What to count?
* Syntax:: What constitutes a word or symbol?
-* count-words-in-defun:: Very like @code{count-words}.
+* count-words-in-defun:: Very like @code{@value{COUNT-WORDS}}.
* Several defuns:: Counting several defuns in a file.
* Find a File:: Do you want to look at a file?
* lengths-list-file:: A list of the lengths of many definitions.
@@ -14793,11 +14799,11 @@ of ten words and symbols.
@noindent
However, if we mark the @code{multiply-by-seven} definition with
@kbd{C-M-h} (@code{mark-defun}), and then call
-@code{count-words-region} on it, we will find that
-@code{count-words-region} claims the definition has eleven words, not
+@code{@value{COUNT-WORDS}} on it, we will find that
+@code{@value{COUNT-WORDS}} claims the definition has eleven words, not
ten! Something is wrong!
-The problem is twofold: @code{count-words-region} does not count the
+The problem is twofold: @code{@value{COUNT-WORDS}} does not count the
@samp{*} as a word, and it counts the single symbol,
@code{multiply-by-seven}, as containing three words. The hyphens are
treated 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
@samp{multiply by seven}.
The cause of this confusion is the regular expression search within
-the @code{count-words-region} definition that moves point forward word
-by word. In the canonical version of @code{count-words-region}, the
+the @code{@value{COUNT-WORDS}} definition that moves point forward word
+by word. In the canonical version of @code{@value{COUNT-WORDS}}, the
regexp is:
@smallexample
@@ -14839,8 +14845,8 @@ Syntax tables specify which characters belong to which categories.
Usually, a hyphen is not specified as a `word constituent character'.
Instead, it is specified as being in the `class of characters that are
part of symbol names but not words.' This means that the
-@code{count-words-region} function treats it in the same way it treats
-an interword white space, which is why @code{count-words-region}
+@code{@value{COUNT-WORDS}} function treats it in the same way it treats
+an interword white space, which is why @code{@value{COUNT-WORDS}}
counts @samp{multiply-by-seven} as three words.
There 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
constituent character; there are others, too.
Alternatively, we can redefine the regular expression used in the
-@code{count-words} definition so as to include symbols. This
+@code{@value{COUNT-WORDS}} definition so as to include symbols. This
procedure has the merit of clarity, but the task is a little tricky.
@need 1200
@@ -14910,7 +14916,7 @@ Here is the full regular expression:
@cindex Counting words in a @code{defun}
We have seen that there are several ways to write a
-@code{count-word-region} function. To write a
+@code{count-words-region} function. To write a
@code{count-words-in-defun}, we need merely adapt one of these
versions.
@@ -15044,7 +15050,7 @@ Put together, the @code{count-words-in-defun} definition looks like this:
How to test this? The function is not interactive, but it is easy to
put a wrapper around the function to make it interactive; we can use
almost the same code as for the recursive version of
-@code{count-words-region}:
+@code{@value{COUNT-WORDS}}:
@smallexample
@group
@@ -18885,7 +18891,7 @@ Lisp Reference Manual}.
@itemize @bullet
@item
-Install the @code{count-words-region} function and then cause it to
+Install the @code{@value{COUNT-WORDS}} function and then cause it to
enter the built-in debugger when you call it. Run the command on a
region containing two words. You will need to press @kbd{d} a
remarkable 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
Manual}.)
@item
-Copy @code{count-words-region} into the @file{*scratch*} buffer,
+Copy @code{@value{COUNT-WORDS}} into the @file{*scratch*} buffer,
instrument the function for Edebug, and walk through its execution.
The function does not need to have a bug, although you can introduce
one 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.)
@item
In the Edebug debugging buffer, use the @kbd{p}
(@code{edebug-bounce-point}) command to see where in the region the
-@code{count-words-region} is working.
+@code{@value{COUNT-WORDS}} is working.
@item
Move point to some spot further down the function and then type the
@@ -22272,6 +22278,3 @@ airplane.
@bye
-@ignore
- arch-tag: da1a2154-531f-43a8-8e33-fc7faad10acf
-@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 @@
+2010-12-08 Glenn Morris <rgm@gnu.org>
+
+ * buffers.texi (Modification Time):
+ verify-visited-file-modtime now defaults to the current buffer.
+
+2010-11-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * nonascii.texi (Converting Representations): Document byte-to-string.
+
+ * strings.texi (Creating Strings): Don't mention semi-obsolete
+ function char-to-string.
+ (String Conversion): Shorten discussion of semi-obsolete function
+ string-to-char. Link to Converting Representations.
+
+ * objects.texi (Symbol Type):
+ * text.texi (Near Point):
+ * help.texi (Help Functions):
+ * functions.texi (Mapping Functions): Use string instead of
+ char-to-string in examples.
+
+2010-11-27 Chong Yidong <cyd@stupidchicken.com>
+
+ * text.texi (Kill Functions, Kill Functions)
+ (Low-Level Kill Ring, Low-Level Kill Ring): Remove obsolete
+ YANK-HANDLER args.
+
+ * symbols.texi (Creating Symbols): Using unintern without an
+ obarray arg is now obsolete.
+
+ * numbers.texi (Float Basics): Document float-e and float-pi.
+
+ * variables.texi (Defining Variables): Change "pi" example to
+ "float-pi".
+
+2010-11-26 Eli Zaretskii <eliz@gnu.org>
+
+ * commands.texi (Click Events): Document the values of X, Y and
+ COL, ROW in the event's position, when the click is on the header
+ or mode line, on the fringes, or in the margins.
+
+2010-11-17 Eli Zaretskii <eliz@gnu.org>
+
+ * customize.texi (Composite Types): Lower-case index entry.
+
+ * loading.texi (How Programs Do Loading): Document
+ load-file-name. (Bug#7346)
+
+2010-11-17 Glenn Morris <rgm@gnu.org>
+
+ * text.texi (Kill Functions, Low-Level Kill Ring): Small fixes.
+
+2010-11-13 Eli Zaretskii <eliz@gnu.org>
+
+ * display.texi (Usual Display): Characters with no fonts are not
+ necessarily displayed as empty boxes.
+
+2010-10-31 Glenn Morris <rgm@gnu.org>
+
+ * maps.texi (Standard Keymaps): Update File menu description.
+
+2010-10-28 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (elisp.dvi, elisp.pdf): Also include $emacsdir.
+
+2010-10-24 Eli Zaretskii <eliz@gnu.org>
+
+ * display.texi (Window Systems): Deprecate use of window-system as
+ a predicate.
+
+2010-10-23 Glenn Morris <rgm@gnu.org>
+
+ * help.texi (Documentation Basics): Remove mentions of digest-doc and
+ sorted-doc.
+
2010-10-15 Eli Zaretskii <eliz@gnu.org>
* 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)
$(MAKEINFO) -o $@ $<
elisp.dvi: $(srcs)
- $(TEXI2DVI) -I $(srcdir) -I $(texinfodir) $<
+ $(TEXI2DVI) -I $(srcdir) -I $(texinfodir) -I $(emacsdir) $<
elisp.html: $(srcs)
$(MAKEINFO) --html -o $@ $<
@@ -118,7 +118,7 @@ elisp.ps: elisp.dvi
$(DVIPS) -o $@ $<
elisp.pdf: $(srcs)
- $(TEXI2PDF) -I $(srcdir) -I $(texinfodir) $<
+ $(TEXI2PDF) -I $(srcdir) -I $(texinfodir) -I $(emacsdir) $<
.PHONY: mostlyclean clean distclean maintainer-clean infoclean
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 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
-@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/buffers
@node Buffers, Windows, Backups and Auto-Saving, Top
@@ -594,12 +595,12 @@ therefore checks the file's modification time using the functions
described below before saving the file. (@xref{File Attributes},
for how to examine a file's modification time.)
-@defun verify-visited-file-modtime buffer
-This function compares what @var{buffer} has recorded for the
-modification time of its visited file against the actual modification
-time of the file as recorded by the operating system. The two should be
-the same unless some other process has written the file since Emacs
-visited or saved it.
+@defun verify-visited-file-modtime &optional buffer
+This function compares what @var{buffer} (by default, the
+current-buffer) has recorded for the modification time of its visited
+file against the actual modification time of the file as recorded by the
+operating system. The two should be the same unless some other process
+has written the file since Emacs visited or saved it.
The function returns @code{t} if the last actual modification time and
Emacs'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.
This function returns the current gap size of the current buffer.
@end defun
-@ignore
- arch-tag: 2e53cfab-5691-41f6-b5a8-9c6a3462399c
-@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}.
@item @var{x}, @var{y}
These are the pixel coordinates of the click, relative to
the top left corner of @var{window}, which is @code{(0 . 0)}.
-For the mode or header line, @var{y} does not have meaningful data.
-For the vertical line, @var{x} does not have meaningful data.
+For a click on text, these are relative to the top left corner of
+the window's text area. For the mode or header line, they are
+relative to the top left window edge. For fringes, margins, and the
+vertical border, @var{x} does not have meaningful data. For fringes
+and margins, @var{y} is relative to the bottom edge of the header
+line.
@item @var{timestamp}
This is the time at which the event occurred, in milliseconds.
@@ -1316,7 +1320,12 @@ the window.
@item @var{col}, @var{row}
These are the actual coordinates of the glyph under the @var{x},
@var{y} position, possibly padded with default character width
-glyphs if @var{x} is beyond the last glyph on the line.
+glyphs if @var{x} is beyond the last glyph on the line. For clicks on
+the header or mode line, these are measured from the top left edge of
+the header or mode line. For clicks on the fringes and on the
+vertical border, these have no meaningful data. For clicks on the
+margins, @var{col} is measured from the left edge of the margin area
+and @var{row} is measured from the top of the margin area.
@item @var{image}
This is the image object on which the click occurred. It is either
@@ -1333,7 +1342,7 @@ left corner of the character glyph clicked on.
These are the pixel width and height of @var{object} or, if this is
@code{nil}, those of the character glyph clicked on.
@end table
-
+
@sp 1
For mouse clicks on a scroll-bar, @var{position} has this form:
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
@node Composite Types
@subsection Composite Types
-@cindex Composite Types (customization)
+@cindex composite types (customization)
When none of the simple types is appropriate, you can use composite
types, 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
table can specify a glyph to use instead of @samp{\}.)
@item
-Multibyte character codes above 256 are displayed as themselves, or as a
-question mark or empty box if the terminal cannot display that
-character.
+Multibyte character codes above 256 are displayed as themselves, or as
+a question mark or a hex code or an empty box if the terminal cannot
+display that character.
@end itemize
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
one documented for the variable @code{window-system} above.
@end defun
+ Do @emph{not} use @code{window-system} and
+@code{initial-window-system} as predicates or boolean flag variables,
+if you want to write code that works differently on text terminals and
+graphic displays. That is because @code{window-system} is not a good
+indicator of Emacs capabilities on a given display type. Instead, use
+@code{display-graphic-p} or any of the other @code{display-*-p}
+predicates described in @ref{Display Feature Testing}.
+
@defvar window-setup-hook
This variable is a normal hook which Emacs runs after handling the
initialization 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
value is not significant.
@end defun
+@defun frame-pointer-visible-p &optional frame
+This predicate function returns non-@code{nil} if the mouse pointer
+displayed on @var{frame} is visible; otherwise it returns @code{nil}.
+@var{frame} omitted or @code{nil} means the selected frame. This is
+useful when @code{make-pointer-invisible} is set to @code{t}: it
+allows to know if the pointer has been hidden.
+@xref{Mouse Avoidance,,,emacs}.
+@end defun
+
@need 3000
@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:
@result{} (a c e)
(mapcar '1+ [1 2 3])
@result{} (2 3 4)
-(mapcar 'char-to-string "abc")
+(mapcar 'string "abc")
@result{} ("a" "b" "c")
@end group
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 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
-@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/help
@node Documentation, Files, Modes, Top
@@ -106,12 +107,6 @@ documentation string. The functions @code{documentation} and
documentation string from the appropriate file; this is transparent to
the user.
-@c Wordy to prevent overfull hbox. --rjc 15mar92
- The @file{emacs/lib-src} directory contains two utilities that you can
-use to print nice-looking hardcopy for the file
-@file{emacs/etc/DOC-@var{version}}. These are @file{sorted-doc} and
-@file{digest-doc}.
-
@node Accessing Documentation
@section Access to Documentation Strings
@@ -551,7 +546,7 @@ follows:
@smallexample
@group
-(define-key global-map (char-to-string help-char) 'help-command)
+(define-key global-map (string help-char) 'help-command)
(fset 'help-command help-map)
@end group
@end smallexample
@@ -701,6 +696,3 @@ echo area at first, and display the longer @var{help-text} strings only
if the user types the help character again.
@end defopt
-@ignore
- arch-tag: ba36b4c2-e60f-49e2-bc25-61158fdcd815
-@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.
@code{load-path}, then all three suffixes in the second directory, and
so on. @xref{Library Search}.
+Whatever the name under which the file is eventually found, and the
+directory where Emacs found it, Emacs sets the value of the variable
+@code{load-file-name} to that file's name.
+
If you get a warning that @file{foo.elc} is older than @file{foo.el}, it
means you should consider recompiling @file{foo.el}. @xref{Byte
Compilation}.
@@ -157,6 +161,12 @@ This variable is non-@code{nil} if Emacs is in the process of loading a
file, and it is @code{nil} otherwise.
@end defvar
+@defvar load-file-name
+When Emacs is in the process of loading a file, this variable's value
+is the name of that file, as Emacs found it during the search
+described earlier in this section.
+@end defvar
+
@defvar load-read-function
@anchor{Definition of load-read-function}
@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 @@
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990, 1991, 1992, 1993, 1999, 2001, 2002, 2003, 2004,
-@c 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c 2005, 2006, 2007, 2008, 2009, 2010
+@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@setfilename ../../info/maps
@node Standard Keymaps, Standard Hooks, Standard Buffer-Local Variables, Top
@@ -183,9 +184,9 @@ A sparse keymap used by Lisp mode.
@vindex menu-bar-edit-menu
The keymap which displays the Edit menu in the menu bar.
-@item menu-bar-files-menu
-@vindex menu-bar-files-menu
-The keymap which displays the Files menu in the menu bar.
+@item menu-bar-file-menu
+@vindex menu-bar-file-menu
+The keymap which displays the File menu in the menu bar.
@item menu-bar-help-menu
@vindex menu-bar-help-menu
@@ -239,6 +240,3 @@ The keymap defining the contents of the tool bar.
A full keymap used by View mode.
@end table
-@ignore
- arch-tag: b741253c-7e23-4a02-b3fa-cffd9e4d72b9
-@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
characters.
@end defun
+@defun byte-to-string byte
+@cindex byte to string
+This function returns a unibyte string containing a single byte of
+character data, @var{character}. It signals a error if
+@var{character} is not an integer between 0 and 255.
+@end defun
+
@defun multibyte-char-to-unibyte char
This converts the multibyte character @var{char} to a unibyte
character, 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.
@end example
@end defun
+@defvar float-e
+The mathematical constant @math{e} (2.71828@dots{}).
+@end defvar
+
+@defvar float-pi
+The mathematical constant @math{pi} (3.14159@dots{}).
+@end defvar
+
@node Predicates on Numbers
@section Type Predicates for Numbers
@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.
@group
foo ; @r{A symbol named @samp{foo}.}
FOO ; @r{A symbol named @samp{FOO}, different from @samp{foo}.}
-char-to-string ; @r{A symbol named @samp{char-to-string}.}
@end group
@group
1+ ; @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
@result{} ""
@end example
- Other functions to compare with this one include @code{char-to-string}
-(@pxref{String Conversion}), @code{make-vector} (@pxref{Vectors}), and
-@code{make-list} (@pxref{Building Lists}).
+ Other functions to compare with this one include @code{make-vector}
+(@pxref{Vectors}) and @code{make-list} (@pxref{Building Lists}).
@end defun
@defun string &rest characters
@@ -565,38 +564,6 @@ of text characters and general input events
(@code{single-key-description} and @code{text-char-description}). These
are used primarily for making help messages.
-@defun char-to-string character
-@cindex character to string
-This function returns a new string containing one character,
-@var{character}. This function is semi-obsolete because the function
-@code{string} is more general. @xref{Creating Strings}.
-@end defun
-
-@defun string-to-char string
-@cindex string to character
- This function returns the first character in @var{string}. If the
-string is empty, the function returns 0. The value is also 0 when the
-first character of @var{string} is the null character, @acronym{ASCII} code
-0.
-
-@example
-(string-to-char "ABC")
- @result{} 65
-
-(string-to-char "xyz")
- @result{} 120
-(string-to-char "")
- @result{} 0
-@group
-(string-to-char "\000")
- @result{} 0
-@end group
-@end example
-
-This function may be eliminated in the future if it does not seem useful
-enough to retain.
-@end defun
-
@defun number-to-string number
@cindex integer to string
@cindex integer to decimal
@@ -659,19 +626,39 @@ this function returns 0.
@code{string-to-int} is an obsolete alias for this function.
@end defun
+@defun char-to-string character
+@cindex character to string
+This function returns a new string containing one character,
+@var{character}. This function is semi-obsolete because the function
+@code{string} is more general. @xref{Creating Strings}.
+@end defun
+
+@defun string-to-char string
+ This function returns the first character in @var{string}. This
+mostly identical to @code{(aref string 0)}, except that it returns 0
+if the string is empty. (The value is also 0 when the first character
+of @var{string} is the null character, @acronym{ASCII} code 0.) This
+function may be eliminated in the future if it does not seem useful
+enough to retain.
+@end defun
+
Here are some other functions that can convert to or from a string:
@table @code
@item concat
-@code{concat} can convert a vector or a list into a string.
+This function converts a vector or a list into a string.
@xref{Creating Strings}.
@item vconcat
-@code{vconcat} can convert a string into a vector. @xref{Vector
+This function converts a string into a vector. @xref{Vector
Functions}.
@item append
-@code{append} can convert a string into a list. @xref{Building Lists}.
+This function converts a string into a list. @xref{Building Lists}.
+
+@item byte-to-string
+This function converts a byte of character data into a unibyte string.
+@xref{Converting Representations}.
@end table
@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
example using @code{mapatoms}.
@end defun
-@defun unintern symbol &optional obarray
+@defun unintern symbol obarray
This function deletes @var{symbol} from the obarray @var{obarray}. If
@code{symbol} is not actually in the obarray, @code{unintern} does
nothing. 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{@@}:
@example
@group
-(char-to-string (char-after 1))
+(string (char-after 1))
@result{} "@@"
@end group
@end example
@@ -122,9 +122,9 @@ but there is no peace.
@end group
@group
-(char-to-string (preceding-char))
+(string (preceding-char))
@result{} "a"
-(char-to-string (following-char))
+(string (following-char))
@result{} "c"
@end group
@end example
@@ -866,7 +866,7 @@ adds it to the most recent element. It determines automatically (using
@code{last-command}) whether the previous command was a kill command,
and if so appends the killed text to the most recent entry.
-@deffn Command kill-region start end &optional yank-handler
+@deffn Command kill-region start end
This function kills the text in the region defined by @var{start} and
@var{end}. The text is deleted but saved in the kill ring, along with
its text properties. The value is always @code{nil}.
@@ -874,17 +874,10 @@ its text properties. The value is always @code{nil}.
In an interactive call, @var{start} and @var{end} are point and
the mark.
-@c Emacs 19 feature
If the buffer or text is read-only, @code{kill-region} modifies the kill
ring just the same, then signals an error without modifying the buffer.
This is convenient because it lets the user use a series of kill
commands to copy text from a read-only buffer into the kill ring.
-
-If @var{yank-handler} is non-@code{nil}, this puts that value onto
-the string of killed text, as a @code{yank-handler} text property.
-@xref{Yanking}. Note that if @var{yank-handler} is @code{nil}, any
-@code{yank-handler} properties present on the killed text are copied
-onto the kill ring, like other text properties.
@end deffn
@defopt kill-read-only-ok
@@ -901,10 +894,10 @@ from the buffer. It returns @code{nil}.
The command does not set @code{this-command} to @code{kill-region}, so a
subsequent kill command does not append to the same kill ring entry.
-Don't call @code{copy-region-as-kill} in Lisp programs unless you aim to
-support Emacs 18. For newer Emacs versions, it is better to use
-@code{kill-new} or @code{kill-append} instead. @xref{Low-Level Kill
-Ring}.
+@c FIXME Why is it better? Why isn't copy-region-as-kill obsolete then?
+@c Why is it used in many places in Emacs?
+In Lisp programs, it is better to use @code{kill-new} or
+@code{kill-append} instead of this command. @xref{Low-Level Kill Ring}.
@end deffn
@node Yanking
@@ -1042,8 +1035,8 @@ text property, if there is one.
@subsection Low-Level Kill Ring
These functions and variables provide access to the kill ring at a
-lower level, but still convenient for use in Lisp programs, because they
-take care of interaction with window system selections
+lower level, but are still convenient for use in Lisp programs,
+because they take care of interaction with window system selections
(@pxref{Window System Selections}).
@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
move the yanking pointer.
@end defun
-@defun kill-new string &optional replace yank-handler
+@defun kill-new string &optional replace
This function pushes the text @var{string} onto the kill ring and
makes the yanking pointer point to it. It discards the oldest entry
if appropriate. It also invokes the value of
@@ -1078,25 +1071,15 @@ if appropriate. It also invokes the value of
If @var{replace} is non-@code{nil}, then @code{kill-new} replaces the
first element of the kill ring with @var{string}, rather than pushing
@var{string} onto the kill ring.
-
-If @var{yank-handler} is non-@code{nil}, this puts that value onto
-the string of killed text, as a @code{yank-handler} property.
-@xref{Yanking}. Note that if @var{yank-handler} is @code{nil}, then
-@code{kill-new} copies any @code{yank-handler} properties present on
-@var{string} onto the kill ring, as it does with other text properties.
@end defun
-@defun kill-append string before-p &optional yank-handler
+@defun kill-append string before-p
This function appends the text @var{string} to the first entry in the
kill ring and makes the yanking pointer point to the combined entry.
Normally @var{string} goes at the end of the entry, but if
@var{before-p} is non-@code{nil}, it goes at the beginning. This
function also invokes the value of @code{interprogram-cut-function}
-(see below). This handles @var{yank-handler} just like
-@code{kill-new}, except that if @var{yank-handler} is different from
-the @code{yank-handler} property of the first entry of the kill ring,
-@code{kill-append} pushes the concatenated string onto the kill ring,
-instead of replacing the original first entry with it.
+(see below).
@end defun
@defvar interprogram-paste-function
@@ -4324,6 +4307,4 @@ code that is itself run from a modification hook, then rebind locally
@code{inhibit-modification-hooks} to @code{nil}.
@end defvar
-@ignore
- arch-tag: 3721e738-a1cb-4085-bc1a-6cb8d8e1d32b
-@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
buffer-local bindings for a symbol that is defined with
@code{defconst}.)
-Here, @code{pi} is a constant that presumably ought not to be changed
-by anyone (attempts by the Indiana State Legislature notwithstanding).
-As the second form illustrates, however, this is only advisory.
+An example of the use of @code{defconst} is Emacs' definition of
+@code{float-pi}---the mathematical constant @math{pi}, which ought not
+to be changed by anyone (attempts by the Indiana State Legislature
+notwithstanding). As the second form illustrates, however,
+@code{defconst} is only advisory.
@example
@group
-(defconst pi 3.1415 "Pi to five places.")
- @result{} pi
+(defconst float-pi 3.141592653589793 "The value of Pi.")
+ @result{} float-pi
@end group
@group
-(setq pi 3)
- @result{} pi
+(setq float-pi 3)
+ @result{} float-pi
@end group
@group
-pi
+float-pi
@result{} 3
@end group
@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 @@
+2010-12-06 Tassilo Horn <tassilo@member.fsf.org>
+
+ * gnus.texi (Server Commands): Point to the rest of the server
+ commands.
+
+2010-12-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Paging the Article): Note the reverse meanings of `C-u C-u
+ g'.
+
+2010-12-02 Julien Danjou <julien@danjou.info>
+
+ * gnus.texi (Archived Messages): Remove gnus-outgoing-message-group.
+
+2010-11-28 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Customizing the IMAP Connection): Note the new defaults.
+ (Direct Functions): Note the STARTTLS upgrade.
+
+2010-11-27 Glenn Morris <rgm@gnu.org>
+ James Clark <none@example.com>
+
+ * nxml-mode.texi (Introduction): New section.
+
+2010-11-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Server Commands): Document gnus-server-show-server.
+
+2010-11-20 Michael Albinus <michael.albinus@gmx.de>
+
+ Sync with Tramp 2.2.0.
+
+ * trampver.texi: Update release number.
+
+2010-11-19 Jay Belanger <jay.p.belanger@gmail.com>
+
+ * calc.texi (TeX and LaTeX Language Modes, Predefined Units):
+ Mention that the TeX specific units won't use the `tex' prefix
+ in TeX mode.
+
+2010-11-18 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Misc Article): Document gnus-inhibit-images.
+
+2010-11-17 Glenn Morris <rgm@gnu.org>
+
+ * edt.texi: Remove information about Emacs 19.
+
+2010-11-17 Michael Albinus <michael.albinus@gmx.de>
+
+ * trampver.texi: Update release number.
+
+2010-11-12 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Article Washing): Fix typo.
+
+2010-11-11 Noorul Islam <noorul@noorul.com>
+
+ * org.texi: Fix typo.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (Using capture): Explain that refiling is
+ sensitive to cursor position.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (Images and tables): Add cross reference to link section.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi: Document the <c> cookie.
+
+2010-11-11 Eric Schulte <schulte.eric@gmail.com>
+
+ * org.texi: multi-line header arguments :PROPERTIES: :ID:
+ b77c8857-6c76-4ea9-8a61-ddc2648d96c4 :END:.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (CSS support): Document :HTML_CONTAINER_CLASS: property.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (Project alist): Mention that this is a property list.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (Setting up the staging area): Document that
+ file names remain visible when encrypting the MobileOrg files.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (Setting up the staging area): Document which
+ versions are needed for encryption.
+
+2010-11-11 Eric Schulte <schulte.eric@gmail.com>
+
+ * org.texi (noweb): Update :noweb documentation to
+ reflect the new "tangle" argument.
+
+2010-11-11 Eric Schulte <schulte.eric@gmail.com>
+
+ * org.texi (Batch execution): Improve tangling script in
+ documentation.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (Handling links):
+ (In-buffer settings): Document inlining images on startup.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (Setting up the staging area): Document use of
+ crypt password.
+
+2010-11-11 David Maus <dmaus@ictsoc.de>
+
+ * org.texi (Template expansion): Add date related link type escapes.
+
+2010-11-11 David Maus <dmaus@ictsoc.de>
+
+ * org.texi (Template expansion): Add mew in table for link type
+ escapes.
+
+2010-11-11 David Maus <dmaus@ictsoc.de>
+
+ * org.texi (Template expansion): Fix typo in link type escapes.
+
+2010-11-11 Eric Schulte <schulte.eric@gmail.com>
+
+ * org.texi (Structure of code blocks): Another documentation tweak.
+
+2010-11-11 Eric Schulte <schulte.eric@gmail.com>
+
+ * org.texi (Structure of code blocks): Documentation tweak.
+
+2010-11-11 Eric Schulte <schulte.eric@gmail.com>
+
+ * org.texi (Structure of code blocks):
+ Update documentation to mention inline code block syntax.
+
+2010-11-11 Eric Schulte <schulte.eric@gmail.com>
+
+ * org.texi (comments): Improve wording.
+
+2010-11-11 Eric Schulte <schulte.eric@gmail.com>
+
+ * org.texi (comments): Document the new :comments header arguments.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (Installation): Remove the special
+ installation instructions for XEmacs.
+
+2010-11-11 Jambunathan K <kjambunathan@gmail.com> (tiny change)
+
+ * org.texi (Easy Templates): New section. Documents quick
+ insertion of empty structural elements.
+
+2010-11-11 Noorul Islam <noorul@noorul.com>
+
+ * org.texi: Fix doc.
+
+2010-11-11 Jambunathan K <kjambunathan@gmail.com> (tiny change)
+
+ * org.texi (The date/time prompt): Document specification
+ of time ranges.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (Internal links): Document the changes in
+ internal links.
+
+2010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (Agenda commands): Document the limitation for
+ the filter preset - it can only be used for an entire agenda
+ view, not in an individual block in a block agenda.
+
+2010-11-11 Eric S Fraga <e.fraga@ucl.ac.uk>
+
+ * org.texi (iCalendar export): Document alarm creation.
+
+2010-11-10 Michael Albinus <michael.albinus@gmx.de>
+
+ * dbus.texi (Type Conversion): Introduce `:unix-fd' type mapping.
+
+2010-11-09 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Article Washing): Document gnus-article-treat-non-ascii.
+
+2010-11-09 Jay Belanger <jay.p.belanger@gmail.com>
+
+ * calc.texi: Use emacsver.texi to determine Emacs version.
+
+2010-11-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Customizing the IMAP Connection): Remove nnir mention,
+ since that works by default.
+
+2010-11-03 Kan-Ru Chen <kanru@kanru.info> (tiny change)
+
+ * gnus.texi (Customizing the IMAP Connection): Document
+ `nnimap-expunge' and remove `nnimap-expunge-inbox' from example.
+
+2010-11-04 Michael Albinus <michael.albinus@gmx.de>
+
+ * tramp.texi (Remote shell setup): New item "Interactive shell
+ prompt". Reported by Christian Millour <cm@abtela.com>.
+ (Remote shell setup, Remote processes): Use @code{} for
+ environment variables.
+
+2010-11-03 Glenn Morris <rgm@gnu.org>
+
+ * ediff.texi (Quick Help Commands, Miscellaneous):
+ * gnus.texi (Agent Variables, Configuring nnmairix): Spelling fix.
+
+2010-10-31 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Paging the Article): Document C-u g/C-u C-u g.
+
+2010-10-31 Glenn Morris <rgm@gnu.org>
+
+ * mh-e.texi (Preface, From Bill Wohler): Change 23 to past tense.
+
+2010-10-31 Glenn Morris <rgm@gnu.org>
+
+ * cc-mode.texi: Remove reference to defunct viewcvs URL.
+
+2010-10-29 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Client-Side IMAP Splitting): Mention
+ nnimap-unsplittable-articles.
+
+2010-10-29 Julien Danjou <julien@danjou.info>
+
+ * gnus.texi (Finding the News): Remove references to obsoletes
+ variables `gnus-nntp-server' and `gnus-secondary-servers'.
+
+2010-10-29 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (MAKEINFO): Add -I$(emacsdir).
+ (ENVADD): Remove extra -I$(emacsdir), included in $(MAKEINFO).
+ ($(infodir)/efaq): Remove -I$(emacsdir), included in $(MAKEINFO).
+ ($(infodir)/calc, calc.dvi): Depend on $(emacsdir)/emacsver.texi.
+
+2010-10-28 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (MAKEINFO, ENVADD): Add $emacsdir to include path.
+ (($(infodir)/calc, calc.dvi, calc.pdf): Depend on emacsver.texi.
+ ($(infodir)/efaq): Remove -I option now in $MAKEINFO.
+
+2010-10-25 Daiki Ueno <ueno@unixuser.org>
+
+ * epa.texi (Mail-mode integration): Add alternative key bindings
+ for epa-mail commands; escape comma.
+ Don't use the word "PGP", since it is a non-free program.
+
+2010-10-24 Jay Belanger <jay.p.belanger@gmail.com>
+
+ * calc.texi: Use emacsver.texi to determine Emacs version.
+
+2010-10-24 Juanma Barranquero <lekktu@gmail.com>
+
+ * gnus.texi (Group Parameters, Buttons): Fix typos.
+
+2010-10-22 Tassilo Horn <tassilo@member.fsf.org>
+
+ * gnus.texi (Subscription Commands): Mention that you can also
+ subscribe to new groups via the Server buffer, which is probably more
+ convenient when subscribing to many groups.
+
+2010-10-21 Julien Danjou <julien@danjou.info>
+
+ * message.texi (Message Headers): Allow message-default-headers to be a
+ function.
+
+2010-10-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-news.texi: Mention new archive defaults.
+
+2010-10-21 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (RSS): Remove nnrss-wash-html-in-text-plain-parts.
+
+2010-10-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (HTML): Document the function value of
+ gnus-blocked-images.
+ (Article Washing): shr and gnus-w3m, not the direct function names.
+
+2010-10-20 Julien Danjou <julien@danjou.info>
+
+ * emacs-mime.texi (Flowed text): Add a note about mml-enable-flowed
+ variable.
+
+2010-10-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Customizing the IMAP Connection): The port strings are
+ strings.
+ (Document Groups): Mention git.
+
+2010-10-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-coding.texi (Gnus Maintainance Guide): Update to mention Emacs
+ bzr/Gnus git sync.
+
2010-10-15 Eli Zaretskii <eliz@gnu.org>
* 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@
## Note that the setfilename command in the .texi files assumes this.
infodir=../../info
## Directory with emacsver.texi.
-## Currently only used by efaq; could be added to MAKEINFO.
+## Currently only used by efaq and calc.
emacsdir = $(srcdir)/../emacs
# The makeinfo program is part of the Texinfo distribution.
# Use --force so that it generates output even if there are errors.
-MAKEINFO = makeinfo --force
+MAKEINFO = makeinfo --force -I$(emacsdir)
# Also add new entries to INFO_FILES in the top-level Makefile.in.
INFO_TARGETS = \
@@ -198,7 +198,7 @@ PDF_TARGETS = \
TEXI2DVI = texi2dvi
TEXI2PDF = texi2pdf
-ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)"
+ENVADD = TEXINPUTS="$(srcdir):$(emacsdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)"
mkinfodir = @cd ${srcdir}; test -d ${infodir} || mkdir ${infodir} || test -d ${infodir}
@@ -244,12 +244,12 @@ autotype.pdf: ${srcdir}/autotype.texi
$(ENVADD) $(TEXI2PDF) $<
calc : $(infodir)/calc
-$(infodir)/calc: calc.texi
+$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi
$(mkinfodir)
cd $(srcdir); $(MAKEINFO) $<
-calc.dvi: ${srcdir}/calc.texi
+calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
$(ENVADD) $(TEXI2DVI) $<
-calc.pdf: ${srcdir}/calc.texi
+calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
$(ENVADD) $(TEXI2PDF) $<
ccmode : $(infodir)/ccmode
@@ -381,7 +381,7 @@ eudc.pdf: ${srcdir}/eudc.texi
efaq : $(infodir)/efaq
$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) -I $(emacsdir) $<
+ cd $(srcdir); $(MAKEINFO) $<
faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
$(ENVADD) $(TEXI2DVI) $<
faq.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 @@
@setchapternewpage odd
@comment %**end of header (This is for running Texinfo on a region.)
+@include emacsver.texi
+
@c The following macros are used for conditional output for single lines.
@c @texline foo
@c `foo' will appear only in TeX output
@@ -88,7 +90,8 @@
This file documents Calc, the GNU Emacs calculator.
@end ifinfo
@ifnotinfo
-This file documents Calc, the GNU Emacs calculator, included with GNU Emacs 23.1.
+This file documents Calc, the GNU Emacs calculator, included with
+GNU Emacs @value{EMACSVER}.
@end ifnotinfo
Copyright @copyright{} 1990, 1991, 2001, 2002, 2003, 2004,
@@ -14119,6 +14122,10 @@ but
@texline @math{\sin(2 + x)}.
@infoline @expr{sin(2 + x)}.
+The @TeX{} specific unit names (@pxref{Predefined Units}) will not use
+the @samp{tex} prefix; the unit name for a @TeX{} point will be
+@samp{pt} instead of @samp{texpt}, for example.
+
Function and variable names not treated specially by @TeX{} and La@TeX{}
are simply written out as-is, which will cause them to come out in
italic 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),
@code{texcc} (a Cicero) and @code{texsp} (a scaled @TeX{} point,
all dimensions representable in @TeX{} are multiples of this value).
+When Calc is using the @TeX{} or La@TeX{} language mode (@pxref{TeX
+and LaTeX Language Modes}), the @TeX{} specific unit names will not
+use the @samp{tex} prefix; the unit name for a @TeX{} point will be
+@samp{pt} instead of @samp{texpt}, for example. To avoid conflicts,
+the unit names for pint and parsec will simply be @samp{pint} and
+@samp{parsec} instead of @samp{pt} and @samp{pc}.
+
+
The unit @code{e} stands for the elementary (electron) unit of charge;
because algebra command could mistake this for the special constant
@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
@bye
-
-@ignore
- arch-tag: 77a71809-fa4d-40be-b2cc-da3e8fb137c0
-@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
This manual is for CC Mode in Emacs.
Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
@@ -201,9 +202,8 @@ developing GNU and promoting software freedom.''
@vskip 0pt plus 1filll
@insertcopying
-This manual was generated from cc-mode.texi, which can be downloaded
-from
-@url{http://cvs.savannah.gnu.org/viewcvs/emacs/emacs/doc/misc/cc-mode.texi}.
+This manual was generated from cc-mode.texi, which is distributed with Emacs,
+or can be downloaded from @url{http://savannah.gnu.org/projects/emacs/}.
@end titlepage
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -7015,6 +7015,3 @@ Since most @ccmode{} variables are prepended with the string
@bye
-@ignore
- arch-tag: c4cab162-5e57-4366-bdce-4a9db2fc97f0
-@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
types are represented by the type symbols @code{:byte},
@code{:boolean}, @code{:int16}, @code{:uint16}, @code{:int32},
@code{:uint32}, @code{:int64}, @code{:uint64}, @code{:double},
-@code{:string}, @code{:object-path} and @code{:signature}.
+@code{:string}, @code{:object-path}, @code{:signature} and
+@code{:unix-fd}.
@noindent
Example:
@@ -1009,6 +1010,7 @@ objects.
@item DBUS_TYPE_UINT16 @tab @expansion{} @tab natural number
@item DBUS_TYPE_INT16 @tab @expansion{} @tab integer
@item DBUS_TYPE_UINT32 @tab @expansion{} @tab natural number or float
+@item DBUS_TYPE_UNIX_FD @tab @expansion{} @tab natural number or float
@item DBUS_TYPE_INT32 @tab @expansion{} @tab integer or float
@item DBUS_TYPE_UINT64 @tab @expansion{} @tab natural number or float
@item DBUS_TYPE_INT64 @tab @expansion{} @tab integer or float
@@ -1024,9 +1026,9 @@ objects.
@end example
A float object in case of @code{DBUS_TYPE_UINT32},
-@code{DBUS_TYPE_INT32}, @code{DBUS_TYPE_UINT64} and
-@code{DBUS_TYPE_INT6432} is returned, when the C value exceeds the
-Emacs number size range.
+@code{DBUS_TYPE_INT32}, @code{DBUS_TYPE_UINT64},
+@code{DBUS_TYPE_INT64} and @code{DBUS_TYPE_UNIX_FD} is returned, when
+the C value exceeds the Emacs number size range.
The resulting list of the last 4 D-Bus compound types contains as
elements 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.
You can then restart any of these sessions by either clicking on a session
record or by putting the cursor over it and then typing the return key.
-(Some poor souls leave so many active Ediff sessions around that they loose
+(Some poor souls leave so many active Ediff sessions around that they lose
track of them completely... The `R' command is designed to save these
people from the recently discovered Ediff Proficiency Syndrome.)
@@ -2315,7 +2315,7 @@ other behavior.
However, Ediff temporarily resets this variable to @code{t} if it is
invoked via one of the "buffer" jobs, such as @code{ediff-buffers}.
-This is because it is all too easy to loose day's work otherwise.
+This is because it is all too easy to lose a day's work otherwise.
Besides, in a "buffer" job, the variant buffers have already been loaded
prior to starting Ediff, so Ediff just preserves status quo here.
@@ -2542,6 +2542,3 @@ Eli Zaretskii (eliz at is.elta.co.il)
@bye
-@ignore
- arch-tag: 165ecb88-d03c-44b1-a921-b93f50b05b46
-@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.
@node Overview
@chapter Overview of the EDT Package
-This manual describes version 4.0 of the EDT Emulation for Emacs 19 and
-above. It comes with special functions which replicate nearly all of
+This manual describes version 4.0 of the EDT Emulation for Emacs.
+It comes with special functions which replicate nearly all of
EDT's keypad mode behavior. It sets up default keypad and function key
bindings which closely match those found in EDT. Support is provided so
that 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
EDT Emulation is active to change the settings for that session.
@strong{Please note:} Another way to set the scroll margins is to use
-the Emacs customization feature (not available in Emacs 19) to set the
-following two variables directly: @code{edt-top-scroll-margin} and
-@code{edt-bottom-scroll-margin}.
+the Emacs customization feature to set the following two variables
+directly: @code{edt-top-scroll-margin} and @code{edt-bottom-scroll-margin}.
Enter the Emacs @code{customize} command. First select the
@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,
just as they existed before the EDT emulation was first invoked.
@item
-Support GNU Emacs 19 and higher. (GNU Emacs 18 and below is no longer
-supported.) XEmacs 19, and above, is also supported.
+Support GNU Emacs 19 and higher. XEmacs 19, and above, is also supported.
@item
Supports 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
EDT Emulation is active to change the settings for that session.
@strong{Please note:} Another way to set the scroll margins is to use
-the Emacs customization feature (not available in Emacs 19) to set the
-following two variables directly: @code{edt-top-scroll-margin} and
-@code{edt-bottom-scroll-margin}.
+the Emacs customization feature to set the following two variables
+directly: @code{edt-top-scroll-margin} and @code{edt-bottom-scroll-margin}.
Enter the Emacs @code{customize} command. First select the
@samp{Editing} group and then select the @samp{Emulations} group.
@@ -946,7 +943,3 @@ Finally, select the @samp{Edt} group and follow the directions.
@include doclicense.texi
@bye
-
-@ignore
- arch-tag: 1b7ebe01-754b-4834-a12b-f152ef7db9e0
-@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
newline characters are not present in the buffer, no flow encoding
occurs.
+You can customize the value of the @code{mml-enable-flowed} variable
+to enable or disable the flowed encoding usage when newline
+characteres are present in the buffer.
+
On decoding flowed text, lines with soft newline characters are filled
together and wrapped after the column decided by
@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.
@section Mail-mode integration
EasyPG Assistant provides a minor mode @code{epa-mail-mode} to help
-user compose inline PGP messages. Inline PGP is a traditional style
-of sending signed/encrypted emails by embedding raw OpenPGP blobs
-inside a message body, not using modern MIME format.
+user compose inline OpenPGP messages. Inline OpenPGP is a traditional
+style of sending signed/encrypted emails by embedding raw OpenPGP
+blobs inside a message body, not using modern MIME format.
-NOTE: Inline PGP is not recommended and you should consider to use
+NOTE: Inline OpenPGP is not recommended and you should consider to use
PGP/MIME. See
@uref{http://josefsson.org/inline-openpgp-considered-harmful.html,
-Inline PGP in E-mail is bad, Mm'kay?}.
+Inline OpenPGP in E-mail is bad@comma{} Mm'kay?}.
@noindent
Once @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
interface. Try @kbd{M-x customize-variable epa-global-mail-mode}.
@table @kbd
-@item C-c C-e d
+@item C-c C-e C-d and C-c C-e d
+@kindex @kbd{C-c C-e C-d}
@kindex @kbd{C-c C-e d}
@findex epa-mail-decrypt
Decrypt OpenPGP armors in the current buffer.
-@item C-c C-e v
+@item C-c C-e C-v and C-c C-e v
+@kindex @kbd{C-c C-e C-v}
@kindex @kbd{C-c C-e v}
@findex epa-mail-verify
Verify OpenPGP cleartext signed messages in the current buffer.
-@item C-c C-e s
+@item C-c C-e C-s and C-c C-e s
+@kindex @kbd{C-c C-e C-s}
@kindex @kbd{C-c C-e s}
@findex epa-mail-sign
Compose a signed message from the current buffer.
-@item C-c C-e e
+@item C-c C-e C-e and C-c C-e e
+@kindex @kbd{C-c C-e C-e}
@kindex @kbd{C-c C-e e}
@findex epa-mail-encrypt
Compose 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.
With the inclusion of Gnus 5.10, Miles Bader has set up an Emacs-Gnus
gateway to ensure the bug fixes from Emacs CVS are propagated to Gnus
-CVS semi-automatically. These bug fixes are installed on the stable
-branch and on the trunk. Basically the idea is that the gateway will
-cause all common files in Emacs and Gnus v5-10 to be identical except
-when there's a very good reason (e.g., the Gnus version string in Emacs
-says @samp{5.11}, but the v5-10 version string remains @samp{5.10.x}).
-Furthermore, all changes in these files in either Emacs or the v5-10
-branch will be installed into the Gnus CVS trunk, again except where
-there's a good reason.
+CVS semi-automatically.
+
+After Emacs moved to bzr and Gnus moved to git, Katsumi Yamaoka has
+taken over the chore of keeping Emacs and Gnus in sync. In general,
+changes made to one repository will usually be replicated in the other
+within a few days.
+
+Basically the idea is that the gateway will cause all common files in
+Emacs and Gnus v5-13 to be identical except when there's a very good
+reason (e.g., the Gnus version string in Emacs says @samp{5.11}, but
+the v5-13 version string remains @samp{5.13.x}). Furthermore, all
+changes in these files in either Emacs or the v5-13 branch will be
+installed into the Gnus git trunk, again except where there's a good
+reason.
+
@c (typically so far the only exception has been that the changes
@c already exist in the trunk in modified form).
Because 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
new @file{encrypt.el}), you should probably make the change in the Emacs
tree, and it will show up in the Gnus tree a few days later.
-If you don't have Emacs CVS access (or it's inconvenient), you can
+If you don't have Emacs bzr access (or it's inconvenient), you can
change such a file in the v5-10 branch, and it should propagate to Emacs
-CVS -- however, it will get some extra scrutiny (by Miles) to see if the
+bzr -- however, it will get some extra scrutiny (by Miles) to see if the
changes are possibly controversial and need discussion on the mailing
list. Many changes are obvious bug-fixes however, so often there won't
be any problem.
@@ -321,12 +328,12 @@ be any problem.
@item
If it's to a Gnus file, and it's important enough that it should be part
of Emacs and the v5-10 branch, then you can make the change on the v5-10
-branch, and it will go into Emacs CVS and the Gnus CVS trunk (a few days
+branch, and it will go into Emacs bzr and the Gnus git trunk (a few days
later). The most prominent examples for such changes are bug-fixed
including improvements on the documentation.
If you know that there will be conflicts (perhaps because the affected
-source code is different in v5-10 and the Gnus CVS trunk), then you can
+source code is different in v5-10 and the Gnus git trunk), then you can
install your change in both places, and when I try to sync them, there
will be a conflict -- however, since in most such cases there would be a
conflict @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
change on the Gnus Git trunk and it goes into Emacs a few years
later... :-)
-With the new Git repository, we'll probably set up something to
-automatically synchronize with Emacs when possible. CVS was much less
-powerful for this kind of synchronization.
@end itemize
Of 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}.
@itemize @bullet
+@item There's now only one variable that determines how @acronym{HTML}
+is rendered: @code{mm-text-html-renderer}.
+
@item Gnus now supports sticky article buffers. Those are article buffers
that are not reused when you select another article. @xref{Sticky
Articles}.
@@ -221,6 +224,9 @@ that are accessible from the article buffer.
@item Changes in Message mode
@itemize @bullet
+@item Gnus now defaults to saving all outgoing messages in per-month
+nnfolder archives.
+
@item Gnus now supports the ``hashcash'' client puzzle anti-spam mechanism.
Use @code{(setq message-generate-hashcash t)} to enable.
@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}
If that fails as well, Gnus will try to use the machine running Emacs
as an @acronym{NNTP} server. That's a long shot, though.
-@vindex gnus-nntp-server
-If @code{gnus-nntp-server} is set, this variable will override
-@code{gnus-select-method}. You should therefore set
-@code{gnus-nntp-server} to @code{nil}, which is what it is by default.
-
-@vindex gnus-secondary-servers
-@vindex gnus-nntp-server
-You can also make Gnus prompt you interactively for the name of an
-@acronym{NNTP} server. If you give a non-numerical prefix to @code{gnus}
-(i.e., @kbd{C-u M-x gnus}), Gnus will let you choose between the servers
-in the @code{gnus-secondary-servers} list (if any). You can also just
-type in the name of any server you feel like visiting. (Note that this
-will set @code{gnus-nntp-server}, which means that if you then @kbd{M-x
-gnus} later in the same Emacs session, Gnus will contact the same
-server.)
-
@findex gnus-group-browse-foreign-server
@kindex B (Group)
However, if you use one @acronym{NNTP} server regularly and are just
@@ -2211,6 +2195,12 @@ selected.
@section Subscription Commands
@cindex subscription
+The following commands allow for managing your subscriptions in the
+Group buffer. If you want to subscribe to many groups, it's probably
+more convenient to go to the @ref{Server Buffer}, and choose the
+server there using @kbd{RET} or @kbd{SPC}. Then you'll have the
+commands listed in @ref{Browse Foreign Server} at hand.
+
@table @kbd
@item S t
@@ -2409,6 +2399,9 @@ one with the best level.
All groups with a level less than or equal to
@code{gnus-group-default-list-level} will be listed in the group buffer
by default.
+This variable can also be a function. In that case, that function will
+be called and the result will be used as value.
+
@vindex gnus-group-list-inactive-groups
If @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,
Top, sieve, Emacs Sieve}.
@item (agent parameters)
-If the agent has been enabled, you can set any of the its parameters
-to control the behavior of the agent in individual groups. See Agent
+If the agent has been enabled, you can set any of its parameters to
+control the behavior of the agent in individual groups. See Agent
Parameters in @ref{Category Syntax}. Most users will choose to set
agent parameters in either an agent category or group topic to
minimize the configuration effort.
@@ -4563,7 +4556,7 @@ However, you can also create e.g. a new @code{nnmaildir} or @code{nnml}
server exclusively for @code{nnmairix} in your secondary select methods
(@pxref{Finding the News}). If you use a secondary @code{nnml} server
just for mairix, make sure that you explicitly set the server variable
-@code{nnml-get-new-mail} to @code{nil}, or you might loose mail
+@code{nnml-get-new-mail} to @code{nil}, or you might lose mail
(@pxref{nnmairix caveats}). If you want to use mairix remotely on an
@acronym{IMAP} server, you have to choose the corresponding
@code{nnimap} server here.
@@ -5195,24 +5188,6 @@ used for fetching the file.
If fetching from the first site is unsuccessful, Gnus will attempt to go
through @code{gnus-group-faq-directory} and try to open them one by one.
-@item H C
-@kindex H C (Group)
-@findex gnus-group-fetch-control
-@vindex gnus-group-fetch-control-use-browse-url
-@cindex control message
-Fetch the control messages for the group from the archive at
-@code{ftp.isc.org} (@code{gnus-group-fetch-control}). Query for a
-group if given a prefix argument.
-
-If @code{gnus-group-fetch-control-use-browse-url} is non-@code{nil},
-Gnus will open the control messages in a browser using
-@code{browse-url}. Otherwise they are fetched using @code{ange-ftp}
-and displayed in an ephemeral group.
-
-Note that the control messages are compressed. To use this command
-you need to turn on @code{auto-compression-mode} (@pxref{Compressed
-Files, ,Compressed Files, emacs, The Emacs Manual}).
-
@item H d
@itemx C-c C-d
@c @icon{gnus-group-describe-group}
@@ -6177,9 +6152,10 @@ Scroll the current article one line backward
@findex gnus-summary-show-article
@vindex gnus-summary-show-article-charset-alist
(Re)fetch the current article (@code{gnus-summary-show-article}). If
-given a prefix, fetch the current article, but don't run any of the
-article treatment functions. This will give you a ``raw'' article, just
-the way it came from the server.
+given a prefix, show a completely ``raw'' article, just the way it
+came from the server. If given a prefix twice (i.e., @kbd{C-u C-u
+g'}), fetch the current article, but don't run any of the article
+treatment functions.
@cindex charset, view article with different charset
If 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
like @code{\222} or @code{\264} where you're expecting some kind of
apostrophe or quotation mark, then try this wash.
+@item W U
+@kindex W U (Summary)
+@findex gnus-article-treat-non-ascii
+@cindex Unicode
+@cindex Non-@acronym{ASCII}
+Translate many non-@acronym{ASCII} characters into their
+@acronym{ASCII} equivalents (@code{gnus-article-treat-non-ascii}).
+This is mostly useful if you're on a terminal that has a limited font
+and does't show accented characters, ``advanced'' punctuation, and the
+like. For instance, @samp{»} is tranlated into @samp{>>}, and so on.
+
@item W Y f
@kindex W Y f (Summary)
@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,
the charset defined in @code{gnus-summary-show-article-charset-alist}
(@pxref{Paging the Article}) will be used.
-@vindex gnus-article-wash-function
The default is to use the function specified by
@code{mm-text-html-renderer} (@pxref{Display Customization, ,Display
Customization, emacs-mime, The Emacs MIME Manual}) to convert the
-@acronym{HTML}, but this is controlled by the
-@code{gnus-article-wash-function} variable. Pre-defined functions you
-can use include:
+@acronym{HTML}. Pre-defined functions you can use include:
@table @code
-@item mm-shr
+@item shr
Use Gnus simple html renderer.
-@item gnus-article-html
+@item gnus-w3m
Use Gnus rendered based on w3m.
@item w3
@@ -12462,15 +12446,22 @@ that's based on @code{w3m}.
@item gnus-blocked-images
@vindex gnus-blocked-images
-Images that have @acronym{URL}s that match this regexp won't be
-fetched and displayed. For instance, do block all @acronym{URL}s that
-have the string ``ads'' in them, do the following:
+External images that have @acronym{URL}s that match this regexp won't
+be fetched and displayed. For instance, do block all @acronym{URL}s
+that have the string ``ads'' in them, do the following:
@lisp
(setq gnus-blocked-images "ads")
@end lisp
-The default is to block all external images.
+This can also be a function to be evaluated. If so, it will be
+called with the group name as the parameter. The default value is
+@code{gnus-block-private-groups}, which will return @samp{"."} for
+anything that isn't a newsgroup. This means that no external images
+will be fetched as a result of reading mail, so that nobody can use
+web bugs (and the like) to track whether you've read email.
+
+Also @pxref{Misc Article} for @code{gnus-inhibit-images}.
@item gnus-html-cache-directory
@vindex gnus-html-cache-directory
@@ -12952,6 +12943,15 @@ for how to compose such messages. This requires
@uref{http://www.gnu.org/software/libidn/, GNU Libidn}, and this
variable is only enabled if you have installed it.
+@vindex gnus-inhibit-images
+@item gnus-inhibit-images
+If this is non-@code{nil}, inhibit displaying of images inline in the
+article body. It is effective to images that are in articles as
+@acronym{MIME} parts, and images in @acronym{HTML} articles rendered
+when @code{mm-text-html-renderer} (@pxref{Display Customization,
+,Display Customization, emacs-mime, The Emacs MIME Manual}) is
+@code{shr} or @code{gnus-w3m}.
+
@end table
@@ -13342,21 +13342,6 @@ case you should set @code{gnus-message-archive-group} to @code{nil};
this will disable archiving.
@table @code
-@item gnus-outgoing-message-group
-@vindex gnus-outgoing-message-group
-All outgoing messages will be put in this group. If you want to store
-all your outgoing mail and articles in the group @samp{nnml:archive},
-you set this variable to that value. This variable can also be a list of
-group names.
-
-If you want to have greater control over what group to put each
-message in, you can set this variable to a function that checks the
-current newsgroup name and then returns a suitable group name (or list
-of names).
-
-This variable can be used instead of @code{gnus-message-archive-group},
-but the latter is the preferred method.
-
@item gnus-gcc-mark-as-read
@vindex gnus-gcc-mark-as-read
If 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
name will be removed. If the attribute name is @code{eval}, the form
is evaluated, and the result is thrown away.
-The attribute value can be a string (used verbatim), a function with
-zero arguments (the return value will be used), a variable (its value
-will be used) or a list (it will be @code{eval}ed and the return value
-will be used). The functions and sexps are called/@code{eval}ed in the
-message buffer that is being set up. The headers of the current article
-are available through the @code{message-reply-headers} variable, which
-is a vector of the following headers: number subject from date id
-references chars lines xref extra.
+The attribute value can be a string, a function with zero arguments
+(the return value will be used), a variable (its value will be used)
+or a list (it will be @code{eval}ed and the return value will be
+used). The functions and sexps are called/@code{eval}ed in the
+message buffer that is being set up. The headers of the current
+article are available through the @code{message-reply-headers}
+variable, which is a vector of the following headers: number subject
+from date id references chars lines xref extra.
+
+In the case of a string value, if the @code{match} is a regular
+expression, a @samp{gnus-match-substitute-replacement} is proceed on
+the value to replace the positional parameters @samp{\@var{n}} by the
+corresponding parenthetical matches (see @xref{Replacing the Text that
+Matched, , Text Replacement, elisp, The Emacs Lisp Reference Manual}.)
@vindex message-reply-headers
@@ -13834,6 +13825,11 @@ Add a new server (@code{gnus-server-add-server}).
@findex gnus-server-edit-server
Edit a server (@code{gnus-server-edit-server}).
+@item S
+@kindex S (Server)
+@findex gnus-server-show-server
+Show the definition of a server (@code{gnus-server-show-server}).
+
@item SPACE
@kindex SPACE (Server)
@findex gnus-server-read-server
@@ -13889,6 +13885,9 @@ hence getting a correct total article count.
@end table
+Some more commands for closing, disabling, and re-opening servers are
+listed in @ref{Unavailable Servers}.
+
@node Example Methods
@subsection Example Methods
@@ -14442,7 +14441,9 @@ functions is also affected by commonly understood variables
@findex nntp-open-network-stream
@item nntp-open-network-stream
This is the default, and simply connects to some port or other on the
-remote system.
+remote system. If both Emacs and the server supports it, the
+connection will be upgraded to an encrypted @acronym{STARTTLS}
+connection automatically.
@findex nntp-open-tls-stream
@item nntp-open-tls-stream
@@ -14861,9 +14862,7 @@ Here's an example method that's more complex:
(nnimap-inbox "INBOX")
(nnimap-split-methods default)
(nnimap-expunge t)
- (nnimap-stream ssl)
- (nnir-search-engine imap)
- (nnimap-expunge-inbox t))
+ (nnimap-stream ssl))
@end example
@table @code
@@ -14872,18 +14871,23 @@ The address of the server, like @samp{imap.gmail.com}.
@item nnimap-server-port
If the server uses a non-standard port, that can be specified here. A
-typical port would be @samp{imap} or @samp{imaps}.
+typical port would be @code{"imap"} or @code{"imaps"}.
@item nnimap-stream
How @code{nnimap} should connect to the server. Possible values are:
@table @code
+@item undecided
+This is the default, and this first tries the @code{ssl} setting, and
+then tries the @code{network} setting.
+
@item ssl
-This is the default, and this uses standard
-@acronym{TLS}/@acronym{SSL} connection.
+This uses standard @acronym{TLS}/@acronym{SSL} connections.
@item network
-Non-encrypted and unsafe straight socket connection.
+Non-encrypted and unsafe straight socket connection, but will upgrade
+to encrypted @acronym{STARTTLS} if both Emacs and the server
+supports it.
@item starttls
Encrypted @acronym{STARTTLS} over the normal @acronym{IMAP} port.
@@ -14899,6 +14903,11 @@ what you need.
Some @acronym{IMAP} servers allow anonymous logins. In that case,
this should be set to @code{anonymous}.
+@item nnimap-expunge
+If non-@code{nil}, expunge articles after deleting them. This is always done
+if the server supports UID EXPUNGE, but it's not done by default on
+servers that doesn't support that command.
+
@item nnimap-streaming
Virtually all @code{IMAP} server support fast streaming of data. If
you 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.
@item nnimap-split-fancy
Uses the same syntax as @code{nnmail-split-fancy}.
+@item nnimap-unsplittable-articles
+List of flag symbols to ignore when doing splitting. That is,
+articles that have these flags won't be considered when splitting.
+The default is @samp{(%Deleted %Seen)}.
+
@end table
@@ -17711,15 +17725,6 @@ If you set @code{nnrss-use-local} to @code{t}, @code{nnrss} will read
the feeds from local files in @code{nnrss-directory}. You can use
the command @code{nnrss-generate-download-script} to generate a
download script using @command{wget}.
-
-@item nnrss-wash-html-in-text-plain-parts
-Non-@code{nil} means that @code{nnrss} renders text in @samp{text/plain}
-parts as @acronym{HTML}. The function specified by the
-@code{mm-text-html-renderer} variable (@pxref{Display Customization,
-,Display Customization, emacs-mime, The Emacs MIME Manual}) will be used
-to render text. If it is @code{nil}, which is the default, text will
-simply be folded. Leave it @code{nil} if you prefer to see
-@samp{text/html} parts.
@end table
The following code may be helpful, if you want to show the description in
@@ -17969,6 +17974,10 @@ A @acronym{MIME} digest of messages.
@item lanl-gov-announce
Announcement messages from LANL Gov Announce.
+@cindex git commit messages
+@item git
+@code{git} commit messages.
+
@cindex forwarded messages
@item rfc822-forward
A message forwarded according to RFC822.
@@ -19856,7 +19865,7 @@ limit to control how often the cycling occurs. A large value improves
performance. A small value minimizes the time lost should the
connection be lost while fetching (You may need to run
@code{gnus-agent-regenerate-group} to update the group's state.
-However, all articles parsed prior to loosing the connection will be
+However, all articles parsed prior to losing the connection will be
available while unplugged). The default is 10M so it is unusual to
see any cycling.
@@ -30096,11 +30105,11 @@ that means:
(setq gnus-read-active-file 'some)
@end lisp
-On the other hand, if the manual says ``set @code{gnus-nntp-server} to
-@samp{nntp.ifi.uio.no}'', that means:
+On the other hand, if the manual says ``set @code{gnus-nntp-server-file} to
+@samp{/etc/nntpserver}'', that means:
@lisp
-(setq gnus-nntp-server "nntp.ifi.uio.no")
+(setq gnus-nntp-server-file "/etc/nntpserver")
@end lisp
So 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
emacsdir = $(srcdir)/../emacs
# The makeinfo program is part of the Texinfo distribution.
-MAKEINFO = makeinfo --force
+MAKEINFO = makeinfo --force -I$(emacsdir)
MULTI_INSTALL_INFO = $(srcdir)\..\..\nt\multi-install-info.bat
INFO_TARGETS = $(infodir)/ccmode \
$(infodir)/cl $(infodir)/dbus $(infodir)/dired-x \
@@ -70,7 +70,7 @@ INFOSOURCES = info.texi
TEXI2DVI = texi2dvi
ENVADD = $(srcdir)\..\..\nt\envadd.bat "TEXINPUTS=$(srcdir);$(TEXINPUTS)" \
- "MAKEINFO=$(MAKEINFO) -I$(srcdir) -I$(emacsdir)" /C
+ "MAKEINFO=$(MAKEINFO) -I$(srcdir)" /C
info: $(INFO_TARGETS)
@@ -218,7 +218,7 @@ widget.dvi: widget.texi
$(ENVADD) $(TEXI2DVI) $(srcdir)/widget.texi
$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi
- $(MAKEINFO) -I$(emacsdir) faq.texi
+ $(MAKEINFO) faq.texi
faq.dvi: faq.texi $(emacsdir)/emacsver.texi
$(ENVADD) $(TEXI2DVI) $(srcdir)/faq.texi
@@ -227,10 +227,10 @@ $(infodir)/autotype: autotype.texi
autotype.dvi: autotype.texi
$(ENVADD) $(TEXI2DVI) $(srcdir)/autotype.texi
-$(infodir)/calc: calc.texi
+$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi
$(MAKEINFO) calc.texi
-calc.dvi: calc.texi
+calc.dvi: calc.texi $(emacsdir)/emacsver.texi
$(ENVADD) $(TEXI2DVI) $(srcdir)/calc.texi
# 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.
@item message-default-headers
@vindex message-default-headers
-This string is inserted at the end of the headers in all message
-buffers.
+Header lines to be inserted in outgoing messages before you edit the
+message, so you can edit or delete their lines. If set to a string, it
+is directly inserted. If set to a function, it is called and its
+result is inserted.
@item message-subject-re-regexp
@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
them.
The MH-E package is distributed with GNU Emacs@footnote{Version
-@value{VERSION} of MH-E will appear in GNU Emacs 23.1. It is supported
+@value{VERSION} of MH-E appeared in GNU Emacs 23.1. It is supported
in GNU Emacs 21 and 22, as well as XEmacs 21 (except for versions
21.5.9-21.5.16). It is compatible with MH versions 6.8.4 and higher,
all 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
reorganized to push back two decades of entropy. Version 8 appeared in
Emacs 22.1 in 2006.
-Development was then quiet for a couple of years. Emacs 23.1, which is
-due out in 2009, will contain version 8.1. This version includes a few
+Development was then quiet for a couple of years. Emacs 23.1, released
+in June 2009, contains version 8.2. This version includes a few
new features and several bug fixes.
Bill Wohler, August 2008
@@ -9061,6 +9061,4 @@ Bill Wohler, August 2008
@c sentence-end-double-space: nil
@c End:
-@ignore
- arch-tag: b778477d-1a10-4a99-84de-f877a2ea6bef
-@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 @@
This manual documents nxml-mode, an Emacs major mode for editing
XML with RELAX NG support.
-Copyright @copyright{} 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright @copyright{} 2007, 2008, 2009, 2010
+Free Software Foundation, Inc.
@quotation
Permission 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.
This manual is not yet complete.
@menu
+* Introduction::
* Completion::
* Inserting end-tags::
* Paragraphs::
@@ -52,6 +54,58 @@ This manual is not yet complete.
* Limitations::
@end menu
+@node Introduction
+@chapter Introduction
+
+nXML mode is an Emacs major-mode for editing XML documents. It supports
+editing well-formed XML documents, and provides schema-sensitive editing
+using RELAX NG Compact Syntax. To get started, visit a file containing an
+XML document, and, if necessary, use @kbd{M-x nxml-mode} to switch to nXML
+mode. By default, @code{auto-mode-alist} and @code{magic-fallback-alist}
+put buffers in nXML mode if they have recognizable XML content or file
+extensions. You may wish to customize the settings, for example to
+recognize different file extensions.
+
+Once in nXML mode, you can type @kbd{C-h m} for basic information on the
+mode.
+
+The @file{etc/nxml} directory in the Emacs distribution contains some data
+files used by nXML mode, and includes two files (@file{test.valid.xml} and
+@file{test.invalid.xml}) that provide examples of valid and invalid XML
+documents.
+
+To get validation and schema-sensitive editing, you need a RELAX NG Compact
+Syntax (RNC) schema for your document (@pxref{Locating a schema}). The
+@file{etc/schema} directory includes some schemas for popular document
+types. See @url{http://relaxng.org/} for more information on RELAX NG.
+You can use the @samp{Trang} program from
+@url{http://www.thaiopensource.com/relaxng/trang.html} to
+automatically create RNC schemas. This program can:
+
+@itemize @bullet
+@item
+infer an RNC schema from an instance document;
+@item
+convert a DTD to an RNC schema;
+@item
+convert a RELAX NG XML syntax schema to an RNC schema.
+@end itemize
+
+@noindent To convert a RELAX NG XML syntax (@samp{.rng}) schema to a RNC
+one, you can also use the XSLT stylesheet from
+@url{http://www.pantor.com/download.html}.
+
+To convert a W3C XML Schema to an RNC schema, you need first to convert it
+to RELAX NG XML syntax using the RELAX NG converter tool @code{rngconv}
+(built on top of MSV). See @url{https://github.com/kohsuke/msv}
+and @url{https://msv.dev.java.net/}.
+
+For historical discussions only, see the mailing list archives at
+@url{http://groups.yahoo.com/group/emacs-nxml-mode/}. Please make all new
+discussions on the @samp{help-gnu-emacs} and @samp{emacs-devel} mailing
+lists. Report any bugs with @kbd{M-x report-emacs-bug}.
+
+
@node Completion
@chapter Completion
@@ -855,6 +909,3 @@ specification are not enforced.
@bye
-@ignore
- arch-tag: 3b6e8ac2-ae8d-4f38-bd43-ce9f80be04d6
-@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 @@
@setfilename ../../info/org
@settitle The Org Manual
-@set VERSION 7.01
-@set DATE July 2010
+@set VERSION 7.3
+@set DATE November 2010
@c Use proper quote and backtick for code sections in PDF output
@c Cf. Texinfo manual 14.2
@@ -22,6 +22,24 @@
@finalout
@c Macro definitions
+@macro orgcmd{key,command}
+@iftex
+@kindex \key\
+@findex \command\
+@item @kbd{\key\} @hskip 0pt plus 1filll @code{\command\}
+@end iftex
+@ifnottex
+@kindex \key\
+@findex \command\
+@item @kbd{\key\} @tie{}@tie{}@tie{}@tie{}(@code{\command\})
+@end ifnottex
+@end macro
+
+@macro orgkey{key}
+@kindex \key\
+@item @kbd{\key\}
+@end macro
+
@iftex
@c @hyphenation{time-stamp time-stamps time-stamp-ing time-stamp-ed}
@end iftex
@@ -122,6 +140,7 @@ with contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison,
* History and Acknowledgments:: How Org came into being
* Main Index:: An index of Org's concepts and features
* Key Index:: Key bindings and where they are described
+* Command and Function Index:: Command names and some internal functions
* Variable Index:: Variables mentioned in the manual
@detailmenu
@@ -244,6 +263,7 @@ Dates and times
* Resolving idle time:: Resolving time if you've been idle
* Effort estimates:: Planning work effort in advance
* Relative timer:: Notes with a running timer
+* Countdown timer:: Starting a countdown timer for a task
Creating timestamps
@@ -364,6 +384,7 @@ HTML export
* Links in HTML export:: How links will be interpreted and formatted
* Tables in HTML export:: How to modify the formatting of tables
* Images in HTML export:: How to insert figures into HTML output
+* Math formatting in HTML export:: Beautiful math also on the web
* Text areas in HTML export:: An alternative way to show an example
* CSS support:: Changing the appearance of the output
* JavaScript support:: Info and Folding in a web browser
@@ -436,16 +457,22 @@ Using header arguments
* Buffer-wide header arguments:: Set default values for a specific buffer
* Header arguments in Org-mode properties:: Set default values for a buffer or heading
* Code block specific header arguments:: The most common way to set values
+* Header arguments in function calls:: The most specific level
Specific header arguments
* var:: Pass arguments to code blocks
-* results:: Specify the type of results and how they will be collected and handled
+* results:: Specify the type of results and how they will
+ be collected and handled
* file:: Specify a path for file output
-* dir:: Specify the default directory for code block execution
+* dir:: Specify the default (possibly remote)
+ directory for code block execution
* exports:: Export code and/or results
* tangle:: Toggle tangling and specify file name
-* no-expand:: Turn off variable assignment and noweb expansion during tangling
+* comments:: Toggle insertion of comments in tangled
+ code files
+* no-expand:: Turn off variable assignment and noweb
+ expansion during tangling
* session:: Preserve the state of code evaluation
* noweb:: Toggle expansion of noweb references
* cache:: Avoid re-evaluating unchanged code blocks
@@ -453,10 +480,12 @@ Specific header arguments
* colnames:: Handle column names in tables
* rownames:: Handle row names in tables
* shebang:: Make tangled files executable
+* eval:: Limit evaluation of specific code blocks
Miscellaneous
* Completion:: M-TAB knows what you need
+* Easy Templates:: Quick insertion of structural elements
* Speed keys:: Electric commands at the beginning of a headline
* Code evaluation security:: Org mode files evaluate inline code
* Customization:: Adapting Org to your taste
@@ -608,18 +637,6 @@ step for this directory:
(setq load-path (cons "~/path/to/orgdir/contrib/lisp" load-path))
@end example
-@sp 2
-@cartouche
-XEmacs users now need to install the file @file{noutline.el} from
-the @file{xemacs} sub-directory of the Org distribution. Use the
-command:
-
-@example
- make install-noutline
-@end example
-@end cartouche
-@sp 2
-
@noindent Now byte-compile the Lisp files with the shell command:
@example
@@ -720,10 +737,15 @@ active region by using the mouse to select a region, or pressing
If you find problems with Org, or if you have questions, remarks, or ideas
about it, please mail to the Org mailing list @email{emacs-orgmode@@gnu.org}.
If you are not a member of the mailing list, your mail will be passed to the
-list after a moderator has approved it.
-
-For bug reports, please provide as much information as possible, including
-the version information of Emacs (@kbd{M-x emacs-version @key{RET}}) and Org
+list after a moderator has approved it@footnote{Please consider subscribing
+to the mailing list, in order to minimize the work the mailing list
+moderators have to do.}.
+
+For bug reports, please first try to reproduce the bug with the latest
+version of Org available - if you are running an outdated version, it is
+quite possible that the bug has been fixed already. If the bug persists,
+prepare a report and provide as much information as possible, including the
+version information of Emacs (@kbd{M-x emacs-version @key{RET}}) and Org
(@kbd{M-x org-version @key{RET}}), as well as the Org related setup in
@file{.emacs}. The easiest way to do this is to use the command
@example
@@ -742,7 +764,7 @@ about:
@item What did you expect to happen?
@item What happened instead?
@end enumerate
-@noindent Thank you for helping to improve this mode.
+@noindent Thank you for helping to improve this program.
@subsubheading How to create a useful backtrace
@@ -886,9 +908,8 @@ Org uses just two commands, bound to @key{TAB} and
@cindex folded, subtree visibility state
@cindex children, subtree visibility state
@cindex subtree, subtree visibility state
-@table @kbd
-@kindex @key{TAB}
-@item @key{TAB}
+@table @asis
+@orgcmd{@key{TAB},org-cycle}
@emph{Subtree cycling}: Rotate current subtree among the states
@example
@@ -910,8 +931,7 @@ argument (@kbd{C-u @key{TAB}}), global cycling is invoked.
@cindex overview, global visibility state
@cindex contents, global visibility state
@cindex show all, global visibility state
-@kindex S-@key{TAB}
-@item S-@key{TAB}
+@orgcmd{S-@key{TAB},org-global-cycle}
@itemx C-u @key{TAB}
@emph{Global cycling}: Rotate the entire buffer among the states
@@ -925,22 +945,18 @@ CONTENTS view up to headlines of level N will be shown. Note that inside
tables, @kbd{S-@key{TAB}} jumps to the previous field.
@cindex show all, command
-@kindex C-u C-u C-u @key{TAB}
-@item C-u C-u C-u @key{TAB}
+@orgcmd{C-u C-u C-u @key{TAB},show-all}
Show all, including drawers.
-@kindex C-c C-r
-@item C-c C-r
+@orgcmd{C-c C-r,org-reveal}
Reveal context around point, showing the current entry, the following heading
and the hierarchy above. Useful for working near a location that has been
exposed by a sparse tree command (@pxref{Sparse trees}) or an agenda command
(@pxref{Agenda commands}). With a prefix argument show, on each
level, all sibling headings. With double prefix arg, also show the entire
subtree of the parent.
-@kindex C-c C-k
-@item C-c C-k
+@orgcmd{C-c C-k,show-branches}
Expose all the headings of the subtree, CONTENT view for just one subtree.
-@kindex C-c C-x b
-@item C-c C-x b
+@orgcmd{C-c C-x b,org-tree-to-indirect-buffer}
Show the current subtree in an indirect buffer@footnote{The indirect
buffer
@ifinfo
@@ -982,9 +998,8 @@ Furthermore, any entries with a @samp{VISIBILITY} property (@pxref{Properties
and Columns}) will get their visibility adapted accordingly. Allowed values
for this property are @code{folded}, @code{children}, @code{content}, and
@code{all}.
-@table @kbd
-@kindex C-u C-u @key{TAB}
-@item C-u C-u @key{TAB}
+@table @asis
+@orgcmd{C-u C-u @key{TAB},org-set-startup-visibility}
Switch back to the startup visibility of the buffer, i.e. whatever is
requested by startup options and @samp{VISIBILITY} properties in individual
entries.
@@ -997,24 +1012,18 @@ entries.
@cindex headline navigation
The following commands jump to other headlines in the buffer.
-@table @kbd
-@kindex C-c C-n
-@item C-c C-n
+@table @asis
+@orgcmd{C-c C-n,outline-next-visible-heading}
Next heading.
-@kindex C-c C-p
-@item C-c C-p
+@orgcmd{C-c C-p,outline-previous-visible-heading}
Previous heading.
-@kindex C-c C-f
-@item C-c C-f
+@orgcmd{C-c C-f,org-forward-same-level}
Next heading same level.
-@kindex C-c C-b
-@item C-c C-b
+@orgcmd{C-c C-b,org-backward-same-level}
Previous heading same level.
-@kindex C-c C-u
-@item C-c C-u
+@orgcmd{C-c C-u,outline-up-heading}
Backward to higher level heading.
-@kindex C-c C-j
-@item C-c C-j
+@orgcmd{C-c C-j,org-goto}
Jump to a different place without changing the current outline
visibility. Shows the document structure in a temporary buffer, where
you can use the following keys to find your destination:
@@ -1049,9 +1058,8 @@ See also the variable @code{org-goto-interface}.
@cindex sorting, of subtrees
@cindex subtrees, cut and paste
-@table @kbd
-@kindex M-@key{RET}
-@item M-@key{RET}
+@table @asis
+@orgcmd{M-@key{RET},org-insert-heading}
@vindex org-M-RET-may-split-line
Insert new heading with same level as current. If the cursor is in a
plain 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
used at the end of a folded subtree (i.e. behind the ellipses at the end
of a headline), then a headline like the current one will be inserted
after the end of the subtree.
-@kindex C-@key{RET}
-@item C-@key{RET}
+@orgcmd{C-@key{RET},org-insert-heading-respect-content}
Just like @kbd{M-@key{RET}}, except when adding a new heading below the
current heading, the new heading is placed after the body instead of before
it. This command works from anywhere in the entry.
-@kindex M-S-@key{RET}
-@item M-S-@key{RET}
+@orgcmd{M-S-@key{RET},org-insert-todo-heading}
@vindex org-treat-insert-todo-heading-as-state-change
Insert new TODO entry with same level as current heading. See also the
variable @code{org-treat-insert-todo-heading-as-state-change}.
-@kindex C-S-@key{RET}
-@item C-S-@key{RET}
+@orgcmd{C-S-@key{RET},org-insert-todo-heading-respect-content}
Insert new TODO entry with same level as current heading. Like
@kbd{C-@key{RET}}, the new headline will be inserted after the current
subtree.
-@kindex @key{TAB}
-@item @key{TAB} @r{in new, empty entry}
+@orgcmd{@key{TAB},org-cycle}
In a new entry with no text yet, the first @key{TAB} demotes the entry to
become a child of the previous one. The next @key{TAB} makes it a parent,
and so on, all the way to top level. Yet another @key{TAB}, and you are back
to the initial level.
-@kindex M-@key{left}
-@item M-@key{left}
+@orgcmd{M-@key{left},org-do-promote}
Promote current heading by one level.
-@kindex M-@key{right}
-@item M-@key{right}
+@orgcmd{M-@key{right},org-do-demote}
Demote current heading by one level.
-@kindex M-S-@key{left}
-@item M-S-@key{left}
+@orgcmd{M-S-@key{left},org-promote-subtree}
Promote the current subtree by one level.
-@kindex M-S-@key{right}
-@item M-S-@key{right}
+@orgcmd{M-S-@key{right},org-demote-subtree}
Demote the current subtree by one level.
-@kindex M-S-@key{up}
-@item M-S-@key{up}
+@orgcmd{M-S-@key{up},org-move-subtree-up}
Move subtree up (swap with previous subtree of same
level).
-@kindex M-S-@key{down}
-@item M-S-@key{down}
+@orgcmd{M-S-@key{down},org-move-subtree-down}
Move subtree down (swap with next subtree of same level).
-@kindex C-c C-x C-w
-@item C-c C-x C-w
+@orgcmd{C-c C-x C-w,org-cut-subtree}
Kill subtree, i.e. remove it from buffer but save in kill ring.
With a numeric prefix argument N, kill N sequential subtrees.
-@kindex C-c C-x M-w
-@item C-c C-x M-w
+@orgcmd{C-c C-x M-w,org-copy-subtree}
Copy subtree to kill ring. With a numeric prefix argument N, copy the N
sequential subtrees.
-@kindex C-c C-x C-y
-@item C-c C-x C-y
+@orgcmd{C-c C-x C-y,org-paste-subtree}
Yank subtree from kill ring. This does modify the level of the subtree to
make sure the tree fits in nicely at the yank position. The yank level can
also be specified with a numeric prefix argument, or by yanking after a
headline marker like @samp{****}.
-@kindex C-y
-@item C-y
+@orgcmd{C-y,org-yank}
@vindex org-yank-adjusted-subtrees
@vindex org-yank-folded-subtrees
Depending 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
force a normal yank is @kbd{C-u C-y}. If you use @code{yank-pop} after a
yank, it will yank previous kill items plainly, without adjustment and
folding.
-@kindex C-c C-x c
-@item C-c C-x c
+@orgcmd{C-c C-x c,org-clone-subtree-with-time-shift}
Clone a subtree by making a number of sibling copies of it. You will be
prompted for the number of copies to make, and you can also specify if any
timestamps in the entry should be shifted. This can be useful, for example,
to create a number of tasks related to a series of lectures to prepare. For
more details, see the docstring of the command
@code{org-clone-subtree-with-time-shift}.
-@kindex C-c C-w
-@item C-c C-w
+@orgcmd{C-c C-w,org-refile}
Refile entry or region to a different location. @xref{Refiling notes}.
-@kindex C-c ^
-@item C-c ^
+@orgcmd{C-c ^,org-sort-entries-or-items}
Sort same-level entries. When there is an active region, all entries in the
region will be sorted. Otherwise the children of the current headline are
sorted. 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
your own function to extract the sorting key. With a @kbd{C-u} prefix,
sorting will be case-sensitive. With two @kbd{C-u C-u} prefixes, duplicate
entries will also be removed.
-@kindex C-x n s
-@item C-x n s
+@orgcmd{C-x n s,org-narrow-to-subtree}
Narrow buffer to current subtree.
-@kindex C-x n w
-@item C-x n w
+@orgcmd{C-x n w,widen}
Widen buffer to remove narrowing.
-@kindex C-c *
-@item C-c *
+@orgcmd{C-c *,org-toggle-heading}
Turn a normal line or plain list item into a headline (so that it becomes a
subheading at its location). Also turn a headline into a normal line by
removing 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.
Org-mode contains several commands creating such trees, all these
commands can be accessed through a dispatcher:
-@table @kbd
-@kindex C-c /
-@item C-c /
+@table @asis
+@orgcmd{C-c /,org-sparse-tree}
This prompts for an extra key to select a sparse-tree creating command.
@kindex C-c / r
@item C-c / r
@@ -1264,9 +1251,9 @@ part of the document and print the resulting file.
@cindex ordered lists
Within an entry of the outline tree, hand-formatted lists can provide
-additional structure. They also provide a way to create lists of
-checkboxes (@pxref{Checkboxes}). Org supports editing such lists,
-and the HTML exporter (@pxref{Exporting}) parses and formats them.
+additional structure. They also provide a way to create lists of checkboxes
+(@pxref{Checkboxes}). Org supports editing such lists, and every exporter
+(@pxref{Exporting}) can parse and format them.
Org knows ordered lists, unordered lists, and description lists.
@itemize @bullet
@@ -1279,26 +1266,39 @@ visually indistinguishable from true headlines. In short: even though
@samp{*} is supported, it may be better to not use it for plain list items.}
as bullets.
@item
+@vindex org-plain-list-ordered-item-terminator
@emph{Ordered} list items start with a numeral followed by either a period or
-a right parenthesis, such as @samp{1.} or @samp{1)}. If you want a list to
-start a different value (e.g. 20), start the text of the item with
-@code{[@@start:20]}.
+a right parenthesis@footnote{You can filter out any of them by configuring
+@code{org-plain-list-ordered-item-terminator}.}, such as @samp{1.} or
+@samp{1)}. If you want a list to start a different value (e.g. 20), start
+the text of the item with @code{[@@20]}@footnote{If there's a checkbox in the
+item, the cookie must be put @emph{before} the checkbox.}. Those constructs
+can be used in any item of the list in order to enforce a particular
+numbering.
@item
@emph{Description} list items are unordered list items, and contain the
separator @samp{ :: } to separate the description @emph{term} from the
description.
@end itemize
-@vindex org-empty-line-terminates-plain-lists
Items belonging to the same list must have the same indentation on the first
line. In particular, if an ordered list reaches number @samp{10.}, then the
2--digit numbers must be written left-aligned with the other numbers in the
-list. Indentation also determines the end of a list item. It ends before
-the next line that is indented like the bullet/number, or less. Empty lines
-are part of the previous item, so you can have several paragraphs in one
-item. If you would like an empty line to terminate all currently open plain
-lists, configure the variable @code{org-empty-line-terminates-plain-lists}.
-Here is an example:
+list.
+
+@vindex org-list-ending-method
+@vindex org-list-end-regexp
+@vindex org-empty-line-terminates-plain-lists
+Two methods@footnote{To disable either of them, configure
+@code{org-list-ending-method}.} are provided to terminate lists. A list ends
+before the next line that is indented like the bullet/number or less, or it
+ends before two blank lines@footnote{See also
+@code{org-empty-line-terminates-plain-lists}.}. In both cases, all levels of
+the list are closed@footnote{So you cannot have a sublist, some text and then
+another sublist while still in the same top-level list item. This used to be
+possible, but it was only supported in the HTML exporter and difficult to
+manage with automatic indentation.}. For finer control, you can end lists
+with any pattern set in @code{org-list-end-regexp}. Here is an example:
@example
@group
@@ -1309,8 +1309,8 @@ Here is an example:
+ this was already my favorite scene in the book
+ I really like Miranda Otto.
3. Peter Jackson being shot by Legolas
- - on DVD only
He makes a really funny face when it happens.
+ - on DVD only
But in the end, no individual scenes matter but the film as a whole.
Important actors in this film are:
- @b{Elijah Wood} :: He plays Frodo
@@ -1325,19 +1325,23 @@ XEmacs, you should use Kyle E. Jones' @file{filladapt.el}. To turn this on,
put into @file{.emacs}: @code{(require 'filladapt)}}, and by exporting them
properly (@pxref{Exporting}). Since indentation is what governs the
structure of these lists, many structural constructs like @code{#+BEGIN_...}
-blocks can be indented to signal that they should be part of a list item.
+blocks can be indented to signal that they should be considered of a list
+item.
@vindex org-list-demote-modify-bullet
If you find that using a different bullet for a sub-list (than that used for
the current list-level) improves readability, customize the variable
@code{org-list-demote-modify-bullet}.
-The following commands act on items when the cursor is in the first line
-of an item (the line with the bullet or number).
+@vindex org-list-automatic-rules
+The following commands act on items when the cursor is in the first line of
+an item (the line with the bullet or number). Some of them imply the
+application of automatic rules to keep list structure in tact. If some of
+these actions get in your way, configure @code{org-list-automatic-rules}
+to disable them individually.
-@table @kbd
-@kindex @key{TAB}
-@item @key{TAB}
+@table @asis
+@orgcmd{@key{TAB},org-cycle}
@vindex org-cycle-include-plain-lists
Items can be folded just like headline levels. Normally this works only if
the 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
will be treated like low-level. The level of an item is then given by the
indentation of the bullet/number. Items are always subordinate to real
headlines, however; the hierarchies remain completely separated.
-
-If @code{org-cycle-include-plain-lists} has not been set, @key{TAB}
-fixes the indentation of the current line in a heuristic way.
-@kindex M-@key{RET}
-@item M-@key{RET}
+@orgcmd{M-@key{RET},org-insert-heading}
@vindex org-M-RET-may-split-line
+@vindex org-list-automatic-rules
Insert new item at current level. With a prefix argument, force a new
heading (@pxref{Structure editing}). If this command is used in the middle
of a line, the line is @emph{split} and the rest of the line becomes the new
item@footnote{If you do not want the line to be split, customize the variable
-@code{org-M-RET-may-split-line}.}. If this command is executed in the
-@emph{whitespace before a bullet or number}, the new item is created
-@emph{before} the current item. If the command is executed in the white
-space before the text that is part of an item but does not contain the
-bullet, a bullet is added to the current line.
+@code{org-M-RET-may-split-line}.}. If this command is executed @emph{before
+item's body}, the new item is created @emph{before} the current item. If the
+command is executed in the white space before the text that is part of an
+item but does not contain the bullet, a bullet is added to the current line.
+
+As a new item cannot be inserted in a structural construct (like an example
+or source code block) within a list, Org will instead insert it right before
+the structure, or return an error.
@kindex M-S-@key{RET}
@item M-S-@key{RET}
Insert a new item with a checkbox (@pxref{Checkboxes}).
-@kindex @key{TAB}
-@item @key{TAB} @r{in new, empty item}
+@orgcmd{@key{TAB},org-cycle}
In a new item with no text yet, the first @key{TAB} demotes the item to
-become a child of the previous one. The next @key{TAB} makes it a parent,
-and so on, all the way to the left margin. Yet another @key{TAB}, and you
-are back to the initial level.
-@kindex S-@key{up}
+become a child of the previous one. Subsequents @key{TAB} move the item to
+meaningful levels in the list and eventually get it back to its initial
+position.
@kindex S-@key{down}
@item S-@key{up}
@itemx S-@key{down}
@@ -1396,25 +1398,35 @@ Decrease/increase the indentation of an item, leaving children alone.
@item M-S-@key{left}
@itemx M-S-@key{right}
Decrease/increase the indentation of the item, including subitems.
-Initially, the item tree is selected based on current indentation.
-When these commands are executed several times in direct succession,
-the initially selected region is used, even if the new indentation
-would imply a different hierarchy. To use the new hierarchy, break
-the command chain with a cursor motion or so.
+Initially, the item tree is selected based on current indentation. When
+these commands are executed several times in direct succession, the initially
+selected region is used, even if the new indentation would imply a different
+hierarchy. To use the new hierarchy, break the command chain with a cursor
+motion or so.
+
+As a special case, using this command on the very first item of a list will
+move the whole list. This behavior can be disabled by configuring
+@code{org-list-automatic-rules}. The global indentation of a list has no
+influence on the text @emph{after} the list.
@kindex C-c C-c
@item C-c C-c
If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the
-state of the checkbox. If not, this command makes sure that all the
-items on this list level use the same bullet. Furthermore, if this is
-an ordered list, make sure the numbering is OK.
+state of the checkbox. Also, makes sure that all the
+items on this list level use the same bullet and that the numbering of list
+items (if applicable) is correct.
@kindex C-c -
+@vindex org-plain-list-ordered-item-terminator
+@vindex org-list-automatic-rules
@item C-c -
Cycle the entire list level through the different itemize/enumerate bullets
-(@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}). With a numeric prefix
-argument N, select the Nth bullet from this list. If there is an active
-region when calling this, all lines will be converted to list items. If the
-first line already was a list item, any item markers will be removed from the
-list. Finally, even without an active region, a normal line will be
+(@samp{-}, @samp{+}, @samp{*}, @samp{1.}, @samp{1)}) or a subset of them,
+depending on @code{org-plain-list-ordered-item-terminator}, the type of list,
+and its position@footnote{See @code{bullet} rule in
+@code{org-list-automatic-rules} for more information.}. With a numeric
+prefix argument N, select the Nth bullet from this list. If there is an
+active region when calling this, all lines will be converted to list items.
+If the first line already was a list item, any item markers will be removed
+from the list. Finally, even without an active region, a normal line will be
converted into a list item.
@kindex C-c *
@item C-c *
@@ -1696,8 +1708,7 @@ unpredictable for you, configure the variables
@table @kbd
@tsubheading{Creation and conversion}
-@kindex C-c |
-@item C-c |
+@orgcmd{C-c |,org-table-create-or-convert-from-region}
Convert the active region to table. If every line contains at least one
TAB character, the function assumes that the material is tab separated.
If 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
@kbd{|Name|Phone|Age @key{RET} |- @key{TAB}}.
@tsubheading{Re-aligning and field motion}
-@kindex C-c C-c
-@item C-c C-c
+@orgcmd{C-c C-c,org-ctrl-c-ctrl-c}
Re-align the table without moving the cursor.
@c
-@kindex @key{TAB}
-@item @key{TAB}
+@orgcmd{<TAB>,org-cycle}
Re-align the table, move to the next field. Creates a new row if
necessary.
@c
-@kindex S-@key{TAB}
-@item S-@key{TAB}
+@orgcmd{S-@key{TAB},org-shifttab}
Re-align, move to previous field.
@c
-@kindex @key{RET}
-@item @key{RET}
+@orgcmd{@key{RET},org-return}
Re-align the table and move down to next row. Creates a new row if
necessary. At the beginning or end of a line, @key{RET} still does
NEWLINE, so it can be used to split a table.
@@ -1940,9 +1947,10 @@ on a per-file basis with:
@end example
If you would like to overrule the automatic alignment of number-rich columns
-to the right and of string-rich column to the left, you and use @samp{<r>} or
-@samp{<l>} in a similar fashion. You may also combine alignment and field
-width like this: @samp{<l10>}.
+to the right and of string-rich column to the left, you and use @samp{<r>},
+@samp{c}@footnote{Centering does not work inside Emacs, but it does have an
+effect when exporting to HTML.} or @samp{<l>} in a similar fashion. You may
+also combine alignment and field width like this: @samp{<l10>}.
Lines which only contain these formatting cookies will be removed
automatically when exporting the document.
@@ -2807,23 +2815,13 @@ text before the first headline is usually not exported, so the first such
target should be after the first headline, or in the line directly before the
first headline.}.
-If no dedicated target exists, Org will search for the words in the link. In
-the above example the search would be for @samp{my target}. Links starting
-with a star like @samp{*My Target} restrict the search to
-headlines@footnote{To insert a link targeting a headline, in-buffer
-completion can be used. Just type a star followed by a few optional letters
-into the buffer and press @kbd{M-@key{TAB}}. All headlines in the current
-buffer will be offered as completions. @xref{Handling links}, for more
-commands creating links.}. When searching, Org-mode will first try an
-exact match, but then move on to more and more lenient searches. For
-example, the link @samp{[[*My Targets]]} will find any of the following:
-
-@example
-** My targets
-** TODO my targets are bright
-** my 20 targets are
-@end example
-
+If no dedicated target exists, Org will search for a headline that is exactly
+the link text but may also include a TODO keyword and tags@footnote{To insert
+a link targeting a headline, in-buffer completion can be used. Just type a
+star followed by a few optional letters into the buffer and press
+@kbd{M-@key{TAB}}. All headlines in the current buffer will be offered as
+completions.}. In non-Org files, the search will look for the words in the
+link text, in the above example the search would be for @samp{my target}.
Following a link pushes a mark onto Org's own mark ring. You can
return to the previous position with @kbd{C-c &}. Using this command
@@ -3087,11 +3085,17 @@ variable @code{org-display-internal-link-with-indirect-buffer}}.
@cindex inlining images
@cindex images, inlining
@kindex C-c C-x C-v
+@vindex org-startup-with-inline-images
+@cindex @code{inlineimages}, STARTUP keyword
+@cindex @code{noinlineimages}, STARTUP keyword
@item C-c C-x C-v
Toggle the inline display of linked images. Normally this will only inline
images that have no description part in the link, i.e. images that will also
be inlined during export. When called with a prefix argument, also display
-images that do have a link description.
+images that do have a link description. You can ask for inline images to be
+displayed at startup by configuring the variable
+@code{org-startup-with-inline-images}@footnote{with corresponding
+@code{#+STARTUP} keywords @code{inlineimages} and @code{inlineimages}}.
@cindex mark ring
@kindex C-c %
@item C-c %
@@ -3157,15 +3161,16 @@ letters, numbers, @samp{-}, and @samp{_}. Abbreviations are resolved
according to the information in the variable @code{org-link-abbrev-alist}
that relates the linkwords to replacement text. Here is an example:
-@lisp
+@smalllisp
@group
(setq org-link-abbrev-alist
'(("bugzilla" . "http://10.1.2.9/bugzilla/show_bug.cgi?id=")
("google" . "http://www.google.com/search?q=")
- ("ads" . "http://adsabs.harvard.edu/cgi-bin/
- nph-abs_connect?author=%s&db_key=AST")))
+ ("gmap" . "http://maps.google.com/maps?q=%s")
+ ("omap" . "http://nominatim.openstreetmap.org/search?q=%s&polygon=1")
+ ("ads" . "http://adsabs.harvard.edu/cgi-bin/nph-abs_connect?author=%s&db_key=AST")))
@end group
-@end lisp
+@end smalllisp
If the replacement text contains the string @samp{%s}, it will be
replaced 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.
With the above setting, you could link to a specific bug with
@code{[[bugzilla:129]]}, search the web for @samp{OrgMode} with
-@code{[[google:OrgMode]]} and find out what the Org author is
-doing besides Emacs hacking with @code{[[ads:Dominik,C]]}.
+@code{[[google:OrgMode]]}, show the map location of the Free Software
+Foundation @code{[[gmap:51 Franklin Street, Boston]]} or of Carsten office
+@code{[[omap:Science Park 904, Amsterdam, The Netherlands]]} and find out
+what the Org author is doing besides Emacs hacking with
+@code{[[ads:Dominik,C]]}.
If you need special abbreviations just for a single Org buffer, you
can define them in the file with
@@ -3810,7 +3818,10 @@ The habit is a TODO, with a TODO keyword representing an open state.
@item
The property @code{STYLE} is set to the value @code{habit}.
@item
-The TODO has a scheduled date, with a @code{.+} style repeat interval.
+The TODO has a scheduled date, usually with a @code{.+} style repeat
+interval. A @code{++} style may be appropriate for habits with time
+constraints, e.g., must be done on weekends, or a @code{+} style for an
+unusual habit that can have a backlog, e.g., weekly reports.
@item
The TODO may also have minimum and maximum ranges specified by using the
syntax @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
@vindex org-priority-faces
By default, Org-mode supports three priorities: @samp{A}, @samp{B}, and
@samp{C}. @samp{A} is the highest priority. An entry without a cookie is
-treated as priority @samp{B}. Priorities make a difference only in the
-agenda (@pxref{Weekly/daily agenda}); outside the agenda, they have no
-inherent meaning to Org-mode. The cookies can be highlighted with special
-faces by customizing the variable @code{org-priority-faces}.
+treated just like priority @samp{B}. Priorities make a difference only for
+sorting in the agenda (@pxref{Weekly/daily agenda}); outside the agenda, they
+have no inherent meaning to Org-mode. The cookies can be highlighted with
+special faces by customizing the variable @code{org-priority-faces}.
-Priorities can be attached to any outline tree entries; they do not need
-to be TODO items.
+Priorities can be attached to any outline node; they do not need to be TODO
+items.
@table @kbd
@kindex @kbd{C-c ,}
@@ -4017,13 +4028,16 @@ large number of subtasks (@pxref{Checkboxes}).
@section Checkboxes
@cindex checkboxes
-Every item in a plain list (@pxref{Plain lists}) can be made into a
-checkbox by starting it with the string @samp{[ ]}. This feature is
-similar to TODO items (@pxref{TODO Items}), but is more lightweight.
-Checkboxes are not included into the global TODO list, so they are often
-great to split a task into a number of simple steps. Or you can use
-them in a shopping list. To toggle a checkbox, use @kbd{C-c C-c}, or
-use the mouse (thanks to Piotr Zielinski's @file{org-mouse.el}).
+@vindex org-list-automatic-rules
+Every item in a plain list@footnote{With the exception of description
+lists. But you can allow it by modifying @code{org-list-automatic-rules}
+accordingly.} (@pxref{Plain lists}) can be made into a checkbox by starting
+it with the string @samp{[ ]}. This feature is similar to TODO items
+(@pxref{TODO Items}), but is more lightweight. Checkboxes are not included
+into the global TODO list, so they are often great to split a task into a
+number of simple steps. Or you can use them in a shopping list. To toggle a
+checkbox, use @kbd{C-c C-c}, or use the mouse (thanks to Piotr Zielinski's
+@file{org-mouse.el}).
Here is an example of a checkbox list.
@@ -4738,8 +4752,8 @@ optional. The individual parts have the following meaning:
@var{property} @r{The property that should be edited in this column.}
@r{Special properties representing meta data are allowed here}
@r{as well (@pxref{Special properties})}
-(title) @r{The header text for the column. If omitted, the}
- @r{property name is used.}
+@var{title} @r{The header text for the column. If omitted, the property}
+ @r{name is used.}
@{@var{summary-type}@} @r{The summary type. If specified, the column values for}
@r{parent nodes are computed from the children.}
@r{Supported summary types are:}
@@ -4756,9 +4770,10 @@ optional. The individual parts have the following meaning:
@{:min@} @r{Smallest time value in column.}
@{:max@} @r{Largest time value.}
@{:mean@} @r{Arithmetic mean of time values.}
- @{@@min@} @r{Minimum age (in days/hours/mins/seconds).}
- @{@@max@} @r{Maximum age (in days/hours/mins/seconds).}
- @{@@mean@} @r{Arithmetic mean of ages (in days/hours/mins/seconds).}
+ @{@@min@} @r{Minimum age (in days/hours/mins/seconds).}
+ @{@@max@} @r{Maximum age (in days/hours/mins/seconds).}
+ @{@@mean@} @r{Arithmetic mean of ages (in days/hours/mins/seconds).}
+ @{est+@} @r{Add low-high estimates.}
@end example
@noindent
@@ -4766,6 +4781,22 @@ Be aware that you can only have one summary type for any property you
include. Subsequent columns referencing the same property will all display the
same summary information.
+The @code{est+} summary type requires further explanation. It is used for
+combining estimates, expressed as low-high ranges. For example, instead
+of estimating a particular task will take 5 days, you might estimate it as
+5-6 days if you're fairly confident you know how much woark is required, or
+1-10 days if you don't really know what needs to be done. Both ranges
+average at 5.5 days, but the first represents a more predictable delivery.
+
+When combining a set of such estimates, simply adding the lows and highs
+produces an unrealistically wide result. Instead, @code{est+} adds the
+statistical mean and variance of the sub-tasks, generating a final estimate
+from the sum. For example, suppose you had ten tasks, each of which was
+estimated at 0.5 to 2 days of work. Straight addition produces an estimate
+of 5 to 20 days, representing what to expect if everything goes either
+extremely well or extremely poorly. In contrast, @code{est+} estimates the
+full job more realistically, at 10-15 days.
+
Here is an example for a complete columns definition, along with allowed
values.
@@ -4978,6 +5009,7 @@ is used in a much wider sense.
* Resolving idle time:: Resolving time if you've been idle
* Effort estimates:: Planning work effort in advance
* Relative timer:: Notes with a running timer
+* Countdown timer:: Starting a countdown timer for a task
@end menu
@@ -5067,15 +5099,13 @@ format. All commands listed below produce timestamps in the correct
format.
@table @kbd
-@kindex C-c .
-@item C-c .
+@orgcmd{C-c .,org-time-stamp}
Prompt for a date and insert a corresponding timestamp. When the cursor is
at an existing timestamp in the buffer, the command is used to modify this
timestamp instead of inserting a new one. When this command is used twice in
succession, a time range is inserted.
@c
-@kindex C-c !
-@item C-c !
+@orgcmd{C-c !,org-time-stamp-inactive}
Like @kbd{C-c .}, but insert an inactive timestamp that will not cause
an agenda entry.
@c
@@ -5088,18 +5118,15 @@ Like @kbd{C-c .} and @kbd{C-c !}, but use the alternative format which
contains date and time. The default time can be rounded to multiples of 5
minutes, see the option @code{org-time-stamp-rounding-minutes}.
@c
-@kindex C-c <
-@item C-c <
+@orgcmd{C-c <,org-date-from-calendar}
Insert a timestamp corresponding to the cursor date in the Calendar.
@c
-@kindex C-c >
-@item C-c >
+@orgcmd{C-c >,org-goto-calendar}
Access the Emacs calendar for the current date. If there is a
timestamp in the current line, go to the corresponding date
instead.
@c
-@kindex C-c C-o
-@item C-c C-o
+@orgcmd{C-c C-o,org-open-at-point}
Access the agenda for the date given by the timestamp or -range at
point (@pxref{Weekly/daily agenda}).
@c
@@ -5206,6 +5233,16 @@ The function understands English month and weekday abbreviations. If
you want to use unabbreviated names and/or other languages, configure
the variables @code{parse-time-months} and @code{parse-time-weekdays}.
+You can specify a time range by giving start and end times or by giving a
+start time and a duration (in HH:MM format). Use '-' or '--' as the separator
+in the former case and use '+' as the separator in the latter case. E.g.
+
+@example
+11am-1:15pm --> 11:00-13:15
+11am--1:15pm --> same as above
+11am+2:15 --> same as above
+@end example
+
@cindex calendar, for selecting date
@vindex org-popup-calendar-for-date-prompt
Parallel 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
mistake, or if you ended up working on something else.
@kindex C-c C-x C-j
@item C-c C-x C-j
-Jump to the entry that contains the currently running clock. With a
-@kbd{C-u} prefix arg, select the target task from a list of recently clocked
-tasks.
+Jump to the headline of the currently clocked in task. With a @kbd{C-u}
+prefix arg, select the target task from a list of recently clocked tasks.
@kindex C-c C-x C-d
@item C-c C-x C-d
@vindex org-remove-highlights-with-change
@@ -5835,7 +5871,7 @@ with the @kbd{/} key in the agenda (@pxref{Agenda commands}). If you have
these estimates defined consistently, two or three key presses will narrow
down the list to stuff that fits into an available time slot.
-@node Relative timer, , Effort estimates, Dates and Times
+@node Relative timer, Countdown timer, Effort estimates, Dates and Times
@section Taking notes with a relative timer
@cindex relative timer
@@ -5877,6 +5913,20 @@ by a certain amount. This can be used to fix timer strings if the timer was
not started at exactly the right moment.
@end table
+@node Countdown timer, , Relative timer, Dates and Times
+@section Countdown timer
+@cindex Countdown timer
+@kindex C-c C-x ;
+@kindex ;
+
+Calling @code{org-timer-set-timer} from an Org-mode buffer runs a countdown
+timer. Use @key{;} from agenda buffers, @key{C-c C-x ;} everwhere else.
+
+@code{org-timer-set-timer} prompts the user for a duration and displays a
+countdown timer in the modeline. @code{org-timer-default-timer} sets the
+default countdown value. Giving a prefix numeric argument overrides this
+default value.
+
@node Capture - Refile - Archive, Agenda Views, Dates and Times, Top
@chapter Capture - Refile - Archive
@cindex capture
@@ -5934,6 +5984,7 @@ The following customization sets a default target file for notes, and defines
a global key@footnote{Please select your own key, @kbd{C-c c} is only a
suggestion.} for capturing new material.
+@vindex org-default-notes-file
@example
(setq org-default-notes-file (concat org-directory "/notes.org"))
(define-key global-map "\C-cc" 'org-capture)
@@ -5960,7 +6011,10 @@ process, so that you can resume your work without further distraction.
@kindex C-c C-w
@item C-c C-w
Finalize the capture process by refiling (@pxref{Refiling notes}) the note to
-a different place.
+a different place. Please realize that this is a normal refiling command
+that will be executed - so the cursor position at the moment you run this
+command is important. If you have inserted a tree with a parent and
+children, first move the cursor back to the parent.
@kindex C-c C-k
@item C-c C-k
@@ -6067,10 +6121,12 @@ Text to be inserted as it is.
@end table
@item target
-Specification of where the captured item should be placed.
-In Org-mode files, targets usually define a node. Entries will become
-children of this node, other types will be added to the table or list in the
-body of this node.
+@vindex org-default-notes-file
+Specification of where the captured item should be placed. In Org-mode
+files, targets usually define a node. Entries will become children of this
+node, other types will be added to the table or list in the body of this
+node. Most target specifications contain a file name. If that file name is
+the empty string, it defaults to @code{org-default-notes-file}.
Valid values are:
@table @code
@@ -6139,6 +6195,10 @@ with the capture.
@item :unnarrowed
Do not narrow the target buffer, simply show the full buffer. Default is to
narrow it so that you only see the new material.
+
+@item :kill-buffer
+If the target file was not yet visited when capture was invoked, kill the
+buffer again after capture is completed.
@end table
@end table
@@ -6191,16 +6251,19 @@ similar way.}:
@smallexample
Link type | Available keywords
-------------------+----------------------------------------------
-bbdb | %:name %:company
-bbdb | %::server %:port %:nick
-vm, wl, mh, rmail | %:type %:subject %:message-id
- | %:from %:fromname %:fromaddress
- | %:to %:toname %:toaddress
- | %: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}.}}
-gnus | %:group, @r{for messages also all email fields}
-w3, w3m | %:url
-info | %:file %:node
-calendar | %:date
+bbdb | %:name %:company
+irc | %:server %:port %:nick
+vm, wl, mh, mew, rmail | %:type %:subject %:message-id
+ | %:from %:fromname %:fromaddress
+ | %:to %:toname %:toaddress
+ | %:date @r{(message date header field)}
+ | %:date-timestamp @r{(date as active timestamp)}
+ | %:date-timestamp-inactive @r{(date as inactive timestamp)}
+ | %: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}.}}
+gnus | %:group, @r{for messages also all email fields}
+w3, w3m | %:url
+info | %:file %:node
+calendar | %:date
@end smallexample
@noindent
@@ -7247,6 +7310,7 @@ associated with the item.
@subsection Categories
@cindex category
+@cindex #+CATEGORY
The category is a broad label assigned to each agenda item. By default,
the category is simply derived from the file name, but you can also
specify it with a special line in the buffer, like this@footnote{For
@@ -7474,6 +7538,10 @@ Go to today.
@item j
Prompt for a date and go there.
@c
+@kindex J
+@item J
+Go to the currently clocked in task in the agenda buffer.
+@c
@kindex D
@item D
Toggle 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
having to recreate the agenda@footnote{Custom commands can preset a filter by
binding the variable @code{org-agenda-filter-preset} as an option. This
filter will then be applied to the view and persist as a basic filter through
-refreshes and more secondary filtering.}
+refreshes and more secondary filtering. The filter is a global property of
+the entire agenda view - in a block agenda, you should only set this in the
+global options section, not in the section of an individual block.}
You will be prompted for a tag selection letter, SPC will mean any tag at
all. 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
backend-specific, see the sections about the individual backends for more
information.
+@xref{Handling links,the discussion of image links}.
@node Literal examples, Include files, Images and tables, Markup
@section Literal examples
@@ -8631,13 +8702,24 @@ Here is an example
@cindex formatting source code, markup rules
If the example is source code from a programming language, or any other text
that can be marked up by font-lock in Emacs, you can ask for the example to
-look like the fontified Emacs buffer@footnote{Currently this works for the
-HTML backend, and requires the @file{htmlize.el} package version 1.34 or
-later. It also works for LaTeX with the listings package, if you turn on the
-option @code{org-export-latex-listings} and make sure that the listings
-package is included by the LaTeX header.}. This is done with the @samp{src}
-block, where you also need to specify the name of the major mode that should
-be used to fontify the example:
+look like the fontified Emacs buffer@footnote{This works automatically for
+the HTML backend (it requires version 1.34 of the @file{htmlize.el} package,
+which is distributed with Org.) Fontified code chunks in LaTeX can be
+achieved using either the listings or the
+@url{http://code.google.com/p/minted, minted,} package. To use listings, turn
+on the variable @code{org-export-latex-listings} and ensure that the listings
+package is included by the LaTeX header (e.g. by configuring
+@code{org-export-latex-packages-alist}). See the listings documentation for
+configuration options, including obtaining colored output. For minted it is
+necessary to install the program @url{http://pygments.org, pygments}, in
+addition to setting @code{org-export-latex-minted}, ensuring that the minted
+package is included by the LaTeX header, and ensuring that the
+@code{-shell-escape} option is passed to @file{pdflatex} (see
+@code{org-latex-to-pdf-process}). See the documentation of the variables
+@code{org-export-latex-listings} and @code{org-export-latex-minted} for
+further details.}. This is done with the @samp{src} block, where you also
+need to specify the name of the major mode that should be used to fontify the
+example:
@cindex #+BEGIN_SRC
@example
@@ -8794,12 +8876,9 @@ is a macro system based on Donald E. Knuth's @TeX{} system. Many of the
features described here as ``La@TeX{}'' are really from @TeX{}, but for
simplicity I am blurring this distinction.} is widely used to typeset
scientific documents. Org-mode supports embedding La@TeX{} code into its
-files, because many academics are used to reading La@TeX{} source code, and
-because it can be readily processed into images for HTML production.
-
-It is not necessary to mark La@TeX{} macros and code in any special way.
-If you observe a few conventions, Org-mode knows how to find it and what
-to do with it.
+files, because many academics are used to writing and reading La@TeX{} source
+code, and because it can be readily processed to produce pretty output for a
+number of export backends.
@menu
* Special symbols:: Greek letters and other symbols
@@ -8843,7 +8922,7 @@ La@TeX{}, see the variable @code{org-entities} for the complete list.
@samp{...} are all converted into special commands creating hyphens of
different lengths or a compact set of dots.
-If you would like to see entities displayed as utf8 characters, use the
+If you would like to see entities displayed as UTF8 characters, use the
following command@footnote{You can turn this on by default by setting the
variable @code{org-pretty-entities}, or on a per-file base with the
@code{#+STARTUP} option @code{entitiespretty}.}:
@@ -8884,6 +8963,9 @@ convention, or use, on a per-file basis:
#+OPTIONS: ^:@{@}
@end example
+@noindent With this setting, @samp{a_b} will not be interpreted as a
+subscript, but @samp{a_@{b@}} will.
+
@table @kbd
@kindex C-c C-x \
@item C-c C-x \
@@ -8896,31 +8978,31 @@ format sub- and superscripts in a WYSIWYM way.
@cindex La@TeX{} fragments
@vindex org-format-latex-header
-With symbols, sub- and superscripts, HTML is pretty much at its end when
-it comes to representing mathematical formulas@footnote{Yes, there is
-MathML, but that is not yet fully supported by many browsers, and there
-is no decent converter for turning La@TeX{} or ASCII representations of
-formulas into MathML. So for the time being, converting formulas into
-images seems the way to go.}. More complex expressions need a dedicated
-formula processor. To this end, Org-mode can contain arbitrary La@TeX{}
-fragments. It provides commands to preview the typeset result of these
-fragments, and upon export to HTML, all fragments will be converted to
-images and inlined into the HTML document@footnote{The La@TeX{} export
-will not use images for displaying La@TeX{} fragments but include these
-fragments directly into the La@TeX{} code.}. For this to work you
-need to be on a system with a working La@TeX{} installation. You also
-need the @file{dvipng} program, available at
-@url{http://sourceforge.net/projects/dvipng/}. The La@TeX{} header that
-will be used when processing a fragment can be configured with the
-variable @code{org-format-latex-header}.
+Going beyond symbols and sub- and superscripts, a full formula language is
+needed. Org-mode can contain La@TeX{} math fragments, and it supports ways
+to process these for several export backends. When exporting to La@TeX{},
+the code is obviously left as it is. When exporting to HTML, Org invokes the
+@uref{http://www.mathjax.org, MathJax library} (@pxref{Math formatting in
+HTML export}) to process and display the math@footnote{If you plan to use
+this regularly or on pages with significant page views, you should install
+@file{MathJax} on your own server in order to limit the load of our server.}.
+Finally, it can also process the mathematical expressions into
+images@footnote{For this to work you need to be on a system with a working
+La@TeX{} installation. You also need the @file{dvipng} program, available at
+@url{http://sourceforge.net/projects/dvipng/}. The La@TeX{} header that will
+be used when processing a fragment can be configured with the variable
+@code{org-format-latex-header}.} that can be displayed in a browser or in
+DocBook documents.
La@TeX{} fragments don't need any special marking at all. The following
snippets will be identified as La@TeX{} source code:
@itemize @bullet
@item
-Environments of any kind. The only requirement is that the
-@code{\begin} statement appears on a new line, preceded by only
-whitespace.
+Environments of any kind@footnote{When @file{MathJax} is used, only the
+environment recognized by @file{MathJax} will be processed. When dvipng is
+used to create images, any La@TeX{} environments will be handled.}. The only
+requirement is that the @code{\begin} statement appears on a new line,
+preceded by only whitespace.
@item
Text within the usual La@TeX{} math delimiters. To avoid conflicts with
currency 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
can configure the option @code{org-format-latex-options} to deselect the
ones you do not wish to have interpreted by the La@TeX{} converter.
+@vindex org-export-with-LaTeX-fragments
+LaTeX processing can be configured with the variable
+@code{org-export-with-LaTeX-fragments}. The default setting is @code{t}
+which means @file{MathJax} for HTML, and no processing for DocBook, ASCII and
+LaTeX backends. You can also set this variable on a per-file basis using one
+of these lines:
+
+@example
+#+OPTIONS: LaTeX:t @r{Do the right thing automatically (MathJax)}
+#+OPTIONS: LaTeX:dvipng @r{Force using dvipng images}
+#+OPTIONS: LaTeX:nil @r{Do not process La@TeX{} fragments at all}
+#+OPTIONS: LaTeX:verbatim @r{Verbatim export, for jsMath or so}
+@end example
+
@node Previewing LaTeX fragments, CDLaTeX mode, LaTeX fragments, Embedded LaTeX
@subsection Previewing LaTeX fragments
@cindex LaTeX fragments, preview
-La@TeX{} fragments can be processed to produce preview images of the
-typeset expressions:
+If you have @file{dvipng} installed, La@TeX{} fragments can be processed to
+produce preview images of the typeset expressions:
@table @kbd
@kindex C-c C-x C-l
@@ -8975,14 +9071,6 @@ some aspects of the preview. In particular, the @code{:scale} (and for HTML
export, @code{:html-scale}) property can be used to adjust the size of the
preview images.
-During HTML export (@pxref{HTML export}), all La@TeX{} fragments are
-converted into images and inlined into the document if the following
-setting is active:
-
-@lisp
-(setq org-export-with-LaTeX-fragments t)
-@end lisp
-
@node CDLaTeX mode, , Previewing LaTeX fragments, Embedded LaTeX
@subsection Using CDLa@TeX{} to enter math
@cindex CDLa@TeX{}
@@ -9200,7 +9288,7 @@ tags: @r{turn on/off inclusion of tags, may also be @code{not-in-toc}}
<: @r{turn on/off inclusion of any time/date stamps like DEADLINES}
*: @r{turn on/off emphasized text (bold, italic, underlined)}
TeX: @r{turn on/off simple @TeX{} macros in plain text}
-LaTeX: @r{turn on/off La@TeX{} fragments}
+LaTeX: @r{configure export of La@TeX{} fragments. Default @code{auto}}
skip: @r{turn on/off skipping the text before the first heading}
author: @r{turn on/off inclusion of author name/email into exported file}
email: @r{turn on/off inclusion of author email into exported file}
@@ -9333,6 +9421,7 @@ language, but with additional support for tables.
* Links in HTML export:: How links will be interpreted and formatted
* Tables in HTML export:: How to modify the formatting of tables
* Images in HTML export:: How to insert figures into HTML output
+* Math formatting in HTML export:: Beautiful math also on the web
* Text areas in HTML export:: An alternative way to show an example
* CSS support:: Changing the appearance of the output
* JavaScript support:: Info and Folding in a web browser
@@ -9468,7 +9557,7 @@ tables, place something like the following before the table:
#+ATTR_HTML: border="2" rules="all" frame="all"
@end example
-@node Images in HTML export, Text areas in HTML export, Tables in HTML export, HTML export
+@node Images in HTML export, Math formatting in HTML export, Tables in HTML export, HTML export
@subsection Images in HTML export
@cindex images, inline in HTML
@@ -9505,7 +9594,41 @@ support text viewers and accessibility, and align it to the right.
@noindent
and you could use @code{http} addresses just as well.
-@node Text areas in HTML export, CSS support, Images in HTML export, HTML export
+@node Math formatting in HTML export, Text areas in HTML export, Images in HTML export, HTML export
+@subsection Math formatting in HTML export
+@cindex MathJax
+@cindex dvipng
+
+La@TeX{} math snippets (@pxref{LaTeX fragments}) can be displayed in two
+different ways on HTML pages. The default is to use the
+@uref{http://www.mathjax.org, MathJax system} which should work out of the
+box with Org mode installation because @code{http://orgmode.org} serves
+@file{MathJax} for Org-mode users for small applications and for testing
+purposes. @b{If you plan to use this regularly or on pages with significant
+page views, you should install MathJax on your own server in order to limit
+the load of our server.} To configure @file{MathJax}, use the variable
+@code{org-export-html-mathjax-options} or insert something like the following
+into the buffer:
+
+@example
+#+MATHJAX: align:"left" mathml:t path:"/MathJax/MathJax.js"
+@end example
+
+@noindent See the docstring of the variable
+@code{org-export-html-mathjax-options} for the meaning of the parameters in
+this line.
+
+If you prefer, you can also request that La@TeX{} are processed into small
+images that will be inserted into the browser page. Before the availability
+of MathJax, this was the default method for Org files. This method requires
+that the @file{dvipng} program is available on your system. You can still
+get this processing with
+
+@example
+#+OPTIONS: LaTeX:dvipng
+@end example
+
+@node Text areas in HTML export, CSS support, Math formatting in HTML export, HTML export
@subsection Text areas in HTML export
@cindex text areas, in HTML
@@ -9595,6 +9718,11 @@ For longer style definitions, you can use several such lines. You could also
directly write a @code{<style>} @code{</style>} section in this way, without
referring to an external file.
+In order to add styles to a subtree, use the @code{:HTML_CONTAINER_CLASS:}
+property to assign a class to the tree. In order to specify CSS styles for a
+particular headline, you can use the id specified in a @code{:CUSTOM_ID:}
+property.
+
@c FIXME: More about header and footer styles
@c FIXME: Talk about links and targets.
@@ -9890,9 +10018,9 @@ different level - then the hierarchy above frames will produce the sectioning
structure of the presentation.
A template for useful in-buffer settings or properties can be inserted into
-the buffer with @kbd{M-x org-beamer-settings-template}. Among other things,
-this will install a column view format which is very handy for editing
-special properties used by beamer.
+the buffer with @kbd{M-x org-insert-beamer-options-template}. Among other
+things, this will install a column view format which is very handy for
+editing special properties used by beamer.
You can influence the structure of the presentation using the following
properties:
@@ -9957,7 +10085,7 @@ environment or the @code{BEAMER_col} property.
Column view provides a great way to set the environment of a node and other
important parameters. Make sure you are using a COLUMN format that is geared
toward this special purpose. The command @kbd{M-x
-org-beamer-settings-template} defines such a format.
+org-insert-beamer-options-template} defines such a format.
Here is a simple example Org document that is intended for beamer export.
@@ -10366,6 +10494,7 @@ Export only the visible part of the document.
@vindex org-icalendar-use-deadline
@vindex org-icalendar-use-scheduled
@vindex org-icalendar-categories
+@vindex org-icalendar-alarm-time
Some people use Org-mode for keeping track of projects, but still prefer a
standard calendar application for anniversaries and appointments. In this
case 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
@code{org-icalendar-use-deadline} and @code{org-icalendar-use-scheduled}.}.
As categories, it will use the tags locally defined in the heading, and the
file/tree category@footnote{To add inherited tags or the TODO state,
-configure the variable @code{org-icalendar-categories}.}.
+configure the variable @code{org-icalendar-categories}.}. See the variable
+@code{org-icalendar-alarm-time} for a way to assign alarms to entries with a
+time.
@vindex org-icalendar-store-UID
@cindex property, ID
@@ -10477,7 +10608,8 @@ variable, called @code{org-publish-project-alist}. Each element of the list
configures one project, and may be in one of the two following forms:
@lisp
- ("project-name" :property value :property value ...)
+ ("project-name" :property value :property value ...)
+ @r{i.e. a well-formed property list with alternating keys and values}
@r{or}
("project-name" :components ("project-name" "project-name" ...))
@@ -10553,20 +10685,20 @@ possibly transformed in the process. The default transformation is to export
Org files as HTML files, and this is done by the function
@code{org-publish-org-to-html} which calls the HTML exporter (@pxref{HTML
export}). But you also can publish your content as PDF files using
-@code{org-publish-org-to-pdf}. If you want to publish the Org file itself,
-but with @i{archived}, @i{commented}, and @i{tag-excluded} trees removed, use
-@code{org-publish-org-to-org} and set the parameters @code{:plain-source}
-and/or @code{:htmlized-source}. This will produce @file{file.org} and
-@file{file.org.html} in the publishing
+@code{org-publish-org-to-pdf}, or as @code{ascii}, @code{latin1} or
+@code{utf8} encoded files using the corresponding functions. If you want to
+publish the Org file itself, but with @i{archived}, @i{commented}, and
+@i{tag-excluded} trees removed, use @code{org-publish-org-to-org} and set the
+parameters @code{:plain-source} and/or @code{:htmlized-source}. This will
+produce @file{file.org} and @file{file.org.html} in the publishing
directory@footnote{@file{file-source.org} and @file{file-source.org.html} if
source and publishing directories are equal. Note that with this kind of
setup, you need to add @code{:exclude "-source\\.org"} to the project
definition in @code{org-publish-project-alist} to avoid that the published
source files will be considered as new org files the next time the project is
-published.}. Other files like images only
-need to be copied to the publishing destination, for this you may use
-@code{org-publish-attachment}. For non-Org files, you always need to
-specify the publishing function:
+published.}. Other files like images only need to be copied to the
+publishing destination, for this you may use @code{org-publish-attachment}.
+For non-Org files, you always need to specify the publishing function:
@multitable @columnfractions 0.3 0.7
@item @code{:publishing-function}
@@ -10960,9 +11092,9 @@ e.g.
Org-mode provides a number of features for working with live source code,
including editing of code blocks in their native major-mode, evaluation of
-code blocks, tangling of code blocks, and exporting code blocks and
-their results in several formats. This functionality was contributed by Dan
-Davison and Eric Schulte, and was originally named Org-babel.
+code blocks, tangling of code blocks, and exporting code blocks and their
+results in several formats. This functionality was contributed by Eric
+Schulte and Dan Davison, and was originally named Org-babel.
The following sections describe Org-mode's code block handling facilities.
@@ -10998,6 +11130,18 @@ The structure of code blocks is as follows:
#+end_src
@end example
+code blocks can also be embedded in text as so called inline code blocks as
+
+@example
+src_<language>@{<body>@}
+@end example
+
+or
+
+@example
+src_<language>[<header arguments>]@{<body>@}
+@end example
+
@table @code
@item <name>
This 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}.
@kindex C-c C-v t
@subsubheading Functions
@table @code
-@item org-babel-tangle @kbd{C-c C-v t}
-Tangle the current file.
+@item org-babel-tangle
+Tangle the current file. Bound to @kbd{C-c C-v t}.
@item org-babel-tangle-file
-Choose a file to tangle.
+Choose a file to tangle. Bound to @kbd{C-c C-v f}.
@end table
@subsubheading Hooks
@@ -11200,10 +11344,10 @@ Code blocks defined in the ``Library of Babel'' can be called remotely as if
they were in the current Org-mode buffer (see @ref{Evaluating code blocks}
for information on the syntax of remote code block evaluation).
-@kindex C-c C-v l
+@kindex C-c C-v i
Code blocks located in any Org-mode file can be loaded into the ``Library of
Babel'' with the @code{org-babel-lob-ingest} function, bound to @kbd{C-c C-v
-l}.
+i}.
@node Languages, Header arguments, Library of Babel, Working With Source Code
@section Languages
@@ -11279,7 +11423,7 @@ describes each header argument in detail.
@node Using header arguments, Specific header arguments, Header arguments, Header arguments
@subsection Using header arguments
-The values of header arguments can be set in five different ways, each more
+The values of header arguments can be set in six different ways, each more
specific (and having higher priority) than the last.
@menu
* System-wide header arguments:: Set global default values
@@ -11287,6 +11431,7 @@ specific (and having higher priority) than the last.
* Buffer-wide header arguments:: Set default values for a specific buffer
* Header arguments in Org-mode properties:: Set default values for a buffer or heading
* Code block specific header arguments:: The most common way to set values
+* Header arguments in function calls:: The most specific level
@end menu
@@ -11381,7 +11526,7 @@ Properties defined in this way override the properties set in
@code{org-set-property} function bound to @kbd{C-c C-x p} to set properties
in Org-mode documents.
-@node Code block specific header arguments, , Header arguments in Org-mode properties, Using header arguments
+@node Code block specific header arguments, Header arguments in function calls, Header arguments in Org-mode properties, Using header arguments
@subsubheading Code block specific header arguments
The most common way to assign values to header arguments is at the
@@ -11402,14 +11547,18 @@ fac 0 = 1
fac n = n * fac (n-1)
#+end_src
@end example
-
Similarly, it is possible to set header arguments for inline code blocks:
@example
src_haskell[:exports both]@{fac 5@}
@end example
-Header arguments for ``Library of Babel'' or function call lines can be set as shown below:
+@node Header arguments in function calls, , Code block specific header arguments, Using header arguments
+@comment node-name, next, previous, up
+@subsubheading Header arguments in function calls
+
+At the most specific level, header arguments for ``Library of Babel'' or
+function call lines can be set as shown below:
@example
#+call: factorial(n=5) :exports results
@@ -11428,10 +11577,10 @@ The following header arguments are defined:
directory for code block execution
* exports:: Export code and/or results
* tangle:: Toggle tangling and specify file name
-* no-expand:: Turn off variable assignment and noweb
- expansion during tangling
* comments:: Toggle insertion of comments in tangled
code files
+* no-expand:: Turn off variable assignment and noweb
+ expansion during tangling
* session:: Preserve the state of code evaluation
* noweb:: Toggle expansion of noweb references
* cache:: Avoid re-evaluating unchanged code blocks
@@ -11842,10 +11991,25 @@ basename}.
@subsubsection @code{:comments}
By default code blocks are tangled to source-code files without any insertion
of comments beyond those which may already exist in the body of the code
-block. The @code{:comments} header argument can be set to ``yes''
-e.g. @code{:comments yes} to enable the insertion of comments around code
-blocks during tangling. The inserted comments contain pointers back to the
-original Org file from which the comment was tangled.
+block. The @code{:comments} header argument can be set as follows to control
+the insertion of extra comments into the tangled code file.
+
+@itemize @bullet
+@item @code{no}
+The default. No extra comments are inserted during tangling.
+@item @code{link}
+The code block is wrapped in comments which contain pointers back to the
+original Org file from which the code was tangled.
+@item @code{yes}
+A synonym for ``link'' to maintain backwards compatibility.
+@item @code{org}
+Include text from the org-mode file as a comment.
+
+The text is picked from the leading context of the tangled code and is
+limited by the nearest headline or source block as the case may be.
+@item @code{both}
+Turns on both the ``link'' and ``org'' comment options.
+@end itemize
@node no-expand, session, comments, Specific header arguments
@subsubsection @code{:no-expand}
@@ -11873,16 +12037,20 @@ interpreted language.
The @code{:noweb} header argument controls expansion of ``noweb'' style (see
@ref{Noweb reference syntax}) references in a code block. This header
-argument can have one of two values: @code{yes} or @code{no}.
+argument can have one of three values: @code{yes} @code{no} or @code{tangle}.
@itemize @bullet
+@item @code{yes}
+All ``noweb'' syntax references in the body of the code block will be
+expanded before the block is evaluated, tangled or exported.
@item @code{no}
The default. No ``noweb'' syntax specific action is taken on evaluating
code blocks, However, noweb references will still be expanded during
tangling.
@item @code{yes}
All ``noweb'' syntax references in the body of the code block will be
-expanded before the block is evaluated.
+expanded before the block is tangled, however ``noweb'' references will not
+be expanded when the block is evaluated or exported.
@end itemize
@subsubheading Noweb prefix lines
@@ -12067,7 +12235,7 @@ Setting the @code{:shebang} header argument to a string value
first line of any tangled file holding the code block, and the file
permissions of the tangled file are set to make it executable.
-@node eval, , shebang, Specific header arguments
+@node eval, , shebang, Specific header arguments
@subsubsection @code{:eval}
The @code{:eval} header argument can be used to limit the evaluation of
specific code blocks. @code{:eval} accepts two arguments ``never'' and
@@ -12268,17 +12436,18 @@ Be sure to adjust the paths to fit your system.
#!/bin/sh
# -*- mode: shell-script -*-
#
-# tangle a file with org-mode
+# tangle files with org-mode
#
DIR=`pwd`
FILES=""
+ORGINSTALL="~/src/org/lisp/org-install.el"
# wrap each argument in the code required to call tangle on it
for i in $@@; do
-FILES="$FILES \"$i\""
+ FILES="$FILES \"$i\""
done
-emacsclient \
+emacs -Q --batch -l $ORGINSTALL \
--eval "(progn
(add-to-list 'load-path (expand-file-name \"~/src/org/lisp/\"))
(add-to-list 'load-path (expand-file-name \"~/src/org/contrib/lisp/\"))
@@ -12286,7 +12455,7 @@ emacsclient \
(mapc (lambda (file)
(find-file (expand-file-name file \"$DIR\"))
(org-babel-tangle)
- (kill-buffer)) '($FILES)))"
+ (kill-buffer)) '($FILES)))" 2>&1 |grep tangled
@end example
@node Miscellaneous, Hacking, Working With Source Code, Top
@@ -12294,6 +12463,7 @@ emacsclient \
@menu
* Completion:: M-TAB knows what you need
+* Easy Templates:: Quick insertion of structural elements
* Speed keys:: Electric commands at the beginning of a headline
* Code evaluation security:: Org mode files evaluate inline code
* Customization:: Adapting Org to your taste
@@ -12305,7 +12475,7 @@ emacsclient \
@end menu
-@node Completion, Speed keys, Miscellaneous, Miscellaneous
+@node Completion, Easy Templates, Miscellaneous, Miscellaneous
@section Completion
@cindex completion, of @TeX{} symbols
@cindex completion, of TODO keywords
@@ -12367,7 +12537,46 @@ Elsewhere, complete dictionary words using Ispell.
@end itemize
@end table
-@node Speed keys, Code evaluation security, Completion, Miscellaneous
+@node Easy Templates, Speed keys, Completion, Miscellaneous
+@section Easy Templates
+@cindex template insertion
+@cindex insertion, of templates
+
+Org-mode supports insertion of empty structural elements (like
+@code{#+BEGIN_SRC} and @code{#+END_SRC} pairs) with just a few key
+strokes. This is achieved through a native template expansion mechanism.
+Note that Emacs has several other template mechanisms which could be used in
+a similar way, for example @file{yasnippet}.
+
+To insert a structural element, type a @samp{<}, followed by a template
+selector and @kbd{@key{TAB}}. Completion takes effect only when the above
+keystrokes are typed on a line by itself.
+
+The following template selectors are currently supported.
+
+@multitable @columnfractions 0.1 0.9
+@item @kbd{s} @tab @code{#+begin_src ... #+end_src}
+@item @kbd{e} @tab @code{#+begin_example ... #+end_example}
+@item @kbd{q} @tab @code{#+begin_quote ... #+end_quote}
+@item @kbd{v} @tab @code{#+begin_verse ... #+end_verse}
+@item @kbd{c} @tab @code{#+begin_center ... #+end_center}
+@item @kbd{l} @tab @code{#+begin_latex ... #+end_latex}
+@item @kbd{L} @tab @code{#+latex:}
+@item @kbd{h} @tab @code{#+begin_html ... #+end_html}
+@item @kbd{H} @tab @code{#+html:}
+@item @kbd{a} @tab @code{#+begin_ascii ... #+end_ascii}
+@item @kbd{A} @tab @code{#+ascii:}
+@item @kbd{i} @tab @code{#+include:} line
+@end multitable
+
+For example, on an empty line, typing "<e" and then pressing TAB, will expand
+into a complete EXAMPLE template.
+
+You can install additional templates by customizing the variable
+@code{org-structure-template-alist}. Refer docstring of the variable for
+additional details.
+
+@node Speed keys, Code evaluation security, Easy Templates, Miscellaneous
@section Speed keys
@cindex speed keys
@vindex org-use-speed-commands
@@ -12388,7 +12597,7 @@ with the cursor at the beginning of a headline.
@node Code evaluation security, Customization, Speed keys, Miscellaneous
@section Code evaluation and security issues
-Org provides tool to work with the code snippets, including evaluating them.
+Org provides tools to work with the code snippets, including evaluating them.
Running code on your machine always comes with a security risk. Badly
written 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:
@item Source code blocks
Source code blocks can be evaluated during export, or when pressing @kbd{C-c
C-c} in the block. The most important thing to realize here is that Org mode
-files which contain code snippets are in a certain sense like executable
+files which contain code snippets are, in a certain sense, like executable
files. So you should accept them and load them into Emacs only from trusted
sources - just like you would do with a program you install on your computer.
Make sure you know what you are doing before customizing the variables
-which take of the default security brakes.
+which take off the default security brakes.
@defopt org-confirm-babel-evaluate
When 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
@item Following @code{shell} and @code{elisp} links
Org has two link types that can directly evaluate code (@pxref{External
-links}). These links can be problematic because the code to be evaluated his
+links}). These links can be problematic because the code to be evaluated is
not visible.
@defopt org-confirm-shell-link-function
@@ -12429,12 +12638,6 @@ Function to queries user about shell link execution.
Functions to query user for Emacs Lisp link execution.
@end defopt
-@item Following @code{shell} and @code{elisp} links
-Org has two link types that can directly evaluate code (@pxref{External
-links}). These links can be problematic because the code to be evaluated his
-not visible. @b{Security advice:} Do not use these links, use source code
-blocks which make the associated actions much more transparent.
-
@item Formulas in tables
Formulas in tables (@pxref{The spreadsheet}) are code that is evaluated
either 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
align @r{align all tables}
noalign @r{don't align tables on startup}
@end example
+
+@vindex org-startup-with-inline-images
+When visiting a file, inline images can be automatically displayed. The
+corresponding variable is @code{org-startup-with-inline-images}, with a
+default value @code{nil} to avoid delays when visiting a file.
+@cindex @code{inlineimages}, STARTUP keyword
+@cindex @code{noinlineimages}, STARTUP keyword
+@example
+inlineimages @r{show inline images}
+noinlineimages @r{don't show inline images on startup}
+@end example
+
@vindex org-log-done
@vindex org-log-note-clock-out
@vindex org-log-repeat
@@ -13273,8 +13488,10 @@ Also the @kbd{M-cursor} and @kbd{M-S-cursor} keys have this property.
Add-ons can tap into this functionality by providing a function that detects
special context for that add-on and executes functionality appropriate for
the context. Here is an example from Dan Davison's @file{org-R.el} which
-allows you to evaluate commands based on the @file{R} programming language. For
-this package, special contexts are lines that start with @code{#+R:} or
+allows you to evaluate commands based on the @file{R} programming language
+@footnote{@file{org-R.el} has been replaced by the org-mode functionality
+described in @ref{Working With Source Code} and is now obsolete.}. For this
+package, special contexts are lines that start with @code{#+R:} or
@code{#+RR:}.
@lisp
@@ -13693,10 +13910,11 @@ written in a way such that it does nothing in buffers that are not in
@section Special agenda views
@cindex agenda views, user-defined
-Org provides a special hook that can be used to narrow down the
-selection made by any of the agenda views. You may specify a function
-that is used at each match to verify if the match should indeed be part
-of the agenda view, and if not, how much should be skipped.
+Org provides a special hook that can be used to narrow down the selection
+made by these agenda views: @code{todo}, @code{alltodo}, @code{tags}, @code{tags-todo},
+@code{tags-tree}. You may specify a function that is used at each match to verify
+if the match should indeed be part of the agenda view, and if not, how
+much should be skipped.
Let's say you want to produce a list of projects that contain a WAITING
tag 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
@node Setting up the staging area, Pushing to MobileOrg, MobileOrg, MobileOrg
@section Setting up the staging area
-MobileOrg needs to interact with Emacs through directory on a
-server@footnote{If you are using a public server, you might prefer to encrypt
-the files on the server. This can be done with Org-mode 6.35 and, hopefully,
-with MobileOrg 1.4 (please check before trying to use this). On the Emacs
-side, configure the variables @code{org-mobile-use-encryption} and
-@code{org-mobile-encryption-password}.}. The easiest way to create that
-directory is to use a free @uref{http://dropbox.com,Dropbox.com}
-account@footnote{If you cannot use Dropbox, or if your version of MobileOrg
-does not support it, you can use a webdav server. For more information,
-check out the the documentation of MobileOrg and also this
+MobileOrg needs to interact with Emacs through directory on a server. If you
+are using a public server, you should consider to encrypt the files that are
+uploaded to the server. This can be done with Org-mode 7.02 and with
+@i{MobileOrg 1.5} (iPhone version), and you need an @file{openssl}
+installation on your system. To turn on encryption, set a password in
+@i{MobileOrg} and, on the Emacs side, configure the variable
+@code{org-mobile-use-encryption}@footnote{If you can safely store the
+password in your Emacs setup, you might also want to configure
+@code{org-mobile-encryption-password}. Please read the docstring of that
+variable. Note that encryption will apply only to the contents of the
+@file{.org} files. The file names themselves will remain visible.}.
+
+The easiest way to create that directory is to use a free
+@uref{http://dropbox.com,Dropbox.com} account@footnote{If you cannot use
+Dropbox, or if your version of MobileOrg does not support it, you can use a
+webdav server. For more information, check out the the documentation of
+MobileOrg and also this
@uref{http://orgmode.org/worg/org-faq.php#mobileorg_webdav, FAQ entry}.}.
When MobileOrg first connects to your Dropbox, it will create a directory
@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
staged with path relative to @code{org-directory}, so all files should be
inside this directory. The push operation also creates a special Org file
@file{agendas.org} with all custom agenda view defined by the
-user@footnote{While creating the agendas, Org-mode will force (see the
-variable @code{org-mobile-force-id-on-agenda-items}) ID properties on all
-referenced entries, so that these entries can be uniquely
-identified if @i{MobileOrg} flags them for further action.}. Finally, Org
-writes the file @file{index.org}, containing links to all other files.
-@i{MobileOrg} first reads this file from the server, and then downloads all
-agendas and Org files listed in it. To speed up the download, MobileOrg will
-only read files whose checksums@footnote{stored automatically in the file
-@file{checksums.dat}} have changed.
+user@footnote{While creating the agendas, Org-mode will force ID properties
+on all referenced entries, so that these entries can be uniquely identified
+if @i{MobileOrg} flags them for further action. If you do not want to get
+these properties in so many entries, you can set the variable
+@code{org-mobile-force-id-on-agenda-items} to @code{nil}. Org mode will then
+rely on outline paths, in the hope that these will be unique enough.}.
+Finally, Org writes the file @file{index.org}, containing links to all other
+files. @i{MobileOrg} first reads this file from the server, and then
+downloads all agendas and Org files listed in it. To speed up the download,
+MobileOrg will only read files whose checksums@footnote{stored automatically
+in the file @file{checksums.dat}} have changed.
@node Pulling from MobileOrg, , Pushing to MobileOrg, MobileOrg
@section Pulling from MobileOrg
@@ -14195,12 +14422,12 @@ this flagged entry is finished.
@kindex C-c a ?
If you are not able to process all flagged entries directly, you can always
-return to this agenda view using @kbd{C-c a ?}. Note, however, that there is
-a subtle difference. The view created automatically by @kbd{M-x
-org-mobile-pull @key{RET}} is guaranteed to search all files that have been
-addressed by the last pull. This might include a file that is not currently
-in your list of agenda files. If you later use @kbd{C-c a ?} to regenerate
-the view, only the current agenda files will be searched.
+return to this agenda view@footnote{Note, however, that there is a subtle
+difference. The view created automatically by @kbd{M-x org-mobile-pull
+@key{RET}} is guaranteed to search all files that have been addressed by the
+last pull. This might include a file that is not currently in your list of
+agenda files. If you later use @kbd{C-c a ?} to regenerate the view, only
+the current agenda files will be searched.} using @kbd{C-c a ?}.
@node History and Acknowledgments, Main Index, MobileOrg, Top
@appendix History and acknowledgments
@@ -14331,6 +14558,8 @@ around a match in a hidden outline tree.
@item
@i{Niels Giesen} had the idea to automatically archive DONE trees.
@item
+@i{Nicolas Goaziou} rewrote much of the plain list code.
+@item
@i{Kai Grossjohann} pointed out key-binding conflicts with other packages.
@item
@i{Bernt Hansen} has driven much of the support for auto-repeating tasks,
@@ -14482,12 +14711,17 @@ and contributed various ideas and code snippets.
@printindex cp
-@node Key Index, Variable Index, Main Index, Top
+@node Key Index, Command and Function Index, Main Index, Top
@unnumbered Key index
@printindex ky
-@node Variable Index, , Key Index, Top
+@node Command and Function Index, Variable Index, Key Index, Top
+@unnumbered Command and function index
+
+@printindex fn
+
+@node Variable Index, , Command and Function Index, Top
@unnumbered Variable index
This 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.
@c Local variables:
@c fill-column: 77
+@c indent-tabs-mode: nil
@c End:
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
this line.
Another example is the tilde (@code{~}) character, say when adding
-@file{~/bin} to @code{$PATH}. Many Bourne shells will not expand this
+@file{~/bin} to @code{PATH}. Many Bourne shells will not expand this
character, and since there is usually no directory whose name consists
of the single character tilde, strange things will happen.
@@ -1969,6 +1969,38 @@ shell is Bourne-ish already, then it might be prudent to omit the
@command{exec /bin/sh} step. But how to find out if the shell is
Bourne-ish?
+
+@item Interactive shell prompt
+
+@value{tramp} redefines the shell prompt in order to parse the shell's
+output robustly. When calling an interactive shell by @kbd{M-x
+shell}, this doesn't look nice.
+
+You can redefine the shell prompt by checking the environment variable
+@code{INSIDE_EMACS}, which is set by @value{tramp}, in your startup
+script @file{~/.emacs_SHELLNAME}. @code{SHELLNAME} might be the string
+@code{bash} or similar, in case of doubt you could set it the
+environment variable @code{ESHELL} in your @file{.emacs}:
+
+@lisp
+(setenv "ESHELL" "bash")
+@end lisp
+
+Your file @file{~/.emacs_SHELLNAME} could contain code like
+
+@example
+# Reset the prompt for remote Tramp shells.
+if [ "$@{INSIDE_EMACS/*tramp*/tramp@}" == "tramp" ] ; then
+ PS1="[\u@@\h \w]$ "
+fi
+@end example
+
+@ifinfo
+@ifset emacs
+@xref{Interactive Shell, , , @value{emacsdir}}.
+@end ifset
+@end ifinfo
+
@end table
@@ -2493,7 +2525,7 @@ Adding an entry can be performed via @code{add-to-list}:
Changing or removing an existing entry is not encouraged. The default
values are chosen for proper @value{tramp} work. Nevertheless, if for
example a paranoid system administrator disallows changing the
-@var{$HISTORY} environment variable, you can customize
+@code{HISTORY} environment variable, you can customize
@code{tramp-remote-process-environment}, or you can apply the
following code in your @file{.emacs}:
@@ -2512,7 +2544,7 @@ integrate them as well. @xref{Bug Reports}.
If you want to run a remote program, which shall connect the X11
server you are using with your local host, you can set the
-@var{$DISPLAY} environment variable on the remote host:
+@code{DISPLAY} environment variable on the remote host:
@lisp
(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 @@
@c In the Tramp CVS, the version number is auto-frobbed from
@c configure.ac, so you should edit that file and run
@c "autoconf && ./configure" to change the version number.
-@set trampver 2.2.0-pre
+@set trampver 2.2.0
@c Other flags from configuration
@set instprefix /usr/local
@@ -73,7 +73,3 @@
@set emacsotherdir emacs
@set emacsotherfilename tramp-emacs.html
@end ifset
-
-@ignore
- arch-tag: e0fe322c-e06b-46eb-bb5b-d091b521f41c
-@end ignore