aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorChong Yidong2012-04-27 11:10:38 +0800
committerChong Yidong2012-04-27 11:10:38 +0800
commita8e7d6d783219972c08fd49a3a2afaf26eb139c2 (patch)
tree5e86d23d9285389791dc8321d8a8a2ece2247bea /doc
parentb360839071ef6c7a9e917fe57a4aaeb39138e8c0 (diff)
parentc5bb756916baa63cc663d68d4c24e5ad33a764e8 (diff)
downloademacs-a8e7d6d783219972c08fd49a3a2afaf26eb139c2.tar.gz
emacs-a8e7d6d783219972c08fd49a3a2afaf26eb139c2.zip
Merge changes from emacs-24 branch
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/ChangeLog21
-rw-r--r--doc/emacs/ack.texi6
-rw-r--r--doc/emacs/basic.texi4
-rw-r--r--doc/emacs/buffers.texi6
-rw-r--r--doc/emacs/building.texi2
-rw-r--r--doc/emacs/calendar.texi12
-rw-r--r--doc/emacs/cmdargs.texi2
-rw-r--r--doc/emacs/commands.texi2
-rw-r--r--doc/emacs/custom.texi4
-rw-r--r--doc/emacs/dired.texi10
-rw-r--r--doc/emacs/display.texi8
-rw-r--r--doc/emacs/emacs.texi61
-rw-r--r--doc/emacs/emerge-xtra.texi2
-rw-r--r--doc/emacs/files.texi4
-rw-r--r--doc/emacs/fortran-xtra.texi2
-rw-r--r--doc/emacs/help.texi2
-rw-r--r--doc/emacs/kmacro.texi2
-rw-r--r--doc/emacs/mini.texi2
-rw-r--r--doc/emacs/misc.texi8
-rw-r--r--doc/emacs/msdog-xtra.texi2
-rw-r--r--doc/emacs/mule.texi13
-rw-r--r--doc/emacs/picture-xtra.texi2
-rw-r--r--doc/emacs/programs.texi4
-rw-r--r--doc/emacs/rmail.texi2
-rw-r--r--doc/emacs/search.texi8
-rw-r--r--doc/emacs/trouble.texi10
-rw-r--r--doc/emacs/windows.texi4
-rw-r--r--doc/lispref/ChangeLog51
-rw-r--r--doc/lispref/book-spine.texi4
-rw-r--r--doc/lispref/buffers.texi4
-rw-r--r--doc/lispref/commands.texi8
-rw-r--r--doc/lispref/compile.texi2
-rw-r--r--doc/lispref/control.texi4
-rw-r--r--doc/lispref/customize.texi4
-rw-r--r--doc/lispref/display.texi18
-rw-r--r--doc/lispref/elisp.texi49
-rw-r--r--doc/lispref/eval.texi18
-rw-r--r--doc/lispref/files.texi10
-rw-r--r--doc/lispref/frames.texi14
-rw-r--r--doc/lispref/functions.texi27
-rw-r--r--doc/lispref/hash.texi8
-rw-r--r--doc/lispref/help.texi2
-rw-r--r--doc/lispref/intro.texi4
-rw-r--r--doc/lispref/keymaps.texi42
-rw-r--r--doc/lispref/lists.texi8
-rw-r--r--doc/lispref/macros.texi2
-rw-r--r--doc/lispref/minibuf.texi17
-rw-r--r--doc/lispref/modes.texi30
-rw-r--r--doc/lispref/numbers.texi2
-rw-r--r--doc/lispref/objects.texi4
-rw-r--r--doc/lispref/streams.texi4
-rw-r--r--doc/lispref/symbols.texi2
-rw-r--r--doc/lispref/syntax.texi4
-rw-r--r--doc/lispref/text.texi14
-rw-r--r--doc/lispref/tips.texi14
-rw-r--r--doc/lispref/variables.texi2
-rw-r--r--doc/lispref/vol1.texi48
-rw-r--r--doc/lispref/vol2.texi44
-rw-r--r--doc/lispref/windows.texi256
-rw-r--r--doc/misc/ChangeLog10
-rw-r--r--doc/misc/faq.texi145
61 files changed, 569 insertions, 511 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 63ccb880d40..50c3d868eb3 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,24 @@
12012-04-27 Glenn Morris <rgm@gnu.org>
2
3 * emacs.texi: Some fixes for detailed menu.
4
52012-04-26 Glenn Morris <rgm@gnu.org>
6
7 * emacs.texi: Add "et al." to authors.
8
9 * ack.texi, basic.texi, buffers.texi, building.texi:
10 * calendar.texi, cmdargs.texi, commands.texi, custom.texi:
11 * dired.texi, display.texi, emerge-xtra.texi, files.texi:
12 * fortran-xtra.texi, help.texi, kmacro.texi, mini.texi, misc.texi:
13 * msdog-xtra.texi, picture-xtra.texi, programs.texi, rmail.texi:
14 * search.texi, trouble.texi, windows.texi:
15 Use Texinfo recommended convention for quotes+punctuation.
16
172012-04-25 Eli Zaretskii <eliz@gnu.org>
18
19 * mule.texi (Bidirectional Editing): Improve indexing. Minor
20 wording tweaks.
21
12012-04-15 Chong Yidong <cyd@gnu.org> 222012-04-15 Chong Yidong <cyd@gnu.org>
2 23
3 * misc.texi (emacsclient Options): More clarifications. 24 * misc.texi (emacsclient Options): More clarifications.
diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi
index 51f6d70bd90..eafd38155f2 100644
--- a/doc/emacs/ack.texi
+++ b/doc/emacs/ack.texi
@@ -240,7 +240,7 @@ for compiled Emacs Lisp code.
240 240
241@item 241@item
242Mathias Dahl wrote @file{image-dired.el}, a package for viewing image 242Mathias Dahl wrote @file{image-dired.el}, a package for viewing image
243files as ``thumbnails.'' 243files as ``thumbnails''.
244 244
245@item 245@item
246Julien Danjou wrote an implementation of ``Desktop Notifications'' 246Julien Danjou wrote an implementation of ``Desktop Notifications''
@@ -1027,7 +1027,7 @@ Together with Dmitry Dzhus, he wrote @file{gdb-mi.el}, the successor to
1027 1027
1028@item 1028@item
1029Danny Roozendaal implemented @file{handwrite.el}, which converts text 1029Danny Roozendaal implemented @file{handwrite.el}, which converts text
1030into ``handwriting.'' 1030into ``handwriting''.
1031 1031
1032@item 1032@item
1033Markus Rost wrote @file{cus-test.el}, a testing framework for customize. 1033Markus Rost wrote @file{cus-test.el}, a testing framework for customize.
@@ -1224,7 +1224,7 @@ the keyboard.
1224 1224
1225@item 1225@item
1226Jean-Philippe Theberge wrote @file{thumbs.el}, a package for viewing 1226Jean-Philippe Theberge wrote @file{thumbs.el}, a package for viewing
1227image files as ``thumbnails.'' 1227image files as ``thumbnails''.
1228 1228
1229@item 1229@item
1230Spencer Thomas wrote the original @file{dabbrev.el}, providing a command 1230Spencer Thomas wrote the original @file{dabbrev.el}, providing a command
diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi
index 5ad48eb48ef..2650b55811f 100644
--- a/doc/emacs/basic.texi
+++ b/doc/emacs/basic.texi
@@ -668,7 +668,7 @@ those two positions are the accessible ones. @xref{Narrowing}.
668@cindex arguments to commands 668@cindex arguments to commands
669 669
670 In the terminology of mathematics and computing, @dfn{argument} 670 In the terminology of mathematics and computing, @dfn{argument}
671means ``data provided to a function or operation.'' You can give any 671means ``data provided to a function or operation''. You can give any
672Emacs command a @dfn{numeric argument} (also called a @dfn{prefix 672Emacs command a @dfn{numeric argument} (also called a @dfn{prefix
673argument}). Some commands interpret the argument as a repetition 673argument}). Some commands interpret the argument as a repetition
674count. For example, giving @kbd{C-f} an argument of ten causes it to 674count. For example, giving @kbd{C-f} an argument of ten causes it to
@@ -762,7 +762,7 @@ described when they come up; they exist to make an individual command
762more convenient, and they are documented in that command's 762more convenient, and they are documented in that command's
763documentation string. 763documentation string.
764 764
765 We use the term ``prefix argument'' as well as ``numeric argument,'' 765 We use the term ``prefix argument'' as well as ``numeric argument'',
766to emphasize that you type these argument before the command, and to 766to emphasize that you type these argument before the command, and to
767distinguish them from minibuffer arguments that come after the 767distinguish them from minibuffer arguments that come after the
768command. 768command.
diff --git a/doc/emacs/buffers.texi b/doc/emacs/buffers.texi
index d2783bcb0ba..90d5084e3d9 100644
--- a/doc/emacs/buffers.texi
+++ b/doc/emacs/buffers.texi
@@ -180,7 +180,7 @@ buffers that were current most recently come first.
180 180
181 @samp{.} in the first field of a line indicates that the buffer is 181 @samp{.} in the first field of a line indicates that the buffer is
182current. @samp{%} indicates a read-only buffer. @samp{*} indicates 182current. @samp{%} indicates a read-only buffer. @samp{*} indicates
183that the buffer is ``modified.'' If several buffers are modified, it 183that the buffer is ``modified''. If several buffers are modified, it
184may be time to save some with @kbd{C-x s} (@pxref{Save Commands}). 184may be time to save some with @kbd{C-x s} (@pxref{Save Commands}).
185Here is an example of a buffer list: 185Here is an example of a buffer list:
186 186
@@ -392,7 +392,7 @@ line:
392 392
393@table @kbd 393@table @kbd
394@item ~ 394@item ~
395Mark the buffer ``unmodified.'' The command @kbd{~} does this 395Mark the buffer ``unmodified''. The command @kbd{~} does this
396immediately when you type it. 396immediately when you type it.
397@item % 397@item %
398Toggle the buffer's read-only flag. The command @kbd{%} does 398Toggle the buffer's read-only flag. The command @kbd{%} does
@@ -590,7 +590,7 @@ rule or another is easier for you to remember and apply quickly.
590 Iswitchb global minor mode provides convenient switching between 590 Iswitchb global minor mode provides convenient switching between
591buffers using substrings of their names. It replaces the normal 591buffers using substrings of their names. It replaces the normal
592definitions of @kbd{C-x b}, @kbd{C-x 4 b}, @kbd{C-x 5 b}, and @kbd{C-x 592definitions of @kbd{C-x b}, @kbd{C-x 4 b}, @kbd{C-x 5 b}, and @kbd{C-x
5934 C-o} with alternative commands that are somewhat ``smarter.'' 5934 C-o} with alternative commands that are somewhat ``smarter''.
594 594
595 When one of these commands prompts you for a buffer name, you can 595 When one of these commands prompts you for a buffer name, you can
596type in just a substring of the name you want to choose. As you enter 596type in just a substring of the name you want to choose. As you enter
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index fef7d2b2828..4b92376b8a9 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -331,7 +331,7 @@ you can do anything else in Emacs). @xref{MS-DOS}.
331 Just as you can run a compiler from Emacs and then visit the lines 331 Just as you can run a compiler from Emacs and then visit the lines
332with compilation errors, you can also run @command{grep} and then 332with compilation errors, you can also run @command{grep} and then
333visit the lines on which matches were found. This works by treating 333visit the lines on which matches were found. This works by treating
334the matches reported by @command{grep} as if they were ``errors.'' 334the matches reported by @command{grep} as if they were ``errors''.
335The output buffer uses Grep mode, which is a variant of Compilation 335The output buffer uses Grep mode, which is a variant of Compilation
336mode (@pxref{Compilation Mode}). 336mode (@pxref{Compilation Mode}).
337 337
diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi
index c2851d4abd3..a1e98bfcb92 100644
--- a/doc/emacs/calendar.texi
+++ b/doc/emacs/calendar.texi
@@ -624,7 +624,7 @@ for all users in a @file{default.el} file. @xref{Init File}.
624 These calendar commands display the dates and times of the phases of 624 These calendar commands display the dates and times of the phases of
625the moon (new moon, first quarter, full moon, last quarter). This 625the moon (new moon, first quarter, full moon, last quarter). This
626feature is useful for debugging problems that ``depend on the phase of 626feature is useful for debugging problems that ``depend on the phase of
627the moon.'' 627the moon''.
628 628
629@table @kbd 629@table @kbd
630@item M 630@item M
@@ -822,7 +822,7 @@ Display Mayan date for selected day (@code{calendar-mayan-print-date}).
822 822
823 Otherwise, move point to the date you want to convert, then type the 823 Otherwise, move point to the date you want to convert, then type the
824appropriate command starting with @kbd{p} from the table above. The 824appropriate command starting with @kbd{p} from the table above. The
825prefix @kbd{p} is a mnemonic for ``print,'' since Emacs ``prints'' the 825prefix @kbd{p} is a mnemonic for ``print'', since Emacs ``prints'' the
826equivalent date in the echo area. @kbd{p o} displays the 826equivalent date in the echo area. @kbd{p o} displays the
827date in all forms known to Emacs. You can also use @kbd{Mouse-3} and 827date in all forms known to Emacs. You can also use @kbd{Mouse-3} and
828then choose @kbd{Other calendars} from the menu that appears. This 828then choose @kbd{Other calendars} from the menu that appears. This
@@ -901,7 +901,7 @@ Islamic, or French names.
901@findex calendar-hebrew-list-yahrzeits 901@findex calendar-hebrew-list-yahrzeits
902@cindex yahrzeits 902@cindex yahrzeits
903 One common issue concerning the Hebrew calendar is the computation 903 One common issue concerning the Hebrew calendar is the computation
904of the anniversary of a date of death, called a ``yahrzeit.'' The Emacs 904of the anniversary of a date of death, called a ``yahrzeit''. The Emacs
905calendar includes a facility for such calculations. If you are in the 905calendar includes a facility for such calculations. If you are in the
906calendar, the command @kbd{M-x calendar-hebrew-list-yahrzeits} asks you for 906calendar, the command @kbd{M-x calendar-hebrew-list-yahrzeits} asks you for
907a range of years and then displays a list of the yahrzeit dates for those 907a range of years and then displays a list of the yahrzeit dates for those
@@ -1426,8 +1426,8 @@ that applies to the fourth Thursday in November:
1426@noindent 1426@noindent
1427The 11 specifies November (the eleventh month), the 4 specifies Thursday 1427The 11 specifies November (the eleventh month), the 4 specifies Thursday
1428(the fourth day of the week, where Sunday is numbered zero), and the 1428(the fourth day of the week, where Sunday is numbered zero), and the
1429second 4 specifies the fourth Thursday (1 would mean ``first,'' 2 would 1429second 4 specifies the fourth Thursday (1 would mean ``first'', 2 would
1430mean ``second,'' @minus{}2 would mean ``second-to-last,'' and so on). 1430mean ``second'', @minus{}2 would mean ``second-to-last'', and so on).
1431The month can be a single month or a list of months. Thus you could change 1431The month can be a single month or a list of months. Thus you could change
1432the 11 above to @samp{'(1 2 3)} and have the entry apply to the last 1432the 11 above to @samp{'(1 2 3)} and have the entry apply to the last
1433Thursday of January, February, and March. If the month is @code{t}, the 1433Thursday of January, February, and March. If the month is @code{t}, the
@@ -1681,7 +1681,7 @@ timeclock-change}.
1681 Once you've collected data from a number of time intervals, you can use 1681 Once you've collected data from a number of time intervals, you can use
1682@kbd{M-x timeclock-workday-remaining} to see how much time is left to 1682@kbd{M-x timeclock-workday-remaining} to see how much time is left to
1683work today (assuming a typical average of 8 hours a day), and @kbd{M-x 1683work today (assuming a typical average of 8 hours a day), and @kbd{M-x
1684timeclock-when-to-leave} which will calculate when you're ``done.'' 1684timeclock-when-to-leave} which will calculate when you're ``done''.
1685 1685
1686@vindex timeclock-modeline-display 1686@vindex timeclock-modeline-display
1687@findex timeclock-modeline-display 1687@findex timeclock-modeline-display
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 4c6d6ef7bad..222aa0f8434 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -442,7 +442,7 @@ Directory for the documentation string file, which is used to
442initialize the Lisp variable @code{doc-directory}. 442initialize the Lisp variable @code{doc-directory}.
443@item EMACSLOADPATH 443@item EMACSLOADPATH
444A colon-separated list of directories@footnote{ Here and below, 444A colon-separated list of directories@footnote{ Here and below,
445whenever we say ``colon-separated list of directories,'' it pertains 445whenever we say ``colon-separated list of directories'', it pertains
446to Unix and GNU/Linux systems. On MS-DOS and MS-Windows, the 446to Unix and GNU/Linux systems. On MS-DOS and MS-Windows, the
447directories are separated by semi-colons instead, since DOS/Windows 447directories are separated by semi-colons instead, since DOS/Windows
448file names might include a colon after a drive letter.} to search for 448file names might include a colon after a drive letter.} to search for
diff --git a/doc/emacs/commands.texi b/doc/emacs/commands.texi
index 3285b65e57b..9678adfe87f 100644
--- a/doc/emacs/commands.texi
+++ b/doc/emacs/commands.texi
@@ -166,7 +166,7 @@ commands, even though strictly speaking the key is bound to a command.
166Usually we state the name of the command which really does the work in 166Usually we state the name of the command which really does the work in
167parentheses after mentioning the key that runs it. For example, we 167parentheses after mentioning the key that runs it. For example, we
168will say that ``The command @kbd{C-n} (@code{next-line}) moves point 168will say that ``The command @kbd{C-n} (@code{next-line}) moves point
169vertically down,'' meaning that the command @code{next-line} moves 169vertically down'', meaning that the command @code{next-line} moves
170vertically down, and the key @kbd{C-n} is normally bound to it. 170vertically down, and the key @kbd{C-n} is normally bound to it.
171 171
172 Since we are discussing customization, we should tell you about 172 Since we are discussing customization, we should tell you about
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 72b4961e209..cfd45de6aca 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -1922,7 +1922,7 @@ single click definition has run when the first click was received.
1922 This constrains what you can do with double clicks, but user interface 1922 This constrains what you can do with double clicks, but user interface
1923designers say that this constraint ought to be followed in any case. A 1923designers say that this constraint ought to be followed in any case. A
1924double click should do something similar to the single click, only 1924double click should do something similar to the single click, only
1925``more so.'' The command for the double-click event should perform the 1925``more so''. The command for the double-click event should perform the
1926extra work for the double click. 1926extra work for the double click.
1927 1927
1928 If a double-click event has no binding, it changes to the 1928 If a double-click event has no binding, it changes to the
@@ -1970,7 +1970,7 @@ or @samp{triple-}, which always precede @samp{drag-} or @samp{down-}.
1970 A frame includes areas that don't show text from the buffer, such as 1970 A frame includes areas that don't show text from the buffer, such as
1971the mode line and the scroll bar. You can tell whether a mouse button 1971the mode line and the scroll bar. You can tell whether a mouse button
1972comes from a special area of the screen by means of dummy ``prefix 1972comes from a special area of the screen by means of dummy ``prefix
1973keys.'' For example, if you click the mouse in the mode line, you get 1973keys''. For example, if you click the mouse in the mode line, you get
1974the prefix key @code{mode-line} before the ordinary mouse-button symbol. 1974the prefix key @code{mode-line} before the ordinary mouse-button symbol.
1975Thus, here is how to define the command for clicking the first button in 1975Thus, here is how to define the command for clicking the first button in
1976a mode line to run @code{scroll-up-command}: 1976a mode line to run @code{scroll-up-command}:
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 301f8a76477..f3a1ae2fc99 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -14,7 +14,7 @@ optionally some of its subdirectories as well. You can use the normal
14Emacs commands to move around in this buffer, and special Dired 14Emacs commands to move around in this buffer, and special Dired
15commands to operate on the listed files. 15commands to operate on the listed files.
16 16
17 The Dired buffer is ``read-only,'' and inserting text in it is not 17 The Dired buffer is ``read-only'', and inserting text in it is not
18allowed. Ordinary printing characters such as @kbd{d} and @kbd{x} are 18allowed. Ordinary printing characters such as @kbd{d} and @kbd{x} are
19redefined for special Dired commands. Some Dired commands @dfn{mark} 19redefined for special Dired commands. Some Dired commands @dfn{mark}
20or @dfn{flag} the @dfn{current file} (that is, the file on the current 20or @dfn{flag} the @dfn{current file} (that is, the file on the current
@@ -1252,7 +1252,7 @@ and erases all flags and marks.
1252@findex wdired-change-to-wdired-mode 1252@findex wdired-change-to-wdired-mode
1253 Wdired is a special mode that allows you to perform file operations 1253 Wdired is a special mode that allows you to perform file operations
1254by editing the Dired buffer directly (the ``W'' in ``Wdired'' stands 1254by editing the Dired buffer directly (the ``W'' in ``Wdired'' stands
1255for ``writable.'') To enter Wdired mode, type @kbd{C-x C-q} 1255for ``writable''.) To enter Wdired mode, type @kbd{C-x C-q}
1256(@code{dired-toggle-read-only}) while in a Dired buffer. 1256(@code{dired-toggle-read-only}) while in a Dired buffer.
1257Alternatively, use the @samp{Immediate / Edit File Names} menu item. 1257Alternatively, use the @samp{Immediate / Edit File Names} menu item.
1258 1258
@@ -1297,7 +1297,7 @@ buffer containing image-dired, corresponding to the marked files.
1297 You can also enter Image-Dired directly by typing @kbd{M-x 1297 You can also enter Image-Dired directly by typing @kbd{M-x
1298image-dired}. This prompts for a directory; specify one that has 1298image-dired}. This prompts for a directory; specify one that has
1299image files. This creates thumbnails for all the images in that 1299image files. This creates thumbnails for all the images in that
1300directory, and displays them all in the ``thumbnail buffer.'' This 1300directory, and displays them all in the ``thumbnail buffer''. This
1301takes a long time if the directory contains many image files, and it 1301takes a long time if the directory contains many image files, and it
1302asks for confirmation if the number of image files exceeds 1302asks for confirmation if the number of image files exceeds
1303@code{image-dired-show-all-from-dir-max-files}. 1303@code{image-dired-show-all-from-dir-max-files}.
@@ -1408,7 +1408,7 @@ the current buffer.
1408 1408
1409 The default comparison method (used if you type @key{RET} at the 1409 The default comparison method (used if you type @key{RET} at the
1410prompt) is to compare just the file names---each file name that does 1410prompt) is to compare just the file names---each file name that does
1411not appear in the other directory is ``different.'' You can specify 1411not appear in the other directory is ``different''. You can specify
1412more stringent comparisons by entering a Lisp expression, which can 1412more stringent comparisons by entering a Lisp expression, which can
1413refer to the variables @code{size1} and @code{size2}, the respective 1413refer to the variables @code{size1} and @code{size2}, the respective
1414file sizes; @code{mtime1} and @code{mtime2}, the last modification 1414file sizes; @code{mtime1} and @code{mtime2}, the last modification
@@ -1416,7 +1416,7 @@ times in seconds, as floating point numbers; and @code{fa1} and
1416@code{fa2}, the respective file attribute lists (as returned by the 1416@code{fa2}, the respective file attribute lists (as returned by the
1417function @code{file-attributes}). This expression is evaluated for 1417function @code{file-attributes}). This expression is evaluated for
1418each pair of like-named files, and if the expression's value is 1418each pair of like-named files, and if the expression's value is
1419non-@code{nil}, those files are considered ``different.'' 1419non-@code{nil}, those files are considered ``different''.
1420 1420
1421 For instance, the sequence @code{M-x dired-compare-directories 1421 For instance, the sequence @code{M-x dired-compare-directories
1422@key{RET} (> mtime1 mtime2) @key{RET}} marks files newer in this 1422@key{RET} (> mtime1 mtime2) @key{RET}} marks files newer in this
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index da33d352698..84e81f565cc 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -448,7 +448,7 @@ and visits it with View mode enabled.
448@cindex synchronizing windows 448@cindex synchronizing windows
449 449
450 @dfn{Follow mode} is a minor mode that makes two windows, both 450 @dfn{Follow mode} is a minor mode that makes two windows, both
451showing the same buffer, scroll as a single tall ``virtual window.'' 451showing the same buffer, scroll as a single tall ``virtual window''.
452To use Follow mode, go to a frame with just one window, split it into 452To use Follow mode, go to a frame with just one window, split it into
453two side-by-side windows using @kbd{C-x 3}, and then type @kbd{M-x 453two side-by-side windows using @kbd{C-x 3}, and then type @kbd{M-x
454follow-mode}. From then on, you can edit the buffer in either of the 454follow-mode}. From then on, you can edit the buffer in either of the
@@ -982,15 +982,15 @@ fringes on the selected frame only, use @kbd{M-x set-fringe-style}.
982line (@pxref{Continuation Lines}). When one line of text is split 982line (@pxref{Continuation Lines}). When one line of text is split
983into multiple screen lines, the left fringe shows a curving arrow for 983into multiple screen lines, the left fringe shows a curving arrow for
984each screen line except the first, indicating that ``this is not the 984each screen line except the first, indicating that ``this is not the
985real beginning.'' The right fringe shows a curving arrow for each 985real beginning''. The right fringe shows a curving arrow for each
986screen line except the last, indicating that ``this is not the real 986screen line except the last, indicating that ``this is not the real
987end.'' If the line's direction is right-to-left (@pxref{Bidirectional 987end''. If the line's direction is right-to-left (@pxref{Bidirectional
988Editing}), the meanings of the curving arrows in the fringes are 988Editing}), the meanings of the curving arrows in the fringes are
989swapped. 989swapped.
990 990
991 The fringes indicate line truncation with short horizontal arrows 991 The fringes indicate line truncation with short horizontal arrows
992meaning ``there's more text on this line which is scrolled 992meaning ``there's more text on this line which is scrolled
993horizontally out of view.'' Clicking the mouse on one of the arrows 993horizontally out of view''. Clicking the mouse on one of the arrows
994scrolls the display horizontally in the direction of the arrow. 994scrolls the display horizontally in the direction of the arrow.
995 995
996 The fringes can also indicate other things, such as buffer 996 The fringes can also indicate other things, such as buffer
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 25e5bb2af0d..13f60e8cfdf 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -72,7 +72,7 @@ developing GNU and promoting software freedom.''
72@sp 4 72@sp 4
73@center @value{EDITION} Edition, Updated for Emacs Version @value{EMACSVER}. 73@center @value{EDITION} Edition, Updated for Emacs Version @value{EMACSVER}.
74@sp 5 74@sp 5
75@center Richard Stallman 75@center Richard Stallman et al.
76@page 76@page
77@vskip 0pt plus 1filll 77@vskip 0pt plus 1filll
78@insertcopying 78@insertcopying
@@ -288,11 +288,11 @@ The Mark and the Region
288Killing and Moving Text 288Killing and Moving Text
289 289
290* Deletion and Killing:: Commands that remove text. 290* Deletion and Killing:: Commands that remove text.
291* Yanking:: Recovering killed text. Moving text. (Pasting.) 291* Yanking:: Commands that insert text.
292* Cut and Paste:: Clipboard and selections on graphical displays. 292* Cut and Paste:: Clipboard and selections on graphical displays.
293* Accumulating Text:: Other ways of copying text. 293* Accumulating Text:: Other methods to add text to the buffer.
294* Rectangles:: Operating on text in rectangular areas. 294* Rectangles:: Operating on text in rectangular areas.
295* CUA Bindings:: Using @kbd{C-x}, @kbd{C-c}, @kbd{C-v} to kill and yank. 295* CUA Bindings:: Using @kbd{C-x}/@kbd{C-c}/@kbd{C-v} to kill and yank.
296 296
297Deletion and Killing 297Deletion and Killing
298 298
@@ -309,9 +309,9 @@ Yanking
309* Earlier Kills:: Yanking something killed some time ago. 309* Earlier Kills:: Yanking something killed some time ago.
310* Appending Kills:: Several kills in a row all yank together. 310* Appending Kills:: Several kills in a row all yank together.
311 311
312Killing and Yanking on Graphical Displays 312"Cut and Paste" Operations on Graphical Displays
313 313
314* Clipboard:: How Emacs interacts with the system clipboard. 314* Clipboard:: How Emacs uses the system clipboard.
315* Primary Selection:: The temporarily selected text selection. 315* Primary Selection:: The temporarily selected text selection.
316* Secondary Selection:: Cutting without altering point and mark. 316* Secondary Selection:: Cutting without altering point and mark.
317 317
@@ -328,7 +328,7 @@ Registers
328Controlling the Display 328Controlling the Display
329 329
330* Scrolling:: Commands to move text up and down in a window. 330* Scrolling:: Commands to move text up and down in a window.
331* Recentering:: A scrolling command that centers the current line. 331* Recentering:: A scroll command that centers the current line.
332* Auto Scrolling:: Redisplay scrolls text automatically when needed. 332* Auto Scrolling:: Redisplay scrolls text automatically when needed.
333* Horizontal Scrolling:: Moving text left and right in a window. 333* Horizontal Scrolling:: Moving text left and right in a window.
334* Narrowing:: Restricting display and editing to a portion 334* Narrowing:: Restricting display and editing to a portion
@@ -486,7 +486,7 @@ Multiple Windows
486* Displaying Buffers:: How Emacs picks a window for displaying a buffer. 486* Displaying Buffers:: How Emacs picks a window for displaying a buffer.
487* Window Convenience:: Convenience functions for window handling. 487* Window Convenience:: Convenience functions for window handling.
488 488
489Displaying Buffers 489Displaying a Buffer in a Window
490 490
491* Window Choice:: How @code{display-buffer} works. 491* Window Choice:: How @code{display-buffer} works.
492 492
@@ -509,7 +509,7 @@ Frames and Graphical Displays
509* Tool Bars:: Enabling and disabling the tool bar. 509* Tool Bars:: Enabling and disabling the tool bar.
510* Dialog Boxes:: Controlling use of dialog boxes. 510* Dialog Boxes:: Controlling use of dialog boxes.
511* Tooltips:: Displaying information at the current mouse position. 511* Tooltips:: Displaying information at the current mouse position.
512* Mouse Avoidance:: Moving the mouse pointer out of the way. 512* Mouse Avoidance:: Preventing the mouse pointer from obscuring text.
513* Non-Window Terminals:: Multiple frames on terminals that show only one. 513* Non-Window Terminals:: Multiple frames on terminals that show only one.
514* Text-Only Mouse:: Using the mouse in text terminals. 514* Text-Only Mouse:: Using the mouse in text terminals.
515 515
@@ -540,7 +540,7 @@ International Character Set Support
540* Charsets:: How Emacs groups its internal character codes. 540* Charsets:: How Emacs groups its internal character codes.
541* Bidirectional Editing:: Support for right-to-left scripts. 541* Bidirectional Editing:: Support for right-to-left scripts.
542 542
543Modes 543Major and Minor Modes
544 544
545* Major Modes:: Text mode vs. Lisp mode vs. C mode... 545* Major Modes:: Text mode vs. Lisp mode vs. C mode...
546* Minor Modes:: Each minor mode is a feature you can turn on 546* Minor Modes:: Each minor mode is a feature you can turn on
@@ -600,7 +600,7 @@ Org Mode
600* TeX Print:: Commands for printing part of a file with TeX. 600* TeX Print:: Commands for printing part of a file with TeX.
601* TeX Misc:: Customization of TeX mode, and related features. 601* TeX Misc:: Customization of TeX mode, and related features.
602 602
603Editing Enriched Text 603Enriched Text
604 604
605* Enriched Mode:: Entering and exiting Enriched mode. 605* Enriched Mode:: Entering and exiting Enriched mode.
606* Hard and Soft Newlines:: There are two different kinds of newlines. 606* Hard and Soft Newlines:: There are two different kinds of newlines.
@@ -783,7 +783,7 @@ Introduction to Version Control
783* Version Control Systems:: Supported version control back-end systems. 783* Version Control Systems:: Supported version control back-end systems.
784* VCS Concepts:: Words and concepts related to version control. 784* VCS Concepts:: Words and concepts related to version control.
785* VCS Merging:: How file conflicts are handled. 785* VCS Merging:: How file conflicts are handled.
786* VCS Changesets:: Changesets in version control. 786* VCS Changesets:: How changes are grouped.
787* VCS Repositories:: Where version control repositories are stored. 787* VCS Repositories:: Where version control repositories are stored.
788* Types of Log File:: The VCS log in contrast to the ChangeLog. 788* Types of Log File:: The VCS log in contrast to the ChangeLog.
789 789
@@ -798,10 +798,10 @@ VC Directory Mode
798* VC Directory Buffer:: What the buffer looks like and means. 798* VC Directory Buffer:: What the buffer looks like and means.
799* VC Directory Commands:: Commands to use in a VC directory buffer. 799* VC Directory Commands:: Commands to use in a VC directory buffer.
800 800
801Multiple Branches of a File 801Version Control Branches
802 802
803* Switching Branches:: How to get to another existing branch. 803* Switching Branches:: How to get to another existing branch.
804* VC Pull:: Updating a branch from another branch. 804* VC Pull:: Updating the contents of a branch.
805* Merging:: Transferring changes between branches. 805* Merging:: Transferring changes between branches.
806* Creating Branches:: How to start a new branch. 806* Creating Branches:: How to start a new branch.
807 807
@@ -828,12 +828,12 @@ Change Logs
828Tags Tables 828Tags Tables
829 829
830* Tag Syntax:: Tag syntax for various types of code and text files. 830* Tag Syntax:: Tag syntax for various types of code and text files.
831* Create Tags Table:: Creating a tags table with @code{etags}. 831* Create Tags Table:: Creating a tags table with @command{etags}.
832* Etags Regexps:: Create arbitrary tags using regular expressions. 832* Etags Regexps:: Create arbitrary tags using regular expressions.
833* Select Tags Table:: How to visit a tags table. 833* Select Tags Table:: How to visit a tags table.
834* Find Tag:: Commands to find the definition of a specific tag. 834* Find Tag:: Commands to find the definition of a specific tag.
835* Tags Search:: Using a tags table for searching and replacing. 835* Tags Search:: Using a tags table for searching and replacing.
836* List Tags:: Listing and finding tags defined in a file. 836* List Tags:: Using tags for completion, and listing them.
837 837
838@ifnottex 838@ifnottex
839Merging Files with Emerge 839Merging Files with Emerge
@@ -952,16 +952,9 @@ Customizing the Calendar and Diary
952* Sexp Diary Entries:: More flexible diary entries. 952* Sexp Diary Entries:: More flexible diary entries.
953@end ifnottex 953@end ifnottex
954 954
955Document Viewing
956
957* DocView Navigation:: Navigating DocView buffers.
958* DocView Searching:: Searching inside documents.
959* DocView Slicing:: Specifying which part of a page is displayed.
960* DocView Conversion:: Influencing and triggering conversion.
961
962Sending Mail 955Sending Mail
963 956
964* Mail Format:: Format of the mail being composed. 957* Mail Format:: Format of a mail message.
965* Mail Headers:: Details of some standard mail header fields. 958* Mail Headers:: Details of some standard mail header fields.
966* Mail Aliases:: Abbreviating and grouping mail addresses. 959* Mail Aliases:: Abbreviating and grouping mail addresses.
967* Mail Commands:: Special commands for editing mail being composed. 960* Mail Commands:: Special commands for editing mail being composed.
@@ -1012,6 +1005,13 @@ Gnus
1012* Gnus Group Buffer:: A short description of Gnus group commands. 1005* Gnus Group Buffer:: A short description of Gnus group commands.
1013* Gnus Summary Buffer:: A short description of Gnus summary commands. 1006* Gnus Summary Buffer:: A short description of Gnus summary commands.
1014 1007
1008Document Viewing
1009
1010* DocView Navigation:: Navigating DocView buffers.
1011* DocView Searching:: Searching inside documents.
1012* DocView Slicing:: Specifying which part of a page is displayed.
1013* DocView Conversion:: Influencing and triggering conversion.
1014
1015Running Shell Commands from Emacs 1015Running Shell Commands from Emacs
1016 1016
1017* Single Shell:: How to run one shell command and return. 1017* Single Shell:: How to run one shell command and return.
@@ -1061,10 +1061,10 @@ Customization
1061* Variables:: Many Emacs commands examine Emacs variables 1061* Variables:: Many Emacs commands examine Emacs variables
1062 to decide what to do; by setting variables, 1062 to decide what to do; by setting variables,
1063 you can control their functioning. 1063 you can control their functioning.
1064* Key Bindings:: Keymaps say what command each key runs. 1064* Key Bindings:: The keymaps say what command each key runs.
1065 By changing them, you can "redefine" keys. 1065 By changing them, you can "redefine" keys.
1066* Init File:: How to write common customizations in the 1066* Init File:: How to write common customizations in the
1067 @file{.emacs} file. 1067 initialization file.
1068 1068
1069Easy Customization Interface 1069Easy Customization Interface
1070 1070
@@ -1098,7 +1098,7 @@ Customizing Key Bindings
1098* Local Keymaps:: Major and minor modes have their own keymaps. 1098* Local Keymaps:: Major and minor modes have their own keymaps.
1099* Minibuffer Maps:: The minibuffer uses its own local keymaps. 1099* Minibuffer Maps:: The minibuffer uses its own local keymaps.
1100* Rebinding:: How to redefine one key's meaning conveniently. 1100* Rebinding:: How to redefine one key's meaning conveniently.
1101* Init Rebinding:: Rebinding keys with your init file, @file{.emacs}. 1101* Init Rebinding:: Rebinding keys with your initialization file.
1102* Modifier Keys:: Using modifier keys in key bindings. 1102* Modifier Keys:: Using modifier keys in key bindings.
1103* Function Keys:: Rebinding terminal function keys. 1103* Function Keys:: Rebinding terminal function keys.
1104* Named ASCII Chars:: Distinguishing @key{TAB} from @kbd{C-i}, and so on. 1104* Named ASCII Chars:: Distinguishing @key{TAB} from @kbd{C-i}, and so on.
@@ -1107,7 +1107,7 @@ Customizing Key Bindings
1107 before it can be executed. This is done to protect 1107 before it can be executed. This is done to protect
1108 beginners from surprises. 1108 beginners from surprises.
1109 1109
1110The Init File, @file{~/.emacs} 1110The Emacs Initialization File
1111 1111
1112* Init Syntax:: Syntax of constants in Emacs Lisp. 1112* Init Syntax:: Syntax of constants in Emacs Lisp.
1113* Init Examples:: How to do some things with an init file. 1113* Init Examples:: How to do some things with an init file.
@@ -1167,7 +1167,7 @@ GTK resources
1167 1167
1168* GTK Resource Basics:: Basic usage of GTK+ resources. 1168* GTK Resource Basics:: Basic usage of GTK+ resources.
1169* GTK Widget Names:: How GTK+ widgets are named. 1169* GTK Widget Names:: How GTK+ widgets are named.
1170* GTK Names in Emacs:: GTK+ widgets used by Emacs. 1170* GTK Names in Emacs:: GTK widgets used by Emacs.
1171* GTK styles:: What can be customized in a GTK widget. 1171* GTK styles:: What can be customized in a GTK widget.
1172 1172
1173Emacs and Mac OS / GNUstep 1173Emacs and Mac OS / GNUstep
@@ -1183,7 +1183,8 @@ Emacs and Microsoft Windows/MS-DOS
1183* Text and Binary:: Text files use CRLF to terminate lines. 1183* Text and Binary:: Text files use CRLF to terminate lines.
1184* Windows Files:: File-name conventions on Windows. 1184* Windows Files:: File-name conventions on Windows.
1185* ls in Lisp:: Emulation of @code{ls} for Dired. 1185* ls in Lisp:: Emulation of @code{ls} for Dired.
1186* Windows HOME:: Where Emacs looks for your @file{.emacs}. 1186* Windows HOME:: Where Emacs looks for your @file{.emacs} and
1187 where it starts up.
1187* Windows Keyboard:: Windows-specific keyboard features. 1188* Windows Keyboard:: Windows-specific keyboard features.
1188* Windows Mouse:: Windows-specific mouse features. 1189* Windows Mouse:: Windows-specific mouse features.
1189* Windows Processes:: Running subprocesses on Windows. 1190* Windows Processes:: Running subprocesses on Windows.
diff --git a/doc/emacs/emerge-xtra.texi b/doc/emacs/emerge-xtra.texi
index 72e0b36b704..552580ef851 100644
--- a/doc/emacs/emerge-xtra.texi
+++ b/doc/emacs/emerge-xtra.texi
@@ -151,7 +151,7 @@ input. The mode line indicates Auto Advance mode with @samp{A}.
151 If Skip Prefers mode is in effect, the @kbd{n} and @kbd{p} commands 151 If Skip Prefers mode is in effect, the @kbd{n} and @kbd{p} commands
152skip over differences in states ``prefer-A'' and ``prefer-B'' 152skip over differences in states ``prefer-A'' and ``prefer-B''
153(@pxref{State of Difference}). Thus you see only differences for 153(@pxref{State of Difference}). Thus you see only differences for
154which neither version is presumed ``correct.'' The mode line 154which neither version is presumed ``correct''. The mode line
155indicates Skip Prefers mode with @samp{S}. This mode is only relevant 155indicates Skip Prefers mode with @samp{S}. This mode is only relevant
156when there is an ancestor. 156when there is an ancestor.
157 157
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 10ba9ed1fa6..31883a1f5cc 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -97,7 +97,7 @@ minibuffer, with a directory omitted, specifies the file
97 97
98 When typing a file name into the minibuffer, you can make use of a 98 When typing a file name into the minibuffer, you can make use of a
99couple of shortcuts: a double slash is interpreted as ``ignore 99couple of shortcuts: a double slash is interpreted as ``ignore
100everything before the second slash in the pair,'' and @samp{~/} is 100everything before the second slash in the pair'', and @samp{~/} is
101interpreted as your home directory. @xref{Minibuffer File}. 101interpreted as your home directory. @xref{Minibuffer File}.
102 102
103@cindex environment variables in file names 103@cindex environment variables in file names
@@ -1340,7 +1340,7 @@ correct the line numbers in the hunk headers, to ensure that the diff
1340remains ``correct''. To disable automatic line number correction, 1340remains ``correct''. To disable automatic line number correction,
1341change the variable @code{diff-update-on-the-fly} to @code{nil}. 1341change the variable @code{diff-update-on-the-fly} to @code{nil}.
1342 1342
1343 Diff mode treats each hunk as an ``error message,'' similar to 1343 Diff mode treats each hunk as an ``error message'', similar to
1344Compilation mode. Thus, you can use commands such as @kbd{C-x '} to 1344Compilation mode. Thus, you can use commands such as @kbd{C-x '} to
1345visit the corresponding source locations. @xref{Compilation Mode}. 1345visit the corresponding source locations. @xref{Compilation Mode}.
1346 1346
diff --git a/doc/emacs/fortran-xtra.texi b/doc/emacs/fortran-xtra.texi
index 0dc99034ae6..43e2e63863e 100644
--- a/doc/emacs/fortran-xtra.texi
+++ b/doc/emacs/fortran-xtra.texi
@@ -207,7 +207,7 @@ the Fortran standard counts from 1.) The variable
207@code{fortran-continuation-string} specifies what character to put in 207@code{fortran-continuation-string} specifies what character to put in
208column 5. A line that starts with a tab character followed by any digit 208column 5. A line that starts with a tab character followed by any digit
209except @samp{0} is also a continuation line. We call this style of 209except @samp{0} is also a continuation line. We call this style of
210continuation @dfn{tab format}. (Fortran 90 introduced ``free form,'' 210continuation @dfn{tab format}. (Fortran 90 introduced ``free form'',
211with another style of continuation lines). 211with another style of continuation lines).
212 212
213@vindex indent-tabs-mode @r{(Fortran mode)} 213@vindex indent-tabs-mode @r{(Fortran mode)}
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index eef38136583..e8c5614ff58 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -96,7 +96,7 @@ of the major mode, then global bindings (@code{describe-bindings}).
96@item C-h c @var{key} 96@item C-h c @var{key}
97Show the name of the command that the key sequence @var{key} is bound 97Show the name of the command that the key sequence @var{key} is bound
98to (@code{describe-key-briefly}). Here @kbd{c} stands for 98to (@code{describe-key-briefly}). Here @kbd{c} stands for
99``character.'' For more extensive information on @var{key}, use 99``character''. For more extensive information on @var{key}, use
100@kbd{C-h k}. 100@kbd{C-h k}.
101@item C-h d @var{topics} @key{RET} 101@item C-h d @var{topics} @key{RET}
102Display the commands and variables whose documentation matches 102Display the commands and variables whose documentation matches
diff --git a/doc/emacs/kmacro.texi b/doc/emacs/kmacro.texi
index 766470e514b..e7522a9db43 100644
--- a/doc/emacs/kmacro.texi
+++ b/doc/emacs/kmacro.texi
@@ -225,7 +225,7 @@ desired macro is at the head of the ring. To execute the new macro
225ring head immediately, just type @kbd{C-k}. 225ring head immediately, just type @kbd{C-k}.
226 226
227 Note that Emacs treats the head of the macro ring as the ``last 227 Note that Emacs treats the head of the macro ring as the ``last
228defined keyboard macro.'' For instance, @key{F4} will execute that 228defined keyboard macro''. For instance, @key{F4} will execute that
229macro, and @kbd{C-x C-k n} will give it a name. 229macro, and @kbd{C-x C-k n} will give it a name.
230 230
231@vindex kmacro-ring-max 231@vindex kmacro-ring-max
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi
index e498516ae7f..f50e3085f2d 100644
--- a/doc/emacs/mini.texi
+++ b/doc/emacs/mini.texi
@@ -88,7 +88,7 @@ Find file: /u2/emacs/src//etc/termcap
88@cindex slashes repeated in file name 88@cindex slashes repeated in file name
89@findex file-name-shadow-mode 89@findex file-name-shadow-mode
90Emacs interprets a double slash as ``ignore everything before the 90Emacs interprets a double slash as ``ignore everything before the
91second slash in the pair.'' In the example above, 91second slash in the pair''. In the example above,
92@file{/u2/emacs/src/} is ignored, so the argument you supplied is 92@file{/u2/emacs/src/} is ignored, so the argument you supplied is
93@file{/etc/termcap}. The ignored part of the file name is dimmed if 93@file{/etc/termcap}. The ignored part of the file name is dimmed if
94the terminal allows it. (To disable this dimming, turn off File Name 94the terminal allows it. (To disable this dimming, turn off File Name
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 50b68767991..b91763116b8 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -1191,7 +1191,7 @@ that buffer.
1191line mode, Term basically acts like Shell mode (@pxref{Shell Mode}). 1191line mode, Term basically acts like Shell mode (@pxref{Shell Mode}).
1192 1192
1193 In char mode, each character is sent directly to the subshell, as 1193 In char mode, each character is sent directly to the subshell, as
1194``terminal input.'' Any ``echoing'' of your input is the 1194``terminal input''. Any ``echoing'' of your input is the
1195responsibility of the subshell. The sole exception is the terminal 1195responsibility of the subshell. The sole exception is the terminal
1196escape character, which by default is @kbd{C-c} (@pxref{Term Mode}). 1196escape character, which by default is @kbd{C-c} (@pxref{Term Mode}).
1197Any ``terminal output'' from the subshell goes into the buffer, 1197Any ``terminal output'' from the subshell goes into the buffer,
@@ -2076,10 +2076,10 @@ Insert a byte with a code typed in octal.
2076Insert a byte with a code typed in hex. 2076Insert a byte with a code typed in hex.
2077 2077
2078@item C-x [ 2078@item C-x [
2079Move to the beginning of a 1k-byte ``page.'' 2079Move to the beginning of a 1k-byte ``page''.
2080 2080
2081@item C-x ] 2081@item C-x ]
2082Move to the end of a 1k-byte ``page.'' 2082Move to the end of a 1k-byte ``page''.
2083 2083
2084@item M-g 2084@item M-g
2085Move to an address specified in hex. 2085Move to an address specified in hex.
@@ -2149,7 +2149,7 @@ usually turned on.
2149However, this may be slow if there are a lot of buffers in the 2149However, this may be slow if there are a lot of buffers in the
2150desktop. You can specify the maximum number of buffers to restore 2150desktop. You can specify the maximum number of buffers to restore
2151immediately with the variable @code{desktop-restore-eager}; the 2151immediately with the variable @code{desktop-restore-eager}; the
2152remaining buffers are restored ``lazily,'' when Emacs is idle. 2152remaining buffers are restored ``lazily'', when Emacs is idle.
2153 2153
2154@findex desktop-clear 2154@findex desktop-clear
2155@vindex desktop-globals-to-clear 2155@vindex desktop-globals-to-clear
diff --git a/doc/emacs/msdog-xtra.texi b/doc/emacs/msdog-xtra.texi
index af8882a1fd4..0d05c8ac9c6 100644
--- a/doc/emacs/msdog-xtra.texi
+++ b/doc/emacs/msdog-xtra.texi
@@ -548,7 +548,7 @@ when invoked with the @samp{-nw} option.
548@cindex inferior processes under MS-DOS 548@cindex inferior processes under MS-DOS
549@findex compile @r{(MS-DOS)} 549@findex compile @r{(MS-DOS)}
550@findex grep @r{(MS-DOS)} 550@findex grep @r{(MS-DOS)}
551 Because MS-DOS is a single-process ``operating system,'' 551 Because MS-DOS is a single-process ``operating system'',
552asynchronous subprocesses are not available. In particular, Shell 552asynchronous subprocesses are not available. In particular, Shell
553mode and its variants do not work. Most Emacs features that use 553mode and its variants do not work. Most Emacs features that use
554asynchronous subprocesses also don't work on MS-DOS, including 554asynchronous subprocesses also don't work on MS-DOS, including
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index df2d687114b..9c1d908f882 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -1337,6 +1337,7 @@ fontset}, the @dfn{startup fontset} and the @dfn{default fontset}.
1337@c FIXME? The doc of *standard*-fontset-spec says: 1337@c FIXME? The doc of *standard*-fontset-spec says:
1338@c "You have the biggest chance to display international characters 1338@c "You have the biggest chance to display international characters
1339@c with correct glyphs by using the *standard* fontset." (my emphasis) 1339@c with correct glyphs by using the *standard* fontset." (my emphasis)
1340@c See http://lists.gnu.org/archive/html/emacs-devel/2012-04/msg00430.html
1340The default fontset is most likely to have fonts for a wide variety of 1341The default fontset is most likely to have fonts for a wide variety of
1341non-@acronym{ASCII} characters, and is the default fallback for the 1342non-@acronym{ASCII} characters, and is the default fallback for the
1342other two fontsets, and if you set a default font rather than fontset. 1343other two fontsets, and if you set a default font rather than fontset.
@@ -1762,15 +1763,17 @@ non-@code{nil}, Emacs reorders characters that have right-to-left
1762directionality when they are displayed. The default value is 1763directionality when they are displayed. The default value is
1763@code{t}. 1764@code{t}.
1764 1765
1766@cindex base direction of paragraphs
1767@cindex paragraph, base direction
1765 Each paragraph of bidirectional text can have its own @dfn{base 1768 Each paragraph of bidirectional text can have its own @dfn{base
1766direction}, either right-to-left or left-to-right. (Paragraph 1769direction}, either right-to-left or left-to-right. (Paragraph
1767@c paragraph-separate etc have no influence on this? 1770@c paragraph-separate etc have no influence on this?
1768boundaries are empty lines, i.e.@: lines consisting entirely of 1771boundaries are empty lines, i.e.@: lines consisting entirely of
1769whitespace characters.) Text in left-to-right paragraphs begins at 1772whitespace characters.) Text in left-to-right paragraphs begins on
1770the left margin of the window and is truncated or continued when it 1773the screen at the left margin of the window and is truncated or
1771reaches the right margin. By contrast, text in right-to-left 1774continued when it reaches the right margin. By contrast, text in
1772paragraphs begins at the right margin and is continued or truncated at 1775right-to-left paragraphs is displayed starting at the right margin and
1773the left margin. 1776is continued or truncated at the left margin.
1774 1777
1775@vindex bidi-paragraph-direction 1778@vindex bidi-paragraph-direction
1776 Emacs determines the base direction of each paragraph dynamically, 1779 Emacs determines the base direction of each paragraph dynamically,
diff --git a/doc/emacs/picture-xtra.texi b/doc/emacs/picture-xtra.texi
index 5a10bf2c31c..edf75f078d5 100644
--- a/doc/emacs/picture-xtra.texi
+++ b/doc/emacs/picture-xtra.texi
@@ -199,7 +199,7 @@ C-b} (@code{picture-motion-reverse}) moves in the opposite direction.
199With no argument, it moves to a point underneath the next 199With no argument, it moves to a point underneath the next
200``interesting'' character that follows whitespace in the previous 200``interesting'' character that follows whitespace in the previous
201nonblank line. ``Next'' here means ``appearing at a horizontal position 201nonblank line. ``Next'' here means ``appearing at a horizontal position
202greater than the one point starts out at.'' With an argument, as in 202greater than the one point starts out at''. With an argument, as in
203@kbd{C-u M-@key{TAB}}, this command moves to the next such interesting 203@kbd{C-u M-@key{TAB}}, this command moves to the next such interesting
204character in the current line. @kbd{M-@key{TAB}} does not change the 204character in the current line. @kbd{M-@key{TAB}} does not change the
205text; it only moves point. ``Interesting'' characters are defined by 205text; it only moves point. ``Interesting'' characters are defined by
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 5f7abcf3881..23f808b93ea 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -1109,7 +1109,7 @@ You can also use @kbd{M-x info-lookup-file} to look for documentation
1109for a file name. 1109for a file name.
1110 1110
1111 If you use @kbd{C-h S} in a major mode that does not support it, 1111 If you use @kbd{C-h S} in a major mode that does not support it,
1112it asks you to specify the ``symbol help mode.'' You should enter 1112it asks you to specify the ``symbol help mode''. You should enter
1113a command such as @code{c-mode} that would select a major 1113a command such as @code{c-mode} that would select a major
1114mode which @kbd{C-h S} does support. 1114mode which @kbd{C-h S} does support.
1115 1115
@@ -1451,7 +1451,7 @@ with the Foldout package (@pxref{Foldout}).
1451 1451
1452 This section gives a brief description of the special features 1452 This section gives a brief description of the special features
1453available in C, C++, Objective-C, Java, CORBA IDL, Pike and AWK modes. 1453available in C, C++, Objective-C, Java, CORBA IDL, Pike and AWK modes.
1454(These are called ``C mode and related modes.'') 1454(These are called ``C mode and related modes''.)
1455@ifinfo 1455@ifinfo
1456@xref{Top,, CC Mode, ccmode, CC Mode}, for more details. 1456@xref{Top,, CC Mode, ccmode, CC Mode}, for more details.
1457@end ifinfo 1457@end ifinfo
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index 3b3605f800c..6221bbac1a8 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -1355,7 +1355,7 @@ your Rmail file (@pxref{Rmail Inbox}). When loaded for the first time,
1355Rmail attempts to locate the @code{movemail} program and determine its 1355Rmail attempts to locate the @code{movemail} program and determine its
1356version. There are two versions of the @code{movemail} program: the 1356version. There are two versions of the @code{movemail} program: the
1357native one, shipped with GNU Emacs (the ``emacs version'') and the one 1357native one, shipped with GNU Emacs (the ``emacs version'') and the one
1358included in GNU mailutils (the ``mailutils version,'' 1358included in GNU mailutils (the ``mailutils version'',
1359@pxref{movemail,,,mailutils,GNU mailutils}). They support the same 1359@pxref{movemail,,,mailutils,GNU mailutils}). They support the same
1360command line syntax and the same basic subset of options. However, the 1360command line syntax and the same basic subset of options. However, the
1361Mailutils version offers additional features. 1361Mailutils version offers additional features.
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 38f00f03532..9d30c6f4caf 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -146,7 +146,7 @@ you don't like this feature, you can disable it by setting
146 After exiting a search, you can search for the same string again by 146 After exiting a search, you can search for the same string again by
147typing just @kbd{C-s C-s}. The first @kbd{C-s} is the key that 147typing just @kbd{C-s C-s}. The first @kbd{C-s} is the key that
148invokes incremental search, and the second @kbd{C-s} means ``search 148invokes incremental search, and the second @kbd{C-s} means ``search
149again.'' Similarly, @kbd{C-r C-r} searches backward for the last 149again''. Similarly, @kbd{C-r C-r} searches backward for the last
150search string. In determining the last search string, it doesn't 150search string. In determining the last search string, it doesn't
151matter whether the string was searched for with @kbd{C-s} or 151matter whether the string was searched for with @kbd{C-s} or
152@kbd{C-r}. 152@kbd{C-r}.
@@ -552,7 +552,7 @@ therefore @samp{f} is a regular expression that matches the string
552@samp{ff}.) Likewise, @samp{o} is a regular expression that matches 552@samp{ff}.) Likewise, @samp{o} is a regular expression that matches
553only @samp{o}. (When case distinctions are being ignored, these regexps 553only @samp{o}. (When case distinctions are being ignored, these regexps
554also match @samp{F} and @samp{O}, but we consider this a generalization 554also match @samp{F} and @samp{O}, but we consider this a generalization
555of ``the same string,'' rather than an exception.) 555of ``the same string'', rather than an exception.)
556 556
557 Any two regular expressions @var{a} and @var{b} can be concatenated. 557 Any two regular expressions @var{a} and @var{b} can be concatenated.
558The result is a regular expression which matches a string if @var{a} 558The result is a regular expression which matches a string if @var{a}
@@ -801,7 +801,7 @@ After the end of a @samp{\( @dots{} \)} construct, the matcher remembers
801the beginning and end of the text matched by that construct. Then, 801the beginning and end of the text matched by that construct. Then,
802later on in the regular expression, you can use @samp{\} followed by the 802later on in the regular expression, you can use @samp{\} followed by the
803digit @var{d} to mean ``match the same text matched the @var{d}th time 803digit @var{d} to mean ``match the same text matched the @var{d}th time
804by the @samp{\( @dots{} \)} construct.'' 804by the @samp{\( @dots{} \)} construct''.
805 805
806The strings matching the first nine @samp{\( @dots{} \)} constructs 806The strings matching the first nine @samp{\( @dots{} \)} constructs
807appearing in a regular expression are assigned numbers 1 through 9 in 807appearing in a regular expression are assigned numbers 1 through 9 in
@@ -1030,7 +1030,7 @@ it can refer to all or part of what is matched by the @var{regexp}.
1030@samp{\&} in @var{newstring} stands for the entire match being 1030@samp{\&} in @var{newstring} stands for the entire match being
1031replaced. @samp{\@var{d}} in @var{newstring}, where @var{d} is a 1031replaced. @samp{\@var{d}} in @var{newstring}, where @var{d} is a
1032digit, stands for whatever matched the @var{d}th parenthesized 1032digit, stands for whatever matched the @var{d}th parenthesized
1033grouping in @var{regexp}. (This is called a ``back reference.'') 1033grouping in @var{regexp}. (This is called a ``back reference''.)
1034@samp{\#} refers to the count of replacements already made in this 1034@samp{\#} refers to the count of replacements already made in this
1035command, as a decimal number. In the first replacement, @samp{\#} 1035command, as a decimal number. In the first replacement, @samp{\#}
1036stands for @samp{0}; in the second, for @samp{1}; and so on. For 1036stands for @samp{0}; in the second, for @samp{1}; and so on. For
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index b118295ab1a..3bbdecc0176 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -534,16 +534,16 @@ large, and Emacs displays @samp{I feel pretty today}. The bug report
534would need to provide all that information. You should not assume 534would need to provide all that information. You should not assume
535that the problem is due to the size of the file and say, ``I visited a 535that the problem is due to the size of the file and say, ``I visited a
536large file, and Emacs displayed @samp{I feel pretty today}.'' This is 536large file, and Emacs displayed @samp{I feel pretty today}.'' This is
537what we mean by ``guessing explanations.'' The problem might be due 537what we mean by ``guessing explanations''. The problem might be due
538to the fact that there is a @samp{z} in the file name. If this is so, 538to the fact that there is a @samp{z} in the file name. If this is so,
539then when we got your report, we would try out the problem with some 539then when we got your report, we would try out the problem with some
540``large file,'' probably with no @samp{z} in its name, and not see any 540``large file'', probably with no @samp{z} in its name, and not see any
541problem. There is no way we could guess that we should try visiting a 541problem. There is no way we could guess that we should try visiting a
542file with a @samp{z} in its name. 542file with a @samp{z} in its name.
543 543
544 You should not even say ``visit a file'' instead of @kbd{C-x C-f}. 544 You should not even say ``visit a file'' instead of @kbd{C-x C-f}.
545Similarly, rather than saying ``if I have three characters on the 545Similarly, rather than saying ``if I have three characters on the
546line,'' say ``after I type @kbd{@key{RET} A B C @key{RET} C-p},'' if 546line'', say ``after I type @kbd{@key{RET} A B C @key{RET} C-p}'', if
547that is the way you entered the text. 547that is the way you entered the text.
548 548
549 If possible, try quickly to reproduce the bug by invoking Emacs with 549 If possible, try quickly to reproduce the bug by invoking Emacs with
@@ -731,7 +731,7 @@ you can copy its output from the @file{*Messages*} buffer.
731 731
732@item 732@item
733A description of what behavior you observe that you believe is 733A description of what behavior you observe that you believe is
734incorrect. For example, ``The Emacs process gets a fatal signal,'' or, 734incorrect. For example, ``The Emacs process gets a fatal signal'', or,
735``The resulting text is as follows, which I think is wrong.'' 735``The resulting text is as follows, which I think is wrong.''
736 736
737Of course, if the bug is that Emacs gets a fatal signal, then one can't 737Of course, if the bug is that Emacs gets a fatal signal, then one can't
@@ -872,7 +872,7 @@ More detailed advice and other useful techniques for debugging Emacs
872are available in the file @file{etc/DEBUG} in the Emacs distribution. 872are available in the file @file{etc/DEBUG} in the Emacs distribution.
873That file also includes instructions for investigating problems 873That file also includes instructions for investigating problems
874whereby Emacs stops responding (many people assume that Emacs is 874whereby Emacs stops responding (many people assume that Emacs is
875``hung,'' whereas in fact it might be in an infinite loop). 875``hung'', whereas in fact it might be in an infinite loop).
876 876
877To find the file @file{etc/DEBUG} in your Emacs installation, use the 877To find the file @file{etc/DEBUG} in your Emacs installation, use the
878directory name stored in the variable @code{data-directory}. 878directory name stored in the variable @code{data-directory}.
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index ee0f0027454..72e01a368a1 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -151,7 +151,7 @@ selects the window without moving point in it.
151@kindex C-x o 151@kindex C-x o
152@findex other-window 152@findex other-window
153With the keyboard, you can switch windows by typing @kbd{C-x o} 153With the keyboard, you can switch windows by typing @kbd{C-x o}
154(@code{other-window}). That is an @kbd{o}, for ``other,'' not a zero. 154(@code{other-window}). That is an @kbd{o}, for ``other'', not a zero.
155When there are more than two windows, this command moves through all the 155When there are more than two windows, this command moves through all the
156windows in a cyclic order, generally top to bottom and left to right. 156windows in a cyclic order, generally top to bottom and left to right.
157After the rightmost and bottommost window, it goes back to the one at 157After the rightmost and bottommost window, it goes back to the one at
@@ -452,7 +452,7 @@ buffer. @xref{Follow Mode}.
452 The Windmove package defines commands for moving directionally 452 The Windmove package defines commands for moving directionally
453between neighboring windows in a frame. @kbd{M-x windmove-right} 453between neighboring windows in a frame. @kbd{M-x windmove-right}
454selects the window immediately to the right of the currently selected 454selects the window immediately to the right of the currently selected
455one, and similarly for the ``left,'' ``up,'' and ``down'' 455one, and similarly for the ``left'', ``up'', and ``down''
456counterparts. @kbd{M-x windmove-default-keybindings} binds these 456counterparts. @kbd{M-x windmove-default-keybindings} binds these
457commands to @kbd{S-right} etc.; doing so disables shift selection for 457commands to @kbd{S-right} etc.; doing so disables shift selection for
458those keys (@pxref{Shift Selection}). 458those keys (@pxref{Shift Selection}).
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 5333e3af3df..9c323d7937f 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,54 @@
12012-04-27 Glenn Morris <rgm@gnu.org>
2
3 * elisp.texi, vol1.texi, vol2.texi: Some fixes for detailed menu.
4 * modes.texi (Major Modes, Auto-Indentation):
5 * buffers.texi (Buffers): Some fixes for menu descriptions.
6
72012-04-27 Stefan Monnier <monnier@iro.umontreal.ca>
8 * functions.texi (Simple Lambda, Argument List):
9 * eval.texi (Function Indirection): Avoid deprecated form.
10
112012-04-27 Glenn Morris <rgm@gnu.org>
12
13 * book-spine.texi, elisp.texi, vol1.texi, vol2.texi:
14 Add "et al." to authors.
15
16 * buffers.texi, commands.texi, compile.texi, control.texi:
17 * customize.texi, display.texi, eval.texi, files.texi, frames.texi:
18 * hash.texi, help.texi, intro.texi, keymaps.texi, lists.texi:
19 * modes.texi, numbers.texi, objects.texi, streams.texi:
20 * symbols.texi, syntax.texi, text.texi, tips.texi, variables.texi:
21 Use Texinfo recommended convention for quotes+punctuation.
22
232012-04-27 Chong Yidong <cyd@gnu.org>
24
25 * keymaps.texi (Scanning Keymaps): Fix description of NO-REMAP arg
26 to where-is-internal (Bug#10872).
27
282012-04-27 Glenn Morris <rgm@gnu.org>
29
30 * macros.texi (Indenting Macros): Fix typo.
31
32 * windows.texi (Basic Windows, Windows and Frames, Window Sizes)
33 (Resizing Windows, Deleting Windows, Selecting Windows)
34 (Choosing Window Options, Horizontal Scrolling)
35 (Cyclic Window Ordering, Window History, Dedicated Windows)
36 (Quitting Windows, Window Configurations, Textual Scrolling):
37 (Coordinates and Windows, Window Configurations)
38 (Window Parameters, Window Hooks): Copyedits.
39 (Splitting Windows, Deleting Windows):
40 Fix ignore-window-parameters logic.
41 (Selecting Windows, Choosing Window Options): Markup fixes.
42 (Window Start and End): Remove pointless example.
43 Remove cross-reference to deleted count-lines content.
44 (Textual Scrolling): Mention recenter-redisplay, recenter-top-bottom,
45 and recenter-positions. Remove recenter example.
46
47 * elisp.texi, vol1.texi, vol2.texi: Bump VERSION and DATE.
48
49 * minibuf.texi (Intro to Minibuffers):
50 Tweak discussion of resizing minibuffer window.
51
12012-04-26 Glenn Morris <rgm@gnu.org> 522012-04-26 Glenn Morris <rgm@gnu.org>
2 53
3 * elisp-covers.texi, front-cover-1.texi: Remove files. 54 * elisp-covers.texi, front-cover-1.texi: Remove files.
diff --git a/doc/lispref/book-spine.texi b/doc/lispref/book-spine.texi
index 270def6d8b3..721416316d2 100644
--- a/doc/lispref/book-spine.texi
+++ b/doc/lispref/book-spine.texi
@@ -20,8 +20,8 @@
20@center by 20@center by
21@center Bil Lewis, 21@center Bil Lewis,
22@center Dan LaLiberte, 22@center Dan LaLiberte,
23@center and the 23@center the GNU Manual Group,
24@center GNU Manual Group 24@center et al.
25@sp 5 25@sp 5
26@center Free Software Foundation 26@center Free Software Foundation
27@bye 27@bye
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
index 844b6423a52..165faf32b09 100644
--- a/doc/lispref/buffers.texi
+++ b/doc/lispref/buffers.texi
@@ -23,7 +23,7 @@ not be displayed in any windows.
23* Buffer File Name:: The buffer file name indicates which file is visited. 23* Buffer File Name:: The buffer file name indicates which file is visited.
24* Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved. 24* Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved.
25* Modification Time:: Determining whether the visited file was changed 25* Modification Time:: Determining whether the visited file was changed
26 ``behind Emacs's back''. 26 "behind Emacs's back".
27* Read Only Buffers:: Modifying text is not allowed in a read-only buffer. 27* Read Only Buffers:: Modifying text is not allowed in a read-only buffer.
28* The Buffer List:: How to look at all the existing buffers. 28* The Buffer List:: How to look at all the existing buffers.
29* Creating Buffers:: Functions that create buffers. 29* Creating Buffers:: Functions that create buffers.
@@ -481,7 +481,7 @@ correspond to the new file name, unless the new name is already in
481use. 481use.
482 482
483If @var{filename} is @code{nil} or the empty string, that stands for 483If @var{filename} is @code{nil} or the empty string, that stands for
484``no visited file.'' In this case, @code{set-visited-file-name} marks 484``no visited file''. In this case, @code{set-visited-file-name} marks
485the buffer as having no visited file, without changing the buffer's 485the buffer as having no visited file, without changing the buffer's
486modified flag. 486modified flag.
487 487
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index bf26d83b7bf..dea838462bb 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -718,7 +718,7 @@ We use @code{"p"} because the numeric prefix argument is never
718message when called from a keyboard macro. 718message when called from a keyboard macro.
719 719
720 The above method with the additional argument is usually best, 720 The above method with the additional argument is usually best,
721because it allows callers to say ``treat this call as interactive.'' 721because it allows callers to say ``treat this call as interactive''.
722But you can also do the job by testing @code{called-interactively-p}. 722But you can also do the job by testing @code{called-interactively-p}.
723 723
724@defun called-interactively-p kind 724@defun called-interactively-p kind
@@ -2325,7 +2325,7 @@ same symbol that would normally represent that combination of mouse
2325button and modifier keys. The information about the window part is kept 2325button and modifier keys. The information about the window part is kept
2326elsewhere in the event---in the coordinates. But 2326elsewhere in the event---in the coordinates. But
2327@code{read-key-sequence} translates this information into imaginary 2327@code{read-key-sequence} translates this information into imaginary
2328``prefix keys,'' all of which are symbols: @code{header-line}, 2328``prefix keys'', all of which are symbols: @code{header-line},
2329@code{horizontal-scroll-bar}, @code{menu-bar}, @code{mode-line}, 2329@code{horizontal-scroll-bar}, @code{menu-bar}, @code{mode-line},
2330@code{vertical-line}, and @code{vertical-scroll-bar}. You can define 2330@code{vertical-line}, and @code{vertical-scroll-bar}. You can define
2331meanings for mouse clicks in special window parts by defining key 2331meanings for mouse clicks in special window parts by defining key
@@ -2705,7 +2705,7 @@ individual events, which you can put in @code{unread-command-events}.
2705 2705
2706@defvar unread-command-char 2706@defvar unread-command-char
2707This variable holds a character to be read as command input. 2707This variable holds a character to be read as command input.
2708A value of -1 means ``empty.'' 2708A value of -1 means ``empty''.
2709 2709
2710This variable is mostly obsolete now that you can use 2710This variable is mostly obsolete now that you can use
2711@code{unread-command-events} instead; it exists only to support programs 2711@code{unread-command-events} instead; it exists only to support programs
@@ -3195,7 +3195,7 @@ using the minibuffer. Usually it is more convenient for the user if you
3195change the major mode of the current buffer temporarily to a special 3195change the major mode of the current buffer temporarily to a special
3196major mode, which should have a command to go back to the previous mode. 3196major mode, which should have a command to go back to the previous mode.
3197(The @kbd{e} command in Rmail uses this technique.) Or, if you wish to 3197(The @kbd{e} command in Rmail uses this technique.) Or, if you wish to
3198give the user different text to edit ``recursively,'' create and select 3198give the user different text to edit ``recursively'', create and select
3199a new buffer in a special mode. In this mode, define a command to 3199a new buffer in a special mode. In this mode, define a command to
3200complete the processing and go back to the previous buffer. (The 3200complete the processing and go back to the previous buffer. (The
3201@kbd{m} command in Rmail does this.) 3201@kbd{m} command in Rmail does this.)
diff --git a/doc/lispref/compile.texi b/doc/lispref/compile.texi
index ead75942b24..8cebd9fade6 100644
--- a/doc/lispref/compile.texi
+++ b/doc/lispref/compile.texi
@@ -274,7 +274,7 @@ reloading each file after recompiling it.
274use a special Lisp reader construct, @samp{#@@@var{count}}. This 274use a special Lisp reader construct, @samp{#@@@var{count}}. This
275construct skips the next @var{count} characters. It also uses the 275construct skips the next @var{count} characters. It also uses the
276@samp{#$} construct, which stands for ``the name of this file, as a 276@samp{#$} construct, which stands for ``the name of this file, as a
277string.'' It is usually best not to use these constructs in Lisp source 277string''. It is usually best not to use these constructs in Lisp source
278files, since they are not designed to be clear to humans reading the 278files, since they are not designed to be clear to humans reading the
279file. 279file.
280 280
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index aa24291d892..d6dee7ecf91 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -220,7 +220,7 @@ non-@code{nil}, the clause ``succeeds''; then @code{cond} evaluates its
220@var{body-forms}, and the value of the last of @var{body-forms} becomes 220@var{body-forms}, and the value of the last of @var{body-forms} becomes
221the value of the @code{cond}. The remaining clauses are ignored. 221the value of the @code{cond}. The remaining clauses are ignored.
222 222
223If the value of @var{condition} is @code{nil}, the clause ``fails,'' so 223If the value of @var{condition} is @code{nil}, the clause ``fails'', so
224the @code{cond} moves on to the following clause, trying its 224the @code{cond} moves on to the following clause, trying its
225@var{condition}. 225@var{condition}.
226 226
@@ -622,7 +622,7 @@ error is signaled with data @code{(@var{tag} @var{value})}.
622@subsection Examples of @code{catch} and @code{throw} 622@subsection Examples of @code{catch} and @code{throw}
623 623
624 One way to use @code{catch} and @code{throw} is to exit from a doubly 624 One way to use @code{catch} and @code{throw} is to exit from a doubly
625nested loop. (In most languages, this would be done with a ``goto.'') 625nested loop. (In most languages, this would be done with a ``goto''.)
626Here we compute @code{(foo @var{i} @var{j})} for @var{i} and @var{j} 626Here we compute @code{(foo @var{i} @var{j})} for @var{i} and @var{j}
627varying from 0 to 9: 627varying from 0 to 9:
628 628
diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi
index 04b3cdd11f0..c8e60fd84f4 100644
--- a/doc/lispref/customize.texi
+++ b/doc/lispref/customize.texi
@@ -817,7 +817,7 @@ For example,
817 817
818@noindent 818@noindent
819describes a variable for which @code{t} means yes, @code{nil} means no, 819describes a variable for which @code{t} means yes, @code{nil} means no,
820and @code{foo} means ``ask.'' 820and @code{foo} means ``ask''.
821 821
822@item (other @var{value}) 822@item (other @var{value})
823This alternative can match any Lisp value, but if the user chooses this 823This alternative can match any Lisp value, but if the user chooses this
@@ -834,7 +834,7 @@ For example,
834 834
835@noindent 835@noindent
836describes a variable for which @code{t} means yes, @code{nil} means no, 836describes a variable for which @code{t} means yes, @code{nil} means no,
837and anything else means ``ask.'' If the user chooses @samp{Ask} from 837and anything else means ``ask''. If the user chooses @samp{Ask} from
838the menu of alternatives, that specifies the value @code{foo}; but any 838the menu of alternatives, that specifies the value @code{foo}; but any
839other value (not @code{t}, @code{nil} or @code{foo}) displays as 839other value (not @code{t}, @code{nil} or @code{foo}) displays as
840@samp{Ask}, just like @code{foo}. 840@samp{Ask}, just like @code{foo}.
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 0113ae86358..4ec3b8bf08a 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -155,7 +155,7 @@ boundary. @xref{Filling}.
155indicate truncated and continued lines (@pxref{Fringes}). On a text 155indicate truncated and continued lines (@pxref{Fringes}). On a text
156terminal, a @samp{$} in the rightmost column of the window indicates 156terminal, a @samp{$} in the rightmost column of the window indicates
157truncation; a @samp{\} on the rightmost column indicates a line that 157truncation; a @samp{\} on the rightmost column indicates a line that
158``wraps.'' (The display table can specify alternate characters to use 158``wraps''. (The display table can specify alternate characters to use
159for this; @pxref{Display Tables}). 159for this; @pxref{Display Tables}).
160 160
161@defopt truncate-lines 161@defopt truncate-lines
@@ -451,7 +451,7 @@ prints the message of @var{reporter} followed by word ``done'' in the
451echo area. 451echo area.
452 452
453You should always call this function and not hope for 453You should always call this function and not hope for
454@code{progress-reporter-update} to print ``100%.'' Firstly, it may 454@code{progress-reporter-update} to print ``100%''. Firstly, it may
455never print it, there are many good reasons for this not to happen. 455never print it, there are many good reasons for this not to happen.
456Secondly, ``done'' is more explicit. 456Secondly, ``done'' is more explicit.
457@end defun 457@end defun
@@ -1308,7 +1308,7 @@ The return value is @var{overlay}.
1308This is the only valid way to change the endpoints of an overlay. Do 1308This is the only valid way to change the endpoints of an overlay. Do
1309not try modifying the markers in the overlay by hand, as that fails to 1309not try modifying the markers in the overlay by hand, as that fails to
1310update other vital data structures and can cause some overlays to be 1310update other vital data structures and can cause some overlays to be
1311``lost.'' 1311``lost''.
1312@end defun 1312@end defun
1313 1313
1314@defun remove-overlays &optional start end name value 1314@defun remove-overlays &optional start end name value
@@ -1385,7 +1385,7 @@ foo
1385@end example 1385@end example
1386 1386
1387 Emacs stores the overlays of each buffer in two lists, divided 1387 Emacs stores the overlays of each buffer in two lists, divided
1388around an arbitrary ``center position.'' One list extends backwards 1388around an arbitrary ``center position''. One list extends backwards
1389through the buffer from that center position, and the other extends 1389through the buffer from that center position, and the other extends
1390forwards from that center position. The center position can be anywhere 1390forwards from that center position. The center position can be anywhere
1391in the buffer. 1391in the buffer.
@@ -4359,7 +4359,7 @@ $$\pmatrix{ 2 & -1 & 0 \cr
4359@end ifnottex 4359@end ifnottex
4360 4360
4361@item disabled 4361@item disabled
4362Specifies transforming the image so that it looks ``disabled.'' 4362Specifies transforming the image so that it looks ``disabled''.
4363@end table 4363@end table
4364 4364
4365@item :mask @var{mask} 4365@item :mask @var{mask}
@@ -5531,7 +5531,7 @@ Any @var{args} are passed to @var{map-function}.
5531@subsection Abstract Display Example 5531@subsection Abstract Display Example
5532 5532
5533 Here is a simple example using functions of the ewoc package to 5533 Here is a simple example using functions of the ewoc package to
5534implement a ``color components display,'' an area in a buffer that 5534implement a ``color components display'', an area in a buffer that
5535represents a vector of three integers (itself representing a 24-bit RGB 5535represents a vector of three integers (itself representing a 24-bit RGB
5536value) in various ways. 5536value) in various ways.
5537 5537
@@ -5842,7 +5842,7 @@ display the character @var{c} as those glyphs; @pxref{Glyphs}).
5842 5842
5843 @strong{Warning:} if you use the display table to change the display 5843 @strong{Warning:} if you use the display table to change the display
5844of newline characters, the whole buffer will be displayed as one long 5844of newline characters, the whole buffer will be displayed as one long
5845``line.'' 5845``line''.
5846 5846
5847 The display table also has six ``extra slots'' which serve special 5847 The display table also has six ``extra slots'' which serve special
5848purposes. Here is a table of their meanings; @code{nil} in any slot 5848purposes. Here is a table of their meanings; @code{nil} in any slot
@@ -6153,7 +6153,7 @@ capability (@samp{vb}).
6153 6153
6154@defvar ring-bell-function 6154@defvar ring-bell-function
6155If this is non-@code{nil}, it specifies how Emacs should ``ring the 6155If this is non-@code{nil}, it specifies how Emacs should ``ring the
6156bell.'' Its value should be a function of no arguments. If this is 6156bell''. Its value should be a function of no arguments. If this is
6157non-@code{nil}, it takes precedence over the @code{visible-bell} 6157non-@code{nil}, it takes precedence over the @code{visible-bell}
6158variable. 6158variable.
6159@end defvar 6159@end defvar
@@ -6162,7 +6162,7 @@ variable.
6162@section Window Systems 6162@section Window Systems
6163 6163
6164 Emacs works with several window systems, most notably the X Window 6164 Emacs works with several window systems, most notably the X Window
6165System. Both Emacs and X use the term ``window,'' but use it 6165System. Both Emacs and X use the term ``window'', but use it
6166differently. An Emacs frame is a single window as far as X is 6166differently. An Emacs frame is a single window as far as X is
6167concerned; the individual Emacs windows are not known to X at all. 6167concerned; the individual Emacs windows are not known to X at all.
6168 6168
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 4319d5eddda..9c5ae73f718 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -5,11 +5,10 @@
5@c %**end of header 5@c %**end of header
6 6
7@c Version of the manual and of Emacs. 7@c Version of the manual and of Emacs.
8@c Please remember to update the edition number in README as well. 8@c Please remember to update these in vol1.texi and vol2.texi as well.
9@c And also the copies in vol1.texi and vol2.texi. 9@set VERSION 3.1
10@set VERSION 3.0
11@include emacsver.texi 10@include emacsver.texi
12@set DATE July 2009 11@set DATE July 2012
13 12
14@c in general, keep the following line commented out, unless doing a 13@c in general, keep the following line commented out, unless doing a
15@c copy of this manual that will be published. The manual should go 14@c copy of this manual that will be published. The manual should go
@@ -73,8 +72,8 @@ developing GNU and promoting software freedom.''
73@subtitle For Emacs Version @value{EMACSVER} 72@subtitle For Emacs Version @value{EMACSVER}
74@subtitle Revision @value{VERSION}, @value{DATE} 73@subtitle Revision @value{VERSION}, @value{DATE}
75 74
76@author by Bil Lewis, Dan LaLiberte, Richard Stallman 75@author by Bil Lewis, Dan LaLiberte, Richard Stallman,
77@author and the GNU Manual Group 76@author the GNU Manual Group, et al.
78@page 77@page
79@vskip 0pt plus 1filll 78@vskip 0pt plus 1filll
80@insertcopying 79@insertcopying
@@ -460,7 +459,7 @@ Functions
460* Closures:: Functions that enclose a lexical environment. 459* Closures:: Functions that enclose a lexical environment.
461* Obsolete Functions:: Declaring functions obsolete. 460* Obsolete Functions:: Declaring functions obsolete.
462* Inline Functions:: Defining functions that the compiler 461* Inline Functions:: Defining functions that the compiler
463 will open code. 462 will expand inline.
464* Declaring Functions:: Telling the compiler that a function is defined. 463* Declaring Functions:: Telling the compiler that a function is defined.
465* Function Safety:: Determining whether a function is safe to call. 464* Function Safety:: Determining whether a function is safe to call.
466* Related Topics:: Cross-references to specific Lisp primitives 465* Related Topics:: Cross-references to specific Lisp primitives
@@ -493,7 +492,7 @@ Common Problems Using Macros
493* Eval During Expansion:: Don't evaluate them; put them in the expansion. 492* Eval During Expansion:: Don't evaluate them; put them in the expansion.
494* Repeated Expansion:: Avoid depending on how many times expansion is done. 493* Repeated Expansion:: Avoid depending on how many times expansion is done.
495 494
496Writing Customization Definitions 495Customization Settings
497 496
498* Common Keywords:: Common keyword arguments for all kinds of 497* Common Keywords:: Common keyword arguments for all kinds of
499 customization declarations. 498 customization declarations.
@@ -754,6 +753,7 @@ Defining Menus
754 various features. 753 various features.
755* Menu Separators:: Drawing a horizontal line through a menu. 754* Menu Separators:: Drawing a horizontal line through a menu.
756* Alias Menu Items:: Using command aliases in menu items. 755* Alias Menu Items:: Using command aliases in menu items.
756* Toolkit Differences:: Not all toolkits provide the same features.
757 757
758Major and Minor Modes 758Major and Minor Modes
759 759
@@ -824,6 +824,21 @@ Multiline Font Lock Constructs
824* Region to Refontify:: Controlling which region gets refontified 824* Region to Refontify:: Controlling which region gets refontified
825 after a buffer change. 825 after a buffer change.
826 826
827Automatic Indentation of code
828
829* SMIE:: A simple minded indentation engine.
830
831Simple Minded Indentation Engine
832
833* SMIE setup:: SMIE setup and features.
834* Operator Precedence Grammars:: A very simple parsing technique.
835* SMIE Grammar:: Defining the grammar of a language.
836* SMIE Lexer:: Defining tokens.
837* SMIE Tricks:: Working around the parser's limitations.
838* SMIE Indentation:: Specifying indentation rules.
839* SMIE Indentation Helpers:: Helper functions for indentation rules.
840* SMIE Indentation Example:: Sample indentation rules.
841
827Documentation 842Documentation
828 843
829* Documentation Basics:: Where doc strings are defined and stored. 844* Documentation Basics:: Where doc strings are defined and stored.
@@ -1220,8 +1235,7 @@ Processes
1220* Datagrams:: UDP network connections. 1235* Datagrams:: UDP network connections.
1221* Low-Level Network:: Lower-level but more general function 1236* Low-Level Network:: Lower-level but more general function
1222 to create connections and servers. 1237 to create connections and servers.
1223* Misc Network:: Additional relevant functions for 1238* Misc Network:: Additional relevant functions for net connections.
1224 network connections.
1225* Serial Ports:: Communicating with serial ports. 1239* Serial Ports:: Communicating with serial ports.
1226* Byte Packing:: Using bindat to pack and unpack binary data. 1240* Byte Packing:: Using bindat to pack and unpack binary data.
1227 1241
@@ -1341,6 +1355,7 @@ Images
1341* GIF Images:: Special features for GIF format. 1355* GIF Images:: Special features for GIF format.
1342* TIFF Images:: Special features for TIFF format. 1356* TIFF Images:: Special features for TIFF format.
1343* PostScript Images:: Special features for PostScript format. 1357* PostScript Images:: Special features for PostScript format.
1358* ImageMagick Images:: Special features available through ImageMagick.
1344* Other Image Types:: Various other formats are supported. 1359* Other Image Types:: Various other formats are supported.
1345* Defining Images:: Convenient ways to define an image for later use. 1360* Defining Images:: Convenient ways to define an image for later use.
1346* Showing Images:: Convenient ways to display an image once 1361* Showing Images:: Convenient ways to display an image once
@@ -1396,13 +1411,6 @@ Operating System Interface
1396* Notifications:: Desktop notifications. 1411* Notifications:: Desktop notifications.
1397* Dynamic Libraries:: On-demand loading of support libraries. 1412* Dynamic Libraries:: On-demand loading of support libraries.
1398 1413
1399Preparing Lisp code for distribution
1400
1401* Packaging Basics:: The basic concepts of Emacs Lisp packages.
1402* Simple Packages:: How to package a single .el file.
1403* Multi-file Packages:: How to package multiple files.
1404* Package Archives:: Maintaining package archives.
1405
1406Starting Up Emacs 1414Starting Up Emacs
1407 1415
1408* Startup Summary:: Sequence of actions Emacs performs at startup. 1416* Startup Summary:: Sequence of actions Emacs performs at startup.
@@ -1421,6 +1429,13 @@ Terminal Input
1421* Input Modes:: Options for how input is processed. 1429* Input Modes:: Options for how input is processed.
1422* Recording Input:: Saving histories of recent or all input events. 1430* Recording Input:: Saving histories of recent or all input events.
1423 1431
1432Preparing Lisp code for distribution
1433
1434* Packaging Basics:: The basic concepts of Emacs Lisp packages.
1435* Simple Packages:: How to package a single .el file.
1436* Multi-file Packages:: How to package multiple files.
1437* Package Archives:: Maintaining package archives.
1438
1424Tips and Conventions 1439Tips and Conventions
1425 1440
1426* Coding Conventions:: Conventions for clean and robust programs. 1441* Coding Conventions:: Conventions for clean and robust programs.
diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi
index 4c1150d1a51..76059079ca1 100644
--- a/doc/lispref/eval.texi
+++ b/doc/lispref/eval.texi
@@ -103,7 +103,7 @@ interpretation. @xref{Command Loop}.
103@dfn{form} (or an @dfn{expression}). How Emacs evaluates a form 103@dfn{form} (or an @dfn{expression}). How Emacs evaluates a form
104depends on its data type. Emacs has three different kinds of form 104depends on its data type. Emacs has three different kinds of form
105that are evaluated differently: symbols, lists, and ``all other 105that are evaluated differently: symbols, lists, and ``all other
106types.'' This section describes all three kinds, one by one, starting 106types''. This section describes all three kinds, one by one, starting
107with the ``all other types'' which are self-evaluating forms. 107with the ``all other types'' which are self-evaluating forms.
108 108
109@menu 109@menu
@@ -304,6 +304,22 @@ function, not a symbol.
304Executing the function itself evaluates its body; this does involve 304Executing the function itself evaluates its body; this does involve
305symbol function indirection when calling @code{erste}. 305symbol function indirection when calling @code{erste}.
306 306
307 This form is rarely used and is now deprecated. Instead, you should write it
308as:
309
310@smallexample
311@group
312(funcall (lambda (arg) (erste arg))
313 '(1 2 3))
314@end group
315@end smallexample
316or just
317@smallexample
318@group
319(let ((arg '(1 2 3))) (erste arg))
320@end group
321@end smallexample
322
307 The built-in function @code{indirect-function} provides an easy way to 323 The built-in function @code{indirect-function} provides an easy way to
308perform symbol function indirection explicitly. 324perform symbol function indirection explicitly.
309 325
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 3597d9f80c4..1af904aff41 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -71,8 +71,8 @@ back into the file.
71 71
72 In spite of the distinction between files and buffers, people often 72 In spite of the distinction between files and buffers, people often
73refer to a file when they mean a buffer and vice-versa. Indeed, we say, 73refer to a file when they mean a buffer and vice-versa. Indeed, we say,
74``I am editing a file,'' rather than, ``I am editing a buffer that I 74``I am editing a file'', rather than, ``I am editing a buffer that I
75will soon save as a file of the same name.'' Humans do not usually need 75will soon save as a file of the same name''. Humans do not usually need
76to make the distinction explicit. When dealing with a computer program, 76to make the distinction explicit. When dealing with a computer program,
77however, it is good to keep the distinction in mind. 77however, it is good to keep the distinction in mind.
78 78
@@ -688,7 +688,7 @@ The file lock is really a file, a symbolic link with a special name,
688stored in the same directory as the file you are editing. 688stored in the same directory as the file you are editing.
689 689
690 When you access files using NFS, there may be a small probability that 690 When you access files using NFS, there may be a small probability that
691you and another user will both lock the same file ``simultaneously.'' 691you and another user will both lock the same file ``simultaneously''.
692If this happens, it is possible for the two users to make changes 692If this happens, it is possible for the two users to make changes
693simultaneously, but Emacs will still warn the user who saves second. 693simultaneously, but Emacs will still warn the user who saves second.
694Also, the detection of modification of a buffer visiting a file changed 694Also, the detection of modification of a buffer visiting a file changed
@@ -1806,7 +1806,7 @@ return value, but backup version numbers are kept.
1806@end defun 1806@end defun
1807 1807
1808@defun file-name-extension filename &optional period 1808@defun file-name-extension filename &optional period
1809This function returns @var{filename}'s final ``extension,'' if any, 1809This function returns @var{filename}'s final ``extension'', if any,
1810after applying @code{file-name-sans-versions} to remove any 1810after applying @code{file-name-sans-versions} to remove any
1811version/backup part. The extension, in a file name, is the part that 1811version/backup part. The extension, in a file name, is the part that
1812follows the last @samp{.} in the last name component (minus any 1812follows the last @samp{.} in the last name component (minus any
@@ -2798,7 +2798,7 @@ unlocking the buffer if it is locked.
2798possibly others to be added in the future. It need not implement all 2798possibly others to be added in the future. It need not implement all
2799these operations itself---when it has nothing special to do for a 2799these operations itself---when it has nothing special to do for a
2800certain operation, it can reinvoke the primitive, to handle the 2800certain operation, it can reinvoke the primitive, to handle the
2801operation ``in the usual way.'' It should always reinvoke the primitive 2801operation ``in the usual way''. It should always reinvoke the primitive
2802for an operation it does not recognize. Here's one way to do this: 2802for an operation it does not recognize. Here's one way to do this:
2803 2803
2804@smallexample 2804@smallexample
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index d824f51e47e..869f03e2273 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -882,7 +882,7 @@ This variable specifies how to blink the cursor. Each element has the
882form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor 882form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor
883type equals @var{on-state} (comparing using @code{equal}), the 883type equals @var{on-state} (comparing using @code{equal}), the
884corresponding @var{off-state} specifies what the cursor looks like 884corresponding @var{off-state} specifies what the cursor looks like
885when it blinks ``off.'' Both @var{on-state} and @var{off-state} 885when it blinks ``off''. Both @var{on-state} and @var{off-state}
886should be suitable values for the @code{cursor-type} frame parameter. 886should be suitable values for the @code{cursor-type} frame parameter.
887 887
888There are various defaults for how to blink each type of cursor, if 888There are various defaults for how to blink each type of cursor, if
@@ -1069,7 +1069,7 @@ characters rather than pixels.
1069These values include the internal borders, and windows' scroll bars 1069These values include the internal borders, and windows' scroll bars
1070and fringes (which belong to individual windows, not to the frame 1070and fringes (which belong to individual windows, not to the frame
1071itself). The exact value of the heights depends on the window-system 1071itself). The exact value of the heights depends on the window-system
1072and toolkit in use. With Gtk+, the height does not include any tool 1072and toolkit in use. With GTK+, the height does not include any tool
1073bar or menu bar. With the Motif or Lucid toolkits, it includes the 1073bar or menu bar. With the Motif or Lucid toolkits, it includes the
1074tool bar but not the menu bar. In a graphical version with no 1074tool bar but not the menu bar. In a graphical version with no
1075toolkit, it includes both the tool bar and menu bar. For a text 1075toolkit, it includes both the tool bar and menu bar. For a text
@@ -1532,7 +1532,7 @@ track of such changes. @xref{Misc Events}.
1532 Most window systems use a desktop metaphor. Part of this metaphor is 1532 Most window systems use a desktop metaphor. Part of this metaphor is
1533the idea that windows are stacked in a notional third dimension 1533the idea that windows are stacked in a notional third dimension
1534perpendicular to the screen surface, and thus ordered from ``highest'' 1534perpendicular to the screen surface, and thus ordered from ``highest''
1535to ``lowest.'' Where two windows overlap, the one higher up covers 1535to ``lowest''. Where two windows overlap, the one higher up covers
1536the one underneath. Even a window at the bottom of the stack can be 1536the one underneath. Even a window at the bottom of the stack can be
1537seen if no other window overlaps it. 1537seen if no other window overlaps it.
1538 1538
@@ -1540,7 +1540,7 @@ seen if no other window overlaps it.
1540@cindex lowering a frame 1540@cindex lowering a frame
1541 A window's place in this ordering is not fixed; in fact, users tend 1541 A window's place in this ordering is not fixed; in fact, users tend
1542to change the order frequently. @dfn{Raising} a window means moving 1542to change the order frequently. @dfn{Raising} a window means moving
1543it ``up,'' to the top of the stack. @dfn{Lowering} a window means 1543it ``up'', to the top of the stack. @dfn{Lowering} a window means
1544moving it to the bottom of the stack. This motion is in the notional 1544moving it to the bottom of the stack. This motion is in the notional
1545third dimension only, and does not change the position of the window 1545third dimension only, and does not change the position of the window
1546on the screen. 1546on the screen.
@@ -1814,7 +1814,7 @@ the menu keymap as necessary.
1814 A dialog box is a variant of a pop-up menu---it looks a little 1814 A dialog box is a variant of a pop-up menu---it looks a little
1815different, it always appears in the center of a frame, and it has just 1815different, it always appears in the center of a frame, and it has just
1816one level and one or more buttons. The main use of dialog boxes is 1816one level and one or more buttons. The main use of dialog boxes is
1817for asking questions that the user can answer with ``yes,'' ``no,'' 1817for asking questions that the user can answer with ``yes'', ``no'',
1818and a few other alternatives. With a single button, they can also 1818and a few other alternatives. With a single button, they can also
1819force the user to acknowledge important information. The functions 1819force the user to acknowledge important information. The functions
1820@code{y-or-n-p} and @code{yes-or-no-p} use dialog boxes instead of the 1820@code{y-or-n-p} and @code{yes-or-no-p} use dialog boxes instead of the
@@ -2028,7 +2028,7 @@ colors.)
2028 These functions provide a way to determine which color names are 2028 These functions provide a way to determine which color names are
2029valid, and what they look like. In some cases, the value depends on the 2029valid, and what they look like. In some cases, the value depends on the
2030@dfn{selected frame}, as described below; see @ref{Input Focus}, for the 2030@dfn{selected frame}, as described below; see @ref{Input Focus}, for the
2031meaning of the term ``selected frame.'' 2031meaning of the term ``selected frame''.
2032 2032
2033 To read user input of color names with completion, use 2033 To read user input of color names with completion, use
2034@code{read-color} (@pxref{High-Level Completion, read-color}). 2034@code{read-color} (@pxref{High-Level Completion, read-color}).
@@ -2425,7 +2425,7 @@ software (as a string). Really this means whoever distributes the X
2425server. 2425server.
2426 2426
2427When the developers of X labeled software distributors as 2427When the developers of X labeled software distributors as
2428``vendors,'' they showed their false assumption that no system could 2428``vendors'', they showed their false assumption that no system could
2429ever be developed and distributed noncommercially. 2429ever be developed and distributed noncommercially.
2430@end defun 2430@end defun
2431 2431
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index 73bdefe19fc..b5cf38ed6f2 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -266,13 +266,12 @@ function is the value returned by the last element of the body.
266@end example 266@end example
267 267
268@noindent 268@noindent
269We can call this function by writing it as the @sc{car} of an 269We can call this function by passing it to @code{funcall}, like this:
270expression, like this:
271 270
272@example 271@example
273@group 272@group
274((lambda (a b c) (+ a b c)) 273(funcall (lambda (a b c) (+ a b c))
275 1 2 3) 274 1 2 3)
276@end group 275@end group
277@end example 276@end example
278 277
@@ -287,8 +286,8 @@ this example:
287 286
288@example 287@example
289@group 288@group
290((lambda (a b c) (+ a b c)) 289(funcall (lambda (a b c) (+ a b c))
291 1 (* 2 3) (- 5 4)) 290 1 (* 2 3) (- 5 4))
292@end group 291@end group
293@end example 292@end example
294 293
@@ -399,16 +398,16 @@ after a @code{&rest} argument.
399 Here are some examples of argument lists and proper calls: 398 Here are some examples of argument lists and proper calls:
400 399
401@smallexample 400@smallexample
402((lambda (n) (1+ n)) ; @r{One required:} 401(funcall (lambda (n) (1+ n)) ; @r{One required:}
403 1) ; @r{requires exactly one argument.} 402 1) ; @r{requires exactly one argument.}
404 @result{} 2 403 @result{} 2
405((lambda (n &optional n1) ; @r{One required and one optional:} 404(funcall (lambda (n &optional n1) ; @r{One required and one optional:}
406 (if n1 (+ n n1) (1+ n))) ; @r{1 or 2 arguments.} 405 (if n1 (+ n n1) (1+ n))) ; @r{1 or 2 arguments.}
407 1 2) 406 1 2)
408 @result{} 3 407 @result{} 3
409((lambda (n &rest ns) ; @r{One required and one rest:} 408(funcall (lambda (n &rest ns) ; @r{One required and one rest:}
410 (+ n (apply '+ ns))) ; @r{1 or more arguments.} 409 (+ n (apply '+ ns))) ; @r{1 or more arguments.}
411 1 2 3 4 5) 410 1 2 3 4 5)
412 @result{} 15 411 @result{} 15
413@end smallexample 412@end smallexample
414 413
diff --git a/doc/lispref/hash.texi b/doc/lispref/hash.texi
index 0ca4c915a65..1aa6004b3a6 100644
--- a/doc/lispref/hash.texi
+++ b/doc/lispref/hash.texi
@@ -74,13 +74,13 @@ alternatives:
74Keys which are numbers are ``the same'' if they are @code{equal}, that 74Keys which are numbers are ``the same'' if they are @code{equal}, that
75is, if they are equal in value and either both are integers or both 75is, if they are equal in value and either both are integers or both
76are floating point numbers; otherwise, two distinct objects are never 76are floating point numbers; otherwise, two distinct objects are never
77``the same.'' 77``the same''.
78 78
79@item eq 79@item eq
80Any two distinct Lisp objects are ``different'' as keys. 80Any two distinct Lisp objects are ``different'' as keys.
81 81
82@item equal 82@item equal
83Two Lisp objects are ``the same,'' as keys, if they are equal 83Two Lisp objects are ``the same'', as keys, if they are equal
84according to @code{equal}. 84according to @code{equal}.
85@end table 85@end table
86 86
@@ -128,7 +128,7 @@ doing that takes some extra time.
128The default size is 65. 128The default size is 65.
129 129
130@item :rehash-size @var{rehash-size} 130@item :rehash-size @var{rehash-size}
131When you add an association to a hash table and the table is ``full,'' 131When you add an association to a hash table and the table is ``full'',
132it grows automatically. This value specifies how to make the hash table 132it grows automatically. This value specifies how to make the hash table
133larger, at that time. 133larger, at that time.
134 134
@@ -262,7 +262,7 @@ will use @var{test-fn} to compare key values, and @var{hash-fn} to compute
262a ``hash code'' from a key value. 262a ``hash code'' from a key value.
263 263
264The function @var{test-fn} should accept two arguments, two keys, and 264The function @var{test-fn} should accept two arguments, two keys, and
265return non-@code{nil} if they are considered ``the same.'' 265return non-@code{nil} if they are considered ``the same''.
266 266
267The function @var{hash-fn} should accept one argument, a key, and return 267The function @var{hash-fn} should accept one argument, a key, and return
268an integer that is the ``hash code'' of that key. For good results, the 268an integer that is the ``hash code'' of that key. For good results, the
diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi
index 5dfb2b05ff8..762b42113f2 100644
--- a/doc/lispref/help.texi
+++ b/doc/lispref/help.texi
@@ -599,7 +599,7 @@ subcommands of the prefix key.
599 599
600@defopt help-event-list 600@defopt help-event-list
601The value of this variable is a list of event types that serve as 601The value of this variable is a list of event types that serve as
602alternative ``help characters.'' These events are handled just like the 602alternative ``help characters''. These events are handled just like the
603event specified by @code{help-char}. 603event specified by @code{help-char}.
604@end defopt 604@end defopt
605 605
diff --git a/doc/lispref/intro.texi b/doc/lispref/intro.texi
index d3a5b253162..37d2cc55a9e 100644
--- a/doc/lispref/intro.texi
+++ b/doc/lispref/intro.texi
@@ -146,7 +146,7 @@ printer'' refer to those routines in Lisp that convert textual
146representations of Lisp objects into actual Lisp objects, and vice 146representations of Lisp objects into actual Lisp objects, and vice
147versa. @xref{Printed Representation}, for more details. You, the 147versa. @xref{Printed Representation}, for more details. You, the
148person reading this manual, are thought of as ``the programmer'' and are 148person reading this manual, are thought of as ``the programmer'' and are
149addressed as ``you.'' ``The user'' is the person who uses Lisp 149addressed as ``you''. ``The user'' is the person who uses Lisp
150programs, including those you write. 150programs, including those you write.
151 151
152@cindex typographic conventions 152@cindex typographic conventions
@@ -219,7 +219,7 @@ the examples in this manual, this is indicated with @samp{@result{}}:
219@end example 219@end example
220 220
221@noindent 221@noindent
222You can read this as ``@code{(car '(1 2))} evaluates to 1.'' 222You can read this as ``@code{(car '(1 2))} evaluates to 1''.
223 223
224 When a form is a macro call, it expands into a new form for Lisp to 224 When a form is a macro call, it expands into a new form for Lisp to
225evaluate. We show the result of the expansion with 225evaluate. We show the result of the expansion with
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index b12752fdeea..337364cb2ce 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -1032,7 +1032,7 @@ binding of @var{othertype} in @var{othermap} and uses that.
1032This feature permits you to define one key as an alias for another key. 1032This feature permits you to define one key as an alias for another key.
1033For example, an entry whose @sc{car} is the keymap called @code{esc-map} 1033For example, an entry whose @sc{car} is the keymap called @code{esc-map}
1034and whose @sc{cdr} is 32 (the code for @key{SPC}) means, ``Use the global 1034and whose @sc{cdr} is 32 (the code for @key{SPC}) means, ``Use the global
1035binding of @kbd{Meta-@key{SPC}}, whatever that may be.'' 1035binding of @kbd{Meta-@key{SPC}}, whatever that may be''.
1036@end itemize 1036@end itemize
1037 1037
1038@item @var{symbol} 1038@item @var{symbol}
@@ -1887,9 +1887,9 @@ maps searched are @var{keymap} and the global keymap. If @var{keymap}
1887is a list of keymaps, only those keymaps are searched. 1887is a list of keymaps, only those keymaps are searched.
1888 1888
1889Usually it's best to use @code{overriding-local-map} as the expression 1889Usually it's best to use @code{overriding-local-map} as the expression
1890for @var{keymap}. Then @code{where-is-internal} searches precisely the 1890for @var{keymap}. Then @code{where-is-internal} searches precisely
1891keymaps that are active. To search only the global map, pass 1891the keymaps that are active. To search only the global map, pass the
1892@code{(keymap)} (an empty keymap) as @var{keymap}. 1892value @code{(keymap)} (an empty keymap) as @var{keymap}.
1893 1893
1894If @var{firstonly} is @code{non-ascii}, then the value is a single 1894If @var{firstonly} is @code{non-ascii}, then the value is a single
1895vector representing the first key sequence found, rather than a list of 1895vector representing the first key sequence found, rather than a list of
@@ -1903,20 +1903,24 @@ If @var{noindirect} is non-@code{nil}, @code{where-is-internal} doesn't
1903follow indirect keymap bindings. This makes it possible to search for 1903follow indirect keymap bindings. This makes it possible to search for
1904an indirect definition itself. 1904an indirect definition itself.
1905 1905
1906When command remapping is in effect (@pxref{Remapping Commands}), 1906The fifth argument, @var{no-remap}, determines how this function
1907@code{where-is-internal} figures out when a command will be run due to 1907treats command remappings (@pxref{Remapping Commands}). There are two
1908remapping and reports keys accordingly. It also returns @code{nil} if 1908cases of interest:
1909@var{command} won't really be run because it has been remapped to some
1910other command. However, if @var{no-remap} is non-@code{nil}.
1911@code{where-is-internal} ignores remappings.
1912 1909
1913@smallexample 1910@table @asis
1914@group 1911@item If a command @var{other-command} is remapped to @var{command}:
1915(where-is-internal 'describe-function) 1912If @var{no-remap} is @code{nil}, find the bindings for
1916 @result{} ([8 102] [f1 102] [help 102] 1913@var{other-command} and treat them as though they are also bindings
1917 [menu-bar help-menu describe describe-function]) 1914for @var{command}. If @var{no-remap} is non-@code{nil}, include the
1918@end group 1915vector @code{[remap @var{other-command}]} in the list of possible key
1919@end smallexample 1916sequences, instead of finding those bindings.
1917
1918@item If @var{command} is remapped to @var{other-command}:
1919If @var{no-remap} is @code{nil}, return the bindings for
1920@var{other-command} rather than @var{command}. If @var{no-remap} is
1921non-@code{nil}, return the bindings for @var{command}, ignoring the
1922fact that it is remapped.
1923@end table
1920@end defun 1924@end defun
1921 1925
1922@deffn Command describe-bindings &optional prefix buffer-or-name 1926@deffn Command describe-bindings &optional prefix buffer-or-name
@@ -2147,7 +2151,7 @@ This works because @code{toggle-debug-on-error} is defined as a command
2147which toggles the variable @code{debug-on-error}. 2151which toggles the variable @code{debug-on-error}.
2148 2152
2149@dfn{Radio buttons} are a group of menu items, in which at any time one 2153@dfn{Radio buttons} are a group of menu items, in which at any time one
2150and only one is ``selected.'' There should be a variable whose value 2154and only one is ``selected''. There should be a variable whose value
2151says which one is selected at any time. The @var{selected} form for 2155says which one is selected at any time. The @var{selected} form for
2152each radio button in the group should check whether the variable has the 2156each radio button in the group should check whether the variable has the
2153right value for selecting that button. Clicking on the button should 2157right value for selecting that button. Clicking on the button should
@@ -2424,7 +2428,7 @@ Next we define the menu items:
2424Note the symbols which the bindings are ``made for''; these appear 2428Note the symbols which the bindings are ``made for''; these appear
2425inside square brackets, in the key sequence being defined. In some 2429inside square brackets, in the key sequence being defined. In some
2426cases, this symbol is the same as the command name; sometimes it is 2430cases, this symbol is the same as the command name; sometimes it is
2427different. These symbols are treated as ``function keys,'' but they are 2431different. These symbols are treated as ``function keys'', but they are
2428not real function keys on the keyboard. They do not affect the 2432not real function keys on the keyboard. They do not affect the
2429functioning of the menu itself, but they are ``echoed'' in the echo area 2433functioning of the menu itself, but they are ``echoed'' in the echo area
2430when the user selects from the menu, and they appear in the output of 2434when the user selects from the menu, and they appear in the output of
diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi
index 2325915d76a..423bc7b6d8a 100644
--- a/doc/lispref/lists.texi
+++ b/doc/lispref/lists.texi
@@ -34,12 +34,12 @@ object that represents an ordered pair. That is, it has two slots,
34and each slot @dfn{holds}, or @dfn{refers to}, some Lisp object. One 34and each slot @dfn{holds}, or @dfn{refers to}, some Lisp object. One
35slot is known as the @sc{car}, and the other is known as the @sc{cdr}. 35slot is known as the @sc{car}, and the other is known as the @sc{cdr}.
36(These names are traditional; see @ref{Cons Cell Type}.) @sc{cdr} is 36(These names are traditional; see @ref{Cons Cell Type}.) @sc{cdr} is
37pronounced ``could-er.'' 37pronounced ``could-er''.
38 38
39 We say that ``the @sc{car} of this cons cell is'' whatever object 39 We say that ``the @sc{car} of this cons cell is'' whatever object
40its @sc{car} slot currently holds, and likewise for the @sc{cdr}. 40its @sc{car} slot currently holds, and likewise for the @sc{cdr}.
41 41
42 A list is a series of cons cells ``chained together,'' so that each 42 A list is a series of cons cells ``chained together'', so that each
43cell refers to the next one. There is one cons cell for each element 43cell refers to the next one. There is one cons cell for each element
44of the list. By convention, the @sc{car}s of the cons cells hold the 44of the list. By convention, the @sc{car}s of the cons cells hold the
45elements of the list, and the @sc{cdr}s are used to chain the list 45elements of the list, and the @sc{cdr}s are used to chain the list
@@ -1632,7 +1632,7 @@ a @sc{cdr} @code{equal} to @var{value}.
1632 1632
1633@code{rassoc} is like @code{assoc} except that it compares the @sc{cdr} of 1633@code{rassoc} is like @code{assoc} except that it compares the @sc{cdr} of
1634each @var{alist} association instead of the @sc{car}. You can think of 1634each @var{alist} association instead of the @sc{car}. You can think of
1635this as ``reverse @code{assoc},'' finding the key for a given value. 1635this as ``reverse @code{assoc}'', finding the key for a given value.
1636@end defun 1636@end defun
1637 1637
1638@defun assq key alist 1638@defun assq key alist
@@ -1673,7 +1673,7 @@ a @sc{cdr} @code{eq} to @var{value}.
1673 1673
1674@code{rassq} is like @code{assq} except that it compares the @sc{cdr} of 1674@code{rassq} is like @code{assq} except that it compares the @sc{cdr} of
1675each @var{alist} association instead of the @sc{car}. You can think of 1675each @var{alist} association instead of the @sc{car}. You can think of
1676this as ``reverse @code{assq},'' finding the key for a given value. 1676this as ``reverse @code{assq}'', finding the key for a given value.
1677 1677
1678For example: 1678For example:
1679 1679
diff --git a/doc/lispref/macros.texi b/doc/lispref/macros.texi
index bc4cec3307d..3984e5c03aa 100644
--- a/doc/lispref/macros.texi
+++ b/doc/lispref/macros.texi
@@ -604,7 +604,7 @@ either.
604@section Indenting Macros 604@section Indenting Macros
605 605
606 Within a macro definition, you can use the @code{declare} form 606 Within a macro definition, you can use the @code{declare} form
607(@pxref{Defining Macros}) to specify how to @key{TAB} should indent 607(@pxref{Defining Macros}) to specify how @key{TAB} should indent
608calls to the macro. An indentation specification is written like this: 608calls to the macro. An indentation specification is written like this:
609 609
610@example 610@example
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index c840eb6ded0..8ce7e0d4686 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -57,16 +57,17 @@ including @code{beginning-of-line}, @code{forward-word},
57@code{forward-sentence}, and @code{forward-paragraph}, stop at the 57@code{forward-sentence}, and @code{forward-paragraph}, stop at the
58boundary between the prompt and the actual text. 58boundary between the prompt and the actual text.
59 59
60@c See http://debbugs.gnu.org/11276
60 The minibuffer's window is normally a single line; it grows 61 The minibuffer's window is normally a single line; it grows
61automatically if the contents require more space. You can explicitly 62automatically if the contents require more space. Whilst it is
62@c FIXME? Works in 23.4, not 24.0.95. (Bug#11276) 63active, you can explicitly resize it temporarily with the window
63resize it temporarily with the window sizing commands; it reverts to 64sizing commands; it reverts to its normal size when the minibuffer is
64its normal size when the minibuffer is exited. You can resize it 65exited. When the minibuffer is not active, you can resize it
65@c FIXME? Doesn't work in any version of Emacs?
66permanently by using the window sizing commands in the frame's other 66permanently by using the window sizing commands in the frame's other
67window, when the minibuffer is not active. If the frame contains just 67window, or dragging the mode line with the mouse. (Due to details of
68a minibuffer, you can change the minibuffer's size by changing the 68the current implementation, for this to work @code{resize-mini-windows}
69frame's size. 69must be @code{nil}.) If the frame contains just a minibuffer, you can
70change the minibuffer's size by changing the frame's size.
70 71
71 Use of the minibuffer reads input events, and that alters the values 72 Use of the minibuffer reads input events, and that alters the values
72of variables such as @code{this-command} and @code{last-command} 73of variables such as @code{this-command} and @code{last-command}
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index aa089aec36b..00cd43d7b71 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -283,7 +283,7 @@ buffer is put in Fundamental mode (@pxref{Major Mode Conventions}).
283* Derived Modes:: Defining a new major mode based on another major 283* Derived Modes:: Defining a new major mode based on another major
284 mode. 284 mode.
285* Basic Major Modes:: Modes that other modes are often derived from. 285* Basic Major Modes:: Modes that other modes are often derived from.
286* Mode Hooks:: Hooks run at the end of major mode commands. 286* Mode Hooks:: Hooks run at the end of major mode functions.
287* Tabulated List Mode:: Parent mode for buffers containing tabulated data. 287* Tabulated List Mode:: Parent mode for buffers containing tabulated data.
288* Generic Modes:: Defining a simple major mode that supports 288* Generic Modes:: Defining a simple major mode that supports
289 comment syntax and Font Lock mode. 289 comment syntax and Font Lock mode.
@@ -384,7 +384,7 @@ reserved for users.
384 384
385A major mode can also rebind the keys @kbd{M-n}, @kbd{M-p} and 385A major mode can also rebind the keys @kbd{M-n}, @kbd{M-p} and
386@kbd{M-s}. The bindings for @kbd{M-n} and @kbd{M-p} should normally 386@kbd{M-s}. The bindings for @kbd{M-n} and @kbd{M-p} should normally
387be some kind of ``moving forward and backward,'' but this does not 387be some kind of ``moving forward and backward'', but this does not
388necessarily mean cursor motion. 388necessarily mean cursor motion.
389 389
390It is legitimate for a major mode to rebind a standard key sequence if 390It is legitimate for a major mode to rebind a standard key sequence if
@@ -938,7 +938,7 @@ such a major mode, please correct it to follow these conventions.
938 938
939 When you defined a major mode using @code{define-derived-mode}, it 939 When you defined a major mode using @code{define-derived-mode}, it
940automatically makes sure these conventions are followed. If you 940automatically makes sure these conventions are followed. If you
941define a major mode ``by hand,'' not using @code{define-derived-mode}, 941define a major mode ``by hand'', not using @code{define-derived-mode},
942use the following functions to handle these conventions automatically. 942use the following functions to handle these conventions automatically.
943 943
944@defun run-mode-hooks &rest hookvars 944@defun run-mode-hooks &rest hookvars
@@ -1122,8 +1122,8 @@ documentation for the mode command. If you do not supply it,
1122The argument @var{comment-list} is a list in which each element is 1122The argument @var{comment-list} is a list in which each element is
1123either a character, a string of one or two characters, or a cons cell. 1123either a character, a string of one or two characters, or a cons cell.
1124A character or a string is set up in the mode's syntax table as a 1124A character or a string is set up in the mode's syntax table as a
1125``comment starter.'' If the entry is a cons cell, the @sc{car} is set 1125``comment starter''. If the entry is a cons cell, the @sc{car} is set
1126up as a ``comment starter'' and the @sc{cdr} as a ``comment ender.'' 1126up as a ``comment starter'' and the @sc{cdr} as a ``comment ender''.
1127(Use @code{nil} for the latter if you want comments to end at the end 1127(Use @code{nil} for the latter if you want comments to end at the end
1128of the line.) Note that the syntax table mechanism has limitations 1128of the line.) Note that the syntax table mechanism has limitations
1129about what comment starters and enders are actually possible. 1129about what comment starters and enders are actually possible.
@@ -1648,7 +1648,7 @@ See the command \\[hungry-electric-delete]."
1648@end smallexample 1648@end smallexample
1649 1649
1650@noindent 1650@noindent
1651This defines a minor mode named ``Hungry mode,'' a command named 1651This defines a minor mode named ``Hungry mode'', a command named
1652@code{hungry-mode} to toggle it, a variable named @code{hungry-mode} 1652@code{hungry-mode} to toggle it, a variable named @code{hungry-mode}
1653which indicates whether the mode is enabled, and a variable named 1653which indicates whether the mode is enabled, and a variable named
1654@code{hungry-mode-map} which holds the keymap that is active when the 1654@code{hungry-mode-map} which holds the keymap that is active when the
@@ -3374,7 +3374,7 @@ Another one is SMIE which takes an approach in the spirit
3374of Lisp sexps and adapts it to non-Lisp languages. 3374of Lisp sexps and adapts it to non-Lisp languages.
3375 3375
3376@menu 3376@menu
3377* SMIE:: A simple minded indentation engine 3377* SMIE:: A simple minded indentation engine.
3378@end menu 3378@end menu
3379 3379
3380@node SMIE 3380@node SMIE
@@ -3400,14 +3400,14 @@ languages cannot be parsed correctly using SMIE, at least not without
3400resorting to some special tricks (@pxref{SMIE Tricks}). 3400resorting to some special tricks (@pxref{SMIE Tricks}).
3401 3401
3402@menu 3402@menu
3403* SMIE setup:: SMIE setup and features 3403* SMIE setup:: SMIE setup and features.
3404* Operator Precedence Grammars:: A very simple parsing technique 3404* Operator Precedence Grammars:: A very simple parsing technique.
3405* SMIE Grammar:: Defining the grammar of a language 3405* SMIE Grammar:: Defining the grammar of a language.
3406* SMIE Lexer:: Defining tokens 3406* SMIE Lexer:: Defining tokens.
3407* SMIE Tricks:: Working around the parser's limitations 3407* SMIE Tricks:: Working around the parser's limitations.
3408* SMIE Indentation:: Specifying indentation rules 3408* SMIE Indentation:: Specifying indentation rules.
3409* SMIE Indentation Helpers:: Helper functions for indentation rules 3409* SMIE Indentation Helpers:: Helper functions for indentation rules.
3410* SMIE Indentation Example:: Sample indentation rules 3410* SMIE Indentation Example:: Sample indentation rules.
3411@end menu 3411@end menu
3412 3412
3413@node SMIE setup 3413@node SMIE setup
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi
index 66f491b7780..02d306b3f75 100644
--- a/doc/lispref/numbers.texi
+++ b/doc/lispref/numbers.texi
@@ -777,7 +777,7 @@ and returns that value as a floating point number.
777sequence of @dfn{bits} (digits which are either zero or one). A bitwise 777sequence of @dfn{bits} (digits which are either zero or one). A bitwise
778operation acts on the individual bits of such a sequence. For example, 778operation acts on the individual bits of such a sequence. For example,
779@dfn{shifting} moves the whole sequence left or right one or more places, 779@dfn{shifting} moves the whole sequence left or right one or more places,
780reproducing the same pattern ``moved over.'' 780reproducing the same pattern ``moved over''.
781 781
782 The bitwise operations in Emacs Lisp apply only to integers. 782 The bitwise operations in Emacs Lisp apply only to integers.
783 783
diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi
index 58ceeb02b76..b49d2bc05fe 100644
--- a/doc/lispref/objects.texi
+++ b/doc/lispref/objects.texi
@@ -675,7 +675,7 @@ not distinguish between a cons cell slot ``holding'' a value versus
675 675
676@cindex atoms 676@cindex atoms
677 Because cons cells are so central to Lisp, we also have a word for 677 Because cons cells are so central to Lisp, we also have a word for
678``an object which is not a cons cell.'' These objects are called 678``an object which is not a cons cell''. These objects are called
679@dfn{atoms}. 679@dfn{atoms}.
680 680
681@cindex parenthesis 681@cindex parenthesis
@@ -1289,7 +1289,7 @@ without qualification, we mean a Lisp macro, not a keyboard macro.
1289 A @dfn{primitive function} is a function callable from Lisp but 1289 A @dfn{primitive function} is a function callable from Lisp but
1290written in the C programming language. Primitive functions are also 1290written in the C programming language. Primitive functions are also
1291called @dfn{subrs} or @dfn{built-in functions}. (The word ``subr'' is 1291called @dfn{subrs} or @dfn{built-in functions}. (The word ``subr'' is
1292derived from ``subroutine.'') Most primitive functions evaluate all 1292derived from ``subroutine''.) Most primitive functions evaluate all
1293their arguments when they are called. A primitive function that does 1293their arguments when they are called. A primitive function that does
1294not evaluate all its arguments is called a @dfn{special form} 1294not evaluate all its arguments is called a @dfn{special form}
1295(@pxref{Special Forms}).@refill 1295(@pxref{Special Forms}).@refill
diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi
index 7028b6e4e3f..66df1f34eda 100644
--- a/doc/lispref/streams.texi
+++ b/doc/lispref/streams.texi
@@ -114,7 +114,7 @@ When it is called with one argument (always a character), @var{function}
114should save the argument and arrange to return it on the next call. 114should save the argument and arrange to return it on the next call.
115This is called @dfn{unreading} the character; it happens when the Lisp 115This is called @dfn{unreading} the character; it happens when the Lisp
116reader reads one character too many and wants to ``put it back where it 116reader reads one character too many and wants to ``put it back where it
117came from.'' In this case, it makes no difference what value 117came from''. In this case, it makes no difference what value
118@var{function} returns. 118@var{function} returns.
119@end itemize 119@end itemize
120 120
@@ -618,7 +618,7 @@ spacing between calls.
618@defun terpri &optional stream 618@defun terpri &optional stream
619@cindex newline in print 619@cindex newline in print
620This function outputs a newline to @var{stream}. The name stands 620This function outputs a newline to @var{stream}. The name stands
621for ``terminate print.'' 621for ``terminate print''.
622@end defun 622@end defun
623 623
624@defun write-char character &optional stream 624@defun write-char character &optional stream
diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi
index ac2cea02040..1e749b8c3bb 100644
--- a/doc/lispref/symbols.texi
+++ b/doc/lispref/symbols.texi
@@ -140,7 +140,7 @@ act correctly if it is evaluated with lexical scoping enabled
140 @code{defun} defines a symbol as a function, creating a lambda 140 @code{defun} defines a symbol as a function, creating a lambda
141expression and storing it in the function cell of the symbol. This 141expression and storing it in the function cell of the symbol. This
142lambda expression thus becomes the function definition of the symbol. 142lambda expression thus becomes the function definition of the symbol.
143(The term ``function definition,'' meaning the contents of the function 143(The term ``function definition'', meaning the contents of the function
144cell, is derived from the idea that @code{defun} gives the symbol its 144cell, is derived from the idea that @code{defun} gives the symbol its
145definition as a function.) @code{defsubst} and @code{defalias} are two 145definition as a function.) @code{defsubst} and @code{defalias} are two
146other ways of defining a function. @xref{Functions}. 146other ways of defining a function. @xref{Functions}.
diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi
index 830ceeedefd..4a860657444 100644
--- a/doc/lispref/syntax.texi
+++ b/doc/lispref/syntax.texi
@@ -56,7 +56,7 @@ Modes}, for an example of how to set up a syntax table.
56A syntax table can inherit the data for some characters from the 56A syntax table can inherit the data for some characters from the
57standard syntax table, while specifying other characters itself. The 57standard syntax table, while specifying other characters itself. The
58``inherit'' syntax class means ``inherit this character's syntax from 58``inherit'' syntax class means ``inherit this character's syntax from
59the standard syntax table.'' Just changing the standard syntax for a 59the standard syntax table''. Just changing the standard syntax for a
60character affects all syntax tables that inherit from it. 60character affects all syntax tables that inherit from it.
61 61
62@defun syntax-table-p object 62@defun syntax-table-p object
@@ -617,7 +617,7 @@ higher-level functions for moving over balanced expressions.
617 A character's syntax controls how it changes the state of the 617 A character's syntax controls how it changes the state of the
618parser, rather than describing the state itself. For example, a 618parser, rather than describing the state itself. For example, a
619string delimiter character toggles the parser state between 619string delimiter character toggles the parser state between
620``in-string'' and ``in-code,'' but the syntax of characters does not 620``in-string'' and ``in-code'', but the syntax of characters does not
621directly say whether they are inside a string. For example (note that 621directly say whether they are inside a string. For example (note that
62215 is the syntax code for generic string delimiters), 62215 is the syntax code for generic string delimiters),
623 623
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index a9c51fead1b..d794ddc385b 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -555,7 +555,7 @@ error; if some of the text in it is read-only, it signals a
555asking for any confirmation. It returns @code{nil}. 555asking for any confirmation. It returns @code{nil}.
556 556
557Normally, deleting a large amount of text from a buffer inhibits further 557Normally, deleting a large amount of text from a buffer inhibits further
558auto-saving of that buffer ``because it has shrunk.'' However, 558auto-saving of that buffer ``because it has shrunk''. However,
559@code{erase-buffer} does not do this, the idea being that the future 559@code{erase-buffer} does not do this, the idea being that the future
560text is not really related to the former text, and its size should not 560text is not really related to the former text, and its size should not
561be compared with that of the former text. 561be compared with that of the former text.
@@ -806,7 +806,7 @@ that treat it as a ring.
806 806
807 Some people think this use of the word ``kill'' is unfortunate, since 807 Some people think this use of the word ``kill'' is unfortunate, since
808it refers to operations that specifically @emph{do not} destroy the 808it refers to operations that specifically @emph{do not} destroy the
809entities ``killed.'' This is in sharp contrast to ordinary life, in 809entities ``killed''. This is in sharp contrast to ordinary life, in
810which death is permanent and ``killed'' entities do not come back to 810which death is permanent and ``killed'' entities do not come back to
811life. Therefore, other metaphors have been proposed. For example, the 811life. Therefore, other metaphors have been proposed. For example, the
812term ``cut ring'' makes sense to people who, in pre-computer days, used 812term ``cut ring'' makes sense to people who, in pre-computer days, used
@@ -845,7 +845,7 @@ the entry made by the first one.
845 845
846 For yanking, one entry in the kill ring is designated the ``front'' of 846 For yanking, one entry in the kill ring is designated the ``front'' of
847the ring. Some yank commands ``rotate'' the ring by designating a 847the ring. Some yank commands ``rotate'' the ring by designating a
848different element as the ``front.'' But this virtual rotation doesn't 848different element as the ``front''. But this virtual rotation doesn't
849change the list itself---the most recent entry always comes first in the 849change the list itself---the most recent entry always comes first in the
850list. 850list.
851 851
@@ -1093,8 +1093,8 @@ programs, when you are using a window system. Its value should be
1093@code{nil} or a function of no arguments. 1093@code{nil} or a function of no arguments.
1094 1094
1095If the value is a function, @code{current-kill} calls it to get the 1095If the value is a function, @code{current-kill} calls it to get the
1096``most recent kill.'' If the function returns a non-@code{nil} value, 1096``most recent kill''. If the function returns a non-@code{nil} value,
1097then that value is used as the ``most recent kill.'' If it returns 1097then that value is used as the ``most recent kill''. If it returns
1098@code{nil}, then the front of the kill ring is used. 1098@code{nil}, then the front of the kill ring is used.
1099 1099
1100To facilitate support for window systems that support multiple 1100To facilitate support for window systems that support multiple
@@ -3504,7 +3504,7 @@ once for the same part of the buffer, you can use the variable
3504If this variable's value is non-@code{nil}, it is a symbol which is used 3504If this variable's value is non-@code{nil}, it is a symbol which is used
3505as a text property name. A non-@code{nil} value for that text property 3505as a text property name. A non-@code{nil} value for that text property
3506means, ``the other text properties for this character have already been 3506means, ``the other text properties for this character have already been
3507computed.'' 3507computed''.
3508 3508
3509If all the characters in the range specified for @code{buffer-substring} 3509If all the characters in the range specified for @code{buffer-substring}
3510have a non-@code{nil} value for this property, @code{buffer-substring} 3510have a non-@code{nil} value for this property, @code{buffer-substring}
@@ -3808,7 +3808,7 @@ after @var{old-pos}.) If @var{escape-from-edge} is non-@code{nil},
3808@var{new-pos} can be anywhere in the two adjacent fields. 3808@var{new-pos} can be anywhere in the two adjacent fields.
3809Additionally, if two fields are separated by another field with the 3809Additionally, if two fields are separated by another field with the
3810special value @code{boundary}, then any point within this special 3810special value @code{boundary}, then any point within this special
3811field is also considered to be ``on the boundary.'' 3811field is also considered to be ``on the boundary''.
3812 3812
3813Commands like @kbd{C-a} with no argument, that normally move backward 3813Commands like @kbd{C-a} with no argument, that normally move backward
3814to a specific kind of location and stay there once there, probably 3814to a specific kind of location and stay there once there, probably
diff --git a/doc/lispref/tips.texi b/doc/lispref/tips.texi
index 4ba7dd9dfe9..0e58373119f 100644
--- a/doc/lispref/tips.texi
+++ b/doc/lispref/tips.texi
@@ -640,7 +640,7 @@ have the form (KEY . VALUE). Here, KEY is ...
640 640
641@item 641@item
642Never change the case of a Lisp symbol when you mention it in a doc 642Never change the case of a Lisp symbol when you mention it in a doc
643string. If the symbol's name is @code{foo}, write ``foo,'' not 643string. If the symbol's name is @code{foo}, write ``foo'', not
644``Foo'' (which is a different symbol). 644``Foo'' (which is a different symbol).
645 645
646This might appear to contradict the policy of writing function 646This might appear to contradict the policy of writing function
@@ -772,9 +772,9 @@ is indicative and has a proper subject.
772 772
773@item 773@item
774The documentation string for a function that is a yes-or-no predicate 774The documentation string for a function that is a yes-or-no predicate
775should start with words such as ``Return t if,'' to indicate 775should start with words such as ``Return t if'', to indicate
776explicitly what constitutes ``truth.'' The word ``return'' avoids 776explicitly what constitutes ``truth''. The word ``return'' avoids
777starting the sentence with lower-case ``t,'' which could be somewhat 777starting the sentence with lower-case ``t'', which could be somewhat
778distracting. 778distracting.
779 779
780@item 780@item
@@ -797,8 +797,8 @@ returned.''
797 797
798@item 798@item
799Avoid using the word ``cause'' (or its equivalents) unnecessarily. 799Avoid using the word ``cause'' (or its equivalents) unnecessarily.
800Instead of, ``Cause Emacs to display text in boldface,'' write just 800Instead of, ``Cause Emacs to display text in boldface'', write just
801``Display text in boldface.'' 801``Display text in boldface''.
802 802
803@item 803@item
804Avoid using ``iff'' (a mathematics term meaning ``if and only if''), 804Avoid using ``iff'' (a mathematics term meaning ``if and only if''),
@@ -821,7 +821,7 @@ to set, use @code{defcustom}. @xref{Defining Variables}.
821 821
822@item 822@item
823The documentation string for a variable that is a yes-or-no flag should 823The documentation string for a variable that is a yes-or-no flag should
824start with words such as ``Non-nil means,'' to make it clear that 824start with words such as ``Non-nil means'', to make it clear that
825all non-@code{nil} values are equivalent and indicate explicitly what 825all non-@code{nil} values are equivalent and indicate explicitly what
826@code{nil} and non-@code{nil} mean. 826@code{nil} and non-@code{nil} mean.
827@end itemize 827@end itemize
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index e0e629ec9d3..4e622231645 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -670,7 +670,7 @@ symbol is changed.
670 670
671@code{setq} does not evaluate @var{symbol}; it sets the symbol that you 671@code{setq} does not evaluate @var{symbol}; it sets the symbol that you
672write. We say that this argument is @dfn{automatically quoted}. The 672write. We say that this argument is @dfn{automatically quoted}. The
673@samp{q} in @code{setq} stands for ``quoted.'' 673@samp{q} in @code{setq} stands for ``quoted''.
674 674
675The value of the @code{setq} form is the value of the last @var{form}. 675The value of the @code{setq} form is the value of the last @var{form}.
676 676
diff --git a/doc/lispref/vol1.texi b/doc/lispref/vol1.texi
index 25ea8577467..2687cd57d5a 100644
--- a/doc/lispref/vol1.texi
+++ b/doc/lispref/vol1.texi
@@ -24,10 +24,9 @@
24@end tex 24@end tex
25 25
26@c Version of the manual and of Emacs. 26@c Version of the manual and of Emacs.
27@c Please remember to update the edition number in README as well. 27@set VERSION 3.1
28@set VERSION 3.0
29@include emacsver.texi 28@include emacsver.texi
30@set DATE July 2009 29@set DATE May 2012
31 30
32@dircategory Emacs 31@dircategory Emacs
33@direntry 32@direntry
@@ -90,8 +89,8 @@ developing GNU and promoting software freedom.''
90@subtitle For Emacs Version @value{EMACSVER} 89@subtitle For Emacs Version @value{EMACSVER}
91@subtitle Revision @value{VERSION}, @value{DATE} 90@subtitle Revision @value{VERSION}, @value{DATE}
92 91
93@author by Bil Lewis, Dan LaLiberte, Richard Stallman 92@author by Bil Lewis, Dan LaLiberte, Richard Stallman,
94@author and the GNU Manual Group 93@author the GNU Manual Group, et al.
95@page 94@page
96@vskip 0pt plus 1filll 95@vskip 0pt plus 1filll
97@insertcopying 96@insertcopying
@@ -480,7 +479,7 @@ Functions
480* Closures:: Functions that enclose a lexical environment. 479* Closures:: Functions that enclose a lexical environment.
481* Obsolete Functions:: Declaring functions obsolete. 480* Obsolete Functions:: Declaring functions obsolete.
482* Inline Functions:: Defining functions that the compiler 481* Inline Functions:: Defining functions that the compiler
483 will open code. 482 will expand inline.
484* Declaring Functions:: Telling the compiler that a function is defined. 483* Declaring Functions:: Telling the compiler that a function is defined.
485* Function Safety:: Determining whether a function is safe to call. 484* Function Safety:: Determining whether a function is safe to call.
486* Related Topics:: Cross-references to specific Lisp primitives 485* Related Topics:: Cross-references to specific Lisp primitives
@@ -513,7 +512,7 @@ Common Problems Using Macros
513* Eval During Expansion:: Don't evaluate them; put them in the expansion. 512* Eval During Expansion:: Don't evaluate them; put them in the expansion.
514* Repeated Expansion:: Avoid depending on how many times expansion is done. 513* Repeated Expansion:: Avoid depending on how many times expansion is done.
515 514
516Writing Customization Definitions 515Customization Settings
517 516
518* Common Keywords:: Common keyword arguments for all kinds of 517* Common Keywords:: Common keyword arguments for all kinds of
519 customization declarations. 518 customization declarations.
@@ -776,6 +775,7 @@ Defining Menus
776 various features. 775 various features.
777* Menu Separators:: Drawing a horizontal line through a menu. 776* Menu Separators:: Drawing a horizontal line through a menu.
778* Alias Menu Items:: Using command aliases in menu items. 777* Alias Menu Items:: Using command aliases in menu items.
778* Toolkit Differences:: Not all toolkits provide the same features.
779 779
780Major and Minor Modes 780Major and Minor Modes
781 781
@@ -802,7 +802,7 @@ Major Modes
802* Derived Modes:: Defining a new major mode based on another major 802* Derived Modes:: Defining a new major mode based on another major
803 mode. 803 mode.
804* Basic Major Modes:: Modes that other modes are often derived from. 804* Basic Major Modes:: Modes that other modes are often derived from.
805* Mode Hooks:: Hooks run at the end of major mode commands. 805* Mode Hooks:: Hooks run at the end of major mode functions.
806* Tabulated List Mode:: Parent mode for buffers containing tabulated data. 806* Tabulated List Mode:: Parent mode for buffers containing tabulated data.
807* Generic Modes:: Defining a simple major mode that supports 807* Generic Modes:: Defining a simple major mode that supports
808 comment syntax and Font Lock mode. 808 comment syntax and Font Lock mode.
@@ -846,6 +846,21 @@ Multiline Font Lock Constructs
846* Region to Refontify:: Controlling which region gets refontified 846* Region to Refontify:: Controlling which region gets refontified
847 after a buffer change. 847 after a buffer change.
848 848
849Automatic Indentation of code
850
851* SMIE:: A simple minded indentation engine.
852
853Simple Minded Indentation Engine
854
855* SMIE setup:: SMIE setup and features.
856* Operator Precedence Grammars:: A very simple parsing technique.
857* SMIE Grammar:: Defining the grammar of a language.
858* SMIE Lexer:: Defining tokens.
859* SMIE Tricks:: Working around the parser's limitations.
860* SMIE Indentation:: Specifying indentation rules.
861* SMIE Indentation Helpers:: Helper functions for indentation rules.
862* SMIE Indentation Example:: Sample indentation rules.
863
849Documentation 864Documentation
850 865
851* Documentation Basics:: Where doc strings are defined and stored. 866* Documentation Basics:: Where doc strings are defined and stored.
@@ -1242,8 +1257,7 @@ Processes
1242* Datagrams:: UDP network connections. 1257* Datagrams:: UDP network connections.
1243* Low-Level Network:: Lower-level but more general function 1258* Low-Level Network:: Lower-level but more general function
1244 to create connections and servers. 1259 to create connections and servers.
1245* Misc Network:: Additional relevant functions for 1260* Misc Network:: Additional relevant functions for net connections.
1246 network connections.
1247* Serial Ports:: Communicating with serial ports. 1261* Serial Ports:: Communicating with serial ports.
1248* Byte Packing:: Using bindat to pack and unpack binary data. 1262* Byte Packing:: Using bindat to pack and unpack binary data.
1249 1263
@@ -1363,6 +1377,7 @@ Images
1363* GIF Images:: Special features for GIF format. 1377* GIF Images:: Special features for GIF format.
1364* TIFF Images:: Special features for TIFF format. 1378* TIFF Images:: Special features for TIFF format.
1365* PostScript Images:: Special features for PostScript format. 1379* PostScript Images:: Special features for PostScript format.
1380* ImageMagick Images:: Special features available through ImageMagick.
1366* Other Image Types:: Various other formats are supported. 1381* Other Image Types:: Various other formats are supported.
1367* Defining Images:: Convenient ways to define an image for later use. 1382* Defining Images:: Convenient ways to define an image for later use.
1368* Showing Images:: Convenient ways to display an image once 1383* Showing Images:: Convenient ways to display an image once
@@ -1418,12 +1433,6 @@ Operating System Interface
1418* Notifications:: Desktop notifications. 1433* Notifications:: Desktop notifications.
1419* Dynamic Libraries:: On-demand loading of support libraries. 1434* Dynamic Libraries:: On-demand loading of support libraries.
1420 1435
1421Preparing Lisp code for distribution
1422
1423* Packaging Basics:: The basic concepts of Emacs Lisp packages.
1424* Simple Packages:: How to package a single .el file.
1425* Multi-file Packages:: How to package multiple files.
1426
1427Starting Up Emacs 1436Starting Up Emacs
1428 1437
1429* Startup Summary:: Sequence of actions Emacs performs at startup. 1438* Startup Summary:: Sequence of actions Emacs performs at startup.
@@ -1442,6 +1451,13 @@ Terminal Input
1442* Input Modes:: Options for how input is processed. 1451* Input Modes:: Options for how input is processed.
1443* Recording Input:: Saving histories of recent or all input events. 1452* Recording Input:: Saving histories of recent or all input events.
1444 1453
1454Preparing Lisp code for distribution
1455
1456* Packaging Basics:: The basic concepts of Emacs Lisp packages.
1457* Simple Packages:: How to package a single .el file.
1458* Multi-file Packages:: How to package multiple files.
1459* Package Archives:: Maintaining package archives.
1460
1445Tips and Conventions 1461Tips and Conventions
1446 1462
1447* Coding Conventions:: Conventions for clean and robust programs. 1463* Coding Conventions:: Conventions for clean and robust programs.
diff --git a/doc/lispref/vol2.texi b/doc/lispref/vol2.texi
index 2fd2a8d8224..c74e7c438b4 100644
--- a/doc/lispref/vol2.texi
+++ b/doc/lispref/vol2.texi
@@ -24,10 +24,9 @@
24@end tex 24@end tex
25 25
26@c Version of the manual and of Emacs. 26@c Version of the manual and of Emacs.
27@c Please remember to update the edition number in README as well. 27@set VERSION 3.1
28@set VERSION 3.0
29@include emacsver.texi 28@include emacsver.texi
30@set DATE July 2009 29@set DATE May 2012
31 30
32@dircategory Emacs 31@dircategory Emacs
33@direntry 32@direntry
@@ -90,8 +89,8 @@ developing GNU and promoting software freedom.''
90@subtitle For Emacs Version @value{EMACSVER} 89@subtitle For Emacs Version @value{EMACSVER}
91@subtitle Revision @value{VERSION}, @value{DATE} 90@subtitle Revision @value{VERSION}, @value{DATE}
92 91
93@author by Bil Lewis, Dan LaLiberte, Richard Stallman 92@author by Bil Lewis, Dan LaLiberte, Richard Stallman,
94@author and the GNU Manual Group 93@author the GNU Manual Group, et al.
95@page 94@page
96@vskip 0pt plus 1filll 95@vskip 0pt plus 1filll
97@insertcopying 96@insertcopying
@@ -479,7 +478,7 @@ Functions
479* Closures:: Functions that enclose a lexical environment. 478* Closures:: Functions that enclose a lexical environment.
480* Obsolete Functions:: Declaring functions obsolete. 479* Obsolete Functions:: Declaring functions obsolete.
481* Inline Functions:: Defining functions that the compiler 480* Inline Functions:: Defining functions that the compiler
482 will open code. 481 will expand inline.
483* Declaring Functions:: Telling the compiler that a function is defined. 482* Declaring Functions:: Telling the compiler that a function is defined.
484* Function Safety:: Determining whether a function is safe to call. 483* Function Safety:: Determining whether a function is safe to call.
485* Related Topics:: Cross-references to specific Lisp primitives 484* Related Topics:: Cross-references to specific Lisp primitives
@@ -512,7 +511,7 @@ Common Problems Using Macros
512* Eval During Expansion:: Don't evaluate them; put them in the expansion. 511* Eval During Expansion:: Don't evaluate them; put them in the expansion.
513* Repeated Expansion:: Avoid depending on how many times expansion is done. 512* Repeated Expansion:: Avoid depending on how many times expansion is done.
514 513
515Writing Customization Definitions 514Customization Settings
516 515
517* Common Keywords:: Common keyword arguments for all kinds of 516* Common Keywords:: Common keyword arguments for all kinds of
518 customization declarations. 517 customization declarations.
@@ -775,6 +774,7 @@ Defining Menus
775 various features. 774 various features.
776* Menu Separators:: Drawing a horizontal line through a menu. 775* Menu Separators:: Drawing a horizontal line through a menu.
777* Alias Menu Items:: Using command aliases in menu items. 776* Alias Menu Items:: Using command aliases in menu items.
777* Toolkit Differences:: Not all toolkits provide the same features.
778 778
779Major and Minor Modes 779Major and Minor Modes
780 780
@@ -801,7 +801,7 @@ Major Modes
801* Derived Modes:: Defining a new major mode based on another major 801* Derived Modes:: Defining a new major mode based on another major
802 mode. 802 mode.
803* Basic Major Modes:: Modes that other modes are often derived from. 803* Basic Major Modes:: Modes that other modes are often derived from.
804* Mode Hooks:: Hooks run at the end of major mode commands. 804* Mode Hooks:: Hooks run at the end of major mode functions.
805* Tabulated List Mode:: Parent mode for buffers containing tabulated data. 805* Tabulated List Mode:: Parent mode for buffers containing tabulated data.
806* Generic Modes:: Defining a simple major mode that supports 806* Generic Modes:: Defining a simple major mode that supports
807 comment syntax and Font Lock mode. 807 comment syntax and Font Lock mode.
@@ -845,6 +845,21 @@ Multiline Font Lock Constructs
845* Region to Refontify:: Controlling which region gets refontified 845* Region to Refontify:: Controlling which region gets refontified
846 after a buffer change. 846 after a buffer change.
847 847
848Automatic Indentation of code
849
850* SMIE:: A simple minded indentation engine.
851
852Simple Minded Indentation Engine
853
854* SMIE setup:: SMIE setup and features.
855* Operator Precedence Grammars:: A very simple parsing technique.
856* SMIE Grammar:: Defining the grammar of a language.
857* SMIE Lexer:: Defining tokens.
858* SMIE Tricks:: Working around the parser's limitations.
859* SMIE Indentation:: Specifying indentation rules.
860* SMIE Indentation Helpers:: Helper functions for indentation rules.
861* SMIE Indentation Example:: Sample indentation rules.
862
848Documentation 863Documentation
849 864
850* Documentation Basics:: Where doc strings are defined and stored. 865* Documentation Basics:: Where doc strings are defined and stored.
@@ -1362,6 +1377,7 @@ Images
1362* GIF Images:: Special features for GIF format. 1377* GIF Images:: Special features for GIF format.
1363* TIFF Images:: Special features for TIFF format. 1378* TIFF Images:: Special features for TIFF format.
1364* PostScript Images:: Special features for PostScript format. 1379* PostScript Images:: Special features for PostScript format.
1380* ImageMagick Images:: Special features available through ImageMagick.
1365* Other Image Types:: Various other formats are supported. 1381* Other Image Types:: Various other formats are supported.
1366* Defining Images:: Convenient ways to define an image for later use. 1382* Defining Images:: Convenient ways to define an image for later use.
1367* Showing Images:: Convenient ways to display an image once 1383* Showing Images:: Convenient ways to display an image once
@@ -1417,12 +1433,6 @@ Operating System Interface
1417* Notifications:: Desktop notifications. 1433* Notifications:: Desktop notifications.
1418* Dynamic Libraries:: On-demand loading of support libraries. 1434* Dynamic Libraries:: On-demand loading of support libraries.
1419 1435
1420Preparing Lisp code for distribution
1421
1422* Packaging Basics:: The basic concepts of Emacs Lisp packages.
1423* Simple Packages:: How to package a single .el file.
1424* Multi-file Packages:: How to package multiple files.
1425
1426Starting Up Emacs 1436Starting Up Emacs
1427 1437
1428* Startup Summary:: Sequence of actions Emacs performs at startup. 1438* Startup Summary:: Sequence of actions Emacs performs at startup.
@@ -1441,6 +1451,12 @@ Terminal Input
1441* Input Modes:: Options for how input is processed. 1451* Input Modes:: Options for how input is processed.
1442* Recording Input:: Saving histories of recent or all input events. 1452* Recording Input:: Saving histories of recent or all input events.
1443 1453
1454Preparing Lisp code for distribution
1455
1456* Packaging Basics:: The basic concepts of Emacs Lisp packages.
1457* Simple Packages:: How to package a single .el file.
1458* Multi-file Packages:: How to package multiple files.
1459
1444Tips and Conventions 1460Tips and Conventions
1445 1461
1446* Coding Conventions:: Conventions for clean and robust programs. 1462* Coding Conventions:: Conventions for clean and robust programs.
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index a9a25d8e867..094729033b1 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -49,7 +49,7 @@ is displayed in windows.
49@section Basic Concepts of Emacs Windows 49@section Basic Concepts of Emacs Windows
50@cindex window 50@cindex window
51 51
52A @dfn{window} is a area of the screen which is used to display a 52A @dfn{window} is a area of the screen that is used to display a
53buffer (@pxref{Buffers}). In Emacs Lisp, windows are represented by a 53buffer (@pxref{Buffers}). In Emacs Lisp, windows are represented by a
54special Lisp object type. 54special Lisp object type.
55 55
@@ -297,8 +297,8 @@ child of its parent.
297 297
298The functions @code{window-next-sibling} and 298The functions @code{window-next-sibling} and
299@code{window-prev-sibling} should not be confused with the functions 299@code{window-prev-sibling} should not be confused with the functions
300@code{next-window} and @code{previous-window} which respectively 300@code{next-window} and @code{previous-window}, which return the next
301return the next and previous window in the cyclic ordering of windows 301and previous window, respectively, in the cyclic ordering of windows
302(@pxref{Cyclic Window Ordering}). 302(@pxref{Cyclic Window Ordering}).
303 303
304 You can use the following functions to find the first live window on 304 You can use the following functions to find the first live window on
@@ -376,7 +376,7 @@ line (@pxref{Mode Line Format}).
376 376
377 Emacs provides several functions for finding the height and width of 377 Emacs provides several functions for finding the height and width of
378a window. Except where noted, Emacs reports window heights and widths 378a window. Except where noted, Emacs reports window heights and widths
379as integer numbers of lines and columns respectively. On a graphical 379as integer numbers of lines and columns, respectively. On a graphical
380display, each ``line'' and ``column'' actually corresponds to the 380display, each ``line'' and ``column'' actually corresponds to the
381height and width of a ``default'' character specified by the frame's 381height and width of a ``default'' character specified by the frame's
382default font. Thus, if a window is displaying text with a different 382default font. Thus, if a window is displaying text with a different
@@ -619,7 +619,7 @@ window.
619 619
620The optional argument @var{max-height}, if non-@code{nil}, specifies 620The optional argument @var{max-height}, if non-@code{nil}, specifies
621the maximum total height that this function can give @var{window}. 621the maximum total height that this function can give @var{window}.
622The optional argument @var{min-height}, if no-@code{nil}, specifies 622The optional argument @var{min-height}, if non-@code{nil}, specifies
623the minimum total height that it can give, which overrides the 623the minimum total height that it can give, which overrides the
624variable @code{window-min-height}. 624variable @code{window-min-height}.
625 625
@@ -723,7 +723,7 @@ properties of the window selected within @var{window}'s frame.
723 723
724The behavior of this function may be altered by the window parameters 724The behavior of this function may be altered by the window parameters
725of @var{window}, so long as the variable 725of @var{window}, so long as the variable
726@code{ignore-window-parameters} is non-@code{nil}. If the value of 726@code{ignore-window-parameters} is @code{nil}. If the value of
727the @code{split-window} window parameter is @code{t}, this function 727the @code{split-window} window parameter is @code{t}, this function
728ignores all other window parameters. Otherwise, if the value of the 728ignores all other window parameters. Otherwise, if the value of the
729@code{split-window} window parameter is a function, that function is 729@code{split-window} window parameter is a function, that function is
@@ -1062,7 +1062,7 @@ combination. @xref{Splitting Windows}.
1062 1062
1063The behavior of this function may be altered by the window parameters 1063The behavior of this function may be altered by the window parameters
1064of @var{window}, so long as the variable 1064of @var{window}, so long as the variable
1065@code{ignore-window-parameters} is non-@code{nil}. If the value of 1065@code{ignore-window-parameters} is @code{nil}. If the value of
1066the @code{delete-window} window parameter is @code{t}, this function 1066the @code{delete-window} window parameter is @code{t}, this function
1067ignores all other window parameters. Otherwise, if the value of the 1067ignores all other window parameters. Otherwise, if the value of the
1068@code{delete-window} window parameter is a function, that function is 1068@code{delete-window} window parameter is a function, that function is
@@ -1079,7 +1079,7 @@ defaults to the selected window. The return value is @code{nil}.
1079 1079
1080The behavior of this function may be altered by the window parameters 1080The behavior of this function may be altered by the window parameters
1081of @var{window}, so long as the variable 1081of @var{window}, so long as the variable
1082@code{ignore-window-parameters} is non-@code{nil}. If the value of 1082@code{ignore-window-parameters} is @code{nil}. If the value of
1083the @code{delete-other-windows} window parameter is @code{t}, this 1083the @code{delete-other-windows} window parameter is @code{t}, this
1084function ignores all other window parameters. Otherwise, if the value 1084function ignores all other window parameters. Otherwise, if the value
1085of the @code{delete-other-windows} window parameter is a function, 1085of the @code{delete-other-windows} window parameter is a function,
@@ -1119,8 +1119,8 @@ means operate on that frame.
1119 1119
1120Note that this argument does not have the same meaning as in other 1120Note that this argument does not have the same meaning as in other
1121functions which scan all live windows (@pxref{Cyclic Window 1121functions which scan all live windows (@pxref{Cyclic Window
1122Ordering}). Specifically, the values @code{t} and @code{nil} have the 1122Ordering}). Specifically, the meanings of @code{t} and @code{nil} here
1123opposite of their meanings in those other functions. 1123are the opposite of what they are in those other functions.
1124@end deffn 1124@end deffn
1125 1125
1126@node Selecting Windows 1126@node Selecting Windows
@@ -1171,11 +1171,11 @@ the buffer list.
1171This macro selects @var{window}, executes @var{forms} in sequence, then 1171This macro selects @var{window}, executes @var{forms} in sequence, then
1172restores the previously selected window and current buffer. The ordering 1172restores the previously selected window and current buffer. The ordering
1173of recently selected windows and the buffer list remain unchanged unless 1173of recently selected windows and the buffer list remain unchanged unless
1174you deliberately change them within @var{forms}, for example, by calling 1174you deliberately change them within @var{forms}; for example, by calling
1175@code{select-window} with argument @var{norecord} @code{nil}. 1175@code{select-window} with argument @var{norecord} @code{nil}.
1176 1176
1177The order of recently selected windows and the buffer list are not 1177This macro does not change the order of recently selected windows or
1178changed by this macro. 1178the buffer list.
1179@end defmac 1179@end defmac
1180 1180
1181@defun frame-selected-window &optional frame 1181@defun frame-selected-window &optional frame
@@ -1185,7 +1185,7 @@ within that frame. @var{frame} should be a live frame; if omitted or
1185@end defun 1185@end defun
1186 1186
1187@defun set-frame-selected-window frame window &optional norecord 1187@defun set-frame-selected-window frame window &optional norecord
1188This function makes @code{window} the window selected within the frame 1188This function makes @var{window} the window selected within the frame
1189@var{frame}. @var{frame} should be a live frame; if omitted or 1189@var{frame}. @var{frame} should be a live frame; if omitted or
1190@code{nil}, it defaults to the selected frame. @var{window} should be 1190@code{nil}, it defaults to the selected frame. @var{window} should be
1191a live window; if omitted or @code{nil}, it defaults to the selected 1191a live window; if omitted or @code{nil}, it defaults to the selected
@@ -1223,7 +1223,7 @@ the cyclic ordering of windows. @var{window} should be a live window;
1223if omitted or @code{nil}, it defaults to the selected window. 1223if omitted or @code{nil}, it defaults to the selected window.
1224 1224
1225The optional argument @var{minibuf} specifies whether minibuffer windows 1225The optional argument @var{minibuf} specifies whether minibuffer windows
1226shall be included in the cyclic ordering. Normally, when @var{minibuf} 1226should be included in the cyclic ordering. Normally, when @var{minibuf}
1227is @code{nil}, a minibuffer window is included only if it is currently 1227is @code{nil}, a minibuffer window is included only if it is currently
1228``active''; this matches the behavior of @kbd{C-x o}. (Note that a 1228``active''; this matches the behavior of @kbd{C-x o}. (Note that a
1229minibuffer window is active as long as its minibuffer is in use; see 1229minibuffer window is active as long as its minibuffer is in use; see
@@ -1805,14 +1805,14 @@ desired buffer) or @code{nil} (which means the splitting failed).
1805@end defopt 1805@end defopt
1806 1806
1807@defun split-window-sensibly window 1807@defun split-window-sensibly window
1808This function tries to split @code{window}, and return the newly 1808This function tries to split @var{window}, and return the newly
1809created window. If @code{window} cannot be split, it returns 1809created window. If @var{window} cannot be split, it returns
1810@code{nil}. 1810@code{nil}.
1811 1811
1812This function obeys the usual rules that determine when a window may 1812This function obeys the usual rules that determine when a window may
1813be split (@pxref{Splitting Windows}). It first tries to split by 1813be split (@pxref{Splitting Windows}). It first tries to split by
1814placing the new window below, subject to the restriction imposed by 1814placing the new window below, subject to the restriction imposed by
1815@code{split-height-threshold} (see below) in addition to any other 1815@code{split-height-threshold} (see below), in addition to any other
1816restrictions. If that fails, it tries to split by placing the new 1816restrictions. If that fails, it tries to split by placing the new
1817window to the right, subject to @code{split-width-threshold} (see 1817window to the right, subject to @code{split-width-threshold} (see
1818below). If that fails, and the window is the only window on its 1818below). If that fails, and the window is the only window on its
@@ -1944,7 +1944,7 @@ to display @var{buffer}.
1944 1944
1945If @var{args} is an alist, it specifies frame parameters for the new 1945If @var{args} is an alist, it specifies frame parameters for the new
1946frame. If @var{args} is a list whose @sc{car} is a symbol, then 1946frame. If @var{args} is a list whose @sc{car} is a symbol, then
1947@code{(car @var{args})} is called as a function to actually create and 1947@code{(car @var{args})} is a function to actually create and
1948set up the frame; it is called with @var{buffer} as first argument, and 1948set up the frame; it is called with @var{buffer} as first argument, and
1949@code{(cdr @var{args})} as additional arguments. 1949@code{(cdr @var{args})} as additional arguments.
1950 1950
@@ -1962,7 +1962,7 @@ This variable holds frame parameters for
1962 1962
1963@defopt same-window-buffer-names 1963@defopt same-window-buffer-names
1964A list of buffer names for buffers that should be displayed in the 1964A list of buffer names for buffers that should be displayed in the
1965selected window. If the buffer's name is in this list, 1965selected window. If a buffer's name is in this list,
1966@code{display-buffer} handles the buffer by switching to it in the 1966@code{display-buffer} handles the buffer by switching to it in the
1967selected window. 1967selected window.
1968@end defopt 1968@end defopt
@@ -1997,8 +1997,8 @@ above.
1997@section Window History 1997@section Window History
1998@cindex window history 1998@cindex window history
1999 1999
2000Each window remembers the buffers it has displayed earlier and the order 2000Each window remembers the buffers it has previously displayed, and the order
2001in which these buffers have been removed from it. This history is used, 2001in which these buffers were removed from it. This history is used,
2002for example, by @code{replace-buffer-in-windows} (@pxref{Buffers and 2002for example, by @code{replace-buffer-in-windows} (@pxref{Buffers and
2003Windows}). This list is automatically maintained by Emacs, but you can 2003Windows}). This list is automatically maintained by Emacs, but you can
2004use the following functions to explicitly inspect or alter it: 2004use the following functions to explicitly inspect or alter it:
@@ -2061,41 +2061,41 @@ This command displays the previous buffer in @var{window}. The
2061argument @var{window} should be a live window or @code{nil} (meaning 2061argument @var{window} should be a live window or @code{nil} (meaning
2062the selected window). If the optional argument @var{bury-or-kill} is 2062the selected window). If the optional argument @var{bury-or-kill} is
2063non-@code{nil}, this means that the buffer currently shown in 2063non-@code{nil}, this means that the buffer currently shown in
2064@var{window} is about to be buried or killed and consequently shall 2064@var{window} is about to be buried or killed and consequently should
2065not be switched to in future invocations of this command. 2065not be switched to in future invocations of this command.
2066 2066
2067The previous buffer is usually the buffer shown before the buffer 2067The previous buffer is usually the buffer shown before the buffer
2068currently shown in @var{window}. However, a buffer that has been buried 2068currently shown in @var{window}. However, a buffer that has been buried
2069or killed or has been already shown by a recent invocation of 2069or killed, or has been already shown by a recent invocation of
2070@code{switch-to-prev-buffer} does not qualify as previous buffer. 2070@code{switch-to-prev-buffer}, does not qualify as previous buffer.
2071 2071
2072If repeated invocations of this command have already shown all buffers 2072If repeated invocations of this command have already shown all buffers
2073previously shown in @var{window}, further invocations will show buffers 2073previously shown in @var{window}, further invocations will show buffers
2074from the buffer list of the frame @var{window} appears on (@pxref{The 2074from the buffer list of the frame @var{window} appears on (@pxref{The
2075Buffer List}) trying to skip buffers that are already shown in another 2075Buffer List}), trying to skip buffers that are already shown in another
2076window on that frame. 2076window on that frame.
2077@end deffn 2077@end deffn
2078 2078
2079@deffn Command switch-to-next-buffer &optional window 2079@deffn Command switch-to-next-buffer &optional window
2080This command switches to the next buffer in @var{window} thus undoing 2080This command switches to the next buffer in @var{window}, thus undoing
2081the effect of the last @code{switch-to-prev-buffer} command in 2081the effect of the last @code{switch-to-prev-buffer} command in
2082@var{window}. The argument @var{window} must be a live window and 2082@var{window}. The argument @var{window} must be a live window and
2083defaults to the selected one. 2083defaults to the selected one.
2084 2084
2085If there is no recent invocation of a @code{switch-to-prev-buffer} that 2085If there is no recent invocation of @code{switch-to-prev-buffer} that
2086can be undone, this function tries to show a buffer from the buffer list 2086can be undone, this function tries to show a buffer from the buffer list
2087of the frame @var{window} appears on (@pxref{The Buffer List}). 2087of the frame @var{window} appears on (@pxref{The Buffer List}).
2088@end deffn 2088@end deffn
2089 2089
2090By default @code{switch-to-prev-buffer} and @code{switch-to-next-buffer} 2090By default @code{switch-to-prev-buffer} and @code{switch-to-next-buffer}
2091can switch to a buffer that is already shown in another window on the 2091can switch to a buffer that is already shown in another window on the
2092same frame. The following option can be used to override that behavior. 2092same frame. The following option can be used to override this behavior.
2093 2093
2094@defopt switch-to-visible-buffer 2094@defopt switch-to-visible-buffer
2095If this variable is non-@code{nil}, @code{switch-to-prev-buffer} and 2095If this variable is non-@code{nil}, @code{switch-to-prev-buffer} and
2096@code{switch-to-next-buffer} may switch to a buffer that is already 2096@code{switch-to-next-buffer} may switch to a buffer that is already
2097visible on the same frame, provided the buffer was shown in the argument 2097visible on the same frame, provided the buffer was shown in the relevant
2098window before. If it's @code{nil}, @code{switch-to-prev-buffer} and 2098window before. If it is @code{nil}, @code{switch-to-prev-buffer} and
2099@code{switch-to-next-buffer} always try to avoid switching to a buffer 2099@code{switch-to-next-buffer} always try to avoid switching to a buffer
2100that is already visible in another window on the same frame. 2100that is already visible in another window on the same frame.
2101@end defopt 2101@end defopt
@@ -2137,7 +2137,7 @@ another buffer in it and iconifies the frame.
2137This function returns non-@code{nil} if @var{window} is dedicated to its 2137This function returns non-@code{nil} if @var{window} is dedicated to its
2138buffer and @code{nil} otherwise. More precisely, the return value is 2138buffer and @code{nil} otherwise. More precisely, the return value is
2139the value assigned by the last call of @code{set-window-dedicated-p} for 2139the value assigned by the last call of @code{set-window-dedicated-p} for
2140@var{window} or @code{nil} if that function was never called with 2140@var{window}, or @code{nil} if that function was never called with
2141@var{window} as its argument. The default for @var{window} is the 2141@var{window} as its argument. The default for @var{window} is the
2142selected window. 2142selected window.
2143@end defun 2143@end defun
@@ -2158,20 +2158,20 @@ non-@code{nil} value.
2158@node Quitting Windows 2158@node Quitting Windows
2159@section Quitting Windows 2159@section Quitting Windows
2160 2160
2161When you want to get rid of a window used for displaying a buffer you 2161When you want to get rid of a window used for displaying a buffer, you
2162can call @code{delete-window} or @code{delete-windows-on} 2162can call @code{delete-window} or @code{delete-windows-on}
2163(@pxref{Deleting Windows}) to remove that window from its frame. If the 2163(@pxref{Deleting Windows}) to remove that window from its frame. If the
2164buffer is shown on a separate frame, you might want to call 2164buffer is shown on a separate frame, you might want to call
2165@code{delete-frame} (@pxref{Deleting Frames}) instead. If, on the other 2165@code{delete-frame} (@pxref{Deleting Frames}) instead. If, on the other
2166hand, a window has been reused for displaying the buffer, you might 2166hand, a window has been reused for displaying the buffer, you might
2167prefer showing the buffer previously shown in that window by calling the 2167prefer showing the buffer previously shown in that window, by calling the
2168function @code{switch-to-prev-buffer} (@pxref{Window History}). 2168function @code{switch-to-prev-buffer} (@pxref{Window History}).
2169Finally, you might want to either bury (@pxref{The Buffer List}) or kill 2169Finally, you might want to either bury (@pxref{The Buffer List}) or kill
2170(@pxref{Killing Buffers}) the window's buffer. 2170(@pxref{Killing Buffers}) the window's buffer.
2171 2171
2172 The following function uses information on how the window for 2172 The following function uses information on how the window for
2173displaying the buffer was obtained in the first place thus attempting to 2173displaying the buffer was obtained in the first place, thus attempting to
2174automatize the above decisions for you. 2174automate the above decisions for you.
2175 2175
2176@deffn Command quit-window &optional kill window 2176@deffn Command quit-window &optional kill window
2177This command quits @var{window} and buries its buffer. The argument 2177This command quits @var{window} and buries its buffer. The argument
@@ -2199,39 +2199,39 @@ restore the original height of @var{window}.
2199The three cases described so far require that the buffer shown in 2199The three cases described so far require that the buffer shown in
2200@var{window} is still the buffer displayed by the last buffer display 2200@var{window} is still the buffer displayed by the last buffer display
2201function for this window. If another buffer has been shown in the 2201function for this window. If another buffer has been shown in the
2202meantime or the buffer previously shown no longer exists, this command 2202meantime, or the buffer previously shown no longer exists, this command
2203calls @code{switch-to-prev-buffer} (@pxref{Window History}) to show some 2203calls @code{switch-to-prev-buffer} (@pxref{Window History}) to show some
2204other buffer instead. 2204other buffer instead.
2205@end deffn 2205@end deffn
2206 2206
2207The function @code{quit-window} bases its decisions on information 2207The function @code{quit-window} bases its decisions on information
2208stored in @var{window}'s @code{quit-restore} window parameter 2208stored in @var{window}'s @code{quit-restore} window parameter
2209(@pxref{Window Parameters}) and resets that parameter to @code{nil} 2209(@pxref{Window Parameters}), and resets that parameter to @code{nil}
2210after it's done. 2210after it's done.
2211 2211
2212The following option specifies how to deal with a frame containing just 2212The following option specifies how to deal with a frame containing just
2213one window that shall be either quit or whose buffer shall be buried. 2213one window that should be either quit, or whose buffer should be buried.
2214 2214
2215@defopt frame-auto-hide-function 2215@defopt frame-auto-hide-function
2216The function specified by this option is called to automatically hide 2216The function specified by this option is called to automatically hide
2217frames. This function is called with one argument - a frame. 2217frames. This function is called with one argument---a frame.
2218 2218
2219The function specified here is called by @code{bury-buffer} (@pxref{The 2219The function specified here is called by @code{bury-buffer} (@pxref{The
2220Buffer List}) when the selected window is dedicated and shows the buffer 2220Buffer List}) when the selected window is dedicated and shows the buffer
2221that shall be buried. It is also called by @code{quit-window} (see 2221that should be buried. It is also called by @code{quit-window} (see
2222above) when the frame of the window that shall be quit has been 2222above) when the frame of the window that should be quit has been
2223specially created for displaying that window's buffer and the buffer 2223specially created for displaying that window's buffer and the buffer
2224shall be buried. 2224should be buried.
2225 2225
2226The default is to call @code{iconify-frame} (@pxref{Visibility of 2226The default is to call @code{iconify-frame} (@pxref{Visibility of
2227Frames}). Alternatively, you may either specify @code{delete-frame} 2227Frames}). Alternatively, you may specify either @code{delete-frame}
2228(@pxref{Deleting Frames}) to remove the frame from its display, 2228(@pxref{Deleting Frames}) to remove the frame from its display,
2229@code{ignore} to leave the frame unchanged, or any other function that 2229@code{ignore} to leave the frame unchanged, or any other function that
2230can take a frame as its sole argument. 2230can take a frame as its sole argument.
2231 2231
2232Note that the function specified by this option is called if and only if 2232Note that the function specified by this option is called if and only if
2233there's at least one other frame on the terminal of the frame it's 2233there is at least one other frame on the terminal of the frame it's
2234supposed to handle and that frame contains only one live window. 2234supposed to handle, and that frame contains only one live window.
2235@end defopt 2235@end defopt
2236 2236
2237 2237
@@ -2321,14 +2321,7 @@ command to a key.
2321@cindex window top line 2321@cindex window top line
2322This function returns the display-start position of window 2322This function returns the display-start position of window
2323@var{window}. If @var{window} is @code{nil}, the selected window is 2323@var{window}. If @var{window} is @code{nil}, the selected window is
2324used. For example, 2324used.
2325
2326@example
2327@group
2328(window-start)
2329 @result{} 7058
2330@end group
2331@end example
2332 2325
2333When you create a window, or display a different buffer in it, the 2326When you create a window, or display a different buffer in it, the
2334display-start position is set to a display-start position recently used 2327display-start position is set to a display-start position recently used
@@ -2340,9 +2333,6 @@ it explicitly since the previous redisplay)---to make sure point appears
2340on the screen. Nothing except redisplay automatically changes the 2333on the screen. Nothing except redisplay automatically changes the
2341window-start position; if you move point, do not expect the window-start 2334window-start position; if you move point, do not expect the window-start
2342position to change in response until after the next redisplay. 2335position to change in response until after the next redisplay.
2343
2344For a realistic example of using @code{window-start}, see the
2345description of @code{count-lines}. @xref{Definition of count-lines}.
2346@end defun 2336@end defun
2347 2337
2348@cindex window end position 2338@cindex window end position
@@ -2516,12 +2506,16 @@ commands move the paper up and down. Thus, if you are looking at the
2516middle of a buffer and repeatedly call @code{scroll-down}, you will 2506middle of a buffer and repeatedly call @code{scroll-down}, you will
2517eventually see the beginning of the buffer. 2507eventually see the beginning of the buffer.
2518 2508
2519 Some people have urged that the opposite convention be used: they 2509 Unfortunately, this sometimes causes confusion, because some people
2510tend to think in terms of the opposite convention: they
2520imagine the window moving over text that remains in place, so that 2511imagine the window moving over text that remains in place, so that
2521``down'' commands take you to the end of the buffer. This convention 2512``down'' commands take you to the end of the buffer. This convention
2522is consistent with fact that such a command is bound to a key named 2513is consistent with fact that such a command is bound to a key named
2523@key{PageDown} on modern keyboards. We have not switched to this 2514@key{PageDown} on modern keyboards.
2524convention as that is likely to break existing Emacs Lisp code. 2515@ignore
2516We have not switched to this convention as that is likely to break
2517existing Emacs Lisp code.
2518@end ignore
2525 2519
2526 Textual scrolling functions (aside from @code{scroll-other-window}) 2520 Textual scrolling functions (aside from @code{scroll-other-window})
2527have unpredictable results if the current buffer is not the one 2521have unpredictable results if the current buffer is not the one
@@ -2551,13 +2545,8 @@ signals an error. Otherwise, it returns @code{nil}.
2551This function scrolls backward by @var{count} lines in the selected 2545This function scrolls backward by @var{count} lines in the selected
2552window. 2546window.
2553 2547
2554If @var{count} is negative, it scrolls forward instead. If 2548If @var{count} is negative, it scrolls forward instead. In other
2555@var{count} is omitted or @code{nil}, the distance scrolled is 2549respects, it behaves the same way as @code{scroll-up} does.
2556@code{next-screen-context-lines} lines less than the height of the
2557window's text area.
2558
2559If the selected window cannot be scrolled any further, this function
2560signals an error. Otherwise, it returns @code{nil}.
2561@end deffn 2550@end deffn
2562 2551
2563@deffn Command scroll-up-command &optional count 2552@deffn Command scroll-up-command &optional count
@@ -2587,8 +2576,8 @@ already displayed, @code{scroll-other-window} displays it in some
2587window. 2576window.
2588 2577
2589When the selected window is the minibuffer, the next window is normally 2578When the selected window is the minibuffer, the next window is normally
2590the one at the top left corner. You can specify a different window to 2579the leftmost one immediately above it. You can specify a different
2591scroll, when the minibuffer is selected, by setting the variable 2580window to scroll, when the minibuffer is selected, by setting the variable
2592@code{minibuffer-scroll-window}. This variable has no effect when any 2581@code{minibuffer-scroll-window}. This variable has no effect when any
2593other window is selected. When it is non-@code{nil} and the 2582other window is selected. When it is non-@code{nil} and the
2594minibuffer is selected, it takes precedence over 2583minibuffer is selected, it takes precedence over
@@ -2600,7 +2589,7 @@ window is the one at the bottom right corner. In this case,
2600@code{scroll-other-window} attempts to scroll the minibuffer. If the 2589@code{scroll-other-window} attempts to scroll the minibuffer. If the
2601minibuffer contains just one line, it has nowhere to scroll to, so the 2590minibuffer contains just one line, it has nowhere to scroll to, so the
2602line reappears after the echo area momentarily displays the message 2591line reappears after the echo area momentarily displays the message
2603@samp{Beginning of buffer}. 2592@samp{End of buffer}.
2604@end deffn 2593@end deffn
2605 2594
2606@defvar other-window-scroll-buffer 2595@defvar other-window-scroll-buffer
@@ -2699,12 +2688,12 @@ If @var{count} is a non-negative number, that puts the line containing
2699point @var{count} lines down from the top of the window. If 2688point @var{count} lines down from the top of the window. If
2700@var{count} is a negative number, then it counts upward from the 2689@var{count} is a negative number, then it counts upward from the
2701bottom of the window, so that @minus{}1 stands for the last usable 2690bottom of the window, so that @minus{}1 stands for the last usable
2702line in the window. If @var{count} is a non-@code{nil} list, then it 2691line in the window.
2703stands for the line in the middle of the window.
2704 2692
2705If @var{count} is @code{nil}, @code{recenter} puts the line containing 2693If @var{count} is @code{nil} (or a non-@code{nil} list),
2706point in the middle of the window, then clears and redisplays the entire 2694@code{recenter} puts the line containing point in the middle of the
2707selected frame. 2695window. If @var{count} is @code{nil}, this function may redraw the
2696frame, according to the value of @code{recenter-redisplay}.
2708 2697
2709When @code{recenter} is called interactively, @var{count} is the raw 2698When @code{recenter} is called interactively, @var{count} is the raw
2710prefix argument. Thus, typing @kbd{C-u} as the prefix sets the 2699prefix argument. Thus, typing @kbd{C-u} as the prefix sets the
@@ -2713,22 +2702,32 @@ prefix argument. Thus, typing @kbd{C-u} as the prefix sets the
2713top. 2702top.
2714 2703
2715With an argument of zero, @code{recenter} positions the current line at 2704With an argument of zero, @code{recenter} positions the current line at
2716the top of the window. This action is so handy that some people make a 2705the top of the window. The command @code{recenter-top-bottom} offers
2717separate key binding to do this. For example, 2706a more convenient way to achieve this.
2707@end deffn
2718 2708
2719@example 2709@defopt recenter-redisplay
2720@group 2710If this variable is non-@code{nil}, calling @code{recenter} with a
2721(defun line-to-top-of-window () 2711@code{nil} argument redraws the frame. The default value is
2722 "Scroll current line to top of window. 2712@code{tty}, which means only redraw the frame if it is a tty frame.
2723Replaces three keystroke sequence C-u 0 C-l." 2713@end defopt
2724 (interactive)
2725 (recenter 0))
2726 2714
2727(global-set-key [kp-multiply] 'line-to-top-of-window) 2715@deffn Command recenter-top-bottom &optional count
2728@end group 2716This command, which is the default binding for @kbd{C-l}, acts like
2729@end example 2717@code{recenter}, except if called with no argument. In that case,
2718successive calls place point according to the cycling order defined
2719by the variable @code{recenter-positions}.
2730@end deffn 2720@end deffn
2731 2721
2722@defopt recenter-positions
2723This variable controls how @code{recenter-top-bottom} behaves when
2724called with no argument. The default value is @code{(middle top
2725bottom)}, which means that successive calls of
2726@code{recenter-top-bottom} with no argument cycle between placing
2727point at the middle, top, and bottom of the window.
2728@end defopt
2729
2730
2732@node Vertical Scrolling 2731@node Vertical Scrolling
2733@section Vertical Fractional Scrolling 2732@section Vertical Fractional Scrolling
2734@cindex vertical fractional scrolling 2733@cindex vertical fractional scrolling
@@ -2817,8 +2816,8 @@ times the normal character width. How many characters actually
2817disappear off to the left depends on their width, and could vary from 2816disappear off to the left depends on their width, and could vary from
2818line to line. 2817line to line.
2819 2818
2820 Because we read from side to side in the ``inner loop,'' and from top 2819 Because we read from side to side in the ``inner loop'', and from top
2821to bottom in the ``outer loop,'' the effect of horizontal scrolling is 2820to bottom in the ``outer loop'', the effect of horizontal scrolling is
2822not like that of textual or vertical scrolling. Textual scrolling 2821not like that of textual or vertical scrolling. Textual scrolling
2823involves selection of a portion of text to display, and vertical 2822involves selection of a portion of text to display, and vertical
2824scrolling moves the window contents contiguously; but horizontal 2823scrolling moves the window contents contiguously; but horizontal
@@ -3014,7 +3013,7 @@ frame.
3014 3013
3015@defun coordinates-in-window-p coordinates window 3014@defun coordinates-in-window-p coordinates window
3016This function checks whether a window @var{window} occupies the 3015This function checks whether a window @var{window} occupies the
3017frame-relative coordinates @var{coordinates}, and if so which part of 3016frame-relative coordinates @var{coordinates}, and if so, which part of
3018the window that is. @var{window} should be a live window. 3017the window that is. @var{window} should be a live window.
3019@var{coordinates} should be a cons cell of the form @code{(@var{x} 3018@var{coordinates} should be a cons cell of the form @code{(@var{x}
3020. @var{y})}, where @var{x} and @var{y} are frame-relative coordinates. 3019. @var{y})}, where @var{x} and @var{y} are frame-relative coordinates.
@@ -3112,14 +3111,14 @@ for the current buffer.
3112 You can bring back an entire frame layout by restoring a previously 3111 You can bring back an entire frame layout by restoring a previously
3113saved window configuration. If you want to record the layout of all 3112saved window configuration. If you want to record the layout of all
3114frames instead of just one, use a frame configuration instead of a 3113frames instead of just one, use a frame configuration instead of a
3115window configuration; see @ref{Frame Configurations}. 3114window configuration. @xref{Frame Configurations}.
3116 3115
3117@defun current-window-configuration &optional frame 3116@defun current-window-configuration &optional frame
3118This function returns a new object representing @var{frame}'s current 3117This function returns a new object representing @var{frame}'s current
3119window configuration. The default for @var{frame} is the selected 3118window configuration. The default for @var{frame} is the selected
3120frame. The variable @code{window-persistent-parameters} specifies 3119frame. The variable @code{window-persistent-parameters} specifies
3121whether and which window parameters are saved by this function, see 3120which window parameters (if any) are saved by this function.
3122@ref{Window Parameters} for details. 3121@xref{Window Parameters}.
3123@end defun 3122@end defun
3124 3123
3125@defun set-window-configuration configuration 3124@defun set-window-configuration configuration
@@ -3136,9 +3135,9 @@ change and triggers execution of the @code{window-size-change-functions}
3136know how to tell whether the new configuration actually differs from the 3135know how to tell whether the new configuration actually differs from the
3137old one. 3136old one.
3138 3137
3139If the frame which @var{configuration} was saved from is dead, all this 3138If the frame from which @var{configuration} was saved is dead, all this
3140function does is restore the three variables @code{window-min-height}, 3139function does is restore the three variables @code{window-min-height},
3141@code{window-min-width} and @code{minibuffer-scroll-window}. In this 3140@code{window-min-width} and @code{minibuffer-scroll-window}. In this
3142case, the function returns @code{nil}. Otherwise, it returns @code{t}. 3141case, the function returns @code{nil}. Otherwise, it returns @code{t}.
3143 3142
3144Here is a way of using this function to get the same effect 3143Here is a way of using this function to get the same effect
@@ -3221,8 +3220,8 @@ configurations.
3221 3220
3222 The objects returned by @code{current-window-configuration} die 3221 The objects returned by @code{current-window-configuration} die
3223together with the Emacs process. In order to store a window 3222together with the Emacs process. In order to store a window
3224configuration on disk and read it back in another Emacs session, the 3223configuration on disk and read it back in another Emacs session, you
3225functions described next can be used. These functions are also useful 3224can use the functions described next. These functions are also useful
3226to clone the state of a frame into an arbitrary live window 3225to clone the state of a frame into an arbitrary live window
3227(@code{set-window-configuration} effectively clones the windows of a 3226(@code{set-window-configuration} effectively clones the windows of a
3228frame into the root window of that very frame only). 3227frame into the root window of that very frame only).
@@ -3235,17 +3234,17 @@ of the selected frame.
3235If the optional argument @var{writable} is non-@code{nil}, this means to 3234If the optional argument @var{writable} is non-@code{nil}, this means to
3236not use markers for sampling positions like @code{window-point} or 3235not use markers for sampling positions like @code{window-point} or
3237@code{window-start}. This argument should be non-@code{nil} when the 3236@code{window-start}. This argument should be non-@code{nil} when the
3238state shall be written to disk and read back in another session. 3237state will be written to disk and read back in another session.
3239 3238
3240Together, the argument @var{writable} and the variable 3239Together, the argument @var{writable} and the variable
3241@code{window-persistent-parameters} specify which window parameters are 3240@code{window-persistent-parameters} specify which window parameters are
3242saved by this function, see @ref{Window Parameters} for details. 3241saved by this function. @xref{Window Parameters}.
3243@end defun 3242@end defun
3244 3243
3245The value returned by @code{window-state-get} can be used in the same 3244The value returned by @code{window-state-get} can be used in the same
3246session to make a clone of a window in another window. It can be also 3245session to make a clone of a window in another window. It can be also
3247written to disk and read back in another session. In either case, use 3246written to disk and read back in another session. In either case, use
3248the function described next to restore the state of the window. 3247the following function to restore the state of the window.
3249 3248
3250@defun window-state-put state &optional window ignore 3249@defun window-state-put state &optional window ignore
3251This function puts the window state @var{state} into @var{window}. The 3250This function puts the window state @var{state} into @var{window}. The
@@ -3254,9 +3253,9 @@ earlier invocation of @code{window-state-get}, see above. The optional
3254argument @var{window} must specify a live window and defaults to the 3253argument @var{window} must specify a live window and defaults to the
3255selected one. 3254selected one.
3256 3255
3257The optional argument @var{ignore} non-@code{nil} means to ignore 3256If the optional argument @var{ignore} is non-@code{nil}, it means to ignore
3258minimum window sizes and fixed size restrictions. If @var{ignore} 3257minimum window sizes and fixed-size restrictions. If @var{ignore}
3259equals @code{safe}, this means windows can get as small as one line 3258is @code{safe}, this means windows can get as small as one line
3260and/or two columns. 3259and/or two columns.
3261@end defun 3260@end defun
3262 3261
@@ -3276,8 +3275,8 @@ setting for @var{parameter}, this function returns @code{nil}.
3276 3275
3277@defun window-parameters &optional window 3276@defun window-parameters &optional window
3278This function returns all parameters of @var{window} and their values. 3277This function returns all parameters of @var{window} and their values.
3279The default for @var{window} is the selected window. The return value, 3278The default for @var{window} is the selected window. The return value
3280if non-@code{nil} is an association list whose elements have the form 3279is either @code{nil}, or an association list whose elements have the form
3281@code{(@var{parameter} . @var{value})}. 3280@code{(@var{parameter} . @var{value})}.
3282@end defun 3281@end defun
3283 3282
@@ -3287,34 +3286,34 @@ This function sets @var{window}'s value of @var{parameter} to
3287is the selected window. 3286is the selected window.
3288@end defun 3287@end defun
3289 3288
3290By default, functions saving and restoring window configurations or the 3289By default, the functions that save and restore window configurations or the
3291states of windows (@pxref{Window Configurations}) do not care about 3290states of windows (@pxref{Window Configurations}) do not care about
3292window parameters. This means, that when you change the value of a 3291window parameters. This means that when you change the value of a
3293parameter within the body of a @code{save-window-excursion}, the 3292parameter within the body of a @code{save-window-excursion}, the
3294previous value is not restored upon exit of that macro. It also means 3293previous value is not restored when that macro exits. It also means
3295that when you restore via @code{window-state-put} a window state saved 3294that when you restore via @code{window-state-put} a window state saved
3296earlier by @code{window-state-get}, all cloned windows have their 3295earlier by @code{window-state-get}, all cloned windows have their
3297parameters reset to @code{nil}. The following variable allows to 3296parameters reset to @code{nil}. The following variable allows you to
3298override the standard behavior. 3297override the standard behavior:
3299 3298
3300@defvar window-persistent-parameters 3299@defvar window-persistent-parameters
3301This variable is an alist specifying which parameters get saved by 3300This variable is an alist specifying which parameters get saved by
3302@code{current-window-configuration} and @code{window-state-get} and 3301@code{current-window-configuration} and @code{window-state-get}, and
3303subsequently restored by @code{set-window-configuration} and 3302subsequently restored by @code{set-window-configuration} and
3304@code{window-state-put}, see @ref{Window Configurations}. 3303@code{window-state-put}. @xref{Window Configurations}.
3305 3304
3306The @sc{car} of each entry of this alist is the symbol specifying the 3305The @sc{car} of each entry of this alist is a symbol specifying the
3307parameter. The @sc{cdr} should be one of the following: 3306parameter. The @sc{cdr} should be one of the following:
3308 3307
3309@table @asis 3308@table @asis
3310@item @code{nil} 3309@item @code{nil}
3311This value means the parameter is neither saved by 3310This value means the parameter is saved neither by
3312@code{window-state-get} nor by @code{current-window-configuration}. 3311@code{window-state-get} nor by @code{current-window-configuration}.
3313 3312
3314@item @code{t} 3313@item @code{t}
3315This value specifies that the parameter is saved by 3314This value specifies that the parameter is saved by
3316@code{current-window-configuration} and, provided its @var{writable} 3315@code{current-window-configuration} and (provided its @var{writable}
3317argument is @code{nil}, by @code{window-state-get}. 3316argument is @code{nil}) by @code{window-state-get}.
3318 3317
3319@item @code{writable} 3318@item @code{writable}
3320This means that the parameter is saved unconditionally by both 3319This means that the parameter is saved unconditionally by both
@@ -3325,8 +3324,8 @@ may fail with an @code{invalid-read-syntax} error.
3325@end table 3324@end table
3326@end defvar 3325@end defvar
3327 3326
3328Some functions, notably @code{delete-window}, 3327Some functions (notably @code{delete-window},
3329@code{delete-other-windows} and @code{split-window} may behave specially 3328@code{delete-other-windows} and @code{split-window}), may behave specially
3330when their @var{window} argument has a parameter set. You can override 3329when their @var{window} argument has a parameter set. You can override
3331such special behavior by binding the following variable to a 3330such special behavior by binding the following variable to a
3332non-@code{nil} value: 3331non-@code{nil} value:
@@ -3334,7 +3333,7 @@ non-@code{nil} value:
3334@defvar ignore-window-parameters 3333@defvar ignore-window-parameters
3335If this variable is non-@code{nil}, some standard functions do not 3334If this variable is non-@code{nil}, some standard functions do not
3336process window parameters. The functions currently affected by this are 3335process window parameters. The functions currently affected by this are
3337@code{split-window}, @code{delete-window}, @code{delete-other-windows} 3336@code{split-window}, @code{delete-window}, @code{delete-other-windows},
3338and @code{other-window}. 3337and @code{other-window}.
3339 3338
3340An application can bind this variable to a non-@code{nil} value around 3339An application can bind this variable to a non-@code{nil} value around
@@ -3368,18 +3367,19 @@ This parameter marks the window as not selectable by @code{other-window}
3368(@pxref{Cyclic Window Ordering}). 3367(@pxref{Cyclic Window Ordering}).
3369 3368
3370@item @code{clone-of} 3369@item @code{clone-of}
3371This parameter specifies the window this one has been cloned from and is 3370This parameter specifies the window that this one has been cloned
3372installed by @code{window-state-get}, see @ref{Window Configurations}. 3371from. It is installed by @code{window-state-get} (@pxref{Window
3372Configurations}).
3373 3373
3374@item @code{quit-restore} 3374@item @code{quit-restore}
3375This parameter tells how to proceed with a window when the buffer it 3375This parameter specifies what to do with a window when the buffer it
3376shows is no more needed. It is installed by the buffer display 3376shows is not needed any more. It is installed by the buffer display
3377functions (@pxref{Choosing Window}) and consulted by the function 3377functions (@pxref{Choosing Window}), and consulted by the function
3378@code{quit-window} (@pxref{Quitting Windows}). 3378@code{quit-window} (@pxref{Quitting Windows}).
3379@end table 3379@end table
3380 3380
3381In addition, the parameters @code{window-atom} and @code{window-side} 3381There are additional parameters @code{window-atom} and @code{window-side};
3382are reserved and should not be used by applications. 3382these are reserved and should not be used by applications.
3383 3383
3384 3384
3385@node Window Hooks 3385@node Window Hooks
@@ -3401,7 +3401,7 @@ the window also runs these functions.
3401This variable is not a normal hook, because each function is called with 3401This variable is not a normal hook, because each function is called with
3402two arguments: the window, and its new display-start position. 3402two arguments: the window, and its new display-start position.
3403 3403
3404These functions must be careful in using @code{window-end} 3404These functions must take care when using @code{window-end}
3405(@pxref{Window Start and End}); if you need an up-to-date value, you 3405(@pxref{Window Start and End}); if you need an up-to-date value, you
3406must use the @var{update} argument to ensure you get it. 3406must use the @var{update} argument to ensure you get it.
3407 3407
@@ -3439,7 +3439,7 @@ of an existing frame. This includes splitting or deleting windows,
3439changing the sizes of windows, or displaying a different buffer in a 3439changing the sizes of windows, or displaying a different buffer in a
3440window. 3440window.
3441 3441
3442The buffer-local part of this hook is run once per each window on the 3442The buffer-local part of this hook is run once for each window on the
3443affected frame, with the relevant window selected and its buffer 3443affected frame, with the relevant window selected and its buffer
3444current. The global part is run once for the modified frame, with that 3444current. The global part is run once for the modified frame, with that
3445frame selected. 3445frame selected.
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 834a8f2c47f..3d0900db9e4 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,13 @@
12012-04-27 Ippei Furuhashi <top.tuna+orgmode@gmail.com> (tiny change)
2
3 * org.texi (Agenda commands): Fix two typos: give corresponding
4 function names, according to `org-agenda-view-mode-dispatch'.
5
62012-04-27 Glenn Morris <rgm@gnu.org>
7
8 * faq.texi (Major packages and programs): Remove section.
9 There is no point listing 6 packages (cf etc/MORE.STUFF).
10 (Finding Emacs and related packages): Move "Spell-checkers" here.
12012-04-22 Michael Albinus <michael.albinus@gmx.de> 112012-04-22 Michael Albinus <michael.albinus@gmx.de>
2 12
3 * dbus.texi (Version): New node. 13 * dbus.texi (Version): New node.
diff --git a/doc/misc/faq.texi b/doc/misc/faq.texi
index 0f20c41c8eb..34005bcb9a0 100644
--- a/doc/misc/faq.texi
+++ b/doc/misc/faq.texi
@@ -91,7 +91,6 @@ Emacs, the Emacs manual is often the best starting point.
91* Bugs and problems:: 91* Bugs and problems::
92* Compiling and installing Emacs:: 92* Compiling and installing Emacs::
93* Finding Emacs and related packages:: 93* Finding Emacs and related packages::
94* Major packages and programs::
95* Key bindings:: 94* Key bindings::
96* Alternate character sets:: 95* Alternate character sets::
97* Mail and news:: 96* Mail and news::
@@ -1050,7 +1049,7 @@ A new command @kbd{customize-themes} allows you to easily change the
1050appearance of your Emacs. 1049appearance of your Emacs.
1051 1050
1052@item 1051@item
1053Emacs can be compiled with the Gtk+ 3 toolkit. 1052Emacs can be compiled with the GTK+ 3 toolkit.
1054 1053
1055@item 1054@item
1056Support for several new external libraries can be included at compile 1055Support for several new external libraries can be included at compile
@@ -3242,6 +3241,7 @@ problem (@pxref{Reporting bugs}).
3242* Finding Emacs on the Internet:: 3241* Finding Emacs on the Internet::
3243* Finding a package with particular functionality:: 3242* Finding a package with particular functionality::
3244* Packages that do not come with Emacs:: 3243* Packages that do not come with Emacs::
3244* Spell-checkers::
3245* Current GNU distributions:: 3245* Current GNU distributions::
3246* Difference between Emacs and XEmacs:: 3246* Difference between Emacs and XEmacs::
3247* Emacs for minimalists:: 3247* Emacs for minimalists::
@@ -3323,6 +3323,29 @@ Several packages are stored in
3323Read the file @file{etc/MORE.STUFF} for more information about 3323Read the file @file{etc/MORE.STUFF} for more information about
3324external packages. 3324external packages.
3325 3325
3326@node Spell-checkers
3327@section Spell-checkers
3328@cindex Spell-checker
3329@cindex Checking spelling
3330@cindex Ispell
3331@cindex Aspell
3332@cindex Hunspell
3333
3334Various spell-checkers are compatible with Emacs, including:
3335
3336@table @b
3337
3338@item GNU Aspell
3339@uref{http://aspell.net/}
3340
3341@item Ispell
3342@uref{http://fmg-www.cs.ucla.edu/geoff/ispell.html}
3343
3344@item Hunspell
3345@uref{http://hunspell.sourceforge.net/}
3346
3347@end table
3348
3326@node Current GNU distributions 3349@node Current GNU distributions
3327@section Where can I get other up-to-date GNU stuff? 3350@section Where can I get other up-to-date GNU stuff?
3328@cindex Current GNU distributions 3351@cindex Current GNU distributions
@@ -3443,124 +3466,6 @@ Beginning with version 22.1, Emacs supports Mac OS X natively.
3443See the file @file{nextstep/INSTALL} in the distribution. 3466See the file @file{nextstep/INSTALL} in the distribution.
3444 3467
3445@c ------------------------------------------------------------ 3468@c ------------------------------------------------------------
3446@node Major packages and programs
3447@chapter Major packages and programs
3448@cindex Major packages and programs
3449
3450@menu
3451* VM::
3452* AUCTeX::
3453* BBDB::
3454* Spell-checkers::
3455* Emacs/W3::
3456* EDB::
3457* JDEE::
3458@end menu
3459
3460@node VM
3461@section VM (View Mail) --- another mail reader within Emacs, with MIME support
3462@cindex VM
3463@cindex Alternative mail software
3464@cindex View Mail
3465@cindex E-mail reader, VM
3466
3467@table @b
3468
3469@item Web site
3470@uref{http://launchpad.net/vm}
3471(was @uref{http://www.nongnu.org/viewmail/})
3472
3473@item Informational newsgroup
3474@uref{news:gnu.emacs.vm.info}@*
3475
3476@item Bug reports newsgroup
3477@uref{news:gnu.emacs.vm.bug}@*
3478@end table
3479
3480VM was originally written by @uref{http://www.wonderworks.com/vm/,Kyle Jones}.
3481@uref{ftp://ftp.wonderworks.com/pub/vm/,Older versions} of VM remain
3482available.
3483
3484
3485@node AUCTeX
3486@section AUC@TeX{} --- enhanced @TeX{} modes with debugging facilities
3487@cindex Mode for @TeX{}
3488@cindex @TeX{} mode
3489@cindex AUC@TeX{} mode for editing @TeX{}
3490@cindex Writing and debugging @TeX{}
3491
3492AUC@TeX{} is a set of sophisticated major modes for @TeX{}, LaTeX,
3493ConTeXt, and Texinfo offering context-sensitive syntax highlighting,
3494indentation, formatting and folding, macro completion, @TeX{} shell
3495functionality, and debugging. Be also sure to check out
3496@ref{Introduction, RefTeX, Introduction, reftex, Ref@TeX{} User Manual}.
3497Current versions of AUC@TeX{} include the
3498@uref{http://www.gnu.org/software/auctex/preview-latex.html,preview-latex}
3499package for WYSIWYG previews of various LaTeX constructs in the Emacs
3500source buffer.
3501
3502@uref{http://www.gnu.org/software/auctex/, AUCTeX}
3503
3504@node BBDB
3505@section BBDB --- personal Info Rolodex integrated with mail/news readers
3506@cindex BBDB
3507@cindex Rolodex-like functionality
3508@cindex Integrated contact database
3509@cindex Contact database
3510@cindex Big Brother Database
3511@cindex Address book
3512
3513@uref{http://bbdb.sourceforge.net/, The Insidious Big Brother Database}
3514
3515@node Spell-checkers
3516@section Spell-checkers
3517@cindex Spell-checker
3518@cindex Checking spelling
3519@cindex Ispell
3520@cindex Aspell
3521@cindex Hunspell
3522
3523Various spell-checkers are compatible with Emacs, including:
3524
3525@table @b
3526
3527@item GNU Aspell
3528@uref{http://aspell.net/}
3529
3530@item Ispell
3531@uref{http://fmg-www.cs.ucla.edu/geoff/ispell.html}
3532
3533@item Hunspell
3534@uref{http://hunspell.sourceforge.net/}
3535
3536@end table
3537
3538@node Emacs/W3
3539@section Emacs/W3 --- A World Wide Web browser inside of Emacs
3540@cindex WWW browser
3541@cindex Web browser
3542@cindex HTML browser in Emacs
3543@cindex @code{w3-mode}
3544
3545@uref{http://www.gnu.org/software/w3/, Emacs/W3}
3546
3547@node EDB
3548@section EDB --- Database program for Emacs; replaces forms editing modes
3549@cindex EDB
3550@cindex Database
3551@cindex Forms mode
3552
3553@uref{http://gnuvola.org/software/edb/, The Emacs Database}
3554
3555@node JDEE
3556@section JDEE --- Integrated development environment for Java
3557@cindex Java development environment
3558@cindex Integrated Java development environment
3559@cindex JDEE
3560
3561@uref{http://jdee.sourceforge.net/, A Java Development Environment for Emacs}
3562
3563@c ------------------------------------------------------------
3564@node Key bindings 3469@node Key bindings
3565@chapter Key bindings 3470@chapter Key bindings
3566@cindex Key bindings 3471@cindex Key bindings