emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/emacs-24 r108052: Merge changes from emacs-


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-24 r108052: Merge changes from emacs-24 branch
Date: Fri, 02 Nov 2012 02:09:53 -0000
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 108052 [merge]
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Fri 2012-04-27 11:13:17 +0800
message:
  Merge changes from emacs-24 branch
added:
  etc/ORG-NEWS
modified:
  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/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
=== modified file 'admin/FOR-RELEASE'
--- a/admin/FOR-RELEASE 2012-04-20 04:03:55 +0000
+++ b/admin/FOR-RELEASE 2012-04-21 19:31:05 +0000
@@ -61,7 +61,7 @@
 
 ** 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 @@
 text.texi         cyd
 tips.texi         rgm
 variables.texi    cyd
-windows.texi      
+windows.texi      rgm (skimmed)
 
 
 Local variables:

=== modified file 'doc/emacs/ChangeLog'
--- a/doc/emacs/ChangeLog       2012-04-15 07:28:01 +0000
+++ b/doc/emacs/ChangeLog       2012-04-27 03:10:38 +0000
@@ -1,3 +1,24 @@
+2012-04-27  Glenn Morris  <address@hidden>
+
+       * emacs.texi: Some fixes for detailed menu.
+
+2012-04-26  Glenn Morris  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * mule.texi (Bidirectional Editing): Improve indexing.  Minor
+       wording tweaks.
+
 2012-04-15  Chong Yidong  <address@hidden>
 
        * misc.texi (emacsclient Options): More clarifications.

=== modified file 'doc/emacs/ack.texi'
--- a/doc/emacs/ack.texi        2012-04-15 07:28:01 +0000
+++ b/doc/emacs/ack.texi        2012-04-27 03:10:38 +0000
@@ -240,7 +240,7 @@
 
 @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 @@
 
 @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 @@
 
 @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

=== modified file 'doc/emacs/basic.texi'
--- a/doc/emacs/basic.texi      2012-04-14 08:25:06 +0000
+++ b/doc/emacs/basic.texi      2012-04-26 00:31:47 +0000
@@ -668,7 +668,7 @@
 @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 @@
 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.

=== modified file 'doc/emacs/buffers.texi'
--- a/doc/emacs/buffers.texi    2012-04-10 06:54:43 +0000
+++ b/doc/emacs/buffers.texi    2012-04-26 00:31:47 +0000
@@ -180,7 +180,7 @@
 
   @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 @@
 
 @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 @@
   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

=== modified file 'doc/emacs/building.texi'
--- a/doc/emacs/building.texi   2012-04-14 08:25:06 +0000
+++ b/doc/emacs/building.texi   2012-04-26 00:31:47 +0000
@@ -331,7 +331,7 @@
   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}).
 

=== modified file 'doc/emacs/calendar.texi'
--- a/doc/emacs/calendar.texi   2012-02-17 04:37:58 +0000
+++ b/doc/emacs/calendar.texi   2012-04-26 00:31:47 +0000
@@ -624,7 +624,7 @@
   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 @@
 
   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 @@
 @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 @@
 @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 @@
   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

=== modified file 'doc/emacs/cmdargs.texi'
--- a/doc/emacs/cmdargs.texi    2012-04-14 08:25:06 +0000
+++ b/doc/emacs/cmdargs.texi    2012-04-26 00:31:47 +0000
@@ -442,7 +442,7 @@
 initialize the Lisp variable @code{doc-directory}.
 @item EMACSLOADPATH
 A colon-separated list of address@hidden 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

=== modified file 'doc/emacs/commands.texi'
--- a/doc/emacs/commands.texi   2012-04-14 08:25:06 +0000
+++ b/doc/emacs/commands.texi   2012-04-26 00:31:47 +0000
@@ -166,7 +166,7 @@
 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

=== modified file 'doc/emacs/custom.texi'
--- a/doc/emacs/custom.texi     2012-04-12 14:50:58 +0000
+++ b/doc/emacs/custom.texi     2012-04-26 00:31:47 +0000
@@ -1922,7 +1922,7 @@
   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 @@
   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}:

=== modified file 'doc/emacs/dired.texi'
--- a/doc/emacs/dired.texi      2012-03-22 06:47:01 +0000
+++ b/doc/emacs/dired.texi      2012-04-26 00:31:47 +0000
@@ -14,7 +14,7 @@
 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 @@
 @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 @@
   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 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 @@
 @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
address@hidden, those files are considered ``different.''
address@hidden, 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

=== modified file 'doc/emacs/display.texi'
--- a/doc/emacs/display.texi    2012-04-14 08:25:06 +0000
+++ b/doc/emacs/display.texi    2012-04-26 00:31:47 +0000
@@ -448,7 +448,7 @@
 @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 @@
 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

=== modified file 'doc/emacs/emacs.texi'
--- a/doc/emacs/emacs.texi      2012-04-14 08:25:06 +0000
+++ b/doc/emacs/emacs.texi      2012-04-27 00:23:54 +0000
@@ -72,7 +72,7 @@
 @sp 4
 @center @value{EDITION} Edition, Updated for Emacs Version @value{EMACSVER}.
 @sp 5
address@hidden Richard Stallman
address@hidden Richard Stallman et al.
 @page
 @vskip 0pt plus 1filll
 @insertcopying
@@ -288,11 +288,11 @@
 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 @@
 * 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 @@
 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 @@
 * 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 @@
 * 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 @@
 * 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 @@
 * 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 @@
 * 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 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 @@
 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 @@
 * 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 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 @@
 * 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 @@
 * 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 @@
                           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 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 @@
 * 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.

=== modified file 'doc/emacs/emerge-xtra.texi'
--- a/doc/emacs/emerge-xtra.texi        2012-02-21 21:43:51 +0000
+++ b/doc/emacs/emerge-xtra.texi        2012-04-26 00:31:47 +0000
@@ -151,7 +151,7 @@
   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.
 

=== modified file 'doc/emacs/files.texi'
--- a/doc/emacs/files.texi      2012-04-14 08:25:06 +0000
+++ b/doc/emacs/files.texi      2012-04-26 00:31:47 +0000
@@ -97,7 +97,7 @@
 
   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 @@
 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}.
 

=== modified file 'doc/emacs/fortran-xtra.texi'
--- a/doc/emacs/fortran-xtra.texi       2012-02-16 07:13:28 +0000
+++ b/doc/emacs/fortran-xtra.texi       2012-04-26 00:31:47 +0000
@@ -207,7 +207,7 @@
 @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)}

=== modified file 'doc/emacs/help.texi'
--- a/doc/emacs/help.texi       2012-04-10 06:54:43 +0000
+++ b/doc/emacs/help.texi       2012-04-26 00:31:47 +0000
@@ -96,7 +96,7 @@
 @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

=== modified file 'doc/emacs/kmacro.texi'
--- a/doc/emacs/kmacro.texi     2012-02-20 23:50:52 +0000
+++ b/doc/emacs/kmacro.texi     2012-04-26 00:31:47 +0000
@@ -225,7 +225,7 @@
 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

=== modified file 'doc/emacs/mini.texi'
--- a/doc/emacs/mini.texi       2012-04-10 06:54:43 +0000
+++ b/doc/emacs/mini.texi       2012-04-26 00:31:47 +0000
@@ -88,7 +88,7 @@
 @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

=== modified file 'doc/emacs/misc.texi'
--- a/doc/emacs/misc.texi       2012-04-15 07:21:23 +0000
+++ b/doc/emacs/misc.texi       2012-04-26 00:31:47 +0000
@@ -1191,7 +1191,7 @@
 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 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 @@
 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

=== modified file 'doc/emacs/msdog-xtra.texi'
--- a/doc/emacs/msdog-xtra.texi 2012-04-14 08:25:06 +0000
+++ b/doc/emacs/msdog-xtra.texi 2012-04-26 00:31:47 +0000
@@ -548,7 +548,7 @@
 @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

=== modified file 'doc/emacs/mule.texi'
--- a/doc/emacs/mule.texi       2012-04-14 19:33:33 +0000
+++ b/doc/emacs/mule.texi       2012-04-25 08:30:59 +0000
@@ -1337,6 +1337,7 @@
 @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)
address@hidden 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
 address@hidden 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 @@
 directionality when they are displayed.  The default value is
 @code{t}.
 
address@hidden base direction of paragraphs
address@hidden 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,

=== modified file 'doc/emacs/picture-xtra.texi'
--- a/doc/emacs/picture-xtra.texi       2012-02-21 08:28:18 +0000
+++ b/doc/emacs/picture-xtra.texi       2012-04-26 00:31:47 +0000
@@ -199,7 +199,7 @@
 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 address@hidden, this command moves to the next such interesting
 character in the current line.  @address@hidden does not change the
 text; it only moves point.  ``Interesting'' characters are defined by

=== modified file 'doc/emacs/programs.texi'
--- a/doc/emacs/programs.texi   2012-04-10 06:54:43 +0000
+++ b/doc/emacs/programs.texi   2012-04-26 00:31:47 +0000
@@ -1109,7 +1109,7 @@
 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 @@
 
   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

=== modified file 'doc/emacs/rmail.texi'
--- a/doc/emacs/rmail.texi      2012-02-18 21:57:00 +0000
+++ b/doc/emacs/rmail.texi      2012-04-26 00:31:47 +0000
@@ -1355,7 +1355,7 @@
 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.

=== modified file 'doc/emacs/search.texi'
--- a/doc/emacs/search.texi     2012-04-10 06:54:43 +0000
+++ b/doc/emacs/search.texi     2012-04-26 00:31:47 +0000
@@ -146,7 +146,7 @@
   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 @@
 @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 @@
 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 @@
 @samp{\&} in @var{newstring} stands for the entire match being
 replaced.  @address@hidden 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

=== modified file 'doc/emacs/trouble.texi'
--- a/doc/emacs/trouble.texi    2012-04-14 08:25:06 +0000
+++ b/doc/emacs/trouble.texi    2012-04-26 00:31:47 +0000
@@ -534,16 +534,16 @@
 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 @address@hidden A B C @key{RET} C-p},'' if
+line'', say ``after I type @address@hidden 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 @@
 
 @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 @@
 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}.

=== modified file 'doc/emacs/windows.texi'
--- a/doc/emacs/windows.texi    2012-04-14 08:25:06 +0000
+++ b/doc/emacs/windows.texi    2012-04-26 00:31:47 +0000
@@ -151,7 +151,7 @@
 @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 @@
   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}).

=== modified file 'doc/lispref/ChangeLog'
--- a/doc/lispref/ChangeLog     2012-04-26 01:51:41 +0000
+++ b/doc/lispref/ChangeLog     2012-04-27 03:10:38 +0000
@@ -1,3 +1,54 @@
+2012-04-27  Glenn Morris  <address@hidden>
+
+       * 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  <address@hidden>
+       * functions.texi (Simple Lambda, Argument List):
+       * eval.texi (Function Indirection): Avoid deprecated form.
+
+2012-04-27  Glenn Morris  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * keymaps.texi (Scanning Keymaps): Fix description of NO-REMAP arg
+       to where-is-internal (Bug#10872).
+
+2012-04-27  Glenn Morris  <address@hidden>
+
+       * 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  <address@hidden>
 
        * elisp-covers.texi, front-cover-1.texi: Remove files.

=== modified file 'doc/lispref/book-spine.texi'
--- a/doc/lispref/book-spine.texi       2012-02-09 07:48:22 +0000
+++ b/doc/lispref/book-spine.texi       2012-04-26 00:48:08 +0000
@@ -20,8 +20,8 @@
 @center by
 @center Bil Lewis,
 @center Dan LaLiberte,
address@hidden and the
address@hidden GNU Manual Group
address@hidden the GNU Manual Group,
address@hidden et al.
 @sp 5
 @center Free Software Foundation
 @bye

=== modified file 'doc/lispref/buffers.texi'
--- a/doc/lispref/buffers.texi  2012-04-14 01:59:01 +0000
+++ b/doc/lispref/buffers.texi  2012-04-27 03:10:38 +0000
@@ -23,7 +23,7 @@
 * 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 @@
 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.
 

=== modified file 'doc/lispref/commands.texi'
--- a/doc/lispref/commands.texi 2012-04-14 01:59:01 +0000
+++ b/doc/lispref/commands.texi 2012-04-27 03:10:38 +0000
@@ -718,7 +718,7 @@
 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 @@
 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 @@
 
 @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 @@
 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.)

=== modified file 'doc/lispref/compile.texi'
--- a/doc/lispref/compile.texi  2012-04-14 01:59:01 +0000
+++ b/doc/lispref/compile.texi  2012-04-27 03:10:38 +0000
@@ -274,7 +274,7 @@
 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.
 

=== modified file 'doc/lispref/control.texi'
--- a/doc/lispref/control.texi  2012-04-14 01:59:01 +0000
+++ b/doc/lispref/control.texi  2012-04-27 03:10:38 +0000
@@ -220,7 +220,7 @@
 @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 @@
 @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:
 

=== modified file 'doc/lispref/customize.texi'
--- a/doc/lispref/customize.texi        2012-04-14 01:59:01 +0000
+++ b/doc/lispref/customize.texi        2012-04-27 03:10:38 +0000
@@ -817,7 +817,7 @@
 
 @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 @@
 
 @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}.

=== modified file 'doc/lispref/display.texi'
--- a/doc/lispref/display.texi  2012-04-14 01:59:01 +0000
+++ b/doc/lispref/display.texi  2012-04-27 03:10:38 +0000
@@ -155,7 +155,7 @@
 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 @@
 echo area.
 
 You should always call this function and not hope for
address@hidden to print ``100%.''  Firstly, it may
address@hidden 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 @@
 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 @@
 @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 @@
 @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 @@
 @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 @@
 
   @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 @@
 
 @defvar ring-bell-function
 If this is address@hidden, 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
 address@hidden, it takes precedence over the @code{visible-bell}
 variable.
 @end defvar
@@ -6162,7 +6162,7 @@
 @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.
 

=== modified file 'doc/lispref/elisp.texi'
--- a/doc/lispref/elisp.texi    2012-04-20 01:37:14 +0000
+++ b/doc/lispref/elisp.texi    2012-04-26 17:56:38 +0000
@@ -5,11 +5,10 @@
 @c %**end of header
 
 @c Version of the manual and of Emacs.
address@hidden Please remember to update the edition number in README as well.
address@hidden And also the copies in vol1.texi and vol2.texi.
address@hidden VERSION  3.0
address@hidden Please remember to update these in vol1.texi and vol2.texi as 
well.
address@hidden VERSION  3.1
 @include emacsver.texi
address@hidden DATE July 2009
address@hidden 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 @@
 @subtitle For Emacs Version @value{EMACSVER}
 @subtitle Revision @value{VERSION}, @value{DATE}
 
address@hidden by Bil Lewis, Dan LaLiberte, Richard Stallman
address@hidden and the GNU Manual Group
address@hidden by Bil Lewis, Dan LaLiberte, Richard Stallman,
address@hidden the GNU Manual Group, et al.
 @page
 @vskip 0pt plus 1filll
 @insertcopying
@@ -460,7 +459,7 @@
 * 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 @@
 * 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 @@
                               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 @@
 * 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 @@
 * 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 @@
 * 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 @@
 * 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 @@
 * 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.

=== modified file 'doc/lispref/eval.texi'
--- a/doc/lispref/eval.texi     2012-04-14 01:59:01 +0000
+++ b/doc/lispref/eval.texi     2012-04-27 03:10:38 +0000
@@ -103,7 +103,7 @@
 @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 @@
 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:
+
address@hidden
address@hidden
+(funcall (lambda (arg) (erste arg))
+         '(1 2 3))
address@hidden group
address@hidden smallexample
+or just
address@hidden
address@hidden
+(let ((arg '(1 2 3))) (erste arg))
address@hidden group
address@hidden smallexample
+
   The built-in function @code{indirect-function} provides an easy way to
 perform symbol function indirection explicitly.
 

=== modified file 'doc/lispref/files.texi'
--- a/doc/lispref/files.texi    2012-04-20 08:48:50 +0000
+++ b/doc/lispref/files.texi    2012-04-27 03:10:38 +0000
@@ -71,8 +71,8 @@
 
   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 @@
 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 @@
 @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 @@
 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

=== modified file 'doc/lispref/frames.texi'
--- a/doc/lispref/frames.texi   2012-04-14 01:59:01 +0000
+++ b/doc/lispref/frames.texi   2012-04-27 03:10:38 +0000
@@ -882,7 +882,7 @@
 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 @@
 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 @@
   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 @@
 @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 @@
   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 @@
   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 @@
 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
 

=== modified file 'doc/lispref/functions.texi'
--- a/doc/lispref/functions.texi        2012-04-14 01:59:01 +0000
+++ b/doc/lispref/functions.texi        2012-04-27 03:10:38 +0000
@@ -266,13 +266,12 @@
 @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 @@
 
 @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 @@
   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
 

=== modified file 'doc/lispref/hash.texi'
--- a/doc/lispref/hash.texi     2012-04-14 01:59:01 +0000
+++ b/doc/lispref/hash.texi     2012-04-27 03:10:38 +0000
@@ -74,13 +74,13 @@
 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 @@
 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 @@
 a ``hash code'' from a key value.
 
 The function @var{test-fn} should accept two arguments, two keys, and
-return address@hidden if they are considered ``the same.''
+return address@hidden 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

=== modified file 'doc/lispref/help.texi'
--- a/doc/lispref/help.texi     2012-04-20 08:48:50 +0000
+++ b/doc/lispref/help.texi     2012-04-27 03:10:38 +0000
@@ -599,7 +599,7 @@
 
 @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
 

=== modified file 'doc/lispref/intro.texi'
--- a/doc/lispref/intro.texi    2012-04-14 01:59:01 +0000
+++ b/doc/lispref/intro.texi    2012-04-27 03:10:38 +0000
@@ -146,7 +146,7 @@
 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 @@
 @end example
 
 @noindent
-You can read this as address@hidden(car '(1 2))} evaluates to 1.''
+You can read this as address@hidden(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

=== modified file 'doc/lispref/keymaps.texi'
--- a/doc/lispref/keymaps.texi  2012-04-20 08:48:50 +0000
+++ b/doc/lispref/keymaps.texi  2012-04-27 03:10:38 +0000
@@ -1032,7 +1032,7 @@
 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 @address@hidden, whatever that may be.''
+binding of @address@hidden, whatever that may be''.
 @end itemize
 
 @item @var{symbol}
@@ -1887,9 +1887,9 @@
 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
address@hidden(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 @@
 follow indirect keymap bindings.  This makes it possible to search for
 an indirect definition itself.
 
-When command remapping is in effect (@pxref{Remapping Commands}),
address@hidden figures out when a command will be run due to
-remapping and reports keys accordingly.  It also returns @code{nil} if
address@hidden won't really be run because it has been remapped to some
-other command.  However, if @var{no-remap} is address@hidden
address@hidden ignores remappings.
-
address@hidden
address@hidden
-(where-is-internal 'describe-function)
-    @result{} ([8 102] [f1 102] [help 102]
-         [menu-bar help-menu describe describe-function])
address@hidden group
address@hidden smallexample
+The fifth argument, @var{no-remap}, determines how this function
+treats command remappings (@pxref{Remapping Commands}).  There are two
+cases of interest:
+
address@hidden @asis
address@hidden If a command @var{other-command} is remapped to @var{command}:
+If @var{no-remap} is @code{nil}, find the bindings for
address@hidden and treat them as though they are also bindings
+for @var{command}.  If @var{no-remap} is address@hidden, include the
+vector @code{[remap @var{other-command}]} in the list of possible key
+sequences, instead of finding those bindings.
+
address@hidden If @var{command} is remapped to @var{other-command}:
+If @var{no-remap} is @code{nil}, return the bindings for
address@hidden rather than @var{command}.  If @var{no-remap} is
address@hidden, return the bindings for @var{command}, ignoring the
+fact that it is remapped.
address@hidden table
 @end defun
 
 @deffn Command describe-bindings &optional prefix buffer-or-name
@@ -2147,7 +2151,7 @@
 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 @@
 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

=== modified file 'doc/lispref/lists.texi'
--- a/doc/lispref/lists.texi    2012-04-14 01:59:01 +0000
+++ b/doc/lispref/lists.texi    2012-04-27 03:10:38 +0000
@@ -34,12 +34,12 @@
 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 @@
 
 @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 @@
 
 @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:
 

=== modified file 'doc/lispref/macros.texi'
--- a/doc/lispref/macros.texi   2012-04-14 01:59:01 +0000
+++ b/doc/lispref/macros.texi   2012-04-27 03:10:38 +0000
@@ -604,7 +604,7 @@
 @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

=== modified file 'doc/lispref/minibuf.texi'
--- a/doc/lispref/minibuf.texi  2012-04-20 08:48:50 +0000
+++ b/doc/lispref/minibuf.texi  2012-04-27 03:10:38 +0000
@@ -57,16 +57,17 @@
 @code{forward-sentence}, and @code{forward-paragraph}, stop at the
 boundary between the prompt and the actual text.
 
address@hidden 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
address@hidden 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
address@hidden 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}

=== modified file 'doc/lispref/modes.texi'
--- a/doc/lispref/modes.texi    2012-04-14 01:59:01 +0000
+++ b/doc/lispref/modes.texi    2012-04-27 03:10:38 +0000
@@ -283,7 +283,7 @@
 * 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 @@
 
 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 @@
 
   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 @@
 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 @@
 @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 @@
 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 @@
 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

=== modified file 'doc/lispref/numbers.texi'
--- a/doc/lispref/numbers.texi  2012-04-14 01:59:01 +0000
+++ b/doc/lispref/numbers.texi  2012-04-27 03:10:38 +0000
@@ -777,7 +777,7 @@
 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.
 

=== modified file 'doc/lispref/objects.texi'
--- a/doc/lispref/objects.texi  2012-04-14 01:59:01 +0000
+++ b/doc/lispref/objects.texi  2012-04-27 03:10:38 +0000
@@ -675,7 +675,7 @@
 
 @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 @@
   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})address@hidden

=== modified file 'doc/lispref/streams.texi'
--- a/doc/lispref/streams.texi  2012-04-14 01:59:01 +0000
+++ b/doc/lispref/streams.texi  2012-04-27 03:10:38 +0000
@@ -114,7 +114,7 @@
 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 @@
 @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

=== modified file 'doc/lispref/symbols.texi'
--- a/doc/lispref/symbols.texi  2012-04-14 01:59:01 +0000
+++ b/doc/lispref/symbols.texi  2012-04-27 03:10:38 +0000
@@ -140,7 +140,7 @@
   @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}.

=== modified file 'doc/lispref/syntax.texi'
--- a/doc/lispref/syntax.texi   2012-04-14 01:59:01 +0000
+++ b/doc/lispref/syntax.texi   2012-04-27 03:10:38 +0000
@@ -56,7 +56,7 @@
 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 @@
   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),
 

=== modified file 'doc/lispref/text.texi'
--- a/doc/lispref/text.texi     2012-04-14 01:59:01 +0000
+++ b/doc/lispref/text.texi     2012-04-27 03:10:38 +0000
@@ -555,7 +555,7 @@
 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 @@
 
   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 @@
 
   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 @@
 @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 address@hidden value,
-then that value is used as the ``most recent kill.''  If it returns
+``most recent kill''.  If the function returns a address@hidden 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 @@
 If this variable's value is address@hidden, it is a symbol which is used
 as a text property name.  A address@hidden 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 address@hidden value for this property, @code{buffer-substring}
@@ -3808,7 +3808,7 @@
 @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

=== modified file 'doc/lispref/tips.texi'
--- a/doc/lispref/tips.texi     2012-04-14 01:59:01 +0000
+++ b/doc/lispref/tips.texi     2012-04-27 03:10:38 +0000
@@ -640,7 +640,7 @@
 
 @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 @@
 
 @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 @@
 
 @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 @@
 
 @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 address@hidden values are equivalent and indicate explicitly what
 @code{nil} and address@hidden mean.
 @end itemize

=== modified file 'doc/lispref/variables.texi'
--- a/doc/lispref/variables.texi        2012-04-14 01:59:01 +0000
+++ b/doc/lispref/variables.texi        2012-04-27 03:10:38 +0000
@@ -670,7 +670,7 @@
 
 @code{setq} does not evaluate @var{symbol}; it sets the symbol that you
 write.  We say that this argument is @dfn{automatically quoted}.  The
address@hidden in @code{setq} stands for ``quoted.''
address@hidden in @code{setq} stands for ``quoted''.
 
 The value of the @code{setq} form is the value of the last @var{form}.
 

=== modified file 'doc/lispref/vol1.texi'
--- a/doc/lispref/vol1.texi     2012-04-20 01:37:14 +0000
+++ b/doc/lispref/vol1.texi     2012-04-26 17:56:38 +0000
@@ -24,10 +24,9 @@
 @end tex
 
 @c Version of the manual and of Emacs.
address@hidden Please remember to update the edition number in README as well.
address@hidden VERSION  3.0
address@hidden VERSION  3.1
 @include emacsver.texi
address@hidden DATE July 2009
address@hidden DATE May 2012
 
 @dircategory Emacs
 @direntry
@@ -90,8 +89,8 @@
 @subtitle For Emacs Version @value{EMACSVER}
 @subtitle Revision @value{VERSION}, @value{DATE}
 
address@hidden by Bil Lewis, Dan LaLiberte, Richard Stallman
address@hidden and the GNU Manual Group
address@hidden by Bil Lewis, Dan LaLiberte, Richard Stallman,
address@hidden the GNU Manual Group, et al.
 @page
 @vskip 0pt plus 1filll
 @insertcopying
@@ -480,7 +479,7 @@
 * 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 @@
 * 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 @@
                               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 @@
 * 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 @@
 * 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 @@
 * 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 @@
 * 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 @@
 * 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 @@
 * 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.

=== modified file 'doc/lispref/vol2.texi'
--- a/doc/lispref/vol2.texi     2012-04-20 01:37:14 +0000
+++ b/doc/lispref/vol2.texi     2012-04-26 17:56:38 +0000
@@ -24,10 +24,9 @@
 @end tex
 
 @c Version of the manual and of Emacs.
address@hidden Please remember to update the edition number in README as well.
address@hidden VERSION  3.0
address@hidden VERSION  3.1
 @include emacsver.texi
address@hidden DATE July 2009
address@hidden DATE May 2012
 
 @dircategory Emacs
 @direntry
@@ -90,8 +89,8 @@
 @subtitle For Emacs Version @value{EMACSVER}
 @subtitle Revision @value{VERSION}, @value{DATE}
 
address@hidden by Bil Lewis, Dan LaLiberte, Richard Stallman
address@hidden and the GNU Manual Group
address@hidden by Bil Lewis, Dan LaLiberte, Richard Stallman,
address@hidden the GNU Manual Group, et al.
 @page
 @vskip 0pt plus 1filll
 @insertcopying
@@ -479,7 +478,7 @@
 * 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 @@
 * 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 @@
                               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 @@
 * 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 @@
 * 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 @@
 * 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 @@
 * 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 @@
 * 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.

=== modified file 'doc/lispref/windows.texi'
--- a/doc/lispref/windows.texi  2012-04-14 01:59:01 +0000
+++ b/doc/lispref/windows.texi  2012-04-27 03:10:38 +0000
@@ -49,7 +49,7 @@
 @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 @@
 
 The functions @code{window-next-sibling} and
 @code{window-prev-sibling} should not be confused with the functions
address@hidden and @code{previous-window} which respectively
-return the next and previous window in the cyclic ordering of windows
address@hidden 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 @@
 
   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 @@
 
 The optional argument @var{max-height}, if address@hidden, specifies
 the maximum total height that this function can give @var{window}.
-The optional argument @var{min-height}, if address@hidden, specifies
+The optional argument @var{min-height}, if address@hidden, specifies
 the minimum total height that it can give, which overrides the
 variable @code{window-min-height}.
 
@@ -723,7 +723,7 @@
 
 The behavior of this function may be altered by the window parameters
 of @var{window}, so long as the variable
address@hidden is address@hidden  If the value of
address@hidden 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 @@
 
 The behavior of this function may be altered by the window parameters
 of @var{window}, so long as the variable
address@hidden is address@hidden  If the value of
address@hidden 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 @@
 
 The behavior of this function may be altered by the window parameters
 of @var{window}, so long as the variable
address@hidden is address@hidden  If the value of
address@hidden 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 @@
 
 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 @@
 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 @@
 @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 @@
 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 @@
 @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
address@hidden (see below) in addition to any other
address@hidden (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 @@
 
 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
address@hidden(car @var{args})} is called as a function to actually create and
address@hidden(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 @@
 
 @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 @@
 @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 @@
 argument @var{window} should be a live window or @code{nil} (meaning
 the selected window).  If the optional argument @var{bury-or-kill} is
 address@hidden, this means that the buffer currently shown in
address@hidden is about to be buried or killed and consequently shall
address@hidden 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
address@hidden does not qualify as previous buffer.
+or killed, or has been already shown by a recent invocation of
address@hidden, 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 a @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 address@hidden, @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 @@
 This function returns address@hidden 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
address@hidden or @code{nil} if that function was never called with
address@hidden, 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 @@
 @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 @@
 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 @@
 @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,
-
address@hidden
address@hidden
-(window-start)
-     @result{} 7058
address@hidden group
address@hidden 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 @@
 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 @@
 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
address@hidden on modern keyboards.  We have not switched to this
-convention as that is likely to break existing Emacs Lisp code.
address@hidden on modern keyboards.
address@hidden
+We have not switched to this convention as that is likely to break
+existing Emacs Lisp code.
address@hidden 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 @@
 This function scrolls backward by @var{count} lines in the selected
 window.
 
-If @var{count} is negative, it scrolls forward instead.  If
address@hidden is omitted or @code{nil}, the distance scrolled is
address@hidden 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 @@
 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 address@hidden and the
 minibuffer is selected, it takes precedence over
@@ -2600,7 +2589,7 @@
 @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
address@hidden of buffer}.
address@hidden of buffer}.
 @end deffn
 
 @defvar other-window-scroll-buffer
@@ -2699,12 +2688,12 @@
 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 address@hidden 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 address@hidden list),
address@hidden 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,21 +2702,31 @@
 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,
-
address@hidden
address@hidden
-(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))
-
-(global-set-key [kp-multiply] 'line-to-top-of-window)
address@hidden group
address@hidden example
address@hidden deffn
+the top of the window.  The command @code{recenter-top-bottom} offers
+a more convenient way to achieve this.
address@hidden deffn
+
address@hidden recenter-redisplay
+If this variable is address@hidden, calling @code{recenter} with a
address@hidden argument redraws the frame.  The default value is
address@hidden, which means only redraw the frame if it is a tty frame.
address@hidden defopt
+
address@hidden Command recenter-top-bottom &optional count
+This command, which is the default binding for @kbd{C-l}, acts like
address@hidden, 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}.
address@hidden deffn
+
address@hidden 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
address@hidden with no argument cycle between placing
+point at the middle, top, and bottom of the window.
address@hidden defopt
+
 
 @node Vertical Scrolling
 @section Vertical Fractional Scrolling
@@ -2817,8 +2816,8 @@
 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 @@
 
 @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 @@
   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
address@hidden Parameters} for details.
+which window parameters (if any) are saved by this function.
address@hidden Parameters}.
 @end defun
 
 @defun set-window-configuration configuration
@@ -3136,9 +3135,9 @@
 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},
address@hidden and @code{minibuffer-scroll-window}. In this
address@hidden 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 @@
 
   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 @@
 If the optional argument @var{writable} is address@hidden, this means to
 not use markers for sampling positions like @code{window-point} or
 @code{window-start}.  This argument should be address@hidden 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 @@
 argument @var{window} must specify a live window and defaults to the
 selected one.
 
-The optional argument @var{ignore} address@hidden 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 address@hidden, 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 @@
 
 @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 address@hidden 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 @@
 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
address@hidden and @code{window-state-get} and
address@hidden and @code{window-state-get}, and
 subsequently restored by @code{set-window-configuration} and
address@hidden, see @ref{Window Configurations}.
address@hidden  @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
address@hidden and, provided its @var{writable}
-argument is @code{nil}, by @code{window-state-get}.
address@hidden 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 @@
 @end table
 @end defvar
 
-Some functions, notably @code{delete-window},
address@hidden and @code{split-window} may behave specially
+Some functions (notably @code{delete-window},
address@hidden 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
 address@hidden value:
@@ -3334,7 +3333,7 @@
 @defvar ignore-window-parameters
 If this variable is address@hidden, some standard functions do not
 process window parameters.  The functions currently affected by this are
address@hidden, @code{delete-window}, @code{delete-other-windows}
address@hidden, @code{delete-window}, @code{delete-other-windows},
 and @code{other-window}.
 
 An application can bind this variable to a address@hidden value around
@@ -3368,18 +3367,19 @@
 (@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 @@
 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 @@
 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.

=== modified file 'doc/misc/ChangeLog'
--- a/doc/misc/ChangeLog        2012-04-22 14:11:43 +0000
+++ b/doc/misc/ChangeLog        2012-04-27 03:10:38 +0000
@@ -1,3 +1,13 @@
+2012-04-27  Ippei Furuhashi  <address@hidden>  (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  <address@hidden>
+
+       * 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  <address@hidden>
 
        * dbus.texi (Version): New node.

=== modified file 'doc/misc/faq.texi'
--- a/doc/misc/faq.texi 2012-04-20 02:19:43 +0000
+++ b/doc/misc/faq.texi 2012-04-21 00:52:08 +0000
@@ -91,7 +91,6 @@
 * 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 @@
 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 @@
 * 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 @@
 Read the file @file{etc/MORE.STUFF} for more information about
 external packages.
 
address@hidden Spell-checkers
address@hidden Spell-checkers
address@hidden Spell-checker
address@hidden Checking spelling
address@hidden Ispell
address@hidden Aspell
address@hidden Hunspell
+
+Various spell-checkers are compatible with Emacs, including:
+
address@hidden @b
+
address@hidden GNU Aspell
address@hidden://aspell.net/}
+
address@hidden Ispell
address@hidden://fmg-www.cs.ucla.edu/geoff/ispell.html}
+
address@hidden Hunspell
address@hidden://hunspell.sourceforge.net/}
+
address@hidden table
+
 @node Current GNU distributions
 @section Where can I get other up-to-date GNU stuff?
 @cindex Current GNU distributions
@@ -3443,124 +3466,6 @@
 See the file @file{nextstep/INSTALL} in the distribution.
 
 @c ------------------------------------------------------------
address@hidden Major packages and programs
address@hidden Major packages and programs
address@hidden Major packages and programs
-
address@hidden
-* VM::
-* AUCTeX::
-* BBDB::
-* Spell-checkers::
-* Emacs/W3::
-* EDB::
-* JDEE::
address@hidden menu
-
address@hidden VM
address@hidden VM (View Mail) --- another mail reader within Emacs, with MIME 
support
address@hidden VM
address@hidden Alternative mail software
address@hidden View Mail
address@hidden E-mail reader, VM
-
address@hidden @b
-
address@hidden Web site
address@hidden://launchpad.net/vm}
-(was @uref{http://www.nongnu.org/viewmail/})
-
address@hidden Informational newsgroup
address@hidden:address@hidden
-
address@hidden Bug reports newsgroup
address@hidden:address@hidden
address@hidden table
-
-VM was originally written by @uref{http://www.wonderworks.com/vm/,Kyle Jones}.
address@hidden://ftp.wonderworks.com/pub/vm/,Older versions} of VM remain
-available.
-
-
address@hidden AUCTeX
address@hidden address@hidden --- enhanced @TeX{} modes with debugging 
facilities
address@hidden Mode for @TeX{}
address@hidden @TeX{} mode
address@hidden address@hidden mode for editing @TeX{}
address@hidden Writing and debugging @TeX{}
-
address@hidden 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
address@hidden, RefTeX, Introduction, reftex, address@hidden User Manual}.
-Current versions of address@hidden include the
address@hidden://www.gnu.org/software/auctex/preview-latex.html,preview-latex}
-package for WYSIWYG previews of various LaTeX constructs in the Emacs
-source buffer.
-
address@hidden://www.gnu.org/software/auctex/, AUCTeX}
-
address@hidden BBDB
address@hidden BBDB --- personal Info Rolodex integrated with mail/news readers
address@hidden BBDB
address@hidden Rolodex-like functionality
address@hidden Integrated contact database
address@hidden Contact database
address@hidden Big Brother Database
address@hidden Address book
-
address@hidden://bbdb.sourceforge.net/, The Insidious Big Brother Database}
-
address@hidden Spell-checkers
address@hidden Spell-checkers
address@hidden Spell-checker
address@hidden Checking spelling
address@hidden Ispell
address@hidden Aspell
address@hidden Hunspell
-
-Various spell-checkers are compatible with Emacs, including:
-
address@hidden @b
-
address@hidden GNU Aspell
address@hidden://aspell.net/}
-
address@hidden Ispell
address@hidden://fmg-www.cs.ucla.edu/geoff/ispell.html}
-
address@hidden Hunspell
address@hidden://hunspell.sourceforge.net/}
-
address@hidden table
-
address@hidden Emacs/W3
address@hidden Emacs/W3 --- A World Wide Web browser inside of Emacs
address@hidden WWW browser
address@hidden Web browser
address@hidden HTML browser in Emacs
address@hidden @code{w3-mode}
-
address@hidden://www.gnu.org/software/w3/, Emacs/W3}
-
address@hidden EDB
address@hidden EDB --- Database program for Emacs; replaces forms editing modes
address@hidden EDB
address@hidden Database
address@hidden Forms mode
-
address@hidden://gnuvola.org/software/edb/, The Emacs Database}
-
address@hidden JDEE
address@hidden JDEE --- Integrated development environment for Java
address@hidden Java development environment
address@hidden Integrated Java development environment
address@hidden JDEE
-
address@hidden://jdee.sourceforge.net/, A Java Development Environment for 
Emacs}
-
address@hidden ------------------------------------------------------------
 @node Key bindings
 @chapter Key bindings
 @cindex Key bindings

=== modified file 'etc/ChangeLog'
--- a/etc/ChangeLog     2012-04-20 08:48:50 +0000
+++ b/etc/ChangeLog     2012-04-27 03:10:38 +0000
@@ -1,3 +1,9 @@
+2012-04-26  Jambunathan K  <address@hidden>
+
+       * 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  <address@hidden>
 
        * CONTRIBUTE: Expand a bit on copyright assignments.

=== modified file 'etc/NEWS'
--- a/etc/NEWS  2012-04-27 00:30:56 +0000
+++ b/etc/NEWS  2012-04-27 03:10:38 +0000
@@ -833,7 +833,7 @@
 (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 @@
 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 @@
 *** 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.

=== added file 'etc/ORG-NEWS'
--- a/etc/ORG-NEWS      1970-01-01 00:00:00 +0000
+++ b/etc/ORG-NEWS      2012-04-27 02:15:51 +0000
@@ -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 address@hidden
+
+* 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=
+    : @address@hidden
+    : @address@hidden
+    :
+    : 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 address@hidden or address@hidden
+
+    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. address@hidden: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/>.

=== modified file 'etc/org/OrgOdtStyles.xml'
--- a/etc/org/OrgOdtStyles.xml  2012-04-01 09:49:25 +0000
+++ b/etc/org/OrgOdtStyles.xml  2012-04-26 17:30:04 +0000
@@ -649,34 +649,34 @@
   <!-- 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>
 

=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-04-27 02:48:38 +0000
+++ b/lisp/ChangeLog    2012-04-27 03:10:38 +0000
@@ -1,7 +1,57 @@
 2012-04-27  Chong Yidong  <address@hidden>
 
+       * subr.el (read-key): Avoid running filter function when setting
+       up temporary tool bar entries (Bug#9922).
+
+2012-04-27  Andreas Schwab  <address@hidden>
+
+       * vc/vc-git.el (vc-git-state): Fix regexp matching diff output.
+       (Bug#11344)
+
+2012-04-27  Chong Yidong  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * simple.el (delete-active-region): Move to killing custom group.
+
+2012-04-27  Andreas Schwab  <address@hidden>
+
+       * progmodes/which-func.el (which-func-current): Quote %
+       characters for mode-line processing.
+
+2012-04-21  Chong Yidong  <address@hidden>
+
+       * xml.el (xml-parse-region, xml-parse-tag): Avoid errors due to
+       reaching eob (Bug#11286).
+
+2012-04-27  Eli Zaretskii  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * 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  <address@hidden>
+
        * 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  <address@hidden>
 

=== modified file 'lisp/emacs-lisp/check-declare.el'
--- a/lisp/emacs-lisp/check-declare.el  2012-01-19 07:21:25 +0000
+++ b/lisp/emacs-lisp/check-declare.el  2012-04-21 00:32:15 +0000
@@ -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 <address@hidden>
 ;; 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:
 

=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2012-04-26 22:07:59 +0000
+++ b/lisp/gnus/ChangeLog       2012-04-27 03:10:38 +0000
@@ -1,3 +1,7 @@
+2012-04-27  Andreas Schwab  <address@hidden>
+
+       * gnus.el (debbugs-gnu): Don't override existing autoload definition.
+
 2012-04-26  Daiki Ueno  <address@hidden>
 
        * plstore.el (plstore-called-interactively-p): New compat macro copied

=== modified file 'lisp/gnus/gnus.el'
--- a/lisp/gnus/gnus.el 2012-02-09 23:30:27 +0000
+++ b/lisp/gnus/gnus.el 2012-04-21 07:55:02 +0000
@@ -4397,7 +4397,9 @@
     (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)

=== modified file 'lisp/mouse.el'
--- a/lisp/mouse.el     2012-04-19 17:20:26 +0000
+++ b/lisp/mouse.el     2012-04-27 03:10:38 +0000
@@ -403,13 +403,16 @@
                       (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 @@
      ((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 @@
            ;; 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

=== modified file 'lisp/org/ChangeLog'
--- a/lisp/org/ChangeLog        2012-04-14 01:46:06 +0000
+++ b/lisp/org/ChangeLog        2012-04-27 03:10:38 +0000
@@ -1,3 +1,67 @@
+2012-04-27  Nicolas Goaziou  <address@hidden>
+
+       * org-table.el (org-table-number-fraction): Fix typo.
+
+2012-04-27  Eric Schulte  <address@hidden>
+
+       * ob-python.el (org-babel-execute:python): Ensure newline precedes
+       automatically-added returns.
+
+2012-04-27  Nicolas Goaziou  <address@hidden>
+
+       * org-mouse.el (org-mode-hook): Do not move point when clicking on
+       a footnote reference.
+
+2012-04-27  Bastien Guerry  <address@hidden>
+
+       * org-faces.el (org-date-selected): Fix docstring.
+
+2012-04-27  Nicolas Goaziou  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * org-footnote.el (org-footnote-normalize): Fix positioning in
+       HTML export without a footnote section.
+
+2012-04-27  Madan Ramakrishnan  <address@hidden>  (tiny change)
+
+       * org-agenda.el (org-agenda-bulk-mark): Truly make arg optional as
+       advertised by the function.
+
+2012-04-27  Zachary Kanfer  <address@hidden>  (tiny change)
+
+       * org.el (org-read-date-display): Fix bug when displaying the
+       overlay.
+
+2012-04-27  Bastien Guerry  <address@hidden>
+
+       * org.el (org-mode): Don't use `buffer-face-mode' by default.
+
+2012-04-27  Bastien Guerry  <address@hidden>
+
+       * org-faces.el (org-date-selected): New face.
+
+2012-04-27  Jambunathan K  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * org-clock.el (org-program-exists): Fix docstring.
+
 2012-04-14  Bastien Guerry  <address@hidden>
 
        * org.el (org-point-at-end-of-empty-headline): Only try to match
@@ -438,11 +502,6 @@
        * org-attach.el (org-attach-store-link-p): Remove spurious quote
        in customization form choice.
 
-2012-04-01  Tassilo Horn  <address@hidden>
-
-       * org-contacts.el (org-contacts-check-mail-address): Add missing
-       word to `y-or-n-p' question.
-
 2012-04-01  Eric Schulte  <address@hidden>
 
        * ob-sh.el (org-babel-execute:sh): Pass all params to subroutine.
@@ -934,11 +993,6 @@
        * org-footnote.el (org-footnote-normalize): Make sure that
        footnotes are moved to a single place during export.
 
-2012-04-01  Bastien Guerry  <address@hidden>
-
-       * org.el (org-cycle-internal-global): Prevent the display of
-       messages when cycling from with a Gnus article buffer.
-
 2012-04-01  Nicolas Goaziou  <address@hidden>
 
        * org-footnote.el (org-footnote-normalize): Ensure footnote
@@ -1807,11 +1861,6 @@
 
 2012-01-03  Bastien Guerry  <address@hidden>
 
-       * org-drill.el (org-drill-leech-method, org-drill-scope)
-       (org-drill-spaced-repetition-algorithm): Fix wrong :type spec.
-
-2012-01-03  Bastien Guerry  <address@hidden>
-
        * org.el (org-property-re): Also match cumulating properties
        like ":prop+:".
 
@@ -5929,10 +5978,6 @@
        * 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  <address@hidden>
-
-       * org-contacts.el: Merge org-contacts-wl.el.
-
 2011-07-28  Carsten Dominik  <address@hidden>
 
        * org-exp.el (org-export-add-options-to-plist): Use the right
@@ -5967,10 +6012,6 @@
        * org-agenda.el (org-agenda-open-link): Pass entire text of agenda
        line to `org-offer-links-in-entry'.
 
-2011-07-28  Michael Markert  <address@hidden>
-
-       * org-contacts-wl.el: New file.
-
 2011-07-28  Matt Lundin  <address@hidden>
 
        * org-bibtex.el (org-bibtex-search): New function.
@@ -6736,9 +6777,6 @@
        (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.
 
@@ -13095,16 +13133,6 @@
 
        * org-capture.el (org-capture-templates): Fix customize type.
 
-2010-11-11  Carsten Dominik  <address@hidden>
-
-       * 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  <address@hidden>
 
        * org.el (org-refile-targets):
@@ -14132,9 +14160,6 @@
        * 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
@@ -15497,9 +15522,6 @@
        * 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.
 
@@ -15898,13 +15920,6 @@
        (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  <address@hidden>
 
        * org-exp.el (org-export-format-drawer-function): New variable.
@@ -16083,10 +16098,6 @@
        org-return-follows-link' is set and there is nothing else to do in
        this line.
 
-2009-11-13  James TD Smith  <address@hidden>
-
-       * org-colview-xemacs.el: Add in changes from org-colview.el.
-
 2009-11-13  Dan Davison  <address@hidden>
 
        * org-exp-blocks.el: Modify split separator regexp to avoid empty
@@ -17212,9 +17223,6 @@
        * 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.
@@ -17319,10 +17327,6 @@
        * 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.
 
@@ -18017,10 +18021,6 @@
        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.
@@ -18209,9 +18209,6 @@
        * 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.
 
@@ -18288,9 +18285,6 @@
 
        * 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.
 
@@ -18493,9 +18487,6 @@
        (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  <address@hidden>
 
        * org-latex.el (org-export-latex-after-blockquotes-hook): New hook.
@@ -18931,12 +18922,6 @@
        (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
@@ -19678,10 +19663,6 @@
        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  <address@hidden>
 
        * org.el (org-map-entries): Restore point and restriction after
@@ -20429,10 +20410,6 @@
        * 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'.
 
@@ -21011,9 +20988,6 @@
        * 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.
@@ -21188,11 +21162,6 @@
        (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'.
 
@@ -21322,9 +21291,6 @@
        * 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
@@ -21515,8 +21481,6 @@
 
        * 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.
 
@@ -21637,9 +21601,6 @@
        * 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  <address@hidden>
 
        * org-agenda.el (org-agenda-scheduled-leaders): Fix docstring.
@@ -21783,9 +21744,6 @@
        * 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'.
 

=== modified file 'lisp/org/ob-python.el'
--- a/lisp/org/ob-python.el     2012-04-01 20:27:06 +0000
+++ b/lisp/org/ob-python.el     2012-04-26 17:30:04 +0000
@@ -64,7 +64,7 @@
         (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)))

=== modified file 'lisp/org/org-agenda.el'
--- a/lisp/org/org-agenda.el    2012-04-11 10:59:50 +0000
+++ b/lisp/org/org-agenda.el    2012-04-26 17:30:04 +0000
@@ -8294,7 +8294,7 @@
 (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)

=== modified file 'lisp/org/org-clock.el'
--- a/lisp/org/org-clock.el     2012-04-11 10:59:50 +0000
+++ b/lisp/org/org-clock.el     2012-04-26 17:30:04 +0000
@@ -664,7 +664,7 @@
              (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))))
 

=== modified file 'lisp/org/org-faces.el'
--- a/lisp/org/org-faces.el     2012-04-03 12:02:21 +0000
+++ b/lisp/org/org-faces.el     2012-04-26 17:30:04 +0000
@@ -285,6 +285,16 @@
   "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"))

=== modified file 'lisp/org/org-footnote.el'
--- a/lisp/org/org-footnote.el  2012-04-11 10:59:50 +0000
+++ b/lisp/org/org-footnote.el  2012-04-26 17:30:04 +0000
@@ -716,8 +716,8 @@
        ((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 @@
        (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

=== modified file 'lisp/org/org-list.el'
--- a/lisp/org/org-list.el      2012-04-03 12:02:21 +0000
+++ b/lisp/org/org-list.el      2012-04-26 17:30:04 +0000
@@ -1484,8 +1484,19 @@
         (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 @@
 
 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 @@
           (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 @@
            (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 @@
   "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 @@
   (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 @@
   (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")))))

=== modified file 'lisp/org/org-mouse.el'
--- a/lisp/org/org-mouse.el     2012-04-01 09:49:25 +0000
+++ b/lisp/org/org-mouse.el     2012-04-26 17:30:04 +0000
@@ -915,6 +915,7 @@
          ((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)

=== modified file 'lisp/org/org-odt.el'
--- a/lisp/org/org-odt.el       2012-04-01 09:49:25 +0000
+++ b/lisp/org/org-odt.el       2012-04-26 17:30:04 +0000
@@ -1689,7 +1689,6 @@
             (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

=== modified file 'lisp/org/org-table.el'
--- a/lisp/org/org-table.el     2012-04-11 10:59:50 +0000
+++ b/lisp/org/org-table.el     2012-04-26 17:30:04 +0000
@@ -135,8 +135,8 @@
 
 (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)

=== modified file 'lisp/org/org.el'
--- a/lisp/org/org.el   2012-04-11 10:59:50 +0000
+++ b/lisp/org/org.el   2012-04-26 17:30:04 +0000
@@ -5057,8 +5057,7 @@
        '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 @@
   (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 @@
   (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 @@
 
 (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)

=== modified file 'lisp/progmodes/gdb-mi.el'
--- a/lisp/progmodes/gdb-mi.el  2012-04-25 08:07:57 +0000
+++ b/lisp/progmodes/gdb-mi.el  2012-04-27 03:10:38 +0000
@@ -603,6 +603,8 @@
         (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 @@
     (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 @@
   :group 'gdb)
 
 
+(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 @@
   (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 @@
         (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.

=== modified file 'lisp/progmodes/which-func.el'
--- a/lisp/progmodes/which-func.el      2012-04-22 13:58:00 +0000
+++ b/lisp/progmodes/which-func.el      2012-04-27 03:10:38 +0000
@@ -179,7 +179,9 @@
 (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

=== modified file 'lisp/select.el'
--- a/lisp/select.el    2012-02-11 23:06:46 +0000
+++ b/lisp/select.el    2012-04-24 05:34:50 +0000
@@ -213,30 +213,25 @@
 (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 @@
       (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 @@
 
 (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 @@
                            (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.

=== modified file 'lisp/simple.el'
--- a/lisp/simple.el    2012-04-18 07:00:52 +0000
+++ b/lisp/simple.el    2012-04-27 03:10:38 +0000
@@ -817,7 +817,7 @@
   :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)

=== modified file 'lisp/startup.el'
--- a/lisp/startup.el   2012-04-14 01:46:06 +0000
+++ b/lisp/startup.el   2012-04-27 03:10:38 +0000
@@ -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 a string, visit the specified file
 or directory using `find-file'.  If t, open the `*scratch*'
 buffer."
   :type '(choice

=== modified file 'lisp/subr.el'
--- a/lisp/subr.el      2012-04-23 15:48:22 +0000
+++ b/lisp/subr.el      2012-04-27 03:10:38 +0000
@@ -2023,7 +2023,10 @@
            (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)

=== modified file 'lisp/vc/vc-git.el'
--- a/lisp/vc/vc-git.el 2012-04-26 03:18:47 +0000
+++ b/lisp/vc/vc-git.el 2012-04-27 03:10:38 +0000
@@ -220,7 +220,7 @@
     (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))

=== modified file 'lisp/window.el'
--- a/lisp/window.el    2012-04-24 08:56:31 +0000
+++ b/lisp/window.el    2012-04-27 03:10:38 +0000
@@ -1482,12 +1482,24 @@
 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 @@
 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 @@
 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 @@
 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.

=== modified file 'lisp/xml.el'
--- a/lisp/xml.el       2012-01-27 08:46:10 +0000
+++ b/lisp/xml.el       2012-04-21 09:53:37 +0000
@@ -323,7 +323,8 @@
                  (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 @@
      ((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 "</")
       '())

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-04-26 10:49:29 +0000
+++ b/src/ChangeLog     2012-04-27 03:10:38 +0000
@@ -1,3 +1,30 @@
+2012-04-27  Chong Yidong  <address@hidden>
+
+       * xselect.c (x_convert_selection): Initialize a pointer (Bug#11315).
+
+2012-04-27  Eli Zaretskii  <address@hidden>
+
+       * 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  <address@hidden>
+
+       * keymap.c (where_is_internal): Doc fix (Bug#10872).
+
+2012-04-27  Glenn Morris  <address@hidden>
+
+       * fileio.c (Fcopy_file, Fset_file_selinux_context):
+       Ignore ENOTSUP failures from setfilecon functions.  (Bug#11245)
+
+2012-04-27  Eli Zaretskii  <address@hidden>
+
+       * 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  <address@hidden>
 
        * xdisp.c (IT_DISPLAYING_WHITESPACE): In addition to the loaded

=== modified file 'src/dispnew.c'
--- a/src/dispnew.c     2012-03-20 08:52:11 +0000
+++ b/src/dispnew.c     2012-04-20 14:08:55 +0000
@@ -1085,12 +1085,16 @@
   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 @@
 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.  */

=== modified file 'src/fileio.c'
--- a/src/fileio.c      2012-04-09 13:05:48 +0000
+++ b/src/fileio.c      2012-04-27 03:10:38 +0000
@@ -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 @@
 #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 @@
                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);

=== modified file 'src/keymap.c'
--- a/src/keymap.c      2012-03-11 17:08:10 +0000
+++ b/src/keymap.c      2012-04-23 03:44:13 +0000
@@ -2553,7 +2553,8 @@
 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 @@
 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.  */

=== modified file 'src/window.c'
--- a/src/window.c      2012-04-11 02:36:04 +0000
+++ b/src/window.c      2012-04-27 03:10:38 +0000
@@ -4221,6 +4221,11 @@
   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

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2012-04-26 10:49:29 +0000
+++ b/src/xdisp.c       2012-04-27 03:10:38 +0000
@@ -1275,6 +1275,11 @@
     }
 
   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))

=== modified file 'src/xselect.c'
--- a/src/xselect.c     2012-02-25 03:01:11 +0000
+++ b/src/xselect.c     2012-04-24 02:58:26 +0000
@@ -931,6 +931,7 @@
 
   /* 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;


reply via email to

[Prev in Thread] Current Thread [Next in Thread]