changeset 109206:922942081399

Merge from mainline.
author Katsumi Yamaoka <katsumi@flagship2>
date Fri, 28 May 2010 11:27:13 +0000
parents f6714012e3cb (current diff) 93729e1f822d (diff)
children 4c39d84b5d9a
files
diffstat 34 files changed, 460 insertions(+), 599 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu May 27 11:59:21 2010 +0000
+++ b/ChangeLog	Fri May 28 11:27:13 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/configure.in	Thu May 27 11:59:21 2010 +0000
+++ b/configure.in	Fri May 28 11:27:13 2010 +0000
@@ -369,7 +369,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 +381,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 +389,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 +404,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 +418,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 +436,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 +494,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 +572,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/etc/ChangeLog	Thu May 27 11:59:21 2010 +0000
+++ b/etc/ChangeLog	Fri May 28 11:27:13 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	Thu May 27 11:59:21 2010 +0000
+++ b/etc/MACHINES	Fri May 28 11:27:13 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	Thu May 27 11:59:21 2010 +0000
+++ b/etc/NEWS	Fri May 28 11:27:13 2010 +0000
@@ -109,16 +109,20 @@
 ** New property `scroll-command' should be set on a command's symbol to
 define it as a scroll command affected by `scroll-preserve-screen-position.
 
+** Trash changes
+
+*** `delete-by-moving-to-trash' now only affects commands that specify
+trashing.  This avoids inadvertently trashing temporary files.
+
+*** Calling `delete-file' or `delete-directory' with a prefix argument
+now forces true deletion, regardless of `delete-by-moving-to-trash'.
+
 
 * Editing Changes in Emacs 24.1
 
 ** completion-at-point is now an alias for complete-symbol.
 
 ** mouse-region-delete-keys has been deleted.
-
-** If delete-file is called with a prefix argument, it really deletes,
-regardless of the value of `delete-by-moving-to-trash'.
-
 
 * Changes in Specialized Modes and Packages in Emacs 24.1
 
@@ -237,8 +241,10 @@
 ** prog-mode is a new major-mode meant to be the parent of programming mode.
 ** define-minor-mode accepts a new keyword :variable.
 
-** delete-file now accepts an optional second arg, FORCE, which says
-to always delete and ignore the value of delete-by-moving-to-trash.
+** `delete-file' and `delete-directory now accept optional arg TRASH.
+Trashing is performed if TRASH and `delete-by-moving-to-trash' are
+both non-nil.  Interactively, TRASH defaults to t, unless a prefix
+argument is supplied (see Trash changes, above).
 
 ** buffer-substring-filters is obsoleted by filter-buffer-substring-functions.
 
--- a/etc/PROBLEMS	Thu May 27 11:59:21 2010 +0000
+++ b/etc/PROBLEMS	Fri May 28 11:27:13 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/lisp/ChangeLog	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/ChangeLog	Fri May 28 11:27:13 2010 +0000
@@ -1,3 +1,80 @@
+2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
+
+	* dired.el (dired-delete-file): New arg TRASH.
+	(dired-internal-do-deletions): New arg TRASH.  Use progress
+	reporter.
+	(dired-do-flagged-delete, dired-do-delete): Use trash.
+
+	* speedbar.el (speedbar-item-delete): Allow trashing.
+
+	* files.el (delete-directory): New arg TRASH.
+
+	* net/ange-ftp.el (ange-ftp-del-tmp-name, ange-ftp-delete-file)
+	(ange-ftp-rename-remote-to-remote)
+	(ange-ftp-rename-local-to-remote)
+	(ange-ftp-rename-remote-to-local, ange-ftp-load)
+	(ange-ftp-compress, ange-ftp-uncompress): Remove optional arg from
+	`delete-file'.
+	(ange-ftp-delete-directory): Add optional arg to `delete-file', to
+	allow trashing.
+
+	* net/tramp-compat.el (tramp-compat-delete-file): Rewrite to
+	handle new TRASH arg of `delete-file'.
+
+	* net/tramp.el (tramp-handle-delete-file): Change FORCE arg to
+	TRASH.
+	(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 null TRASH arg in
+	tramp-compat-delete-file call.
+
+	* net/tramp-fish.el (tramp-fish-handle-delete-directory)
+	(tramp-fish-handle-delete-file)
+	(tramp-fish-handle-make-symbolic-link)
+	(tramp-fish-handle-process-file): Use null TRASH arg in
+	`tramp-compat-delete-file' call.
+
+	* net/tramp-ftp.el (tramp-ftp-file-name-handler): Use null TRASH
+	arg in `tramp-compat-delete-file' call.
+
+	* net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Rename arg.
+	(tramp-gvfs-handle-write-region): Use null TRASH arg in
+	`tramp-compat-delete-file' call.
+
+	* net/tramp-imap.el (tramp-imap-handle-delete-file): Rename arg.
+	(tramp-imap-do-copy-or-rename-file): Use null TRASH arg in
+	`tramp-compat-delete-file' call.
+
+	* 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 null TRASH arg in
+	tramp-compat-delete-file call.
+	(tramp-smb-handle-delete-directory): Use tramp-compat-delete-file.
+	(tramp-smb-handle-delete-file): Rename arg.
+
+	* diff.el (diff-sentinel):
+	* epg.el (epg--make-temp-file, epg-decrypt-string)
+	(epg-verify-string, epg-sign-string, epg-encrypt-string):
+	* jka-compr.el (jka-compr-partial-uncompress)
+	(jka-compr-call-process, jka-compr-write-region):
+	* server.el (server-sentinel): Remove optional arg from
+	delete-file, reverting 2010-05-03 change.
+
+2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
+
+	* progmodes/verilog-mode.el (verilog-type-font-keywords): Use
+	font-lock-constant-face, not obsolete font-lock-reference-face.
+
+2010-05-27  Masatake YAMATO  <yamato@redhat.com>
+
+	* htmlfontify.el (hfy-face-resolve-face): New function.
+	(hfy-face-to-style): Use it (Bug#6279).
+
 2010-05-27  Kenichi Handa  <handa@m17n.org>
 
 	* language/hebrew.el (hebrew-shape-gstring): Check if a glyph
--- a/lisp/diff.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/diff.el	Fri May 28 11:27:13 2010 +0000
@@ -64,8 +64,8 @@
   "Code run when the diff process exits.
 CODE is the exit code of the process.  It should be 0 only if no diffs
 were found."
-  (if diff-old-temp-file (delete-file diff-old-temp-file t))
-  (if diff-new-temp-file (delete-file diff-new-temp-file t))
+  (if diff-old-temp-file (delete-file diff-old-temp-file))
+  (if diff-new-temp-file (delete-file diff-new-temp-file))
   (save-excursion
     (goto-char (point-max))
     (let ((inhibit-read-only t))
--- a/lisp/dired.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/dired.el	Fri May 28 11:27:13 2010 +0000
@@ -2579,7 +2579,7 @@
 ;; Delete file, possibly delete a directory and all its files.
 ;; This function is usefull outside of dired.  One could change it's name
 ;; to e.g. recursive-delete-file and put it somewhere else.
-(defun dired-delete-file (file &optional recursive) "\
+(defun dired-delete-file (file &optional recursive trash) "\
 Delete FILE or directory (possibly recursively if optional RECURSIVE is true.)
 RECURSIVE determines what to do with a non-empty directory.  If RECURSIVE is:
 nil, do not delete.
@@ -2590,15 +2590,19 @@
   ;; (and (file-directory-p fn) (not (file-symlink-p fn)))
   ;; but more efficient
   (if (not (eq t (car (file-attributes file))))
-      (delete-file file)
+      (delete-file file trash)
     (if (and recursive
 	     (directory-files file t dired-re-no-dot) ; Not empty.
 	     (or (eq recursive 'always)
-		 (yes-or-no-p (format "Recursive delete of %s? "
+		 (yes-or-no-p (format "Recursively %s %s? "
+				      (if (and trash
+					       delete-by-moving-to-trash)
+					  "trash"
+					"delete")
 				      (dired-make-relative file)))))
 	(if (eq recursive 'top) (setq recursive 'always)) ; Don't ask again.
       (setq recursive nil))
-    (delete-directory file recursive)))
+    (delete-directory file recursive trash)))
 
 (defun dired-do-flagged-delete (&optional nomessage)
   "In Dired, delete the files flagged for deletion.
@@ -2616,7 +2620,7 @@
 	 ;; this can't move point since ARG is nil
 	 (dired-map-over-marks (cons (dired-get-filename) (point))
 			       nil)
-	 nil)
+	 nil t)
       (or nomessage
 	  (message "(No deletions requested)")))))
 
@@ -2631,11 +2635,11 @@
    ;; this may move point if ARG is an integer
    (dired-map-over-marks (cons (dired-get-filename) (point))
 			 arg)
-   arg))
+   arg t))
 
 (defvar dired-deletion-confirmer 'yes-or-no-p) ; or y-or-n-p?
 
-(defun dired-internal-do-deletions (l arg)
+(defun dired-internal-do-deletions (l arg &optional trash)
   ;; L is an alist of files to delete, with their buffer positions.
   ;; ARG is the prefix arg.
   ;; Filenames are absolute.
@@ -2644,14 +2648,21 @@
   ;; lines still to be changed, so the (point) values in L stay valid.
   ;; Also, for subdirs in natural order, a subdir's files are deleted
   ;; before the subdir itself - the other way around would not work.
-  (let ((files (mapcar (function car) l))
-	(count (length l))
-	(succ 0))
+  (let* ((files (mapcar (function car) l))
+	 (count (length l))
+	 (succ 0)
+	 (trashing (and trash delete-by-moving-to-trash))
+	 (progress-reporter
+	  (make-progress-reporter
+	   (if trashing "Trashing..." "Deleting...")
+	   succ count)))
     ;; canonicalize file list for pop up
     (setq files (nreverse (mapcar (function dired-make-relative) files)))
     (if (dired-mark-pop-up
 	 " *Deletions*" 'delete files dired-deletion-confirmer
-	 (format "Delete %s " (dired-mark-prompt arg files)))
+	 (format "%s %s "
+		 (if trashing "Trash" "Delete")
+		 (dired-mark-prompt arg files)))
 	(save-excursion
 	  (let (failures);; files better be in reverse order for this loop!
 	    (while l
@@ -2659,10 +2670,10 @@
 	      (let ((inhibit-read-only t))
 		(condition-case err
 		    (let ((fn (car (car l))))
-		      (dired-delete-file fn dired-recursive-deletes)
+		      (dired-delete-file fn dired-recursive-deletes trash)
 		      ;; if we get here, removing worked
 		      (setq succ (1+ succ))
-		      (message "%s of %s deletions" succ count)
+		      (progress-reporter-update progress-reporter succ)
 		      (dired-fun-in-all-buffers
 		       (file-name-directory fn) (file-name-nondirectory fn)
 		       (function dired-delete-entry) fn))
@@ -2671,7 +2682,7 @@
 		   (setq failures (cons (car (car l)) failures)))))
 	      (setq l (cdr l)))
 	    (if (not failures)
-		(message "%d deletion%s done" count (dired-plural-s count))
+		(progress-reporter-done progress-reporter)
 	      (dired-log-summary
 	       (format "%d of %d deletion%s failed"
 		       (length failures) count
--- a/lisp/epg.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/epg.el	Fri May 28 11:27:13 2010 +0000
@@ -1899,7 +1899,7 @@
 	  ;; Cleanup the tempfile.
 	  (and tempfile
 	       (file-exists-p tempfile)
-	       (delete-file tempfile t))
+	       (delete-file tempfile))
 	  ;; Cleanup the tempdir.
 	  (and tempdir
 	       (file-directory-p tempdir)
@@ -1999,7 +1999,7 @@
 	  (epg-read-output context))
       (epg-delete-output-file context)
       (if (file-exists-p input-file)
-	  (delete-file input-file t))
+	  (delete-file input-file))
       (epg-reset context))))
 
 (defun epg-start-verify (context signature &optional signed-text)
@@ -2203,7 +2203,7 @@
 	  (epg-read-output context))
       (epg-delete-output-file context)
       (if input-file
-	  (delete-file input-file t))
+	  (delete-file input-file))
       (epg-reset context))))
 
 (defun epg-start-encrypt (context plain recipients
@@ -2323,7 +2323,7 @@
 	  (epg-read-output context))
       (epg-delete-output-file context)
       (if input-file
-	  (delete-file input-file t))
+	  (delete-file input-file))
       (epg-reset context))))
 
 (defun epg-start-export-keys (context keys)
--- a/lisp/files.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/files.el	Fri May 28 11:27:13 2010 +0000
@@ -4675,19 +4675,30 @@
   "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"
   "Regexp of file names excluging \".\" an \"..\".")
 
-(defun delete-directory (directory &optional recursive)
+(defun delete-directory (directory &optional recursive trash)
   "Delete the directory named DIRECTORY.  Does not follow symlinks.
-If RECURSIVE is non-nil, all files in DIRECTORY are deleted as well."
+If RECURSIVE is non-nil, all files in DIRECTORY are deleted as well.
+TRASH non-nil means to trash the directory instead, provided
+`delete-by-moving-to-trash' is non-nil.
+
+When called interactively, TRASH is t if no prefix argument is
+given.  With a prefix argument, TRASH is nil."
   (interactive
-   (let ((dir (expand-file-name
-	       (read-file-name
-		"Delete directory: "
-		default-directory default-directory nil nil))))
+   (let* ((trashing (and delete-by-moving-to-trash
+			 (null current-prefix-arg)))
+	  (dir (expand-file-name
+		(read-file-name
+		 (if trashing
+		     "Move directory to trash: "
+		   "Delete directory: ")
+		 default-directory default-directory nil nil))))
      (list dir
 	   (if (directory-files	dir nil directory-files-no-dot-files-regexp)
 	       (y-or-n-p
-		(format "Directory `%s' is not empty, really delete? " dir))
-	     nil))))
+		(format "Directory `%s' is not empty, really %s? "
+			dir (if trashing "trash" "delete")))
+	     nil)
+	   (null current-prefix-arg))))
   ;; If default-directory is a remote directory, make sure we find its
   ;; delete-directory handler.
   (setq directory (directory-file-name (expand-file-name directory)))
@@ -4695,7 +4706,7 @@
     (cond
      (handler
       (funcall handler 'delete-directory directory recursive))
-     (delete-by-moving-to-trash
+     ((and delete-by-moving-to-trash trash)
       ;; Only move non-empty dir to trash if recursive deletion was
       ;; requested.  This mimics the non-`delete-by-moving-to-trash'
       ;; case, where the operation fails in delete-directory-internal.
@@ -4715,8 +4726,8 @@
 		  ;; (and (file-directory-p fn) (not (file-symlink-p fn)))
 		  ;; but more efficient
 		  (if (eq t (car (file-attributes file)))
-		      (delete-directory file recursive)
-		    (delete-file file)))
+		      (delete-directory file recursive nil)
+		    (delete-file file nil)))
 		;; We do not want to delete "." and "..".
 		(directory-files
 		 directory 'full directory-files-no-dot-files-regexp)))
--- a/lisp/htmlfontify.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/htmlfontify.el	Fri May 28 11:27:13 2010 +0000
@@ -1026,14 +1026,25 @@
     (setq  n (apply '* m))
     (nconc r (hfy-size (if x (round n) (* n 1.0)))) ))
 
+(defun hfy-face-resolve-face (fn)
+  (cond
+   ((facep fn)
+    (hfy-face-attr-for-class fn hfy-display-class))
+   ((and (symbolp fn)
+	 (facep (symbol-value fn)))
+    ;; Obsolete faces like `font-lock-reference-face' are defined as
+    ;; aliases for another face.
+    (hfy-face-attr-for-class (symbol-value fn) hfy-display-class))
+   (t nil)))
+
+
 (defun hfy-face-to-style (fn)
   "Take FN, a font or `defface' style font specification,
 \(as returned by `face-attr-construct' or `hfy-face-attr-for-class')
 and return a `hfy-style-assoc'.\n
 See also `hfy-face-to-style-i', `hfy-flatten-style'."
   ;;(message "hfy-face-to-style");;DBUG
-  (let ((face-def (if (facep fn)
-                      (hfy-face-attr-for-class fn hfy-display-class) fn))
+  (let ((face-def (hfy-face-resolve-face fn))
         (final-style nil))
 
     (setq final-style (hfy-flatten-style (hfy-face-to-style-i face-def)))
--- a/lisp/jka-compr.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/jka-compr.el	Fri May 28 11:27:13 2010 +0000
@@ -181,7 +181,7 @@
 			  null-device))
 			jka-compr-acceptable-retval-list)
 		  (jka-compr-error prog args infile message err-file))
-	    (delete-file err-file t)))
+	    (delete-file err-file)))
 
       ;; Run the uncompression program directly.
       ;; We get the whole file and must delete what we don't want.
@@ -223,7 +223,7 @@
 					   "")))
 		   jka-compr-acceptable-retval-list)
 		  (jka-compr-error prog args infile message err-file))
-	    (delete-file err-file t)))
+	    (delete-file err-file)))
       (or (eq 0
 	      (apply 'call-process
 		     prog infile (if (stringp output) temp output)
@@ -335,7 +335,7 @@
 						(and append can-append) 'dont))
 	      (erase-buffer)) )
 
-	  (delete-file temp-file t)
+	  (delete-file temp-file)
 
 	  (and
 	   compress-message
--- a/lisp/net/ange-ftp.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/net/ange-ftp.el	Fri May 28 11:27:13 2010 +0000
@@ -1736,7 +1736,7 @@
 
 (defun ange-ftp-del-tmp-name (filename)
   "Force to delete temporary file."
-  (delete-file filename 'force))
+  (delete-file filename))
 
 
 ;;;; ------------------------------------------------------------
@@ -3507,8 +3507,9 @@
 	(file-exists-p file)
       (ange-ftp-real-file-executable-p file))))
 
-(defun ange-ftp-delete-file (file &optional force)
-  (interactive "fDelete file: ")
+(defun ange-ftp-delete-file (file &optional trash)
+  (interactive (list (read-file-name "Delete file: " nil default-directory)
+		     (null current-prefix-arg)))
   (setq file (expand-file-name file))
   (let ((parsed (ange-ftp-ftp-name file)))
     (if parsed
@@ -3526,7 +3527,7 @@
 		       (format "FTP Error: \"%s\"" (cdr result))
 		       file)))
 	  (ange-ftp-delete-file-entry file))
-      (ange-ftp-real-delete-file file force))))
+      (ange-ftp-real-delete-file file trash))))
 
 (defun ange-ftp-file-modtime (file)
   "Return the modification time of remote file FILE.
@@ -3897,7 +3898,7 @@
 	  (ange-ftp-add-file-entry newname)
 	  (ange-ftp-delete-file-entry filename))
       (ange-ftp-copy-file-internal filename newname t nil)
-      (delete-file filename 'force))))
+      (delete-file filename))))
 
 (defun ange-ftp-rename-local-to-remote (filename newname)
   "Rename local file FILENAME to remote file NEWNAME."
@@ -3906,7 +3907,7 @@
 	 (msg (format "Renaming %s to %s" fabbr nabbr)))
     (ange-ftp-copy-file-internal filename newname t nil msg)
     (let (ange-ftp-process-verbose)
-      (delete-file filename 'force))))
+      (delete-file filename))))
 
 (defun ange-ftp-rename-remote-to-local (filename newname)
   "Rename remote file FILENAME to local file NEWNAME."
@@ -3915,7 +3916,7 @@
 	 (msg (format "Renaming %s to %s" fabbr nabbr)))
     (ange-ftp-copy-file-internal filename newname t nil msg)
     (let (ange-ftp-process-verbose)
-      (delete-file filename 'force))))
+      (delete-file filename))))
 
 (defun ange-ftp-rename-file (filename newname &optional ok-if-already-exists)
   (interactive "fRename file: \nFRename %s to file: \np")
@@ -4196,7 +4197,7 @@
 	(if copy
 	    (unwind-protect
 		(funcall 'load copy noerror nomessage nosuffix)
-	      (delete-file copy 'force))
+	      (delete-file copy))
 	  (or noerror
 	      (signal 'file-error (list "Cannot open load file" file)))
 	  nil))
@@ -4267,7 +4268,7 @@
 	  (if (zerop (buffer-size))
 	      (progn
 		(let (ange-ftp-process-verbose)
-		  (delete-file file 'force))
+		  (delete-file file))
 		(ange-ftp-copy-file-internal tmp2 nfile t nil msg2))))
       (ange-ftp-del-tmp-name tmp1)
       (ange-ftp-del-tmp-name tmp2))))
@@ -4303,7 +4304,7 @@
 	  (if (zerop (buffer-size))
 	      (progn
 		(let (ange-ftp-process-verbose)
-		  (delete-file file 'force))
+		  (delete-file file))
 		(ange-ftp-copy-file-internal tmp2 nfile t nil msg2))))
       (ange-ftp-del-tmp-name tmp1)
       (ange-ftp-del-tmp-name tmp2))))
--- a/lisp/net/tramp-compat.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/net/tramp-compat.el	Fri May 28 11:27:13 2010 +0000
@@ -334,23 +334,18 @@
 	(if keep-time
 	    (set-file-times newname (nth 5 (file-attributes directory))))))))
 
-;; FORCE has been introduced with Emacs 24.1.
-(defun tramp-compat-delete-file (filename &optional force)
+;; TRASH has been introduced with Emacs 24.1.
+(defun tramp-compat-delete-file (filename &optional trash)
   "Like `delete-file' for Tramp files (compat function)."
-  (if (null force)
-      (delete-file filename)
-    (condition-case nil
-	(tramp-compat-funcall 'delete-file filename force)
-      ;; This Emacs version does not support the FORCE flag.  Setting
-      ;; `delete-by-moving-to-trash' shall give us the same effect.
-      (wrong-number-of-arguments
-       (let ((delete-by-moving-to-trash
-	      (cond
-	       ((null force) t)
-	       ((boundp 'delete-by-moving-to-trash)
-		(symbol-value 'delete-by-moving-to-trash))
-	       (t nil))))
-	 (delete-file filename))))))
+  (condition-case nil
+      (tramp-compat-funcall 'delete-file filename trash)
+    ;; This Emacs version does not support the TRASH flag.
+    (wrong-number-of-arguments
+     (let ((delete-by-moving-to-trash
+	    (and (boundp 'delete-by-moving-to-trash)
+		 delete-by-moving-to-trash
+		 trash)))
+       (delete-file filename)))))
 
 ;; RECURSIVE has been introduced with Emacs 23.2.
 (defun tramp-compat-delete-directory (directory &optional recursive)
--- a/lisp/net/tramp-fish.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/net/tramp-fish.el	Fri May 28 11:27:13 2010 +0000
@@ -326,16 +326,16 @@
 	 (lambda (file)
 	   (if (file-directory-p file)
 	       (tramp-compat-delete-directory file recursive)
-	     (delete-file file)))
+	     (tramp-compat-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)))))
+    (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)))))
 
-(defun tramp-fish-handle-delete-file (filename &optional force)
+(defun tramp-fish-handle-delete-file (filename &optional trash)
   "Like `delete-file' for Tramp files."
   (when (file-exists-p filename)
     (with-parsed-tramp-file-name (expand-file-name filename) nil
@@ -660,7 +660,7 @@
 			  localname)))))
 	  (tramp-error
 	   v 'file-already-exists "File %s already exists" localname)
-	(tramp-compat-delete-file linkname 'force)))
+	(tramp-compat-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 'force))
-      (when tmpoutput (tramp-compat-delete-file tmpoutput 'force))
+      (when tmpinput (tramp-compat-delete-file tmpinput))
+      (when tmpoutput (tramp-compat-delete-file tmpoutput))
       ;; Return exit status.
       ret)))
 
--- a/lisp/net/tramp-ftp.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/net/tramp-ftp.el	Fri May 28 11:27:13 2010 +0000
@@ -182,7 +182,7 @@
 	  (unwind-protect
 	      (rename-file tmpfile newname (car args))
 	    ;; Cleanup.
-	    (ignore-errors (tramp-compat-delete-file tmpfile 'force)))))
+	    (ignore-errors (tramp-compat-delete-file tmpfile)))))
 
        ;; Normally, the handlers must be discarded.
        ;; `inhibit-file-name-handlers' isn't sufficient, because the
--- a/lisp/net/tramp-gvfs.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/net/tramp-gvfs.el	Fri May 28 11:27:13 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 force)
+(defun tramp-gvfs-handle-delete-file (filename &optional tramp)
   "Like `delete-file' for Tramp files."
-  (tramp-compat-delete-file (tramp-gvfs-fuse-file-name filename) force))
+  (tramp-compat-delete-file (tramp-gvfs-fuse-file-name filename) tramp))
 
 (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 'force)))))
+	   (tramp-compat-delete-file tmpfile)))))
 
     ;; Set file modification time.
     (when (or (eq visit t) (stringp visit))
--- a/lisp/net/tramp-imap.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/net/tramp-imap.el	Fri May 28 11:27:13 2010 +0000
@@ -268,7 +268,7 @@
 	    (write-region (point-min) (point-max) newname)))))
 
     (when (eq op 'rename)
-      (tramp-compat-delete-file filename 'force))))
+      (tramp-compat-delete-file filename))))
 
 ;; TODO: revise this much
 (defun tramp-imap-handle-expand-file-name (name &optional dir)
@@ -552,7 +552,7 @@
   ;; (file-exists-p (file-name-directory filename)))
   (file-directory-p (file-name-directory filename)))
 
-(defun tramp-imap-handle-delete-file (filename &optional force)
+(defun tramp-imap-handle-delete-file (filename &optional trash)
   "Like `delete-file' for Tramp files."
   (cond
    ((not (file-exists-p filename)) nil)
--- a/lisp/net/tramp-smb.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/net/tramp-smb.el	Fri May 28 11:27:13 2010 +0000
@@ -345,7 +345,7 @@
 	  (condition-case err
 	      (rename-file tmpfile newname ok-if-already-exists)
 	    ((error quit)
-	     (tramp-compat-delete-file tmpfile 'force)
+	     (tramp-compat-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)
-	     (delete-file file)))
+	     (tramp-compat-delete-file file t)))
 	 ;; We do not want to delete "." and "..".
 	 (directory-files
 	  directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")))
@@ -404,7 +404,7 @@
 	  (tramp-error
 	   v 'file-error "%s `%s'" (match-string 0) directory))))))
 
-(defun tramp-smb-handle-delete-file (filename &optional force)
+(defun tramp-smb-handle-delete-file (filename &optional trash)
   "Like `delete-file' for Tramp files."
   (setq filename (expand-file-name filename))
   (when (file-exists-p filename)
@@ -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 'force)
+	  (tramp-compat-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 'force)
+	     (tramp-compat-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 'force)))
+    (tramp-compat-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 'force)))
+	  (tramp-compat-delete-file tmpfile)))
 
       (unless (equal curbuf (current-buffer))
 	(tramp-error
--- a/lisp/net/tramp.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/net/tramp.el	Fri May 28 11:27:13 2010 +0000
@@ -2544,7 +2544,7 @@
 			    l-localname)))))
 	    (tramp-error
 	     l 'file-already-exists "File %s already exists" l-localname)
-	  (tramp-compat-delete-file linkname 'force)))
+	  (tramp-compat-delete-file linkname)))
 
       ;; If FILENAME is a Tramp name, use just the localname component.
       (when (tramp-tramp-file-p filename)
@@ -2593,7 +2593,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 'force)))))
+	      (tramp-compat-delete-file local-copy)))))
       t)))
 
 ;; Localname manipulation functions that grok Tramp localnames...
@@ -3769,7 +3769,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 'force)))
+  (unless (eq op 'copy) (tramp-compat-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 +3924,7 @@
 
 		;; Save exit.
 		(condition-case nil
-		    (tramp-compat-delete-file tmpfile 'force)
+		    (tramp-compat-delete-file tmpfile)
 		  (error)))))))))
 
       ;; Set the time and mode. Mask possible errors.
@@ -3964,7 +3964,7 @@
 		  (if dir-flag
 		      (tramp-compat-delete-directory
 		       (expand-file-name ".." tmpfile) 'recursive)
-		    (tramp-compat-delete-file tmpfile 'force))
+		    (tramp-compat-delete-file tmpfile))
 		(error))))
 
 	;; Expand hops.  Might be necessary for gateway methods.
@@ -4082,7 +4082,7 @@
       ;; If the operation was `rename', delete the original file.
       (unless (eq op 'copy)
 	(if (file-regular-p filename)
-	    (tramp-compat-delete-file filename 'force)
+	    (tramp-compat-delete-file filename)
 	  (tramp-compat-delete-directory filename 'recursive))))))
 
 (defun tramp-handle-make-directory (dir &optional parents)
@@ -4112,7 +4112,7 @@
 		     (tramp-shell-quote-argument localname))))
       (tramp-error v 'file-error "Couldn't delete %s" directory))))
 
-(defun tramp-handle-delete-file (filename &optional force)
+(defun tramp-handle-delete-file (filename &optional trash)
   "Like `delete-file' for Tramp files."
   (setq filename (expand-file-name filename))
   (with-parsed-tramp-file-name filename nil
@@ -4629,7 +4629,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 'force))
+      (when tmpinput (tramp-compat-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 +4666,7 @@
     (when delete (delete-region start end))
     (unwind-protect
 	(apply 'call-process program tmpfile buffer display args)
-      (tramp-compat-delete-file tmpfile 'force))))
+      (tramp-compat-delete-file tmpfile))))
 
 (defun tramp-handle-shell-command
   (command &optional output-buffer error-buffer)
@@ -4731,7 +4731,7 @@
 	(when (listp buffer)
 	  (with-current-buffer error-buffer
 	    (insert-file-contents (cadr buffer)))
-	  (tramp-compat-delete-file (cadr buffer) 'force))
+	  (tramp-compat-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 +4813,7 @@
 		    (unwind-protect
 			(tramp-call-local-coding-command
 			 loc-dec tmpfile2 tmpfile)
-		      (tramp-compat-delete-file tmpfile2 'force)))))
+		      (tramp-compat-delete-file tmpfile2)))))
 
 	      ;; Set proper permissions.
 	      (set-file-modes tmpfile (tramp-default-file-modes filename))
@@ -4826,7 +4826,7 @@
 
 	;; Error handling.
 	((error quit)
-	 (tramp-compat-delete-file tmpfile 'force)
+	 (tramp-compat-delete-file tmpfile)
 	 (signal (car err) (cdr err))))
 
       (run-hooks 'tramp-handle-file-local-copy-hook)
@@ -4961,11 +4961,10 @@
 	    (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 'force))
+	    (tramp-compat-delete-file local-copy))
 	  (when (stringp remote-copy)
 	    (tramp-compat-delete-file
-	     (tramp-make-tramp-file-name method user host remote-copy)
-	     'force)))))
+	     (tramp-make-tramp-file-name method user host remote-copy))))))
 
     ;; Result.
     (list (expand-file-name filename)
@@ -5155,7 +5154,7 @@
 		 (list start end tmpfile append 'no-message lockname confirm))
 	      ((error quit)
 	       (setq tramp-temp-buffer-file-name nil)
-	       (tramp-compat-delete-file tmpfile 'force)
+	       (tramp-compat-delete-file tmpfile)
 	       (signal (car err) (cdr err))))
 
 	    ;; Now, `last-coding-system-used' has the right value.  Remember it.
@@ -5199,13 +5198,13 @@
 			(copy-file tmpfile filename t)
 		      ((error quit)
 		       (setq tramp-temp-buffer-file-name nil)
-		       (tramp-compat-delete-file tmpfile 'force)
+		       (tramp-compat-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 'force))))
+		  (tramp-compat-delete-file tmpfile))))
 
 	     ;; Use inline file transfer.
 	     (rem-dec
@@ -5290,7 +5289,7 @@
 			  filename rem-dec)))))
 
 		;; Save exit.
-		(tramp-compat-delete-file tmpfile 'force)))
+		(tramp-compat-delete-file tmpfile)))
 
 	     ;; That's not expected.
 	     (t
@@ -6373,7 +6372,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 'force)
+	(tramp-compat-delete-file tramp-temp-buffer-file-name)
       (error nil))))
 
 (add-hook 'kill-buffer-hook 'tramp-delete-temp-file-function)
--- a/lisp/progmodes/verilog-mode.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/progmodes/verilog-mode.el	Fri May 28 11:27:13 2010 +0000
@@ -2446,12 +2446,12 @@
 		 (list
 		  (concat "\\<function\\>\\s-+\\(integer\\|real\\(time\\)?\\|time\\)\\s-+\\(\\sw+\\)" )
 		       '(1 font-lock-keyword-face)
-		       '(3 font-lock-reference-face prepend))
+		       '(3 font-lock-constant-face prepend))
 		 '("\\<function\\>\\s-+\\(\\[[^]]+\\]\\)\\s-+\\(\\sw+\\)"
 		   (1 font-lock-keyword-face)
-		   (2 font-lock-reference-face append))
+		   (2 font-lock-constant-face append))
 		 '("\\<function\\>\\s-+\\(\\sw+\\)"
-		   1 'font-lock-reference-face append))))
+		   1 'font-lock-constant-face append))))
 
   (setq verilog-font-lock-keywords-2
 	(append verilog-font-lock-keywords-1
--- a/lisp/server.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/server.el	Fri May 28 11:27:13 2010 +0000
@@ -345,7 +345,7 @@
   (and (process-contact proc :server)
        (eq (process-status proc) 'closed)
        (ignore-errors
-	(delete-file (process-get proc :server-file) t)))
+	(delete-file (process-get proc :server-file))))
   (server-log (format "Status changed to %s: %s" (process-status proc) msg) proc)
   (server-delete-client proc))
 
--- a/lisp/speedbar.el	Thu May 27 11:59:21 2010 +0000
+++ b/lisp/speedbar.el	Fri May 28 11:27:13 2010 +0000
@@ -1644,8 +1644,8 @@
     (if (speedbar-y-or-n-p (format "Delete %s? " f) t)
 	(progn
 	  (if (file-directory-p f)
-	      (delete-directory f)
-	    (delete-file f))
+	      (delete-directory f t t)
+	    (delete-file f t))
 	  (speedbar-message "Okie dokie.")
 	  (let ((p (point)))
 	    (speedbar-refresh)
--- a/src/ChangeLog	Thu May 27 11:59:21 2010 +0000
+++ b/src/ChangeLog	Fri May 28 11:27:13 2010 +0000
@@ -1,3 +1,32 @@
+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
+	whether to trash.
+	(internal_delete_file, Frename_file): Callers changed.
+	(delete_by_moving_to_trash): Doc fix.
+	(Fdelete_directory_internal): Don't move to trash.
+
+	* callproc.c (delete_temp_file):
+	* buffer.c (Fkill_buffer): Callers changed.
+
+	* lisp.h: Update prototype.
+
+2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xdisp.c (redisplay_window): After redisplay, check if point is
+	still valid before setting it (Bug#6177).
+
 2010-05-27  Glenn Morris  <rgm@gnu.org>
 
 	* Makefile.in, autodeps.mk, deps.mk, ns.mk:
--- a/src/ChangeLog.10	Thu May 27 11:59:21 2010 +0000
+++ b/src/ChangeLog.10	Fri May 28 11:27:13 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	Thu May 27 11:59:21 2010 +0000
+++ b/src/ChangeLog.8	Fri May 28 11:27:13 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	Thu May 27 11:59:21 2010 +0000
+++ b/src/Makefile.in	Fri May 28 11:27:13 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/buffer.c	Thu May 27 11:59:21 2010 +0000
+++ b/src/buffer.c	Fri May 28 11:27:13 2010 +0000
@@ -1547,7 +1547,7 @@
       Lisp_Object tem;
       tem = Fsymbol_value (intern ("delete-auto-save-files"));
       if (! NILP (tem))
-	internal_delete_file (b->auto_save_file_name, Qt);
+	internal_delete_file (b->auto_save_file_name);
     }
 
   if (b->base_buffer)
--- a/src/callproc.c	Thu May 27 11:59:21 2010 +0000
+++ b/src/callproc.c	Fri May 28 11:27:13 2010 +0000
@@ -856,7 +856,7 @@
   /* Suppress jka-compr handling, etc.  */
   int count = SPECPDL_INDEX ();
   specbind (intern ("file-name-handler-alist"), Qnil);
-  internal_delete_file (name, Qt);
+  internal_delete_file (name);
   unbind_to (count, Qnil);
   return Qnil;
 }
--- a/src/fileio.c	Thu May 27 11:59:21 2010 +0000
+++ b/src/fileio.c	Fri May 28 11:27:13 2010 +0000
@@ -2180,12 +2180,7 @@
 
   CHECK_STRING (directory);
   directory = Fdirectory_file_name (Fexpand_file_name (directory, Qnil));
-
-  if (delete_by_moving_to_trash)
-    return call1 (Qmove_file_to_trash, directory);
-
   encoded_dir = ENCODE_FILE (directory);
-
   dir = SDATA (encoded_dir);
 
   if (rmdir (dir) != 0)
@@ -2195,19 +2190,21 @@
 }
 
 DEFUN ("delete-file", Fdelete_file, Sdelete_file, 1, 2,
-       "(list (read-file-name \"Delete file: \" nil default-directory \
-                (confirm-nonexistent-file-or-buffer))                 \
-              current-prefix-arg)",
+       "(list (read-file-name \
+                (if (and delete-by-moving-to-trash (null current-prefix-arg)) \
+                    \"Move file to trash: \" \"Delete file: \") \
+                nil default-directory (confirm-nonexistent-file-or-buffer)) \
+              (null current-prefix-arg))",
        doc: /* Delete file named FILENAME.  If it is a symlink, remove the symlink.
 If file has multiple names, it continues to exist with the other names.
-
-If optional arg FORCE is non-nil, really delete the file regardless of
-`delete-by-moving-to-trash'.  Otherwise, \"deleting\" actually moves
-it to the system's trash can if `delete-by-moving-to-trash' is non-nil.
-Interactively, FORCE is non-nil if called with a prefix arg.  */)
-     (filename, force)
+TRASH non-nil means to trash the file instead of deleting, provided
+`delete-by-moving-to-trash' is non-nil.
+
+When called interactively, TRASH is t if no prefix argument is given.
+With a prefix argument, TRASH is nil.  */)
+     (filename, trash)
      Lisp_Object filename;
-     Lisp_Object force;
+     Lisp_Object trash;
 {
   Lisp_Object handler;
   Lisp_Object encoded_file;
@@ -2226,7 +2223,7 @@
   if (!NILP (handler))
     return call2 (handler, Qdelete_file, filename);
 
-  if (delete_by_moving_to_trash && NILP (force))
+  if (delete_by_moving_to_trash && !NILP (trash))
     return call1 (Qmove_file_to_trash, filename);
 
   encoded_file = ENCODE_FILE (filename);
@@ -2244,14 +2241,14 @@
 }
 
 /* Delete file FILENAME, returning 1 if successful and 0 if failed.
-   FORCE means to ignore `delete-by-moving-to-trash'.  */
+   This ignores `delete-by-moving-to-trash'.  */
 
 int
-internal_delete_file (Lisp_Object filename, Lisp_Object force)
+internal_delete_file (Lisp_Object filename)
 {
   Lisp_Object tem;
 
-  tem = internal_condition_case_2 (Fdelete_file, filename, force,
+  tem = internal_condition_case_2 (Fdelete_file, filename, Qnil,
 				   Qt, internal_delete_file_1);
   return NILP (tem);
 }
@@ -2345,7 +2342,7 @@
 	      )
 	    call2 (Qdelete_directory, file, Qt);
 	  else
-	    Fdelete_file (file, Qt);
+	    Fdelete_file (file, Qnil);
 	  unbind_to (count, Qnil);
 	}
       else
@@ -5917,8 +5914,10 @@
 
   DEFVAR_BOOL ("delete-by-moving-to-trash", &delete_by_moving_to_trash,
                doc: /* Specifies whether to use the system's trash can.
-When non-nil, the function `move-file-to-trash' will be used by
-`delete-file' and `delete-directory'.  */);
+When non-nil, certain file deletion commands use the function
+`move-file-to-trash' instead of deleting files outright.
+This includes interactive calls to `delete-file' and
+`delete-directory' and the Dired deletion commands.  */);
   delete_by_moving_to_trash = 0;
   Qdelete_by_moving_to_trash = intern_c_string ("delete-by-moving-to-trash");
   Qmove_file_to_trash = intern_c_string ("move-file-to-trash");
--- a/src/font.c	Thu May 27 11:59:21 2010 +0000
+++ b/src/font.c	Fri May 28 11:27:13 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/lisp.h	Thu May 27 11:59:21 2010 +0000
+++ b/src/lisp.h	Fri May 28 11:27:13 2010 +0000
@@ -3060,7 +3060,7 @@
 extern Lisp_Object close_file_unwind P_ ((Lisp_Object));
 extern Lisp_Object restore_point_unwind P_ ((Lisp_Object));
 extern void report_file_error P_ ((const char *, Lisp_Object)) NO_RETURN;
-extern int internal_delete_file P_ ((Lisp_Object, Lisp_Object));
+extern int internal_delete_file P_ ((Lisp_Object));
 extern void syms_of_fileio P_ ((void));
 extern Lisp_Object make_temp_name P_ ((Lisp_Object, int));
 EXFUN (Fmake_symbolic_link, 3);
--- a/src/xdisp.c	Thu May 27 11:59:21 2010 +0000
+++ b/src/xdisp.c	Fri May 28 11:27:13 2010 +0000
@@ -14788,8 +14788,16 @@
         (*FRAME_TERMINAL (f)->redeem_scroll_bar_hook) (w);
     }
 
-  /* Restore current_buffer and value of point in it.  */
-  TEMP_SET_PT_BOTH (CHARPOS (opoint), BYTEPOS (opoint));
+  /* Restore current_buffer and value of point in it.  The window
+     update may have changed the buffer, so first make sure `opoint'
+     is still valid (Bug#6177).  */
+  if (CHARPOS (opoint) < BEGV)
+    TEMP_SET_PT_BOTH (BEGV, BEGV_BYTE);
+  else if (CHARPOS (opoint) > ZV)
+    TEMP_SET_PT_BOTH (Z, Z_BYTE);
+  else
+    TEMP_SET_PT_BOTH (CHARPOS (opoint), BYTEPOS (opoint));
+
   set_buffer_internal_1 (old);
   /* Avoid an abort in TEMP_SET_PT_BOTH if the buffer has become
      shorter.  This can be caused by log truncation in *Messages*. */