changeset 107978:c168d4537385

Merge from emacs-23
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 19 Apr 2010 11:07:52 -0400
parents b211643f088b (current diff) 17966fd41dcf (diff)
children bb75dfb8839a
files .bzrignore doc/emacs/ChangeLog doc/emacs/ack.texi doc/emacs/emacs.texi doc/lispref/ChangeLog doc/misc/ChangeLog doc/misc/gnus.texi etc/ChangeLog etc/NEWS.23 leim/ChangeLog lib-src/ChangeLog lisp/ChangeLog lisp/gnus/ChangeLog lisp/gnus/nnir.el lisp/help.el lisp/ido.el lisp/info.el lisp/minibuffer.el lisp/vc-git.el lisp/vc-hg.el src/ChangeLog src/dired.c src/frame.h src/s/darwin.h
diffstat 49 files changed, 742 insertions(+), 224 deletions(-) [+]
line wrap: on
line diff
--- a/.bzrignore	Mon Apr 19 10:34:01 2010 -0400
+++ b/.bzrignore	Mon Apr 19 11:07:52 2010 -0400
@@ -10,6 +10,7 @@
 oo
 oo-spd
 autom4te.cache
+*.dSYM
 *.elc
 *.exe
 DOC
@@ -48,6 +49,7 @@
 lisp/cus-load.el
 lisp/eshell/esh-groups.el
 lisp/finder-inf.el
+nextstep/Emacs.app
 nt/config.log
 src/buildobj.h
 src/config.h
--- a/admin/notes/bugtracker	Mon Apr 19 10:34:01 2010 -0400
+++ b/admin/notes/bugtracker	Mon Apr 19 11:07:52 2010 -0400
@@ -4,7 +4,7 @@
 
 * Quick-start guide
 
-This is 95% of all you will ever need.
+This is 95% of all you will ever need to know.
 
 ** How do I report a bug?
 Use M-x report-emacs-bug, or send mail to bug-gnu-emacs@gnu.org.
@@ -34,8 +34,12 @@
 
 For a list of all bugs, see http://debbugs.gnu.org/db/pa/lemacs.html
 This is a static page, updated once a day.  There is also a dynamic
-list, generated on request, but since there are many bug reports this
-is slow and not recommended.
+list, generated on request. This accepts various options, eg to see
+the most recent bugs:
+
+http://debbugs.gnu.org/cgi/pkgreport.cgi?newest=100
+
+Or follow the links on the front page http://debbugs.gnu.org .
 
 ** How do I report a bug in Emacs now?
 The same way as you always did.  Send mail to bug-gnu-emacs@gnu.org,
@@ -92,6 +96,9 @@
 in the subsequent discussion will end up creating a new bug.
 This is annoying.
 
+(So annoying that a form of message-id tracking has been implemented
+to hopefully stop this happening, but it is still better to use X-Debbugs-CC.)
+
 If a new report contains X-Debbugs-CC in the input, this is
 converted to a real Cc header in the output.  (See Bug#1720).
 It is also merged into the Resent-CC header (see below).
@@ -191,8 +198,7 @@
 Version: 23.0.60
 Severity: minor
 
-Optionally, add a sub-package, eg Package: emacs,calendar.
-This can include tags.  Some things (e.g. submitter) don't seem to
+This can also include tags.  Some things (e.g. submitter) don't seem to
 work here.
 
 Otherwise, send mail to the control server, control@debbugs.gnu.org.
@@ -229,7 +235,7 @@
 
 123             # given bug number
 123;mbox=yes    # mbox version of given bug
-package         # bugs in given package    (don't use "emacs" - too many bugs!)
+package         # bugs in given package
 from:submitter@email.address
 severity:severity      # all bugs of given severity
 tag:tag                # all bugs with given tag
@@ -281,6 +287,9 @@
 search box.  The only piece you really need to add is the "users"
 portion, the rest has the same syntax as normal.
 
+**** To browse bugs by usertag:
+http://debbugs.gnu.org/cgi/pkgindex.cgi?indexon=users
+
 **** To find all bugs usertagged by a given email address:
 
 http://debbugs.gnu.org/cgi/pkgreport.cgi?users=bug-gnu-emacs@gnu.org
@@ -359,7 +368,7 @@
 notfixed 123 23.0.60
 
 *** To assign or reassign a bug to a package or list of packages:
-reassign 1234 emacs,cc-mode
+reassign 1234 emacs
 
 ** To remove spam from the tracker, move it to the `spam' pseudo-package:
 reassign 123 spam
--- a/doc/emacs/ChangeLog	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/emacs/ChangeLog	Mon Apr 19 11:07:52 2010 -0400
@@ -1,3 +1,42 @@
+2010-04-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* programs.texi (Semantic): New node.
+
+	* maintaining.texi (EDE): New node.
+
+	* emacs.texi: Update node listing.
+
+	* misc.texi (Gnus): Use the `C-h i' keybinding for info.
+
+2010-04-18  Glenn Morris  <rgm@gnu.org>
+
+	* emacs.texi (Acknowledgments): Remove duplicate.
+
+	* maintaining.texi (VC Directory Commands): Mention stashes and shelves.
+
+2010-04-18  Glenn Morris  <rgm@gnu.org>
+
+	* dired.texi (Misc Dired Features): Mention VC diff and log.
+	* maintaining.texi (Old Revisions, VC Change Log):
+	Mention that diff and log work in Dired buffers.
+
+	* help.texi (Help Summary): Mention M-x info-finder.
+
+	* ack.texi (Acknowledgments): Add mpc.el.
+
+	* custom.texi (Specifying File Variables, Directory Variables):
+	Document new commands for manipulating local variable lists.
+
+2010-04-18  Glenn Morris  <rgm@gnu.org>
+
+	* trouble.texi (Contributing): Add cindex entry.
+	Mention etc/CONTRIBUTE.
+
+2010-04-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* mark.texi (Persistent Mark): Copyedits.  Replace undo example with
+	query-replace (Bug#5774).
+
 2010-04-16  Glenn Morris  <rgm@gnu.org>
 
 	* ack.texi, emacs.texi (Acknowledgments): Update for Org changes.
--- a/doc/emacs/ack.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/emacs/ack.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -801,8 +801,9 @@
 @file{reveal.el}, a minor mode for automatically revealing invisible
 text; @file{smerge-mode.el}, a minor mode for resolving @code{diff3}
 conflicts; @file{diff-mode.el}, a mode for viewing and editing context
-diffs; @file{css-mode.el} for Cascading Style Sheets; and
-@file{bibtex-style.el} for BibTeX Style files.
+diffs; @file{css-mode.el} for Cascading Style Sheets;
+@file{bibtex-style.el} for BibTeX Style files; and @file{mpc.el}, a
+client for the ``Music Player Daemon''.
 
 @item
 Morioka Tomohiko wrote several packages for MIME support in Gnus and
--- a/doc/emacs/custom.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/emacs/custom.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -1,6 +1,7 @@
 @c This is part of the Emacs manual.
 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
-@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Customization, Quitting, Amusements, Top
 @chapter Customization
@@ -1086,11 +1087,22 @@
 pair with a colon and semicolon as shown above.  The special
 variable/value pair @code{mode: @var{modename};}, if present,
 specifies a major or minor mode; if you use this to specify a major
-mode, it should come first in the line.  The @var{value}s are are used
+mode, it should come first in the line.  The @var{value}s are used
 literally, and not evaluated.
 
-  Here is an example that specifies Lisp mode and sets two variables
-with numeric values:
+@findex add-file-local-variable-prop-line
+@findex delete-file-local-variable-prop-line
+@findex copy-dir-locals-to-file-locals-prop-line
+  You can use the command @code{add-file-local-variable-prop-line}
+instead of adding entries by hand.  It prompts for a variable
+and value, and adds them to the first line in the appropriate way.
+The command @code{delete-file-local-variable-prop-line} deletes a
+variable from the line.  The command
+@code{copy-dir-locals-to-file-locals-prop-line} copies directory-local
+variables (@pxref{Directory Variables}) to the first line.
+
+  Here is an example first line that specifies Lisp mode and sets two
+variables with numeric values:
 
 @smallexample
 ;; -*- mode: Lisp; fill-column: 75; comment-column: 50; -*-
@@ -1144,6 +1156,17 @@
 example above is for the C programming language, where comment lines
 start with @samp{/*} and end with @samp{*/}.
 
+@findex add-file-local-variable
+@findex delete-file-local-variable
+@findex copy-dir-locals-to-file-locals
+  You can construct the local variables list yourself, or use the
+command @code{add-file-local-variable}.  This prompts for a variable
+and value, and adds them to the list.  If necessary, it also adds the
+start and end markers.  The command @code{delete-file-local-variable}
+deletes a variable from the list.  The command
+@code{copy-dir-locals-to-file-locals} copies directory-local variables
+(@pxref{Directory Variables}) to the list.
+
   As with the @samp{-*-} line, the variables in a local variables list
 are used literally, and are not evaluated first.  If you want to split
 a long string across multiple lines of the file, you can use
@@ -1323,6 +1346,16 @@
 subdirectory of the directory where you put the @file{.dir-locals.el}
 file.
 
+@findex add-dir-local-variable
+@findex delete-dir-local-variable
+@findex copy-file-locals-to-dir-locals
+  You can edit the @file{.dir-locals.el} file by hand, or use the
+command @code{add-dir-local-variable}.  This prompts for a mode (or
+subdirectory), variable and value, and adds an entry to the file.
+The command @code{delete-dir-local-variable} deletes an entry.  The
+command @code{copy-file-locals-to-dir-locals} copies file local
+variables (@pxref{File Variables}) to the @file{.dir-locals.el} file.
+
 @findex dir-locals-set-class-variables
 @findex dir-locals-set-directory-class
   Another method of specifying directory-local variables is to explicitly
--- a/doc/emacs/dired.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/emacs/dired.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -1,6 +1,7 @@
 @c This is part of the Emacs manual.
 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
-@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Dired, Calendar/Diary, Rmail, Top
 @chapter Dired, the Directory Editor
@@ -1339,6 +1340,11 @@
 it added to the kill ring, so you can use it to display the list of
 currently marked files in the echo area.
 
+@cindex Dired and version control
+  If the directory you are visiting is under version control
+(@pxref{Version Control}), then the normal VC diff and log commands
+will operate on the selected files.
+
 @findex dired-compare-directories
   The command @kbd{M-x dired-compare-directories} is used to compare
 the current Dired buffer with another directory.  It marks all the files
--- a/doc/emacs/emacs.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/emacs/emacs.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -649,6 +649,7 @@
 * Hideshow::            Displaying blocks selectively.
 * Symbol Completion::   Completion on symbol names of your program or language.
 * Glasses::             Making identifiersLikeThis more readable.
+* Semantic::            Suite of editing tools based on source code parsing.
 * Misc for Programs::   Other Emacs features useful for editing programs.
 * C Modes::             Special commands of C, C++, Objective-C,
                           Java, and Pike modes.
@@ -763,6 +764,7 @@
 * Change Log::	        Maintaining a change history for your program.
 * Tags::	        Go directly to any function in your program in one
 			  command.  Tags remembers which file it is in.
+* EDE::                 An integrated development environment for Emacs.
 * Emerge::              A convenient way of merging two versions of a program.
 
 Version Control
--- a/doc/emacs/help.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/emacs/help.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -133,7 +133,9 @@
 @item C-h n
 Display news of recent Emacs changes (@code{view-emacs-news}).
 @item C-h p
-Find packages by topic keyword (@code{finder-by-keyword}).
+Find packages by topic keyword (@code{finder-by-keyword}).  For an
+alternative interface to the same information, try the @code{info-finder}
+command.
 @item C-h r
 Display the Emacs manual in Info (@code{info-emacs-manual}).
 @item C-h s
--- a/doc/emacs/maintaining.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/emacs/maintaining.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -14,6 +14,7 @@
 * Change Log::	        Maintaining a change history for your program.
 * Tags::	        Go directly to any function in your program in one
 			  command.  Tags remembers which file it is in.
+* EDE::                 An integrated development environment for Emacs.
 @ifnottex
 * Emerge::              A convenient way of merging two versions of a program.
 @end ifnottex
@@ -653,7 +654,8 @@
 @item C-x v =
 Compare the files in the current fileset with the working revision(s)
 you started from (@code{vc-diff}).  With a prefix argument, prompt for
-two revisions of the current fileset and compare them.
+two revisions of the current fileset and compare them.  You can call
+this command from a Dired buffer (@pxref{Dired}).
 
 @item C-x v D
 Compare the entire tree corresponding to the current fileset with the
@@ -895,6 +897,7 @@
 Buffer}.)  Point is centered at the revision of the file currently
 being visited.  With a prefix argument, the command prompts for the
 revision to center on, and the maximum number of revisions to display.
+You can call this command from a Dired buffer (@pxref{Dired}).
 
 @findex vc-print-root-log
   Type @kbd{C-x v L} (@code{vc-print-root-log}) to display a
@@ -1145,9 +1148,14 @@
 
   @kbd{M-s a C-M-s} does an incremental search on the marked files.
 
-  Commands are also accessible from the VC-dir menu.  Note that some VC
-backends use the VC-dir menu to make available extra backend specific
-commands.
+@cindex stashes in version control
+@cindex shelves in version control
+  Commands are also accessible from the VC-dir menu.  Note that some
+VC backends use the VC-dir menu to make available extra,
+backend-specific, commands.  For example, Git and Bazaar allow you to
+manipulate @dfn{stashes} and @dfn{shelves}.  (These provide a
+mechanism to temporarily store uncommitted changes somewhere out of
+the way, and bring them back at a later time.)
 
   Normal VC commands with the @kbd{C-x v} prefix work in VC directory
 buffers.  Some single-key shortcuts are available as well; @kbd{=},
@@ -2260,6 +2268,69 @@
 @include emerge-xtra.texi
 @end ifnottex
 
+@node EDE
+@section Emacs Development Environment
+@cindex EDE (Emacs Development Environment)
+@cindex Emacs Development Environment
+@cindex Integrated development environment
+
+EDE (@dfn{Emacs Development Environment}) is a package that simplifies
+the task of creating, building, and debugging large programs with
+Emacs.  It provides some of the features of an IDE, or @dfn{Integrated
+Development Environment}, in Emacs.
+
+This section provides a brief description of EDE usage.
+@ifnottex
+For full details, see @ref{Top, EDE,, ede, Emacs Development Environment}.
+@end ifnottex
+@iftex
+For full details on Ede, type @kbd{C-h i} and then select the EDE
+manual.
+@end iftex
+
+  EDE is implemented as a global minor mode (@pxref{Minor Modes}).  To
+enable it, type @kbd{M-x global-ede-mode} or click on the
+@samp{Project Support (EDE)} item in the @samp{Tools} menu.  You can
+also enable EDE each time you start Emacs, by adding the following
+line to your initialization file:
+
+@smallexample
+(global-ede-mode t)
+@end smallexample
+
+@noindent
+Activating EDE adds a menu named @samp{Development} to the menu bar.
+Many EDE commands, including the ones described below, can be invoked
+from this menu.
+
+  EDE organizes files into @dfn{projects}, which correspond to
+directory trees.  The @dfn{project root} is the topmost directory of a
+project.  To define a new project, visit a file in the desired project
+root and type @kbd{M-x ede-new}.  This command prompts for a
+@dfn{project type}, which refers to the underlying method that EDE
+will use to manage the project (@pxref{Creating a Project, EDE,, ede,
+Emacs Development Environment}).  The most common project types are
+@samp{Make}, which uses Makefiles, and @samp{Automake}, which uses GNU
+Automake (@pxref{Top, Automake,, automake, Automake}).  In both cases,
+EDE also creates a file named @file{Project.ede}, which stores
+information about the project.
+
+  A project may contain one or more @dfn{targets}.  A target can be an
+object file, executable program, or some other type of file, which is
+``built'' from one or more of the files in the project.
+
+  To add a new @dfn{target} to a project, type @kbd{C-c . t}
+(@code{M-x ede-new-target}).  This command also asks if you wish to
+``add'' the current file to that target, which means that the target
+is to be built from that file.  After you have defined a target, you
+can add more files to it by typing @kbd{C-c . a}
+(@code{ede-add-file}).
+
+  To build a target, type @kbd{C-c . c} (@code{ede-compile-target}).
+To build all the targets in the project, type @kbd{C-c . C}
+(@code{ede-compile-project}).  EDE uses the file types to guess how
+the target should be built.
+
 @ignore
    arch-tag: b9d83dfb-82ea-4ff6-bab5-05a3617091fb
 @end ignore
--- a/doc/emacs/mark.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/emacs/mark.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -387,10 +387,10 @@
 
 @findex transient-mark-mode
   To turn off Transient Mark mode, type @kbd{M-x transient-mark-mode}.
-This command toggles the mode; you can use the same command to turn
-Transient Mark mode on again.  You can also turn off Transient Mark
-mode using the menu bar: in the @samp{Options} menu, toggle the
-@samp{Active Region Highlighting} menu item.
+This command toggles the mode; you can use the same command to turn it
+on again.  You can also toggle Transient Mark mode using the
+@samp{Active Region Highlighting} menu item in the @samp{Options}
+menu.
 
   Here are the details of how Emacs behaves when Transient Mark mode
 is off:
@@ -415,13 +415,12 @@
 @kbd{C-s}, first set the mark where point was.
 
 @item
-Some commands, which ordinarily operate on the region when the mark is
-active, instead act on the entire buffer.  For instance, @kbd{C-x u}
-normally reverses changes within the region if the mark is active;
-when Transient Mark mode is off, it acts on the entire buffer.
-However, you can type @kbd{C-u C-x u} to make it operate on the
-region.  @xref{Undo}.  Other commands that act this way are identified
-in their own documentation.
+Some commands, which ordinarily act on the region when the mark is
+active, no longer do so.  For example, normally @kbd{M-%}
+(@code{query-replace}) performs replacements within the region, if the
+mark is active.  When Transient Mark mode is off, it always operates
+from point to the end of the buffer.  Commands that act this way are
+identified in their own documentation.
 @end itemize
 
   While Transient Mark mode is off, you can activate it temporarily
@@ -437,9 +436,9 @@
 
 @item C-u C-x C-x
 @kindex C-u C-x C-x
-Activate the mark without changing it; enable Transient Mark mode just
-once, until the mark is deactivated.  (This is the @kbd{C-x C-x}
-command, @code{exchange-point-and-mark}, with a prefix argument.)
+Activate the mark and enable Transient Mark mode temporarily, until
+the mark is next deactivated.  (This is the @kbd{C-x C-x} command,
+@code{exchange-point-and-mark}, with a prefix argument.)
 @end table
 
   These commands set or activate the mark, and enable Transient Mark
--- a/doc/emacs/misc.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/emacs/misc.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -203,7 +203,7 @@
 For full details, see @ref{Top, Gnus,, gnus, The Gnus Manual}.
 @end ifnottex
 @iftex
-For full details on Gnus, type @kbd{M-x info} and then select the Gnus
+For full details on Gnus, type @kbd{C-h i} and then select the Gnus
 manual.
 @end iftex
 
--- a/doc/emacs/programs.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/emacs/programs.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -39,6 +39,7 @@
 * Hideshow::            Displaying blocks selectively.
 * Symbol Completion::   Completion on symbol names of your program or language.
 * Glasses::             Making identifiersLikeThis more readable.
+* Semantic::            Suite of editing tools based on source code parsing.
 * Misc for Programs::   Other Emacs features useful for editing programs.
 * C Modes::             Special commands of C, C++, Objective-C,
                           Java, and Pike modes.
@@ -1387,6 +1388,73 @@
 of the programming language major modes in which you normally want
 to use Glasses mode.
 
+@node Semantic
+@section Semantic
+@cindex Semantic package
+
+Semantic is a package that provides language-aware editing commands
+based on @code{source code parsers}.  This section provides a brief
+description of Semantic;
+@ifnottex
+for full details, see @ref{Top, Semantic,, semantic, Semantic}.
+@end ifnottex
+@iftex
+for full details, type @kbd{C-h i} (@code{info}) and then select the
+Semantic manual.
+@end iftex
+
+  Most of the ``language aware'' features in Emacs, such as font lock
+(@pxref{Font Lock}), rely on ``rules of thumb''@footnote{Regular
+expressions and syntax tables.} that usually give good results but are
+never completely exact.  In contrast, the parsers used by Semantic
+have an exact understanding of programming language syntax.  This
+allows Semantic to provide search, navigation, and completion commands
+that are powerful and precise.
+
+  To begin using Semantic, type @kbd{M-x semantic-mode} or click on
+the menu item named @samp{Source Code Parsers (Semantic)} in the
+@samp{Tools} menu.  This enables Semantic mode, a global minor mode.
+
+   When Semantic mode is enabled, Emacs automatically attempts to
+parses each file you visit.  Currently, Semantic understands C, C++,
+Scheme, Javascript, Java, HTML, and Make.  Within each parsed buffer,
+the following commands are available:
+
+@table @kbd
+@item C-c , j
+@kindex C-c , j
+Prompt for the name of a function defined in the current file, and
+move point there (@code{semantic-complete-jump-local}).
+
+@item C-c , J
+@kindex C-c , J
+Prompt for the name of a function defined in any file Emacs has
+parsed, and move point there (@code{semantic-complete-jump}).
+
+@item C-c , @key{SPC}
+@kindex C-c , @key{SPC}
+Display a list of possible completions for the symbol at point
+(@code{semantic-complete-analyze-inline}).  This also activates a set
+of special keybindings for choosing a completion: @key{RET} accepts
+the current completion, @kbd{M-n} and @kbd{M-p} cycle through possible
+completions, @key{TAB} completes as far as possible and then cycles,
+and @kbd{C-g} or any other key aborts completion.
+
+@item C-c , l
+@kindex C-c , l
+Display a list of the possible completions of the symbol at point, in
+another window (@code{semantic-analyze-possible-completions}).
+@end table
+
+@noindent
+In addition to the above commands, the Semantic package provides a
+variety of other ways to make use of parser information.  For
+instance, you can use it to display a list of completions when Emacs
+is idle.
+@ifnottex
+@xref{Top, Semantic,, semantic, Semantic}, for details.
+@end ifnottex
+
 @node Misc for Programs
 @section Other Features Useful for Editing Programs
 
--- a/doc/emacs/trouble.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/emacs/trouble.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -1008,6 +1008,7 @@
 
 @node Contributing, Service, Bugs, Top
 @section Contributing to Emacs Development
+@cindex contributing to Emacs
 
 If you would like to help pretest Emacs releases to assure they work
 well, or if you would like to work on improving Emacs, please contact
@@ -1027,6 +1028,9 @@
 See the Emacs project page
 @url{http://savannah.gnu.org/projects/emacs/} for details.
 
+For more information on how to contribute, see the @file{etc/CONTRIBUTE}
+file in the Emacs distribution.
+
 @node Service, Copying, Contributing, Top
 @section How To Get Help with GNU Emacs
 
--- a/doc/lispref/ChangeLog	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/lispref/ChangeLog	Mon Apr 19 11:07:52 2010 -0400
@@ -1,3 +1,17 @@
+2010-04-14  Juri Linkov  <juri@jurta.org>
+
+	Fix @deffn without category.
+
+	* abbrevs.texi (Abbrev Expansion): Replace @deffn with @defun
+	for `abbrev-insert'.
+
+	* buffers.texi (Indirect Buffers): Add category `Command'
+	to @deffn of `clone-indirect-buffer'.
+
+	* windows.texi (Cyclic Window Ordering): Replace @deffn with @defun
+	for `next-window' and `previous-window'.  Add category `Command'
+	to @deffn of `pop-to-buffer'.
+
 2010-04-01  Chong Yidong  <cyd@stupidchicken.com>
 
 	* nonascii.texi (Text Representations): Don't mark
--- a/doc/lispref/abbrevs.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/lispref/abbrevs.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -281,7 +281,7 @@
 returns @code{nil} even though expansion did occur.
 @end deffn
 
-@deffn abbrev-insert abbrev &optional name start end
+@defun abbrev-insert abbrev &optional name start end
 This function inserts the abbrev expansion of @code{abbrev}, replacing
 the text between @code{start} and @code{end}.  If @code{start} is
 omitted, it defaults to point.  @code{name}, if non-@code{nil}, should
@@ -289,7 +289,7 @@
 figure out whether to adjust the capitalization of the expansion.  The
 function returns @code{abbrev} if the abbrev was successfully
 inserted.
-@end deffn
+@end defun
 
 @deffn Command abbrev-prefix-mark &optional arg
 This command marks the current location of point as the beginning of
--- a/doc/lispref/buffers.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/lispref/buffers.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -1135,7 +1135,7 @@
 buffer, not from @var{base-buffer}.
 @end deffn
 
-@deffn clone-indirect-buffer newname display-flag &optional norecord
+@deffn Command clone-indirect-buffer newname display-flag &optional norecord
 This function creates and returns a new indirect buffer that shares
 the current buffer's base buffer and copies the rest of the current
 buffer's attributes.  (If the current buffer is not indirect, it is
--- a/doc/lispref/windows.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/lispref/windows.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -525,7 +525,7 @@
 In general, within each set of siblings at any level in the window tree
 (@pxref{Window Tree}), the order is left to right, or top to bottom.
 
-@deffn next-window &optional window minibuf all-frames
+@defun next-window &optional window minibuf all-frames
 @cindex minibuffer window, and @code{next-window}
 This function returns the window following @var{window} in the cyclic
 ordering of windows.  This is the window @kbd{C-x o} selects if typed
@@ -588,13 +588,13 @@
      @result{} #<window 56 on windows.texi>
 @end group
 @end example
-@end deffn
-
-@deffn previous-window &optional window minibuf all-frames
+@end defun
+
+@defun previous-window &optional window minibuf all-frames
 This function returns the window preceding @var{window} in the cyclic
 ordering of windows.  The other arguments specify which windows to
 include in the cycle, as in @code{next-window}.
-@end deffn
+@end defun
 
 @deffn Command other-window count &optional all-frames
 This function selects another window in the cyclic ordering of windows.
@@ -827,7 +827,7 @@
 unless @var{norecord} is non-@code{nil}.
 @end deffn
 
-@deffn pop-to-buffer buffer-or-name &optional other-window norecord
+@deffn Command pop-to-buffer buffer-or-name &optional other-window norecord
 This command makes @var{buffer-or-name} the current buffer and switches
 to it in some window, preferably not the window previously selected.
 The ``popped-to'' window becomes the selected window.  Its frame is
--- a/doc/misc/ChangeLog	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/misc/ChangeLog	Mon Apr 19 11:07:52 2010 -0400
@@ -1,3 +1,20 @@
+2010-04-18  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* gnus.texi (Gnus Versions, Oort Gnus): Mention the Git repo instead of
+	the CVS repo.  Put the Git repo in the news section.
+
+	* gnus-coding.texi (Gnus Maintainance Guide): Fix title typo.
+	Removed some mentions of CVS.  Mention the new Git repo.
+
+2010-04-18  Andreas Seltenreich  <seltenreich@gmx.de>
+
+	* gnus.texi (Score File Format): Fix typo.  Reported by Štěpán Němec.
+	(Mail Group Commands): Add index entry.
+
+2010-04-18  Glenn Morris  <rgm@gnu.org>
+
+	* info.texi (Search Index): Mention Emacs's Info-virtual-index.
+
 2010-04-18  Jay Belanger  <jay.p.belanger@gmail.com>
 
 	* calc.texi (Radix modes): Mention that the option prefix will
@@ -7,11 +24,10 @@
 2010-04-15  Carsten Dominik  <carsten.dominik@gmail.com>
 
 	* org.texi (LaTeX and PDF export): Add a footnote about xetex.
-	(LaTeX/PDF export commands): Section renamed and
-	moved.
+	(LaTeX/PDF export commands): Rename and Move section.
 	(Sectioning structure): Update.
 	(References): New use case for field coordinates.
-	(The export dispatcher): Renamed from ASCII export.
+	(The export dispatcher): Rename from ASCII export.
 	(Setting up the staging area): Document the availability of
 	encryption for MobileOrg.
 	(Images and tables): Document how to reference labels.
@@ -44,12 +60,10 @@
 	scheduling and deadline commands.
 	(Search view): Point to the docstring of
 	`org-search-view' for more details.
-	(Agenda commands): Document that `>' prompts for a
-	date.
+	(Agenda commands): Document that `>' prompts for a date.
 	(Setting tags): Document variable
 	org-complete-tags-always-offer-all-agenda-tags.
-	(Column attributes): Cross-reference special
-	properties.
+	(Column attributes): Cross-reference special properties.
 
 2010-04-10  Michael Albinus  <michael.albinus@gmx.de>
 
--- a/doc/misc/gnus-coding.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/misc/gnus-coding.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -32,16 +32,16 @@
 
 
 @titlepage
-@title Gnus Coding Style and Maintainance Guide
+@title Gnus Coding Style and Maintenance Guide
 
 @author by Reiner Steib  <Reiner.Steib@@gmx.de>
 
 @insertcopying
 @end titlepage
 
-@c Obviously this is only a very rudimentary draft.  We put it in CVS
-@c anyway hoping that it might annoy someone enough to fix it.  ;-)
-@c Fixing only a paragraph also is appreciated.
+@c Obviously this is only a very rudimentary draft.  We put it in the
+@c repository anyway hoping that it might annoy someone enough to fix
+@c it.  ;-) Fixing only a paragraph also is appreciated.
 
 @ifnottex
 @node Top
@@ -255,15 +255,17 @@
 
 @section Stable and development versions
 
-The development of Gnus normally is done on the CVS trunk, i.e. there
-are no separate branches to develop and test new features.  Most of the
-time, the trunk is developed quite actively with more or less daily
-changes.  Only after a new major release, e.g. 5.10.1, there's usually a
-feature period of several months.  After the release of Gnus 5.10.6 the
-development of new features started again on the trunk while the 5.10
-series is continued on the stable branch (v5-10) from which more stable
-releases will be done when needed (5.10.8, @dots{}).
-@ref{Gnus Development, ,Gnus Development, gnus, The Gnus Newsreader}
+The development of Gnus normally is done on the Git repository trunk
+as of April 19, 2010 (formerly it was done in CVS; the repository is
+at http://git.gnus.org), i.e. there are no separate branches to
+develop and test new features.  Most of the time, the trunk is
+developed quite actively with more or less daily changes.  Only after
+a new major release, e.g. 5.10.1, there's usually a feature period of
+several months.  After the release of Gnus 5.10.6 the development of
+new features started again on the trunk while the 5.10 series is
+continued on the stable branch (v5-10) from which more stable releases
+will be done when needed (5.10.8, @dots{}).  @ref{Gnus Development,
+,Gnus Development, gnus, The Gnus Newsreader}
 
 Stable releases of Gnus finally become part of Emacs.  E.g. Gnus 5.8
 became a part of Emacs 21 (relabeled to Gnus 5.9).  The 5.10 series 
@@ -333,8 +335,12 @@
 
 @item
 For general Gnus development changes, of course you just make the
-change on the Gnus CVS trunk and it goes into Emacs a few years
+change on the Gnus Git trunk and it goes into Emacs a few years
 later... :-)
+
+With the new Git repository, we'll probably set up something to
+automatically synchronize with Emacs when possible.  CVS was much less
+powerful for this kind of synchronization.
 @end itemize
 
 Of course in any case, if you just can't wait for me to sync your
--- a/doc/misc/gnus.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/misc/gnus.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -11331,6 +11331,7 @@
 
 @item B DEL
 @kindex B DEL (Summary)
+@cindex deleting mail
 @findex gnus-summary-delete-article
 @c @icon{gnus-summary-mail-delete}
 Delete the mail article.  This is ``delete'' as in ``delete it from your
@@ -21843,7 +21844,7 @@
 
 When you enter the group the first time, you will only see the new
 threads.  You then raise the score of the threads that you find
-interesting (with @kbd{I T} or @kbd{I S}), and ignore (@kbd{C y}) the
+interesting (with @kbd{I T} or @kbd{I S}), and ignore (@kbd{c y}) the
 rest.  Next time you enter the group, you will see new articles in the
 interesting threads, plus any new threads.
 
@@ -27111,6 +27112,10 @@
 
 On the January 4th 2004, No Gnus was begun.
 
+On April 19, 2010 Gnus development was moved to Git.  See
+http://git.gnus.org for details (http://www.gnus.org will be updated
+with the information when possible).
+
 If you happen upon a version of Gnus that has a prefixed name --
 ``(ding) Gnus'', ``September Gnus'', ``Red Gnus'', ``Quassia Gnus'',
 ``Pterodactyl Gnus'', ``Oort Gnus'', ``No Gnus'' -- don't panic.
@@ -28507,7 +28512,7 @@
 hierarchy.
 
 @c FIXME: `gnus-load' is mentioned in README, which is not included in
-@c CVS.  We should find a better place for this item.
+@c the repository.  We should find a better place for this item.
 @item
 @code{(require 'gnus-load)}
 
--- a/doc/misc/info.texi	Mon Apr 19 10:34:01 2010 -0400
+++ b/doc/misc/info.texi	Mon Apr 19 11:07:52 2010 -0400
@@ -15,7 +15,8 @@
 documentation system.
 
 Copyright @copyright{} 1989, 1992, 1996, 1997, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -1050,6 +1051,13 @@
 want to read the description of what the @kbd{C-l} key does, type
 @kbd{iC-l@key{RET}} literally.
 
+@findex Info-virtual-index
+@kindex I @r{(Info mode)}
+Emacs provides the command @code{Info-virtual-index}, bound to the
+@kbd{I} key.  This behaves like @kbd{i}, but constructs a virtual
+info node displaying the results of an index search, making it easier
+to select the one you want.
+
 @findex info-apropos
 @findex index-apropos
 If you aren't sure which manual documents the topic you are looking
--- a/etc/ChangeLog	Mon Apr 19 10:34:01 2010 -0400
+++ b/etc/ChangeLog	Mon Apr 19 11:07:52 2010 -0400
@@ -1,3 +1,7 @@
+2010-04-18  Francesc Rocher  <rocher@member.fsf.org>
+
+	* MORE.STUFF: Add a new entry for QWE.
+
 2010-04-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* HELLO (Mathematics): Prefer Unicode charset.
--- a/etc/MORE.STUFF	Mon Apr 19 10:34:01 2010 -0400
+++ b/etc/MORE.STUFF	Mon Apr 19 11:07:52 2010 -0400
@@ -215,6 +215,10 @@
  * Quack: <URL:http://www.neilvandyke.org/quack/>
    Quack enhances Emacs support for Scheme.
 
+ * QWE: <URL:http://www.nongnu.org/qwe/>
+   QWE's not WEB for Emacs is a quasi-WYSIWYG literate programming system for
+   Emacs that can be used with almost every programming language.
+
  * Session: <URL:http://emacs-session.sourceforge.net/>
    Session Management for Emacs.
 
--- a/etc/NEWS.23	Mon Apr 19 10:34:01 2010 -0400
+++ b/etc/NEWS.23	Mon Apr 19 11:07:52 2010 -0400
@@ -24,6 +24,7 @@
 
 * Installation Changes in Emacs 23.2
 
+---
 ** New configure options for Emacs developers
 These are not new features; only the configure flags are new.
 ---
@@ -36,8 +37,10 @@
 ** `make install' now consistently ignores umask, creating a
 world-readable install.
 
++++
 ** Emacs compiles with Gconf support, if it is detected.
 Use the configure option --without-gconf to disable this.
+This is used by the `font-use-system-font' feature (see below).
 
 * Startup Changes in Emacs 23.2
 +++
@@ -95,12 +98,14 @@
 unconditionally.  The previous behavior, toggling the mode, was
 neither reliable nor generally desirable.
 
-*** New commands for adding and removing file-local variables:
++++
+*** There are new commands for adding and removing file-local variables:
 `add-file-local-variable', `delete-file-local-variable',
 `add-file-local-variable-prop-line', and
 `delete-file-local-variable-prop-line'.
 
-*** New commands for adding and removing directory-local variables,
++++
+*** There are new commands for adding and removing directory-local variables,
 and copying them to and from file-local variable lists:
 `add-dir-local-variable', `delete-dir-local-variable',
 `copy-dir-locals-to-file-locals',
@@ -181,15 +186,18 @@
 
 * Changes in Specialized Modes and Packages in Emacs 23.2
 
+---
 ** The bookmark menu has a narrowing search via bookmark-bmenu-search.
 
 ** LaTeX mode now provides completion (via completion-at-point).
 
 ---
-** sym-comp.el is now declared obsolete, superceded by completion-at-point.
-
+** sym-comp.el is now declared obsolete, superseded by completion-at-point.
+
+---
 ** lucid.el and levents.el are now declared obsolete.
 
+---
 ** pcomplete provides a new command `pcomplete-std-completion' which
 is similar to `pcomplete' but using the standard completion UI code.
 
@@ -233,9 +241,9 @@
 
 ** GDB-UI
 
++++
 *** Toolbar functionality for reverse debugging.  Display of STL
-collections as watch expressions.  These features require GDB 7.0
-or later.
+collections as watch expressions.  These features require GDB 7.0 or later.
 
 ** Grep
 +++
@@ -243,9 +251,11 @@
 
 ** Info
 
++++
 *** The new command `Info-virtual-index' bound to "I" displays a menu of
 matched topics found in the index.
 
++++
 *** The new command `info-finder' replaces finder.el with a virtual Info
 manual that generates an Info file which gives the same information
 through a menu structure.
@@ -325,22 +335,25 @@
 backends do not support this.
 ---
 *** When a file is not found, VC will not try to check it out of RCS anymore.
-
++++
 *** Diff and log operations can be used from Dired buffers.
 
 *** vc-git changes
 
-**** The short log format for git makes use of the graph display, so
-it's not supported on git versions earlier than 1.5.
-
-**** Support for operating with stashes has been added to vc-dir: the stash list is
-displayed in the *vc-dir* header, stashes can be created, removed, applied and
-their content displayed.
-
-**** vc-dir displays the stash status
-
-**** vc-dir requires at least git-1.5.5.
-
+---
+**** The short log format for git makes use of the graph display,
+so it's not supported on git versions earlier than 1.5.6.
+
+---
+**** vc-dir uses the --relative option of git, and so requires at least
+git version 1.5.5.
+
++++
+**** Support for operating with stashes has been added to vc-dir:
+the stash list is displayed in the *vc-dir* header, stashes can be
+created, removed, applied and their content displayed.
+
++++
 *** vc-bzr supports operating with shelves: the shelve list is
 displayed in the *vc-dir* header, shelves can be created, removed and applied.
 ---
@@ -383,7 +396,7 @@
 That means, they change `default-directory' to the new users value,
 and let commands run under that user permissions.  It works even when
 `default-directory' is already remote.  Calling the external commands
-is possible by `*su' or `*sudo', repectively.
+is possible by `*su' or `*sudo', respectively.
 ---
 *** When running in a new enough xterm (newer than version 242), Emacs
 asks xterm what the background color is and it sets up faces
@@ -397,6 +410,7 @@
 This is a collection of packages to aid with using Emacs as an IDE
 (integrated development environment):
 
++++
 *** The Semantic package allows the use of parsers to intelligently
 edit and navigate source code.  Parsers for C/C++, Java, Javascript,
 and several other languages are included by default, and Semantic can
@@ -405,6 +419,7 @@
 To enable Semantic, use the global minor mode `semantic-mode'.
 See the Semantic manual for details.
 
++++
 *** EDE (Emacs Development Environment) is a package for managing code
 projects, including features such as automatic Makefile generation.
 
@@ -415,9 +430,11 @@
 code.  It is currently used by some parts of Semantic and EDE; in the
 future, it may be used for code generation features.
 
++++
 *** The EIEIO library implements a subset of the Common Lisp Object
 System (CLOS).  It is used by the other CEDET packages.
 
+---
 ** mpc.el is a front end for the Music Player Daemon.  Run it with M-x mpc.
 
 ** htmlfontify.el turns a fontified Emacs buffer into an HTML page.
@@ -425,6 +442,7 @@
 +++
 ** js.el is a new major mode for JavaScript files.
 
+---
 ** imap-hash.el is a new library to address IMAP mailboxes as hashtables.
 
 
@@ -452,16 +470,17 @@
 ** Support for generating Emacs 18 compatible bytecode (by setting
 the variable `byte-compile-compatibility') has been removed.
 
-** In image-mode.el `image-mode-maybe' is obsolete.  Instead, you can
-either use `image-mode' that displays an image file as the actual image
-inititally, or `image-mode-as-text' when you want to display an image file
-as text inititally.  `image-mode-as-text' is a combination of a non-image
-mode from `auto-mode-alist' (or Fundamental mode) and `image-minor-mode'.
-`image-minor-mode' provides `C-c C-c' key binding to toggle image display.
+---
+** In image-mode.el `image-mode-maybe' is obsolete.
+Instead, you can either use `image-mode' (which displays an image file
+as the actual image initially), or `image-mode-as-text' (when you want
+to display an image file as text initially).  `image-mode-as-text' is a
+combination of a non-image mode from `auto-mode-alist' (or Fundamental
+mode) and `image-minor-mode'.  `image-minor-mode' provides a `C-c C-c'
+key binding to toggle image display.
 `image-toggle-display-text' removes image properties.
 `image-toggle-display-image' adds image properties.
-`image-toggle-display' toggles between `image-mode-as-text' and
-`image-mode'.
+`image-toggle-display' toggles between `image-mode-as-text' and `image-mode'.
 
 
 * Lisp changes in Emacs 23.2
--- a/leim/ChangeLog	Mon Apr 19 10:34:01 2010 -0400
+++ b/leim/ChangeLog	Mon Apr 19 11:07:52 2010 -0400
@@ -1,3 +1,7 @@
+2010-04-06  Chong Yidong  <cyd@stupidchicken.com>
+
+	* quail/vntelex.el: Fix "af" rule (Bug#5836).
+
 2010-03-27  Eli Zaretskii  <eliz@gnu.org>
 
 	* makefile.w32-in ($(TIT), $(MISC_DIC), leim-list.el): Enclose the
--- a/leim/quail/vntelex.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/leim/quail/vntelex.el	Mon Apr 19 11:07:52 2010 -0400
@@ -285,7 +285,7 @@
  ("Dd" ?,2p(B)
 ;("$$" ?$,1tK(B)	; U+20AB DONG SIGN (#### check)
 
- ("aff" ["aff"])
+ ("aff" ["af"])
  ("AFF" ["AF"])
  ("Aff" ["Af"])
  ("ass" ["as"])
--- a/lib-src/ChangeLog	Mon Apr 19 10:34:01 2010 -0400
+++ b/lib-src/ChangeLog	Mon Apr 19 11:07:52 2010 -0400
@@ -1,3 +1,9 @@
+2010-04-18  Juanma Barranquero  <lekktu@gmail.com>
+
+	Add stubs for Windows, required after CVE-2010-0825 change.
+	* ntlib.c (getgid, getegid, setegid): New stubs.
+	* ntlib.h (getgid, getegid, setegid): Declare them.
+
 2010-04-12  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* Makefile.in (ALL_CFLAGS, LINK_CFLAGS, CPP_CFLAGS): Move to the
--- a/lisp/ChangeLog	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/ChangeLog	Mon Apr 19 11:07:52 2010 -0400
@@ -1,3 +1,80 @@
+2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
+
+	* cedet/ede/pmake.el (ede-proj-makefile-insert-variables):
+	Don't destroy list before using it.
+
+2010-04-19  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	Fix the version number for added files.
+	* vc-hg.el (vc-hg-working-revision): Check if the file is
+	registered after hg parent fails (Bug#5961).
+
+2010-04-19  Glenn Morris  <rgm@gnu.org>
+
+	* htmlfontify.el (htmlfontify-buffer)
+	(htmlfontify-copy-and-link-dir): Autoload entry points.
+
+2010-04-19  Magnus Henoch  <magnus.henoch@gmail.com>
+
+	* vc-hg.el (vc-hg-annotate-extract-revision-at-line): Expand file
+	name relative to the project root (Bug#5960).
+
+2010-04-19  Glenn Morris  <rgm@gnu.org>
+
+	* vc-git.el (vc-git-print-log): Doc fix.
+
+2010-04-19  Óscar Fuentes  <ofv@wanadoo.es>
+
+	* ido.el (ido-file-internal): Fix 2009-12-02 change.
+
+2010-04-19  Christoph  <cschol2112@googlemail.com>  (tiny change)
+
+	* progmodes/grep.el (grep-compute-defaults): Fix handling of host
+	default settings (Bug#5928).
+
+2010-04-19  Glenn Morris  <rgm@gnu.org>
+
+	* progmodes/fortran.el (fortran-match-and-skip-declaration):
+	New function.
+	(fortran-font-lock-keywords-3): Use it.  (Bug#1385)
+
+2010-04-19  Kenichi Handa  <handa@m17n.org>
+
+	* language/indian.el (malayalam-composable-pattern): Fix previous
+	change (add U+0D4D "SIGN VIRAMA").
+	(oriya-composable-pattern): Add U+0B30 and fix typo in the regexp.
+	(tamil-composable-pattern): Fix typo in the regexp.
+	(telugu-composable-pattern): Fix U+0C4D and typo in the regexp.
+	(kannada-composable-pattern): Fix U+0CB0 and typo in the regexp.
+	(malayalam-composable-pattern): Fix U+0D4D and typo in the regexp.
+
+2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
+
+	* textmodes/tex-mode.el (latex-mode): Revert 2008-03-03 change to
+	paragraph-separate (Bug#5821).
+
+2010-04-19  Juri Linkov  <juri@jurta.org>
+
+	Put breadcrumbs on overlay instead of inserting to buffer (bug#5809).
+
+	* info.el (Info-find-node-2): Comment out code that skips
+	breadcrumbs line.
+	(Info-mouse-follow-link): New command.
+	(Info-link-keymap): New keymap.
+	(Info-breadcrumbs): Rename from `Info-insert-breadcrumbs'.
+	Return a string with links instead of inserting breadcrumbs
+	to the Info buffer.
+	(Info-fontify-node): Comment out code that inserts breadcrumbs.
+	Instead of putting the `invisible' text property over the Info
+	header, make an overlay over the Info header with the `invisible'
+	property and `after-string' set to the string returned by
+	`Info-breadcrumbs'.
+
+2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
+
+	* help.el (help-window-setup-finish): Doc fix (Bug#5830).
+	Reported by monkey@sandpframing.com.
+
 2010-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* tmm.el (tmm-prompt): Remove obsolete call to x-popup-menu.
@@ -359,32 +436,31 @@
 
 2010-04-07  Michael McNamara  <mac@mail.brushroad.com>
 
-        * progmodes/verilog-mode.el (verilog-forward-sexp):
+	* progmodes/verilog-mode.el (verilog-forward-sexp):
 	(verilog-calc-1): Support "disable fork" and "fork wait" multi
 	word keywords, suggested by Steve Pearlmutter.
-        (verilog-pretty-declarations): Support lineup of declarations in
+	(verilog-pretty-declarations): Support lineup of declarations in
 	port lists.
-        (verilog-skip-backward-comments, verilog-skip-forward-comment-p):
-        fix bug for /* / comments
-        (verilog-backward-syntactic-ws, verilog-forward-syntactic-ws):
+	(verilog-skip-backward-comments, verilog-skip-forward-comment-p):
+	fix bug for /* / comments
+	(verilog-backward-syntactic-ws, verilog-forward-syntactic-ws):
 	Speed up and simplfy as this is never called with a bound.
-        (verilog-pretty-declarations): Enhance to line up declarations
-        inside a parameter list, suggested by Alan Morgan.
-        (verilog-pretty-expr): Tune assignment regular expression match
-        string for corner cases; also use markers instead of character
-        number as indent changes the later.
+	(verilog-pretty-declarations): Enhance to line up declarations
+	inside a parameter list, suggested by Alan Morgan.
+	(verilog-pretty-expr): Tune assignment regular expression match
+	string for corner cases; also use markers instead of character
+	number as indent changes the later.
 
 2010-04-07  Wilson Snyder  <wsnyder@wsnyder.org>
 
-        * progmodes/verilog-mode.el (verilog-type-keywords): Fix pulldown as missing
-        keyword.
-        (verilog-read-sub-decls-line): Fix comments in AUTO_TEMPLATE
-        causing truncation of AUTOWIRE signals.  Reported by Bruce
-        Tennant.
-        (verilog-auto-inst, verilog-auto-inst-port): Add vl_mbits for
-        AUTO_TEMPLATEs needing multiple array bits.  Suggested by Bruce
-        Tennant.
-        (verilog-keywords):
+	* progmodes/verilog-mode.el (verilog-type-keywords): Fix pulldown
+	as missing keyword.
+	(verilog-read-sub-decls-line): Fix comments in AUTO_TEMPLATE
+	causing truncation of AUTOWIRE signals.  Reported by Bruce Tennant.
+	(verilog-auto-inst, verilog-auto-inst-port): Add vl_mbits for
+	AUTO_TEMPLATEs needing multiple array bits.  Suggested by Bruce
+	Tennant.
+	(verilog-keywords):
 	(verilog-1800-2005-keywords, verilog-1800-2009-keywords): Add IEEE
 	1800-2009 keywords, including "global.".
 
@@ -547,7 +623,7 @@
 
 2010-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-	Make tmm-menubar work for the Buffers menu again.
+	Make tmm-menubar work for the Buffers menu again (bug#5726).
 	* tmm.el (tmm-prompt): Also handle keymap entries in the form of
 	vectors rather than cons cells, as used in menu-bar-update-buffers.
 
@@ -1271,11 +1347,6 @@
 	* calendar/cal-hebrew.el (holiday-hebrew-passover): Fix date
 	of Yom HaAtzma'ut when it falls on a Monday (rule changed in 2004).
 
-2010-03-01  Alan Mackenzie  <acm@muc.de>
-
-	* progmodes/cc-engine.el (c-remove-stale-state-cache):
-	Correct previous patch.
-
 2010-03-01  Kenichi Handa  <handa@m17n.org>
 
 	* language/burmese.el (burmese-composable-pattern): Rename from
@@ -1287,11 +1358,6 @@
 	(otf-script-alist): Likewise.
 	(setup-default-fontset): Likewise.  Re-fix :otf spec.
 
-2010-03-01  Alan Mackenzie  <bug-cc-mode@gnu.org>
-
-	* cc-engine.el (c-remove-stale-state-cache): Take account of when
-	`good-pos' is in the same macro as `here'.  Fixes bug#5649.
-
 2010-02-28  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* menu-bar.el (menu-bar-manuals-menu): Fix typo.
@@ -1357,16 +1423,6 @@
 	* mail/sendmail.el (send-mail-function): Autoload the call
 	to custom-initialize-delay, not otherwise preserved in loaddefs.el.
 
-2010-02-25  Alan Mackenzie  <acm@muc.de>
-
-	* progmodes/cc-engine.el (c-clear-<-pair-props)
-	(c-clear->-pair-props): Correct to wipe category text props, not
-	syntax-table ones.
-
-	* progmodes/cc-mode.el (c-after-change): Remove any hard
-	syntax-table properties for <, > which, e.g., C-y has
-	inopportunely converted from category properties.
-
 2010-02-24  Chong Yidong  <cyd@stupidchicken.com>
 
 	* files.el (hack-local-variables-filter): For eval forms, also
@@ -1704,33 +1760,6 @@
 	(doc-view-pdf->png): Don't rely on doc-view-pdf/ps->png for the few
 	windows that are not yet showing images.
 
-2010-02-04  Alan Mackenzie  <acm@muc.de>
-
-	Change strategy for marking < and > as template delimiters: mark
-	them strictly in matching pairs.
-
-	* cc-mode.el (c-before-change):
-	Use c-get-state-before-change-functions.
-	(c-common-init): Adapt to use
-	c-get-state-before-change-functions (note plural).
-
-	* cc-langs.el (c-no-parens-syntax-table): New syntax table, used
-	for searching syntactically for matching <s and >s.
-	(c-get-state-before-change-functions): New language variable (note
-	the plural) which supersedes c-get-state-before-change-function.
-
-	* cc-engine.el (c-clear-<-pair-props, c-clear->-pair-props)
-	(c-clear-<>-pair-props, c-clear-<-pair-props-if-match-after)
-	(c-clear->-pair-props-if-match-before)
-	(c-before-change-check-<>-operators): New functions.
-	(c-after-change-check-<>-operators): Use macro
-	c-unmark-<->-as-paren.
-
-	* cc-defs.el (c-search-backward-char-property): New macro.
-
-	* cc-cmds.el (c-electric-lt-gt): Do not set text properties on <
-	and > any more.  (These will be handled by font locking.)
-
 2010-02-04  Michael Albinus  <michael.albinus@gmx.de>
 
 	* dired.el (dired-revert): If DIRED-DIRECTORY is a cons cell, call
--- a/lisp/cedet/ede/pmake.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/cedet/ede/pmake.el	Mon Apr 19 11:07:52 2010 -0400
@@ -425,10 +425,9 @@
 	(link (ede-proj-linkers this))
 	(name (ede-proj-makefile-target-name this))
 	(src (oref this source)))
-    (while comp
-      (ede-compiler-only-once (car comp)
-	(ede-proj-makefile-insert-variables (car comp)))
-      (setq comp (cdr comp)))
+    (dolist (obj comp)
+      (ede-compiler-only-once obj
+			      (ede-proj-makefile-insert-variables obj)))
     (ede-proj-makefile-insert-object-variables (car comp) name src)
     (while link
       (ede-linker-only-once (car link)
--- a/lisp/gnus/ChangeLog	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/gnus/ChangeLog	Mon Apr 19 11:07:52 2010 -0400
@@ -1,6 +1,15 @@
+2010-04-17  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* smime.el: Don't mention CVS.
+
+	* nnrss.el (nnrss-fetch): Don't mention CVS.
+
+	* nnir.el: Don't mention CVS.
+
 2010-04-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 
-	* gnus-sum.el (gnus-summary-bookmark-make-record): Add `location' field.
+	* gnus-sum.el (gnus-summary-bookmark-make-record):
+	Add `location' field.
 
 2010-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 
--- a/lisp/gnus/nnir.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/gnus/nnir.el	Mon Apr 19 11:07:52 2010 -0400
@@ -52,7 +52,7 @@
 
 
 ;; The most recent version of this can always be fetched from the Gnus
-;; CVS repository.  See http://www.gnus.org/ for more information.
+;; repository.  See http://www.gnus.org/ for more information.
 
 ;; This code is still in the development stage but I'd like other
 ;; people to have a look at it.  Please do not hesitate to contact me
--- a/lisp/gnus/nnrss.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/gnus/nnrss.el	Mon Apr 19 11:07:52 2010 -0400
@@ -427,7 +427,7 @@
 (defun nnrss-fetch (url &optional local)
   "Fetch URL and put it in a the expected Lisp structure."
   (mm-with-unibyte-buffer
-    ;;some CVS versions of url.el need this to close the connection quickly
+    ;;some versions of url.el need this to close the connection quickly
     (let (cs xmlform htmlform)
       ;; bit o' work necessary for w3 pre-cvs and post-cvs
       (if local
--- a/lisp/gnus/smime.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/gnus/smime.el	Mon Apr 19 11:07:52 2010 -0400
@@ -42,7 +42,7 @@
 ;; done on messages encoded in these formats.  The terminology chosen
 ;; reflect this.
 ;;
-;; The home of this file is in Gnus CVS, but also available from
+;; The home of this file is in Gnus, but also available from
 ;; http://josefsson.org/smime.html.
 
 ;;; Quick introduction:
--- a/lisp/help.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/help.el	Mon Apr 19 11:07:52 2010 -0400
@@ -1048,10 +1048,9 @@
 Select WINDOW according to the value of `help-window-select'.
 Display message telling how to scroll and eventually quit WINDOW.
 
-Optional argument REUSE non-nil means WINDOW has been reused \(by
-`display-buffer'\) for displaying help.  Optional argument
-KEEP-FRAME non-nil means that quitting must no delete the frame
-of WINDOW."
+Optional argument REUSE non-nil means WINDOW has been reused by
+`display-buffer'.  Optional argument KEEP-FRAME non-nil means
+that quitting should not delete WINDOW's frame."
   (let ((number-of-windows
 	 (length (window-list (window-frame window) 'no-mini window))))
     (cond
--- a/lisp/htmlfontify.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/htmlfontify.el	Mon Apr 19 11:07:52 2010 -0400
@@ -1790,6 +1790,7 @@
     (when font-lock-defaults
       (font-lock-fontify-buffer)) ))
 
+;;;###autoload
 (defun htmlfontify-buffer (&optional srcdir file)
   "Create a new buffer, named for the current buffer + a .html extension,
 containing an inline CSS-stylesheet and formatted CSS-markup HTML
@@ -2276,6 +2277,7 @@
     (save-buffer)
     (kill-buffer B)))
 
+;;;###autoload
 (defun htmlfontify-copy-and-link-dir (srcdir dstdir &optional f-ext l-ext)
   "Trawl SRCDIR and write fontified-and-hyperlinked output in DSTDIR.
 F-EXT and L-EXT specify values for `hfy-extn' and `hfy-link-extn'.\n
--- a/lisp/ido.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/ido.el	Mon Apr 19 11:07:52 2010 -0400
@@ -2312,7 +2312,8 @@
 	   (or ido-use-url-at-point ido-use-filename-at-point))
       (let (fn d)
 	(require 'ffap)
-	;; Duplicate code from ffap-guesser as we want different behavior for files and URLs.
+	;; Duplicate code from ffap-guesser as we want different
+	;; behavior for files and URLs.
 	(cond
 	 ((with-no-warnings
 	    (and ido-use-url-at-point
@@ -2328,7 +2329,10 @@
 			      (ffap-guesser)
 			    (ffap-string-at-point))))
 	       (not (string-match "^http:/" fn))
-	       (setq d (file-name-directory (expand-file-name fn)))
+	       (let ((absolute-fn (expand-file-name fn)))
+		 (setq d (if (file-directory-p absolute-fn)
+			     (file-name-as-directory absolute-fn)
+			   (file-name-directory absolute-fn))))
 	       (file-directory-p d))
 	  (setq ido-current-directory d)
 	  (setq initial (file-name-nondirectory fn))))))
--- a/lisp/info.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/info.el	Mon Apr 19 11:07:52 2010 -0400
@@ -1053,8 +1053,8 @@
 	    (Info-select-node)
 	    (goto-char (point-min))
 	    (forward-line 1)		       ; skip header line
-	    (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line
-	      (forward-line 1))
+	    ;; (when (> Info-breadcrumbs-depth 0) ; skip breadcrumbs line
+	    ;;   (forward-line 1))
 
 	    (cond (anchorpos
                    (let ((new-history (list Info-current-file
@@ -3602,6 +3602,19 @@
      ((setq node (Info-get-token (point) "Prev: " "Prev: \\([^,\n\t]*\\)"))
       (Info-goto-node node fork)))
     node))
+
+(defun Info-mouse-follow-link (click)
+  "Follow a link where you click."
+  (interactive "e")
+  (let* ((position (event-start click))
+	 (posn-string (and position (posn-string position)))
+	 (string (car-safe posn-string))
+	 (string-pos (cdr-safe posn-string))
+	 (link-args (and string string-pos
+			 (get-text-property string-pos 'link-args string))))
+    (when link-args
+      (Info-goto-node link-args))))
+
 
 (defvar Info-mode-map
   (let ((map (make-keymap)))
@@ -4183,11 +4196,22 @@
     keymap)
   "Keymap to put on the Up link in the text or the header line.")
 
-(defun Info-insert-breadcrumbs ()
+(defvar Info-link-keymap
+  (let ((keymap (make-sparse-keymap)))
+    (define-key keymap [header-line mouse-1] 'Info-mouse-follow-link)
+    (define-key keymap [header-line mouse-2] 'Info-mouse-follow-link)
+    (define-key keymap [header-line down-mouse-1] 'ignore)
+    (define-key keymap [mouse-2] 'Info-mouse-follow-link)
+    (define-key keymap [follow-link] 'mouse-face)
+    keymap)
+  "Keymap to put on the link in the text or the header line.")
+
+(defun Info-breadcrumbs ()
   (let ((nodes (Info-toc-nodes Info-current-file))
 	(node Info-current-node)
         (crumbs ())
-        (depth Info-breadcrumbs-depth))
+        (depth Info-breadcrumbs-depth)
+	line)
 
     ;; Get ancestors from the cached parent-children node info
     (while (and (not (equal "Top" node)) (> depth 0))
@@ -4214,15 +4238,25 @@
 			     (file-name-nondirectory Info-current-file)
 			   ;; Some legacy code can still use a symbol.
 			   Info-current-file)))))
-	  (insert (if (bolp) "" " > ")
-		  (cond
-		   ((null node) "...")
-		   ((equal node Info-current-node)
-		    ;; No point linking to ourselves.
-		    (propertize text 'font-lock-face 'info-header-node))
-		   (t
-		    (concat "*Note " text "::"))))))
-      (insert "\n"))))
+	  (setq line (concat
+		      line
+		      (if (null line) "" " > ")
+		      (cond
+		       ((null node) "...")
+		       ((equal node Info-current-node)
+			;; No point linking to ourselves.
+			(propertize text 'font-lock-face 'info-header-node))
+		       (t
+			(propertize text
+				    'mouse-face 'highlight
+				    'font-lock-face 'info-header-xref
+				    'help-echo "mouse-2: Go to node"
+				    'keymap Info-link-keymap
+				    'link-args text)))))))
+      (setq line (concat line "\n")))
+    ;; (font-lock-append-text-property 0 (length line)
+    ;; 				    'font-lock-face 'header-line line)
+    line))
 
 (defun Info-fontify-node ()
   "Fontify the node."
@@ -4269,8 +4303,8 @@
 		((string-equal (downcase tag) "next") Info-next-link-keymap)
 		((string-equal (downcase tag) "up"  ) Info-up-link-keymap))))))
 
-        (when (> Info-breadcrumbs-depth 0)
-          (Info-insert-breadcrumbs))
+        ;; (when (> Info-breadcrumbs-depth 0)
+        ;;   (insert (Info-breadcrumbs)))
 
         ;; Treat header line.
         (when Info-use-header-line
@@ -4302,7 +4336,10 @@
             ;; that is in the header, if it is just part.
             (cond
              ((> Info-breadcrumbs-depth 0)
-              (put-text-property (point-min) (1+ header-end) 'invisible t))
+	      (let ((ov (make-overlay (point-min) (1+ header-end))))
+		(overlay-put ov 'invisible t)
+		(overlay-put ov 'after-string (Info-breadcrumbs))
+		(overlay-put ov 'evaporate t)))
              ((not (bobp))
               ;; Hide the punctuation at the end, too.
               (skip-chars-backward " \t,")
--- a/lisp/language/indian.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/language/indian.el	Mon Apr 19 11:07:52 2010 -0400
@@ -241,7 +241,7 @@
       ;; syllables with an independent vowel, or
       "\\(?:RH\\)?Vn?\\(?:J?HR\\)?v*n?a?A?\\|"
       ;; consonant-based syllables, or
-      "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?|v*n?a?A?\\)\\|"
+      "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?\\|v*n?a?A?\\)\\|"
       ;; special consonant form, or
       "JHR\\|"
       ;; any other singleton characters
@@ -256,8 +256,9 @@
 	   ("V" . "[\u0B05-\u0B14\u0B60-\u0B61]") ; independent vowel
 	   ("C" . "[\u0B15-\u0B39\u0B5C-\u0B5D\u0B71]")	; consonant
 	   ("B" . "[\u0B15-\u0B17\u0B1B-\u0B1D\u0B1F-\u0B21\u0B23-\u0B24\u0B27-\u0B30\u0B32-\u0B35\u0B38-\u0B39]") ; consonant with below form
+	   ("R" . "\u0B30")		; RA
 	   ("n" . "\u0B3C")		; NUKTA
-	   ("v" . "[\u0B3E-\u0B44\u0B56-\u0B57\u0B62-\u0B63]") ; vowel sign
+	   ("v" . "[\u0B3E-\u0B44\u0B47\u0B56-\u0B57\u0B62-\u0B63]") ; vowel sign
 	   ("H" . "\u0B4D")		; VIRAMA
 	   ("N" . "\u200C")		; ZWNJ
 	   ("J" . "\u200D")		; ZWJ
@@ -267,7 +268,7 @@
       ;; syllables with an independent vowel, or
       "\\(?:RH\\)?Vn?\\(?:J?HB\\)?v*n?a?A?\\|"
       ;; consonant-based syllables, or
-      "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?|v*n?a?A?\\)\\|"
+      "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?\\|v*n?a?A?\\)\\|"
       ;; special consonant form, or
       "JHB\\|"
       ;; any other singleton characters
@@ -288,7 +289,7 @@
     (indian-compose-regexp
      (concat
       ;; consonant-based syllables, or
-      "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?|v*a?\\)\\|"
+      "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?\\|v*a?\\)\\|"
       ;; syllables with an independent vowel, or
       "Vv*a?\\|"
       ;; any other singleton characters
@@ -302,14 +303,14 @@
 	   ("V" . "[\u0C05-\u0C14\u0C60-\u0C61]") ; independent vowel
 	   ("C" . "[\u0C15-\u0C39\u0C58-\u0C59]") ; consonant
 	   ("v" . "[\u0C3E-\u0C4C\u0C55-\u0C56\u0C62-\u0C63]")	; vowel sign
-	   ("H" . "\u0BCD")		; VIRAMA
+	   ("H" . "\u0C4D")		; VIRAMA
 	   ("N" . "\u200C")		; ZWNJ
 	   ("J" . "\u200D")		; ZWJ
 	   ("X" . "[\u0C00-\u0C7F]"))))	; all coverage
     (indian-compose-regexp
      (concat
       ;; consonant-based syllables, or
-      "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?|v*a?\\)\\|"
+      "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?\\|v*a?\\)\\|"
       ;; syllables with an independent vowel, or
       "V\\(?:J?HC\\)?v*a?\\|"
       ;; special consonant form, or
@@ -324,7 +325,7 @@
 	 '(("A" . "[\u0C82-\u0C83]")	; SIGN ANUSVARA .. VISARGA
 	   ("V" . "[\u0C85-\u0C94\u0CE0-\u0CE1]") ; independent vowel
 	   ("C" . "[\u0C95-\u0CB9\u0CDE]")	  ; consonant
-	   ("B" . "\u0CB0")		; RA
+	   ("R" . "\u0CB0")		; RA
 	   ("n" . "\u0CBC")		; NUKTA
 	   ("v" . "[\u0CBE-\u0CCC\u0CD5-\u0CD6\u0CE2-\u0CE3]") ; vowel sign
 	   ("H" . "\u0CCD")		; VIRAMA
@@ -336,9 +337,9 @@
       ;; syllables with an independent vowel, or
       "\\(?:RH\\)?Vn?\\(?:J?HC\\)?v?A?\\|"
       ;; consonant-based syllables, or
-      "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?|v*n?A?\\)\\|"
+      "Cn?\\(?:J?HJ?Cn?\\)*\\(?:H[NJ]?\\|v*n?A?\\)\\|"
       ;; special consonant form, or
-      "JHB\\|"
+      "JHC\\|"
       ;; any other singleton characters
       "X")
      table))
@@ -351,13 +352,14 @@
 	   ("C" . "[\u0D15-\u0D39]")		  ; consonant 
 	   ("Y" . "[\u0D2F-\u0D30\u0D32\u0D35]")  ; YA, RA, LA, VA
 	   ("v" . "[\u0D3E-\u0D48\u0D57\u0D62-\u0D63]")	; postbase matra
+	   ("H" . "\u0D4D")			  ; SIGN VIRAMA
 	   ("N" . "\u200C")			  ; ZWNJ
 	   ("J" . "\u200D")			  ; ZWJ
 	   ("X" . "[\u0D00-\u0D7F]"))))		  ; all coverage
     (indian-compose-regexp
      (concat
       ;; consonant-based syllables, or
-      "\\(?:CJ?HJ?C\\)*\\(?:H[NJ]?\\|v?A?\\)\\|"
+      "C\\(?:J?HJ?C\\)*\\(?:H[NJ]?\\|v?A?\\)\\|"
       ;; syllables with an independent vowel, or
       "V\\(?:J?HY\\)?v*?A?\\|"
       ;; special consonant form, or
--- a/lisp/minibuffer.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/minibuffer.el	Mon Apr 19 11:07:52 2010 -0400
@@ -381,21 +381,35 @@
 (defconst completion-styles-alist
   '((emacs21
      completion-emacs21-try-completion completion-emacs21-all-completions
-     "Simple prefix-based completion.")
+     "Simple prefix-based completion.
+I.e. when completing \"foo_bar\" (where _ is the position of point),
+it will consider all completions candidates matching the glob
+pattern \"foobar*\".")
     (emacs22
      completion-emacs22-try-completion completion-emacs22-all-completions
-     "Prefix completion that only operates on the text before point.")
+     "Prefix completion that only operates on the text before point.
+I.e. when completing \"foo_bar\" (where _ is the position of point),
+it will consider all completions candidates matching the glob
+pattern \"foo*\" and will add back \"bar\" to the end of it.")
     (basic
      completion-basic-try-completion completion-basic-all-completions
-     "Completion of the prefix before point and the suffix after point.")
+     "Completion of the prefix before point and the suffix after point.
+I.e. when completing \"foo_bar\" (where _ is the position of point),
+it will consider all completions candidates matching the glob
+pattern \"foo*bar*\".")
     (partial-completion
      completion-pcm-try-completion completion-pcm-all-completions
      "Completion of multiple words, each one taken as a prefix.
-E.g. M-x l-c-h can complete to list-command-history
-and C-x C-f /u/m/s to /usr/monnier/src.")
+I.e. when completing \"l-co_h\" (where _ is the position of point),
+it will consider all completions candidates matching the glob
     (substring
      completion-substring-try-completion completion-substring-all-completions
      "Completion of the string taken as a substring.")
+pattern \"l*-co*h*\".
+Furthermore, for completions that are done step by step in subfields,
+the method is applied to all the preceding fields that do not yet match.
+E.g. C-x C-f /u/mo/s TAB could complete to /usr/monnier/src.
+Additionally the user can use the char \"*\" as a glob pattern.")
     (initials
      completion-initials-try-completion completion-initials-all-completions
      "Completion of acronyms and initialisms.
@@ -410,7 +424,19 @@
 follow the calling convention of `completion-all-completions'),
 and DOC describes the way this style of completion works.")
 
-(defcustom completion-styles '(basic partial-completion emacs22)
+(defcustom completion-styles
+  ;; First, use `basic' because prefix completion has been the standard
+  ;; for "ever" and works well in most cases, so using it first
+  ;; ensures that we obey previous behavior in most cases.
+  '(basic
+    ;; Then use `partial-completion' because it has proven to
+    ;; be a very convenient extension.
+    partial-completion
+    ;; Finally use `emacs22' so as to maintain (in many/most cases)
+    ;; the previous behavior that when completing "foobar" with point
+    ;; between "foo" and "bar" the completion try to complete "foo"
+    ;; and simply add "bar" to the end of the result.
+    emacs22)
   "List of completion styles to use.
 The available styles are listed in `completion-styles-alist'."
   :type `(repeat (choice ,@(mapcar (lambda (x) (list 'const (car x)))
--- a/lisp/progmodes/fortran.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/progmodes/fortran.el	Mon Apr 19 11:07:52 2010 -0400
@@ -403,6 +403,28 @@
            '("^ *\\([0-9]+\\)" . font-lock-constant-face)))
   "Medium level highlighting for Fortran mode.")
 
+;; See bug#1385. Never really looked into _why_ this matters...
+(defun fortran-match-and-skip-declaration (limit)
+  "Like `font-lock-match-c-style-declaration-item-and-skip-to-next'.
+The only difference is, it returns t in a case when the default returns nil."
+  (when (looking-at "[ \n\t*]*\\(\\sw+\\)[ \t\n]*\\(((?\\)?")
+    (when (and (match-end 2) (> (- (match-end 2) (match-beginning 2)) 1))
+      (let ((pos (point)))
+	(skip-chars-backward " \t\n")
+	(skip-syntax-backward "w")
+	(unless (looking-at "\\(\\sw+\\)[ \t\n]*\\sw+[ \t\n]*\\(((?\\)?")
+	  (goto-char pos)
+	  (looking-at "[ \n\t*]*\\(\\sw+\\)[ \t\n]*\\(((?\\)?"))))
+    (save-match-data
+      (condition-case nil
+	  (save-restriction
+	    (narrow-to-region (point-min) limit)
+	    (goto-char (match-end 1))
+	    (while (not (looking-at "[ \t\n]*\\(\\(,\\)\\|;\\|\\'\\)"))
+	      (goto-char (or (scan-sexps (point) 1) (point-max))))
+            (goto-char (match-end 2)))
+	(error t)))))
+
 (defvar fortran-font-lock-keywords-3
   (append
    fortran-font-lock-keywords-1
@@ -412,7 +434,7 @@
           ;; Type specifier.
           '(1 font-lock-type-face)
           ;; Declaration item (or just /.../ block name).
-          `(font-lock-match-c-style-declaration-item-and-skip-to-next
+          `(fortran-match-and-skip-declaration
             ;; Start after any *(...) expression.
             (condition-case nil
                 (and (match-beginning ,(1+ (regexp-opt-depth
--- a/lisp/progmodes/grep.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/progmodes/grep.el	Mon Apr 19 11:07:52 2010 -0400
@@ -513,8 +513,8 @@
 		       grep-find-template grep-find-use-xargs
 		       grep-highlight-matches))
       (set setting
-	   (or (cadr (assq setting host-defaults))
-	       (cadr (assq setting defaults)))))
+	   (cadr (or (assq setting host-defaults)
+		     (assq setting defaults)))))
 
     (unless (or (not grep-use-null-device) (eq grep-use-null-device t))
       (setq grep-use-null-device
--- a/lisp/textmodes/tex-mode.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/textmodes/tex-mode.el	Mon Apr 19 11:07:52 2010 -0400
@@ -1060,7 +1060,7 @@
 		"\\>\\|\\\\[a-z]*" (regexp-opt '("space" "skip" "page") t)
 		"\\>\\)"))
   (setq paragraph-separate
-	(concat "[\f]\\|[ \t]*\\($\\|"
+	(concat "[\f%]\\|[ \t]*\\($\\|"
 		"\\\\[][]\\|"
 		"\\\\" (regexp-opt (append
 				    (mapcar 'car latex-section-alist)
--- a/lisp/vc-git.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/vc-git.el	Mon Apr 19 11:07:52 2010 -0400
@@ -420,6 +420,7 @@
      (vc-git-command (current-buffer) 'async files
                      "ls-files" "-z" "-o" "-i" "--directory"
                      "--no-empty-directory" "--exclude-standard" "--"))
+    ;; --relative added in Git 1.5.5.
     (diff-index
      (vc-git-command (current-buffer) 'async files
                      "diff-index" "--relative" "-z" "-M" "HEAD" "--")))
@@ -578,7 +579,9 @@
 ;;; HISTORY FUNCTIONS
 
 (defun vc-git-print-log (files buffer &optional shortlog start-revision limit)
-  "Get change log associated with FILES."
+  "Get change log associated with FILES.
+Note that using SHORTLOG requires at least Git version 1.5.6,
+for the --graph option."
   (let ((coding-system-for-read git-commits-coding-system))
     ;; `vc-do-command' creates the buffer, but we need it before running
     ;; the command.
--- a/lisp/vc-hg.el	Mon Apr 19 10:34:01 2010 -0400
+++ b/lisp/vc-hg.el	Mon Apr 19 11:07:52 2010 -0400
@@ -196,16 +196,16 @@
   (let*
       ((status nil)
        (default-directory (file-name-directory file))
+       ;; Avoid localization of messages so we can parse the output.
+       (avoid-local-env (append (list "TERM=dumb" "LANGUAGE=C" "HGRC=")
+				     process-environment))
        (out
         (with-output-to-string
           (with-current-buffer
               standard-output
             (setq status
                   (condition-case nil
-		      (let ((process-environment
-			     ;; Avoid localization of messages so we can parse the output.
-			     (append (list "TERM=dumb" "LANGUAGE=C" "HGRC=")
-				     process-environment)))
+		      (let ((process-environment avoid-local-env))
 			;; Ignore all errors.
 			(process-file
 			 "hg" nil t nil
@@ -213,7 +213,23 @@
                     ;; Some problem happened.  E.g. We can't find an `hg'
                     ;; executable.
                     (error nil)))))))
-    (when (eq 0 status) out)))
+    (if (eq 0 status)
+	out
+      ;; Check if the file is in the 'added state, the above hg
+      ;; command does not distinguish between 'added and 'unregistered.
+      (setq status
+	    (condition-case nil
+		(let ((process-environment avoid-local-env))
+		  (process-file
+		   "hg" nil nil nil
+		   ;; We use "log" here, if there's a faster command
+		   ;; that returns true for an 'added file and false
+		   ;; for an 'unregistered one, we could use that.
+		   "log" "-l1" (file-relative-name file)))
+	      ;; Some problem happened.  E.g. We can't find an `hg'
+	      ;; executable.
+	      (error nil)))
+      (when (eq 0 status) "0"))))
 
 ;;; History functions
 
@@ -356,7 +372,8 @@
       (if (match-beginning 3)
 	  (match-string-no-properties 1)
 	(cons (match-string-no-properties 1)
-	      (expand-file-name (match-string-no-properties 4)))))))
+	      (expand-file-name (match-string-no-properties 4)
+				(vc-hg-root default-directory)))))))
 
 (defun vc-hg-previous-revision (file rev)
   (let ((newrev (1- (string-to-number rev))))
--- a/src/ChangeLog	Mon Apr 19 10:34:01 2010 -0400
+++ b/src/ChangeLog	Mon Apr 19 11:07:52 2010 -0400
@@ -1,3 +1,34 @@
+2010-04-19  Juanma Barranquero  <lekktu@gmail.com>
+
+	* dired.c (Ffile_attributes): Fix typo in docstring.
+
+2010-04-19  Adrian Robert  <Adrian.B.Robert@gmail.com>
+
+	* nsmenu.m (EmacsDialog-runDialogAt:): Declare ret as
+	NSInteger (Bug#5811).
+
+2010-04-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
+	(PTY_OPEN): New defines.  Use openpty (Bug#726, Bug#5819).
+
+2010-04-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* frame.h (FRAME_LINE_TO_PIXEL_Y): Add missing parenthesis.
+
+2010-04-19  Jan Djärv  <jan.h.d@swipnet.se>
+
+	* frame.h (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Don't use
+	FRAME_LINE_TO_PIXEL_Y.
+
+	* xterm.c (x_set_window_size_1): Don't add border_width/height to
+	pixelwidth/height.
+
+2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xdisp.c (prepare_menu_bars): Don't call ns_set_doc_edited for
+	terminal frames (Bug#5837).
+
 2010-04-19  Eli Zaretskii  <eliz@gnu.org>
 
 	* .gdbinit (xsubchartable): New command.
--- a/src/dired.c	Mon Apr 19 10:34:01 2010 -0400
+++ b/src/dired.c	Mon Apr 19 11:07:52 2010 -0400
@@ -935,9 +935,9 @@
 Value is nil if specified file cannot be opened.
 
 ID-FORMAT specifies the preferred format of attributes uid and gid (see
-below) - valid values are 'string and 'integer. The latter is the default,
-but we plan to change that, so you should specify a non-nil value for
-ID-FORMAT if you use the returned uid or gid.
+below) - valid values are 'string and 'integer.  The latter is the
+default, but we plan to change that, so you should specify a non-nil value
+for ID-FORMAT if you use the returned uid or gid.
 
 Elements of the attribute list are:
  0. t for directory, string (name linked to) for symbolic link, or nil.
--- a/src/frame.h	Mon Apr 19 10:34:01 2010 -0400
+++ b/src/frame.h	Mon Apr 19 11:07:52 2010 -0400
@@ -980,7 +980,7 @@
    at ROW/COL.  */
 
 #define FRAME_LINE_TO_PIXEL_Y(f, row) \
-  ((row < FRAME_TOP_MARGIN (f) ? 0 : FRAME_INTERNAL_BORDER_WIDTH (f))	\
+  (((row) < FRAME_TOP_MARGIN (f) ? 0 : FRAME_INTERNAL_BORDER_WIDTH (f))	\
    + (row) * FRAME_LINE_HEIGHT (f))
 
 #define FRAME_COL_TO_PIXEL_X(f, col) \
--- a/src/nsmenu.m	Mon Apr 19 10:34:01 2010 -0400
+++ b/src/nsmenu.m	Mon Apr 19 11:07:52 2010 -0400
@@ -1709,7 +1709,7 @@
 
 - (Lisp_Object)runDialogAt: (NSPoint)p
 {
-  int ret;
+  NSInteger ret;
   extern EMACS_TIME timer_check (int do_it_now); /* TODO: add to a header */
 
   /* initiate a session that will be ended by pop_down_menu */
--- a/src/s/darwin.h	Mon Apr 19 10:34:01 2010 -0400
+++ b/src/s/darwin.h	Mon Apr 19 11:07:52 2010 -0400
@@ -90,6 +90,24 @@
  */
 
 #define HAVE_PTYS
+/* Run only once.  We need a `for'-loop because the code uses
+   `continue'.  */
+#define PTY_ITERATION	for (i = 0; i < 1; i++)
+#define PTY_NAME_SPRINTF	/* none */
+#define PTY_TTY_NAME_SPRINTF	/* none */
+/* Note that openpty may fork via grantpt on Mac OS X 10.4/Darwin 8.
+   But we don't have to block SIGCHLD because it is blocked in the
+   implementation of grantpt.  */
+#define PTY_OPEN						\
+  do								\
+    {								\
+      int slave;						\
+      if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1)	\
+	fd = -1;						\
+      else							\
+	emacs_close (slave);					\
+    }								\
+  while (0)
 
 /**
  * PTYs only work correctly on Darwin 7 or higher.  So make the