merge trunk

This commit is contained in:
Kenichi Handa 2010-05-28 15:45:43 +09:00
commit 0ad1627dbe
33 changed files with 417 additions and 596 deletions

View file

@ -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.

View file

@ -369,7 +369,7 @@ dnl quotation begins
### 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 @@ dnl quotation begins
### /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 @@ case "${canonical}" in
*-*-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 @@ case "${canonical}" in
*-*-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 @@ case "${canonical}" in
*-*-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 @@ case "${canonical}" in
*-*-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 @@ case "${canonical}" in
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 @@ case "${canonical}" in
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

View file

@ -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.

View file

@ -6,9 +6,9 @@ See the end of the file for license conditions.
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 @@ configuration name(s) should select your new machine description and
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 @@ Alpha (DEC) running GNU/Linux (alpha-dec-linux-gnu)
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
Apple Macintosh running Mac OS X
** Apple PowerPC Macintosh running GNU/Linux
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 */
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.
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 @@ IBM RS/6000 (rs6000-ibm-aix*)
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 @@ Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
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 @@ Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
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 @@ Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
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 @@ Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
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 @@ Iris 4D (mips-sgi-irix6.*)
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 @@ Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*,
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 @@ Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*,
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 @@ Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*,
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)
* Here are notes about some of the systems supported:
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
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 @@ Linux (actually GNU/Linux)
people to write more free software. See the file LINUX-GNU in this
directory for more explanation.
Microport
** Mac OS X
See under "Intel 386".
For installation instructions see the file nextstep/INSTALL.
MSDOS
** 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.
For installation on MSDOS, see the file msdos/INSTALL.
See the "MS-DOS" chapter of the manual for information about using
Emacs on MSDOS.
System V rel 4.0.3 and 4.0.4 (usg5.4)
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.
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.
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 @@ X86_64 GNU/Linux
(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 @@ Support for the following obsolete platforms was removed in Emacs 23.1
Local variables:
mode: text
mode: outline
fill-prefix: " "
End:

View file

@ -109,16 +109,20 @@ scroll a line instead of full screen.
** 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 @@ secrets.
** 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.

View file

@ -87,8 +87,7 @@ it's loaded very early in the startup procedure.)
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 @@ than the corresponding .el file.
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 @@ For example, (system-name) returns some variation on
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 @@ terminal type.
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 circumvent this problem, set x-use-underline-position-properties
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 @@ To see what glyphs are included in a font, use `xfd', like this:
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 @@ have made the key binding correctly.
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 @@ menu placement.
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 @@ In this case, there is no obvious bug in Emacs, and most likely you
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 @@ in termcap.c, tparam.c, term.c, scroll.c, cm.c or dispnew.c.
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 @@ following to your .emacs (on the host running rlogind):
(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 @@ Definitions" to make them defined.
** 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 @@ may not work if you have used the unshared system libraries. This
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 @@ selection".
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 @@ The fix is to install a newer version of ncurses, such as version 4.2.
** 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 @@ nonprinting characters, you can fix them:
*** 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 @@ This section covers bugs reported on very old hardware or software.
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 @@ lists the supported locales; any locale other than "C" or "POSIX"
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 @@ libXmu.a, libXext.a and others. HP/UX normally doesn't come with
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 @@ According to Martin Sohnius, you can also retune this in the kernel:
(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 @@ http://www.gnu.org/software/emacs/windows/.
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 @@ your system works as before.
*** 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 @@ This is an unfortunate side-effect of the support for Unix-style
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 @@ the Lisp files it needs to load at startup. Redirect Emacs stdout
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 @@ shortcut keys entirely by adding this line to ~/.OWdefaults:
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 @@ This problem seems to be a matter of configuring the DECserver to use
* 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 @@ In the XCONS, etc., macros in lisp.h you must replace (a).u.val with
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

View file

@ -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

View file

@ -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))

View file

@ -2579,7 +2579,7 @@ Anything else means ask for each directory."
;; 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 @@ Anything else, ask for each sub-directory."
;; (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 @@ non-empty directories is allowed."
;; 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 @@ non-empty directories is allowed."
;; 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 @@ non-empty directories is allowed."
;; 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 @@ non-empty directories is allowed."
(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 @@ non-empty directories is allowed."
(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

View file

@ -1899,7 +1899,7 @@ You can then use `write-region' to write new data into the file."
;; 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 @@ If PLAIN is nil, it returns the result as a string."
(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 @@ Otherwise, it makes a cleartext signature."
(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 @@ If RECIPIENTS is nil, it performs symmetric encryption."
(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)

View file

@ -4675,19 +4675,30 @@ this happens by default."
"^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"
"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 @@ If RECURSIVE is non-nil, all files in DIRECTORY are deleted as well."
(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 @@ If RECURSIVE is non-nil, all files in DIRECTORY are deleted as well."
;; (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)))

View file

@ -1026,14 +1026,25 @@ haven't encountered them yet. Returns a `hfy-style-assoc'."
(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)))

View file

@ -181,7 +181,7 @@ to keep: LEN chars starting BEG chars from the beginning."
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 @@ to keep: LEN chars starting BEG chars from the beginning."
"")))
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 @@ There should be no more than seven characters after the final `/'."
(and append can-append) 'dont))
(erase-buffer)) )
(delete-file temp-file t)
(delete-file temp-file)
(and
compress-message

View file

@ -1736,7 +1736,7 @@ good, skip, fatal, or unknown."
(defun ange-ftp-del-tmp-name (filename)
"Force to delete temporary file."
(delete-file filename 'force))
(delete-file filename))
;;;; ------------------------------------------------------------
@ -3507,8 +3507,9 @@ system TYPE.")
(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 @@ system TYPE.")
(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 @@ E.g.,
(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 @@ E.g.,
(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 @@ E.g.,
(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 @@ directory, so that Emacs will know its current contents."
(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 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
(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 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
(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))))

View file

@ -334,23 +334,18 @@ Add the extension of FILENAME, if existing."
(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)

View file

@ -326,16 +326,16 @@ pass to the OPERATION."
(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 @@ target of the symlink differ."
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 @@ target of the symlink differ."
;; 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)))

View file

@ -182,7 +182,7 @@ pass to the OPERATION."
(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

View file

@ -533,9 +533,9 @@ is no information where to trace the message.")
(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 @@ is no information where to trace the message.")
"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))

View file

@ -268,7 +268,7 @@ of `copy' and `rename'."
(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 @@ SIZE MODE WEIRD INODE DEVICE)."
;; (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)

View file

@ -345,7 +345,7 @@ PRESERVE-UID-GID is completely ignored."
(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 @@ PRESERVE-UID-GID is completely ignored."
(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 @@ PRESERVE-UID-GID is completely ignored."
(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 @@ PRESERVE-UID-GID is completely ignored."
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 @@ target of the symlink differ."
(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 @@ target of the symlink differ."
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 @@ errors for shares like \"C$/\", which are common in Microsoft Windows."
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

View file

@ -2544,7 +2544,7 @@ target of the symlink differ."
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 @@ target of the symlink differ."
;; 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 @@ KEEP-DATE is non-nil if NEWNAME should have the same timestamp as FILENAME."
;; 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 @@ the uid and gid from FILENAME."
;; 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 @@ The method used must be an out-of-band method."
(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 @@ The method used must be an out-of-band method."
;; 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 @@ The method used must be an out-of-band method."
(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 @@ beginning of local filename are not substituted."
;; 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 @@ Lisp error raised when PROGRAM is nil is trapped also, returning 1."
(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 @@ Lisp error raised when PROGRAM is nil is trapped also, returning 1."
(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 @@ Lisp error raised when PROGRAM is nil is trapped also, returning 1."
(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 @@ Lisp error raised when PROGRAM is nil is trapped also, returning 1."
;; 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 @@ coding system might not be determined. This function repairs it."
(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 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
(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 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
(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 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
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 @@ hosts, or files, disagree."
"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)

View file

@ -2446,12 +2446,12 @@ See also `verilog-font-lock-extra-types'.")
(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

View file

@ -345,7 +345,7 @@ If CLIENT is non-nil, add a description of it to the logged message."
(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))

View file

@ -1644,8 +1644,8 @@ Files can be renamed to new names or moved to new directories."
(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)

View file

@ -5,6 +5,28 @@
(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:

View file

@ -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.

View file

@ -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.

View file

@ -581,7 +581,7 @@ SOME_MACHINE_LISP = ../lisp/mouse.elc \
## 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) \

View file

@ -1547,7 +1547,7 @@ with SIGHUP. */)
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)

View file

@ -856,7 +856,7 @@ delete_temp_file (name)
/* 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;
}

View file

@ -2180,12 +2180,7 @@ DEFUN ("delete-directory-internal", Fdelete_directory_internal,
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-directory-internal", Fdelete_directory_internal,
}
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.
TRASH non-nil means to trash the file instead of deleting, provided
`delete-by-moving-to-trash' is non-nil.
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)
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 @@ Interactively, FORCE is non-nil if called with a prefix arg. */)
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 @@ internal_delete_file_1 (ignore)
}
/* 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 @@ This is what happens in interactive use with M-x. */)
)
call2 (Qdelete_directory, file, Qt);
else
Fdelete_file (file, Qt);
Fdelete_file (file, Qnil);
unbind_to (count, Qnil);
}
else
@ -5917,8 +5914,10 @@ A non-nil value may result in data loss! */);
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");

View file

@ -3060,7 +3060,7 @@ EXFUN (Fread_file_name, 6);
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);

View file

@ -14788,8 +14788,16 @@ redisplay_window (window, just_this_one_p)
(*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*. */