changeset 109689:ffde65bb1dd2

merge emacs-23
author Kenichi Handa <handa@etlken>
date Tue, 27 Jul 2010 16:01:48 +0900
parents e5f3704cf67a (current diff) 3241579568b9 (diff)
children cd3f51128c38
files
diffstat 235 files changed, 3352 insertions(+), 2199 deletions(-) [+]
line wrap: on
line diff
--- a/.bzrignore	Tue May 11 20:15:29 2010 +0900
+++ b/.bzrignore	Tue Jul 27 16:01:48 2010 +0900
@@ -65,3 +65,6 @@
 src/temacs
 src/deps
 configure.lineno
+src/core
+core
+lib-src/stamp-*
--- a/ChangeLog	Tue May 11 20:15:29 2010 +0900
+++ b/ChangeLog	Tue Jul 27 16:01:48 2010 +0900
@@ -1,3 +1,20 @@
+2010-06-23  Glenn Morris  <rgm@gnu.org>
+
+	* info/dir: Start descriptions in column 32, per Texinfo convention.
+
+2010-06-12  Chong Yidong  <cyd@stupidchicken.com>
+
+	* INSTALL: Update font information (Bug#6389).
+
+2010-06-10  Glenn Morris  <rgm@gnu.org>
+
+	* INSTALL: General update.
+
+2010-05-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* .bzrignore: Ignore new files from trunk, which appear if you use
+	colocated branches (i.e. "bzr switch").
+
 2010-05-10  Miles Bader  <miles@gnu.org>
 
 	* configure.in: Get rid of "unix" pre-defined macro when
--- a/INSTALL	Tue May 11 20:15:29 2010 +0900
+++ b/INSTALL	Tue Jul 27 16:01:48 2010 +0900
@@ -1,35 +1,42 @@
 GNU Emacs Installation Guide
 Copyright (C) 1992, 1994, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+  2005, 2006, 2007, 2008, 2009, 2010
+  Free Software Foundation, Inc.
 See the end of the file for license conditions.
 
 
-This file contains general information.  For more specific information
-for the Windows, GNUstep/Mac OS X, and MS-DOS ports, also see the files
-nt/INSTALL nextstep/INSTALL, and msdos/INSTALL.  For information
-specific to building from a Bazaar checkout (rather than a release), see
-the file INSTALL.BZR.
+This file contains general information on building GNU Emacs.
+For more information specific to the MS-Windows, GNUstep/Mac OS X, and
+MS-DOS ports, also read the files nt/INSTALL, nextstep/INSTALL, and
+msdos/INSTALL.  For information about building from a Bazaar checkout
+(rather than a release), also read the file INSTALL.BZR.
 
 
 BASIC INSTALLATION
 
-The simplest way to build Emacs is to use the `configure' shell script
-which attempts to guess correct values for various system-dependent
-variables and features and find the directories where various system
-headers and libraries are kept.  It then creates a `Makefile' in each
-subdirectory and a `config.h' file containing system-dependent
-definitions.  Running the `make' utility then builds the package for
-your system.
+On most Unix systems, you build Emacs by first running the `configure'
+shell script.  This attempts to deduce the correct values for
+various system-dependent variables and features, and find the
+directories where certain system headers and libraries are kept.
+In a few cases, you may need to explicitly tell configure where to
+find some things, or what options to use.
+
+`configure' creates a `Makefile' in several subdirectories, and a
+`src/config.h' file containing system-dependent definitions.
+Running the `make' utility then builds the package for your system.
 
 Here's the procedure to build Emacs using `configure' on systems which
-are supported by it.  If this simplified procedure fails, or if you
-are using a platform such as MS-Windows, where `configure' script
-doesn't work, you might need to use various non-default options, and
-maybe perform some of the steps manually.  The more detailed
-description in the rest of the sections of this guide will help you do
-that, so please refer to them if the simple procedure does not work.
+are supported by it.  In some cases, if the simplified procedure fails,
+you might need to use various non-default options, and maybe perform
+some of the steps manually.  The more detailed description in the other
+sections of this guide will help you do that, so please refer to those
+sections if you need to.
 
-  1. Make sure your system has at least 120 MB of free disk space.
+  1. Unpacking the Emacs 23.2 release requires about 170 MB of free
+  disk space.  Building Emacs uses about another 60 MB of space.
+  The final installed Emacs uses about 120 MB of disk space.
+  This includes the space-saving that comes from automatically
+  compressing the Lisp source files on installation.
 
   2a. `cd' to the directory where you unpacked Emacs and invoke the
       `configure' script:
@@ -42,8 +49,8 @@
 
 		 SOURCE-DIR/configure
 
-      where SOURCE-DIR is the top-level Emacs source directory.  This
-      may not work unless you use GNU make.
+      where SOURCE-DIR is the top-level Emacs source directory.
+      This may not work unless you use GNU make.
 
   3. When `configure' finishes, it prints several lines of details
      about the system configuration.  Read those details carefully
@@ -51,17 +58,18 @@
      system names, wrong places for headers or libraries, missing
      libraries that you know are installed on your system, etc.
 
-     If you find anything wrong, you will have to pass to `configure'
-     explicit machine configuration name, and one or more options
-     which tell it where to find various headers and libraries; refer
-     to DETAILED BUILDING AND INSTALLATION section below.
+     If you find anything wrong, you may have to pass to `configure'
+     one or more options specifying the explicit machine configuration
+     name, where to find various headers and libraries, etc.
+     Refer to the section DETAILED BUILDING AND INSTALLATION below.
 
-     If `configure' didn't find some image support libraries, such as
-     Xpm, jpeg, etc., and you want to use them refer to the subsection
-     "Image support libraries", below.
+     If `configure' didn't find some (optional) image support libraries,
+     such as Xpm, jpeg, etc., and you want to use them, refer to the
+     subsection "Image support libraries" below.
 
      If the details printed by `configure' don't make any sense to
-     you, assume that `configure' did its job and proceed.
+     you, but there are no obvious errors, assume that `configure' did
+     its job and proceed.
 
   4. If you need to run the `configure' script more than once (e.g.,
      with some non-default options), always clean the source
@@ -78,7 +86,7 @@
      in the `src' directory.  You can try this program, to make sure
      it works:
 
-		 src/emacs -q
+		 src/emacs -Q
 
   7. Assuming that the program `src/emacs' starts and displays its
      opening screen, you can install the program and its auxiliary
@@ -92,9 +100,13 @@
 
 		 make clean
 
-  You can also save some space by compressing (with `gzip') Info files
-  and installed Lisp source (.el) files which have corresponding .elc
-  versions.
+  You can delete the entire build directory if you do not plan to
+  build Emacs again, but it can be useful to keep for debugging.
+
+  Note that the install automatically saves space by compressing
+  (provided you have the `gzip' program) those installed Lisp source (.el)
+  files that have corresponding .elc versions.  You may also wish
+  to compress the installed Info files.
 
 
 ADDITIONAL DISTRIBUTION FILES
@@ -156,19 +168,15 @@
 running Emacs; however, note that Emacs will not be able to use
 colored icons in the toolbar if XPM support is not compiled in.
 
-Here's the list of these optional libraries, and the URLs where they
-can be found:
+Here's the list of some of these optional libraries, and the URLs
+where they can be found (in the unlikely event that your distribution
+does not provide them):
 
-  . libXaw3d for fancy 3D-style
-      scroll bars:    ftp://ftp.x.org/contrib/widgets/Xaw3d/
-  . libxpm for XPM:   ftp://ftp.x.org/contrib/libraries/
-		      Get version 3.4k or later, which lets Emacs
-		      use its own color allocation functions.
-  . libpng for PNG:   ftp://ftp.simplesystems.org/pub/libpng/png/
+  . libXaw3d          http://directory.fsf.org/project/xaw3d/
+  . libxpm for XPM:   http://www.x.org/releases/current/src/lib/
+  . libpng for PNG:   http://www.libpng.org/
   . libz (for PNG):   http://www.zlib.net/
-  . libjpeg for JPEG: ftp://ftp.uu.net/graphics/jpeg/
-                      Get version 6b -- 6a is reported to fail in
-                      Emacs.
+  . libjpeg for JPEG: http://www.ijg.org/
   . libtiff for TIFF: http://www.libtiff.org/
   . libgif for GIF:   http://sourceforge.net/projects/giflib/
 
@@ -177,61 +185,38 @@
 appropriate --without-LIB option.  In some cases, older versions of
 these libraries won't work because some routines are missing, and
 configure should avoid such old versions.  If that happens, use the
---without-LIB options to `configure'.  See below for more details.
+--without-LIB options to `configure', if you need to.
 
 * Extra fonts
 
 The Emacs distribution does not include fonts and does not install
-them.  You must do that yourself.
-
-Emacs running on the GNU system supports both X fonts and local fonts
-(i.e. the fonts managed by the fontconfig library).
-
-For `Unicode' (ISO 10646) X fonts, see
-<URL:http://czyborra.com/unifont/> (packaged in Debian),
-<URL:http://openlab.ring.gr.jp/efont/> (packaged in Debian).  (In
-recent Debian versions, there is an extensive `misc-fixed' iso10646-1
-in the default X installation.)  Perhaps also see
-<URL:http://www.cl.cam.ac.uk/%7Emgk25/ucs-fonts.html>.
-
-<URL:http://czyborra.com/charsets/> has basic fonts for Emacs's
-ISO-8859 charsets.
+them.
 
-XFree86 release 4 (from <URL:ftp://ftp.xfree86.org/pub/XFree86/> and mirrors)
-contains font support for most, if not all, of the charsets that Emacs
-currently supports, including iso10646-1 encoded fonts for use with
-the mule-unicode charsets.  The font files should also be usable with
-older X releases.  Note that XFree 4 contains many iso10646-1 fonts
-with minimal character repertoires, which can cause problems -- see
-etc/PROBLEMS.
-
-BDF Unicode fonts etl-unicode.tar.gz are available from
-<URL:ftp://ftp.x.org/contrib/fonts/> and
-<URL:ftp://ftp.xfree86.org/pub/mirror/X.Org/contrib/fonts/>.  These
-fonts can also be used by ps-print and ps-mule to print Unicode
-characters.
-
-Finally, the Web page <URL:http://www.gnu.org/software/freefont/>
-lists a large number of free Unicode fonts.
+On the GNU system, Emacs supports both X fonts and local fonts
+(i.e. fonts managed by the fontconfig library).  If you need more
+fonts than your distribution normally provides, you must install them
+yourself.  See <URL:http://www.gnu.org/software/freefont/> for a large
+number of free Unicode fonts.
 
 * GNU/Linux development packages
 
-Many GNU/Linux systems do not come with development packages by
-default; they just include the files that you need to run Emacs, but
-not those you need to compile it.  For example, to compile Emacs with
-X11 support, you may need to install the special `X11 development'
-package.  For example, in April 2003, the package names to install
-were `XFree86-devel' and `Xaw3d-devel' on Red Hat.  On Debian, the
-packages necessary to build the installed version should be
-sufficient; they can be installed using `apt-get build-dep emacs21' in
-Debian 3 and above.
+Many GNU/Linux systems do not come with development packages by default;
+they include the files that you need to run Emacs, but not those you
+need to compile it.  For example, to compile Emacs with support for X
+and graphics libraries, you may need to install the `X development'
+package(s), and development versions of the jpeg, png, etc. packages.
+
+The names of the packages that you need varies according to the
+GNU/Linux distribution that you use, and the options that you want to
+configure Emacs with.  On Debian-based systems, you can install all the
+packages needed to build the installed version of Emacs with a command
+like `apt-get build-dep emacs23'.
 
 
 DETAILED BUILDING AND INSTALLATION:
 
-(This is for a Unix or Unix-like system.  For MS-DOS and Windows 3.X,
-see msdos/INSTALL.  For Windows 9X, Windows ME, Windows NT, Windows
-2000, Windows XP/2003, and Windows Vista/2008, see the file
+(This is for a Unix or Unix-like system.  For MS-DOS and MS Windows 3.X,
+see msdos/INSTALL.  For later versions of MS Windows, see the file
 nt/INSTALL.  For GNUstep and Mac OS X, see nextstep/INSTALL.)
 
 1) Make sure your system has enough swapping space allocated to handle
@@ -239,21 +224,20 @@
 least 2.8 MB and can reach 100 MB or more.  If the swapping space is
 insufficient, you will get an error in the command `temacs -batch -l
 loadup dump', found in `./src/Makefile.in', or possibly when
-running the final dumped Emacs.
+running the final dumped Emacs.  (This should not be an issue
+on any recent system.)
 
-Building Emacs requires about 140 MB of disk space (including the
-Emacs sources) Once installed, Emacs occupies about 77 MB in the file
+Building Emacs requires about 230 MB of disk space (including the
+Emacs sources).  Once installed, Emacs occupies about 120 MB in the file
 system where it is installed; this includes the executable files, Lisp
 libraries, miscellaneous data files, and on-line documentation.  If
 the building and installation take place in different directories,
-then the installation procedure momentarily requires 140+77 MB.
+then the installation procedure momentarily requires 230+120 MB.
 
-2) Consult `./etc/MACHINES' to see what configuration name you should
-give to the `configure' program.  That file offers hints for
-getting around some possible installation problems.  The file lists
-many different configurations, but only the part for your machine and
-operating system is relevant.  (The list is arranged in alphabetical
-order by the vendor name.)
+2) In the unlikely event that `configure' does not detect your system
+type correctly, consult `./etc/MACHINES' to see what --host, --build
+options you should pass to `configure'.  That file also offers hints
+for getting around some possible installation problems.
 
 3) You can build Emacs in the top-level Emacs source directory
 or in a separate directory.
@@ -261,15 +245,10 @@
 3a) To build in the top-level Emacs source directory, go to that
 directory and run the program `configure' as follows:
 
-    ./configure [CONFIGURATION-NAME] [--OPTION[=VALUE]] ...
-
-The CONFIGURATION-NAME argument should be a configuration name given
-in `./etc/MACHINES', with the system version number added at the end.
+    ./configure [--OPTION[=VALUE]] ...
 
-You should try first omitting CONFIGURATION-NAME.  This way,
-`configure' will try to guess your system type.  If it cannot guess,
-or if something goes wrong in building or installing Emacs this way,
-try again specifying the proper CONFIGURATION-NAME explicitly.
+If `configure' cannot determine your system type, try again
+specifying the proper --build, --host options explicitly.
 
 If you don't want X support, specify `--with-x=no'.  If you omit this
 option, `configure' will try to figure out for itself whether your
@@ -284,20 +263,19 @@
 
 To get more attractive menus, you can specify an X toolkit when you
 configure Emacs; use the option `--with-x-toolkit=TOOLKIT', where
-TOOLKIT is `athena', `motif' or `gtk' (`yes' and `lucid' are synonyms
-for `athena').  On some systems, it does not work to use a toolkit
-with shared libraries.  A free implementation of Motif, called
-LessTif, is available from <http://www.lesstif.org>.  Compiling with
-LessTif or Motif causes a standard File Selection Dialog to pop up
-when you invoke file commands with the mouse.  You can get fancy
-3D-style scroll bars, even without LessTif/Motif, if you have the
-Xaw3d library installed (see "Image support libraries" above for Xaw3d
-availability).
+TOOLKIT is `gtk' (the default), `athena', or `motif' (`yes' and
+`lucid' are synonyms for `athena').  On some systems, it does not work
+to use a toolkit with shared libraries.  A free implementation of
+Motif, called LessTif, is available from <http://www.lesstif.org>.
+Compiling with LessTif or Motif causes a standard File Selection
+Dialog to pop up when you invoke file commands with the mouse.  You
+can get fancy 3D-style scroll bars, even without Gtk or LessTif/Motif,
+if you have the Xaw3d library installed (see "Image support libraries"
+above for Xaw3d availability).
 
-If `--with-x-toolkit=gtk' is specified, you can tell configure where
-to search for GTK by specifying `--with-pkg-config-prog=PATH' where
-PATH is the pathname to pkg-config.  Note that GTK version 2.4 or
-newer is required for Emacs.
+You can tell configure where to search for GTK by specifying
+`--with-pkg-config-prog=PATH' where PATH is the pathname to
+pkg-config.  Note that GTK version 2.6 or newer is required for Emacs.
 
 The Emacs mail reader RMAIL is configured to be able to read mail from
 a POP3 server by default.  Versions of the POP protocol older than
@@ -324,10 +302,10 @@
 Use --without-toolkit-scroll-bars to disable LessTif/Motif or Xaw3d
 scroll bars.
 
-Use --without-xim to inhibit the default use of X Input Methods.  In
-this case, the X resource useXIM can be used to turn on use of XIM.
+Use --without-xim to inhibit the default use of X Input Methods.
+In this case, the X resource useXIM can be used to turn on use of XIM.
 
-Use --disable-largefile omits support for files larger than 2GB on
+Use --disable-largefile to omit support for files larger than 2GB on
 systems which support that.
 
 Use --without-sound to disable sound support.
@@ -337,11 +315,11 @@
 - Emacs (and the other utilities users run) go in PREFIXDIR/bin
   (unless the `--exec-prefix' option says otherwise).
 - The architecture-independent files go in PREFIXDIR/share/emacs/VERSION
-  (where VERSION is the version number of Emacs, like `19.27').
+  (where VERSION is the version number of Emacs, like `23.2').
 - The architecture-dependent files go in
   PREFIXDIR/libexec/emacs/VERSION/CONFIGURATION
-  (where CONFIGURATION is the configuration name, like mips-dec-ultrix4.2),
-  unless the `--exec-prefix' option says otherwise.
+  (where CONFIGURATION is the configuration name, like
+  i686-pc-linux-gnu), unless the `--exec-prefix' option says otherwise.
 
 The `--exec-prefix=EXECDIR' option allows you to specify a separate
 portion of the directory tree for installing architecture-specific
@@ -353,17 +331,16 @@
 
 For example, the command
 
-    ./configure mips-dec-ultrix --with-x11
+    ./configure --build=i386-linux-gnu --without-sound
 
-configures Emacs to build for a DECstation running Ultrix, with
-support for the X11 window system.
+configures Emacs to build for a 32-bit GNU/Linux distribution,
+without sound support.
 
-`configure' doesn't do any compilation or installation
-itself.  It just creates the files that influence those things:
-`./Makefile', `lib-src/Makefile', `oldXMenu/Makefile',
-`lwlib/Makefile', `src/Makefile', and `./src/config.h'.  For details
-on exactly what it does, see the section called `CONFIGURATION BY
-HAND', below.
+`configure' doesn't do any compilation or installation itself.
+It just creates the files that influence those things:
+`./Makefile' in the top-level directory and several subdirectories;
+and `./src/config.h'.  For details on exactly what it does, see the
+section called `CONFIGURATION BY HAND', below.
 
 When it is done, `configure' prints a description of what it did and
 creates a shell script `config.status' which, when run, recreates the
@@ -405,7 +382,7 @@
 preprocessor to look in the `/foo/myinclude' directory for header
 files (in addition to the standard directories), instruct the linker
 to look in `/bar/mylib' for libraries, pass the -O3 optimization
-switch to the compiler, and link against libfoo.a and libbar.a
+switch to the compiler, and link against libfoo and libbar
 libraries in addition to the standard ones.
 
 For some libraries, like Gtk+, fontconfig and ALSA, `configure' uses
@@ -435,14 +412,9 @@
 To build in a separate directory, you must use a version of `make'
 that supports the `VPATH' variable, such as GNU `make'.
 
-3c) Some people try to build in a separate directory by filling
-it full of symlinks to the files in the real source directory.
-If you do that, `make all' does work, but `make install' fails:
-it copies the symbolic links rather than the actual files.
-
-As far as is known, there is no particular reason to use
-a directory full of links rather than use the standard GNU
-facilities to build in a separate directory (see 3b above).
+(Do not try to build in a separate directory by creating many links
+to the real source directory--there is no need, and installation will
+fail.)
 
 4) Look at `./lisp/paths.el'; if some of those values are not right
 for your system, set up the file `./lisp/site-init.el' with Emacs
@@ -453,7 +425,7 @@
      (setq news-inews-program "/usr/bin/inews")
 
 is how you would override the default value of the variable
-news-inews-program (which is "/usr/local/inews").
+news-inews-program.
 
 Before you override a variable this way, *look at the value* that the
 variable gets by default!  Make sure you know what kind of value the
@@ -472,18 +444,11 @@
 site-load.el, Emacs will use *precisely* that value when it starts up
 again.  If you do this, you are on your own!
 
-Note that, on some systems, the code you place in site-init.el must
-not use expand-file-name or any other function which may look
-something up in the system's password and user information database.
-See `./etc/PROBLEMS' for more details on which systems this affects.
-
 The `site-*.el' files are nonexistent in the distribution.  You do not
 need to create them if you have nothing to put in them.
 
 6) Refer to the file `./etc/TERMS' for information on fields you may
-wish to add to various termcap entries.  The files `./etc/termcap.ucb'
-and `./etc/termcap.dat' may already contain appropriately-modified
-entries.
+wish to add to various termcap entries.  (This is unlikely to be necessary.)
 
 7) Run `make' in the top directory of the Emacs distribution to finish
 building Emacs in the standard way.  The final executable file is
@@ -497,11 +462,11 @@
 
 `/usr/local/bin' holds the executable programs users normally run -
 		`emacs', `etags', `ctags', `b2m', `emacsclient',
-		and `rcs-checkin'.
+		`grep-changelog', and `rcs-checkin'.
 
 `/usr/local/share/emacs/VERSION/lisp' holds the Emacs Lisp library;
 		`VERSION' stands for the number of the Emacs version
-		you are installing, like `18.59' or `19.27'.  Since the
+		you are installing, like `23.1' or `23.2'.  Since the
 		Lisp library changes from one version of Emacs to
 		another, including the version number in the path
 		allows you to have several versions of Emacs installed
@@ -509,18 +474,17 @@
 		make Emacs unavailable while installing a new version.
 
 `/usr/local/share/emacs/VERSION/etc' holds the Emacs tutorial, the DOC
-		file, the `yow' database, and other
-		architecture-independent files Emacs might need while
-		running.  VERSION is as specified for `.../lisp'.
+		file, and other architecture-independent files Emacs
+		might need while running.
 
 `/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME' contains executable
 		programs used by Emacs that users are not expected to
 		run themselves.
 		`VERSION' is the number of the Emacs version you are
-		installing, and `CONFIGURATION-NAME' is the argument
-		you gave to the `configure' program to identify the
+		installing, and `CONFIGURATION-NAME' is the value
+		deduced by the `configure' program to identify the
 		architecture and operating system of your machine,
-		like `mips-dec-ultrix' or `sparc-sun-sunos'.  Since
+		like `i686-pc-linux-gnu' or `sparc-sun-sunos'.  Since
 		these files are specific to the version of Emacs,
 		operating system, and architecture in use, including
 		the configuration name in the path allows you to have
@@ -532,10 +496,9 @@
 `/usr/local/share/info' holds the on-line documentation for Emacs,
 		known as "info files".  Many other GNU programs are
 		documented using info files as well, so this directory
-		stands apart from the other, Emacs-specific
-		directories.
+		stands apart from the other, Emacs-specific directories.
 
-`/usr/local/man/man1' holds the man pages for the programs installed
+`/usr/local/share/man/man1' holds the man pages for the programs installed
 		in `/usr/local/bin'.
 
 Any version of Emacs, whether installed or not, also looks for Lisp
@@ -598,10 +561,9 @@
 	defaults to /usr/local/share.  We create the following
 	subdirectories under `datadir':
 	- `emacs/VERSION/lisp', containing the Emacs Lisp library, and
-	- `emacs/VERSION/etc', containing the Emacs tutorial, the DOC
-		file, and the `yow' database.
+	- `emacs/VERSION/etc', containing the tutorials, DOC file, etc.
 	`VERSION' is the number of the Emacs version you are installing,
-	like `18.59' or `19.0'.  Since these files vary from one version
+	like `23.1' or `23.2'.  Since these files vary from one version
 	of Emacs to another, including the version number in the path
 	allows you to have several versions of Emacs installed at the
 	same time; this means that you don't have to make Emacs
@@ -614,29 +576,23 @@
 		programs used by Emacs that users are not expected to run
 		themselves.
 	`VERSION' is the number of the Emacs version you are installing,
-	and `CONFIGURATION-NAME' is the argument you gave to the
+	and `CONFIGURATION-NAME' is the value deduced by the
 	`configure' program to identify the architecture and operating
-	system of your machine, like `mips-dec-ultrix' or
-	`sparc-sun-sunos'.  Since these files are specific to the version
-	of Emacs, operating system, and architecture in use, including
-	the configuration name in the path allows you to have several
-	versions of Emacs for any mix of machines and operating systems
-	installed at the same time; this is useful for sites at which
-	different kinds of machines share the file system Emacs is
-	installed on.
+	system of your machine, like `i686-pc-linux-gnu' or `sparc-sun-sunos'.
+	Since these files are specific to the version of Emacs,
+	operating system, and architecture in use, including the
+	configuration name in the path allows you to have several
+	versions of Emacs for any mix of machines and operating
+	systems installed at the same time; this is useful for sites
+	at which different kinds of machines share the file system
+	Emacs is installed on.
 
 `infodir' indicates where to put the info files distributed with
 	Emacs; it defaults to `/usr/local/share/info'.
 
 `mandir' indicates where to put the man pages for Emacs and its
 	utilities (like `etags'); it defaults to
-	`/usr/local/man/man1'.
-
-`manext' gives the extension the man pages should be installed with.
-	It should contain a period, followed by the appropriate
-	digit.  It defaults to `.1'.  For example given the default
-	values for `mandir' and `manext', the Emacs man page would be
-	installed as `/usr/local/man/man1/emacs.1'.
+	`/usr/local/share/man/man1'.
 
 `prefix' doesn't give a path for any specific part of Emacs; instead,
 	its value is used to determine the defaults for all the
@@ -658,7 +614,7 @@
 	path variables - `bindir' and `libexecdir'.
 
 The above variables serve analogous purposes in the makefiles for all
-GNU software; this variable is specific to Emacs.
+GNU software; the following variable is specific to Emacs.
 
 `archlibdir' indicates where Emacs installs and expects the executable
 	files and other architecture-dependent data it uses while
@@ -674,7 +630,7 @@
 directory, but be aware that running the `configure' program erases
 `Makefile' and rebuilds it from `Makefile.in'.
 
-The path for finding Lisp files is specified in src/paths.h,
+The path for finding Lisp files is specified in src/epaths.h,
 a file which is generated by running configure.  To change the path,
 you can edit the definition of PATH_LOADSEARCH in that file
 before you run `make'.
@@ -686,8 +642,8 @@
 
 CONFIGURATION BY HAND
 
-Instead of running the `configure' program, you have to perform the
-following steps.
+This should not be necessary and is not recommended.  Instead of
+running the `configure' program, you have to perform the following steps.
 
 1) Copy `./src/config.in' to `./src/config.h'.
 
@@ -701,8 +657,7 @@
 2) Edit `./src/config.h' to set the right options for your system.  If
 you need to override any of the definitions in the s/*.h and m/*.h
 files for your system and machine, do so by editing config.h, not by
-changing the s/*.h and m/*.h files.  Occasionally you may need to
-redefine parameters used in `./lib-src/movemail.c'.
+changing the s/*.h and m/*.h files.
 
 3) Create src/Makefile and lib-src/Makefile from the corresponding
 `Makefile.in' files.  First copy `Makefile.in' to `Makefile.c',
@@ -710,28 +665,28 @@
 and then copy the shell commands near the end of `configure'
 that run cpp to construct `Makefile'.
 
-4) Create `Makefile' files in various other directories
-from the corresponding `Makefile.in' files.  This isn't so hard,
-just a matter of substitution.
+4) Create `Makefile' files in various other directories from the
+corresponding `Makefile.in' files.  This isn't so hard, just a matter
+of editing in appropriate substitutions for the @...@ constructs.
 
 The `configure' script is built from `configure.in' by the `autoconf'
-program.  You need version 2.51 or newer of `autoconf' to rebuild
-`configure'.
+program.  You need at least the version of autoconf specified in the
+AC_PREREQ(...) command to rebuild `configure' from `configure.in'.
 
 BUILDING GNU EMACS BY HAND
 
 Once Emacs is configured, running `make' in the top directory performs
 the following steps.
 
-1) Run `make src/paths.h' in the top directory.  This produces
-`./src/paths.h' from the template file `./src/paths.in', changing
+1) Run `make epaths-force' in the top directory.  This produces
+`./src/epaths.h' from the template file `./src/epaths.in', changing
 the paths to the values specified in `./Makefile'.
 
 2) Go to directory `./lib-src' and run `make'.  This creates
 executables named `ctags' and `etags' and `make-docfile' and
 `digest-doc' and `test-distrib'.  And others.
 
-3) Go to directory `./src' and Run `make'.  This refers to files in
+3) Go to directory `./src' and run `make'.  This refers to files in
 the `./lisp' and `./lib-src' subdirectories using names `../lisp' and
 `../lib-src'.
 
@@ -743,8 +698,7 @@
 current Emacs version.  This file contains documentation strings for
 all the functions in Emacs.  Each time you run make to make a new
 emacs, a new DOC file with a new name is made.  You must keep the DOC
-file for an Emacs version as long as you keep using that Emacs
-version.
+file for an Emacs version as long as you keep using that Emacs version.
 
 
 INSTALLATION BY HAND
@@ -753,7 +707,7 @@
 directory of the Emacs distribution.
 
 1) Copy `./lisp' and its subdirectories, `./etc', and the executables
-in `./lib-src' to their final destinations, as selected in `./src/paths.h'.
+in `./lib-src' to their final destinations, as selected in `./src/epaths.h'.
 
 Strictly speaking, not all of the executables in `./lib-src' need be copied.
 - The programs `fakemail', `hexl', `movemail', `profile', `rcs2log',
@@ -784,8 +738,7 @@
 `rcs-checkin' from `./lib-src' to `/usr/local/bin'.  These programs are
 intended for users to run.
 
-5) Copy the man pages in `./etc' for emacs, ctags, and etags into the
-appropriate man directories.
+5) Copy the man pages in `./doc/man' into the appropriate man directory.
 
 6) The files in the `./src' subdirectory, except for `emacs', are not
 used by Emacs once it is built.  However, it is very desirable to keep
@@ -794,8 +747,8 @@
 
 PROBLEMS
 
-See the file PROBLEMS in etc subdirectory for a list of various
-problems sometimes encountered, and what to do about them.
+See the file `./etc/PROBLEMS' for a list of various problems sometimes
+encountered, and what to do about them.
 
 This file is part of GNU Emacs.
 
--- a/doc/emacs/ChangeLog	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/ChangeLog	Tue Jul 27 16:01:48 2010 +0900
@@ -1,3 +1,19 @@
+2010-06-23  Glenn Morris  <rgm@gnu.org>
+
+	* abbrevs.texi, basic.texi, buffers.texi, building.texi, calendar.texi:
+	* custom.texi, dired.texi, display.texi, emacs.texi, emerge-xtra.texi:
+	* files.texi, fortran-xtra.texi, frames.texi, help.texi, killing.texi:
+	* maintaining.texi, mark.texi, mini.texi, misc.texi, msdog.texi:
+	* mule.texi, programs.texi, rmail.texi, screen.texi, search.texi:
+	* sending.texi, text.texi, trouble.texi, vc1-xtra.texi, xresources.texi:
+	Untabify Texinfo files.
+
+2010-06-10  Glenn Morris  <rgm@gnu.org>
+
+	* basic.texi (Inserting Text): Minor clarification.  (Bug#6374)
+
+	* basic.texi (Inserting Text): Fix typo.
+
 2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 
 	* Version 23.2 released.
--- a/doc/emacs/abbrevs.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/abbrevs.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -235,9 +235,9 @@
 @example
 @var{various other tables@dots{}}
 (lisp-mode-abbrev-table)
-"dk"	       0    "define-key"
+"dk"          0    "define-key"
 (global-abbrev-table)
-"dfn"	       0    "definition"
+"dfn"         0    "definition"
 @end example
 
 @noindent
--- a/doc/emacs/basic.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/basic.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -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 Basic, Minibuffer, Exiting, Top
 @chapter Basic Editing Commands
@@ -16,15 +17,15 @@
 
 * Inserting Text::      Inserting text by simply typing it.
 * Moving Point::        Moving the cursor to the place where you want to
-			  change something.
-* Erasing::	        Deleting and killing text.
-* Basic Undo::	        Undoing recent changes in the text.
+                          change something.
+* Erasing::             Deleting and killing text.
+* Basic Undo::          Undoing recent changes in the text.
 * Files: Basic Files.   Visiting, creating, and saving files.
 * Help: Basic Help.     Asking what a character does.
-* Blank Lines::	        Making and deleting blank lines.
+* Blank Lines::         Making and deleting blank lines.
 * Continuation Lines::  How Emacs displays lines too wide for the screen.
 * Position Info::       What page, line, row, or column is point on?
-* Arguments::	        Numeric arguments for repeating a command N times.
+* Arguments::           Numeric arguments for repeating a command N times.
 * Repeating::           Repeating the previous command quickly.
 @end menu
 
@@ -92,9 +93,9 @@
 @vindex read-quoted-char-radix
 @noindent
 To use decimal or hexadecimal instead of octal, set the variable
-@code{read-quoted-char-radix} to 10 or 16.  If the radix is greater
-than 10, some letters starting with @kbd{a} serve as part of a
-character code, just like digits.
+@code{read-quoted-char-radix} to 10 or 16.  If the radix is 16,
+the letters @kbd{a} to @kbd{f} serve as part of a character code,
+just like digits.  Case is ignored.
 
   A numeric argument tells @kbd{C-q} how many copies of the quoted
 character to insert (@pxref{Arguments}).
@@ -104,7 +105,7 @@
 @cindex Unicode
   Instead of @kbd{C-q}, you can use @kbd{C-x 8 @key{RET}}
 (@code{ucs-insert}) to insert a character based on its Unicode name or
-code-point.  This commands prompts for a character to insert, using
+code-point.  This command prompts for a character to insert, using
 the minibuffer; you can specify the character using either (i) the
 character's name in the Unicode standard, or (ii) the character's
 code-point in the Unicode standard.  If you specify the character's
--- a/doc/emacs/buffers.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/buffers.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -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 Buffers, Windows, Files, Top
 @chapter Using Multiple Buffers
@@ -49,10 +50,10 @@
 @menu
 * Select Buffer::       Creating a new buffer or reselecting an old one.
 * List Buffers::        Getting a list of buffers that exist.
-* Misc Buffer::	        Renaming; changing read-onlyness; copying text.
-* Kill Buffer::	        Killing buffers you no longer need.
+* Misc Buffer::         Renaming; changing read-onlyness; copying text.
+* Kill Buffer::         Killing buffers you no longer need.
 * Several Buffers::     How to go through the list of all buffers
-			  and operate variously on several of them.
+                          and operate variously on several of them.
 * Indirect Buffers::    An indirect buffer shares the text of another buffer.
 * Buffer Convenience::  Convenience and customization features for
                           buffer handling.
--- a/doc/emacs/building.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/building.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -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 Building, Maintaining, Programs, Top
 @chapter Compiling and Testing Programs
@@ -20,14 +21,14 @@
                           for use in the compilation buffer.
 * Grep Searching::      Searching with grep.
 * Flymake::             Finding syntax errors on the fly.
-* Debuggers::	        Running symbolic debuggers for non-Lisp programs.
+* Debuggers::           Running symbolic debuggers for non-Lisp programs.
 * Executing Lisp::      Various modes for editing Lisp programs,
                           with different facilities for running
                           the Lisp programs.
 * Libraries: Lisp Libraries.      Creating Lisp programs to run in Emacs.
 * Eval: Lisp Eval.      Executing a single Lisp expression in Emacs.
 * Interaction: Lisp Interaction.  Executing Lisp in an Emacs buffer.
-* External Lisp::         Communicating through Emacs with a separate Lisp.
+* External Lisp::       Communicating through Emacs with a separate Lisp.
 @end menu
 
 @node Compilation
@@ -471,10 +472,10 @@
 Lisp Reference Manual}, for information on the Emacs Lisp debugger.
 
 @menu
-* Starting GUD::	How to start a debugger subprocess.
-* Debugger Operation::	Connection between the debugger and source buffers.
-* Commands of GUD::	Key bindings for common commands.
-* GUD Customization::	Defining your own commands for GUD.
+* Starting GUD::        How to start a debugger subprocess.
+* Debugger Operation::  Connection between the debugger and source buffers.
+* Commands of GUD::     Key bindings for common commands.
+* GUD Customization::   Defining your own commands for GUD.
 * GDB Graphical Interface::  An enhanced mode that uses GDB features to
                         implement a graphical debugging environment through
                         Emacs.
--- a/doc/emacs/calendar.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/calendar.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -42,7 +42,7 @@
 * Lunar Phases::        Displaying phases of the moon.
 * Other Calendars::     Converting dates to other calendar systems.
 * Diary::               Displaying events from your diary.
-* Appointments::	Reminders when it's time to do something.
+* Appointments::        Reminders when it's time to do something.
 * Importing Diary::     Converting diary events to/from other formats.
 * Daylight Saving::     How to specify when daylight saving time is active.
 * Time Intervals::      Keeping track of time intervals.
@@ -674,11 +674,11 @@
 and from several other calendars.
 
 @menu
-* Calendar Systems::	   The calendars Emacs understands
-			     (aside from Gregorian).
-* To Other Calendar::	   Converting the selected date to various calendars.
-* From Other Calendar::	   Moving to a date specified in another calendar.
-* Mayan Calendar::	   Moving to a date specified in a Mayan calendar.
+* Calendar Systems::       The calendars Emacs understands
+                             (aside from Gregorian).
+* To Other Calendar::      Converting the selected date to various calendars.
+* From Other Calendar::    Moving to a date specified in another calendar.
+* Mayan Calendar::         Moving to a date specified in a Mayan calendar.
 @end menu
 
 @node Calendar Systems
@@ -1040,8 +1040,8 @@
 @menu
 * Displaying the Diary::   Viewing diary entries and associated calendar dates.
 * Format of Diary File::   Entering events in your diary.
-* Date Formats::	   Various ways you can specify dates.
-* Adding to Diary::	   Commands to create diary entries.
+* Date Formats::           Various ways you can specify dates.
+* Adding to Diary::        Commands to create diary entries.
 * Special Diary Entries::  Anniversaries, blocks of dates, cyclic entries, etc.
 @end menu
 
--- a/doc/emacs/custom.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/custom.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -24,18 +24,18 @@
 @end ifnottex
 
 @menu
-* Minor Modes::		Each minor mode is a feature you can turn on
-			  independently of any others.
+* Minor Modes::         Each minor mode is a feature you can turn on
+                          independently of any others.
 * Easy Customization::  Convenient way to browse and change settings.
-* Variables::		Many Emacs commands examine Emacs variables
-			  to decide what to do; by setting variables,
-			  you can control their functioning.
-* Key Bindings::	The keymaps say what command each key runs.
-			  By changing them, you can "redefine keys".
-* Syntax::		The syntax table controls how words and
-			  expressions are parsed.
-* Init File::		How to write common customizations in the
-			  @file{.emacs} file.
+* Variables::           Many Emacs commands examine Emacs variables
+                          to decide what to do; by setting variables,
+                          you can control their functioning.
+* Key Bindings::        The keymaps say what command each key runs.
+                          By changing them, you can "redefine keys".
+* Syntax::              The syntax table controls how words and
+                          expressions are parsed.
+* Init File::           How to write common customizations in the
+                          @file{.emacs} file.
 @end menu
 
 @node Minor Modes
@@ -794,10 +794,10 @@
 expects (@pxref{Examining}).
 
 @menu
-* Examining::	        Examining or setting one variable's value.
-* Hooks::	        Hook variables let you specify programs for parts
-		          of Emacs to run on particular occasions.
-* Locals::	        Per-buffer values of variables.
+* Examining::           Examining or setting one variable's value.
+* Hooks::               Hook variables let you specify programs for parts
+                          of Emacs to run on particular occasions.
+* Locals::              Per-buffer values of variables.
 * File Variables::      How files can specify variable values.
 * Directory Variables:: How variable values can be specified by directory.
 @end menu
@@ -943,12 +943,12 @@
 @end group
 @group
     (c-cleanup-list . (scope-operator
-		       empty-defun-braces
-		       defun-close-semi))
+                       empty-defun-braces
+                       defun-close-semi))
 @end group
 @group
     (c-offsets-alist . ((arglist-close . c-lineup-arglist)
-			(substatement-open . 0)))))
+                        (substatement-open . 0)))))
 @end group
 
 @group
@@ -2175,10 +2175,10 @@
 @end ifnottex
 
 @menu
-* Init Syntax::	        Syntax of constants in Emacs Lisp.
+* Init Syntax::         Syntax of constants in Emacs Lisp.
 * Init Examples::       How to do some things with an init file.
 * Terminal Init::       Each terminal type can have an init file.
-* Find Init::	        How Emacs finds the init file.
+* Find Init::           How Emacs finds the init file.
 * Init Non-ASCII::      Using non-@acronym{ASCII} characters in an init file.
 @end menu
 
--- a/doc/emacs/dired.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/dired.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -36,20 +36,20 @@
 * Deletion: Dired Deletion.   Deleting files with Dired.
 * Flagging Many Files::       Flagging files based on their names.
 * Visit: Dired Visiting.      Other file operations through Dired.
-* Marks vs Flags::	      Flagging for deletion vs marking.
-* Operating on Files::	      How to copy, rename, print, compress, etc.
-			        either one file or several files.
+* Marks vs Flags::            Flagging for deletion vs marking.
+* Operating on Files::        How to copy, rename, print, compress, etc.
+                                either one file or several files.
 * Shell Commands in Dired::   Running a shell command on the marked files.
 * Transforming File Names::   Using patterns to rename multiple files.
-* Comparison in Dired::	      Running `diff' by way of Dired.
+* Comparison in Dired::       Running `diff' by way of Dired.
 * Subdirectories in Dired::   Adding subdirectories to the Dired buffer.
 @ifnottex
 * Subdir Switches::           Subdirectory switches in Dired.
 @end ifnottex
-* Subdirectory Motion::	      Moving across subdirectories, and up and down.
+* Subdirectory Motion::       Moving across subdirectories, and up and down.
 * Hiding Subdirectories::     Making subdirectories visible or invisible.
 * Updating: Dired Updating.   Discarding lines for files of no interest.
-* Find: Dired and Find.	      Using `find' to choose the files for Dired.
+* Find: Dired and Find.       Using `find' to choose the files for Dired.
 * Wdired::                    Operating on files by editing the Dired buffer.
 * Image-Dired::               Viewing image thumbnails in Dired.
 * Misc: Misc Dired Features.  Various other features.
--- a/doc/emacs/display.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/display.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -13,11 +13,11 @@
 want to see, and how to display it.
 
 @menu
-* Scrolling::	           Commands to move text up and down in a window.
+* Scrolling::              Commands to move text up and down in a window.
 * Auto Scrolling::         Redisplay scrolls text automatically when needed.
 * Horizontal Scrolling::   Moving text left and right in a window.
 * Follow Mode::            Follow mode lets two windows scroll as one.
-* Faces::	           How to change the display style using faces.
+* Faces::                  How to change the display style using faces.
 * Standard Faces::         Emacs' predefined faces.
 * Temporary Face Changes:: Commands to temporarily modify the default text face
 * Font Lock::              Minor mode for syntactic highlighting using faces.
--- a/doc/emacs/emacs.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/emacs.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -33,7 +33,7 @@
 
 @dircategory Emacs
 @direntry
-* Emacs: (emacs).	The extensible self-documenting text editor.
+* Emacs: (emacs).       The extensible self-documenting text editor.
 @end direntry
 
 @c in general, keep the following line commented out, unless doing a
@@ -134,13 +134,13 @@
 @end ignore
 
 @menu
-* Distrib::	        How to get the latest Emacs distribution.
-* Intro::	        An introduction to Emacs concepts.
+* Distrib::             How to get the latest Emacs distribution.
+* Intro::               An introduction to Emacs concepts.
 @c Note that in the printed manual, the glossary and indices come last.
-* Glossary::	        Terms used in this manual.
+* Glossary::            Terms used in this manual.
 
 Indexes (each index contains a large menu)
-* Key Index::	        An item for each standard Emacs key sequence.
+* Key Index::           An item for each standard Emacs key sequence.
 * Option Index::        An item for every command-line option.
 * Command Index::       An item for each command name.
 * Variable Index::      An item for each documented variable.
@@ -149,100 +149,100 @@
 * Acknowledgments::     Major contributors to GNU Emacs.
 
 Important General Concepts
-* Screen::	        How to interpret what you see on the screen.
-* User Input::	        Kinds of input events (characters, buttons,
+* Screen::              How to interpret what you see on the screen.
+* User Input::          Kinds of input events (characters, buttons,
                           function keys).
-* Keys::	        Key sequences: what you type to request one
+* Keys::                Key sequences: what you type to request one
                           editing action.
-* Commands::	        Named functions run by key sequences to do editing.
+* Commands::            Named functions run by key sequences to do editing.
 * Entering Emacs::      Starting Emacs from the shell.
-* Exiting::	        Stopping or killing Emacs.
+* Exiting::             Stopping or killing Emacs.
 
 Fundamental Editing Commands
-* Basic::	        The most basic editing commands.
-* Minibuffer::	        Entering arguments that are prompted for.
-* M-x::		        Invoking commands by their names.
-* Help::	        Commands for asking Emacs about its commands.
+* Basic::               The most basic editing commands.
+* Minibuffer::          Entering arguments that are prompted for.
+* M-x::                 Invoking commands by their names.
+* Help::                Commands for asking Emacs about its commands.
 
 Important Text-Changing Commands
-* Mark::	        The mark: how to delimit a ``region'' of text.
-* Killing::	        Killing (cutting) text.
-* Yanking::	        Recovering killed text.  Moving text. (Pasting.)
+* Mark::                The mark: how to delimit a ``region'' of text.
+* Killing::             Killing (cutting) text.
+* Yanking::             Recovering killed text.  Moving text. (Pasting.)
 * Accumulating Text::   Other ways of copying text.
-* Rectangles::	        Operating on the text inside a rectangle on the screen.
+* Rectangles::          Operating on the text inside a rectangle on the screen.
 * CUA Bindings::        Using @kbd{C-x}, @kbd{C-c}, @kbd{C-v} for copy
                           and paste, with enhanced rectangle support.
-* Registers::	        Saving a text string or a location in the buffer.
-* Display::	        Controlling what text is displayed.
-* Search::	        Finding or replacing occurrences of a string.
-* Fixit::	        Commands especially useful for fixing typos.
-* Keyboard Macros::	A keyboard macro records a sequence of
-			  keystrokes to be replayed with a single command.
+* Registers::           Saving a text string or a location in the buffer.
+* Display::             Controlling what text is displayed.
+* Search::              Finding or replacing occurrences of a string.
+* Fixit::               Commands especially useful for fixing typos.
+* Keyboard Macros::     A keyboard macro records a sequence of
+                          keystrokes to be replayed with a single command.
 
 Major Structures of Emacs
-* Files::	        All about handling files.
-* Buffers::	        Multiple buffers; editing several files at once.
-* Windows::	        Viewing two pieces of text at once.
-* Frames::	        Running the same Emacs session in multiple X windows.
+* Files::               All about handling files.
+* Buffers::             Multiple buffers; editing several files at once.
+* Windows::             Viewing two pieces of text at once.
+* Frames::              Running the same Emacs session in multiple X windows.
 * International::       Using non-@acronym{ASCII} character sets.
 
 Advanced Features
-* Major Modes::	        Text mode vs. Lisp mode vs. C mode...
-* Indentation::	        Editing the white space at the beginnings of lines.
-* Text::	        Commands and modes for editing English.
-* Programs::	        Commands and modes for editing programs.
-* Building::	        Compiling, running and debugging programs.
+* Major Modes::         Text mode vs. Lisp mode vs. C mode...
+* Indentation::         Editing the white space at the beginnings of lines.
+* Text::                Commands and modes for editing English.
+* Programs::            Commands and modes for editing programs.
+* Building::            Compiling, running and debugging programs.
 * Maintaining::         Features for maintaining large programs.
-* Abbrevs::	        How to define text abbreviations to reduce
-			  the number of characters you must type.
+* Abbrevs::             How to define text abbreviations to reduce
+                          the number of characters you must type.
 @c AFAICS, the tex stuff generates its own index and does not use this one.
 @ifnottex
 * Picture Mode::        Editing pictures made up of characters using
                           the quarter-plane screen model.
 @end ifnottex
 * Sending Mail::        Sending mail in Emacs.
-* Rmail::	        Reading mail in Emacs.
-* Dired::	        You can ``edit'' a directory to manage files in it.
+* Rmail::               Reading mail in Emacs.
+* Dired::               You can ``edit'' a directory to manage files in it.
 * Calendar/Diary::      The calendar and diary facilities.
 * Document View::       Viewing PDF, PS and DVI files.
-* Gnus::	        How to read netnews with Emacs.
-* Shell::	        Executing shell commands from Emacs.
+* Gnus::                How to read netnews with Emacs.
+* Shell::               Executing shell commands from Emacs.
 * Emacs Server::        Using Emacs as an editing server for @code{mail}, etc.
-* Printing::	        Printing hardcopies of buffers or regions.
-* Sorting::	        Sorting lines, paragraphs or pages within Emacs.
-* Narrowing::	        Restricting display and editing to a portion
-		          of the buffer.
-* Two-Column::	        Splitting apart columns to edit them
-		          in side-by-side windows.
+* Printing::            Printing hardcopies of buffers or regions.
+* Sorting::             Sorting lines, paragraphs or pages within Emacs.
+* Narrowing::           Restricting display and editing to a portion
+                          of the buffer.
+* Two-Column::          Splitting apart columns to edit them
+                          in side-by-side windows.
 * Editing Binary Files::Using Hexl mode to edit binary files.
 * Saving Emacs Sessions:: Saving Emacs state from one session to the next.
 * Recursive Edit::      A command can allow you to do editing
-			  "within the command".  This is called a
-			  "recursive editing level".
-* Emulation::	        Emulating some other editors with Emacs.
+                          "within the command".  This is called a
+                          "recursive editing level".
+* Emulation::           Emulating some other editors with Emacs.
 * Hyperlinking::        Following links in buffers.
 * Dissociated Press::   Dissociating text for fun.
-* Amusements::	        Various games and hacks.
+* Amusements::          Various games and hacks.
 * Customization::       Modifying the behavior of Emacs.
 
 Recovery from Problems
-* Quitting::	        Quitting and aborting.
-* Lossage::	        What to do if Emacs is hung or malfunctioning.
-* Bugs::	        How and when to report a bug.
+* Quitting::            Quitting and aborting.
+* Lossage::             What to do if Emacs is hung or malfunctioning.
+* Bugs::                How and when to report a bug.
 * Contributing::        How to contribute improvements to Emacs.
-* Service::	        How to get help for your own Emacs needs.
+* Service::             How to get help for your own Emacs needs.
 
 Appendices
-* Copying::	        The GNU General Public License gives you permission
-			  to redistribute GNU Emacs on certain terms;
-			  it also explains that there is no warranty.
+* Copying::             The GNU General Public License gives you permission
+                          to redistribute GNU Emacs on certain terms;
+                          it also explains that there is no warranty.
 * GNU Free Documentation License:: The license for this documentation.
 * Emacs Invocation::    Hairy startup options.
 * X Resources::         X resources for customizing Emacs.
-* Antinews::	        Information about Emacs version 22.
+* Antinews::            Information about Emacs version 22.
 * Mac OS / GNUstep::    Using Emacs under Mac OS and GNUstep.
 * Microsoft Windows::   Using Emacs on Microsoft Windows and MS-DOS.
-* Manifesto::	        What's GNU?  Gnu's Not Unix!
+* Manifesto::           What's GNU?  Gnu's Not Unix!
 
 @c Do NOT modify the following 3 lines!  They must have this form to
 @c be correctly identified by `texinfo-multiple-files-update'.  In
@@ -258,9 +258,9 @@
 
 The Organization of the Screen
 
-* Point::	        The place in the text where editing commands operate.
+* Point::               The place in the text where editing commands operate.
 * Echo Area::           Short messages appear at the bottom of the screen.
-* Mode Line::	        Interpreting the mode line.
+* Mode Line::           Interpreting the mode line.
 * Menu Bar::            How to use the menu bar.
 
 Basic Editing Commands
@@ -268,23 +268,23 @@
 * Inserting Text::      Inserting text by simply typing it.
 * Moving Point::        Moving the cursor to the place where you want to
                         change something.
-* Erasing::	        Deleting and killing text.
-* Basic Undo::	        Undoing recent changes in the text.
+* Erasing::             Deleting and killing text.
+* Basic Undo::          Undoing recent changes in the text.
 * Basic Files::         Visiting, creating, and saving files.
 * Basic Help::          Asking what a character does.
-* Blank Lines::	        Making and deleting blank lines.
+* Blank Lines::         Making and deleting blank lines.
 * Continuation Lines::  How Emacs displays lines too wide for the screen.
 * Position Info::       What page, line, row, or column is point on?
-* Arguments::	        Numeric arguments for repeating a command N times.
+* Arguments::           Numeric arguments for repeating a command N times.
 * Repeating::           Repeating the previous command quickly.
 
 The Minibuffer
 
 * Minibuffer File::     Entering file names with the minibuffer.
 * Minibuffer Edit::     How to edit in the minibuffer.
-* Completion::		An abbreviation facility for minibuffer input.
-* Minibuffer History::	Reusing recent minibuffer arguments.
-* Repetition::		Re-executing commands that used the minibuffer.
+* Completion::          An abbreviation facility for minibuffer input.
+* Minibuffer History::  Reusing recent minibuffer arguments.
+* Repetition::          Re-executing commands that used the minibuffer.
 * Passwords::           Entering passwords in the echo area.
 
 Completion
@@ -296,59 +296,59 @@
 
 Help
 
-* Help Summary::	Brief list of all Help commands.
-* Key Help::		Asking what a key does in Emacs.
-* Name Help::		Asking about a command, variable or function name.
-* Apropos::		Asking what pertains to a given topic.
+* Help Summary::        Brief list of all Help commands.
+* Key Help::            Asking what a key does in Emacs.
+* Name Help::           Asking about a command, variable or function name.
+* Apropos::             Asking what pertains to a given topic.
 * Help Mode::           Special features of Help mode and Help buffers.
-* Library Keywords::	Finding Lisp libraries by keywords (topics).
+* Library Keywords::    Finding Lisp libraries by keywords (topics).
 * Language Help::       Help relating to international language support.
-* Misc Help::		Other help commands.
+* Misc Help::           Other help commands.
 * Help Files::          Commands to display pre-written help files.
 * Help Echo::           Help on active text and tooltips (`balloon help').
 
 The Mark and the Region
 
-* Setting Mark::	Commands to set the mark.
-* Marking Objects::	Commands to put region around textual units.
-* Using Region::	Summary of ways to operate on contents of the region.
-* Mark Ring::   	Previous mark positions saved so you can go back there.
+* Setting Mark::        Commands to set the mark.
+* Marking Objects::     Commands to put region around textual units.
+* Using Region::        Summary of ways to operate on contents of the region.
+* Mark Ring::           Previous mark positions saved so you can go back there.
 * Global Mark Ring::    Previous mark positions in various buffers.
 * Shift Selection::     Using shifted cursor motion keys.
-* Persistent Mark::	Keeping the mark active all the time.
+* Persistent Mark::     Keeping the mark active all the time.
 
 Killing and Moving Text
 
-* Deletion::		Commands for deleting small amounts of text and
-			  blank areas.
-* Killing by Lines::	How to kill entire lines of text at one time.
+* Deletion::            Commands for deleting small amounts of text and
+                          blank areas.
+* Killing by Lines::    How to kill entire lines of text at one time.
 * Other Kill Commands:: Commands to kill large regions of text and
-			  syntactic units such as words and sentences.
+                          syntactic units such as words and sentences.
 * Kill Options::        Options that affect killing.
 
 Yanking
 
-* Kill Ring::		Where killed text is stored.  Basic yanking.
-* Appending Kills::	Several kills in a row all yank together.
-* Earlier Kills::	Yanking something killed some time ago.
+* Kill Ring::           Where killed text is stored.  Basic yanking.
+* Appending Kills::     Several kills in a row all yank together.
+* Earlier Kills::       Yanking something killed some time ago.
 
 Registers
 
-* RegPos::      	Saving positions in registers.
-* RegText::     	Saving text in registers.
-* RegRect::     	Saving rectangles in registers.
+* RegPos::              Saving positions in registers.
+* RegText::             Saving text in registers.
+* RegRect::             Saving rectangles in registers.
 * RegConfig::           Saving window configurations in registers.
 * RegNumbers::          Numbers in registers.
-* RegFiles::    	File names in registers.
+* RegFiles::            File names in registers.
 * Bookmarks::           Bookmarks are like registers, but persistent.
 
 Controlling the Display
 
-* Scrolling::	           Commands to move text up and down in a window.
+* Scrolling::              Commands to move text up and down in a window.
 * Auto Scrolling::         Redisplay scrolls text automatically when needed.
 * Horizontal Scrolling::   Moving text left and right in a window.
 * Follow Mode::            Follow mode lets two windows scroll as one.
-* Faces::	           How to change the display style using faces.
+* Faces::                  How to change the display style using faces.
 * Standard Faces::         Emacs' predefined faces.
 * Temporary Face Changes:: Commands to temporarily modify the default text face
 * Font Lock::              Minor mode for syntactic highlighting using faces.
@@ -367,15 +367,15 @@
 
 Searching and Replacement
 
-* Incremental Search::	   Search happens as you type the string.
+* Incremental Search::     Search happens as you type the string.
 * Nonincremental Search::  Specify entire string and then search.
-* Word Search::		   Search for sequence of words.
-* Regexp Search::	   Search for match for a regexp.
-* Regexps::		   Syntax of regular expressions.
+* Word Search::            Search for sequence of words.
+* Regexp Search::          Search for match for a regexp.
+* Regexps::                Syntax of regular expressions.
 * Regexp Backslash::       Regular expression constructs starting with `\'.
 * Regexp Example::         A complex regular expression explained.
-* Search Case::		   To ignore case while searching, or not.
-* Replace::		   Search, and replace some or all matches.
+* Search Case::            To ignore case while searching, or not.
+* Replace::                Search, and replace some or all matches.
 * Other Repeating Search:: Operating on all matches for some regexp.
 
 Incremental Search
@@ -393,16 +393,16 @@
 Replacement Commands
 
 * Unconditional Replace::  Replacing all matches for a string.
-* Regexp Replace::	   Replacing all matches for a regexp.
+* Regexp Replace::         Replacing all matches for a regexp.
 * Replacement and Case::   How replacements preserve case of letters.
-* Query Replace::	   How to use querying.
+* Query Replace::          How to use querying.
 
 Commands for Fixing Typos
 
 * Undo::                The Undo commands.
-* Transpose::	        Exchanging two characters, words, lines, lists...
+* Transpose::           Exchanging two characters, words, lines, lists...
 * Fixing Case::         Correcting case of last word entered.
-* Spelling::	        Apply spelling checker to a word, or a whole file.
+* Spelling::            Apply spelling checker to a word, or a whole file.
 
 Keyboard Macros
 
@@ -448,9 +448,9 @@
 
 Backup Files
 
-* Backup Names::	How backup files are named.
-* Backup Deletion::	Emacs deletes excess numbered backups.
-* Backup Copying::	Backups can be made by copying or renaming.
+* Backup Names::        How backup files are named.
+* Backup Deletion::     Emacs deletes excess numbered backups.
+* Backup Copying::      Backups can be made by copying or renaming.
 
 Auto Reverting Non-File Buffers
 
@@ -463,16 +463,16 @@
 * Auto Save Files::     The file where auto-saved changes are
                           actually made until you save the file.
 * Auto Save Control::   Controlling when and how often to auto-save.
-* Recover::	        Recovering text from auto-save files.
+* Recover::             Recovering text from auto-save files.
 
 Using Multiple Buffers
 
 * Select Buffer::       Creating a new buffer or reselecting an old one.
 * List Buffers::        Getting a list of buffers that exist.
-* Misc Buffer::	        Renaming; changing read-onlyness; copying text.
-* Kill Buffer::	        Killing buffers you no longer need.
+* Misc Buffer::         Renaming; changing read-onlyness; copying text.
+* Kill Buffer::         Killing buffers you no longer need.
 * Several Buffers::     How to go through the list of all buffers
-			  and operate variously on several of them.
+                          and operate variously on several of them.
 * Indirect Buffers::    An indirect buffer shares the text of another buffer.
 * Buffer Convenience::  Convenience and customization features for
                           buffer handling.
@@ -507,10 +507,10 @@
 * Multiple Displays::   How one Emacs job can talk to several displays.
 * Special Buffer Frames::  You can make certain buffers have their own frames.
 * Frame Parameters::    Changing the colors and other modes of frames.
-* Scroll Bars::	        How to enable and disable scroll bars; how to use them.
+* Scroll Bars::         How to enable and disable scroll bars; how to use them.
 * Wheeled Mice::        Using mouse wheels for scrolling.
 * Drag and Drop::       Using drag and drop to open files and insert text.
-* Menu Bars::	        Enabling and disabling the menu bar.
+* Menu Bars::           Enabling and disabling the menu bar.
 * Tool Bars::           Enabling and disabling the tool bar.
 * Dialog Boxes::        Controlling use of dialog boxes.
 * Tooltips::            Displaying information at the current mouse position.
@@ -559,31 +559,31 @@
 Indentation
 
 * Indentation Commands::  Various commands and techniques for indentation.
-* Tab Stops::		  You can set arbitrary "tab stops" and then
-			    indent to the next tab stop when you want to.
-* Just Spaces::		  You can request indentation using just spaces.
+* Tab Stops::             You can set arbitrary "tab stops" and then
+                            indent to the next tab stop when you want to.
+* Just Spaces::           You can request indentation using just spaces.
 
 Commands for Human Languages
 
-* Words::	        Moving over and killing words.
-* Sentences::	        Moving over and killing sentences.
-* Paragraphs::	        Moving over paragraphs.
-* Pages::	        Moving over pages.
-* Filling::	        Filling or justifying text.
-* Case::	        Changing the case of text.
-* Text Mode::	        The major modes for editing text files.
+* Words::               Moving over and killing words.
+* Sentences::           Moving over and killing sentences.
+* Paragraphs::          Moving over paragraphs.
+* Pages::               Moving over pages.
+* Filling::             Filling or justifying text.
+* Case::                Changing the case of text.
+* Text Mode::           The major modes for editing text files.
 * Outline Mode::        Editing outlines.
-* TeX Mode::	        Editing input to the formatter TeX.
+* TeX Mode::            Editing input to the formatter TeX.
 * HTML Mode::           Editing HTML and SGML files.
-* Nroff Mode::	        Editing input to the formatter nroff.
+* Nroff Mode::          Editing input to the formatter nroff.
 * Formatted Text::      Editing formatted text directly in WYSIWYG fashion.
 * Text Based Tables::   Editing text-based tables in WYSIWYG fashion.
 
 Filling Text
 
-* Auto Fill::	        Auto Fill mode breaks long lines automatically.
+* Auto Fill::           Auto Fill mode breaks long lines automatically.
 * Fill Commands::       Commands to refill paragraphs and center lines.
-* Fill Prefix::	        Filling paragraphs that are indented
+* Fill Prefix::         Filling paragraphs that are indented
                           or in a comment, etc.
 * Adaptive Fill::       How Emacs can determine the fill prefix automatically.
 * Refill::              Keeping paragraphs filled.
@@ -592,7 +592,7 @@
 Outline Mode
 
 * Outline Format::      What the text of an outline looks like.
-* Outline Motion::	Special commands for moving through
+* Outline Motion::      Special commands for moving through
                           outlines.
 * Outline Visibility::  Commands to control what is visible.
 * Outline Views::       Outlines and multiple views.
@@ -644,7 +644,7 @@
                           of a program.
 * Program Indent::      Adjusting indentation to show the nesting.
 * Parentheses::         Commands that operate on parentheses.
-* Comments::	        Inserting, killing, and aligning comments.
+* Comments::            Inserting, killing, and aligning comments.
 * Documentation::       Getting documentation of functions you plan to call.
 * Hideshow::            Displaying blocks selectively.
 * Symbol Completion::   Completion on symbol names of your program or language.
@@ -666,18 +666,18 @@
 
 Indentation for Programs
 
-* Basic Indent::	Indenting a single line.
+* Basic Indent::        Indenting a single line.
 * Multi-line Indent::   Commands to reindent many lines at once.
-* Lisp Indent::		Specifying how each Lisp function should be indented.
-* C Indent::		Extra features for indenting C and related modes.
-* Custom C Indent::	Controlling indentation style for C and related modes.
+* Lisp Indent::         Specifying how each Lisp function should be indented.
+* C Indent::            Extra features for indenting C and related modes.
+* Custom C Indent::     Controlling indentation style for C and related modes.
 
 Commands for Editing with Parentheses
 
 * Expressions::         Expressions with balanced parentheses.
 * Moving by Parens::    Commands for moving up, down and across
                           in the structure of parentheses.
-* Matching::	        Insertion of a close-delimiter flashes matching open.
+* Matching::            Insertion of a close-delimiter flashes matching open.
 
 Manipulating Comments
 
@@ -702,12 +702,12 @@
 
 Fortran Mode
 
-* Fortran Motion::	Moving point by statements or subprograms.
-* Fortran Indent::	Indentation commands for Fortran.
-* Fortran Comments::	Inserting and aligning comments.
-* Fortran Autofill::	Auto fill support for Fortran.
-* Fortran Columns::	Measuring columns for valid Fortran.
-* Fortran Abbrev::	Built-in abbrevs for Fortran keywords.
+* Fortran Motion::      Moving point by statements or subprograms.
+* Fortran Indent::      Indentation commands for Fortran.
+* Fortran Comments::    Inserting and aligning comments.
+* Fortran Autofill::    Auto fill support for Fortran.
+* Fortran Columns::     Measuring columns for valid Fortran.
+* Fortran Abbrev::      Built-in abbrevs for Fortran keywords.
 
 Fortran Indentation
 
@@ -719,28 +719,28 @@
 
 Compiling and Testing Programs
 
-* Compilation::		Compiling programs in languages other
-			  than Lisp (C, Pascal, etc.).
+* Compilation::         Compiling programs in languages other
+                          than Lisp (C, Pascal, etc.).
 * Compilation Mode::    The mode for visiting compiler errors.
 * Compilation Shell::   Customizing your shell properly
                           for use in the compilation buffer.
 * Grep Searching::      Searching with grep.
 * Flymake::             Finding syntax errors on the fly.
-* Debuggers::		Running symbolic debuggers for non-Lisp programs.
-* Executing Lisp::	Various modes for editing Lisp programs,
-			  with different facilities for running
-			  the Lisp programs.
+* Debuggers::           Running symbolic debuggers for non-Lisp programs.
+* Executing Lisp::      Various modes for editing Lisp programs,
+                          with different facilities for running
+                          the Lisp programs.
 * Lisp Libraries::      Creating Lisp programs to run in Emacs.
-* Lisp Eval::		Executing a single Lisp expression in Emacs.
+* Lisp Eval::           Executing a single Lisp expression in Emacs.
 * Lisp Interaction::    Executing Lisp in an Emacs buffer.
-* External Lisp::	Communicating through Emacs with a separate Lisp.
+* External Lisp::       Communicating through Emacs with a separate Lisp.
 
 Running Debuggers Under Emacs
 
-* Starting GUD::	How to start a debugger subprocess.
-* Debugger Operation::	Connection between the debugger and source buffers.
-* Commands of GUD::	Key bindings for common commands.
-* GUD Customization::	Defining your own commands for GUD.
+* Starting GUD::        How to start a debugger subprocess.
+* Debugger Operation::  Connection between the debugger and source buffers.
+* Commands of GUD::     Key bindings for common commands.
+* GUD Customization::   Defining your own commands for GUD.
 * GDB Graphical Interface::  An enhanced mode that uses GDB features to
                           implement a graphical debugging environment through
                           Emacs.
@@ -759,9 +759,9 @@
 Maintaining Large Programs
 
 * Version Control::     Using version control systems.
-* 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.
+* 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.
 
@@ -842,25 +842,25 @@
 
 Tags Tables
 
-* Tag Syntax::		Tag syntax for various types of code and text files.
-* Create Tags Table::	Creating a tags table with @code{etags}.
+* Tag Syntax::          Tag syntax for various types of code and text files.
+* Create Tags Table::   Creating a tags table with @code{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.
+* 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.
 
 Merging Files with Emerge
 
-* Overview of Emerge::	How to start Emerge.  Basic concepts.
-* Submodes of Emerge::	Fast mode vs. Edit mode.
-			  Skip Prefers mode and Auto Advance mode.
-* State of Difference::	You do the merge by specifying state A or B
-			  for each difference.
-* Merge Commands::	Commands for selecting a difference,
-			  changing states of differences, etc.
-* Exiting Emerge::	What to do when you've finished the merge.
-* Combining in Emerge::	    How to keep both alternatives for a difference.
+* Overview of Emerge::  How to start Emerge.  Basic concepts.
+* Submodes of Emerge::  Fast mode vs. Edit mode.
+                          Skip Prefers mode and Auto Advance mode.
+* State of Difference:: You do the merge by specifying state A or B
+                          for each difference.
+* Merge Commands::      Commands for selecting a difference,
+                          changing states of differences, etc.
+* Exiting Emerge::      What to do when you've finished the merge.
+* Combining in Emerge::     How to keep both alternatives for a difference.
 * Fine Points of Emerge::   Miscellaneous issues.
 
 Abbrevs
@@ -885,10 +885,10 @@
 
 Sending Mail
 
-* Mail Format:: 	Format of the mail being composed.
+* Mail Format::         Format of the mail being composed.
 * 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.
+* Mail Commands::       Special commands for editing mail being composed.
 * Mail Signature::      Adding a signature to every message.
 * Mail Amusements::     Distracting the NSA; adding fortune messages.
 * Mail Methods::        Using alternative mail-composition methods.
@@ -926,28 +926,28 @@
 
 Summaries
 
-* Rmail Make Summary::	     Making various sorts of summaries.
-* Rmail Summary Edit::	     Manipulating messages from the summary.
+* Rmail Make Summary::       Making various sorts of summaries.
+* Rmail Summary Edit::       Manipulating messages from the summary.
 
 Dired, the Directory Editor
 
-* Dired Enter:: 	     How to invoke Dired.
+* Dired Enter::              How to invoke Dired.
 * Dired Navigation::         Special motion commands in the Dired buffer.
 * Dired Deletion::           Deleting files with Dired.
 * Flagging Many Files::      Flagging files based on their names.
 * Dired Visiting::           Other file operations through Dired.
-* Marks vs Flags::	     Flagging for deletion vs marking.
-* Operating on Files::	     How to copy, rename, print, compress, etc.
-			       either one file or several files.
+* Marks vs Flags::           Flagging for deletion vs marking.
+* Operating on Files::       How to copy, rename, print, compress, etc.
+                               either one file or several files.
 * Shell Commands in Dired::  Running a shell command on the marked files.
 * Transforming File Names::  Using patterns to rename multiple files.
-* Comparison in Dired::	     Running `diff' by way of Dired.
+* Comparison in Dired::      Running `diff' by way of Dired.
 * Subdirectories in Dired::  Adding subdirectories to the Dired buffer.
 * Subdir Switches::          Subdirectory switches in Dired.
-* Subdirectory Motion::	     Moving across subdirectories, and up and down.
+* Subdirectory Motion::      Moving across subdirectories, and up and down.
 * Hiding Subdirectories::    Making subdirectories visible or invisible.
 * Dired Updating::           Discarding lines for files of no interest.
-* Dired and Find::	     Using `find' to choose the files for Dired.
+* Dired and Find::           Using `find' to choose the files for Dired.
 * Wdired::                   Operating on files by editing the Dired buffer.
 * Image-Dired::              Viewing image thumbnails in Dired.
 * Misc Dired Features::      Various other features.
@@ -964,7 +964,7 @@
 * Lunar Phases::        Displaying phases of the moon.
 * Other Calendars::     Converting dates to other calendar systems.
 * Diary::               Displaying events from your diary.
-* Appointments::	Reminders when it's time to do something.
+* Appointments::        Reminders when it's time to do something.
 * Importing Diary::     Converting diary events to/from other formats.
 * Daylight Saving::    How to specify when daylight saving time is active.
 * Time Intervals::      Keeping track of time intervals.
@@ -974,23 +974,23 @@
 
 * Calendar Unit Motion::      Moving by days, weeks, months, and years.
 * Move to Beginning or End::  Moving to start/end of weeks, months, and years.
-* Specified Dates::	      Moving to the current date or another
-				specific date.
+* Specified Dates::           Moving to the current date or another
+                                specific date.
 
 Conversion To and From Other Calendars
 
-* Calendar Systems::	   The calendars Emacs understands
-			     (aside from Gregorian).
-* To Other Calendar::	   Converting the selected date to various calendars.
-* From Other Calendar::	   Moving to a date specified in another calendar.
-* Mayan Calendar::	   Moving to a date specified in a Mayan calendar.
+* Calendar Systems::       The calendars Emacs understands
+                             (aside from Gregorian).
+* To Other Calendar::      Converting the selected date to various calendars.
+* From Other Calendar::    Moving to a date specified in another calendar.
+* Mayan Calendar::         Moving to a date specified in a Mayan calendar.
 
 The Diary
 
 * Displaying the Diary::   Viewing diary entries and associated calendar dates.
 * Format of Diary File::   Entering events in your diary.
-* Date Formats::	   Various ways you can specify dates.
-* Adding to Diary::	   Commands to create diary entries.
+* Date Formats::           Various ways you can specify dates.
+* Adding to Diary::        Commands to create diary entries.
 * Special Diary Entries::  Anniversaries, blocks of dates, cyclic entries, etc.
 
 Customizing the Calendar and Diary
@@ -1007,22 +1007,22 @@
 
 Document Viewing
 
-* Navigation::	Navigation inside DocView buffers.
-* Searching::	Searching inside documents.
-* Slicing::	Specifying which part of pages should be displayed.
-* Conversion::	Influencing and triggering conversion.
+* Navigation::  Navigation inside DocView buffers.
+* Searching::   Searching inside documents.
+* Slicing::     Specifying which part of pages should be displayed.
+* Conversion::  Influencing and triggering conversion.
 
 Gnus
 
-* Buffers of Gnus::	The group, summary, and article buffers.
-* Gnus Startup::	What you should know about starting Gnus.
-* Summary of Gnus::	A short description of the basic Gnus commands.
+* Buffers of Gnus::     The group, summary, and article buffers.
+* Gnus Startup::        What you should know about starting Gnus.
+* Summary of Gnus::     A short description of the basic Gnus commands.
 
 Running Shell Commands from Emacs
 
-* Single Shell::	How to run one shell command and return.
-* Interactive Shell::	Permanent shell taking input via Emacs.
-* Shell Mode::		Special Emacs commands used with permanent shell.
+* Single Shell::        How to run one shell command and return.
+* Interactive Shell::   Permanent shell taking input via Emacs.
+* Shell Mode::          Special Emacs commands used with permanent shell.
 * Shell Prompts::       Two ways to recognize shell prompts.
 * Shell History::       Repeating previous commands in a shell buffer.
 * Directory Tracking::  Keeping track when the subshell changes directory.
@@ -1030,7 +1030,7 @@
 * Terminal emulator::   An Emacs window as a terminal emulator.
 * Term Mode::           Special Emacs commands used in Term mode.
 * Paging in Term::      Paging in the terminal emulator.
-* Remote Host::		Connecting to another computer.
+* Remote Host::         Connecting to another computer.
 * Serial Terminal::     Connecting to a serial port.
 
 Shell Command History
@@ -1046,7 +1046,7 @@
 
 Printing Hard Copies
 
-* PostScript::	         Printing buffers or regions as PostScript.
+* PostScript::           Printing buffers or regions as PostScript.
 * PostScript Variables:: Customizing the PostScript printing commands.
 * Printing Package::     An optional advanced printing interface.
 
@@ -1058,18 +1058,18 @@
 
 Customization
 
-* Minor Modes::		Each minor mode is a feature you can turn on
-			  independently of any others.
+* Minor Modes::         Each minor mode is a feature you can turn on
+                          independently of any others.
 * Easy Customization::  Convenient way to browse and change settings.
-* Variables::		Many Emacs commands examine Emacs variables
-			  to decide what to do; by setting variables,
-			  you can control their functioning.
-* Key Bindings::	The keymaps say what command each key runs.
-			  By changing them, you can "redefine keys".
-* Syntax::		The syntax table controls how words and
-			  expressions are parsed.
-* Init File::		How to write common customizations in the
-			  @file{.emacs} file.
+* Variables::           Many Emacs commands examine Emacs variables
+                          to decide what to do; by setting variables,
+                          you can control their functioning.
+* Key Bindings::        The keymaps say what command each key runs.
+                          By changing them, you can "redefine keys".
+* Syntax::              The syntax table controls how words and
+                          expressions are parsed.
+* Init File::           How to write common customizations in the
+                          @file{.emacs} file.
 
 Easy Customization Interface
 
@@ -1085,10 +1085,10 @@
 
 Variables
 
-* Examining::	        Examining or setting one variable's value.
-* Hooks::	        Hook variables let you specify programs for parts
-		          of Emacs to run on particular occasions.
-* Locals::	        Per-buffer values of variables.
+* Examining::           Examining or setting one variable's value.
+* Hooks::               Hook variables let you specify programs for parts
+                          of Emacs to run on particular occasions.
+* Locals::              Per-buffer values of variables.
 * File Variables::      How files can specify variable values.
 * Directory Variables:: How variable values can be specified by directory.
 
@@ -1115,10 +1115,10 @@
 
 The Init File, @file{~/.emacs}
 
-* Init Syntax::	        Syntax of constants in Emacs Lisp.
+* Init Syntax::         Syntax of constants in Emacs Lisp.
 * Init Examples::       How to do some things with an init file.
 * Terminal Init::       Each terminal type can have an init file.
-* Find Init::	        How Emacs finds the init file.
+* Find Init::           How Emacs finds the init file.
 * Init Non-ASCII::      Using non-@acronym{ASCII} characters in an init file.
 
 Dealing with Emacs Trouble
@@ -1136,31 +1136,31 @@
 Reporting Bugs
 
 * Bug Criteria::        Have you really found a bug?
-* Understanding Bug Reporting::	How to report a bug effectively.
-* Checklist::		Steps to follow for a good bug report.
-* Sending Patches::	How to send a patch for GNU Emacs.
+* Understanding Bug Reporting:: How to report a bug effectively.
+* Checklist::           Steps to follow for a good bug report.
+* Sending Patches::     How to send a patch for GNU Emacs.
 
 Command Line Arguments for Emacs Invocation
 
-* Action Arguments::	Arguments to visit files, load libraries,
-			  and call functions.
+* Action Arguments::    Arguments to visit files, load libraries,
+                          and call functions.
 * Initial Options::     Arguments that take effect while starting Emacs.
 * Command Example::     Examples of using command line arguments.
-* Resume Arguments::	Specifying arguments when you resume a running Emacs.
+* Resume Arguments::    Specifying arguments when you resume a running Emacs.
 * Environment::         Environment variables that Emacs uses.
 * Display X::           Changing the default display and using remote login.
-* Font X::	        Choosing a font for text, under X.
-* Colors::	        Choosing display colors.
+* Font X::              Choosing a font for text, under X.
+* Colors::              Choosing display colors.
 * Window Size X::       Start-up window size, under X.
-* Borders X::	        Internal and external borders, under X.
+* Borders X::           Internal and external borders, under X.
 * Title X::             Specifying the initial frame's title.
 * Icons X::             Choosing what sort of icon to use, under X.
 * Misc X::              Other display options.
 
 Environment Variables
 
-* General Variables::	Environment variables that all versions of Emacs use.
-* Misc Variables::	Certain system-specific variables.
+* General Variables::   Environment variables that all versions of Emacs use.
+* Misc Variables::      Certain system-specific variables.
 * MS-Windows Registry:: An alternative to the environment on MS-Windows.
 
 X Options and Resources
--- a/doc/emacs/emerge-xtra.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/emerge-xtra.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,5 +1,6 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @c This file is included either in emacs-xtra.texi (when producing the
@@ -22,16 +23,16 @@
 and @ref{Top, Ediff,, ediff, The Ediff Manual}.
 
 @menu
-* Overview of Emerge::	How to start Emerge.  Basic concepts.
-* Submodes of Emerge::	Fast mode vs. Edit mode.
-			  Skip Prefers mode and Auto Advance mode.
-* State of Difference::	You do the merge by specifying state A or B
-			  for each difference.
-* Merge Commands::	Commands for selecting a difference,
-			  changing states of differences, etc.
-* Exiting Emerge::	What to do when you've finished the merge.
-* Combining in Emerge::	    How to keep both alternatives for a difference.
-* Fine Points of Emerge::   Miscellaneous issues.
+* Overview of Emerge::     How to start Emerge.  Basic concepts.
+* Submodes of Emerge::     Fast mode vs. Edit mode.
+                             Skip Prefers mode and Auto Advance mode.
+* State of Difference::    You do the merge by specifying state A or B
+                             for each difference.
+* Merge Commands::         Commands for selecting a difference,
+                             changing states of differences, etc.
+* Exiting Emerge::         What to do when you've finished the merge.
+* Combining in Emerge::    How to keep both alternatives for a difference.
+* Fine Points of Emerge::  Miscellaneous issues.
 @end menu
 
 @node Overview of Emerge
--- a/doc/emacs/files.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/files.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,6 +1,7 @@
 @c This is part of the Emacs manual.
 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
-@c   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Files, Buffers, Keyboard Macros, Top
 @chapter File Handling
@@ -553,9 +554,9 @@
 another from the newly saved contents if you save again.
 
 @menu
-* Names: Backup Names.		How backup files are named.
-* Deletion: Backup Deletion.	Emacs deletes excess numbered backups.
-* Copying: Backup Copying.	Backups can be made by copying or renaming.
+* Names: Backup Names.          How backup files are named.
+* Deletion: Backup Deletion.    Emacs deletes excess numbered backups.
+* Copying: Backup Copying.      Backups can be made by copying or renaming.
 @end menu
 
 @node Backup Names
@@ -994,7 +995,7 @@
 * Files: Auto Save Files.       The file where auto-saved changes are
                                   actually made until you save the file.
 * Control: Auto Save Control.   Controlling when and how often to auto-save.
-* Recover::		        Recovering text from auto-save files.
+* Recover::                     Recovering text from auto-save files.
 @end menu
 
 @node Auto Save Files
--- a/doc/emacs/fortran-xtra.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/fortran-xtra.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,5 +1,6 @@
 @c This is part of the Emacs manual.
-@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @c
 @c This file is included either in emacs-xtra.texi (when producing the
@@ -57,12 +58,12 @@
 @end ifnottex
 
 @menu
-* Motion: Fortran Motion.	 Moving point by statements or subprograms.
-* Indent: Fortran Indent.	 Indentation commands for Fortran.
-* Comments: Fortran Comments.	 Inserting and aligning comments.
-* Autofill: Fortran Autofill.	 Auto fill support for Fortran.
-* Columns: Fortran Columns.	 Measuring columns for valid Fortran.
-* Abbrev: Fortran Abbrev.	 Built-in abbrevs for Fortran keywords.
+* Motion: Fortran Motion.        Moving point by statements or subprograms.
+* Indent: Fortran Indent.        Indentation commands for Fortran.
+* Comments: Fortran Comments.    Inserting and aligning comments.
+* Autofill: Fortran Autofill.    Auto fill support for Fortran.
+* Columns: Fortran Columns.      Measuring columns for valid Fortran.
+* Abbrev: Fortran Abbrev.        Built-in abbrevs for Fortran keywords.
 @end menu
 
 @node Fortran Motion
--- a/doc/emacs/frames.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/frames.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,6 +1,7 @@
 @c This is part of the Emacs manual.
 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
-@c   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c   2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Frames, International, Windows, Top
 @chapter Frames and Graphical Displays
@@ -44,10 +45,10 @@
 * Multiple Displays::   How one Emacs job can talk to several displays.
 * Special Buffer Frames::  You can make certain buffers have their own frames.
 * Frame Parameters::    Changing the colors and other modes of frames.
-* Scroll Bars::	        How to enable and disable scroll bars; how to use them.
+* Scroll Bars::         How to enable and disable scroll bars; how to use them.
 * Wheeled Mice::        Using mouse wheels for scrolling.
 * Drag and Drop::       Using drag and drop to open files and insert text.
-* Menu Bars::	        Enabling and disabling the menu bar.
+* Menu Bars::           Enabling and disabling the menu bar.
 * Tool Bars::           Enabling and disabling the tool bar.
 * Dialog Boxes::        Controlling use of dialog boxes.
 * Tooltips::            Displaying information at the current mouse position.
--- a/doc/emacs/help.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/help.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -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 Help, Mark, M-x, Top
 @chapter Help
@@ -69,14 +70,14 @@
 @end table
 
 @menu
-* Help Summary::	Brief list of all Help commands.
-* Key Help::		Asking what a key does in Emacs.
-* Name Help::		Asking about a command, variable or function name.
-* Apropos::		Asking what pertains to a given topic.
+* Help Summary::        Brief list of all Help commands.
+* Key Help::            Asking what a key does in Emacs.
+* Name Help::           Asking about a command, variable or function name.
+* Apropos::             Asking what pertains to a given topic.
 * Help Mode::           Special features of Help mode and Help buffers.
-* Library Keywords::	Finding Lisp libraries by keywords (topics).
+* Library Keywords::    Finding Lisp libraries by keywords (topics).
 * Language Help::       Help relating to international language support.
-* Misc Help::		Other help commands.
+* Misc Help::           Other help commands.
 * Help Files::          Commands to display pre-written help files.
 * Help Echo::           Help on active text and tooltips (`balloon help').
 @end menu
--- a/doc/emacs/killing.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/killing.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -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 Killing, Yanking, Mark, Top
@@ -260,9 +261,9 @@
 instead of text killed within Emacs.
 
 @menu
-* Kill Ring::		Where killed text is stored.  Basic yanking.
-* Appending Kills::	Several kills in a row all yank together.
-* Earlier Kills::	Yanking something killed some time ago.
+* Kill Ring::           Where killed text is stored.  Basic yanking.
+* Appending Kills::     Several kills in a row all yank together.
+* Earlier Kills::       Yanking something killed some time ago.
 @end menu
 
 @node Kill Ring
--- a/doc/emacs/maintaining.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/maintaining.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -11,9 +11,9 @@
 
 @menu
 * Version Control::     Using version control systems.
-* 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.
+* 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.
@@ -1570,13 +1570,13 @@
 @xref{Top,, Ebrowse, ebrowse, Ebrowse User's Manual}.
 
 @menu
-* Tag Syntax::		Tag syntax for various types of code and text files.
-* Create Tags Table::	Creating a tags table with @code{etags}.
+* Tag Syntax::          Tag syntax for various types of code and text files.
+* Create Tags Table::   Creating a tags table with @code{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.
+* 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.
 @end menu
 
 @node Tag Syntax
--- a/doc/emacs/mark.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/mark.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,6 +1,7 @@
 @c This is part of the Emacs manual.
 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
-@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Mark, Killing, Help, Top
 @chapter The Mark and the Region
@@ -41,13 +42,13 @@
 non-@code{nil}, each window highlights its own region.
 
 @menu
-* Setting Mark::	Commands to set the mark.
-* Marking Objects::	Commands to put region around textual units.
-* Using Region::	Summary of ways to operate on contents of the region.
-* Mark Ring::   	Previous mark positions saved so you can go back there.
+* Setting Mark::        Commands to set the mark.
+* Marking Objects::     Commands to put region around textual units.
+* Using Region::        Summary of ways to operate on contents of the region.
+* Mark Ring::           Previous mark positions saved so you can go back there.
 * Global Mark Ring::    Previous mark positions in various buffers.
 * Shift Selection::     Using shifted cursor motion keys.
-* Persistent Mark::	Keeping the mark active all the time.
+* Persistent Mark::     Keeping the mark active all the time.
 @end menu
 
 @node Setting Mark
--- a/doc/emacs/mini.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/mini.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -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 Minibuffer, M-x, Basic, Top
 @chapter The Minibuffer
@@ -43,9 +44,9 @@
 @menu
 * Minibuffer File::       Entering file names with the minibuffer.
 * Minibuffer Edit::       How to edit in the minibuffer.
-* Completion::		  An abbreviation facility for minibuffer input.
+* Completion::            An abbreviation facility for minibuffer input.
 * Minibuffer History::    Reusing recent minibuffer arguments.
-* Repetition::		  Re-executing commands that used the minibuffer.
+* Repetition::            Re-executing commands that used the minibuffer.
 * Passwords::             Entering passwords in the echo area.
 @end menu
 
--- a/doc/emacs/misc.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/misc.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -71,10 +71,10 @@
 (@code{quit-window}).
 
 @menu
-* Navigation::	Navigation inside DocView buffers.
-* Searching::	Searching inside documents.
-* Slicing::	Specifying which part of pages should be displayed.
-* Conversion::	Influencing and triggering conversion.
+* Navigation::  Navigation inside DocView buffers.
+* Searching::   Searching inside documents.
+* Slicing::     Specifying which part of pages should be displayed.
+* Conversion::  Influencing and triggering conversion.
 @end menu
 
 @node Navigation
@@ -211,9 +211,9 @@
 To start Gnus, type @kbd{M-x gnus @key{RET}}.
 
 @menu
-* Buffers of Gnus::	The group, summary, and article buffers.
-* Gnus Startup::	What you should know about starting Gnus.
-* Summary of Gnus::	A short description of the basic Gnus commands.
+* Buffers of Gnus::     The group, summary, and article buffers.
+* Gnus Startup::        What you should know about starting Gnus.
+* Summary of Gnus::     A short description of the basic Gnus commands.
 @end menu
 
 @node Buffers of Gnus
@@ -1757,7 +1757,7 @@
 not compatible with @code{lpr}.
 
 @menu
-* PostScript::	         Printing buffers or regions as PostScript.
+* PostScript::           Printing buffers or regions as PostScript.
 * PostScript Variables:: Customizing the PostScript printing commands.
 * Printing Package::     An optional advanced printing interface.
 @end menu
--- a/doc/emacs/msdog.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/msdog.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -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 Microsoft Windows, Manifesto, Mac OS / GNUstep, Top
 @appendix Emacs and Microsoft Windows/MS-DOS
@@ -761,8 +762,8 @@
 (setq ps-printer-name t)
 (setq ps-lpr-command "D:/gs6.01/bin/gswin32c.exe")
 (setq ps-lpr-switches '("-q" "-dNOPAUSE" "-dBATCH"
-			"-sDEVICE=mswinpr2"
-			"-sPAPERSIZE=a4"))
+                        "-sDEVICE=mswinpr2"
+                        "-sPAPERSIZE=a4"))
 @end example
 
 @noindent
--- a/doc/emacs/mule.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/mule.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -221,7 +221,7 @@
         character: @`A (192, #o300, #xc0)
 preferred charset: unicode (Unicode (ISO10646))
        code point: 0xC0
-           syntax: w 	which means: word
+           syntax: w    which means: word
          category: j:Japanese l:Latin v:Vietnamese
       buffer code: #xC3 #x80
         file code: not encodable by coding system undecided-unix
--- a/doc/emacs/programs.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/programs.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -34,7 +34,7 @@
                           of a program.
 * Program Indent::      Adjusting indentation to show the nesting.
 * Parentheses::         Commands that operate on parentheses.
-* Comments::	        Inserting, killing, and aligning comments.
+* Comments::            Inserting, killing, and aligning comments.
 * Documentation::       Getting documentation of functions you plan to call.
 * Hideshow::            Displaying blocks selectively.
 * Symbol Completion::   Completion on symbol names of your program or language.
@@ -354,11 +354,11 @@
 single parenthetical grouping.
 
 @menu
-* Basic Indent::	Indenting a single line.
+* Basic Indent::        Indenting a single line.
 * Multi-line Indent::   Commands to reindent many lines at once.
-* Lisp Indent::		Specifying how each Lisp function should be indented.
-* C Indent::		Extra features for indenting C and related modes.
-* Custom C Indent::	Controlling indentation style for C and related modes.
+* Lisp Indent::         Specifying how each Lisp function should be indented.
+* C Indent::            Extra features for indenting C and related modes.
+* Custom C Indent::     Controlling indentation style for C and related modes.
 @end menu
 
 @cindex pretty-printer
@@ -652,7 +652,7 @@
 * Expressions::         Expressions with balanced parentheses.
 * Moving by Parens::    Commands for moving up, down and across
                           in the structure of parentheses.
-* Matching::	        Insertion of a close-delimiter flashes matching open.
+* Matching::            Insertion of a close-delimiter flashes matching open.
 @end menu
 
 @node Expressions
--- a/doc/emacs/rmail.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/rmail.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,6 +1,7 @@
 @c This is part of the Emacs manual.
 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
-@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Rmail, Dired, Sending Mail, Top
 @chapter Reading Mail with Rmail
@@ -21,7 +22,7 @@
 * Deletion: Rmail Deletion.  Deleting and expunging messages.
 * Inbox: Rmail Inbox.        How mail gets into the Rmail file.
 * Files: Rmail Files.        Using multiple Rmail files.
-* Output: Rmail Output.	     Copying messages out to files.
+* Output: Rmail Output.      Copying messages out to files.
 * Labels: Rmail Labels.      Classifying messages by labeling them.
 * Attrs: Rmail Attributes.   Certain standard labels, called attributes.
 * Reply: Rmail Reply.        Sending replies to messages you are viewing.
@@ -31,7 +32,7 @@
 * Coding: Rmail Coding.      How Rmail handles decoding character sets.
 * Editing: Rmail Editing.    Editing message text and headers in Rmail.
 * Digest: Rmail Digest.      Extracting the messages from a digest message.
-* Rot13: Rmail Rot13.	     Reading messages encoded in the rot13 code.
+* Rot13: Rmail Rot13.        Reading messages encoded in the rot13 code.
 * Movemail::                 More details of fetching new mail.
 * Remote Mailboxes::         Retrieving mail from remote mailboxes.
 * Other Mailbox Formats::    Retrieving mail from local mailboxes in
@@ -834,8 +835,8 @@
 time.
 
 @menu
-* Rmail Make Summary::	     Making various sorts of summaries.
-* Rmail Summary Edit::	     Manipulating messages from the summary.
+* Rmail Make Summary::       Making various sorts of summaries.
+* Rmail Summary Edit::       Manipulating messages from the summary.
 @end menu
 
 @node Rmail Make Summary
--- a/doc/emacs/screen.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/screen.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,6 +1,7 @@
 @c This is part of the Emacs manual.
 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2001, 2002,
-@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Screen, User Input, Acknowledgments, Top
 @chapter The Organization of the Screen
@@ -53,10 +54,10 @@
 selecting a particular frame selects a window in that frame.
 
 @menu
-* Point::	        The place in the text where editing commands operate.
-* Echo Area::           Short messages appear at the bottom of the screen.
-* Mode Line::	        Interpreting the mode line.
-* Menu Bar::            How to use the menu bar.
+* Point::             The place in the text where editing commands operate.
+* Echo Area::         Short messages appear at the bottom of the screen.
+* Mode Line::         Interpreting the mode line.
+* Menu Bar::          How to use the menu bar.
 @end menu
 
 @node Point
--- a/doc/emacs/search.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/search.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,6 +1,7 @@
 @c This is part of the Emacs manual.
 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002,
-@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Search, Fixit, Display, Top
 @chapter Searching and Replacement
@@ -19,16 +20,16 @@
 
 
 @menu
-* Incremental Search::		Search happens as you type the string.
-* Nonincremental Search::	Specify entire string and then search.
-* Word Search::			Search for sequence of words.
-* Regexp Search::		Search for match for a regexp.
-* Regexps::			Syntax of regular expressions.
-* Regexp Backslash::            Regular expression constructs starting with `\'.
-* Regexp Example::              A complex regular expression explained.
-* Search Case::			To ignore case while searching, or not.
-* Replace::			Search, and replace some or all matches.
-* Other Repeating Search::	Operating on all matches for some regexp.
+* Incremental Search::        Search happens as you type the string.
+* Nonincremental Search::     Specify entire string and then search.
+* Word Search::               Search for sequence of words.
+* Regexp Search::             Search for match for a regexp.
+* Regexps::                   Syntax of regular expressions.
+* Regexp Backslash::          Regular expression constructs starting with `\'.
+* Regexp Example::            A complex regular expression explained.
+* Search Case::               To ignore case while searching, or not.
+* Replace::                   Search, and replace some or all matches.
+* Other Repeating Search::    Operating on all matches for some regexp.
 @end menu
 
 @node Incremental Search
@@ -983,10 +984,10 @@
 command @code{expand-region-abbrevs} (@pxref{Expanding Abbrevs}).
 
 @menu
-* Unconditional Replace::	Replacing all matches for a string.
-* Regexp Replace::		Replacing all matches for a regexp.
-* Replacement and Case::	How replacements preserve case of letters.
-* Query Replace::		How to use querying.
+* Unconditional Replace::   Replacing all matches for a string.
+* Regexp Replace::          Replacing all matches for a regexp.
+* Replacement and Case::    How replacements preserve case of letters.
+* Query Replace::           How to use querying.
 @end menu
 
 @node Unconditional Replace, Regexp Replace, Replace, Replace
--- a/doc/emacs/sending.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/sending.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,6 +1,7 @@
 @c This is part of the Emacs manual.
 @c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002,
-@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See file emacs.texi for copying conditions.
 @node Sending Mail
 @chapter Sending Mail
@@ -63,7 +64,7 @@
 cannot receive mail via SMTP (@pxref{Mail Headers}).
 
 @menu
-* Format: Mail Format.	      Format of a mail message.
+* Format: Mail Format.        Format of a mail message.
 * Headers: Mail Headers.      Details of some standard mail header fields.
 * Aliases: Mail Aliases.      Abbreviating and grouping mail addresses.
 * Commands: Mail Commands.    Special commands for editing mail being composed.
--- a/doc/emacs/text.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/text.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -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 Text, Programs, Indentation, Top
 @chapter Commands for Human Languages
@@ -57,17 +58,17 @@
 @inforef{Top,, autotype}.
 
 @menu
-* Words::	        Moving over and killing words.
-* Sentences::	        Moving over and killing sentences.
-* Paragraphs::	        Moving over paragraphs.
-* Pages::	        Moving over pages.
-* Filling::	        Filling or justifying text.
-* Case::	        Changing the case of text.
-* Text Mode::	        The major modes for editing text files.
+* Words::               Moving over and killing words.
+* Sentences::           Moving over and killing sentences.
+* Paragraphs::          Moving over paragraphs.
+* Pages::               Moving over pages.
+* Filling::             Filling or justifying text.
+* Case::                Changing the case of text.
+* Text Mode::           The major modes for editing text files.
 * Outline Mode::        Editing outlines.
-* TeX Mode::	        Editing input to the formatter TeX.
+* TeX Mode::            Editing input to the formatter TeX.
 * HTML Mode::           Editing HTML and SGML files.
-* Nroff Mode::	        Editing input to the formatter nroff.
+* Nroff Mode::          Editing input to the formatter nroff.
 * Formatted Text::      Editing formatted text directly in WYSIWYG fashion.
 * Text Based Tables::   Editing text-based tables in WYSIWYG fashion.
 @end menu
@@ -402,13 +403,12 @@
 Text}).
 
 @menu
-* Auto Fill::	        Auto Fill mode breaks long lines automatically.
-* Fill Commands::       Commands to refill paragraphs and center lines.
-* Fill Prefix::	        Filling paragraphs that are indented
-                          or in a comment, etc.
-* Adaptive Fill::       How Emacs can determine the fill prefix automatically.
-* Refill::              Keeping paragraphs filled.
-* Longlines::           Editing text with very long lines.
+* Auto Fill::      Auto Fill mode breaks long lines automatically.
+* Fill Commands::  Commands to refill paragraphs and center lines.
+* Fill Prefix::    Filling paragraphs that are indented or in a comment, etc.
+* Adaptive Fill::  How Emacs can determine the fill prefix automatically.
+* Refill::         Keeping paragraphs filled.
+* Longlines::      Editing text with very long lines.
 @end menu
 
 @node Auto Fill
@@ -978,8 +978,8 @@
 the hook @code{outline-mode-hook} (@pxref{Hooks}).
 
 @menu
-* Format: Outline Format.	   What the text of an outline looks like.
-* Motion: Outline Motion.	   Special commands for moving through
+* Format: Outline Format.          What the text of an outline looks like.
+* Motion: Outline Motion.          Special commands for moving through
                                      outlines.
 * Visibility: Outline Visibility.  Commands to control what is visible.
 * Views: Outline Views.            Outlines and multiple views.
--- a/doc/emacs/trouble.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/trouble.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -426,10 +426,10 @@
 work-around, or give you additional information about related issues.
 
 @menu
-* Criteria:  Bug Criteria.	 Have you really found a bug?
-* Understanding Bug Reporting::	 How to report a bug effectively.
-* Checklist::			 Steps to follow for a good bug report.
-* Sending Patches::		 How to send a patch for GNU Emacs.
+* Criteria:  Bug Criteria.       Have you really found a bug?
+* Understanding Bug Reporting::  How to report a bug effectively.
+* Checklist::                    Steps to follow for a good bug report.
+* Sending Patches::              How to send a patch for GNU Emacs.
 @end menu
 
 @node Bug Criteria
--- a/doc/emacs/vc1-xtra.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/vc1-xtra.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -220,8 +220,8 @@
 stable version of the system that is ready for distribution to users.
 
 @menu
-* Making Revision Tags::		The tag facilities.
-* Revision Tag Caveats::		Things to be careful of when using tags.
+* Making Revision Tags::  The tag facilities.
+* Revision Tag Caveats::  Things to be careful of when using tags.
 @end menu
 
 @node Making Revision Tags
--- a/doc/emacs/xresources.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/emacs/xresources.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -436,14 +436,14 @@
 the font @samp{8x16} for the pop-up menu items, write this:
 
 @example
-Emacs.menu*.font:	8x16
+Emacs.menu*.font:  8x16
 @end example
 
 @noindent
 For dialog boxes, use @samp{dialog*}:
 
 @example
-Emacs.dialog*.font:	8x16
+Emacs.dialog*.font:  8x16
 @end example
 
 @noindent
--- a/doc/lispintro/ChangeLog	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispintro/ChangeLog	Tue Jul 27 16:01:48 2010 +0900
@@ -1,3 +1,7 @@
+2010-06-23  Glenn Morris  <rgm@gnu.org>
+
+	* emacs-lisp-intro.texi: Untabify.
+
 2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 
 	* Version 23.2 released.
--- a/doc/lispintro/emacs-lisp-intro.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispintro/emacs-lisp-intro.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -17789,7 +17789,7 @@
 This is an interface to the function `load'."
   (interactive
    (list (completing-read "Load library: "
-			  (apply-partially 'locate-file-completion-table
+                          (apply-partially 'locate-file-completion-table
                                            load-path
                                            (get-load-suffixes)))))
   (load library))
--- a/doc/lispref/ChangeLog	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/ChangeLog	Tue Jul 27 16:01:48 2010 +0900
@@ -1,3 +1,52 @@
+2010-07-27  Juanma Barranquero  <lekktu@gmail.com>
+
+	* modes.texi (Defining Minor Modes): Use C-delete in examples,
+	instead of "\C-\^?" (bug#6334).
+
+2010-07-21  Juanma Barranquero  <lekktu@gmail.com>
+
+	* text.texi (Special Properties): Fix typo.
+
+2010-06-24  Chong Yidong  <cyd@stupidchicken.com>
+
+	* text.texi (Undo): Clarify command loop behavior (Bug#2433).
+
+	* commands.texi (Command Overview): Mention undo-boundary call.
+
+2010-06-23  Glenn Morris  <rgm@gnu.org>
+
+	* abbrevs.texi, commands.texi, compile.texi, debugging.texi:
+	* display.texi, edebug.texi, elisp.texi, eval.texi, files.texi:
+	* frames.texi, functions.texi, internals.texi, keymaps.texi:
+	* loading.texi, minibuf.texi, numbers.texi, os.texi, processes.texi:
+	* searching.texi, sequences.texi, strings.texi, syntax.texi:
+	* text.texi, tips.texi, vol1.texi, vol2.texi, windows.texi:
+	Untabify Texinfo files.
+
+2010-06-20  Chong Yidong  <cyd@stupidchicken.com>
+
+	* modes.texi (Minor Mode Conventions): Fix typo (Bug#6477).
+
+2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
+
+	* errors.texi (Standard Errors): Remove unnecessary markup
+	(Bug#6461).
+
+2010-06-02  Chong Yidong  <cyd@stupidchicken.com>
+
+	* searching.texi (Regexp Special): Remove obsolete information
+	about matching non-ASCII characters, and suggest using char
+	classes (Bug#6283).
+
+2010-05-30  Juanma Barranquero  <lekktu@gmail.com>
+
+	* minibuf.texi (Basic Completion): Add missing "@end defun".
+
+2010-05-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* minibuf.texi (Basic Completion): Document completion-boundaries.
+	(Programmed Completion): Document the new fourth method for boundaries.
+
 2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 
 	* Version 23.2 released.
--- a/doc/lispref/abbrevs.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/abbrevs.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -376,10 +376,10 @@
       (funcall expand))))
 
 (add-hook 'foo-mode-hook
-	  #'(lambda ()
-	      (add-hook 'abbrev-expand-functions
-			'foo-mode-abbrev-expand-function
-			nil t)))
+          #'(lambda ()
+              (add-hook 'abbrev-expand-functions
+                        'foo-mode-abbrev-expand-function
+                        nil t)))
 @end smallexample
 
 @node Standard Abbrev Tables, Abbrev Properties, Abbrev Expansion, Abbrevs
--- a/doc/lispref/commands.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/commands.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
-@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../../info/commands
 @node Command Loop, Keymaps, Minibuffers, Top
@@ -21,7 +22,7 @@
 * Distinguish Interactive::     Making a command distinguish interactive calls.
 * Command Loop Info::   Variables set by the command loop for you to examine.
 * Adjusting Point::     Adjustment of point after a command.
-* Input Events::	What input looks like when you read it.
+* Input Events::        What input looks like when you read it.
 * Reading Input::       How to read input events from the keyboard or mouse.
 * Special Events::      Events processed immediately and individually.
 * Waiting::             Waiting for user input or elapsed time.
@@ -52,16 +53,19 @@
 command, which it then calls.  This is done by the command
 @code{execute-extended-command} (@pxref{Interactive Call}).
 
-  To execute a command requires first reading the arguments for it.
-This is done by calling @code{command-execute} (@pxref{Interactive
-Call}).  For commands written in Lisp, the @code{interactive}
-specification says how to read the arguments.  This may use the prefix
-argument (@pxref{Prefix Command Arguments}) or may read with prompting
-in the minibuffer (@pxref{Minibuffers}).  For example, the command
-@code{find-file} has an @code{interactive} specification which says to
-read a file name using the minibuffer.  The command's function body does
-not use the minibuffer; if you call this command from Lisp code as a
-function, you must supply the file name string as an ordinary Lisp
+  Prior to executing the command, Emacs runs @code{undo-boundary} to
+create an undo boundary.  @xref{Maintaining Undo}.
+
+  To execute a command, Emacs first reads its arguments by calling
+@code{command-execute} (@pxref{Interactive Call}).  For commands
+written in Lisp, the @code{interactive} specification says how to read
+the arguments.  This may use the prefix argument (@pxref{Prefix
+Command Arguments}) or may read with prompting in the minibuffer
+(@pxref{Minibuffers}).  For example, the command @code{find-file} has
+an @code{interactive} specification which says to read a file name
+using the minibuffer.  The function body of @code{find-file} does not
+use the minibuffer, so if you call @code{find-file} as a function from
+Lisp code, you must supply the file name string as an ordinary Lisp
 function argument.
 
   If the command is a string or vector (i.e., a keyboard macro) then
@@ -968,23 +972,23 @@
 @end defun
 
 @menu
-* Keyboard Events::		Ordinary characters--keys with symbols on them.
-* Function Keys::		Function keys--keys with names, not symbols.
+* Keyboard Events::             Ordinary characters--keys with symbols on them.
+* Function Keys::               Function keys--keys with names, not symbols.
 * Mouse Events::                Overview of mouse events.
-* Click Events::		Pushing and releasing a mouse button.
-* Drag Events::			Moving the mouse before releasing the button.
-* Button-Down Events::		A button was pushed and not yet released.
+* Click Events::                Pushing and releasing a mouse button.
+* Drag Events::                 Moving the mouse before releasing the button.
+* Button-Down Events::          A button was pushed and not yet released.
 * Repeat Events::               Double and triple click (or drag, or down).
-* Motion Events::		Just moving the mouse, not pushing a button.
-* Focus Events::		Moving the mouse between frames.
+* Motion Events::               Just moving the mouse, not pushing a button.
+* Focus Events::                Moving the mouse between frames.
 * Misc Events::                 Other events the system can generate.
-* Event Examples::		Examples of the lists for mouse events.
-* Classifying Events::		Finding the modifier keys in an event symbol.
-				Event types.
-* Accessing Mouse::		Functions to extract info from mouse events.
-* Accessing Scroll::		Functions to get info from scroll bar events.
+* Event Examples::              Examples of the lists for mouse events.
+* Classifying Events::          Finding the modifier keys in an event symbol.
+                                Event types.
+* Accessing Mouse::             Functions to extract info from mouse events.
+* Accessing Scroll::            Functions to get info from scroll bar events.
 * Strings of Events::           Special considerations for putting
-				  keyboard character events in a string.
+                                  keyboard character events in a string.
 @end menu
 
 @node Keyboard Events
@@ -2158,12 +2162,12 @@
   For higher-level input facilities, see @ref{Minibuffers}.
 
 @menu
-* Key Sequence Input::		How to read one key sequence.
-* Reading One Event::		How to read just one event.
+* Key Sequence Input::          How to read one key sequence.
+* Reading One Event::           How to read just one event.
 * Event Mod::                   How Emacs modifies events as they are read.
 * Invoking the Input Method::   How reading an event uses the input method.
-* Quoted Character Input::	Asking the user to specify a character.
-* Event Input Misc::    	How to reread or throw away input events.
+* Quoted Character Input::      Asking the user to specify a character.
+* Event Input Misc::            How to reread or throw away input events.
 @end menu
 
 @node Key Sequence Input
@@ -2889,9 +2893,9 @@
     (while (not done)
       (let ((inhibit-quit first)
             @dots{})
-	(and prompt (message "%s-" prompt))
-	(setq char (read-event))
-	(if inhibit-quit (setq quit-flag nil)))
+        (and prompt (message "%s-" prompt))
+        (setq char (read-event))
+        (if inhibit-quit (setq quit-flag nil)))
       @r{@dots{}set the variable @code{code}@dots{}})
     code))
 @end example
--- a/doc/lispref/compile.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/compile.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -47,9 +47,9 @@
 * Compilation Functions::       Byte compilation functions.
 * Docs and Compilation::        Dynamic loading of documentation strings.
 * Dynamic Loading::             Dynamic loading of individual functions.
-* Eval During Compile::  	Code to be evaluated when you compile.
+* Eval During Compile::         Code to be evaluated when you compile.
 * Compiler Errors::             Handling compiler error messages.
-* Byte-Code Objects::		The data type used for byte-compiled functions.
+* Byte-Code Objects::           The data type used for byte-compiled functions.
 * Disassembly::                 Disassembling byte-code; how to read byte-code.
 @end menu
 
--- a/doc/lispref/debugging.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/debugging.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -28,7 +28,7 @@
 
 @menu
 * Debugger::            How the Emacs Lisp debugger is implemented.
-* Edebug::		A source-level Emacs Lisp debugger.
+* Edebug::              A source-level Emacs Lisp debugger.
 * Syntax Errors::       How to find syntax errors.
 * Test Coverage::       Ensuring you have tested all branches in your code.
 * Compilation Errors::  How to find errors that show up in byte compilation.
@@ -58,7 +58,7 @@
 
 @menu
 * Error Debugging::       Entering the debugger when an error happens.
-* Infinite Loops::	  Stopping and debugging a program that doesn't exit.
+* Infinite Loops::        Stopping and debugging a program that doesn't exit.
 * Function Debugging::    Entering it when a certain function is called.
 * Explicit Debug::        Entering it at a certain point in the program.
 * Using Debugger::        What the debugger does; what you see while in it.
--- a/doc/lispref/display.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/display.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1181,7 +1181,7 @@
 @menu
 * Managing Overlays::   Creating and moving overlays.
 * Overlay Properties::  How to read and set properties.
-			What properties do to the screen display.
+                          What properties do to the screen display.
 * Finding Overlays::    Searching for overlays.
 @end menu
 
--- a/doc/lispref/edebug.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/edebug.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -59,24 +59,24 @@
 start using it.
 
 @menu
-* Using Edebug::		Introduction to use of Edebug.
-* Instrumenting::		You must instrument your code
-				  in order to debug it with Edebug.
+* Using Edebug::                Introduction to use of Edebug.
+* Instrumenting::               You must instrument your code
+                                  in order to debug it with Edebug.
 * Modes: Edebug Execution Modes. Execution modes, stopping more or less often.
-* Jumping::			Commands to jump to a specified place.
-* Misc: Edebug Misc.		Miscellaneous commands.
+* Jumping::                     Commands to jump to a specified place.
+* Misc: Edebug Misc.            Miscellaneous commands.
 * Breaks::                      Setting breakpoints to make the program stop.
-* Trapping Errors::		Trapping errors with Edebug.
-* Views: Edebug Views.		Views inside and outside of Edebug.
-* Eval: Edebug Eval.		Evaluating expressions within Edebug.
-* Eval List::			Expressions whose values are displayed
-				  each time you enter Edebug.
-* Printing in Edebug::		Customization of printing.
-* Trace Buffer::		How to produce trace output in a buffer.
-* Coverage Testing::		How to test evaluation coverage.
-* The Outside Context::		Data that Edebug saves and restores.
-* Edebug and Macros::	        Specifying how to handle macro calls.
-* Options: Edebug Options.	Option variables for customizing Edebug.
+* Trapping Errors::             Trapping errors with Edebug.
+* Views: Edebug Views.          Views inside and outside of Edebug.
+* Eval: Edebug Eval.            Evaluating expressions within Edebug.
+* Eval List::                   Expressions whose values are displayed
+                                  each time you enter Edebug.
+* Printing in Edebug::          Customization of printing.
+* Trace Buffer::                How to produce trace output in a buffer.
+* Coverage Testing::            How to test evaluation coverage.
+* The Outside Context::         Data that Edebug saves and restores.
+* Edebug and Macros::           Specifying how to handle macro calls.
+* Options: Edebug Options.      Option variables for customizing Edebug.
 @end menu
 
 @node Using Edebug
@@ -429,8 +429,8 @@
 
 @menu
 * Breakpoints::                 Breakpoints at stop points.
-* Global Break Condition::	Breaking on an event.
-* Source Breakpoints::  	Embedding breakpoints in source code.
+* Global Break Condition::      Breaking on an event.
+* Source Breakpoints::          Embedding breakpoints in source code.
 @end menu
 
 @node Breakpoints
@@ -940,9 +940,9 @@
 be completely transparent.
 
 @menu
-* Checking Whether to Stop::	When Edebug decides what to do.
-* Edebug Display Update::	When Edebug updates the display.
-* Edebug Recursive Edit::	When Edebug stops execution.
+* Checking Whether to Stop::    When Edebug decides what to do.
+* Edebug Display Update::       When Edebug updates the display.
+* Edebug Recursive Edit::       When Edebug stops execution.
 @end menu
 
 @node Checking Whether to Stop
@@ -1074,9 +1074,9 @@
 
 @menu
 * Instrumenting Macro Calls::   The basic problem.
-* Specification List::		How to specify complex patterns of evaluation.
-* Backtracking::		What Edebug does when matching fails.
-* Specification Examples::	To help understand specifications.
+* Specification List::          How to specify complex patterns of evaluation.
+* Backtracking::                What Edebug does when matching fails.
+* Specification Examples::      To help understand specifications.
 @end menu
 
 @node Instrumenting Macro Calls
--- a/doc/lispref/elisp.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/elisp.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -143,7 +143,7 @@
                               files are made.
 * Buffers::                 Creating and using buffer objects.
 * Windows::                 Manipulating windows and displaying buffers.
-* Frames::		    Making multiple system-level windows.
+* Frames::                  Making multiple system-level windows.
 * Positions::               Buffer positions and motion functions.
 * Markers::                 Markers represent positions and update
                               automatically when the text is changed.
@@ -155,7 +155,7 @@
 * Abbrevs::                 How Abbrev mode works, and its data structures.
 
 * Processes::               Running and communicating with subprocesses.
-* Display::	            Features for controlling the screen display.
+* Display::                 Features for controlling the screen display.
 * System Interface::        Getting the user id, system type, environment
                               variables, and other such things.
 
@@ -291,10 +291,10 @@
 Numbers
 
 * Integer Basics::          Representation and range of integers.
-* Float Basics::	    Representation and range of floating point.
+* Float Basics::            Representation and range of floating point.
 * Predicates on Numbers::   Testing for numbers.
 * Comparison of Numbers::   Equality and inequality predicates.
-* Numeric Conversions::	    Converting float to integer and vice versa.
+* Numeric Conversions::     Converting float to integer and vice versa.
 * Arithmetic Operations::   How to add, subtract, multiply and divide.
 * Rounding Operations::     Explicitly rounding floating point numbers.
 * Bitwise Operations::      Logical and, or, not, shifting.
@@ -311,7 +311,7 @@
 * String Conversion::       Converting to and from characters and strings.
 * Formatting Strings::      @code{format}: Emacs's analogue of @code{printf}.
 * Case Conversion::         Case conversion functions.
-* Case Tables::		    Customizing case conversion.
+* Case Tables::             Customizing case conversion.
 
 Lists
 
@@ -379,7 +379,7 @@
 * Symbol Forms::            Symbols evaluate as variables.
 * Classifying Lists::       How to distinguish various sorts of list forms.
 * Function Indirection::    When a symbol appears as the car of a list,
-			      we find the real function via the symbol.
+                              we find the real function via the symbol.
 * Function Forms::          Forms that call functions.
 * Macro Forms::             Forms that call macros.
 * Special Forms::           "Special forms" are idiosyncratic primitives,
@@ -460,9 +460,9 @@
 * Function Cells::          Accessing or setting the function definition
                               of a symbol.
 * Obsolete Functions::      Declaring functions obsolete.
-* Inline Functions::	    Defining functions that the compiler
+* Inline Functions::        Defining functions that the compiler
                               will open code.
-* Declaring Functions::	    Telling the compiler that a function is defined.
+* 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
                               that have a special bearing on how
@@ -522,9 +522,9 @@
 * Repeated Loading::        Precautions about loading a file twice.
 * Named Features::          Loading a library if it isn't already loaded.
 * Where Defined::           Finding which file defined a certain symbol.
-* Unloading::		    How to "unload" a library that was loaded.
-* Hooks for Loading::	    Providing code to be run when
-			      particular libraries are loaded.
+* Unloading::               How to "unload" a library that was loaded.
+* Hooks for Loading::       Providing code to be run when
+                              particular libraries are loaded.
 
 Byte Compilation
 
@@ -534,7 +534,7 @@
 * Dynamic Loading::         Dynamic loading of individual functions.
 * Eval During Compile::     Code to be evaluated when you compile.
 * Compiler Errors::         Handling compiler error messages.
-* Byte-Code Objects::	    The data type used for byte-compiled functions.
+* Byte-Code Objects::       The data type used for byte-compiled functions.
 * Disassembly::             Disassembling byte-code; how to read byte-code.
 
 Advising Emacs Lisp Functions
@@ -563,7 +563,7 @@
 The Lisp Debugger
 
 * Error Debugging::         Entering the debugger when an error happens.
-* Infinite Loops::	    Stopping and debugging a program that doesn't exit.
+* Infinite Loops::          Stopping and debugging a program that doesn't exit.
 * Function Debugging::      Entering it when a certain function is called.
 * Explicit Debug::          Entering it at a certain point in the program.
 * Using Debugger::          What the debugger does; what you see while in it.
@@ -573,24 +573,24 @@
 
 Edebug
 
-* Using Edebug::	    Introduction to use of Edebug.
-* Instrumenting::	    You must instrument your code
-			      in order to debug it with Edebug.
+* Using Edebug::            Introduction to use of Edebug.
+* Instrumenting::           You must instrument your code
+                              in order to debug it with Edebug.
 * Edebug Execution Modes::  Execution modes, stopping more or less often.
-* Jumping::		    Commands to jump to a specified place.
-* Edebug Misc::		    Miscellaneous commands.
-* Breaks::		    Setting breakpoints to make the program stop.
-* Trapping Errors::	    Trapping errors with Edebug.
-* Edebug Views::	    Views inside and outside of Edebug.
-* Edebug Eval::		    Evaluating expressions within Edebug.
-* Eval List::		    Expressions whose values are displayed
-			      each time you enter Edebug.
-* Printing in Edebug::	    Customization of printing.
-* Trace Buffer::	    How to produce trace output in a buffer.
-* Coverage Testing::	    How to test evaluation coverage.
-* The Outside Context::	    Data that Edebug saves and restores.
+* Jumping::                 Commands to jump to a specified place.
+* Edebug Misc::             Miscellaneous commands.
+* Breaks::                  Setting breakpoints to make the program stop.
+* Trapping Errors::         Trapping errors with Edebug.
+* Edebug Views::            Views inside and outside of Edebug.
+* Edebug Eval::             Evaluating expressions within Edebug.
+* Eval List::               Expressions whose values are displayed
+                              each time you enter Edebug.
+* Printing in Edebug::      Customization of printing.
+* Trace Buffer::            How to produce trace output in a buffer.
+* Coverage Testing::        How to test evaluation coverage.
+* The Outside Context::     Data that Edebug saves and restores.
 * Edebug and Macros::       Specifying how to handle macro calls.
-* Edebug Options::	    Option variables for customizing Edebug.
+* Edebug Options::          Option variables for customizing Edebug.
 
 Breaks
 
@@ -607,8 +607,8 @@
 Edebug and Macros
 
 * Instrumenting Macro Calls::The basic problem.
-* Specification List::	    How to specify complex patterns of evaluation.
-* Backtracking::	    What Edebug does when matching fails.
+* Specification List::      How to specify complex patterns of evaluation.
+* Backtracking::            What Edebug does when matching fails.
 * Specification Examples::  To help understand specifications.
 
 Debugging Invalid Lisp Syntax
@@ -633,13 +633,13 @@
 * Intro to Minibuffers::    Basic information about minibuffers.
 * Text from Minibuffer::    How to read a straight text string.
 * Object from Minibuffer::  How to read a Lisp object or expression.
-* Minibuffer History::	    Recording previous minibuffer inputs
-			      so the user can reuse them.
+* Minibuffer History::      Recording previous minibuffer inputs
+                              so the user can reuse them.
 * Initial Input::           Specifying initial contents for the minibuffer.
 * Completion::              How to invoke and customize completion.
 * Yes-or-No Queries::       Asking a question with a simple answer.
-* Multiple Queries::	    Asking a series of similar questions.
-* Reading a Password::	    Reading a password from the terminal.
+* Multiple Queries::        Asking a series of similar questions.
+* Reading a Password::      Reading a password from the terminal.
 * Minibuffer Commands::     Commands used as key bindings in minibuffers.
 * Minibuffer Contents::     How such commands access the minibuffer text.
 * Minibuffer Windows::      Operating on the special minibuffer windows.
@@ -666,7 +666,7 @@
 * Distinguish Interactive::     Making a command distinguish interactive calls.
 * Command Loop Info::   Variables set by the command loop for you to examine.
 * Adjusting Point::     Adjustment of point after a command.
-* Input Events::	What input looks like when you read it.
+* Input Events::        What input looks like when you read it.
 * Reading Input::       How to read input events from the keyboard or mouse.
 * Special Events::      Events processed immediately and individually.
 * Waiting::             Waiting for user input or elapsed time.
@@ -700,7 +700,7 @@
 * Event Examples::          Examples of the lists for mouse events.
 * Classifying Events::      Finding the modifier keys in an event symbol.
                               Event types.
-* Accessing Mouse::	    Functions to extract info from mouse events.
+* Accessing Mouse::         Functions to extract info from mouse events.
 * Accessing Scroll::        Functions to get info from scroll bar events.
 * Strings of Events::       Special considerations for putting
                               keyboard character events in a string.
@@ -850,9 +850,9 @@
 * Changing Files::          Renaming files, changing protection, etc.
 * File Names::              Decomposing and expanding file names.
 * Contents of Directories:: Getting a list of the files in a directory.
-* Create/Delete Dirs::	    Creating and Deleting Directories.
-* Magic File Names::	    Defining "magic" special handling
-			      for certain file names.
+* Create/Delete Dirs::      Creating and Deleting Directories.
+* Magic File Names::        Defining "magic" special handling
+                              for certain file names.
 * Format Conversion::       Conversion to and from various file formats.
 
 Visiting Files
@@ -864,7 +864,7 @@
 
 * Testing Accessibility::   Is a given file readable?  Writable?
 * Kinds of Files::          Is it a directory?  A symbolic link?
-* Truenames::		    Eliminating symbolic links from a file name.
+* Truenames::               Eliminating symbolic links from a file name.
 * File Attributes::         How large is it?  Any other names?  Etc.
 * Locating Files::          How to find a file in standard places.
 
@@ -934,8 +934,8 @@
 * Buffers and Windows::     Each window displays the contents of a buffer.
 * Displaying Buffers::      Higher-level functions for displaying a buffer
                               and choosing a window for it.
-* Choosing Window::	    How to choose a window for displaying a buffer.
-* Dedicated Windows::	    How to avoid displaying another buffer in
+* Choosing Window::         How to choose a window for displaying a buffer.
+* Dedicated Windows::       How to avoid displaying another buffer in
                               a specific window.          
 * Window Point::            Each window has its own location of point.
 * Window Start and End::    Buffer positions indicating which text is
@@ -955,37 +955,37 @@
 
 Frames
 
-* Creating Frames::	    Creating additional frames.
+* Creating Frames::         Creating additional frames.
 * Multiple Terminals::      Displaying on several different devices.
-* Frame Parameters::	    Controlling frame size, position, font, etc.
+* Frame Parameters::        Controlling frame size, position, font, etc.
 * Terminal Parameters::     Parameters common for all frames on terminal.
 * Frame Titles::            Automatic updating of frame titles.
-* Deleting Frames::	    Frames last until explicitly deleted.
-* Finding All Frames::	    How to examine all existing frames.
-* Frames and Windows::	    A frame contains windows;
-			      display of text always works through windows.
+* Deleting Frames::         Frames last until explicitly deleted.
+* Finding All Frames::      How to examine all existing frames.
+* Frames and Windows::      A frame contains windows;
+                              display of text always works through windows.
 * Minibuffers and Frames::  How a frame finds the minibuffer to use.
-* Input Focus::		    Specifying the selected frame.
+* Input Focus::             Specifying the selected frame.
 * Visibility of Frames::    Frames may be visible or invisible, or icons.
 * Raising and Lowering::    Raising a frame makes it hide other windows;
-			      lowering it makes the others hide it.
+                              lowering it makes the others hide it.
 * Frame Configurations::    Saving the state of all frames.
-* Mouse Tracking::	    Getting events that say when the mouse moves.
-* Mouse Position::	    Asking where the mouse is, or moving it.
-* Pop-Up Menus::	    Displaying a menu for the user to select from.
+* Mouse Tracking::          Getting events that say when the mouse moves.
+* Mouse Position::          Asking where the mouse is, or moving it.
+* Pop-Up Menus::            Displaying a menu for the user to select from.
 * Dialog Boxes::            Displaying a box to ask yes or no.
 * Pointer Shape::           Specifying the shape of the mouse pointer.
 * Window System Selections::Transferring text to and from other X clients.
 * Drag and Drop::               Internals of Drag-and-Drop implementation.
-* Color Names::	            Getting the definitions of color names.
+* Color Names::             Getting the definitions of color names.
 * Text Terminal Colors::    Defining colors for text-only terminals.
-* Resources::		    Getting resource values from the server.
+* Resources::               Getting resource values from the server.
 * Display Feature Testing:: Determining the features of a terminal.
 
 Frame Parameters
 
 * Parameter Access::        How to change a frame's parameters.
-* Initial Parameters::	    Specifying frame parameters when you make a frame.
+* Initial Parameters::      Specifying frame parameters when you make a frame.
 * Window Frame Parameters:: List of frame parameters for window systems.
 * Size and Position::       Changing the size and position of a frame.
 * Geometry::                Parsing geometry specifications.
@@ -1044,7 +1044,7 @@
                               later use.
 * Undo::                    Undoing changes to the text of a buffer.
 * Maintaining Undo::        How to enable and disable undo information.
-			      How to control how much information is kept.
+                              How to control how much information is kept.
 * Filling::                 Functions for explicit filling.
 * Margins::                 How to specify margins for filling commands.
 * Adaptive Fill::           Adaptive Fill mode chooses a fill prefix
@@ -1070,7 +1070,7 @@
 * Kill Functions::          Functions that kill text.
 * Yanking::                 How yanking is done.
 * Yank Commands::           Commands that access the kill ring.
-* Low-Level Kill Ring::	    Functions and variables for kill ring access.
+* Low-Level Kill Ring::     Functions and variables for kill ring access.
 * Internals of Kill Ring::  Variables that hold kill ring data.
 
 Indentation
@@ -1085,9 +1085,9 @@
 Text Properties
 
 * Examining Properties::    Looking at the properties of one character.
-* Changing Properties::	    Setting the properties of a range of text.
-* Property Search::	    Searching for where a property changes value.
-* Special Properties::	    Particular properties with special meanings.
+* Changing Properties::     Setting the properties of a range of text.
+* Property Search::         Searching for where a property changes value.
+* Special Properties::      Particular properties with special meanings.
 * Format Properties::       Properties for representing formatting of text.
 * Sticky Properties::       How inserted text gets properties from
                               neighboring text.
@@ -1097,8 +1097,8 @@
                               do something when you click on them.
 * Fields::                  The @code{field} property defines
                               fields within the buffer.
-* Not Intervals::	    Why text properties do not use
-			      Lisp-visible text intervals.
+* Not Intervals::           Why text properties do not use
+                              Lisp-visible text intervals.
 
 Non-@acronym{ASCII} Characters
 
@@ -1141,7 +1141,7 @@
 * POSIX Regexps::           Searching POSIX-style for the longest match.
 * Match Data::              Finding out which part of the text matched,
                               after a string or regexp search.
-* Search and Replace::	    Commands that loop, searching and replacing.
+* Search and Replace::      Commands that loop, searching and replacing.
 * Standard Regexps::        Useful regexps for finding sentences, pages,...
 
 Regular Expressions
@@ -1158,9 +1158,9 @@
 
 The Match Data
 
-* Replacing Match::	    Replacing a substring that was matched.
+* Replacing Match::         Replacing a substring that was matched.
 * Simple Match Data::       Accessing single items of match data,
-			      such as where a particular subexpression started.
+                              such as where a particular subexpression started.
 * Entire Match Data::       Accessing the entire match data at once, as a list.
 * Saving Match Data::       Saving and restoring the match data.
 
@@ -1170,7 +1170,7 @@
 * Syntax Descriptors::      How characters are classified.
 * Syntax Table Functions::  How to create, examine and alter syntax tables.
 * Syntax Properties::       Overriding syntax with text properties.
-* Motion and Syntax::	    Moving over characters with certain syntaxes.
+* Motion and Syntax::       Moving over characters with certain syntaxes.
 * Parsing Expressions::     Parsing balanced expressions
                               using the syntax table.
 * Standard Syntax Tables::  Syntax tables used by various major modes.
@@ -1259,10 +1259,10 @@
 * Invisible Text::          Hiding part of the buffer text.
 * Selective Display::       Hiding part of the buffer text (the old way).
 * Temporary Displays::      Displays that go away automatically.
-* Overlays::		    Use overlays to highlight parts of the buffer.
+* Overlays::                Use overlays to highlight parts of the buffer.
 * Width::                   How wide a character or string is on the screen.
 * Line Height::             Controlling the height of lines.
-* Faces::		    A face defines a graphics style
+* Faces::                   A face defines a graphics style
                               for text characters: font, colors, etc.
 * Fringes::                 Controlling window fringes.
 * Scroll Bars::             Controlling vertical scroll bars.
@@ -1271,9 +1271,9 @@
 * Buttons::                 Adding clickable buttons to Emacs buffers.
 * Abstract Display::        Emacs' Widget for Object Collections.
 * Blinking::                How Emacs shows the matching open parenthesis.
-* Usual Display::	    The usual conventions for displaying
+* Usual Display::           The usual conventions for displaying
                               nonprinting chars.
-* Display Tables::	    How to specify other conventions.
+* Display Tables::          How to specify other conventions.
 * Beeping::                 Audible signal to the user.
 * Window Systems::          Which window system is being used.
 
@@ -1295,7 +1295,7 @@
 
 * Managing Overlays::       Creating and moving overlays.
 * Overlay Properties::      How to read and set properties.
-			    What properties do to the screen display.
+                              What properties do to the screen display.
 * Finding Overlays::        Searching for overlays.
 
 Faces
@@ -1375,14 +1375,14 @@
 * Getting Out::             How exiting works (permanent or temporary).
 * System Environment::      Distinguish the name and kind of system.
 * User Identification::     Finding the name and user id of the user.
-* Time of Day::		    Getting the current time.
+* Time of Day::             Getting the current time.
 * Time Conversion::         Converting a time from numeric form to 
                               calendrical data and vice versa.
 * Time Parsing::            Converting a time from numeric form to text
                               and vice versa.
 * Processor Run Time::      Getting the run time used by Emacs.
 * Time Calculations::       Adding, subtracting, comparing times, etc.
-* Timers::		    Setting a timer to call a function at a
+* Timers::                  Setting a timer to call a function at a
                               certain time.
 * Idle Timers::             Setting a timer to call a function when Emacs has
                               been idle for a certain length of time.
@@ -1409,8 +1409,8 @@
 
 Terminal Input
 
-* Input Modes::		    Options for how input is processed.
-* Recording Input::	    Saving histories of recent or all input events.
+* Input Modes::             Options for how input is processed.
+* Recording Input::         Saving histories of recent or all input events.
 
 Tips and Conventions
 
@@ -1420,7 +1420,7 @@
 * Compilation Tips::        Making compiled code run fast.
 * Warning Tips::            Turning off compiler warnings.
 * Documentation Tips::      Writing readable documentation strings.
-* Comment Tips::	    Conventions for writing comments.
+* Comment Tips::            Conventions for writing comments.
 * Library Headers::         Standard headers for library packages.
 
 GNU Emacs Internals
--- a/doc/lispref/errors.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/errors.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -63,11 +63,11 @@
 @xref{Lisp and Coding Systems}.
 
 @item cyclic-function-indirection
-@code{"Symbol's chain of function indirections\@* contains a loop"}@*
+@code{"Symbol's chain of function indirections contains a loop"}@*
 @xref{Function Indirection}.
 
 @item cyclic-variable-indirection
-@code{"Symbol's chain of variable indirections\@* contains a loop"}@*
+@code{"Symbol's chain of variable indirections contains a loop"}@*
 @xref{Variable Aliases}.
 
 @item end-of-buffer
--- a/doc/lispref/eval.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/eval.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -110,7 +110,7 @@
 * Symbol Forms::            Symbols evaluate as variables.
 * Classifying Lists::       How to distinguish various sorts of list forms.
 * Function Indirection::    When a symbol appears as the car of a list,
-			      we find the real function via the symbol.
+                              we find the real function via the symbol.
 * Function Forms::          Forms that call functions.
 * Macro Forms::             Forms that call macros.
 * Special Forms::           "Special forms" are idiosyncratic primitives,
--- a/doc/lispref/files.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/files.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 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 the file elisp.texi for copying conditions.
 @setfilename ../../info/files
 @node Files, Backups and Auto-Saving, Documentation, Top
@@ -38,9 +39,9 @@
 * Changing Files::           Renaming files, changing protection, etc.
 * File Names::               Decomposing and expanding file names.
 * Contents of Directories::  Getting a list of the files in a directory.
-* Create/Delete Dirs::	     Creating and Deleting Directories.
-* Magic File Names::	     Defining "magic" special handling
-			       for certain file names.
+* Create/Delete Dirs::       Creating and Deleting Directories.
+* Magic File Names::         Defining "magic" special handling
+                               for certain file names.
 * Format Conversion::        Conversion to and from various file formats.
 @end menu
 
@@ -755,7 +756,7 @@
 @menu
 * Testing Accessibility::   Is a given file readable?  Writable?
 * Kinds of Files::          Is it a directory?  A symbolic link?
-* Truenames::		    Eliminating symbolic links from a file name.
+* Truenames::               Eliminating symbolic links from a file name.
 * File Attributes::         How large is it?  Any other names?  Etc.
 * Locating Files::          How to find a file in standard places.
 @end menu
--- a/doc/lispref/frames.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/frames.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -85,26 +85,26 @@
 * Frame Parameters::            Controlling frame size, position, font, etc.
 * Terminal Parameters::         Parameters common for all frames on terminal.
 * Frame Titles::                Automatic updating of frame titles.
-* Deleting Frames::		Frames last until explicitly deleted.
-* Finding All Frames::		How to examine all existing frames.
-* Frames and Windows::		A frame contains windows;
-				  display of text always works through windows.
-* Minibuffers and Frames::	How a frame finds the minibuffer to use.
-* Input Focus::			Specifying the selected frame.
-* Visibility of Frames::	Frames may be visible or invisible, or icons.
-* Raising and Lowering::	Raising a frame makes it hide other windows;
-				  lowering it makes the others hide it.
-* Frame Configurations::	Saving the state of all frames.
-* Mouse Tracking::		Getting events that say when the mouse moves.
-* Mouse Position::		Asking where the mouse is, or moving it.
-* Pop-Up Menus::		Displaying a menu for the user to select from.
+* Deleting Frames::             Frames last until explicitly deleted.
+* Finding All Frames::          How to examine all existing frames.
+* Frames and Windows::          A frame contains windows;
+                                  display of text always works through windows.
+* Minibuffers and Frames::      How a frame finds the minibuffer to use.
+* Input Focus::                 Specifying the selected frame.
+* Visibility of Frames::        Frames may be visible or invisible, or icons.
+* Raising and Lowering::        Raising a frame makes it hide other windows;
+                                  lowering it makes the others hide it.
+* Frame Configurations::        Saving the state of all frames.
+* Mouse Tracking::              Getting events that say when the mouse moves.
+* Mouse Position::              Asking where the mouse is, or moving it.
+* Pop-Up Menus::                Displaying a menu for the user to select from.
 * Dialog Boxes::                Displaying a box to ask yes or no.
 * Pointer Shape::               Specifying the shape of the mouse pointer.
 * Window System Selections::    Transferring text to and from other X clients.
 * Drag and Drop::               Internals of Drag-and-Drop implementation.
-* Color Names::	                Getting the definitions of color names.
+* Color Names::                 Getting the definitions of color names.
 * Text Terminal Colors::        Defining colors for text-only terminals.
-* Resources::		        Getting resource values from the server.
+* Resources::                   Getting resource values from the server.
 * Display Feature Testing::     Determining the features of a terminal.
 @end menu
 
@@ -343,7 +343,7 @@
 
 @menu
 * Parameter Access::       How to change a frame's parameters.
-* Initial Parameters::	   Specifying frame parameters when you make a frame.
+* Initial Parameters::     Specifying frame parameters when you make a frame.
 * Window Frame Parameters:: List of frame parameters for window systems.
 * Size and Position::      Changing the size and position of a frame.
 * Geometry::               Parsing geometry specifications.
--- a/doc/lispref/functions.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/functions.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 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 the file elisp.texi for copying conditions.
 @setfilename ../../info/functions
 @node Functions, Macros, Variables, Top
@@ -22,7 +23,7 @@
 * Function Cells::        Accessing or setting the function definition
                             of a symbol.
 * Obsolete Functions::    Declaring functions obsolete.
-* Inline Functions::	  Defining functions that the compiler will open code.
+* Inline Functions::      Defining functions that the compiler will open code.
 * 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
--- a/doc/lispref/internals.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/internals.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -761,22 +761,22 @@
 @group
   switch (coordinates_in_window (XWINDOW (window), &x, &y))
     @{
-    case 0:			/* NOT in window at all. */
+    case 0:                     /* NOT in window at all. */
       return Qnil;
 @end group
 
 @group
-    case 1:			/* In text part of window. */
+    case 1:                     /* In text part of window. */
       return Fcons (make_number (x), make_number (y));
 @end group
 
 @group
-    case 2:			/* In mode line of window. */
+    case 2:                     /* In mode line of window. */
       return Qmode_line;
 @end group
 
 @group
-    case 3:			/* On right border of window.  */
+    case 3:                     /* On right border of window.  */
       return Qvertical_line;
 @end group
 
--- a/doc/lispref/keymaps.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/keymaps.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 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 the file elisp.texi for copying conditions.
 @setfilename ../../info/keymaps
 @node Keymaps, Modes, Command Loop, Top
@@ -16,19 +17,19 @@
 is found.  The whole process is called @dfn{key lookup}.
 
 @menu
-* Key Sequences::        	Key sequences as Lisp objects.
+* Key Sequences::               Key sequences as Lisp objects.
 * Keymap Basics::               Basic concepts of keymaps.
-* Format of Keymaps::		What a keymap looks like as a Lisp object.
-* Creating Keymaps:: 		Functions to create and copy keymaps.
-* Inheritance and Keymaps::	How one keymap can inherit the bindings
-				   of another keymap.
+* Format of Keymaps::           What a keymap looks like as a Lisp object.
+* Creating Keymaps::            Functions to create and copy keymaps.
+* Inheritance and Keymaps::     How one keymap can inherit the bindings
+                                   of another keymap.
 * Prefix Keys::                 Defining a key with a keymap as its definition.
 * Active Keymaps::              How Emacs searches the active keymaps
                                    for a key binding.
 * Searching Keymaps::           A pseudo-Lisp summary of searching active maps.
 * Controlling Active Maps::     Each buffer has a local keymap
                                    to override the standard (global) bindings.
-				   A minor mode can also override them.
+                                   A minor mode can also override them.
 * Key Lookup::                  Finding a key's binding in one keymap.
 * Functions for Key Lookup::    How to request key lookup.
 * Changing Key Bindings::       Redefining a key in a keymap.
@@ -36,7 +37,7 @@
 * Translation Keymaps::         Keymaps for translating sequences of events.
 * Key Binding Commands::        Interactive interfaces for redefining keys.
 * Scanning Keymaps::            Looking through all keymaps, for printing help.
-* Menu Keymaps::		Defining a menu as a keymap.
+* Menu Keymaps::                Defining a menu as a keymap.
 @end menu
 
 @node Key Sequences
@@ -1959,11 +1960,11 @@
 feature.
 
 @menu
-* Defining Menus::		How to make a keymap that defines a menu.
-* Mouse Menus::			How users actuate the menu with the mouse.
-* Keyboard Menus::		How users actuate the menu with the keyboard.
-* Menu Example::		Making a simple menu.
-* Menu Bar::			How to customize the menu bar.
+* Defining Menus::              How to make a keymap that defines a menu.
+* Mouse Menus::                 How users actuate the menu with the mouse.
+* Keyboard Menus::              How users actuate the menu with the keyboard.
+* Menu Example::                Making a simple menu.
+* Menu Bar::                    How to customize the menu bar.
 * Tool Bar::                    A tool bar is a row of images.
 * Modifying Menus::             How to add new items to a menu.
 @end menu
@@ -2413,10 +2414,10 @@
 @smallexample
 (define-key menu-bar-replace-menu [tags-repl-continue]
   '(menu-item "Continue Replace" tags-loop-continue
-	      :help "Continue last tags replace operation"))
+              :help "Continue last tags replace operation"))
 (define-key menu-bar-replace-menu [tags-repl]
   '(menu-item "Replace in tagged files" tags-query-replace
-	      :help "Interactively replace a regexp in all tagged files"))
+              :help "Interactively replace a regexp in all tagged files"))
 (define-key menu-bar-replace-menu [separator-replace-tags]
   '(menu-item "--"))
 ;; @r{@dots{}}
@@ -2656,8 +2657,8 @@
 By default, the global map binds @code{[tool-bar]} as follows:
 @example
 (global-set-key [tool-bar]
-		'(menu-item "tool bar" ignore
-			    :filter (lambda (ignore) tool-bar-map)))
+                '(menu-item "tool bar" ignore
+                            :filter (lambda (ignore) tool-bar-map)))
 @end example
 @noindent
 Thus the tool bar map is derived dynamically from the value of variable
--- a/doc/lispref/loading.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/loading.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 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 the file elisp.texi for copying conditions.
 @setfilename ../../info/loading
 @node Loading, Byte Compilation, Customization, Top
@@ -43,9 +44,9 @@
 * Repeated Loading::        Precautions about loading a file twice.
 * Named Features::          Loading a library if it isn't already loaded.
 * Where Defined::           Finding which file defined a certain symbol.
-* Unloading::		    How to "unload" a library that was loaded.
-* Hooks for Loading::	    Providing code to be run when
-			      particular libraries are loaded.
+* Unloading::               How to "unload" a library that was loaded.
+* Hooks for Loading::       Providing code to be run when
+                              particular libraries are loaded.
 @end menu
 
 @node How Programs Do Loading
--- a/doc/lispref/minibuf.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/minibuf.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
-@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../../info/minibuf
 @node Minibuffers, Command Loop, Read and Print, Top
@@ -22,13 +23,13 @@
 * Intro to Minibuffers::      Basic information about minibuffers.
 * Text from Minibuffer::      How to read a straight text string.
 * Object from Minibuffer::    How to read a Lisp object or expression.
-* Minibuffer History::	      Recording previous minibuffer inputs
-				so the user can reuse them.
+* Minibuffer History::        Recording previous minibuffer inputs
+                                so the user can reuse them.
 * Initial Input::             Specifying initial contents for the minibuffer.
 * Completion::                How to invoke and customize completion.
 * Yes-or-No Queries::         Asking a question with a simple answer.
-* Multiple Queries::	      Asking a series of similar questions.
-* Reading a Password::	      Reading a password from the terminal.
+* Multiple Queries::          Asking a series of similar questions.
+* Reading a Password::        Reading a password from the terminal.
 * Minibuffer Commands::       Commands used as key bindings in minibuffers.
 * Minibuffer Contents::       How such commands access the minibuffer text.
 * Minibuffer Windows::        Operating on the special minibuffer windows.
@@ -814,6 +815,25 @@
 it returns, @code{test-completion} returns in turn.
 @end defun
 
+@defun completion-boundaries string collection predicate suffix
+This function returns the boundaries of the field on which @var{collection}
+will operate, assuming that @var{string} holds the text before point
+and @var{suffix} holds the text after point.
+
+Normally completion operates on the whole string, so for all normal
+collections, this will always return @code{(0 . (length
+@var{suffix}))}.  But more complex completion such as completion on
+files is done one field at a time.  For example, completion of
+@code{"/usr/sh"} will include @code{"/usr/share/"} but not
+@code{"/usr/share/doc"} even if @code{"/usr/share/doc"} exists.
+Also @code{all-completions} on @code{"/usr/sh"} will not include
+@code{"/usr/share/"} but only @code{"share/"}.  So if @var{string} is
+@code{"/usr/sh"} and @var{suffix} is @code{"e/doc"},
+@code{completion-boundaries} will return @code{(5 . 1)} which tells us
+that the @var{collection} will only return completion information that
+pertains to the area after @code{"/usr/"} and before @code{"/doc"}.
+@end defun
+
 If you store a completion alist in a variable, you should mark the
 variable as ``risky'' with a non-@code{nil}
 @code{risky-local-variable} property.  @xref{File Local Variables}.
@@ -1618,13 +1638,14 @@
 can supply your own function to compute the completion of a given
 string.  This is called @dfn{programmed completion}.  Emacs uses
 programmed completion when completing file names (@pxref{File Name
-Completion}).
+Completion}), among many other cases.
 
-  To use this feature, pass a symbol with a function definition as the
-@var{collection} argument to @code{completing-read}.  The function
+  To use this feature, pass a function as the @var{collection}
+argument to @code{completing-read}.  The function
 @code{completing-read} arranges to pass your completion function along
-to @code{try-completion} and @code{all-completions}, which will then let
-your function do all the work.
+to @code{try-completion}, @code{all-completions}, and other basic
+completion functions, which will then let your function do all
+the work.
 
   The completion function should accept three arguments:
 
@@ -1638,10 +1659,14 @@
 and ignore the possible match if the predicate returns @code{nil}.
 
 @item
-A flag specifying the type of operation.
+A flag specifying the type of operation.  The best way to think about
+it is that the function stands for an object (in the
+``object-oriented'' sense of the word), and this third argument
+specifies which method to run.
 @end itemize
 
-  There are three flag values for three operations:
+  There are currently four methods, i.e. four flag values, one for
+  each of the four different basic operations:
 
 @itemize @bullet
 @item
@@ -1663,6 +1688,13 @@
 @code{lambda} specifies @code{test-completion}.  The completion
 function should return @code{t} if the specified string is an exact
 match for some possibility; @code{nil} otherwise.
+
+@item
+@code{(boundaries . SUFFIX)} specifies @code{completion-boundaries}.
+The function should return a value of the form @code{(boundaries
+START . END)} where START is the position of the beginning boundary in
+in the string to complete, and END is the position of the end boundary
+in SUFFIX.
 @end itemize
 
   It would be consistent and clean for completion functions to allow
--- a/doc/lispref/modes.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/modes.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1342,7 +1342,7 @@
   Global minor modes distributed with Emacs should if possible support
 enabling and disabling via Custom (@pxref{Customization}).  To do this,
 the first step is to define the mode variable with @code{defcustom}, and
-specify @code{:type boolean}.
+specify @code{:type 'boolean}.
 
   If just setting the variable is not sufficient to enable the mode, you
 should also specify a @code{:set} method which enables the mode by
@@ -1494,7 +1494,7 @@
  ;; The indicator for the mode line.
  " Hungry"
  ;; The minor mode bindings.
- '(("\C-\^?" . hungry-electric-delete))
+ '(([C-delete] . hungry-electric-delete))
  :group 'hunger)
 @end smallexample
 
@@ -1526,8 +1526,8 @@
  :lighter " Hungry"
  ;; The minor mode bindings.
  :keymap
- '(("\C-\^?" . hungry-electric-delete)
-   ("\C-\M-\^?"
+ '(([C-delete] . hungry-electric-delete)
+   ([C-M-delete]
     . (lambda ()
         (interactive)
         (hungry-electric-delete t))))
--- a/doc/lispref/numbers.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/numbers.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -21,10 +21,10 @@
 
 @menu
 * Integer Basics::            Representation and range of integers.
-* Float Basics::	      Representation and range of floating point.
+* Float Basics::              Representation and range of floating point.
 * Predicates on Numbers::     Testing for numbers.
 * Comparison of Numbers::     Equality and inequality predicates.
-* Numeric Conversions::	      Converting float to integer and vice versa.
+* Numeric Conversions::       Converting float to integer and vice versa.
 * Arithmetic Operations::     How to add, subtract, multiply and divide.
 * Rounding Operations::       Explicitly rounding floating point numbers.
 * Bitwise Operations::        Logical and, or, not, shifting.
--- a/doc/lispref/os.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/os.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 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 the file elisp.texi for copying conditions.
 @setfilename ../../info/os
 @node System Interface, Antinews, Display, Top
@@ -20,14 +21,14 @@
 * Getting Out::         How exiting works (permanent or temporary).
 * System Environment::  Distinguish the name and kind of system.
 * User Identification:: Finding the name and user id of the user.
-* Time of Day::		Getting the current time.
+* Time of Day::         Getting the current time.
 * Time Conversion::     Converting a time from numeric form to 
                           calendrical data and vice versa.
 * Time Parsing::        Converting a time from numeric form to text
                           and vice versa.
 * Processor Run Time::  Getting the run time used by Emacs.
 * Time Calculations::   Adding, subtracting, comparing times, etc.
-* Timers::		Setting a timer to call a function at a certain time.
+* Timers::              Setting a timer to call a function at a certain time.
 * Idle Timers::         Setting a timer to call a function when Emacs has
                           been idle for a certain length of time.
 * Terminal Input::      Accessing and recording terminal input.
@@ -1818,8 +1819,8 @@
 functions.
 
 @menu
-* Input Modes::		Options for how input is processed.
-* Recording Input::	Saving histories of recent or all input events.
+* Input Modes::         Options for how input is processed.
+* Recording Input::     Saving histories of recent or all input events.
 @end menu
 
 @node Input Modes
--- a/doc/lispref/processes.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/processes.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 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 the file elisp.texi for copying conditions.
 @setfilename ../../info/processes
 @node Processes, Display, Abbrevs, Top
@@ -51,13 +52,13 @@
 * Sentinels::                Sentinels run when process run-status changes.
 * Query Before Exit::        Whether to query if exiting will kill a process.
 * System Processes::         Accessing other processes running on your system.
-* Transaction Queues::	     Transaction-based communication with subprocesses.
+* Transaction Queues::       Transaction-based communication with subprocesses.
 * Network::                  Opening network connections.
 * Network Servers::          Network servers let Emacs accept net connections.
 * 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.
 @end menu
--- a/doc/lispref/searching.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/searching.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 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 the file elisp.texi for copying conditions.
 @setfilename ../../info/searching
 @node Searching and Matching, Syntax Tables, Non-ASCII Characters, Top
@@ -22,7 +23,7 @@
 * POSIX Regexps::         Searching POSIX-style for the longest match.
 * Match Data::            Finding out which part of the text matched,
                             after a string or regexp search.
-* Search and Replace::	  Commands that loop, searching and replacing.
+* Search and Replace::    Commands that loop, searching and replacing.
 * Standard Regexps::      Useful regexps for finding sentences, pages,...
 @end menu
 
@@ -362,7 +363,7 @@
 
 Thus, @samp{[ad]} matches either one @samp{a} or one @samp{d}, and
 @samp{[ad]*} matches any string composed of just @samp{a}s and @samp{d}s
-(including the empty string), from which it follows that @samp{c[ad]*r}
+(including the empty string).  It follows that @samp{c[ad]*r}
 matches @samp{cr}, @samp{car}, @samp{cdr}, @samp{caddaar}, etc.
 
 You can also include character ranges in a character alternative, by
@@ -400,20 +401,11 @@
 @var{c1} is the first character of the charset to which @var{c2}
 belongs.
 
-You cannot always match all non-@acronym{ASCII} characters with the regular
-expression @code{"[\200-\377]"}.  This works when searching a unibyte
-buffer or string (@pxref{Text Representations}), but not in a multibyte
-buffer or string, because many non-@acronym{ASCII} characters have codes
-above octal 0377.  However, the regular expression @code{"[^\000-\177]"}
-does match all non-@acronym{ASCII} characters (see below regarding @samp{^}),
-in both multibyte and unibyte representations, because only the
-@acronym{ASCII} characters are excluded.
-
-A character alternative can also specify named
-character classes (@pxref{Char Classes}).  This is a POSIX feature whose
-syntax is @samp{[:@var{class}:]}.  Using a character class is equivalent
-to mentioning each of the characters in that class; but the latter is
-not feasible in practice, since some classes include thousands of
+A character alternative can also specify named character classes
+(@pxref{Char Classes}).  This is a POSIX feature whose syntax is
+@samp{[:@var{class}:]}.  Using a character class is equivalent to
+mentioning each of the characters in that class; but the latter is not
+feasible in practice, since some classes include thousands of
 different characters.
 
 @item @samp{[^ @dots{} ]}
@@ -431,6 +423,10 @@
 mentioned as one of the characters not to match.  This is in contrast to
 the handling of regexps in programs such as @code{grep}.
 
+You can specify named character classes, just like in character
+alternatives.  For instance, @samp{[^[:ascii:]]} matches any
+non-@acronym{ASCII} character.  @xref{Char Classes}.
+
 @item @samp{^}
 @cindex beginning of line in regexp
 When matching a buffer, @samp{^} matches the empty string, but only at the
@@ -614,8 +610,8 @@
 For example, @samp{c[ad]\@{1,2\@}r} matches the strings @samp{car},
 @samp{cdr}, @samp{caar}, @samp{cadr}, @samp{cdar}, and @samp{cddr}, and
 nothing else.@*
-@samp{\@{0,1\@}} or @samp{\@{,1\@}} is equivalent to @samp{?}.	@*
-@samp{\@{0,\@}} or @samp{\@{,\@}} is equivalent to @samp{*}.	@*
+@samp{\@{0,1\@}} or @samp{\@{,1\@}} is equivalent to @samp{?}.@*
+@samp{\@{0,\@}} or @samp{\@{,\@}} is equivalent to @samp{*}.@*
 @samp{\@{1,\@}} is equivalent to @samp{+}.
 
 @item \( @dots{} \)
@@ -1218,9 +1214,9 @@
 match data around it, to prevent it from being overwritten.
 
 @menu
-* Replacing Match::	  Replacing a substring that was matched.
+* Replacing Match::       Replacing a substring that was matched.
 * Simple Match Data::     Accessing single items of match data,
-			    such as where a particular subexpression started.
+                            such as where a particular subexpression started.
 * Entire Match Data::     Accessing the entire match data at once, as a list.
 * Saving Match Data::     Saving and restoring the match data.
 @end menu
--- a/doc/lispref/sequences.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/sequences.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 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 the file elisp.texi for copying conditions.
 @setfilename ../../info/sequences
 @node Sequences Arrays Vectors, Hash Tables, Lists, Top
@@ -669,13 +670,13 @@
 (let (accumulator)
    (map-char-table
     #'(lambda (key value)
-	(setq accumulator
-	      (cons (list
-		     (if (consp key)
-			 (list (car key) (cdr key))
-		       key)
-		     value)
-		    accumulator)))
+        (setq accumulator
+              (cons (list
+                     (if (consp key)
+                         (list (car key) (cdr key))
+                       key)
+                     value)
+                    accumulator)))
     (syntax-table))
    accumulator)
 @result{}
--- a/doc/lispref/strings.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/strings.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 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 the file elisp.texi for copying conditions.
 @setfilename ../../info/strings
 @node Strings and Characters, Lists, Numbers, Top
@@ -31,7 +32,7 @@
 * String Conversion::         Converting to and from characters and strings.
 * Formatting Strings::        @code{format}: Emacs's analogue of @code{printf}.
 * Case Conversion::           Case conversion functions.
-* Case Tables::		      Customizing case conversion.
+* Case Tables::               Customizing case conversion.
 @end menu
 
 @node String Basics
--- a/doc/lispref/syntax.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/syntax.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 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 the file elisp.texi for copying conditions.
 @setfilename ../../info/syntax
 @node Syntax Tables, Abbrevs, Searching and Matching, Top
@@ -23,7 +24,7 @@
 * Desc: Syntax Descriptors.  How characters are classified.
 * Syntax Table Functions::   How to create, examine and alter syntax tables.
 * Syntax Properties::        Overriding syntax with text properties.
-* Motion and Syntax::	     Moving over characters with certain syntaxes.
+* Motion and Syntax::        Moving over characters with certain syntaxes.
 * Parsing Expressions::      Parsing balanced expressions
                                 using the syntax table.
 * Standard Syntax Tables::   Syntax tables used by various major modes.
--- a/doc/lispref/text.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/text.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 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 the file elisp.texi for copying conditions.
 @setfilename ../../info/text
 @node Text, Non-ASCII Characters, Markers, Top
@@ -42,7 +43,7 @@
 * The Kill Ring::    Where removed text sometimes is saved for later use.
 * Undo::             Undoing changes to the text of a buffer.
 * Maintaining Undo:: How to enable and disable undo information.
-			How to control how much information is kept.
+                        How to control how much information is kept.
 * Filling::          Functions for explicit filling.
 * Margins::          How to specify margins for filling commands.
 * Adaptive Fill::    Adaptive Fill mode chooses a fill prefix from context.
@@ -821,7 +822,7 @@
 * Kill Functions::         Functions that kill text.
 * Yanking::                How yanking is done.
 * Yank Commands::          Commands that access the kill ring.
-* Low-Level Kill Ring::	   Functions and variables for kill ring access.
+* Low-Level Kill Ring::    Functions and variables for kill ring access.
 * Internals of Kill Ring:: Variables that hold kill ring data.
 @end menu
 
@@ -1298,13 +1299,16 @@
 command stops at such a boundary, and successive undo commands undo
 to earlier and earlier boundaries.  This function returns @code{nil}.
 
-The editor command loop automatically creates an undo boundary before
-each key sequence is executed.  Thus, each undo normally undoes the
-effects of one command.  Self-inserting input characters are an
-exception.  The command loop makes a boundary for the first such
-character; the next 19 consecutive self-inserting input characters do
-not make boundaries, and then the 20th does, and so on as long as
-self-inserting characters continue.
+The editor command loop automatically calls @code{undo-boundary} just
+before executing each key sequence, so that each undo normally undoes
+the effects of one command.  As an exception, the command
+@code{self-insert-command}, which produces self-inserting input
+characters (@pxref{Commands for Insertion}), may remove the boundary
+inserted by the command loop: a boundary is accepted for the first
+such character, the next 19 consecutive self-inserting input
+characters do not have boundaries, and then the 20th does; and so on
+as long as the self-inserting characters continue.  Hence, sequences
+of consecutive character insertions can be undone as a group.
 
 All buffer modifications add a boundary whenever the previous undoable
 change was made in some other buffer.  This is to ensure that
@@ -2593,9 +2597,9 @@
 
 @menu
 * Examining Properties::   Looking at the properties of one character.
-* Changing Properties::	   Setting the properties of a range of text.
-* Property Search::	   Searching for where a property changes value.
-* Special Properties::	   Particular properties with special meanings.
+* Changing Properties::    Setting the properties of a range of text.
+* Property Search::        Searching for where a property changes value.
+* Special Properties::     Particular properties with special meanings.
 * Format Properties::      Properties for representing formatting of text.
 * Sticky Properties::      How inserted text gets properties from
                              neighboring text.
@@ -2605,8 +2609,8 @@
                              do something when you click on them.
 * Fields::                 The @code{field} property defines
                              fields within the buffer.
-* Not Intervals::	   Why text properties do not use
-			     Lisp-visible text intervals.
+* Not Intervals::          Why text properties do not use
+                             Lisp-visible text intervals.
 @end menu
 
 @node Examining Properties
@@ -3031,7 +3035,7 @@
 property when Font Lock mode is enabled.  When Font Lock mode is disabled,
 @code{font-lock-face} has no effect.
 
-The @code{font-lock-mode} property is useful for special modes that
+The @code{font-lock-face} property is useful for special modes that
 implement their own highlighting.  @xref{Precalculated Fontification}.
 
 @item mouse-face
--- a/doc/lispref/tips.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/tips.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
 @c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2001, 2002,
-@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+@c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../../info/tips
 @node Tips, GNU Emacs Internals, GPL, Top
@@ -28,7 +29,7 @@
 * Compilation Tips::          Making compiled code run fast.
 * Warning Tips::              Turning off compiler warnings.
 * Documentation Tips::        Writing readable documentation strings.
-* Comment Tips::	      Conventions for writing comments.
+* Comment Tips::              Conventions for writing comments.
 * Library Headers::           Standard headers for library packages.
 @end menu
 
--- a/doc/lispref/vol1.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/vol1.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -164,7 +164,7 @@
                               files are made.
 * Buffers::                 Creating and using buffer objects.
 * Windows::                 Manipulating windows and displaying buffers.
-* Frames::		    Making multiple system-level windows.
+* Frames::                  Making multiple system-level windows.
 * Positions::               Buffer positions and motion functions.
 * Markers::                 Markers represent positions and update
                               automatically when the text is changed.
@@ -176,7 +176,7 @@
 * Abbrevs::                 How Abbrev mode works, and its data structures.
 
 * Processes::               Running and communicating with subprocesses.
-* Display::	            Features for controlling the screen display.
+* Display::                 Features for controlling the screen display.
 * System Interface::        Getting the user id, system type, environment
                               variables, and other such things.
 
@@ -311,10 +311,10 @@
 Numbers
 
 * Integer Basics::          Representation and range of integers.
-* Float Basics::	    Representation and range of floating point.
+* Float Basics::            Representation and range of floating point.
 * Predicates on Numbers::   Testing for numbers.
 * Comparison of Numbers::   Equality and inequality predicates.
-* Numeric Conversions::	    Converting float to integer and vice versa.
+* Numeric Conversions::     Converting float to integer and vice versa.
 * Arithmetic Operations::   How to add, subtract, multiply and divide.
 * Rounding Operations::     Explicitly rounding floating point numbers.
 * Bitwise Operations::      Logical and, or, not, shifting.
@@ -331,7 +331,7 @@
 * String Conversion::       Converting to and from characters and strings.
 * Formatting Strings::      @code{format}: Emacs's analogue of @code{printf}.
 * Case Conversion::         Case conversion functions.
-* Case Tables::		    Customizing case conversion.
+* Case Tables::             Customizing case conversion.
 
 Lists
 
@@ -399,7 +399,7 @@
 * Symbol Forms::            Symbols evaluate as variables.
 * Classifying Lists::       How to distinguish various sorts of list forms.
 * Function Indirection::    When a symbol appears as the car of a list,
-			      we find the real function via the symbol.
+                              we find the real function via the symbol.
 * Function Forms::          Forms that call functions.
 * Macro Forms::             Forms that call macros.
 * Special Forms::           "Special forms" are idiosyncratic primitives,
@@ -480,9 +480,9 @@
 * Function Cells::          Accessing or setting the function definition
                               of a symbol.
 * Obsolete Functions::      Declaring functions obsolete.
-* Inline Functions::	    Defining functions that the compiler
+* Inline Functions::        Defining functions that the compiler
                               will open code.
-* Declaring Functions::	    Telling the compiler that a function is defined.
+* 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
                               that have a special bearing on how
@@ -542,9 +542,9 @@
 * Repeated Loading::        Precautions about loading a file twice.
 * Named Features::          Loading a library if it isn't already loaded.
 * Where Defined::           Finding which file defined a certain symbol.
-* Unloading::		    How to "unload" a library that was loaded.
-* Hooks for Loading::	    Providing code to be run when
-			      particular libraries are loaded.
+* Unloading::               How to "unload" a library that was loaded.
+* Hooks for Loading::       Providing code to be run when
+                              particular libraries are loaded.
 
 Byte Compilation
 
@@ -554,7 +554,7 @@
 * Dynamic Loading::         Dynamic loading of individual functions.
 * Eval During Compile::     Code to be evaluated when you compile.
 * Compiler Errors::         Handling compiler error messages.
-* Byte-Code Objects::	    The data type used for byte-compiled functions.
+* Byte-Code Objects::       The data type used for byte-compiled functions.
 * Disassembly::             Disassembling byte-code; how to read byte-code.
 
 Advising Emacs Lisp Functions
@@ -583,7 +583,7 @@
 The Lisp Debugger
 
 * Error Debugging::         Entering the debugger when an error happens.
-* Infinite Loops::	    Stopping and debugging a program that doesn't exit.
+* Infinite Loops::          Stopping and debugging a program that doesn't exit.
 * Function Debugging::      Entering it when a certain function is called.
 * Explicit Debug::          Entering it at a certain point in the program.
 * Using Debugger::          What the debugger does; what you see while in it.
@@ -593,24 +593,24 @@
 
 Edebug
 
-* Using Edebug::	    Introduction to use of Edebug.
-* Instrumenting::	    You must instrument your code
-			      in order to debug it with Edebug.
+* Using Edebug::            Introduction to use of Edebug.
+* Instrumenting::           You must instrument your code
+                              in order to debug it with Edebug.
 * Edebug Execution Modes::  Execution modes, stopping more or less often.
-* Jumping::		    Commands to jump to a specified place.
-* Edebug Misc::		    Miscellaneous commands.
-* Breaks::		    Setting breakpoints to make the program stop.
-* Trapping Errors::	    Trapping errors with Edebug.
-* Edebug Views::	    Views inside and outside of Edebug.
-* Edebug Eval::		    Evaluating expressions within Edebug.
-* Eval List::		    Expressions whose values are displayed
-			      each time you enter Edebug.
-* Printing in Edebug::	    Customization of printing.
-* Trace Buffer::	    How to produce trace output in a buffer.
-* Coverage Testing::	    How to test evaluation coverage.
-* The Outside Context::	    Data that Edebug saves and restores.
+* Jumping::                 Commands to jump to a specified place.
+* Edebug Misc::             Miscellaneous commands.
+* Breaks::                  Setting breakpoints to make the program stop.
+* Trapping Errors::         Trapping errors with Edebug.
+* Edebug Views::            Views inside and outside of Edebug.
+* Edebug Eval::             Evaluating expressions within Edebug.
+* Eval List::               Expressions whose values are displayed
+                              each time you enter Edebug.
+* Printing in Edebug::      Customization of printing.
+* Trace Buffer::            How to produce trace output in a buffer.
+* Coverage Testing::        How to test evaluation coverage.
+* The Outside Context::     Data that Edebug saves and restores.
 * Edebug and Macros::       Specifying how to handle macro calls.
-* Edebug Options::	    Option variables for customizing Edebug.
+* Edebug Options::          Option variables for customizing Edebug.
 
 Breaks
 
@@ -627,8 +627,8 @@
 Edebug and Macros
 
 * Instrumenting Macro Calls::The basic problem.
-* Specification List::	    How to specify complex patterns of evaluation.
-* Backtracking::	    What Edebug does when matching fails.
+* Specification List::      How to specify complex patterns of evaluation.
+* Backtracking::            What Edebug does when matching fails.
 * Specification Examples::  To help understand specifications.
 
 Debugging Invalid Lisp Syntax
@@ -653,13 +653,13 @@
 * Intro to Minibuffers::    Basic information about minibuffers.
 * Text from Minibuffer::    How to read a straight text string.
 * Object from Minibuffer::  How to read a Lisp object or expression.
-* Minibuffer History::	    Recording previous minibuffer inputs
-			      so the user can reuse them.
+* Minibuffer History::      Recording previous minibuffer inputs
+                              so the user can reuse them.
 * Initial Input::           Specifying initial contents for the minibuffer.
 * Completion::              How to invoke and customize completion.
 * Yes-or-No Queries::       Asking a question with a simple answer.
-* Multiple Queries::	    Asking a series of similar questions.
-* Reading a Password::	    Reading a password from the terminal.
+* Multiple Queries::        Asking a series of similar questions.
+* Reading a Password::      Reading a password from the terminal.
 * Minibuffer Commands::     Commands used as key bindings in minibuffers.
 * Minibuffer Contents::     How such commands access the minibuffer text.
 * Minibuffer Windows::      Operating on the special minibuffer windows.
@@ -687,7 +687,7 @@
 * Distinguish Interactive::     Making a command distinguish interactive calls.
 * Command Loop Info::   Variables set by the command loop for you to examine.
 * Adjusting Point::     Adjustment of point after a command.
-* Input Events::	What input looks like when you read it.
+* Input Events::        What input looks like when you read it.
 * Reading Input::       How to read input events from the keyboard or mouse.
 * Special Events::      Events processed immediately and individually.
 * Waiting::             Waiting for user input or elapsed time.
@@ -721,7 +721,7 @@
 * Event Examples::          Examples of the lists for mouse events.
 * Classifying Events::      Finding the modifier keys in an event symbol.
                               Event types.
-* Accessing Mouse::	    Functions to extract info from mouse events.
+* Accessing Mouse::         Functions to extract info from mouse events.
 * Accessing Scroll::        Functions to get info from scroll bar events.
 * Strings of Events::       Special considerations for putting
                               keyboard character events in a string.
@@ -871,9 +871,9 @@
 * Changing Files::          Renaming files, changing protection, etc.
 * File Names::              Decomposing and expanding file names.
 * Contents of Directories:: Getting a list of the files in a directory.
-* Create/Delete Dirs::	    Creating and Deleting Directories.
-* Magic File Names::	    Defining "magic" special handling
-			      for certain file names.
+* Create/Delete Dirs::      Creating and Deleting Directories.
+* Magic File Names::        Defining "magic" special handling
+                              for certain file names.
 * Format Conversion::       Conversion to and from various file formats.
 
 Visiting Files
@@ -885,7 +885,7 @@
 
 * Testing Accessibility::   Is a given file readable?  Writable?
 * Kinds of Files::          Is it a directory?  A symbolic link?
-* Truenames::		    Eliminating symbolic links from a file name.
+* Truenames::               Eliminating symbolic links from a file name.
 * File Attributes::         How large is it?  Any other names?  Etc.
 * Locating Files::          How to find a file in standard places.
 
@@ -955,8 +955,8 @@
 * Buffers and Windows::     Each window displays the contents of a buffer.
 * Displaying Buffers::      Higher-level functions for displaying a buffer
                               and choosing a window for it.
-* Choosing Window::	    How to choose a window for displaying a buffer.
-* Dedicated Windows::	    How to avoid displaying another buffer in
+* Choosing Window::         How to choose a window for displaying a buffer.
+* Dedicated Windows::       How to avoid displaying another buffer in
                               a specific window.          
 * Window Point::            Each window has its own location of point.
 * Window Start and End::    Buffer positions indicating which text is
@@ -976,37 +976,37 @@
 
 Frames
 
-* Creating Frames::	    Creating additional frames.
+* Creating Frames::         Creating additional frames.
 * Multiple Terminals::      Displaying on several different devices.
-* Frame Parameters::	    Controlling frame size, position, font, etc.
+* Frame Parameters::        Controlling frame size, position, font, etc.
 * Terminal Parameters::     Parameters common for all frames on terminal.
 * Frame Titles::            Automatic updating of frame titles.
-* Deleting Frames::	    Frames last until explicitly deleted.
-* Finding All Frames::	    How to examine all existing frames.
-* Frames and Windows::	    A frame contains windows;
-			      display of text always works through windows.
+* Deleting Frames::         Frames last until explicitly deleted.
+* Finding All Frames::      How to examine all existing frames.
+* Frames and Windows::      A frame contains windows;
+                              display of text always works through windows.
 * Minibuffers and Frames::  How a frame finds the minibuffer to use.
-* Input Focus::		    Specifying the selected frame.
+* Input Focus::             Specifying the selected frame.
 * Visibility of Frames::    Frames may be visible or invisible, or icons.
 * Raising and Lowering::    Raising a frame makes it hide other windows;
-			      lowering it makes the others hide it.
+                              lowering it makes the others hide it.
 * Frame Configurations::    Saving the state of all frames.
-* Mouse Tracking::	    Getting events that say when the mouse moves.
-* Mouse Position::	    Asking where the mouse is, or moving it.
-* Pop-Up Menus::	    Displaying a menu for the user to select from.
+* Mouse Tracking::          Getting events that say when the mouse moves.
+* Mouse Position::          Asking where the mouse is, or moving it.
+* Pop-Up Menus::            Displaying a menu for the user to select from.
 * Dialog Boxes::            Displaying a box to ask yes or no.
 * Pointer Shape::           Specifying the shape of the mouse pointer.
 * Window System Selections::Transferring text to and from other X clients.
 * Drag and Drop::               Internals of Drag-and-Drop implementation.
-* Color Names::	            Getting the definitions of color names.
+* Color Names::             Getting the definitions of color names.
 * Text Terminal Colors::    Defining colors for text-only terminals.
-* Resources::		    Getting resource values from the server.
+* Resources::               Getting resource values from the server.
 * Display Feature Testing:: Determining the features of a terminal.
 
 Frame Parameters
 
 * Parameter Access::        How to change a frame's parameters.
-* Initial Parameters::	    Specifying frame parameters when you make a frame.
+* Initial Parameters::      Specifying frame parameters when you make a frame.
 * Window Frame Parameters:: List of frame parameters for window systems.
 * Size and Position::       Changing the size and position of a frame.
 * Geometry::                Parsing geometry specifications.
@@ -1065,7 +1065,7 @@
                               later use.
 * Undo::                    Undoing changes to the text of a buffer.
 * Maintaining Undo::        How to enable and disable undo information.
-			      How to control how much information is kept.
+                              How to control how much information is kept.
 * Filling::                 Functions for explicit filling.
 * Margins::                 How to specify margins for filling commands.
 * Adaptive Fill::           Adaptive Fill mode chooses a fill prefix
@@ -1091,7 +1091,7 @@
 * Kill Functions::          Functions that kill text.
 * Yanking::                 How yanking is done.
 * Yank Commands::           Commands that access the kill ring.
-* Low-Level Kill Ring::	    Functions and variables for kill ring access.
+* Low-Level Kill Ring::     Functions and variables for kill ring access.
 * Internals of Kill Ring::  Variables that hold kill ring data.
 
 Indentation
@@ -1106,9 +1106,9 @@
 Text Properties
 
 * Examining Properties::    Looking at the properties of one character.
-* Changing Properties::	    Setting the properties of a range of text.
-* Property Search::	    Searching for where a property changes value.
-* Special Properties::	    Particular properties with special meanings.
+* Changing Properties::     Setting the properties of a range of text.
+* Property Search::         Searching for where a property changes value.
+* Special Properties::      Particular properties with special meanings.
 * Format Properties::       Properties for representing formatting of text.
 * Sticky Properties::       How inserted text gets properties from
                               neighboring text.
@@ -1118,8 +1118,8 @@
                               do something when you click on them.
 * Fields::                  The @code{field} property defines
                               fields within the buffer.
-* Not Intervals::	    Why text properties do not use
-			      Lisp-visible text intervals.
+* Not Intervals::           Why text properties do not use
+                              Lisp-visible text intervals.
 
 Non-@acronym{ASCII} Characters
 
@@ -1162,7 +1162,7 @@
 * POSIX Regexps::           Searching POSIX-style for the longest match.
 * Match Data::              Finding out which part of the text matched,
                               after a string or regexp search.
-* Search and Replace::	    Commands that loop, searching and replacing.
+* Search and Replace::      Commands that loop, searching and replacing.
 * Standard Regexps::        Useful regexps for finding sentences, pages,...
 
 Regular Expressions
@@ -1179,9 +1179,9 @@
 
 The Match Data
 
-* Replacing Match::	    Replacing a substring that was matched.
+* Replacing Match::         Replacing a substring that was matched.
 * Simple Match Data::       Accessing single items of match data,
-			      such as where a particular subexpression started.
+                              such as where a particular subexpression started.
 * Entire Match Data::       Accessing the entire match data at once, as a list.
 * Saving Match Data::       Saving and restoring the match data.
 
@@ -1191,7 +1191,7 @@
 * Syntax Descriptors::      How characters are classified.
 * Syntax Table Functions::  How to create, examine and alter syntax tables.
 * Syntax Properties::       Overriding syntax with text properties.
-* Motion and Syntax::	    Moving over characters with certain syntaxes.
+* Motion and Syntax::       Moving over characters with certain syntaxes.
 * Parsing Expressions::     Parsing balanced expressions
                               using the syntax table.
 * Standard Syntax Tables::  Syntax tables used by various major modes.
@@ -1280,10 +1280,10 @@
 * Invisible Text::          Hiding part of the buffer text.
 * Selective Display::       Hiding part of the buffer text (the old way).
 * Temporary Displays::      Displays that go away automatically.
-* Overlays::		    Use overlays to highlight parts of the buffer.
+* Overlays::                Use overlays to highlight parts of the buffer.
 * Width::                   How wide a character or string is on the screen.
 * Line Height::             Controlling the height of lines.
-* Faces::		    A face defines a graphics style
+* Faces::                   A face defines a graphics style
                               for text characters: font, colors, etc.
 * Fringes::                 Controlling window fringes.
 * Scroll Bars::             Controlling vertical scroll bars.
@@ -1292,9 +1292,9 @@
 * Buttons::                 Adding clickable buttons to Emacs buffers.
 * Abstract Display::        Emacs' Widget for Object Collections.
 * Blinking::                How Emacs shows the matching open parenthesis.
-* Usual Display::	    The usual conventions for displaying
+* Usual Display::           The usual conventions for displaying
                               nonprinting chars.
-* Display Tables::	    How to specify other conventions.
+* Display Tables::          How to specify other conventions.
 * Beeping::                 Audible signal to the user.
 * Window Systems::          Which window system is being used.
 
@@ -1316,7 +1316,7 @@
 
 * Managing Overlays::       Creating and moving overlays.
 * Overlay Properties::      How to read and set properties.
-			    What properties do to the screen display.
+                            What properties do to the screen display.
 * Finding Overlays::        Searching for overlays.
 
 Faces
@@ -1396,14 +1396,14 @@
 * Getting Out::             How exiting works (permanent or temporary).
 * System Environment::      Distinguish the name and kind of system.
 * User Identification::     Finding the name and user id of the user.
-* Time of Day::		    Getting the current time.
+* Time of Day::             Getting the current time.
 * Time Conversion::         Converting a time from numeric form to 
                               calendrical data and vice versa.
 * Time Parsing::            Converting a time from numeric form to text
                               and vice versa.
 * Processor Run Time::      Getting the run time used by Emacs.
 * Time Calculations::       Adding, subtracting, comparing times, etc.
-* Timers::		    Setting a timer to call a function at a
+* Timers::                  Setting a timer to call a function at a
                               certain time.
 * Idle Timers::             Setting a timer to call a function when Emacs has
                               been idle for a certain length of time.
@@ -1430,8 +1430,8 @@
 
 Terminal Input
 
-* Input Modes::		    Options for how input is processed.
-* Recording Input::	    Saving histories of recent or all input events.
+* Input Modes::             Options for how input is processed.
+* Recording Input::         Saving histories of recent or all input events.
 
 Tips and Conventions
 
@@ -1441,7 +1441,7 @@
 * Compilation Tips::        Making compiled code run fast.
 * Warning Tips::            Turning off compiler warnings.
 * Documentation Tips::      Writing readable documentation strings.
-* Comment Tips::	    Conventions for writing comments.
+* Comment Tips::            Conventions for writing comments.
 * Library Headers::         Standard headers for library packages.
 
 GNU Emacs Internals
--- a/doc/lispref/vol2.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/vol2.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -163,7 +163,7 @@
                               files are made.
 * Buffers::                 Creating and using buffer objects.
 * Windows::                 Manipulating windows and displaying buffers.
-* Frames::		    Making multiple system-level windows.
+* Frames::                  Making multiple system-level windows.
 * Positions::               Buffer positions and motion functions.
 * Markers::                 Markers represent positions and update
                               automatically when the text is changed.
@@ -175,7 +175,7 @@
 * Abbrevs::                 How Abbrev mode works, and its data structures.
 
 * Processes::               Running and communicating with subprocesses.
-* Display::	            Features for controlling the screen display.
+* Display::                 Features for controlling the screen display.
 * System Interface::        Getting the user id, system type, environment
                               variables, and other such things.
 
@@ -310,10 +310,10 @@
 Numbers
 
 * Integer Basics::          Representation and range of integers.
-* Float Basics::	    Representation and range of floating point.
+* Float Basics::            Representation and range of floating point.
 * Predicates on Numbers::   Testing for numbers.
 * Comparison of Numbers::   Equality and inequality predicates.
-* Numeric Conversions::	    Converting float to integer and vice versa.
+* Numeric Conversions::     Converting float to integer and vice versa.
 * Arithmetic Operations::   How to add, subtract, multiply and divide.
 * Rounding Operations::     Explicitly rounding floating point numbers.
 * Bitwise Operations::      Logical and, or, not, shifting.
@@ -330,7 +330,7 @@
 * String Conversion::       Converting to and from characters and strings.
 * Formatting Strings::      @code{format}: Emacs's analogue of @code{printf}.
 * Case Conversion::         Case conversion functions.
-* Case Tables::		    Customizing case conversion.
+* Case Tables::             Customizing case conversion.
 
 Lists
 
@@ -398,7 +398,7 @@
 * Symbol Forms::            Symbols evaluate as variables.
 * Classifying Lists::       How to distinguish various sorts of list forms.
 * Function Indirection::    When a symbol appears as the car of a list,
-			      we find the real function via the symbol.
+                              we find the real function via the symbol.
 * Function Forms::          Forms that call functions.
 * Macro Forms::             Forms that call macros.
 * Special Forms::           "Special forms" are idiosyncratic primitives,
@@ -479,9 +479,9 @@
 * Function Cells::          Accessing or setting the function definition
                               of a symbol.
 * Obsolete Functions::      Declaring functions obsolete.
-* Inline Functions::	    Defining functions that the compiler
+* Inline Functions::        Defining functions that the compiler
                               will open code.
-* Declaring Functions::	    Telling the compiler that a function is defined.
+* 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
                               that have a special bearing on how
@@ -541,9 +541,9 @@
 * Repeated Loading::        Precautions about loading a file twice.
 * Named Features::          Loading a library if it isn't already loaded.
 * Where Defined::           Finding which file defined a certain symbol.
-* Unloading::		    How to "unload" a library that was loaded.
-* Hooks for Loading::	    Providing code to be run when
-			      particular libraries are loaded.
+* Unloading::               How to "unload" a library that was loaded.
+* Hooks for Loading::       Providing code to be run when
+                              particular libraries are loaded.
 
 Byte Compilation
 
@@ -553,7 +553,7 @@
 * Dynamic Loading::         Dynamic loading of individual functions.
 * Eval During Compile::     Code to be evaluated when you compile.
 * Compiler Errors::         Handling compiler error messages.
-* Byte-Code Objects::	    The data type used for byte-compiled functions.
+* Byte-Code Objects::       The data type used for byte-compiled functions.
 * Disassembly::             Disassembling byte-code; how to read byte-code.
 
 Advising Emacs Lisp Functions
@@ -582,7 +582,7 @@
 The Lisp Debugger
 
 * Error Debugging::         Entering the debugger when an error happens.
-* Infinite Loops::	    Stopping and debugging a program that doesn't exit.
+* Infinite Loops::          Stopping and debugging a program that doesn't exit.
 * Function Debugging::      Entering it when a certain function is called.
 * Explicit Debug::          Entering it at a certain point in the program.
 * Using Debugger::          What the debugger does; what you see while in it.
@@ -592,24 +592,24 @@
 
 Edebug
 
-* Using Edebug::	    Introduction to use of Edebug.
-* Instrumenting::	    You must instrument your code
-			      in order to debug it with Edebug.
+* Using Edebug::            Introduction to use of Edebug.
+* Instrumenting::           You must instrument your code
+                              in order to debug it with Edebug.
 * Edebug Execution Modes::  Execution modes, stopping more or less often.
-* Jumping::		    Commands to jump to a specified place.
-* Edebug Misc::		    Miscellaneous commands.
-* Breaks::		    Setting breakpoints to make the program stop.
-* Trapping Errors::	    Trapping errors with Edebug.
-* Edebug Views::	    Views inside and outside of Edebug.
-* Edebug Eval::		    Evaluating expressions within Edebug.
-* Eval List::		    Expressions whose values are displayed
-			      each time you enter Edebug.
-* Printing in Edebug::	    Customization of printing.
-* Trace Buffer::	    How to produce trace output in a buffer.
-* Coverage Testing::	    How to test evaluation coverage.
-* The Outside Context::	    Data that Edebug saves and restores.
+* Jumping::                 Commands to jump to a specified place.
+* Edebug Misc::             Miscellaneous commands.
+* Breaks::                  Setting breakpoints to make the program stop.
+* Trapping Errors::         Trapping errors with Edebug.
+* Edebug Views::            Views inside and outside of Edebug.
+* Edebug Eval::             Evaluating expressions within Edebug.
+* Eval List::               Expressions whose values are displayed
+                              each time you enter Edebug.
+* Printing in Edebug::      Customization of printing.
+* Trace Buffer::            How to produce trace output in a buffer.
+* Coverage Testing::        How to test evaluation coverage.
+* The Outside Context::     Data that Edebug saves and restores.
 * Edebug and Macros::       Specifying how to handle macro calls.
-* Edebug Options::	    Option variables for customizing Edebug.
+* Edebug Options::          Option variables for customizing Edebug.
 
 Breaks
 
@@ -626,8 +626,8 @@
 Edebug and Macros
 
 * Instrumenting Macro Calls::The basic problem.
-* Specification List::	    How to specify complex patterns of evaluation.
-* Backtracking::	    What Edebug does when matching fails.
+* Specification List::      How to specify complex patterns of evaluation.
+* Backtracking::            What Edebug does when matching fails.
 * Specification Examples::  To help understand specifications.
 
 Debugging Invalid Lisp Syntax
@@ -652,13 +652,13 @@
 * Intro to Minibuffers::    Basic information about minibuffers.
 * Text from Minibuffer::    How to read a straight text string.
 * Object from Minibuffer::  How to read a Lisp object or expression.
-* Minibuffer History::	    Recording previous minibuffer inputs
-			      so the user can reuse them.
+* Minibuffer History::      Recording previous minibuffer inputs
+                              so the user can reuse them.
 * Initial Input::           Specifying initial contents for the minibuffer.
 * Completion::              How to invoke and customize completion.
 * Yes-or-No Queries::       Asking a question with a simple answer.
-* Multiple Queries::	    Asking a series of similar questions.
-* Reading a Password::	    Reading a password from the terminal.
+* Multiple Queries::        Asking a series of similar questions.
+* Reading a Password::      Reading a password from the terminal.
 * Minibuffer Commands::     Commands used as key bindings in minibuffers.
 * Minibuffer Contents::     How such commands access the minibuffer text.
 * Minibuffer Windows::      Operating on the special minibuffer windows.
@@ -686,7 +686,7 @@
 * Distinguish Interactive::     Making a command distinguish interactive calls.
 * Command Loop Info::   Variables set by the command loop for you to examine.
 * Adjusting Point::     Adjustment of point after a command.
-* Input Events::	What input looks like when you read it.
+* Input Events::        What input looks like when you read it.
 * Reading Input::       How to read input events from the keyboard or mouse.
 * Special Events::      Events processed immediately and individually.
 * Waiting::             Waiting for user input or elapsed time.
@@ -720,7 +720,7 @@
 * Event Examples::          Examples of the lists for mouse events.
 * Classifying Events::      Finding the modifier keys in an event symbol.
                               Event types.
-* Accessing Mouse::	    Functions to extract info from mouse events.
+* Accessing Mouse::         Functions to extract info from mouse events.
 * Accessing Scroll::        Functions to get info from scroll bar events.
 * Strings of Events::       Special considerations for putting
                               keyboard character events in a string.
@@ -870,9 +870,9 @@
 * Changing Files::          Renaming files, changing protection, etc.
 * File Names::              Decomposing and expanding file names.
 * Contents of Directories:: Getting a list of the files in a directory.
-* Create/Delete Dirs::	    Creating and Deleting Directories.
-* Magic File Names::	    Defining "magic" special handling
-			      for certain file names.
+* Create/Delete Dirs::      Creating and Deleting Directories.
+* Magic File Names::        Defining "magic" special handling
+                              for certain file names.
 * Format Conversion::       Conversion to and from various file formats.
 
 Visiting Files
@@ -884,7 +884,7 @@
 
 * Testing Accessibility::   Is a given file readable?  Writable?
 * Kinds of Files::          Is it a directory?  A symbolic link?
-* Truenames::		    Eliminating symbolic links from a file name.
+* Truenames::               Eliminating symbolic links from a file name.
 * File Attributes::         How large is it?  Any other names?  Etc.
 * Locating Files::          How to find a file in standard places.
 
@@ -954,8 +954,8 @@
 * Buffers and Windows::     Each window displays the contents of a buffer.
 * Displaying Buffers::      Higher-level functions for displaying a buffer
                               and choosing a window for it.
-* Choosing Window::	    How to choose a window for displaying a buffer.
-* Dedicated Windows::	    How to avoid displaying another buffer in
+* Choosing Window::         How to choose a window for displaying a buffer.
+* Dedicated Windows::       How to avoid displaying another buffer in
                               a specific window.          
 * Window Point::            Each window has its own location of point.
 * Window Start and End::    Buffer positions indicating which text is
@@ -975,37 +975,37 @@
 
 Frames
 
-* Creating Frames::	    Creating additional frames.
+* Creating Frames::         Creating additional frames.
 * Multiple Terminals::      Displaying on several different devices.
-* Frame Parameters::	    Controlling frame size, position, font, etc.
+* Frame Parameters::        Controlling frame size, position, font, etc.
 * Terminal Parameters::     Parameters common for all frames on terminal.
 * Frame Titles::            Automatic updating of frame titles.
-* Deleting Frames::	    Frames last until explicitly deleted.
-* Finding All Frames::	    How to examine all existing frames.
-* Frames and Windows::	    A frame contains windows;
-			      display of text always works through windows.
+* Deleting Frames::         Frames last until explicitly deleted.
+* Finding All Frames::      How to examine all existing frames.
+* Frames and Windows::      A frame contains windows;
+                              display of text always works through windows.
 * Minibuffers and Frames::  How a frame finds the minibuffer to use.
-* Input Focus::		    Specifying the selected frame.
+* Input Focus::             Specifying the selected frame.
 * Visibility of Frames::    Frames may be visible or invisible, or icons.
 * Raising and Lowering::    Raising a frame makes it hide other windows;
-			      lowering it makes the others hide it.
+                              lowering it makes the others hide it.
 * Frame Configurations::    Saving the state of all frames.
-* Mouse Tracking::	    Getting events that say when the mouse moves.
-* Mouse Position::	    Asking where the mouse is, or moving it.
-* Pop-Up Menus::	    Displaying a menu for the user to select from.
+* Mouse Tracking::          Getting events that say when the mouse moves.
+* Mouse Position::          Asking where the mouse is, or moving it.
+* Pop-Up Menus::            Displaying a menu for the user to select from.
 * Dialog Boxes::            Displaying a box to ask yes or no.
 * Pointer Shape::           Specifying the shape of the mouse pointer.
 * Window System Selections::Transferring text to and from other X clients.
 * Drag and Drop::               Internals of Drag-and-Drop implementation.
-* Color Names::	            Getting the definitions of color names.
+* Color Names::             Getting the definitions of color names.
 * Text Terminal Colors::    Defining colors for text-only terminals.
-* Resources::		    Getting resource values from the server.
+* Resources::               Getting resource values from the server.
 * Display Feature Testing:: Determining the features of a terminal.
 
 Frame Parameters
 
 * Parameter Access::        How to change a frame's parameters.
-* Initial Parameters::	    Specifying frame parameters when you make a frame.
+* Initial Parameters::      Specifying frame parameters when you make a frame.
 * Window Frame Parameters:: List of frame parameters for window systems.
 * Size and Position::       Changing the size and position of a frame.
 * Geometry::                Parsing geometry specifications.
@@ -1064,7 +1064,7 @@
                               later use.
 * Undo::                    Undoing changes to the text of a buffer.
 * Maintaining Undo::        How to enable and disable undo information.
-			      How to control how much information is kept.
+                              How to control how much information is kept.
 * Filling::                 Functions for explicit filling.
 * Margins::                 How to specify margins for filling commands.
 * Adaptive Fill::           Adaptive Fill mode chooses a fill prefix
@@ -1090,7 +1090,7 @@
 * Kill Functions::          Functions that kill text.
 * Yanking::                 How yanking is done.
 * Yank Commands::           Commands that access the kill ring.
-* Low-Level Kill Ring::	    Functions and variables for kill ring access.
+* Low-Level Kill Ring::     Functions and variables for kill ring access.
 * Internals of Kill Ring::  Variables that hold kill ring data.
 
 Indentation
@@ -1105,9 +1105,9 @@
 Text Properties
 
 * Examining Properties::    Looking at the properties of one character.
-* Changing Properties::	    Setting the properties of a range of text.
-* Property Search::	    Searching for where a property changes value.
-* Special Properties::	    Particular properties with special meanings.
+* Changing Properties::     Setting the properties of a range of text.
+* Property Search::         Searching for where a property changes value.
+* Special Properties::      Particular properties with special meanings.
 * Format Properties::       Properties for representing formatting of text.
 * Sticky Properties::       How inserted text gets properties from
                               neighboring text.
@@ -1117,8 +1117,8 @@
                               do something when you click on them.
 * Fields::                  The @code{field} property defines
                               fields within the buffer.
-* Not Intervals::	    Why text properties do not use
-			      Lisp-visible text intervals.
+* Not Intervals::           Why text properties do not use
+                              Lisp-visible text intervals.
 
 Non-@acronym{ASCII} Characters
 
@@ -1161,7 +1161,7 @@
 * POSIX Regexps::           Searching POSIX-style for the longest match.
 * Match Data::              Finding out which part of the text matched,
                               after a string or regexp search.
-* Search and Replace::	    Commands that loop, searching and replacing.
+* Search and Replace::      Commands that loop, searching and replacing.
 * Standard Regexps::        Useful regexps for finding sentences, pages,...
 
 Regular Expressions
@@ -1178,9 +1178,9 @@
 
 The Match Data
 
-* Replacing Match::	    Replacing a substring that was matched.
+* Replacing Match::         Replacing a substring that was matched.
 * Simple Match Data::       Accessing single items of match data,
-			      such as where a particular subexpression started.
+                              such as where a particular subexpression started.
 * Entire Match Data::       Accessing the entire match data at once, as a list.
 * Saving Match Data::       Saving and restoring the match data.
 
@@ -1190,7 +1190,7 @@
 * Syntax Descriptors::      How characters are classified.
 * Syntax Table Functions::  How to create, examine and alter syntax tables.
 * Syntax Properties::       Overriding syntax with text properties.
-* Motion and Syntax::	    Moving over characters with certain syntaxes.
+* Motion and Syntax::       Moving over characters with certain syntaxes.
 * Parsing Expressions::     Parsing balanced expressions
                               using the syntax table.
 * Standard Syntax Tables::  Syntax tables used by various major modes.
@@ -1279,10 +1279,10 @@
 * Invisible Text::          Hiding part of the buffer text.
 * Selective Display::       Hiding part of the buffer text (the old way).
 * Temporary Displays::      Displays that go away automatically.
-* Overlays::		    Use overlays to highlight parts of the buffer.
+* Overlays::                Use overlays to highlight parts of the buffer.
 * Width::                   How wide a character or string is on the screen.
 * Line Height::             Controlling the height of lines.
-* Faces::		    A face defines a graphics style
+* Faces::                   A face defines a graphics style
                               for text characters: font, colors, etc.
 * Fringes::                 Controlling window fringes.
 * Scroll Bars::             Controlling vertical scroll bars.
@@ -1291,9 +1291,9 @@
 * Buttons::                 Adding clickable buttons to Emacs buffers.
 * Abstract Display::        Emacs' Widget for Object Collections.
 * Blinking::                How Emacs shows the matching open parenthesis.
-* Usual Display::	    The usual conventions for displaying
+* Usual Display::           The usual conventions for displaying
                               nonprinting chars.
-* Display Tables::	    How to specify other conventions.
+* Display Tables::          How to specify other conventions.
 * Beeping::                 Audible signal to the user.
 * Window Systems::          Which window system is being used.
 
@@ -1315,7 +1315,7 @@
 
 * Managing Overlays::       Creating and moving overlays.
 * Overlay Properties::      How to read and set properties.
-			    What properties do to the screen display.
+                            What properties do to the screen display.
 * Finding Overlays::        Searching for overlays.
 
 Faces
@@ -1395,14 +1395,14 @@
 * Getting Out::             How exiting works (permanent or temporary).
 * System Environment::      Distinguish the name and kind of system.
 * User Identification::     Finding the name and user id of the user.
-* Time of Day::		    Getting the current time.
+* Time of Day::             Getting the current time.
 * Time Conversion::         Converting a time from numeric form to 
                               calendrical data and vice versa.
 * Time Parsing::            Converting a time from numeric form to text
                               and vice versa.
 * Processor Run Time::      Getting the run time used by Emacs.
 * Time Calculations::       Adding, subtracting, comparing times, etc.
-* Timers::		    Setting a timer to call a function at a
+* Timers::                  Setting a timer to call a function at a
                               certain time.
 * Idle Timers::             Setting a timer to call a function when Emacs has
                               been idle for a certain length of time.
@@ -1429,8 +1429,8 @@
 
 Terminal Input
 
-* Input Modes::		    Options for how input is processed.
-* Recording Input::	    Saving histories of recent or all input events.
+* Input Modes::             Options for how input is processed.
+* Recording Input::         Saving histories of recent or all input events.
 
 Tips and Conventions
 
@@ -1440,7 +1440,7 @@
 * Compilation Tips::        Making compiled code run fast.
 * Warning Tips::            Turning off compiler warnings.
 * Documentation Tips::      Writing readable documentation strings.
-* Comment Tips::	    Conventions for writing comments.
+* Comment Tips::            Conventions for writing comments.
 * Library Headers::         Standard headers for library packages.
 
 GNU Emacs Internals
--- a/doc/lispref/windows.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/lispref/windows.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -22,8 +22,8 @@
 * Buffers and Windows::     Each window displays the contents of a buffer.
 * Displaying Buffers::      Higher-level functions for displaying a buffer
                               and choosing a window for it.
-* Choosing Window::	    How to choose a window for displaying a buffer.
-* Dedicated Windows::	    How to avoid displaying another buffer in
+* Choosing Window::         How to choose a window for displaying a buffer.
+* Dedicated Windows::       How to avoid displaying another buffer in
                               a specific window.
 * Window Point::            Each window has its own location of point.
 * Window Start and End::    Buffer positions indicating which text is
--- a/doc/misc/ChangeLog	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/ChangeLog	Tue Jul 27 16:01:48 2010 +0900
@@ -1,3 +1,37 @@
+2010-07-23  Chong Yidong  <cyd@stupidchicken.com>
+
+	* nxml-mode.texi (Limitations): Remove obsolete discussion (Bug#6708).
+
+2010-06-27  Alex Schroeder  <alex@gnu.org>
+
+	* nxml-mode.texi (Commands for locating a schema): Fix typo.
+
+2010-06-24  Glenn Morris  <rgm@gnu.org>
+
+	* ada-mode.texi, auth.texi, autotype.texi, calc.texi, cc-mode.texi:
+	* dired-x.texi, ebrowse.texi, ede.texi, edt.texi, eieio.texi:
+	* emacs-mime.texi, epa.texi, erc.texi, eshell.texi, eudc.texi:
+	* flymake.texi, gnus.texi, info.texi, mairix-el.texi, message.texi:
+	* newsticker.texi, org.texi, pgg.texi, rcirc.texi, reftex.texi:
+	* remember.texi, sasl.texi, semantic.texi, ses.texi, smtpmail.texi:
+	* speedbar.texi, tramp.texi, url.texi, viper.texi, widget.texi:
+	* woman.texi: Start direntry descriptions in column 32, per Texinfo
+	convention.   Make them end with a period.
+
+2010-06-23  Glenn Morris  <rgm@gnu.org>
+
+	* autotype.texi, cl.texi, dired-x.texi, ebrowse.texi, ede.texi:
+	* eieio.texi, epa.texi, faq.texi, flymake.texi, forms.texi:
+	* gnus-faq.texi, idlwave.texi, mh-e.texi, nxml-mode.texi, org.texi:
+	* pcl-cvs.texi, pgg.texi, reftex.texi, sasl.texi, sc.texi,
+	* sem-user.texi, semantic.texi, sieve.texi, smtpmail.texi,
+	* speedbar.texi, vip.texi, viper.texi, widget.texi: Untabify.
+
+2010-06-10  Glenn Morris  <rgm@gnu.org>
+
+	* idlwave.texi (Load-Path Shadows):
+	* org.texi (Handling links): Fix typos.
+
 2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 
 	* Version 23.2 released.
@@ -6351,10 +6385,6 @@
 	(INFO_TARGETS): Add ../info/cc-mode.
 	(DVI_TARGETS): Add cc-mode.dvi.
 
-1996-05-25  Karl Heuer  <kwzh@gnu.ai.mit.edu>
-
-	* Version 19.31 released.
-
 1995-11-24  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 
 	* Version 19.30 released.
--- a/doc/misc/ada-mode.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/ada-mode.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -3,8 +3,8 @@
 @settitle Ada Mode
 
 @copying
-Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+Copyright @copyright{} 1999, 2000, 2001, 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
@@ -22,7 +22,7 @@
 
 @dircategory Emacs
 @direntry
-* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code.
+* Ada mode: (ada-mode).         Emacs mode for editing and compiling Ada code.
 @end direntry
 
 @titlepage
--- a/doc/misc/auth.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/auth.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -31,7 +31,7 @@
 
 @dircategory Emacs
 @direntry
-* Auth-source: (auth).   The Emacs auth-source library.
+* Auth-source: (auth).          The Emacs auth-source library.
 @end direntry
 
 @titlepage
--- a/doc/misc/autotype.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/autotype.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -10,8 +10,8 @@
 @c  @cindex autotypist
 
 @copying
-Copyright @copyright{} 1994, 1995, 1999, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+Copyright @copyright{} 1994, 1995, 1999, 2001, 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
@@ -29,8 +29,8 @@
 
 @dircategory Emacs
 @direntry
-* Autotype: (autotype). Convenient features for text that you enter frequently
-                          in Emacs.
+* Autotype: (autotype).         Convenient features for text that you
+                                  enter frequently in Emacs.
 @end direntry
 
 @titlepage
@@ -92,7 +92,7 @@
                              after point.
 * Autoinserting::          Filling up empty files as soon as you visit them.
 * Copyrights::             Inserting and updating copyrights.
-* Executables::	           Turning interpreter scripts into executables.
+* Executables::            Turning interpreter scripts into executables.
 * Timestamps::             Updating dates and times in modified files.
 * QuickURL::               Inserting URLs based on text at point.
 * Tempo::                  Flexible template insertion.
@@ -201,7 +201,7 @@
 
 @example
 (c-mode-abbrev-table)
-"if"	       0    ""	       c-if
+"if"           0    ""         c-if
 @end example
 
 @noindent
--- a/doc/misc/calc.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/calc.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -112,7 +112,7 @@
 
 @dircategory Emacs
 @direntry
-* Calc: (calc).         Advanced desk calculator and mathematical tool.
+* Calc: (calc).                 Advanced desk calculator and mathematical tool.
 @end direntry
 
 @titlepage
--- a/doc/misc/cc-mode.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/cc-mode.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -180,8 +180,8 @@
 @comment here is by request from the FSF folks.
 @dircategory Emacs
 @direntry
-* CC Mode: (ccmode).    Emacs mode for editing C, C++, Objective-C,
-                        Java, Pike, AWK, and CORBA IDL code.
+* CC Mode: (ccmode).            Emacs mode for editing C, C++, Objective-C,
+                                Java, Pike, AWK, and CORBA IDL code.
 @end direntry
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
--- a/doc/misc/cl.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/cl.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -24,7 +24,7 @@
 
 @dircategory Emacs
 @direntry
-* CL: (cl).		Partial Common Lisp support for Emacs Lisp.
+* CL: (cl).                     Partial Common Lisp support for Emacs Lisp.
 @end direntry
 
 @finalout
--- a/doc/misc/dired-x.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/dired-x.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -3,7 +3,7 @@
 @c dired-x.texi --- Sebastian Kremer's Extra DIRED hacked up for GNU Emacs
 @c
 @c Author: Sebastian Kremer <sk@thp.uni-koeln.de>
-@c	Lawrence R. Dodd <dodd@roebling.poly.edu>
+@c      Lawrence R. Dodd <dodd@roebling.poly.edu>
 @c [Dodd's address no longer valid.]
 
 @comment %**start of header (This is for running Texinfo on a region.)
@@ -14,7 +14,7 @@
 @iftex
 @finalout
 @end iftex
-@c @setchapternewpage odd		% For book style double sided manual.
+@c @setchapternewpage odd               % For book style double sided manual.
 @comment %**end of header (This is for running Texinfo on a region.)
 
 @copying
@@ -37,7 +37,7 @@
 
 @dircategory Emacs
 @direntry
-* Dired-X: (dired-x).   Dired Extra Features.
+* Dired-X: (dired-x).           Dired Extra Features.
 @end direntry
 
 @c      @smallbook
--- a/doc/misc/ebrowse.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/ebrowse.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -29,7 +29,7 @@
 
 @dircategory Emacs
 @direntry
-* Ebrowse: (ebrowse).   A C++ class browser for Emacs.
+* Ebrowse: (ebrowse).           A C++ class browser for Emacs.
 @end direntry
 
 @titlepage
@@ -55,14 +55,14 @@
 @end ifnottex
 
 @menu
-* Overview::			What is it and how does it work?
-* Generating browser files::	How to process C++ source files
-* Loading a Tree::		How to start browsing
-* Tree Buffers::		Traversing class hierarchies
-* Member Buffers::		Looking at member information
-* Tags-like Functions::		Finding members from source files
+* Overview::                    What is it and how does it work?
+* Generating browser files::    How to process C++ source files
+* Loading a Tree::              How to start browsing
+* Tree Buffers::                Traversing class hierarchies
+* Member Buffers::              Looking at member information
+* Tags-like Functions::         Finding members from source files
 * GNU Free Documentation License:: The license for this documentation.
-* Concept Index::		An entry for each concept defined
+* Concept Index::               An entry for each concept defined
 @end menu
 
 
@@ -215,10 +215,10 @@
 available command line options.@refill
 
 @menu
-* Input files::		Specifying which files to parse
-* Output file::		Changing the output file name
-* Structs and unions::	Omitting @code{struct}s and @code{union}s
-* Matching::		Setting regular expression lengths
+* Input files::         Specifying which files to parse
+* Output file::         Changing the output file name
+* Structs and unions::  Omitting @code{struct}s and @code{union}s
+* Matching::            Setting regular expression lengths
 * Verbosity::           Getting feedback for lengthy operations
 @end menu
 
@@ -454,17 +454,17 @@
 buffers.
 
 @menu
-* Source Display::		Viewing and finding a class declaration
-* Member Display::		Showing members, switching to member buffers
-* Go to Class::			Finding a class
-* Quitting::			Discarding and burying the tree buffer
-* File Name Display::		Showing file names in the tree
-* Expanding and Collapsing::	Expanding and collapsing branches
-* Tree Indentation::		Changing the tree indentation
-* Killing Classes::		Removing class from the tree
-* Saving a Tree::		Saving a modified tree
-* Statistics::			Displaying class tree statistics
-* Marking Classes::		Marking and unmarking classes
+* Source Display::              Viewing and finding a class declaration
+* Member Display::              Showing members, switching to member buffers
+* Go to Class::                 Finding a class
+* Quitting::                    Discarding and burying the tree buffer
+* File Name Display::           Showing file names in the tree
+* Expanding and Collapsing::    Expanding and collapsing branches
+* Tree Indentation::            Changing the tree indentation
+* Killing Classes::             Removing class from the tree
+* Saving a Tree::               Saving a modified tree
+* Statistics::                  Displaying class tree statistics
+* Marking Classes::             Marking and unmarking classes
 @end menu
 
 
@@ -625,17 +625,15 @@
 Here is an example of a tree buffer with file names displayed.
 
 @example
-|  Collection		(unknown)
-|    IndexedCollection	(indexedcltn.h)
-|      Array		(array.h)
-|        FixedArray	(fixedarray.h)
-|    Set		(set.h)
-|    Dictionary		(dict.h)
+|  Collection           (unknown)
+|    IndexedCollection  (indexedcltn.h)
+|      Array            (array.h)
+|        FixedArray     (fixedarray.h)
+|    Set                (set.h)
+|    Dictionary         (dict.h)
 @end example
 
 
-
-
 @node Expanding and Collapsing, Tree Indentation, File Name Display, Tree Buffers
 @comment  node-name,  next,  previous,  up
 @section Expanding and Collapsing a Tree
@@ -818,20 +816,20 @@
 buffer: members, classes, and the buffer itself.
 
 @menu
-* Switching Member Lists::	Choosing which members to display
-* Finding/Viewing::		Modifying source code
-* Inherited Members::		Display of Inherited Members
-* Searching Members::		Finding members in member buffer
-* Switching to Tree::		Going back to the tree buffer
-* Filters::			Selective member display
-* Attributes::			Display of @code{virtual} etc.
-* Long and Short Display::	Comprehensive and verbose display
-* Regexp Display::		Showing matching regular expressions
-* Switching Classes::		Displaying another class
-* Killing/Burying::		Getting rid of the member buffer
-* Column Width::		Display style
-* Redisplay::			Redrawing the member list
-* Getting Help::		How to get help for key bindings
+* Switching Member Lists::      Choosing which members to display
+* Finding/Viewing::             Modifying source code
+* Inherited Members::           Display of Inherited Members
+* Searching Members::           Finding members in member buffer
+* Switching to Tree::           Going back to the tree buffer
+* Filters::                     Selective member display
+* Attributes::                  Display of @code{virtual} etc.
+* Long and Short Display::      Comprehensive and verbose display
+* Regexp Display::              Showing matching regular expressions
+* Switching Classes::           Displaying another class
+* Killing/Burying::             Getting rid of the member buffer
+* Column Width::                Display style
+* Redisplay::                   Redrawing the member list
+* Getting Help::                How to get help for key bindings
 @end menu
 
 
@@ -1234,7 +1232,7 @@
 
 
 @comment **************************************************************
-@comment ***		    TAGS LIKE FUNCTIONS
+@comment ***                TAGS LIKE FUNCTIONS
 @comment **************************************************************
 
 @node Tags-like Functions, GNU Free Documentation License, Member Buffers, Top
@@ -1245,14 +1243,14 @@
 Emacs Tags facility, but better suited to the needs of C++ programmers.
 
 @menu
-* Finding and Viewing::	Going to a member declaration/definition
-* Position Stack::	Moving to previous locations
-* Search & Replace::    Searching and replacing over class tree files
-* Members in Files::    Listing all members in a given file
-* Apropos::             Listing members matching a regular expression
-* Symbol Completion::   Completing names while editing
+* Finding and Viewing::   Going to a member declaration/definition
+* Position Stack::        Moving to previous locations
+* Search & Replace::      Searching and replacing over class tree files
+* Members in Files::      Listing all members in a given file
+* Apropos::               Listing members matching a regular expression
+* Symbol Completion::     Completing names while editing
 * Member Buffer Display:: Quickly display a member buffer for some
-                        identifier
+                            identifier
 @end menu
 
 
--- a/doc/misc/ede.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/ede.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -5,8 +5,8 @@
 @copying
 This file describes EDE, the Emacs Development Environment.
 
-Copyright @copyright{} 1998, 1999, 2000, 2001, 2004, 2005, 2008, 2009, 2010
-Free Software Foundation, Inc.
+Copyright @copyright{} 1998, 1999, 2000, 2001, 2004, 2005, 2008, 2009,
+2010  Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -24,7 +24,7 @@
 
 @dircategory Emacs
 @direntry
-* ede: (ede).       Project management for Emacs
+* ede: (ede).                   Project management for Emacs.
 @end direntry
 
 @titlepage
@@ -404,8 +404,8 @@
 @menu
 * ede-cpp-root::        This project marks the root of a C/C++ code project.
 * ede-simple subclassing:: Create your own simple project.
-* ede-emacs::		A project for working with Emacs.
-* ede-linux::		A project for working with Linux kernels.
+* ede-emacs::           A project for working with Emacs.
+* ede-linux::           A project for working with Linux kernels.
 * Custom Locate::       Customizing how to locate files in a simple project
 @end menu
 
@@ -525,14 +525,14 @@
   )
 
 (add-to-list 'ede-project-class-files
-	     (ede-project-autoload "cpp-root"
-	      :name "CPP ROOT"
-	      :file 'ede-cpp-root
-	      :proj-file 'MY-FILE-FOR-DIR
+             (ede-project-autoload "cpp-root"
+              :name "CPP ROOT"
+              :file 'ede-cpp-root
+              :proj-file 'MY-FILE-FOR-DIR
               :proj-root 'MY-ROOT-FCN
-	      :load-type 'MY-LOAD
-	      :class-sym 'ede-cpp-root)
-	     t)
+              :load-type 'MY-LOAD
+              :class-sym 'ede-cpp-root)
+             t)
 @end example
 
 This example only creates an auto-loader, and does not create a new kind
@@ -751,9 +751,9 @@
 @example
 (defvar ede-source-emacs
   (ede-sourcecode "ede-emacs-source"
-		  :name "Emacs Lisp"
-		  :sourcepattern "\\.el$"
-		  :garbagepattern '("*.elc"))
+                  :name "Emacs Lisp"
+                  :sourcepattern "\\.el$"
+                  :garbagepattern '("*.elc"))
   "Emacs Lisp source code definition.")
 @end example
 
--- a/doc/misc/edt.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/edt.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -25,7 +25,7 @@
 
 @dircategory Emacs
 @direntry
-* EDT: (edt).   An Emacs emulation of the EDT editor.
+* EDT: (edt).                   An Emacs emulation of the EDT editor.
 @end direntry
 
 @titlepage
--- a/doc/misc/eieio.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/eieio.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -29,7 +29,7 @@
 
 @dircategory Emacs
 @direntry
-* eieio: (eieio).       Objects for Emacs
+* eieio: (eieio).               Objects for Emacs.
 @end direntry
 
 @titlepage
@@ -295,8 +295,8 @@
 
 @menu
 * Inheritance::         How to specify parents classes
-* Slot Options::	How to specify features of a slot.
-* Class Options::	How to specify features for this class.
+* Slot Options::        How to specify features of a slot.
+* Class Options::       How to specify features for this class.
 @end menu
 
 @node Inheritance
--- a/doc/misc/emacs-mime.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/emacs-mime.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -31,7 +31,7 @@
 
 @dircategory Emacs
 @direntry
-* Emacs MIME: (emacs-mime).   Emacs MIME de/composition library.
+* Emacs MIME: (emacs-mime).     Emacs MIME de/composition library.
 @end direntry
 @iftex
 @finalout
--- a/doc/misc/epa.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/epa.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -33,7 +33,7 @@
 
 @dircategory Emacs
 @direntry
-* EasyPG Assistant: (epa).   An Emacs user interface to GNU Privacy Guard.
+* EasyPG Assistant: (epa).      An Emacs user interface to GNU Privacy Guard.
 @end direntry
 
 @titlepage
@@ -142,15 +142,15 @@
 @example
  u Daiki Ueno <ueno@@unixuser.org>
  u A5B6B2D4B15813FE 1024bits DSA
-	Created: 2001-10-09
-	Expires: 2007-09-04
-	Capabilities: sign certify
-	Fingerprint: 8003 7CD0 0F1A 9400 03CA  50AA A5B6 B2D4 B158 13FE
+        Created: 2001-10-09
+        Expires: 2007-09-04
+        Capabilities: sign certify
+        Fingerprint: 8003 7CD0 0F1A 9400 03CA  50AA A5B6 B2D4 B158 13FE
  u 4447461B2A9BEA2D 2048bits ELGAMAL_E
-	Created: 2001-10-09
-	Expires: 2007-09-04
-	Capabilities: encrypt
-	Fingerprint: 9003 D76B 73B7 4A8A E588  10AF 4447 461B 2A9B EA2D
+        Created: 2001-10-09
+        Expires: 2007-09-04
+        Capabilities: encrypt
+        Fingerprint: 9003 D76B 73B7 4A8A E588  10AF 4447 461B 2A9B EA2D
 @end example
 
 @noindent
--- a/doc/misc/erc.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/erc.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -8,7 +8,8 @@
 @copying
 This manual is for ERC version 5.3.
 
-Copyright @copyright{} 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright @copyright{} 2005, 2006, 2007, 2008, 2009, 2010
+Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -29,7 +30,7 @@
 
 @dircategory Emacs
 @direntry
-* ERC: (erc).           Powerful, modular, and extensible IRC client for Emacs.
+* ERC: (erc).                   Powerful and extensible IRC client for Emacs.
 @end direntry
 
 @titlepage
--- a/doc/misc/eshell.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/eshell.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -8,8 +8,8 @@
 @copying
 This manual is for Eshell, the Emacs shell.
 
-Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright @copyright{} 1999, 2000, 2001, 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
@@ -27,7 +27,7 @@
 
 @dircategory Emacs
 @direntry
-* Eshell: (eshell).     A command shell implemented in Emacs Lisp.
+* Eshell: (eshell).             A command shell implemented in Emacs Lisp.
 @end direntry
 
 @titlepage
--- a/doc/misc/eudc.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/eudc.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -31,7 +31,7 @@
 
 @dircategory Emacs
 @direntry
-* EUDC: (eudc).   An Emacs client for directory servers (LDAP, PH).
+* EUDC: (eudc).                 Emacs client for directory servers (LDAP, PH).
 @end direntry
 
 @footnotestyle end
--- a/doc/misc/faq.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/faq.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -41,7 +41,7 @@
 
 @dircategory Emacs
 @direntry
-* Emacs FAQ: (efaq).	Frequently Asked Questions about Emacs.
+* Emacs FAQ: (efaq).            Frequently Asked Questions about Emacs.
 @end direntry
 
 @c The @titlepage stuff only appears in the printed version
--- a/doc/misc/flymake.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/flymake.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -11,8 +11,8 @@
 This manual is for GNU Flymake (version @value{VERSION}, @value{UPDATED}),
 which is a universal on-the-fly syntax checker for GNU Emacs.
 
-Copyright @copyright{} 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-Foundation, Inc.
+Copyright @copyright{} 2004, 2005, 2006, 2007, 2008, 2009, 2010
+Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -30,7 +30,7 @@
 
 @dircategory Emacs
 @direntry
-* Flymake: (flymake). A universal on-the-fly syntax checker.
+* Flymake: (flymake).           A universal on-the-fly syntax checker.
 @end direntry
 
 @titlepage
@@ -409,7 +409,7 @@
 (defun flymake-perl-init ()
   (let* ((temp-file (flymake-init-create-temp-buffer-copy
                      'flymake-create-temp-inplace))
-	 (local-file (file-relative-name
+         (local-file (file-relative-name
                       temp-file
                       (file-name-directory buffer-file-name))))
     (list "perl" (list "-wc " local-file))))
--- a/doc/misc/forms.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/forms.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,4 +1,4 @@
-\input texinfo			@c -*-texinfo-*-
+\input texinfo                  @c -*-texinfo-*-
 @c documentation for forms-mode
 @c Written by Johan Vromans, and edited by Richard Stallman
 
@@ -37,8 +37,8 @@
 
 @dircategory Emacs
 @direntry
-* Forms: (forms).	Emacs package for editing data bases
-			  by filling in forms.
+* Forms: (forms).               Emacs package for editing data bases
+                                  by filling in forms.
 @end direntry
 
 @titlepage
--- a/doc/misc/gnus-faq.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/gnus-faq.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,8 +1,8 @@
 @c \input texinfo @c -*-texinfo-*-
 @c Uncomment 1st line before texing this file alone.
 @c %**start of header
-@c Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-@c   2008, 2009, 2010 Free Software Foundation, Inc.
+@c Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+@c   2009, 2010 Free Software Foundation, Inc.
 @c
 @c Do not modify this file, it was generated from gnus-faq.xml, available from
 @c <URL:http://my.gnus.org/FAQ/>.
@@ -550,7 +550,7 @@
 @example
 (add-to-list 'gnus-secondary-select-methods
              '(nnspool ""
-		       (nnspool-directory "/usr/local/myspoolddir")))
+                       (nnspool-directory "/usr/local/myspoolddir")))
 @end example
 @noindent
 
@@ -635,8 +635,8 @@
 @example
 (eval-after-load "mail-source"
   '(add-to-list 'mail-sources
-		'(directory :path "/path/to/procmail-dir/"
-			    :suffix ".prcml")))
+                '(directory :path "/path/to/procmail-dir/"
+                            :suffix ".prcml")))
 @end example
 @noindent
 
@@ -691,10 +691,10 @@
 
 @example
 (add-to-list 'gnus-secondary-select-methods
-	     '(nnimap "Give the baby a name"
-		      (nnimap-address "imap.yourProvider.net")
-		      (nnimap-port 143)
-		      (nnimap-list-pattern "archive.*")))
+             '(nnimap "Give the baby a name"
+                      (nnimap-address "imap.yourProvider.net")
+                      (nnimap-port 143)
+                      (nnimap-list-pattern "archive.*")))
 @end example
 @noindent
 
@@ -874,7 +874,7 @@
 @example
 (setq gnus-visible-headers
       '("^From" "^Subject" "^Date" "^Newsgroups" "^Followup-To"
-	"^User-Agent" "^X-Newsreader" "^X-Mailer"))
+        "^User-Agent" "^X-Newsreader" "^X-Mailer"))
 @end example
 @noindent
 
@@ -1099,18 +1099,18 @@
 (gnus-add-configuration
  '(article
    (horizontal 1.0
-	       (vertical 25
-			 (group 1.0))
-	       (vertical 1.0
-			 (summary 0.25 point)
-			 (article 1.0)))))
+               (vertical 25
+                         (group 1.0))
+               (vertical 1.0
+                         (summary 0.25 point)
+                         (article 1.0)))))
 (gnus-add-configuration
  '(summary
    (horizontal 1.0
-	       (vertical 25
-			 (group 1.0))
-	       (vertical 1.0
-			 (summary 1.0 point)))))
+               (vertical 25
+                         (group 1.0))
+               (vertical 1.0
+                         (summary 1.0 point)))))
 @end example
 @noindent
 
@@ -1480,7 +1480,7 @@
 alias syntax:
 
 @example
-alias al	"Al <al@@english-heritage.invalid>"
+alias al        "Al <al@@english-heritage.invalid>"
 @end example
 @noindent
 
@@ -1644,9 +1644,9 @@
 
 @example
 (setq gnus-message-archive-group
-	'((if (message-news-p)
-	      "nnml:Send-News"
-	    "nnml:Send-Mail")))
+        '((if (message-news-p)
+              "nnml:Send-News"
+            "nnml:Send-Mail")))
 @end example
 @noindent
 
--- a/doc/misc/gnus.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/gnus.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -322,7 +322,7 @@
 
 @dircategory Emacs
 @direntry
-* Gnus: (gnus).         The newsreader Gnus.
+* Gnus: (gnus).                 The newsreader Gnus.
 @end direntry
 @iftex
 @finalout
--- a/doc/misc/idlwave.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/idlwave.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -41,7 +41,7 @@
 
 @dircategory Emacs
 @direntry
-* IDLWAVE: (idlwave).	Major mode and shell for IDL files.
+* IDLWAVE: (idlwave).           Major mode and shell for IDL files.
 @end direntry
 
 @titlepage
@@ -3717,7 +3717,7 @@
 
 @table @asis
 @item @kbd{M-x idlwave-list-buffer-load-path-shadows}
-This commands checks the names of all routines defined in the current
+This command checks the names of all routines defined in the current
 buffer for shadowing conflicts with other routines accessible to
 IDLWAVE.  The command also has a key binding: @kbd{C-c C-b}
 @item @kbd{M-x idlwave-list-shell-load-path-shadows}.
--- a/doc/misc/info.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/info.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -40,7 +40,7 @@
 
 @dircategory Texinfo documentation system
 @direntry
-* Info: (info).         How to use the documentation browsing system.
+* Info: (info).                 How to use the documentation browsing system.
 @end direntry
 
 @titlepage
--- a/doc/misc/mairix-el.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/mairix-el.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -24,7 +24,7 @@
 
 @dircategory Emacs
 @direntry
-* Mairix: (mairix-el).  Emacs interface to the Mairix mail indexer.
+* Mairix: (mairix-el).          Emacs interface to the Mairix mail indexer.
 @end direntry
 
 @titlepage
--- a/doc/misc/message.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/message.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -27,7 +27,8 @@
 
 @dircategory Emacs
 @direntry
-* Message: (message).   Mail and news composition mode that goes with Gnus.
+* Message: (message).           Mail and news composition mode that
+                                  goes with Gnus.
 @end direntry
 @iftex
 @finalout
--- a/doc/misc/mh-e.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/mh-e.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -24,8 +24,8 @@
 This is version @value{VERSION}@value{EDITION} of @cite{The MH-E
 Manual}, last updated @value{UPDATED}.
 
-Copyright @copyright{} 1995, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010
-Free Software Foundation, Inc.
+Copyright @copyright{} 1995, 2001, 2002, 2003, 2005, 2006, 2007, 2008,
+  2009, 2010  Free Software Foundation, Inc.
 
 @c This dual license has been agreed upon by the FSF.
 
@@ -58,7 +58,7 @@
 @c Info Directory Entry
 @dircategory Emacs
 @direntry
-* MH-E: (mh-e).		Emacs interface to the MH mail system.
+* MH-E: (mh-e).                 Emacs interface to the MH mail system.
 @end direntry
 
 @c Title Page
@@ -7767,7 +7767,7 @@
 done by adding the following to your @file{crontab}:
 
 @smallexample
-0 * * * *	sa-learn --rebuild > /dev/null 2>&1
+0 * * * *       sa-learn --rebuild > /dev/null 2>&1
 @end smallexample
 
 @subheading Bogofilter
--- a/doc/misc/newsticker.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/newsticker.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -32,7 +32,7 @@
 
 @dircategory Emacs
 @direntry
-* Newsticker: (newsticker). A Newsticker for Emacs.
+* Newsticker: (newsticker).     A Newsticker for Emacs.
 @end direntry
 
 @titlepage
--- a/doc/misc/nxml-mode.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/nxml-mode.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -187,7 +187,7 @@
 
 @example
 Possible completions are:
-xml:lang			   xmlns
+xml:lang                           xmlns
 @end example
 
 @noindent
@@ -520,7 +520,7 @@
 
 If you want to use a schema that has not yet been added to the
 schema locating files, you can use the command @kbd{C-c C-s C-f}
-to manually select the file contaiing the schema for the document in
+to manually select the file containing the schema for the document in
 current buffer.  Emacs will read the file-name of the schema from the
 minibuffer. After reading the file-name, Emacs will ask whether you
 wish to add a rule to a schema locating file that persistently
@@ -851,11 +851,6 @@
 @item
 The restrictions on RELAX NG schemas in section 7 of the RELAX NG
 specification are not enforced.
-@item
-Unicode support has problems. This stems mostly from the fact that
-the XML (and RELAX NG) character model is based squarely on Unicode,
-whereas the Emacs character model is not.  Emacs 22 is slated to have
-full Unicode support, which should improve the situation here.
 @end itemize
 
 @bye
--- a/doc/misc/org.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/org.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -68,7 +68,7 @@
 
 @dircategory Emacs
 @direntry
-* Org Mode: (org).      Outline-based notes management and organizer
+* Org Mode: (org).              Outline-based notes management and organizer.
 @end direntry
 
 @titlepage
@@ -2928,7 +2928,7 @@
 Open link at point.  This will launch a web browser for URLs (using
 @command{browse-url-at-point}), run VM/MH-E/Wanderlust/Rmail/Gnus/BBDB for
 the corresponding links, and execute the command in a shell link.  When the
-cursor is on an internal link, this commands runs the corresponding search.
+cursor is on an internal link, this command runs the corresponding search.
 When the cursor is on a TAG list in a headline, it creates the corresponding
 TAGS view.  If the cursor is on a timestamp, it compiles the agenda for that
 date.  Furthermore, it will visit text and remote files in @samp{file:} links
@@ -4624,7 +4624,7 @@
 
 @example
 :COLUMNS:  %25ITEM %9Approved(Approved?)@{X@} %Owner %11Status \@footnote{Please note that the COLUMNS definition must be on a single line---it is wrapped here only because of formatting constraints.}
-		   %10Time_Estimate@{:@} %CLOCKSUM
+                   %10Time_Estimate@{:@} %CLOCKSUM
 :Owner_ALL:    Tammy Mark Karl Lisa Don
 :Status_ALL:   "In progress" "Not started yet" "Finished" ""
 :Approved_ALL: "[ ]" "[X]"
@@ -7393,12 +7393,12 @@
 @group
 (defun org-my-auto-exclude-function (tag)
   (and (cond
-	((string= tag "Net")
-	 (/= 0 (call-process "/sbin/ping" nil nil nil
-			     "-c1" "-q" "-t1" "mail.gnu.org")))
-	((or (string= tag "Errand") (string= tag "Call"))
-	 (let ((hour (nth 2 (decode-time))))
-	   (or (< hour 8) (> hour 21)))))
+        ((string= tag "Net")
+         (/= 0 (call-process "/sbin/ping" nil nil nil
+                             "-c1" "-q" "-t1" "mail.gnu.org")))
+        ((or (string= tag "Errand") (string= tag "Call"))
+         (let ((hour (nth 2 (decode-time))))
+           (or (< hour 8) (> hour 21)))))
        (concat "-" tag)))
 
 (setq org-agenda-auto-exclude-function 'org-my-auto-exclude-function)
@@ -11040,9 +11040,9 @@
 
 @lisp
 (add-hook 'org-mode-hook
-	  (lambda ()
-	    (org-set-local 'yas/trigger-key [tab])
-	    (define-key yas/keymap [tab] 'yas/next-field-group)))
+          (lambda ()
+            (org-set-local 'yas/trigger-key [tab])
+            (define-key yas/keymap [tab] 'yas/next-field-group)))
 @end lisp
 
 @item @file{windmove.el} by Hovav Shacham
--- a/doc/misc/pcl-cvs.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/pcl-cvs.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -26,7 +26,7 @@
 
 @dircategory Emacs
 @direntry
-* PCL-CVS: (pcl-cvs).	Emacs front-end to CVS.
+* PCL-CVS: (pcl-cvs).           Emacs front-end to CVS.
 @end direntry
 
 @c The titlepage section does not appear in the Info file.
--- a/doc/misc/pgg.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/pgg.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -8,8 +8,8 @@
 This file describes PGG @value{VERSION}, an Emacs interface to various
 PGP implementations.
 
-Copyright @copyright{} 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-Free Software Foundation, Inc.
+Copyright @copyright{} 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+2010  Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -27,7 +27,7 @@
 
 @dircategory Emacs
 @direntry
-* PGG: (pgg).   Emacs interface to various PGP implementations.
+* PGG: (pgg).                   Emacs interface to various PGP implementations.
 @end direntry
 
 @titlepage
@@ -133,7 +133,7 @@
 * User Commands::               
 * Selecting an implementation::  
 * Caching passphrase::          
-* Default user identity::	
+* Default user identity::       
 @end menu
 
 @node User Commands
@@ -376,7 +376,7 @@
 (defun pgg-make-scheme-gpg ()
   (or pgg-scheme-gpg-instance
       (setq pgg-scheme-gpg-instance
-	    (luna-make-entity 'pgg-scheme-gpg))))
+            (luna-make-entity 'pgg-scheme-gpg))))
 @end lisp
 
 The name of the function must follow the
--- a/doc/misc/rcirc.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/rcirc.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -5,7 +5,8 @@
 @c %**end of header
 
 @copying
-Copyright @copyright{} 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright @copyright{} 2006, 2007, 2008, 2009, 2010
+Free Software Foundation, Inc.
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -23,7 +24,7 @@
 
 @dircategory Emacs
 @direntry
-* Rcirc: (rcirc).       Internet Relay Chat (IRC) client.
+* Rcirc: (rcirc).               Internet Relay Chat (IRC) client.
 @end direntry
 
 @titlepage
--- a/doc/misc/reftex.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/reftex.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -46,7 +46,8 @@
 
 @dircategory Emacs
 @direntry
-* RefTeX: (reftex).	Emacs support for LaTeX cross-references and citations.
+* RefTeX: (reftex).             Emacs support for LaTeX cross-references
+                                  and citations.
 @end direntry
 
 @finalout
@@ -3281,7 +3282,7 @@
 (TeX-add-style-hook "multind"
   (lambda ()
     (and (fboundp 'reftex-add-index-macros)
-	 (reftex-add-index-macros '(multind)))))
+         (reftex-add-index-macros '(multind)))))
 @end lisp
 
 If you have your own package @file{myindex} which defines the
--- a/doc/misc/remember.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/remember.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -27,7 +27,7 @@
 
 @dircategory Emacs
 @direntry
-* Remember: (remember). Simple information manager for Emacs
+* Remember: (remember).         Simple information manager for Emacs.
 @end direntry
 
 @titlepage
--- a/doc/misc/sasl.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/sasl.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -32,7 +32,7 @@
 
 @dircategory Emacs
 @direntry
-* SASL: (sasl).   The Emacs SASL library.
+* SASL: (sasl).                 The Emacs SASL library.
 @end direntry
 
 
@@ -148,7 +148,7 @@
 
 @example
 (defconst sasl-anonymous-steps
-  '(identity				;no initial response
+  '(identity                            ;no initial response
     sasl-anonymous-response))
 
 (put 'sasl-anonymous 'sasl-mechanism
@@ -232,7 +232,7 @@
 @example
 (process-send-string
  process
- (if (sasl-step-data step)		;initial response
+ (if (sasl-step-data step)              ;initial response
      (format "AUTH %s %s\r\n" name (base64-encode-string (sasl-step-data step) t))
    (format "AUTH %s\r\n" name)))
 @end example
--- a/doc/misc/sc.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/sc.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -7,7 +7,7 @@
 @finalout
 @end iftex
 
-@c @setchapternewpage odd		% For book style double sided manual.
+@c @setchapternewpage odd               % For book style double sided manual.
 @comment %**end of header (This is for running Texinfo on a region.)
 
 @copying
@@ -35,8 +35,8 @@
 
 @dircategory Emacs
 @direntry
-* SC: (sc).		Supercite lets you cite parts of messages you're
-			  replying to, in flexible ways.
+* SC: (sc).                     Supercite lets you cite parts of messages
+                                  you're replying to, in flexible ways.
 @end direntry
 
 @titlepage
@@ -1795,23 +1795,23 @@
 a mail message to the Supercite mailing list:
 
 @example
-	Martin> Each news/mail-reader should provide a form of
-	Martin> mail-yank-original that
+        Martin> Each news/mail-reader should provide a form of
+        Martin> mail-yank-original that
 
-	Martin> 1: inserts the original message incl. header into the
-	Martin>    reply buffer; no indentation/prefixing is done, the header
-	Martin>    tends to be a "full blown" version rather than to be
-	Martin>    stripped down.
+        Martin> 1: inserts the original message incl. header into the
+        Martin>    reply buffer; no indentation/prefixing is done, the header
+        Martin>    tends to be a "full blown" version rather than to be
+        Martin>    stripped down.
 
-	Martin> 2: `point' is at the start of the header, `mark' at the
-	Martin>    end of the message body.
+        Martin> 2: `point' is at the start of the header, `mark' at the
+        Martin>    end of the message body.
 
-	Martin> 3: (run-hooks 'mail-yank-hooks)
+        Martin> 3: (run-hooks 'mail-yank-hooks)
 
-	Martin> [Supercite] should be run as such a hook and merely
-	Martin> rewrite the message.  This way it isn't anymore
-	Martin> [Supercite]'s job to gather the original from obscure
-	Martin> sources. [@dots{}]
+        Martin> [Supercite] should be run as such a hook and merely
+        Martin> rewrite the message.  This way it isn't anymore
+        Martin> [Supercite]'s job to gather the original from obscure
+        Martin> sources. [@dots{}]
 @end example
 
 @vindex mail-citation-hook
--- a/doc/misc/sem-user.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/sem-user.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,7 @@
 @c This file is included by semantic.texi
 
-@c Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010
-@c Free Software Foundation, Inc.
+@c Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009,
+@c   2010  Free Software Foundation, Inc.
 
 @c Permission is granted to copy, distribute and/or modify this
 @c document under the terms of the GNU Free Documentation License,
@@ -328,8 +328,8 @@
 
 @example
 (setq-mode-local c-mode
-		 semanticdb-find-default-throttle
-		 '(project unloaded system recursive))
+                 semanticdb-find-default-throttle
+                 '(project unloaded system recursive))
 @end example
 
 @defvar semanticdb-find-default-throttle
--- a/doc/misc/semantic.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/semantic.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -43,7 +43,7 @@
 
 @dircategory Emacs
 @direntry
-* Semantic: (semantic).      Source code parser library and utilities.
+* Semantic: (semantic).         Source code parser library and utilities.
 @end direntry
 
 @titlepage
@@ -224,8 +224,8 @@
 to learn more about how @semantic{} works.
 
 @menu
-* Parser code ::	  Code used for the parsers
-* Tag handling ::	  Code used for manipulating tags
+* Parser code ::          Code used for the parsers
+* Tag handling ::         Code used for manipulating tags
 * Semanticdb Internals :: Code used in the semantic database
 * Analyzer Internals ::   Code used in the code analyzer
 * Tools ::                Code used in user tools
--- a/doc/misc/ses.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/ses.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -11,8 +11,8 @@
 @copying
 This file documents SES: the Simple Emacs Spreadsheet.
 
-Copyright @copyright{} 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-Free Software Foundation, Inc.
+Copyright @copyright{} 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
@@ -30,7 +30,7 @@
 
 @dircategory Emacs
 @direntry
-* SES: (ses).       Simple Emacs Spreadsheet
+* SES: (ses).                   Simple Emacs Spreadsheet.
 @end direntry
 
 @finalout
--- a/doc/misc/sieve.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/sieve.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -8,8 +8,8 @@
 @copying
 This file documents the Emacs Sieve package, for server-side mail filtering.
 
-Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-Free Software Foundation, Inc.
+Copyright @copyright{} 2001, 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
@@ -227,7 +227,7 @@
 require "fileinto";
 
 if address "sender" "owner-w3-beta@@xemacs.org" @{
-	fileinto "INBOX.w3-beta";
+        fileinto "INBOX.w3-beta";
 @}
 @end example
 
@@ -238,7 +238,7 @@
 
 @example
 if header :contains "Delivered-To" "auc-tex@@sunsite.dk" @{
-	fileinto "INBOX.auc-tex";
+        fileinto "INBOX.auc-tex";
 @}
 @end example
 
@@ -249,7 +249,7 @@
 
 @example
 if address ["to", "cc"] "kerberos@@mit.edu" @{
-	fileinto "INBOX.kerberos";
+        fileinto "INBOX.kerberos";
 @}
 @end example
 
--- a/doc/misc/smtpmail.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/smtpmail.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -22,7 +22,7 @@
 
 @dircategory Emacs
 @direntry
-* SMTP: (smtpmail). Emacs library for sending mail via SMTP.
+* SMTP: (smtpmail).             Emacs library for sending mail via SMTP.
 @end direntry
 
 @titlepage
@@ -44,17 +44,17 @@
 @end ifnottex
 
 @menu
-* How Mail Works::	Brief introduction to mail concepts.
+* How Mail Works::      Brief introduction to mail concepts.
 * Emacs Speaks SMTP::   How to use the SMTP library in Emacs.
-* Authentication::	Authenticating yourself to the server.
-* Queued delivery::	Sending mail without an internet connection.
-* Server workarounds::	Mail servers with special requirements.
-* Debugging::		Tracking down problems.
+* Authentication::      Authenticating yourself to the server.
+* Queued delivery::     Sending mail without an internet connection.
+* Server workarounds::  Mail servers with special requirements.
+* Debugging::           Tracking down problems.
 * GNU Free Documentation License:: The license for this documentation.
 
 Indices
 
-* Index::		Index over variables and functions.
+* Index::               Index over variables and functions.
 @end menu
 
 @node How Mail Works
@@ -355,15 +355,15 @@
 set this unless you have get an error like:
 
 @example
-	Sending failed; SMTP protocol error
+        Sending failed; SMTP protocol error
 @end example
 
 when sending mail, and the debug buffer (@pxref{Debugging})) contains
 an error such as:
 
 @example
-	RCPT TO: @var{someone}
-	501 @var{someone}: recipient address must contain a domain
+        RCPT TO: @var{someone}
+        501 @var{someone}: recipient address must contain a domain
 @end example
 
 @end table
--- a/doc/misc/speedbar.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/speedbar.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -23,7 +23,7 @@
 
 @dircategory Emacs
 @direntry
-* Speedbar: (speedbar). File/Tag summarizing utility.
+* Speedbar: (speedbar).         File/Tag summarizing utility.
 @end direntry
 
 @titlepage
@@ -1131,7 +1131,7 @@
 
 @example
 (add-to-list 'speedbar-dynamic-tags-function-list
-	     '(my-fetch-dynamic-tags  . my-insert-tag-list))
+             '(my-fetch-dynamic-tags . my-insert-tag-list))
 @end example
 
 If your parser is only good for a few types of files, make sure that it
Binary file doc/misc/tramp.texi has changed
--- a/doc/misc/url.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/url.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -15,7 +15,7 @@
 @dircategory World Wide Web
 @dircategory Emacs
 @direntry
-* URL: (url).                 URL loading package.
+* URL: (url).                   URL loading package.
 @end direntry
 
 @copying
--- a/doc/misc/vip.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/vip.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -3,8 +3,8 @@
 @settitle VIP
 
 @copying
-Copyright @copyright{} 1987, 2001, 2002, 2003, 2004,
-2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright @copyright{} 1987, 2001, 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
@@ -38,7 +38,7 @@
 
 @dircategory Emacs
 @direntry
-* VIP: (vip).		An older VI-emulation for Emacs.
+* VIP: (vip).                   An older VI-emulation for Emacs.
 @end direntry
 
 @ifnottex
@@ -65,10 +65,10 @@
 @end ifnottex
 
 @menu
-* Survey::		A survey of VIP.
-* Vi Commands::		Details of Vi commands.
-* Ex Commands::		Details of Ex commands.
-* Customization::	How to customize VIP.
+* Survey::              A survey of VIP.
+* Vi Commands::         Details of Vi commands.
+* Ex Commands::         Details of Ex commands.
+* Customization::       How to customize VIP.
 * GNU Free Documentation License:: The license for this documentation.
 
 @end menu
@@ -99,10 +99,10 @@
 found in Vi and on how to use VIP under GNU Emacs.
 
 @menu
-* Basic Concepts::	Basic concepts in Emacs.
-* Loading VIP::		How to load VIP automatically.
-* Modes in VIP::	VIP has three modes, which are orthogonal to modes
-			in Emacs.
+* Basic Concepts::      Basic concepts in Emacs.
+* Loading VIP::         How to load VIP automatically.
+* Modes in VIP::        VIP has three modes, which are orthogonal to modes
+                          in Emacs.
 * Differences from Vi:: Differences of VIP from Vi is explained.
 @end menu
 
@@ -253,10 +253,10 @@
 @end ifinfo
 
 @menu
-* Emacs Mode::		This is the mode you should know better.
-* Vi Mode::		Vi commands are executed in this mode.
-* Insert Mode::		You can enter text, and also can do editing if you
-			know enough Emacs commands.
+* Emacs Mode::          This is the mode you should know better.
+* Vi Mode::             Vi commands are executed in this mode.
+* Insert Mode::         You can enter text, and also can do editing if you
+                          know enough Emacs commands.
 @end menu
 
 @node Emacs Mode, Vi Mode, Modes in VIP, Modes in VIP
@@ -306,23 +306,23 @@
 The major differences from Vi are explained below.
 
 @menu
-* Undoing::		You can undo more in VIP.
-* Changing::		Commands for changing the text.
-* Searching::		Search commands.
-* z Command::		You can now use zH, zM and zL as well as z- etc.
-* Counts::		Some Vi commands which do not accept a count now
-			accept one.
-* Marking::		You can now mark the current point, beginning of
-			the buffer etc.
-* Region Commands::	You can now give a region as an argument for delete
-			commands etc.
-* New Commands::	Some new commands not available in Vi are added.
-* New Bindings::	Bindings of some keys are changed for the
-			convenience of editing under Emacs.
-* Window Commands::	Commands for moving among windows etc.
-* Buffer Commands::	Commands for selecting buffers etc.
-* File Commands::	Commands for visiting files etc.
-* Misc Commands::	Other useful commands.
+* Undoing::             You can undo more in VIP.
+* Changing::            Commands for changing the text.
+* Searching::           Search commands.
+* z Command::           You can now use zH, zM and zL as well as z- etc.
+* Counts::              Some Vi commands which do not accept a count now
+                        accept one.
+* Marking::             You can now mark the current point, beginning of
+                        the buffer etc.
+* Region Commands::     You can now give a region as an argument for delete
+                        commands etc.
+* New Commands::        Some new commands not available in Vi are added.
+* New Bindings::        Bindings of some keys are changed for the
+                        convenience of editing under Emacs.
+* Window Commands::     Commands for moving among windows etc.
+* Buffer Commands::     Commands for selecting buffers etc.
+* File Commands::       Commands for visiting files etc.
+* Misc Commands::       Other useful commands.
 @end menu
 
 @node Undoing, Changing, Differences from Vi, Differences from Vi
@@ -693,17 +693,17 @@
 commands described in this chapter are to be used in vi mode.
 
 @menu
-* Numeric Arguments::	Many commands accept numeric arguments
-* Important Keys::	Some very important keys.
-* Buffers and Windows::	Commands for handling buffers and windows.
-* Files::		Commands for handling files.
-* Viewing the Buffer::	How you can view the current buffer.
-* Mark Commands::	Marking positions in a buffer.
-* Motion Commands::	Commands for moving point.
-* Searching and Replacing::	Commands for searching and replacing.
-* Modifying Commands::	Commands for modifying the buffer.
-* Other Vi Commands::	Miscellaneous Commands.
-* Commands in Insert Mode::	Commands for entering insert mode.
+* Numeric Arguments::        Many commands accept numeric arguments
+* Important Keys::           Some very important keys.
+* Buffers and Windows::      Commands for handling buffers and windows.
+* Files::                    Commands for handling files.
+* Viewing the Buffer::       How you can view the current buffer.
+* Mark Commands::            Marking positions in a buffer.
+* Motion Commands::          Commands for moving point.
+* Searching and Replacing::  Commands for searching and replacing.
+* Modifying Commands::       Commands for modifying the buffer.
+* Other Vi Commands::        Miscellaneous Commands.
+* Commands in Insert Mode::  Commands for entering insert mode.
 @end menu
 
 @node Numeric Arguments, Important Keys, Vi Commands, Vi Commands
@@ -1265,7 +1265,7 @@
 @var{newstring}.  If the mode is regular expression, @var{string} is
 treated as a regular expression and every string matching the regular
 expression is replaced with @var{newstring} (@code{vip-replace-string}).
-@item Q	@var{string} RET @var{newstring}
+@item Q @var{string} RET @var{newstring}
 @kindex 121 @kbd{Q} (@code{vip-query-replace})
 Same as @kbd{R} except that you will be asked form confirmation before each
 replacement
@@ -1311,10 +1311,10 @@
 command.
 
 @menu
-* Delete Commands::	Commands for deleting text.
-* Yank Commands::	Commands for yanking text in Vi's sense.
-* Put Back Commands::	Commands for putting back deleted/yanked text.
-* Change Commands::	Commands for changing text.
+* Delete Commands::     Commands for deleting text.
+* Yank Commands::       Commands for yanking text in Vi's sense.
+* Put Back Commands::   Commands for putting back deleted/yanked text.
+* Change Commands::     Commands for changing text.
 * Repeating and Undoing Modifications::
 @end menu
 @node Delete Commands, Yank Commands, Modifying Commands, Modifying Commands
@@ -1713,7 +1713,7 @@
 character @samp{|}.
 
 @menu
-* Ex Command Reference::	Explain all the Ex commands available in VIP.
+* Ex Command Reference::        Explain all the Ex commands available in VIP.
 @end menu
 @node Ex Command Reference, Customization, Ex Commands, Ex Commands
 @section Ex Command Reference
@@ -1869,8 +1869,8 @@
 customizing VIP.
 
 @menu
-* Customizing Constants::	How to change values of constants.
-* Customizing Key Bindings::	How to change key bindings.
+* Customizing Constants::       How to change values of constants.
+* Customizing Key Bindings::    How to change key bindings.
 @end menu
 
 @node Customizing Constants, Customizing Key Bindings, Customization, Customization
--- a/doc/misc/viper.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/viper.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -26,9 +26,9 @@
 
 @dircategory Emacs
 @direntry
-* VIPER: (viper).       The newest Emacs VI-emulation mode.
-                          (also, A VI Plan for Emacs Rescue
-                           or the VI PERil.)
+* VIPER: (viper).               The newest Emacs VI-emulation mode.
+                                  (also, A VI Plan for Emacs Rescue
+                                  or the VI PERil.)
 @end direntry
 
 @finalout
@@ -3004,14 +3004,14 @@
 found on the Vi archives.  This reference has been adapted for Viper.@refill
 
 @menu
-* Groundwork::			Textual Conventions and Viper basics
-* Text Handling::		Moving, Editing, Undoing.
-* Display::			Scrolling.
-* File and Buffer Handling::	Editing, Writing and Quitting.
-* Mapping::			Mapping Keys, Keyboard Macros
-* Shell Commands::		Accessing Shell Commands, Processing Text
-* Options::			Ex options, the @kbd{:set} commands
-* Emacs Related Commands::	Meta Keys, Windows
+* Groundwork::                  Textual Conventions and Viper basics
+* Text Handling::               Moving, Editing, Undoing.
+* Display::                     Scrolling.
+* File and Buffer Handling::    Editing, Writing and Quitting.
+* Mapping::                     Mapping Keys, Keyboard Macros
+* Shell Commands::              Accessing Shell Commands, Processing Text
+* Options::                     Ex options, the @kbd{:set} commands
+* Emacs Related Commands::      Meta Keys, Windows
 * Mouse-bound Commands::        Search and insertion of text
 @end menu
 
@@ -3230,15 +3230,15 @@
 @section Text Handling
 
 @menu
-* Move Commands::		Moving, Searching
-* Marking::		        Textmarkers in Viper and the Emacs Mark.
-* Appending Text::		Text insertion, Shifting, Putting
-* Editing in Insert State::	Autoindent, Quoting etc.
-* Deleting Text::		Deleting
-* Changing Text::		Changing, Replacement, Joining
-* Search and Replace::		Searches, Query Replace, Pattern Commands
-* Yanking::			Yanking, Viewing Registers
-* Undoing::			Multiple Undo, Backups
+* Move Commands::               Moving, Searching
+* Marking::                     Textmarkers in Viper and the Emacs Mark.
+* Appending Text::              Text insertion, Shifting, Putting
+* Editing in Insert State::     Autoindent, Quoting etc.
+* Deleting Text::               Deleting
+* Changing Text::               Changing, Replacement, Joining
+* Search and Replace::          Searches, Query Replace, Pattern Commands
+* Yanking::                     Yanking, Viewing Registers
+* Undoing::                     Multiple Undo, Backups
 @end menu
 
 @node Move Commands,Marking,,Text Handling
--- a/doc/misc/widget.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/widget.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -8,8 +8,8 @@
 @c %**end of header
 
 @copying
-Copyright @copyright{} 2000, 2001, 2002, 2003, 2004, 2005,
-2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+Copyright @copyright{} 2000, 2001, 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
@@ -27,8 +27,8 @@
 
 @dircategory Emacs
 @direntry
-* Widget: (widget).      The "widget" package used by the Emacs Customization
-                           facility.
+* Widget: (widget).             The "widget" package used by the Emacs
+                                  Customization facility.
 @end direntry
 
 @contents
@@ -338,71 +338,71 @@
   (remove-overlays)
   (widget-insert "Here is some documentation.\n\n")
   (widget-create 'editable-field
-		 :size 13
-		 :format "Name: %v " ; Text after the field!
-		 "My Name")
+                 :size 13
+                 :format "Name: %v " ; Text after the field!
+                 "My Name")
   (widget-create 'menu-choice
-		 :tag "Choose"
-		 :value "This"
-		 :help-echo "Choose me, please!"
-		 :notify (lambda (widget &rest ignore)
-			   (message "%s is a good choice!"
-				    (widget-value widget)))
-		 '(item :tag "This option" :value "This")
-		 '(choice-item "That option")
-		 '(editable-field :menu-tag "No option" "Thus option"))
+                 :tag "Choose"
+                 :value "This"
+                 :help-echo "Choose me, please!"
+                 :notify (lambda (widget &rest ignore)
+                           (message "%s is a good choice!"
+                                    (widget-value widget)))
+                 '(item :tag "This option" :value "This")
+                 '(choice-item "That option")
+                 '(editable-field :menu-tag "No option" "Thus option"))
   (widget-create 'editable-field
-		 :format "Address: %v"
-		 "Some Place\nIn some City\nSome country.")
+                 :format "Address: %v"
+                 "Some Place\nIn some City\nSome country.")
   (widget-insert "\nSee also ")
   (widget-create 'link
-		 :notify (lambda (&rest ignore)
-			   (widget-value-set widget-example-repeat
-					     '("En" "To" "Tre"))
-			   (widget-setup))
-		 "other work")
+                 :notify (lambda (&rest ignore)
+                           (widget-value-set widget-example-repeat
+                                             '("En" "To" "Tre"))
+                           (widget-setup))
+                 "other work")
   (widget-insert
     " for more information.\n\nNumbers: count to three below\n")
   (setq widget-example-repeat
-	(widget-create 'editable-list
-		       :entry-format "%i %d %v"
-		       :notify (lambda (widget &rest ignore)
-				 (let ((old (widget-get widget
-							':example-length))
-				       (new (length (widget-value widget))))
-				   (unless (eq old new)
-				     (widget-put widget ':example-length new)
-				     (message "You can count to %d." new))))
-		       :value '("One" "Eh, two?" "Five!")
-		       '(editable-field :value "three")))
+        (widget-create 'editable-list
+                       :entry-format "%i %d %v"
+                       :notify (lambda (widget &rest ignore)
+                                 (let ((old (widget-get widget
+                                                        ':example-length))
+                                       (new (length (widget-value widget))))
+                                   (unless (eq old new)
+                                     (widget-put widget ':example-length new)
+                                     (message "You can count to %d." new))))
+                       :value '("One" "Eh, two?" "Five!")
+                       '(editable-field :value "three")))
   (widget-insert "\n\nSelect multiple:\n\n")
   (widget-create 'checkbox t)
   (widget-insert " This\n")
   (widget-create 'checkbox nil)
   (widget-insert " That\n")
   (widget-create 'checkbox
-		 :notify (lambda (&rest ignore) (message "Tickle"))
-		 t)
+                 :notify (lambda (&rest ignore) (message "Tickle"))
+                 t)
   (widget-insert " Thus\n\nSelect one:\n\n")
   (widget-create 'radio-button-choice
-		 :value "One"
-		 :notify (lambda (widget &rest ignore)
-			   (message "You selected %s"
-				    (widget-value widget)))
-		 '(item "One") '(item "Another One.") '(item "A Final One."))
+                 :value "One"
+                 :notify (lambda (widget &rest ignore)
+                           (message "You selected %s"
+                                    (widget-value widget)))
+                 '(item "One") '(item "Another One.") '(item "A Final One."))
   (widget-insert "\n")
   (widget-create 'push-button
-		 :notify (lambda (&rest ignore)
-			   (if (= (length (widget-value widget-example-repeat))
-				  3)
-			       (message "Congratulation!")
-			     (error "Three was the count!")))
-		 "Apply Form")
+                 :notify (lambda (&rest ignore)
+                           (if (= (length (widget-value widget-example-repeat))
+                                  3)
+                               (message "Congratulation!")
+                             (error "Three was the count!")))
+                 "Apply Form")
   (widget-insert " ")
   (widget-create 'push-button
-		 :notify (lambda (&rest ignore)
-			   (widget-example))
-		 "Reset Form")
+                 :notify (lambda (&rest ignore)
+                           (widget-example))
+                 "Reset Form")
   (widget-insert "\n")
   (use-local-map widget-keymap)
   (widget-setup))
--- a/doc/misc/woman.texi	Tue May 11 20:15:29 2010 +0900
+++ b/doc/misc/woman.texi	Tue Jul 27 16:01:48 2010 +0900
@@ -4,7 +4,7 @@
 @settitle WoMan: Browse Unix Manual Pages ``W.O. (without) Man''
 @c FIXME
 @c Manual last updated:
-@set UPDATED Time-stamp: <Sat 16-Jan-2010 19:18:43 gm on grasmoor>
+@set UPDATED Time-stamp: <Thu 24-Jun-2010 00:06:54 gm on grasmoor>
 @c Software version:
 @set VERSION 0.54 (beta)
 @afourpaper
@@ -37,7 +37,7 @@
 
 @dircategory Emacs
 @direntry
-* WoMan: (woman).       Browse UN*X Manual Pages "W.O. (without) Man".
+* WoMan: (woman).               Browse UN*X Manual Pages "W.O. (without) Man".
 @end direntry
 
 @finalout
--- a/etc/ChangeLog	Tue May 11 20:15:29 2010 +0900
+++ b/etc/ChangeLog	Tue Jul 27 16:01:48 2010 +0900
@@ -1,3 +1,15 @@
+2010-06-19  Ken Brown  <kbrown@cornell.edu>
+
+	* PROBLEMS: Update Cygwin GCC information.  (Bug#6458)
+
+2010-06-12  Glenn Morris  <rgm@gnu.org>
+
+	* tutorials/TUTORIAL.bg, tutorials/TUTORIAL.es: Fix typos.
+
+2010-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* NEWS: Add sections for Emacs-23.3.
+
 2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 
 	* Version 23.2 released.
@@ -26,8 +38,7 @@
 
 2010-03-15  Francesc Rocher  <rocher@member.fsf.org>
 
-	* MORE.STUFF: Remove CEDET entry, now distributed as part of
-	Emacs.
+	* MORE.STUFF: Remove CEDET entry, now distributed as part of Emacs.
 
 2010-03-06  Glenn Morris  <rgm@gnu.org>
 
--- a/etc/NEWS	Tue May 11 20:15:29 2010 +0900
+++ b/etc/NEWS	Tue Jul 27 16:01:48 2010 +0900
@@ -15,6 +15,37 @@
 with a prefix argument or by typing C-u C-h C-n.
 
 
+* Installation Changes in Emacs 23.3
+
+* Startup Changes in Emacs 23.3
+
+* Changes in Emacs 23.3
+
+
+* Editing Changes in Emacs 23.3
+
+
+* Changes in Specialized Modes and Packages in Emacs 23.3
+
+---
+** The appt-add command takes an optional argument for the warning time.
+This can be used in place of the default appt-message-warning-time.
+
+
+* New Modes and Packages in Emacs 23.3
+
+
+* Incompatible Lisp Changes in Emacs 23.3
+
+
+* Lisp changes in Emacs 23.3
+
+** New function byte-to-string, like char-to-string but for bytes.
+
+
+* Changes in Emacs 23.3 on non-free operating systems
+
+
 * Installation Changes in Emacs 23.2
 
 ** New configure options for Emacs developers.
--- a/etc/NEWS.1-17	Tue May 11 20:15:29 2010 +0900
+++ b/etc/NEWS.1-17	Tue Jul 27 16:01:48 2010 +0900
@@ -760,7 +760,7 @@
 * New function `switch-to-buffer-other-window'.
 
 This is the new primitive to select a specified buffer (the
-argument)  in another window.  It is not quite the same as
+argument) in another window.  It is not quite the same as
 `pop-to-buffer', because it is guaranteed to create another
 window (assuming there is room on the screen) so that it can
 leave the current window's old buffer displayed as well.
@@ -971,7 +971,7 @@
 This command creates an inferior Lisp process whose input and output
 appear in the Emacs buffer named `*lisp*'.  That buffer uses a major mode
 called inferior-lisp-mode, which has many of the commands of lisp-mode
-and those of shell-mode.   Calls the value of shell-mode-hook and
+and those of shell-mode.  Calls the value of shell-mode-hook and
 lisp-mode-hook, in that order, if non-nil.
 
 Meanwhile, in lisp-mode, the command C-M-x is defined to
@@ -1421,7 +1421,7 @@
  of the executing emacs, for use in run-time conditionalization.
 
  The function  featurep  of one argument may be used to test for the
- presence of a feature. It is just the same as
+ presence of a feature.  It is just the same as
  (not (null (memq FEATURE features))) where FEATURE is its argument.
  For example, (if (featurep 'magic-window-hack)
 		  (transmogrify-window 'vertical)
@@ -1541,13 +1541,13 @@
 
  This function returns a cons cell whose car is the object produced
  by reading from the string and whose cdr is a number giving the
- index in the string of the first character not read. That index may
+ index in the string of the first character not read.  That index may
  be passed as the second argument to a later call to  read-from-string
  to read the next form represented by the string.
 
  In addition, the function  read  now accepts a string as its argument.
  In this case, it calls  read-from-string  on the whole string, and
- returns the car of the result. (ie the actual object read.)
+ returns the car of the result (ie the actual object read.)
 
 
 
--- a/etc/PROBLEMS	Tue May 11 20:15:29 2010 +0900
+++ b/etc/PROBLEMS	Tue Jul 27 16:01:48 2010 +0900
@@ -2477,17 +2477,10 @@
 
 (using the location of the 32-bit X libraries on your system).
 
-*** Building the Cygwin port for MS-Windows can fail with some GCC versions
-
-Building Emacs 22 with Cygwin builds of GCC 3.4.4-1 and 3.4.4-2 is
-reported to either fail or cause Emacs to segfault at run time.  In
-addition, the Cygwin GCC 3.4.4-2 has problems with generating debug
-info.  Cygwin users are advised not to use these versions of GCC for
-compiling Emacs.  GCC versions 4.0.3, 4.0.4, 4.1.1, and 4.1.2
-reportedly build a working Cygwin binary of Emacs, so we recommend
-these GCC versions.  Note that these versions of GCC, 4.0.3, 4.0.4,
-4.1.1, and 4.1.2, are currently the _only_ versions known to succeed
-in building Emacs (as of v22.1).
+*** Building Emacs for Cygwin can fail with GCC 3
+
+As of Emacs 22.1, there have been stability problems with Cygwin
+builds of Emacs using GCC 3.  Cygwin users are advised to use GCC 4.
 
 *** Building the native MS-Windows port fails due to unresolved externals
 
--- a/etc/TODO	Tue May 11 20:15:29 2010 +0900
+++ b/etc/TODO	Tue Jul 27 16:01:48 2010 +0900
@@ -369,7 +369,7 @@
   the whole menu bar.  In the mean time, it should process other messages.
 
 ** Get some major packages installed: W3 (development version needs
-  significant work), PSGML, _possibly_ Cedet and ECB.
+  significant work), PSGML, _possibly_ ECB.
   http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg01493.html
   Check the assignments file for other packages which might go in and
   have been missed.
--- a/etc/tutorials/TUTORIAL.bg	Tue May 11 20:15:29 2010 +0900
+++ b/etc/tutorials/TUTORIAL.bg	Tue Jul 27 16:01:48 2010 +0900
@@ -625,7 +625,7 @@
 Åìàêñ ñåñèÿòà.
 
 >> Âúâåäåòå C-x b *Messages* <Return>, çà äà âèäèòå áóôåðà ñúñ
-   ñúîáùåíèÿòà.  Ñëåä òîâà âúâåäåòå C-x C-b TUTORIAL <Return>, çà äà
+   ñúîáùåíèÿòà.  Ñëåä òîâà âúâåäåòå C-x b TUTORIAL <Return>, çà äà
    ñå âúðíåòå êúì òîâà âúâåäåíèå.
 
 Àêî íàïðàâèòå ïðîìåíè â òåêñòà íà åäèí ôàéë è òîãàâà íàìåðèòå äðóã
--- a/etc/tutorials/TUTORIAL.es	Tue May 11 20:15:29 2010 +0900
+++ b/etc/tutorials/TUTORIAL.es	Tue Jul 27 16:01:48 2010 +0900
@@ -630,7 +630,7 @@
 su sesión de Emacs.
 
 >> Teclee C-x b *Messages* <Return> para ver el buffer de mensajes.
-   Luego teclee C-b TUTORIAL <Return> para regresar a este tutorial.
+   Luego teclee C-x b TUTORIAL <Return> para regresar a este tutorial.
 
 Si hace cambios al texto de un archivo, y luego encuentra otro
 archivo, esto no guarda el primer archivo.  Sus cambios permanecerán
--- a/info/dir	Tue May 11 20:15:29 2010 +0900
+++ b/info/dir	Tue Jul 27 16:01:48 2010 +0900
@@ -19,75 +19,78 @@
 
 * Menu:
 
-* Info: (info).         How to use the documentation browsing system.
+* Info: (info).                 How to use the documentation browsing system.
 
 Emacs
-* Emacs: (emacs).       The extensible self-documenting text editor.
-* Emacs FAQ: (efaq).    Frequently Asked Questions about Emacs.
+* Emacs: (emacs).               The extensible self-documenting text editor.
+* Emacs FAQ: (efaq).            Frequently Asked Questions about Emacs.
 
 GNU Emacs Lisp
-* Emacs Lisp Intro: (eintr).
-                          A simple introduction to Emacs Lisp programming.
-* Elisp: (elisp).       The Emacs Lisp Reference Manual.
+* Emacs Lisp Intro: (eintr).    A simple introduction to Emacs Lisp programming.
+* Elisp: (elisp).               The Emacs Lisp Reference Manual.
 
 Emacs editing modes
-* Ada mode: (ada-mode). Emacs mode for editing and compiling Ada code.
-* CC Mode: (ccmode).    Emacs mode for editing C, C++, Objective-C,
-                        Java, Pike, AWK, and CORBA IDL code.
-* IDLWAVE: (idlwave).   Major mode and shell for IDL files.
+* Ada mode: (ada-mode).         Emacs mode for editing and compiling Ada code.
+* CC Mode: (ccmode).            Emacs mode for editing C, C++, Objective-C,
+                                  Java, Pike, AWK, and CORBA IDL code.
+* IDLWAVE: (idlwave).           Major mode and shell for IDL files.
 * nXML Mode: (nxml-mode).       XML editing mode with RELAX NG support.
-* Org Mode: (org).      Outline-based notes management and organizer
+* Org Mode: (org).              Outline-based notes management and organizer
 
 Emacs network features
-* EUDC: (eudc).   An Emacs client for directory servers (LDAP, PH).
-* Gnus: (gnus).         The newsreader Gnus.
-* Mairix: (mairix-el).  Emacs interface to the Mairix mail indexer.
-* MH-E: (mh-e).         Emacs interface to the MH mail system.
-* Message: (message).   Mail and news composition mode that goes with Gnus.
-* Newsticker: (newsticker). A Newsticker for Emacs.
-* PGG: (pgg).   Emacs interface to various PGP implementations.
-* ERC: (erc).           Powerful, modular, and extensible IRC client for Emacs.
-* Rcirc: (rcirc).       Internet Relay Chat (IRC) client.
-* SASL: (sasl).         The Emacs SASL library.
-* SC: (sc).             Supercite lets you cite parts of messages you're
-                          replying to, in flexible ways.
+* EUDC: (eudc).                 Emacs client for directory servers (LDAP, PH).
+* Gnus: (gnus).                 The newsreader Gnus.
+* Mairix: (mairix-el).          Emacs interface to the Mairix mail indexer.
+* MH-E: (mh-e).                 Emacs interface to the MH mail system.
+* Message: (message).           Mail and news composition mode that
+                                  goes with Gnus.
+* Newsticker: (newsticker).     A Newsticker for Emacs.
+* PGG: (pgg).                   Emacs interface to various PGP implementations.
+* ERC: (erc).                   Powerful and extensible IRC client for Emacs.
+* Rcirc: (rcirc).               Internet Relay Chat (IRC) client.
+* SASL: (sasl).                 The Emacs SASL library.
+* SC: (sc).                     Supercite lets you cite parts of messages
+                                  you're replying to, in flexible ways.
 * Sieve: (sieve).               Managing Sieve scripts in Emacs.
-* TRAMP: (tramp).                Transparent Remote Access, Multiple Protocol
-                                 GNU Emacs remote file access via rsh and rcp.
+* TRAMP: (tramp).               Transparent Remote Access, Multiple Protocol
+                                  GNU Emacs remote file access via rsh and rcp.
 
 Emacs misc features
-* Autotype: (autotype). Convenient features for text that you enter frequently
-                          in Emacs.
-* Calc: (calc).         Advanced desk calculator and mathematical tool.
-* Dired-X: (dired-x).   Dired Extra Features.
-* EasyPG Assistant: (epa).   An Emacs user interface to GNU Privacy Guard.
-* Ebrowse: (ebrowse).   A C++ class browser for Emacs.
-* EDE: (ede).           The Emacs Development Environment.
-* Ediff: (ediff).       A visual interface for comparing and merging programs.
-* EDT: (edt).           An Emacs emulation of the EDT editor.
-* EIEIO: (eieio).       An object system for Emacs Lisp.
-* Eshell: (eshell).     A command shell implemented in Emacs Lisp.
-* Flymake: (flymake).   A universal on-the-fly syntax checker.
-* Forms: (forms).       Emacs package for editing data bases
-                          by filling in forms.
-* PCL-CVS: (pcl-cvs).   Emacs front-end to CVS.
-* RefTeX: (reftex).     Emacs support for LaTeX cross-references and citations.
-* Remember: (remember). Simple information manager for Emacs.
-* Semantic: (semantic). Source code parsing utilities for Emacs.
-* SES: (ses).       Simple Emacs Spreadsheet
-* Speedbar: (speedbar). File/Tag summarizing utility.
-* VIP: (vip).           An older VI-emulation for Emacs.
-* VIPER: (viper).       The newest Emacs VI-emulation mode.
-                          (also, A VI Plan for Emacs Rescue
-                           or the VI PERil.)
-* WoMan: (woman).       Browse UN*X Manual Pages "W.O. (without) Man".
+* Autotype: (autotype).         Convenient features for text that you enter
+                                  frequently in Emacs.
+* Calc: (calc).                 Advanced desk calculator and mathematical tool.
+* Dired-X: (dired-x).           Dired Extra Features.
+* EasyPG Assistant: (epa).      An Emacs user interface to GNU Privacy Guard.
+* Ebrowse: (ebrowse).           A C++ class browser for Emacs.
+* EDE: (ede).                   The Emacs Development Environment.
+* Ediff: (ediff).               A visual interface for comparing and
+                                  merging programs.
+* EDT: (edt).                   An Emacs emulation of the EDT editor.
+* EIEIO: (eieio).               An object system for Emacs Lisp.
+* Eshell: (eshell).             A command shell implemented in Emacs Lisp.
+* Flymake: (flymake).           A universal on-the-fly syntax checker.
+* Forms: (forms).               Emacs package for editing data bases
+                                  by filling in forms.
+* PCL-CVS: (pcl-cvs).           Emacs front-end to CVS.
+* RefTeX: (reftex).             Emacs support for LaTeX cross-references
+                                  and citations.
+* Remember: (remember).         Simple information manager for Emacs.
+* Semantic: (semantic).         Source code parsing utilities for Emacs.
+* SES: (ses).                   Simple Emacs Spreadsheet
+* Speedbar: (speedbar).         File/Tag summarizing utility.
+* VIP: (vip).                   An older VI-emulation for Emacs.
+* VIPER: (viper).               The newest Emacs VI-emulation mode.
+                                  (also, A VI Plan for Emacs Rescue
+                                  or the VI PERil.)
+* WoMan: (woman).               Browse UN*X Manual Pages "W.O. (without) Man".
 
 Emacs lisp libraries
-* Auth-source: (auth).  A single configuration for multiple applications.
-* CL: (cl).             Partial Common Lisp support for Emacs Lisp.
+* Auth-source: (auth).          A single configuration for multiple
+                                  applications.
+* CL: (cl).                     Partial Common Lisp support for Emacs Lisp.
 * D-Bus: (dbus).                Using D-Bus in Emacs.
-* Emacs MIME: (emacs-mime).   Emacs MIME de/composition library.
-* URL: (url).                 URL loading package.
-* Widget: (widget).      The "widget" package used by the Emacs Customization
-                           facility.
-* SMTP: (smtpmail). Emacs library for sending mail via SMTP.
+* Emacs MIME: (emacs-mime).     Emacs MIME de/composition library.
+* URL: (url).                   URL loading package.
+* Widget: (widget).             The "widget" package used by the Emacs
+                                  Customization facility.
+* SMTP: (smtpmail).             Emacs library for sending mail via SMTP.
--- a/lisp/ChangeLog	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/ChangeLog	Tue Jul 27 16:01:48 2010 +0900
@@ -1,3 +1,351 @@
+2010-07-23  Juanma Barranquero  <lekktu@gmail.com>
+
+	* help-fns.el (find-lisp-object-file-name): Doc fix (bug#6494).
+
+2010-07-20  Juanma Barranquero  <lekktu@gmail.com>
+
+	* cedet/semantic/db-file.el (object-write): Fix typo in docstring.
+
+2010-07-19  Juanma Barranquero  <lekktu@gmail.com>
+
+	* time.el (display-time-day-and-date): Remove spurious * in docstring.
+	(display-time-world-buffer-name, display-time-world-mode-map):
+	Fix typos in docstrings.
+
+2010-07-17  Shyam Karanatt  <shyam@swathanthran.in>  (tiny change)
+
+	* image-mode.el (image-display-size): New function.
+	(image-forward-hscroll, image-next-line, image-eol, image-eob)
+	(image-mode-fit-frame): Use it (Bug#6639).
+
+2010-07-17  Chong Yidong  <cyd@stupidchicken.com>
+
+	* dired.el (dired-buffers-for-dir): Handle list values of
+	dired-directory (Bug#6636).
+
+2010-07-16  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* vc.el (vc-coding-system-inherit-eol): New defvar.
+	(vc-coding-system-for-diff): Use it to decide whether to inherit
+	from the file the EOL format for reading the diffs of that file.
+	(Bug#4451)
+
+2010-07-16  Eli Zaretskii  <eliz@gnu.org>
+
+	* mail/rmailmm.el (rmail-mime-save): Make the temp buffer
+	unibyte, so compressed attachments are not compressed again.
+
+2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
+
+	* xt-mouse.el (xterm-mouse-event-read): Fix for characters > 127
+	now that unicode is used (Bug#6594).
+
+2010-07-14  Chong Yidong  <cyd@stupidchicken.com>
+
+	* simple.el (push-mark-command): Set the selection if
+	select-active-regions is non-nil.
+
+2010-07-10  Glenn Morris  <rgm@gnu.org>
+
+	* calendar/calendar.el (calendar-week-end-day): New function.
+	* calendar/cal-tex.el (cal-tex-cursor-month): Remove unused vars.
+	Respect calendar-week-start-day.  (Bug#6606)
+	(cal-tex-insert-day-names, cal-tex-insert-blank-days)
+	(cal-tex-insert-blank-days-at-end): Respect calendar-week-start-day.
+	(cal-tex-first-blank-p, cal-tex-last-blank-p): Simplify, and
+	respect calendar-week-start-day.
+
+2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
+
+	* simple.el (use-region-p): Doc fix (Bug#6607).
+
+2010-07-07  Christoph Scholtes  <cschol2112@gmail.com>
+
+	* progmodes/python.el (python-font-lock-keywords): Add Python 2.7
+	builtins (BufferError, BytesWarning, WindowsError; callables
+	bin, bytearray, bytes, format, memoryview, next, print; __package__).
+
+2010-07-07  Glenn Morris  <rgm@gnu.org>
+
+	* play/zone.el (zone-fall-through-ws): Fix next-line ->
+	forward-line fallout.
+
+2010-07-06  Chong Yidong  <cyd@stupidchicken.com>
+
+	* mouse.el (mouse-appearance-menu): Add docstring.
+
+	* help.el (describe-key): Print up-event using key-description.
+
+2010-07-03  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/zeroconf.el (zeroconf-resolve-service)
+	(zeroconf-service-resolver-handler): Use
+	`dbus-byte-array-to-string'.
+	(zeroconf-publish-service): Use `dbus-string-to-byte-array'.
+
+2010-07-03  Jan Moringen  <jan.moringen@uni-bielefeld.de>
+
+	* net/zeroconf.el (zeroconf-service-remove-hook): New defun.
+
+2010-06-30  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	Avoid displaying files with a nil state in vc-dir.
+	* vc-dir.el (vc-dir-update): Obey the noinsert argument in all
+	cases that cause insertion.
+	(vc-dir-resynch-file): Tell vc-dir-update to avoid inserting files
+	with a nil state.
+
+2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xml.el (xml-parse-region): Avoid infloop (Bug#5281).
+
+2010-06-29  Leo  <sdl.web@gmail.com>
+
+	* emacs-lisp/rx.el (rx): Doc fix.  (Bug#6537)
+
+2010-06-27  Oleksandr Gavenko  <gavenkoa@gmail.com>  (tiny change)
+
+	* generic-x.el (bat-generic-mode): Fix regexp for command line
+	switches (Bug#5719).
+
+2010-06-27  Masatake YAMATO  <yamato@redhat.com>
+
+	* htmlfontify.el (hfy-face-attr-for-class): Use append instead
+	of nconc to avoid pure storage error (Bug#6239).
+
+2010-06-27  Christoph  <cschol2112@googlemail.com>  (tiny change)
+
+	* bookmark.el (bookmark-bmenu-2-window, bookmark-bmenu-other-window)
+	(bookmark-bmenu-other-window-with-mouse): Remove unnecessary
+	bindings of bookmark-automatically-show-annotations (Bug#6515).
+
+2010-06-25  Eli Zaretskii  <eliz@gnu.org>
+
+	* arc-mode.el (archive-zip-extract): Don't quote the file name on
+	MS-Windows and MS-DOS.  (Bug#6467, Bug#6144)
+
+2010-06-24  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
+
+	* comint.el (make-comint, make-comint-in-buffer): Mention return
+	value in the docstrings.  (Bug#6498)
+
+2010-06-24  Yoni Rabkin  <yoni@rabkins.net>
+
+	* bs.el (bs-mode-font-lock-keywords): Remove "by" from Dired pattern,
+	since it is not present when using some non-default switches.
+
+2010-06-23  Karl Fogel  <kfogel@red-bean.com>
+
+	* simple.el (compose-mail): Fix doc string to refer to
+	`compose-mail-user-agent-warnings', instead of to the
+	nonexistent `compose-mail-check-user-agent'.
+
+2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	Fix vc-annotate for renamed files when using Git.
+	* vc-git.el (vc-git-find-revision): Deal with empty results from
+	ls-files.  Doe not pass the object as a file name to cat-file, it
+	is not a file name.
+	(vc-git-annotate-command): Pass the file name using -- to avoid
+	ambiguity with the revision.
+	(vc-git-previous-revision): Pass a relative file name.
+
+2010-06-22  Glenn Morris  <rgm@gnu.org>
+
+	* progmodes/js.el (js-mode-map): Use standard capitalization and
+	ellipses for menu entries.
+
+	* wid-edit.el (widget-complete): Doc fix.
+
+2010-06-22  Jürgen Hötzel  <juergen@hoetzel.info>  (tiny change)
+
+	* wid-edit.el (widget-complete): Fix typo in 2009-12-02 change.
+
+2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	Fix annotating other revisions for renamed files in vc-annotate.
+	* vc-annotate.el (vc-annotate): Add an optional argument for the
+	VC backend.  Use it when non-nil.
+	(vc-annotate-warp-revision): Pass the VC backend to vc-annotate.  (Bug#6487)
+
+	Fix vc-annotate-show-changeset-diff-revision-at-line for git.
+	* vc-annotate.el (vc-annotate-show-diff-revision-at-line-internal):
+	Do not pass the file name to the 'previous-revision call when we
+	don't want a file diff.  (Bug#6489)
+
+2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	Fix finding revisions for renamed files in vc-annotate.
+	* vc.el (vc-find-revision): Add an optional argument for
+	the VC backend.  Use it when non-nil.
+	* vc-annotate.el (vc-annotate-find-revision-at-line): Pass the VC
+	backend to vc-find-revision.  (Bug#6487)
+
+2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	Fix reading file names in Git annotate buffers.
+	* vc-git.el (vc-git-annotate-extract-revision-at-line): Remove
+	trailing whitespace.  Suggested by Eric Hanchrow.  (Bug#6481)
+
+2010-06-20  Alan Mackenzie  <acm@muc.de>
+
+	* progmodes/cc-mode.el (c-before-hack-hook): When the mode is set
+	in file local variables, set it first.
+
+2010-06-19  Glenn Morris  <rgm@gnu.org>
+
+	* descr-text.el (describe-char-unicode-data): Insert separating
+	space when needed.  (Bug#6422)
+
+	* progmodes/idlwave.el (idlwave-action-and-binding):
+	Fix typo in 2009-12-03 change.  (Bug#6450)
+
+2010-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* subr.el (read-quoted-char): Fix up last change (bug#6290).
+
+2010-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* font-lock.el (font-lock-major-mode): Rename from
+	font-lock-mode-major-mode to distinguish it from
+	global-font-lock-mode's own font-lock-mode-major-mode (bug#6135).
+	(font-lock-set-defaults):
+	* font-core.el (font-lock-default-function): Adjust users.
+	(font-lock-mode): Don't set it at all.
+
+2010-06-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* vc-annotate.el (vc-annotate): Use vc-read-revision.
+
+2010-06-15  Glenn Morris  <rgm@gnu.org>
+
+	* calendar/appt.el (appt-time-msg-list): Doc fix.
+	(appt-check): Let-bind appt-warn-time.
+	(appt-add): Make the 3rd argument optional.
+	Simplify argument names.  Doc fix.  Check for integer WARNTIME.
+	Only add WARNTIME to the output list if non-nil.
+
+2010-06-15  Ivan Kanis  <apple@kanis.eu>
+
+	* calendar/appt.el (appt-check): Let the 3rd element of
+	appt-time-msg-list specify the warning time.
+	(appt-add): Add new argument with the warning time.  (Bug#5176)
+
+2010-06-12  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>  (tiny change)
+
+	* vc-svn.el (vc-svn-after-dir-status): Fix regexp for Subversions
+	older than version 1.6.  (Bug#6361)
+
+2010-06-12  Helmut Eller  <eller.helmut@gmail.com>
+
+	* emacs-lisp/cl-macs.el (destructuring-bind): Bind `bind-enquote',
+	used by cl-do-arglist.  (Bug#6408)
+
+2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* emacs-lisp/advice.el (ad-compile-function):
+	Define warning-suppress-types before we let-bind it (bug#6275).
+
+	* vc-dispatcher.el: Rename mode-line-hook to vc-mode-line-hook;
+	declare it, make it buffer-local and permanent-local (bug#6324).
+	(vc-resynch-window): Adjust name.
+	* vc-hooks.el (vc-find-file-hook): Adjust name.
+
+2010-06-07  Jonathan Rockway  <jon@jrock.us>
+
+	* net/rcirc.el: Add support for password authentication.
+	(rcirc-server-alist): Add :password keyword.
+	(rcirc): Ask for a password, or get it from the server's alist.
+	(rcirc-connect): Add password argument.  Pass it to server.
+
+2010-06-05  Juanma Barranquero  <lekktu@gmail.com>
+
+	* net/dbus.el (dbus-register-method): Declare function.
+	(dbus-handle-event, dbus-property-handler): Fix typos in docstrings.
+	(dbus-introspect): Doc fix.
+	(dbus-event-bus-name, dbus-introspect-get-interface)
+	(dbus-introspect-get-argument): Reflow docstrings.
+
+2010-06-04  Chong Yidong  <cyd@stupidchicken.com>
+
+	* term/common-win.el (x-colors): Add "dark green" and "dark
+	turquoise" (Bug#6332).
+
+2010-06-03  Eric Ludlam  <zappo@gnu.org>
+
+	* cedet/semantic/lex-spp.el
+	(semantic-lex-spp-table-write-slot-value): Instead of erroring on
+	invalid values during save, just save a nil (Bug#6324).
+
+2010-06-03  Glenn Morris  <rgm@gnu.org>
+
+	* desktop.el (desktop-clear-preserve-buffers):
+	Add "*Warnings*" buffer.  (Bug#6336)
+
+2010-06-02  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* vc-dir.el (vc-dir-update): Remove entries with a nil state (bug#5539).
+
+2010-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* vc-bzr.el (vc-bzr-revision-completion-table): Apply
+	`file-directory-p' to the filename part rather than to the whole text.
+
+2010-05-31  Jonathan Marchand  <jonathlela@gmail.com>  (tiny change)
+
+	* cedet/ede/cpp-root.el (ede-set-project-variables): Fix feature name
+	(bug#6231).
+
+2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* man.el (Man-completion-table): Let the user type "-k " (bug#6319).
+
+2010-05-31  Drew Adams  <drew.adams@oracle.com>
+
+	* files.el (directory-files-no-dot-files-regexp): Doc fix (bug#6298).
+
+2010-05-31  Juanma Barranquero  <lekktu@gmail.com>
+
+	* subr.el (momentary-string-display): Just use read-event to read
+	the exit event (Bug#6238).
+
+2010-05-29  Chong Yidong  <cyd@stupidchicken.com>
+
+	* ansi-color.el: Delete unused escape sequences (Bug#6085).
+	(ansi-color-drop-regexp): New constant.
+	(ansi-color-apply, ansi-color-filter-region)
+	(ansi-color-apply-on-region): Delete unrecognized control sequences.
+	(ansi-color-apply): Build string list before calling concat.
+
+2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
+
+	* progmodes/verilog-mode.el (verilog-type-font-keywords):
+	Use font-lock-constant-face, not obsolete font-lock-reference-face.
+
+2010-05-27  Masatake YAMATO  <yamato@redhat.com>
+
+	* htmlfontify.el (hfy-face-resolve-face): New function.
+	(hfy-face-to-style): Use it (Bug#6279).
+
+2010-05-25  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* epa.el (epa--select-keys): Don't explicitly delete the window since
+	that can fail (e.g. sole window in frame).  Use dedication instead.
+
+2010-05-19  Uday S Reddy  <u.s.reddy@cs.bham.ac.uk>  (tiny change)
+
+	* textmodes/fill.el (fill-region): Don't fill past the end (bug#6201).
+
+2010-05-18  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* subr.el (read-quoted-char): Resolve modifiers after key
+	remapping (bug#6212).
+
+2010-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* tmm.el (tmm-prompt): Don't try to precompute bindings.
+	(tmm-get-keymap): Compute shortcuts (bug#6171).
+
 2010-05-10  Glenn Morris  <rgm@gnu.org>
 
 	* desktop.el (desktop-save-buffer-p): Don't mistakenly include
@@ -22,7 +370,7 @@
 	* composite.el (compose-region, reference-point-alist): Fix typos
 	in the doc strings.
 
-2010-04-28  Alexander Klimov <alserkli@inbox.ru> (tiny change)
+2010-04-28  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 
 	* calc/calc-graph.el (calc-graph-plot): Use the proper form for
 	gnuplot's "set" command.
@@ -344,7 +692,7 @@
 
 	* files.el (auto-mode-alist): Accept more verilog file patterns.
 
-2010-03-09  Miles Bader  <miles@gnu.org>>
+2010-03-09  Miles Bader  <miles@gnu.org>
 
 	* vc-git.el (vc-git-print-log): Use "tformat:" for shortlog,
 	instead of "format:"; this ensures that the output is
--- a/lisp/ansi-color.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/ansi-color.el	Tue Jul 27 16:01:48 2010 +0900
@@ -142,6 +142,10 @@
 (defconst ansi-color-regexp "\033\\[\\([0-9;]*m\\)"
   "Regexp that matches SGR control sequences.")
 
+(defconst ansi-color-drop-regexp
+  "\033\\[\\([ABCDsuK]\\|2J\\|=[0-9]+[hI]\\|[0-9;]*[Hf]\\)"
+  "Regexp that matches ANSI control sequences to silently drop.")
+
 (defconst ansi-color-parameter-regexp "\\([0-9]*\\)[m;]"
   "Regexp that matches SGR control sequence parameters.")
 
@@ -154,7 +158,7 @@
 If nil, do nothing.
 If the symbol `filter', then filter all SGR control sequences.
 If anything else (such as t), then translate SGR control sequences
-into text-properties.
+into text properties.
 
 In order for this to have any effect, `ansi-color-process-output' must
 be in `comint-output-filter-functions'.
@@ -188,12 +192,12 @@
 
 ;;;###autoload
 (defun ansi-color-process-output (ignored)
-  "Maybe translate SGR control sequences of comint output into text-properties.
+  "Maybe translate SGR control sequences of comint output into text properties.
 
 Depending on variable `ansi-color-for-comint-mode' the comint output is
 either not processed, SGR control sequences are filtered using
 `ansi-color-filter-region', or SGR control sequences are translated into
-text-properties using `ansi-color-apply-on-region'.
+text properties using `ansi-color-apply-on-region'.
 
 The comint output is assumed to lie between the marker
 `comint-last-output-start' and the process-mark.
@@ -217,15 +221,15 @@
 (defun ansi-color-unfontify-region (beg end &rest xemacs-stuff)
   "Replacement function for `font-lock-default-unfontify-region'.
 
-As text-properties are implemented using extents in XEmacs, this
+As text properties are implemented using extents in XEmacs, this
 function is probably not needed.  In Emacs, however, things are a bit
 different: When font-lock is active in a buffer, you cannot simply add
-face text-properties to the buffer.  Font-lock will remove the face
-text-property using `font-lock-unfontify-region-function'.  If you want
+face text properties to the buffer.  Font-lock will remove the face
+text property using `font-lock-unfontify-region-function'.  If you want
 to insert the strings returned by `ansi-color-apply' into such buffers,
 you must set `font-lock-unfontify-region-function' to
 `ansi-color-unfontify-region'.  This function will not remove all face
-text-properties unconditionally.  It will keep the face text-properties
+text properties unconditionally.  It will keep the face text properties
 if the property `ansi-color' is set.
 
 The region from BEG to END is unfontified.  XEMACS-STUFF is ignored.
@@ -262,7 +266,7 @@
 (make-variable-buffer-local 'ansi-color-context)
 
 (defun ansi-color-filter-apply (string)
-  "Filter out all SGR control sequences from STRING.
+  "Filter out all ANSI control sequences from STRING.
 
 Every call to this function will set and use the buffer-local variable
 `ansi-color-context' to save partial escape sequences.  This information
@@ -292,10 +296,11 @@
     result))
 
 (defun ansi-color-apply (string)
-  "Translates SGR control sequences into text-properties.
+  "Translates SGR control sequences into text properties.
+Delete all other control sequences without processing them.
 
 Applies SGR control sequences setting foreground and background colors
-to STRING using text-properties and returns the result.  The colors used
+to STRING using text properties and returns the result.  The colors used
 are given in `ansi-color-faces-vector' and `ansi-color-names-vector'.
 See function `ansi-color-apply-sequence' for details.
 
@@ -309,23 +314,27 @@
 You cannot insert the strings returned into buffers using font-lock.
 See `ansi-color-unfontify-region' for a way around this."
   (let ((face (car ansi-color-context))
-	(start 0) end escape-sequence result)
-    ;; if context was saved and is a string, prepend it
+	(start 0) end escape-sequence result
+	colorized-substring)
+    ;; If context was saved and is a string, prepend it.
     (if (cadr ansi-color-context)
         (setq string (concat (cadr ansi-color-context) string)
               ansi-color-context nil))
-    ;; find the next escape sequence
+    ;; Find the next escape sequence.
     (while (setq end (string-match ansi-color-regexp string start))
-      ;; store escape sequence
       (setq escape-sequence (match-string 1 string))
-      ;; colorize the old block from start to end using old face
+      ;; Colorize the old block from start to end using old face.
       (when face
 	(put-text-property start end 'ansi-color t string)
 	(put-text-property start end 'face face string))
-      (setq result (concat result (substring string start end))
+      (setq colorized-substring (substring string start end)
 	    start (match-end 0))
-      ;; create new face by applying all the parameters in the escape
-      ;; sequence
+      ;; Eliminate unrecognized ANSI sequences.
+      (while (string-match ansi-color-drop-regexp colorized-substring)
+	(setq colorized-substring
+	      (replace-match "" nil nil colorized-substring)))
+      (push colorized-substring result)
+      ;; Create new face, by applying escape sequence parameters.
       (setq face (ansi-color-apply-sequence escape-sequence face)))
     ;; if the rest of the string should have a face, put it there
     (when face
@@ -335,13 +344,13 @@
     (let (fragment)
       (if (string-match "\033" string start)
 	  (let ((pos (match-beginning 0)))
-	    (setq fragment (substring string pos)
-		  result (concat result (substring string start pos))))
-	(setq result (concat result (substring string start))))
+	    (setq fragment (substring string pos))
+	    (push (substring string start pos) result))
+	(push (substring string start) result))
       (if (or face fragment)
 	  (setq ansi-color-context (list face fragment))
 	(setq ansi-color-context nil)))
-    result))
+    (apply 'concat (nreverse result))))
 
 ;; Working with regions
 
@@ -354,7 +363,7 @@
 (make-variable-buffer-local 'ansi-color-context-region)
 
 (defun ansi-color-filter-region (begin end)
-  "Filter out all SGR control sequences from region BEGIN to END.
+  "Filter out all ANSI control sequences from region BEGIN to END.
 
 Every call to this function will set and use the buffer-local variable
 `ansi-color-context-region' to save position.  This information will be
@@ -365,23 +374,27 @@
 	(start (or (cadr ansi-color-context-region) begin)))
     (save-excursion
       (goto-char start)
-      ;; find the next escape sequence
-      (while (re-search-forward ansi-color-regexp end-marker t)
-	;; delete the escape sequence
+      ;; Delete unrecognized escape sequences.
+      (while (re-search-forward ansi-color-drop-regexp end-marker t)
         (replace-match ""))
-    ;; save context, add the remainder of the string to the result
-    (if (re-search-forward "\033" end-marker t)
-	(setq ansi-color-context-region (list nil (match-beginning 0)))
-      (setq ansi-color-context-region nil)))))
+      (goto-char start)
+      ;; Delete SGR escape sequences.
+      (while (re-search-forward ansi-color-regexp end-marker t)
+        (replace-match ""))
+      ;; save context, add the remainder of the string to the result
+      (if (re-search-forward "\033" end-marker t)
+	  (setq ansi-color-context-region (list nil (match-beginning 0)))
+	(setq ansi-color-context-region nil)))))
 
 (defun ansi-color-apply-on-region (begin end)
   "Translates SGR control sequences into overlays or extents.
+Delete all other control sequences without processing them.
 
-Applies SGR control sequences setting foreground and background colors
-to text in region between BEGIN and END using extents or overlays.
-Emacs will use overlays, XEmacs will use extents.  The colors used are
-given in `ansi-color-faces-vector' and `ansi-color-names-vector'.  See
-function `ansi-color-apply-sequence' for details.
+SGR control sequences are applied by setting foreground and
+background colors to the text between BEGIN and END using
+overlays.  The colors used are given in `ansi-color-faces-vector'
+and `ansi-color-names-vector'.  See `ansi-color-apply-sequence'
+for details.
 
 Every call to this function will set and use the buffer-local variable
 `ansi-color-context-region' to save position and current face.  This
@@ -394,11 +407,16 @@
 			  (copy-marker begin)))
 	(end-marker (copy-marker end))
 	escape-sequence)
+    ;; First, eliminate unrecognized ANSI control sequences.
     (save-excursion
       (goto-char start-marker)
-      ;; find the next escape sequence
+      (while (re-search-forward ansi-color-drop-regexp end-marker t)
+	(replace-match "")))
+    (save-excursion
+      (goto-char start-marker)
+      ;; Find the next SGR sequence.
       (while (re-search-forward ansi-color-regexp end-marker t)
-	;; colorize the old block from start to end using old face
+	;; Colorize the old block from start to end using old face.
 	(when face
 	  (ansi-color-set-extent-face
 	   (ansi-color-make-extent start-marker (match-beginning 0))
--- a/lisp/arc-mode.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/arc-mode.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1791,9 +1791,13 @@
       (archive-*-extract archive name archive-zip-extract)
     (archive-extract-by-stdout
      archive
-     ;; unzip expands wildcards in NAME, so we need to quote it.
+     ;; unzip expands wildcards in NAME, so we need to quote it.  But
+     ;; not on DOS/Windows, since that fails extraction on those
+     ;; systems, and file names with wildcards in zip archives don't
+     ;; work there anyway.
      ;; FIXME: Does pkunzip need similar treatment?
-     (if (equal (car archive-zip-extract) "unzip")
+     (if (and (not (memq system-type '(windows-nt ms-dos)))
+	      (equal (car archive-zip-extract) "unzip"))
 	 (shell-quote-argument name)
        name)
      archive-zip-extract)))
--- a/lisp/bookmark.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/bookmark.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1854,8 +1854,7 @@
         (pop-up-windows t))
     (delete-other-windows)
     (switch-to-buffer (other-buffer))
-    (let ((bookmark-automatically-show-annotations nil)) ;FIXME: needed?
-      (bookmark--jump-via bmrk 'pop-to-buffer))
+    (bookmark--jump-via bmrk 'pop-to-buffer)
     (bury-buffer menu)))
 
 
@@ -1869,8 +1868,7 @@
   "Select this line's bookmark in other window, leaving bookmark menu visible."
   (interactive)
   (let ((bookmark (bookmark-bmenu-bookmark)))
-    (let ((bookmark-automatically-show-annotations t)) ;FIXME: needed?
-      (bookmark--jump-via bookmark 'switch-to-buffer-other-window))))
+    (bookmark--jump-via bookmark 'switch-to-buffer-other-window)))
 
 
 (defun bookmark-bmenu-switch-other-window ()
@@ -1881,8 +1879,7 @@
         (pop-up-windows t)
         same-window-buffer-names
         same-window-regexps)
-    (let ((bookmark-automatically-show-annotations t)) ;FIXME: needed?
-      (bookmark--jump-via bookmark 'display-buffer))))
+    (bookmark--jump-via bookmark 'display-buffer)))
 
 (defun bookmark-bmenu-other-window-with-mouse (event)
   "Select bookmark at the mouse pointer in other window, leaving bookmark menu visible."
--- a/lisp/bs.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/bs.el	Tue Jul 27 16:01:48 2010 +0900
@@ -195,7 +195,7 @@
 	     'font-lock-constant-face
 	   'font-lock-comment-face))
    ;; Dired-Buffers
-   '("^..\\(.*Dired by .*\\)$" 1 font-lock-function-name-face)
+   '("^..\\(.*Dired .*\\)$" 1 font-lock-function-name-face)
    ;; the star for modified buffers
    '("^.\\(\\*\\) +[^\\*]"     1 font-lock-comment-face))
   "Default font lock expressions for Buffer Selection Menu.")
--- a/lisp/calendar/appt.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/calendar/appt.el	Tue Jul 27 16:01:48 2010 +0900
@@ -183,16 +183,25 @@
 (defconst appt-buffer-name "*appt-buf*"
   "Name of the appointments buffer.")
 
+;; TODO Turn this into an alist?  It would be easier to add more
+;; optional elements.
+;; TODO There should be a way to set WARNTIME (and other properties)
+;; from the diary-file.  Implementing that would be a good reason
+;; to change this to an alist.
 (defvar appt-time-msg-list nil
   "The list of appointments for today.
 Use `appt-add' and `appt-delete' to add and delete appointments.
 The original list is generated from today's `diary-entries-list', and
 can be regenerated using the function `appt-check'.
-Each element of the generated list has the form (MINUTES STRING [FLAG]); where
-MINUTES is the time in minutes of the appointment after midnight, and
-STRING is the description of the appointment.
-FLAG, if non-nil, says that the element was made with `appt-add'
-so calling `appt-make-list' again should preserve it.")
+Each element of the generated list has the form
+\(MINUTES STRING [FLAG] [WARNTIME])
+where MINUTES is the time in minutes of the appointment after midnight,
+and STRING is the description of the appointment.
+FLAG and WARNTIME can only be present if the element was made
+with `appt-add'.  A non-nil FLAG indicates that the element was made
+with `appt-add', so calling `appt-make-list' again should preserve it.
+If WARNTIME is non-nil, it is an integer to use in place
+of `appt-message-warning-time'.")
 
 (defconst appt-max-time (1- (* 24 60))
   "11:59pm in minutes - number of minutes in a day minus 1.")
@@ -313,7 +322,7 @@
               (zerop (mod prev-appt-display-count appt-display-interval))))
          ;; Non-nil means only update the interval displayed in the mode line.
          (mode-line-only (unless full-check appt-now-displayed))
-         now cur-comp-time appt-comp-time)
+         now cur-comp-time appt-comp-time appt-warn-time)
     (when (or full-check mode-line-only)
       (save-excursion
         ;; Convert current time to minutes after midnight (12.01am = 1).
@@ -353,6 +362,8 @@
         ;; calculate the number of minutes until the appointment.
         (when (and appt-issue-message appt-time-msg-list)
           (setq appt-comp-time (caar (car appt-time-msg-list))
+                appt-warn-time (or (nth 3 (car appt-time-msg-list))
+                                   appt-message-warning-time)
                 min-to-app (- appt-comp-time cur-comp-time))
           (while (and appt-time-msg-list
                       (< appt-comp-time cur-comp-time))
@@ -360,21 +371,21 @@
             (if appt-time-msg-list
                 (setq appt-comp-time (caar (car appt-time-msg-list)))))
           ;; If we have an appointment between midnight and
-          ;; `appt-message-warning-time' minutes after midnight, we
+          ;; `appt-warn-time' minutes after midnight, we
           ;; must begin to issue a message before midnight.  Midnight
           ;; is considered 0 minutes and 11:59pm is 1439
           ;; minutes.  Therefore we must recalculate the minutes to
           ;; appointment variable.  It is equal to the number of
           ;; minutes before midnight plus the number of minutes after
           ;; midnight our appointment is.
-          (if (and (< appt-comp-time appt-message-warning-time)
-                   (> (+ cur-comp-time appt-message-warning-time)
+          (if (and (< appt-comp-time appt-warn-time)
+                   (> (+ cur-comp-time appt-warn-time)
                       appt-max-time))
               (setq min-to-app (+ (- (1+ appt-max-time) cur-comp-time)
                                   appt-comp-time)))
           ;; Issue warning if the appointment time is within
           ;; appt-message-warning time.
-          (when (and (<= min-to-app appt-message-warning-time)
+          (when (and (<= min-to-app appt-warn-time)
                      (>= min-to-app 0))
             (setq appt-now-displayed t
                   appt-display-count (1+ prev-appt-display-count))
@@ -470,14 +481,28 @@
   "[0-9]?[0-9]\\(h\\([0-9][0-9]\\)?\\|[:.][0-9][0-9]\\)\\(am\\|pm\\)?")
 
 ;;;###autoload
-(defun appt-add (new-appt-time new-appt-msg)
-  "Add an appointment for today at NEW-APPT-TIME with message NEW-APPT-MSG.
-The time should be in either 24 hour format or am/pm format."
-  (interactive "sTime (hh:mm[am/pm]): \nsMessage: ")
-  (unless (string-match appt-time-regexp new-appt-time)
+(defun appt-add (time msg &optional warntime)
+  "Add an appointment for today at TIME with message MSG.
+The time should be in either 24 hour format or am/pm format.
+Optional argument WARNTIME is an integer (or string) giving the number
+of minutes before the appointment at which to start warning.
+The default is `appt-message-warning-time'."
+  (interactive "sTime (hh:mm[am/pm]): \nsMessage: 
+sMinutes before the appointment to start warning: ")
+  (unless (string-match appt-time-regexp time)
     (error "Unacceptable time-string"))
-  (let ((time-msg (list (list (appt-convert-time new-appt-time))
-                        (concat new-appt-time " " new-appt-msg) t)))
+  (and (stringp warntime)
+       (setq warntime (unless (string-equal warntime "")
+                        (string-to-number warntime))))
+  (and warntime
+       (not (integerp warntime))
+       (error "Argument WARNTIME must be an integer, or nil"))
+  (let ((time-msg (list (list (appt-convert-time time))
+                        (concat time " " msg) t)))
+    ;; It is presently non-sensical to have multiple warnings about
+    ;; the same appointment with just different delays, but it might
+    ;; not always be so.  TODO
+    (if warntime (setq time-msg (append time-msg (list warntime))))
     (unless (member time-msg appt-time-msg-list)
       (setq appt-time-msg-list
             (appt-sort-list (nconc appt-time-msg-list (list time-msg)))))))
--- a/lisp/calendar/cal-tex.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/calendar/cal-tex.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,7 @@
 ;;; cal-tex.el --- calendar functions for printing calendars with LaTeX
 
-;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+;;   2009, 2010  Free Software Foundation, Inc.
 
 ;; Author: Steve Fisk <fisk@bowdoin.edu>
 ;;         Edward M. Reingold <reingold@cs.uiuc.edu>
@@ -507,6 +507,7 @@
          (year (calendar-extract-year date))
          (end-month month)
          (end-year year)
+         ;; FIXME -landscape sets cal-tex-which-days?
          (d1 (calendar-absolute-from-gregorian (list month 1 year)))
          (d2 (progn
                (calendar-increment-month end-month end-year (1- n))
@@ -515,8 +516,7 @@
                       (calendar-last-day-of-month end-month end-year)
                       end-year))))
          (diary-list (if cal-tex-diary (cal-tex-list-diary-entries d1 d2)))
-         (holidays (if cal-tex-holidays (cal-tex-list-holidays d1 d2)))
-         other-month other-year)
+         (holidays (if cal-tex-holidays (cal-tex-list-holidays d1 d2))))
     (cal-tex-insert-preamble (cal-tex-number-weeks month year n) nil "12pt")
     (if (> n 1)
         (cal-tex-cmd cal-tex-cal-multi-month)
@@ -526,14 +526,12 @@
     (cal-tex-nl ".2cm")
     (cal-tex-insert-blank-days month year cal-tex-day-prefix)
     (dotimes (idummy n)
-      (setq other-month month
-            other-year year)
       (cal-tex-insert-days month year diary-list holidays cal-tex-day-prefix)
-      (when (= 6 (mod (calendar-absolute-from-gregorian
-                       (list month
-                             (calendar-last-day-of-month month year)
-                             year))
-                      7))           ; last day of month was Saturday
+      (when (= (calendar-week-end-day)
+               (calendar-day-of-week
+                (list month
+                      (calendar-last-day-of-month month year)
+                      year))) ; last day of month was last day of week
         (cal-tex-hfill)
         (cal-tex-nl))
       (calendar-increment-month month year 1))
@@ -570,13 +568,14 @@
 
 (defun cal-tex-insert-day-names ()
   "Insert the names of the days at top of a monthly calendar."
-  (dotimes (i 7)
-    (if (memq i cal-tex-which-days)
-        (insert (format cal-tex-day-name-format
-                        (cal-tex-LaTeXify-string
-                         (aref calendar-day-name-array
-                               (mod (+ calendar-week-start-day i) 7))))))
-    (cal-tex-comment)))
+  (let (j)
+    (dotimes (i 7)
+      (if (memq (setq j (mod (+ calendar-week-start-day i) 7))
+                cal-tex-which-days)
+          (insert (format cal-tex-day-name-format
+                          (cal-tex-LaTeXify-string
+                           (aref calendar-day-name-array j)))))
+      (cal-tex-comment))))
 
 (defun cal-tex-insert-month-header (n month year end-month end-year)
   "Create a title for a calendar.
@@ -603,7 +602,7 @@
                  calendar-week-start-day)
               7)))
         (dotimes (i blank-days)
-          (if (memq i cal-tex-which-days)
+          (if (memq (mod (+ calendar-week-start-day i) 7) cal-tex-which-days)
               (insert (format day-format " " " ") "{}{}{}{}%\n"))))))
 
 (defun cal-tex-insert-blank-days-at-end (month year day-format)
@@ -619,38 +618,37 @@
                7))
              (i blank-days))
         (while (<= (setq i (1+ i)) 6)
-          (if (memq i cal-tex-which-days)
+          (if (memq (mod (+ calendar-week-start-day i) 7) cal-tex-which-days)
               (insert (format day-format "" "") "{}{}{}{}%\n"))))))
 
 (defun cal-tex-first-blank-p (month year)
   "Determine if any days of the first week will be printed.
 Return t if there will there be any days of the first week printed
 in the calendar starting in MONTH YEAR."
-  (let (any-days the-saturday)        ; the day of week of 1st Saturday
-    (dotimes (i 7)
-      (if (= 6 (calendar-day-of-week (list month (1+ i) year)))
-          (setq the-saturday (1+ i))))
-    (dotimes (i the-saturday)
-      (if (memq (calendar-day-of-week (list month (1+ i) year))
-                cal-tex-which-days)
-          (setq any-days t)))
-    any-days))
+  ;; Check days 1-7 of the month, until we find the last day of the week.
+  (catch 'found
+    (let (dow)
+      (dotimes (i 7)
+        (if (memq (setq dow (calendar-day-of-week (list month (1+ i) year)))
+                  cal-tex-which-days)
+            (throw 'found t)
+          (if (= dow (calendar-week-end-day)) (throw 'found nil)))))))
 
 (defun cal-tex-last-blank-p (month year)
   "Determine if any days of the last week will be printed.
 Return t if there will there be any days of the last week printed
 in the calendar starting in MONTH YEAR."
-  (let* ((last-day (calendar-last-day-of-month month year))
-         (i (- last-day 7))
-         any-days the-sunday)          ; the day of week of last Sunday
-    (while (<= (setq i (1+ i)) last-day)
-      (if (zerop (calendar-day-of-week (list month i year)))
-          (setq the-sunday i)))
-    (setq i (1- the-sunday))
-    (while (<= (setq i (1+ i)) last-day)
-      (if (memq (calendar-day-of-week (list month i year)) cal-tex-which-days)
-          (setq any-days t)))
-    any-days))
+  ;; Check backwards from the last day of the month, until we find the
+  ;; start of the last week in the month.
+  (catch 'found
+    (let ((last-day (calendar-last-day-of-month month year))
+          day dow)
+      (dotimes (i 7)
+        (if (memq (setq dow (calendar-day-of-week
+                             (list month (- last-day i) year)))
+                  cal-tex-which-days)
+            (throw 'found t)
+          (if (= dow calendar-week-start-day) (throw 'found nil)))))))
 
 (defun cal-tex-number-weeks (month year n)
   "Determine the number of weeks in a range of dates.
@@ -1499,7 +1497,7 @@
           (- (calendar-day-of-week (list month 1 year))
              calendar-week-start-day)
           7))
-        (last (calendar-last-day-of-month month year))
+        (last( calendar-last-day-of-month month year))
         (str (concat "\\def\\" name "{\\hbox to" width "{%\n"
                      "\\vbox to" height "{%\n"
                      "\\vfil  \\hbox to" width "{%\n"
--- a/lisp/calendar/calendar.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/calendar/calendar.el	Tue Jul 27 16:01:48 2010 +0900
@@ -2226,6 +2226,10 @@
 interpreted as BC; -1 being 1 BC, and so on."
   (mod (calendar-absolute-from-gregorian date) 7))
 
+(defun calendar-week-end-day ()
+  "Return the index (0 for Sunday, etc.) of the last day of the week."
+  (mod (+ calendar-week-start-day 6) 7))
+
 (defun calendar-unmark ()
   "Delete all diary/holiday marks/highlighting from the calendar."
   (interactive)
--- a/lisp/cedet/ede/cpp-root.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/cedet/ede/cpp-root.el	Tue Jul 27 16:01:48 2010 +0900
@@ -467,7 +467,7 @@
   "Set variables local to PROJECT in BUFFER.
 Also set up the lexical preprocessor map."
   (call-next-method)
-  (when (and (featurep 'semantic/c) (featurep 'semantic/lex-spp))
+  (when (and (featurep 'semantic/bovine/c) (featurep 'semantic/lex-spp))
     (setq semantic-lex-spp-project-macro-symbol-obarray
 	  (semantic-lex-make-spp-table (oref project spp-table)))
     ))
--- a/lisp/cedet/semantic/db-file.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/cedet/semantic/db-file.el	Tue Jul 27 16:01:48 2010 +0900
@@ -277,7 +277,7 @@
 
 (defmethod object-write ((obj semanticdb-table))
   "When writing a table, we have to make sure we deoverlay it first.
-Restore the overlays after writting.
+Restore the overlays after writing.
 Argument OBJ is the object to write."
   (when (semanticdb-live-p obj)
     (when (semanticdb-in-buffer-p obj)
--- a/lisp/cedet/semantic/lex-spp.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/cedet/semantic/lex-spp.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1121,37 +1121,31 @@
       (prin1 (car sym))
       (let* ((first (car (cdr sym)))
 	     (rest (cdr sym)))
-	(when (not (listp first))
-	  (error "Error in macro \"%s\"" (car sym)))
-	(when (eq (car first) 'spp-arg-list)
-	  (princ " ")
-	  (prin1 first)
-	  (setq rest (cdr rest))
-	  )
+	(if (not (listp first))
+	    (insert "nil ;; bogus macro found.\n")
+	  (when (eq (car first) 'spp-arg-list)
+	    (princ " ")
+	    (prin1 first)
+	    (setq rest (cdr rest)))
 
-	(when rest
-	  (princ " . ")
-	  (let ((len (length (cdr rest))))
-	    (cond ((< len 2)
-		   (condition-case nil
-		       (prin1 rest)
-		     (error
-		      (princ "nil ;; Error writing macro\n"))))
-		  ((< len semantic-lex-spp-macro-max-length-to-save)
-		   (princ "\n              ")
-		   (condition-case nil
-		       (prin1 rest)
-		     (error
-		      (princ "nil ;; Error writing macro\n          ")))
-		   )
-		  (t ;; Too Long!
-		   (princ "nil ;; Too Long!\n          ")
-		   ))))
-	)
-      (princ ")\n          ")
-      )
-    (princ ")\n"))
-)
+	  (when rest
+	    (princ " . ")
+	    (let ((len (length (cdr rest))))
+	      (cond ((< len 2)
+		     (condition-case nil
+			 (prin1 rest)
+		       (error
+			(princ "nil ;; Error writing macro\n"))))
+		    ((< len semantic-lex-spp-macro-max-length-to-save)
+		     (princ "\n              ")
+		     (condition-case nil
+			 (prin1 rest)
+		       (error
+			(princ "nil ;; Error writing macro\n          "))))
+		    (t ;; Too Long!
+		     (princ "nil ;; Too Long!\n          ")))))))
+      (princ ")\n          "))
+    (princ ")\n")))
 
 ;;; MACRO TABLE DEBUG
 ;;
--- a/lisp/comint.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/comint.el	Tue Jul 27 16:01:48 2010 +0900
@@ -696,7 +696,9 @@
 STARTFILE is the name of a file, whose contents are sent to the
 process as its initial input.
 
-If PROGRAM is a string, any more args are arguments to PROGRAM."
+If PROGRAM is a string, any more args are arguments to PROGRAM.
+
+Returns the (possibly newly created) process buffer."
   (or (fboundp 'start-file-process)
       (error "Multi-processing is not supported for this system"))
   (setq buffer (get-buffer-create (or buffer (concat "*" name "*"))))
@@ -720,7 +722,9 @@
 STARTFILE is the name of a file, whose contents are sent to the
 process as its initial input.
 
-If PROGRAM is a string, any more args are arguments to PROGRAM."
+If PROGRAM is a string, any more args are arguments to PROGRAM.
+
+Returns the (possibly newly created) process buffer."
   (apply #'make-comint-in-buffer name nil program startfile switches))
 
 ;;;###autoload
--- a/lisp/descr-text.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/descr-text.el	Tue Jul 27 16:01:48 2010 +0900
@@ -301,7 +301,7 @@
 				   (lambda (arg)
 				     (string (string-to-number arg 16)))
 				   parts " "))
-		      (concat info parts))))
+		      (concat info (if info " ") parts))))
 	       (list "Decimal digit value"
 		     (nth 5 fields))
 	       (list "Digit value"
@@ -426,7 +426,7 @@
         ;; When the composition is trivial (i.e. composed only with the
         ;; current character itself without any alternate characters),
         ;; we don't show the composition information.  Otherwise, store
-        ;; two descriptive strings in the first two elments of
+        ;; two descriptive strings in the first two elements of
         ;; COMPOSITION.
         (or (catch 'tag
               (let ((from (car composition))
--- a/lisp/desktop.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/desktop.el	Tue Jul 27 16:01:48 2010 +0900
@@ -303,10 +303,12 @@
   :version "22.1")
 
 (defcustom desktop-clear-preserve-buffers
-  '("\\*scratch\\*" "\\*Messages\\*" "\\*server\\*" "\\*tramp/.+\\*")
+  '("\\*scratch\\*" "\\*Messages\\*" "\\*server\\*" "\\*tramp/.+\\*"
+    "\\*Warnings\\*")
   "List of buffers that `desktop-clear' should not delete.
 Each element is a regular expression.  Buffers with a name matched by any of
 these won't be deleted."
+  :version "23.3"                       ; added Warnings - bug#6336
   :type '(repeat string)
   :group 'desktop)
 
--- a/lisp/dired.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/dired.el	Tue Jul 27 16:01:48 2010 +0900
@@ -2227,31 +2227,33 @@
 ;; Keeping Dired buffers in sync with the filesystem and with each other
 
 (defun dired-buffers-for-dir (dir &optional file)
-;; Return a list of buffers that dired DIR (top level or in-situ subdir).
+;; Return a list of buffers for DIR (top level or in-situ subdir).
 ;; If FILE is non-nil, include only those whose wildcard pattern (if any)
 ;; matches FILE.
 ;; The list is in reverse order of buffer creation, most recent last.
 ;; As a side effect, killed dired buffers for DIR are removed from
 ;; dired-buffers.
   (setq dir (file-name-as-directory dir))
-  (let ((alist dired-buffers) result elt buf)
-    (while alist
-      (setq elt (car alist)
-	    buf (cdr elt))
-      (if (buffer-name buf)
-	  (if (dired-in-this-tree dir (car elt))
-	      (with-current-buffer buf
-		(and (assoc dir dired-subdir-alist)
-		     (or (null file)
-			 (let ((wildcards
-				(file-name-nondirectory dired-directory)))
-			   (or (= 0 (length wildcards))
-			       (string-match (dired-glob-regexp wildcards)
-					     file))))
-		     (setq result (cons buf result)))))
-	;; else buffer is killed - clean up:
+  (let (result buf)
+    (dolist (elt dired-buffers)
+      (setq buf (cdr elt))
+      (cond
+       ((null (buffer-name buf))
+	;; Buffer is killed - clean up:
 	(setq dired-buffers (delq elt dired-buffers)))
-      (setq alist (cdr alist)))
+       ((dired-in-this-tree dir (car elt))
+	(with-current-buffer buf
+	  (and (assoc dir dired-subdir-alist)
+	       (or (null file)
+		   (if (stringp dired-directory)
+		       (let ((wildcards (file-name-nondirectory
+					 dired-directory)))
+			 (or (= 0 (length wildcards))
+			     (string-match (dired-glob-regexp wildcards)
+					   file)))
+		     (member (expand-file-name file dir)
+			     (cdr dired-directory))))
+	       (setq result (cons buf result)))))))
     result))
 
 (defun dired-glob-regexp (pattern)
--- a/lisp/dnd.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/dnd.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1,8 +1,9 @@
-;;; dnd.el --- drag and drop support.
+;;; dnd.el --- drag and drop support.  -*- coding: utf-8 -*-
 
-;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
+;;   Free Software Foundation, Inc.
 
-;; Author: Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+;; Author: Jan Djärv <jan.h.d@swipnet.se>
 ;; Maintainer: FSF
 ;; Keywords: window, drag, drop
 
--- a/lisp/emacs-lisp/advice.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/emacs-lisp/advice.el	Tue Jul 27 16:01:48 2010 +0900
@@ -2684,6 +2684,8 @@
       ;; because `byte-compile' uses `fset':
       (ad-with-auto-activation-disabled
        (require 'bytecomp)
+       (require 'warnings)              ;To define warning-suppress-types
+                                        ;before we let-bind it.
        (let ((symbol (make-symbol "advice-compilation"))
 	     (byte-compile-warnings byte-compile-warnings)
              ;; Don't pop up windows showing byte-compiler warnings.
--- a/lisp/emacs-lisp/bytecomp.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/emacs-lisp/bytecomp.el	Tue Jul 27 16:01:48 2010 +0900
@@ -353,7 +353,7 @@
 (defvar byte-compile-interactive-only-functions
   '(beginning-of-buffer end-of-buffer replace-string replace-regexp
     insert-file insert-buffer insert-file-literally previous-line next-line
-    goto-line comint-run)
+    goto-line comint-run delete-backward-char)
   "List of commands that are not meant to be called from Lisp.")
 
 (defvar byte-compile-not-obsolete-vars nil
--- a/lisp/emacs-lisp/cl-loaddefs.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/emacs-lisp/cl-loaddefs.el	Tue Jul 27 16:01:48 2010 +0900
@@ -282,7 +282,7 @@
 ;;;;;;  flet progv psetq do-all-symbols do-symbols dotimes dolist
 ;;;;;;  do* do loop return-from return block etypecase typecase ecase
 ;;;;;;  case load-time-value eval-when destructuring-bind function*
-;;;;;;  defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "273ba25f4a116c61a464dbe55f1f8c63")
+;;;;;;  defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "49b7d96626dd8ba5d39551909edbd4c7")
 ;;; Generated autoloads from cl-macs.el
 
 (autoload 'gensym "cl-macs" "\
--- a/lisp/emacs-lisp/cl-macs.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/emacs-lisp/cl-macs.el	Tue Jul 27 16:01:48 2010 +0900
@@ -432,7 +432,7 @@
 ;;;###autoload
 (defmacro destructuring-bind (args expr &rest body)
   (let* ((bind-lets nil) (bind-forms nil) (bind-inits nil)
-	 (bind-defs nil) (bind-block 'cl-none))
+	 (bind-defs nil) (bind-block 'cl-none) (bind-enquote nil))
     (cl-do-arglist (or args '(&aux)) expr)
     (append '(progn) bind-inits
 	    (list (nconc (list 'let* (nreverse bind-lets))
--- a/lisp/emacs-lisp/rx.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/emacs-lisp/rx.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1053,9 +1053,6 @@
      like `and', but makes the match accessible with `match-end',
      `match-beginning', and `match-string'.
 
-`(group SEXP1 SEXP2 ...)'
-     another name for `submatch'.
-
 `(or SEXP1 SEXP2 ...)'
 `(| SEXP1 SEXP2 ...)'
      matches anything that matches SEXP1 or SEXP2, etc.  If all
--- a/lisp/emulation/cua-base.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/emulation/cua-base.el	Tue Jul 27 16:01:48 2010 +0900
@@ -4,7 +4,7 @@
 ;;   2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 ;; Author: Kim F. Storm <storm@cua.dk>
-;; Keywords: keyboard emulation convenience cua
+;; Keywords: keyboard emulations convenience cua
 
 ;; This file is part of GNU Emacs.
 
--- a/lisp/emulation/cua-rect.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/emulation/cua-rect.el	Tue Jul 27 16:01:48 2010 +0900
@@ -231,7 +231,7 @@
     (move-to-column mc)
     (set-mark (point))
     (goto-char pp)
-    ;; Move cursor inside rectangle, except if char at rigth edge is a tab.
+    ;; Move cursor inside rectangle, except if char at right edge is a tab.
     (if (and (if (cua--rectangle-right-side)
 		 (and (= (move-to-column pc) (- pc tab-width))
 		      (not (eolp)))
--- a/lisp/emulation/pc-select.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/emulation/pc-select.el	Tue Jul 27 16:01:48 2010 +0900
@@ -6,7 +6,7 @@
 ;;   2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 ;; Author: Michael Staats <michael@thp.Uni-Duisburg.DE>
-;; Keywords: convenience emulation
+;; Keywords: convenience emulations
 ;; Created: 26 Sep 1995
 
 ;; This file is part of GNU Emacs.
--- a/lisp/epa.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/epa.el	Tue Jul 27 16:01:48 2010 +0900
@@ -508,13 +508,12 @@
       (set-keymap-parent (current-local-map) widget-keymap)
       (setq epa-exit-buffer-function #'abort-recursive-edit)
       (goto-char (point-min))
-      (pop-to-buffer (current-buffer)))
+      (let ((display-buffer-mark-dedicated 'soft))
+        (pop-to-buffer (current-buffer))))
     (unwind-protect
 	(progn
 	  (recursive-edit)
 	  (epa--marked-keys))
-      (if (get-buffer-window epa-keys-buffer)
-	  (delete-window (get-buffer-window epa-keys-buffer)))
       (kill-buffer epa-keys-buffer))))
 
 ;;;###autoload
--- a/lisp/files.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/files.el	Tue Jul 27 16:01:48 2010 +0900
@@ -4647,7 +4647,7 @@
 
 (defconst directory-files-no-dot-files-regexp
   "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"
-  "Regexp of file names excluging \".\" an \"..\".")
+  "Regexp matching any file name except \".\" and \"..\".")
 
 (defun delete-directory (directory &optional recursive)
   "Delete the directory named DIRECTORY.  Does not follow symlinks.
--- a/lisp/font-core.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/font-core.el	Tue Jul 27 16:01:48 2010 +0900
@@ -97,7 +97,7 @@
 `font-lock-mode'.")
 
 ;; The mode for which font-lock was initialized, or nil if none.
-(defvar font-lock-mode-major-mode)
+(defvar font-lock-major-mode)
 (define-minor-mode font-lock-mode
   "Toggle Font Lock mode.
 With arg, turn Font Lock mode off if and only if arg is a non-positive
@@ -159,9 +159,7 @@
   ;; Arrange to unfontify this buffer if we change major mode later.
   (if font-lock-mode
       (add-hook 'change-major-mode-hook 'font-lock-change-mode nil t)
-    (remove-hook 'change-major-mode-hook 'font-lock-change-mode t))
-  (when font-lock-mode
-    (setq font-lock-mode-major-mode major-mode)))
+    (remove-hook 'change-major-mode-hook 'font-lock-change-mode t)))
 
 ;; Get rid of fontification for the old major mode.
 ;; We do this when changing major modes.
@@ -213,8 +211,8 @@
 	    (and mode
 		 (boundp 'font-lock-set-defaults)
 		 font-lock-set-defaults
-		 font-lock-mode-major-mode
-		 (not (eq font-lock-mode-major-mode major-mode))))
+		 font-lock-major-mode
+		 (not (eq font-lock-major-mode major-mode))))
     (font-lock-mode-internal mode)))
 
 (defun turn-on-font-lock ()
--- a/lisp/font-lock.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/font-lock.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1784,15 +1784,18 @@
   (kill-local-variable 'font-lock-set-defaults)
   (font-lock-mode 1))
 
-(defvar font-lock-mode-major-mode)
+(defvar font-lock-major-mode nil
+  "Major mode for which the font-lock settings have been setup.")
+(make-variable-buffer-local 'font-lock-major-mode)
+
 (defun font-lock-set-defaults ()
   "Set fontification defaults appropriately for this mode.
 Sets various variables using `font-lock-defaults' (or, if nil, using
 `font-lock-defaults-alist') and `font-lock-maximum-decoration'."
   ;; Set fontification defaults if not previously set for correct major mode.
   (unless (and font-lock-set-defaults
-	       (eq font-lock-mode-major-mode major-mode))
-    (setq font-lock-mode-major-mode major-mode)
+	       (eq font-lock-major-mode major-mode))
+    (setq font-lock-major-mode major-mode)
     (set (make-local-variable 'font-lock-set-defaults) t)
     (make-local-variable 'font-lock-fontified)
     (make-local-variable 'font-lock-multiline)
--- a/lisp/font-setting.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/font-setting.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1,4 +1,4 @@
-;;; font-setting.el --- Support dynamic font changes
+;;; font-setting.el --- Support dynamic font changes   -*- coding: utf-8 -*-
 
 ;; Copyright (C) 2009, 2010 Free Software Foundation, Inc.
 
--- a/lisp/generic-x.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/generic-x.el	Tue Jul 27 16:01:48 2010 +0900
@@ -508,8 +508,7 @@
      '("^[ \t]*\\(:\\sw+\\)"         1 font-lock-function-name-face t)
      '("\\(%\\sw+%\\)"               1 font-lock-variable-name-face t)
      '("\\(%[0-9]\\)"                1 font-lock-variable-name-face t)
-     '("\\(/[^/ \"\t\n]+\\)"         1 font-lock-type-face)
-     '("[\t ]+\\([+-][^\t\n\" ]+\\)" 1 font-lock-type-face)
+     '("[\t ]+\\([+-/][^\t\n\" ]+\\)" 1 font-lock-type-face)
      '("[ \t\n|]\\<\\([gG][oO][tT][oO]\\)\\>[ \t]*\\(\\sw+\\)?"
        (1 font-lock-keyword-face)
        (2 font-lock-function-name-face nil t))
--- a/lisp/help-fns.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/help-fns.el	Tue Jul 27 16:01:48 2010 +0900
@@ -231,8 +231,8 @@
   "Guess the file that defined the Lisp object OBJECT, of type TYPE.
 OBJECT should be a symbol associated with a function, variable, or face;
   alternatively, it can be a function definition.
-If TYPE is `variable', search for a variable definition.
-If TYPE is `face', search for a face definition.
+If TYPE is `defvar', search for a variable definition.
+If TYPE is `defface', search for a face definition.
 If TYPE is the value returned by `symbol-function' for a function symbol,
  search for a function definition.
 
--- a/lisp/help.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/help.el	Tue Jul 27 16:01:48 2010 +0900
@@ -768,9 +768,10 @@
 
 ----------------- up-event %s----------------
 
-<%S>%s%s runs the command %S, which is "
+%s%s%s runs the command %S, which is "
 			   (if mouse-1-tricky "(short click) " "")
-			   ev-type mouse-msg
+			   (key-description (vector up-event))
+			   mouse-msg
 			   (if mouse-1-remapped
                                " is remapped to <mouse-2>, which" "")
 			   defn-up))
--- a/lisp/hl-line.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/hl-line.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1,12 +1,12 @@
 ;;; hl-line.el --- highlight the current line
 
-;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
+;;   2008, 2009, 2010  Free Software Foundation, Inc.
 
 ;; Author:  Dave Love <fx@gnu.org>
 ;; Maintainer: FSF
 ;; Created: 1998-09-13
-;; Keywords: faces, frames, emulation
+;; Keywords: faces, frames, emulations
 
 ;; This file is part of GNU Emacs.
 
--- a/lisp/htmlfontify.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/htmlfontify.el	Tue Jul 27 16:01:48 2010 +0900
@@ -959,7 +959,7 @@
                new-spec)))))
     (if (or (memq :inherit face-spec) (eq 'default face))
         face-spec
-      (nconc face-spec (list :inherit 'default))) ))
+      (append face-spec (list :inherit 'default)))))
 
 ;; construct an assoc of (css-tag-name . css-tag-value) pairs
 ;; from a face or assoc of face attributes:
@@ -1059,14 +1059,25 @@
     (setq  n (apply '* m))
     (nconc r (hfy-size (if x (round n) (* n 1.0)))) ))
 
+(defun hfy-face-resolve-face (fn)
+  (cond
+   ((facep fn)
+    (hfy-face-attr-for-class fn hfy-display-class))
+   ((and (symbolp fn)
+	 (facep (symbol-value fn)))
+    ;; Obsolete faces like `font-lock-reference-face' are defined as
+    ;; aliases for another face.
+    (hfy-face-attr-for-class (symbol-value fn) hfy-display-class))
+   (t nil)))
+
+
 (defun hfy-face-to-style (fn)
   "Take FN, a font or `defface' style font specification,
 \(as returned by `face-attr-construct' or `hfy-face-attr-for-class')
 and return a `hfy-style-assoc'.\n
 See also `hfy-face-to-style-i', `hfy-flatten-style'."
   ;;(message "hfy-face-to-style");;DBUG
-  (let ((face-def (if (facep fn)
-                      (hfy-face-attr-for-class fn hfy-display-class) fn))
+  (let ((face-def (hfy-face-resolve-face fn))
         (final-style nil))
 
     (setq final-style (hfy-flatten-style (hfy-face-to-style-i face-def)))
--- a/lisp/image-mode.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/image-mode.el	Tue Jul 27 16:01:48 2010 +0900
@@ -128,6 +128,28 @@
 
 (declare-function image-size "image.c" (spec &optional pixels frame))
 
+(defun image-display-size (spec &optional pixels frame)
+  "Wrapper around `image-size', to handle slice display properties.
+If SPEC is an image display property, call `image-size' with the
+given arguments.
+If SPEC is a list of properties containing `image' and `slice'
+properties, calculate the display size from the slice property.
+If SPEC contains `image' but not `slice', call `image-size' with
+the specified image."
+  (if (eq (car spec) 'image)
+      (image-size spec pixels frame)
+    (let ((image (assoc 'image spec))
+	  (slice (assoc 'slice spec)))
+      (cond ((and image slice)
+	     (if pixels
+		 (cons (nth 3 slice) (nth 4 slice))
+	       (cons (/ (float (nth 3 slice)) (frame-char-width frame))
+		     (/ (float (nth 4 slice)) (frame-char-height frame)))))
+	    (image
+	     (image-size image pixels frame))
+	    (t
+	     (error "Invalid image specification: %s" spec))))))
+
 (defun image-forward-hscroll (&optional n)
   "Scroll image in current window to the left by N character widths.
 Stop if the right edge of the image is reached."
@@ -139,7 +161,7 @@
 	 (let* ((image (image-get-display-property))
 		(edges (window-inside-edges))
 		(win-width (- (nth 2 edges) (nth 0 edges)))
-		(img-width (ceiling (car (image-size image)))))
+		(img-width (ceiling (car (image-display-size image)))))
 	   (image-set-window-hscroll (min (max 0 (- img-width win-width))
 					  (+ n (window-hscroll))))))))
 
@@ -160,7 +182,7 @@
 	 (let* ((image (image-get-display-property))
 		(edges (window-inside-edges))
 		(win-height (- (nth 3 edges) (nth 1 edges)))
-		(img-height (ceiling (cdr (image-size image)))))
+		(img-height (ceiling (cdr (image-display-size image)))))
 	   (image-set-window-vscroll (min (max 0 (- img-height win-height))
 					  (+ n (window-vscroll))))))))
 
@@ -233,7 +255,7 @@
   (let* ((image (image-get-display-property))
 	 (edges (window-inside-edges))
 	 (win-width (- (nth 2 edges) (nth 0 edges)))
-	 (img-width (ceiling (car (image-size image)))))
+	 (img-width (ceiling (car (image-display-size image)))))
     (image-set-window-hscroll (max 0 (- img-width win-width)))))
 
 (defun image-bob ()
@@ -248,9 +270,9 @@
   (let* ((image (image-get-display-property))
 	 (edges (window-inside-edges))
 	 (win-width (- (nth 2 edges) (nth 0 edges)))
-	 (img-width (ceiling (car (image-size image))))
+	 (img-width (ceiling (car (image-display-size image))))
 	 (win-height (- (nth 3 edges) (nth 1 edges)))
-	 (img-height (ceiling (cdr (image-size image)))))
+	 (img-height (ceiling (cdr (image-display-size image)))))
     (image-set-window-hscroll (max 0 (- img-width win-width)))
     (image-set-window-vscroll (max 0 (- img-height win-height)))))
 
@@ -264,7 +286,7 @@
   (interactive)
   (let* ((saved (frame-parameter nil 'image-mode-saved-size))
          (display (image-get-display-property))
-         (size (image-size display)))
+         (size (image-display-size display)))
     (if (and saved
              (eq (caar saved) (frame-width))
              (eq (cdar saved) (frame-height)))
--- a/lisp/international/mule-cmds.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/international/mule-cmds.el	Tue Jul 27 16:01:48 2010 +0900
@@ -2902,9 +2902,9 @@
 	       (#xFB00 . #xFFFD)))
 	    (upper-ranges
 	     '((#x10000 . #x134FF)
-	       ;; (#x13500 . #x1CFFF) unsed
+	       ;; (#x13500 . #x1CFFF) unused
 	       (#x1D000 . #x1FFFF)
-	       ;; (#x20000 . #xDFFFF) CJK Ideograph Extension A, B, etc, unsed
+	       ;; (#x20000 . #xDFFFF) CJK Ideograph Extension A, B, etc, unused
 	       (#xE0000 . #xE01FF)))
 	    (gc-cons-threshold 10000000)
 	    c end name names)
--- a/lisp/international/mule-util.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/international/mule-util.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1,4 +1,4 @@
-;;; mule-util.el --- utility functions for mulitilingual environment (mule)
+;;; mule-util.el --- utility functions for multilingual environment (mule)
 
 ;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
--- a/lisp/mail/rmail-spam-filter.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/mail/rmail-spam-filter.el	Tue Jul 27 16:01:48 2010 +0900
@@ -414,7 +414,7 @@
     ;; to make sure message-subject is actually evaluated and its value
     ;; substituted.
     (add-to-list 'rsf-definitions-alist
-		 ;; Note that an empty elment is treated the same as
+		 ;; Note that an empty element is treated the same as
 		 ;; an absent one, so why does it bother to add them?
 		 (list '(from . "")
 		       '(to . "")
--- a/lisp/mail/rmail.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/mail/rmail.el	Tue Jul 27 16:01:48 2010 +0900
@@ -4291,7 +4291,7 @@
 
 ;;;***
 
-;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "93033f2136fcd111e2b52a116ff4cf29")
+;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "4a7502b4aeb3bd5f2111b48cc6512924")
 ;;; Generated autoloads from rmailmm.el
 
 (autoload 'rmail-mime "rmailmm" "\
--- a/lisp/mail/rmailmm.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/mail/rmailmm.el	Tue Jul 27 16:01:48 2010 +0900
@@ -112,6 +112,10 @@
 			(file-name-as-directory filename))))
     (with-temp-buffer
       (set-buffer-file-coding-system 'no-conversion)
+      ;; Needed e.g. by jka-compr, so if the attachment is a compressed
+      ;; file, the magic signature compares equal with the unibyte
+      ;; signature string recorded in jka-compr-compression-info-list.
+      (set-buffer-multibyte nil)
       (insert data)
       (write-region nil nil filename nil nil nil t))))
 
--- a/lisp/man.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/man.el	Tue Jul 27 16:01:48 2010 +0900
@@ -754,6 +754,9 @@
   (cond
    ((eq action 'lambda)
     (not (string-match "([^)]*\\'" string)))
+   ((equal string "-k")
+    ;; Let SPC (minibuffer-complete-word) insert the space.
+    (complete-with-action action '("-k ") string pred))
    (t
     (let ((table (cdr Man-completion-cache))
           (section nil)
--- a/lisp/mouse.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/mouse.el	Tue Jul 27 16:01:48 2010 +0900
@@ -2483,6 +2483,7 @@
 (declare-function font-face-attributes "font.c" (font &optional frame))
 
 (defun mouse-appearance-menu (event)
+  "Show a menu for changing the default face in the current buffer."
   (interactive "@e")
   (require 'face-remap)
   (when (display-multi-font-p)
--- a/lisp/net/dbus.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/net/dbus.el	Tue Jul 27 16:01:48 2010 +0900
@@ -38,6 +38,7 @@
 (declare-function dbus-method-return-internal "dbusbind.c")
 (declare-function dbus-method-error-internal "dbusbind.c")
 (declare-function dbus-register-signal "dbusbind.c")
+(declare-function dbus-register-method "dbusbind.c")
 (defvar dbus-debug)
 (defvar dbus-registered-objects-table)
 
@@ -398,7 +399,7 @@
   "Handle events from the D-Bus.
 EVENT is a D-Bus event, see `dbus-check-event'.  HANDLER, being
 part of the event, is called with arguments ARGS.
-If the HANDLER returns an `dbus-error', it is propagated as return message."
+If the HANDLER returns a `dbus-error', it is propagated as return message."
   (interactive "e")
   (condition-case err
       (let (result)
@@ -434,8 +435,7 @@
   "Return the bus name the event is coming from.
 The result is either the symbol `:system' or the symbol `:session'.
 EVENT is a D-Bus event, see `dbus-check-event'.  This function
-raises a `dbus-error' signal in case the event is not well
-formed."
+raises a `dbus-error' signal in case the event is not well formed."
   (dbus-check-event event)
   (nth 1 event))
 
@@ -562,7 +562,7 @@
 ;;; D-Bus introspection.
 
 (defun dbus-introspect (bus service path)
-  "This function returns all interfaces and sub-nodes of SERVICE,
+  "Return all interfaces and sub-nodes of SERVICE,
 registered at object path PATH at bus BUS.
 
 BUS must be either the symbol `:system' or the symbol `:session'.
@@ -634,9 +634,8 @@
 (defun dbus-introspect-get-interface (bus service path interface)
   "Return the INTERFACE of SERVICE in D-Bus BUS at object path PATH.
 The return value is an XML object.  INTERFACE must be a string,
-element of the list returned by
-`dbus-introspect-get-interface-names'.  The resulting
-\"interface\" object can contain \"method\", \"signal\",
+element of the list returned by `dbus-introspect-get-interface-names'.
+The resulting \"interface\" object can contain \"method\", \"signal\",
 \"property\" and \"annotation\" children."
   (let ((elt (xml-get-children
 	      (dbus-introspect-xml bus service path) 'interface)))
@@ -776,8 +775,8 @@
 
 (defun dbus-introspect-get-argument (bus service path interface name arg)
   "Return argument ARG as XML object.
-NAME must be a \"method\" or \"signal\" object.  ARG must be a
-string, element of the list returned by `dbus-introspect-get-argument-names'."
+NAME must be a \"method\" or \"signal\" object.  ARG must be a string,
+element of the list returned by `dbus-introspect-get-argument-names'."
   (let ((elt (xml-get-children
 	      (or (dbus-introspect-get-method bus service path interface name)
 		  (dbus-introspect-get-signal bus service path interface name))
@@ -922,7 +921,7 @@
     (list key (list service path))))
 
 (defun dbus-property-handler (&rest args)
-  "Default Handler for the \"org.freedesktop.DBus.Properties\" interface.
+  "Default handler for the \"org.freedesktop.DBus.Properties\" interface.
 It will be registered for all objects created by `dbus-register-object'."
   (let ((bus (dbus-event-bus-name last-input-event))
 	(path (dbus-event-path-name last-input-event))
--- a/lisp/net/rcirc.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/net/rcirc.el	Tue Jul 27 16:01:48 2010 +0900
@@ -80,6 +80,11 @@
 VALUE must be a string.  If absent, `rcirc-default-user-name' is
 used.
 
+`:password'
+
+VALUE must be a string.  If absent, no PASS command will be sent
+to the server.
+
 `:full-name'
 
 VALUE must be a string.  If absent, `rcirc-default-full-name' is
@@ -94,6 +99,7 @@
 		:value-type (plist :options ((:nick string)
 					     (:port integer)
 					     (:user-name string)
+					     (:password string)
 					     (:full-name string)
 					     (:channels (repeat string)))))
   :group 'rcirc)
@@ -393,6 +399,8 @@
 				(or (plist-get server-plist :nick)
 				    rcirc-default-nick)
 				'rcirc-nick-name-history))
+             (password (read-passwd "IRC Password: "
+                                    (plist-get server-plist 'password)))
 	     (channels (split-string
 			(read-string "IRC Channels: "
 				     (mapconcat 'identity
@@ -400,9 +408,13 @@
 							   :channels)
 						" "))
 			"[, ]+" t)))
+
+        (when (= 0 (length password))
+          (setq password nil))
+
 	(rcirc-connect server port nick rcirc-default-user-name
 		       rcirc-default-full-name
-		       channels))
+		       channels password))
     ;; connect to servers in `rcirc-server-alist'
     (let (connected-servers)
       (dolist (c rcirc-server-alist)
@@ -413,7 +425,8 @@
 			     rcirc-default-user-name))
 	      (full-name (or (plist-get (cdr c) :full-name)
 			     rcirc-default-full-name))
-	      (channels (plist-get (cdr c) :channels)))
+	      (channels (plist-get (cdr c) :channels))
+              (password (plist-get (cdr c) :password)))
 	  (when server
 	    (let (connected)
 	      (dolist (p (rcirc-process-list))
@@ -422,7 +435,7 @@
 	      (if (not connected)
 		  (condition-case e
 		      (rcirc-connect server port nick user-name
-				     full-name channels)
+				     full-name channels password)
 		    (quit (message "Quit connecting to %s" server)))
 		(with-current-buffer (process-buffer connected)
 		  (setq connected-servers
@@ -454,7 +467,7 @@
 
 ;;;###autoload
 (defun rcirc-connect (server &optional port nick user-name full-name
-			     startup-channels)
+			     startup-channels password)
   (save-excursion
     (message "Connecting to %s..." server)
     (let* ((inhibit-eol-conversion)
@@ -503,6 +516,8 @@
       (add-hook 'auto-save-hook 'rcirc-log-write)
 
       ;; identify
+      (when password
+        (rcirc-send-string process (concat "PASS " password)))
       (rcirc-send-string process (concat "NICK " nick))
       (rcirc-send-string process (concat "USER " user-name
                                       " hostname servername :"
--- a/lisp/net/zeroconf.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/net/zeroconf.el	Tue Jul 27 16:01:48 2010 +0900
@@ -336,6 +336,23 @@
       (puthash type l-hook zeroconf-service-removed-hooks-hash)))
    (t (error "EVENT must be either `:new' or `:removed'"))))
 
+(defun zeroconf-service-remove-hook (type event function)
+  "Remove FUNCTION from the hook of service type TYPE.
+
+EVENT must be either :new or :removed and has to match the event
+type used when registering FUNCTION."
+  (let* ((table (cond
+		 ((equal event :new)
+		  zeroconf-service-added-hooks-hash)
+		 ((equal event :removed)
+		  zeroconf-service-removed-hooks-hash)
+		 (t (error "EVENT must be either `:new' or `:removed'"))))
+	 (l-hook (gethash type table nil)))
+    (remove-hook 'l-hook function)
+    (if l-hook
+	(puthash type l-hook table)
+      (remhash type table))))
+
 (defun zeroconf-get-host ()
   "Returns the local host name as string."
   (dbus-call-method
@@ -407,7 +424,7 @@
 	      (elt (nth 9 result))) ;; TXT.
 	 ;; The TXT field has the signature "aay".  Transform to "as".
 	 (while elt
-	   (setcar elt (apply 'string (car elt)))
+	   (setcar elt (dbus-byte-array-to-string (car elt)))
 	   (setq elt (cdr elt)))
 
 	 (when nil ;; We discard it, no use so far.
@@ -599,7 +616,7 @@
   ;; The "TXT" field has the signature "aay".  Transform to "as".
   (let ((elt (nth 9 val)))
     (while elt
-      (setcar elt (apply 'string (car elt)))
+      (setcar elt (dbus-byte-array-to-string (car elt)))
       (setq elt (cdr elt))))
   (when zeroconf-debug
     (message "zeroconf-service-resolver-handler: %s %S"
@@ -641,11 +658,7 @@
 
     ;; The TXT field has the signature "as".  Transform to "aay".
     (dolist (elt txt)
-      (let (args)
-	(add-to-list
-	 'result
-	 (dolist (elt1 (string-to-list elt) (append '(:array) args))
-	   (setq args (append args (list :byte elt1)))))))
+      (add-to-list 'result (dbus-string-to-byte-array elt)))
 
     ;; Add the service.
     (dbus-call-method
--- a/lisp/play/zone.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/play/zone.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,7 @@
 ;;; zone.el --- idle display hacks
 
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+;;   2009, 2010  Free Software Foundation, Inc.
 
 ;; Author: Victor Zandy <zandy@cs.wisc.edu>
 ;; Maintainer: Thien-Thi Nguyen <ttn@gnu.org>
@@ -487,8 +487,10 @@
          (wait 0.15)
          newpos fall-p)
     (while (when (save-excursion
-                   (forward-line 1)
-                   (and (= col (current-column))
+                   (and (zerop (forward-line 1))
+                        (progn
+                          (forward-char col)
+                          (= col (current-column)))
                         (setq newpos (point))
                         (string= spaces (buffer-substring-no-properties
                                          newpos (+ newpos cw-ceil)))
--- a/lisp/progmodes/cc-mode.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/progmodes/cc-mode.el	Tue Jul 27 16:01:48 2010 +0900
@@ -662,8 +662,13 @@
 
 This function is called from the hook `before-hack-local-variables-hook'."
   (when c-buffer-is-cc-mode
-    (let ((stile (cdr (assq 'c-file-style file-local-variables-alist)))
+    (let ((mode-cons (assq 'mode file-local-variables-alist))
+	  (stile (cdr (assq 'c-file-style file-local-variables-alist)))
 	  (offsets (cdr (assq 'c-file-offsets file-local-variables-alist))))
+      (when mode-cons
+	(hack-one-local-variable (car mode-cons) (cdr mode-cons))
+	(setq file-local-variables-alist
+	      (delq mode-cons file-local-variables-alist)))
       (when stile
 	(or (stringp stile) (error "c-file-style is not a string"))
 	(c-set-style stile))
--- a/lisp/progmodes/compile.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/progmodes/compile.el	Tue Jul 27 16:01:48 2010 +0900
@@ -47,7 +47,7 @@
 ;; using the same *compilation* buffer. this necessitates re-parsing markers.
 
 ;;   FILE-STRUCTURE is a list of
-;;   ((FILENAME . DIRECTORY) FORMATS (LINE LOC ...) ...)
+;;   ((FILENAME DIRECTORY) FORMATS (LINE LOC ...) ...)
 
 ;; FILENAME is a string parsed from an error message.  DIRECTORY is a string
 ;; obtained by following directory change messages.  DIRECTORY will be nil for
--- a/lisp/progmodes/idlwave.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/progmodes/idlwave.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1601,7 +1601,7 @@
         `(lambda ()
            (interactive)
            (self-insert-command 1)
-           ,@(if (listp cmd) cmd (list cmd))))))
+           ,(if (listp cmd) cmd (list cmd))))))
 
 ;; Set action and key bindings.
 ;; See description of the function `idlwave-action-and-binding'.
--- a/lisp/progmodes/js.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/progmodes/js.el	Tue Jul 27 16:01:48 2010 +0900
@@ -474,8 +474,7 @@
 (defcustom js-js-tmpdir
   "~/.emacs.d/js/js"
   "Temporary directory used by `js-mode' to communicate with Mozilla.
-This directory must be readable and writable by both Mozilla and
-Emacs."
+This directory must be readable and writable by both Mozilla and Emacs."
   :type 'directory
   :group 'js)
 
@@ -499,11 +498,11 @@
     (define-key keymap [(meta ?.)] #'js-find-symbol)
     (easy-menu-define nil keymap "Javascript Menu"
       '("Javascript"
-        ["Select new Mozilla context…" js-set-js-context
+        ["Select New Mozilla Context..." js-set-js-context
          (fboundp #'inferior-moz-process)]
-        ["Evaluate expression in Mozilla context…" js-eval
+        ["Evaluate Expression in Mozilla Context..." js-eval
          (fboundp #'inferior-moz-process)]
-        ["Send current function to Mozilla…" js-eval-defun
+        ["Send Current Function to Mozilla..." js-eval-defun
          (fboundp #'inferior-moz-process)]))
     keymap)
   "Keymap for `js-mode'.")
--- a/lisp/progmodes/python.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/progmodes/python.el	Tue Jul 27 16:01:48 2010 +0900
@@ -93,7 +93,7 @@
 
 (defvar python-font-lock-keywords
   `(,(rx symbol-start
-	 ;; From v 2.5 reference, § keywords.
+	 ;; From v 2.7 reference, § keywords.
 	 ;; def and class dealt with separately below
 	 (or "and" "as" "assert" "break" "continue" "del" "elif" "else"
 	     "except" "exec" "finally" "for" "from" "global" "if"
@@ -102,7 +102,7 @@
              ;; Not real keywords, but close enough to be fontified as such
              "self" "True" "False")
 	 symbol-end)
-    (,(rx symbol-start "None" symbol-end)	; see § Keywords in 2.5 manual
+    (,(rx symbol-start "None" symbol-end)	; see § Keywords in 2.7 manual
      . font-lock-constant-face)
     ;; Definitions
     (,(rx symbol-start (group "class") (1+ space) (group (1+ (or word ?_))))
@@ -117,7 +117,7 @@
 					    (0+ "." (1+ (or word ?_)))))
      (1 font-lock-type-face))
     ;; Built-ins.  (The next three blocks are from
-    ;; `__builtin__.__dict__.keys()' in Python 2.5.1.)  These patterns
+    ;; `__builtin__.__dict__.keys()' in Python 2.7)  These patterns
     ;; are debateable, but they at least help to spot possible
     ;; shadowing of builtins.
     (,(rx symbol-start (or
@@ -135,7 +135,9 @@
 	  "SystemExit" "TabError" "TypeError" "UnboundLocalError"
 	  "UnicodeDecodeError" "UnicodeEncodeError" "UnicodeError"
 	  "UnicodeTranslateError" "UnicodeWarning" "UserWarning"
-	  "ValueError" "Warning" "ZeroDivisionError") symbol-end)
+	  "ValueError" "Warning" "ZeroDivisionError"
+	  ;; Python 2.7
+	  "BufferError" "BytesWarning" "WindowsError") symbol-end)
      . font-lock-type-face)
     (,(rx (or line-start (not (any ". \t"))) (* (any " \t")) symbol-start
 	  (group (or
@@ -152,12 +154,16 @@
 	  "range" "raw_input" "reduce" "reload" "repr" "reversed"
 	  "round" "set" "setattr" "slice" "sorted" "staticmethod"
 	  "str" "sum" "super" "tuple" "type" "unichr" "unicode" "vars"
-	  "xrange" "zip")) symbol-end)
+	  "xrange" "zip"
+	  ;; Python 2.7.
+	  "bin" "bytearray" "bytes" "format" "memoryview" "next" "print"
+	  )) symbol-end)
      (1 font-lock-builtin-face))
     (,(rx symbol-start (or
 	  ;; other built-ins
 	  "True" "False" "None" "Ellipsis"
-	  "_" "__debug__" "__doc__" "__import__" "__name__") symbol-end)
+	  "_" "__debug__" "__doc__" "__import__" "__name__" "__package__")
+          symbol-end)
      . font-lock-builtin-face)))
 
 (defconst python-font-lock-syntactic-keywords
--- a/lisp/progmodes/verilog-mode.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/progmodes/verilog-mode.el	Tue Jul 27 16:01:48 2010 +0900
@@ -2425,12 +2425,12 @@
 		 (list
 		  (concat "\\<function\\>\\s-+\\(integer\\|real\\(time\\)?\\|time\\)\\s-+\\(\\sw+\\)" )
 		       '(1 font-lock-keyword-face)
-		       '(3 font-lock-reference-face prepend))
+		       '(3 font-lock-constant-face prepend))
 		 '("\\<function\\>\\s-+\\(\\[[^]]+\\]\\)\\s-+\\(\\sw+\\)"
 		   (1 font-lock-keyword-face)
-		   (2 font-lock-reference-face append))
+		   (2 font-lock-constant-face append))
 		 '("\\<function\\>\\s-+\\(\\sw+\\)"
-		   1 'font-lock-reference-face append))))
+		   1 'font-lock-constant-face append))))
 
   (setq verilog-font-lock-keywords-2
 	(append verilog-font-lock-keywords-1
--- a/lisp/simple.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/simple.el	Tue Jul 27 16:01:48 2010 +0900
@@ -3629,10 +3629,9 @@
 This is used by commands that act specially on the region under
 Transient Mark mode.
 
-The return value is t provided Transient Mark mode is enabled and
-the mark is active; and, when `use-empty-active-region' is
-non-nil, provided the region is empty.  Otherwise, the return
-value is nil.
+The return value is t if Transient Mark mode is enabled and the
+mark is active; furthermore, if `use-empty-active-region' is nil,
+the region must not be empty.  Otherwise, the return value is nil.
 
 For some commands, it may be appropriate to ignore the value of
 `use-empty-active-region'; in that case, use `region-active-p'."
@@ -3688,6 +3687,8 @@
 	(push-mark nil nomsg t)
       (setq mark-active t)
       (run-hooks 'activate-mark-hook)
+      (and select-active-regions (display-selections-p)
+	   (x-set-selection 'PRIMARY (current-buffer)))
       (unless nomsg
 	(message "Mark activated")))))
 
@@ -5669,7 +5670,7 @@
 The default mail mode is now Message mode.
 You have the following Mail mode variable%s customized:
 \n  %s\n\nTo use Mail mode, set `mail-user-agent' to sendmail-user-agent.
-To disable this warning, set `compose-mail-check-user-agent' to nil."
+To disable this warning, set `compose-mail-user-agent-warnings' to nil."
 				    (if (> (length warn-vars) 1) "s" "")
 				    (mapconcat 'symbol-name
 					       warn-vars " "))))))
--- a/lisp/subr.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/subr.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1871,16 +1871,13 @@
 	(if inhibit-quit (setq quit-flag nil)))
       ;; Translate TAB key into control-I ASCII character, and so on.
       ;; Note: `read-char' does it using the `ascii-character' property.
-      ;; We could try and use read-key-sequence instead, but then C-q ESC
-      ;; or C-q C-x might not return immediately since ESC or C-x might be
-      ;; bound to some prefix in function-key-map or key-translation-map.
-      (setq translated
-	    (if (integerp char)
-		(char-resolve-modifiers char)
-	      char))
+      ;; We should try and use read-key instead.
       (let ((translation (lookup-key local-function-key-map (vector char))))
-	(if (arrayp translation)
-	    (setq translated (aref translation 0))))
+	(setq translated (if (arrayp translation)
+			     (aref translation 0)
+			   char)))
+      (if (integerp translated)
+	  (setq translated (char-resolve-modifiers translated)))
       (cond ((null translated))
 	    ((not (integerp translated))
 	     (setq unread-command-events (list char)
@@ -2209,22 +2206,11 @@
                 (recenter (/ (window-height) 2))))
           (message (or message "Type %s to continue editing.")
                    (single-key-description exit-char))
-          (let (char)
-            (if (integerp exit-char)
-                (condition-case nil
-                    (progn
-                      (setq char (read-char))
-                      (or (eq char exit-char)
-                          (setq unread-command-events (list char))))
-                  (error
-                   ;; `exit-char' is a character, hence it differs
-                   ;; from char, which is an event.
-                   (setq unread-command-events (list char))))
-              ;; `exit-char' can be an event, or an event description list.
-              (setq char (read-event))
-              (or (eq char exit-char)
-                  (eq char (event-convert-list exit-char))
-                  (setq unread-command-events (list char))))))
+	  (let ((event (read-event)))
+	    ;; `exit-char' can be an event, or an event description list.
+	    (or (eq event exit-char)
+		(eq event (event-convert-list exit-char))
+		(setq unread-command-events (list event)))))
       (delete-overlay ol))))
 
 
--- a/lisp/term/common-win.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/term/common-win.el	Tue Jul 27 16:01:48 2010 +0900
@@ -275,10 +275,11 @@
     "medium slate blue" "slate blue" "dark slate blue" "midnight blue" "navy"
     "dark blue" "light steel blue" "cornflower blue" "dodger blue" "royal blue"
     "light slate gray" "slate gray" "dark slate gray" "steel blue" "cadet blue"
-    "light sky blue" "sky blue" "light blue" "powder blue" "pale turquoise" "turquoise"
-    "medium turquoise" "dark cyan" "aquamarine" "medium aquamarine" "light sea green"
+    "light sky blue" "sky blue" "light blue" "powder blue" "pale turquoise"
+    "turquoise" "medium turquoise" "dark turquoise"  "dark cyan" "aquamarine"
+    "medium aquamarine" "light sea green"
     "medium sea green" "sea green" "dark sea green" "pale green" "lime green"
-    "forest green" "light green" "green yellow" "yellow green" "olive drab"
+    "dark green" "forest green" "light green" "green yellow" "yellow green" "olive drab"
     "dark olive green" "lemon chiffon" "khaki" "dark khaki" "cornsilk"
     "pale goldenrod" "light goldenrod" "goldenrod" "dark goldenrod" "wheat"
     "navajo white" "tan" "burlywood" "sandy brown" "peru" "chocolate" "saddle brown"
@@ -287,7 +288,7 @@
     "dark magenta" "dark violet" "medium blue" "blue" "deep sky blue"
     "cyan" "medium spring green" "spring green" "green" "lawn green" "chartreuse"
     "yellow" "gold" "orange" "dark orange" "orange red" "red" "white" "white smoke"
-    "gainsboro" "light grey" "gray" "dark grey" "dim gray" "black" ))
+    "gainsboro" "light gray" "gray" "dark gray" "dim gray" "black" ))
   "List of basic colors available on color displays.
 For X, the list comes from the `rgb.txt' file,v 10.41 94/02/20.
 For Nextstep, this is a list of non-PANTONE colors returned by
--- a/lisp/textmodes/fill.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/textmodes/fill.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1036,7 +1036,7 @@
 	  (fill-forward-paragraph -1))
 	(if (< (point) beg)
 	    (goto-char beg))
-	(if (>= (point) initial)
+	(if (and (>= (point) initial) (< (point) end))
 	    (setq fill-pfx
 		  (fill-region-as-paragraph (point) end justify nosqueeze))
 	  (goto-char end))))
--- a/lisp/time.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/time.el	Tue Jul 27 16:01:48 2010 +0900
@@ -87,7 +87,7 @@
 
 ;;;###autoload
 (defcustom display-time-day-and-date nil "\
-*Non-nil means \\[display-time] should display day and date as well as time."
+Non-nil means \\[display-time] should display day and date as well as time."
   :type 'boolean
   :group 'display-time)
 
@@ -182,7 +182,7 @@
   :version "23.1")
 
 (defcustom display-time-world-buffer-name "*wclock*"
-  "Name of the wclock buffer."
+  "Name of the world clock buffer."
   :group 'display-time
   :type 'string
   :version "23.1")
@@ -203,7 +203,7 @@
   (let ((map (make-sparse-keymap)))
     (define-key map "q" 'kill-this-buffer)
     map)
-  "Keymap of Display Time World mode")
+  "Keymap of Display Time World mode.")
 
 ;;;###autoload
 (defun display-time ()
--- a/lisp/tmm.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/tmm.el	Tue Jul 27 16:01:48 2010 +0900
@@ -262,9 +262,6 @@
 	   (condition-case nil
 	       (require 'mouse)
 	     (error nil))
-	   (condition-case nil
-	       (x-popup-menu nil choice) ; Get the shortcuts
-	     (error nil))
 	   (tmm-prompt choice))
 	  ;; We just handled a menu keymap and found a command.
 	  (choice
@@ -445,33 +442,30 @@
 `x-popup-menu' argument (when IN-X-MENU is not-nil).
 This function adds the element only if it is not already present.
 It uses the free variable `tmm-table-undef' to keep undefined keys."
-  (let (km str cache plist filter visible enable (event (car elt)))
+  (let (km str plist filter visible enable (event (car elt)))
     (setq elt (cdr elt))
     (if (eq elt 'undefined)
 	(setq tmm-table-undef (cons (cons event nil) tmm-table-undef))
       (unless (assoc event tmm-table-undef)
 	(cond ((if (listp elt)
 		   (or (keymapp elt) (eq (car elt) 'lambda))
-		 (fboundp elt))
+		 (and (symbolp elt) (fboundp elt)))
 	       (setq km elt))
 
 	      ((if (listp (cdr-safe elt))
 		   (or (keymapp (cdr-safe elt))
 		       (eq (car (cdr-safe elt)) 'lambda))
-		 (fboundp (cdr-safe elt)))
+		 (and (symbolp (cdr-safe elt)) (fboundp (cdr-safe elt))))
 	       (setq km (cdr elt))
 	       (and (stringp (car elt)) (setq str (car elt))))
 
 	      ((if (listp (cdr-safe (cdr-safe elt)))
 		   (or (keymapp (cdr-safe (cdr-safe elt)))
 		       (eq (car (cdr-safe (cdr-safe elt))) 'lambda))
-		 (fboundp (cdr-safe (cdr-safe elt))))
+		 (and (symbolp (cdr-safe (cdr-safe elt)))
+			       (fboundp (cdr-safe (cdr-safe elt)))))
 	       (setq km (cddr elt))
-	       (and (stringp (car elt)) (setq str (car elt)))
-	       (and str
-		    (stringp (cdr-safe (cadr elt))) ; keyseq cache
-		    (setq cache (cdr (cadr elt)))
-		    cache (setq str (concat str cache))))
+	       (and (stringp (car elt)) (setq str (car elt))))
 
 	      ((eq (car-safe elt) 'menu-item)
 	       ;; (menu-item TITLE COMMAND KEY ...)
@@ -488,30 +482,34 @@
 		   (setq km (and (eval visible) km)))
 	       (setq enable (plist-get plist :enable))
 	       (if enable
-                   (setq km (if (eval enable) km 'ignore)))
-	       (and str
-		    (consp (nth 3 elt))
-		    (stringp (cdr (nth 3 elt))) ; keyseq cache
-		    (setq cache (cdr (nth 3 elt)))
-		    cache
-		    (setq str (concat str cache))))
+                   (setq km (if (eval enable) km 'ignore))))
 
 	      ((if (listp (cdr-safe (cdr-safe (cdr-safe elt))))
 		   (or (keymapp (cdr-safe (cdr-safe (cdr-safe elt))))
 		       (eq (car (cdr-safe (cdr-safe (cdr-safe elt)))) 'lambda))
-		 (fboundp (cdr-safe (cdr-safe (cdr-safe elt)))))
+		 (and (symbolp (cdr-safe (cdr-safe (cdr-safe elt))))
+		      (fboundp (cdr-safe (cdr-safe (cdr-safe elt))))))
 					 ; New style of easy-menu
 	       (setq km (cdr (cddr elt)))
-	       (and (stringp (car elt)) (setq str (car elt)))
-	       (and str
-		    (stringp (cdr-safe (car (cddr elt)))) ; keyseq cache
-		    (setq cache (cdr (car (cdr (cdr elt)))))
-		    cache (setq str (concat str cache))))
+	       (and (stringp (car elt)) (setq str (car elt))))
 
 	      ((stringp event)		; x-popup or x-popup element
 	       (if (or in-x-menu (stringp (car-safe elt)))
 		   (setq str event event nil km elt)
-		 (setq str event event nil km (cons 'keymap elt))))))
+		 (setq str event event nil km (cons 'keymap elt)))))
+        (unless (eq km 'ignore)
+          (let ((binding (where-is-internal km nil t)))
+            (when binding
+              (setq binding (key-description binding))
+              ;; Try to align the keybindings.
+              (let ((colwidth (min 30 (- (/ (window-width) 2) 10))))
+                (setq str
+                      (concat str
+                              (make-string (max 2 (- colwidth
+                                                     (string-width str)
+                                                     (string-width binding)))
+                                           ?\s)
+                              binding)))))))
       (and km (stringp km) (setq str km))
       ;; Verify that the command is enabled;
       ;; if not, don't mention it.
--- a/lisp/url/ChangeLog	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/url/ChangeLog	Tue Jul 27 16:01:48 2010 +0900
@@ -1,3 +1,20 @@
+2010-07-26  Michael Albinus  <michael.albinus@gmx.de>
+
+	* url-http (url-http-parse-headers): Disable file name handlers at
+	all (not only Tramp).  (Bug#6717)
+
+2010-07-25  Michael Albinus  <michael.albinus@gmx.de>
+
+	* url-http (url-http-parse-headers): Disable Tramp.  (Bug#6717)
+
+2010-06-12  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
+
+	* url-vars.el (url-privacy-level): Fix doc typo.  (Bug#6406)
+
+2010-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* url-util.el (url-unhex-string): Don't accidentally decode as latin-1.
+
 2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 
 	* Version 23.2 released.
@@ -759,7 +776,7 @@
 	(url-http-parse-headers): Use it.
 	(url-http-handle-authentication): Use subst-char-in-string.
 
-2005-11-16  Juergen Hoetzel  <emacs@hoetzel.info>  (tiny change)
+2005-11-16  Jürgen Hötzel  <emacs@hoetzel.info>  (tiny change)
 
 	* url-handlers.el (url-insert-file-contents): Use the charset info
 	provided by the HTTP server, if any.
--- a/lisp/url/url-http.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/url/url-http.el	Tue Jul 27 16:01:48 2010 +0900
@@ -435,7 +435,11 @@
 	(delete-process url-http-process)))))
   (let ((buffer (current-buffer))
 	(class nil)
-	(success nil))
+	(success nil)
+	;; The filename part of a URL could be in remote file syntax,
+	;; see Bug#6717 for an example.  We disable file name
+	;; handlers, therefore.
+	(file-name-handler-alist nil))
     (setq class (/ url-http-response-status 100))
     (url-http-debug "Parsed HTTP headers: class=%d status=%d" class url-http-response-status)
     (url-http-handle-cookies)
--- a/lisp/url/url-util.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/url/url-util.el	Tue Jul 27 16:01:48 2010 +0900
@@ -322,10 +322,10 @@
 		   tmp (substring str 0 start)
 		   (cond
 		    (allow-newlines
-		     (char-to-string code))
+		     (byte-to-string code))
 		    ((or (= code ?\n) (= code ?\r))
 		     " ")
-		    (t (char-to-string code))))
+		    (t (byte-to-string code))))
 	      str (substring str (match-end 0)))))
     (setq tmp (concat tmp str))
     tmp))
--- a/lisp/url/url-vars.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/url/url-vars.el	Tue Jul 27 16:01:48 2010 +0900
@@ -128,7 +128,7 @@
 os       -- the operating system info
 lastloc  -- the last location
 agent    -- do not send the User-Agent string
-cookie   -- never accept HTTP cookies
+cookies  -- never accept HTTP cookies
 
 Samples:
 
--- a/lisp/vc-annotate.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/vc-annotate.el	Tue Jul 27 16:01:48 2010 +0900
@@ -314,8 +314,8 @@
 		  vc-annotate-display-mode))))
 
 ;;;###autoload
-(defun vc-annotate (file rev &optional display-mode buf move-point-to)
-  "Display the edit history of the current file using colors.
+(defun vc-annotate (file rev &optional display-mode buf move-point-to vc-bk)
+  "Display the edit history of the current FILE using colors.
 
 This command creates a buffer that shows, for each line of the current
 file, when it was last edited and by whom.  Additionally, colors are
@@ -325,7 +325,7 @@
 everything that is older than that is shown in blue.
 
 With a prefix argument, this command asks two questions in the
-minibuffer.  First, you may enter a revision number; then the buffer
+minibuffer.  First, you may enter a revision number REV; then the buffer
 displays and annotates that revision instead of the working revision
 \(type RET in the minibuffer to leave that default unchanged).  Then,
 you are prompted for the time span in days which the color range
@@ -335,6 +335,8 @@
 
 If MOVE-POINT-TO is given, move the point to that line.
 
+If VC-BK is given used that VC backend.
+
 Customization variables:
 
 `vc-annotate-menu-elements' customizes the menu elements of the
@@ -347,9 +349,9 @@
      (list buffer-file-name
 	   (let ((def (vc-working-revision buffer-file-name)))
 	     (if (null current-prefix-arg) def
-	       (read-string
+	       (vc-read-revision
 		(format "Annotate from revision (default %s): " def)
-		nil nil def)))
+		(list buffer-file-name) nil def)))
 	   (if (null current-prefix-arg)
 	       vc-annotate-display-mode
 	     (float (string-to-number
@@ -375,7 +377,7 @@
 		;; In case it had to be uniquified.
 		(setq temp-buffer-name (buffer-name))))
     (with-output-to-temp-buffer temp-buffer-name
-      (let ((backend (vc-backend file))
+      (let ((backend (or vc-bk (vc-backend file)))
 	    (coding-system-for-read buffer-file-coding-system))
         (vc-call-backend backend 'annotate-command file
                          (get-buffer temp-buffer-name) rev)
@@ -461,7 +463,7 @@
       (if (not rev-at-line)
 	  (message "Cannot extract revision number from the current line")
 	(switch-to-buffer-other-window
-	 (vc-find-revision (cdr rev-at-line) (car rev-at-line)))))))
+	 (vc-find-revision (cdr rev-at-line) (car rev-at-line) vc-annotate-backend))))))
 
 (defun vc-annotate-revision-previous-to-line ()
   "Visit the annotation of the revision before the revision at line."
@@ -526,7 +528,7 @@
 	  (message "Cannot extract revision number from the current line")
 	(setq prev-rev
 	      (vc-call-backend vc-annotate-backend 'previous-revision
-                               fname rev))
+                               (if filediff fname nil) rev))
 	(if (not prev-rev)
 	    (message "Cannot diff from any revision prior to %s" rev)
 	  (save-window-excursion
@@ -596,7 +598,8 @@
 		     ;; place the point in the line.
 		     (min oldline (progn (goto-char (point-max))
                                          (forward-line -1)
-                                         (line-number-at-pos))))))))
+                                         (line-number-at-pos)))
+		     vc-annotate-backend)))))
 
 (defun vc-annotate-compcar (threshold a-list)
   "Test successive cons cells of A-LIST against THRESHOLD.
--- a/lisp/vc-bzr.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/vc-bzr.el	Tue Jul 27 16:01:48 2010 +0900
@@ -945,10 +945,12 @@
        ((string-match "\\`\\(ancestor\\|branch\\|\\(revno:\\)?[-0-9]+:\\):"
                       string)
         (completion-table-with-context (substring string 0 (match-end 0))
-                                       'completion-file-name-table
+                                       (apply-partially
+                                        'completion-table-with-predicate
+                                        'completion-file-name-table
+                                        'file-directory-p t)
                                        (substring string (match-end 0))
-                                       ;; Dropping `pred' for no good reason.
-                                       'file-directory-p
+                                       pred
                                        action))
        ((string-match "\\`\\(before\\):" string)
         (completion-table-with-context (substring string 0 (match-end 0))
--- a/lisp/vc-dir.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/vc-dir.el	Tue Jul 27 16:01:48 2010 +0900
@@ -357,6 +357,7 @@
     ;; Insert directory entries in the right places.
     (let ((entry (car entries))
 	  (node (ewoc-nth vc-ewoc 0))
+	  (to-remove nil)
 	  (dotname (file-relative-name default-directory)))
       ;; Insert . if it is not present.
       (unless node
@@ -383,30 +384,38 @@
 	       ((string-lessp nodefile entryfile)
 		(setq node (ewoc-next vc-ewoc node)))
 	       ((string-equal nodefile entryfile)
-		(setf (vc-dir-fileinfo->state (ewoc-data node)) (nth 1 entry))
-		(setf (vc-dir-fileinfo->extra (ewoc-data node)) (nth 2 entry))
-		(setf (vc-dir-fileinfo->needs-update (ewoc-data node)) nil)
-		(ewoc-invalidate vc-ewoc node)
+		(if (nth 1 entry)
+		    (progn
+		      (setf (vc-dir-fileinfo->state (ewoc-data node)) (nth 1 entry))
+		      (setf (vc-dir-fileinfo->extra (ewoc-data node)) (nth 2 entry))
+		      (setf (vc-dir-fileinfo->needs-update (ewoc-data node)) nil)
+		      (ewoc-invalidate vc-ewoc node))
+		  ;; If the state is nil, the file does not exist
+		  ;; anymore, so remember the entry so we can remove
+		  ;; it after we are done inserting all ENTRIES.
+		  (push node to-remove))
 		(setq entries (cdr entries))
 		(setq entry (car entries))
 		(setq node (ewoc-next vc-ewoc node)))
 	       (t
-		(ewoc-enter-before vc-ewoc node
-				   (apply 'vc-dir-create-fileinfo entry))
+		(unless noinsert
+		  (ewoc-enter-before vc-ewoc node
+				     (apply 'vc-dir-create-fileinfo entry)))
 		(setq entries (cdr entries))
 		(setq entry (car entries))))))
 	   (t
-	    ;; We might need to insert a directory node if the
-	    ;; previous node was in a different directory.
-	    (let* ((rd (file-relative-name entrydir))
-		   (prev-node (ewoc-prev vc-ewoc node))
-		   (prev-dir (vc-dir-node-directory prev-node)))
-	      (unless (string-equal entrydir prev-dir)
-		(ewoc-enter-before
-		 vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir))))
-	    ;; Now insert the node itself.
-	    (ewoc-enter-before vc-ewoc node
-			       (apply 'vc-dir-create-fileinfo entry))
+	    (unless noinsert
+	      ;; We might need to insert a directory node if the
+	      ;; previous node was in a different directory.
+	      (let* ((rd (file-relative-name entrydir))
+		     (prev-node (ewoc-prev vc-ewoc node))
+		     (prev-dir (vc-dir-node-directory prev-node)))
+		(unless (string-equal entrydir prev-dir)
+		  (ewoc-enter-before
+		   vc-ewoc node (vc-dir-create-fileinfo rd nil nil nil entrydir))))
+	      ;; Now insert the node itself.
+	      (ewoc-enter-before vc-ewoc node
+				 (apply 'vc-dir-create-fileinfo entry)))
 	    (setq entries (cdr entries) entry (car entries))))))
       ;; We're past the last node, all remaining entries go to the end.
       (unless (or node noinsert)
@@ -422,7 +431,10 @@
 		   vc-ewoc (vc-dir-create-fileinfo rd nil nil nil entrydir))))
 	      ;; Now insert the node itself.
 	      (ewoc-enter-last vc-ewoc
-			       (apply 'vc-dir-create-fileinfo entry)))))))))
+			       (apply 'vc-dir-create-fileinfo entry))))))
+      (when to-remove
+	(let ((inhibit-read-only t))
+	  (apply 'ewoc-delete vc-ewoc (nreverse to-remove)))))))
 
 (defun vc-dir-busy ()
   (and (buffer-live-p vc-dir-process-buffer)
@@ -878,10 +890,12 @@
 		      (vc-dir-resync-directory-files file)
 		      (ewoc-set-hf vc-ewoc
 				   (vc-dir-headers vc-dir-backend default-directory) ""))
-                  (let ((state (vc-dir-recompute-file-state file ddir)))
+                  (let* ((complete-state (vc-dir-recompute-file-state file ddir))
+			 (state (cadr complete-state)))
                     (vc-dir-update
-                     (list state)
-                     status-buf (eq (cadr state) 'up-to-date))))))))))
+                     (list complete-state)
+                     status-buf (or (not state)
+				    (eq state 'up-to-date)))))))))))
     ;; Remove out-of-date entries from vc-dir-buffers.
     (dolist (b drop) (setq vc-dir-buffers (delq b vc-dir-buffers)))))
 
--- a/lisp/vc-dispatcher.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/vc-dispatcher.el	Tue Jul 27 16:01:48 2010 +0900
@@ -101,7 +101,7 @@
 ;; that on-disk files and the contents of their visiting Emacs buffers
 ;; coincide.
 ;;
-;; When the client mode adds a local mode-line-hook to a buffer, it
+;; When the client mode adds a local vc-mode-line-hook to a buffer, it
 ;; will be called with the buffer file name as argument whenever the
 ;; dispatcher resynchs the buffer.
 
@@ -454,6 +454,10 @@
       (revert-buffer arg no-confirm t))
     (vc-restore-buffer-context context)))
 
+(defvar vc-mode-line-hook nil)
+(make-variable-buffer-local 'vc-mode-line-hook)
+(put 'vc-mode-line-hook 'permanent-local t)
+
 (defun vc-resynch-window (file &optional keep noquery)
   "If FILE is in the current buffer, either revert or unvisit it.
 The choice between revert (to see expanded keywords) and unvisit
@@ -479,7 +483,8 @@
                          (not (eq (get major-mode 'mode-class) 'special))
                          (view-mode-enter))))
 
-	     (run-hook-with-args 'mode-line-hook buffer-file-name))
+             ;; FIXME: Why use a hook?  Why pass it buffer-file-name?
+	     (run-hook-with-args 'vc-mode-line-hook buffer-file-name))
 	 (kill-buffer (current-buffer)))))
 
 (declare-function vc-dir-resynch-file "vc-dir" (&optional fname))
--- a/lisp/vc-git.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/vc-git.el	Tue Jul 27 16:01:48 2010 +0900
@@ -551,13 +551,18 @@
   (let* (process-file-side-effects
 	 (coding-system-for-read 'binary)
 	 (coding-system-for-write 'binary)
-	 (fullname (substring
-		    (vc-git--run-command-string
-		     file "ls-files" "-z" "--full-name" "--")
-		    0 -1)))
+	 (fullname
+	  (let ((fn (vc-git--run-command-string
+		     file "ls-files" "-z" "--full-name" "--")))
+	    ;; ls-files does not return anything when looking for a
+	    ;; revision of a file that has been renamed or removed.
+	    (if (string= fn "")
+		(file-relative-name file (vc-git-root default-directory))
+	      (substring fn 0 -1)))))
     (vc-git-command
      buffer 0
-     (concat (if rev rev "HEAD") ":" fullname) "cat-file" "blob")))
+     nil
+     "cat-file" "blob" (concat (if rev rev "HEAD") ":" fullname))))
 
 (defun vc-git-checkout (file &optional editable rev)
   (vc-git-command nil 0 file "checkout" (or rev "HEAD")))
@@ -689,7 +694,7 @@
 
 (defun vc-git-annotate-command (file buf &optional rev)
   (let ((name (file-relative-name file)))
-    (vc-git-command buf 'async name "blame" "--date=iso" "-C" "-C" rev)))
+    (vc-git-command buf 'async nil "blame" "--date=iso" "-C" "-C" rev "--" name)))
 
 (declare-function vc-annotate-convert-time "vc-annotate" (time))
 
@@ -706,8 +711,12 @@
     (when (looking-at "\\([0-9a-f^][0-9a-f]+\\) \\(\\([^(]+\\) \\)?")
       (let ((revision (match-string-no-properties 1)))
 	(if (match-beginning 2)
-	    (cons revision (expand-file-name (match-string-no-properties 3)
-					     (vc-git-root default-directory)))
+	    (let ((fname (match-string-no-properties 3)))
+	      ;; Remove trailing whitespace from the file name.
+	      (when (string-match " +\\'" fname)
+		(setq fname (substring fname 0 (match-beginning 0))))
+	      (cons revision
+		    (expand-file-name fname (vc-git-root default-directory))))
 	  revision)))))
 
 ;;; TAG SYSTEM
@@ -731,11 +740,10 @@
 (defun vc-git-previous-revision (file rev)
   "Git-specific version of `vc-previous-revision'."
   (if file
-      (let* ((default-directory (file-name-directory (expand-file-name file)))
-             (file (file-name-nondirectory file))
+      (let* ((fname (file-relative-name file))
              (prev-rev (with-temp-buffer
                          (and
-                          (vc-git--out-ok "rev-list" "-2" rev "--" file)
+                          (vc-git--out-ok "rev-list" "-2" rev "--" fname)
                           (goto-char (point-max))
                           (bolp)
                           (zerop (forward-line -1))
--- a/lisp/vc-hooks.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/vc-hooks.el	Tue Jul 27 16:01:48 2010 +0900
@@ -880,7 +880,8 @@
     (setq vc-mode nil))
   (when buffer-file-name
     (vc-file-clearprops buffer-file-name)
-    (add-hook 'mode-line-hook 'vc-mode-line nil t)
+    ;; FIXME: Why use a hook?  Why pass it buffer-file-name?
+    (add-hook 'vc-mode-line-hook 'vc-mode-line nil t)
     (let (backend)
       (cond
        ((setq backend (with-demoted-errors (vc-backend buffer-file-name)))
--- a/lisp/vc-svn.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/vc-svn.el	Tue Jul 27 16:01:48 2010 +0900
@@ -170,7 +170,7 @@
                      (?? . unregistered)
                      ;; This is what vc-svn-parse-status does.
                      (?~ . edited)))
-	(re (if remote "^\\(.\\)...... \\([ *]\\) +\\(?:[-0-9]+\\)?   \\(.*\\)$"
+	(re (if remote "^\\(.\\)......? \\([ *]\\) +\\(?:[-0-9]+\\)?   \\(.*\\)$"
 	      ;; Subexp 2 is a dummy in this case, so the numbers match.
 	      "^\\(.\\)....\\(.\\) \\(.*\\)$"))
        result)
--- a/lisp/vc.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/vc.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1398,6 +1398,16 @@
 ;;          (vc-call-backend ',(vc-backend f)
 ;;                           'diff (list ',f) ',rev1 ',rev2))))))
 
+(defvar vc-coding-system-inherit-eol t
+  "When non-nil, inherit the EOL format for reading Diff output from the file.
+
+Used in `vc-coding-system-for-diff' to determine the EOL format to use
+for reading Diff output for a file.  If non-nil, the EOL format is
+inherited from the file itself.
+Set this variable to nil if your Diff tool might use a different
+EOL.  Then Emacs will auto-detect the EOL format in Diff output, which
+gives better results.") ;; Cf. bug#4451.
+
 (defun vc-coding-system-for-diff (file)
   "Return the coding system for reading diff output for FILE."
   (or coding-system-for-read
@@ -1405,7 +1415,12 @@
       ;; use the buffer's coding system
       (let ((buf (find-buffer-visiting file)))
         (when buf (with-current-buffer buf
-		    buffer-file-coding-system)))
+		    (if vc-coding-system-inherit-eol
+			buffer-file-coding-system
+		      ;; Don't inherit the EOL part of the coding-system,
+		      ;; because some Diff tools may choose to use
+		      ;; a different one.  bug#4451.
+		      (coding-system-base buffer-file-coding-system)))))
       ;; otherwise, try to find one based on the file name
       (car (find-operation-coding-system 'insert-file-contents file))
       ;; and a final fallback
@@ -1655,8 +1670,9 @@
 		    rev)))
     (switch-to-buffer-other-window (vc-find-revision file revision))))
 
-(defun vc-find-revision (file revision)
-  "Read REVISION of FILE into a buffer and return the buffer."
+(defun vc-find-revision (file revision &optional backend)
+  "Read REVISION of FILE into a buffer and return the buffer.
+Use BACKEND as the VC backend if specified."
   (let ((automatic-backup (vc-version-backup-file-name file revision))
 	(filebuf (or (get-file-buffer file) (current-buffer)))
         (filename (vc-version-backup-file-name file revision 'manual)))
@@ -1674,7 +1690,9 @@
 		      ;; Change buffer to get local value of
 		      ;; vc-checkout-switches.
 		      (with-current-buffer filebuf
-			(vc-call find-revision file revision outbuf))))
+			(if backend
+			    (vc-call-backend backend 'find-revision file revision outbuf)
+			  (vc-call find-revision file revision outbuf)))))
 		  (setq failed nil))
 	      (when (and failed (file-exists-p filename))
 		(delete-file filename))))
--- a/lisp/wid-edit.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/wid-edit.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1156,14 +1156,17 @@
     (if field
 	(narrow-to-region (line-beginning-position) (line-end-position)))))
 
+;; This used to say:
+;; "When not inside a field, move to the previous button or field."
+;; but AFAICS, it has always just thrown an error.
 (defun widget-complete ()
   "Complete content of editable field from point.
-When not inside a field, move to the previous button or field."
+When not inside a field, signal an error."
   (interactive)
   (let ((field (widget-field-find (point))))
-    (when field
-      (widget-apply field :complete))
-    (error "Not in an editable field")))
+    (if field
+	(widget-apply field :complete)
+      (error "Not in an editable field"))))
 
 ;;; Setting up the buffer.
 
--- a/lisp/x-dnd.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/x-dnd.el	Tue Jul 27 16:01:48 2010 +0900
@@ -1,9 +1,9 @@
-;;; x-dnd.el --- drag and drop support for X.
+;;; x-dnd.el --- drag and drop support for X  -*- coding: utf-8 -*-
 
 ;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
 ;;   Free Software Foundation, Inc.
 
-;; Author: Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+;; Author: Jan Djärv <jan.h.d@swipnet.se>
 ;; Maintainer: FSF
 ;; Keywords: window, drag, drop
 
--- a/lisp/xml.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/xml.el	Tue Jul 27 16:01:48 2010 +0900
@@ -321,18 +321,20 @@
 		(progn
 		  (forward-char -1)
 		  (setq result (xml-parse-tag parse-dtd parse-ns))
-		  (if (and xml result (not xml-sub-parser))
-		      ;;  translation of rule [1] of XML specifications
-		      (error "XML: (Not Well-Formed) Only one root tag allowed")
-		    (cond
-		     ((null result))
-		     ((and (listp (car result))
-			   parse-dtd)
-		      (setq dtd (car result))
-		      (if (cdr result)	; possible leading comment
-			  (add-to-list 'xml (cdr result))))
-		     (t
-		      (add-to-list 'xml result)))))
+		  (cond
+		   ((null result)
+		    ;; Not looking at an xml start tag.
+		    (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"))
+		   ((and (listp (car result))
+			 parse-dtd)
+		    (setq dtd (car result))
+		    (if (cdr result)	; possible leading comment
+			(add-to-list 'xml (cdr result))))
+		   (t
+		    (add-to-list 'xml result))))
 	      (goto-char (point-max))))
 	  (if parse-dtd
 	      (cons dtd (nreverse xml))
--- a/lisp/xt-mouse.el	Tue May 11 20:15:29 2010 +0900
+++ b/lisp/xt-mouse.el	Tue Jul 27 16:01:48 2010 +0900
@@ -122,8 +122,8 @@
 ;; read xterm sequences above ascii 127 (#x7f)
 (defun xterm-mouse-event-read ()
   (let ((c (read-char)))
-    (if (< c 0)
-        (+ c #x8000000 128)
+    (if (> c #x3FFF80)
+        (+ 128 (- c #x3FFF80))
       c)))
 
 (defun xterm-mouse-truncate-wrap (f)
--- a/src/ChangeLog	Tue May 11 20:15:29 2010 +0900
+++ b/src/ChangeLog	Tue Jul 27 16:01:48 2010 +0900
@@ -1,4 +1,183 @@
-2010-05-11  Karel Klic  <kklic@redhat.com>  (tiny change)
+2010-07-25  Christoph Scholtes  <cschol2112@gmail.com>
+
+	* minibuf.c (Fread_buffer): Doc fix (bug#6528).
+
+2010-07-22  Christoph Scholtes  <cschol2112@gmail.com>
+
+	* window.c (Fwindow_height): Doc fix (bug#6518).
+
+2010-07-21  Juanma Barranquero  <lekktu@gmail.com>
+
+	* buffer.c (syms_of_buffer) <fringe-indicator-alist>: Doc fix.
+
+2010-07-17  Jan Djärv  <jan.h.d@swipnet.se>
+
+	* gtkutil.c (xg_event_is_for_menubar): Also check that event window
+	is related to the menu bar (Bug#6499).
+
+2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
+
+	* xterm.h (x_menubar_window_to_frame): Second parameter is XEvent*.
+
+	* xterm.c (handle_one_xevent): Pass event to x_menubar_window_to_frame.
+
+	* xmenu.c (x_activate_menubar): Revert previous fix for Bug#6499,
+	i.e. don't put back ButtonRelease (Bug#6608).
+
+	* xfns.c (x_menubar_window_to_frame): Take XEvent as second parameter
+	instead of Window.  Call xg_event_is_for_menubar when
+	USE_GTK (Bug#6499).
+
+	* gtkutil.h (xg_event_is_for_menubar): Declare.
+
+	* gtkutil.c (xg_event_is_for_menubar): New function (Bug#6499).
+
+2010-07-14  Eli Zaretskii  <eliz@gnu.org>
+
+	* w32fns.c (x_set_foreground_color): Fix setting the cursor color
+	when it's the same as the old foreground.  (Bug#6609)
+
+2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xfaces.c (realize_face): Garbage the frame if a face is removed
+	(Bug#6593).
+
+2010-07-05  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* keyboard.c: Remove duplicate <setjmp.h>.
+	(read_key_sequence): Remove volatile qualifiers.
+
+2010-07-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* dispextern.h (FRINGE_HEIGHT_BITS): New define.
+	(struct glyph_row): New members left_fringe_offset and
+	right_fringe_offset.
+
+	* xterm.c (x_draw_fringe_bitmap): Don't clip bottom aligned bitmap
+	specially.
+	* w32term.c (w32_draw_fringe_bitmap): Likewise.
+	* nsterm.m (ns_draw_fringe_bitmap): Likewise.
+
+	* fringe.c (draw_fringe_bitmap_1): Don't clip bitmap here.
+	Take account of	bitmap offset.
+	(draw_window_fringes): Take account of window vscroll.
+	(update_window_fringes): Likewise.  Extend top-aligned top indicator
+	or bottom-aligned bottom indicator to adjacent rows if it doesn't fit
+	in one row.  Don't set redraw_fringe_bitmaps_p outside row comparison.
+	Set left_fringe_offset and right_fringe_offset (Bug#5634, Bug#6325).
+
+2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
+
+	* w32fns.c (Qtooltip): Declare.
+	Suggested by Andy Moreton <andrewjmoreton@gmail.com>.
+
+2010-07-03  Jan Djärv  <jan.h.d@swipnet.se>
+
+	* xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid
+	grab on just Press (Bug#6499).
+
+2010-07-02  Chong Yidong  <cyd@stupidchicken.com>
+
+	* frame.c (Qtooltip): New var.
+	(delete_frame): Use it.  Fix faulty if statement.  Don't update
+	mode line for tooltip frames.  Suggested by Martin Rudalics.
+
+	* xfns.c (x_create_tip_frame):
+	* w32fns.c (x_create_tip_frame): Use it.
+
+2010-06-30  Naohiro Aota  <naota@elisp.net>  (tiny change)
+
+	* xftfont.c (xftfont_open): Check font width one by one also when
+	spacing is dual.
+
+	* ftfont.c (ftfont_open): Ditto.
+
+2010-06-26  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* alloc.c (Fmake_byte_code): Don't access undefined argument
+	(Bug#6517).
+
+2010-06-25  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xdisp.c (next_element_from_image): Ensure that after-strings are
+	read the next time we hit handle_stop (Bug#1336).
+
+2010-06-23  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* lread.c (read1): Signal error if #s is not followed by paren.
+
+2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
+
+	* image.c (free_image): Mark frame as garbaged (Bug#6426).
+
+	* keymap.c (Fdefine_key): Doc fix (Bug#6460).
+
+2010-06-15  Glenn Morris  <rgm@gnu.org>
+
+	* editfns.c (Fbyte_to_string): Pacify compiler.
+
+2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* dbusbind.c (xd_append_arg): Don't "make-unibyte" the string.
+	Check `object's type before accessing its guts.
+
+2010-06-08  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* minibuf.c (Fall_completions): Add more checks.
+
+2010-06-08  Juanma Barranquero  <lekktu@gmail.com>
+
+	* minibuf.c (Fall_completions): Check COLLECTION's size (bug#6378).
+
+2010-06-03  Andreas Schwab  <schwab@linux-m68k.org>
+
+	* process.c (conv_lisp_to_sockaddr): Fix conversion of IPv4
+	address.  (Bug#6346)
+
+2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
+
+	* ccl.c (Fccl_program_p): Fix typo in docstring.
+
+2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* keymap.c (Fwhere_is_internal): Fix handling of remapping (in thread
+	of bug#6305).
+
+2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xdisp.c (redisplay_window): After redisplay, check if point is
+	still valid before setting it (Bug#6177).
+
+2010-05-20  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
+
+	* s/netbsd.h: If terminfo is found, use it in preference to
+	termcap.  (Bug#6190)  [Backport from trunk]
+
+2010-05-20  Kevin Ryde  <user42@zip.com.au>
+
+	* keyboard.c (Vlast_command, Vkeyboard_translate_table)
+	(Voverriding_terminal_local_map, Vsystem_key_alist)
+	(Vlocal_function_key_map): Fix manual link in docstring (Bug#6224).
+
+2010-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* editfns.c (Fbyte_to_string): New function.
+
+2010-05-18  Chong Yidong  <cyd@stupidchicken.com>
+
+	* character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to
+	prevent stack overflow if number of arguments is too large
+	(Bug#6214).
+
+2010-05-11  Eli Zaretskii  <eliz@gnu.org>
+
+	* makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(SRC)/w32.h.
+
+	* w32fns.c: Include w32.h.
+	(Fw32_shell_execute): Decode the error message before passing it
+	to `error'.  (Bug#6126)
+
+2010-05-11  Karel Klic  <kklic@redhat.com>
 
 	* ftfont.c: Fix incorrect parentheses of #if condition for
 	definining M17N_FLT_USE_NEW_FEATURE.
@@ -209,7 +388,7 @@
 	(xg_toggle_notify_cb, xg_set_toolkit_scroll_bar_thumb)
 	(xg_create_tool_bar): Remove unused variables.
 	(x_wm_set_size_hint): Move declarations before statements.
-	(xg_create_frame_widgets): Remove variable grav,
+	(xg_create_frame_widgets): Remove variable grav.
 
 2010-02-21  Chong Yidong  <cyd@stupidchicken.com>
 
@@ -327,7 +506,7 @@
 
 	* xfns.c (Fx_create_frame): Remove window size matching code from
 	2010-01-15.
-	(x_get_current_desktop, x_get_desktop_workarea): Remove
+	(x_get_current_desktop, x_get_desktop_workarea): Remove.
 
 2010-01-27  Jason Rumney  <jasonr@gnu.org>
 
@@ -1164,7 +1343,7 @@
 	fontconfig settings like hinting.
 	(font_load_for_lface): If spec had a name in it, store it in entity.
 
-	* emacs.c (main): Call syms_of_xsettings
+	* emacs.c (main): Call syms_of_xsettings.
 
 	* config.in: HAVE_GCONF is new.
 
@@ -6749,7 +6928,7 @@
 	(composition_adjust_point, Fcomposition_get_gstring): New functions.
 	(syms_of_composite): Initialize gstring_hash_table, gstrint_work,
 	and gstring_work_headers.  DEFVAR_LISP composition-function-table.
-	Defsubr compostion_get_gstring.
+	Defsubr composition_get_gstring.
 
 	* dispextern.h (struct glyph): New union u.cmp.  Delete the member
 	cmp_id.
--- a/src/alloc.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/alloc.c	Tue Jul 27 16:01:48 2010 +0900
@@ -3094,7 +3094,7 @@
   else
     val = Fmake_vector (len, Qnil);
 
-  if (STRINGP (args[1]) && STRING_MULTIBYTE (args[1]))
+  if (nargs > 1 && STRINGP (args[1]) && STRING_MULTIBYTE (args[1]))
     /* BYTECODE-STRING must have been produced by Emacs 20.2 or the
        earlier because they produced a raw 8-bit string for byte-code
        and now such a byte-code string is loaded as multibyte while
--- a/src/buffer.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/buffer.c	Tue Jul 27 16:01:48 2010 +0900
@@ -6032,14 +6032,14 @@
 
 INDICATOR specifies the logical indicator type which is one of the
 following symbols: `truncation' , `continuation', `overlay-arrow',
-`top', `bottom', `up', `down', `one-line', `empty-line', or `unknown'.
-
-BITMAPS is list of symbols (LEFT RIGHT [LEFT1 RIGHT1]) which specifies
+`top', `bottom', `top-bottom', `up', `down', empty-line', or `unknown'.
+
+BITMAPS is a list of symbols (LEFT RIGHT [LEFT1 RIGHT1]) which specifies
 the actual bitmap shown in the left or right fringe for the logical
 indicator.  LEFT and RIGHT are the bitmaps shown in the left and/or
 right fringe for the specific indicator.  The LEFT1 or RIGHT1 bitmaps
-are used only for the `bottom' and `one-line' indicators when the last
-\(only) line in has no final newline.  BITMAPS may also be a single
+are used only for the `bottom' and `top-bottom' indicators when the
+last (only) line has no final newline.  BITMAPS may also be a single
 symbol which is used in both left and right fringes.  */);
 
   DEFVAR_PER_BUFFER ("fringe-cursor-alist",
--- a/src/ccl.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/ccl.c	Tue Jul 27 16:01:48 2010 +0900
@@ -1362,7 +1362,7 @@
 		    if (point >= size) continue;
 		    map = AREF (Vcode_conversion_map_vector, point);
 
-		    /* Check map varidity.  */
+		    /* Check map validity.  */
 		    if (!CONSP (map)) continue;
 		    map = XCDR (map);
 		    if (!VECTORP (map)) continue;
@@ -1373,7 +1373,7 @@
 
 		    /* check map type,
 		       [STARTPOINT VAL1 VAL2 ...] or
-		       [t ELELMENT STARTPOINT ENDPOINT]  */
+		       [t ELEMENT STARTPOINT ENDPOINT]  */
 		    if (NUMBERP (content))
 		      {
 			point = XUINT (content);
@@ -1535,7 +1535,7 @@
 		      if (point >= map_vector_size) continue;
 		      map = AREF (Vcode_conversion_map_vector, point);
 
-		      /* Check map varidity.  */
+		      /* Check map validity.  */
 		      if (!CONSP (map)) continue;
 		      map = XCDR (map);
 		      if (!VECTORP (map)) continue;
@@ -1977,7 +1977,7 @@
 
 DEFUN ("ccl-program-p", Fccl_program_p, Sccl_program_p, 1, 1, 0,
        doc: /* Return t if OBJECT is a CCL program name or a compiled CCL program code.
-See the documentation of  `define-ccl-program' for the detail of CCL program.  */)
+See the documentation of `define-ccl-program' for the detail of CCL program.  */)
      (object)
      Lisp_Object object;
 {
@@ -2229,7 +2229,7 @@
 
       slot = AREF (Vccl_program_table, idx);
       if (!VECTORP (slot))
-	/* This is the first unsed slot.  Register NAME here.  */
+	/* This is the first unused slot.  Register NAME here.  */
 	break;
 
       if (EQ (name, AREF (slot, 0)))
--- a/src/character.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/character.c	Tue Jul 27 16:01:48 2010 +0900
@@ -961,10 +961,13 @@
      int n;
      Lisp_Object *args;
 {
-  int i;
-  unsigned char *buf = (unsigned char *) alloca (MAX_MULTIBYTE_LENGTH * n);
-  unsigned char *p = buf;
-  int c;
+  int i, c;
+  unsigned char *buf, *p;
+  Lisp_Object str;
+  USE_SAFE_ALLOCA;
+
+  SAFE_ALLOCA (buf, unsigned char *, MAX_MULTIBYTE_LENGTH * n);
+  p = buf;
 
   for (i = 0; i < n; i++)
     {
@@ -973,7 +976,9 @@
       p += CHAR_STRING (c, p);
     }
 
-  return make_string_from_bytes ((char *) buf, n, p - buf);
+  str = make_string_from_bytes ((char *) buf, n, p - buf);
+  SAFE_FREE ();
+  return str;
 }
 
 DEFUN ("unibyte-string", Funibyte_string, Sunibyte_string, 0, MANY, 0,
@@ -983,10 +988,13 @@
      int n;
      Lisp_Object *args;
 {
-  int i;
-  unsigned char *buf = (unsigned char *) alloca (n);
-  unsigned char *p = buf;
-  unsigned c;
+  int i, c;
+  unsigned char *buf, *p;
+  Lisp_Object str;
+  USE_SAFE_ALLOCA;
+
+  SAFE_ALLOCA (buf, unsigned char *, n);
+  p = buf;
 
   for (i = 0; i < n; i++)
     {
@@ -997,7 +1005,9 @@
       *p++ = c;
     }
 
-  return make_string_from_bytes ((char *) buf, n, p - buf);
+  str = make_string_from_bytes ((char *) buf, n, p - buf);
+  SAFE_FREE ();
+  return str;
 }
 
 DEFUN ("char-resolve-modifiers", Fchar_resolve_modifiers,
--- a/src/character.h	Tue May 11 20:15:29 2010 +0900
+++ b/src/character.h	Tue Jul 27 16:01:48 2010 +0900
@@ -285,7 +285,7 @@
 
 /* If P is before LIMIT, advance P to the next character boundary.
    Assumes that P is already at a character boundary of the same
-   mulitbyte form whose end address is LIMIT.  */
+   multibyte form whose end address is LIMIT.  */
 
 #define NEXT_CHAR_BOUNDARY(p, limit)	\
   do {					\
@@ -296,7 +296,7 @@
 
 /* If P is after LIMIT, advance P to the previous character boundary.
    Assumes that P is already at a character boundary of the same
-   mulitbyte form whose beginning address is LIMIT.  */
+   multibyte form whose beginning address is LIMIT.  */
 
 #define PREV_CHAR_BOUNDARY(p, limit)					\
   do {									\
@@ -608,7 +608,7 @@
    : 0)
 
 /* If C is a high surrogate, return 1.  If C is a low surrogate,
-   return 0. Otherwise, return 0.  */
+   return 0.  Otherwise, return 0.  */
 
 #define CHAR_SURROGATE_PAIR_P(c)	\
   ((c) < 0xD800 ? 0			\
--- a/src/cmds.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/cmds.c	Tue Jul 27 16:01:48 2010 +0900
@@ -270,7 +270,9 @@
        doc: /* Delete the previous N characters (following if N is negative).
 Optional second arg KILLFLAG non-nil means kill instead (save in kill ring).
 Interactively, N is the prefix arg, and KILLFLAG is set if
-N was explicitly specified.  */)
+N was explicitly specified.
+This is meant for interactive use only; from Lisp, better use `delete-char'
+with a negated argument.  */)
      (n, killflag)
      Lisp_Object n, killflag;
 {
--- a/src/config.in	Tue May 11 20:15:29 2010 +0900
+++ b/src/config.in	Tue Jul 27 16:01:48 2010 +0900
@@ -319,10 +319,10 @@
 /* Define to 1 if you have the <kerberos/krb.h> header file. */
 #undef HAVE_KERBEROS_KRB_H
 
-/* Define to 1 if `e_text' is member of `krb5_error'. */
+/* Define to 1 if `e_text' is a member of `krb5_error'. */
 #undef HAVE_KRB5_ERROR_E_TEXT
 
-/* Define to 1 if `text' is member of `krb5_error'. */
+/* Define to 1 if `text' is a member of `krb5_error'. */
 #undef HAVE_KRB5_ERROR_TEXT
 
 /* Define to 1 if you have the <krb5.h> header file. */
@@ -616,25 +616,25 @@
 /* Define to 1 if you have the `strsignal' function. */
 #undef HAVE_STRSIGNAL
 
-/* Define to 1 if `ifr_addr' is member of `struct ifreq'. */
+/* Define to 1 if `ifr_addr' is a member of `struct ifreq'. */
 #undef HAVE_STRUCT_IFREQ_IFR_ADDR
 
-/* Define to 1 if `ifr_broadaddr' is member of `struct ifreq'. */
+/* Define to 1 if `ifr_broadaddr' is a member of `struct ifreq'. */
 #undef HAVE_STRUCT_IFREQ_IFR_BROADADDR
 
-/* Define to 1 if `ifr_flags' is member of `struct ifreq'. */
+/* Define to 1 if `ifr_flags' is a member of `struct ifreq'. */
 #undef HAVE_STRUCT_IFREQ_IFR_FLAGS
 
-/* Define to 1 if `ifr_hwaddr' is member of `struct ifreq'. */
+/* Define to 1 if `ifr_hwaddr' is a member of `struct ifreq'. */
 #undef HAVE_STRUCT_IFREQ_IFR_HWADDR
 
-/* Define to 1 if `ifr_netmask' is member of `struct ifreq'. */
+/* Define to 1 if `ifr_netmask' is a member of `struct ifreq'. */
 #undef HAVE_STRUCT_IFREQ_IFR_NETMASK
 
-/* Define to 1 if `n_un.n_name' is member of `struct nlist'. */
+/* Define to 1 if `n_un.n_name' is a member of `struct nlist'. */
 #undef HAVE_STRUCT_NLIST_N_UN_N_NAME
 
-/* Define to 1 if `tm_zone' is member of `struct tm'. */
+/* Define to 1 if `tm_zone' is a member of `struct tm'. */
 #undef HAVE_STRUCT_TM_TM_ZONE
 
 /* Define to 1 if `struct utimbuf' is declared by <utime.h>. */
@@ -858,6 +858,9 @@
 /* Define to the one symbol short name of this package. */
 #undef PACKAGE_TARNAME
 
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
@@ -917,6 +920,28 @@
 /* Define to 1 if using the Motif X toolkit. */
 #undef USE_MOTIF
 
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
 /* Define to 1 if we should use toolkit scroll bars. */
 #undef USE_TOOLKIT_SCROLL_BARS
 
@@ -952,28 +977,6 @@
 /* Define to 1 if you need to in order for `stat' and other things to work. */
 #undef _POSIX_SOURCE
 
-/* Enable extensions on AIX 3, Interix.  */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them.  */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris.  */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop.  */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
 /* Define to rpl_ if the getopt replacement functions and variables should be
    used. */
 #undef __GETOPT_PREFIX
--- a/src/dbusbind.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/dbusbind.c	Tue Jul 27 16:01:48 2010 +0900
@@ -405,6 +405,7 @@
     switch (dtype)
       {
       case DBUS_TYPE_BYTE:
+	CHECK_NUMBER (object);
 	{
 	  unsigned char val = XUINT (object) & 0xFF;
 	  XD_DEBUG_MESSAGE ("%c %d", dtype, val);
@@ -423,6 +424,7 @@
 	}
 
       case DBUS_TYPE_INT16:
+	CHECK_NUMBER (object);
 	{
 	  dbus_int16_t val = XINT (object);
 	  XD_DEBUG_MESSAGE ("%c %d", dtype, (int) val);
@@ -432,6 +434,7 @@
 	}
 
       case DBUS_TYPE_UINT16:
+	CHECK_NUMBER (object);
 	{
 	  dbus_uint16_t val = XUINT (object);
 	  XD_DEBUG_MESSAGE ("%c %u", dtype, (unsigned int) val);
@@ -441,6 +444,7 @@
 	}
 
       case DBUS_TYPE_INT32:
+	CHECK_NUMBER (object);
 	{
 	  dbus_int32_t val = XINT (object);
 	  XD_DEBUG_MESSAGE ("%c %d", dtype, val);
@@ -450,6 +454,7 @@
 	}
 
       case DBUS_TYPE_UINT32:
+	CHECK_NUMBER (object);
 	{
 	  dbus_uint32_t val = XUINT (object);
 	  XD_DEBUG_MESSAGE ("%c %u", dtype, val);
@@ -459,6 +464,7 @@
 	}
 
       case DBUS_TYPE_INT64:
+	CHECK_NUMBER (object);
 	{
 	  dbus_int64_t val = XINT (object);
 	  XD_DEBUG_MESSAGE ("%c %d", dtype, (int) val);
@@ -468,6 +474,7 @@
 	}
 
       case DBUS_TYPE_UINT64:
+	CHECK_NUMBER (object);
 	{
 	  dbus_uint64_t val = XUINT (object);
 	  XD_DEBUG_MESSAGE ("%c %u", dtype, (unsigned int) val);
@@ -477,6 +484,7 @@
 	}
 
       case DBUS_TYPE_DOUBLE:
+	CHECK_FLOAT (object);
 	{
 	  double val = XFLOAT_DATA (object);
 	  XD_DEBUG_MESSAGE ("%c %f", dtype, val);
@@ -488,8 +496,13 @@
       case DBUS_TYPE_STRING:
       case DBUS_TYPE_OBJECT_PATH:
       case DBUS_TYPE_SIGNATURE:
+	CHECK_STRING (object);
 	{
-	  char *val = SDATA (Fstring_make_unibyte (object));
+	  /* We need to send a valid UTF-8 string.  We could encode `object'
+	     but by not encoding it, we guarantee it's valid utf-8, even if
+	     it contains eight-bit-bytes.  Of course, you can still send
+	     manually-crafted junk by passing a unibyte string.  */
+	  char *val = SDATA (object);
 	  XD_DEBUG_MESSAGE ("%c %s", dtype, val);
 	  if (!dbus_message_iter_append_basic (iter, dtype, &val))
 	    XD_SIGNAL2 (build_string ("Unable to append argument"), object);
--- a/src/dispextern.h	Tue May 11 20:15:29 2010 +0900
+++ b/src/dispextern.h	Tue Jul 27 16:01:48 2010 +0900
@@ -105,6 +105,8 @@
 /* Number of bits allocated to store fringe bitmap numbers.  */
 #define FRINGE_ID_BITS  16
 
+/* Number of bits allocated to store fringe bitmap height.  */
+#define FRINGE_HEIGHT_BITS 8
 
 
 /***********************************************************************
@@ -778,6 +780,12 @@
   /* Face of the right fringe glyph.  */
   unsigned right_fringe_face_id : FACE_ID_BITS;
 
+  /* Vertical offset of the left fringe bitmap.  */
+  signed left_fringe_offset : FRINGE_HEIGHT_BITS;
+
+  /* Vertical offset of the right fringe bitmap.  */
+  signed right_fringe_offset : FRINGE_HEIGHT_BITS;
+
   /* 1 means that we must draw the bitmaps of this row.  */
   unsigned redraw_fringe_bitmaps_p : 1;
 
--- a/src/editfns.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/editfns.c	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 /* Lisp functions pertaining to editing.
-   Copyright (C) 1985, 1986, 1987, 1989, 1993, 1994, 1995, 1996,
-                 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-                 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+
+Copyright (C) 1985, 1986, 1987, 1989, 1993, 1994, 1995, 1996, 1997,
+  1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
+  2009, 2010 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -220,6 +221,17 @@
   return make_string_from_bytes (str, 1, len);
 }
 
+DEFUN ("byte-to-string", Fbyte_to_string, Sbyte_to_string, 1, 1, 0,
+       doc: /* Convert arg BYTE to a string containing that byte.  */)
+     (byte)
+     Lisp_Object byte;
+{
+  unsigned char b;
+  CHECK_NUMBER (byte);
+  b = XINT (byte);
+  return make_string_from_bytes (&b, 1, 1);
+}
+
 DEFUN ("string-to-char", Fstring_to_char, Sstring_to_char, 1, 1, 0,
        doc: /* Convert arg STRING to a character, the first character of that string.
 A multibyte character is handled correctly.  */)
@@ -4686,6 +4698,7 @@
   defsubr (&Sgoto_char);
   defsubr (&Sstring_to_char);
   defsubr (&Schar_to_string);
+  defsubr (&Sbyte_to_string);
   defsubr (&Sbuffer_substring);
   defsubr (&Sbuffer_substring_no_properties);
   defsubr (&Sbuffer_string);
--- a/src/fns.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/fns.c	Tue Jul 27 16:01:48 2010 +0900
@@ -1,7 +1,8 @@
 /* Random utility Lisp functions.
    Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997,
                  1998, 1999, 2000, 2001, 2002, 2003, 2004,
-                 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+                 2005, 2006, 2007, 2008, 2009, 2010
+		 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -522,7 +523,7 @@
      So, we record strings that have text properties to be copied
      here, and copy the text properties after the concatination.  */
   struct textprop_rec  *textprops = NULL;
-  /* Number of elments in textprops.  */
+  /* Number of elements in textprops.  */
   int num_textprops = 0;
   USE_SAFE_ALLOCA;
 
--- a/src/frame.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/frame.c	Tue Jul 27 16:01:48 2010 +0900
@@ -100,6 +100,7 @@
 Lisp_Object Qheight, Qwidth;
 Lisp_Object Qleft, Qright;
 Lisp_Object Qicon_left, Qicon_top, Qicon_type, Qicon_name;
+Lisp_Object Qtooltip;
 Lisp_Object Qinternal_border_width;
 Lisp_Object Qmouse_color;
 Lisp_Object Qminibuffer;
@@ -1329,7 +1330,7 @@
   struct frame *sf = SELECTED_FRAME ();
   struct kboard *kb;
 
-  int minibuffer_selected;
+  int minibuffer_selected, tooltip_frame;
 
   if (EQ (frame, Qnil))
     {
@@ -1381,13 +1382,15 @@
 	}
     }
 
+  tooltip_frame = !NILP (Fframe_parameter (frame, intern ("tooltip")));
+
   /* Run `delete-frame-functions' unless FORCE is `noelisp' or
      frame is a tooltip.  FORCE is set to `noelisp' when handling
      a disconnect from the terminal, so we don't dare call Lisp
      code.  */
-  if (NILP (Vrun_hooks) || !NILP (Fframe_parameter (frame, intern ("tooltip"))))
+  if (NILP (Vrun_hooks) || tooltip_frame)
     ;
-  if (EQ (force, Qnoelisp))
+  else if (EQ (force, Qnoelisp))
     pending_funcalls
       = Fcons (list3 (Qrun_hook_with_args, Qdelete_frame_functions, frame),
 	       pending_funcalls);
@@ -1633,7 +1636,8 @@
     }
 
   /* Cause frame titles to update--necessary if we now have just one frame.  */
-  update_mode_lines = 1;
+  if (!tooltip_frame)
+    update_mode_lines = 1;
 
   return Qnil;
 }
@@ -4451,6 +4455,8 @@
   staticpro (&Qicon_left);
   Qicon_top = intern_c_string ("icon-top");
   staticpro (&Qicon_top);
+  Qtooltip = intern_c_string ("tooltip");
+  staticpro (&Qtooltip);
   Qleft = intern_c_string ("left");
   staticpro (&Qleft);
   Qright = intern_c_string ("right");
--- a/src/fringe.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/fringe.c	Tue Jul 27 16:01:48 2010 +0900
@@ -561,23 +561,26 @@
   struct fringe_bitmap *fb;
   int period;
   int face_id = DEFAULT_FACE_ID;
+  int offset, header_line_height;
 
-  p.cursor_p = 0;
   p.overlay_p = (overlay & 1) == 1;
   p.cursor_p = (overlay & 2) == 2;
 
   if (which != NO_FRINGE_BITMAP)
     {
+      offset = 0;
     }
   else if (left_p)
     {
       which = row->left_fringe_bitmap;
       face_id = row->left_fringe_face_id;
+      offset = row->left_fringe_offset;
     }
   else
     {
       which = row->right_fringe_bitmap;
       face_id = row->right_fringe_face_id;
+      offset = row->right_fringe_offset;
     }
 
   if (face_id == DEFAULT_FACE_ID)
@@ -598,7 +601,7 @@
   period = fb->period;
 
   /* Convert row to frame coordinates.  */
-  p.y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y);
+  p.y = WINDOW_TO_FRAME_PIXEL_Y (w, row->y) + offset;
 
   p.which = which;
   p.bits = fb->bits;
@@ -607,9 +610,19 @@
   p.h = fb->height;
   p.dh = (period > 0 ? (p.y % period) : 0);
   p.h -= p.dh;
-  /* Clip bitmap if too high.  */
-  if (p.h > row->height)
-    p.h = row->height;
+
+  /* Adjust y to the offset in the row to start drawing the bitmap.  */
+  switch (fb->align)
+    {
+    case ALIGN_BITMAP_CENTER:
+      p.y += (row->height - p.h) / 2;
+      break;
+    case ALIGN_BITMAP_BOTTOM:
+      p.y += (row->visible_height - p.h);
+      break;
+    case ALIGN_BITMAP_TOP:
+      break;
+    }
 
   p.face = FACE_FROM_ID (f, face_id);
 
@@ -625,6 +638,9 @@
   /* Clear left fringe if no bitmap to draw or if bitmap doesn't fill
      the fringe.  */
   p.bx = -1;
+  header_line_height = WINDOW_HEADER_LINE_HEIGHT (w);
+  p.by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, row->y));
+  p.ny = row->visible_height;
   if (left_p)
     {
       int wd = WINDOW_LEFT_FRINGE_WIDTH (w);
@@ -635,7 +651,7 @@
 	p.wd = wd;
       p.x = x - p.wd - (wd - p.wd) / 2;
 
-      if (p.wd < wd || row->height > p.h)
+      if (p.wd < wd || p.y > p.by || p.y + p.h < p.by + p.ny)
 	{
 	  /* If W has a vertical border to its left, don't draw over it.  */
 	  wd -= ((!WINDOW_LEFTMOST_P (w)
@@ -657,35 +673,13 @@
       p.x = x + (wd - p.wd) / 2;
       /* Clear right fringe if no bitmap to draw of if bitmap doesn't fill
 	 the fringe.  */
-      if (p.wd < wd || row->height > p.h)
+      if (p.wd < wd || p.y > p.by || p.y + p.h < p.by + p.ny)
 	{
 	  p.bx = x;
 	  p.nx = wd;
 	}
     }
 
-  if (p.bx >= 0)
-    {
-      int header_line_height = WINDOW_HEADER_LINE_HEIGHT (w);
-
-      p.by = WINDOW_TO_FRAME_PIXEL_Y (w, max (header_line_height, row->y));
-      p.ny = row->visible_height;
-    }
-
-  /* Adjust y to the offset in the row to start drawing the bitmap.  */
-  switch (fb->align)
-    {
-    case ALIGN_BITMAP_CENTER:
-      p.y += (row->height - p.h) / 2;
-      break;
-    case ALIGN_BITMAP_BOTTOM:
-      p.h = fb->height;
-      p.y += (row->visible_height - p.h);
-      break;
-    case ALIGN_BITMAP_TOP:
-      break;
-    }
-
   FRAME_RIF (f)->draw_fringe_bitmap (w, row, &p);
 }
 
@@ -730,7 +724,7 @@
      Elements are:
 	BITMAP		-- use for all
 	(L R)		-- use for left right (whether partial or not)
-	(L R PL PR)	-- use for left rigth partial-left partial-right
+	(L R PL PR)	-- use for left right partial-left partial-right
 	If any value in local binding is not present or t, use global value.
 
      If partial, lookup partial bitmap in default value if not found here.
@@ -911,7 +905,7 @@
   struct glyph_row *row;
   int yb = window_text_bottom_y (w);
   int nrows = w->current_matrix->nrows;
-  int y = 0, rn;
+  int y, rn;
   int updated = 0;
 
   if (w->pseudo_window_p)
@@ -923,7 +917,7 @@
 	  || WINDOW_RIGHT_FRINGE_WIDTH (w) == 0))
     updated++;
 
-  for (y = 0, rn = 0, row = w->current_matrix->rows;
+  for (y = w->vscroll, rn = 0, row = w->current_matrix->rows;
        y < yb && rn < nrows;
        y += row->height, ++row, ++rn)
     {
@@ -959,6 +953,9 @@
   Lisp_Object ind = Qnil;
 #define MAX_BITMAP_CACHE (8*4)
   int bitmap_cache[MAX_BITMAP_CACHE];
+  int top_ind_rn, bot_ind_rn;
+  int top_ind_min_y, bot_ind_max_y;
+  int top_row_ends_at_zv_p, bot_row_ends_at_zv_p;
 
   if (w->pseudo_window_p)
     return 0;
@@ -987,11 +984,10 @@
 	boundary_top = boundary_bot = Qleft;
     }
 
+  top_ind_rn = bot_ind_rn = -1;
   if (!NILP (ind))
     {
-      int done_top = 0, done_bot = 0;
-
-      for (y = 0, rn = 0;
+      for (y = w->vscroll, rn = 0;
 	   y < yb && rn < nrows;
 	   y += row->height, ++rn)
 	{
@@ -1012,31 +1008,25 @@
 
 	  if (!row->mode_line_p)
 	    {
-	      if (!done_top)
+	      if (top_ind_rn < 0 && row->visible_height > 0)
 		{
 		  if (MATRIX_ROW_START_CHARPOS (row) <= BUF_BEGV (XBUFFER (w->buffer))
 		      && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P (w, row))
 		    row->indicate_bob_p = !NILP (boundary_top);
 		  else
 		    row->indicate_top_line_p = !NILP (arrow_top);
-		  done_top = 1;
+		  top_ind_rn = rn;
 		}
 
-	      if (!done_bot)
+	      if (bot_ind_rn < 0)
 		{
 		  if (MATRIX_ROW_END_CHARPOS (row) >= BUF_ZV (XBUFFER (w->buffer))
 		      && !MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P (w, row))
-		    row->indicate_eob_p = !NILP (boundary_bot), done_bot = 1;
+		    row->indicate_eob_p = !NILP (boundary_bot), bot_ind_rn = rn;
 		  else if (y + row->height >= yb)
-		    row->indicate_bottom_line_p = !NILP (arrow_bot), done_bot = 1;
+		    row->indicate_bottom_line_p = !NILP (arrow_bot), bot_ind_rn = rn;
 		}
 	    }
-
-	  if (indicate_bob_p != row->indicate_bob_p
-	      || indicate_top_line_p != row->indicate_top_line_p
-	      || indicate_eob_p != row->indicate_eob_p
-	      || indicate_bottom_line_p != row->indicate_bottom_line_p)
-	    row->redraw_fringe_bitmaps_p = 1;
 	}
     }
 
@@ -1060,12 +1050,139 @@
       get_logical_fringe_bitmap (w, which, 1, partial_p)))
 
 
-  for (y = 0, rn = 0;
+  /* Extend top-aligned top indicator (or bottom-aligned bottom
+     indicator) to adjacent rows if it doesn't fit in one row.  */
+  top_ind_min_y = bot_ind_max_y = -1;
+  if (top_ind_rn >= 0)
+    {
+      int bn = NO_FRINGE_BITMAP;
+
+      row = w->desired_matrix->rows + top_ind_rn;
+      if (!row->enabled_p)
+	row = w->current_matrix->rows + top_ind_rn;
+
+      top_row_ends_at_zv_p = row->ends_at_zv_p;
+      if (row->indicate_bob_p)
+	{
+	  if (EQ (boundary_top, Qleft))
+	    bn = ((row->indicate_eob_p && EQ (boundary_bot, Qleft))
+		  ? LEFT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p)
+		  : LEFT_FRINGE (2, Qtop, 0));
+	  else
+	    bn = ((row->indicate_eob_p && EQ (boundary_bot, Qright))
+		  ? RIGHT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p)
+		  : RIGHT_FRINGE (2, Qtop, 0));
+	}
+      else if (row->indicate_top_line_p)
+	{
+	  if (EQ (arrow_top, Qleft))
+	    bn = LEFT_FRINGE (6, Qup, 0);
+	  else
+	    bn = RIGHT_FRINGE (6, Qup, 0);
+	}
+
+      if (bn != NO_FRINGE_BITMAP)
+	{
+	  struct fringe_bitmap *fb;
+
+	  fb = fringe_bitmaps[bn];
+	  if (fb == NULL)
+	    fb = &standard_bitmaps[bn < MAX_STANDARD_FRINGE_BITMAPS
+				   ? bn : UNDEF_FRINGE_BITMAP];
+	  if (fb->align == ALIGN_BITMAP_TOP && fb->period == 0)
+	    {
+	      struct glyph_row *row1;
+	      int top_ind_max_y;
+
+	      top_ind_min_y = WINDOW_HEADER_LINE_HEIGHT (w);
+	      top_ind_max_y = top_ind_min_y + fb->height;
+	      if (top_ind_max_y > yb)
+		top_ind_max_y = yb;
+
+	      for (y = row->y + row->height, rn = top_ind_rn + 1;
+		   y < top_ind_max_y && rn < nrows;
+		   y += row1->height, rn++)
+		{
+		  if (bot_ind_rn >= 0 && rn >= bot_ind_rn)
+		    break;
+
+		  row1 = w->desired_matrix->rows + rn;
+		  if (!row1->enabled_p)
+		    row1 = w->current_matrix->rows + rn;
+
+		  row1->indicate_bob_p = row->indicate_bob_p;
+		  row1->indicate_top_line_p = row->indicate_top_line_p;
+		}
+	    }
+	}
+    }
+  if (bot_ind_rn >= 0)
+    {
+      int bn = NO_FRINGE_BITMAP;
+
+      row = w->desired_matrix->rows + bot_ind_rn;
+      if (!row->enabled_p)
+	row = w->current_matrix->rows + bot_ind_rn;
+
+      bot_row_ends_at_zv_p = row->ends_at_zv_p;
+      if (row->indicate_eob_p)
+	{
+	  if (EQ (boundary_bot, Qleft))
+	    bn = LEFT_FRINGE (3, Qbottom, row->ends_at_zv_p);
+	  else
+	    bn = RIGHT_FRINGE (3, Qbottom, row->ends_at_zv_p);
+	}
+      else if (row->indicate_bottom_line_p)
+	{
+	  if (EQ (arrow_bot, Qleft))
+	    bn = LEFT_FRINGE (7, Qdown, 0);
+	  else
+	    bn = RIGHT_FRINGE (7, Qdown, 0);
+	}
+
+      if (bn != NO_FRINGE_BITMAP)
+	{
+	  struct fringe_bitmap *fb;
+
+	  fb = fringe_bitmaps[bn];
+	  if (fb == NULL)
+	    fb = &standard_bitmaps[bn < MAX_STANDARD_FRINGE_BITMAPS
+				   ? bn : UNDEF_FRINGE_BITMAP];
+	  if (fb->align == ALIGN_BITMAP_BOTTOM && fb->period == 0)
+	    {
+	      struct glyph_row *row1;
+	      int bot_ind_min_y;
+
+	      bot_ind_max_y = row->y + row->visible_height;
+	      bot_ind_min_y = bot_ind_max_y - fb->height;
+	      if (bot_ind_min_y < WINDOW_HEADER_LINE_HEIGHT (w))
+		bot_ind_min_y = WINDOW_HEADER_LINE_HEIGHT (w);
+
+	      for (y = row->y, rn = bot_ind_rn - 1;
+		   y >= bot_ind_min_y && rn >= 0;
+		   y -= row1->height, rn--)
+		{
+		  if (top_ind_rn >= 0 && rn <= top_ind_rn)
+		    break;
+
+		  row1 = w->desired_matrix->rows + rn;
+		  if (!row1->enabled_p)
+		    row1 = w->current_matrix->rows + rn;
+
+		  row1->indicate_eob_p = row->indicate_eob_p;
+		  row1->indicate_bottom_line_p = row->indicate_bottom_line_p;
+		}
+	    }
+	}
+    }
+
+  for (y = w->vscroll, rn = 0;
        y < yb && rn < nrows;
        y += row->height, rn++)
     {
       int left, right;
       unsigned left_face_id, right_face_id;
+      int left_offset, right_offset;
 
       row = w->desired_matrix->rows + rn;
       cur = w->current_matrix->rows + rn;
@@ -1073,6 +1190,7 @@
 	row = cur;
 
       left_face_id = right_face_id = DEFAULT_FACE_ID;
+      left_offset = right_offset = 0;
 
       /* Decide which bitmap to draw in the left fringe.  */
       if (WINDOW_LEFT_FRINGE_WIDTH (w) == 0)
@@ -1085,19 +1203,35 @@
       else if (row->truncated_on_left_p)
 	left = LEFT_FRINGE(0, Qtruncation, 0);
       else if (row->indicate_bob_p && EQ (boundary_top, Qleft))
-	left = ((row->indicate_eob_p && EQ (boundary_bot, Qleft))
-		? LEFT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p)
-		: LEFT_FRINGE (2, Qtop, 0));
+	{
+	  left = ((row->indicate_eob_p && EQ (boundary_bot, Qleft))
+		  ? LEFT_FRINGE (1, Qtop_bottom, top_row_ends_at_zv_p)
+		  : LEFT_FRINGE (2, Qtop, 0));
+	  if (top_ind_min_y >= 0)
+	    left_offset = top_ind_min_y - row->y;
+	}
       else if (row->indicate_eob_p && EQ (boundary_bot, Qleft))
-	left = LEFT_FRINGE (3, Qbottom, row->ends_at_zv_p);
+	{
+	  left = LEFT_FRINGE (3, Qbottom, bot_row_ends_at_zv_p);
+	  if (bot_ind_max_y >= 0)
+	    left_offset = bot_ind_max_y - (row->y + row->visible_height);
+	}
       else if (MATRIX_ROW_CONTINUATION_LINE_P (row))
 	left = LEFT_FRINGE (4, Qcontinuation, 0);
       else if (row->indicate_empty_line_p && EQ (empty_pos, Qleft))
 	left = LEFT_FRINGE (5, Qempty_line, 0);
       else if (row->indicate_top_line_p && EQ (arrow_top, Qleft))
-	left = LEFT_FRINGE (6, Qup, 0);
+	{
+	  left = LEFT_FRINGE (6, Qup, 0);
+	  if (top_ind_min_y >= 0)
+	    left_offset = top_ind_min_y - row->y;
+	}
       else if (row->indicate_bottom_line_p && EQ (arrow_bot, Qleft))
-	left = LEFT_FRINGE (7, Qdown, 0);
+	{
+	  left = LEFT_FRINGE (7, Qdown, 0);
+	  if (bot_ind_max_y >= 0)
+	    left_offset = bot_ind_max_y - (row->y + row->visible_height);
+	}
       else
 	left = NO_FRINGE_BITMAP;
 
@@ -1112,17 +1246,33 @@
       else if (row->truncated_on_right_p)
 	right = RIGHT_FRINGE (0, Qtruncation, 0);
       else if (row->indicate_bob_p && EQ (boundary_top, Qright))
-	right = ((row->indicate_eob_p && EQ (boundary_bot, Qright))
-		 ? RIGHT_FRINGE (1, Qtop_bottom, row->ends_at_zv_p)
-		 : RIGHT_FRINGE (2, Qtop, 0));
+	{
+	  right = ((row->indicate_eob_p && EQ (boundary_bot, Qright))
+		   ? RIGHT_FRINGE (1, Qtop_bottom, top_row_ends_at_zv_p)
+		   : RIGHT_FRINGE (2, Qtop, 0));
+	  if (top_ind_min_y >= 0)
+	    right_offset = top_ind_min_y - row->y;
+	}
       else if (row->indicate_eob_p && EQ (boundary_bot, Qright))
-	right = RIGHT_FRINGE (3, Qbottom, row->ends_at_zv_p);
+	{
+	  right = RIGHT_FRINGE (3, Qbottom, bot_row_ends_at_zv_p);
+	  if (bot_ind_max_y >= 0)
+	    right_offset = bot_ind_max_y - (row->y + row->visible_height);
+	}
       else if (row->continued_p)
 	right = RIGHT_FRINGE (4, Qcontinuation, 0);
       else if (row->indicate_top_line_p && EQ (arrow_top, Qright))
-	right = RIGHT_FRINGE (6, Qup, 0);
+	{
+	  right = RIGHT_FRINGE (6, Qup, 0);
+	  if (top_ind_min_y >= 0)
+	    right_offset = top_ind_min_y - row->y;
+	}
       else if (row->indicate_bottom_line_p && EQ (arrow_bot, Qright))
-	right = RIGHT_FRINGE (7, Qdown, 0);
+	{
+	  right = RIGHT_FRINGE (7, Qdown, 0);
+	  if (bot_ind_max_y >= 0)
+	    right_offset = bot_ind_max_y - (row->y + row->visible_height);
+	}
       else if (row->indicate_empty_line_p && EQ (empty_pos, Qright))
 	right = RIGHT_FRINGE (5, Qempty_line, 0);
       else
@@ -1135,6 +1285,8 @@
 	  || right != cur->right_fringe_bitmap
 	  || left_face_id != cur->left_fringe_face_id
 	  || right_face_id != cur->right_fringe_face_id
+	  || left_offset != cur->left_fringe_offset
+	  || right_offset != cur->right_fringe_offset
 	  || cur->redraw_fringe_bitmaps_p)
 	{
 	  redraw_p = row->redraw_fringe_bitmaps_p = 1;
@@ -1145,6 +1297,8 @@
 	      cur->right_fringe_bitmap = right;
 	      cur->left_fringe_face_id = left_face_id;
 	      cur->right_fringe_face_id = right_face_id;
+	      cur->left_fringe_offset = left_offset;
+	      cur->right_fringe_offset = right_offset;
 	    }
 	}
 
@@ -1161,9 +1315,8 @@
       row->right_fringe_bitmap = right;
       row->left_fringe_face_id = left_face_id;
       row->right_fringe_face_id = right_face_id;
-
-      if (rn > 0 && row->redraw_fringe_bitmaps_p)
-	row[-1].redraw_fringe_bitmaps_p = cur[-1].redraw_fringe_bitmaps_p = 1;
+      row->left_fringe_offset = left_offset;
+      row->right_fringe_offset = right_offset;
     }
 
   return redraw_p && !keep_current_p;
--- a/src/ftfont.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/ftfont.c	Tue Jul 27 16:01:48 2010 +0900
@@ -1262,7 +1262,7 @@
     spacing = XINT (AREF (entity, FONT_SPACING_INDEX));
   else
     spacing = FC_PROPORTIONAL;
-  if (spacing != FC_PROPORTIONAL)
+  if (spacing != FC_PROPORTIONAL && spacing != FC_DUAL)
     font->min_width = font->average_width = font->space_width
       = (scalable ? ft_face->max_advance_width * size / upEM
 	 : ft_face->size->metrics.max_advance >> 6);
--- a/src/gtkutil.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/gtkutil.c	Tue Jul 27 16:01:48 2010 +0900
@@ -2990,6 +2990,55 @@
     }
 }
 
+int
+xg_event_is_for_menubar (FRAME_PTR f, XEvent *event)
+{
+  struct x_output *x = f->output_data.x;
+  GList *iter;
+  GdkRectangle rec;
+  GList *list;
+  GdkDisplay *gdpy;
+  GdkWindow *gw;
+  GdkEvent gevent;
+  GtkWidget *gwdesc;
+
+  if (! x->menubar_widget) return 0;
+
+  if (! (event->xbutton.x >= 0
+         && event->xbutton.x < FRAME_PIXEL_WIDTH (f)
+         && event->xbutton.y >= 0
+         && event->xbutton.y < f->output_data.x->menubar_height
+         && event->xbutton.same_screen))
+    return 0;
+
+  gdpy = gdk_x11_lookup_xdisplay (FRAME_X_DISPLAY (f));
+  gw = gdk_xid_table_lookup_for_display (gdpy, event->xbutton.window);
+  if (! gw) return 0;
+  gevent.any.window = gw;
+  gwdesc = gtk_get_event_widget (&gevent);
+  if (! gwdesc) return 0;
+  if (! GTK_IS_MENU_BAR (gwdesc)
+      && ! GTK_IS_MENU_ITEM (gwdesc)
+      && ! gtk_widget_is_ancestor (x->menubar_widget, gwdesc))
+    return 0;
+
+  list = gtk_container_get_children (GTK_CONTAINER (x->menubar_widget));
+  if (! list) return 0;
+  rec.x = event->xbutton.x;
+  rec.y = event->xbutton.y;
+  rec.width = 1;
+  rec.height = 1;
+
+  for (iter = list ; iter; iter = g_list_next (iter))
+    {
+      GtkWidget *w = GTK_WIDGET (iter->data);
+      if (GTK_WIDGET_MAPPED (w) && gtk_widget_intersect (w, &rec, NULL))
+        break;
+    }
+  g_list_free (list);
+  return iter == 0 ? 0 : 1;
+}
+
 
 
 /***********************************************************************
--- a/src/gtkutil.h	Tue May 11 20:15:29 2010 +0900
+++ b/src/gtkutil.h	Tue Jul 27 16:01:48 2010 +0900
@@ -154,6 +154,8 @@
 
 extern int xg_update_frame_menubar P_ ((FRAME_PTR f));
 
+extern int xg_event_is_for_menubar P_ ((FRAME_PTR f, XEvent *event));
+
 extern int xg_have_tear_offs P_ ((void));
 
 extern int xg_get_scroll_id_for_window P_ ((Display *dpy, Window wid));
--- a/src/image.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/image.c	Tue Jul 27 16:01:48 2010 +0900
@@ -1094,6 +1094,10 @@
       /* Free resources, then free IMG.  */
       img->type->free (f, img);
       xfree (img);
+
+      /* As display glyphs may still be referring to the image ID, we
+	 must garbage the frame (Bug#6426).  */
+      SET_FRAME_GARBAGED (f);
     }
 }
 
--- a/src/keyboard.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/keyboard.c	Tue Jul 27 16:01:48 2010 +0900
@@ -42,7 +42,6 @@
 #include "puresize.h"
 #include "systime.h"
 #include "atimer.h"
-#include <setjmp.h>
 #include <errno.h>
 
 #ifdef HAVE_GTK_AND_PTHREAD
@@ -9182,48 +9181,48 @@
      int can_return_switch_frame;
      int fix_current_buffer;
 {
-  volatile Lisp_Object from_string;
-  volatile int count = SPECPDL_INDEX ();
+  Lisp_Object from_string;
+  int count = SPECPDL_INDEX ();
 
   /* How many keys there are in the current key sequence.  */
-  volatile int t;
+  int t;
 
   /* The length of the echo buffer when we started reading, and
      the length of this_command_keys when we started reading.  */
-  volatile int echo_start;
-  volatile int keys_start;
+  int echo_start;
+  int keys_start;
 
   /* The number of keymaps we're scanning right now, and the number of
      keymaps we have allocated space for.  */
-  volatile int nmaps;
-  volatile int nmaps_allocated = 0;
+  int nmaps;
+  int nmaps_allocated = 0;
 
   /* defs[0..nmaps-1] are the definitions of KEYBUF[0..t-1] in
      the current keymaps.  */
-  Lisp_Object *volatile defs = NULL;
+  Lisp_Object *defs = NULL;
 
   /* submaps[0..nmaps-1] are the prefix definitions of KEYBUF[0..t-1]
      in the current keymaps, or nil where it is not a prefix.  */
-  Lisp_Object *volatile submaps = NULL;
+  Lisp_Object *submaps = NULL;
 
   /* The local map to start out with at start of key sequence.  */
-  volatile Lisp_Object orig_local_map;
+  Lisp_Object orig_local_map;
 
   /* The map from the `keymap' property to start out with at start of
      key sequence.  */
-  volatile Lisp_Object orig_keymap;
+  Lisp_Object orig_keymap;
 
   /* 1 if we have already considered switching to the local-map property
      of the place where a mouse click occurred.  */
-  volatile int localized_local_map = 0;
+  int localized_local_map = 0;
 
   /* The index in submaps[] of the first keymap that has a binding for
      this key sequence.  In other words, the lowest i such that
      submaps[i] is non-nil.  */
-  volatile int first_binding;
+  int first_binding;
   /* Index of the first key that has no binding.
      It is useless to try fkey.start larger than that.  */
-  volatile int first_unbound;
+  int first_unbound;
 
   /* If t < mock_input, then KEYBUF[t] should be read as the next
      input key.
@@ -9238,7 +9237,7 @@
      restart_sequence; the loop will read keys from keybuf up until
      mock_input, thus rebuilding the state; and then it will resume
      reading characters from the keyboard.  */
-  volatile int mock_input = 0;
+  int mock_input = 0;
 
   /* If the sequence is unbound in submaps[], then
      keybuf[fkey.start..fkey.end-1] is a prefix in Vfunction_key_map,
@@ -9248,28 +9247,28 @@
      should hold off until t reaches them.  We do this when we've just
      recognized a function key, to avoid searching for the function
      key's again in Vfunction_key_map.  */
-  volatile keyremap fkey;
+  keyremap fkey;
 
   /* Likewise, for key_translation_map and input-decode-map.  */
-  volatile keyremap keytran, indec;
+  keyremap keytran, indec;
 
   /* Non-zero if we are trying to map a key by changing an upper-case
      letter to lower case, or a shifted function key to an unshifted
      one. */
-  volatile int shift_translated = 0;
+  int shift_translated = 0;
 
   /* If we receive a `switch-frame' or `select-window' event in the middle of
      a key sequence, we put it off for later.
      While we're reading, we keep the event here.  */
-  volatile Lisp_Object delayed_switch_frame;
+  Lisp_Object delayed_switch_frame;
 
   /* See the comment below... */
 #if defined (GOBBLE_FIRST_EVENT)
   Lisp_Object first_event;
 #endif
 
-  volatile Lisp_Object original_uppercase;
-  volatile int original_uppercase_position = -1;
+  Lisp_Object original_uppercase;
+  int original_uppercase_position = -1;
 
   /* Gets around Microsoft compiler limitations.  */
   int dummyflag = 0;
@@ -9277,7 +9276,7 @@
   struct buffer *starting_buffer;
 
   /* List of events for which a fake prefix key has been generated.  */
-  volatile Lisp_Object fake_prefixed_keys = Qnil;
+  Lisp_Object fake_prefixed_keys = Qnil;
 
 #if defined (GOBBLE_FIRST_EVENT)
   int junk;
@@ -9435,13 +9434,13 @@
          (say, a mouse click on the mode line which is being treated
          as [mode-line (mouse-...)], then we backtrack to this point
          of keybuf.  */
-      volatile int last_real_key_start;
+      int last_real_key_start;
 
       /* These variables are analogous to echo_start and keys_start;
 	 while those allow us to restart the entire key sequence,
 	 echo_local_start and keys_local_start allow us to throw away
 	 just one key.  */
-      volatile int echo_local_start, keys_local_start, local_first_binding;
+      int echo_local_start, keys_local_start, local_first_binding;
 
       eassert (indec.end == t || (indec.end > t && indec.end <= mock_input));
       eassert (indec.start <= indec.end);
@@ -12103,7 +12102,7 @@
 was a kill command.
 
 `last-command' has a separate binding for each terminal device.
-See Info node `(elisp)Multiple displays'.  */);
+See Info node `(elisp)Multiple Terminals'.  */);
 
   DEFVAR_KBOARD ("real-last-command", Vreal_last_command,
 		 doc: /* Same as `last-command', but never altered by Lisp code.  */);
@@ -12241,8 +12240,8 @@
 This is applied to the characters supplied to input methods, not their
 output.  See also `translation-table-for-input'.
 
-This variable has a separate binding for each terminal.  See Info node
-`(elisp)Multiple displays'.  */);
+This variable has a separate binding for each terminal.
+See Info node `(elisp)Multiple Terminals'.  */);
 
   DEFVAR_BOOL ("cannot-suspend", &cannot_suspend,
 	       doc: /* Non-nil means to always spawn a subshell instead of suspending.
@@ -12333,7 +12332,7 @@
 
 `overriding-terminal-local-map' has a separate binding for each
 terminal device.
-See Info node `(elisp)Multiple displays'.  */);
+See Info node `(elisp)Multiple Terminals'.  */);
 
   DEFVAR_LISP ("overriding-local-map", &Voverriding_local_map,
 	       doc: /* Keymap that overrides all other local keymaps.
@@ -12361,7 +12360,7 @@
 and SYMBOL is its name.
 
 `system-key-alist' has a separate binding for each terminal device.
-See Info node `(elisp)Multiple displays'.  */);
+See Info node `(elisp)Multiple Terminals'.  */);
 
   DEFVAR_KBOARD ("local-function-key-map", Vlocal_function_key_map,
                  doc: /* Keymap that translates key sequences to key sequences during input.
@@ -12387,7 +12386,7 @@
 typing `ESC O P x' would return [f1 x].
 
 `local-function-key-map' has a separate binding for each terminal
-device.  See Info node `(elisp)Multiple displays'.  If you need to
+device.  See Info node `(elisp)Multiple Terminals'.  If you need to
 define a binding on all terminals, change `function-key-map'
 instead.  Initially, `local-function-key-map' is an empty keymap that
 has `function-key-map' as its parent on all terminal devices.  */);
--- a/src/keymap.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/keymap.c	Tue Jul 27 16:01:48 2010 +0900
@@ -1175,11 +1175,13 @@
        doc: /* In KEYMAP, define key sequence KEY as DEF.
 KEYMAP is a keymap.
 
-KEY is a string or a vector of symbols and characters meaning a
+KEY is a string or a vector of symbols and characters, representing a
 sequence of keystrokes and events.  Non-ASCII characters with codes
-above 127 (such as ISO Latin-1) can be included if you use a vector.
-Using [t] for KEY creates a default definition, which applies to any
-event type that has no other definition in this keymap.
+above 127 (such as ISO Latin-1) can be represented by vectors.
+Two types of vector have special meanings:
+ [remap COMMAND] remaps any key binding for COMMAND in KEYMAP.
+ [t] creates a default definition, which applies to any event with no
+    other definition in KEYMAP.
 
 DEF is anything that can be a key's definition:
  nil (means key is undefined in this keymap),
@@ -2829,16 +2831,16 @@
   Lisp_Object found = Qnil;
   /* 1 means ignore all menu bindings entirely.  */
   int nomenus = !NILP (firstonly) && !EQ (firstonly, Qnon_ascii);
-  struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5;
+  struct gcpro gcpro1, gcpro2, gcpro3, gcpro4, gcpro5, gcpro6;
   /* List of sequences found via remapping.  Keep them in a separate
      variable, so as to push them later, since we prefer
      non-remapped binding.  */
   Lisp_Object remapped_sequences = Qnil;
   /* Whether or not we're handling remapped sequences.  This is needed
      because remapping is not done recursively by Fcommand_remapping: you
-     can't remap and remapped command.  */
+     can't remap a remapped command.  */
   int remapped = 0;
-  Lisp_Object tem;
+  Lisp_Object tem = Qnil;
 
   /* Refresh the C version of the modifier preference.  */
   where_is_preferred_modifier
@@ -2852,17 +2854,25 @@
   else
     keymaps = Fcurrent_active_maps (Qnil, Qnil);
 
-  GCPRO5 (definition, keymaps, found, sequences, remapped_sequences);
-
-  /* If this command is remapped, then it has no key bindings of its own.
-     FIXME: Actually, this is not quite right: if A is remapped to
-     `definition', then bindings to A will actually bind the key to
-     `definition' despite the remapping from `definition' to something else.
-     Another corner case is if `definition' is remapped to itself.  */
-  if (NILP (no_remap)
-      && SYMBOLP (definition)
-      && !NILP (Fcommand_remapping (definition, Qnil, keymaps)))
-    RETURN_UNGCPRO (Qnil);
+  GCPRO6 (definition, keymaps, found, sequences, remapped_sequences, tem);
+
+  tem = Fcommand_remapping (definition, Qnil, keymaps);
+  /* If `definition' is remapped to tem', then OT1H no key will run
+     that command (since they will run `tem' instead), so we should
+     return nil; but OTOH all keys bound to `definition' (or to `tem')
+     will run the same command.
+     So for menu-shortcut purposes, we want to find all the keys bound (maybe
+     via remapping) to `tem'.  But for the purpose of finding the keys that
+     run `definition', then we'd want to just return nil.
+     We choose to make it work right for menu-shortcuts, since it's the most
+     common use.
+     Known bugs: if you remap switch-to-buffer to toto, C-h f switch-to-buffer
+     will tell you that switch-to-buffer is bound to C-x b even though C-x b
+     will run toto instead.  And if `toto' is itself remapped to forward-char,
+     then C-h f toto will tell you that it's bound to C-f even though C-f does
+     not run toto and it won't tell you that C-x b does run toto.  */
+  if (NILP (no_remap) && !NILP (tem))
+    definition = tem;
 
   if (SYMBOLP (definition)
       && !NILP (firstonly)
--- a/src/lisp.h	Tue May 11 20:15:29 2010 +0900
+++ b/src/lisp.h	Tue Jul 27 16:01:48 2010 +0900
@@ -930,7 +930,7 @@
     struct Lisp_Vector *next;
 
     /* Depth of this sub char-table.  It should be 1, 2, or 3.  A sub
-       char-table of depth 1 contains 16 elments, and each element
+       char-table of depth 1 contains 16 elements, and each element
        covers 4096 (128*32) characters.  A sub char-table of depth 2
        contains 32 elements, and each element covers 128 characters.  A
        sub char-table of depth 3 contains 128 elements, and each element
@@ -1120,7 +1120,7 @@
   Lisp_Object user_cmp_function;
 
   /* Only the fields above are traced normally by the GC.  The ones below
-     `count'.  are special and are either ignored by the GC or traced in
+     `count' are special and are either ignored by the GC or traced in
      a special way (e.g. because of weakness).  */
 
   /* Number of key/value entries in the table.  */
@@ -1310,9 +1310,9 @@
    binding into `realvalue' (or through it).  Also update
    LOADED-BINDING to point to the newly loaded binding.
 
-   `local_if_set' indicates that merely setting the variable creates a local
-   binding for the current buffer.  Otherwise the latter, setting the
-   variable does not do that; only make-local-variable does that.  */
+   `local_if_set' indicates that merely setting the variable creates a
+   local binding for the current buffer.  Otherwise the latter, setting
+   the variable does not do that; only make-local-variable does that.  */
 
 struct Lisp_Buffer_Local_Value
   {
@@ -1631,7 +1631,7 @@
 #define CHECK_VECTOR_OR_STRING(x) \
   CHECK_TYPE (VECTORP (x) || STRINGP (x), Qarrayp, x)
 
-#define CHECK_ARRAY(x, Qxxxp)							\
+#define CHECK_ARRAY(x, Qxxxp) \
   CHECK_TYPE (ARRAYP (x), Qxxxp, x)
 
 #define CHECK_VECTOR_OR_CHAR_TABLE(x) \
@@ -1677,14 +1677,14 @@
 
 #define XFLOATINT(n) extract_float((n))
 
-#define CHECK_FLOAT(x)		\
+#define CHECK_FLOAT(x) \
   CHECK_TYPE (FLOATP (x), Qfloatp, x)
 
-#define CHECK_NUMBER_OR_FLOAT(x)	\
+#define CHECK_NUMBER_OR_FLOAT(x) \
   CHECK_TYPE (FLOATP (x) || INTEGERP (x), Qnumberp, x)
 
 #define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(x) \
-  do { if (MARKERP (x)) XSETFASTINT (x, marker_position (x));	\
+  do { if (MARKERP (x)) XSETFASTINT (x, marker_position (x)); \
     else CHECK_TYPE (INTEGERP (x) || FLOATP (x), Qnumber_or_marker_p, x); } while (0)
 
 #define CHECK_OVERLAY(x) \
@@ -1774,8 +1774,8 @@
 			 Lisp_Object, Lisp_Object, Lisp_Object)
 #define DEFUN_ARGS_8	(Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, \
 			 Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object)
+
 /* Non-zero if OBJ is a Lisp function.  */
-
 #define FUNCTIONP(OBJ)					\
      ((CONSP (OBJ) && EQ (XCAR (OBJ), Qlambda))		\
       || (SYMBOLP (OBJ) && !NILP (Ffboundp (OBJ)))	\
@@ -1824,12 +1824,11 @@
 
    If the symbol field is a symbol, it is an ordinary variable binding.
 
-   Otherwise, it should be a structure (SYMBOL WHERE
-   . CURRENT-BUFFER), which means having bound a local value while
-   CURRENT-BUFFER was active.  If WHERE is nil this means we saw the
-   default value when binding SYMBOL.  WHERE being a buffer or frame
-   means we saw a buffer-local or frame-local value.  Other values of
-   WHERE mean an internal error.  */
+   Otherwise, it should be a structure (SYMBOL WHERE . CURRENT-BUFFER),
+   which means having bound a local value while CURRENT-BUFFER was active.
+   If WHERE is nil this means we saw the default value when binding SYMBOL.
+   WHERE being a buffer or frame means we saw a buffer-local or frame-local
+   value.  Other values of WHERE mean an internal error.  */
 
 typedef Lisp_Object (*specbinding_func) P_ ((Lisp_Object));
 
@@ -2019,16 +2018,16 @@
 
 /* Structure for recording stack slots that need marking.  */
 
-/* This is a chain of structures, each of which points at a Lisp_Object variable
- whose value should be marked in garbage collection.
- Normally every link of the chain is an automatic variable of a function,
- and its `val' points to some argument or local variable of the function.
- On exit to the function, the chain is set back to the value it had on entry.
- This way, no link remains in the chain when the stack frame containing the
- link disappears.
-
- Every function that can call Feval must protect in this fashion all
- Lisp_Object variables whose contents will be used again.  */
+/* This is a chain of structures, each of which points at a Lisp_Object
+   variable whose value should be marked in garbage collection.
+   Normally every link of the chain is an automatic variable of a function,
+   and its `val' points to some argument or local variable of the function.
+   On exit to the function, the chain is set back to the value it had on entry.
+   This way, no link remains in the chain when the stack frame containing the
+   link disappears.
+
+   Every function that can call Feval must protect in this fashion all
+   Lisp_Object variables whose contents will be used again.  */
 
 extern struct gcpro *gcprolist;
 
@@ -2932,7 +2931,7 @@
 EXFUN (Ffield_string_no_properties, 1);
 extern void set_time_zone_rule P_ ((char *));
 
-/* defined in buffer.c */
+/* Defined in buffer.c */
 extern int mouse_face_overlay_overlaps P_ ((Lisp_Object));
 extern void nsberror P_ ((Lisp_Object)) NO_RETURN;
 EXFUN (Fset_buffer_multibyte, 1);
@@ -2975,7 +2974,7 @@
 extern void syms_of_buffer P_ ((void));
 extern void keys_of_buffer P_ ((void));
 
-/* defined in marker.c */
+/* Defined in marker.c */
 
 EXFUN (Fmarker_position, 1);
 EXFUN (Fmarker_buffer, 1);
@@ -3030,7 +3029,7 @@
 
 extern void syms_of_abbrev P_ ((void));
 
-/* defined in search.c */
+/* Defined in search.c */
 extern void shrink_regexp_cache P_ ((void));
 EXFUN (Fstring_match, 3);
 extern void restore_search_regs P_ ((void));
@@ -3054,7 +3053,7 @@
 extern void syms_of_search P_ ((void));
 extern void clear_regexp_cache P_ ((void));
 
-/* defined in minibuf.c */
+/* Defined in minibuf.c */
 
 extern Lisp_Object last_minibuf_string;
 extern void choose_minibuf_frame P_ ((void));
@@ -3081,7 +3080,7 @@
 EXFUN (Fprefix_numeric_value, 1);
 extern void syms_of_callint P_ ((void));
 
-/* defined in casefiddle.c */
+/* Defined in casefiddle.c */
 
 EXFUN (Fdowncase, 1);
 EXFUN (Fupcase, 1);
@@ -3092,14 +3091,14 @@
 extern void syms_of_casefiddle P_ ((void));
 extern void keys_of_casefiddle P_ ((void));
 
-/* defined in casetab.c */
+/* Defined in casetab.c */
 
 EXFUN (Fset_case_table, 1);
 EXFUN (Fset_standard_case_table, 1);
 extern void init_casetab_once P_ ((void));
 extern void syms_of_casetab P_ ((void));
 
-/* defined in keyboard.c */
+/* Defined in keyboard.c */
 
 extern int echoing;
 extern Lisp_Object echo_message_buffer;
@@ -3140,7 +3139,7 @@
 extern char *push_key_description P_ ((unsigned int, char *, int));
 
 
-/* defined in indent.c */
+/* Defined in indent.c */
 EXFUN (Fvertical_motion, 2);
 EXFUN (Findent_to, 2);
 EXFUN (Fcurrent_column, 0);
@@ -3150,7 +3149,7 @@
 extern int indented_beyond_p P_ ((int, int, double));
 extern void syms_of_indent P_ ((void));
 
-/* defined in frame.c */
+/* Defined in frame.c */
 #ifdef HAVE_WINDOW_SYSTEM
 extern Lisp_Object Vx_resource_name;
 extern Lisp_Object Vx_resource_class;
@@ -3193,7 +3192,7 @@
 extern void frames_bury_buffer P_ ((Lisp_Object));
 extern void syms_of_frame P_ ((void));
 
-/* defined in emacs.c */
+/* Defined in emacs.c */
 extern Lisp_Object decode_env_path P_ ((char *, char *));
 extern Lisp_Object Vinvocation_name, Vinvocation_directory;
 extern Lisp_Object Vbefore_init_time, Vafter_init_time;
@@ -3211,7 +3210,7 @@
 #define synchronize_system_time_locale()
 #endif
 void shut_down_emacs P_ ((int, int, Lisp_Object));
-/* Nonzero means don't do interactive redisplay and don't change tty modes */
+/* Nonzero means don't do interactive redisplay and don't change tty modes.  */
 extern int noninteractive;
 
 /* Nonzero means don't load X resources or Windows Registry settings.  */
@@ -3222,12 +3221,12 @@
 extern int daemon_pipe[2];
 #define IS_DAEMON (daemon_pipe[1] != 0)
 
-/* Nonzero means don't do use window-system-specific display code */
+/* Nonzero means don't do use window-system-specific display code.  */
 extern int inhibit_window_system;
 /* Nonzero means that a filter or a sentinel is running.  */
 extern int running_asynch_code;
 
-/* defined in process.c */
+/* Defined in process.c */
 EXFUN (Fget_process, 1);
 EXFUN (Fget_buffer_process, 1);
 EXFUN (Fprocessp, 1);
@@ -3250,7 +3249,7 @@
 extern void syms_of_process P_ ((void));
 extern void setup_process_coding_systems P_ ((Lisp_Object));
 
-/* defined in callproc.c */
+/* Defined in callproc.c */
 extern Lisp_Object Vexec_path, Vexec_suffixes,
                    Vexec_directory, Vdata_directory;
 extern Lisp_Object Vdoc_directory;
@@ -3261,7 +3260,7 @@
 extern void set_initial_environment P_ ((void));
 extern void syms_of_callproc P_ ((void));
 
-/* defined in doc.c */
+/* Defined in doc.c */
 extern Lisp_Object Vdoc_file_name;
 EXFUN (Fsubstitute_command_keys, 1);
 EXFUN (Fdocumentation, 2);
@@ -3271,7 +3270,7 @@
 extern void syms_of_doc P_ ((void));
 extern int read_bytecode_char P_ ((int));
 
-/* defined in bytecode.c */
+/* Defined in bytecode.c */
 extern Lisp_Object Qbytecode;
 EXFUN (Fbyte_code, 3);
 extern void syms_of_bytecode P_ ((void));
@@ -3279,14 +3278,14 @@
 extern void mark_byte_stack P_ ((void));
 extern void unmark_byte_stack P_ ((void));
 
-/* defined in macros.c */
+/* Defined in macros.c */
 extern Lisp_Object Qexecute_kbd_macro;
 EXFUN (Fexecute_kbd_macro, 3);
 EXFUN (Fcancel_kbd_macro_events, 0);
 extern void init_macros P_ ((void));
 extern void syms_of_macros P_ ((void));
 
-/* defined in undo.c */
+/* Defined in undo.c */
 extern Lisp_Object Qinhibit_read_only;
 EXFUN (Fundo_boundary, 0);
 extern void truncate_undo_list P_ ((struct buffer *));
@@ -3300,7 +3299,7 @@
 extern void syms_of_undo P_ ((void));
 extern Lisp_Object Vundo_outer_limit;
 
-/* defined in textprop.c */
+/* Defined in textprop.c */
 extern Lisp_Object Qfont, Qmouse_face;
 extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks;
 EXFUN (Fnext_single_property_change, 4);
@@ -3317,21 +3316,21 @@
 							 Lisp_Object,
 							 Lisp_Object));
 
-/* defined in menu.c */
+/* Defined in menu.c */
 extern void syms_of_menu P_ ((void));
 
-/* defined in xmenu.c */
+/* Defined in xmenu.c */
 EXFUN (Fx_popup_menu, 2);
 EXFUN (Fx_popup_dialog, 3);
 extern void syms_of_xmenu P_ ((void));
 
-/* defined in termchar.h */
+/* Defined in termchar.h */
 struct tty_display_info;
 
-/* defined in termhooks.h */
+/* Defined in termhooks.h */
 struct terminal;
 
-/* defined in sysdep.c */
+/* Defined in sysdep.c */
 #ifndef HAVE_GET_CURRENT_DIR_NAME
 extern char *get_current_dir_name P_ ((void));
 #endif
@@ -3355,7 +3354,7 @@
 extern int emacs_read P_ ((int, char *, unsigned int));
 extern int emacs_write P_ ((int, const char *, unsigned int));
 
-/* defined in filelock.c */
+/* Defined in filelock.c */
 EXFUN (Funlock_buffer, 0);
 EXFUN (Ffile_locked_p, 1);
 extern void unlock_all_files P_ ((void));
--- a/src/lread.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/lread.c	Tue Jul 27 16:01:48 2010 +0900
@@ -2377,28 +2377,28 @@
 	      /* This is repetitive but fast and simple. */
 	      params[param_count] = QCsize;
 	      params[param_count+1] = Fplist_get (tmp, Qsize);
-	      if (!NILP (params[param_count+1]))
-		param_count+=2;
+	      if (!NILP (params[param_count + 1]))
+		param_count += 2;
 
 	      params[param_count] = QCtest;
 	      params[param_count+1] = Fplist_get (tmp, Qtest);
-	      if (!NILP (params[param_count+1]))
-		param_count+=2;
+	      if (!NILP (params[param_count + 1]))
+		param_count += 2;
 
 	      params[param_count] = QCweakness;
 	      params[param_count+1] = Fplist_get (tmp, Qweakness);
-	      if (!NILP (params[param_count+1]))
-		param_count+=2;
+	      if (!NILP (params[param_count + 1]))
+		param_count += 2;
 
 	      params[param_count] = QCrehash_size;
 	      params[param_count+1] = Fplist_get (tmp, Qrehash_size);
-	      if (!NILP (params[param_count+1]))
-		param_count+=2;
+	      if (!NILP (params[param_count + 1]))
+		param_count += 2;
 
 	      params[param_count] = QCrehash_threshold;
 	      params[param_count+1] = Fplist_get (tmp, Qrehash_threshold);
-	      if (!NILP (params[param_count+1]))
-		param_count+=2;
+	      if (!NILP (params[param_count + 1]))
+		param_count += 2;
 
 	      /* This is the hashtable data. */
 	      data = Fplist_get (tmp, Qdata);
@@ -2419,6 +2419,8 @@
 
 	      return ht;
 	    }
+	  UNREAD (c);
+	  invalid_syntax ("#", 1);
 	}
       if (c == '^')
 	{
--- a/src/makefile.w32-in	Tue May 11 20:15:29 2010 +0900
+++ b/src/makefile.w32-in	Tue Jul 27 16:01:48 2010 +0900
@@ -1564,6 +1564,7 @@
 	$(SRC)/keyboard.h \
 	$(SRC)/systime.h \
 	$(SRC)/termhooks.h \
+	$(SRC)/w32.h \
 	$(SRC)/w32font.h \
 	$(SRC)/w32gui.h \
 	$(SRC)/w32heap.h \
--- a/src/minibuf.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/minibuf.c	Tue Jul 27 16:01:48 2010 +0900
@@ -1184,7 +1184,7 @@
  If DEF is a list of default values, return its first element.
 Optional third arg REQUIRE-MATCH determines whether non-existing
  buffer names are allowed.  It has the same meaning as the
- REQUIRE-MATCH argument of `confirm-after-completion'.
+ REQUIRE-MATCH argument of `completing-read'.
 The argument PROMPT should be a string ending with a colon and a space.
 If `read-buffer-completion-ignore-case' is non-nil, completion ignores
 case while reading the buffer name.
@@ -1589,6 +1589,7 @@
   tail = collection;
   if (type == 2)
     {
+      collection = check_obarray (collection);
       obsize = XVECTOR (collection)->size;
       bucket = XVECTOR (collection)->contents[index];
     }
@@ -1612,6 +1613,8 @@
 	{
 	  if (!EQ (bucket, zero))
 	    {
+	      if (!SYMBOLP (bucket))
+		error ("Bad data in guts of obarray");
 	      elt = bucket;
 	      eltstring = elt;
 	      if (XSYMBOL (bucket)->next)
--- a/src/nsterm.m	Tue May 11 20:15:29 2010 +0900
+++ b/src/nsterm.m	Tue Jul 27 16:01:48 2010 +0900
@@ -2177,20 +2177,7 @@
 
   /* Must clip because of partially visible lines.  */
   rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y);
-  if (p->y < rowY)
-    {
-      /* Adjust position of "bottom aligned" bitmap on partially
-	 visible last row.  */
-      int oldY = row->y;
-      int oldVH = row->visible_height;
-      row->visible_height = p->h;
-      row->y -= rowY - p->y;
-      ns_clip_to_row (w, row, -1, NO);
-      row->y = oldY;
-      row->visible_height = oldVH;
-    }
-  else
-    ns_clip_to_row (w, row, -1, YES);
+  ns_clip_to_row (w, row, -1, YES);
 
   if (p->bx >= 0 && !p->overlay_p)
     {
--- a/src/process.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/process.c	Tue Jul 27 16:01:48 2010 +0900
@@ -2540,9 +2540,11 @@
 		ip6[i] = ntohs (j);
 	      }
 	  sa->sa_family = family;
+	  return;
 	}
 #endif
-      return;
+      else
+	return;
     }
   else if (STRINGP (address))
     {
--- a/src/regex.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/regex.c	Tue Jul 27 16:01:48 2010 +0900
@@ -2086,7 +2086,7 @@
   } while (0)
 
 
-/* Both FROM and TO are mulitbyte characters.  */
+/* Both FROM and TO are multibyte characters.  */
 
 #define SETUP_MULTIBYTE_RANGE(work_area, FROM, TO)			   \
   do {									   \
@@ -3805,7 +3805,7 @@
 
 		    if (c1 != c2 && (c1 = RE_CHAR_TO_UNIBYTE (c2)) >= 0)
 		      c = c1;
-		  }		      
+		  }
 		*b++ = c;
 		len = 1;
 	      }
@@ -4125,7 +4125,7 @@
 	  if (/* Any leading code can possibly start a character
 		 which doesn't match the specified set of characters.  */
 	      not
-	      || 
+	      ||
 	      /* If we can match a character class, we can match any
 		 multibyte characters.  */
 	      (CHARSET_RANGE_TABLE_EXISTS_P (&p[-2])
--- a/src/s/netbsd.h	Tue May 11 20:15:29 2010 +0900
+++ b/src/s/netbsd.h	Tue Jul 27 16:01:48 2010 +0900
@@ -45,7 +45,12 @@
 #define LIBS_DEBUG
 /* -lutil is not needed for NetBSD >0.9.  */
 /* #define LIBS_SYSTEM -lutil */
+#ifdef HAVE_TERM_H
+#define TERMINFO
+#define LIBS_TERMCAP -lterminfo
+#else
 #define LIBS_TERMCAP -ltermcap
+#endif
 
 #define NEED_ERRNO
 #define SYSV_SYSTEM_DIR
--- a/src/search.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/search.c	Tue Jul 27 16:01:48 2010 +0900
@@ -100,10 +100,10 @@
 
 static void set_search_regs P_ ((EMACS_INT, EMACS_INT));
 static void save_search_regs P_ ((void));
-static EMACS_INT simple_search P_ ((int, unsigned char *, int, int, 
+static EMACS_INT simple_search P_ ((int, unsigned char *, int, int,
 				    Lisp_Object, EMACS_INT, EMACS_INT,
 				    EMACS_INT, EMACS_INT));
-static EMACS_INT boyer_moore P_ ((int, unsigned char *, int, int, 
+static EMACS_INT boyer_moore P_ ((int, unsigned char *, int, int,
 				  Lisp_Object, Lisp_Object,
 				  EMACS_INT, EMACS_INT,
 				  EMACS_INT, EMACS_INT, int));
@@ -281,7 +281,7 @@
   if (regp)
     re_set_registers (&cp->buf, regp, regp->num_regs, regp->start, regp->end);
 
-  /* The compiled pattern can be used both for mulitbyte and unibyte
+  /* The compiled pattern can be used both for multibyte and unibyte
      target.  But, we have to tell which the pattern is used for. */
   cp->buf.target_multibyte = multibyte;
 
@@ -582,7 +582,7 @@
   unsigned char *p1, *p2;
   EMACS_INT s1, s2;
   EMACS_INT len;
-  
+
   if (STRINGP (string))
     {
       if (pos_byte < 0)
--- a/src/w32fns.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/w32fns.c	Tue Jul 27 16:01:48 2010 +0900
@@ -47,6 +47,7 @@
 #include "systime.h"
 #include "termhooks.h"
 #include "w32heap.h"
+#include "w32.h"
 
 #include "bitmaps/gray.xbm"
 
@@ -287,10 +288,14 @@
 #define MENU_FREE_DELAY 1000
 static unsigned menu_free_timer = 0;
 
-/* The below are defined in frame.c.  */
+/* In dispnew.c */
 
 extern Lisp_Object Vwindow_system_version;
 
+/* The below are defined in frame.c.  */
+
+extern Lisp_Object Qtooltip;
+
 #ifdef GLYPH_DEBUG
 int image_cache_refcount, dpyinfo_refcount;
 #endif
@@ -1348,7 +1353,10 @@
   if (FRAME_W32_WINDOW (f) != 0)
     {
       if (x->cursor_pixel == old_fg)
-	x->cursor_pixel = fg;
+	{
+	  x->cursor_pixel = fg;
+	  x->cursor_gc->background = fg;
+	}
 
       update_face_from_frame_parameter (f, Qforeground_color, arg);
       if (FRAME_VISIBLE_P (f))
@@ -5583,9 +5591,8 @@
   change_frame_size (f, height, width, 1, 0, 0);
 
   /* Add `tooltip' frame parameter's default value. */
-  if (NILP (Fframe_parameter (frame, intern ("tooltip"))))
-    Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt),
-					    Qnil));
+  if (NILP (Fframe_parameter (frame, Qtooltip)))
+    Fmodify_frame_parameters (frame, Fcons (Fcons (Qtooltip, Qt), Qnil));
 
   /* Set up faces after all frame parameters are known.  This call
      also merges in face attributes specified for new frames.
@@ -6333,6 +6340,7 @@
      Lisp_Object operation, document, parameters, show_flag;
 {
   Lisp_Object current_dir;
+  char *errstr;
 
   CHECK_STRING (document);
 
@@ -6353,7 +6361,17 @@
 			   XINT (show_flag) : SW_SHOWDEFAULT))
       > 32)
     return Qt;
-  error ("ShellExecute failed: %s", w32_strerror (0));
+  errstr = w32_strerror (0);
+  /* The error string might be encoded in the locale's encoding.  */
+  if (!NILP (Vlocale_coding_system))
+    {
+      Lisp_Object decoded =
+	code_convert_string_norecord (make_unibyte_string (errstr,
+							   strlen (errstr)),
+				      Vlocale_coding_system, 0);
+      errstr = (char *)SDATA (decoded);
+    }
+  error ("ShellExecute failed: %s", errstr);
 }
 
 /* Lookup virtual keycode from string representing the name of a
--- a/src/w32term.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/w32term.c	Tue Jul 27 16:01:48 2010 +0900
@@ -761,7 +761,6 @@
   struct frame *f = XFRAME (WINDOW_FRAME (w));
   HDC hdc;
   struct face *face = p->face;
-  int rowY;
 
   hdc = get_frame_dc (f);
 
@@ -820,21 +819,7 @@
     }
 
   /* Must clip because of partially visible lines.  */
-  rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y);
-  if (p->y < rowY)
-    {
-      /* Adjust position of "bottom aligned" bitmap on partially
-	 visible last row.  */
-      int oldY = row->y;
-      int oldVH = row->visible_height;
-      row->visible_height = p->h;
-      row->y -= rowY - p->y;
-      w32_clip_to_row (w, row, -1, hdc);
-      row->y = oldY;
-      row->visible_height = oldVH;
-    }
-  else
-    w32_clip_to_row (w, row, -1, hdc);
+  w32_clip_to_row (w, row, -1, hdc);
 
   if (p->which && p->which < max_fringe_bmp)
     {
--- a/src/window.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/window.c	Tue Jul 27 16:01:48 2010 +0900
@@ -517,7 +517,10 @@
        doc: /* Return the number of lines in WINDOW.
 WINDOW defaults to the selected window.
 
-The return value includes WINDOW's mode line and header line, if any.  */)
+The return value includes WINDOW's mode line and header line, if any.
+
+Note: The function does not take into account the value of `line-spacing'
+when calculating the number of lines in WINDOW.  */)
      (window)
      Lisp_Object window;
 {
--- a/src/xdisp.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/xdisp.c	Tue Jul 27 16:01:48 2010 +0900
@@ -6429,6 +6429,7 @@
      struct it *it;
 {
   it->what = IT_IMAGE;
+  it->ignore_overlay_strings_at_pos_p = 0;
   return 1;
 }
 
@@ -13936,8 +13937,16 @@
         (*FRAME_TERMINAL (f)->redeem_scroll_bar_hook) (w);
     }
 
-  /* Restore current_buffer and value of point in it.  */
-  TEMP_SET_PT_BOTH (CHARPOS (opoint), BYTEPOS (opoint));
+  /* Restore current_buffer and value of point in it.  The window
+     update may have changed the buffer, so first make sure `opoint'
+     is still valid (Bug#6177).  */
+  if (CHARPOS (opoint) < BEGV)
+    TEMP_SET_PT_BOTH (BEGV, BEGV_BYTE);
+  else if (CHARPOS (opoint) > ZV)
+    TEMP_SET_PT_BOTH (Z, Z_BYTE);
+  else
+    TEMP_SET_PT_BOTH (CHARPOS (opoint), BYTEPOS (opoint));
+
   set_buffer_internal_1 (old);
   /* Avoid an abort in TEMP_SET_PT_BOTH if the buffer has become
      shorter.  This can be caused by log truncation in *Messages*. */
--- a/src/xfaces.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/xfaces.c	Tue Jul 27 16:01:48 2010 +0900
@@ -5783,6 +5783,7 @@
       struct face *former_face = cache->faces_by_id[former_face_id];
       uncache_face (cache, former_face);
       free_realized_face (cache->f, former_face);
+      SET_FRAME_GARBAGED (cache->f);
     }
 
   if (FRAME_WINDOW_P (cache->f))
--- a/src/xfns.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/xfns.c	Tue Jul 27 16:01:48 2010 +0900
@@ -205,6 +205,8 @@
 
 /* The below are defined in frame.c.  */
 
+extern Lisp_Object Qtooltip;
+
 #if GLYPH_DEBUG
 int image_cache_refcount, dpyinfo_refcount;
 #endif
@@ -402,10 +404,11 @@
 /* Likewise, but consider only the menu bar widget.  */
 
 struct frame *
-x_menubar_window_to_frame (dpyinfo, wdesc)
+x_menubar_window_to_frame (dpyinfo, event)
      struct x_display_info *dpyinfo;
-     int wdesc;
+     XEvent *event;
 {
+  Window wdesc = event->xany.window;
   Lisp_Object tail, frame;
   struct frame *f;
   struct x_output *x;
@@ -421,21 +424,11 @@
       if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
 	continue;
       x = f->output_data.x;
+#ifdef USE_GTK
+      if (x->menubar_widget && xg_event_is_for_menubar (f, event))
+        return f;
+#else
       /* Match if the window is this frame's menubar.  */
-#ifdef USE_GTK
-      if (x->menubar_widget)
-        {
-          GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc);
-
-	  /* This gives false positives, but the rectangle check in xterm.c
-	     where this is called takes care of that.  */
-          if (gwdesc != 0
-              && (gwdesc == x->menubar_widget
-                  || gtk_widget_is_ancestor (x->menubar_widget, gwdesc)
-		  || gtk_widget_is_ancestor (gwdesc, x->menubar_widget)))
-            return f;
-        }
-#else
       if (x->menubar_widget
 	  && lw_window_is_in_menubar (wdesc, x->menubar_widget))
 	return f;
@@ -4914,9 +4907,8 @@
   change_frame_size (f, height, width, 1, 0, 0);
 
   /* Add `tooltip' frame parameter's default value. */
-  if (NILP (Fframe_parameter (frame, intern ("tooltip"))))
-    Fmodify_frame_parameters (frame, Fcons (Fcons (intern ("tooltip"), Qt),
-					    Qnil));
+  if (NILP (Fframe_parameter (frame, Qtooltip)))
+    Fmodify_frame_parameters (frame, Fcons (Fcons (Qtooltip, Qt), Qnil));
 
   /* FIXME - can this be done in a similar way to normal frames?
      http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg00641.html */
--- a/src/xftfont.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/xftfont.c	Tue Jul 27 16:01:48 2010 +0900
@@ -429,7 +429,7 @@
 	ascii_printable[i] = ' ' + i;
     }
   BLOCK_INPUT;
-  if (spacing != FC_PROPORTIONAL)
+  if (spacing != FC_PROPORTIONAL && spacing != FC_DUAL)
     {
       font->min_width = font->average_width = font->space_width
 	= xftfont->max_advance_width;
--- a/src/xterm.c	Tue May 11 20:15:29 2010 +0900
+++ b/src/xterm.c	Tue Jul 27 16:01:48 2010 +0900
@@ -774,24 +774,9 @@
   Window window = FRAME_X_WINDOW (f);
   GC gc = f->output_data.x->normal_gc;
   struct face *face = p->face;
-  int rowY;
 
   /* Must clip because of partially visible lines.  */
-  rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y);
-  if (p->y < rowY)
-    {
-      /* Adjust position of "bottom aligned" bitmap on partially
-	 visible last row.  */
-      int oldY = row->y;
-      int oldVH = row->visible_height;
-      row->visible_height = p->h;
-      row->y -= rowY - p->y;
-      x_clip_to_row (w, row, -1, gc);
-      row->y = oldY;
-      row->visible_height = oldVH;
-    }
-  else
-    x_clip_to_row (w, row, -1, gc);
+  x_clip_to_row (w, row, -1, gc);
 
   if (!p->overlay_p)
     {
@@ -6966,7 +6951,7 @@
 	  f->mouse_moved = 0;
 
 #if defined (USE_X_TOOLKIT) || defined (USE_GTK)
-        f = x_menubar_window_to_frame (dpyinfo, event.xbutton.window);
+        f = x_menubar_window_to_frame (dpyinfo, &event);
         /* For a down-event in the menu bar,
            don't pass it to Xt right now.
            Instead, save it away
--- a/src/xterm.h	Tue May 11 20:15:29 2010 +0900
+++ b/src/xterm.h	Tue Jul 27 16:01:48 2010 +0900
@@ -383,7 +383,8 @@
 extern struct frame *x_window_to_frame P_ ((struct x_display_info *, int));
 
 extern struct frame *x_any_window_to_frame P_ ((struct x_display_info *, int));
-extern struct frame *x_menubar_window_to_frame P_ ((struct x_display_info *, int));
+extern struct frame *x_menubar_window_to_frame P_ ((struct x_display_info *,
+                                                    XEvent *));
 extern struct frame *x_top_window_to_frame P_ ((struct x_display_info *, int));
 
 #if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)