aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2012-04-27 11:10:38 +0800
committerChong Yidong2012-04-27 11:10:38 +0800
commita8e7d6d783219972c08fd49a3a2afaf26eb139c2 (patch)
tree5e86d23d9285389791dc8321d8a8a2ece2247bea
parentb360839071ef6c7a9e917fe57a4aaeb39138e8c0 (diff)
parentc5bb756916baa63cc663d68d4c24e5ad33a764e8 (diff)
downloademacs-a8e7d6d783219972c08fd49a3a2afaf26eb139c2.tar.gz
emacs-a8e7d6d783219972c08fd49a3a2afaf26eb139c2.zip
Merge changes from emacs-24 branch
-rw-r--r--admin/FOR-RELEASE4
-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
-rw-r--r--etc/ChangeLog6
-rw-r--r--etc/NEWS7
-rw-r--r--etc/ORG-NEWS948
-rw-r--r--etc/org/OrgOdtStyles.xml20
-rw-r--r--lisp/ChangeLog52
-rw-r--r--lisp/emacs-lisp/check-declare.el4
-rw-r--r--lisp/gnus/ChangeLog4
-rw-r--r--lisp/gnus/gnus.el4
-rw-r--r--lisp/mouse.el23
-rw-r--r--lisp/org/ChangeLog170
-rw-r--r--lisp/org/ob-python.el2
-rw-r--r--lisp/org/org-agenda.el2
-rw-r--r--lisp/org/org-clock.el2
-rw-r--r--lisp/org/org-faces.el10
-rw-r--r--lisp/org/org-footnote.el13
-rw-r--r--lisp/org/org-list.el77
-rw-r--r--lisp/org/org-mouse.el1
-rw-r--r--lisp/org/org-odt.el1
-rw-r--r--lisp/org/org-table.el4
-rw-r--r--lisp/org/org.el85
-rw-r--r--lisp/progmodes/gdb-mi.el30
-rw-r--r--lisp/progmodes/which-func.el4
-rw-r--r--lisp/select.el47
-rw-r--r--lisp/simple.el2
-rw-r--r--lisp/startup.el2
-rw-r--r--lisp/subr.el5
-rw-r--r--lisp/vc/vc-git.el2
-rw-r--r--lisp/window.el106
-rw-r--r--lisp/xml.el6
-rw-r--r--src/ChangeLog27
-rw-r--r--src/dispnew.c12
-rw-r--r--src/fileio.c12
-rw-r--r--src/keymap.c17
-rw-r--r--src/window.c5
-rw-r--r--src/xdisp.c5
-rw-r--r--src/xselect.c1
98 files changed, 2007 insertions, 795 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index ad427397524..f53b74e98c4 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -61,7 +61,7 @@ sk Miroslav Vaško
61 61
62** Consider bumping customize-changed-options-previous-release. 62** Consider bumping customize-changed-options-previous-release.
63 63
64** cusver-check from admin.el cam help find new defcustoms missing 64** cusver-check from admin.el can help find new defcustoms missing
65:version tags. 65:version tags.
66 66
67* BUGS 67* BUGS
@@ -229,7 +229,7 @@ syntax.texi cyd
229text.texi cyd 229text.texi cyd
230tips.texi rgm 230tips.texi rgm
231variables.texi cyd 231variables.texi cyd
232windows.texi 232windows.texi rgm (skimmed)
233 233
234 234
235Local variables: 235Local variables:
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
diff --git a/etc/ChangeLog b/etc/ChangeLog
index f2cdfb83c44..1200b991597 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,9 @@
12012-04-26 Jambunathan K <kjambunathan@gmail.com>
2
3 * org/OrgOdtStyles.xml (OrgDescriptionList): Modify style. With
4 this change, in a description list, if the description paragraph
5 spawns multiple lines then it will correctly indented.
6
12012-04-20 Glenn Morris <rgm@gnu.org> 72012-04-20 Glenn Morris <rgm@gnu.org>
2 8
3 * CONTRIBUTE: Expand a bit on copyright assignments. 9 * CONTRIBUTE: Expand a bit on copyright assignments.
diff --git a/etc/NEWS b/etc/NEWS
index 156933410ba..ce3cfe7accf 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -833,7 +833,7 @@ by default.
833(Its name is misleading, since it has nothing to do with MIME 833(Its name is misleading, since it has nothing to do with MIME
834attachments.) The old name is now an obsolete alias to the new name. 834attachments.) The old name is now an obsolete alias to the new name.
835 835
836** MH-E has been upgraded to MH-E version 8.3.1. 836** MH-E has been updated to MH-E version 8.3.1.
837See MH-E-NEWS for details. 837See MH-E-NEWS for details.
838 838
839** Modula-2 mode provides auto-indentation. 839** Modula-2 mode provides auto-indentation.
@@ -845,6 +845,9 @@ Completion is now performed via `completion-at-point', bound to C-M-i
845or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the 845or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the
846default), this performs tag completion. 846default), this performs tag completion.
847 847
848** Org mode has been updated to version 7.8.09.
849See ORG-NEWS for details.
850
848** Prolog mode has been completely revamped, with lots of additional 851** Prolog mode has been completely revamped, with lots of additional
849functionality such as more intelligent indentation, electricity, 852functionality such as more intelligent indentation, electricity,
850support for more variants, including Mercury, and a lot more. 853support for more variants, including Mercury, and a lot more.
@@ -1228,6 +1231,8 @@ So do `defcustom' and other forms that call `defvar' as a subroutine.
1228*** New function `special-variable-p' to check whether a variable is 1231*** New function `special-variable-p' to check whether a variable is
1229declared as dynamically bound. 1232declared as dynamically bound.
1230 1233
1234*** The form ((lambda ...) ...) is deprecated.
1235
1231** An Emacs Lisp testing tool is now included. 1236** An Emacs Lisp testing tool is now included.
1232Emacs Lisp developers can use this tool to write automated tests for 1237Emacs Lisp developers can use this tool to write automated tests for
1233their code. See the ERT info manual for details. 1238their code. See the ERT info manual for details.
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
new file mode 100644
index 00000000000..a6b31cf1249
--- /dev/null
+++ b/etc/ORG-NEWS
@@ -0,0 +1,948 @@
1ORG NEWS -- history of user-visible changes. -*- org -*-
2
3Copyright (C) 2012 Free Software Foundation, Inc.
4See the end of the file for license conditions.
5
6Please send Org bug reports to emacs-orgmode@gnu.org.
7
8* Incompatible changes
9
10** New keys for TODO sparse trees
11 :PROPERTIES:
12 :OrgVersion: 7.01
13 :END:
14
15 The key =C-c C-v= is now reserved for Org Babel action. TODO sparse
16 trees can still be made with =C-c / t= (all not-done states) and =C-c /
17 T= (specific states).
18
19** The Agenda =org-agenda-ndays= is now obsolete
20 :PROPERTIES:
21 :OrgVersion: 7.4
22 :END:
23
24 The variable =org-agenda-ndays= is obsolete - please use
25 =org-agenda-span= instead.
26
27 Thanks to Julien Danjou for this.
28
29** Changes to the intended use of =org-export-latex-classes=
30 :PROPERTIES:
31 :OrgVersion: 6.35
32 :END:
33
34 So far this variable has been used to specify the complete header of the
35 LaTeX document, including all the =\usepackage= calls necessary for the
36 document. This setup makes it difficult to maintain the list of
37 packages that Org itself would like to call, for example for the special
38 symbol support it needs.
39
40 First of all, you can *opt out of this change* in the following way: You
41 can say: /I want to have full control over headers, and I will take
42 responsibility to include the packages Org needs/. If that is what you
43 want, add this to your configuration and skip the rest of this section
44 (except maybe for the description of the =[EXTRA]= place holder):
45
46 #+begin_src emacs-lisp
47 (setq org-export-latex-default-packages-alist nil
48 org-export-latex-packages-alist nil)
49 #+end_src
50
51 /Continue to read here if you want to go along with the modified setup./
52
53 There are now two variables that should be used to list the LaTeX
54 packages that need to be included in all classes. The header definition
55 in =org-export-latex-classes= should then not contain the corresponding
56 =\usepackage= calls (see below).
57
58 The two new variables are:
59
60 1. =org-export-latex-default-packages-alist= :: This is the variable
61 where Org-mode itself puts the packages it needs. Normally you
62 should not change this variable. The only reason to change it
63 anyway is when one of these packages causes a conflict with another
64 package you want to use. Then you can remove that packages and
65 hope that you are not using Org-mode functionality that needs it.
66
67 2. =org-export-latex-packages-alist= :: This is the variable where you
68 can put the packages that you'd like to use across all classes.
69
70 The sequence how these customizations will show up in the LaTeX
71 document are:
72
73 1. Header from =org-export-latex-classes=
74 2. =org-export-latex-default-packages-alist=
75 3. =org-export-latex-packages-alist=
76 4. Buffer-specific things set with =#+LaTeX_HEADER:=
77
78 If you want more control about which segment is placed where, or if you
79 want, for a specific class, have full control over the header and
80 exclude some of the automatic building blocks, you can put the following
81 macro-like place holders into the header:
82
83 #+begin_example
84 [DEFAULT-PACKAGES] \usepackage statements for default packages
85 [NO-DEFAULT-PACKAGES] do not include any of the default packages
86 [PACKAGES] \usepackage statements for packages
87 [NO-PACKAGES] do not include the packages
88 [EXTRA] the stuff from #+LaTeX_HEADER
89 [NO-EXTRA] do not include #+LaTeX_HEADER stuff
90 #+end_example
91
92 If you have currently customized =org-export-latex-classes=, you should
93 revise that customization and remove any package calls that are covered
94 by =org-export-latex-default-packages-alist=. This applies to the
95 following packages:
96
97 - inputenc
98 - fontenc
99 - fixltx2e
100 - graphicx
101 - longtable
102 - float
103 - wrapfig
104 - soul
105 - t1enc
106 - textcomp
107 - marvosym
108 - wasysym
109 - latexsym
110 - amssymb
111 - hyperref
112
113 If one of these packages creates a conflict with another package you are
114 using, you can remove it from =org-export-latex-default-packages-alist=.
115 But then you risk that some of the advertised export features of Org
116 will not work properly.
117
118 You can also consider moving packages that you use in all classes to
119 =org-export-latex-packages-alist=. If necessary, put the place holders
120 so that the packages get loaded in the right sequence. As said above,
121 for backward compatibility, if you omit the place holders, all the
122 variables will dump their content at the end of the header.
123
124** The constant =org-html-entities= is obsolete
125 :PROPERTIES:
126 :OrgVersion: 6.35
127 :END:
128
129 Its content is now part of the new constant =org-entities=, which is
130 defined in the file org-entities.el. =org-html-entities= was an internal
131 variable, but it is possible that some users did write code using it.
132
133** `org-bbdb-anniversary-format-alist' has changed
134 :PROPERTIES:
135 :OrgVersion: 7.5
136 :END:
137
138 Please check the docstring and update your settings accordingly.
139
140** Deleted =org-mode-p=
141 :PROPERTIES:
142 :OrgVersion: 7.8
143 :END:
144
145 This function has been deleted: please update your code.
146
147* Important new features
148
149** New Org to ODT exporter
150 :PROPERTIES:
151 :OrgVersion: 7.8
152 :END:
153
154 Jambunathan's Org to ODT exporter is now part of Org.
155
156 To use it, it `C-c C-e o' in an Org file. See the documentation for more
157 information on how to customize it.
158
159** org-capture.el is now the default capture system
160 :PROPERTIES:
161 :OrgVersion: 7.01
162 :END:
163
164 This replaces the earlier system org-remember. The manual only describes
165 org-capture, but for people who prefer to continue to use org-remember,
166 we keep a static copy of the former manual section [[http://orgmode.org/org-remember.pdf][chapter about
167 remember]].
168
169 The new system has a technically cleaner implementation and more
170 possibilities for capturing different types of data. See [[http://thread.gmane.org/gmane.emacs.orgmode/26441/focus%3D26441][Carsten's
171 announcement]] for more details.
172
173 To switch over to the new system:
174
175 1. Run
176
177 : M-x org-capture-import-remember-templates RET
178
179 to get a translated version of your remember templates into the
180 new variable =org-capture-templates=. This will "mostly" work,
181 but maybe not for all cases. At least it will give you a good
182 place to modify your templates. After running this command,
183 enter the customize buffer for this variable with
184
185 : M-x customize-variable RET org-capture-templates RET
186
187 and convince yourself that everything is OK. Then save the
188 customization.
189
190 2. Bind the command =org-capture= to a key, similar to what you did
191 with org-remember:
192
193 : (define-key global-map "\C-cc" 'org-capture)
194
195 If your fingers prefer =C-c r=, you can also use this key once
196 you have decided to move over completely to the new
197 implementation. During a test time, there is nothing wrong
198 with using both system in parallel.
199
200* New libraries
201
202** New Org libraries
203*** org-eshell.el (Konrad Hinsen)
204 :PROPERTIES:
205 :OrgVersion: 7.8
206 :END:
207
208 Implement links to eshell buffers.
209
210*** org-special-blocks (Carsten Dominik)
211 :PROPERTIES:
212 :OrgVersion: 7.8
213 :END:
214
215This package generalizes the #+begin_foo and #+end_foo tokens.
216
217To use, put the following in your init file:
218
219#+BEGIN_EXAMPLE
220(require 'org-special-blocks)
221#+END_EXAMPLE
222
223The tokens #+begin_center, #+begin_verse, etc. existed previously. This
224package generalizes them (at least for the LaTeX and html exporters). When
225a #+begin_foo token is encountered by the LaTeX exporter, it is expanded
226into \begin{foo}. The text inside the environment is not protected, as
227text inside environments generally is. When #+begin_foo is encountered by
228the html exporter, a div with class foo is inserted into the HTML file. It
229is up to the user to add this class to his or her stylesheet if this div is
230to mean anything.
231
232*** org-taskjuggler.el (Christian Egli)
233 :PROPERTIES:
234 :OrgVersion: 7.01
235 :END:
236
237 Christian Egli's /org-taskjuggler.el/ module is now part of Org. He
238 also wrote a [[http://orgmode.org/worg/org-tutorials/org-taskjuggler.php][tutorial]] for it.
239
240*** org-ctags.el (Paul Sexton)
241 :PROPERTIES:
242 :OrgVersion: 6.34
243 :END:
244
245 Targets like =<<my target>>= can now be found by Emacs' etag
246 functionality, and Org-mode links can be used to to link to etags, also
247 in non-Org-mode files. For details, see the file /org-ctags.el/.
248
249 This feature uses a new hook =org-open-link-functions= which will call
250 function to do something special with text links.
251
252 Thanks to Paul Sexton for this contribution.
253
254*** org-docview.el (Jan Böcker)
255 :PROPERTIES:
256 :OrgVersion: 6.34
257 :END:
258
259 This new module allows links to various file types using docview, where
260 Emacs displays images of document pages. Docview link types can point
261 to a specific page in a document, for example to page 131 of the
262 Org-mode manual:
263
264 : [[docview:~/.elisp/org/doc/org.pdf::131][Org-Mode Manual]]
265
266 Thanks to Jan Böcker for this contribution.
267
268** New Babel libraries
269
270- ob-picolisp.el (Thorsten Jolitz)
271- ob-fortran.el (Sergey Litvinov)
272- ob-shen.el (Eric Schulte)
273- ob-maxima.el (Eric S Fraga)
274- ob-java.el (Eric Schulte)
275- ob-lilypond.el (Martyn Jago)
276- ob-awk.el (Eric Schulte)
277
278* Other new features and various enhancements
279
280** Hyperlinks
281
282*** Org-Bibtex -- major improvements
283 :PROPERTIES:
284 :OrgVersion: 7.6
285 :END:
286
287 Provides support for managing bibtex bibliographical references
288 data in headline properties. Each headline corresponds to a
289 single reference and the relevant bibliographic meta-data is
290 stored in headline properties, leaving the body of the headline
291 free to hold notes and comments. Org-bibtex is aware of all
292 standard bibtex reference types and fields.
293
294 The key new functions are
295
296- org-bibtex-check :: queries the user to flesh out all required
297 (and with prefix argument optional) bibtex fields available
298 for the specific reference =type= of the current headline.
299
300- org-bibtex-create :: Create a new entry at the given level,
301 using org-bibtex-check to flesh out the relevant fields.
302
303- org-bibtex-yank :: Yank a bibtex entry on the kill ring as a
304 formatted Org-mode headline into the current buffer
305
306- org-bibtex-export-to-kill-ring :: Export the current headline
307 to the kill ring as a formatted bibtex entry.
308
309
310
311*** org-gnus.el now allows link creation from messages
312 :PROPERTIES:
313 :OrgVersion: 7.5
314 :END:
315
316 You can now create links from messages. This is particularily
317 useful when the user wants to stored messages that he sends, for
318 later check. Thanks to Ulf Stegemann for the patch.
319
320
321
322*** Modified link escaping
323 :PROPERTIES:
324 :OrgVersion: 7.5
325 :END:
326
327 David Maus worked on `org-link-escape'. See [[http://article.gmane.org/gmane.emacs.orgmode/37888][his message]]:
328
329: Percent escaping is used in Org mode to escape certain characters
330: in links that would either break the parser (e.g. square brackets
331: in link target oder description) or are not allowed to appear in
332: a particular link type (e.g. non-ascii characters in a http:
333: link).
334:
335: With this change in place Org will apply percent escaping and
336: unescaping more consistently especially for non-ascii characters.
337: Additionally some of the outstanding bugs or glitches concerning
338: percent escaped links are solved.
339
340 Thanks a lot to David for this work.
341
342
343
344*** Make =org-store-link= point to directory in a dired buffer
345 :PROPERTIES:
346 :OrgVersion: 6.35
347 :END:
348
349 When, in a dired buffer, the cursor is not in a line listing a
350 file, `org-store-link' will store a link to the directory.
351
352 Patch by Stephen Eglen.
353
354
355
356*** Allow regexps in =org-file-apps= to capture link parameters
357 :PROPERTIES:
358 :OrgVersion: 6.35
359 :END:
360
361 The way extension regexps in =org-file-apps= are handled has
362 changed. Instead of matching against the file name, the regexps
363 are now matched against the whole link, and you can use grouping
364 to extract link parameters which you can then use in a command
365 string to be executed.
366
367 For example, to allow linking to PDF files using the syntax
368 =file:/doc.pdf::<page number>=, you can add the following entry to
369 org-file-apps:
370
371 #+begin_example
372 Extension: \.pdf::\([0-9]+\)\'
373 Command: evince "%s" -p %1
374 #+end_example
375
376 Thanks to Jan Böcker for a patch to this effect.
377
378** Dates and time
379
380*** Allow relative time when scheduling/adding a deadline
381 :PROPERTIES:
382 :OrgVersion: 7.7
383 :END:
384
385 You can now use relative duration strings like "-2d" or "++3w"
386 when calling =org-schedule= or =org-deadline=: it will schedule
387 (or set the deadline for) the item respectively two days before
388 today and three weeks after the current timestamp, if any.
389
390 You can use this programmatically: =(org-schedule nil "+2d")=
391 will work on the current entry.
392
393 You can also use this while (bulk-)rescheduling and
394 (bulk-)resetting the deadline of (several) items from the agenda.
395
396 Thanks to Memnon Anon for a heads up about this!
397
398
399
400
401*** American-style dates are now understood by =org-read-date=
402 :PROPERTIES:
403 :OrgVersion: 6.35
404 :END:
405
406 So when you are prompted for a date, you can now answer like this
407
408 #+begin_example
409 2/5/3 --> 2003-02-05
410 2/5 --> <CURRENT-YEAR>-02-05
411 #+end_example
412
413** Agenda
414
415*** =org-agenda-custom-commands= has a default value
416 :PROPERTIES:
417 :OrgVersion: 7.8
418 :END:
419
420 This option used to be `nil' by default. This now has a default
421 value, displaying an agenda and all TODOs. See the docstring for
422 details. Thanks to Carsten for this.
423
424
425*** Improved filtering through =org-agenda-to-appt=
426 :PROPERTIES:
427 :OrgVersion: 7.8
428 :END:
429
430 The new function allows the user to refine the scope of entries
431 to pass to =org-agenda-get-day-entries= and allows to filter out
432 entries using a function.
433
434 Thanks to Peter Münster for raising a related issue and to
435 Tassilo Horn for this idea. Also thanks to Peter Münster for
436 [[git:68ffb7a7][fixing a small bug]] in the final implementation.
437
438
439
440*** Allow ap/pm times in agenda time grid
441 :PROPERTIES:
442 :OrgVersion: 7.4
443 :END:
444
445 Times in the agenda can now be displayed in am/pm format. See the new
446 variable =org-agenda-timegrid-use-ampm=. Thanks to C. A. Webber for
447 a patch to this effect.
448
449
450
451*** Agenda: Added a bulk "scattering" command
452 :PROPERTIES:
453 :OrgVersion: 7.4
454 :END:
455
456 =B S= in the agenda buffer will cause tasks to be rescheduled a random
457 number of days into the future, with 7 as the default. This is useful
458 if you've got a ton of tasks scheduled for today, you realize you'll
459 never deal with them all, and you just want them to be distributed
460 across the next N days. When called with a prefix arg, rescheduling
461 will avoid weekend days.
462
463 Thanks to John Wiegley for this.
464
465** Exporting
466
467*** Simplification of org-export-html-preamble/postamble
468 :PROPERTIES:
469 :OrgVersion: 7.5
470 :END:
471
472 When set to `t', export the preamble/postamble as usual, honoring the
473 =org-export-email/author/creator-info= variables.
474
475 When set to a formatting string, insert this string. See the docstring
476 of these variable for details about available %-sequences.
477
478 You can set =:html-preamble= in publishing project in the same way: `t'
479 means to honor =:email/creator/author-info=, and a formatting string
480 will insert a string.
481
482*** New exporters to Latin-1 and UTF-8
483 :PROPERTIES:
484 :OrgVersion: 6.35
485 :END:
486
487 While Ulf Stegemann was going through the entities list to improve the
488 LaTeX export, he had the great idea to provide representations for many
489 of the entities in Latin-1, and for all of them in UTF-8. This means
490 that we can now export files rich in special symbols to Latin-1 and to
491 UTF-8 files. These new exporters can be reached with the commands =C-c
492 C-e n= and =C-c C-e u=, respectively.
493
494 When there is no representation for a given symbol in the targeted
495 coding system, you can choose to keep the TeX-macro-like
496 representation, or to get an "explanatory" representation. For
497 example, =\simeq= could be represented as "[approx. equal to]". Please
498 use the variable =org-entities-ascii-explanatory= to state your
499 preference.
500
501*** HTML export: Add class to outline containers using property
502 :PROPERTIES:
503 :OrgVersion: 6.35
504 :END:
505
506 The =HTML_CONTAINER_CLASS= property can now be used to add a class name
507 to the outline container of a node in HTML export.
508
509*** Throw an error when creating an image from a LaTeX snippet fails
510 :PROPERTIES:
511 :OrgVersion: 6.35
512 :END:
513
514 This behavior can be configured with the new option variable
515 =org-format-latex-signal-error=.
516
517*** Support for creating BEAMER presentations from Org-mode documents
518 :PROPERTIES:
519 :OrgVersion: 6.34
520 :END:
521
522 Org-mode documents or subtrees can now be converted directly in to
523 BEAMER presentation. Turning a tree into a simple presentations is
524 straight forward, and there is also quite some support to make richer
525 presentations as well. See the [[http://orgmode.org/manual/Beamer-class-export.html#Beamer-class-export][BEAMER section]] in the manual for more
526 details.
527
528 Thanks to everyone who has contributed to the discussion about BEAMER
529 support and how it should work. This was a great example for how this
530 community can achieve a much better result than any individual could.
531
532** Refiling
533
534*** Refile targets can now be cached
535 :PROPERTIES:
536 :OrgVersion: 7.01
537 :END:
538
539 You can turn on caching of refile targets by setting the variable
540 =org-refile-use-cache=. This should speed up refiling if you have many
541 eligible targets in many files. If you need to update the cache
542 because Org misses a newly created entry or still offers a deleted one,
543 press =C-0 C-c C-w=.
544
545*** New logging support for refiling
546 :PROPERTIES:
547 :OrgVersion: 6.35
548 :END:
549
550 Whenever you refile an item, a time stamp and even a note can be added
551 to this entry. For details, see the new option =org-log-refile=.
552
553 Thanks to Charles Cave for this idea.
554
555** Completion
556
557*** In-buffer completion is now done using John Wiegleys pcomplete.el
558 :PROPERTIES:
559 :OrgVersion: 7.4
560 :END:
561
562 Thanks to John Wiegley for much of this code.
563
564** Tables
565
566*** New command =org-table-transpose-table-at-point=
567 :PROPERTIES:
568 :OrgVersion: 7.8
569 :END:
570
571 See the docstring. This hack from Juan Pechiar is now part of Org's
572 core. Thanks to Juan!
573
574*** Display field's coordinates when editing it with =C-c `=
575 :PROPERTIES:
576 :OrgVersion: 7.7
577 :END:
578
579 When editing a field with =C-c `=, the field's coordinate will the
580 displayed in the buffer.
581
582 Thanks to Michael Brand for a patch to this effect.
583
584*** Spreadsheet computation of durations and time values
585 :PROPERTIES:
586 :OrgVersion: 7.6
587 :END:
588
589 If you want to compute time values use the =T= flag, either in Calc
590 formulas or Elisp formulas:
591
592 | Task 1 | Task 2 | Total |
593 |--------+--------+---------|
594 | 35:00 | 35:00 | 1:10:00 |
595 #+TBLFM: @2$3=$1+$2;T
596
597 Values must be of the form =[HH:]MM:SS=, where hours are optional.
598
599 Thanks to Martin Halder, Eric Schulte and Carsten for code and feedback
600 on this.
601
602*** Implement formulas applying to field ranges
603 :PROPERTIES:
604 :OrgVersion: 7.5
605 :END:
606
607 Carsten implemented this field-ranges formulas.
608
609 : A frequently requested feature for tables has been to be able to define
610 : row formulas in a way similar to column formulas. The patch below allows
611 : things like
612 :
613 : @3=
614 : @2$2..@5$7=
615 : @I$2..@II$4=
616 :
617 : as the left hand side for table formulas in order to write a formula that
618 : is valid for an entire column or for a rectangular section in a
619 : table.
620
621 Thanks a lot to Carsten for this.
622
623*** Sending radio tables from org buffers is now allowed
624 :PROPERTIES:
625 :OrgVersion: 7.4
626 :END:
627
628 Org radio tables can no also be sent inside Org buffers. Also, there
629 is a new hook which get called after a table has been sent.
630
631 Thanks to Seweryn Kokot.
632
633** Lists
634
635*** Improved handling of lists
636 :PROPERTIES:
637 :OrgVersion: 7.5
638 :END:
639
640 Nicolas Goaziou extended and improved the way Org handles lists.
641
642 1. Indentation of text determines again end of items in lists. So, some
643 text less indented than the previous item doesn't close the whole
644 list anymore, only all items more indented than it.
645
646 2. Alphabetical bullets are implemented, through the use of the
647 variable `org-alphabetical-lists'. This also adds alphabetical
648 counters like [@c] or [@W].
649
650 3. Lists can now safely contain drawers, inline tasks, or various
651 blocks, themselves containing lists. Two variables are controlling
652 this: `org-list-forbidden-blocks', and `org-list-export-context'.
653
654 4. Improve `newline-and-indent' (C-j): used in an item, it will keep
655 text from moving at column 0. This allows to split text and make
656 paragraphs and still not break the list.
657
658 5. Improve `org-toggle-item' (C-c -): used on a region with standard
659 text, it will change the region into one item. With a prefix
660 argument, it will fallback to the previous behavior and make every
661 line in region an item. It permits to easily integrate paragraphs
662 inside a list.
663
664 6. `fill-paragraph' (M-q) now understands lists. It can freely be used
665 inside items, or on text just after a list, even with no blank line
666 around, without breaking list structure.
667
668 Thanks a lot to Nicolas for all this!
669
670** Inline display of linked images
671 :PROPERTIES:
672 :OrgVersion: 6.36
673 :END:
674
675 Images can now be displayed inline. The key C-c C-x C-v does toggle the
676 display of such images. Note that only image links that have no
677 description part will be inlined.
678
679** Implement offsets for ordered lists
680 :PROPERTIES:
681 :OrgVersion: 6.36
682 :END:
683
684 If you want to start an ordered plain list with a number different from
685 1, you can now do it like this:
686
687 : 1. [@start:12] will star a lit a number 12
688
689** Babel: code block body expansion for table and preview
690 :PROPERTIES:
691 :OrgVersion: 6.36
692 :END:
693
694 In org-babel, code is "expanded" prior to evaluation. I.e. the code that
695 is actually evaluated comprises the code block contents, augmented with
696 the extra code which assigns the referenced data to variables. It is now
697 possible to preview expanded contents, and also to expand code during
698 during tangling. This expansion takes into account all header arguments,
699 and variables.
700
701 A new key-binding `C-c M-b p' bound to `org-babel-expand-src-block' can
702 be used from inside of a source code block to preview its expanded
703 contents (which can be very useful for debugging). tangling
704
705 The expanded body can now be tangled, this includes variable values
706 which may be the results of other source-code blocks, or stored in
707 headline properties or tables. One possible use for this is to allow
708 those using org-babel for their emacs initialization to store values
709 (e.g. usernames, passwords, etc...) in headline properties or in tables.
710
711 Org-babel now supports three new header arguments, and new default
712 behavior for handling horizontal lines in tables (hlines), column names,
713 and rownames across all languages.
714
715** Editing Convenience and Appearance
716
717*** New command =org-copy-visible= (=C-c C-x v=)
718 :PROPERTIES:
719 :OrgVersion: 7.7
720 :END:
721
722 This command will copy the visible text in the region into the kill
723 ring. Thanks to Florian Beck for this function and to Carsten for
724 adding it to org.el and documenting it!
725
726*** Make it possible to protect hidden subtrees from being killed by =C-k=
727 :PROPERTIES:
728 :OrgVersion: 7.01
729 :END:
730
731 See the new variable =org-ctrl-k-protect-subtree=. This was a request
732 by Scott Otterson.
733
734*** Implement pretty display of entities, sub-, and superscripts.
735 :PROPERTIES:
736 :OrgVersion: 7.01
737 :END:
738
739 The command =C-c C-x \= toggles the display of Org's special entities
740 like =\alpha= as pretty unicode characters. Also, sub and superscripts
741 are displayed in a pretty way (raised/lower display, in a smaller
742 font). If you want to exclude sub- and superscripts, see the variable
743 =org-pretty-entities-include-sub-superscripts=.
744
745 Thanks to Eric Schulte and Ulf Stegeman for making this possible.
746
747*** New faces for title, date, author and email address lines
748 :PROPERTIES:
749 :OrgVersion: 6.35
750 :END:
751
752 The keywords in these lines are now dimmed out, and the title is
753 displayed in a larger font, and a special font is also used for author,
754 date, and email information. This is implemented by the following new
755 faces:
756
757 =org-document-title=
758 =org-document-info=
759 =org-document-info-keyword=
760
761 In addition, the variable =org-hidden-keywords= can be used to make the
762 corresponding keywords disappear.
763
764 Thanks to Dan Davison for this feature.
765
766*** Simpler way to specify faces for tags and todo keywords
767 :PROPERTIES:
768 :OrgVersion: 6.35
769 :END:
770
771 The variables =org-todo-keyword-faces=, =org-tag-faces=, and
772 =org-priority-faces= now accept simple color names as specifications.
773 The colors will be used as either foreground or background color for
774 the corresponding keyword. See also the variable
775 =org-faces-easy-properties=, which governs which face property is
776 affected by this setting.
777
778 This is really a great simplification for setting keyword faces. The
779 change is based on an idea and patch by Ryan Thompson.
780
781*** <N> in tables now means fixed width, not maximum width
782 :PROPERTIES:
783 :OrgVersion: 6.35
784 :END:
785
786 Requested by Michael Brand.
787
788*** Better level cycling function
789 :PROPERTIES:
790 :OrgVersion: 6.35
791 :END:
792
793 =TAB= in an empty headline cycles the level of that headline through
794 likely states. Ryan Thompson implemented an improved version of this
795 function, which does not depend upon when exactly this command is used.
796 Thanks to Ryan for this improvement.
797
798*** Adaptive filling
799 :PROPERTIES:
800 :OrgVersion: 6.35
801 :END:
802
803 For paragraph text, =org-adaptive-fill-function= did not handle the
804 base case of regular text which needed to be filled. This is now
805 fixed. Among other things, it allows email-style ">" comments to be
806 filled correctly.
807
808 Thanks to Dan Hackney for this patch.
809
810*** `org-reveal' (=C-c C-r=) also decrypts encrypted entries (org-crypt.el)
811 :PROPERTIES:
812 :OrgVersion: 6.35
813 :END:
814
815 Thanks to Richard Riley for triggering this change.
816
817*** Better automatic letter selection for TODO keywords
818 :PROPERTIES:
819 :OrgVersion: 6.35
820 :END:
821
822 When all first letters of keywords have been used, Org now assigns more
823 meaningful characters based on the keywords.
824
825 Thanks to Mikael Fornius for this patch.
826
827** Clocking
828
829*** Clock: Allow synchronous update of timestamps in CLOCK log
830 :PROPERTIES:
831 :OrgVersion: 7.7
832 :END:
833
834 Using =S-M-<up/down>= on CLOCK log timestamps will increase/decrease
835 the two timestamps on this line so that duration will keep the same.
836 Note that duration can still be slightly modified in case a timestamp
837 needs some rounding.
838
839 Thanks to Rainer Stengele for this idea.
840
841*** Localized clock tables
842 :PROPERTIES:
843 :OrgVersion: 7.5
844 :END:
845
846 Clock tables now support a new new =:lang= parameter, allowing the user
847 to customize the localization of the table headers. See the variable
848 =org-clock-clocktable-language-setup= which controls available
849 translated strings.
850
851*** Show clock overruns in mode line
852 :PROPERTIES:
853 :OrgVersion: 6.35
854 :END:
855
856 When clocking an item with a planned effort, overrunning the planned
857 time is now made visible in the mode line, for example using the new
858 face =org-mode-line-clock-overrun=, or by adding an extra string given
859 by =org-task-overrun-text=.
860
861 Thanks to Richard Riley for a patch to this effect.
862
863*** Clock reports can now include the running, incomplete clock
864 :PROPERTIES:
865 :OrgVersion: 6.35
866 :END:
867
868 If you have a clock running, and the entry being clocked falls into the
869 scope when creating a clock table, the time so far spent can be added
870 to the total. This behavior depends on the setting of
871 =org-clock-report-include-clocking-task=. The default is =nil=.
872
873 Thanks to Bernt Hansen for this useful addition.
874
875** Misc
876
877*** Improvements with inline tasks and indentation
878 :PROPERTIES:
879 :OrgVersion: 7.4
880 :END:
881
882 There is now a configurable way on how to export inline tasks. See the
883 new variable =org-inlinetask-export-templates=.
884
885 Thanks to Nicolas Goaziou for coding these changes.
886
887*** A property value of "nil" now means to unset a property
888 :PROPERTIES:
889 :OrgVersion: 7.01
890 :END:
891
892 This can be useful in particular with property inheritance, if some
893 upper level has the property, and some grandchild of it would like to
894 have the default settings (i.e. not overruled by a property) back.
895
896 Thanks to Robert Goldman and Bernt Hansen for suggesting this change.
897
898*** New helper functions in org-table.el
899 :PROPERTIES:
900 :OrgVersion: 6.35
901 :END:
902
903 There are new functions to access and write to a specific table field.
904 This is for hackers, and maybe for the org-babel people.
905
906 #+begin_example
907 org-table-get
908 org-table-put
909 org-table-current-line
910 org-table-goto-line
911 #+end_example
912
913*** Archiving: Allow to reverse order in target node
914 :PROPERTIES:
915 :OrgVersion: 6.35
916 :END:
917
918 The new option =org-archive-reversed-order= allows to have archived
919 entries inserted in a last-on-top fashion in the target node.
920
921 This was requested by Tom.
922
923*** Org-reveal: Double prefix arg shows the entire subtree of the parent
924 :PROPERTIES:
925 :OrgVersion: 6.35
926 :END:
927
928 This can help to get out of an inconsistent state produced for example
929 by viewing from the agenda.
930
931 This was a request by Matt Lundin.
932
933* License
934
935This file is part of GNU Emacs.
936
937GNU Emacs is free software: you can redistribute it and/or modify
938it under the terms of the GNU General Public License as published by
939the Free Software Foundation, either version 3 of the License, or
940(at your option) any later version.
941
942GNU Emacs is distributed in the hope that it will be useful,
943but WITHOUT ANY WARRANTY; without even the implied warranty of
944MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
945GNU General Public License for more details.
946
947You should have received a copy of the GNU General Public License
948along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
diff --git a/etc/org/OrgOdtStyles.xml b/etc/org/OrgOdtStyles.xml
index 470b7b134a7..84125c96d8a 100644
--- a/etc/org/OrgOdtStyles.xml
+++ b/etc/org/OrgOdtStyles.xml
@@ -649,34 +649,34 @@
649 <!-- Description List --> 649 <!-- Description List -->
650 <text:list-style style:name="OrgDescriptionList"> 650 <text:list-style style:name="OrgDescriptionList">
651 <text:list-level-style-number text:level="1" style:num-format=""> 651 <text:list-level-style-number text:level="1" style:num-format="">
652 <style:list-level-properties text:space-before="0.635cm" text:min-label-width="0.635cm"/> 652 <style:list-level-properties text:space-before="0.635cm"/>
653 </text:list-level-style-number> 653 </text:list-level-style-number>
654 <text:list-level-style-number text:level="2" style:num-format=""> 654 <text:list-level-style-number text:level="2" style:num-format="">
655 <style:list-level-properties text:space-before="1.27cm" text:min-label-width="0.635cm"/> 655 <style:list-level-properties text:space-before="1.27cm"/>
656 </text:list-level-style-number> 656 </text:list-level-style-number>
657 <text:list-level-style-number text:level="3" style:num-format=""> 657 <text:list-level-style-number text:level="3" style:num-format="">
658 <style:list-level-properties text:space-before="1.905cm" text:min-label-width="0.635cm"/> 658 <style:list-level-properties text:space-before="1.905cm"/>
659 </text:list-level-style-number> 659 </text:list-level-style-number>
660 <text:list-level-style-number text:level="4" style:num-format=""> 660 <text:list-level-style-number text:level="4" style:num-format="">
661 <style:list-level-properties text:space-before="2.54cm" text:min-label-width="0.635cm"/> 661 <style:list-level-properties text:space-before="2.54cm"/>
662 </text:list-level-style-number> 662 </text:list-level-style-number>
663 <text:list-level-style-number text:level="5" style:num-format=""> 663 <text:list-level-style-number text:level="5" style:num-format="">
664 <style:list-level-properties text:space-before="3.175cm" text:min-label-width="0.635cm"/> 664 <style:list-level-properties text:space-before="3.175cm"/>
665 </text:list-level-style-number> 665 </text:list-level-style-number>
666 <text:list-level-style-number text:level="6" style:num-format=""> 666 <text:list-level-style-number text:level="6" style:num-format="">
667 <style:list-level-properties text:space-before="3.81cm" text:min-label-width="0.635cm"/> 667 <style:list-level-properties text:space-before="3.81cm"/>
668 </text:list-level-style-number> 668 </text:list-level-style-number>
669 <text:list-level-style-number text:level="7" style:num-format=""> 669 <text:list-level-style-number text:level="7" style:num-format="">
670 <style:list-level-properties text:space-before="4.445cm" text:min-label-width="0.635cm"/> 670 <style:list-level-properties text:space-before="4.445cm"/>
671 </text:list-level-style-number> 671 </text:list-level-style-number>
672 <text:list-level-style-number text:level="8" style:num-format=""> 672 <text:list-level-style-number text:level="8" style:num-format="">
673 <style:list-level-properties text:space-before="5.08cm" text:min-label-width="0.635cm"/> 673 <style:list-level-properties text:space-before="5.08cm"/>
674 </text:list-level-style-number> 674 </text:list-level-style-number>
675 <text:list-level-style-number text:level="9" style:num-format=""> 675 <text:list-level-style-number text:level="9" style:num-format="">
676 <style:list-level-properties text:space-before="5.715cm" text:min-label-width="0.635cm"/> 676 <style:list-level-properties text:space-before="5.715cm"/>
677 </text:list-level-style-number> 677 </text:list-level-style-number>
678 <text:list-level-style-number text:level="10" style:num-format=""> 678 <text:list-level-style-number text:level="10" style:num-format="">
679 <style:list-level-properties text:space-before="6.35cm" text:min-label-width="0.635cm"/> 679 <style:list-level-properties text:space-before="6.35cm"/>
680 </text:list-level-style-number> 680 </text:list-level-style-number>
681 </text:list-style> 681 </text:list-style>
682 682
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 0b0065f520e..f88a386178f 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,7 +1,57 @@
12012-04-27 Chong Yidong <cyd@gnu.org> 12012-04-27 Chong Yidong <cyd@gnu.org>
2 2
3 * subr.el (read-key): Avoid running filter function when setting
4 up temporary tool bar entries (Bug#9922).
5
62012-04-27 Andreas Schwab <schwab@linux-m68k.org>
7
8 * vc/vc-git.el (vc-git-state): Fix regexp matching diff output.
9 (Bug#11344)
10
112012-04-27 Chong Yidong <cyd@gnu.org>
12
13 * select.el (xselect--encode-string): New function, split from
14 xselect-convert-to-string.
15 (xselect-convert-to-string): Use it.
16 (xselect-convert-to-filename, xselect-convert-to-os)
17 (xselect-convert-to-host, xselect-convert-to-user): Ensure that
18 returned strings are properly encoded (Bug#11315).
19
202012-04-27 Chong Yidong <cyd@gnu.org>
21
22 * simple.el (delete-active-region): Move to killing custom group.
23
242012-04-27 Andreas Schwab <schwab@linux-m68k.org>
25
26 * progmodes/which-func.el (which-func-current): Quote %
27 characters for mode-line processing.
28
292012-04-21 Chong Yidong <cyd@gnu.org>
30
31 * xml.el (xml-parse-region, xml-parse-tag): Avoid errors due to
32 reaching eob (Bug#11286).
33
342012-04-27 Eli Zaretskii <eliz@gnu.org>
35
36 * progmodes/gdb-mi.el (gdb-control-level): New variable.
37 (gdb): Make it buffer-local and init to zero.
38 (gdb-control-commands-regexp): New variable.
39 (gdb-send): Don't wrap in "-interpreter-exec console" if
40 gdb-control-level is positive. Increment gdb-control-level
41 whenever the command matches gdb-control-commands-regexp, and
42 decrement it each time the command is "end". (Bug#11279)
43
442012-04-27 Martin Rudalics <rudalics@gmx.at>
45
46 * window.el (adjust-window-trailing-edge, enlarge-window)
47 (shrink-window, window-resize):
48 * mouse.el (mouse-drag-line): Fix resizing of minibuffer
49 windows (Bug#11276).
50
512012-04-27 Chong Yidong <cyd@gnu.org>
52
3 * progmodes/pascal.el (pascal--extra-indent): Rename from ind, to 53 * progmodes/pascal.el (pascal--extra-indent): Rename from ind, to
4 fix "missig prefix" warning. All callers changed. 54 fix "missing prefix" warning. All callers changed.
5 55
62012-04-27 Stefan Monnier <monnier@iro.umontreal.ca> 562012-04-27 Stefan Monnier <monnier@iro.umontreal.ca>
7 57
diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el
index 3135b9b5827..d4213899ef6 100644
--- a/lisp/emacs-lisp/check-declare.el
+++ b/lisp/emacs-lisp/check-declare.el
@@ -1,6 +1,6 @@
1;;; check-declare.el --- Check declare-function statements 1;;; check-declare.el --- Check declare-function statements
2 2
3;; Copyright (C) 2007-2012 Free Software Foundation, Inc. 3;; Copyright (C) 2007-2012 Free Software Foundation, Inc.
4 4
5;; Author: Glenn Morris <rgm@gnu.org> 5;; Author: Glenn Morris <rgm@gnu.org>
6;; Keywords: lisp, tools, maint 6;; Keywords: lisp, tools, maint
@@ -28,7 +28,7 @@
28;; checks that all such statements in a file or directory are accurate. 28;; checks that all such statements in a file or directory are accurate.
29;; The entry points are `check-declare-file' and `check-declare-directory'. 29;; The entry points are `check-declare-file' and `check-declare-directory'.
30 30
31;; For more information, see Info node `elisp(Declaring Functions)'. 31;; For more information, see Info node `(elisp)Declaring Functions'.
32 32
33;;; TODO: 33;;; TODO:
34 34
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index e25ffd933e6..556094ca614 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,7 @@
12012-04-27 Andreas Schwab <schwab@linux-m68k.org>
2
3 * gnus.el (debbugs-gnu): Don't override existing autoload definition.
4
12012-04-26 Daiki Ueno <ueno@unixuser.org> 52012-04-26 Daiki Ueno <ueno@unixuser.org>
2 6
3 * plstore.el (plstore-called-interactively-p): New compat macro copied 7 * plstore.el (plstore-called-interactively-p): New compat macro copied
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index cc4f2eb1e7a..635bb6fc96f 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -4397,7 +4397,9 @@ prompt the user for the name of an NNTP server to use."
4397 (gnus-1 arg dont-connect slave) 4397 (gnus-1 arg dont-connect slave)
4398 (gnus-final-warning))) 4398 (gnus-final-warning)))
4399 4399
4400(autoload 'debbugs-gnu "debbugs-gnu") 4400(eval-and-compile
4401 (unless (fboundp 'debbugs-gnu)
4402 (autoload 'debbugs-gnu "debbugs-gnu" "List all outstanding Emacs bugs." t)))
4401(defun gnus-list-debbugs () 4403(defun gnus-list-debbugs ()
4402 "List all open Gnus bug reports." 4404 "List all open Gnus bug reports."
4403 (interactive) 4405 (interactive)
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 8e08f89f22c..46e50ed9508 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -403,13 +403,16 @@ must be one of the symbols header, mode, or vertical."
403 (or mouse-1-click-in-non-selected-windows 403 (or mouse-1-click-in-non-selected-windows
404 (eq window (selected-window))) 404 (eq window (selected-window)))
405 (mouse-on-link-p start))) 405 (mouse-on-link-p start)))
406 (enlarge-minibuffer 406 (resize-minibuffer
407 ;; Resize the minibuffer window if it's on the same frame as
408 ;; and immediately below the position window and it's either
409 ;; active or `resize-mini-windows' is nil.
407 (and (eq line 'mode) 410 (and (eq line 'mode)
408 (not resize-mini-windows)
409 (eq (window-frame minibuffer-window) frame) 411 (eq (window-frame minibuffer-window) frame)
410 (not (one-window-p t frame))
411 (= (nth 1 (window-edges minibuffer-window)) 412 (= (nth 1 (window-edges minibuffer-window))
412 (nth 3 (window-edges window))))) 413 (nth 3 (window-edges window)))
414 (or (not resize-mini-windows)
415 (eq minibuffer-window (active-minibuffer-window)))))
413 (which-side 416 (which-side
414 (and (eq line 'vertical) 417 (and (eq line 'vertical)
415 (or (cdr (assq 'vertical-scroll-bars (frame-parameters frame))) 418 (or (cdr (assq 'vertical-scroll-bars (frame-parameters frame)))
@@ -424,7 +427,7 @@ must be one of the symbols header, mode, or vertical."
424 ((eq line 'mode) 427 ((eq line 'mode)
425 ;; Check whether mode-line can be dragged at all. 428 ;; Check whether mode-line can be dragged at all.
426 (when (and (window-at-side-p window 'bottom) 429 (when (and (window-at-side-p window 'bottom)
427 (not enlarge-minibuffer)) 430 (not resize-minibuffer))
428 (setq done t))) 431 (setq done t)))
429 ((eq line 'vertical) 432 ((eq line 'vertical)
430 ;; Get the window to adjust for the vertical case. 433 ;; Get the window to adjust for the vertical case.
@@ -498,13 +501,9 @@ must be one of the symbols header, mode, or vertical."
498 ;; Remember that we dragged. 501 ;; Remember that we dragged.
499 (setq dragged t)) 502 (setq dragged t))
500 503
501 (cond 504 (if (eq line 'mode)
502 (enlarge-minibuffer 505 (adjust-window-trailing-edge window growth)
503 (adjust-window-trailing-edge window growth)) 506 (adjust-window-trailing-edge window (- growth))))))
504 ((eq line 'mode)
505 (adjust-window-trailing-edge window growth))
506 (t
507 (adjust-window-trailing-edge window (- growth)))))))
508 507
509 ;; Presumably, if this was just a click, the last event should be 508 ;; Presumably, if this was just a click, the last event should be
510 ;; `mouse-1', whereas if this did move the mouse, it should be a 509 ;; `mouse-1', whereas if this did move the mouse, it should be a
diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog
index 86f493a0a5b..c340fd45df3 100644
--- a/lisp/org/ChangeLog
+++ b/lisp/org/ChangeLog
@@ -1,3 +1,67 @@
12012-04-27 Nicolas Goaziou <n.goaziou@gmail.com>
2
3 * org-table.el (org-table-number-fraction): Fix typo.
4
52012-04-27 Eric Schulte <eric.schulte@gmx.com>
6
7 * ob-python.el (org-babel-execute:python): Ensure newline precedes
8 automatically-added returns.
9
102012-04-27 Nicolas Goaziou <n.goaziou@gmail.com>
11
12 * org-mouse.el (org-mode-hook): Do not move point when clicking on
13 a footnote reference.
14
152012-04-27 Bastien Guerry <bzg@gnu.org>
16
17 * org-faces.el (org-date-selected): Fix docstring.
18
192012-04-27 Nicolas Goaziou <n.goaziou@gmail.com>
20
21 * org-list.el (org-list-struct-indent): Follow
22 `org-list-demote-modify-bullet' specifications for ordered
23 bullets.
24 (org-list-indent-item-generic, org-indent-item-tree)
25 (org-outdent-item-tree): Fix bug when operating on a region.
26 (org-outdent-item, org-indent-item): Allow to operate on a region.
27
28 * org.el (org-shiftmetaleft, org-shiftmetaright): Allow to operate
29 on a region.
30
312012-04-27 Nicolas Goaziou <n.goaziou@gmail.com>
32
33 * org-footnote.el (org-footnote-normalize): Fix positioning in
34 HTML export without a footnote section.
35
362012-04-27 Madan Ramakrishnan <madanr79@gmail.com> (tiny change)
37
38 * org-agenda.el (org-agenda-bulk-mark): Truly make arg optional as
39 advertised by the function.
40
412012-04-27 Zachary Kanfer <zkanfer@gmail.com> (tiny change)
42
43 * org.el (org-read-date-display): Fix bug when displaying the
44 overlay.
45
462012-04-27 Bastien Guerry <bzg@gnu.org>
47
48 * org.el (org-mode): Don't use `buffer-face-mode' by default.
49
502012-04-27 Bastien Guerry <bzg@gnu.org>
51
52 * org-faces.el (org-date-selected): New face.
53
542012-04-27 Jambunathan K <kjambunathan@gmail.com>
55
56 * org-odt.el (org-odt-format-org-link): Pay no heed to whether the
57 internal links destined for headlines provide a description or
58 not. In fact, the `org-store-link' and `org-insert-link' create
59 internal links which do have a description.
60
612012-04-27 Bastien Guerry <bzg@gnu.org>
62
63 * org-clock.el (org-program-exists): Fix docstring.
64
12012-04-14 Bastien Guerry <bzg@gnu.org> 652012-04-14 Bastien Guerry <bzg@gnu.org>
2 66
3 * org.el (org-point-at-end-of-empty-headline): Only try to match 67 * org.el (org-point-at-end-of-empty-headline): Only try to match
@@ -438,11 +502,6 @@
438 * org-attach.el (org-attach-store-link-p): Remove spurious quote 502 * org-attach.el (org-attach-store-link-p): Remove spurious quote
439 in customization form choice. 503 in customization form choice.
440 504
4412012-04-01 Tassilo Horn <tassilo@member.fsf.org>
442
443 * org-contacts.el (org-contacts-check-mail-address): Add missing
444 word to `y-or-n-p' question.
445
4462012-04-01 Eric Schulte <eric.schulte@gmx.com> 5052012-04-01 Eric Schulte <eric.schulte@gmx.com>
447 506
448 * ob-sh.el (org-babel-execute:sh): Pass all params to subroutine. 507 * ob-sh.el (org-babel-execute:sh): Pass all params to subroutine.
@@ -934,11 +993,6 @@
934 * org-footnote.el (org-footnote-normalize): Make sure that 993 * org-footnote.el (org-footnote-normalize): Make sure that
935 footnotes are moved to a single place during export. 994 footnotes are moved to a single place during export.
936 995
9372012-04-01 Bastien Guerry <bzg@gnu.org>
938
939 * org.el (org-cycle-internal-global): Prevent the display of
940 messages when cycling from with a Gnus article buffer.
941
9422012-04-01 Nicolas Goaziou <n.goaziou@gmail.com> 9962012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
943 997
944 * org-footnote.el (org-footnote-normalize): Ensure footnote 998 * org-footnote.el (org-footnote-normalize): Ensure footnote
@@ -1807,11 +1861,6 @@
1807 1861
18082012-01-03 Bastien Guerry <bzg@gnu.org> 18622012-01-03 Bastien Guerry <bzg@gnu.org>
1809 1863
1810 * org-drill.el (org-drill-leech-method, org-drill-scope)
1811 (org-drill-spaced-repetition-algorithm): Fix wrong :type spec.
1812
18132012-01-03 Bastien Guerry <bzg@gnu.org>
1814
1815 * org.el (org-property-re): Also match cumulating properties 1864 * org.el (org-property-re): Also match cumulating properties
1816 like ":prop+:". 1865 like ":prop+:".
1817 1866
@@ -5929,10 +5978,6 @@
5929 * ob-exp.el (org-babel-exp-in-export-file): Bind 5978 * ob-exp.el (org-babel-exp-in-export-file): Bind
5930 `org-link-search-inhibit-query' to t to inhibit prompts. 5979 `org-link-search-inhibit-query' to t to inhibit prompts.
5931 5980
59322011-07-28 Julien Danjou <julien@danjou.info>
5933
5934 * org-contacts.el: Merge org-contacts-wl.el.
5935
59362011-07-28 Carsten Dominik <carsten.dominik@gmail.com> 59812011-07-28 Carsten Dominik <carsten.dominik@gmail.com>
5937 5982
5938 * org-exp.el (org-export-add-options-to-plist): Use the right 5983 * org-exp.el (org-export-add-options-to-plist): Use the right
@@ -5967,10 +6012,6 @@
5967 * org-agenda.el (org-agenda-open-link): Pass entire text of agenda 6012 * org-agenda.el (org-agenda-open-link): Pass entire text of agenda
5968 line to `org-offer-links-in-entry'. 6013 line to `org-offer-links-in-entry'.
5969 6014
59702011-07-28 Michael Markert <markert.michael@googlemail.com>
5971
5972 * org-contacts-wl.el: New file.
5973
59742011-07-28 Matt Lundin <mdl@imapmail.org> 60152011-07-28 Matt Lundin <mdl@imapmail.org>
5975 6016
5976 * org-bibtex.el (org-bibtex-search): New function. 6017 * org-bibtex.el (org-bibtex-search): New function.
@@ -6736,9 +6777,6 @@
6736 (org-agenda-open-link): Stop using prefix-length. 6777 (org-agenda-open-link): Stop using prefix-length.
6737 (org-agenda-change-all-lines): Stop using prefix-length. 6778 (org-agenda-change-all-lines): Stop using prefix-length.
6738 6779
6739 * org-colview-xemacs.el (org-columns-display-here): Stop using
6740 prefix-length. Always return claned items.
6741
6742 * org-colview.el (org-columns-display-here): Stop using 6780 * org-colview.el (org-columns-display-here): Stop using
6743 prefix-length. Always return claned items. 6781 prefix-length. Always return claned items.
6744 6782
@@ -13095,16 +13133,6 @@
13095 13133
13096 * org-capture.el (org-capture-templates): Fix customize type. 13134 * org-capture.el (org-capture-templates): Fix customize type.
13097 13135
130982010-11-11 Carsten Dominik <carsten.dominik@gmail.com>
13099
13100 * org-colview-xemacs.el (org-columns-compile-map):
13101 (org-columns-number-to-string):
13102 (org-columns-string-to-number): Handle estimate ranges.
13103 (org-estimate-mean-and-var): New function.
13104 (org-estimate-combine): New function.
13105 (org-estimate-print): New function.
13106 (org-string-to-estimate): New function.
13107
131082010-09-25 Juanma Barranquero <lekktu@gmail.com> 131362010-09-25 Juanma Barranquero <lekktu@gmail.com>
13109 13137
13110 * org.el (org-refile-targets): 13138 * org.el (org-refile-targets):
@@ -14132,9 +14160,6 @@
14132 * org-src.el (org-edit-src-find-region-and-lang): Test for 14160 * org-src.el (org-edit-src-find-region-and-lang): Test for
14133 table.el as late as possible. 14161 table.el as late as possible.
14134 14162
14135 * org-colview-xemacs.el: Make sure this file is never loaded into
14136 Emacs. Remove all tests for XEmacs.
14137
14138 * org-colview.el: Make sure this file is never loaded into XEmacs. 14163 * org-colview.el: Make sure this file is never loaded into XEmacs.
14139 14164
14140 * org-agenda.el (org-highlight, org-unhighlight): Use direct 14165 * org-agenda.el (org-highlight, org-unhighlight): Use direct
@@ -15497,9 +15522,6 @@
15497 * org-exp.el (org-export): Use "1" as a sign to export only the 15522 * org-exp.el (org-export): Use "1" as a sign to export only the
15498 subtree. 15523 subtree.
15499 15524
15500 * org-colview-xemacs.el (org-columns-edit-value):
15501 Use org-unrestricted property.
15502
15503 * org-colview.el (org-columns-edit-value): 15525 * org-colview.el (org-columns-edit-value):
15504 Use org-unrestricted property. 15526 Use org-unrestricted property.
15505 15527
@@ -15898,13 +15920,6 @@
15898 (org-agenda-colview-summarize): Handle extended summary types 15920 (org-agenda-colview-summarize): Handle extended summary types
15899 properly. 15921 properly.
15900 15922
15901 * org-colview-xemacs.el (org-columns-display-here): Don't try to
15902 calculate values if the underlying property is not set.
15903 (org-columns-string-to-number): Convert age strings back into
15904 fractional days.
15905 (org-agenda-colview-summarize): Handle extended summary types
15906 properly.
15907
159082009-11-13 Carsten Dominik <carsten.dominik@gmail.com> 159232009-11-13 Carsten Dominik <carsten.dominik@gmail.com>
15909 15924
15910 * org-exp.el (org-export-format-drawer-function): New variable. 15925 * org-exp.el (org-export-format-drawer-function): New variable.
@@ -16083,10 +16098,6 @@
16083 org-return-follows-link' is set and there is nothing else to do in 16098 org-return-follows-link' is set and there is nothing else to do in
16084 this line. 16099 this line.
16085 16100
160862009-11-13 James TD Smith <ahktenzero@mohorovi.cc>
16087
16088 * org-colview-xemacs.el: Add in changes from org-colview.el.
16089
160902009-11-13 Dan Davison <davison@stats.ox.ac.uk> 161012009-11-13 Dan Davison <davison@stats.ox.ac.uk>
16091 16102
16092 * org-exp-blocks.el: Modify split separator regexp to avoid empty 16103 * org-exp-blocks.el: Modify split separator regexp to avoid empty
@@ -17212,9 +17223,6 @@
17212 * org-colview.el (org-columns, org-columns-redo) 17223 * org-colview.el (org-columns, org-columns-redo)
17213 (org-agenda-columns): Don't use `goto-line'. 17224 (org-agenda-columns): Don't use `goto-line'.
17214 17225
17215 * org-colview-xemacs.el (org-columns, org-agenda-columns):
17216 Don't use `goto-line'.
17217
17218 * org-agenda.el (org-agenda-mode): Force visual line motion off. 17226 * org-agenda.el (org-agenda-mode): Force visual line motion off.
17219 (org-agenda-add-entry-text-maxlines): Improve docstring. 17227 (org-agenda-add-entry-text-maxlines): Improve docstring.
17220 (org-agenda-start-with-entry-text-mode): New option. 17228 (org-agenda-start-with-entry-text-mode): New option.
@@ -17319,10 +17327,6 @@
17319 * org-colview.el (org-columns-edit-value, org-columns-new) 17327 * org-colview.el (org-columns-edit-value, org-columns-new)
17320 (org-insert-columns-dblock): Use org-icompleting-read. 17328 (org-insert-columns-dblock): Use org-icompleting-read.
17321 17329
17322 * org-colview-xemacs.el (org-columns-edit-value)
17323 (org-columns-new, org-insert-columns-dblock):
17324 Use org-icompleting-read.
17325
17326 * org-attach.el (org-attach-delete-one, org-attach-open): 17330 * org-attach.el (org-attach-delete-one, org-attach-open):
17327 Use org-icompleting-read. 17331 Use org-icompleting-read.
17328 17332
@@ -18017,10 +18021,6 @@
18017 in column values. 18021 in column values.
18018 (org-columns-capture-view): Exclude comment and archived trees. 18022 (org-columns-capture-view): Exclude comment and archived trees.
18019 18023
18020 * org-colview-xemacs.el (org-columns-capture-view):
18021 Protect vertical bars in column values.
18022 (org-columns-capture-view): Exclude comment and archived trees.
18023
18024 * org.el (org-quote-vert): New function. 18024 * org.el (org-quote-vert): New function.
18025 18025
18026 * org-latex.el (org-export-latex-verbatim-wrap): New option. 18026 * org-latex.el (org-export-latex-verbatim-wrap): New option.
@@ -18209,9 +18209,6 @@
18209 * org-colview.el (org-dblock-write:columnview): Allow indented 18209 * org-colview.el (org-dblock-write:columnview): Allow indented
18210 #+TBLFM line. 18210 #+TBLFM line.
18211 18211
18212 * org-colview-xemacs.el (org-dblock-write:columnview):
18213 Allow indented #+TBLFM line.
18214
18215 * org-clock.el (org-dblock-write:clocktable): Allow indented 18212 * org-clock.el (org-dblock-write:clocktable): Allow indented
18216 #+TBLFM line. 18213 #+TBLFM line.
18217 18214
@@ -18288,9 +18285,6 @@
18288 18285
18289 * org.el (org-enable-priority-commands): New option. 18286 * org.el (org-enable-priority-commands): New option.
18290 18287
18291 * org-colview-xemacs.el (org-columns-compute)
18292 (org-columns-number-to-string): Fix problems with empty fields.
18293
18294 * org-colview.el (org-columns-compute) 18288 * org-colview.el (org-columns-compute)
18295 (org-columns-number-to-string): Fix problems with empty fields. 18289 (org-columns-number-to-string): Fix problems with empty fields.
18296 18290
@@ -18493,9 +18487,6 @@
18493 (org-export-region-as-latex): Use the property list. 18487 (org-export-region-as-latex): Use the property list.
18494 (org-export-as-latex): ???? 18488 (org-export-as-latex): ????
18495 18489
18496 * org-colview-xemacs.el (org-columns-remove-overlays)
18497 (org-columns): Fix call to `local-variable-p'.
18498
184992009-08-06 Carsten Dominik <carsten.dominik@gmail.com> 184902009-08-06 Carsten Dominik <carsten.dominik@gmail.com>
18500 18491
18501 * org-latex.el (org-export-latex-after-blockquotes-hook): New hook. 18492 * org-latex.el (org-export-latex-after-blockquotes-hook): New hook.
@@ -18931,12 +18922,6 @@
18931 (org-columns-remove-overlays): Restore the value of `truncate-lines'. 18922 (org-columns-remove-overlays): Restore the value of `truncate-lines'.
18932 (org-columns): Remember the value of `truncate-lines'. 18923 (org-columns): Remember the value of `truncate-lines'.
18933 18924
18934 * org-colview-xemacs.el (org-colview-initial-truncate-line-value):
18935 New variable.
18936 (org-columns-remove-overlays): Restore the value of
18937 `truncate-lines'.
18938 (org-columns): Remember the value of `truncate-lines'.
18939
18940 * org.el (org-columns-skip-arrchived-trees): New option. 18925 * org.el (org-columns-skip-arrchived-trees): New option.
18941 18926
18942 * org-agenda.el (org-agenda-export-html-style): Define color for 18927 * org-agenda.el (org-agenda-export-html-style): Define color for
@@ -19678,10 +19663,6 @@
19678 Better error catching when a date/time property does not have allowed 19663 Better error catching when a date/time property does not have allowed
19679 values defined. 19664 values defined.
19680 19665
19681 * org-colview-xemacs.el (org-colview-construct-allowed-dates):
19682 Better error catching when a date/time property does not have
19683 allowed values defined.
19684
196852009-01-25 Carsten Dominik <carsten.dominik@gmail.com> 196662009-01-25 Carsten Dominik <carsten.dominik@gmail.com>
19686 19667
19687 * org.el (org-map-entries): Restore point and restriction after 19668 * org.el (org-map-entries): Restore point and restriction after
@@ -20429,10 +20410,6 @@
20429 * org-colview.el (org-columns-edit-value, org-columns-new) 20410 * org-colview.el (org-columns-edit-value, org-columns-new)
20430 (org-insert-columns-dblock): Use `org-ido-completing-read'. 20411 (org-insert-columns-dblock): Use `org-ido-completing-read'.
20431 20412
20432 * org-colview-xemacs.el (org-columns-edit-value)
20433 (org-columns-new, org-insert-columns-dblock):
20434 Use `org-ido-completing-read'.
20435
20436 * org-attach.el (org-attach-delete-one, org-attach-open): 20413 * org-attach.el (org-attach-delete-one, org-attach-open):
20437 Use `org-ido-completing-read'. 20414 Use `org-ido-completing-read'.
20438 20415
@@ -21011,9 +20988,6 @@
21011 * org-colview.el (org-columns-get-format-and-top-level): 20988 * org-colview.el (org-columns-get-format-and-top-level):
21012 Remove resetting the marker. 20989 Remove resetting the marker.
21013 20990
21014 * org-colview-xemacs.el (org-columns-get-format-and-top-level):
21015 Remove resetting the marker.
21016
21017 * org.el (org-entry-property-inherited-from): Improve docstring. 20991 * org.el (org-entry-property-inherited-from): Improve docstring.
21018 (org-entry-get-with-inheritance): Reset marker before starting the 20992 (org-entry-get-with-inheritance): Reset marker before starting the
21019 search. 20993 search.
@@ -21188,11 +21162,6 @@
21188 (org-columns-next-allowed-value): 21162 (org-columns-next-allowed-value):
21189 Use `org-colview-construct-allowed-dates'. 21163 Use `org-colview-construct-allowed-dates'.
21190 21164
21191 * org-colview-xemacs.el (org-colview-construct-allowed-dates):
21192 New function.
21193 (org-columns-next-allowed-value):
21194 Use `org-colview-construct-allowed-dates'.
21195
21196 * org.el (org-protect-slash): New function. 21165 * org.el (org-protect-slash): New function.
21197 (org-get-refile-targets): Use `org-protect-slash'. 21166 (org-get-refile-targets): Use `org-protect-slash'.
21198 21167
@@ -21322,9 +21291,6 @@
21322 * org-colview.el (org-columns-display-here): 21291 * org-colview.el (org-columns-display-here):
21323 Use `org-columns-modify-value-for-display-function'. 21292 Use `org-columns-modify-value-for-display-function'.
21324 21293
21325 * org-colview-xemacs.el (org-columns-display-here):
21326 Use `org-columns-modify-value-for-display-function'.
21327
21328 * org.el (org-columns-modify-value-for-display-function): New option. 21294 * org.el (org-columns-modify-value-for-display-function): New option.
21329 21295
21330 * org-publish.el (org-publish-file): Make sure the directory match 21296 * org-publish.el (org-publish-file): Make sure the directory match
@@ -21515,8 +21481,6 @@
21515 21481
21516 * org-colview.el (org-columns-next-allowed-value): Bug fix. 21482 * org-colview.el (org-columns-next-allowed-value): Bug fix.
21517 21483
21518 * org-colview-xemacs.el (org-columns-next-allowed-value): Bug fix.
21519
21520 * org-agenda.el (org-agenda-get-closed): Get the end time into the 21484 * org-agenda.el (org-agenda-get-closed): Get the end time into the
21521 agenda prefix as well. 21485 agenda prefix as well.
21522 21486
@@ -21637,9 +21601,6 @@
21637 * org-colview.el (org-columns-next-allowed-value): Handle next 21601 * org-colview.el (org-columns-next-allowed-value): Handle next
21638 argument NTH to directly select a value. 21602 argument NTH to directly select a value.
21639 21603
21640 * org-colview-xemacs.el (org-columns-next-allowed-value): Handle next
21641 argument NTH to directly select a value.
21642
216432008-06-17 Carsten Dominik <dominik@science.uva.nl> 216042008-06-17 Carsten Dominik <dominik@science.uva.nl>
21644 21605
21645 * org-agenda.el (org-agenda-scheduled-leaders): Fix docstring. 21606 * org-agenda.el (org-agenda-scheduled-leaders): Fix docstring.
@@ -21783,9 +21744,6 @@
21783 * org-clock.el (org-clock-display, org-clock-out) 21744 * org-clock.el (org-clock-display, org-clock-out)
21784 (org-update-mode-line): Use `org-time-clocksum-format'. 21745 (org-update-mode-line): Use `org-time-clocksum-format'.
21785 21746
21786 * org-colview-xemacs.el (org-columns-number-to-string):
21787 Use `org-time-clocksum-format'.
21788
21789 * org-colview.el (org-columns-number-to-string): 21747 * org-colview.el (org-columns-number-to-string):
21790 Use `org-time-clocksum-format'. 21748 Use `org-time-clocksum-format'.
21791 21749
diff --git a/lisp/org/ob-python.el b/lisp/org/ob-python.el
index 0dc744aaa73..348248f35cf 100644
--- a/lisp/org/ob-python.el
+++ b/lisp/org/ob-python.el
@@ -64,7 +64,7 @@ This function is called by `org-babel-execute-src-block'."
64 (preamble (cdr (assoc :preamble params))) 64 (preamble (cdr (assoc :preamble params)))
65 (full-body 65 (full-body
66 (org-babel-expand-body:generic 66 (org-babel-expand-body:generic
67 (concat body (if return-val (format "return %s" return-val) "")) 67 (concat body (if return-val (format "\nreturn %s" return-val) ""))
68 params (org-babel-variable-assignments:python params))) 68 params (org-babel-variable-assignments:python params)))
69 (result (org-babel-python-evaluate 69 (result (org-babel-python-evaluate
70 session full-body result-type result-params preamble))) 70 session full-body result-type result-params preamble)))
diff --git a/lisp/org/org-agenda.el b/lisp/org/org-agenda.el
index 3bb0fc84897..ddb56ca4bac 100644
--- a/lisp/org/org-agenda.el
+++ b/lisp/org/org-agenda.el
@@ -8294,7 +8294,7 @@ This is a command that has to be installed in `calendar-mode-map'."
8294(defun org-agenda-bulk-mark (&optional arg) 8294(defun org-agenda-bulk-mark (&optional arg)
8295 "Mark the entry at point for future bulk action." 8295 "Mark the entry at point for future bulk action."
8296 (interactive "p") 8296 (interactive "p")
8297 (dotimes (i (max arg 1)) 8297 (dotimes (i (or arg 1))
8298 (unless (org-get-at-bol 'org-agenda-diary-link) 8298 (unless (org-get-at-bol 'org-agenda-diary-link)
8299 (let* ((m (org-get-at-bol 'org-hd-marker)) 8299 (let* ((m (org-get-at-bol 'org-hd-marker))
8300 ov) 8300 ov)
diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el
index 434f6a1d5f6..aabcfc187db 100644
--- a/lisp/org/org-clock.el
+++ b/lisp/org/org-clock.el
@@ -664,7 +664,7 @@ Use alsa's aplay tool if available."
664 (error (beep t) (beep t))))))))) 664 (error (beep t) (beep t)))))))))
665 665
666(defun org-program-exists (program-name) 666(defun org-program-exists (program-name)
667 "Checks whenever we can locate program and launch it." 667 "Checks whenever we can locate PROGRAM-NAME using the `which' executable."
668 (if (member system-type '(gnu/linux darwin)) 668 (if (member system-type '(gnu/linux darwin))
669 (= 0 (call-process "which" nil nil nil program-name)))) 669 (= 0 (call-process "which" nil nil nil program-name))))
670 670
diff --git a/lisp/org/org-faces.el b/lisp/org/org-faces.el
index 481d662eca1..58f879dd51a 100644
--- a/lisp/org/org-faces.el
+++ b/lisp/org/org-faces.el
@@ -285,6 +285,16 @@ column view defines special faces for each outline level. See the file
285 "Face for date/time stamps." 285 "Face for date/time stamps."
286 :group 'org-faces) 286 :group 'org-faces)
287 287
288(defface org-date-selected
289 (org-compatible-face nil
290 '((((class color) (min-colors 16) (background light)) (:foreground "Red1" :bold nil))
291 (((class color) (min-colors 16) (background dark)) (:foreground "Pink" :bold nil))
292 (((class color) (min-colors 8) (background light)) (:foreground "red" :bold nil))
293 (((class color) (min-colors 8) (background dark)) (:foreground "red" :bold nil))
294 (t (:inverse-video t))))
295 "Face for highlighting the calendar day when using `org-read-date'."
296 :group 'org-faces)
297
288(defface org-sexp-date 298(defface org-sexp-date
289 '((((class color) (background light)) (:foreground "Purple")) 299 '((((class color) (background light)) (:foreground "Purple"))
290 (((class color) (background dark)) (:foreground "Cyan")) 300 (((class color) (background dark)) (:foreground "Cyan"))
diff --git a/lisp/org/org-footnote.el b/lisp/org/org-footnote.el
index 9319e0813c0..a9ba8d7510b 100644
--- a/lisp/org/org-footnote.el
+++ b/lisp/org/org-footnote.el
@@ -716,8 +716,8 @@ Additional note on `org-footnote-insert-pos-for-preprocessor':
716 ((and org-footnote-section (eq major-mode 'org-mode)) 716 ((and org-footnote-section (eq major-mode 'org-mode))
717 (goto-char (point-min)) 717 (goto-char (point-min))
718 (if (re-search-forward 718 (if (re-search-forward
719 (concat "^\\*[ \t]+" (regexp-quote org-footnote-section) 719 (concat "^\\*[ \t]+" (regexp-quote org-footnote-section)
720 "[ \t]*$") nil t) 720 "[ \t]*$") nil t)
721 (delete-region (match-beginning 0) (org-end-of-subtree t t))) 721 (delete-region (match-beginning 0) (org-end-of-subtree t t)))
722 ;; A new footnote section is inserted by default at the end of 722 ;; A new footnote section is inserted by default at the end of
723 ;; the buffer. 723 ;; the buffer.
@@ -727,7 +727,14 @@ Additional note on `org-footnote-insert-pos-for-preprocessor':
727 (unless (bolp) (newline))) 727 (unless (bolp) (newline)))
728 ;; No footnote section set: Footnotes will be added at the end 728 ;; No footnote section set: Footnotes will be added at the end
729 ;; of the section containing their first reference. 729 ;; of the section containing their first reference.
730 ((eq major-mode 'org-mode)) 730 ;; Nevertheless, in an export situation, set insertion point to
731 ;; `point-max' by default.
732 ((eq major-mode 'org-mode)
733 (when export-props
734 (goto-char (point-max))
735 (skip-chars-backward " \r\t\n")
736 (forward-line)
737 (delete-region (point) (point-max))))
731 (t 738 (t
732 ;; Remove any left-over tag in the buffer, if one is set up. 739 ;; Remove any left-over tag in the buffer, if one is set up.
733 (when org-footnote-tag-for-non-org-mode-files 740 (when org-footnote-tag-for-non-org-mode-files
diff --git a/lisp/org/org-list.el b/lisp/org/org-list.el
index c3775888325..4498280ac77 100644
--- a/lisp/org/org-list.el
+++ b/lisp/org/org-list.el
@@ -1484,8 +1484,19 @@ bullets between START and END."
1484 (change-bullet-maybe 1484 (change-bullet-maybe
1485 (function 1485 (function
1486 (lambda (item) 1486 (lambda (item)
1487 (let* ((bul (org-trim (org-list-get-bullet item struct))) 1487 (let ((new-bul-p
1488 (new-bul-p (cdr (assoc bul org-list-demote-modify-bullet)))) 1488 (cdr (assoc
1489 ;; Normalize ordered bullets.
1490 (let ((bul (org-trim
1491 (org-list-get-bullet item struct))))
1492 (cond ((string-match "[A-Z]\\." bul) "A.")
1493 ((string-match "[A-Z])" bul) "A)")
1494 ((string-match "[a-z]\\." bul) "a.")
1495 ((string-match "[a-z])" bul) "a)")
1496 ((string-match "[0-9]\\." bul) "1.")
1497 ((string-match "[0-9])" bul) "1)")
1498 (t bul)))
1499 org-list-demote-modify-bullet))))
1489 (when new-bul-p (org-list-set-bullet item struct new-bul-p)))))) 1500 (when new-bul-p (org-list-set-bullet item struct new-bul-p))))))
1490 (ind 1501 (ind
1491 (lambda (cell) 1502 (lambda (cell)
@@ -2500,7 +2511,6 @@ STRUCT is the list structure.
2500 2511
2501Return t if successful." 2512Return t if successful."
2502 (save-excursion 2513 (save-excursion
2503 (beginning-of-line)
2504 (let* ((regionp (org-region-active-p)) 2514 (let* ((regionp (org-region-active-p))
2505 (rbeg (and regionp (region-beginning))) 2515 (rbeg (and regionp (region-beginning)))
2506 (rend (and regionp (region-end))) 2516 (rend (and regionp (region-end)))
@@ -2509,7 +2519,8 @@ Return t if successful."
2509 (prevs (org-list-prevs-alist struct)) 2519 (prevs (org-list-prevs-alist struct))
2510 ;; Are we going to move the whole list? 2520 ;; Are we going to move the whole list?
2511 (specialp 2521 (specialp
2512 (and (= top (point)) 2522 (and (not regionp)
2523 (= top (point-at-bol))
2513 (cdr (assq 'indent org-list-automatic-rules)) 2524 (cdr (assq 'indent org-list-automatic-rules))
2514 (if no-subtree 2525 (if no-subtree
2515 (error 2526 (error
@@ -2523,12 +2534,12 @@ Return t if successful."
2523 (progn 2534 (progn
2524 (set-marker org-last-indent-begin-marker rbeg) 2535 (set-marker org-last-indent-begin-marker rbeg)
2525 (set-marker org-last-indent-end-marker rend)) 2536 (set-marker org-last-indent-end-marker rend))
2526 (set-marker org-last-indent-begin-marker (point)) 2537 (set-marker org-last-indent-begin-marker (point-at-bol))
2527 (set-marker org-last-indent-end-marker 2538 (set-marker org-last-indent-end-marker
2528 (cond 2539 (cond
2529 (specialp (org-list-get-bottom-point struct)) 2540 (specialp (org-list-get-bottom-point struct))
2530 (no-subtree (1+ (point))) 2541 (no-subtree (1+ (point-at-bol)))
2531 (t (org-list-get-item-end (point) struct)))))) 2542 (t (org-list-get-item-end (point-at-bol) struct))))))
2532 (let* ((beg (marker-position org-last-indent-begin-marker)) 2543 (let* ((beg (marker-position org-last-indent-begin-marker))
2533 (end (marker-position org-last-indent-end-marker))) 2544 (end (marker-position org-last-indent-end-marker)))
2534 (cond 2545 (cond
@@ -2583,19 +2594,35 @@ Return t if successful."
2583 "Outdent a local list item, but not its children. 2594 "Outdent a local list item, but not its children.
2584If a region is active, all items inside will be moved." 2595If a region is active, all items inside will be moved."
2585 (interactive) 2596 (interactive)
2586 (if (org-at-item-p) 2597 (let ((regionp (org-region-active-p)))
2587 (let ((struct (org-list-struct))) 2598 (cond
2588 (org-list-indent-item-generic -1 t struct)) 2599 ((or (org-at-item-p)
2589 (error "Not at an item"))) 2600 (and regionp
2601 (save-excursion (goto-char (region-beginning))
2602 (org-at-item-p))))
2603 (let ((struct (if (not regionp) (org-list-struct)
2604 (save-excursion (goto-char (region-beginning))
2605 (org-list-struct)))))
2606 (org-list-indent-item-generic -1 t struct)))
2607 (regionp (error "Region not starting at an item"))
2608 (t (error "Not at an item")))))
2590 2609
2591(defun org-indent-item () 2610(defun org-indent-item ()
2592 "Indent a local list item, but not its children. 2611 "Indent a local list item, but not its children.
2593If a region is active, all items inside will be moved." 2612If a region is active, all items inside will be moved."
2594 (interactive) 2613 (interactive)
2595 (if (org-at-item-p) 2614 (let ((regionp (org-region-active-p)))
2596 (let ((struct (org-list-struct))) 2615 (cond
2597 (org-list-indent-item-generic 1 t struct)) 2616 ((or (org-at-item-p)
2598 (error "Not at an item"))) 2617 (and regionp
2618 (save-excursion (goto-char (region-beginning))
2619 (org-at-item-p))))
2620 (let ((struct (if (not regionp) (org-list-struct)
2621 (save-excursion (goto-char (region-beginning))
2622 (org-list-struct)))))
2623 (org-list-indent-item-generic 1 t struct)))
2624 (regionp (error "Region not starting at an item"))
2625 (t (error "Not at an item")))))
2599 2626
2600(defun org-outdent-item-tree () 2627(defun org-outdent-item-tree ()
2601 "Outdent a local list item including its children. 2628 "Outdent a local list item including its children.
@@ -2604,10 +2631,12 @@ If a region is active, all items inside will be moved."
2604 (let ((regionp (org-region-active-p))) 2631 (let ((regionp (org-region-active-p)))
2605 (cond 2632 (cond
2606 ((or (org-at-item-p) 2633 ((or (org-at-item-p)
2607 (and (org-region-active-p) 2634 (and regionp
2608 (goto-char (region-beginning)) 2635 (save-excursion (goto-char (region-beginning))
2609 (org-at-item-p))) 2636 (org-at-item-p))))
2610 (let ((struct (org-list-struct))) 2637 (let ((struct (if (not regionp) (org-list-struct)
2638 (save-excursion (goto-char (region-beginning))
2639 (org-list-struct)))))
2611 (org-list-indent-item-generic -1 nil struct))) 2640 (org-list-indent-item-generic -1 nil struct)))
2612 (regionp (error "Region not starting at an item")) 2641 (regionp (error "Region not starting at an item"))
2613 (t (error "Not at an item"))))) 2642 (t (error "Not at an item")))))
@@ -2619,10 +2648,12 @@ If a region is active, all items inside will be moved."
2619 (let ((regionp (org-region-active-p))) 2648 (let ((regionp (org-region-active-p)))
2620 (cond 2649 (cond
2621 ((or (org-at-item-p) 2650 ((or (org-at-item-p)
2622 (and (org-region-active-p) 2651 (and regionp
2623 (goto-char (region-beginning)) 2652 (save-excursion (goto-char (region-beginning))
2624 (org-at-item-p))) 2653 (org-at-item-p))))
2625 (let ((struct (org-list-struct))) 2654 (let ((struct (if (not regionp) (org-list-struct)
2655 (save-excursion (goto-char (region-beginning))
2656 (org-list-struct)))))
2626 (org-list-indent-item-generic 1 nil struct))) 2657 (org-list-indent-item-generic 1 nil struct)))
2627 (regionp (error "Region not starting at an item")) 2658 (regionp (error "Region not starting at an item"))
2628 (t (error "Not at an item"))))) 2659 (t (error "Not at an item")))))
diff --git a/lisp/org/org-mouse.el b/lisp/org/org-mouse.el
index 5a87bd64697..b467064b888 100644
--- a/lisp/org/org-mouse.el
+++ b/lisp/org/org-mouse.el
@@ -915,6 +915,7 @@ This means, between the beginning of line and the point."
915 ((assq :checkbox context) (org-toggle-checkbox)) 915 ((assq :checkbox context) (org-toggle-checkbox))
916 ((assq :item-bullet context) 916 ((assq :item-bullet context)
917 (let ((org-cycle-include-plain-lists t)) (org-cycle))) 917 (let ((org-cycle-include-plain-lists t)) (org-cycle)))
918 ((org-footnote-at-reference-p) nil)
918 (t ad-do-it)))))) 919 (t ad-do-it))))))
919 920
920(defun org-mouse-move-tree-start (event) 921(defun org-mouse-move-tree-start (event)
diff --git a/lisp/org/org-odt.el b/lisp/org/org-odt.el
index 234272a378d..2e984a575bd 100644
--- a/lisp/org/org-odt.el
+++ b/lisp/org/org-odt.el
@@ -1689,7 +1689,6 @@ ATTR is a string of other attributes of the a element."
1689 (or (not thefile) (string= thefile "")) 1689 (or (not thefile) (string= thefile ""))
1690 (plist-get org-lparse-opt-plist :section-numbers) 1690 (plist-get org-lparse-opt-plist :section-numbers)
1691 (setq sec-frag fragment) 1691 (setq sec-frag fragment)
1692 (org-find-text-property-in-string 'org-no-description fragment)
1693 (or (string-match "\\`sec\\(\\(-[0-9]+\\)+\\)" sec-frag) 1692 (or (string-match "\\`sec\\(\\(-[0-9]+\\)+\\)" sec-frag)
1694 (and (setq sec-frag 1693 (and (setq sec-frag
1695 (loop for alias in org-export-target-aliases do 1694 (loop for alias in org-export-target-aliases do
diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el
index 08981b57e49..37e5c4f91a6 100644
--- a/lisp/org/org-table.el
+++ b/lisp/org/org-table.el
@@ -135,8 +135,8 @@ Other options offered by the customize interface are more restrictive."
135 135
136(defcustom org-table-number-fraction 0.5 136(defcustom org-table-number-fraction 0.5
137 "Fraction of numbers in a column required to make the column align right. 137 "Fraction of numbers in a column required to make the column align right.
138In a column all non-white fields are considered. If at least this 138In a column all non-white fields are considered. If at least
139fraction of fields is matched by `org-table-number-fraction', 139this fraction of fields is matched by `org-table-number-regexp',
140alignment to the right border applies." 140alignment to the right border applies."
141 :group 'org-table-settings 141 :group 'org-table-settings
142 :type 'number) 142 :type 'number)
diff --git a/lisp/org/org.el b/lisp/org/org.el
index c2cc2354439..838a9a18ad4 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -5057,8 +5057,7 @@ The following commands are available:
5057 'org-parse-arguments) 5057 'org-parse-arguments)
5058 (set (make-local-variable 'pcomplete-termination-string) "") 5058 (set (make-local-variable 'pcomplete-termination-string) "")
5059 (when (>= emacs-major-version 23) 5059 (when (>= emacs-major-version 23)
5060 (set (make-local-variable 'buffer-face-mode-face) 'org-default) 5060 (set (make-local-variable 'buffer-face-mode-face) 'org-default))
5061 (buffer-face-mode))
5062 5061
5063 ;; If empty file that did not turn on org-mode automatically, make it to. 5062 ;; If empty file that did not turn on org-mode automatically, make it to.
5064 (if (and org-insert-mode-line-in-empty-file 5063 (if (and org-insert-mode-line-in-empty-file
@@ -14915,7 +14914,7 @@ So these are more for recording a certain time/date."
14915 (org-time-stamp arg 'inactive)) 14914 (org-time-stamp arg 'inactive))
14916 14915
14917(defvar org-date-ovl (make-overlay 1 1)) 14916(defvar org-date-ovl (make-overlay 1 1))
14918(overlay-put org-date-ovl 'face 'org-warning) 14917(overlay-put org-date-ovl 'face 'org-date-selected)
14919(org-detach-overlay org-date-ovl) 14918(org-detach-overlay org-date-ovl)
14920 14919
14921(defvar org-ans1) ; dynamically scoped parameter 14920(defvar org-ans1) ; dynamically scoped parameter
@@ -15131,35 +15130,35 @@ user."
15131 (when org-read-date-display-live 15130 (when org-read-date-display-live
15132 (when org-read-date-overlay 15131 (when org-read-date-overlay
15133 (delete-overlay org-read-date-overlay)) 15132 (delete-overlay org-read-date-overlay))
15134 (let ((p (point))) 15133 (when (minibufferp (current-buffer))
15135 (end-of-line 1) 15134 (save-excursion
15136 (while (not (equal (buffer-substring 15135 (end-of-line 1)
15137 (max (point-min) (- (point) 4)) (point)) 15136 (while (not (equal (buffer-substring
15138 " ")) 15137 (max (point-min) (- (point) 4)) (point))
15139 (insert " ")) 15138 " "))
15140 (goto-char p)) 15139 (insert " ")))
15141 (let* ((ans (concat (buffer-substring (point-at-bol) (point-max)) 15140 (let* ((ans (concat (buffer-substring (point-at-bol) (point-max))
15142 " " (or org-ans1 org-ans2))) 15141 " " (or org-ans1 org-ans2)))
15143 (org-end-time-was-given nil) 15142 (org-end-time-was-given nil)
15144 (f (org-read-date-analyze ans org-def org-defdecode)) 15143 (f (org-read-date-analyze ans org-def org-defdecode))
15145 (fmts (if org-dcst 15144 (fmts (if org-dcst
15146 org-time-stamp-custom-formats 15145 org-time-stamp-custom-formats
15147 org-time-stamp-formats)) 15146 org-time-stamp-formats))
15148 (fmt (if (or org-with-time 15147 (fmt (if (or org-with-time
15149 (and (boundp 'org-time-was-given) org-time-was-given)) 15148 (and (boundp 'org-time-was-given) org-time-was-given))
15150 (cdr fmts) 15149 (cdr fmts)
15151 (car fmts))) 15150 (car fmts)))
15152 (txt (concat "=> " (format-time-string fmt (apply 'encode-time f))))) 15151 (txt (concat "=> " (format-time-string fmt (apply 'encode-time f)))))
15153 (when (and org-end-time-was-given 15152 (when (and org-end-time-was-given
15154 (string-match org-plain-time-of-day-regexp txt)) 15153 (string-match org-plain-time-of-day-regexp txt))
15155 (setq txt (concat (substring txt 0 (match-end 0)) "-" 15154 (setq txt (concat (substring txt 0 (match-end 0)) "-"
15156 org-end-time-was-given 15155 org-end-time-was-given
15157 (substring txt (match-end 0))))) 15156 (substring txt (match-end 0)))))
15158 (when org-read-date-analyze-futurep 15157 (when org-read-date-analyze-futurep
15159 (setq txt (concat txt " (=>F)"))) 15158 (setq txt (concat txt " (=>F)")))
15160 (setq org-read-date-overlay 15159 (setq org-read-date-overlay
15161 (make-overlay (1- (point-at-eol)) (point-at-eol))) 15160 (make-overlay (1- (point-at-eol)) (point-at-eol)))
15162 (org-overlay-display org-read-date-overlay txt 'secondary-selection)))) 15161 (org-overlay-display org-read-date-overlay txt 'secondary-selection)))))
15163 15162
15164(defun org-read-date-analyze (ans org-def org-defdecode) 15163(defun org-read-date-analyze (ans org-def org-defdecode)
15165 "Analyze the combined answer of the date prompt." 15164 "Analyze the combined answer of the date prompt."
@@ -17969,28 +17968,34 @@ See the individual commands for more information."
17969 17968
17970(defun org-shiftmetaleft () 17969(defun org-shiftmetaleft ()
17971 "Promote subtree or delete table column. 17970 "Promote subtree or delete table column.
17972Calls `org-promote-subtree', `org-outdent-item', 17971Calls `org-promote-subtree', `org-outdent-item-tree', or
17973or `org-table-delete-column', depending on context. 17972`org-table-delete-column', depending on context. See the
17974See the individual commands for more information." 17973individual commands for more information."
17975 (interactive) 17974 (interactive)
17976 (cond 17975 (cond
17977 ((run-hook-with-args-until-success 'org-shiftmetaleft-hook)) 17976 ((run-hook-with-args-until-success 'org-shiftmetaleft-hook))
17978 ((org-at-table-p) (call-interactively 'org-table-delete-column)) 17977 ((org-at-table-p) (call-interactively 'org-table-delete-column))
17979 ((org-at-heading-p) (call-interactively 'org-promote-subtree)) 17978 ((org-at-heading-p) (call-interactively 'org-promote-subtree))
17980 ((org-at-item-p) (call-interactively 'org-outdent-item-tree)) 17979 ((if (not (org-region-active-p)) (org-at-item-p)
17980 (save-excursion (goto-char (region-beginning))
17981 (org-at-item-p)))
17982 (call-interactively 'org-outdent-item-tree))
17981 (t (org-modifier-cursor-error)))) 17983 (t (org-modifier-cursor-error))))
17982 17984
17983(defun org-shiftmetaright () 17985(defun org-shiftmetaright ()
17984 "Demote subtree or insert table column. 17986 "Demote subtree or insert table column.
17985Calls `org-demote-subtree', `org-indent-item', 17987Calls `org-demote-subtree', `org-indent-item-tree', or
17986or `org-table-insert-column', depending on context. 17988`org-table-insert-column', depending on context. See the
17987See the individual commands for more information." 17989individual commands for more information."
17988 (interactive) 17990 (interactive)
17989 (cond 17991 (cond
17990 ((run-hook-with-args-until-success 'org-shiftmetaright-hook)) 17992 ((run-hook-with-args-until-success 'org-shiftmetaright-hook))
17991 ((org-at-table-p) (call-interactively 'org-table-insert-column)) 17993 ((org-at-table-p) (call-interactively 'org-table-insert-column))
17992 ((org-at-heading-p) (call-interactively 'org-demote-subtree)) 17994 ((org-at-heading-p) (call-interactively 'org-demote-subtree))
17993 ((org-at-item-p) (call-interactively 'org-indent-item-tree)) 17995 ((if (not (org-region-active-p)) (org-at-item-p)
17996 (save-excursion (goto-char (region-beginning))
17997 (org-at-item-p)))
17998 (call-interactively 'org-indent-item-tree))
17994 (t (org-modifier-cursor-error)))) 17999 (t (org-modifier-cursor-error))))
17995 18000
17996(defun org-shiftmetaup (&optional arg) 18001(defun org-shiftmetaup (&optional arg)
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index 9f9551cc5d8..0cc5de90573 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -603,6 +603,8 @@ NOARG must be t when this macro is used outside `gud-def'"
603 (set (make-local-variable 'gud-marker-filter) #'gud-gdb-marker-filter)) 603 (set (make-local-variable 'gud-marker-filter) #'gud-gdb-marker-filter))
604 (funcall filter proc string)))) 604 (funcall filter proc string))))
605 605
606(defvar gdb-control-level 0)
607
606;;;###autoload 608;;;###autoload
607(defun gdb (command-line) 609(defun gdb (command-line)
608 "Run gdb on program FILE in buffer *gud-FILE*. 610 "Run gdb on program FILE in buffer *gud-FILE*.
@@ -677,6 +679,7 @@ detailed description of this mode.
677 (set-process-filter proc #'gdb--check-interpreter)) 679 (set-process-filter proc #'gdb--check-interpreter))
678 680
679 (set (make-local-variable 'gud-minor-mode) 'gdbmi) 681 (set (make-local-variable 'gud-minor-mode) 'gdbmi)
682 (set (make-local-variable 'gdb-control-level) 0)
680 (setq comint-input-sender 'gdb-send) 683 (setq comint-input-sender 'gdb-send)
681 (when (ring-empty-p comint-input-ring) ; cf shell-mode 684 (when (ring-empty-p comint-input-ring) ; cf shell-mode
682 (let ((hfile (expand-file-name (or (getenv "GDBHISTFILE") 685 (let ((hfile (expand-file-name (or (getenv "GDBHISTFILE")
@@ -1705,6 +1708,16 @@ static char *magick[] = {
1705 :group 'gdb) 1708 :group 'gdb)
1706 1709
1707 1710
1711(defvar gdb-control-commands-regexp
1712 (concat
1713 "^\\("
1714 "commands\\|if\\|while\\|define\\|document\\|python\\|"
1715 "while-stepping\\|stepping\\|ws\\|actions"
1716 "\\)\\([[:blank:]]+.*\\)?$")
1717 "Regexp matching GDB commands that enter a recursive reading loop.
1718As long as GDB is in the recursive reading loop, it does not expect
1719commands to be prefixed by \"-interpreter-exec console\".")
1720
1708(defun gdb-send (proc string) 1721(defun gdb-send (proc string)
1709 "A comint send filter for gdb." 1722 "A comint send filter for gdb."
1710 (with-current-buffer gud-comint-buffer 1723 (with-current-buffer gud-comint-buffer
@@ -1714,11 +1727,15 @@ static char *magick[] = {
1714 (if (not (string= "" string)) 1727 (if (not (string= "" string))
1715 (setq gdb-last-command string) 1728 (setq gdb-last-command string)
1716 (if gdb-last-command (setq string gdb-last-command))) 1729 (if gdb-last-command (setq string gdb-last-command)))
1717 (if (string-match "^-" string) 1730 (if (or (string-match "^-" string)
1718 ;; MI command 1731 (> gdb-control-level 0))
1732 ;; Either MI command or we are feeding GDB's recursive reading loop.
1719 (progn 1733 (progn
1720 (setq gdb-first-done-or-error t) 1734 (setq gdb-first-done-or-error t)
1721 (process-send-string proc (concat string "\n"))) 1735 (process-send-string proc (concat string "\n"))
1736 (if (and (string-match "^end$" string)
1737 (> gdb-control-level 0))
1738 (setq gdb-control-level (1- gdb-control-level))))
1722 ;; CLI command 1739 ;; CLI command
1723 (if (string-match "\\\\$" string) 1740 (if (string-match "\\\\$" string)
1724 (setq gdb-continuation (concat gdb-continuation string "\n")) 1741 (setq gdb-continuation (concat gdb-continuation string "\n"))
@@ -1729,7 +1746,12 @@ static char *magick[] = {
1729 (if gdb-enable-debug 1746 (if gdb-enable-debug
1730 (push (cons 'mi-send to-send) gdb-debug-log)) 1747 (push (cons 'mi-send to-send) gdb-debug-log))
1731 (process-send-string proc to-send)) 1748 (process-send-string proc to-send))
1732 (setq gdb-continuation nil)))) 1749 (if (and (string-match "^end$" string)
1750 (> gdb-control-level 0))
1751 (setq gdb-control-level (1- gdb-control-level)))
1752 (setq gdb-continuation nil)))
1753 (if (string-match gdb-control-commands-regexp string)
1754 (setq gdb-control-level (1+ gdb-control-level))))
1733 1755
1734(defun gdb-mi-quote (string) 1756(defun gdb-mi-quote (string)
1735 "Return STRING quoted properly as an MI argument. 1757 "Return STRING quoted properly as an MI argument.
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el
index cdaeadde906..d57a3128a16 100644
--- a/lisp/progmodes/which-func.el
+++ b/lisp/progmodes/which-func.el
@@ -179,7 +179,9 @@ and you want to simplify them for the mode line
179(defvar which-func-table (make-hash-table :test 'eq :weakness 'key)) 179(defvar which-func-table (make-hash-table :test 'eq :weakness 'key))
180 180
181(defconst which-func-current 181(defconst which-func-current
182 '(:eval (gethash (selected-window) which-func-table which-func-unknown))) 182 '(:eval (replace-regexp-in-string
183 "%" "%%"
184 (gethash (selected-window) which-func-table which-func-unknown))))
183;;;###autoload (put 'which-func-current 'risky-local-variable t) 185;;;###autoload (put 'which-func-current 'risky-local-variable t)
184 186
185(defvar which-func-mode nil 187(defvar which-func-mode nil
diff --git a/lisp/select.el b/lisp/select.el
index 0260eba4682..3948fcc5456 100644
--- a/lisp/select.el
+++ b/lisp/select.el
@@ -213,30 +213,25 @@ two markers or an overlay. Otherwise, it is nil."
213(defun xselect--int-to-cons (n) 213(defun xselect--int-to-cons (n)
214 (cons (ash n -16) (logand n 65535))) 214 (cons (ash n -16) (logand n 65535)))
215 215
216(defun xselect-convert-to-string (_selection type value) 216(defun xselect--encode-string (type str &optional can-modify)
217 (let (str coding) 217 (when str
218 ;; Get the actual string from VALUE. 218 ;; If TYPE is nil, this is a local request; return STR as-is.
219 (cond ((stringp value) 219 (if (null type)
220 (setq str value)) 220 str
221 ((setq value (xselect--selection-bounds value)) 221 ;; Otherwise, encode STR.
222 (with-current-buffer (nth 2 value) 222 (let ((coding (or next-selection-coding-system
223 (setq str (buffer-substring (nth 0 value) 223 selection-coding-system)))
224 (nth 1 value))))))
225 (when str
226 ;; If TYPE is nil, this is a local request, thus return STR as
227 ;; is. Otherwise, encode STR.
228 (if (not type)
229 str
230 (setq coding (or next-selection-coding-system selection-coding-system))
231 (if coding 224 (if coding
232 (setq coding (coding-system-base coding))) 225 (setq coding (coding-system-base coding)))
233 (let ((inhibit-read-only t)) 226 (let ((inhibit-read-only t))
234 ;; Suppress producing escape sequences for compositions. 227 ;; Suppress producing escape sequences for compositions.
228 ;; But avoid modifying the string if it's a buffer name etc.
229 (unless can-modify (setq str (substring str 0)))
235 (remove-text-properties 0 (length str) '(composition nil) str) 230 (remove-text-properties 0 (length str) '(composition nil) str)
231 ;; TEXT is a polymorphic target. Select the actual type
232 ;; from `UTF8_STRING', `COMPOUND_TEXT', `STRING', and
233 ;; `C_STRING'.
236 (if (eq type 'TEXT) 234 (if (eq type 'TEXT)
237 ;; TEXT is a polymorphic target. We must select the
238 ;; actual type from `UTF8_STRING', `COMPOUND_TEXT',
239 ;; `STRING', and `C_STRING'.
240 (if (not (multibyte-string-p str)) 235 (if (not (multibyte-string-p str))
241 (setq type 'C_STRING) 236 (setq type 'C_STRING)
242 (let (non-latin-1 non-unicode eight-bit) 237 (let (non-latin-1 non-unicode eight-bit)
@@ -279,6 +274,14 @@ two markers or an overlay. Otherwise, it is nil."
279 (setq next-selection-coding-system nil) 274 (setq next-selection-coding-system nil)
280 (cons type str)))) 275 (cons type str))))
281 276
277(defun xselect-convert-to-string (_selection type value)
278 (let ((str (cond ((stringp value) value)
279 ((setq value (xselect--selection-bounds value))
280 (with-current-buffer (nth 2 value)
281 (buffer-substring (nth 0 value)
282 (nth 1 value)))))))
283 (xselect--encode-string type str t)))
284
282(defun xselect-convert-to-length (_selection _type value) 285(defun xselect-convert-to-length (_selection _type value)
283 (let ((len (cond ((stringp value) 286 (let ((len (cond ((stringp value)
284 (length value)) 287 (length value))
@@ -311,7 +314,7 @@ two markers or an overlay. Otherwise, it is nil."
311 314
312(defun xselect-convert-to-filename (_selection _type value) 315(defun xselect-convert-to-filename (_selection _type value)
313 (when (setq value (xselect--selection-bounds value)) 316 (when (setq value (xselect--selection-bounds value))
314 (buffer-file-name (nth 2 value)))) 317 (xselect--encode-string 'TEXT (buffer-file-name (nth 2 value)))))
315 318
316(defun xselect-convert-to-charpos (_selection _type value) 319(defun xselect-convert-to-charpos (_selection _type value)
317 (when (setq value (xselect--selection-bounds value)) 320 (when (setq value (xselect--selection-bounds value))
@@ -337,13 +340,13 @@ two markers or an overlay. Otherwise, it is nil."
337 (xselect--int-to-cons (max beg end)))))))) 340 (xselect--int-to-cons (max beg end))))))))
338 341
339(defun xselect-convert-to-os (_selection _type _size) 342(defun xselect-convert-to-os (_selection _type _size)
340 (symbol-name system-type)) 343 (xselect--encode-string 'TEXT (symbol-name system-type)))
341 344
342(defun xselect-convert-to-host (_selection _type _size) 345(defun xselect-convert-to-host (_selection _type _size)
343 (system-name)) 346 (xselect--encode-string 'TEXT (system-name)))
344 347
345(defun xselect-convert-to-user (_selection _type _size) 348(defun xselect-convert-to-user (_selection _type _size)
346 (user-full-name)) 349 (xselect--encode-string 'TEXT (user-full-name)))
347 350
348(defun xselect-convert-to-class (_selection _type _size) 351(defun xselect-convert-to-class (_selection _type _size)
349 "Convert selection to class. 352 "Convert selection to class.
diff --git a/lisp/simple.el b/lisp/simple.el
index 67f6e4eedf7..55f7d1261ee 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -817,7 +817,7 @@ instead of deleted."
817 :type '(choice (const :tag "Delete active region" t) 817 :type '(choice (const :tag "Delete active region" t)
818 (const :tag "Kill active region" kill) 818 (const :tag "Kill active region" kill)
819 (const :tag "Do ordinary deletion" nil)) 819 (const :tag "Do ordinary deletion" nil))
820 :group 'editing 820 :group 'killing
821 :version "24.1") 821 :version "24.1")
822 822
823(defun delete-backward-char (n &optional killflag) 823(defun delete-backward-char (n &optional killflag)
diff --git a/lisp/startup.el b/lisp/startup.el
index 4a8af55af2f..d6e73023699 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -41,7 +41,7 @@
41(defcustom initial-buffer-choice nil 41(defcustom initial-buffer-choice nil
42 "Buffer to show after starting Emacs. 42 "Buffer to show after starting Emacs.
43If the value is nil and `inhibit-startup-screen' is nil, show the 43If the value is nil and `inhibit-startup-screen' is nil, show the
44startup screen. If the value is string, visit the specified file 44startup screen. If the value is a string, visit the specified file
45or directory using `find-file'. If t, open the `*scratch*' 45or directory using `find-file'. If t, open the `*scratch*'
46buffer." 46buffer."
47 :type '(choice 47 :type '(choice
diff --git a/lisp/subr.el b/lisp/subr.el
index 2404f6a56d2..b548f82ca5a 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2023,7 +2023,10 @@ some sort of escape sequence, the ambiguity is resolved via `read-key-delay'."
2023 (let ((map (make-sparse-keymap))) 2023 (let ((map (make-sparse-keymap)))
2024 ;; Don't hide the menu-bar and tool-bar entries. 2024 ;; Don't hide the menu-bar and tool-bar entries.
2025 (define-key map [menu-bar] (lookup-key global-map [menu-bar])) 2025 (define-key map [menu-bar] (lookup-key global-map [menu-bar]))
2026 (define-key map [tool-bar] (lookup-key global-map [tool-bar])) 2026 (define-key map [tool-bar]
2027 ;; This hack avoids evaluating the :filter (Bug#9922).
2028 (or (cdr (assq 'tool-bar global-map))
2029 (lookup-key global-map [tool-bar])))
2027 map)) 2030 map))
2028 (aref (catch 'read-key (read-key-sequence-vector prompt nil t)) 0)) 2031 (aref (catch 'read-key (read-key-sequence-vector prompt nil t)) 0))
2029 (cancel-timer timer) 2032 (cancel-timer timer)
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index c185c4e8fab..ebaec2494ac 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -220,7 +220,7 @@ matching the resulting Git log output, and KEYWORDS is a list of
220 (let ((diff (vc-git--run-command-string 220 (let ((diff (vc-git--run-command-string
221 file "diff-index" "-p" "--raw" "-z" "HEAD" "--"))) 221 file "diff-index" "-p" "--raw" "-z" "HEAD" "--")))
222 (if (and diff 222 (if (and diff
223 (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0\\(.\\)?" 223 (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0\\(.*\n.\\)?"
224 diff)) 224 diff))
225 (let ((diff-letter (match-string 1 diff))) 225 (let ((diff-letter (match-string 1 diff)))
226 (if (not (match-beginning 2)) 226 (if (not (match-beginning 2))
diff --git a/lisp/window.el b/lisp/window.el
index b8f1bf3456d..d57bd4e2300 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -1482,12 +1482,24 @@ edge of WINDOW consider using `adjust-window-trailing-edge'
1482instead." 1482instead."
1483 (setq window (window-normalize-window window)) 1483 (setq window (window-normalize-window window))
1484 (let* ((frame (window-frame window)) 1484 (let* ((frame (window-frame window))
1485 (minibuffer-window (minibuffer-window frame))
1485 sibling) 1486 sibling)
1486 (cond 1487 (cond
1487 ((eq window (frame-root-window frame)) 1488 ((eq window (frame-root-window frame))
1488 (error "Cannot resize the root window of a frame")) 1489 (error "Cannot resize the root window of a frame"))
1489 ((window-minibuffer-p window) 1490 ((window-minibuffer-p window)
1490 (window--resize-mini-window window delta)) 1491 (if horizontal
1492 (error "Cannot resize minibuffer window horizontally")
1493 (window--resize-mini-window window delta)))
1494 ((and (not horizontal)
1495 (window-full-height-p window)
1496 (eq (window-frame minibuffer-window) frame)
1497 (or (not resize-mini-windows)
1498 (eq minibuffer-window (active-minibuffer-window))))
1499 ;; If WINDOW is full height and either `resize-mini-windows' is
1500 ;; nil or the minibuffer window is active, resize the minibuffer
1501 ;; window.
1502 (window--resize-mini-window minibuffer-window (- delta)))
1491 ((window--resizable-p window delta horizontal ignore) 1503 ((window--resizable-p window delta horizontal ignore)
1492 (window--resize-reset frame horizontal) 1504 (window--resize-reset frame horizontal)
1493 (window--resize-this-window window delta horizontal ignore t) 1505 (window--resize-this-window window delta horizontal ignore t)
@@ -2002,17 +2014,25 @@ right. If DELTA is less than zero, move the edge upwards or to
2002the left. If the edge can't be moved by DELTA lines or columns, 2014the left. If the edge can't be moved by DELTA lines or columns,
2003move it as far as possible in the desired direction." 2015move it as far as possible in the desired direction."
2004 (setq window (window-normalize-window window)) 2016 (setq window (window-normalize-window window))
2005 (let ((frame (window-frame window)) 2017 (let* ((frame (window-frame window))
2006 (right window) 2018 (minibuffer-window (minibuffer-window frame))
2007 left this-delta min-delta max-delta) 2019 (right window)
2020 left this-delta min-delta max-delta)
2008 ;; Find the edge we want to move. 2021 ;; Find the edge we want to move.
2009 (while (and (or (not (window-combined-p right horizontal)) 2022 (while (and (or (not (window-combined-p right horizontal))
2010 (not (window-right right))) 2023 (not (window-right right)))
2011 (setq right (window-parent right)))) 2024 (setq right (window-parent right))))
2012 (cond 2025 (cond
2013 ((and (not right) (not horizontal) (not resize-mini-windows) 2026 ((and (not right) (not horizontal)
2014 (eq (window-frame (minibuffer-window frame)) frame)) 2027 ;; Resize the minibuffer window if it's on the same frame as
2015 (window--resize-mini-window (minibuffer-window frame) (- delta))) 2028 ;; and immediately below WINDOW and it's either active or
2029 ;; `resize-mini-windows' is nil.
2030 (eq (window-frame minibuffer-window) frame)
2031 (= (nth 1 (window-edges minibuffer-window))
2032 (nth 3 (window-edges window)))
2033 (or (not resize-mini-windows)
2034 (eq minibuffer-window (active-minibuffer-window))))
2035 (window--resize-mini-window minibuffer-window (- delta)))
2016 ((or (not (setq left right)) (not (setq right (window-right right)))) 2036 ((or (not (setq left right)) (not (setq right (window-right right))))
2017 (if horizontal 2037 (if horizontal
2018 (error "No window on the right of this one") 2038 (error "No window on the right of this one")
@@ -2109,18 +2129,30 @@ make selected window wider by DELTA columns. If DELTA is
2109negative, shrink selected window by -DELTA lines or columns. 2129negative, shrink selected window by -DELTA lines or columns.
2110Return nil." 2130Return nil."
2111 (interactive "p") 2131 (interactive "p")
2112 (cond 2132 (let ((minibuffer-window (minibuffer-window)))
2113 ((zerop delta)) 2133 (cond
2114 ((window-size-fixed-p nil horizontal) 2134 ((zerop delta))
2115 (error "Selected window has fixed size")) 2135 ((window-size-fixed-p nil horizontal)
2116 ((window--resizable-p nil delta horizontal) 2136 (error "Selected window has fixed size"))
2117 (window-resize nil delta horizontal)) 2137 ((window-minibuffer-p)
2118 (t 2138 (if horizontal
2119 (window-resize 2139 (error "Cannot resize minibuffer window horizontally")
2120 nil (if (> delta 0) 2140 (window--resize-mini-window (selected-window) delta)))
2121 (window-max-delta nil horizontal) 2141 ((and (not horizontal)
2122 (- (window-min-delta nil horizontal))) 2142 (window-full-height-p)
2123 horizontal)))) 2143 (eq (window-frame minibuffer-window) (selected-frame))
2144 (not resize-mini-windows))
2145 ;; If the selected window is full height and `resize-mini-windows'
2146 ;; is nil, resize the minibuffer window.
2147 (window--resize-mini-window minibuffer-window (- delta)))
2148 ((window--resizable-p nil delta horizontal)
2149 (window-resize nil delta horizontal))
2150 (t
2151 (window-resize
2152 nil (if (> delta 0)
2153 (window-max-delta nil horizontal)
2154 (- (window-min-delta nil horizontal)))
2155 horizontal)))))
2124 2156
2125(defun shrink-window (delta &optional horizontal) 2157(defun shrink-window (delta &optional horizontal)
2126 "Make the selected window DELTA lines smaller. 2158 "Make the selected window DELTA lines smaller.
@@ -2131,18 +2163,30 @@ negative, enlarge selected window by -DELTA lines or columns.
2131Also see the `window-min-height' variable. 2163Also see the `window-min-height' variable.
2132Return nil." 2164Return nil."
2133 (interactive "p") 2165 (interactive "p")
2134 (cond 2166 (let ((minibuffer-window (minibuffer-window)))
2135 ((zerop delta)) 2167 (cond
2136 ((window-size-fixed-p nil horizontal) 2168 ((zerop delta))
2137 (error "Selected window has fixed size")) 2169 ((window-size-fixed-p nil horizontal)
2138 ((window--resizable-p nil (- delta) horizontal) 2170 (error "Selected window has fixed size"))
2139 (window-resize nil (- delta) horizontal)) 2171 ((window-minibuffer-p)
2140 (t 2172 (if horizontal
2141 (window-resize 2173 (error "Cannot resize minibuffer window horizontally")
2142 nil (if (> delta 0) 2174 (window--resize-mini-window (selected-window) (- delta))))
2143 (- (window-min-delta nil horizontal)) 2175 ((and (not horizontal)
2144 (window-max-delta nil horizontal)) 2176 (window-full-height-p)
2145 horizontal)))) 2177 (eq (window-frame minibuffer-window) (selected-frame))
2178 (not resize-mini-windows))
2179 ;; If the selected window is full height and `resize-mini-windows'
2180 ;; is nil, resize the minibuffer window.
2181 (window--resize-mini-window minibuffer-window delta))
2182 ((window--resizable-p nil (- delta) horizontal)
2183 (window-resize nil (- delta) horizontal))
2184 (t
2185 (window-resize
2186 nil (if (> delta 0)
2187 (- (window-min-delta nil horizontal))
2188 (window-max-delta nil horizontal))
2189 horizontal)))))
2146 2190
2147(defun maximize-window (&optional window) 2191(defun maximize-window (&optional window)
2148 "Maximize WINDOW. 2192 "Maximize WINDOW.
diff --git a/lisp/xml.el b/lisp/xml.el
index 39a8da0f337..cb56f023af0 100644
--- a/lisp/xml.el
+++ b/lisp/xml.el
@@ -323,7 +323,8 @@ If PARSE-NS is non-nil, then QNAMES are expanded."
323 (cond 323 (cond
324 ((null result) 324 ((null result)
325 ;; Not looking at an xml start tag. 325 ;; Not looking at an xml start tag.
326 (forward-char 1)) 326 (unless (eobp)
327 (forward-char 1)))
327 ((and xml (not xml-sub-parser)) 328 ((and xml (not xml-sub-parser))
328 ;; Translation of rule [1] of XML specifications 329 ;; Translation of rule [1] of XML specifications
329 (error "XML: (Not Well-Formed) Only one root tag allowed")) 330 (error "XML: (Not Well-Formed) Only one root tag allowed"))
@@ -422,7 +423,8 @@ Returns one of:
422 ((looking-at "<!--") 423 ((looking-at "<!--")
423 (search-forward "-->") 424 (search-forward "-->")
424 (skip-syntax-forward " ") 425 (skip-syntax-forward " ")
425 (xml-parse-tag parse-dtd xml-ns)) 426 (unless (eobp)
427 (xml-parse-tag parse-dtd xml-ns)))
426 ;; end tag 428 ;; end tag
427 ((looking-at "</") 429 ((looking-at "</")
428 '()) 430 '())
diff --git a/src/ChangeLog b/src/ChangeLog
index df0e6135498..55caf3c607c 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,30 @@
12012-04-27 Chong Yidong <cyd@gnu.org>
2
3 * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
4
52012-04-27 Eli Zaretskii <eliz@gnu.org>
6
7 * xdisp.c (pos_visible_p): If the window start position is beyond
8 ZV, start the display from buffer beginning. Prevents assertion
9 violation in init_iterator when the minibuffer window is scrolled
10 via the scroll bar.
11
12 * window.c (window_scroll_pixel_based): Likewise.
13
142012-04-27 Chong Yidong <cyd@gnu.org>
15
16 * keymap.c (where_is_internal): Doc fix (Bug#10872).
17
182012-04-27 Glenn Morris <rgm@gnu.org>
19
20 * fileio.c (Fcopy_file, Fset_file_selinux_context):
21 Ignore ENOTSUP failures from setfilecon functions. (Bug#11245)
22
232012-04-27 Eli Zaretskii <eliz@gnu.org>
24
25 * dispnew.c (swap_glyph_pointers, copy_row_except_pointers): Don't
26 overrun array limits of glyph row's used[] array. (Bug#11288)
27
12012-04-26 Eli Zaretskii <eliz@gnu.org> 282012-04-26 Eli Zaretskii <eliz@gnu.org>
2 29
3 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded 30 * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
diff --git a/src/dispnew.c b/src/dispnew.c
index 02d6de53bbf..b313852efe2 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -1085,12 +1085,16 @@ swap_glyph_pointers (struct glyph_row *a, struct glyph_row *b)
1085 for (i = 0; i < LAST_AREA + 1; ++i) 1085 for (i = 0; i < LAST_AREA + 1; ++i)
1086 { 1086 {
1087 struct glyph *temp = a->glyphs[i]; 1087 struct glyph *temp = a->glyphs[i];
1088 short used_tem = a->used[i];
1089 1088
1090 a->glyphs[i] = b->glyphs[i]; 1089 a->glyphs[i] = b->glyphs[i];
1091 b->glyphs[i] = temp; 1090 b->glyphs[i] = temp;
1092 a->used[i] = b->used[i]; 1091 if (i < LAST_AREA)
1093 b->used[i] = used_tem; 1092 {
1093 short used_tem = a->used[i];
1094
1095 a->used[i] = b->used[i];
1096 b->used[i] = used_tem;
1097 }
1094 } 1098 }
1095 a->hash = b->hash; 1099 a->hash = b->hash;
1096 b->hash = hash_tem; 1100 b->hash = hash_tem;
@@ -1105,7 +1109,7 @@ static inline void
1105copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from) 1109copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from)
1106{ 1110{
1107 struct glyph *pointers[1 + LAST_AREA]; 1111 struct glyph *pointers[1 + LAST_AREA];
1108 short used[1 + LAST_AREA]; 1112 short used[LAST_AREA];
1109 unsigned hashval; 1113 unsigned hashval;
1110 1114
1111 /* Save glyph pointers of TO. */ 1115 /* Save glyph pointers of TO. */
diff --git a/src/fileio.c b/src/fileio.c
index 3a74672b9a6..69b2c9cb0f2 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1,6 +1,6 @@
1/* File IO for GNU Emacs. 1/* File IO for GNU Emacs.
2 2
3Copyright (C) 1985-1988, 1993-2012 Free Software Foundation, Inc. 3Copyright (C) 1985-1988, 1993-2012 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
@@ -2044,9 +2044,10 @@ on the system, we copy the SELinux context of FILE to NEWNAME. */)
2044#if HAVE_LIBSELINUX 2044#if HAVE_LIBSELINUX
2045 if (conlength > 0) 2045 if (conlength > 0)
2046 { 2046 {
2047 /* Set the modified context back to the file. */ 2047 /* Set the modified context back to the file. */
2048 fail = fsetfilecon (ofd, con); 2048 fail = fsetfilecon (ofd, con);
2049 if (fail) 2049 /* See http://debbugs.gnu.org/11245 for ENOTSUP. */
2050 if (fail && errno != ENOTSUP)
2050 report_file_error ("Doing fsetfilecon", Fcons (newname, Qnil)); 2051 report_file_error ("Doing fsetfilecon", Fcons (newname, Qnil));
2051 2052
2052 freecon (con); 2053 freecon (con);
@@ -2917,10 +2918,11 @@ compiled with SELinux support. */)
2917 error ("Doing context_range_set"); 2918 error ("Doing context_range_set");
2918 } 2919 }
2919 2920
2920 /* Set the modified context back to the file. */ 2921 /* Set the modified context back to the file. */
2921 fail = lsetfilecon (SSDATA (encoded_absname), 2922 fail = lsetfilecon (SSDATA (encoded_absname),
2922 context_str (parsed_con)); 2923 context_str (parsed_con));
2923 if (fail) 2924 /* See http://debbugs.gnu.org/11245 for ENOTSUP. */
2925 if (fail && errno != ENOTSUP)
2924 report_file_error ("Doing lsetfilecon", Fcons (absname, Qnil)); 2926 report_file_error ("Doing lsetfilecon", Fcons (absname, Qnil));
2925 2927
2926 context_free (parsed_con); 2928 context_free (parsed_con);
diff --git a/src/keymap.c b/src/keymap.c
index ecaeb32896e..9f82175edc0 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -2553,7 +2553,8 @@ where_is_internal (Lisp_Object definition, Lisp_Object keymaps,
2553DEFUN ("where-is-internal", Fwhere_is_internal, Swhere_is_internal, 1, 5, 0, 2553DEFUN ("where-is-internal", Fwhere_is_internal, Swhere_is_internal, 1, 5, 0,
2554 doc: /* Return list of keys that invoke DEFINITION. 2554 doc: /* Return list of keys that invoke DEFINITION.
2555If KEYMAP is a keymap, search only KEYMAP and the global keymap. 2555If KEYMAP is a keymap, search only KEYMAP and the global keymap.
2556If KEYMAP is nil, search all the currently active keymaps. 2556If KEYMAP is nil, search all the currently active keymaps, except
2557 for `overriding-local-map' (which is ignored).
2557If KEYMAP is a list of keymaps, search only those keymaps. 2558If KEYMAP is a list of keymaps, search only those keymaps.
2558 2559
2559If optional 3rd arg FIRSTONLY is non-nil, return the first key sequence found, 2560If optional 3rd arg FIRSTONLY is non-nil, return the first key sequence found,
@@ -2568,9 +2569,17 @@ If optional 4th arg NOINDIRECT is non-nil, don't follow indirections
2568to other keymaps or slots. This makes it possible to search for an 2569to other keymaps or slots. This makes it possible to search for an
2569indirect definition itself. 2570indirect definition itself.
2570 2571
2571If optional 5th arg NO-REMAP is non-nil, don't search for key sequences 2572The optional 5th arg NO-REMAP alters how command remapping is handled:
2572that invoke a command which is remapped to DEFINITION, but include the 2573
2573remapped command in the returned list. */) 2574- If another command OTHER-COMMAND is remapped to DEFINITION, normally
2575 search for the bindings of OTHER-COMMAND and include them in the
2576 returned list. But if NO-REMAP is non-nil, include the vector
2577 [remap OTHER-COMMAND] in the returned list instead, without
2578 searching for those other bindings.
2579
2580- If DEFINITION is remapped to OTHER-COMMAND, normally return the
2581 bindings for OTHER-COMMAND. But if NO-REMAP is non-nil, return the
2582 bindings for DEFINITION instead, ignoring its remapping. */)
2574 (Lisp_Object definition, Lisp_Object keymap, Lisp_Object firstonly, Lisp_Object noindirect, Lisp_Object no_remap) 2583 (Lisp_Object definition, Lisp_Object keymap, Lisp_Object firstonly, Lisp_Object noindirect, Lisp_Object no_remap)
2575{ 2584{
2576 /* The keymaps in which to search. */ 2585 /* The keymaps in which to search. */
diff --git a/src/window.c b/src/window.c
index 1f27cba444b..048779d6830 100644
--- a/src/window.c
+++ b/src/window.c
@@ -4221,6 +4221,11 @@ window_scroll_pixel_based (Lisp_Object window, int n, int whole, int noerror)
4221 void *itdata = NULL; 4221 void *itdata = NULL;
4222 4222
4223 SET_TEXT_POS_FROM_MARKER (start, w->start); 4223 SET_TEXT_POS_FROM_MARKER (start, w->start);
4224 /* Scrolling a minibuffer window via scroll bar when the echo area
4225 shows long text sometimes resets the minibuffer contents behind
4226 our backs. */
4227 if (CHARPOS (start) > ZV)
4228 SET_TEXT_POS (start, BEGV, BEGV_BYTE);
4224 4229
4225 /* If PT is not visible in WINDOW, move back one half of 4230 /* If PT is not visible in WINDOW, move back one half of
4226 the screen. Allow PT to be partially visible, otherwise 4231 the screen. Allow PT to be partially visible, otherwise
diff --git a/src/xdisp.c b/src/xdisp.c
index f2700bd6d25..307331627f5 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -1275,6 +1275,11 @@ pos_visible_p (struct window *w, EMACS_INT charpos, int *x, int *y,
1275 } 1275 }
1276 1276
1277 SET_TEXT_POS_FROM_MARKER (top, w->start); 1277 SET_TEXT_POS_FROM_MARKER (top, w->start);
1278 /* Scrolling a minibuffer window via scroll bar when the echo area
1279 shows long text sometimes resets the minibuffer contents behind
1280 our backs. */
1281 if (CHARPOS (top) > ZV)
1282 SET_TEXT_POS (top, BEGV, BEGV_BYTE);
1278 1283
1279 /* Compute exact mode line heights. */ 1284 /* Compute exact mode line heights. */
1280 if (WINDOW_WANTS_MODELINE_P (w)) 1285 if (WINDOW_WANTS_MODELINE_P (w))
diff --git a/src/xselect.c b/src/xselect.c
index 173cf78bdaa..15ce8d487fa 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -931,6 +931,7 @@ x_convert_selection (struct input_event *event, Lisp_Object selection_symbol,
931 931
932 /* Otherwise, record the converted selection to binary. */ 932 /* Otherwise, record the converted selection to binary. */
933 cs = xmalloc (sizeof (struct selection_data)); 933 cs = xmalloc (sizeof (struct selection_data));
934 cs->data = NULL;
934 cs->nofree = 1; 935 cs->nofree = 1;
935 cs->property = property; 936 cs->property = property;
936 cs->wait_object = NULL; 937 cs->wait_object = NULL;