changeset 108852:c0c86482b2ab

Merge from mainline.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sun, 30 May 2010 22:54:27 +0000
parents cb093dac3d58 (current diff) 91c7e7b1d29a (diff)
children a82e98d2915b
files
diffstat 38 files changed, 729 insertions(+), 736 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri May 28 00:48:45 2010 +0000
+++ b/ChangeLog	Sun May 30 22:54:27 2010 +0000
@@ -1,3 +1,7 @@
+2010-05-28  Glenn Morris  <rgm@gnu.org>
+
+	* configure.in: Simplify some of the $canonical tests.
+
 2010-05-27  Glenn Morris  <rgm@gnu.org>
 
 	* config.bat: Do not preprocess src/Makefile.in.
@@ -2107,6 +2111,10 @@
 
 	Update copyright year(s) in many files.
 
+2006-04-01  Eli Zaretskii  <eliz@gnu.org>
+
+	* configure: Regenerated.
+
 2006-04-01  Emanuele Giaquinta  <emanuele.giaquinta@gmail.com>  (tiny change)
 
 	* configure.in (HAVE_XAW3D): Disable Xaw3d check if
@@ -4067,6 +4075,11 @@
 	* make-dist: Unset EMACS_UNIBYTE, so Emacs runs in its default state.
 	Quote $EMACS, in case it's a program with args.
 
+1999-06-15  Gerd Moellmann  <gerd@gnu.org>
+
+	* configure.in (HAVE_GIF): Use libungif instead of libgif
+	because the former doesn't contain patented compression code.
+
 1999-05-29  Richard M. Stallman  <rms@gnu.org>
 
 	* configure.in: Delete the Kerberos stuff.
--- a/Makefile.in	Fri May 28 00:48:45 2010 +0000
+++ b/Makefile.in	Sun May 30 22:54:27 2010 +0000
@@ -279,6 +279,9 @@
 removenullpaths=sed -e 's/^://g' -e 's/:$$//g' -e 's/::/:/g'
 
 # Generate epaths.h from epaths.in.  This target is invoked by `configure'.
+# See comments in configure.in for why it is done this way, as opposed
+# to just letting configure generate epaths.h from epaths.in in a
+# similar way to how Makefile is made from Makefile.in.
 epaths-force: FRC
 	@(lisppath=`echo ${lisppath} | ${removenullpaths}` ;		\
 	  buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ;	\
--- a/configure	Fri May 28 00:48:45 2010 +0000
+++ b/configure	Sun May 30 22:54:27 2010 +0000
@@ -2724,7 +2724,7 @@
 ### the appropriate operating system and machine description files.
 
 ### You would hope that you could choose an m/*.h file pretty much
-### based on the machine portion of the configuration name, and an s-
+### based on the machine portion of the configuration name, and an s/*.h
 ### file based on the operating system portion.  However, it turns out
 ### that each m/*.h file is pretty manufacturer-specific - for
 ### example mips.h is MIPS
@@ -2736,10 +2736,6 @@
 ### /etc/MACHINES doesn't say anything about version numbers, be
 ### prepared to handle anything reasonably.  If version numbers
 ### matter, be sure /etc/MACHINES says something about it.
-###
-### Eric Raymond says we should accept strings like "sysvr4" to mean
-### "System V Release 4"; he writes, "The old convention encouraged
-### confusion between `system' and `release' levels'."
 
 machine='' opsys='' unported=no
 case "${canonical}" in
@@ -2748,14 +2744,14 @@
   *-*-freebsd* )
     opsys=freebsd
     case "${canonical}" in
-      alpha*-*-freebsd*)	machine=alpha ;;
-      arm*-*-freebsd*)          machine=arm ;;
-      ia64-*-freebsd*)		machine=ia64 ;;
-      sparc-*-freebsd*)         machine=sparc ;;
-      sparc64-*-freebsd*)	machine=sparc ;;
-      powerpc-*-freebsd*)	machine=macppc ;;
-      i[3456]86-*-freebsd*)	machine=intel386 ;;
-      amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
+      alpha*)           machine=alpha ;;
+      amd64-*|x86_64-*) machine=amdx86-64 ;;
+      arm*)             machine=arm ;;
+      ia64-*)           machine=ia64 ;;
+      i[3456]86-*)      machine=intel386 ;;
+      powerpc-*)        machine=macppc ;;
+      sparc-*)          machine=sparc ;;
+      sparc64-*)        machine=sparc ;;
     esac
   ;;
 
@@ -2763,13 +2759,13 @@
   *-*-kfreebsd*gnu* )
     opsys=gnu-kfreebsd
     case "${canonical}" in
-      alpha*-*-kfreebsd*)	machine=alpha ;;
-      ia64-*-kfreebsd*)		machine=ia64 ;;
-      sparc-*-kfreebsd*)	machine=sparc ;;
-      sparc64-*-kfreebsd*)	machine=sparc ;;
-      powerpc-*-kfreebsd*)	machine=macppc ;;
-      i[3456]86-*-kfreebsd*)	machine=intel386 ;;
-      amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;;
+      alpha*)           machine=alpha ;;
+      amd64-*|x86_64-*) machine=amdx86-64 ;;
+      ia64-*)           machine=ia64 ;;
+      i[3456]86-*)      machine=intel386 ;;
+      powerpc-*)        machine=macppc ;;
+      sparc-*)          machine=sparc ;;
+      sparc64-*)        machine=sparc ;;
     esac
   ;;
 
@@ -2777,18 +2773,17 @@
   *-*-netbsd* )
     opsys=netbsd
     case "${canonical}" in
-      alpha*-*-netbsd*)	machine=alpha ;;
-      i[3456]86-*-netbsd*) machine=intel386 ;;
-      mips-*-netbsd*)	machine=mips ;;
-      mipsel-*-netbsd*)	machine=mips ;;
-      mipseb-*-netbsd*)	machine=mips ;;
-      powerpc-*-netbsd*) machine=macppc ;;
-      sparc*-*-netbsd*)	machine=sparc ;;
-      vax-*-netbsd*)	machine=vax ;;
-      arm-*-netbsd*)	machine=arm ;;
-      x86_64-*-netbsd*)	machine=amdx86-64 ;;
-      hppa-*-netbsd*)	machine=hp800 ;;
-      m68k-*-netbsd*)	machine=m68k ;;
+      alpha*)      machine=alpha ;;
+      x86_64-*)    machine=amdx86-64 ;;
+      arm-*)       machine=arm ;;
+      hppa-*)      machine=hp800 ;;
+      i[3456]86-*) machine=intel386 ;;
+      m68k-*)      machine=m68k ;;
+      powerpc-*)   machine=macppc ;;
+      mips-*)      machine=mips ;;
+      mipse[bl]-*) machine=mips ;;
+      sparc*-)     machine=sparc ;;
+      vax-*)       machine=vax ;;
     esac
   ;;
 
@@ -2796,14 +2791,14 @@
   *-*-openbsd* )
     opsys=openbsd
     case "${canonical}" in
-      alpha*-*-openbsd*)	machine=alpha ;;
-      arm-*-openbsd*)          machine=arm ;;
-      i386-*-openbsd*)         machine=intel386 ;;
-      powerpc-*-openbsd*)      machine=macppc ;;
-      sparc*-*-openbsd*)       machine=sparc ;;
-      vax-*-openbsd*)          machine=vax ;;
-      x86_64-*-openbsd*)       machine=amdx86-64 ;;
-      hppa-*-openbsd*)         machine=hp800 ;;
+      alpha*)    machine=alpha ;;
+      x86_64-*)  machine=amdx86-64 ;;
+      arm-*)     machine=arm ;;
+      hppa-*)    machine=hp800 ;;
+      i386-*)    machine=intel386 ;;
+      powerpc-*) machine=macppc ;;
+      sparc*)    machine=sparc ;;
+      vax-*)     machine=vax ;;
     esac
   ;;
 
@@ -2854,16 +2849,16 @@
   s390x-*-linux-gnu* )
     machine=ibms390x opsys=gnu-linux
   ;;
-  rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
+  rs6000-ibm-aix4.[23]* )
     machine=ibmrs6000 opsys=aix4-2
   ;;
-  rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3*  )
+  powerpc-ibm-aix4.[23]*  )
     machine=ibmrs6000 opsys=aix4-2
   ;;
-  rs6000-ibm-aix5* | powerpc-ibm-aix5*  )
+  rs6000-ibm-aix[56]* )
     machine=ibmrs6000 opsys=aix4-2
   ;;
-  rs6000-ibm-aix6* | powerpc-ibm-aix6*  )
+  powerpc-ibm-aix[56]*  )
     machine=ibmrs6000 opsys=aix4-2
   ;;
 
@@ -2932,7 +2927,7 @@
     machine=ia64 opsys=gnu-linux
   ;;
 
-  ## Intel 386 machines where we don't care about the manufacturer
+  ## Intel 386 machines where we don't care about the manufacturer.
   i[3456]86-*-* )
     machine=intel386
     case "${canonical}" in
--- a/configure.in	Fri May 28 00:48:45 2010 +0000
+++ b/configure.in	Sun May 30 22:54:27 2010 +0000
@@ -32,6 +32,10 @@
 dnl --program-transform-name options
 AC_ARG_PROGRAM
 
+dnl It is important that variables on the RHS not be expanded here,
+dnl hence the single quotes.  This is per the GNU coding standards, see
+dnl (autoconf) Installation Directory Variables
+dnl See also epaths.h below.
 lispdir='${datadir}/emacs/${version}/lisp'
 locallisppath='${datadir}/emacs/${version}/site-lisp:'\
 '${datadir}/emacs/site-lisp'
@@ -369,7 +373,7 @@
 ### the appropriate operating system and machine description files.
 
 ### You would hope that you could choose an m/*.h file pretty much
-### based on the machine portion of the configuration name, and an s-
+### based on the machine portion of the configuration name, and an s/*.h
 ### file based on the operating system portion.  However, it turns out
 ### that each m/*.h file is pretty manufacturer-specific - for
 ### example mips.h is MIPS
@@ -381,10 +385,6 @@
 ### /etc/MACHINES doesn't say anything about version numbers, be
 ### prepared to handle anything reasonably.  If version numbers
 ### matter, be sure /etc/MACHINES says something about it.
-###
-### Eric Raymond says we should accept strings like "sysvr4" to mean
-### "System V Release 4"; he writes, "The old convention encouraged
-### confusion between `system' and `release' levels'."
 
 machine='' opsys='' unported=no
 case "${canonical}" in
@@ -393,14 +393,14 @@
   *-*-freebsd* )
     opsys=freebsd
     case "${canonical}" in
-      alpha*-*-freebsd*)	machine=alpha ;;
-      arm*-*-freebsd*)          machine=arm ;;
-      ia64-*-freebsd*)		machine=ia64 ;;
-      sparc-*-freebsd*)         machine=sparc ;;
-      sparc64-*-freebsd*)	machine=sparc ;;
-      powerpc-*-freebsd*)	machine=macppc ;;
-      i[3456]86-*-freebsd*)	machine=intel386 ;;
-      amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;;
+      alpha*)           machine=alpha ;;
+      amd64-*|x86_64-*) machine=amdx86-64 ;;
+      arm*)             machine=arm ;;
+      ia64-*)           machine=ia64 ;;
+      i[3456]86-*)      machine=intel386 ;;
+      powerpc-*)        machine=macppc ;;
+      sparc-*)          machine=sparc ;;
+      sparc64-*)        machine=sparc ;;
     esac
   ;;
 
@@ -408,13 +408,13 @@
   *-*-kfreebsd*gnu* )
     opsys=gnu-kfreebsd
     case "${canonical}" in
-      alpha*-*-kfreebsd*)	machine=alpha ;;
-      ia64-*-kfreebsd*)		machine=ia64 ;;
-      sparc-*-kfreebsd*)	machine=sparc ;;
-      sparc64-*-kfreebsd*)	machine=sparc ;;
-      powerpc-*-kfreebsd*)	machine=macppc ;;
-      i[3456]86-*-kfreebsd*)	machine=intel386 ;;
-      amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;;
+      alpha*)           machine=alpha ;;
+      amd64-*|x86_64-*) machine=amdx86-64 ;;
+      ia64-*)           machine=ia64 ;;
+      i[3456]86-*)      machine=intel386 ;;
+      powerpc-*)        machine=macppc ;;
+      sparc-*)          machine=sparc ;;
+      sparc64-*)        machine=sparc ;;
     esac
   ;;
 
@@ -422,18 +422,17 @@
   *-*-netbsd* )
     opsys=netbsd
     case "${canonical}" in
-      alpha*-*-netbsd*)	machine=alpha ;;
-      i[3456]86-*-netbsd*) machine=intel386 ;;
-      mips-*-netbsd*)	machine=mips ;;
-      mipsel-*-netbsd*)	machine=mips ;;
-      mipseb-*-netbsd*)	machine=mips ;;
-      powerpc-*-netbsd*) machine=macppc ;;
-      sparc*-*-netbsd*)	machine=sparc ;;
-      vax-*-netbsd*)	machine=vax ;;
-      arm-*-netbsd*)	machine=arm ;;
-      x86_64-*-netbsd*)	machine=amdx86-64 ;;
-      hppa-*-netbsd*)	machine=hp800 ;;
-      m68k-*-netbsd*)	machine=m68k ;;
+      alpha*)      machine=alpha ;;
+      x86_64-*)    machine=amdx86-64 ;;
+      arm-*)       machine=arm ;;
+      hppa-*)      machine=hp800 ;;
+      i[3456]86-*) machine=intel386 ;;
+      m68k-*)      machine=m68k ;;
+      powerpc-*)   machine=macppc ;;
+      mips-*)      machine=mips ;;
+      mipse[bl]-*) machine=mips ;;
+      sparc*-)     machine=sparc ;;
+      vax-*)       machine=vax ;;
     esac
   ;;
 
@@ -441,14 +440,14 @@
   *-*-openbsd* )
     opsys=openbsd
     case "${canonical}" in
-      alpha*-*-openbsd*)	machine=alpha ;;
-      arm-*-openbsd*)          machine=arm ;;
-      i386-*-openbsd*)         machine=intel386 ;;
-      powerpc-*-openbsd*)      machine=macppc ;;
-      sparc*-*-openbsd*)       machine=sparc ;;
-      vax-*-openbsd*)          machine=vax ;;
-      x86_64-*-openbsd*)       machine=amdx86-64 ;;
-      hppa-*-openbsd*)         machine=hp800 ;;
+      alpha*)    machine=alpha ;;
+      x86_64-*)  machine=amdx86-64 ;;
+      arm-*)     machine=arm ;;
+      hppa-*)    machine=hp800 ;;
+      i386-*)    machine=intel386 ;;
+      powerpc-*) machine=macppc ;;
+      sparc*)    machine=sparc ;;
+      vax-*)     machine=vax ;;
     esac
   ;;
 
@@ -499,16 +498,16 @@
   s390x-*-linux-gnu* )
     machine=ibms390x opsys=gnu-linux
   ;;
-  rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2*  )
+  rs6000-ibm-aix4.[23]* )
     machine=ibmrs6000 opsys=aix4-2
   ;;
-  rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3*  )
+  powerpc-ibm-aix4.[23]*  )
     machine=ibmrs6000 opsys=aix4-2
   ;;
-  rs6000-ibm-aix5* | powerpc-ibm-aix5*  )
+  rs6000-ibm-aix[56]* )
     machine=ibmrs6000 opsys=aix4-2
   ;;
-  rs6000-ibm-aix6* | powerpc-ibm-aix6*  )
+  powerpc-ibm-aix[56]*  )
     machine=ibmrs6000 opsys=aix4-2
   ;;
 
@@ -577,7 +576,7 @@
     machine=ia64 opsys=gnu-linux
   ;;
 
-  ## Intel 386 machines where we don't care about the manufacturer
+  ## Intel 386 machines where we don't care about the manufacturer.
   i[3456]86-*-* )
     machine=intel386
     case "${canonical}" in
@@ -3755,6 +3754,14 @@
 test "${exec_prefix}" != NONE &&
   exec_prefix=`echo "${exec_prefix}" | sed 's,\([^/]\)/*$,\1,'`]
 
+dnl You might wonder (I did) why epaths.h is generated by running make,
+dnl rather than just letting configure generate it from epaths.in.
+dnl One reason is that the various paths are not fully expanded (see above);
+dnl eg gamedir=${prefix}/var/games/emacs.
+dnl Secondly, the GNU Coding standards require that one should be able
+dnl to run `make prefix=/some/where/else' and override the values set
+dnl by configure.  This also explains the `move-if-change' test and
+dnl the use of force in the `epaths-force' rule in Makefile.in.
 AC_OUTPUT(Makefile lib-src/Makefile oldXMenu/Makefile \
 	doc/emacs/Makefile doc/misc/Makefile doc/lispintro/Makefile \
 	doc/lispref/Makefile src/Makefile \
--- a/doc/emacs/ChangeLog	Fri May 28 00:48:45 2010 +0000
+++ b/doc/emacs/ChangeLog	Sun May 30 22:54:27 2010 +0000
@@ -1,3 +1,8 @@
+2010-05-29  Eli Zaretskii  <eliz@gnu.org>
+
+	* basic.texi (Moving Point): Update due to renaming of commands bound
+	to arrows.  Document bidi-aware behavior of C-<right> and C-<left>.
+
 2010-05-18  Eli Zaretskii  <eliz@gnu.org>
 
 	* display.texi (Fringes): Document reversal of fringe arrows for R2L
--- a/doc/emacs/basic.texi	Fri May 28 00:48:45 2010 +0000
+++ b/doc/emacs/basic.texi	Sun May 30 22:54:27 2010 +0000
@@ -146,8 +146,8 @@
 @findex move-end-of-line
 @findex forward-char
 @findex backward-char
-@findex right-arrow-command
-@findex left-arrow-command
+@findex right-char
+@findex left-char
 @findex next-line
 @findex previous-line
 @findex beginning-of-buffer
@@ -165,7 +165,7 @@
 @item C-f
 Move forward one character (@code{forward-char}).
 @item @key{right}
-Move one character to the right (@code{right-arrow-command}).  This
+Move one character to the right (@code{right-char}).  This
 moves one character forward in text that is read in the usual
 left-to-right direction, but one character @emph{backward} if the text
 is read right-to-left, as needed for right-to-left scripts such as
@@ -173,17 +173,23 @@
 @item C-b
 Move backward one character (@code{backward-char}).
 @item @key{left}
-Move one character to the left (@code{left-arrow-command}).  This
+Move one character to the left (@code{left-char}).  This
 moves one character backward in left-to-right text and one character
 forward in right-to-left text.
 @item M-f
 @itemx M-@key{right}
-@itemx C-@key{right}
 Move forward one word (@code{forward-word}).
+@item C-@key{right}
+Move one word to the right (@code{right-word}).  This moves one word
+forward in left-to-right text and one word backward in right-to-left
+text.
 @item M-b
 @itemx M-@key{left}
-@itemx C-@key{left}
 Move backward one word (@code{backward-word}).
+@item C-@key{left}
+Move one word to the left (@code{left-word}).  This moves one word
+backward in left-to-right text and one word forward in right-to-left
+text.
 @item C-n
 @itemx @key{down}
 Move down one screen line (@code{next-line}).  This command attempts
--- a/etc/ChangeLog	Fri May 28 00:48:45 2010 +0000
+++ b/etc/ChangeLog	Sun May 30 22:54:27 2010 +0000
@@ -1,3 +1,8 @@
+2010-05-28  Glenn Morris  <rgm@gnu.org>
+
+	* MACHINES: Remove some old information no longer of relevance.
+	Switch to outline-mode.
+
 2010-05-27  Glenn Morris  <rgm@gnu.org>
 
 	* PROBLEMS: Remove old information no longer of relevance.
--- a/etc/MACHINES	Fri May 28 00:48:45 2010 +0000
+++ b/etc/MACHINES	Sun May 30 22:54:27 2010 +0000
@@ -6,9 +6,9 @@
 
 This is a list of the status of GNU Emacs on various machines and systems.
 
-For each system and machine, we give the configuration name you should
-pass to the `configure' script to prepare to build Emacs for that
-system/machine.
+Information about older releases, and platforms that are no longer
+supported, has been removed.  Consult older versions of this file if
+you are interested in this information.
 
 The `configure' script uses the configuration name to decide which
 machine and operating system description files `src/config.h' should
@@ -25,16 +25,10 @@
 system description files.
 
 Some obsolete platforms are unsupported beginning with Emacs 23.1, see
-the full list at the end of this file.
+the list at the end of this file.
 
 
-Here are the configurations Emacs is intended to work with, with the
-corresponding configuration names.  You can postpend version numbers
-to operating system names (i.e. sunos4.1) or architecture names (i.e.
-hppa1.1).  If you leave out the version number, the `configure' script
-will configure Emacs for the latest version it knows about.
-
-Alpha (DEC) running GNU/Linux (alpha-dec-linux-gnu)
+** Alpha (DEC) running GNU/Linux (alpha-dec-linux-gnu)
 
   DEC C compiler version 5.9 (DEC C V5.9-005 on Digital UNIX V4.0f)
   is reported to produce bogus binaries of Emacs 21.2 when the
@@ -47,125 +41,26 @@
   versions fail to build with a message "Invalid dimension for the
   charset-ID 160".
 
-  Note that the X11 libraries on GNU/Linux systems for the Alpha are
-  said to have bugs that prevent Emacs from working with X (as of
-  November 1995).  Recent releases work (July 2000).
-
-Apple Macintosh running Mac OS X
-
-  For installation instructions see the file nextstep/INSTALL.
-
-Apple PowerPC Macintosh running GNU/Linux
-
-  There are special considerations for a variety of this system which
-  is known as the ``Yellow Dog [GNU/]Linux'': Emacs may crash during
-  dumping.  To solve this, edit the header file src/m/macppc.h in the
-  Emacs distribution, and remove the "#if 0" and "#endif" directives
-  which surround the following block near the end of the file:
-
-    #if 0  /* This breaks things on PPC GNU/Linux except for Yellowdog,
-	      even with identical GCC, as, ld.  Let's take it out until we
-	      know what's really going on here.  */
-    /* GCC 2.95 and newer on GNU/Linux PPC changed the load address to
-       0x10000000.  */
-    #if defined __linux__
-    #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
-    #define DATA_SEG_BITS  0x10000000
-    #endif
-    #endif
-    #endif /* 0 */
+** Apple Macintosh running Mac OS X
 
-  After that, reconfigure and rebuild Emacs.  It should now build
-  successfully.
-
-Cubix QBx/386 (i386-cubix-sysv)
-
-  Changes merged in 19.1.  Systems before 2/A/0 may fail to compile etags.c
-  due to a compiler bug.
-
-Motorola Delta 147 (m68k-motorola-sysv)
-
-  The EMacs 19.26 pretest was reported to work.
+** Apple PowerPC Macintosh running GNU/Linux
 
-  Motorola Delta boxes running System V/68 release 3.
-  Tested on 147 board with SVR3V7, no X and gcc.
-  Tested on 167 board with SVR3V7, no X, cc, gnucc and gcc.
-  Reports say it works with X too.
-
-  The installation script chooses the compiler itself.  gnucc is
-  preferred.
-
-Fujitsu DS/90 (sparc-fujitsu-sysv4)
-
-  Changes merged in 20.3.
-
-HP 9000 series 700 or 800 (Spectrum) (hppa1.0-hp-hpux or hppa1.1-hp-hpux
-				      or ...hpux9shr)
-
-  Use hppa1.1 for the 700 series and hppa1.0 for the 800
-  series machines.  (Emacs may not actually care which one you use.)
+** HP 9000 series 700 or 800 (Spectrum) (hppa1.0-hp-hpux or hppa1.1-hp-hpux)
 
   Emacs 20 may work on HPUX 10.  You need patch PHSS_6202 to install
   the Xaw and Xmu libraries.  On HPUX 10.20 you may need to compile with GCC;
   when Emacs was compiled with HP's C compiler, HP92453-01 A.10.32.03,
   the subprocess features failed to work.
 
-  19.26 is believed to work on HPUX 9 provided you compile with GCC.
-  As of version 19.16, Emacs was reported to build (using GCC) and run
-  on HP 9000/700 series machines running HP/UX versions 8.07 and 9.01.
-  The HP compiler is known to fail on some versions if you use +O3,
-  but it may work with lower optimization levels.
-
-  Use hppa1.1-hp-hpux9shr to use shared libraries on HPUX version 9.
-  You may need to create the X libraries libXaw.a and libXmu.a from
-  the MIT X distribute, and you may need to edit src/Makefile's
-  definition of LIBXT to look like this:
-
-     LIBXT= $(LIBW) -lXmu -lXt $(LIBXTR6) -lXext
-
-  Some people report trouble using the GNU memory allocator under
-  HP/UX version 9.  The problems often manifest as lots of ^@'s in the
-  buffer.
-
-  We are told that these problems go away if you obtain the latest
-  patches for the HP/UX C compiler.  James J Dempsey
-  <jjd@spserv.bbn.com> says that this set of versions works for him:
-    /bin/cc:
-	    HP92453-01 A.09.28 HP C Compiler
-    /lib/ccom:
-	    HP92453-01 A.09.28 HP C Compiler
-	     HP-UX SLLIC/OPTIMIZER  HP-UX.09.00.23  02/18/93
-	     Ucode Code Generator - HP-UX.09.00.23.5 (patch)  2/18/93
-
-  For 700 series machines, the HP-UX patch needed is known as
-  PHSS_2653.  (Perhaps for 800 series machines as well; we don't
-  know.)  If you are on the Internet, you should be able to obtain
-  this patch by using telnet to access the machine
-  support.mayfield.hp.com and logging in as "hpslreg" and following
-  the instructions there.  Or you may be able to use this
-  web site:
-
-    HP Patch Server: http://support.mayfield.hp.com/patches/html/patches.html
-    HP Support Line: http://support.mayfield.hp.com
-
-  Please do not ask FSF for further support on this.  If you have any
-  trouble obtaining the patch, contact HP Software Support.
-
-  If your buffer fills up with nulls (^@) at some point, it could well
-  be that problem.  That problem does not happen when people use GCC
-  to compile Emacs.  On the other hand, the HP compiler version 9.34
-  was reported to work for the 19.26 pretest.  9.65 was also reported to work.
-
-  If you turn on the DSUSP character (delayed suspend),
-  Emacs 19.26 does not know how to turn it off on HPUX.
-  You need to turn it off manually.
+  If you turn on the DSUSP character (delayed suspend), Emacs 19.26
+  does not know how to turn it off on HPUX. You need to turn it off manually.
 
   If you are running HP/UX release 8.0 or later, you need the optional
   "C/ANSI C" software in order to build Emacs (older releases of HP/UX
   do not require any special software).  If the file "/etc/filesets/C"
   exists on your machine, you have this software, otherwise you do not.
 
-IBM RS/6000 (rs6000-ibm-aix*)
+** IBM RS/6000 (rs6000-ibm-aix*)
 
   Emacs 19.26 is believed to work; its pretest was tested.
 
@@ -180,31 +75,22 @@
   persons say that the tty VMIN and VTIME settings have been
   corrupted; if you have a fix, please send it to us.
 
-  Compiling with -O using the IBM compiler has been known
-  to make Emacs work incorrectly.  It's reported that on
-  AIX 3.2.5 with an IBM compiler earlier than 1.03.00.14,
-  cc -O fails for some files.  You need to install any
-  PTF containing APAR #IX42810 to bring the compiler to
-  the 1.03.00.14 level to allow optimized compiles.
-
-  There are reports that IBM compiler versions earlier than 1.03.00.02
-  fail even without -O.  However, another report said that compiler
-  version 1.02.01.00 did work, on AIX 3.2.4, with Emacs 19.31.
+  Compiling with -O using the IBM compiler has been known to make
+  Emacs work incorrectly.  There are reports that IBM compiler versions
+  earlier than 1.03.00.02 fail even without -O.
 
   As of 19.11, if you strip the Emacs executable, it ceases to work.
 
   If anyone can fix the above problems, or confirm that they don't happen
   with certain versions of various programs, we would appreciate it.
 
-IBM System/390 running GNU/Linux (s390-*-linux-gnu)
+** IBM System/390 running GNU/Linux (s390-*-linux-gnu)
 
   As of Emacs 21.2, a 31-bit only version is supported on this system.
 
-Intel 386 (i386-*-freebsd,      i386-*-linux-gnu,
-	   i386-*-sol2.4,	i386-intsys-sysv,
-	   i386-*-sysv4,	i386-*-sysv4.2,  i386-*-cygwin,
-	   i386-*-msdos,	i386-*-windowsnt.
-	   i386... can be replaced with i486... or i586...)
+** Intel 386 (i386-*-freebsd,      i386-*-linux-gnu,
+	   i386-*-cygwin,       i386-*-msdos,	i386-*-windowsnt.
+	   i386 can be replaced with i486, i586, or i686)
 
   In the above configurations, * means that the manufacturer's name
   you specify does not matter, and you can use any name you like
@@ -213,12 +99,9 @@
   Use i386-*-linux-gnu for GNU/Linux systems; Emacs runs as of version 19.26.
   Use i386-*-cygwin for Cygwin; Emacs builds as of version 22.1, in both X11
   and non-X11 modes.  (The Cygwin site has source and binaries for 21.2.)
-  Use i386-intsys-sysv for Integrated Solutions 386 machines.
-  It may also be correct for Microport systems.
 
   On GNU/Linux systems, Emacs 19.23 was said to work properly with libc
-  version 4.5.21, but not with 4.5.19.  If your system uses QMAGIC
-  for the executable format, you must edit config.h to define LINUX_QMAGIC.
+  version 4.5.21, but not with 4.5.19.
 
   On GNU/Linux, configure may fail to put these definitions in config.h:
 
@@ -231,16 +114,6 @@
   It is possible that this problem happens only with X11R6.
   Newer system versions have fixed it.
 
-  The 19.26 pretest was reported to work on SVR4.3 and on Freebsd.
-
-  19.29 is reported to crash when using Motif on Solaris 2.5.
-  The reasons are not yet known.
-
-  For System V release 4, use i386-*-sysv4.
-  For System V release 4.2, use i386-*-sysv4.2.
-
-  If you are using SCO Unix, see notes at end under SCO.
-
   On NetBSD and FreeBSD, at one time, it was necessary to use
   GNU make, not the system's make.  Assuming it's installed as gmake,
   do `gmake install MAKE=gmake'.  However, more recently it is
@@ -253,16 +126,6 @@
   but no coherent explanation of why that might be so.  If it is so,
   in current versions of Linux, something else should probably be changed.
 
-  Some versions have sys/sioctl.h, and require it in sysdep.c.
-  But some versions do not have sys/sioctl.h.
-  For a given version of the system, this may depend on whether you have
-  X Windows or TCP/IP.  Define or undefine NO_SIOCTL_H in config.h
-  according to whether you have the file.
-
-  Likewise, some versions have been known to need sys/ttold.h, sys/stream.h,
-  and sys/ptem.h included in sysdep.c.  If your system has these files,
-  try defining NEED_PTEM_H in config.h if you have trouble without it.
-
   You may find that adding -I/usr/X/include or -I/usr/netinclude or both
   to CFLAGS avoids compilation errors on certain systems.
 
@@ -270,14 +133,13 @@
   but define `struct tc' instead; add `#define tchars tc'
   to config.h to solve this problem.
 
-Iris 4D (mips-sgi-irix6.*)
+** Iris 4D (mips-sgi-irix6.*)
 
   Emacs 21.3 is reported to work on IRIX 6.5.x.
 
   You can build a 64-bit executable (with larger maximum buffer size)
   on Irix 6.5 by specifying the 64-bit ABI using the `-64' compiler
-  flag or otherwise (see cc(1)).  This may work on earlier Irix 6
-  systems if you edit src/s/irix6-0.h following irix6-5.h.
+  flag or otherwise (see cc(1)).
 
   If compiling with GCC on Irix 6 yields an error "conflicting types
   for `initstate'", install GCC 2.95 or a newer version, and this
@@ -286,36 +148,7 @@
   could also try reinstalling the same version of GCC, and telling us
   whether that fixes the problem.
 
-NCR Intel system (i386-ncr-sysv4.2)
-
-  This system works in 19.31, but if you don't link it with GNU ld,
-  you may need to set LD_RUN_PATH at link time to specify where
-  to find the X libraries.
-
-Prime EXL (i386-prime-sysv)
-
-  Minor changes merged in 19.1.
-
-Siemens Nixdorf RM600 and RM400 (mips-siemens-sysv4)
-
-  Changes merged in 19.29.  The version configured with
-  `--with-x' works without any modifications, but `--with-x-toolkit'
-  works only if the Athena library and the Toolkit library are linked
-  statically.  For this, edit `src/Makefile' after the `configure' run
-  and modify the lines with `-lXaw' and `-lXt' as follows:
-
-    LIBW= /usr/lib/libXaw.a
-    LIBXT= $(LIBW) -lXmu /usr/lib/libXt.a $(LIBXTR6) -lXext
-
-  In addition, `--with-x-toolkit=motif' works only
-  if the Motif library and the Toolkit library are linked statically.
-  To do this, edit `src/Makefile' after the `configure' run
-  and modify the lines with `-lXm' and `-lXt' as follows:
-
-    LIBW= /usr/lib/libXm.a /usr/ccs/lib/libgen.a
-    LIBXT= $(LIBW) -lXmu /usr/lib/libXt.a $(LIBXTR6) -lXext
-
-Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*,
+** Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*,
     			       i386-sun-solaris2.*, sparc*-*-linux-gnu)
 
   To build a 32-bit Emacs (i.e. if you are having any sort of problem
@@ -363,16 +196,6 @@
   As of release 2.95, GCC doesn't work properly with the 64-bit ABI
   (applicable on UltraSPARC), but that isn't the default mode.
 
-  Emacs 20.3 fails to build on Solaris 2.5 if you use GCC 2.7.2.3.
-  Installing GCC 2.8 fixes the problem.
-
-  19.32 works on Solaris 2.4 and 2.5.  On Solaris 2.5
-  you may need one of these patches to prevent Emacs from crashing
-  when it starts up:
-        103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes)
-        102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes)
-	103242-04: [README] SunOS 5.5: linker patch (595363 bytes)
-
   There are reports that using SunSoft cc with -xO4 -xdepend produces
   bad code for some part of Emacs.
 
@@ -384,11 +207,6 @@
   for transferring text between clients.  The Cut, Paste and Copy items
   in the menu bar Edit menu work with the clipboard.
 
-  A user reported irreproducible segmentation faults when using 19.29
-  on Solaris 2.3 and 2.4 after compiling it with the Sun compiler.
-  The problem went away when GCC 2.7.0 was used instead.  We do not know
-  whether anything in Emacs is partly to blame for this.
-
   If you compile with Sun's ANSI compiler acc, you need additional options
   when linking temacs, such as
      /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1
@@ -410,40 +228,23 @@
 
   If you have trouble using open-network-stream, get the distribution
   of `bind' (the BSD name-server), build libresolv.a, and link Emacs
-  with -lresolv, by copying the #definition of LIBS_SYSTEM in
-  src/s/sunos4-1.h to src/config.h.  This problem is due to obsolete
-  software in the nonshared standard library.
+  with -lresolv, by editing LIBRESOLV in src/Makefile.  This problem is
+  due to obsolete software in the nonshared standard library.
 
-  Note that Emacs on a Sun is not really as big as it looks.
-  As dumped, it includes around 200k of zeros between the
-  original text section and the original data section
-  (now remapped as part of the text).  These are never
-  swapped in.
+  Note that Emacs on a Sun is not really as big as it looks.  As
+  dumped, it includes around 200k of zeros between the original text
+  section and the original data section (now remapped as part of the
+  text). These are never swapped in.
 
-SuperH (sh[34]*-*-linux-gnu)
+** SuperH (sh[34]*-*-linux-gnu)
 
   Emacs 23.0.60 was reported to work on GNU/Linux (October 2008).
   Tested on a little-endian sh4 system (cpu type SH7751R) running
   Gentoo Linux 2008.0.
 
-Tadpole 68K (m68k-tadpole-sysv)
-
-  Changes merged in 19.1.
-
-  You may need to edit Makefile to change the variables LIBDIR and
-  BINDIR from /usr/local to /usr/contrib.
-
-  To give movemail access to /usr/mail, you may need to execute
+* Here are notes about some of the systems supported:
 
-    chmod 2755 etc/movemail; chgrp mail etc/movemail
-
-Vaxen running Berkeley Unix (vax-dec-bsd4.1, vax-dec-bsd4.2, vax-dec-bsd4.3)
-
-  Works.
-
-Here are notes about some of the systems supported:
-
-Linux (actually GNU/Linux)
+** Linux (actually GNU/Linux)
 
   Most of the complete systems which use the Linux kernel are close
   enough to the GNU system to be considered variant GNU systems.  We
@@ -462,54 +263,22 @@
   people to write more free software.  See the file LINUX-GNU in this
   directory for more explanation.
 
-Microport
-
-  See under "Intel 386".
-
-MSDOS
-
-  For installation on MSDOS, see the file INSTALL (search for `MSDOG',
-  near the end of the file).  See the "MS-DOS" chapter of the manual
-  for information about using Emacs on MSDOS.
+** Mac OS X
 
-System V rel 4.0.3 and 4.0.4 (usg5.4)
+  For installation instructions see the file nextstep/INSTALL.
 
-  Supported, including shared libraries for ELF, but ptys do not work
-  because TIOCGPGRP fails to work on ptys (but Dell 2.2 seems to have
-  fixed this).  This failure is probably due to a misunderstanding of
-  the consequences of the POSIX spec: many system designers mistakenly
-  think that POSIX requires this feature to fail.  This is untrue;
-  ptys are an extension, and POSIX says that extensions *when used*
-  may change the action of standard facilities in any fashion.
+** MSDOS
 
-  If you get compilation errors about wrong number of
-  arguments to getpgrp, define GETPGRP_NO_ARG.
-
-  Some versions 3 and earlier of V.4, on the Intel 386 and 860, had
-  problems in the X11 libraries.  These prevent Emacs from working
-  with X.  You can use Emacs with X provided your copy of X is based
-  on X11 release 4 or newer, or is Dell's 2.2 (which is a 4.0.3).
-  Unfortunately, the only way you can tell whether your X11 library is
-  new enough is to try compiling Emacs to use X.  If emacs runs, your
-  X11 library is new enough.
+  For installation on MSDOS, see the file msdos/INSTALL.
+  See the "MS-DOS" chapter of the manual for information about using
+  Emacs on MSDOS.
 
-  In this context, GSV4 and GSV4i are alternate names for X11R4.
-  OL2.* is X11R3 based.  OL3 is in between X11R3 and X11R4, and may or
-  may not work, depending on who made the Unix system.  If the library
-  libXol is part of the X distribution, then you have X11R3 and Emacs
-  won't work with X.
-
-  Most versions of V.4 support sockets.  If `/usr/lib/libsocket.so'
-  exists, your system supports them.  If yours does not, you must add
-  #undef HAVE_SOCKETS in config.h, after the inclusion of s-usg5-4.h.
-  (Any system that supports Internet should implement sockets.)
-
-Windows NT/95/98/ME/2000
+** MS-Windows NT/95/98/ME/2000
 
   For installation on all versions of the MS-Windows platform, see the
   file nt/INSTALL.
 
-X86_64 GNU/Linux
+** X86_64 GNU/Linux
 
   No special procedures should be needed to build a 64-bit Emacs.  To
   build a 32-bit Emacs, first ensure that the necessary 32-bit system
@@ -520,6 +289,9 @@
 
   (using the location of the 32-bit X libraries on your system).
 
+
+* Obsolete platforms
+
 Support for the following obsolete platforms was removed in Emacs 23.1
 (the names in parentheses state the files in src/ that were removed):
 
@@ -612,7 +384,7 @@
 
 
 Local variables:
-mode: text
+mode: outline
 fill-prefix: "  "
 End:
 
--- a/etc/NEWS	Fri May 28 00:48:45 2010 +0000
+++ b/etc/NEWS	Sun May 30 22:54:27 2010 +0000
@@ -43,6 +43,10 @@
 
 * Changes in Emacs 24.1
 
+** New emacsclient argument --parent-id ID can be used to open a
+client frame in parent X window ID, via XEmbed.  This works like the
+--parent-id argument to Emacs.
+
 ** Completion can cycle, depending on completion-cycle-threshold.
 
 ** auto-mode-case-fold is now enabled by default.
--- a/etc/PROBLEMS	Fri May 28 00:48:45 2010 +0000
+++ b/etc/PROBLEMS	Sun May 30 22:54:27 2010 +0000
@@ -87,8 +87,7 @@
 Similarly, any other .el file for which there's no corresponding .elc
 file could fail to load if it is compressed.
 
-The solution is to uncompress all .el files which don't have a .elc
-file.
+The solution is to uncompress all .el files that don't have a .elc file.
 
 Another possible reason for such failures is stale *.elc files
 lurking somewhere on your load-path -- see the next section.
@@ -268,8 +267,7 @@
 
 These control the actions of Emacs.
 ~/.emacs is your Emacs init file.
-EMACSLOADPATH overrides which directories the function
-"load" will search.
+EMACSLOADPATH overrides which directories the function "load" will search.
 
 If you observe strange problems, check for these and get rid
 of them, then try again.
@@ -415,8 +413,7 @@
 
 You need to configure your machine with a fully qualified domain name,
 (i.e. a name with at least one ".") either in /etc/hosts,
-/etc/hostname, the NIS, or wherever your system calls for specifying
-this.
+/etc/hostname, the NIS, or wherever your system calls for specifying this.
 
 If you cannot fix the configuration, you can set the Lisp variable
 mail-host-address to the value you want.
@@ -525,8 +522,7 @@
 
 The cause of this is a shell startup file that sets the TERMCAP
 environment variable.  The terminal emulator uses that variable to
-provide the information on the special terminal type that Emacs
-emulates.
+provide the information on the special terminal type that Emacs emulates.
 
 Rewrite your shell startup file so that it does not change TERMCAP
 in such a case.  You could use the following conditional which sets
@@ -825,8 +821,7 @@
 to nil in your `.emacs'.
 
 To see what is the value of UNDERLINE_POSITION defined by the font,
-type `xlsfonts -lll FONT' and look at the font's UNDERLINE_POSITION
-property.
+type `xlsfonts -lll FONT' and look at the font's UNDERLINE_POSITION property.
 
 ** When using Exceed, fonts sometimes appear too tall.
 
@@ -910,8 +905,7 @@
 
   xfd -fn -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-1
 
-If this shows only ASCII glyphs, the font is indeed the source of the
-problem.
+If this shows only ASCII glyphs, the font is indeed the source of the problem.
 
 The solution is to remove the corresponding lines from the appropriate
 `fonts.alias' file, then run `mkfontdir' in that directory, and then run
@@ -1017,8 +1011,7 @@
 
 If C-h c reports an event that doesn't have the Alt modifier, it may
 be because your X server has no key for the Alt modifier.  The X
-server that comes from MIT does not set up the Alt modifier by
-default.
+server that comes from MIT does not set up the Alt modifier by default.
 
 If your keyboard has keys named Alt, you can enable them as follows:
 
@@ -1160,8 +1153,7 @@
 
 On some systems, even with Motif 1.2 emulation, Emacs occasionally
 locks up, grabbing all mouse and keyboard events.  We still don't know
-what causes these problems; they are not reproducible by Emacs
-developers.
+what causes these problems; they are not reproducible by Emacs developers.
 
 *** Motif: The Motif version of Emacs paints the screen a solid color.
 
@@ -1490,8 +1482,7 @@
 need more padding, or possibly the terminal manual is wrong.
 
 2) The characters sent are incorrect, due to an obscure aspect
- of the terminal behavior not described in an obvious way
- by termcap.
+ of the terminal behavior not described in an obvious way by termcap.
 
 This case is hard.  It will be necessary to think of a way for
 Emacs to distinguish between terminals with this kind of behavior
@@ -1517,8 +1508,7 @@
 Some versions of rlogin (and possibly telnet) do not pass flow
 control characters to the remote system to which they connect.
 On such systems, emacs on the remote system cannot disable flow
-control on the local system.  Sometimes `rlogin -8' will avoid this
-problem.
+control on the local system.  Sometimes `rlogin -8' will avoid this problem.
 
 One way to cure this is to disable flow control on the local host
 (the one running rlogin, not the one running rlogind) using the
@@ -1537,8 +1527,7 @@
 
 (enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
 
-See the entry about spontaneous display of I-search (above) for more
-info.
+See the entry about spontaneous display of I-search (above) for more info.
 
 ** Output from Control-V is slow.
 
@@ -1936,8 +1925,8 @@
 
 ** Solaris
 
-We list bugs in current versions here.  Solaris 2.x and 4.x are covered in the
-section on legacy systems.
+We list bugs in current versions here.  See also the section on legacy
+systems.
 
 *** On Solaris, C-x doesn't get through to Emacs when you use the console.
 
@@ -1951,7 +1940,7 @@
 is because the unshared libraries fail to use YP for host name lookup.
 As a result, the host name you specify may not be recognized.
 
-*** Solaris 2,6: Emacs crashes with SIGBUS or SIGSEGV on Solaris after you delete a frame.
+*** Solaris 2.6: Emacs crashes with SIGBUS or SIGSEGV on Solaris after you delete a frame.
 
 We suspect that this is a bug in the X libraries provided by
 Sun.  There is a report that one of these patches fixes the bug and
@@ -2267,8 +2256,7 @@
 
 Of this does not work, please inform bug-gnu-emacs@gnu.org.  Then
 please call support for your X-server and see if you can get a fix.
-If you do, please send it to bug-gnu-emacs@gnu.org so we can list it
-here.
+If you do, please send it to bug-gnu-emacs@gnu.org so we can list it here.
 
 * Build-time problems
 
@@ -2499,7 +2487,7 @@
 ** Bootstrapping
 
 Bootstrapping (compiling the .el files) is normally only necessary
-with CVS builds, since the .elc files are pre-compiled in releases.
+with development builds, since the .elc files are pre-compiled in releases.
 
 *** "No rule to make target" with Ubuntu 8.04 make 3.81-3build1
 
@@ -2611,32 +2599,28 @@
 
 *** temacs prints "Pure Lisp storage exhausted".
 
-This means that the Lisp code loaded from the .elc and .el
-files during  temacs -l loadup inc dump  took up more
-space than was allocated.
+This means that the Lisp code loaded from the .elc and .el files
+during temacs -l loadup inc dump took up more space than was allocated.
 
 This could be caused by
  1) adding code to the preloaded Lisp files
  2) adding more preloaded files in loadup.el
  3) having a site-init.el or site-load.el which loads files.
    Note that ANY site-init.el or site-load.el is nonstandard;
-   if you have received Emacs from some other site
-   and it contains a site-init.el or site-load.el file, consider
-   deleting that file.
+   if you have received Emacs from some other site and it contains a
+   site-init.el or site-load.el file, consider deleting that file.
  4) getting the wrong .el or .elc files
    (not from the directory you expected).
  5) deleting some .elc files that are supposed to exist.
    This would cause the source files (.el files) to be
    loaded instead.  They take up more room, so you lose.
- 6) a bug in the Emacs distribution which underestimates
-   the space required.
+ 6) a bug in the Emacs distribution which underestimates the space required.
 
 If the need for more space is legitimate, change the definition
 of PURESIZE in puresize.h.
 
 But in some of the cases listed above, this problem is a consequence
-of something else that is wrong.  Be sure to check and fix the real
-problem.
+of something else that is wrong.  Be sure to check and fix the real problem.
 
 *** Linux: Emacs crashes when dumping itself on Mac PPC running Yellow Dog GNU/Linux.
 
@@ -2765,16 +2749,7 @@
 If you are using hardware and an operating system shipped after 2000,
 it is unlikely you will see any of these.
 
-*** Sunos 5.3: Subprocesses remain, hanging but not zombies.
-
-A bug in Sunos 5.3 causes Emacs subprocesses to remain after Emacs
-exits.  Sun patch # 101415-02 is part of the fix for this, but it only
-applies to ptys, and doesn't fix the problem with subprocesses
-communicating through pipes.
-
-*** OPENSTEP
-
-**** OPENSTEP 4.2: Compiling syntax.c with gcc 2.7.2.1 fails.
+*** OPENSTEP 4.2: Compiling syntax.c with gcc 2.7.2.1 fails.
 
 The compiler was reported to crash while compiling syntax.c with the
 following message:
@@ -2857,15 +2832,10 @@
 should do.
 
 pen@lysator.liu.se says (Feb 1998) that the Compose key does work
-if you link with the MIT X11 libraries instead of the Solaris X11
-libraries.
-
-*** HP/UX versions before 11.0
-
-HP/UX 10 was end-of-lifed in May 1999.
+if you link with the MIT X11 libraries instead of the Solaris X11 libraries.
 
 *** HP/UX 10: Large file support is disabled.
-
+(HP/UX 10 was end-of-lifed in May 1999.)
 See the comments in src/s/hpux10-20.h.
 
 *** HP/UX: Emacs is slow using X11R5.
@@ -2877,47 +2847,7 @@
 those libraries installed.  To get good performance, you need to
 install them and rebuild Emacs.
 
-*** Digital Unix 4.0: Garbled display on non-X terminals when Emacs runs.
-
-So far it appears that running `tset' triggers this problem (when TERM
-is vt100, at least).  If you do not run `tset', then Emacs displays
-properly.  If someone can tell us precisely which effect of running
-`tset' actually causes the problem, we may be able to implement a fix
-in Emacs.
-
-*** SVr4
-
-**** SVr4: On some variants of SVR4, Emacs does not work at all with X.
-
-Try defining BROKEN_FIONREAD in your config.h file.  If this solves
-the problem, please send a bug report to tell us this is needed; be
-sure to say exactly what type of machine and system you are using.
-
-**** SVr4: After running emacs once, subsequent invocations crash.
-
-Some versions of SVR4 have a serious bug in the implementation of the
-mmap () system call in the kernel; this causes emacs to run correctly
-the first time, and then crash when run a second time.
-
-Contact your vendor and ask for the mmap bug fix; in the mean time,
-you may be able to work around the problem by adding a line to your
-operating system description file (whose name is reported by the
-configure script) that reads:
-#define SYSTEM_MALLOC
-This makes Emacs use memory less efficiently, but seems to work around
-the kernel bug.
-
-*** SCO Unix and UnixWare
-
-**** SCO 4.2.0: Regular expressions matching bugs on SCO systems.
-
-On SCO, there are problems in regexp matching when Emacs is compiled
-with the system compiler.  The compiler version is "Microsoft C
-version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; Quick
-C Compiler Version 1.00.46 (Beta).  The solution is to compile with
-GCC.
-
-**** UnixWare 2.1: Error 12 (virtual memory exceeded) when dumping Emacs.
+*** UnixWare 2.1: Error 12 (virtual memory exceeded) when dumping Emacs.
 
 Paul Abrahams (abrahams@acm.org) reports that with the installed
 virtual memory settings for UnixWare 2.1.2, an Error 12 occurs during
@@ -2940,7 +2870,7 @@
 (He recommends you not change the stack limit, though.)
 These changes take effect when you reboot.
 
-** Windows 3.1, 95, 98, and ME
+** MS-Windows 95, 98, ME, and NT
 
 *** MS-Windows NT/95: Problems running Perl under Emacs
 
@@ -3022,8 +2952,7 @@
 When a program you are trying to run is not found on the PATH,
 Windows might respond by crashing or locking up your system.  In
 particular, this has been reported when trying to compile a Java
-program in JDEE when javac.exe is installed, but not on the system
-PATH.
+program in JDEE when javac.exe is installed, but not on the system PATH.
 
 ** MS-DOS
 
@@ -3088,7 +3017,7 @@
 *** MS-DOS: Emacs crashes at startup.
 
 Some users report that Emacs 19.29 requires dpmi memory management,
-and crashes on startup if the system does not have it.  We don't yet
+and crashes on startup if the system does not have it.  We don't
 know why this happens--perhaps these machines don't have enough real
 memory, or perhaps something is wrong in Emacs or the compiler.
 However, arranging to use dpmi support is a workaround.
@@ -3112,7 +3041,7 @@
 device names such as /dev/null in the DJGPP runtime library.  A
 work-around is to rename the problem directory to another name.
 
-*** MS-DOS+DJGPP: Problems on MS-DOG if DJGPP v2.0 is used to compile Emacs.
+*** MS-DOS+DJGPP: Problems on MS-DOS if DJGPP v2.0 is used to compile Emacs.
 
 There are two DJGPP library bugs which cause problems:
 
@@ -3134,8 +3063,7 @@
 and stderr to a file to see the error message printed by Emacs.
 
 Another manifestation of this problem is that Emacs is unable to load
-the support for editing program sources in languages such as C and
-Lisp.
+the support for editing program sources in languages such as C and Lisp.
 
 This can happen if the Emacs distribution was unzipped without LFN
 support, thus causing long filenames to be truncated to the first 6
@@ -3165,7 +3093,7 @@
 
     OpenWindows.WindowMenuAccelerators: False
 
-**** twm: A position you specified in .Xdefaults is ignored, using twm.
+*** twm: A position you specified in .Xdefaults is ignored, using twm.
 
 twm normally ignores "program-specified" positions.
 You can tell it to obey them with this command in your `.twmrc' file:
@@ -3188,31 +3116,6 @@
 
 * Build problems on legacy systems
 
-** BSD/386 1.0: --with-x-toolkit option configures wrong.
-
-This problem is due to bugs in the shell in version 1.0 of BSD/386.
-The workaround is to edit the configure file to use some other shell,
-such as bash.
-
-** Digital Unix 4.0: Emacs fails to build, giving error message
-     Invalid dimension for the charset-ID 160
-
-This is due to a bug or an installation problem in GCC 2.8.0.
-Installing a more recent version of GCC fixes the problem.
-
-** Digital Unix 4.0: Failure in unexec while dumping emacs.
-
-This problem manifests itself as an error message
-
-    unexec: Bad address, writing data section to ...
-
-The user suspects that this happened because his X libraries
-were built for an older system version,
-
-    ./configure --x-includes=/usr/include --x-libraries=/usr/shlib
-
-made the problem go away.
-
 ** SunOS: Emacs gets error message from linker on Sun.
 
 If the error message says that a symbol such as `f68881_used' or
@@ -3297,7 +3200,7 @@
 This problem will only happen if USE_LISP_UNION_TYPE is manually
 defined in lisp.h.
 
-*** C compilers lose on returning unions.
+** C compilers lose on returning unions.
 
 I hear that some C compilers cannot handle returning a union type.
 Most of the functions in GNU Emacs return type Lisp_Object, which is
--- a/lib-src/ChangeLog	Fri May 28 00:48:45 2010 +0000
+++ b/lib-src/ChangeLog	Sun May 30 22:54:27 2010 +0000
@@ -1,3 +1,9 @@
+2010-05-29  Chong Yidong  <cyd@stupidchicken.com>
+
+	* emacsclient.c (longopts, decode_options, print_help_and_exit):
+	New arg `-parent-id'.
+	(main): Send parent-id to Emacs.
+
 2010-05-27  Glenn Morris  <rgm@gnu.org>
 
 	* Makefile.in (distclean): No more Makefile.c.
--- a/lib-src/emacsclient.c	Fri May 28 00:48:45 2010 +0000
+++ b/lib-src/emacsclient.c	Sun May 30 22:54:27 2010 +0000
@@ -138,6 +138,9 @@
 /* The display on which Emacs should work.  --display.  */
 char *display = NULL;
 
+/* The parent window ID, if we are opening a frame via XEmbed.  */
+char *parent_id = NULL;
+
 /* Nonzero means open a new Emacs frame on the current terminal. */
 int tty = 0;
 
@@ -173,6 +176,7 @@
 #ifndef WINDOWSNT
   { "display",	required_argument, NULL, 'd' },
 #endif
+  { "parent-id", required_argument, NULL, 'p' },
   { 0, 0, 0, 0 }
 };
 
@@ -583,6 +587,11 @@
           current_frame = 0;
           break;
 
+	case 'p':
+	  parent_id = optarg;
+          current_frame = 0;
+	  break;
+
 	case 'H':
 	  print_help_and_exit ();
 	  break;
@@ -656,7 +665,8 @@
 -e, --eval    		Evaluate the FILE arguments as ELisp expressions\n\
 -n, --no-wait		Don't wait for the server to return\n\
 -d DISPLAY, --display=DISPLAY\n\
-			Visit the file in the given display\n"
+			Visit the file in the given display\n\
+--parent-id=ID          Open in parent window ID, via XEmbed\n"
 #ifndef NO_SOCKETS_IN_FILE_SYSTEM
 "-s SOCKET, --socket-name=SOCKET\n\
 			Set filename of the UNIX socket for communication\n"
@@ -1620,6 +1630,13 @@
       send_to_emacs (emacs_socket, " ");
     }
 
+  if (parent_id)
+    {
+      send_to_emacs (emacs_socket, "-parent-id ");
+      quote_argument (emacs_socket, parent_id);
+      send_to_emacs (emacs_socket, " ");
+    }
+
   /* If using the current frame, send tty information to Emacs anyway.
      In daemon mode, Emacs may need to occupy this tty if no other
      frame is available.  */
--- a/lisp/ChangeLog	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/ChangeLog	Sun May 30 22:54:27 2010 +0000
@@ -1,3 +1,113 @@
+2010-05-30  Eli Zaretskii  <eliz@gnu.org>
+
+	* international/mule.el (define-coding-system): Doc fix (bug#6313).
+
+2010-05-30  Juanma Barranquero  <lekktu@gmail.com>
+
+	* emulation/cua-base.el: Recognize also `right-word' and `left-word'.
+	Suggested by Eli Zaretskii <eliz@gnu.org>.
+
+2010-05-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* minibuffer.el (completion-file-name-table): Don't return a boundary
+	past the end of `string' (bug#6299).
+	(completion--file-name-table): Delegate to completion-file-name-table
+	for the `boundaries' case.
+
+2010-05-30  Juanma Barranquero  <lekktu@gmail.com>
+
+	* emulation/cua-base.el: Recognize `right-char' and `left-char' as
+	movement commands.
+
+	* progmodes/ada-xref.el (ada-prj-ada-project-path-sep): Set from
+	`path-separator', but maintain compatibility with Emacs 20.2.
+
+2010-05-29  Chong Yidong  <cyd@stupidchicken.com>
+
+	* server.el (server-process-filter): Receive parent-id argument
+	from emacsclient.
+	(server-create-window-system-frame): New arg.  Pass parent-id as
+	frame parameter.
+
+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-29  Eli Zaretskii  <eliz@gnu.org>
+
+	Bidi-sensitive word movement with arrow keys.
+	* subr.el (right-arrow-command, left-arrow-command): Move to
+	bindings.el.
+
+	* bindings.el (right-char, left-char): Move from subr.el and
+	rename from right-arrow-command and left-arrow-command.
+	(right-word, left-word): New functions.
+	(global-map) <right>: Bind to right-char.
+	(global-map) <left>: Bind to left-char.
+	(global-map) <C-right>: Bind to right-word.
+	(global-map) <C-left>: Bind to left-word.
+
+	* ls-lisp.el (ls-lisp-classify-file): New function.
+	(ls-lisp-insert-directory): Call it if switches include -F (bug#6294).
+	(ls-lisp-classify): Call ls-lisp-classify-file.
+	(insert-directory): Remove blanks from switches.
+
+2010-05-28  Juri Linkov  <juri@jurta.org>
+
+	* image-dired.el (image-dired-dired-toggle-marked-thumbs):
+	Replace LOCALP arg of `dired-get-filename' 'no-dir with nil.
+	(Bug#5270)
+
+2010-05-28  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp.el (tramp-debug-message): Add `tramp-compat-funcall'
+	to ignored backtrace functions.
+	(with-progress-reporter): Expand docstring.
+	(tramp-handle-delete-file): Implement TRASH argument.
+	(tramp-get-remote-trash): New defun.
+
+2010-05-28  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp-compat.el (tramp-compat-delete-file): Use
+	`symbol-value' for backward compatibility.
+
+	* net/tramp.el (tramp-handle-make-symbolic-link)
+	(tramp-handle-load)
+	(tramp-do-copy-or-rename-file-via-buffer)
+	(tramp-do-copy-or-rename-file-directly)
+	(tramp-do-copy-or-rename-file-out-of-band)
+	(tramp-handle-process-file, tramp-handle-call-process-region)
+	(tramp-handle-shell-command, tramp-handle-file-local-copy)
+	(tramp-handle-insert-file-contents, tramp-handle-write-region)
+	(tramp-delete-temp-file-function): Use `delete-file' instead
+	of `tramp-compat-delete-file'.
+
+	* net/tramp-fish.el (tramp-fish-handle-delete-directory)
+	(tramp-fish-handle-make-symbolic-link)
+	(tramp-fish-handle-process-file): Use `delete-file' instead
+	of `tramp-compat-delete-file'.
+
+	* net/tramp-ftp.el (tramp-ftp-file-name-handler): Use
+	`delete-file' instead of `tramp-compat-delete-file'.
+
+	* net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Rename arg.
+	(tramp-gvfs-handle-write-region): Use `delete-file' instead of
+	`tramp-compat-delete-file'.
+
+	* net/tramp-imap.el (tramp-imap-do-copy-or-rename-file): Use
+	`delete-file' instead of `tramp-compat-delete-file'.
+
+	* net/tramp-smb.el (tramp-smb-handle-copy-file)
+	(tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
+	(tramp-smb-handle-write-region): Use `delete-file' instead of
+	`tramp-compat-delete-file'.
+	(tramp-smb-handle-delete-directory): Use 'trash as arg.
+
 2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 
 	* dired.el (dired-delete-file): New arg TRASH.
--- a/lisp/ansi-color.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/ansi-color.el	Sun May 30 22:54:27 2010 +0000
@@ -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/bindings.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/bindings.el	Sun May 30 22:54:27 2010 +0000
@@ -678,6 +678,63 @@
 ;but they are not assigned to keys there.
 (put 'narrow-to-region 'disabled t)
 
+;; Moving with arrows in bidi-sensitive direction.
+(defun right-char (&optional n)
+  "Move point N characters to the right (to the left if N is negative).
+On reaching beginning or end of buffer, stop and signal error.
+
+Depending on the bidirectional context, this may move either forward
+or backward in the buffer.  This is in contrast with \\[forward-char]
+and \\[backward-char], which see."
+  (interactive "^p")
+  (if (eq (current-bidi-paragraph-direction) 'left-to-right)
+      (forward-char n)
+    (backward-char n)))
+
+(defun left-char ( &optional n)
+  "Move point N characters to the left (to the right if N is negative).
+On reaching beginning or end of buffer, stop and signal error.
+
+Depending on the bidirectional context, this may move either backward
+or forward in the buffer.  This is in contrast with \\[backward-char]
+and \\[forward-char], which see."
+  (interactive "^p")
+  (if (eq (current-bidi-paragraph-direction) 'left-to-right)
+      (backward-char n)
+    (forward-char n)))
+
+(defun right-word (&optional n)
+  "Move point N words to the right (to the left if N is negative).
+
+Depending on the bidirectional context, this may move either forward
+or backward in the buffer.  This is in contrast with \\[forward-word]
+and \\[backward-word], which see.
+
+Value is normally t.
+If an edge of the buffer or a field boundary is reached, point is left there
+there and the function returns nil.  Field boundaries are not noticed
+if `inhibit-field-text-motion' is non-nil."
+  (interactive "^p")
+  (if (eq (current-bidi-paragraph-direction) 'left-to-right)
+      (forward-word n)
+    (backward-word n)))
+
+(defun left-word (&optional n)
+  "Move point N words to the left (to the right if N is negative).
+
+Depending on the bidirectional context, this may move either backward
+or forward in the buffer.  This is in contrast with \\[backward-word]
+and \\[forward-word], which see.
+
+Value is normally t.
+If an edge of the buffer or a field boundary is reached, point is left there
+there and the function returns nil.  Field boundaries are not noticed
+if `inhibit-field-text-motion' is non-nil."
+  (interactive "^p")
+  (if (eq (current-bidi-paragraph-direction) 'left-to-right)
+      (backward-word n)
+    (forward-word n)))
+
 (defvar narrow-map (make-sparse-keymap)
   "Keymap for narrowing commands.")
 (define-key ctl-x-map "n" narrow-map)
@@ -828,9 +885,9 @@
 (define-key global-map [C-home]		'beginning-of-buffer)
 (define-key global-map [M-home]		'beginning-of-buffer-other-window)
 (define-key esc-map    [home]		'beginning-of-buffer-other-window)
-(define-key global-map [left]		'left-arrow-command)
+(define-key global-map [left]		'left-char)
 (define-key global-map [up]		'previous-line)
-(define-key global-map [right]		'right-arrow-command)
+(define-key global-map [right]		'right-char)
 (define-key global-map [down]		'next-line)
 (define-key global-map [prior]		'scroll-down-command)
 (define-key global-map [next]		'scroll-up-command)
@@ -1030,8 +1087,8 @@
 (global-set-key [M-left]   'backward-word)
 (define-key esc-map [left] 'backward-word)
 ;; ilya@math.ohio-state.edu says these bindings are standard on PC editors.
-(global-set-key [C-right]  'forward-word)
-(global-set-key [C-left]   'backward-word)
+(global-set-key [C-right]  'right-word)
+(global-set-key [C-left]   'left-word)
 ;; This is not quite compatible, but at least is analogous
 (global-set-key [C-delete] 'kill-word)
 (global-set-key [C-backspace] 'backward-kill-word)
--- a/lisp/emulation/cua-base.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/emulation/cua-base.el	Sun May 30 22:54:27 2010 +0000
@@ -1497,6 +1497,8 @@
 
 (dolist (cmd
  '(forward-char backward-char
+   right-char left-char
+   right-word left-word
    next-line previous-line
    forward-word backward-word
    end-of-line beginning-of-line
--- a/lisp/image-dired.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/image-dired.el	Sun May 30 22:54:27 2010 +0000
@@ -642,7 +642,7 @@
   (interactive "P")
   (dired-map-over-marks
    (let* ((image-pos  (dired-move-to-filename))
-          (image-file (dired-get-filename 'no-dir t))
+          (image-file (dired-get-filename nil t))
           thumb-file
           overlay)
      (when (and image-file (string-match-p (image-file-name-regexp) image-file))
--- a/lisp/international/mule.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/international/mule.el	Sun May 30 22:54:27 2010 +0000
@@ -608,9 +608,8 @@
 VALUE is the EOL (end-of-line) format of the coding system.  It must be
 one of `unix', `dos', `mac'.  The symbol `unix' means Unix-like EOL
 \(i.e. single LF), `dos' means DOS-like EOL \(i.e. sequence of CR LF),
-and `mac' means Mac-like EOL \(i.e. single CR).  If omitted, on
-decoding by the coding system, Emacs automatically detects the EOL
-format of the source text.
+and `mac' means Mac-like EOL \(i.e. single CR).  If omitted, Emacs
+detects the EOL format automatically when decoding.
 
 `:charset-list'
 
@@ -664,13 +663,6 @@
 VALUE non-nil means that visiting a file with the coding system
 results in a unibyte buffer.
 
-`:eol-type'
-
-VALUE must be `unix', `dos', `mac'.  The symbol `unix' means Unix-like
-EOL (LF), `dos' means DOS-like EOL (CRLF), and `mac' means Mac-like
-EOL (CR).  If omitted, on decoding, the coding system detects EOL
-format automatically, and on encoding, uses Unix-like EOL.
-
 `:mime-charset'
 
 VALUE must be a symbol whose name is that of a MIME charset converted
--- a/lisp/ls-lisp.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/ls-lisp.el	Sun May 30 22:54:27 2010 +0000
@@ -235,7 +235,7 @@
 	(if (string-match "--dired " switches)
 	    (setq switches (replace-match "" nil nil switches)))
 	;; Convert SWITCHES to a list of characters.
-	(setq switches (delete ?- (append switches nil)))
+	(setq switches (delete ?\  (delete ?- (append switches nil))))
 	;; Sometimes we get ".../foo*/" as FILE.  While the shell and
 	;; `ls' don't mind, we certainly do, because it makes us think
 	;; there is no wildcard, only a directory name.
@@ -405,7 +405,11 @@
 	(setq file (substring file 0 -1)))
     (let ((fattr (file-attributes file 'string)))
       (if fattr
-	  (insert (ls-lisp-format file fattr (nth 7 fattr)
+	  (insert (ls-lisp-format
+		   (if (memq ?F switches)
+		       (ls-lisp-classify-file file fattr)
+		     file)
+		   fattr (nth 7 fattr)
 				  switches time-index (current-time)))
 	(message "%s: doesn't exist or is inaccessible" file)
 	(ding) (sit-for 2)))))		; to show user the message!
@@ -522,29 +526,40 @@
       (nreverse file-alist)
     file-alist))
 
-(defun ls-lisp-classify (filedata)
-  "Append a character to each file name indicating the file type.
-Also, for regular files that are executable, append `*'.
+(defun ls-lisp-classify-file (filename fattr)
+  "Append a character to FILENAME indicating the file type.
+
+FATTR is the file attributes returned by `file-attributes' for the file.
 The file type indicators are `/' for directories, `@' for symbolic
-links, `|' for FIFOs, `=' for sockets, and nothing for regular files.
-\[But FIFOs and sockets are not recognized.]
-FILEDATA has the form (filename . `file-attributes').  Its `cadr' is t
-for directory, string (name linked to) for symbolic link, or nil."
+links, `|' for FIFOs, `=' for sockets, `*' for regular files that
+are executable, and nothing for other types of files."
+  (let* ((type (car fattr))
+	 (modestr (nth 8 fattr))
+	 (typestr (substring modestr 0 1)))
+    (cond
+     (type
+      (concat filename (if (eq type t) "/" "@")))
+     ((string-match "x" modestr)
+      (concat filename "*"))
+     ((string= "p" typestr)
+      (concat filename "|"))
+     ((string= "s" typestr)
+      (concat filename "="))
+     (t filename))))
+
+(defun ls-lisp-classify (filedata)
+  "Append a character to file name in FILEDATA indicating the file type.
+
+FILEDATA has the form (FILENAME . ATTRIBUTES), where ATTRIBUTES is the
+structure returned by `file-attributes' for that file.
+
+The file type indicators are `/' for directories, `@' for symbolic
+links, `|' for FIFOs, `=' for sockets, `*' for regular files that
+are executable, and nothing for other types of files."
   (let ((file-name (car filedata))
-        (type (cadr filedata)))
-    (cond (type
-	   (cons
-	    (concat (propertize file-name 'dired-filename t)
-		    (if (eq type t) "/" "@"))
-	    (cdr filedata)))
-	  ((string-match "x" (nth 9 filedata))
-	   (cons
-	    (concat (propertize file-name 'dired-filename t) "*")
-	    (cdr filedata)))
-	  (t
-	   (cons
-	    (propertize file-name 'dired-filename t)
-	    (cdr filedata))))))
+        (fattr (cdr filedata)))
+    (setq file-name (propertize file-name 'dired-filename t))
+    (cons (ls-lisp-classify-file file-name fattr) fattr)))
 
 (defun ls-lisp-extension (filename)
   "Return extension of FILENAME (ignoring any version extension)
--- a/lisp/minibuffer.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/minibuffer.el	Sun May 30 22:54:27 2010 +0000
@@ -1342,12 +1342,19 @@
    ((eq (car-safe action) 'boundaries)
     (let ((start (length (file-name-directory string)))
           (end (string-match-p "/" (cdr action))))
-      (list* 'boundaries start end)))
+      (list* 'boundaries
+             ;; if `string' is "C:" in w32, (file-name-directory string)
+             ;; returns "C:/", so `start' is 3 rather than 2.
+             ;; Not quite sure what is The Right Fix, but clipping it
+             ;; back to 2 will work for this particular case.  We'll
+             ;; see if we can come up with a better fix when we bump
+             ;; into more such problematic cases.
+             (min start (length string)) end)))
 
-     ((eq action 'lambda)
-      (if (zerop (length string))
-          nil    ;Not sure why it's here, but it probably doesn't harm.
-        (funcall (or pred 'file-exists-p) string)))
+   ((eq action 'lambda)
+    (if (zerop (length string))
+        nil    ;Not sure why it's here, but it probably doesn't harm.
+      (funcall (or pred 'file-exists-p) string)))
 
    (t
       (let* ((name (file-name-nondirectory string))
@@ -1395,19 +1402,20 @@
   (cond
    ((eq (car-safe action) 'boundaries)
     ;; For the boundaries, we can't really delegate to
-    ;; completion-file-name-table and then fix them up, because it
-    ;; would require us to track the relationship between `str' and
+    ;; substitute-in-file-name+completion-file-name-table and then fix
+    ;; them up (as we do for the other actions), because it would
+    ;; require us to track the relationship between `str' and
     ;; `string', which is difficult.  And in any case, if
-    ;; substitute-in-file-name turns "fo-$TO-ba" into "fo-o/b-ba", there's
-    ;; no way for us to return proper boundaries info, because the
-    ;; boundary is not (yet) in `string'.
-    ;; FIXME: Actually there is a way to return correct boundaries info,
-    ;; at the condition of modifying the all-completions return accordingly.
-    (let ((start (length (file-name-directory string)))
-          (end (string-match-p "/" (cdr action))))
-      (list* 'boundaries start end)))
+    ;; substitute-in-file-name turns "fo-$TO-ba" into "fo-o/b-ba",
+    ;; there's no way for us to return proper boundaries info, because
+    ;; the boundary is not (yet) in `string'.
+    ;;
+    ;; FIXME: Actually there is a way to return correct boundaries
+    ;; info, at the condition of modifying the all-completions
+    ;; return accordingly. But for now, let's not bother.
+    (completion-file-name-table string pred action))
 
-       (t
+   (t
     (let* ((default-directory
              (if (stringp pred)
                  ;; It used to be that `pred' was abused to pass `dir'
--- a/lisp/net/tramp-compat.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/net/tramp-compat.el	Sun May 30 22:54:27 2010 +0000
@@ -343,7 +343,7 @@
     (wrong-number-of-arguments
      (let ((delete-by-moving-to-trash
 	    (and (boundp 'delete-by-moving-to-trash)
-		 delete-by-moving-to-trash
+		 (symbol-value 'delete-by-moving-to-trash)
 		 trash)))
        (delete-file filename)))))
 
--- a/lisp/net/tramp-fish.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/net/tramp-fish.el	Sun May 30 22:54:27 2010 +0000
@@ -326,14 +326,14 @@
 	 (lambda (file)
 	   (if (file-directory-p file)
 	       (tramp-compat-delete-directory file recursive)
-	     (tramp-compat-delete-file file)))
+	     (delete-file file)))
 	 ;; We do not want to delete "." and "..".
 	 (directory-files
 	  directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")))
     (with-parsed-tramp-file-name
-     (directory-file-name (expand-file-name directory)) nil
-     (tramp-flush-directory-property v localname)
-     (tramp-fish-send-command-and-check v (format "#RMD %s" localname)))))
+	(directory-file-name (expand-file-name directory)) nil
+      (tramp-flush-directory-property v localname)
+      (tramp-fish-send-command-and-check v (format "#RMD %s" localname)))))
 
 (defun tramp-fish-handle-delete-file (filename &optional trash)
   "Like `delete-file' for Tramp files."
@@ -660,7 +660,7 @@
 			  localname)))))
 	  (tramp-error
 	   v 'file-already-exists "File %s already exists" localname)
-	(tramp-compat-delete-file linkname)))
+	(delete-file linkname)))
 
     ;; If FILENAME is a Tramp name, use just the localname component.
     (when (tramp-tramp-file-p filename)
@@ -839,8 +839,8 @@
       ;; Provide error file.
       (when tmpstderr (rename-file tmpstderr (cadr destination) t))
       ;; Cleanup.
-      (when tmpinput (tramp-compat-delete-file tmpinput))
-      (when tmpoutput (tramp-compat-delete-file tmpoutput))
+      (when tmpinput (delete-file tmpinput))
+      (when tmpoutput (delete-file tmpoutput))
       ;; Return exit status.
       ret)))
 
--- a/lisp/net/tramp-ftp.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/net/tramp-ftp.el	Sun May 30 22:54:27 2010 +0000
@@ -182,7 +182,7 @@
 	  (unwind-protect
 	      (rename-file tmpfile newname (car args))
 	    ;; Cleanup.
-	    (ignore-errors (tramp-compat-delete-file tmpfile)))))
+	    (ignore-errors (delete-file tmpfile)))))
 
        ;; Normally, the handlers must be discarded.
        ;; `inhibit-file-name-handlers' isn't sufficient, because the
--- a/lisp/net/tramp-gvfs.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/net/tramp-gvfs.el	Sun May 30 22:54:27 2010 +0000
@@ -533,9 +533,9 @@
   (tramp-compat-delete-directory
    (tramp-gvfs-fuse-file-name directory) recursive))
 
-(defun tramp-gvfs-handle-delete-file (filename &optional tramp)
+(defun tramp-gvfs-handle-delete-file (filename &optional trash)
   "Like `delete-file' for Tramp files."
-  (tramp-compat-delete-file (tramp-gvfs-fuse-file-name filename) tramp))
+  (tramp-compat-delete-file (tramp-gvfs-fuse-file-name filename) trash))
 
 (defun tramp-gvfs-handle-directory-files
   (directory &optional full match nosort)
@@ -742,7 +742,7 @@
 		   "gvfs-save" tmpfile (tramp-get-buffer v) nil
 		   (tramp-gvfs-url-file-name filename)))
 	       (signal (car err) (cdr err)))
-	   (tramp-compat-delete-file tmpfile)))))
+	   (delete-file tmpfile)))))
 
     ;; Set file modification time.
     (when (or (eq visit t) (stringp visit))
--- a/lisp/net/tramp-imap.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/net/tramp-imap.el	Sun May 30 22:54:27 2010 +0000
@@ -267,8 +267,7 @@
 	    (insert-file-contents filename)
 	    (write-region (point-min) (point-max) newname)))))
 
-    (when (eq op 'rename)
-      (tramp-compat-delete-file filename))))
+    (when (eq op 'rename) (delete-file filename))))
 
 ;; TODO: revise this much
 (defun tramp-imap-handle-expand-file-name (name &optional dir)
--- a/lisp/net/tramp-smb.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/net/tramp-smb.el	Sun May 30 22:54:27 2010 +0000
@@ -345,7 +345,7 @@
 	  (condition-case err
 	      (rename-file tmpfile newname ok-if-already-exists)
 	    ((error quit)
-	     (tramp-compat-delete-file tmpfile)
+	     (delete-file tmpfile)
 	     (signal (car err) (cdr err))))
 
 	;; Remote newname.
@@ -382,7 +382,7 @@
 	 (lambda (file)
 	   (if (file-directory-p file)
 	       (tramp-compat-delete-directory file recursive)
-	     (tramp-compat-delete-file file t)))
+	     (tramp-compat-delete-file file 'trash)))
 	 ;; We do not want to delete "." and "..".
 	 (directory-files
 	  directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")))
@@ -611,7 +611,7 @@
 		 v (format "get \"%s\" \"%s\""
 			   (tramp-smb-get-localname v) tmpfile))
 	  ;; Oops, an error.  We shall cleanup.
-	  (tramp-compat-delete-file tmpfile)
+	  (delete-file tmpfile)
 	  (tramp-error
 	   v 'file-error "Cannot make local copy of file `%s'" filename)))
       tmpfile)))
@@ -861,7 +861,7 @@
 	  (condition-case err
 	      (rename-file tmpfile newname ok-if-already-exists)
 	    ((error quit)
-	     (tramp-compat-delete-file tmpfile)
+	     (delete-file tmpfile)
 	     (signal (car err) (cdr err))))
 
 	;; Remote newname.
@@ -882,7 +882,7 @@
 			     filename (tramp-smb-get-localname v)))
 	    (tramp-error v 'file-error "Cannot rename `%s'" filename)))))
 
-    (tramp-compat-delete-file filename)))
+    (delete-file filename)))
 
 (defun tramp-smb-handle-set-file-modes (filename mode)
   "Like `set-file-modes' for Tramp files."
@@ -946,7 +946,7 @@
 		     v (format "put %s \"%s\""
 			       tmpfile (tramp-smb-get-localname v)))
 	      (tramp-error v 'file-error "Cannot write `%s'" filename))
-	  (tramp-compat-delete-file tmpfile)))
+	  (delete-file tmpfile)))
 
       (unless (equal curbuf (current-buffer))
 	(tramp-error
--- a/lisp/net/tramp.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/net/tramp.el	Sun May 30 22:54:27 2010 +0000
@@ -2121,7 +2121,7 @@
 	      (setq fn (symbol-name btf))
 	      (unless (and (string-match "^tramp" fn)
 			   (not (string-match
-				 "^tramp\\(-debug\\)?\\(-message\\|-error\\)$"
+				 "^tramp\\(-debug\\)?\\(-message\\|-error\\|-compat-funcall\\)$"
 				 fn)))
 		(setq fn nil)))
 	    (setq btn (1+ btn))))
@@ -2290,7 +2290,10 @@
       (funcall 'progress-reporter-update reporter value))))
 
 (defmacro with-progress-reporter (vec level message &rest body)
-  "Executes BODY, spinning a progress reporter with MESSAGE."
+  "Executes BODY, spinning a progress reporter with MESSAGE.
+If LEVEL does not fit for visible messages, or if this is a
+nested call of the macro, there are only traces without a visible
+progress reporter."
   `(let (pr tm)
      (tramp-message ,vec ,level "%s..." ,message)
      ;; We start a pulsing progress reporter after 3 seconds.  Feature
@@ -2304,7 +2307,9 @@
 		      (run-at-time 3 0.1 'tramp-progress-reporter-update pr)))
 	 (error nil)))
      (unwind-protect
-	 ;; Execute the body.
+	 ;; Execute the body.  Unset `tramp-message-show-message' when
+	 ;; the timer object is created, in order to suppress
+	 ;; concurrent timers.
 	 (let ((tramp-message-show-message
 		(and tramp-message-show-message (not tm))))
 	   ,@body)
@@ -2544,7 +2549,7 @@
 			    l-localname)))))
 	    (tramp-error
 	     l 'file-already-exists "File %s already exists" l-localname)
-	  (tramp-compat-delete-file linkname)))
+	  (delete-file linkname)))
 
       ;; If FILENAME is a Tramp name, use just the localname component.
       (when (tramp-tramp-file-p filename)
@@ -2593,7 +2598,7 @@
 	    ;; MUST-SUFFIX doesn't exist on XEmacs, so let it default to nil.
 	    (unwind-protect
 		(load local-copy noerror t t)
-	      (tramp-compat-delete-file local-copy)))))
+	      (delete-file local-copy)))))
       t)))
 
 ;; Localname manipulation functions that grok Tramp localnames...
@@ -3769,7 +3774,7 @@
   ;; Set the mode.
   (set-file-modes newname (tramp-default-file-modes filename))
   ;; If the operation was `rename', delete the original file.
-  (unless (eq op 'copy) (tramp-compat-delete-file filename)))
+  (unless (eq op 'copy) (delete-file filename)))
 
 (defun tramp-do-copy-or-rename-file-directly
  (op filename newname ok-if-already-exists keep-date preserve-uid-gid)
@@ -3924,7 +3929,7 @@
 
 		;; Save exit.
 		(condition-case nil
-		    (tramp-compat-delete-file tmpfile)
+		    (delete-file tmpfile)
 		  (error)))))))))
 
       ;; Set the time and mode. Mask possible errors.
@@ -3964,7 +3969,7 @@
 		  (if dir-flag
 		      (tramp-compat-delete-directory
 		       (expand-file-name ".." tmpfile) 'recursive)
-		    (tramp-compat-delete-file tmpfile))
+		    (delete-file tmpfile))
 		(error))))
 
 	;; Expand hops.  Might be necessary for gateway methods.
@@ -4082,7 +4087,7 @@
       ;; If the operation was `rename', delete the original file.
       (unless (eq op 'copy)
 	(if (file-regular-p filename)
-	    (tramp-compat-delete-file filename)
+	    (delete-file filename)
 	  (tramp-compat-delete-directory filename 'recursive))))))
 
 (defun tramp-handle-make-directory (dir &optional parents)
@@ -4118,10 +4123,12 @@
   (with-parsed-tramp-file-name filename nil
     (tramp-flush-file-property v (file-name-directory localname))
     (tramp-flush-file-property v localname)
-    (unless (zerop (tramp-send-command-and-check
-		    v
-		    (format "rm -f %s"
-			    (tramp-shell-quote-argument localname))))
+    (unless
+	(zerop
+	 (tramp-send-command-and-check
+	  v (format "%s %s"
+		    (or (and trash (tramp-get-remote-trash v)) "rm -f")
+		    (tramp-shell-quote-argument localname))))
       (tramp-error v 'file-error "Couldn't delete %s" filename))))
 
 ;; Dired.
@@ -4629,7 +4636,7 @@
 
       ;; Cleanup.  We remove all file cache values for the connection,
       ;; because the remote process could have changed them.
-      (when tmpinput (tramp-compat-delete-file tmpinput))
+      (when tmpinput (delete-file tmpinput))
 
       ;; `process-file-side-effects' has been introduced with GNU
       ;; Emacs 23.2.  If set to `nil', no remote file will be changed
@@ -4666,7 +4673,7 @@
     (when delete (delete-region start end))
     (unwind-protect
 	(apply 'call-process program tmpfile buffer display args)
-      (tramp-compat-delete-file tmpfile))))
+      (delete-file tmpfile))))
 
 (defun tramp-handle-shell-command
   (command &optional output-buffer error-buffer)
@@ -4731,7 +4738,7 @@
 	(when (listp buffer)
 	  (with-current-buffer error-buffer
 	    (insert-file-contents (cadr buffer)))
-	  (tramp-compat-delete-file (cadr buffer)))
+	  (delete-file (cadr buffer)))
 	(if current-buffer-p
 	    ;; This is like exchange-point-and-mark, but doesn't
 	    ;; activate the mark.  It is cleaner to avoid activation,
@@ -4813,7 +4820,7 @@
 		    (unwind-protect
 			(tramp-call-local-coding-command
 			 loc-dec tmpfile2 tmpfile)
-		      (tramp-compat-delete-file tmpfile2)))))
+		      (delete-file tmpfile2)))))
 
 	      ;; Set proper permissions.
 	      (set-file-modes tmpfile (tramp-default-file-modes filename))
@@ -4826,7 +4833,7 @@
 
 	;; Error handling.
 	((error quit)
-	 (tramp-compat-delete-file tmpfile)
+	 (delete-file tmpfile)
 	 (signal (car err) (cdr err))))
 
       (run-hooks 'tramp-handle-file-local-copy-hook)
@@ -4961,9 +4968,9 @@
 	    (set-buffer-modified-p nil))
 	  (when (and (stringp local-copy)
 		     (or remote-copy (null tramp-temp-buffer-file-name)))
-	    (tramp-compat-delete-file local-copy))
+	    (delete-file local-copy))
 	  (when (stringp remote-copy)
-	    (tramp-compat-delete-file
+	    (delete-file
 	     (tramp-make-tramp-file-name method user host remote-copy))))))
 
     ;; Result.
@@ -5154,7 +5161,7 @@
 		 (list start end tmpfile append 'no-message lockname confirm))
 	      ((error quit)
 	       (setq tramp-temp-buffer-file-name nil)
-	       (tramp-compat-delete-file tmpfile)
+	       (delete-file tmpfile)
 	       (signal (car err) (cdr err))))
 
 	    ;; Now, `last-coding-system-used' has the right value.  Remember it.
@@ -5198,13 +5205,13 @@
 			(copy-file tmpfile filename t)
 		      ((error quit)
 		       (setq tramp-temp-buffer-file-name nil)
-		       (tramp-compat-delete-file tmpfile)
+		       (delete-file tmpfile)
 		       (signal (car err) (cdr err)))))
 		(setq tramp-temp-buffer-file-name nil)
 		;; Don't rename, in order to keep context in SELinux.
 		(unwind-protect
 		    (copy-file tmpfile filename t)
-		  (tramp-compat-delete-file tmpfile))))
+		  (delete-file tmpfile))))
 
 	     ;; Use inline file transfer.
 	     (rem-dec
@@ -5289,7 +5296,7 @@
 			  filename rem-dec)))))
 
 		;; Save exit.
-		(tramp-compat-delete-file tmpfile)))
+		(delete-file tmpfile)))
 
 	     ;; That's not expected.
 	     (t
@@ -6372,7 +6379,7 @@
   "Remove temporary files related to current buffer."
   (when (stringp tramp-temp-buffer-file-name)
     (condition-case nil
-	(tramp-compat-delete-file tramp-temp-buffer-file-name)
+	(delete-file tramp-temp-buffer-file-name)
       (error nil))))
 
 (add-hook 'kill-buffer-hook 'tramp-delete-temp-file-function)
@@ -8416,6 +8423,11 @@
 		     (error nil))))
 	result))))
 
+(defun tramp-get-remote-trash (vec)
+  (with-connection-property vec "trash"
+    (tramp-message vec 5 "Finding a suitable `trash' command")
+    (tramp-find-executable vec "trash" (tramp-get-remote-path vec))))
+
 (defun tramp-get-remote-id (vec)
   (with-connection-property vec "id"
     (tramp-message vec 5 "Finding POSIX `id' command")
--- a/lisp/progmodes/ada-xref.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/progmodes/ada-xref.el	Sun May 30 22:54:27 2010 +0000
@@ -108,10 +108,9 @@
   :type 'string :group 'ada)
 
 (defcustom ada-prj-ada-project-path-sep
-  (if (or (equal system-type 'windows-nt)
-	  (equal system-type 'ms-dos))
-      ";"
-    ":")
+  (cond ((boundp 'path-separator) path-separator) ; 20.3+
+	((memq system-type '(windows-nt ms-dos)) ";")
+	(t ":"))
   "Default separator for ada_project_path project variable."
   :type 'string :group 'ada)
 
--- a/lisp/server.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/server.el	Sun May 30 22:54:27 2010 +0000
@@ -711,7 +711,7 @@
                                      (number-to-string (emacs-pid)) "\n"))
     frame))
 
-(defun server-create-window-system-frame (display nowait proc)
+(defun server-create-window-system-frame (display nowait proc parent-id)
   (add-to-list 'frame-inherited-parameters 'client)
   (if (not (fboundp 'make-frame-on-display))
       (progn
@@ -727,12 +727,14 @@
     (let* ((params `((client . ,(if nowait 'nowait proc))
                      ;; This is a leftover, see above.
                      (environment . ,(process-get proc 'env))))
-           (frame (make-frame-on-display
-                   (or display
-                       (frame-parameter nil 'display)
-                       (getenv "DISPLAY")
-                       (error "Please specify display"))
-                   params)))
+	   (display (or display
+			(frame-parameter nil 'display)
+			(getenv "DISPLAY")
+			(error "Please specify display")))
+	   frame)
+      (if parent-id
+	  (push (cons 'parent-id (string-to-number parent-id)) params))
+      (setq frame (make-frame-on-display display params))
       (server-log (format "%s created" frame) proc)
       (select-frame frame)
       (process-put proc 'frame frame)
@@ -900,15 +902,16 @@
 		(coding-system (and (default-value 'enable-multibyte-characters)
 				    (or file-name-coding-system
 					default-file-name-coding-system)))
-		nowait ; t if emacsclient does not want to wait for us.
-		frame ; The frame that was opened for the client (if any).
-		display		     ; Open the frame on this display.
-		dontkill       ; t if the client should not be killed.
+		nowait     ; t if emacsclient does not want to wait for us.
+		frame      ; Frame opened for the client (if any).
+		display    ; Open frame on this display.
+		parent-id  ; Window ID for XEmbed
+		dontkill   ; t if client should not be killed.
 		commands
 		dir
 		use-current-frame
-		tty-name       ;nil, `window-system', or the tty name.
-		tty-type             ;string.
+		tty-name   ; nil, `window-system', or the tty name.
+		tty-type   ; string.
 		files
 		filepos
 		command-line-args-left
@@ -935,6 +938,12 @@
 		  (setq display (pop command-line-args-left))
                   (if (zerop (length display)) (setq display nil)))
 
+		 ;; -parent-id ID:
+		 ;; Open X frame within window ID, via XEmbed.
+		 ((and (equal "-parent-id" arg) command-line-args-left)
+		  (setq parent-id (pop command-line-args-left))
+                  (if (zerop (length parent-id)) (setq parent-id nil)))
+
 		 ;; -window-system:  Open a new X frame.
 		 ((equal "-window-system" arg)
                   (setq dontkill t)
@@ -1039,7 +1048,8 @@
 		    (setq tty-name nil tty-type nil)
 		    (if display (server-select-display display)))
 		   ((eq tty-name 'window-system)
-		    (server-create-window-system-frame display nowait proc))
+		    (server-create-window-system-frame display nowait proc
+						       parent-id))
 		   ;; When resuming on a tty, tty-name is nil.
 		   (tty-name
 		    (server-create-tty-frame tty-name tty-type proc))))
--- a/lisp/subr.el	Fri May 28 00:48:45 2010 +0000
+++ b/lisp/subr.el	Sun May 30 22:54:27 2010 +0000
@@ -3802,30 +3802,5 @@
 			  (prin1-to-string (make-hash-table)))))
   (provide 'hashtable-print-readable))
 
-;; Moving with arrows in bidi-sensitive direction.
-(defun right-arrow-command (&optional n)
-  "Move point N characters to the right (to the left if N is negative).
-On reaching beginning or end of buffer, stop and signal error.
-
-Depending on the bidirectional context, this may move either forward
-or backward in the buffer.  This is in contrast with \\[forward-char]
-and \\[backward-char], which see."
-  (interactive "^p")
-  (if (eq (current-bidi-paragraph-direction) 'left-to-right)
-      (forward-char n)
-    (backward-char n)))
-
-(defun left-arrow-command ( &optional n)
-  "Move point N characters to the left (to the right if N is negative).
-On reaching beginning or end of buffer, stop and signal error.
-
-Depending on the bidirectional context, this may move either backward
-or forward in the buffer.  This is in contrast with \\[backward-char]
-and \\[forward-char], which see."
-  (interactive "^p")
-  (if (eq (current-bidi-paragraph-direction) 'left-to-right)
-      (backward-char n)
-    (forward-char n)))
-
 ;; arch-tag: f7e0e6e5-70aa-4897-ae72-7a3511ec40bc
 ;;; subr.el ends here
--- a/src/ChangeLog	Fri May 28 00:48:45 2010 +0000
+++ b/src/ChangeLog	Sun May 30 22:54:27 2010 +0000
@@ -1,3 +1,32 @@
+2010-05-30  Eli Zaretskii  <eliz@gnu.org>
+
+	* bidi.c (bidi_move_to_visually_next): Make sure the sentinel
+	state is always cached (bug#6306).
+
+2010-05-29  Eli Zaretskii  <eliz@gnu.org>
+
+	Fix cursor motion in bidi-reordered continued lines.
+	* xdisp.c (try_cursor_movement): Backup to non-continuation line
+	only after finding point's row.  Fix the logic.  Rewrite the loop
+	over continuation lines in bidi-reordered buffers.  Return
+	CURSOR_MOVEMENT_MUST_SCROLL upon failure to find a suitable row,
+	rather than CURSOR_MOVEMENT_CANNOT_BE_USED.
+
+2010-05-28  Michael Albinus  <michael.albinus@gmx.de>
+
+	* fileio.c (Fdelete_file): Pass TRASH arg to handler call.
+
+2010-05-28  Kenichi Handa  <handa@m17n.org>
+
+	* font.c (font_delete_unmatched): Check Vface_ignored_fonts.
+	Don't sheck SPEC if it is nil.
+	(font_list_entities): Call font_delete_unmatched if
+	Vface_ignored_fonts is non-nil.
+
+2010-05-28  Glenn Morris  <rgm@gnu.org>
+
+	* Makefile.in (LIBES): Remove $LOADLIBES, it is never set.
+
 2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 
 	* fileio.c (Fdelete_file): Change meaning of optional arg to mean
--- a/src/ChangeLog.10	Fri May 28 00:48:45 2010 +0000
+++ b/src/ChangeLog.10	Sun May 30 22:54:27 2010 +0000
@@ -4645,10 +4645,6 @@
 	* image.c: Include "charset.h" and "coding.h".
 	(x_find_image_file): Return an encoded file name.
 
-2006-04-01  Eli Zaretskii  <eliz@gnu.org>
-
-	* configure: Regenerated.
-
 2006-03-31  Kenichi Handa  <handa@m17n.org>
 
 	* xfns.c (xg_set_icon): Delete superfluous UNGCPRO.
--- a/src/ChangeLog.8	Fri May 28 00:48:45 2010 +0000
+++ b/src/ChangeLog.8	Sun May 30 22:54:27 2010 +0000
@@ -4629,9 +4629,6 @@
 
 	* Makefile.in (LIBGIF): Use libungif.
 
-	* configure.in (HAVE_GIF): Use libungif instead of libgif
-	because the former doesn't contain patented compression code.
-
 	* xdisp.c (compute_window_start_on_continuation_line): Don't
 	do it if line start is too far away from window start.
 
--- a/src/Makefile.in	Fri May 28 00:48:45 2010 +0000
+++ b/src/Makefile.in	Sun May 30 22:54:27 2010 +0000
@@ -581,7 +581,7 @@
 ## Note that SunOS needs -lm to come before -lc; otherwise, you get
 ## duplicated symbols.  If the standard libraries were compiled
 ## with GCC, we might need LIB_GCC again after them.
-LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \
+LIBES = $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \
    $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \
    $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \
    $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \
--- a/src/bidi.c	Fri May 28 00:48:45 2010 +0000
+++ b/src/bidi.c	Sun May 30 22:54:27 2010 +0000
@@ -1907,7 +1907,9 @@
   if (!bidi_it->first_elt && bidi_it->orig_type == NEUTRAL_B)
     bidi_line_init (bidi_it);
 
-  /* Prepare the sentinel iterator state.  */
+  /* Prepare the sentinel iterator state, and cache it.  When we bump
+     into it, scanning backwards, we'll know that the last non-base
+     level is exhausted.  */
   if (bidi_cache_idx == 0)
     {
       bidi_copy_it (&sentinel, bidi_it);
@@ -1918,6 +1920,7 @@
 	  sentinel.ch = '\n';	/* doesn't matter, but why not? */
 	  sentinel.ch_len = 1;
 	}
+      bidi_cache_iterator_state (&sentinel, 1);
     }
 
   old_level = bidi_it->resolved_level;
@@ -1933,11 +1936,6 @@
       int incr = ascending ? 1 : -1;
       int expected_next_level = old_level + incr;
 
-      /* If we don't have anything cached yet, we need to cache the
-	 sentinel state, since we'll need it to record where to jump
-	 when the last non-base level is exhausted.  */
-      if (bidi_cache_idx == 0)
-	bidi_cache_iterator_state (&sentinel, 1);
       /* Jump (or walk) to the other edge of this level.  */
       bidi_find_other_level_edge (bidi_it, level_to_search, !ascending);
       /* Switch scan direction and peek at the next character in the
--- a/src/fileio.c	Fri May 28 00:48:45 2010 +0000
+++ b/src/fileio.c	Sun May 30 22:54:27 2010 +0000
@@ -1925,7 +1925,7 @@
 If PRESERVE-UID-GID is non-nil, we try to transfer the
 uid and gid of FILE to NEWNAME.
 
-If PRESERVE-SELINUX-CONTEXT is non-nil and SELinux is enabled 
+If PRESERVE-SELINUX-CONTEXT is non-nil and SELinux is enabled
 on the system, we copy the SELinux context of FILE to NEWNAME.  */)
      (file, newname, ok_if_already_exists, keep_time, preserve_uid_gid, preserve_selinux_context)
      Lisp_Object file, newname, ok_if_already_exists, keep_time;
@@ -2221,7 +2221,7 @@
 
   handler = Ffind_file_name_handler (filename, Qdelete_file);
   if (!NILP (handler))
-    return call2 (handler, Qdelete_file, filename);
+    return call3 (handler, Qdelete_file, filename, trash);
 
   if (delete_by_moving_to_trash && !NILP (trash))
     return call1 (Qmove_file_to_trash, filename);
--- a/src/font.c	Fri May 28 00:48:45 2010 +0000
+++ b/src/font.c	Sun May 30 22:54:27 2010 +0000
@@ -2821,6 +2821,14 @@
 
 static Lisp_Object scratch_font_spec, scratch_font_prefer;
 
+/* Check each font-entity in VEC, and return a list of font-entities
+   that satisfy this condition:
+     (1) matches with SPEC and SIZE if SPEC is not nil, and
+     (2) doesn't match with any regexps in Vface_ignored_fonts (if non-nil).
+*/
+
+extern Lisp_Object Vface_ignored_fonts;
+
 Lisp_Object
 font_delete_unmatched (vec, spec, size)
      Lisp_Object vec, spec;
@@ -2833,6 +2841,29 @@
   for (val = Qnil, i = ASIZE (vec) - 1; i >= 0; i--)
     {
       entity = AREF (vec, i);
+      if (! NILP (Vface_ignored_fonts))
+	{
+	  char name[256];
+	  Lisp_Object tail, regexp;
+
+	  if (font_unparse_xlfd (entity, 0, name, 256) >= 0)
+	    {
+	      for (tail = Vface_ignored_fonts; CONSP (tail); tail = XCDR (tail))
+		{
+		  regexp = XCAR (tail);
+		  if (STRINGP (regexp)
+		      && fast_c_string_match_ignore_case (regexp, name) >= 0)
+		    break;
+		}
+	      if (CONSP (tail))
+		continue;
+	    }
+	}
+      if (NILP (spec))
+	{
+	  val = Fcons (entity, val);
+	  continue;
+	}
       for (prop = FONT_WEIGHT_INDEX; prop < FONT_SIZE_INDEX; prop++)
 	if (INTEGERP (AREF (spec, prop))
 	    && ((XINT (AREF (spec, prop)) >> 8)
@@ -2932,8 +2963,10 @@
 	    ASET (copy, FONT_TYPE_INDEX, driver_list->driver->type);
 	    XSETCDR (cache, Fcons (Fcons (copy, val), XCDR (cache)));
 	  }
-	if (ASIZE (val) > 0 && need_filtering)
-	  val = font_delete_unmatched (val, spec, size);
+	if (ASIZE (val) > 0
+	    && (need_filtering
+		|| ! NILP (Vface_ignored_fonts)))
+	  val = font_delete_unmatched (val, need_filtering ? spec : Qnil, size);
 	if (ASIZE (val) > 0)
 	  list = Fcons (val, list);
       }
--- a/src/xdisp.c	Fri May 28 00:48:45 2010 +0000
+++ b/src/xdisp.c	Sun May 30 22:54:27 2010 +0000
@@ -13763,37 +13763,11 @@
 	    ++row;
 	  if (!row->enabled_p)
 	    rc = CURSOR_MOVEMENT_MUST_SCROLL;
-	  /* If rows are bidi-reordered, back up until we find a row
-	     that does not belong to a continuation line.  This is
-	     because we must consider all rows of a continued line as
-	     candidates for cursor positioning, since row start and
-	     end positions change non-linearly with vertical position
-	     in such rows.  */
-	  /* FIXME: Revisit this when glyph ``spilling'' in
-	     continuation lines' rows is implemented for
-	     bidi-reordered rows.  */
-	  if (!NILP (XBUFFER (w->buffer)->bidi_display_reordering))
-	    {
-	      while (MATRIX_ROW_CONTINUATION_LINE_P (row))
-		{
-		  xassert (row->enabled_p);
-		  --row;
-		  /* If we hit the beginning of the displayed portion
-		     without finding the first row of a continued
-		     line, give up.  */
-		  if (row <= w->current_matrix->rows)
-		    {
-		      rc = CURSOR_MOVEMENT_MUST_SCROLL;
-		      break;
-		    }
-
-		}
-	    }
 	}
 
       if (rc == CURSOR_MOVEMENT_CANNOT_BE_USED)
 	{
-	  int scroll_p = 0;
+	  int scroll_p = 0, must_scroll = 0;
 	  int last_y = window_text_bottom_y (w) - this_scroll_margin;
 
 	  if (PT > XFASTINT (w->last_point))
@@ -13886,10 +13860,41 @@
 	    {
 	      /* if PT is not in the glyph row, give up.  */
 	      rc = CURSOR_MOVEMENT_MUST_SCROLL;
+	      must_scroll = 1;
 	    }
 	  else if (rc != CURSOR_MOVEMENT_SUCCESS
-		   && MATRIX_ROW_PARTIALLY_VISIBLE_P (w, row)
-		   && make_cursor_line_fully_visible_p)
+		   && !NILP (XBUFFER (w->buffer)->bidi_display_reordering))
+	    {
+	      /* If rows are bidi-reordered and point moved, back up
+		 until we find a row that does not belong to a
+		 continuation line.  This is because we must consider
+		 all rows of a continued line as candidates for the
+		 new cursor positioning, since row start and end
+		 positions change non-linearly with vertical position
+		 in such rows.  */
+	      /* FIXME: Revisit this when glyph ``spilling'' in
+		 continuation lines' rows is implemented for
+		 bidi-reordered rows.  */
+	      while (MATRIX_ROW_CONTINUATION_LINE_P (row))
+		{
+		  xassert (row->enabled_p);
+		  --row;
+		  /* If we hit the beginning of the displayed portion
+		     without finding the first row of a continued
+		     line, give up.  */
+		  if (row <= w->current_matrix->rows)
+		    {
+		      rc = CURSOR_MOVEMENT_MUST_SCROLL;
+		      break;
+		    }
+
+		}
+	    }
+	  if (must_scroll)
+	    ;
+	  else if (rc != CURSOR_MOVEMENT_SUCCESS
+	      && MATRIX_ROW_PARTIALLY_VISIBLE_P (w, row)
+	      && make_cursor_line_fully_visible_p)
 	    {
 	      if (PT == MATRIX_ROW_END_CHARPOS (row)
 		  && !row->ends_at_zv_p
@@ -13915,7 +13920,8 @@
 	    }
 	  else if (scroll_p)
 	    rc = CURSOR_MOVEMENT_MUST_SCROLL;
-	  else if (!NILP (XBUFFER (w->buffer)->bidi_display_reordering))
+	  else if (rc != CURSOR_MOVEMENT_SUCCESS
+		   && !NILP (XBUFFER (w->buffer)->bidi_display_reordering))
 	    {
 	      /* With bidi-reordered rows, there could be more than
 		 one candidate row whose start and end positions
@@ -13928,8 +13934,11 @@
 
 	      do
 		{
-		  rv |= set_cursor_from_row (w, row, w->current_matrix,
-					     0, 0, 0, 0);
+		  if (MATRIX_ROW_START_CHARPOS (row) <= PT
+		      && PT <= MATRIX_ROW_END_CHARPOS (row)
+		      && cursor_row_p (w, row))
+		    rv |= set_cursor_from_row (w, row, w->current_matrix,
+					       0, 0, 0, 0);
 		  /* As soon as we've found the first suitable row
 		     whose ends_at_zv_p flag is set, we are done.  */
 		  if (rv
@@ -13940,19 +13949,17 @@
 		    }
 		  ++row;
 		}
-	      while (MATRIX_ROW_BOTTOM_Y (row) < last_y
-		     && MATRIX_ROW_START_CHARPOS (row) <= PT
-		     && PT <= MATRIX_ROW_END_CHARPOS (row)
-		     && cursor_row_p (w, row));
+	      while ((MATRIX_ROW_CONTINUATION_LINE_P (row)
+		      && MATRIX_ROW_BOTTOM_Y (row) <= last_y)
+		     || (MATRIX_ROW_START_CHARPOS (row) == PT
+			 && MATRIX_ROW_BOTTOM_Y (row) < last_y));
 	      /* If we didn't find any candidate rows, or exited the
 		 loop before all the candidates were examined, signal
 		 to the caller that this method failed.  */
 	      if (rc != CURSOR_MOVEMENT_SUCCESS
-		  && (!rv
-		      || (MATRIX_ROW_START_CHARPOS (row) <= PT
-			  && PT <= MATRIX_ROW_END_CHARPOS (row))))
-		rc = CURSOR_MOVEMENT_CANNOT_BE_USED;
-	      else
+		  && (!rv || MATRIX_ROW_CONTINUATION_LINE_P (row)))
+		rc = CURSOR_MOVEMENT_MUST_SCROLL;
+	      else if (rv)
 		rc = CURSOR_MOVEMENT_SUCCESS;
 	    }
 	  else