]> code.delx.au - gnu-emacs/commitdiff
Merge changes from emacs-24 branch
authorChong Yidong <cyd@gnu.org>
Fri, 27 Apr 2012 03:10:38 +0000 (11:10 +0800)
committerChong Yidong <cyd@gnu.org>
Fri, 27 Apr 2012 03:10:38 +0000 (11:10 +0800)
98 files changed:
admin/FOR-RELEASE
doc/emacs/ChangeLog
doc/emacs/ack.texi
doc/emacs/basic.texi
doc/emacs/buffers.texi
doc/emacs/building.texi
doc/emacs/calendar.texi
doc/emacs/cmdargs.texi
doc/emacs/commands.texi
doc/emacs/custom.texi
doc/emacs/dired.texi
doc/emacs/display.texi
doc/emacs/emacs.texi
doc/emacs/emerge-xtra.texi
doc/emacs/files.texi
doc/emacs/fortran-xtra.texi
doc/emacs/help.texi
doc/emacs/kmacro.texi
doc/emacs/mini.texi
doc/emacs/misc.texi
doc/emacs/msdog-xtra.texi
doc/emacs/mule.texi
doc/emacs/picture-xtra.texi
doc/emacs/programs.texi
doc/emacs/rmail.texi
doc/emacs/search.texi
doc/emacs/trouble.texi
doc/emacs/windows.texi
doc/lispref/ChangeLog
doc/lispref/book-spine.texi
doc/lispref/buffers.texi
doc/lispref/commands.texi
doc/lispref/compile.texi
doc/lispref/control.texi
doc/lispref/customize.texi
doc/lispref/display.texi
doc/lispref/elisp.texi
doc/lispref/eval.texi
doc/lispref/files.texi
doc/lispref/frames.texi
doc/lispref/functions.texi
doc/lispref/hash.texi
doc/lispref/help.texi
doc/lispref/intro.texi
doc/lispref/keymaps.texi
doc/lispref/lists.texi
doc/lispref/macros.texi
doc/lispref/minibuf.texi
doc/lispref/modes.texi
doc/lispref/numbers.texi
doc/lispref/objects.texi
doc/lispref/streams.texi
doc/lispref/symbols.texi
doc/lispref/syntax.texi
doc/lispref/text.texi
doc/lispref/tips.texi
doc/lispref/variables.texi
doc/lispref/vol1.texi
doc/lispref/vol2.texi
doc/lispref/windows.texi
doc/misc/ChangeLog
doc/misc/faq.texi
etc/ChangeLog
etc/NEWS
etc/ORG-NEWS [new file with mode: 0644]
etc/org/OrgOdtStyles.xml
lisp/ChangeLog
lisp/emacs-lisp/check-declare.el
lisp/gnus/ChangeLog
lisp/gnus/gnus.el
lisp/mouse.el
lisp/org/ChangeLog
lisp/org/ob-python.el
lisp/org/org-agenda.el
lisp/org/org-clock.el
lisp/org/org-faces.el
lisp/org/org-footnote.el
lisp/org/org-list.el
lisp/org/org-mouse.el
lisp/org/org-odt.el
lisp/org/org-table.el
lisp/org/org.el
lisp/progmodes/gdb-mi.el
lisp/progmodes/which-func.el
lisp/select.el
lisp/simple.el
lisp/startup.el
lisp/subr.el
lisp/vc/vc-git.el
lisp/window.el
lisp/xml.el
src/ChangeLog
src/dispnew.c
src/fileio.c
src/keymap.c
src/window.c
src/xdisp.c
src/xselect.c

index ad4273975246b112221491cc261ea5b7bc075716..f53b74e98c4b66978ebd323a59b8af1204428f0a 100644 (file)
@@ -61,7 +61,7 @@ sk    Miroslav Vaško
 
 ** Consider bumping customize-changed-options-previous-release.
 
-** cusver-check from admin.el cam help find new defcustoms missing
+** cusver-check from admin.el can help find new defcustoms missing
 :version tags.
 
 * BUGS
@@ -229,7 +229,7 @@ syntax.texi       cyd
 text.texi         cyd
 tips.texi         rgm
 variables.texi    cyd
-windows.texi      
+windows.texi      rgm (skimmed)
 
 \f
 Local variables:
index 63ccb880d409938d63f4f7e7dd77c3ea41f8afde..50c3d868eb371a319458abb1db623bf5301c055f 100644 (file)
@@ -1,3 +1,24 @@
+2012-04-27  Glenn Morris  <rgm@gnu.org>
+
+       * emacs.texi: Some fixes for detailed menu.
+
+2012-04-26  Glenn Morris  <rgm@gnu.org>
+
+       * emacs.texi: Add "et al." to authors.
+
+       * ack.texi, basic.texi, buffers.texi, building.texi:
+       * calendar.texi, cmdargs.texi, commands.texi, custom.texi:
+       * dired.texi, display.texi, emerge-xtra.texi, files.texi:
+       * fortran-xtra.texi, help.texi, kmacro.texi, mini.texi, misc.texi:
+       * msdog-xtra.texi, picture-xtra.texi, programs.texi, rmail.texi:
+       * search.texi, trouble.texi, windows.texi:
+       Use Texinfo recommended convention for quotes+punctuation.
+
+2012-04-25  Eli Zaretskii  <eliz@gnu.org>
+
+       * mule.texi (Bidirectional Editing): Improve indexing.  Minor
+       wording tweaks.
+
 2012-04-15  Chong Yidong  <cyd@gnu.org>
 
        * misc.texi (emacsclient Options): More clarifications.
index 51f6d70bd904f6b99e7e8da2fe33d79dc87d4b0b..eafd38155f24bbc08c10d95bf4993141bda21691 100644 (file)
@@ -240,7 +240,7 @@ for compiled Emacs Lisp code.
 
 @item
 Mathias Dahl wrote @file{image-dired.el}, a package for viewing image
-files as ``thumbnails.''
+files as ``thumbnails''.
 
 @item
 Julien Danjou wrote an implementation of ``Desktop Notifications''
@@ -1027,7 +1027,7 @@ Together with Dmitry Dzhus, he wrote @file{gdb-mi.el}, the successor to
 
 @item
 Danny Roozendaal implemented @file{handwrite.el}, which converts text
-into ``handwriting.''
+into ``handwriting''.
 
 @item
 Markus Rost wrote @file{cus-test.el}, a testing framework for customize.
@@ -1224,7 +1224,7 @@ the keyboard.
 
 @item
 Jean-Philippe Theberge wrote @file{thumbs.el}, a package for viewing
-image files as ``thumbnails.''
+image files as ``thumbnails''.
 
 @item
 Spencer Thomas wrote the original @file{dabbrev.el}, providing a command
index 5ad48eb48eff7af4e9f987ed97a732588118d859..2650b55811fac051b363585f83c5e3d2d7554478 100644 (file)
@@ -668,7 +668,7 @@ those two positions are the accessible ones.  @xref{Narrowing}.
 @cindex arguments to commands
 
   In the terminology of mathematics and computing, @dfn{argument}
-means ``data provided to a function or operation.''  You can give any
+means ``data provided to a function or operation''.  You can give any
 Emacs command a @dfn{numeric argument} (also called a @dfn{prefix
 argument}).  Some commands interpret the argument as a repetition
 count.  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
 more convenient, and they are documented in that command's
 documentation string.
 
-  We use the term ``prefix argument'' as well as ``numeric argument,''
+  We use the term ``prefix argument'' as well as ``numeric argument'',
 to emphasize that you type these argument before the command, and to
 distinguish them from minibuffer arguments that come after the
 command.
index d2783bcb0ba69ea82ac3d14e5a9b9ff584d74e78..90d5084e3d93956f8a89eb869f78e0672bf33973 100644 (file)
@@ -180,7 +180,7 @@ buffers that were current most recently come first.
 
   @samp{.} in the first field of a line indicates that the buffer is
 current.  @samp{%} indicates a read-only buffer.  @samp{*} indicates
-that the buffer is ``modified.''  If several buffers are modified, it
+that the buffer is ``modified''.  If several buffers are modified, it
 may be time to save some with @kbd{C-x s} (@pxref{Save Commands}).
 Here is an example of a buffer list:
 
@@ -392,7 +392,7 @@ line:
 
 @table @kbd
 @item ~
-Mark the buffer ``unmodified.''  The command @kbd{~} does this
+Mark the buffer ``unmodified''.  The command @kbd{~} does this
 immediately when you type it.
 @item %
 Toggle 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.
   Iswitchb global minor mode provides convenient switching between
 buffers using substrings of their names.  It replaces the normal
 definitions of @kbd{C-x b}, @kbd{C-x 4 b}, @kbd{C-x 5 b}, and @kbd{C-x
-4 C-o} with alternative commands that are somewhat ``smarter.''
+4 C-o} with alternative commands that are somewhat ``smarter''.
 
   When one of these commands prompts you for a buffer name, you can
 type in just a substring of the name you want to choose.  As you enter
index fef7d2b28280242acd9aaff900f749ab5b71dc71..4b92376b8a9acf0f14e524a3ef2fffdf38c33e25 100644 (file)
@@ -331,7 +331,7 @@ you can do anything else in Emacs).  @xref{MS-DOS}.
   Just as you can run a compiler from Emacs and then visit the lines
 with compilation errors, you can also run @command{grep} and then
 visit the lines on which matches were found.  This works by treating
-the matches reported by @command{grep} as if they were ``errors.''
+the matches reported by @command{grep} as if they were ``errors''.
 The output buffer uses Grep mode, which is a variant of Compilation
 mode (@pxref{Compilation Mode}).
 
index c2851d4abd3eb6edf099f4782723dd4eb7aaaf08..a1e98bfcb92a5ebe3151074f1c8f5a79e872ae82 100644 (file)
@@ -624,7 +624,7 @@ for all users in a @file{default.el} file.  @xref{Init File}.
   These calendar commands display the dates and times of the phases of
 the moon (new moon, first quarter, full moon, last quarter).  This
 feature is useful for debugging problems that ``depend on the phase of
-the moon.''
+the moon''.
 
 @table @kbd
 @item M
@@ -822,7 +822,7 @@ Display Mayan date for selected day (@code{calendar-mayan-print-date}).
 
   Otherwise, move point to the date you want to convert, then type the
 appropriate command starting with @kbd{p} from the table above.  The
-prefix @kbd{p} is a mnemonic for ``print,'' since Emacs ``prints'' the
+prefix @kbd{p} is a mnemonic for ``print'', since Emacs ``prints'' the
 equivalent date in the echo area. @kbd{p o} displays the
 date in all forms known to Emacs.  You can also use @kbd{Mouse-3} and
 then choose @kbd{Other calendars} from the menu that appears.  This
@@ -901,7 +901,7 @@ Islamic, or French names.
 @findex calendar-hebrew-list-yahrzeits
 @cindex yahrzeits
   One common issue concerning the Hebrew calendar is the computation
-of the anniversary of a date of death, called a ``yahrzeit.''  The Emacs
+of the anniversary of a date of death, called a ``yahrzeit''.  The Emacs
 calendar includes a facility for such calculations.  If you are in the
 calendar, the command @kbd{M-x calendar-hebrew-list-yahrzeits} asks you for
 a 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:
 @noindent
 The 11 specifies November (the eleventh month), the 4 specifies Thursday
 (the fourth day of the week, where Sunday is numbered zero), and the
-second 4 specifies the fourth Thursday (1 would mean ``first,'' 2 would
-mean ``second,'' @minus{}2 would mean ``second-to-last,'' and so on).
+second 4 specifies the fourth Thursday (1 would mean ``first'', 2 would
+mean ``second'', @minus{}2 would mean ``second-to-last'', and so on).
 The month can be a single month or a list of months.  Thus you could change
 the 11 above to @samp{'(1 2 3)} and have the entry apply to the last
 Thursday of January, February, and March.  If the month is @code{t}, the
@@ -1681,7 +1681,7 @@ timeclock-change}.
   Once you've collected data from a number of time intervals, you can use
 @kbd{M-x timeclock-workday-remaining} to see how much time is left to
 work today (assuming a typical average of 8 hours a day), and @kbd{M-x
-timeclock-when-to-leave} which will calculate when you're ``done.''
+timeclock-when-to-leave} which will calculate when you're ``done''.
 
 @vindex timeclock-modeline-display
 @findex timeclock-modeline-display
index 4c6d6ef7bad746471143096c2653d911251c3042..222aa0f843448ef69db7c96e6e5a85ee41aa6385 100644 (file)
@@ -442,7 +442,7 @@ Directory for the documentation string file, which is used to
 initialize the Lisp variable @code{doc-directory}.
 @item EMACSLOADPATH
 A colon-separated list of directories@footnote{ Here and below,
-whenever we say ``colon-separated list of directories,'' it pertains
+whenever we say ``colon-separated list of directories'', it pertains
 to Unix and GNU/Linux systems.  On MS-DOS and MS-Windows, the
 directories are separated by semi-colons instead, since DOS/Windows
 file names might include a colon after a drive letter.}  to search for
index 3285b65e57bbf3840ff7059dd8072cfe03071021..9678adfe87f8f5586c4e1cc09f8f4bf2954c9033 100644 (file)
@@ -166,7 +166,7 @@ commands, even though strictly speaking the key is bound to a command.
 Usually we state the name of the command which really does the work in
 parentheses after mentioning the key that runs it.  For example, we
 will say that ``The command @kbd{C-n} (@code{next-line}) moves point
-vertically down,'' meaning that the command @code{next-line} moves
+vertically down'', meaning that the command @code{next-line} moves
 vertically down, and the key @kbd{C-n} is normally bound to it.
 
   Since we are discussing customization, we should tell you about
index 72b4961e2098608204a96abf7b885b52b3425905..cfd45de6aca98ccb9f225316bf0724f9abee67e8 100644 (file)
@@ -1922,7 +1922,7 @@ single click definition has run when the first click was received.
   This constrains what you can do with double clicks, but user interface
 designers say that this constraint ought to be followed in any case.  A
 double click should do something similar to the single click, only
-``more so.''  The command for the double-click event should perform the
+``more so''.  The command for the double-click event should perform the
 extra work for the double click.
 
   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-}.
   A frame includes areas that don't show text from the buffer, such as
 the mode line and the scroll bar.  You can tell whether a mouse button
 comes from a special area of the screen by means of dummy ``prefix
-keys.''  For example, if you click the mouse in the mode line, you get
+keys''.  For example, if you click the mouse in the mode line, you get
 the prefix key @code{mode-line} before the ordinary mouse-button symbol.
 Thus, here is how to define the command for clicking the first button in
 a mode line to run @code{scroll-up-command}:
index 301f8a764774937b9d52c09b83dc9466ea753efe..f3a1ae2fc997ab1a3a5dfb0f01f645bfbbdae073 100644 (file)
@@ -14,7 +14,7 @@ optionally some of its subdirectories as well.  You can use the normal
 Emacs commands to move around in this buffer, and special Dired
 commands to operate on the listed files.
 
-    The Dired buffer is ``read-only,'' and inserting text in it is not
+    The Dired buffer is ``read-only'', and inserting text in it is not
 allowed.  Ordinary printing characters such as @kbd{d} and @kbd{x} are
 redefined for special Dired commands.  Some Dired commands @dfn{mark}
 or @dfn{flag} the @dfn{current file} (that is, the file on the current
@@ -1252,7 +1252,7 @@ and erases all flags and marks.
 @findex wdired-change-to-wdired-mode
   Wdired is a special mode that allows you to perform file operations
 by editing the Dired buffer directly (the ``W'' in ``Wdired'' stands
-for ``writable.'')  To enter Wdired mode, type @kbd{C-x C-q}
+for ``writable''.)  To enter Wdired mode, type @kbd{C-x C-q}
 (@code{dired-toggle-read-only}) while in a Dired buffer.
 Alternatively, use the @samp{Immediate / Edit File Names} menu item.
 
@@ -1297,7 +1297,7 @@ buffer containing image-dired, corresponding to the marked files.
   You can also enter Image-Dired directly by typing @kbd{M-x
 image-dired}.  This prompts for a directory; specify one that has
 image files.  This creates thumbnails for all the images in that
-directory, and displays them all in the ``thumbnail buffer.''  This
+directory, and displays them all in the ``thumbnail buffer''.  This
 takes a long time if the directory contains many image files, and it
 asks for confirmation if the number of image files exceeds
 @code{image-dired-show-all-from-dir-max-files}.
@@ -1408,7 +1408,7 @@ the current buffer.
 
   The default comparison method (used if you type @key{RET} at the
 prompt) is to compare just the file names---each file name that does
-not appear in the other directory is ``different.''  You can specify
+not appear in the other directory is ``different''.  You can specify
 more stringent comparisons by entering a Lisp expression, which can
 refer to the variables @code{size1} and @code{size2}, the respective
 file sizes; @code{mtime1} and @code{mtime2}, the last modification
@@ -1416,7 +1416,7 @@ times in seconds, as floating point numbers; and @code{fa1} and
 @code{fa2}, the respective file attribute lists (as returned by the
 function @code{file-attributes}).  This expression is evaluated for
 each pair of like-named files, and if the expression's value is
-non-@code{nil}, those files are considered ``different.''
+non-@code{nil}, those files are considered ``different''.
 
   For instance, the sequence @code{M-x dired-compare-directories
 @key{RET} (> mtime1 mtime2) @key{RET}} marks files newer in this
index da33d352698321d020e550a97851b725fb383216..84e81f565cc0d613606e710ddecd153ee536f9a7 100644 (file)
@@ -448,7 +448,7 @@ and visits it with View mode enabled.
 @cindex synchronizing windows
 
   @dfn{Follow mode} is a minor mode that makes two windows, both
-showing the same buffer, scroll as a single tall ``virtual window.''
+showing the same buffer, scroll as a single tall ``virtual window''.
 To use Follow mode, go to a frame with just one window, split it into
 two side-by-side windows using @kbd{C-x 3}, and then type @kbd{M-x
 follow-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}.
 line (@pxref{Continuation Lines}).  When one line of text is split
 into multiple screen lines, the left fringe shows a curving arrow for
 each screen line except the first, indicating that ``this is not the
-real beginning.''  The right fringe shows a curving arrow for each
+real beginning''.  The right fringe shows a curving arrow for each
 screen line except the last, indicating that ``this is not the real
-end.''  If the line's direction is right-to-left (@pxref{Bidirectional
+end''.  If the line's direction is right-to-left (@pxref{Bidirectional
 Editing}), the meanings of the curving arrows in the fringes are
 swapped.
 
   The fringes indicate line truncation with short horizontal arrows
 meaning ``there's more text on this line which is scrolled
-horizontally out of view.''  Clicking the mouse on one of the arrows
+horizontally out of view''.  Clicking the mouse on one of the arrows
 scrolls the display horizontally in the direction of the arrow.
 
   The fringes can also indicate other things, such as buffer
index 25e5bb2af0dcf0bd535954c052084fd46ab8d8c9..13f60e8cfdf84619f279da3ea1d5875913576143 100644 (file)
@@ -72,7 +72,7 @@ developing GNU and promoting software freedom.''
 @sp 4
 @center @value{EDITION} Edition, Updated for Emacs Version @value{EMACSVER}.
 @sp 5
-@center Richard Stallman
+@center Richard Stallman et al.
 @page
 @vskip 0pt plus 1filll
 @insertcopying
@@ -288,11 +288,11 @@ The Mark and the Region
 Killing and Moving Text
 
 * Deletion and Killing:: Commands that remove text.
-* Yanking::             Recovering killed text.  Moving text. (Pasting.)
+* Yanking::             Commands that insert text.
 * Cut and Paste::       Clipboard and selections on graphical displays.
-* Accumulating Text::   Other ways of copying text.
+* Accumulating Text::   Other methods to add text to the buffer.
 * Rectangles::          Operating on text in rectangular areas.
-* CUA Bindings::        Using @kbd{C-x}, @kbd{C-c}, @kbd{C-v} to kill and yank.
+* CUA Bindings::        Using @kbd{C-x}/@kbd{C-c}/@kbd{C-v} to kill and yank.
 
 Deletion and Killing
 
@@ -309,9 +309,9 @@ Yanking
 * Earlier Kills::       Yanking something killed some time ago.
 * Appending Kills::     Several kills in a row all yank together.
 
-Killing and Yanking on Graphical Displays
+"Cut and Paste" Operations on Graphical Displays
 
-* Clipboard::           How Emacs interacts with the system clipboard.
+* Clipboard::           How Emacs uses the system clipboard.
 * Primary Selection::   The temporarily selected text selection.
 * Secondary Selection:: Cutting without altering point and mark.
 
@@ -328,7 +328,7 @@ Registers
 Controlling the Display
 
 * Scrolling::              Commands to move text up and down in a window.
-* Recentering::            A scrolling command that centers the current line.
+* Recentering::            A scroll command that centers the current line.
 * Auto Scrolling::         Redisplay scrolls text automatically when needed.
 * Horizontal Scrolling::   Moving text left and right in a window.
 * Narrowing::              Restricting display and editing to a portion
@@ -486,7 +486,7 @@ Multiple Windows
 * Displaying Buffers::  How Emacs picks a window for displaying a buffer.
 * Window Convenience::  Convenience functions for window handling.
 
-Displaying Buffers
+Displaying a Buffer in a Window
 
 * Window Choice::       How @code{display-buffer} works.
 
@@ -509,7 +509,7 @@ Frames and Graphical Displays
 * Tool Bars::           Enabling and disabling the tool bar.
 * Dialog Boxes::        Controlling use of dialog boxes.
 * Tooltips::            Displaying information at the current mouse position.
-* Mouse Avoidance::     Moving the mouse pointer out of the way.
+* Mouse Avoidance::     Preventing the mouse pointer from obscuring text.
 * Non-Window Terminals::  Multiple frames on terminals that show only one.
 * Text-Only Mouse::     Using the mouse in text terminals.
 
@@ -540,7 +540,7 @@ International Character Set Support
 * Charsets::                How Emacs groups its internal character codes.
 * Bidirectional Editing::   Support for right-to-left scripts.
 
-Modes
+Major and Minor Modes
 
 * Major Modes::         Text mode vs. Lisp mode vs. C mode...
 * Minor Modes::         Each minor mode is a feature you can turn on
@@ -600,7 +600,7 @@ Org Mode
 * TeX Print::           Commands for printing part of a file with TeX.
 * TeX Misc::            Customization of TeX mode, and related features.
 
-Editing Enriched Text
+Enriched Text
 
 * Enriched Mode::           Entering and exiting Enriched mode.
 * Hard and Soft Newlines::  There are two different kinds of newlines.
@@ -783,7 +783,7 @@ Introduction to Version Control
 * Version Control Systems:: Supported version control back-end systems.
 * VCS Concepts::            Words and concepts related to version control.
 * VCS Merging::             How file conflicts are handled.
-* VCS Changesets::          Changesets in version control.
+* VCS Changesets::          How changes are grouped.
 * VCS Repositories::        Where version control repositories are stored.
 * Types of Log File::       The VCS log in contrast to the ChangeLog.
 
@@ -798,10 +798,10 @@ VC Directory Mode
 * VC Directory Buffer::   What the buffer looks like and means.
 * VC Directory Commands:: Commands to use in a VC directory buffer.
 
-Multiple Branches of a File
+Version Control Branches
 
 * Switching Branches::    How to get to another existing branch.
-* VC Pull::               Updating a branch from another branch.
+* VC Pull::               Updating the contents of a branch.
 * Merging::               Transferring changes between branches.
 * Creating Branches::     How to start a new branch.
 
@@ -828,12 +828,12 @@ Change Logs
 Tags Tables
 
 * Tag Syntax::          Tag syntax for various types of code and text files.
-* Create Tags Table::   Creating a tags table with @code{etags}.
+* Create Tags Table::   Creating a tags table with @command{etags}.
 * Etags Regexps::       Create arbitrary tags using regular expressions.
 * Select Tags Table::   How to visit a tags table.
 * Find Tag::            Commands to find the definition of a specific tag.
 * Tags Search::         Using a tags table for searching and replacing.
-* List Tags::           Listing and finding tags defined in a file.
+* List Tags::           Using tags for completion, and listing them.
 
 @ifnottex
 Merging Files with Emerge
@@ -952,16 +952,9 @@ Customizing the Calendar and Diary
 * Sexp Diary Entries::     More flexible diary entries.
 @end ifnottex
 
-Document Viewing
-
-* DocView Navigation::  Navigating DocView buffers.
-* DocView Searching::   Searching inside documents.
-* DocView Slicing::     Specifying which part of a page is displayed.
-* DocView Conversion::  Influencing and triggering conversion.
-
 Sending Mail
 
-* Mail Format::         Format of the mail being composed.
+* Mail Format::         Format of a mail message.
 * Mail Headers::        Details of some standard mail header fields.
 * Mail Aliases::        Abbreviating and grouping mail addresses.
 * Mail Commands::       Special commands for editing mail being composed.
@@ -1012,6 +1005,13 @@ Gnus
 * Gnus Group Buffer::   A short description of Gnus group commands.
 * Gnus Summary Buffer:: A short description of Gnus summary commands.
 
+Document Viewing
+
+* DocView Navigation::  Navigating DocView buffers.
+* DocView Searching::   Searching inside documents.
+* DocView Slicing::     Specifying which part of a page is displayed.
+* DocView Conversion::  Influencing and triggering conversion.
+
 Running Shell Commands from Emacs
 
 * Single Shell::        How to run one shell command and return.
@@ -1061,10 +1061,10 @@ Customization
 * Variables::           Many Emacs commands examine Emacs variables
                           to decide what to do; by setting variables,
                           you can control their functioning.
-* Key Bindings::        Keymaps say what command each key runs.
+* Key Bindings::        The keymaps say what command each key runs.
                           By changing them, you can "redefine" keys.
 * Init File::           How to write common customizations in the
-                          @file{.emacs} file.
+                          initialization file.
 
 Easy Customization Interface
 
@@ -1098,7 +1098,7 @@ Customizing Key Bindings
 * Local Keymaps::       Major and minor modes have their own keymaps.
 * Minibuffer Maps::     The minibuffer uses its own local keymaps.
 * Rebinding::           How to redefine one key's meaning conveniently.
-* Init Rebinding::      Rebinding keys with your init file, @file{.emacs}.
+* Init Rebinding::      Rebinding keys with your initialization file.
 * Modifier Keys::       Using modifier keys in key bindings.
 * Function Keys::       Rebinding terminal function keys.
 * Named ASCII Chars::   Distinguishing @key{TAB} from @kbd{C-i}, and so on.
@@ -1107,7 +1107,7 @@ Customizing Key Bindings
                           before it can be executed.  This is done to protect
                           beginners from surprises.
 
-The Init File, @file{~/.emacs}
+The Emacs Initialization File
 
 * Init Syntax::         Syntax of constants in Emacs Lisp.
 * Init Examples::       How to do some things with an init file.
@@ -1167,7 +1167,7 @@ GTK resources
 
 * GTK Resource Basics::   Basic usage of GTK+ resources.
 * GTK Widget Names::      How GTK+ widgets are named.
-* GTK Names in Emacs::    GTK+ widgets used by Emacs.
+* GTK Names in Emacs::    GTK widgets used by Emacs.
 * GTK styles::            What can be customized in a GTK widget.
 
 Emacs and Mac OS / GNUstep
@@ -1183,7 +1183,8 @@ Emacs and Microsoft Windows/MS-DOS
 * Text and Binary::     Text files use CRLF to terminate lines.
 * Windows Files::       File-name conventions on Windows.
 * ls in Lisp::          Emulation of @code{ls} for Dired.
-* Windows HOME::        Where Emacs looks for your @file{.emacs}.
+* Windows HOME::        Where Emacs looks for your @file{.emacs} and
+                          where it starts up.
 * Windows Keyboard::    Windows-specific keyboard features.
 * Windows Mouse::       Windows-specific mouse features.
 * Windows Processes::   Running subprocesses on Windows.
index 72e0b36b7040da91e0214aac64c50052eab5d068..552580ef851bd90998d468cd580e4755b357c478 100644 (file)
@@ -151,7 +151,7 @@ input.  The mode line indicates Auto Advance mode with @samp{A}.
   If Skip Prefers mode is in effect, the @kbd{n} and @kbd{p} commands
 skip over differences in states ``prefer-A'' and ``prefer-B''
 (@pxref{State of Difference}).  Thus you see only differences for
-which neither version is presumed ``correct.''  The mode line
+which neither version is presumed ``correct''.  The mode line
 indicates Skip Prefers mode with @samp{S}.  This mode is only relevant
 when there is an ancestor.
 
index 10ba9ed1fa6fddb10ed828916e6132826433476e..31883a1f5ccd61ce80b784d9e4113a0f9c123d22 100644 (file)
@@ -97,7 +97,7 @@ minibuffer, with a directory omitted, specifies the file
 
   When typing a file name into the minibuffer, you can make use of a
 couple of shortcuts: a double slash is interpreted as ``ignore
-everything before the second slash in the pair,'' and @samp{~/} is
+everything before the second slash in the pair'', and @samp{~/} is
 interpreted as your home directory.  @xref{Minibuffer File}.
 
 @cindex environment variables in file names
@@ -1340,7 +1340,7 @@ correct the line numbers in the hunk headers, to ensure that the diff
 remains ``correct''.  To disable automatic line number correction,
 change the variable @code{diff-update-on-the-fly} to @code{nil}.
 
-  Diff mode treats each hunk as an ``error message,'' similar to
+  Diff mode treats each hunk as an ``error message'', similar to
 Compilation mode.  Thus, you can use commands such as @kbd{C-x '} to
 visit the corresponding source locations.  @xref{Compilation Mode}.
 
index 0dc99034ae6a51ecd4e87696032a134591fb025b..43e2e63863e595d9fbd02ed31c4ec53f5d2129cc 100644 (file)
@@ -207,7 +207,7 @@ the Fortran standard counts from 1.)  The variable
 @code{fortran-continuation-string} specifies what character to put in
 column 5.  A line that starts with a tab character followed by any digit
 except @samp{0} is also a continuation line.  We call this style of
-continuation @dfn{tab format}.  (Fortran 90 introduced ``free form,''
+continuation @dfn{tab format}.  (Fortran 90 introduced ``free form'',
 with another style of continuation lines).
 
 @vindex indent-tabs-mode @r{(Fortran mode)}
index eef38136583725dca72244ad894525f537aeb564..e8c5614ff58afaf52f14175f0a9017ded6813ea2 100644 (file)
@@ -96,7 +96,7 @@ of the major mode, then global bindings (@code{describe-bindings}).
 @item C-h c @var{key}
 Show the name of the command that the key sequence @var{key} is bound
 to (@code{describe-key-briefly}).  Here @kbd{c} stands for
-``character.''  For more extensive information on @var{key}, use
+``character''.  For more extensive information on @var{key}, use
 @kbd{C-h k}.
 @item C-h d @var{topics} @key{RET}
 Display the commands and variables whose documentation matches
index 766470e514be9106bda6bbea94947e053b167407..e7522a9db438fc426373b75dd77fab8fb4b740e5 100644 (file)
@@ -225,7 +225,7 @@ desired macro is at the head of the ring.  To execute the new macro
 ring head immediately, just type @kbd{C-k}.
 
   Note that Emacs treats the head of the macro ring as the ``last
-defined keyboard macro.''  For instance, @key{F4} will execute that
+defined keyboard macro''.  For instance, @key{F4} will execute that
 macro, and @kbd{C-x C-k n} will give it a name.
 
 @vindex kmacro-ring-max
index e498516ae7f6d9befaded236e55d56c6fe4f8a7b..f50e3085f2df167c694188adfbc2dbcbfae884b7 100644 (file)
@@ -88,7 +88,7 @@ Find file: /u2/emacs/src//etc/termcap
 @cindex slashes repeated in file name
 @findex file-name-shadow-mode
 Emacs interprets a double slash as ``ignore everything before the
-second slash in the pair.''  In the example above,
+second slash in the pair''.  In the example above,
 @file{/u2/emacs/src/} is ignored, so the argument you supplied is
 @file{/etc/termcap}.  The ignored part of the file name is dimmed if
 the terminal allows it.  (To disable this dimming, turn off File Name
index 50b6876799119536748f8e786dca0ea86340af80..b91763116b8fdfdf2413b0763bb21ca26ed6a31c 100644 (file)
@@ -1191,7 +1191,7 @@ that buffer.
 line mode, Term basically acts like Shell mode (@pxref{Shell Mode}).
 
   In char mode, each character is sent directly to the subshell, as
-``terminal input.''  Any ``echoing'' of your input is the
+``terminal input''.  Any ``echoing'' of your input is the
 responsibility of the subshell.  The sole exception is the terminal
 escape character, which by default is @kbd{C-c} (@pxref{Term Mode}).
 Any ``terminal output'' from the subshell goes into the buffer,
@@ -2076,10 +2076,10 @@ Insert a byte with a code typed in octal.
 Insert a byte with a code typed in hex.
 
 @item C-x [
-Move to the beginning of a 1k-byte ``page.''
+Move to the beginning of a 1k-byte ``page''.
 
 @item C-x ]
-Move to the end of a 1k-byte ``page.''
+Move to the end of a 1k-byte ``page''.
 
 @item M-g
 Move to an address specified in hex.
@@ -2149,7 +2149,7 @@ usually turned on.
 However, this may be slow if there are a lot of buffers in the
 desktop.  You can specify the maximum number of buffers to restore
 immediately with the variable @code{desktop-restore-eager}; the
-remaining buffers are restored ``lazily,'' when Emacs is idle.
+remaining buffers are restored ``lazily'', when Emacs is idle.
 
 @findex desktop-clear
 @vindex desktop-globals-to-clear
index af8882a1fd4575c04cd3cf041f44424629c5f426..0d05c8ac9c66aced2eb9499737a7844a5fc73c4b 100644 (file)
@@ -548,7 +548,7 @@ when invoked with the @samp{-nw} option.
 @cindex inferior processes under MS-DOS
 @findex compile @r{(MS-DOS)}
 @findex grep @r{(MS-DOS)}
-  Because MS-DOS is a single-process ``operating system,''
+  Because MS-DOS is a single-process ``operating system'',
 asynchronous subprocesses are not available.  In particular, Shell
 mode and its variants do not work.  Most Emacs features that use
 asynchronous subprocesses also don't work on MS-DOS, including
index df2d687114bbd37ec609ab0fe536b943fd6c5c75..9c1d908f88234dbb0952fa56673d829eff80e6e6 100644 (file)
@@ -1337,6 +1337,7 @@ fontset}, the @dfn{startup fontset} and the @dfn{default fontset}.
 @c FIXME?  The doc of *standard*-fontset-spec says:
 @c "You have the biggest chance to display international characters
 @c with correct glyphs by using the *standard* fontset." (my emphasis)
+@c See http://lists.gnu.org/archive/html/emacs-devel/2012-04/msg00430.html
 The default fontset is most likely to have fonts for a wide variety of
 non-@acronym{ASCII} characters, and is the default fallback for the
 other 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
 directionality when they are displayed.  The default value is
 @code{t}.
 
+@cindex base direction of paragraphs
+@cindex paragraph, base direction
   Each paragraph of bidirectional text can have its own @dfn{base
 direction}, either right-to-left or left-to-right.  (Paragraph
 @c paragraph-separate etc have no influence on this?
 boundaries are empty lines, i.e.@: lines consisting entirely of
-whitespace characters.)  Text in left-to-right paragraphs begins at
-the left margin of the window and is truncated or continued when it
-reaches the right margin.  By contrast, text in right-to-left
-paragraphs begins at the right margin and is continued or truncated at
-the left margin.
+whitespace characters.)  Text in left-to-right paragraphs begins on
+the screen at the left margin of the window and is truncated or
+continued when it reaches the right margin.  By contrast, text in
+right-to-left paragraphs is displayed starting at the right margin and
+is continued or truncated at the left margin.
 
 @vindex bidi-paragraph-direction
   Emacs determines the base direction of each paragraph dynamically,
index 5a10bf2c31c5e022e08addb0725b2ac878959de4..edf75f078d5c910ba7fdd9e61f83212d2b300831 100644 (file)
@@ -199,7 +199,7 @@ C-b} (@code{picture-motion-reverse}) moves in the opposite direction.
 With no argument, it moves to a point underneath the next
 ``interesting'' character that follows whitespace in the previous
 nonblank line.  ``Next'' here means ``appearing at a horizontal position
-greater than the one point starts out at.''  With an argument, as in
+greater than the one point starts out at''.  With an argument, as in
 @kbd{C-u M-@key{TAB}}, this command moves to the next such interesting
 character in the current line.  @kbd{M-@key{TAB}} does not change the
 text; it only moves point.  ``Interesting'' characters are defined by
index 5f7abcf3881d50072982f0fa7ca31ca67c2ed81b..23f808b93ea6095c898386ecda119b88b5317e82 100644 (file)
@@ -1109,7 +1109,7 @@ You can also use @kbd{M-x info-lookup-file} to look for documentation
 for a file name.
 
   If you use @kbd{C-h S} in a major mode that does not support it,
-it asks you to specify the ``symbol help mode.''  You should enter
+it asks you to specify the ``symbol help mode''.  You should enter
 a command such as @code{c-mode} that would select a major
 mode which @kbd{C-h S} does support.
 
@@ -1451,7 +1451,7 @@ with the Foldout package (@pxref{Foldout}).
 
   This section gives a brief description of the special features
 available in C, C++, Objective-C, Java, CORBA IDL, Pike and AWK modes.
-(These are called ``C mode and related modes.'')
+(These are called ``C mode and related modes''.)
 @ifinfo
 @xref{Top,, CC Mode, ccmode, CC Mode}, for more details.
 @end ifinfo
index 3b3605f800c6da76619e5292c53b8332e10849a1..6221bbac1a81c06ef72b5f5743e0126184968e94 100644 (file)
@@ -1355,7 +1355,7 @@ your Rmail file (@pxref{Rmail Inbox}).  When loaded for the first time,
 Rmail attempts to locate the @code{movemail} program and determine its
 version.  There are two versions of the @code{movemail} program: the
 native one, shipped with GNU Emacs (the ``emacs version'') and the one
-included in GNU mailutils (the ``mailutils version,''
+included in GNU mailutils (the ``mailutils version'',
 @pxref{movemail,,,mailutils,GNU mailutils}).  They support the same
 command line syntax and the same basic subset of options.  However, the
 Mailutils version offers additional features.
index 38f00f03532508c75036675b99e7e542d51536b3..9d30c6f4caf1368d2a12ac924db1dca8a5750fc1 100644 (file)
@@ -146,7 +146,7 @@ you don't like this feature, you can disable it by setting
   After exiting a search, you can search for the same string again by
 typing just @kbd{C-s C-s}.  The first @kbd{C-s} is the key that
 invokes incremental search, and the second @kbd{C-s} means ``search
-again.''  Similarly, @kbd{C-r C-r} searches backward for the last
+again''.  Similarly, @kbd{C-r C-r} searches backward for the last
 search string.  In determining the last search string, it doesn't
 matter whether the string was searched for with @kbd{C-s} or
 @kbd{C-r}.
@@ -552,7 +552,7 @@ therefore @samp{f} is a regular expression that matches the string
 @samp{ff}.)  Likewise, @samp{o} is a regular expression that matches
 only @samp{o}.  (When case distinctions are being ignored, these regexps
 also match @samp{F} and @samp{O}, but we consider this a generalization
-of ``the same string,'' rather than an exception.)
+of ``the same string'', rather than an exception.)
 
   Any two regular expressions @var{a} and @var{b} can be concatenated.
 The 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
 the beginning and end of the text matched by that construct.  Then,
 later on in the regular expression, you can use @samp{\} followed by the
 digit @var{d} to mean ``match the same text matched the @var{d}th time
-by the @samp{\( @dots{} \)} construct.''
+by the @samp{\( @dots{} \)} construct''.
 
 The strings matching the first nine @samp{\( @dots{} \)} constructs
 appearing 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}.
 @samp{\&} in @var{newstring} stands for the entire match being
 replaced.  @samp{\@var{d}} in @var{newstring}, where @var{d} is a
 digit, stands for whatever matched the @var{d}th parenthesized
-grouping in @var{regexp}.  (This is called a ``back reference.'')
+grouping in @var{regexp}.  (This is called a ``back reference''.)
 @samp{\#} refers to the count of replacements already made in this
 command, as a decimal number.  In the first replacement, @samp{\#}
 stands for @samp{0}; in the second, for @samp{1}; and so on.  For
index b118295ab1ad7e40fce212d3e284a7f84905653b..3bbdecc0176bd3bdc04d4b2cd1fe42c2c779940b 100644 (file)
@@ -534,16 +534,16 @@ large, and Emacs displays @samp{I feel pretty today}.  The bug report
 would need to provide all that information.  You should not assume
 that the problem is due to the size of the file and say, ``I visited a
 large file, and Emacs displayed @samp{I feel pretty today}.''  This is
-what we mean by ``guessing explanations.''  The problem might be due
+what we mean by ``guessing explanations''.  The problem might be due
 to the fact that there is a @samp{z} in the file name.  If this is so,
 then when we got your report, we would try out the problem with some
-``large file,'' probably with no @samp{z} in its name, and not see any
+``large file'', probably with no @samp{z} in its name, and not see any
 problem.  There is no way we could guess that we should try visiting a
 file with a @samp{z} in its name.
 
   You should not even say ``visit a file'' instead of @kbd{C-x C-f}.
 Similarly, rather than saying ``if I have three characters on the
-line,'' say ``after I type @kbd{@key{RET} A B C @key{RET} C-p},'' if
+line'', say ``after I type @kbd{@key{RET} A B C @key{RET} C-p}'', if
 that is the way you entered the text.
 
   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.
 
 @item
 A description of what behavior you observe that you believe is
-incorrect.  For example, ``The Emacs process gets a fatal signal,'' or,
+incorrect.  For example, ``The Emacs process gets a fatal signal'', or,
 ``The resulting text is as follows, which I think is wrong.''
 
 Of 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
 are available in the file @file{etc/DEBUG} in the Emacs distribution.
 That file also includes instructions for investigating problems
 whereby Emacs stops responding (many people assume that Emacs is
-``hung,'' whereas in fact it might be in an infinite loop).
+``hung'', whereas in fact it might be in an infinite loop).
 
 To find the file @file{etc/DEBUG} in your Emacs installation, use the
 directory name stored in the variable @code{data-directory}.
index ee0f00274541843f672e4d0123a3d139fc49cfce..72e01a368a19fce4ce000f92a536102bdc395399 100644 (file)
@@ -151,7 +151,7 @@ selects the window without moving point in it.
 @kindex C-x o
 @findex other-window
 With the keyboard, you can switch windows by typing @kbd{C-x o}
-(@code{other-window}).  That is an @kbd{o}, for ``other,'' not a zero.
+(@code{other-window}).  That is an @kbd{o}, for ``other'', not a zero.
 When there are more than two windows, this command moves through all the
 windows in a cyclic order, generally top to bottom and left to right.
 After the rightmost and bottommost window, it goes back to the one at
@@ -452,7 +452,7 @@ buffer.  @xref{Follow Mode}.
   The Windmove package defines commands for moving directionally
 between neighboring windows in a frame.  @kbd{M-x windmove-right}
 selects the window immediately to the right of the currently selected
-one, and similarly for the ``left,'' ``up,'' and ``down''
+one, and similarly for the ``left'', ``up'', and ``down''
 counterparts.  @kbd{M-x windmove-default-keybindings} binds these
 commands to @kbd{S-right} etc.; doing so disables shift selection for
 those keys (@pxref{Shift Selection}).
index 5333e3af3df30e990c1a296d4df55371736fef4b..9c323d7937fa37c3c75588b5aca2259fbce1e973 100644 (file)
@@ -1,3 +1,54 @@
+2012-04-27  Glenn Morris  <rgm@gnu.org>
+
+       * elisp.texi, vol1.texi, vol2.texi: Some fixes for detailed menu.
+       * modes.texi (Major Modes, Auto-Indentation):
+       * buffers.texi (Buffers): Some fixes for menu descriptions.
+
+2012-04-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+       * functions.texi (Simple Lambda, Argument List):
+       * eval.texi (Function Indirection): Avoid deprecated form.
+
+2012-04-27  Glenn Morris  <rgm@gnu.org>
+
+       * book-spine.texi, elisp.texi, vol1.texi, vol2.texi:
+       Add "et al." to authors.
+
+       * buffers.texi, commands.texi, compile.texi, control.texi:
+       * customize.texi, display.texi, eval.texi, files.texi, frames.texi:
+       * hash.texi, help.texi, intro.texi, keymaps.texi, lists.texi:
+       * modes.texi, numbers.texi, objects.texi, streams.texi:
+       * symbols.texi, syntax.texi, text.texi, tips.texi, variables.texi:
+       Use Texinfo recommended convention for quotes+punctuation.
+
+2012-04-27  Chong Yidong  <cyd@gnu.org>
+
+       * keymaps.texi (Scanning Keymaps): Fix description of NO-REMAP arg
+       to where-is-internal (Bug#10872).
+
+2012-04-27  Glenn Morris  <rgm@gnu.org>
+
+       * macros.texi (Indenting Macros): Fix typo.
+
+       * windows.texi (Basic Windows, Windows and Frames, Window Sizes)
+       (Resizing Windows, Deleting Windows, Selecting Windows)
+       (Choosing Window Options, Horizontal Scrolling)
+       (Cyclic Window Ordering, Window History, Dedicated Windows)
+       (Quitting Windows, Window Configurations, Textual Scrolling):
+       (Coordinates and Windows, Window Configurations)
+       (Window Parameters, Window Hooks): Copyedits.
+       (Splitting Windows, Deleting Windows):
+       Fix ignore-window-parameters logic.
+       (Selecting Windows, Choosing Window Options): Markup fixes.
+       (Window Start and End): Remove pointless example.
+       Remove cross-reference to deleted count-lines content.
+       (Textual Scrolling): Mention recenter-redisplay, recenter-top-bottom,
+       and recenter-positions.  Remove recenter example.
+
+       * elisp.texi, vol1.texi, vol2.texi: Bump VERSION and DATE.
+
+       * minibuf.texi (Intro to Minibuffers):
+       Tweak discussion of resizing minibuffer window.
+
 2012-04-26  Glenn Morris  <rgm@gnu.org>
 
        * elisp-covers.texi, front-cover-1.texi: Remove files.
index 270def6d8b34ebefb29e44406ba97be77d2a2030..721416316d2ab3e08fbb878c119ec03d97528038 100644 (file)
@@ -20,8 +20,8 @@
 @center by
 @center Bil Lewis,
 @center Dan LaLiberte,
-@center and the
-@center GNU Manual Group
+@center the GNU Manual Group,
+@center et al.
 @sp 5
 @center Free Software Foundation
 @bye
index 844b6423a52887adfad9c33589a578dbafc29cae..165faf32b098687ae73cb7f72765ee7701778c9b 100644 (file)
@@ -23,7 +23,7 @@ not be displayed in any windows.
 * Buffer File Name::    The buffer file name indicates which file is visited.
 * Buffer Modification:: A buffer is @dfn{modified} if it needs to be saved.
 * Modification Time::   Determining whether the visited file was changed
-                         ``behind Emacs's back''.
+                         "behind Emacs's back".
 * Read Only Buffers::   Modifying text is not allowed in a read-only buffer.
 * The Buffer List::     How to look at all the existing buffers.
 * Creating Buffers::    Functions that create buffers.
@@ -481,7 +481,7 @@ correspond to the new file name, unless the new name is already in
 use.
 
 If @var{filename} is @code{nil} or the empty string, that stands for
-``no visited file.''  In this case, @code{set-visited-file-name} marks
+``no visited file''.  In this case, @code{set-visited-file-name} marks
 the buffer as having no visited file, without changing the buffer's
 modified flag.
 
index bf26d83b7bfffa1da3c148e7af97828f98639b12..dea838462bb689cf62259a7c782edb92957d2cb8 100644 (file)
@@ -718,7 +718,7 @@ We use @code{"p"} because the numeric prefix argument is never
 message when called from a keyboard macro.
 
   The above method with the additional argument is usually best,
-because it allows callers to say ``treat this call as interactive.''
+because it allows callers to say ``treat this call as interactive''.
 But you can also do the job by testing @code{called-interactively-p}.
 
 @defun called-interactively-p kind
@@ -2325,7 +2325,7 @@ same symbol that would normally represent that combination of mouse
 button and modifier keys.  The information about the window part is kept
 elsewhere in the event---in the coordinates.  But
 @code{read-key-sequence} translates this information into imaginary
-``prefix keys,'' all of which are symbols: @code{header-line},
+``prefix keys'', all of which are symbols: @code{header-line},
 @code{horizontal-scroll-bar}, @code{menu-bar}, @code{mode-line},
 @code{vertical-line}, and @code{vertical-scroll-bar}.  You can define
 meanings 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}.
 
 @defvar unread-command-char
 This variable holds a character to be read as command input.
-A value of -1 means ``empty.''
+A value of -1 means ``empty''.
 
 This variable is mostly obsolete now that you can use
 @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
 change the major mode of the current buffer temporarily to a special
 major mode, which should have a command to go back to the previous mode.
 (The @kbd{e} command in Rmail uses this technique.)  Or, if you wish to
-give the user different text to edit ``recursively,'' create and select
+give the user different text to edit ``recursively'', create and select
 a new buffer in a special mode.  In this mode, define a command to
 complete the processing and go back to the previous buffer.  (The
 @kbd{m} command in Rmail does this.)
index ead75942b244ca5640c12f9a60ee76eb040b6b2b..8cebd9fade6e36e6238a0628c6eecdd813ba1a70 100644 (file)
@@ -274,7 +274,7 @@ reloading each file after recompiling it.
 use a special Lisp reader construct, @samp{#@@@var{count}}.  This
 construct skips the next @var{count} characters.  It also uses the
 @samp{#$} construct, which stands for ``the name of this file, as a
-string.''  It is usually best not to use these constructs in Lisp source
+string''.  It is usually best not to use these constructs in Lisp source
 files, since they are not designed to be clear to humans reading the
 file.
 
index aa24291d89299a18169e389e2ed0cefc6d46361f..d6dee7ecf91b9fe5bc4e7aaea6f91fe925925299 100644 (file)
@@ -220,7 +220,7 @@ non-@code{nil}, the clause ``succeeds''; then @code{cond} evaluates its
 @var{body-forms}, and the value of the last of @var{body-forms} becomes
 the value of the @code{cond}.  The remaining clauses are ignored.
 
-If the value of @var{condition} is @code{nil}, the clause ``fails,'' so
+If the value of @var{condition} is @code{nil}, the clause ``fails'', so
 the @code{cond} moves on to the following clause, trying its
 @var{condition}.
 
@@ -622,7 +622,7 @@ error is signaled with data @code{(@var{tag} @var{value})}.
 @subsection Examples of @code{catch} and @code{throw}
 
   One way to use @code{catch} and @code{throw} is to exit from a doubly
-nested loop.  (In most languages, this would be done with a ``goto.'')
+nested loop.  (In most languages, this would be done with a ``goto''.)
 Here we compute @code{(foo @var{i} @var{j})} for @var{i} and @var{j}
 varying from 0 to 9:
 
index 04b3cdd11f0956f46edda02b66e000828e54c897..c8e60fd84f4a6a41ab7ca4f727e95e572b552419 100644 (file)
@@ -817,7 +817,7 @@ For example,
 
 @noindent
 describes a variable for which @code{t} means yes, @code{nil} means no,
-and @code{foo} means ``ask.''
+and @code{foo} means ``ask''.
 
 @item (other @var{value})
 This alternative can match any Lisp value, but if the user chooses this
@@ -834,7 +834,7 @@ For example,
 
 @noindent
 describes a variable for which @code{t} means yes, @code{nil} means no,
-and anything else means ``ask.''  If the user chooses @samp{Ask} from
+and anything else means ``ask''.  If the user chooses @samp{Ask} from
 the menu of alternatives, that specifies the value @code{foo}; but any
 other value (not @code{t}, @code{nil} or @code{foo}) displays as
 @samp{Ask}, just like @code{foo}.
index 0113ae86358ad170ee963e1cd214c8ec78bc6dce..4ec3b8bf08ad8f0cd034564f6cf3ae818fda8fcc 100644 (file)
@@ -155,7 +155,7 @@ boundary.  @xref{Filling}.
 indicate truncated and continued lines (@pxref{Fringes}).  On a text
 terminal, a @samp{$} in the rightmost column of the window indicates
 truncation; a @samp{\} on the rightmost column indicates a line that
-``wraps.''  (The display table can specify alternate characters to use
+``wraps''.  (The display table can specify alternate characters to use
 for this; @pxref{Display Tables}).
 
 @defopt truncate-lines
@@ -451,7 +451,7 @@ prints the message of @var{reporter} followed by word ``done'' in the
 echo area.
 
 You should always call this function and not hope for
-@code{progress-reporter-update} to print ``100%.''  Firstly, it may
+@code{progress-reporter-update} to print ``100%''.  Firstly, it may
 never print it, there are many good reasons for this not to happen.
 Secondly, ``done'' is more explicit.
 @end defun
@@ -1308,7 +1308,7 @@ The return value is @var{overlay}.
 This is the only valid way to change the endpoints of an overlay.  Do
 not try modifying the markers in the overlay by hand, as that fails to
 update other vital data structures and can cause some overlays to be
-``lost.''
+``lost''.
 @end defun
 
 @defun remove-overlays &optional start end name value
@@ -1385,7 +1385,7 @@ foo
 @end example
 
   Emacs stores the overlays of each buffer in two lists, divided
-around an arbitrary ``center position.''  One list extends backwards
+around an arbitrary ``center position''.  One list extends backwards
 through the buffer from that center position, and the other extends
 forwards from that center position.  The center position can be anywhere
 in the buffer.
@@ -4359,7 +4359,7 @@ $$\pmatrix{ 2 & -1 &  0 \cr
 @end ifnottex
 
 @item disabled
-Specifies transforming the image so that it looks ``disabled.''
+Specifies transforming the image so that it looks ``disabled''.
 @end table
 
 @item :mask @var{mask}
@@ -5531,7 +5531,7 @@ Any @var{args} are passed to @var{map-function}.
 @subsection Abstract Display Example
 
   Here is a simple example using functions of the ewoc package to
-implement a ``color components display,'' an area in a buffer that
+implement a ``color components display'', an area in a buffer that
 represents a vector of three integers (itself representing a 24-bit RGB
 value) in various ways.
 
@@ -5842,7 +5842,7 @@ display the character @var{c} as those glyphs; @pxref{Glyphs}).
 
   @strong{Warning:} if you use the display table to change the display
 of newline characters, the whole buffer will be displayed as one long
-``line.''
+``line''.
 
   The display table also has six ``extra slots'' which serve special
 purposes.  Here is a table of their meanings; @code{nil} in any slot
@@ -6153,7 +6153,7 @@ capability (@samp{vb}).
 
 @defvar ring-bell-function
 If this is non-@code{nil}, it specifies how Emacs should ``ring the
-bell.''  Its value should be a function of no arguments.  If this is
+bell''.  Its value should be a function of no arguments.  If this is
 non-@code{nil}, it takes precedence over the @code{visible-bell}
 variable.
 @end defvar
@@ -6162,7 +6162,7 @@ variable.
 @section Window Systems
 
   Emacs works with several window systems, most notably the X Window
-System.  Both Emacs and X use the term ``window,'' but use it
+System.  Both Emacs and X use the term ``window'', but use it
 differently.  An Emacs frame is a single window as far as X is
 concerned; the individual Emacs windows are not known to X at all.
 
index 4319d5eddda46d0290ef7c2e94bdd66855122876..9c5ae73f718458004a174dcc5754aa25e28028db 100644 (file)
@@ -5,11 +5,10 @@
 @c %**end of header
 
 @c Version of the manual and of Emacs.
-@c Please remember to update the edition number in README as well.
-@c And also the copies in vol1.texi and vol2.texi.
-@set VERSION  3.0
+@c Please remember to update these in vol1.texi and vol2.texi as well.
+@set VERSION  3.1
 @include emacsver.texi
-@set DATE July 2009
+@set DATE July 2012
 
 @c in general, keep the following line commented out, unless doing a
 @c copy of this manual that will be published.  The manual should go
@@ -73,8 +72,8 @@ developing GNU and promoting software freedom.''
 @subtitle For Emacs Version @value{EMACSVER}
 @subtitle Revision @value{VERSION}, @value{DATE}
 
-@author by Bil Lewis, Dan LaLiberte, Richard Stallman
-@author and the GNU Manual Group
+@author by Bil Lewis, Dan LaLiberte, Richard Stallman,
+@author the GNU Manual Group, et al.
 @page
 @vskip 0pt plus 1filll
 @insertcopying
@@ -460,7 +459,7 @@ Functions
 * Closures::                Functions that enclose a lexical environment.
 * Obsolete Functions::      Declaring functions obsolete.
 * Inline Functions::        Defining functions that the compiler
-                              will open code.
+                              will expand inline.
 * Declaring Functions::     Telling the compiler that a function is defined.
 * Function Safety::         Determining whether a function is safe to call.
 * Related Topics::          Cross-references to specific Lisp primitives
@@ -493,7 +492,7 @@ Common Problems Using Macros
 * Eval During Expansion::  Don't evaluate them; put them in the expansion.
 * Repeated Expansion::     Avoid depending on how many times expansion is done.
 
-Writing Customization Definitions
+Customization Settings
 
 * Common Keywords::         Common keyword arguments for all kinds of
                               customization declarations.
@@ -754,6 +753,7 @@ Defining Menus
                               various features.
 * Menu Separators::         Drawing a horizontal line through a menu.
 * Alias Menu Items::        Using command aliases in menu items.
+* Toolkit Differences::     Not all toolkits provide the same features.
 
 Major and Minor Modes
 
@@ -824,6 +824,21 @@ Multiline Font Lock Constructs
 * Region to Refontify::     Controlling which region gets refontified
                               after a buffer change.
 
+Automatic Indentation of code
+
+* SMIE::                    A simple minded indentation engine.
+
+Simple Minded Indentation Engine
+
+* SMIE setup::              SMIE setup and features.
+* Operator Precedence Grammars:: A very simple parsing technique.
+* SMIE Grammar::            Defining the grammar of a language.
+* SMIE Lexer::              Defining tokens.
+* SMIE Tricks::             Working around the parser's limitations.
+* SMIE Indentation::        Specifying indentation rules.
+* SMIE Indentation Helpers:: Helper functions for indentation rules.
+* SMIE Indentation Example:: Sample indentation rules.
+
 Documentation
 
 * Documentation Basics::    Where doc strings are defined and stored.
@@ -1220,8 +1235,7 @@ Processes
 * Datagrams::               UDP network connections.
 * Low-Level Network::       Lower-level but more general function
                               to create connections and servers.
-* Misc Network::            Additional relevant functions for
-                              network connections.
+* Misc Network::            Additional relevant functions for net connections.
 * Serial Ports::            Communicating with serial ports.
 * Byte Packing::            Using bindat to pack and unpack binary data.
 
@@ -1341,6 +1355,7 @@ Images
 * GIF Images::              Special features for GIF format.
 * TIFF Images::             Special features for TIFF format.
 * PostScript Images::       Special features for PostScript format.
+* ImageMagick Images::      Special features available through ImageMagick.
 * Other Image Types::       Various other formats are supported.
 * Defining Images::         Convenient ways to define an image for later use.
 * Showing Images::          Convenient ways to display an image once
@@ -1396,13 +1411,6 @@ Operating System Interface
 * Notifications::           Desktop notifications.
 * Dynamic Libraries::       On-demand loading of support libraries.
 
-Preparing Lisp code for distribution
-
-* Packaging Basics::        The basic concepts of Emacs Lisp packages.
-* Simple Packages::         How to package a single .el file.
-* Multi-file Packages::     How to package multiple files.
-* Package Archives::        Maintaining package archives.
-
 Starting Up Emacs
 
 * Startup Summary::         Sequence of actions Emacs performs at startup.
@@ -1421,6 +1429,13 @@ Terminal Input
 * Input Modes::             Options for how input is processed.
 * Recording Input::         Saving histories of recent or all input events.
 
+Preparing Lisp code for distribution
+
+* Packaging Basics::        The basic concepts of Emacs Lisp packages.
+* Simple Packages::         How to package a single .el file.
+* Multi-file Packages::     How to package multiple files.
+* Package Archives::        Maintaining package archives.
+
 Tips and Conventions
 
 * Coding Conventions::      Conventions for clean and robust programs.
index 4c1150d1a5103ec30cfc4536c67acca51362dbc1..76059079ca15d3c3d7ad8e1004d6565557d853b6 100644 (file)
@@ -103,7 +103,7 @@ interpretation.  @xref{Command Loop}.
 @dfn{form} (or an @dfn{expression}).  How Emacs evaluates a form
 depends on its data type.  Emacs has three different kinds of form
 that are evaluated differently: symbols, lists, and ``all other
-types.''  This section describes all three kinds, one by one, starting
+types''.  This section describes all three kinds, one by one, starting
 with the ``all other types'' which are self-evaluating forms.
 
 @menu
@@ -304,6 +304,22 @@ function, not a symbol.
 Executing the function itself evaluates its body; this does involve
 symbol function indirection when calling @code{erste}.
 
+  This form is rarely used and is now deprecated.  Instead, you should write it
+as:
+
+@smallexample
+@group
+(funcall (lambda (arg) (erste arg))
+         '(1 2 3))
+@end group
+@end smallexample
+or just
+@smallexample
+@group
+(let ((arg '(1 2 3))) (erste arg))
+@end group
+@end smallexample
+
   The built-in function @code{indirect-function} provides an easy way to
 perform symbol function indirection explicitly.
 
index 3597d9f80c46c1269a58f62a4b6b3486b889fd35..1af904aff41fe8374315c4cb6d1c5f79e26f9f28 100644 (file)
@@ -71,8 +71,8 @@ back into the file.
 
   In spite of the distinction between files and buffers, people often
 refer to a file when they mean a buffer and vice-versa.  Indeed, we say,
-``I am editing a file,'' rather than, ``I am editing a buffer that I
-will soon save as a file of the same name.''  Humans do not usually need
+``I am editing a file'', rather than, ``I am editing a buffer that I
+will soon save as a file of the same name''.  Humans do not usually need
 to make the distinction explicit.  When dealing with a computer program,
 however, it is good to keep the distinction in mind.
 
@@ -688,7 +688,7 @@ The file lock is really a file, a symbolic link with a special name,
 stored in the same directory as the file you are editing.
 
   When you access files using NFS, there may be a small probability that
-you and another user will both lock the same file ``simultaneously.''
+you and another user will both lock the same file ``simultaneously''.
 If this happens, it is possible for the two users to make changes
 simultaneously, but Emacs will still warn the user who saves second.
 Also, the detection of modification of a buffer visiting a file changed
@@ -1806,7 +1806,7 @@ return value, but backup version numbers are kept.
 @end defun
 
 @defun file-name-extension filename &optional period
-This function returns @var{filename}'s final ``extension,'' if any,
+This function returns @var{filename}'s final ``extension'', if any,
 after applying @code{file-name-sans-versions} to remove any
 version/backup part.  The extension, in a file name, is the part that
 follows the last @samp{.} in the last name component (minus any
@@ -2798,7 +2798,7 @@ unlocking the buffer if it is locked.
 possibly others to be added in the future.  It need not implement all
 these operations itself---when it has nothing special to do for a
 certain operation, it can reinvoke the primitive, to handle the
-operation ``in the usual way.''  It should always reinvoke the primitive
+operation ``in the usual way''.  It should always reinvoke the primitive
 for an operation it does not recognize.  Here's one way to do this:
 
 @smallexample
index d824f51e47ef0c979c46d93a7bcc68ee80e33680..869f03e2273fe64802c8318a48cd8319f963cfdb 100644 (file)
@@ -882,7 +882,7 @@ This variable specifies how to blink the cursor.  Each element has the
 form @code{(@var{on-state} . @var{off-state})}.  Whenever the cursor
 type equals @var{on-state} (comparing using @code{equal}), the
 corresponding @var{off-state} specifies what the cursor looks like
-when it blinks ``off.''  Both @var{on-state} and @var{off-state}
+when it blinks ``off''.  Both @var{on-state} and @var{off-state}
 should be suitable values for the @code{cursor-type} frame parameter.
 
 There are various defaults for how to blink each type of cursor, if
@@ -1069,7 +1069,7 @@ characters rather than pixels.
 These values include the internal borders, and windows' scroll bars
 and fringes (which belong to individual windows, not to the frame
 itself).  The exact value of the heights depends on the window-system
-and toolkit in use.  With Gtk+, the height does not include any tool
+and toolkit in use.  With GTK+, the height does not include any tool
 bar or menu bar.  With the Motif or Lucid toolkits, it includes the
 tool bar but not the menu bar.  In a graphical version with no
 toolkit, it includes both the tool bar and menu bar.  For a text
@@ -1532,7 +1532,7 @@ track of such changes.  @xref{Misc Events}.
   Most window systems use a desktop metaphor.  Part of this metaphor is
 the idea that windows are stacked in a notional third dimension
 perpendicular to the screen surface, and thus ordered from ``highest''
-to ``lowest.''  Where two windows overlap, the one higher up covers
+to ``lowest''.  Where two windows overlap, the one higher up covers
 the one underneath.  Even a window at the bottom of the stack can be
 seen if no other window overlaps it.
 
@@ -1540,7 +1540,7 @@ seen if no other window overlaps it.
 @cindex lowering a frame
   A window's place in this ordering is not fixed; in fact, users tend
 to change the order frequently.  @dfn{Raising} a window means moving
-it ``up,'' to the top of the stack.  @dfn{Lowering} a window means
+it ``up'', to the top of the stack.  @dfn{Lowering} a window means
 moving it to the bottom of the stack.  This motion is in the notional
 third dimension only, and does not change the position of the window
 on the screen.
@@ -1814,7 +1814,7 @@ the menu keymap as necessary.
   A dialog box is a variant of a pop-up menu---it looks a little
 different, it always appears in the center of a frame, and it has just
 one level and one or more buttons.  The main use of dialog boxes is
-for asking questions that the user can answer with ``yes,'' ``no,''
+for asking questions that the user can answer with ``yes'', ``no'',
 and a few other alternatives.  With a single button, they can also
 force the user to acknowledge important information.  The functions
 @code{y-or-n-p} and @code{yes-or-no-p} use dialog boxes instead of the
@@ -2028,7 +2028,7 @@ colors.)
   These functions provide a way to determine which color names are
 valid, and what they look like.  In some cases, the value depends on the
 @dfn{selected frame}, as described below; see @ref{Input Focus}, for the
-meaning of the term ``selected frame.''
+meaning of the term ``selected frame''.
 
   To read user input of color names with completion, use
 @code{read-color} (@pxref{High-Level Completion, read-color}).
@@ -2425,7 +2425,7 @@ software (as a string).  Really this means whoever distributes the X
 server.
 
 When the developers of X labeled software distributors as
-``vendors,'' they showed their false assumption that no system could
+``vendors'', they showed their false assumption that no system could
 ever be developed and distributed noncommercially.
 @end defun
 
index 73bdefe19fc204fa7c389f808f9862c7cced5713..b5cf38ed6f22ef0dfe0b4ab8b3f59354cd64db8f 100644 (file)
@@ -266,13 +266,12 @@ function is the value returned by the last element of the body.
 @end example
 
 @noindent
-We can call this function by writing it as the @sc{car} of an
-expression, like this:
+We can call this function by passing it to @code{funcall}, like this:
 
 @example
 @group
-((lambda (a b c) (+ a b c))
- 1 2 3)
+(funcall (lambda (a b c) (+ a b c))
        1 2 3)
 @end group
 @end example
 
@@ -287,8 +286,8 @@ this example:
 
 @example
 @group
-((lambda (a b c) (+ a b c))
- 1 (* 2 3) (- 5 4))
+(funcall (lambda (a b c) (+ a b c))
        1 (* 2 3) (- 5 4))
 @end group
 @end example
 
@@ -399,16 +398,16 @@ after a @code{&rest} argument.
   Here are some examples of argument lists and proper calls:
 
 @smallexample
-((lambda (n) (1+ n))                ; @r{One required:}
1)                                 ; @r{requires exactly one argument.}
+(funcall (lambda (n) (1+ n))        ; @r{One required:}
        1)                         ; @r{requires exactly one argument.}
      @result{} 2
-((lambda (n &optional n1)           ; @r{One required and one optional:}
-         (if n1 (+ n n1) (1+ n)))   ; @r{1 or 2 arguments.}
- 1 2)
+(funcall (lambda (n &optional n1)   ; @r{One required and one optional:}
+           (if n1 (+ n n1) (1+ n))) ; @r{1 or 2 arguments.}
        1 2)
      @result{} 3
-((lambda (n &rest ns)               ; @r{One required and one rest:}
-         (+ n (apply '+ ns)))       ; @r{1 or more arguments.}
- 1 2 3 4 5)
+(funcall (lambda (n &rest ns)       ; @r{One required and one rest:}
+           (+ n (apply '+ ns)))     ; @r{1 or more arguments.}
        1 2 3 4 5)
      @result{} 15
 @end smallexample
 
index 0ca4c915a65abc6428ff2a94f594d20beafd76ea..1aa6004b3a66eb91753a39337284126eb146f93e 100644 (file)
@@ -74,13 +74,13 @@ alternatives:
 Keys which are numbers are ``the same'' if they are @code{equal}, that
 is, if they are equal in value and either both are integers or both
 are floating point numbers; otherwise, two distinct objects are never
-``the same.''
+``the same''.
 
 @item eq
 Any two distinct Lisp objects are ``different'' as keys.
 
 @item equal
-Two Lisp objects are ``the same,'' as keys, if they are equal
+Two Lisp objects are ``the same'', as keys, if they are equal
 according to @code{equal}.
 @end table
 
@@ -128,7 +128,7 @@ doing that takes some extra time.
 The default size is 65.
 
 @item :rehash-size @var{rehash-size}
-When you add an association to a hash table and the table is ``full,''
+When you add an association to a hash table and the table is ``full'',
 it grows automatically.  This value specifies how to make the hash table
 larger, at that time.
 
@@ -262,7 +262,7 @@ will use @var{test-fn} to compare key values, and @var{hash-fn} to compute
 a ``hash code'' from a key value.
 
 The function @var{test-fn} should accept two arguments, two keys, and
-return non-@code{nil} if they are considered ``the same.''
+return non-@code{nil} if they are considered ``the same''.
 
 The function @var{hash-fn} should accept one argument, a key, and return
 an integer that is the ``hash code'' of that key.  For good results, the
index 5dfb2b05ff8206ab887fe867fa5a8f940f83ed68..762b42113f2da750d2e776948fce4e8db9d6dc5a 100644 (file)
@@ -599,7 +599,7 @@ subcommands of the prefix key.
 
 @defopt help-event-list
 The value of this variable is a list of event types that serve as
-alternative ``help characters.''  These events are handled just like the
+alternative ``help characters''.  These events are handled just like the
 event specified by @code{help-char}.
 @end defopt
 
index d3a5b253162ce187c03f768723d3a64536b3f03a..37d2cc55a9e41d040a95d64cbebdfe49497a2d56 100644 (file)
@@ -146,7 +146,7 @@ printer'' refer to those routines in Lisp that convert textual
 representations of Lisp objects into actual Lisp objects, and vice
 versa.  @xref{Printed Representation}, for more details.  You, the
 person reading this manual, are thought of as ``the programmer'' and are
-addressed as ``you.''  ``The user'' is the person who uses Lisp
+addressed as ``you''.  ``The user'' is the person who uses Lisp
 programs, including those you write.
 
 @cindex typographic conventions
@@ -219,7 +219,7 @@ the examples in this manual, this is indicated with @samp{@result{}}:
 @end example
 
 @noindent
-You can read this as ``@code{(car '(1 2))} evaluates to 1.''
+You can read this as ``@code{(car '(1 2))} evaluates to 1''.
 
   When a form is a macro call, it expands into a new form for Lisp to
 evaluate.  We show the result of the expansion with
index b12752fdeea313c230c2d0928fb6b7b40ad59a99..337364cb2ce4038b5ab455a1c47308b44283778f 100644 (file)
@@ -1032,7 +1032,7 @@ binding of @var{othertype} in @var{othermap} and uses that.
 This feature permits you to define one key as an alias for another key.
 For example, an entry whose @sc{car} is the keymap called @code{esc-map}
 and whose @sc{cdr} is 32 (the code for @key{SPC}) means, ``Use the global
-binding of @kbd{Meta-@key{SPC}}, whatever that may be.''
+binding of @kbd{Meta-@key{SPC}}, whatever that may be''.
 @end itemize
 
 @item @var{symbol}
@@ -1887,9 +1887,9 @@ maps searched are @var{keymap} and the global keymap.  If @var{keymap}
 is a list of keymaps, only those keymaps are searched.
 
 Usually it's best to use @code{overriding-local-map} as the expression
-for @var{keymap}.  Then @code{where-is-internal} searches precisely the
-keymaps that are active.  To search only the global map, pass
-@code{(keymap)} (an empty keymap) as @var{keymap}.
+for @var{keymap}.  Then @code{where-is-internal} searches precisely
+the keymaps that are active.  To search only the global map, pass the
+value @code{(keymap)} (an empty keymap) as @var{keymap}.
 
 If @var{firstonly} is @code{non-ascii}, then the value is a single
 vector 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
 follow indirect keymap bindings.  This makes it possible to search for
 an indirect definition itself.
 
-When command remapping is in effect (@pxref{Remapping Commands}),
-@code{where-is-internal} figures out when a command will be run due to
-remapping and reports keys accordingly.  It also returns @code{nil} if
-@var{command} won't really be run because it has been remapped to some
-other command.  However, if @var{no-remap} is non-@code{nil}.
-@code{where-is-internal} ignores remappings.
+The fifth argument, @var{no-remap}, determines how this function
+treats command remappings (@pxref{Remapping Commands}).  There are two
+cases of interest:
 
-@smallexample
-@group
-(where-is-internal 'describe-function)
-    @result{} ([8 102] [f1 102] [help 102]
-         [menu-bar help-menu describe describe-function])
-@end group
-@end smallexample
+@table @asis
+@item If a command @var{other-command} is remapped to @var{command}:
+If @var{no-remap} is @code{nil}, find the bindings for
+@var{other-command} and treat them as though they are also bindings
+for @var{command}.  If @var{no-remap} is non-@code{nil}, include the
+vector @code{[remap @var{other-command}]} in the list of possible key
+sequences, instead of finding those bindings.
+
+@item If @var{command} is remapped to @var{other-command}:
+If @var{no-remap} is @code{nil}, return the bindings for
+@var{other-command} rather than @var{command}.  If @var{no-remap} is
+non-@code{nil}, return the bindings for @var{command}, ignoring the
+fact that it is remapped.
+@end table
 @end defun
 
 @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
 which toggles the variable @code{debug-on-error}.
 
 @dfn{Radio buttons} are a group of menu items, in which at any time one
-and only one is ``selected.''  There should be a variable whose value
+and only one is ``selected''.  There should be a variable whose value
 says which one is selected at any time.  The @var{selected} form for
 each radio button in the group should check whether the variable has the
 right value for selecting that button.  Clicking on the button should
@@ -2424,7 +2428,7 @@ Next we define the menu items:
 Note the symbols which the bindings are ``made for''; these appear
 inside square brackets, in the key sequence being defined.  In some
 cases, this symbol is the same as the command name; sometimes it is
-different.  These symbols are treated as ``function keys,'' but they are
+different.  These symbols are treated as ``function keys'', but they are
 not real function keys on the keyboard.  They do not affect the
 functioning of the menu itself, but they are ``echoed'' in the echo area
 when the user selects from the menu, and they appear in the output of
index 2325915d76ab4f110041139094a5bd3263c49147..423bc7b6d8a2604c5c2054e2699c9367280b2df6 100644 (file)
@@ -34,12 +34,12 @@ object that represents an ordered pair.  That is, it has two slots,
 and each slot @dfn{holds}, or @dfn{refers to}, some Lisp object.  One
 slot is known as the @sc{car}, and the other is known as the @sc{cdr}.
 (These names are traditional; see @ref{Cons Cell Type}.)  @sc{cdr} is
-pronounced ``could-er.''
+pronounced ``could-er''.
 
   We say that ``the @sc{car} of this cons cell is'' whatever object
 its @sc{car} slot currently holds, and likewise for the @sc{cdr}.
 
-  A list is a series of cons cells ``chained together,'' so that each
+  A list is a series of cons cells ``chained together'', so that each
 cell refers to the next one.  There is one cons cell for each element
 of the list.  By convention, the @sc{car}s of the cons cells hold the
 elements 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}.
 
 @code{rassoc} is like @code{assoc} except that it compares the @sc{cdr} of
 each @var{alist} association instead of the @sc{car}.  You can think of
-this as ``reverse @code{assoc},'' finding the key for a given value.
+this as ``reverse @code{assoc}'', finding the key for a given value.
 @end defun
 
 @defun assq key alist
@@ -1673,7 +1673,7 @@ a @sc{cdr} @code{eq} to @var{value}.
 
 @code{rassq} is like @code{assq} except that it compares the @sc{cdr} of
 each @var{alist} association instead of the @sc{car}.  You can think of
-this as ``reverse @code{assq},'' finding the key for a given value.
+this as ``reverse @code{assq}'', finding the key for a given value.
 
 For example:
 
index bc4cec3307d3f90de129f1e4cff1560e3b75e886..3984e5c03aaee8ce0ee1f54e2eb42b388ed8d6fa 100644 (file)
@@ -604,7 +604,7 @@ either.
 @section Indenting Macros
 
   Within a macro definition, you can use the @code{declare} form
-(@pxref{Defining Macros}) to specify how to @key{TAB} should indent
+(@pxref{Defining Macros}) to specify how @key{TAB} should indent
 calls to the macro.  An indentation specification is written like this:
 
 @example
index c840eb6ded0dc02c1d83de4c9b14d79271277eb1..8ce7e0d4686a2b8a67d5eff8ee2b257676d343d2 100644 (file)
@@ -57,16 +57,17 @@ including @code{beginning-of-line}, @code{forward-word},
 @code{forward-sentence}, and @code{forward-paragraph}, stop at the
 boundary between the prompt and the actual text.
 
+@c See http://debbugs.gnu.org/11276
   The minibuffer's window is normally a single line; it grows
-automatically if the contents require more space.  You can explicitly
-@c FIXME?  Works in 23.4, not 24.0.95.  (Bug#11276)
-resize it temporarily with the window sizing commands; it reverts to
-its normal size when the minibuffer is exited.  You can resize it
-@c FIXME?  Doesn't work in any version of Emacs?
+automatically if the contents require more space.  Whilst it is
+active, you can explicitly resize it temporarily with the window
+sizing commands; it reverts to its normal size when the minibuffer is
+exited.  When the minibuffer is not active, you can resize it
 permanently by using the window sizing commands in the frame's other
-window, when the minibuffer is not active.  If the frame contains just
-a minibuffer, you can change the minibuffer's size by changing the
-frame's size.
+window, or dragging the mode line with the mouse.  (Due to details of
+the current implementation, for this to work @code{resize-mini-windows}
+must be @code{nil}.)  If the frame contains just a minibuffer, you can
+change the minibuffer's size by changing the frame's size.
 
   Use of the minibuffer reads input events, and that alters the values
 of variables such as @code{this-command} and @code{last-command}
index aa089aec36bd941e0d6e311809b192194d394488..00cd43d7b718a4a465bfbcc92d7bc240d9b887b8 100644 (file)
@@ -283,7 +283,7 @@ buffer is put in Fundamental mode (@pxref{Major Mode Conventions}).
 * Derived Modes::           Defining a new major mode based on another major
                               mode.
 * Basic Major Modes::       Modes that other modes are often derived from.
-* Mode Hooks::              Hooks run at the end of major mode commands.
+* Mode Hooks::              Hooks run at the end of major mode functions.
 * Tabulated List Mode::     Parent mode for buffers containing tabulated data.
 * Generic Modes::           Defining a simple major mode that supports
                               comment syntax and Font Lock mode.
@@ -384,7 +384,7 @@ reserved for users.
 
 A major mode can also rebind the keys @kbd{M-n}, @kbd{M-p} and
 @kbd{M-s}.  The bindings for @kbd{M-n} and @kbd{M-p} should normally
-be some kind of ``moving forward and backward,'' but this does not
+be some kind of ``moving forward and backward'', but this does not
 necessarily mean cursor motion.
 
 It 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.
 
   When you defined a major mode using @code{define-derived-mode}, it
 automatically makes sure these conventions are followed.  If you
-define a major mode ``by hand,'' not using @code{define-derived-mode},
+define a major mode ``by hand'', not using @code{define-derived-mode},
 use the following functions to handle these conventions automatically.
 
 @defun run-mode-hooks &rest hookvars
@@ -1122,8 +1122,8 @@ documentation for the mode command.  If you do not supply it,
 The argument @var{comment-list} is a list in which each element is
 either a character, a string of one or two characters, or a cons cell.
 A character or a string is set up in the mode's syntax table as a
-``comment starter.''  If the entry is a cons cell, the @sc{car} is set
-up as a ``comment starter'' and the @sc{cdr} as a ``comment ender.''
+``comment starter''.  If the entry is a cons cell, the @sc{car} is set
+up as a ``comment starter'' and the @sc{cdr} as a ``comment ender''.
 (Use @code{nil} for the latter if you want comments to end at the end
 of the line.)  Note that the syntax table mechanism has limitations
 about what comment starters and enders are actually possible.
@@ -1648,7 +1648,7 @@ See the command \\[hungry-electric-delete]."
 @end smallexample
 
 @noindent
-This defines a minor mode named ``Hungry mode,'' a command named
+This defines a minor mode named ``Hungry mode'', a command named
 @code{hungry-mode} to toggle it, a variable named @code{hungry-mode}
 which indicates whether the mode is enabled, and a variable named
 @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
 of Lisp sexps and adapts it to non-Lisp languages.
 
 @menu
-* SMIE::                        A simple minded indentation engine
+* SMIE::                        A simple minded indentation engine.
 @end menu
 
 @node SMIE
@@ -3400,14 +3400,14 @@ languages cannot be parsed correctly using SMIE, at least not without
 resorting to some special tricks (@pxref{SMIE Tricks}).
 
 @menu
-* SMIE setup::                  SMIE setup and features
-* Operator Precedence Grammars::  A very simple parsing technique
-* SMIE Grammar::                Defining the grammar of a language
-* SMIE Lexer::                  Defining tokens
-* SMIE Tricks::                 Working around the parser's limitations
-* SMIE Indentation::            Specifying indentation rules
-* SMIE Indentation Helpers::    Helper functions for indentation rules
-* SMIE Indentation Example::    Sample indentation rules
+* SMIE setup::                  SMIE setup and features.
+* Operator Precedence Grammars::  A very simple parsing technique.
+* SMIE Grammar::                Defining the grammar of a language.
+* SMIE Lexer::                  Defining tokens.
+* SMIE Tricks::                 Working around the parser's limitations.
+* SMIE Indentation::            Specifying indentation rules.
+* SMIE Indentation Helpers::    Helper functions for indentation rules.
+* SMIE Indentation Example::    Sample indentation rules.
 @end menu
 
 @node SMIE setup
index 66f491b7780c8ba2944c0f78577f26582fabc34f..02d306b3f757b2037a2470338b2ebb585f22a539 100644 (file)
@@ -777,7 +777,7 @@ and returns that value as a floating point number.
 sequence of @dfn{bits} (digits which are either zero or one).  A bitwise
 operation acts on the individual bits of such a sequence.  For example,
 @dfn{shifting} moves the whole sequence left or right one or more places,
-reproducing the same pattern ``moved over.''
+reproducing the same pattern ``moved over''.
 
   The bitwise operations in Emacs Lisp apply only to integers.
 
index 58ceeb02b769abc0ce5c0c049fdc2f21dfb232c9..b49d2bc05fe252f0ecd9d17f99d66e1f238f03d5 100644 (file)
@@ -675,7 +675,7 @@ not distinguish between a cons cell slot ``holding'' a value versus
 
 @cindex atoms
   Because cons cells are so central to Lisp, we also have a word for
-``an object which is not a cons cell.''  These objects are called
+``an object which is not a cons cell''.  These objects are called
 @dfn{atoms}.
 
 @cindex parenthesis
@@ -1289,7 +1289,7 @@ without qualification, we mean a Lisp macro, not a keyboard macro.
   A @dfn{primitive function} is a function callable from Lisp but
 written in the C programming language.  Primitive functions are also
 called @dfn{subrs} or @dfn{built-in functions}.  (The word ``subr'' is
-derived from ``subroutine.'')  Most primitive functions evaluate all
+derived from ``subroutine''.)  Most primitive functions evaluate all
 their arguments when they are called.  A primitive function that does
 not evaluate all its arguments is called a @dfn{special form}
 (@pxref{Special Forms}).@refill
index 7028b6e4e3fd1029ec00c265878bafa9fcd3ee7b..66df1f34eda285e9cbc5e2ee3cf93e19f8b77342 100644 (file)
@@ -114,7 +114,7 @@ When it is called with one argument (always a character), @var{function}
 should save the argument and arrange to return it on the next call.
 This is called @dfn{unreading} the character; it happens when the Lisp
 reader reads one character too many and wants to ``put it back where it
-came from.''  In this case, it makes no difference what value
+came from''.  In this case, it makes no difference what value
 @var{function} returns.
 @end itemize
 
@@ -618,7 +618,7 @@ spacing between calls.
 @defun terpri &optional stream
 @cindex newline in print
 This function outputs a newline to @var{stream}.  The name stands
-for ``terminate print.''
+for ``terminate print''.
 @end defun
 
 @defun write-char character &optional stream
index ac2cea020405a714f8b9357a105aa2080fa335e8..1e749b8c3bbaa4aa0425e81f02e51be5a4991184 100644 (file)
@@ -140,7 +140,7 @@ act correctly if it is evaluated with lexical scoping enabled
   @code{defun} defines a symbol as a function, creating a lambda
 expression and storing it in the function cell of the symbol.  This
 lambda expression thus becomes the function definition of the symbol.
-(The term ``function definition,'' meaning the contents of the function
+(The term ``function definition'', meaning the contents of the function
 cell, is derived from the idea that @code{defun} gives the symbol its
 definition as a function.)  @code{defsubst} and @code{defalias} are two
 other ways of defining a function.  @xref{Functions}.
index 830ceeedefda13cb2ba6a65bb9013a757e8cd9ab..4a86065744479bde4b926640eba8553e3bd27fd3 100644 (file)
@@ -56,7 +56,7 @@ Modes}, for an example of how to set up a syntax table.
 A syntax table can inherit the data for some characters from the
 standard syntax table, while specifying other characters itself.  The
 ``inherit'' syntax class means ``inherit this character's syntax from
-the standard syntax table.''  Just changing the standard syntax for a
+the standard syntax table''.  Just changing the standard syntax for a
 character affects all syntax tables that inherit from it.
 
 @defun syntax-table-p object
@@ -617,7 +617,7 @@ higher-level functions for moving over balanced expressions.
   A character's syntax controls how it changes the state of the
 parser, rather than describing the state itself.  For example, a
 string delimiter character toggles the parser state between
-``in-string'' and ``in-code,'' but the syntax of characters does not
+``in-string'' and ``in-code'', but the syntax of characters does not
 directly say whether they are inside a string.  For example (note that
 15 is the syntax code for generic string delimiters),
 
index a9c51fead1bca4ade9827071adf1e822d9f7c873..d794ddc385bdc9ceeee1ff75352d91d6626e7d33 100644 (file)
@@ -555,7 +555,7 @@ error; if some of the text in it is read-only, it signals a
 asking for any confirmation.  It returns @code{nil}.
 
 Normally, deleting a large amount of text from a buffer inhibits further
-auto-saving of that buffer ``because it has shrunk.''  However,
+auto-saving of that buffer ``because it has shrunk''.  However,
 @code{erase-buffer} does not do this, the idea being that the future
 text is not really related to the former text, and its size should not
 be compared with that of the former text.
@@ -806,7 +806,7 @@ that treat it as a ring.
 
   Some people think this use of the word ``kill'' is unfortunate, since
 it refers to operations that specifically @emph{do not} destroy the
-entities ``killed.''  This is in sharp contrast to ordinary life, in
+entities ``killed''.  This is in sharp contrast to ordinary life, in
 which death is permanent and ``killed'' entities do not come back to
 life.  Therefore, other metaphors have been proposed.  For example, the
 term ``cut ring'' makes sense to people who, in pre-computer days, used
@@ -845,7 +845,7 @@ the entry made by the first one.
 
   For yanking, one entry in the kill ring is designated the ``front'' of
 the ring.  Some yank commands ``rotate'' the ring by designating a
-different element as the ``front.''  But this virtual rotation doesn't
+different element as the ``front''.  But this virtual rotation doesn't
 change the list itself---the most recent entry always comes first in the
 list.
 
@@ -1093,8 +1093,8 @@ programs, when you are using a window system.  Its value should be
 @code{nil} or a function of no arguments.
 
 If the value is a function, @code{current-kill} calls it to get the
-``most recent kill.''  If the function returns a non-@code{nil} value,
-then that value is used as the ``most recent kill.''  If it returns
+``most recent kill''.  If the function returns a non-@code{nil} value,
+then that value is used as the ``most recent kill''.  If it returns
 @code{nil}, then the front of the kill ring is used.
 
 To 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
 If this variable's value is non-@code{nil}, it is a symbol which is used
 as a text property name.  A non-@code{nil} value for that text property
 means, ``the other text properties for this character have already been
-computed.''
+computed''.
 
 If all the characters in the range specified for @code{buffer-substring}
 have 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},
 @var{new-pos} can be anywhere in the two adjacent fields.
 Additionally, if two fields are separated by another field with the
 special value @code{boundary}, then any point within this special
-field is also considered to be ``on the boundary.''
+field is also considered to be ``on the boundary''.
 
 Commands like @kbd{C-a} with no argument, that normally move backward
 to a specific kind of location and stay there once there, probably
index 4ba7dd9dfe9f25f4b1975794a9757f42fd5eb4a7..0e58373119fed4d238d7181e5c4816182682378d 100644 (file)
@@ -640,7 +640,7 @@ have the form (KEY . VALUE).  Here, KEY is ...
 
 @item
 Never change the case of a Lisp symbol when you mention it in a doc
-string.  If the symbol's name is @code{foo}, write ``foo,'' not
+string.  If the symbol's name is @code{foo}, write ``foo'', not
 ``Foo'' (which is a different symbol).
 
 This might appear to contradict the policy of writing function
@@ -772,9 +772,9 @@ is indicative and has a proper subject.
 
 @item
 The documentation string for a function that is a yes-or-no predicate
-should start with words such as ``Return t if,'' to indicate
-explicitly what constitutes ``truth.''  The word ``return'' avoids
-starting the sentence with lower-case ``t,'' which could be somewhat
+should start with words such as ``Return t if'', to indicate
+explicitly what constitutes ``truth''.  The word ``return'' avoids
+starting the sentence with lower-case ``t'', which could be somewhat
 distracting.
 
 @item
@@ -797,8 +797,8 @@ returned.''
 
 @item
 Avoid using the word ``cause'' (or its equivalents) unnecessarily.
-Instead of, ``Cause Emacs to display text in boldface,'' write just
-``Display text in boldface.''
+Instead of, ``Cause Emacs to display text in boldface'', write just
+``Display text in boldface''.
 
 @item
 Avoid using ``iff'' (a mathematics term meaning ``if and only if''),
@@ -821,7 +821,7 @@ to set, use @code{defcustom}.  @xref{Defining Variables}.
 
 @item
 The documentation string for a variable that is a yes-or-no flag should
-start with words such as ``Non-nil means,'' to make it clear that
+start with words such as ``Non-nil means'', to make it clear that
 all non-@code{nil} values are equivalent and indicate explicitly what
 @code{nil} and non-@code{nil} mean.
 @end itemize
index e0e629ec9d3621a8d89ce337e77a9a4fef1024f0..4e62223164596fa97ccef1a25b5a32c128d686d2 100644 (file)
@@ -670,7 +670,7 @@ symbol is changed.
 
 @code{setq} does not evaluate @var{symbol}; it sets the symbol that you
 write.  We say that this argument is @dfn{automatically quoted}.  The
-@samp{q} in @code{setq} stands for ``quoted.''
+@samp{q} in @code{setq} stands for ``quoted''.
 
 The value of the @code{setq} form is the value of the last @var{form}.
 
index 25ea85774673bf83f4f7739af4353e2653ec2b4c..2687cd57d5a0c5c2ef3504620abcbebb45adae20 100644 (file)
 @end tex
 
 @c Version of the manual and of Emacs.
-@c Please remember to update the edition number in README as well.
-@set VERSION  3.0
+@set VERSION  3.1
 @include emacsver.texi
-@set DATE July 2009
+@set DATE May 2012
 
 @dircategory Emacs
 @direntry
@@ -90,8 +89,8 @@ developing GNU and promoting software freedom.''
 @subtitle For Emacs Version @value{EMACSVER}
 @subtitle Revision @value{VERSION}, @value{DATE}
 
-@author by Bil Lewis, Dan LaLiberte, Richard Stallman
-@author and the GNU Manual Group
+@author by Bil Lewis, Dan LaLiberte, Richard Stallman,
+@author the GNU Manual Group, et al.
 @page
 @vskip 0pt plus 1filll
 @insertcopying
@@ -480,7 +479,7 @@ Functions
 * Closures::                Functions that enclose a lexical environment.
 * Obsolete Functions::      Declaring functions obsolete.
 * Inline Functions::        Defining functions that the compiler
-                              will open code.
+                              will expand inline.
 * Declaring Functions::     Telling the compiler that a function is defined.
 * Function Safety::         Determining whether a function is safe to call.
 * Related Topics::          Cross-references to specific Lisp primitives
@@ -513,7 +512,7 @@ Common Problems Using Macros
 * Eval During Expansion::  Don't evaluate them; put them in the expansion.
 * Repeated Expansion::     Avoid depending on how many times expansion is done.
 
-Writing Customization Definitions
+Customization Settings
 
 * Common Keywords::         Common keyword arguments for all kinds of
                               customization declarations.
@@ -776,6 +775,7 @@ Defining Menus
                               various features.
 * Menu Separators::         Drawing a horizontal line through a menu.
 * Alias Menu Items::        Using command aliases in menu items.
+* Toolkit Differences::     Not all toolkits provide the same features.
 
 Major and Minor Modes
 
@@ -802,7 +802,7 @@ Major Modes
 * Derived Modes::           Defining a new major mode based on another major
                               mode.
 * Basic Major Modes::       Modes that other modes are often derived from.
-* Mode Hooks::              Hooks run at the end of major mode commands.
+* Mode Hooks::              Hooks run at the end of major mode functions.
 * Tabulated List Mode::     Parent mode for buffers containing tabulated data.
 * Generic Modes::           Defining a simple major mode that supports
                               comment syntax and Font Lock mode.
@@ -846,6 +846,21 @@ Multiline Font Lock Constructs
 * Region to Refontify::     Controlling which region gets refontified
                               after a buffer change.
 
+Automatic Indentation of code
+
+* SMIE::                    A simple minded indentation engine.
+
+Simple Minded Indentation Engine
+
+* SMIE setup::              SMIE setup and features.
+* Operator Precedence Grammars:: A very simple parsing technique.
+* SMIE Grammar::            Defining the grammar of a language.
+* SMIE Lexer::              Defining tokens.
+* SMIE Tricks::             Working around the parser's limitations.
+* SMIE Indentation::        Specifying indentation rules.
+* SMIE Indentation Helpers:: Helper functions for indentation rules.
+* SMIE Indentation Example::  Sample indentation rules.
+
 Documentation
 
 * Documentation Basics::    Where doc strings are defined and stored.
@@ -1242,8 +1257,7 @@ Processes
 * Datagrams::               UDP network connections.
 * Low-Level Network::       Lower-level but more general function
                               to create connections and servers.
-* Misc Network::            Additional relevant functions for
-                              network connections.
+* Misc Network::            Additional relevant functions for net connections.
 * Serial Ports::            Communicating with serial ports.
 * Byte Packing::            Using bindat to pack and unpack binary data.
 
@@ -1363,6 +1377,7 @@ Images
 * GIF Images::              Special features for GIF format.
 * TIFF Images::             Special features for TIFF format.
 * PostScript Images::       Special features for PostScript format.
+* ImageMagick Images::      Special features available through ImageMagick.
 * Other Image Types::       Various other formats are supported.
 * Defining Images::         Convenient ways to define an image for later use.
 * Showing Images::          Convenient ways to display an image once
@@ -1418,12 +1433,6 @@ Operating System Interface
 * Notifications::           Desktop notifications.
 * Dynamic Libraries::       On-demand loading of support libraries.
 
-Preparing Lisp code for distribution
-
-* Packaging Basics::        The basic concepts of Emacs Lisp packages.
-* Simple Packages::         How to package a single .el file.
-* Multi-file Packages::     How to package multiple files.
-
 Starting Up Emacs
 
 * Startup Summary::         Sequence of actions Emacs performs at startup.
@@ -1442,6 +1451,13 @@ Terminal Input
 * Input Modes::             Options for how input is processed.
 * Recording Input::         Saving histories of recent or all input events.
 
+Preparing Lisp code for distribution
+
+* Packaging Basics::        The basic concepts of Emacs Lisp packages.
+* Simple Packages::         How to package a single .el file.
+* Multi-file Packages::     How to package multiple files.
+* Package Archives::        Maintaining package archives.
+
 Tips and Conventions
 
 * Coding Conventions::      Conventions for clean and robust programs.
index 2fd2a8d8224804b395d628ddc9f9d704c8421a91..c74e7c438b4d1562c041f98d5eee8b2e1443c8e1 100644 (file)
 @end tex
 
 @c Version of the manual and of Emacs.
-@c Please remember to update the edition number in README as well.
-@set VERSION  3.0
+@set VERSION  3.1
 @include emacsver.texi
-@set DATE July 2009
+@set DATE May 2012
 
 @dircategory Emacs
 @direntry
@@ -90,8 +89,8 @@ developing GNU and promoting software freedom.''
 @subtitle For Emacs Version @value{EMACSVER}
 @subtitle Revision @value{VERSION}, @value{DATE}
 
-@author by Bil Lewis, Dan LaLiberte, Richard Stallman
-@author and the GNU Manual Group
+@author by Bil Lewis, Dan LaLiberte, Richard Stallman,
+@author the GNU Manual Group, et al.
 @page
 @vskip 0pt plus 1filll
 @insertcopying
@@ -479,7 +478,7 @@ Functions
 * Closures::                Functions that enclose a lexical environment.
 * Obsolete Functions::      Declaring functions obsolete.
 * Inline Functions::        Defining functions that the compiler
-                              will open code.
+                              will expand inline.
 * Declaring Functions::     Telling the compiler that a function is defined.
 * Function Safety::         Determining whether a function is safe to call.
 * Related Topics::          Cross-references to specific Lisp primitives
@@ -512,7 +511,7 @@ Common Problems Using Macros
 * Eval During Expansion::  Don't evaluate them; put them in the expansion.
 * Repeated Expansion::     Avoid depending on how many times expansion is done.
 
-Writing Customization Definitions
+Customization Settings
 
 * Common Keywords::         Common keyword arguments for all kinds of
                               customization declarations.
@@ -775,6 +774,7 @@ Defining Menus
                               various features.
 * Menu Separators::         Drawing a horizontal line through a menu.
 * Alias Menu Items::        Using command aliases in menu items.
+* Toolkit Differences::     Not all toolkits provide the same features.
 
 Major and Minor Modes
 
@@ -801,7 +801,7 @@ Major Modes
 * Derived Modes::           Defining a new major mode based on another major
                               mode.
 * Basic Major Modes::       Modes that other modes are often derived from.
-* Mode Hooks::              Hooks run at the end of major mode commands.
+* Mode Hooks::              Hooks run at the end of major mode functions.
 * Tabulated List Mode::     Parent mode for buffers containing tabulated data.
 * Generic Modes::           Defining a simple major mode that supports
                               comment syntax and Font Lock mode.
@@ -845,6 +845,21 @@ Multiline Font Lock Constructs
 * Region to Refontify::     Controlling which region gets refontified
                               after a buffer change.
 
+Automatic Indentation of code
+
+* SMIE::                    A simple minded indentation engine.
+
+Simple Minded Indentation Engine
+
+* SMIE setup::              SMIE setup and features.
+* Operator Precedence Grammars:: A very simple parsing technique.
+* SMIE Grammar::            Defining the grammar of a language.
+* SMIE Lexer::              Defining tokens.
+* SMIE Tricks::             Working around the parser's limitations.
+* SMIE Indentation::        Specifying indentation rules.
+* SMIE Indentation Helpers:: Helper functions for indentation rules.
+* SMIE Indentation Example::  Sample indentation rules.
+
 Documentation
 
 * Documentation Basics::    Where doc strings are defined and stored.
@@ -1362,6 +1377,7 @@ Images
 * GIF Images::              Special features for GIF format.
 * TIFF Images::             Special features for TIFF format.
 * PostScript Images::       Special features for PostScript format.
+* ImageMagick Images::      Special features available through ImageMagick.
 * Other Image Types::       Various other formats are supported.
 * Defining Images::         Convenient ways to define an image for later use.
 * Showing Images::          Convenient ways to display an image once
@@ -1417,12 +1433,6 @@ Operating System Interface
 * Notifications::           Desktop notifications.
 * Dynamic Libraries::       On-demand loading of support libraries.
 
-Preparing Lisp code for distribution
-
-* Packaging Basics::        The basic concepts of Emacs Lisp packages.
-* Simple Packages::         How to package a single .el file.
-* Multi-file Packages::     How to package multiple files.
-
 Starting Up Emacs
 
 * Startup Summary::         Sequence of actions Emacs performs at startup.
@@ -1441,6 +1451,12 @@ Terminal Input
 * Input Modes::             Options for how input is processed.
 * Recording Input::         Saving histories of recent or all input events.
 
+Preparing Lisp code for distribution
+
+* Packaging Basics::        The basic concepts of Emacs Lisp packages.
+* Simple Packages::         How to package a single .el file.
+* Multi-file Packages::     How to package multiple files.
+
 Tips and Conventions
 
 * Coding Conventions::      Conventions for clean and robust programs.
index a9a25d8e8677ced0c7daf60c8877f507e10e87ee..094729033b15bb54728732840cd838cc26f2b2b9 100644 (file)
@@ -49,7 +49,7 @@ is displayed in windows.
 @section Basic Concepts of Emacs Windows
 @cindex window
 
-A @dfn{window} is a area of the screen which is used to display a
+A @dfn{window} is a area of the screen that is used to display a
 buffer (@pxref{Buffers}).  In Emacs Lisp, windows are represented by a
 special Lisp object type.
 
@@ -297,8 +297,8 @@ child of its parent.
 
 The functions @code{window-next-sibling} and
 @code{window-prev-sibling} should not be confused with the functions
-@code{next-window} and @code{previous-window} which respectively
-return the next and previous window in the cyclic ordering of windows
+@code{next-window} and @code{previous-window}, which return the next
+and previous window, respectively, in the cyclic ordering of windows
 (@pxref{Cyclic Window Ordering}).
 
   You can use the following functions to find the first live window on
@@ -376,7 +376,7 @@ line (@pxref{Mode Line Format}).
 
   Emacs provides several functions for finding the height and width of
 a window.  Except where noted, Emacs reports window heights and widths
-as integer numbers of lines and columns respectively.  On a graphical
+as integer numbers of lines and columns, respectively.  On a graphical
 display, each ``line'' and ``column'' actually corresponds to the
 height and width of a ``default'' character specified by the frame's
 default font.  Thus, if a window is displaying text with a different
@@ -619,7 +619,7 @@ window.
 
 The optional argument @var{max-height}, if non-@code{nil}, specifies
 the maximum total height that this function can give @var{window}.
-The optional argument @var{min-height}, if no-@code{nil}, specifies
+The optional argument @var{min-height}, if non-@code{nil}, specifies
 the minimum total height that it can give, which overrides the
 variable @code{window-min-height}.
 
@@ -723,7 +723,7 @@ properties of the window selected within @var{window}'s frame.
 
 The behavior of this function may be altered by the window parameters
 of @var{window}, so long as the variable
-@code{ignore-window-parameters} is non-@code{nil}.  If the value of
+@code{ignore-window-parameters} is @code{nil}.  If the value of
 the @code{split-window} window parameter is @code{t}, this function
 ignores all other window parameters.  Otherwise, if the value of the
 @code{split-window} window parameter is a function, that function is
@@ -1062,7 +1062,7 @@ combination.  @xref{Splitting Windows}.
 
 The behavior of this function may be altered by the window parameters
 of @var{window}, so long as the variable
-@code{ignore-window-parameters} is non-@code{nil}.  If the value of
+@code{ignore-window-parameters} is @code{nil}.  If the value of
 the @code{delete-window} window parameter is @code{t}, this function
 ignores all other window parameters.  Otherwise, if the value of the
 @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}.
 
 The behavior of this function may be altered by the window parameters
 of @var{window}, so long as the variable
-@code{ignore-window-parameters} is non-@code{nil}.  If the value of
+@code{ignore-window-parameters} is @code{nil}.  If the value of
 the @code{delete-other-windows} window parameter is @code{t}, this
 function ignores all other window parameters.  Otherwise, if the value
 of the @code{delete-other-windows} window parameter is a function,
@@ -1119,8 +1119,8 @@ means operate on that frame.
 
 Note that this argument does not have the same meaning as in other
 functions which scan all live windows (@pxref{Cyclic Window
-Ordering}).  Specifically, the values @code{t} and @code{nil} have the
-opposite of their meanings in those other functions.
+Ordering}).  Specifically, the meanings of @code{t} and @code{nil} here
+are the opposite of what they are in those other functions.
 @end deffn
 
 @node Selecting Windows
@@ -1171,11 +1171,11 @@ the buffer list.
 This macro selects @var{window}, executes @var{forms} in sequence, then
 restores the previously selected window and current buffer.  The ordering
 of recently selected windows and the buffer list remain unchanged unless
-you deliberately change them within @var{forms}, for example, by calling
+you deliberately change them within @var{forms}; for example, by calling
 @code{select-window} with argument @var{norecord} @code{nil}.
 
-The order of recently selected windows and the buffer list are not
-changed by this macro.
+This macro does not change the order of recently selected windows or
+the buffer list.
 @end defmac
 
 @defun frame-selected-window &optional frame
@@ -1185,7 +1185,7 @@ within that frame.  @var{frame} should be a live frame; if omitted or
 @end defun
 
 @defun set-frame-selected-window frame window &optional norecord
-This function makes @code{window} the window selected within the frame
+This function makes @var{window} the window selected within the frame
 @var{frame}.  @var{frame} should be a live frame; if omitted or
 @code{nil}, it defaults to the selected frame.  @var{window} should be
 a 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;
 if omitted or @code{nil}, it defaults to the selected window.
 
 The optional argument @var{minibuf} specifies whether minibuffer windows
-shall be included in the cyclic ordering.  Normally, when @var{minibuf}
+should be included in the cyclic ordering.  Normally, when @var{minibuf}
 is @code{nil}, a minibuffer window is included only if it is currently
 ``active''; this matches the behavior of @kbd{C-x o}.  (Note that a
 minibuffer 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).
 @end defopt
 
 @defun split-window-sensibly window
-This function tries to split @code{window}, and return the newly
-created window.  If @code{window} cannot be split, it returns
+This function tries to split @var{window}, and return the newly
+created window.  If @var{window} cannot be split, it returns
 @code{nil}.
 
 This function obeys the usual rules that determine when a window may
 be split (@pxref{Splitting Windows}).  It first tries to split by
 placing the new window below, subject to the restriction imposed by
-@code{split-height-threshold} (see below) in addition to any other
+@code{split-height-threshold} (see below), in addition to any other
 restrictions.  If that fails, it tries to split by placing the new
 window to the right, subject to @code{split-width-threshold} (see
 below).  If that fails, and the window is the only window on its
@@ -1944,7 +1944,7 @@ to display @var{buffer}.
 
 If @var{args} is an alist, it specifies frame parameters for the new
 frame.  If @var{args} is a list whose @sc{car} is a symbol, then
-@code{(car @var{args})} is called as a function to actually create and
+@code{(car @var{args})} is a function to actually create and
 set up the frame; it is called with @var{buffer} as first argument, and
 @code{(cdr @var{args})} as additional arguments.
 
@@ -1962,7 +1962,7 @@ This variable holds frame parameters for
 
 @defopt same-window-buffer-names
 A list of buffer names for buffers that should be displayed in the
-selected window.  If the buffer's name is in this list,
+selected window.  If a buffer's name is in this list,
 @code{display-buffer} handles the buffer by switching to it in the
 selected window.
 @end defopt
@@ -1997,8 +1997,8 @@ above.
 @section Window History
 @cindex window history
 
-Each window remembers the buffers it has displayed earlier and the order
-in which these buffers have been removed from it.  This history is used,
+Each window remembers the buffers it has previously displayed, and the order
+in which these buffers were removed from it.  This history is used,
 for example, by @code{replace-buffer-in-windows} (@pxref{Buffers and
 Windows}).  This list is automatically maintained by Emacs, but you can
 use the following functions to explicitly inspect or alter it:
@@ -2061,41 +2061,41 @@ This command displays the previous buffer in @var{window}.  The
 argument @var{window} should be a live window or @code{nil} (meaning
 the selected window).  If the optional argument @var{bury-or-kill} is
 non-@code{nil}, this means that the buffer currently shown in
-@var{window} is about to be buried or killed and consequently shall
+@var{window} is about to be buried or killed and consequently should
 not be switched to in future invocations of this command.
 
 The previous buffer is usually the buffer shown before the buffer
 currently shown in @var{window}.  However, a buffer that has been buried
-or killed or has been already shown by a recent invocation of
-@code{switch-to-prev-buffer} does not qualify as previous buffer.
+or killed, or has been already shown by a recent invocation of
+@code{switch-to-prev-buffer}, does not qualify as previous buffer.
 
 If repeated invocations of this command have already shown all buffers
 previously shown in @var{window}, further invocations will show buffers
 from the buffer list of the frame @var{window} appears on (@pxref{The
-Buffer List}) trying to skip buffers that are already shown in another
+Buffer List}), trying to skip buffers that are already shown in another
 window on that frame.
 @end deffn
 
 @deffn Command switch-to-next-buffer &optional window
-This command switches to the next buffer in @var{window} thus undoing
+This command switches to the next buffer in @var{window}, thus undoing
 the effect of the last @code{switch-to-prev-buffer} command in
 @var{window}.  The argument @var{window} must be a live window and
 defaults to the selected one.
 
-If there is no recent invocation of @code{switch-to-prev-buffer} that
+If there is no recent invocation of @code{switch-to-prev-buffer} that
 can be undone, this function tries to show a buffer from the buffer list
 of the frame @var{window} appears on (@pxref{The Buffer List}).
 @end deffn
 
 By default @code{switch-to-prev-buffer} and @code{switch-to-next-buffer}
 can switch to a buffer that is already shown in another window on the
-same frame.  The following option can be used to override that behavior.
+same frame.  The following option can be used to override this behavior.
 
 @defopt switch-to-visible-buffer
 If this variable is non-@code{nil}, @code{switch-to-prev-buffer} and
 @code{switch-to-next-buffer} may switch to a buffer that is already
-visible on the same frame, provided the buffer was shown in the argument
-window before.  If it's @code{nil}, @code{switch-to-prev-buffer} and
+visible on the same frame, provided the buffer was shown in the relevant
+window before.  If it is @code{nil}, @code{switch-to-prev-buffer} and
 @code{switch-to-next-buffer} always try to avoid switching to a buffer
 that is already visible in another window on the same frame.
 @end defopt
@@ -2137,7 +2137,7 @@ another buffer in it and iconifies the frame.
 This function returns non-@code{nil} if @var{window} is dedicated to its
 buffer and @code{nil} otherwise.  More precisely, the return value is
 the value assigned by the last call of @code{set-window-dedicated-p} for
-@var{window} or @code{nil} if that function was never called with
+@var{window}, or @code{nil} if that function was never called with
 @var{window} as its argument.  The default for @var{window} is the
 selected window.
 @end defun
@@ -2158,20 +2158,20 @@ non-@code{nil} value.
 @node Quitting Windows
 @section Quitting Windows
 
-When you want to get rid of a window used for displaying a buffer you
+When you want to get rid of a window used for displaying a buffer, you
 can call @code{delete-window} or @code{delete-windows-on}
 (@pxref{Deleting Windows}) to remove that window from its frame.  If the
 buffer is shown on a separate frame, you might want to call
 @code{delete-frame} (@pxref{Deleting Frames}) instead.  If, on the other
 hand, a window has been reused for displaying the buffer, you might
-prefer showing the buffer previously shown in that window by calling the
+prefer showing the buffer previously shown in that window, by calling the
 function @code{switch-to-prev-buffer} (@pxref{Window History}).
 Finally, you might want to either bury (@pxref{The Buffer List}) or kill
 (@pxref{Killing Buffers}) the window's buffer.
 
    The following function uses information on how the window for
-displaying the buffer was obtained in the first place thus attempting to
-automatize the above decisions for you.
+displaying the buffer was obtained in the first place, thus attempting to
+automate the above decisions for you.
 
 @deffn Command quit-window &optional kill window
 This command quits @var{window} and buries its buffer.  The argument
@@ -2199,39 +2199,39 @@ restore the original height of @var{window}.
 The three cases described so far require that the buffer shown in
 @var{window} is still the buffer displayed by the last buffer display
 function for this window.  If another buffer has been shown in the
-meantime or the buffer previously shown no longer exists, this command
+meantime, or the buffer previously shown no longer exists, this command
 calls @code{switch-to-prev-buffer} (@pxref{Window History}) to show some
 other buffer instead.
 @end deffn
 
 The function @code{quit-window} bases its decisions on information
 stored in @var{window}'s @code{quit-restore} window parameter
-(@pxref{Window Parameters}) and resets that parameter to @code{nil}
+(@pxref{Window Parameters}), and resets that parameter to @code{nil}
 after it's done.
 
 The following option specifies how to deal with a frame containing just
-one window that shall be either quit or whose buffer shall be buried.
+one window that should be either quit, or whose buffer should be buried.
 
 @defopt frame-auto-hide-function
 The function specified by this option is called to automatically hide
-frames.  This function is called with one argument - a frame.
+frames.  This function is called with one argument---a frame.
 
 The function specified here is called by @code{bury-buffer} (@pxref{The
 Buffer List}) when the selected window is dedicated and shows the buffer
-that shall be buried.  It is also called by @code{quit-window} (see
-above) when the frame of the window that shall be quit has been
+that should be buried.  It is also called by @code{quit-window} (see
+above) when the frame of the window that should be quit has been
 specially created for displaying that window's buffer and the buffer
-shall be buried.
+should be buried.
 
 The default is to call @code{iconify-frame} (@pxref{Visibility of
-Frames}).  Alternatively, you may either specify @code{delete-frame}
+Frames}).  Alternatively, you may specify either @code{delete-frame}
 (@pxref{Deleting Frames}) to remove the frame from its display,
 @code{ignore} to leave the frame unchanged, or any other function that
 can take a frame as its sole argument.
 
 Note that the function specified by this option is called if and only if
-there's at least one other frame on the terminal of the frame it's
-supposed to handle and that frame contains only one live window.
+there is at least one other frame on the terminal of the frame it's
+supposed to handle, and that frame contains only one live window.
 @end defopt
 
 
@@ -2321,14 +2321,7 @@ command to a key.
 @cindex window top line
 This function returns the display-start position of window
 @var{window}.  If @var{window} is @code{nil}, the selected window is
-used.  For example,
-
-@example
-@group
-(window-start)
-     @result{} 7058
-@end group
-@end example
+used.
 
 When you create a window, or display a different buffer in it, the
 display-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
 on the screen.  Nothing except redisplay automatically changes the
 window-start position; if you move point, do not expect the window-start
 position to change in response until after the next redisplay.
-
-For a realistic example of using @code{window-start}, see the
-description of @code{count-lines}.  @xref{Definition of count-lines}.
 @end defun
 
 @cindex window end position
@@ -2516,12 +2506,16 @@ commands move the paper up and down.  Thus, if you are looking at the
 middle of a buffer and repeatedly call @code{scroll-down}, you will
 eventually see the beginning of the buffer.
 
-  Some people have urged that the opposite convention be used: they
+  Unfortunately, this sometimes causes confusion, because some people
+tend to think in terms of the opposite convention: they
 imagine the window moving over text that remains in place, so that
 ``down'' commands take you to the end of the buffer.  This convention
 is consistent with fact that such a command is bound to a key named
-@key{PageDown} on modern keyboards.  We have not switched to this
-convention as that is likely to break existing Emacs Lisp code.
+@key{PageDown} on modern keyboards.
+@ignore
+We have not switched to this convention as that is likely to break
+existing Emacs Lisp code.
+@end ignore
 
   Textual scrolling functions (aside from @code{scroll-other-window})
 have unpredictable results if the current buffer is not the one
@@ -2551,13 +2545,8 @@ signals an error.  Otherwise, it returns @code{nil}.
 This function scrolls backward by @var{count} lines in the selected
 window.
 
-If @var{count} is negative, it scrolls forward instead.  If
-@var{count} is omitted or @code{nil}, the distance scrolled is
-@code{next-screen-context-lines} lines less than the height of the
-window's text area.
-
-If the selected window cannot be scrolled any further, this function
-signals an error.  Otherwise, it returns @code{nil}.
+If @var{count} is negative, it scrolls forward instead.  In other
+respects, it behaves the same way as @code{scroll-up} does.
 @end deffn
 
 @deffn Command scroll-up-command &optional count
@@ -2587,8 +2576,8 @@ already displayed, @code{scroll-other-window} displays it in some
 window.
 
 When the selected window is the minibuffer, the next window is normally
-the one at the top left corner.  You can specify a different window to
-scroll, when the minibuffer is selected, by setting the variable
+the leftmost one immediately above it.  You can specify a different
+window to scroll, when the minibuffer is selected, by setting the variable
 @code{minibuffer-scroll-window}.  This variable has no effect when any
 other window is selected.  When it is non-@code{nil} and the
 minibuffer is selected, it takes precedence over
@@ -2600,7 +2589,7 @@ window is the one at the bottom right corner.  In this case,
 @code{scroll-other-window} attempts to scroll the minibuffer.  If the
 minibuffer contains just one line, it has nowhere to scroll to, so the
 line reappears after the echo area momentarily displays the message
-@samp{Beginning of buffer}.
+@samp{End of buffer}.
 @end deffn
 
 @defvar other-window-scroll-buffer
@@ -2699,12 +2688,12 @@ If @var{count} is a non-negative number, that puts the line containing
 point @var{count} lines down from the top of the window.  If
 @var{count} is a negative number, then it counts upward from the
 bottom of the window, so that @minus{}1 stands for the last usable
-line in the window.  If @var{count} is a non-@code{nil} list, then it
-stands for the line in the middle of the window.
+line in the window.
 
-If @var{count} is @code{nil}, @code{recenter} puts the line containing
-point in the middle of the window, then clears and redisplays the entire
-selected frame.
+If @var{count} is @code{nil} (or a non-@code{nil} list),
+@code{recenter} puts the line containing point in the middle of the
+window.  If @var{count} is @code{nil}, this function may redraw the
+frame, according to the value of @code{recenter-redisplay}.
 
 When @code{recenter} is called interactively, @var{count} is the raw
 prefix 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
 top.
 
 With an argument of zero, @code{recenter} positions the current line at
-the top of the window.  This action is so handy that some people make a
-separate key binding to do this.  For example,
+the top of the window.  The command @code{recenter-top-bottom} offers
+a more convenient way to achieve this.
+@end deffn
 
-@example
-@group
-(defun line-to-top-of-window ()
-  "Scroll current line to top of window.
-Replaces three keystroke sequence C-u 0 C-l."
-  (interactive)
-  (recenter 0))
+@defopt recenter-redisplay
+If this variable is non-@code{nil}, calling @code{recenter} with a
+@code{nil} argument redraws the frame.  The default value is
+@code{tty}, which means only redraw the frame if it is a tty frame.
+@end defopt
 
-(global-set-key [kp-multiply] 'line-to-top-of-window)
-@end group
-@end example
+@deffn Command recenter-top-bottom &optional count
+This command, which is the default binding for @kbd{C-l}, acts like
+@code{recenter}, except if called with no argument.  In that case,
+successive calls place point according to the cycling order defined
+by the variable @code{recenter-positions}.
 @end deffn
 
+@defopt recenter-positions
+This variable controls how @code{recenter-top-bottom} behaves when
+called with no argument.  The default value is @code{(middle top
+bottom)}, which means that successive calls of
+@code{recenter-top-bottom} with no argument cycle between placing
+point at the middle, top, and bottom of the window.
+@end defopt
+
+
 @node Vertical Scrolling
 @section Vertical Fractional Scrolling
 @cindex vertical fractional scrolling
@@ -2817,8 +2816,8 @@ times the normal character width.  How many characters actually
 disappear off to the left depends on their width, and could vary from
 line to line.
 
-  Because we read from side to side in the ``inner loop,'' and from top
-to bottom in the ``outer loop,'' the effect of horizontal scrolling is
+  Because we read from side to side in the ``inner loop'', and from top
+to bottom in the ``outer loop'', the effect of horizontal scrolling is
 not like that of textual or vertical scrolling.  Textual scrolling
 involves selection of a portion of text to display, and vertical
 scrolling moves the window contents contiguously; but horizontal
@@ -3014,7 +3013,7 @@ frame.
 
 @defun coordinates-in-window-p coordinates window
 This function checks whether a window @var{window} occupies the
-frame-relative coordinates @var{coordinates}, and if so which part of
+frame-relative coordinates @var{coordinates}, and if so, which part of
 the window that is.  @var{window} should be a live window.
 @var{coordinates} should be a cons cell of the form @code{(@var{x}
 . @var{y})}, where @var{x} and @var{y} are frame-relative coordinates.
@@ -3112,14 +3111,14 @@ for the current buffer.
   You can bring back an entire frame layout by restoring a previously
 saved window configuration.  If you want to record the layout of all
 frames instead of just one, use a frame configuration instead of a
-window configuration; see @ref{Frame Configurations}.
+window configuration.  @xref{Frame Configurations}.
 
 @defun current-window-configuration &optional frame
 This function returns a new object representing @var{frame}'s current
 window configuration.  The default for @var{frame} is the selected
 frame.  The variable @code{window-persistent-parameters} specifies
-whether and which window parameters are saved by this function, see
-@ref{Window Parameters} for details.
+which window parameters (if any) are saved by this function.
+@xref{Window Parameters}.
 @end defun
 
 @defun set-window-configuration configuration
@@ -3136,9 +3135,9 @@ change and triggers execution of the @code{window-size-change-functions}
 know how to tell whether the new configuration actually differs from the
 old one.
 
-If the frame which @var{configuration} was saved from is dead, all this
+If the frame from which @var{configuration} was saved is dead, all this
 function does is restore the three variables @code{window-min-height},
-@code{window-min-width} and @code{minibuffer-scroll-window}. In this
+@code{window-min-width} and @code{minibuffer-scroll-window}.  In this
 case, the function returns @code{nil}.  Otherwise, it returns @code{t}.
 
 Here is a way of using this function to get the same effect
@@ -3221,8 +3220,8 @@ configurations.
 
   The objects returned by @code{current-window-configuration} die
 together with the Emacs process.  In order to store a window
-configuration on disk and read it back in another Emacs session, the
-functions described next can be used.  These functions are also useful
+configuration on disk and read it back in another Emacs session, you
+can use the functions described next.  These functions are also useful
 to clone the state of a frame into an arbitrary live window
 (@code{set-window-configuration} effectively clones the windows of a
 frame into the root window of that very frame only).
@@ -3235,17 +3234,17 @@ of the selected frame.
 If the optional argument @var{writable} is non-@code{nil}, this means to
 not use markers for sampling positions like @code{window-point} or
 @code{window-start}.  This argument should be non-@code{nil} when the
-state shall be written to disk and read back in another session.
+state will be written to disk and read back in another session.
 
 Together, the argument @var{writable} and the variable
 @code{window-persistent-parameters} specify which window parameters are
-saved by this function, see @ref{Window Parameters} for details.
+saved by this function.  @xref{Window Parameters}.
 @end defun
 
 The value returned by @code{window-state-get} can be used in the same
 session to make a clone of a window in another window.  It can be also
 written to disk and read back in another session.  In either case, use
-the function described next to restore the state of the window.
+the following function to restore the state of the window.
 
 @defun window-state-put state &optional window ignore
 This 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
 argument @var{window} must specify a live window and defaults to the
 selected one.
 
-The optional argument @var{ignore} non-@code{nil} means to ignore
-minimum window sizes and fixed size restrictions.  If @var{ignore}
-equals @code{safe}, this means windows can get as small as one line
+If the optional argument @var{ignore} is non-@code{nil}, it means to ignore
+minimum window sizes and fixed-size restrictions.  If @var{ignore}
+is @code{safe}, this means windows can get as small as one line
 and/or two columns.
 @end defun
 
@@ -3276,8 +3275,8 @@ setting for @var{parameter}, this function returns @code{nil}.
 
 @defun window-parameters &optional window
 This function returns all parameters of @var{window} and their values.
-The default for @var{window} is the selected window.  The return value,
-if non-@code{nil} is an association list whose elements have the form
+The default for @var{window} is the selected window.  The return value
+is either @code{nil}, or an association list whose elements have the form
 @code{(@var{parameter} . @var{value})}.
 @end defun
 
@@ -3287,34 +3286,34 @@ This function sets @var{window}'s value of @var{parameter} to
 is the selected window.
 @end defun
 
-By default, functions saving and restoring window configurations or the
+By default, the functions that save and restore window configurations or the
 states of windows (@pxref{Window Configurations}) do not care about
-window parameters.  This means, that when you change the value of a
+window parameters.  This means that when you change the value of a
 parameter within the body of a @code{save-window-excursion}, the
-previous value is not restored upon exit of that macro.  It also means
+previous value is not restored when that macro exits.  It also means
 that when you restore via @code{window-state-put} a window state saved
 earlier by @code{window-state-get}, all cloned windows have their
-parameters reset to @code{nil}.  The following variable allows to
-override the standard behavior.
+parameters reset to @code{nil}.  The following variable allows you to
+override the standard behavior:
 
 @defvar window-persistent-parameters
 This variable is an alist specifying which parameters get saved by
-@code{current-window-configuration} and @code{window-state-get} and
+@code{current-window-configuration} and @code{window-state-get}, and
 subsequently restored by @code{set-window-configuration} and
-@code{window-state-put}, see @ref{Window Configurations}.
+@code{window-state-put}.  @xref{Window Configurations}.
 
-The @sc{car} of each entry of this alist is the symbol specifying the
+The @sc{car} of each entry of this alist is a symbol specifying the
 parameter.  The @sc{cdr} should be one of the following:
 
 @table @asis
 @item @code{nil}
-This value means the parameter is neither saved by
+This value means the parameter is saved neither by
 @code{window-state-get} nor by @code{current-window-configuration}.
 
 @item @code{t}
 This value specifies that the parameter is saved by
-@code{current-window-configuration} andprovided its @var{writable}
-argument is @code{nil}, by @code{window-state-get}.
+@code{current-window-configuration} and (provided its @var{writable}
+argument is @code{nil}) by @code{window-state-get}.
 
 @item @code{writable}
 This means that the parameter is saved unconditionally by both
@@ -3325,8 +3324,8 @@ may fail with an @code{invalid-read-syntax} error.
 @end table
 @end defvar
 
-Some functionsnotably @code{delete-window},
-@code{delete-other-windows} and @code{split-window} may behave specially
+Some functions (notably @code{delete-window},
+@code{delete-other-windows} and @code{split-window}), may behave specially
 when their @var{window} argument has a parameter set.  You can override
 such special behavior by binding the following variable to a
 non-@code{nil} value:
@@ -3334,7 +3333,7 @@ non-@code{nil} value:
 @defvar ignore-window-parameters
 If this variable is non-@code{nil}, some standard functions do not
 process window parameters.  The functions currently affected by this are
-@code{split-window}, @code{delete-window}, @code{delete-other-windows}
+@code{split-window}, @code{delete-window}, @code{delete-other-windows},
 and @code{other-window}.
 
 An 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}
 (@pxref{Cyclic Window Ordering}).
 
 @item @code{clone-of}
-This parameter specifies the window this one has been cloned from and is
-installed by @code{window-state-get}, see @ref{Window Configurations}.
+This parameter specifies the window that this one has been cloned
+from.  It is installed by @code{window-state-get} (@pxref{Window
+Configurations}).
 
 @item @code{quit-restore}
-This parameter tells how to proceed with a window when the buffer it
-shows is no more needed.  It is installed by the buffer display
-functions (@pxref{Choosing Window}) and consulted by the function
+This parameter specifies what to do with a window when the buffer it
+shows is not needed any more.  It is installed by the buffer display
+functions (@pxref{Choosing Window}), and consulted by the function
 @code{quit-window} (@pxref{Quitting Windows}).
 @end table
 
-In addition, the parameters @code{window-atom} and @code{window-side}
-are reserved and should not be used by applications.
+There are additional parameters @code{window-atom} and @code{window-side};
+these are reserved and should not be used by applications.
 
 
 @node Window Hooks
@@ -3401,7 +3401,7 @@ the window also runs these functions.
 This variable is not a normal hook, because each function is called with
 two arguments: the window, and its new display-start position.
 
-These functions must be careful in using @code{window-end}
+These functions must take care when using @code{window-end}
 (@pxref{Window Start and End}); if you need an up-to-date value, you
 must use the @var{update} argument to ensure you get it.
 
@@ -3439,7 +3439,7 @@ of an existing frame.  This includes splitting or deleting windows,
 changing the sizes of windows, or displaying a different buffer in a
 window.
 
-The buffer-local part of this hook is run once per each window on the
+The buffer-local part of this hook is run once for each window on the
 affected frame, with the relevant window selected and its buffer
 current.  The global part is run once for the modified frame, with that
 frame selected.
index 834a8f2c47f349cf45d9b425409e81f9f75a3905..3d0900db9e4f7fc1d628c779116b76130a5f40f3 100644 (file)
@@ -1,3 +1,13 @@
+2012-04-27  Ippei Furuhashi  <top.tuna+orgmode@gmail.com>  (tiny change)
+
+       * org.texi (Agenda commands): Fix two typos: give corresponding
+       function names, according to `org-agenda-view-mode-dispatch'.
+
+2012-04-27  Glenn Morris  <rgm@gnu.org>
+
+       * faq.texi (Major packages and programs): Remove section.
+       There is no point listing 6 packages (cf etc/MORE.STUFF).
+       (Finding Emacs and related packages): Move "Spell-checkers" here.
 2012-04-22  Michael Albinus  <michael.albinus@gmx.de>
 
        * dbus.texi (Version): New node.
index 0f20c41c8ebc0d3ddef35d17730b1ff470b6902e..34005bcb9a075b21c3d513f5a2fb9eea1c501260 100644 (file)
@@ -91,7 +91,6 @@ Emacs, the Emacs manual is often the best starting point.
 * Bugs and problems::
 * Compiling and installing Emacs::
 * Finding Emacs and related packages::
-* Major packages and programs::
 * Key bindings::
 * Alternate character sets::
 * Mail and news::
@@ -1050,7 +1049,7 @@ A new command @kbd{customize-themes} allows you to easily change the
 appearance of your Emacs.
 
 @item
-Emacs can be compiled with the Gtk+ 3 toolkit.
+Emacs can be compiled with the GTK+ 3 toolkit.
 
 @item
 Support for several new external libraries can be included at compile
@@ -3242,6 +3241,7 @@ problem (@pxref{Reporting bugs}).
 * Finding Emacs on the Internet::
 * Finding a package with particular functionality::
 * Packages that do not come with Emacs::
+* Spell-checkers::
 * Current GNU distributions::
 * Difference between Emacs and XEmacs::
 * Emacs for minimalists::
@@ -3323,6 +3323,29 @@ Several packages are stored in
 Read the file @file{etc/MORE.STUFF} for more information about
 external packages.
 
+@node Spell-checkers
+@section Spell-checkers
+@cindex Spell-checker
+@cindex Checking spelling
+@cindex Ispell
+@cindex Aspell
+@cindex Hunspell
+
+Various spell-checkers are compatible with Emacs, including:
+
+@table @b
+
+@item GNU Aspell
+@uref{http://aspell.net/}
+
+@item Ispell
+@uref{http://fmg-www.cs.ucla.edu/geoff/ispell.html}
+
+@item Hunspell
+@uref{http://hunspell.sourceforge.net/}
+
+@end table
+
 @node Current GNU distributions
 @section Where can I get other up-to-date GNU stuff?
 @cindex Current GNU distributions
@@ -3442,124 +3465,6 @@ See the file @file{nextstep/INSTALL} in the distribution.
 Beginning with version 22.1, Emacs supports Mac OS X natively.
 See the file @file{nextstep/INSTALL} in the distribution.
 
-@c ------------------------------------------------------------
-@node Major packages and programs
-@chapter Major packages and programs
-@cindex Major packages and programs
-
-@menu
-* VM::
-* AUCTeX::
-* BBDB::
-* Spell-checkers::
-* Emacs/W3::
-* EDB::
-* JDEE::
-@end menu
-
-@node VM
-@section VM (View Mail) --- another mail reader within Emacs, with MIME support
-@cindex VM
-@cindex Alternative mail software
-@cindex View Mail
-@cindex E-mail reader, VM
-
-@table @b
-
-@item Web site
-@uref{http://launchpad.net/vm}
-(was @uref{http://www.nongnu.org/viewmail/})
-
-@item Informational newsgroup
-@uref{news:gnu.emacs.vm.info}@*
-
-@item Bug reports newsgroup
-@uref{news:gnu.emacs.vm.bug}@*
-@end table
-
-VM was originally written by @uref{http://www.wonderworks.com/vm/,Kyle Jones}.
-@uref{ftp://ftp.wonderworks.com/pub/vm/,Older versions} of VM remain
-available.
-
-
-@node AUCTeX
-@section AUC@TeX{} --- enhanced @TeX{} modes with debugging facilities
-@cindex Mode for @TeX{}
-@cindex @TeX{} mode
-@cindex AUC@TeX{} mode for editing @TeX{}
-@cindex Writing and debugging @TeX{}
-
-AUC@TeX{} is a set of sophisticated major modes for @TeX{}, LaTeX,
-ConTeXt, and Texinfo offering context-sensitive syntax highlighting,
-indentation, formatting and folding, macro completion, @TeX{} shell
-functionality, and debugging.  Be also sure to check out
-@ref{Introduction, RefTeX, Introduction, reftex, Ref@TeX{} User Manual}.
-Current versions of AUC@TeX{} include the
-@uref{http://www.gnu.org/software/auctex/preview-latex.html,preview-latex}
-package for WYSIWYG previews of various LaTeX constructs in the Emacs
-source buffer.
-
-@uref{http://www.gnu.org/software/auctex/, AUCTeX}
-
-@node BBDB
-@section BBDB --- personal Info Rolodex integrated with mail/news readers
-@cindex BBDB
-@cindex Rolodex-like functionality
-@cindex Integrated contact database
-@cindex Contact database
-@cindex Big Brother Database
-@cindex Address book
-
-@uref{http://bbdb.sourceforge.net/, The Insidious Big Brother Database}
-
-@node Spell-checkers
-@section Spell-checkers
-@cindex Spell-checker
-@cindex Checking spelling
-@cindex Ispell
-@cindex Aspell
-@cindex Hunspell
-
-Various spell-checkers are compatible with Emacs, including:
-
-@table @b
-
-@item GNU Aspell
-@uref{http://aspell.net/}
-
-@item Ispell
-@uref{http://fmg-www.cs.ucla.edu/geoff/ispell.html}
-
-@item Hunspell
-@uref{http://hunspell.sourceforge.net/}
-
-@end table
-
-@node Emacs/W3
-@section Emacs/W3 --- A World Wide Web browser inside of Emacs
-@cindex WWW browser
-@cindex Web browser
-@cindex HTML browser in Emacs
-@cindex @code{w3-mode}
-
-@uref{http://www.gnu.org/software/w3/, Emacs/W3}
-
-@node EDB
-@section EDB --- Database program for Emacs; replaces forms editing modes
-@cindex EDB
-@cindex Database
-@cindex Forms mode
-
-@uref{http://gnuvola.org/software/edb/, The Emacs Database}
-
-@node JDEE
-@section JDEE --- Integrated development environment for Java
-@cindex Java development environment
-@cindex Integrated Java development environment
-@cindex JDEE
-
-@uref{http://jdee.sourceforge.net/, A Java Development Environment for Emacs}
-
 @c ------------------------------------------------------------
 @node Key bindings
 @chapter Key bindings
index f2cdfb83c44f934b5169829bb2a34b3846521895..1200b991597f1235d77ffc1baac7ea9751a567b4 100644 (file)
@@ -1,3 +1,9 @@
+2012-04-26  Jambunathan K  <kjambunathan@gmail.com>
+
+       * org/OrgOdtStyles.xml (OrgDescriptionList): Modify style.  With
+       this change, in a description list, if the description paragraph
+       spawns multiple lines then it will correctly indented.
+
 2012-04-20  Glenn Morris  <rgm@gnu.org>
 
        * CONTRIBUTE: Expand a bit on copyright assignments.
index 156933410ba07913f5a8707f5ba07d6e52f0d400..ce3cfe7accfda23bcd30f45ad72a0afc52b69672 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -833,7 +833,7 @@ by default.
 (Its name is misleading, since it has nothing to do with MIME
 attachments.)  The old name is now an obsolete alias to the new name.
 
-** MH-E has been upgraded to MH-E version 8.3.1.
+** MH-E has been updated to MH-E version 8.3.1.
 See MH-E-NEWS for details.
 
 ** Modula-2 mode provides auto-indentation.
@@ -845,6 +845,9 @@ Completion is now performed via `completion-at-point', bound to C-M-i
 or M-TAB.  If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the
 default), this performs tag completion.
 
+** Org mode has been updated to version 7.8.09.
+See ORG-NEWS for details.
+
 ** Prolog mode has been completely revamped, with lots of additional
 functionality such as more intelligent indentation, electricity,
 support 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.
 *** New function `special-variable-p' to check whether a variable is
 declared as dynamically bound.
 
+*** The form ((lambda ...) ...) is deprecated.
+
 ** An Emacs Lisp testing tool is now included.
 Emacs Lisp developers can use this tool to write automated tests for
 their code.  See the ERT info manual for details.
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
new file mode 100644 (file)
index 0000000..a6b31cf
--- /dev/null
@@ -0,0 +1,948 @@
+ORG NEWS -- history of user-visible changes.           -*- org -*-
+
+Copyright (C) 2012  Free Software Foundation, Inc.
+See the end of the file for license conditions.
+
+Please send Org bug reports to emacs-orgmode@gnu.org.
+
+* Incompatible changes
+
+** New keys for TODO sparse trees
+   :PROPERTIES:
+   :OrgVersion:  7.01
+   :END:
+
+   The key =C-c C-v= is now reserved for Org Babel action.  TODO sparse
+   trees can still be made with =C-c / t= (all not-done states) and =C-c /
+   T= (specific states).
+
+** The Agenda =org-agenda-ndays= is now obsolete
+   :PROPERTIES:
+   :OrgVersion:  7.4
+   :END:
+   
+   The variable =org-agenda-ndays= is obsolete - please use
+   =org-agenda-span= instead.
+
+   Thanks to Julien Danjou for this.
+
+** Changes to the intended use of =org-export-latex-classes=
+   :PROPERTIES:
+   :OrgVersion:  6.35
+   :END:
+
+   So far this variable has been used to specify the complete header of the
+   LaTeX document, including all the =\usepackage= calls necessary for the
+   document.  This setup makes it difficult to maintain the list of
+   packages that Org itself would like to call, for example for the special
+   symbol support it needs.
+
+   First of all, you can *opt out of this change* in the following way: You
+   can say: /I want to have full control over headers, and I will take
+   responsibility to include the packages Org needs/.  If that is what you
+   want, add this to your configuration and skip the rest of this section
+   (except maybe for the description of the =[EXTRA]= place holder):
+
+   #+begin_src emacs-lisp
+  (setq org-export-latex-default-packages-alist nil
+        org-export-latex-packages-alist nil)
+   #+end_src
+
+   /Continue to read here if you want to go along with the modified setup./
+
+   There are now two variables that should be used to list the LaTeX
+   packages that need to be included in all classes.  The header definition
+   in =org-export-latex-classes= should then not contain the corresponding
+   =\usepackage= calls (see below).
+
+   The two new variables are:
+
+   1. =org-export-latex-default-packages-alist= :: This is the variable
+        where Org-mode itself puts the packages it needs.  Normally you
+        should not change this variable.  The only reason to change it
+        anyway is when one of these packages causes a conflict with another
+        package you want to use.  Then you can remove that packages and
+        hope that you are not using Org-mode functionality that needs it.
+
+   2. =org-export-latex-packages-alist= :: This is the variable where you
+        can put the packages that you'd like to use across all classes.
+
+   The sequence how these customizations will show up in the LaTeX
+   document are:
+
+   1. Header from =org-export-latex-classes=
+   2. =org-export-latex-default-packages-alist=
+   3. =org-export-latex-packages-alist=
+   4. Buffer-specific things set with =#+LaTeX_HEADER:=
+
+   If you want more control about which segment is placed where, or if you
+   want, for a specific class, have full control over the header and
+   exclude some of the automatic building blocks, you can put the following
+   macro-like place holders into the header:
+
+   #+begin_example
+   [DEFAULT-PACKAGES]      \usepackage statements for default packages
+   [NO-DEFAULT-PACKAGES]   do not include any of the default packages
+   [PACKAGES]              \usepackage statements for packages
+   [NO-PACKAGES]           do not include the packages
+   [EXTRA]                 the stuff from #+LaTeX_HEADER
+   [NO-EXTRA]              do not include #+LaTeX_HEADER stuff
+   #+end_example
+
+   If you have currently customized =org-export-latex-classes=, you should
+   revise that customization and remove any package calls that are covered
+   by =org-export-latex-default-packages-alist=.  This applies to the
+   following packages:
+
+   - inputenc
+   - fontenc
+   - fixltx2e
+   - graphicx
+   - longtable
+   - float
+   - wrapfig
+   - soul
+   - t1enc
+   - textcomp
+   - marvosym
+   - wasysym
+   - latexsym
+   - amssymb
+   - hyperref
+
+   If one of these packages creates a conflict with another package you are
+   using, you can remove it from =org-export-latex-default-packages-alist=.
+   But then you risk that some of the advertised export features of Org
+   will not work properly.
+
+   You can also consider moving packages that you use in all classes to
+   =org-export-latex-packages-alist=.  If necessary, put the place holders
+   so that the packages get loaded in the right sequence.  As said above,
+   for backward compatibility, if you omit the place holders, all the
+   variables will dump their content at the end of the header.
+
+** The constant =org-html-entities= is obsolete
+   :PROPERTIES:
+   :OrgVersion:  6.35
+   :END:
+
+   Its content is now part of the new constant =org-entities=, which is
+   defined in the file org-entities.el.  =org-html-entities= was an internal
+   variable, but it is possible that some users did write code using it.
+
+** `org-bbdb-anniversary-format-alist' has changed
+   :PROPERTIES:
+   :OrgVersion:  7.5
+   :END:
+
+   Please check the docstring and update your settings accordingly.
+
+** Deleted =org-mode-p=
+   :PROPERTIES:
+   :OrgVersion:  7.8
+   :END:
+
+   This function has been deleted: please update your code.
+
+* Important new features
+
+** New Org to ODT exporter
+   :PROPERTIES:
+   :OrgVersion:  7.8
+   :END:
+
+   Jambunathan's Org to ODT exporter is now part of Org.
+
+   To use it, it `C-c C-e o' in an Org file.  See the documentation for more
+   information on how to customize it.
+
+** org-capture.el is now the default capture system
+   :PROPERTIES:
+   :OrgVersion:  7.01
+   :END:
+
+   This replaces the earlier system org-remember.  The manual only describes
+   org-capture, but for people who prefer to continue to use org-remember,
+   we keep a static copy of the former manual section [[http://orgmode.org/org-remember.pdf][chapter about
+   remember]].
+
+   The new system has a technically cleaner implementation and more
+   possibilities for capturing different types of data.  See [[http://thread.gmane.org/gmane.emacs.orgmode/26441/focus%3D26441][Carsten's
+   announcement]] for more details.
+
+   To switch over to the new system:
+
+   1. Run
+
+    : M-x org-capture-import-remember-templates RET
+
+    to get a translated version of your remember templates into the
+    new variable =org-capture-templates=.  This will "mostly" work,
+    but maybe not for all cases.  At least it will give you a good
+    place to modify your templates.  After running this command,
+    enter the customize buffer for this variable with
+
+    : M-x customize-variable RET org-capture-templates RET
+
+    and convince yourself that everything is OK.  Then save the
+    customization.
+
+   2. Bind the command =org-capture= to a key, similar to what you did
+      with org-remember:
+
+    : (define-key global-map "\C-cc" 'org-capture)
+
+    If your fingers prefer =C-c r=, you can also use this key once
+    you have decided to move over completely to the new
+    implementation.  During a test time, there is nothing wrong
+    with using both system in parallel.
+
+* New libraries
+
+** New Org libraries
+*** org-eshell.el (Konrad Hinsen)
+    :PROPERTIES:
+    :OrgVersion:  7.8
+    :END:
+
+    Implement links to eshell buffers.
+
+*** org-special-blocks (Carsten Dominik)
+   :PROPERTIES:
+   :OrgVersion:  7.8
+   :END:
+
+This package generalizes the #+begin_foo and #+end_foo tokens.
+
+To use, put the following in your init file:
+
+#+BEGIN_EXAMPLE
+(require 'org-special-blocks)
+#+END_EXAMPLE
+
+The tokens #+begin_center, #+begin_verse, etc. existed previously.  This
+package generalizes them (at least for the LaTeX and html exporters).  When
+a #+begin_foo token is encountered by the LaTeX exporter, it is expanded
+into \begin{foo}.  The text inside the environment is not protected, as
+text inside environments generally is.  When #+begin_foo is encountered by
+the html exporter, a div with class foo is inserted into the HTML file.  It
+is up to the user to add this class to his or her stylesheet if this div is
+to mean anything.
+
+*** org-taskjuggler.el (Christian Egli)
+    :PROPERTIES:
+    :OrgVersion:  7.01
+    :END:
+
+    Christian Egli's /org-taskjuggler.el/ module is now part of Org.  He
+    also wrote a [[http://orgmode.org/worg/org-tutorials/org-taskjuggler.php][tutorial]] for it.
+
+*** org-ctags.el (Paul Sexton)
+    :PROPERTIES:
+    :OrgVersion:  6.34
+    :END:
+
+    Targets like =<<my target>>= can now be found by Emacs' etag
+    functionality, and Org-mode links can be used to to link to etags, also
+    in non-Org-mode files.  For details, see the file /org-ctags.el/.
+
+    This feature uses a new hook =org-open-link-functions= which will call
+    function to do something special with text links.
+
+    Thanks to Paul Sexton for this contribution.
+
+*** org-docview.el (Jan Böcker)
+    :PROPERTIES:
+    :OrgVersion:  6.34
+    :END:
+
+    This new module allows links to various file types using docview, where
+    Emacs displays images of document pages.  Docview link types can point
+    to a specific page in a document, for example to page 131 of the
+    Org-mode manual:
+
+    : [[docview:~/.elisp/org/doc/org.pdf::131][Org-Mode Manual]]
+
+    Thanks to Jan Böcker for this contribution.
+
+** New Babel libraries
+
+- ob-picolisp.el (Thorsten Jolitz)
+- ob-fortran.el (Sergey Litvinov)
+- ob-shen.el (Eric Schulte)
+- ob-maxima.el (Eric S Fraga)
+- ob-java.el (Eric Schulte)
+- ob-lilypond.el (Martyn Jago)
+- ob-awk.el (Eric Schulte)
+
+* Other new features and various enhancements
+
+** Hyperlinks
+
+*** Org-Bibtex -- major improvements
+    :PROPERTIES:
+    :OrgVersion:  7.6
+    :END:
+
+    Provides support for managing bibtex bibliographical references
+    data in headline properties.  Each headline corresponds to a
+    single reference and the relevant bibliographic meta-data is
+    stored in headline properties, leaving the body of the headline
+    free to hold notes and comments.  Org-bibtex is aware of all
+    standard bibtex reference types and fields.
+
+    The key new functions are
+
+- org-bibtex-check :: queries the user to flesh out all required
+     (and with prefix argument optional) bibtex fields available
+     for the specific reference =type= of the current headline.
+
+- org-bibtex-create :: Create a new entry at the given level,
+     using org-bibtex-check to flesh out the relevant fields.
+
+- org-bibtex-yank :: Yank a bibtex entry on the kill ring as a
+     formatted Org-mode headline into the current buffer
+
+- org-bibtex-export-to-kill-ring :: Export the current headline
+     to the kill ring as a formatted bibtex entry.
+
+
+
+*** org-gnus.el now allows link creation from messages
+    :PROPERTIES:
+    :OrgVersion:  7.5
+    :END:
+
+    You can now create links from messages.  This is particularily
+    useful when the user wants to stored messages that he sends, for
+    later check.  Thanks to Ulf Stegemann for the patch.
+
+
+
+*** Modified link escaping
+    :PROPERTIES:
+    :OrgVersion:  7.5
+    :END:
+
+    David Maus worked on `org-link-escape'.  See [[http://article.gmane.org/gmane.emacs.orgmode/37888][his message]]:
+
+: Percent escaping is used in Org mode to escape certain characters
+: in links that would either break the parser (e.g. square brackets
+: in link target oder description) or are not allowed to appear in
+: a particular link type (e.g. non-ascii characters in a http:
+: link).
+:
+: With this change in place Org will apply percent escaping and
+: unescaping more consistently especially for non-ascii characters.
+: Additionally some of the outstanding bugs or glitches concerning
+: percent escaped links are solved.
+
+    Thanks a lot to David for this work.
+
+
+
+*** Make =org-store-link= point to directory in a dired buffer
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    When, in a dired buffer, the cursor is not in a line listing a
+    file, `org-store-link' will store a link to the directory.
+
+    Patch by Stephen Eglen.
+
+
+
+*** Allow regexps in =org-file-apps= to capture link parameters
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    The way extension regexps in =org-file-apps= are handled has
+    changed.  Instead of matching against the file name, the regexps
+    are now matched against the whole link, and you can use grouping
+    to extract link parameters which you can then use in a command
+    string to be executed.
+
+    For example, to allow linking to PDF files using the syntax
+    =file:/doc.pdf::<page number>=, you can add the following entry to
+    org-file-apps:
+
+    #+begin_example
+    Extension: \.pdf::\([0-9]+\)\'
+    Command:   evince "%s" -p %1
+    #+end_example
+
+    Thanks to Jan Böcker for a patch to this effect.
+
+** Dates and time
+
+*** Allow relative time when scheduling/adding a deadline
+    :PROPERTIES:
+    :OrgVersion:  7.7
+    :END:
+
+    You can now use relative duration strings like "-2d" or "++3w"
+    when calling =org-schedule= or =org-deadline=: it will schedule
+    (or set the deadline for) the item respectively two days before
+    today and three weeks after the current timestamp, if any.
+
+    You can use this programmatically: =(org-schedule nil "+2d")=
+    will work on the current entry.
+
+    You can also use this while (bulk-)rescheduling and
+    (bulk-)resetting the deadline of (several) items from the agenda.
+
+    Thanks to Memnon Anon for a heads up about this!
+
+
+
+
+*** American-style dates are now understood by =org-read-date=
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    So when you are prompted for a date, you can now answer like this
+
+    #+begin_example
+    2/5/3         --> 2003-02-05
+    2/5           --> <CURRENT-YEAR>-02-05
+    #+end_example
+
+** Agenda
+
+*** =org-agenda-custom-commands= has a default value
+    :PROPERTIES:
+    :OrgVersion:  7.8
+    :END:
+
+    This option used to be `nil' by default.  This now has a default
+    value, displaying an agenda and all TODOs.  See the docstring for
+    details.  Thanks to Carsten for this.
+
+
+*** Improved filtering through =org-agenda-to-appt=
+    :PROPERTIES:
+    :OrgVersion:  7.8
+    :END:
+
+    The new function allows the user to refine the scope of entries
+    to pass to =org-agenda-get-day-entries= and allows to filter out
+    entries using a function.
+
+    Thanks to Peter Münster for raising a related issue and to
+    Tassilo Horn for this idea.  Also thanks to Peter Münster for
+    [[git:68ffb7a7][fixing a small bug]] in the final implementation.
+
+
+
+*** Allow ap/pm times in agenda time grid
+    :PROPERTIES:
+    :OrgVersion:  7.4
+    :END:
+
+    Times in the agenda can now be displayed in am/pm format.  See the new
+    variable =org-agenda-timegrid-use-ampm=.  Thanks to C. A. Webber for
+    a patch to this effect.
+
+
+
+*** Agenda: Added a bulk "scattering" command
+    :PROPERTIES:
+    :OrgVersion:  7.4
+    :END:
+
+    =B S= in the agenda buffer will cause tasks to be rescheduled a random
+    number of days into the future, with 7 as the default.  This is useful
+    if you've got a ton of tasks scheduled for today, you realize you'll
+    never deal with them all, and you just want them to be distributed
+    across the next N days.  When called with a prefix arg, rescheduling
+    will avoid weekend days.
+
+    Thanks to John Wiegley for this.
+
+** Exporting
+
+*** Simplification of org-export-html-preamble/postamble
+    :PROPERTIES:
+    :OrgVersion:  7.5
+    :END:
+
+    When set to `t', export the preamble/postamble as usual, honoring the
+    =org-export-email/author/creator-info= variables.
+
+    When set to a formatting string, insert this string.  See the docstring
+    of these variable for details about available %-sequences.
+
+    You can set =:html-preamble= in publishing project in the same way: `t'
+    means to honor =:email/creator/author-info=, and a formatting string
+    will insert a string.
+
+*** New exporters to Latin-1 and UTF-8
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    While Ulf Stegemann was going through the entities list to improve the
+    LaTeX export, he had the great idea to provide representations for many
+    of the entities in Latin-1, and for all of them in UTF-8.  This means
+    that we can now export files rich in special symbols to Latin-1 and to
+    UTF-8 files.  These new exporters can be reached with the commands =C-c
+    C-e n= and =C-c C-e u=, respectively.
+
+    When there is no representation for a given symbol in the targeted
+    coding system, you can choose to keep the TeX-macro-like
+    representation, or to get an "explanatory" representation.  For
+    example, =\simeq= could be represented as "[approx. equal to]".  Please
+    use the variable =org-entities-ascii-explanatory= to state your
+    preference.
+
+*** HTML export: Add class to outline containers using property
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    The =HTML_CONTAINER_CLASS= property can now be used to add a class name
+    to the outline container of a node in HTML export.
+
+*** Throw an error when creating an image from a LaTeX snippet fails
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    This behavior can be configured with the new option variable
+    =org-format-latex-signal-error=.
+
+*** Support for creating BEAMER presentations from Org-mode documents
+    :PROPERTIES:
+    :OrgVersion:  6.34
+    :END:
+
+    Org-mode documents or subtrees can now be converted directly in to
+    BEAMER presentation.  Turning a tree into a simple presentations is
+    straight forward, and there is also quite some support to make richer
+    presentations as well.  See the [[http://orgmode.org/manual/Beamer-class-export.html#Beamer-class-export][BEAMER section]] in the manual for more
+    details.
+
+    Thanks to everyone who has contributed to the discussion about BEAMER
+    support and how it should work.  This was a great example for how this
+    community can achieve a much better result than any individual could.
+
+** Refiling
+
+*** Refile targets can now be cached
+    :PROPERTIES:
+    :OrgVersion:  7.01
+    :END:
+
+    You can turn on caching of refile targets by setting the variable
+    =org-refile-use-cache=.  This should speed up refiling if you have many
+    eligible targets in many files.  If you need to update the cache
+    because Org misses a newly created entry or still offers a deleted one,
+    press =C-0 C-c C-w=.
+
+*** New logging support for refiling
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    Whenever you refile an item, a time stamp and even a note can be added
+    to this entry.  For details, see the new option =org-log-refile=.
+
+    Thanks to Charles Cave for this idea.
+
+** Completion
+
+*** In-buffer completion is now done using John Wiegleys pcomplete.el
+    :PROPERTIES:
+    :OrgVersion:  7.4
+    :END:
+
+    Thanks to John Wiegley for much of this code.
+
+** Tables
+
+*** New command =org-table-transpose-table-at-point=
+    :PROPERTIES:
+    :OrgVersion:  7.8
+    :END:
+
+    See the docstring.  This hack from Juan Pechiar is now part of Org's
+    core.  Thanks to Juan!
+
+*** Display field's coordinates when editing it with =C-c `=
+    :PROPERTIES:
+    :OrgVersion:  7.7
+    :END:
+
+    When editing a field with =C-c `=, the field's coordinate will the
+    displayed in the buffer.
+
+    Thanks to Michael Brand for a patch to this effect.
+
+*** Spreadsheet computation of durations and time values
+    :PROPERTIES:
+    :OrgVersion:  7.6
+    :END:
+
+    If you want to compute time values use the =T= flag, either in Calc
+    formulas or Elisp formulas:
+
+    | Task 1 | Task 2 |   Total |
+    |--------+--------+---------|
+    |  35:00 |  35:00 | 1:10:00 |
+    #+TBLFM: @2$3=$1+$2;T
+
+    Values must be of the form =[HH:]MM:SS=, where hours are optional.
+
+    Thanks to Martin Halder, Eric Schulte and Carsten for code and feedback
+    on this.
+
+*** Implement formulas applying to field ranges
+    :PROPERTIES:
+    :OrgVersion:  7.5
+    :END:
+
+    Carsten implemented this field-ranges formulas.
+
+    : A frequently requested feature for tables has been to be able to define
+    : row formulas in a way similar to column formulas.  The patch below allows
+    : things like
+    :
+    : @3=
+    : @2$2..@5$7=
+    : @I$2..@II$4=
+    :
+    : as the left hand side for table formulas in order to write a formula that
+    : is valid for an entire column or for a rectangular section in a
+    : table.
+
+    Thanks a lot to Carsten for this.
+
+*** Sending radio tables from org buffers is now allowed
+    :PROPERTIES:
+    :OrgVersion:  7.4
+    :END:
+
+    Org radio tables can no also be sent inside Org buffers.  Also, there
+    is a new hook which get called after a table has been sent.
+
+    Thanks to Seweryn Kokot.
+
+** Lists
+
+*** Improved handling of lists
+    :PROPERTIES:
+    :OrgVersion:  7.5
+    :END:
+
+    Nicolas Goaziou extended and improved the way Org handles lists.
+
+    1. Indentation of text determines again end of items in lists. So, some
+       text less indented than the previous item doesn't close the whole
+       list anymore, only all items more indented than it.
+
+    2. Alphabetical bullets are implemented, through the use of the
+       variable `org-alphabetical-lists'. This also adds alphabetical
+       counters like [@c] or [@W].
+
+    3. Lists can now safely contain drawers, inline tasks, or various
+       blocks, themselves containing lists. Two variables are controlling
+       this: `org-list-forbidden-blocks', and `org-list-export-context'.
+
+    4. Improve `newline-and-indent' (C-j): used in an item, it will keep
+       text from moving at column 0. This allows to split text and make
+       paragraphs and still not break the list.
+
+    5. Improve `org-toggle-item' (C-c -): used on a region with standard
+       text, it will change the region into one item. With a prefix
+       argument, it will fallback to the previous behavior and make every
+       line in region an item. It permits to easily integrate paragraphs
+       inside a list.
+
+    6. `fill-paragraph' (M-q) now understands lists. It can freely be used
+       inside items, or on text just after a list, even with no blank line
+       around, without breaking list structure.
+
+    Thanks a lot to Nicolas for all this!
+
+** Inline display of linked images
+   :PROPERTIES:
+   :OrgVersion:  6.36
+   :END:
+
+   Images can now be displayed inline.  The key C-c C-x C-v does toggle the
+   display of such images.  Note that only image links that have no
+   description part will be inlined.
+
+** Implement offsets for ordered lists
+   :PROPERTIES:
+   :OrgVersion:  6.36
+   :END:
+
+   If you want to start an ordered plain list with a number different from
+   1, you can now do it like this:
+
+   : 1. [@start:12] will star a lit a number 12
+
+** Babel: code block body expansion for table and preview
+   :PROPERTIES:
+   :OrgVersion:  6.36
+   :END:
+
+   In org-babel, code is "expanded" prior to evaluation. I.e. the code that
+   is actually evaluated comprises the code block contents, augmented with
+   the extra code which assigns the referenced data to variables. It is now
+   possible to preview expanded contents, and also to expand code during
+   during tangling. This expansion takes into account all header arguments,
+   and variables.
+
+   A new key-binding `C-c M-b p' bound to `org-babel-expand-src-block' can
+   be used from inside of a source code block to preview its expanded
+   contents (which can be very useful for debugging).  tangling
+
+   The expanded body can now be tangled, this includes variable values
+   which may be the results of other source-code blocks, or stored in
+   headline properties or tables. One possible use for this is to allow
+   those using org-babel for their emacs initialization to store values
+   (e.g. usernames, passwords, etc...) in headline properties or in tables.
+
+   Org-babel now supports three new header arguments, and new default
+   behavior for handling horizontal lines in tables (hlines), column names,
+   and rownames across all languages.
+
+** Editing Convenience and Appearance
+
+*** New command =org-copy-visible= (=C-c C-x v=)
+    :PROPERTIES:
+    :OrgVersion:  7.7
+    :END:
+
+    This command will copy the visible text in the region into the kill
+    ring.  Thanks to Florian Beck for this function and to Carsten for
+    adding it to org.el and documenting it!
+
+*** Make it possible to protect hidden subtrees from being killed by =C-k=
+    :PROPERTIES:
+    :OrgVersion:  7.01
+    :END:
+
+    See the new variable =org-ctrl-k-protect-subtree=.  This was a request
+    by Scott Otterson.
+
+*** Implement pretty display of entities, sub-, and superscripts.
+    :PROPERTIES:
+    :OrgVersion:  7.01
+    :END:
+
+    The command =C-c C-x \= toggles the display of Org's special entities
+    like =\alpha= as pretty unicode characters.  Also, sub and superscripts
+    are displayed in a pretty way (raised/lower display, in a smaller
+    font).  If you want to exclude sub- and superscripts, see the variable
+    =org-pretty-entities-include-sub-superscripts=.
+
+    Thanks to Eric Schulte and Ulf Stegeman for making this possible.
+
+*** New faces for title, date, author and email address lines
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    The keywords in these lines are now dimmed out, and the title is
+    displayed in a larger font, and a special font is also used for author,
+    date, and email information.  This is implemented by the following new
+    faces:
+
+    =org-document-title=
+    =org-document-info=
+    =org-document-info-keyword=
+
+    In addition, the variable =org-hidden-keywords= can be used to make the
+    corresponding keywords disappear.
+
+    Thanks to Dan Davison for this feature.
+
+*** Simpler way to specify faces for tags and todo keywords
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    The variables =org-todo-keyword-faces=, =org-tag-faces=, and
+    =org-priority-faces= now accept simple color names as specifications.
+    The colors will be used as either foreground or background color for
+    the corresponding keyword.  See also the variable
+    =org-faces-easy-properties=, which governs which face property is
+    affected by this setting.
+
+    This is really a great simplification for setting keyword faces.  The
+    change is based on an idea and patch by Ryan Thompson.
+
+*** <N> in tables now means fixed width, not maximum width
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    Requested by Michael Brand.
+
+*** Better level cycling function
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    =TAB= in an empty headline cycles the level of that headline through
+    likely states.  Ryan Thompson implemented an improved version of this
+    function, which does not depend upon when exactly this command is used.
+    Thanks to Ryan for this improvement.
+
+*** Adaptive filling
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    For paragraph text, =org-adaptive-fill-function= did not handle the
+    base case of regular text which needed to be filled.  This is now
+    fixed.  Among other things, it allows email-style ">" comments to be
+    filled correctly.
+
+    Thanks to Dan Hackney for this patch.
+
+*** `org-reveal' (=C-c C-r=) also decrypts encrypted entries (org-crypt.el)
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    Thanks to Richard Riley for triggering this change.
+
+*** Better automatic letter selection for TODO keywords
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    When all first letters of keywords have been used, Org now assigns more
+    meaningful characters based on the keywords.
+
+    Thanks to Mikael Fornius for this patch.
+
+** Clocking
+
+*** Clock: Allow synchronous update of timestamps in CLOCK log
+    :PROPERTIES:
+    :OrgVersion:  7.7
+    :END:
+
+    Using =S-M-<up/down>= on CLOCK log timestamps will increase/decrease
+    the two timestamps on this line so that duration will keep the same.
+    Note that duration can still be slightly modified in case a timestamp
+    needs some rounding.
+
+    Thanks to Rainer Stengele for this idea.
+
+*** Localized clock tables
+    :PROPERTIES:
+    :OrgVersion:  7.5
+    :END:
+
+    Clock tables now support a new new =:lang= parameter, allowing the user
+    to customize the localization of the table headers.  See the variable
+    =org-clock-clocktable-language-setup= which controls available
+    translated strings.
+
+*** Show clock overruns in mode line
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    When clocking an item with a planned effort, overrunning the planned
+    time is now made visible in the mode line, for example using the new
+    face =org-mode-line-clock-overrun=, or by adding an extra string given
+    by =org-task-overrun-text=.
+
+    Thanks to Richard Riley for a patch to this effect.
+
+*** Clock reports can now include the running, incomplete clock
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    If you have a clock running, and the entry being clocked falls into the
+    scope when creating a clock table, the time so far spent can be added
+    to the total.  This behavior depends on the setting of
+    =org-clock-report-include-clocking-task=.  The default is =nil=.
+
+    Thanks to Bernt Hansen for this useful addition.
+
+** Misc
+
+*** Improvements with inline tasks and indentation
+    :PROPERTIES:
+    :OrgVersion:  7.4
+    :END:
+
+    There is now a configurable way on how to export inline tasks.  See the
+    new variable =org-inlinetask-export-templates=.
+
+    Thanks to Nicolas Goaziou for coding these changes.
+
+*** A property value of "nil" now means to unset a property
+    :PROPERTIES:
+    :OrgVersion:  7.01
+    :END:
+
+    This can be useful in particular with property inheritance, if some
+    upper level has the property, and some grandchild of it would like to
+    have the default settings (i.e. not overruled by a property) back.
+
+    Thanks to Robert Goldman and Bernt Hansen for suggesting this change.
+
+*** New helper functions in org-table.el
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    There are new functions to access and write to a specific table field.
+    This is for hackers, and maybe for the org-babel people.
+
+    #+begin_example
+    org-table-get
+    org-table-put
+    org-table-current-line
+    org-table-goto-line
+    #+end_example
+
+*** Archiving: Allow to reverse order in target node
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    The new option =org-archive-reversed-order= allows to have archived
+    entries inserted in a last-on-top fashion in the target node.
+
+    This was requested by Tom.
+
+*** Org-reveal: Double prefix arg shows the entire subtree of the parent
+    :PROPERTIES:
+    :OrgVersion:  6.35
+    :END:
+
+    This can help to get out of an inconsistent state produced for example
+    by viewing from the agenda.
+
+    This was a request by Matt Lundin.
+
+* License
+
+This file is part of GNU Emacs.
+
+GNU Emacs is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
index 470b7b134a775db29cd63b9d81505427e3bff031..84125c96d8a90c3f1ba6da9ff091be05e6b31781 100644 (file)
   <!-- Description List -->
   <text:list-style style:name="OrgDescriptionList">
    <text:list-level-style-number text:level="1" style:num-format="">
-    <style:list-level-properties text:space-before="0.635cm" text:min-label-width="0.635cm"/>
+    <style:list-level-properties text:space-before="0.635cm"/>
    </text:list-level-style-number>
    <text:list-level-style-number text:level="2" style:num-format="">
-    <style:list-level-properties text:space-before="1.27cm" text:min-label-width="0.635cm"/>
+    <style:list-level-properties text:space-before="1.27cm"/>
    </text:list-level-style-number>
    <text:list-level-style-number text:level="3" style:num-format="">
-    <style:list-level-properties text:space-before="1.905cm" text:min-label-width="0.635cm"/>
+    <style:list-level-properties text:space-before="1.905cm"/>
    </text:list-level-style-number>
    <text:list-level-style-number text:level="4" style:num-format="">
-    <style:list-level-properties text:space-before="2.54cm" text:min-label-width="0.635cm"/>
+    <style:list-level-properties text:space-before="2.54cm"/>
    </text:list-level-style-number>
    <text:list-level-style-number text:level="5" style:num-format="">
-    <style:list-level-properties text:space-before="3.175cm" text:min-label-width="0.635cm"/>
+    <style:list-level-properties text:space-before="3.175cm"/>
    </text:list-level-style-number>
    <text:list-level-style-number text:level="6" style:num-format="">
-    <style:list-level-properties text:space-before="3.81cm" text:min-label-width="0.635cm"/>
+    <style:list-level-properties text:space-before="3.81cm"/>
    </text:list-level-style-number>
    <text:list-level-style-number text:level="7" style:num-format="">
-    <style:list-level-properties text:space-before="4.445cm" text:min-label-width="0.635cm"/>
+    <style:list-level-properties text:space-before="4.445cm"/>
    </text:list-level-style-number>
    <text:list-level-style-number text:level="8" style:num-format="">
-    <style:list-level-properties text:space-before="5.08cm" text:min-label-width="0.635cm"/>
+    <style:list-level-properties text:space-before="5.08cm"/>
    </text:list-level-style-number>
    <text:list-level-style-number text:level="9" style:num-format="">
-    <style:list-level-properties text:space-before="5.715cm" text:min-label-width="0.635cm"/>
+    <style:list-level-properties text:space-before="5.715cm"/>
    </text:list-level-style-number>
    <text:list-level-style-number text:level="10" style:num-format="">
-    <style:list-level-properties text:space-before="6.35cm" text:min-label-width="0.635cm"/>
+    <style:list-level-properties text:space-before="6.35cm"/>
    </text:list-level-style-number>
   </text:list-style>
 
index 0b0065f520ecab4b01466edd69cd57a3927f9241..f88a386178fbf720b5a82b3b9089de8eae7d9d4c 100644 (file)
@@ -1,7 +1,57 @@
+2012-04-27  Chong Yidong  <cyd@gnu.org>
+
+       * subr.el (read-key): Avoid running filter function when setting
+       up temporary tool bar entries (Bug#9922).
+
+2012-04-27  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * vc/vc-git.el (vc-git-state): Fix regexp matching diff output.
+       (Bug#11344)
+
+2012-04-27  Chong Yidong  <cyd@gnu.org>
+
+       * select.el (xselect--encode-string): New function, split from
+       xselect-convert-to-string.
+       (xselect-convert-to-string): Use it.
+       (xselect-convert-to-filename, xselect-convert-to-os)
+       (xselect-convert-to-host, xselect-convert-to-user): Ensure that
+       returned strings are properly encoded (Bug#11315).
+
+2012-04-27  Chong Yidong  <cyd@gnu.org>
+
+       * simple.el (delete-active-region): Move to killing custom group.
+
+2012-04-27  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * progmodes/which-func.el (which-func-current): Quote %
+       characters for mode-line processing.
+
+2012-04-21  Chong Yidong  <cyd@gnu.org>
+
+       * xml.el (xml-parse-region, xml-parse-tag): Avoid errors due to
+       reaching eob (Bug#11286).
+
+2012-04-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * progmodes/gdb-mi.el (gdb-control-level): New variable.
+       (gdb): Make it buffer-local and init to zero.
+       (gdb-control-commands-regexp): New variable.
+       (gdb-send): Don't wrap in "-interpreter-exec console" if
+       gdb-control-level is positive.  Increment gdb-control-level
+       whenever the command matches gdb-control-commands-regexp, and
+       decrement it each time the command is "end".  (Bug#11279)
+
+2012-04-27  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.el (adjust-window-trailing-edge, enlarge-window)
+       (shrink-window, window-resize):
+       * mouse.el (mouse-drag-line): Fix resizing of minibuffer
+       windows (Bug#11276).
+
 2012-04-27  Chong Yidong  <cyd@gnu.org>
 
        * progmodes/pascal.el (pascal--extra-indent): Rename from ind, to
-       fix "missig prefix" warning.  All callers changed.
+       fix "missing prefix" warning.  All callers changed.
 
 2012-04-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 
index 3135b9b582737f91e89e0c38c1f24f533bf5e56c..d4213899ef642ddcf855917ebd95858dfa1d6346 100644 (file)
@@ -1,6 +1,6 @@
 ;;; check-declare.el --- Check declare-function statements
 
-;; Copyright (C) 2007-2012  Free Software Foundation, Inc.
+;; Copyright (C) 2007-2012 Free Software Foundation, Inc.
 
 ;; Author: Glenn Morris <rgm@gnu.org>
 ;; Keywords: lisp, tools, maint
@@ -28,7 +28,7 @@
 ;; checks that all such statements in a file or directory are accurate.
 ;; The entry points are `check-declare-file' and `check-declare-directory'.
 
-;; For more information, see Info node `elisp(Declaring Functions)'.
+;; For more information, see Info node `(elisp)Declaring Functions'.
 
 ;;; TODO:
 
index e25ffd933e6c96bce4aae5e49f5f602654dd2eb3..556094ca6147343ff36464b2d387762d0eb44b62 100644 (file)
@@ -1,3 +1,7 @@
+2012-04-27  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * gnus.el (debbugs-gnu): Don't override existing autoload definition.
+
 2012-04-26  Daiki Ueno  <ueno@unixuser.org>
 
        * plstore.el (plstore-called-interactively-p): New compat macro copied
index cc4f2eb1e7afb54919db2b535af4d7c9a72f739b..635bb6fc96f9ceaf0c11d003b9534184edb3d10e 100644 (file)
@@ -4397,7 +4397,9 @@ prompt the user for the name of an NNTP server to use."
     (gnus-1 arg dont-connect slave)
     (gnus-final-warning)))
 
-(autoload 'debbugs-gnu "debbugs-gnu")
+(eval-and-compile
+  (unless (fboundp 'debbugs-gnu)
+    (autoload 'debbugs-gnu "debbugs-gnu" "List all outstanding Emacs bugs." t)))
 (defun gnus-list-debbugs ()
   "List all open Gnus bug reports."
   (interactive)
index 8e08f89f22ccae697305f9df0005985ec9effda8..46e50ed95085d5ef24289fa8308a75d97eb9ab09 100644 (file)
@@ -403,13 +403,16 @@ must be one of the symbols header, mode, or vertical."
                       (or mouse-1-click-in-non-selected-windows
                           (eq window (selected-window)))
                       (mouse-on-link-p start)))
-        (enlarge-minibuffer
+        (resize-minibuffer
+         ;; Resize the minibuffer window if it's on the same frame as
+         ;; and immediately below the position window and it's either
+         ;; active or `resize-mini-windows' is nil.
          (and (eq line 'mode)
-              (not resize-mini-windows)
               (eq (window-frame minibuffer-window) frame)
-              (not (one-window-p t frame))
               (= (nth 1 (window-edges minibuffer-window))
-                 (nth 3 (window-edges window)))))
+                 (nth 3 (window-edges window)))
+              (or (not resize-mini-windows)
+                  (eq minibuffer-window (active-minibuffer-window)))))
         (which-side
          (and (eq line 'vertical)
               (or (cdr (assq 'vertical-scroll-bars (frame-parameters frame)))
@@ -424,7 +427,7 @@ must be one of the symbols header, mode, or vertical."
      ((eq line 'mode)
       ;; Check whether mode-line can be dragged at all.
       (when (and (window-at-side-p window 'bottom)
-                (not enlarge-minibuffer))
+                (not resize-minibuffer))
        (setq done t)))
      ((eq line 'vertical)
       ;; Get the window to adjust for the vertical case.
@@ -498,13 +501,9 @@ must be one of the symbols header, mode, or vertical."
            ;; Remember that we dragged.
            (setq dragged t))
 
-         (cond
-          (enlarge-minibuffer
-           (adjust-window-trailing-edge window growth))
-          ((eq line 'mode)
-           (adjust-window-trailing-edge window growth))
-          (t
-           (adjust-window-trailing-edge window (- growth)))))))
+         (if (eq line 'mode)
+             (adjust-window-trailing-edge window growth)
+           (adjust-window-trailing-edge window (- growth))))))
 
       ;; Presumably, if this was just a click, the last event should be
       ;; `mouse-1', whereas if this did move the mouse, it should be a
index 86f493a0a5b60efe58784f4d085bcad9c2a2c3ff..c340fd45df3aa0935a88f21cdb188cece548b000 100644 (file)
@@ -1,3 +1,67 @@
+2012-04-27  Nicolas Goaziou  <n.goaziou@gmail.com>
+
+       * org-table.el (org-table-number-fraction): Fix typo.
+
+2012-04-27  Eric Schulte  <eric.schulte@gmx.com>
+
+       * ob-python.el (org-babel-execute:python): Ensure newline precedes
+       automatically-added returns.
+
+2012-04-27  Nicolas Goaziou  <n.goaziou@gmail.com>
+
+       * org-mouse.el (org-mode-hook): Do not move point when clicking on
+       a footnote reference.
+
+2012-04-27  Bastien Guerry  <bzg@gnu.org>
+
+       * org-faces.el (org-date-selected): Fix docstring.
+
+2012-04-27  Nicolas Goaziou  <n.goaziou@gmail.com>
+
+       * org-list.el (org-list-struct-indent): Follow
+       `org-list-demote-modify-bullet' specifications for ordered
+       bullets.
+       (org-list-indent-item-generic, org-indent-item-tree)
+       (org-outdent-item-tree): Fix bug when operating on a region.
+       (org-outdent-item, org-indent-item): Allow to operate on a region.
+
+       * org.el (org-shiftmetaleft, org-shiftmetaright): Allow to operate
+       on a region.
+
+2012-04-27  Nicolas Goaziou  <n.goaziou@gmail.com>
+
+       * org-footnote.el (org-footnote-normalize): Fix positioning in
+       HTML export without a footnote section.
+
+2012-04-27  Madan Ramakrishnan  <madanr79@gmail.com>  (tiny change)
+
+       * org-agenda.el (org-agenda-bulk-mark): Truly make arg optional as
+       advertised by the function.
+
+2012-04-27  Zachary Kanfer  <zkanfer@gmail.com>  (tiny change)
+
+       * org.el (org-read-date-display): Fix bug when displaying the
+       overlay.
+
+2012-04-27  Bastien Guerry  <bzg@gnu.org>
+
+       * org.el (org-mode): Don't use `buffer-face-mode' by default.
+
+2012-04-27  Bastien Guerry  <bzg@gnu.org>
+
+       * org-faces.el (org-date-selected): New face.
+
+2012-04-27  Jambunathan K  <kjambunathan@gmail.com>
+
+       * org-odt.el (org-odt-format-org-link): Pay no heed to whether the
+       internal links destined for headlines provide a description or
+       not.  In fact, the `org-store-link' and `org-insert-link' create
+       internal links which do have a description.
+
+2012-04-27  Bastien Guerry  <bzg@gnu.org>
+
+       * org-clock.el (org-program-exists): Fix docstring.
+
 2012-04-14  Bastien Guerry  <bzg@gnu.org>
 
        * org.el (org-point-at-end-of-empty-headline): Only try to match
        * org-attach.el (org-attach-store-link-p): Remove spurious quote
        in customization form choice.
 
-2012-04-01  Tassilo Horn  <tassilo@member.fsf.org>
-
-       * org-contacts.el (org-contacts-check-mail-address): Add missing
-       word to `y-or-n-p' question.
-
 2012-04-01  Eric Schulte  <eric.schulte@gmx.com>
 
        * ob-sh.el (org-babel-execute:sh): Pass all params to subroutine.
        * org-footnote.el (org-footnote-normalize): Make sure that
        footnotes are moved to a single place during export.
 
-2012-04-01  Bastien Guerry  <bzg@gnu.org>
-
-       * org.el (org-cycle-internal-global): Prevent the display of
-       messages when cycling from with a Gnus article buffer.
-
 2012-04-01  Nicolas Goaziou  <n.goaziou@gmail.com>
 
        * org-footnote.el (org-footnote-normalize): Ensure footnote
        define the way a timestamp in #+DATE will be exported.
        (org-infile-export-plist): Use the new option.
 
-2012-01-03  Bastien Guerry  <bzg@gnu.org>
-
-       * org-drill.el (org-drill-leech-method, org-drill-scope)
-       (org-drill-spaced-repetition-algorithm): Fix wrong :type spec.
-
 2012-01-03  Bastien Guerry  <bzg@gnu.org>
 
        * org.el (org-property-re): Also match cumulating properties
        * ob-exp.el (org-babel-exp-in-export-file): Bind
        `org-link-search-inhibit-query' to t to inhibit prompts.
 
-2011-07-28  Julien Danjou  <julien@danjou.info>
-
-       * org-contacts.el: Merge org-contacts-wl.el.
-
 2011-07-28  Carsten Dominik  <carsten.dominik@gmail.com>
 
        * org-exp.el (org-export-add-options-to-plist): Use the right
        * org-agenda.el (org-agenda-open-link): Pass entire text of agenda
        line to `org-offer-links-in-entry'.
 
-2011-07-28  Michael Markert  <markert.michael@googlemail.com>
-
-       * org-contacts-wl.el: New file.
-
 2011-07-28  Matt Lundin  <mdl@imapmail.org>
 
        * org-bibtex.el (org-bibtex-search): New function.
        (org-agenda-open-link): Stop using prefix-length.
        (org-agenda-change-all-lines): Stop using prefix-length.
 
-       * org-colview-xemacs.el (org-columns-display-here): Stop using
-       prefix-length. Always return claned items.
-
        * org-colview.el (org-columns-display-here): Stop using
        prefix-length. Always return claned items.
 
 
        * org-capture.el (org-capture-templates): Fix customize type.
 
-2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
-
-       * org-colview-xemacs.el (org-columns-compile-map):
-       (org-columns-number-to-string):
-       (org-columns-string-to-number): Handle estimate ranges.
-       (org-estimate-mean-and-var): New function.
-       (org-estimate-combine): New function.
-       (org-estimate-print): New function.
-       (org-string-to-estimate): New function.
-
 2010-09-25  Juanma Barranquero  <lekktu@gmail.com>
 
        * org.el (org-refile-targets):
        * org-src.el (org-edit-src-find-region-and-lang): Test for
        table.el as late as possible.
 
-       * org-colview-xemacs.el: Make sure this file is never loaded into
-       Emacs.  Remove all tests for XEmacs.
-
        * org-colview.el: Make sure this file is never loaded into XEmacs.
 
        * org-agenda.el (org-highlight, org-unhighlight): Use direct
        * org-exp.el (org-export): Use "1" as a sign to export only the
        subtree.
 
-       * org-colview-xemacs.el (org-columns-edit-value):
-       Use org-unrestricted property.
-
        * org-colview.el (org-columns-edit-value):
        Use org-unrestricted property.
 
        (org-agenda-colview-summarize): Handle extended summary types
        properly.
 
-       * org-colview-xemacs.el (org-columns-display-here): Don't try to
-       calculate values if the underlying property is not set.
-       (org-columns-string-to-number): Convert age strings back into
-       fractional days.
-       (org-agenda-colview-summarize): Handle extended summary types
-       properly.
-
 2009-11-13  Carsten Dominik  <carsten.dominik@gmail.com>
 
        * org-exp.el (org-export-format-drawer-function): New variable.
        org-return-follows-link' is set and there is nothing else to do in
        this line.
 
-2009-11-13  James TD Smith  <ahktenzero@mohorovi.cc>
-
-       * org-colview-xemacs.el: Add in changes from org-colview.el.
-
 2009-11-13  Dan Davison  <davison@stats.ox.ac.uk>
 
        * org-exp-blocks.el: Modify split separator regexp to avoid empty
        * org-colview.el (org-columns, org-columns-redo)
        (org-agenda-columns): Don't use `goto-line'.
 
-       * org-colview-xemacs.el (org-columns, org-agenda-columns):
-       Don't use `goto-line'.
-
        * org-agenda.el (org-agenda-mode): Force visual line motion off.
        (org-agenda-add-entry-text-maxlines): Improve docstring.
        (org-agenda-start-with-entry-text-mode): New option.
        * org-colview.el (org-columns-edit-value, org-columns-new)
        (org-insert-columns-dblock): Use org-icompleting-read.
 
-       * org-colview-xemacs.el (org-columns-edit-value)
-       (org-columns-new, org-insert-columns-dblock):
-       Use org-icompleting-read.
-
        * org-attach.el (org-attach-delete-one, org-attach-open):
        Use org-icompleting-read.
 
        in column values.
        (org-columns-capture-view): Exclude comment and archived trees.
 
-       * org-colview-xemacs.el (org-columns-capture-view):
-       Protect vertical bars in column values.
-       (org-columns-capture-view): Exclude comment and archived trees.
-
        * org.el (org-quote-vert): New function.
 
        * org-latex.el (org-export-latex-verbatim-wrap): New option.
        * org-colview.el (org-dblock-write:columnview): Allow indented
        #+TBLFM line.
 
-       * org-colview-xemacs.el (org-dblock-write:columnview):
-       Allow indented #+TBLFM line.
-
        * org-clock.el (org-dblock-write:clocktable): Allow indented
        #+TBLFM line.
 
 
        * org.el (org-enable-priority-commands): New option.
 
-       * org-colview-xemacs.el (org-columns-compute)
-       (org-columns-number-to-string): Fix problems with empty fields.
-
        * org-colview.el (org-columns-compute)
        (org-columns-number-to-string): Fix problems with empty fields.
 
        (org-export-region-as-latex): Use the property list.
        (org-export-as-latex): ????
 
-       * org-colview-xemacs.el (org-columns-remove-overlays)
-       (org-columns): Fix call to `local-variable-p'.
-
 2009-08-06  Carsten Dominik  <carsten.dominik@gmail.com>
 
        * org-latex.el (org-export-latex-after-blockquotes-hook): New hook.
        (org-columns-remove-overlays): Restore the value of `truncate-lines'.
        (org-columns): Remember the value of `truncate-lines'.
 
-       * org-colview-xemacs.el (org-colview-initial-truncate-line-value):
-       New variable.
-       (org-columns-remove-overlays): Restore the value of
-       `truncate-lines'.
-       (org-columns): Remember the value of `truncate-lines'.
-
        * org.el (org-columns-skip-arrchived-trees): New option.
 
        * org-agenda.el (org-agenda-export-html-style): Define color for
        Better error catching when a date/time property does not have allowed
        values defined.
 
-       * org-colview-xemacs.el (org-colview-construct-allowed-dates):
-       Better error catching when a date/time property does not have
-       allowed values defined.
-
 2009-01-25  Carsten Dominik  <carsten.dominik@gmail.com>
 
        * org.el (org-map-entries): Restore point and restriction after
        * org-colview.el (org-columns-edit-value, org-columns-new)
        (org-insert-columns-dblock): Use `org-ido-completing-read'.
 
-       * org-colview-xemacs.el (org-columns-edit-value)
-       (org-columns-new, org-insert-columns-dblock):
-       Use `org-ido-completing-read'.
-
        * org-attach.el (org-attach-delete-one, org-attach-open):
        Use `org-ido-completing-read'.
 
        * org-colview.el (org-columns-get-format-and-top-level):
        Remove resetting the marker.
 
-       * org-colview-xemacs.el (org-columns-get-format-and-top-level):
-       Remove resetting the marker.
-
        * org.el (org-entry-property-inherited-from): Improve docstring.
        (org-entry-get-with-inheritance): Reset marker before starting the
        search.
        (org-columns-next-allowed-value):
        Use `org-colview-construct-allowed-dates'.
 
-       * org-colview-xemacs.el (org-colview-construct-allowed-dates):
-       New function.
-       (org-columns-next-allowed-value):
-       Use `org-colview-construct-allowed-dates'.
-
        * org.el (org-protect-slash): New function.
        (org-get-refile-targets): Use `org-protect-slash'.
 
        * org-colview.el (org-columns-display-here):
        Use `org-columns-modify-value-for-display-function'.
 
-       * org-colview-xemacs.el (org-columns-display-here):
-       Use `org-columns-modify-value-for-display-function'.
-
        * org.el (org-columns-modify-value-for-display-function): New option.
 
        * org-publish.el (org-publish-file): Make sure the directory match
 
        * org-colview.el (org-columns-next-allowed-value): Bug fix.
 
-       * org-colview-xemacs.el (org-columns-next-allowed-value): Bug fix.
-
        * org-agenda.el (org-agenda-get-closed): Get the end time into the
        agenda prefix as well.
 
        * org-colview.el (org-columns-next-allowed-value): Handle next
        argument NTH to directly select a value.
 
-       * org-colview-xemacs.el (org-columns-next-allowed-value): Handle next
-       argument NTH to directly select a value.
-
 2008-06-17  Carsten Dominik  <dominik@science.uva.nl>
 
        * org-agenda.el (org-agenda-scheduled-leaders): Fix docstring.
        * org-clock.el (org-clock-display, org-clock-out)
        (org-update-mode-line): Use `org-time-clocksum-format'.
 
-       * org-colview-xemacs.el (org-columns-number-to-string):
-       Use `org-time-clocksum-format'.
-
        * org-colview.el (org-columns-number-to-string):
        Use `org-time-clocksum-format'.
 
index 0dc744aaa73af607c60824408d4a96443b357aec..348248f35cf37382d5f92735ce77a74240c91145 100644 (file)
@@ -64,7 +64,7 @@ This function is called by `org-babel-execute-src-block'."
         (preamble (cdr (assoc :preamble params)))
          (full-body
          (org-babel-expand-body:generic
-          (concat body (if return-val (format "return %s" return-val) ""))
+          (concat body (if return-val (format "\nreturn %s" return-val) ""))
           params (org-babel-variable-assignments:python params)))
          (result (org-babel-python-evaluate
                  session full-body result-type result-params preamble)))
index 3bb0fc84897f80b61b2e62aa84db90371d142590..ddb56ca4bac9860ce77c6299aeaaedef86069f0e 100644 (file)
@@ -8294,7 +8294,7 @@ This is a command that has to be installed in `calendar-mode-map'."
 (defun org-agenda-bulk-mark (&optional arg)
   "Mark the entry at point for future bulk action."
   (interactive "p")
-  (dotimes (i (max arg 1))
+  (dotimes (i (or arg 1))
     (unless (org-get-at-bol 'org-agenda-diary-link)
       (let* ((m (org-get-at-bol 'org-hd-marker))
             ov)
index 434f6a1d5f6a00e527c98454cc984f7b1f30129e..aabcfc187db3f018a9c22eac2eba954a8205637f 100644 (file)
@@ -664,7 +664,7 @@ Use alsa's aplay tool if available."
              (error (beep t) (beep t)))))))))
 
 (defun org-program-exists (program-name)
-  "Checks whenever we can locate program and launch it."
+  "Checks whenever we can locate PROGRAM-NAME using the `which' executable."
   (if (member system-type '(gnu/linux darwin))
       (= 0 (call-process "which" nil nil nil program-name))))
 
index 481d662eca1d6f159bdd132f497a51ca502daf80..58f879dd51a36e096b14efcf91f2032bf973c9ef 100644 (file)
@@ -285,6 +285,16 @@ column view defines special faces for each outline level.  See the file
   "Face for date/time stamps."
   :group 'org-faces)
 
+(defface org-date-selected
+  (org-compatible-face nil
+    '((((class color) (min-colors 16) (background light)) (:foreground "Red1" :bold nil))
+      (((class color) (min-colors 16) (background dark))  (:foreground "Pink" :bold nil))
+      (((class color) (min-colors 8)  (background light)) (:foreground "red"  :bold nil))
+      (((class color) (min-colors 8)  (background dark))  (:foreground "red"  :bold nil))
+      (t (:inverse-video t))))
+  "Face for highlighting the calendar day when using `org-read-date'."
+  :group 'org-faces)
+
 (defface org-sexp-date
   '((((class color) (background light)) (:foreground "Purple"))
     (((class color) (background dark)) (:foreground "Cyan"))
index 9319e0813c0528b5165ead2dff50185de0bfa698..a9ba8d7510baae6262acebeda1a0ba3fbe76267f 100644 (file)
@@ -716,8 +716,8 @@ Additional note on `org-footnote-insert-pos-for-preprocessor':
        ((and org-footnote-section (eq major-mode 'org-mode))
        (goto-char (point-min))
        (if (re-search-forward
-             (concat "^\\*[ \t]+" (regexp-quote org-footnote-section)
-                     "[ \t]*$") nil t)
+            (concat "^\\*[ \t]+" (regexp-quote org-footnote-section)
+                    "[ \t]*$") nil t)
            (delete-region (match-beginning 0) (org-end-of-subtree t t)))
        ;; A new footnote section is inserted by default at the end of
        ;; the buffer.
@@ -727,7 +727,14 @@ Additional note on `org-footnote-insert-pos-for-preprocessor':
        (unless (bolp) (newline)))
        ;; No footnote section set: Footnotes will be added at the end
        ;; of the section containing their first reference.
-       ((eq major-mode 'org-mode))
+       ;; Nevertheless, in an export situation, set insertion point to
+       ;; `point-max' by default.
+       ((eq major-mode 'org-mode)
+       (when export-props
+         (goto-char (point-max))
+         (skip-chars-backward " \r\t\n")
+         (forward-line)
+         (delete-region (point) (point-max))))
        (t
        ;; Remove any left-over tag in the buffer, if one is set up.
        (when org-footnote-tag-for-non-org-mode-files
index c3775888325b159023cde0e1c16c15fe40ff19a5..4498280ac771b28c05b04b482f561bd379c33a37 100644 (file)
@@ -1484,8 +1484,19 @@ bullets between START and END."
         (change-bullet-maybe
          (function
           (lambda (item)
-            (let* ((bul (org-trim (org-list-get-bullet item struct)))
-                   (new-bul-p (cdr (assoc bul org-list-demote-modify-bullet))))
+            (let ((new-bul-p
+                   (cdr (assoc
+                         ;; Normalize ordered bullets.
+                         (let ((bul (org-trim
+                                     (org-list-get-bullet item struct))))
+                           (cond ((string-match "[A-Z]\\." bul) "A.")
+                                 ((string-match "[A-Z])" bul) "A)")
+                                 ((string-match "[a-z]\\." bul) "a.")
+                                 ((string-match "[a-z])" bul) "a)")
+                                 ((string-match "[0-9]\\." bul) "1.")
+                                 ((string-match "[0-9])" bul) "1)")
+                                 (t bul)))
+                         org-list-demote-modify-bullet))))
               (when new-bul-p (org-list-set-bullet item struct new-bul-p))))))
         (ind
          (lambda (cell)
@@ -2500,7 +2511,6 @@ STRUCT is the list structure.
 
 Return t if successful."
   (save-excursion
-    (beginning-of-line)
     (let* ((regionp (org-region-active-p))
           (rbeg (and regionp (region-beginning)))
           (rend (and regionp (region-end)))
@@ -2509,7 +2519,8 @@ Return t if successful."
           (prevs (org-list-prevs-alist struct))
           ;; Are we going to move the whole list?
           (specialp
-           (and (= top (point))
+           (and (not regionp)
+                (= top (point-at-bol))
                 (cdr (assq 'indent org-list-automatic-rules))
                 (if no-subtree
                     (error
@@ -2523,12 +2534,12 @@ Return t if successful."
            (progn
              (set-marker org-last-indent-begin-marker rbeg)
              (set-marker org-last-indent-end-marker rend))
-         (set-marker org-last-indent-begin-marker (point))
+         (set-marker org-last-indent-begin-marker (point-at-bol))
          (set-marker org-last-indent-end-marker
                      (cond
                       (specialp (org-list-get-bottom-point struct))
-                      (no-subtree (1+ (point)))
-                      (t (org-list-get-item-end (point) struct))))))
+                      (no-subtree (1+ (point-at-bol)))
+                      (t (org-list-get-item-end (point-at-bol) struct))))))
       (let* ((beg (marker-position org-last-indent-begin-marker))
             (end (marker-position org-last-indent-end-marker)))
        (cond
@@ -2583,19 +2594,35 @@ Return t if successful."
   "Outdent a local list item, but not its children.
 If a region is active, all items inside will be moved."
   (interactive)
-  (if (org-at-item-p)
-      (let ((struct (org-list-struct)))
-       (org-list-indent-item-generic -1 t struct))
-    (error "Not at an item")))
+  (let ((regionp (org-region-active-p)))
+    (cond
+     ((or (org-at-item-p)
+         (and regionp
+              (save-excursion (goto-char (region-beginning))
+                              (org-at-item-p))))
+      (let ((struct (if (not regionp) (org-list-struct)
+                     (save-excursion (goto-char (region-beginning))
+                                     (org-list-struct)))))
+       (org-list-indent-item-generic -1 t struct)))
+     (regionp (error "Region not starting at an item"))
+     (t (error "Not at an item")))))
 
 (defun org-indent-item ()
   "Indent a local list item, but not its children.
 If a region is active, all items inside will be moved."
   (interactive)
-  (if (org-at-item-p)
-      (let ((struct (org-list-struct)))
-       (org-list-indent-item-generic 1 t struct))
-    (error "Not at an item")))
+  (let ((regionp (org-region-active-p)))
+    (cond
+     ((or (org-at-item-p)
+         (and regionp
+              (save-excursion (goto-char (region-beginning))
+                              (org-at-item-p))))
+      (let ((struct (if (not regionp) (org-list-struct)
+                     (save-excursion (goto-char (region-beginning))
+                                     (org-list-struct)))))
+       (org-list-indent-item-generic 1 t struct)))
+     (regionp (error "Region not starting at an item"))
+     (t (error "Not at an item")))))
 
 (defun org-outdent-item-tree ()
   "Outdent a local list item including its children.
@@ -2604,10 +2631,12 @@ If a region is active, all items inside will be moved."
   (let ((regionp (org-region-active-p)))
     (cond
      ((or (org-at-item-p)
-         (and (org-region-active-p)
-              (goto-char (region-beginning))
-              (org-at-item-p)))
-      (let ((struct (org-list-struct)))
+         (and regionp
+              (save-excursion (goto-char (region-beginning))
+                              (org-at-item-p))))
+      (let ((struct (if (not regionp) (org-list-struct)
+                     (save-excursion (goto-char (region-beginning))
+                                     (org-list-struct)))))
        (org-list-indent-item-generic -1 nil struct)))
      (regionp (error "Region not starting at an item"))
      (t (error "Not at an item")))))
@@ -2619,10 +2648,12 @@ If a region is active, all items inside will be moved."
   (let ((regionp (org-region-active-p)))
     (cond
      ((or (org-at-item-p)
-         (and (org-region-active-p)
-              (goto-char (region-beginning))
-              (org-at-item-p)))
-      (let ((struct (org-list-struct)))
+         (and regionp
+              (save-excursion (goto-char (region-beginning))
+                              (org-at-item-p))))
+      (let ((struct (if (not regionp) (org-list-struct)
+                     (save-excursion (goto-char (region-beginning))
+                                     (org-list-struct)))))
        (org-list-indent-item-generic 1 nil struct)))
      (regionp (error "Region not starting at an item"))
      (t (error "Not at an item")))))
index 5a87bd6469738cda1320614e2129491b20e55fcc..b467064b888043284a2466dddbeab566e4159339 100644 (file)
@@ -915,6 +915,7 @@ This means, between the beginning of line and the point."
          ((assq :checkbox context) (org-toggle-checkbox))
          ((assq :item-bullet context)
           (let ((org-cycle-include-plain-lists t)) (org-cycle)))
+         ((org-footnote-at-reference-p) nil)
          (t ad-do-it))))))
 
 (defun org-mouse-move-tree-start (event)
index 234272a378df2624de0bc0da60365e9857457367..2e984a575bd32e34c2453c645659bfb24bd85020 100644 (file)
@@ -1689,7 +1689,6 @@ ATTR is a string of other attributes of the a element."
             (or (not thefile) (string= thefile ""))
             (plist-get org-lparse-opt-plist :section-numbers)
             (setq sec-frag fragment)
-            (org-find-text-property-in-string 'org-no-description fragment)
             (or (string-match  "\\`sec\\(\\(-[0-9]+\\)+\\)" sec-frag)
                 (and (setq sec-frag
                            (loop for alias in org-export-target-aliases do
index 08981b57e498762183c6f2978d7086205e9b47c8..37e5c4f91a6794c8d192733d42b57c0cf550ab66 100644 (file)
@@ -135,8 +135,8 @@ Other options offered by the customize interface are more restrictive."
 
 (defcustom org-table-number-fraction 0.5
   "Fraction of numbers in a column required to make the column align right.
-In a column all non-white fields are considered.  If at least this
-fraction of fields is matched by `org-table-number-fraction',
+In a column all non-white fields are considered.  If at least
+this fraction of fields is matched by `org-table-number-regexp',
 alignment to the right border applies."
   :group 'org-table-settings
   :type 'number)
index c2cc2354439018767217a4d66b182b9567455117..838a9a18ad463bb8ca5b196730282f9d915c57f3 100644 (file)
@@ -5057,8 +5057,7 @@ The following commands are available:
        'org-parse-arguments)
   (set (make-local-variable 'pcomplete-termination-string) "")
   (when (>= emacs-major-version 23)
-    (set (make-local-variable 'buffer-face-mode-face) 'org-default)
-    (buffer-face-mode))
+    (set (make-local-variable 'buffer-face-mode-face) 'org-default))
 
   ;; If empty file that did not turn on org-mode automatically, make it to.
   (if (and org-insert-mode-line-in-empty-file
@@ -14915,7 +14914,7 @@ So these are more for recording a certain time/date."
   (org-time-stamp arg 'inactive))
 
 (defvar org-date-ovl (make-overlay 1 1))
-(overlay-put org-date-ovl 'face 'org-warning)
+(overlay-put org-date-ovl 'face 'org-date-selected)
 (org-detach-overlay org-date-ovl)
 
 (defvar org-ans1) ; dynamically scoped parameter
@@ -15131,35 +15130,35 @@ user."
   (when org-read-date-display-live
     (when org-read-date-overlay
       (delete-overlay org-read-date-overlay))
-    (let ((p (point)))
-      (end-of-line 1)
-      (while (not (equal (buffer-substring
-                         (max (point-min) (- (point) 4)) (point))
-                        "    "))
-       (insert " "))
-      (goto-char p))
-    (let* ((ans (concat (buffer-substring (point-at-bol) (point-max))
-                       " " (or org-ans1 org-ans2)))
-          (org-end-time-was-given nil)
-          (f (org-read-date-analyze ans org-def org-defdecode))
-          (fmts (if org-dcst
-                    org-time-stamp-custom-formats
-                  org-time-stamp-formats))
-          (fmt (if (or org-with-time
-                       (and (boundp 'org-time-was-given) org-time-was-given))
-                   (cdr fmts)
-                 (car fmts)))
-          (txt (concat "=> " (format-time-string fmt (apply 'encode-time f)))))
-      (when (and org-end-time-was-given
-                (string-match org-plain-time-of-day-regexp txt))
-       (setq txt (concat (substring txt 0 (match-end 0)) "-"
-                         org-end-time-was-given
-                         (substring txt (match-end 0)))))
-      (when org-read-date-analyze-futurep
-       (setq txt (concat txt " (=>F)")))
-      (setq org-read-date-overlay
-           (make-overlay (1- (point-at-eol)) (point-at-eol)))
-      (org-overlay-display org-read-date-overlay txt 'secondary-selection))))
+    (when (minibufferp (current-buffer))
+      (save-excursion
+       (end-of-line 1)
+       (while (not (equal (buffer-substring
+                           (max (point-min) (- (point) 4)) (point))
+                          "    "))
+         (insert " ")))
+      (let* ((ans (concat (buffer-substring (point-at-bol) (point-max))
+                         " " (or org-ans1 org-ans2)))
+            (org-end-time-was-given nil)
+            (f (org-read-date-analyze ans org-def org-defdecode))
+            (fmts (if org-dcst
+                      org-time-stamp-custom-formats
+                    org-time-stamp-formats))
+            (fmt (if (or org-with-time
+                         (and (boundp 'org-time-was-given) org-time-was-given))
+                     (cdr fmts)
+                   (car fmts)))
+            (txt (concat "=> " (format-time-string fmt (apply 'encode-time f)))))
+       (when (and org-end-time-was-given
+                  (string-match org-plain-time-of-day-regexp txt))
+         (setq txt (concat (substring txt 0 (match-end 0)) "-"
+                           org-end-time-was-given
+                           (substring txt (match-end 0)))))
+       (when org-read-date-analyze-futurep
+         (setq txt (concat txt " (=>F)")))
+       (setq org-read-date-overlay
+             (make-overlay (1- (point-at-eol)) (point-at-eol)))
+       (org-overlay-display org-read-date-overlay txt 'secondary-selection)))))
 
 (defun org-read-date-analyze (ans org-def org-defdecode)
   "Analyze the combined answer of the date prompt."
@@ -17969,28 +17968,34 @@ See the individual commands for more information."
 
 (defun org-shiftmetaleft ()
   "Promote subtree or delete table column.
-Calls `org-promote-subtree', `org-outdent-item',
-or `org-table-delete-column', depending on context.
-See the individual commands for more information."
+Calls `org-promote-subtree', `org-outdent-item-tree', or
+`org-table-delete-column', depending on context.  See the
+individual commands for more information."
   (interactive)
   (cond
    ((run-hook-with-args-until-success 'org-shiftmetaleft-hook))
    ((org-at-table-p) (call-interactively 'org-table-delete-column))
    ((org-at-heading-p) (call-interactively 'org-promote-subtree))
-   ((org-at-item-p) (call-interactively 'org-outdent-item-tree))
+   ((if (not (org-region-active-p)) (org-at-item-p)
+      (save-excursion (goto-char (region-beginning))
+                     (org-at-item-p)))
+    (call-interactively 'org-outdent-item-tree))
    (t (org-modifier-cursor-error))))
 
 (defun org-shiftmetaright ()
   "Demote subtree or insert table column.
-Calls `org-demote-subtree', `org-indent-item',
-or `org-table-insert-column', depending on context.
-See the individual commands for more information."
+Calls `org-demote-subtree', `org-indent-item-tree', or
+`org-table-insert-column', depending on context.  See the
+individual commands for more information."
   (interactive)
   (cond
    ((run-hook-with-args-until-success 'org-shiftmetaright-hook))
    ((org-at-table-p) (call-interactively 'org-table-insert-column))
    ((org-at-heading-p) (call-interactively 'org-demote-subtree))
-   ((org-at-item-p) (call-interactively 'org-indent-item-tree))
+   ((if (not (org-region-active-p)) (org-at-item-p)
+      (save-excursion (goto-char (region-beginning))
+                     (org-at-item-p)))
+    (call-interactively 'org-indent-item-tree))
    (t (org-modifier-cursor-error))))
 
 (defun org-shiftmetaup (&optional arg)
index 9f9551cc5d81ff6a7af8dc1d9b66d00efef37256..0cc5de90573e1cf17af70e338c095eddcd100a8b 100644 (file)
@@ -603,6 +603,8 @@ NOARG must be t when this macro is used outside `gud-def'"
         (set (make-local-variable 'gud-marker-filter) #'gud-gdb-marker-filter))
       (funcall filter proc string))))
 
+(defvar gdb-control-level 0)
+
 ;;;###autoload
 (defun gdb (command-line)
   "Run gdb on program FILE in buffer *gud-FILE*.
@@ -677,6 +679,7 @@ detailed description of this mode.
     (set-process-filter proc #'gdb--check-interpreter))
 
   (set (make-local-variable 'gud-minor-mode) 'gdbmi)
+  (set (make-local-variable 'gdb-control-level) 0)
   (setq comint-input-sender 'gdb-send)
   (when (ring-empty-p comint-input-ring) ; cf shell-mode
     (let ((hfile (expand-file-name (or (getenv "GDBHISTFILE")
@@ -1705,6 +1708,16 @@ static char *magick[] = {
   :group 'gdb)
 
 \f
+(defvar gdb-control-commands-regexp
+  (concat
+   "^\\("
+   "commands\\|if\\|while\\|define\\|document\\|python\\|"
+   "while-stepping\\|stepping\\|ws\\|actions"
+   "\\)\\([[:blank:]]+.*\\)?$")
+  "Regexp matching GDB commands that enter a recursive reading loop.
+As long as GDB is in the recursive reading loop, it does not expect
+commands to be prefixed by \"-interpreter-exec console\".")
+
 (defun gdb-send (proc string)
   "A comint send filter for gdb."
   (with-current-buffer gud-comint-buffer
@@ -1714,11 +1727,15 @@ static char *magick[] = {
   (if (not (string= "" string))
       (setq gdb-last-command string)
     (if gdb-last-command (setq string gdb-last-command)))
-  (if (string-match "^-" string)
-      ;; MI command
+  (if (or (string-match "^-" string)
+         (> gdb-control-level 0))
+      ;; Either MI command or we are feeding GDB's recursive reading loop.
       (progn
        (setq gdb-first-done-or-error t)
-       (process-send-string proc (concat string "\n")))
+       (process-send-string proc (concat string "\n"))
+       (if (and (string-match "^end$" string)
+                (> gdb-control-level 0))
+           (setq gdb-control-level (1- gdb-control-level))))
     ;; CLI command
     (if (string-match "\\\\$" string)
        (setq gdb-continuation (concat gdb-continuation string "\n"))
@@ -1729,7 +1746,12 @@ static char *magick[] = {
         (if gdb-enable-debug
             (push (cons 'mi-send to-send) gdb-debug-log))
         (process-send-string proc to-send))
-      (setq gdb-continuation nil))))
+      (if (and (string-match "^end$" string)
+              (> gdb-control-level 0))
+         (setq gdb-control-level (1- gdb-control-level)))
+      (setq gdb-continuation nil)))
+  (if (string-match gdb-control-commands-regexp string)
+      (setq gdb-control-level (1+ gdb-control-level))))
 
 (defun gdb-mi-quote (string)
   "Return STRING quoted properly as an MI argument.
index cdaeadde906fafae5052362d37dd04be43654130..d57a3128a1621f81df1dc4f75a3ee77664b584df 100644 (file)
@@ -179,7 +179,9 @@ and you want to simplify them for the mode line
 (defvar which-func-table (make-hash-table :test 'eq :weakness 'key))
 
 (defconst which-func-current
-  '(:eval (gethash (selected-window) which-func-table which-func-unknown)))
+  '(:eval (replace-regexp-in-string
+          "%" "%%"
+          (gethash (selected-window) which-func-table which-func-unknown))))
 ;;;###autoload (put 'which-func-current 'risky-local-variable t)
 
 (defvar which-func-mode nil
index 0260eba4682a901f96c9a2ffa2b32adc43844d51..3948fcc5456efdcc04ab110d1af4e0a8b88ef2a3 100644 (file)
@@ -213,30 +213,25 @@ two markers or an overlay.  Otherwise, it is nil."
 (defun xselect--int-to-cons (n)
   (cons (ash n -16) (logand n 65535)))
 
-(defun xselect-convert-to-string (_selection type value)
-  (let (str coding)
-    ;; Get the actual string from VALUE.
-    (cond ((stringp value)
-          (setq str value))
-         ((setq value (xselect--selection-bounds value))
-          (with-current-buffer (nth 2 value)
-            (setq str (buffer-substring (nth 0 value)
-                                        (nth 1 value))))))
-    (when str
-      ;; If TYPE is nil, this is a local request, thus return STR as
-      ;; is.  Otherwise, encode STR.
-      (if (not type)
-         str
-       (setq coding (or next-selection-coding-system selection-coding-system))
+(defun xselect--encode-string (type str &optional can-modify)
+  (when str
+    ;; If TYPE is nil, this is a local request; return STR as-is.
+    (if (null type)
+       str
+      ;; Otherwise, encode STR.
+      (let ((coding (or next-selection-coding-system
+                       selection-coding-system)))
        (if coding
            (setq coding (coding-system-base coding)))
        (let ((inhibit-read-only t))
          ;; Suppress producing escape sequences for compositions.
+         ;; But avoid modifying the string if it's a buffer name etc.
+         (unless can-modify (setq str (substring str 0)))
          (remove-text-properties 0 (length str) '(composition nil) str)
+         ;; TEXT is a polymorphic target.  Select the actual type
+         ;; from `UTF8_STRING', `COMPOUND_TEXT', `STRING', and
+         ;; `C_STRING'.
          (if (eq type 'TEXT)
-             ;; TEXT is a polymorphic target.  We must select the
-             ;; actual type from `UTF8_STRING', `COMPOUND_TEXT',
-             ;; `STRING', and `C_STRING'.
              (if (not (multibyte-string-p str))
                  (setq type 'C_STRING)
                (let (non-latin-1 non-unicode eight-bit)
@@ -279,6 +274,14 @@ two markers or an overlay.  Otherwise, it is nil."
       (setq next-selection-coding-system nil)
       (cons type str))))
 
+(defun xselect-convert-to-string (_selection type value)
+  (let ((str (cond ((stringp value) value)
+                  ((setq value (xselect--selection-bounds value))
+                   (with-current-buffer (nth 2 value)
+                     (buffer-substring (nth 0 value)
+                                       (nth 1 value)))))))
+    (xselect--encode-string type str t)))
+
 (defun xselect-convert-to-length (_selection _type value)
   (let ((len (cond ((stringp value)
                    (length value))
@@ -311,7 +314,7 @@ two markers or an overlay.  Otherwise, it is nil."
 
 (defun xselect-convert-to-filename (_selection _type value)
   (when (setq value (xselect--selection-bounds value))
-    (buffer-file-name (nth 2 value))))
+    (xselect--encode-string 'TEXT (buffer-file-name (nth 2 value)))))
 
 (defun xselect-convert-to-charpos (_selection _type value)
   (when (setq value (xselect--selection-bounds value))
@@ -337,13 +340,13 @@ two markers or an overlay.  Otherwise, it is nil."
                            (xselect--int-to-cons (max beg end))))))))
 
 (defun xselect-convert-to-os (_selection _type _size)
-  (symbol-name system-type))
+  (xselect--encode-string 'TEXT (symbol-name system-type)))
 
 (defun xselect-convert-to-host (_selection _type _size)
-  (system-name))
+  (xselect--encode-string 'TEXT (system-name)))
 
 (defun xselect-convert-to-user (_selection _type _size)
-  (user-full-name))
+  (xselect--encode-string 'TEXT (user-full-name)))
 
 (defun xselect-convert-to-class (_selection _type _size)
   "Convert selection to class.
index 67f6e4eedf7ee6b0e07e583d66ff4af8a64eeacb..55f7d1261ee15299cd8ee96649e3d14ac2d70630 100644 (file)
@@ -817,7 +817,7 @@ instead of deleted."
   :type '(choice (const :tag "Delete active region" t)
                  (const :tag "Kill active region" kill)
                  (const :tag "Do ordinary deletion" nil))
-  :group 'editing
+  :group 'killing
   :version "24.1")
 
 (defun delete-backward-char (n &optional killflag)
index 4a8af55af2f693ceea4520f7a66fce9e49aef266..d6e730236996eacb649384ea9785c1cb1ea8a10b 100644 (file)
@@ -41,7 +41,7 @@
 (defcustom initial-buffer-choice nil
   "Buffer to show after starting Emacs.
 If the value is nil and `inhibit-startup-screen' is nil, show the
-startup screen.  If the value is string, visit the specified file
+startup screen.  If the value is string, visit the specified file
 or directory using `find-file'.  If t, open the `*scratch*'
 buffer."
   :type '(choice
index 2404f6a56d2f4cbdf291091acef464655a9d5296..b548f82ca5adf7d6e2f3f3d4735cc49422572f92 100644 (file)
@@ -2023,7 +2023,10 @@ some sort of escape sequence, the ambiguity is resolved via `read-key-delay'."
            (let ((map (make-sparse-keymap)))
              ;; Don't hide the menu-bar and tool-bar entries.
              (define-key map [menu-bar] (lookup-key global-map [menu-bar]))
-             (define-key map [tool-bar] (lookup-key global-map [tool-bar]))
+             (define-key map [tool-bar]
+              ;; This hack avoids evaluating the :filter (Bug#9922).
+              (or (cdr (assq 'tool-bar global-map))
+                  (lookup-key global-map [tool-bar])))
              map))
          (aref (catch 'read-key (read-key-sequence-vector prompt nil t)) 0))
       (cancel-timer timer)
index c185c4e8fabaa11ba044d457a39688e677d7ba6d..ebaec2494acd4352ec458441b4e2f83ab398ff0d 100644 (file)
@@ -220,7 +220,7 @@ matching the resulting Git log output, and KEYWORDS is a list of
     (let ((diff (vc-git--run-command-string
                  file "diff-index" "-p" "--raw" "-z" "HEAD" "--")))
       (if (and diff
-              (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0\\(.\\)?"
+              (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0\\(.*\n.\\)?"
                             diff))
           (let ((diff-letter (match-string 1 diff)))
             (if (not (match-beginning 2))
index b8f1bf3456d3492ceacdcd05dd5dc981d9da2cec..d57bd4e2300ac1cc681967e279d60c0d20fa0968 100644 (file)
@@ -1482,12 +1482,24 @@ edge of WINDOW consider using `adjust-window-trailing-edge'
 instead."
   (setq window (window-normalize-window window))
   (let* ((frame (window-frame window))
+        (minibuffer-window (minibuffer-window frame))
         sibling)
     (cond
      ((eq window (frame-root-window frame))
       (error "Cannot resize the root window of a frame"))
      ((window-minibuffer-p window)
-      (window--resize-mini-window window delta))
+      (if horizontal
+         (error "Cannot resize minibuffer window horizontally")
+       (window--resize-mini-window window delta)))
+     ((and (not horizontal)
+          (window-full-height-p window)
+          (eq (window-frame minibuffer-window) frame)
+          (or (not resize-mini-windows)
+              (eq minibuffer-window (active-minibuffer-window))))
+      ;; If WINDOW is full height and either `resize-mini-windows' is
+      ;; nil or the minibuffer window is active, resize the minibuffer
+      ;; window.
+      (window--resize-mini-window minibuffer-window (- delta)))
      ((window--resizable-p window delta horizontal ignore)
       (window--resize-reset frame horizontal)
       (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
 the left.  If the edge can't be moved by DELTA lines or columns,
 move it as far as possible in the desired direction."
   (setq window (window-normalize-window window))
-  (let ((frame (window-frame window))
-       (right window)
-       left this-delta min-delta max-delta)
+  (let* ((frame (window-frame window))
+        (minibuffer-window (minibuffer-window frame))
+        (right window)
+        left this-delta min-delta max-delta)
     ;; Find the edge we want to move.
     (while (and (or (not (window-combined-p right horizontal))
                    (not (window-right right)))
                (setq right (window-parent right))))
     (cond
-     ((and (not right) (not horizontal) (not resize-mini-windows)
-          (eq (window-frame (minibuffer-window frame)) frame))
-      (window--resize-mini-window (minibuffer-window frame) (- delta)))
+     ((and (not right) (not horizontal)
+          ;; Resize the minibuffer window if it's on the same frame as
+          ;; and immediately below WINDOW and it's either active or
+          ;; `resize-mini-windows' is nil.
+          (eq (window-frame minibuffer-window) frame)
+          (= (nth 1 (window-edges minibuffer-window))
+             (nth 3 (window-edges window)))
+          (or (not resize-mini-windows)
+              (eq minibuffer-window (active-minibuffer-window))))
+      (window--resize-mini-window minibuffer-window (- delta)))
      ((or (not (setq left right)) (not (setq right (window-right right))))
       (if horizontal
          (error "No window on the right of this one")
@@ -2109,18 +2129,30 @@ make selected window wider by DELTA columns.  If DELTA is
 negative, shrink selected window by -DELTA lines or columns.
 Return nil."
   (interactive "p")
-  (cond
-   ((zerop delta))
-   ((window-size-fixed-p nil horizontal)
-    (error "Selected window has fixed size"))
-   ((window--resizable-p nil delta horizontal)
-    (window-resize nil delta horizontal))
-   (t
-    (window-resize
-     nil (if (> delta 0)
-            (window-max-delta nil horizontal)
-          (- (window-min-delta nil horizontal)))
-     horizontal))))
+  (let ((minibuffer-window (minibuffer-window)))
+    (cond
+     ((zerop delta))
+     ((window-size-fixed-p nil horizontal)
+      (error "Selected window has fixed size"))
+     ((window-minibuffer-p)
+      (if horizontal
+         (error "Cannot resize minibuffer window horizontally")
+       (window--resize-mini-window (selected-window) delta)))
+     ((and (not horizontal)
+          (window-full-height-p)
+          (eq (window-frame minibuffer-window) (selected-frame))
+          (not resize-mini-windows))
+      ;; If the selected window is full height and `resize-mini-windows'
+      ;; is nil, resize the minibuffer window.
+      (window--resize-mini-window minibuffer-window (- delta)))
+     ((window--resizable-p nil delta horizontal)
+      (window-resize nil delta horizontal))
+     (t
+      (window-resize
+       nil (if (> delta 0)
+              (window-max-delta nil horizontal)
+            (- (window-min-delta nil horizontal)))
+       horizontal)))))
 
 (defun shrink-window (delta &optional horizontal)
   "Make the selected window DELTA lines smaller.
@@ -2131,18 +2163,30 @@ negative, enlarge selected window by -DELTA lines or columns.
 Also see the `window-min-height' variable.
 Return nil."
   (interactive "p")
-  (cond
-   ((zerop delta))
-   ((window-size-fixed-p nil horizontal)
-    (error "Selected window has fixed size"))
-   ((window--resizable-p nil (- delta) horizontal)
-    (window-resize nil (- delta) horizontal))
-   (t
-    (window-resize
-     nil (if (> delta 0)
-            (- (window-min-delta nil horizontal))
-          (window-max-delta nil horizontal))
-     horizontal))))
+  (let ((minibuffer-window (minibuffer-window)))
+    (cond
+     ((zerop delta))
+     ((window-size-fixed-p nil horizontal)
+      (error "Selected window has fixed size"))
+     ((window-minibuffer-p)
+      (if horizontal
+         (error "Cannot resize minibuffer window horizontally")
+       (window--resize-mini-window (selected-window) (- delta))))
+     ((and (not horizontal)
+          (window-full-height-p)
+          (eq (window-frame minibuffer-window) (selected-frame))
+          (not resize-mini-windows))
+      ;; If the selected window is full height and `resize-mini-windows'
+      ;; is nil, resize the minibuffer window.
+      (window--resize-mini-window minibuffer-window delta))
+     ((window--resizable-p nil (- delta) horizontal)
+      (window-resize nil (- delta) horizontal))
+     (t
+      (window-resize
+       nil (if (> delta 0)
+              (- (window-min-delta nil horizontal))
+            (window-max-delta nil horizontal))
+       horizontal)))))
 
 (defun maximize-window (&optional window)
   "Maximize WINDOW.
index 39a8da0f337862b964b416996dd93d7a76a6657f..cb56f023af060a3c43856e4ad35bbd1efca88ad1 100644 (file)
@@ -323,7 +323,8 @@ If PARSE-NS is non-nil, then QNAMES are expanded."
                  (cond
                   ((null result)
                    ;; Not looking at an xml start tag.
-                   (forward-char 1))
+                   (unless (eobp)
+                     (forward-char 1)))
                   ((and xml (not xml-sub-parser))
                    ;; Translation of rule [1] of XML specifications
                    (error "XML: (Not Well-Formed) Only one root tag allowed"))
@@ -422,7 +423,8 @@ Returns one of:
      ((looking-at "<!--")
       (search-forward "-->")
       (skip-syntax-forward " ")
-      (xml-parse-tag parse-dtd xml-ns))
+      (unless (eobp)
+       (xml-parse-tag parse-dtd xml-ns)))
      ;;  end tag
      ((looking-at "</")
       '())
index df0e6135498c652c5f35800a855b084cca1e7618..55caf3c607c6158e18a3d186be158c90e5f9f9b6 100644 (file)
@@ -1,3 +1,30 @@
+2012-04-27  Chong Yidong  <cyd@gnu.org>
+
+       * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
+
+2012-04-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (pos_visible_p): If the window start position is beyond
+       ZV, start the display from buffer beginning.  Prevents assertion
+       violation in init_iterator when the minibuffer window is scrolled
+       via the scroll bar.
+
+       * window.c (window_scroll_pixel_based): Likewise.
+
+2012-04-27  Chong Yidong  <cyd@gnu.org>
+
+       * keymap.c (where_is_internal): Doc fix (Bug#10872).
+
+2012-04-27  Glenn Morris  <rgm@gnu.org>
+
+       * fileio.c (Fcopy_file, Fset_file_selinux_context):
+       Ignore ENOTSUP failures from setfilecon functions.  (Bug#11245)
+
+2012-04-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * dispnew.c (swap_glyph_pointers, copy_row_except_pointers): Don't
+       overrun array limits of glyph row's used[] array.  (Bug#11288)
+
 2012-04-26  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded
index 02d6de53bbf4568acdae50a443f4948cf2101cd5..b313852efe286967f6ae8946bbb41945a60b423d 100644 (file)
@@ -1085,12 +1085,16 @@ swap_glyph_pointers (struct glyph_row *a, struct glyph_row *b)
   for (i = 0; i < LAST_AREA + 1; ++i)
     {
       struct glyph *temp = a->glyphs[i];
-      short used_tem = a->used[i];
 
       a->glyphs[i] = b->glyphs[i];
       b->glyphs[i] = temp;
-      a->used[i] = b->used[i];
-      b->used[i] = used_tem;
+      if (i < LAST_AREA)
+       {
+         short used_tem = a->used[i];
+
+         a->used[i] = b->used[i];
+         b->used[i] = used_tem;
+       }
     }
   a->hash = b->hash;
   b->hash = hash_tem;
@@ -1105,7 +1109,7 @@ static inline void
 copy_row_except_pointers (struct glyph_row *to, struct glyph_row *from)
 {
   struct glyph *pointers[1 + LAST_AREA];
-  short used[1 + LAST_AREA];
+  short used[LAST_AREA];
   unsigned hashval;
 
   /* Save glyph pointers of TO.  */
index 3a74672b9a64251796ca6b6ce022f076eace6ebd..69b2c9cb0f21e69d9e8ef598663062fff63c63c0 100644 (file)
@@ -1,6 +1,6 @@
 /* File IO for GNU Emacs.
 
-Copyright (C) 1985-1988, 1993-2012  Free Software Foundation, Inc.
+Copyright (C) 1985-1988, 1993-2012 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -2044,9 +2044,10 @@ on the system, we copy the SELinux context of FILE to NEWNAME.  */)
 #if HAVE_LIBSELINUX
   if (conlength > 0)
     {
-      /* Set the modified context back to the file. */
+      /* Set the modified context back to the file.  */
       fail = fsetfilecon (ofd, con);
-      if (fail)
+      /* See http://debbugs.gnu.org/11245 for ENOTSUP.  */
+      if (fail && errno != ENOTSUP)
        report_file_error ("Doing fsetfilecon", Fcons (newname, Qnil));
 
       freecon (con);
@@ -2917,10 +2918,11 @@ compiled with SELinux support.  */)
                error ("Doing context_range_set");
            }
 
-         /* Set the modified context back to the file. */
+         /* Set the modified context back to the file.  */
          fail = lsetfilecon (SSDATA (encoded_absname),
                              context_str (parsed_con));
-         if (fail)
+          /* See http://debbugs.gnu.org/11245 for ENOTSUP.  */
+         if (fail && errno != ENOTSUP)
            report_file_error ("Doing lsetfilecon", Fcons (absname, Qnil));
 
          context_free (parsed_con);
index ecaeb32896e83502f524f103a0376270f89e01c4..9f82175edc025fe4309e7314adf52fa4a2ccbf56 100644 (file)
@@ -2553,7 +2553,8 @@ where_is_internal (Lisp_Object definition, Lisp_Object keymaps,
 DEFUN ("where-is-internal", Fwhere_is_internal, Swhere_is_internal, 1, 5, 0,
        doc: /* Return list of keys that invoke DEFINITION.
 If KEYMAP is a keymap, search only KEYMAP and the global keymap.
-If KEYMAP is nil, search all the currently active keymaps.
+If KEYMAP is nil, search all the currently active keymaps, except
+ for `overriding-local-map' (which is ignored).
 If KEYMAP is a list of keymaps, search only those keymaps.
 
 If 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
 to other keymaps or slots.  This makes it possible to search for an
 indirect definition itself.
 
-If optional 5th arg NO-REMAP is non-nil, don't search for key sequences
-that invoke a command which is remapped to DEFINITION, but include the
-remapped command in the returned list.  */)
+The optional 5th arg NO-REMAP alters how command remapping is handled:
+
+- If another command OTHER-COMMAND is remapped to DEFINITION, normally
+  search for the bindings of OTHER-COMMAND and include them in the
+  returned list.  But if NO-REMAP is non-nil, include the vector
+  [remap OTHER-COMMAND] in the returned list instead, without
+  searching for those other bindings.
+
+- If DEFINITION is remapped to OTHER-COMMAND, normally return the
+  bindings for OTHER-COMMAND.  But if NO-REMAP is non-nil, return the
+  bindings for DEFINITION instead, ignoring its remapping.  */)
   (Lisp_Object definition, Lisp_Object keymap, Lisp_Object firstonly, Lisp_Object noindirect, Lisp_Object no_remap)
 {
   /* The keymaps in which to search.  */
index 1f27cba444b0fad2e64f27aa85d943fd3e37a332..048779d683087a112fc595419108c3388b54f7e6 100644 (file)
@@ -4221,6 +4221,11 @@ window_scroll_pixel_based (Lisp_Object window, int n, int whole, int noerror)
   void *itdata = NULL;
 
   SET_TEXT_POS_FROM_MARKER (start, w->start);
+  /* Scrolling a minibuffer window via scroll bar when the echo area
+     shows long text sometimes resets the minibuffer contents behind
+     our backs.  */
+  if (CHARPOS (start) > ZV)
+    SET_TEXT_POS (start, BEGV, BEGV_BYTE);
 
   /* If PT is not visible in WINDOW, move back one half of
      the screen.  Allow PT to be partially visible, otherwise
index f2700bd6d2592adcc2a06b5a420883ec71c9a9d2..307331627f579d54ea1bad924b1248535ed3784c 100644 (file)
@@ -1275,6 +1275,11 @@ pos_visible_p (struct window *w, EMACS_INT charpos, int *x, int *y,
     }
 
   SET_TEXT_POS_FROM_MARKER (top, w->start);
+  /* Scrolling a minibuffer window via scroll bar when the echo area
+     shows long text sometimes resets the minibuffer contents behind
+     our backs.  */
+  if (CHARPOS (top) > ZV)
+    SET_TEXT_POS (top, BEGV, BEGV_BYTE);
 
   /* Compute exact mode line heights.  */
   if (WINDOW_WANTS_MODELINE_P (w))
index 173cf78bdaac9d54b0a59aab68243fb0ed03e6d8..15ce8d487fa04c798f2af9c5e64de10d9c93d4d5 100644 (file)
@@ -931,6 +931,7 @@ x_convert_selection (struct input_event *event, Lisp_Object selection_symbol,
 
   /* Otherwise, record the converted selection to binary.  */
   cs = xmalloc (sizeof (struct selection_data));
+  cs->data = NULL;
   cs->nofree = 1;
   cs->property = property;
   cs->wait_object = NULL;