aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2010-05-28 15:45:43 +0900
committerKenichi Handa2010-05-28 15:45:43 +0900
commit0ad1627dbeb2c525a78252de500cb92ac367d8e2 (patch)
tree9f66c2446d818199288ec6424ecc88c51418bca7
parent7d56b2ddfe092d1c25b6faf3f5688bb85fb46549 (diff)
parent3d338b4613c47aecc773093f92cf48f279ed95d1 (diff)
downloademacs-0ad1627dbeb2c525a78252de500cb92ac367d8e2.tar.gz
emacs-0ad1627dbeb2c525a78252de500cb92ac367d8e2.zip
merge trunk
-rw-r--r--ChangeLog13
-rw-r--r--configure.in85
-rw-r--r--etc/ChangeLog5
-rw-r--r--etc/MACHINES314
-rw-r--r--etc/NEWS18
-rw-r--r--etc/PROBLEMS163
-rw-r--r--lisp/ChangeLog77
-rw-r--r--lisp/diff.el4
-rw-r--r--lisp/dired.el39
-rw-r--r--lisp/epg.el8
-rw-r--r--lisp/files.el33
-rw-r--r--lisp/htmlfontify.el15
-rw-r--r--lisp/jka-compr.el6
-rw-r--r--lisp/net/ange-ftp.el21
-rw-r--r--lisp/net/tramp-compat.el27
-rw-r--r--lisp/net/tramp-fish.el18
-rw-r--r--lisp/net/tramp-ftp.el2
-rw-r--r--lisp/net/tramp-gvfs.el6
-rw-r--r--lisp/net/tramp-imap.el4
-rw-r--r--lisp/net/tramp-smb.el14
-rw-r--r--lisp/net/tramp.el39
-rw-r--r--lisp/progmodes/verilog-mode.el6
-rw-r--r--lisp/server.el2
-rw-r--r--lisp/speedbar.el4
-rw-r--r--src/ChangeLog22
-rw-r--r--src/ChangeLog.104
-rw-r--r--src/ChangeLog.83
-rw-r--r--src/Makefile.in2
-rw-r--r--src/buffer.c2
-rw-r--r--src/callproc.c2
-rw-r--r--src/fileio.c41
-rw-r--r--src/lisp.h2
-rw-r--r--src/xdisp.c12
33 files changed, 417 insertions, 596 deletions
diff --git a/ChangeLog b/ChangeLog
index 0e82d3a521c..d3b08c98201 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
12010-05-28 Glenn Morris <rgm@gnu.org>
2
3 * configure.in: Simplify some of the $canonical tests.
4
12010-05-27 Glenn Morris <rgm@gnu.org> 52010-05-27 Glenn Morris <rgm@gnu.org>
2 6
3 * config.bat: Do not preprocess src/Makefile.in. 7 * config.bat: Do not preprocess src/Makefile.in.
@@ -2107,6 +2111,10 @@
2107 2111
2108 Update copyright year(s) in many files. 2112 Update copyright year(s) in many files.
2109 2113
21142006-04-01 Eli Zaretskii <eliz@gnu.org>
2115
2116 * configure: Regenerated.
2117
21102006-04-01 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change) 21182006-04-01 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change)
2111 2119
2112 * configure.in (HAVE_XAW3D): Disable Xaw3d check if 2120 * configure.in (HAVE_XAW3D): Disable Xaw3d check if
@@ -4067,6 +4075,11 @@
4067 * make-dist: Unset EMACS_UNIBYTE, so Emacs runs in its default state. 4075 * make-dist: Unset EMACS_UNIBYTE, so Emacs runs in its default state.
4068 Quote $EMACS, in case it's a program with args. 4076 Quote $EMACS, in case it's a program with args.
4069 4077
40781999-06-15 Gerd Moellmann <gerd@gnu.org>
4079
4080 * configure.in (HAVE_GIF): Use libungif instead of libgif
4081 because the former doesn't contain patented compression code.
4082
40701999-05-29 Richard M. Stallman <rms@gnu.org> 40831999-05-29 Richard M. Stallman <rms@gnu.org>
4071 4084
4072 * configure.in: Delete the Kerberos stuff. 4085 * configure.in: Delete the Kerberos stuff.
diff --git a/configure.in b/configure.in
index 9d301367b09..5ceb2c3bd48 100644
--- a/configure.in
+++ b/configure.in
@@ -369,7 +369,7 @@ dnl quotation begins
369### the appropriate operating system and machine description files. 369### the appropriate operating system and machine description files.
370 370
371### You would hope that you could choose an m/*.h file pretty much 371### You would hope that you could choose an m/*.h file pretty much
372### based on the machine portion of the configuration name, and an s- 372### based on the machine portion of the configuration name, and an s/*.h
373### file based on the operating system portion. However, it turns out 373### file based on the operating system portion. However, it turns out
374### that each m/*.h file is pretty manufacturer-specific - for 374### that each m/*.h file is pretty manufacturer-specific - for
375### example mips.h is MIPS 375### example mips.h is MIPS
@@ -381,10 +381,6 @@ dnl quotation begins
381### /etc/MACHINES doesn't say anything about version numbers, be 381### /etc/MACHINES doesn't say anything about version numbers, be
382### prepared to handle anything reasonably. If version numbers 382### prepared to handle anything reasonably. If version numbers
383### matter, be sure /etc/MACHINES says something about it. 383### matter, be sure /etc/MACHINES says something about it.
384###
385### Eric Raymond says we should accept strings like "sysvr4" to mean
386### "System V Release 4"; he writes, "The old convention encouraged
387### confusion between `system' and `release' levels'."
388 384
389machine='' opsys='' unported=no 385machine='' opsys='' unported=no
390case "${canonical}" in 386case "${canonical}" in
@@ -393,14 +389,14 @@ case "${canonical}" in
393 *-*-freebsd* ) 389 *-*-freebsd* )
394 opsys=freebsd 390 opsys=freebsd
395 case "${canonical}" in 391 case "${canonical}" in
396 alpha*-*-freebsd*) machine=alpha ;; 392 alpha*) machine=alpha ;;
397 arm*-*-freebsd*) machine=arm ;; 393 amd64-*|x86_64-*) machine=amdx86-64 ;;
398 ia64-*-freebsd*) machine=ia64 ;; 394 arm*) machine=arm ;;
399 sparc-*-freebsd*) machine=sparc ;; 395 ia64-*) machine=ia64 ;;
400 sparc64-*-freebsd*) machine=sparc ;; 396 i[3456]86-*) machine=intel386 ;;
401 powerpc-*-freebsd*) machine=macppc ;; 397 powerpc-*) machine=macppc ;;
402 i[3456]86-*-freebsd*) machine=intel386 ;; 398 sparc-*) machine=sparc ;;
403 amd64-*-freebsd*|x86_64-*-freebsd*) machine=amdx86-64 ;; 399 sparc64-*) machine=sparc ;;
404 esac 400 esac
405 ;; 401 ;;
406 402
@@ -408,13 +404,13 @@ case "${canonical}" in
408 *-*-kfreebsd*gnu* ) 404 *-*-kfreebsd*gnu* )
409 opsys=gnu-kfreebsd 405 opsys=gnu-kfreebsd
410 case "${canonical}" in 406 case "${canonical}" in
411 alpha*-*-kfreebsd*) machine=alpha ;; 407 alpha*) machine=alpha ;;
412 ia64-*-kfreebsd*) machine=ia64 ;; 408 amd64-*|x86_64-*) machine=amdx86-64 ;;
413 sparc-*-kfreebsd*) machine=sparc ;; 409 ia64-*) machine=ia64 ;;
414 sparc64-*-kfreebsd*) machine=sparc ;; 410 i[3456]86-*) machine=intel386 ;;
415 powerpc-*-kfreebsd*) machine=macppc ;; 411 powerpc-*) machine=macppc ;;
416 i[3456]86-*-kfreebsd*) machine=intel386 ;; 412 sparc-*) machine=sparc ;;
417 amd64-*-kfreebsd*|x86_64-*-kfreebsd*) machine=amdx86-64 ;; 413 sparc64-*) machine=sparc ;;
418 esac 414 esac
419 ;; 415 ;;
420 416
@@ -422,18 +418,17 @@ case "${canonical}" in
422 *-*-netbsd* ) 418 *-*-netbsd* )
423 opsys=netbsd 419 opsys=netbsd
424 case "${canonical}" in 420 case "${canonical}" in
425 alpha*-*-netbsd*) machine=alpha ;; 421 alpha*) machine=alpha ;;
426 i[3456]86-*-netbsd*) machine=intel386 ;; 422 x86_64-*) machine=amdx86-64 ;;
427 mips-*-netbsd*) machine=mips ;; 423 arm-*) machine=arm ;;
428 mipsel-*-netbsd*) machine=mips ;; 424 hppa-*) machine=hp800 ;;
429 mipseb-*-netbsd*) machine=mips ;; 425 i[3456]86-*) machine=intel386 ;;
430 powerpc-*-netbsd*) machine=macppc ;; 426 m68k-*) machine=m68k ;;
431 sparc*-*-netbsd*) machine=sparc ;; 427 powerpc-*) machine=macppc ;;
432 vax-*-netbsd*) machine=vax ;; 428 mips-*) machine=mips ;;
433 arm-*-netbsd*) machine=arm ;; 429 mipse[bl]-*) machine=mips ;;
434 x86_64-*-netbsd*) machine=amdx86-64 ;; 430 sparc*-) machine=sparc ;;
435 hppa-*-netbsd*) machine=hp800 ;; 431 vax-*) machine=vax ;;
436 m68k-*-netbsd*) machine=m68k ;;
437 esac 432 esac
438 ;; 433 ;;
439 434
@@ -441,14 +436,14 @@ case "${canonical}" in
441 *-*-openbsd* ) 436 *-*-openbsd* )
442 opsys=openbsd 437 opsys=openbsd
443 case "${canonical}" in 438 case "${canonical}" in
444 alpha*-*-openbsd*) machine=alpha ;; 439 alpha*) machine=alpha ;;
445 arm-*-openbsd*) machine=arm ;; 440 x86_64-*) machine=amdx86-64 ;;
446 i386-*-openbsd*) machine=intel386 ;; 441 arm-*) machine=arm ;;
447 powerpc-*-openbsd*) machine=macppc ;; 442 hppa-*) machine=hp800 ;;
448 sparc*-*-openbsd*) machine=sparc ;; 443 i386-*) machine=intel386 ;;
449 vax-*-openbsd*) machine=vax ;; 444 powerpc-*) machine=macppc ;;
450 x86_64-*-openbsd*) machine=amdx86-64 ;; 445 sparc*) machine=sparc ;;
451 hppa-*-openbsd*) machine=hp800 ;; 446 vax-*) machine=vax ;;
452 esac 447 esac
453 ;; 448 ;;
454 449
@@ -499,16 +494,16 @@ case "${canonical}" in
499 s390x-*-linux-gnu* ) 494 s390x-*-linux-gnu* )
500 machine=ibms390x opsys=gnu-linux 495 machine=ibms390x opsys=gnu-linux
501 ;; 496 ;;
502 rs6000-ibm-aix4.2* | powerpc-ibm-aix4.2* ) 497 rs6000-ibm-aix4.[23]* )
503 machine=ibmrs6000 opsys=aix4-2 498 machine=ibmrs6000 opsys=aix4-2
504 ;; 499 ;;
505 rs6000-ibm-aix4.3* | powerpc-ibm-aix4.3* ) 500 powerpc-ibm-aix4.[23]* )
506 machine=ibmrs6000 opsys=aix4-2 501 machine=ibmrs6000 opsys=aix4-2
507 ;; 502 ;;
508 rs6000-ibm-aix5* | powerpc-ibm-aix5* ) 503 rs6000-ibm-aix[56]* )
509 machine=ibmrs6000 opsys=aix4-2 504 machine=ibmrs6000 opsys=aix4-2
510 ;; 505 ;;
511 rs6000-ibm-aix6* | powerpc-ibm-aix6* ) 506 powerpc-ibm-aix[56]* )
512 machine=ibmrs6000 opsys=aix4-2 507 machine=ibmrs6000 opsys=aix4-2
513 ;; 508 ;;
514 509
@@ -577,7 +572,7 @@ case "${canonical}" in
577 machine=ia64 opsys=gnu-linux 572 machine=ia64 opsys=gnu-linux
578 ;; 573 ;;
579 574
580 ## Intel 386 machines where we don't care about the manufacturer 575 ## Intel 386 machines where we don't care about the manufacturer.
581 i[3456]86-*-* ) 576 i[3456]86-*-* )
582 machine=intel386 577 machine=intel386
583 case "${canonical}" in 578 case "${canonical}" in
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 87c460bfb0d..135db74b9e0 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,8 @@
12010-05-28 Glenn Morris <rgm@gnu.org>
2
3 * MACHINES: Remove some old information no longer of relevance.
4 Switch to outline-mode.
5
12010-05-27 Glenn Morris <rgm@gnu.org> 62010-05-27 Glenn Morris <rgm@gnu.org>
2 7
3 * PROBLEMS: Remove old information no longer of relevance. 8 * PROBLEMS: Remove old information no longer of relevance.
diff --git a/etc/MACHINES b/etc/MACHINES
index aa5d766e8dd..ebefc8905e0 100644
--- a/etc/MACHINES
+++ b/etc/MACHINES
@@ -6,9 +6,9 @@ See the end of the file for license conditions.
6 6
7This is a list of the status of GNU Emacs on various machines and systems. 7This is a list of the status of GNU Emacs on various machines and systems.
8 8
9For each system and machine, we give the configuration name you should 9Information about older releases, and platforms that are no longer
10pass to the `configure' script to prepare to build Emacs for that 10supported, has been removed. Consult older versions of this file if
11system/machine. 11you are interested in this information.
12 12
13The `configure' script uses the configuration name to decide which 13The `configure' script uses the configuration name to decide which
14machine and operating system description files `src/config.h' should 14machine and operating system description files `src/config.h' should
@@ -25,16 +25,10 @@ configuration name(s) should select your new machine description and
25system description files. 25system description files.
26 26
27Some obsolete platforms are unsupported beginning with Emacs 23.1, see 27Some obsolete platforms are unsupported beginning with Emacs 23.1, see
28the full list at the end of this file. 28the list at the end of this file.
29 29
30 30
31Here are the configurations Emacs is intended to work with, with the 31** Alpha (DEC) running GNU/Linux (alpha-dec-linux-gnu)
32corresponding configuration names. You can postpend version numbers
33to operating system names (i.e. sunos4.1) or architecture names (i.e.
34hppa1.1). If you leave out the version number, the `configure' script
35will configure Emacs for the latest version it knows about.
36
37Alpha (DEC) running GNU/Linux (alpha-dec-linux-gnu)
38 32
39 DEC C compiler version 5.9 (DEC C V5.9-005 on Digital UNIX V4.0f) 33 DEC C compiler version 5.9 (DEC C V5.9-005 on Digital UNIX V4.0f)
40 is reported to produce bogus binaries of Emacs 21.2 when the 34 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)
47 versions fail to build with a message "Invalid dimension for the 41 versions fail to build with a message "Invalid dimension for the
48 charset-ID 160". 42 charset-ID 160".
49 43
50 Note that the X11 libraries on GNU/Linux systems for the Alpha are 44** Apple Macintosh running Mac OS X
51 said to have bugs that prevent Emacs from working with X (as of
52 November 1995). Recent releases work (July 2000).
53
54Apple Macintosh running Mac OS X
55
56 For installation instructions see the file nextstep/INSTALL.
57
58Apple PowerPC Macintosh running GNU/Linux
59
60 There are special considerations for a variety of this system which
61 is known as the ``Yellow Dog [GNU/]Linux'': Emacs may crash during
62 dumping. To solve this, edit the header file src/m/macppc.h in the
63 Emacs distribution, and remove the "#if 0" and "#endif" directives
64 which surround the following block near the end of the file:
65
66 #if 0 /* This breaks things on PPC GNU/Linux except for Yellowdog,
67 even with identical GCC, as, ld. Let's take it out until we
68 know what's really going on here. */
69 /* GCC 2.95 and newer on GNU/Linux PPC changed the load address to
70 0x10000000. */
71 #if defined __linux__
72 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
73 #define DATA_SEG_BITS 0x10000000
74 #endif
75 #endif
76 #endif /* 0 */
77
78 After that, reconfigure and rebuild Emacs. It should now build
79 successfully.
80
81Cubix QBx/386 (i386-cubix-sysv)
82
83 Changes merged in 19.1. Systems before 2/A/0 may fail to compile etags.c
84 due to a compiler bug.
85
86Motorola Delta 147 (m68k-motorola-sysv)
87
88 The EMacs 19.26 pretest was reported to work.
89
90 Motorola Delta boxes running System V/68 release 3.
91 Tested on 147 board with SVR3V7, no X and gcc.
92 Tested on 167 board with SVR3V7, no X, cc, gnucc and gcc.
93 Reports say it works with X too.
94 45
95 The installation script chooses the compiler itself. gnucc is 46** Apple PowerPC Macintosh running GNU/Linux
96 preferred.
97 47
98Fujitsu DS/90 (sparc-fujitsu-sysv4) 48** HP 9000 series 700 or 800 (Spectrum) (hppa1.0-hp-hpux or hppa1.1-hp-hpux)
99
100 Changes merged in 20.3.
101
102HP 9000 series 700 or 800 (Spectrum) (hppa1.0-hp-hpux or hppa1.1-hp-hpux
103 or ...hpux9shr)
104
105 Use hppa1.1 for the 700 series and hppa1.0 for the 800
106 series machines. (Emacs may not actually care which one you use.)
107 49
108 Emacs 20 may work on HPUX 10. You need patch PHSS_6202 to install 50 Emacs 20 may work on HPUX 10. You need patch PHSS_6202 to install
109 the Xaw and Xmu libraries. On HPUX 10.20 you may need to compile with GCC; 51 the Xaw and Xmu libraries. On HPUX 10.20 you may need to compile with GCC;
110 when Emacs was compiled with HP's C compiler, HP92453-01 A.10.32.03, 52 when Emacs was compiled with HP's C compiler, HP92453-01 A.10.32.03,
111 the subprocess features failed to work. 53 the subprocess features failed to work.
112 54
113 19.26 is believed to work on HPUX 9 provided you compile with GCC. 55 If you turn on the DSUSP character (delayed suspend), Emacs 19.26
114 As of version 19.16, Emacs was reported to build (using GCC) and run 56 does not know how to turn it off on HPUX. You need to turn it off manually.
115 on HP 9000/700 series machines running HP/UX versions 8.07 and 9.01.
116 The HP compiler is known to fail on some versions if you use +O3,
117 but it may work with lower optimization levels.
118
119 Use hppa1.1-hp-hpux9shr to use shared libraries on HPUX version 9.
120 You may need to create the X libraries libXaw.a and libXmu.a from
121 the MIT X distribute, and you may need to edit src/Makefile's
122 definition of LIBXT to look like this:
123
124 LIBXT= $(LIBW) -lXmu -lXt $(LIBXTR6) -lXext
125
126 Some people report trouble using the GNU memory allocator under
127 HP/UX version 9. The problems often manifest as lots of ^@'s in the
128 buffer.
129
130 We are told that these problems go away if you obtain the latest
131 patches for the HP/UX C compiler. James J Dempsey
132 <jjd@spserv.bbn.com> says that this set of versions works for him:
133 /bin/cc:
134 HP92453-01 A.09.28 HP C Compiler
135 /lib/ccom:
136 HP92453-01 A.09.28 HP C Compiler
137 HP-UX SLLIC/OPTIMIZER HP-UX.09.00.23 02/18/93
138 Ucode Code Generator - HP-UX.09.00.23.5 (patch) 2/18/93
139
140 For 700 series machines, the HP-UX patch needed is known as
141 PHSS_2653. (Perhaps for 800 series machines as well; we don't
142 know.) If you are on the Internet, you should be able to obtain
143 this patch by using telnet to access the machine
144 support.mayfield.hp.com and logging in as "hpslreg" and following
145 the instructions there. Or you may be able to use this
146 web site:
147
148 HP Patch Server: http://support.mayfield.hp.com/patches/html/patches.html
149 HP Support Line: http://support.mayfield.hp.com
150
151 Please do not ask FSF for further support on this. If you have any
152 trouble obtaining the patch, contact HP Software Support.
153
154 If your buffer fills up with nulls (^@) at some point, it could well
155 be that problem. That problem does not happen when people use GCC
156 to compile Emacs. On the other hand, the HP compiler version 9.34
157 was reported to work for the 19.26 pretest. 9.65 was also reported to work.
158
159 If you turn on the DSUSP character (delayed suspend),
160 Emacs 19.26 does not know how to turn it off on HPUX.
161 You need to turn it off manually.
162 57
163 If you are running HP/UX release 8.0 or later, you need the optional 58 If you are running HP/UX release 8.0 or later, you need the optional
164 "C/ANSI C" software in order to build Emacs (older releases of HP/UX 59 "C/ANSI C" software in order to build Emacs (older releases of HP/UX
165 do not require any special software). If the file "/etc/filesets/C" 60 do not require any special software). If the file "/etc/filesets/C"
166 exists on your machine, you have this software, otherwise you do not. 61 exists on your machine, you have this software, otherwise you do not.
167 62
168IBM RS/6000 (rs6000-ibm-aix*) 63** IBM RS/6000 (rs6000-ibm-aix*)
169 64
170 Emacs 19.26 is believed to work; its pretest was tested. 65 Emacs 19.26 is believed to work; its pretest was tested.
171 66
@@ -180,31 +75,22 @@ IBM RS/6000 (rs6000-ibm-aix*)
180 persons say that the tty VMIN and VTIME settings have been 75 persons say that the tty VMIN and VTIME settings have been
181 corrupted; if you have a fix, please send it to us. 76 corrupted; if you have a fix, please send it to us.
182 77
183 Compiling with -O using the IBM compiler has been known 78 Compiling with -O using the IBM compiler has been known to make
184 to make Emacs work incorrectly. It's reported that on 79 Emacs work incorrectly. There are reports that IBM compiler versions
185 AIX 3.2.5 with an IBM compiler earlier than 1.03.00.14, 80 earlier than 1.03.00.02 fail even without -O.
186 cc -O fails for some files. You need to install any
187 PTF containing APAR #IX42810 to bring the compiler to
188 the 1.03.00.14 level to allow optimized compiles.
189
190 There are reports that IBM compiler versions earlier than 1.03.00.02
191 fail even without -O. However, another report said that compiler
192 version 1.02.01.00 did work, on AIX 3.2.4, with Emacs 19.31.
193 81
194 As of 19.11, if you strip the Emacs executable, it ceases to work. 82 As of 19.11, if you strip the Emacs executable, it ceases to work.
195 83
196 If anyone can fix the above problems, or confirm that they don't happen 84 If anyone can fix the above problems, or confirm that they don't happen
197 with certain versions of various programs, we would appreciate it. 85 with certain versions of various programs, we would appreciate it.
198 86
199IBM System/390 running GNU/Linux (s390-*-linux-gnu) 87** IBM System/390 running GNU/Linux (s390-*-linux-gnu)
200 88
201 As of Emacs 21.2, a 31-bit only version is supported on this system. 89 As of Emacs 21.2, a 31-bit only version is supported on this system.
202 90
203Intel 386 (i386-*-freebsd, i386-*-linux-gnu, 91** Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
204 i386-*-sol2.4, i386-intsys-sysv, 92 i386-*-cygwin, i386-*-msdos, i386-*-windowsnt.
205 i386-*-sysv4, i386-*-sysv4.2, i386-*-cygwin, 93 i386 can be replaced with i486, i586, or i686)
206 i386-*-msdos, i386-*-windowsnt.
207 i386... can be replaced with i486... or i586...)
208 94
209 In the above configurations, * means that the manufacturer's name 95 In the above configurations, * means that the manufacturer's name
210 you specify does not matter, and you can use any name you like 96 you specify does not matter, and you can use any name you like
@@ -213,12 +99,9 @@ Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
213 Use i386-*-linux-gnu for GNU/Linux systems; Emacs runs as of version 19.26. 99 Use i386-*-linux-gnu for GNU/Linux systems; Emacs runs as of version 19.26.
214 Use i386-*-cygwin for Cygwin; Emacs builds as of version 22.1, in both X11 100 Use i386-*-cygwin for Cygwin; Emacs builds as of version 22.1, in both X11
215 and non-X11 modes. (The Cygwin site has source and binaries for 21.2.) 101 and non-X11 modes. (The Cygwin site has source and binaries for 21.2.)
216 Use i386-intsys-sysv for Integrated Solutions 386 machines.
217 It may also be correct for Microport systems.
218 102
219 On GNU/Linux systems, Emacs 19.23 was said to work properly with libc 103 On GNU/Linux systems, Emacs 19.23 was said to work properly with libc
220 version 4.5.21, but not with 4.5.19. If your system uses QMAGIC 104 version 4.5.21, but not with 4.5.19.
221 for the executable format, you must edit config.h to define LINUX_QMAGIC.
222 105
223 On GNU/Linux, configure may fail to put these definitions in config.h: 106 On GNU/Linux, configure may fail to put these definitions in config.h:
224 107
@@ -231,16 +114,6 @@ Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
231 It is possible that this problem happens only with X11R6. 114 It is possible that this problem happens only with X11R6.
232 Newer system versions have fixed it. 115 Newer system versions have fixed it.
233 116
234 The 19.26 pretest was reported to work on SVR4.3 and on Freebsd.
235
236 19.29 is reported to crash when using Motif on Solaris 2.5.
237 The reasons are not yet known.
238
239 For System V release 4, use i386-*-sysv4.
240 For System V release 4.2, use i386-*-sysv4.2.
241
242 If you are using SCO Unix, see notes at end under SCO.
243
244 On NetBSD and FreeBSD, at one time, it was necessary to use 117 On NetBSD and FreeBSD, at one time, it was necessary to use
245 GNU make, not the system's make. Assuming it's installed as gmake, 118 GNU make, not the system's make. Assuming it's installed as gmake,
246 do `gmake install MAKE=gmake'. However, more recently it is 119 do `gmake install MAKE=gmake'. However, more recently it is
@@ -253,16 +126,6 @@ Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
253 but no coherent explanation of why that might be so. If it is so, 126 but no coherent explanation of why that might be so. If it is so,
254 in current versions of Linux, something else should probably be changed. 127 in current versions of Linux, something else should probably be changed.
255 128
256 Some versions have sys/sioctl.h, and require it in sysdep.c.
257 But some versions do not have sys/sioctl.h.
258 For a given version of the system, this may depend on whether you have
259 X Windows or TCP/IP. Define or undefine NO_SIOCTL_H in config.h
260 according to whether you have the file.
261
262 Likewise, some versions have been known to need sys/ttold.h, sys/stream.h,
263 and sys/ptem.h included in sysdep.c. If your system has these files,
264 try defining NEED_PTEM_H in config.h if you have trouble without it.
265
266 You may find that adding -I/usr/X/include or -I/usr/netinclude or both 129 You may find that adding -I/usr/X/include or -I/usr/netinclude or both
267 to CFLAGS avoids compilation errors on certain systems. 130 to CFLAGS avoids compilation errors on certain systems.
268 131
@@ -270,14 +133,13 @@ Intel 386 (i386-*-freebsd, i386-*-linux-gnu,
270 but define `struct tc' instead; add `#define tchars tc' 133 but define `struct tc' instead; add `#define tchars tc'
271 to config.h to solve this problem. 134 to config.h to solve this problem.
272 135
273Iris 4D (mips-sgi-irix6.*) 136** Iris 4D (mips-sgi-irix6.*)
274 137
275 Emacs 21.3 is reported to work on IRIX 6.5.x. 138 Emacs 21.3 is reported to work on IRIX 6.5.x.
276 139
277 You can build a 64-bit executable (with larger maximum buffer size) 140 You can build a 64-bit executable (with larger maximum buffer size)
278 on Irix 6.5 by specifying the 64-bit ABI using the `-64' compiler 141 on Irix 6.5 by specifying the 64-bit ABI using the `-64' compiler
279 flag or otherwise (see cc(1)). This may work on earlier Irix 6 142 flag or otherwise (see cc(1)).
280 systems if you edit src/s/irix6-0.h following irix6-5.h.
281 143
282 If compiling with GCC on Irix 6 yields an error "conflicting types 144 If compiling with GCC on Irix 6 yields an error "conflicting types
283 for `initstate'", install GCC 2.95 or a newer version, and this 145 for `initstate'", install GCC 2.95 or a newer version, and this
@@ -286,36 +148,7 @@ Iris 4D (mips-sgi-irix6.*)
286 could also try reinstalling the same version of GCC, and telling us 148 could also try reinstalling the same version of GCC, and telling us
287 whether that fixes the problem. 149 whether that fixes the problem.
288 150
289NCR Intel system (i386-ncr-sysv4.2) 151** Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*,
290
291 This system works in 19.31, but if you don't link it with GNU ld,
292 you may need to set LD_RUN_PATH at link time to specify where
293 to find the X libraries.
294
295Prime EXL (i386-prime-sysv)
296
297 Minor changes merged in 19.1.
298
299Siemens Nixdorf RM600 and RM400 (mips-siemens-sysv4)
300
301 Changes merged in 19.29. The version configured with
302 `--with-x' works without any modifications, but `--with-x-toolkit'
303 works only if the Athena library and the Toolkit library are linked
304 statically. For this, edit `src/Makefile' after the `configure' run
305 and modify the lines with `-lXaw' and `-lXt' as follows:
306
307 LIBW= /usr/lib/libXaw.a
308 LIBXT= $(LIBW) -lXmu /usr/lib/libXt.a $(LIBXTR6) -lXext
309
310 In addition, `--with-x-toolkit=motif' works only
311 if the Motif library and the Toolkit library are linked statically.
312 To do this, edit `src/Makefile' after the `configure' run
313 and modify the lines with `-lXm' and `-lXt' as follows:
314
315 LIBW= /usr/lib/libXm.a /usr/ccs/lib/libgen.a
316 LIBXT= $(LIBW) -lXmu /usr/lib/libXt.a $(LIBXTR6) -lXext
317
318Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*,
319 i386-sun-solaris2.*, sparc*-*-linux-gnu) 152 i386-sun-solaris2.*, sparc*-*-linux-gnu)
320 153
321 To build a 32-bit Emacs (i.e. if you are having any sort of problem 154 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.*,
363 As of release 2.95, GCC doesn't work properly with the 64-bit ABI 196 As of release 2.95, GCC doesn't work properly with the 64-bit ABI
364 (applicable on UltraSPARC), but that isn't the default mode. 197 (applicable on UltraSPARC), but that isn't the default mode.
365 198
366 Emacs 20.3 fails to build on Solaris 2.5 if you use GCC 2.7.2.3.
367 Installing GCC 2.8 fixes the problem.
368
369 19.32 works on Solaris 2.4 and 2.5. On Solaris 2.5
370 you may need one of these patches to prevent Emacs from crashing
371 when it starts up:
372 103093-03: [README] SunOS 5.5: kernel patch (2140557 bytes)
373 102832-01: [README] OpenWindows 3.5: Xview Jumbo Patch (4181613 bytes)
374 103242-04: [README] SunOS 5.5: linker patch (595363 bytes)
375
376 There are reports that using SunSoft cc with -xO4 -xdepend produces 199 There are reports that using SunSoft cc with -xO4 -xdepend produces
377 bad code for some part of Emacs. 200 bad code for some part of Emacs.
378 201
@@ -384,11 +207,6 @@ Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*,
384 for transferring text between clients. The Cut, Paste and Copy items 207 for transferring text between clients. The Cut, Paste and Copy items
385 in the menu bar Edit menu work with the clipboard. 208 in the menu bar Edit menu work with the clipboard.
386 209
387 A user reported irreproducible segmentation faults when using 19.29
388 on Solaris 2.3 and 2.4 after compiling it with the Sun compiler.
389 The problem went away when GCC 2.7.0 was used instead. We do not know
390 whether anything in Emacs is partly to blame for this.
391
392 If you compile with Sun's ANSI compiler acc, you need additional options 210 If you compile with Sun's ANSI compiler acc, you need additional options
393 when linking temacs, such as 211 when linking temacs, such as
394 /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1 212 /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.*,
410 228
411 If you have trouble using open-network-stream, get the distribution 229 If you have trouble using open-network-stream, get the distribution
412 of `bind' (the BSD name-server), build libresolv.a, and link Emacs 230 of `bind' (the BSD name-server), build libresolv.a, and link Emacs
413 with -lresolv, by copying the #definition of LIBS_SYSTEM in 231 with -lresolv, by editing LIBRESOLV in src/Makefile. This problem is
414 src/s/sunos4-1.h to src/config.h. This problem is due to obsolete 232 due to obsolete software in the nonshared standard library.
415 software in the nonshared standard library.
416 233
417 Note that Emacs on a Sun is not really as big as it looks. 234 Note that Emacs on a Sun is not really as big as it looks. As
418 As dumped, it includes around 200k of zeros between the 235 dumped, it includes around 200k of zeros between the original text
419 original text section and the original data section 236 section and the original data section (now remapped as part of the
420 (now remapped as part of the text). These are never 237 text). These are never swapped in.
421 swapped in.
422 238
423SuperH (sh[34]*-*-linux-gnu) 239** SuperH (sh[34]*-*-linux-gnu)
424 240
425 Emacs 23.0.60 was reported to work on GNU/Linux (October 2008). 241 Emacs 23.0.60 was reported to work on GNU/Linux (October 2008).
426 Tested on a little-endian sh4 system (cpu type SH7751R) running 242 Tested on a little-endian sh4 system (cpu type SH7751R) running
427 Gentoo Linux 2008.0. 243 Gentoo Linux 2008.0.
428 244
429Tadpole 68K (m68k-tadpole-sysv) 245* Here are notes about some of the systems supported:
430
431 Changes merged in 19.1.
432
433 You may need to edit Makefile to change the variables LIBDIR and
434 BINDIR from /usr/local to /usr/contrib.
435
436 To give movemail access to /usr/mail, you may need to execute
437
438 chmod 2755 etc/movemail; chgrp mail etc/movemail
439 246
440Vaxen running Berkeley Unix (vax-dec-bsd4.1, vax-dec-bsd4.2, vax-dec-bsd4.3) 247** Linux (actually GNU/Linux)
441
442 Works.
443
444Here are notes about some of the systems supported:
445
446Linux (actually GNU/Linux)
447 248
448 Most of the complete systems which use the Linux kernel are close 249 Most of the complete systems which use the Linux kernel are close
449 enough to the GNU system to be considered variant GNU systems. We 250 enough to the GNU system to be considered variant GNU systems. We
@@ -462,54 +263,22 @@ Linux (actually GNU/Linux)
462 people to write more free software. See the file LINUX-GNU in this 263 people to write more free software. See the file LINUX-GNU in this
463 directory for more explanation. 264 directory for more explanation.
464 265
465Microport 266** Mac OS X
466
467 See under "Intel 386".
468
469MSDOS
470
471 For installation on MSDOS, see the file INSTALL (search for `MSDOG',
472 near the end of the file). See the "MS-DOS" chapter of the manual
473 for information about using Emacs on MSDOS.
474 267
475System V rel 4.0.3 and 4.0.4 (usg5.4) 268 For installation instructions see the file nextstep/INSTALL.
476
477 Supported, including shared libraries for ELF, but ptys do not work
478 because TIOCGPGRP fails to work on ptys (but Dell 2.2 seems to have
479 fixed this). This failure is probably due to a misunderstanding of
480 the consequences of the POSIX spec: many system designers mistakenly
481 think that POSIX requires this feature to fail. This is untrue;
482 ptys are an extension, and POSIX says that extensions *when used*
483 may change the action of standard facilities in any fashion.
484
485 If you get compilation errors about wrong number of
486 arguments to getpgrp, define GETPGRP_NO_ARG.
487
488 Some versions 3 and earlier of V.4, on the Intel 386 and 860, had
489 problems in the X11 libraries. These prevent Emacs from working
490 with X. You can use Emacs with X provided your copy of X is based
491 on X11 release 4 or newer, or is Dell's 2.2 (which is a 4.0.3).
492 Unfortunately, the only way you can tell whether your X11 library is
493 new enough is to try compiling Emacs to use X. If emacs runs, your
494 X11 library is new enough.
495 269
496 In this context, GSV4 and GSV4i are alternate names for X11R4. 270** MSDOS
497 OL2.* is X11R3 based. OL3 is in between X11R3 and X11R4, and may or
498 may not work, depending on who made the Unix system. If the library
499 libXol is part of the X distribution, then you have X11R3 and Emacs
500 won't work with X.
501 271
502 Most versions of V.4 support sockets. If `/usr/lib/libsocket.so' 272 For installation on MSDOS, see the file msdos/INSTALL.
503 exists, your system supports them. If yours does not, you must add 273 See the "MS-DOS" chapter of the manual for information about using
504 #undef HAVE_SOCKETS in config.h, after the inclusion of s-usg5-4.h. 274 Emacs on MSDOS.
505 (Any system that supports Internet should implement sockets.)
506 275
507Windows NT/95/98/ME/2000 276** MS-Windows NT/95/98/ME/2000
508 277
509 For installation on all versions of the MS-Windows platform, see the 278 For installation on all versions of the MS-Windows platform, see the
510 file nt/INSTALL. 279 file nt/INSTALL.
511 280
512X86_64 GNU/Linux 281** X86_64 GNU/Linux
513 282
514 No special procedures should be needed to build a 64-bit Emacs. To 283 No special procedures should be needed to build a 64-bit Emacs. To
515 build a 32-bit Emacs, first ensure that the necessary 32-bit system 284 build a 32-bit Emacs, first ensure that the necessary 32-bit system
@@ -520,6 +289,9 @@ X86_64 GNU/Linux
520 289
521 (using the location of the 32-bit X libraries on your system). 290 (using the location of the 32-bit X libraries on your system).
522 291
292
293* Obsolete platforms
294
523Support for the following obsolete platforms was removed in Emacs 23.1 295Support for the following obsolete platforms was removed in Emacs 23.1
524(the names in parentheses state the files in src/ that were removed): 296(the names in parentheses state the files in src/ that were removed):
525 297
@@ -612,7 +384,7 @@ Support for the following obsolete platforms was removed in Emacs 23.1
612 384
613 385
614Local variables: 386Local variables:
615mode: text 387mode: outline
616fill-prefix: " " 388fill-prefix: " "
617End: 389End:
618 390
diff --git a/etc/NEWS b/etc/NEWS
index c5871ebd98a..eece35bb6f0 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -109,16 +109,20 @@ scroll a line instead of full screen.
109** New property `scroll-command' should be set on a command's symbol to 109** New property `scroll-command' should be set on a command's symbol to
110define it as a scroll command affected by `scroll-preserve-screen-position. 110define it as a scroll command affected by `scroll-preserve-screen-position.
111 111
112** Trash changes
113
114*** `delete-by-moving-to-trash' now only affects commands that specify
115trashing. This avoids inadvertently trashing temporary files.
116
117*** Calling `delete-file' or `delete-directory' with a prefix argument
118now forces true deletion, regardless of `delete-by-moving-to-trash'.
119
112 120
113* Editing Changes in Emacs 24.1 121* Editing Changes in Emacs 24.1
114 122
115** completion-at-point is now an alias for complete-symbol. 123** completion-at-point is now an alias for complete-symbol.
116 124
117** mouse-region-delete-keys has been deleted. 125** mouse-region-delete-keys has been deleted.
118
119** If delete-file is called with a prefix argument, it really deletes,
120regardless of the value of `delete-by-moving-to-trash'.
121
122 126
123* Changes in Specialized Modes and Packages in Emacs 24.1 127* Changes in Specialized Modes and Packages in Emacs 24.1
124 128
@@ -237,8 +241,10 @@ secrets.
237** prog-mode is a new major-mode meant to be the parent of programming mode. 241** prog-mode is a new major-mode meant to be the parent of programming mode.
238** define-minor-mode accepts a new keyword :variable. 242** define-minor-mode accepts a new keyword :variable.
239 243
240** delete-file now accepts an optional second arg, FORCE, which says 244** `delete-file' and `delete-directory now accept optional arg TRASH.
241to always delete and ignore the value of delete-by-moving-to-trash. 245Trashing is performed if TRASH and `delete-by-moving-to-trash' are
246both non-nil. Interactively, TRASH defaults to t, unless a prefix
247argument is supplied (see Trash changes, above).
242 248
243** buffer-substring-filters is obsoleted by filter-buffer-substring-functions. 249** buffer-substring-filters is obsoleted by filter-buffer-substring-functions.
244 250
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 4d48b66f47a..8c6a37dbd45 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -87,8 +87,7 @@ it's loaded very early in the startup procedure.)
87Similarly, any other .el file for which there's no corresponding .elc 87Similarly, any other .el file for which there's no corresponding .elc
88file could fail to load if it is compressed. 88file could fail to load if it is compressed.
89 89
90The solution is to uncompress all .el files which don't have a .elc 90The solution is to uncompress all .el files that don't have a .elc file.
91file.
92 91
93Another possible reason for such failures is stale *.elc files 92Another possible reason for such failures is stale *.elc files
94lurking somewhere on your load-path -- see the next section. 93lurking somewhere on your load-path -- see the next section.
@@ -268,8 +267,7 @@ than the corresponding .el file.
268 267
269These control the actions of Emacs. 268These control the actions of Emacs.
270~/.emacs is your Emacs init file. 269~/.emacs is your Emacs init file.
271EMACSLOADPATH overrides which directories the function 270EMACSLOADPATH overrides which directories the function "load" will search.
272"load" will search.
273 271
274If you observe strange problems, check for these and get rid 272If you observe strange problems, check for these and get rid
275of them, then try again. 273of them, then try again.
@@ -415,8 +413,7 @@ For example, (system-name) returns some variation on
415 413
416You need to configure your machine with a fully qualified domain name, 414You need to configure your machine with a fully qualified domain name,
417(i.e. a name with at least one ".") either in /etc/hosts, 415(i.e. a name with at least one ".") either in /etc/hosts,
418/etc/hostname, the NIS, or wherever your system calls for specifying 416/etc/hostname, the NIS, or wherever your system calls for specifying this.
419this.
420 417
421If you cannot fix the configuration, you can set the Lisp variable 418If you cannot fix the configuration, you can set the Lisp variable
422mail-host-address to the value you want. 419mail-host-address to the value you want.
@@ -525,8 +522,7 @@ terminal type.
525 522
526The cause of this is a shell startup file that sets the TERMCAP 523The cause of this is a shell startup file that sets the TERMCAP
527environment variable. The terminal emulator uses that variable to 524environment variable. The terminal emulator uses that variable to
528provide the information on the special terminal type that Emacs 525provide the information on the special terminal type that Emacs emulates.
529emulates.
530 526
531Rewrite your shell startup file so that it does not change TERMCAP 527Rewrite your shell startup file so that it does not change TERMCAP
532in such a case. You could use the following conditional which sets 528in 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
825to nil in your `.emacs'. 821to nil in your `.emacs'.
826 822
827To see what is the value of UNDERLINE_POSITION defined by the font, 823To see what is the value of UNDERLINE_POSITION defined by the font,
828type `xlsfonts -lll FONT' and look at the font's UNDERLINE_POSITION 824type `xlsfonts -lll FONT' and look at the font's UNDERLINE_POSITION property.
829property.
830 825
831** When using Exceed, fonts sometimes appear too tall. 826** When using Exceed, fonts sometimes appear too tall.
832 827
@@ -910,8 +905,7 @@ To see what glyphs are included in a font, use `xfd', like this:
910 905
911 xfd -fn -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-1 906 xfd -fn -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-1
912 907
913If this shows only ASCII glyphs, the font is indeed the source of the 908If this shows only ASCII glyphs, the font is indeed the source of the problem.
914problem.
915 909
916The solution is to remove the corresponding lines from the appropriate 910The solution is to remove the corresponding lines from the appropriate
917`fonts.alias' file, then run `mkfontdir' in that directory, and then run 911`fonts.alias' file, then run `mkfontdir' in that directory, and then run
@@ -1017,8 +1011,7 @@ have made the key binding correctly.
1017 1011
1018If C-h c reports an event that doesn't have the Alt modifier, it may 1012If C-h c reports an event that doesn't have the Alt modifier, it may
1019be because your X server has no key for the Alt modifier. The X 1013be because your X server has no key for the Alt modifier. The X
1020server that comes from MIT does not set up the Alt modifier by 1014server that comes from MIT does not set up the Alt modifier by default.
1021default.
1022 1015
1023If your keyboard has keys named Alt, you can enable them as follows: 1016If your keyboard has keys named Alt, you can enable them as follows:
1024 1017
@@ -1160,8 +1153,7 @@ menu placement.
1160 1153
1161On some systems, even with Motif 1.2 emulation, Emacs occasionally 1154On some systems, even with Motif 1.2 emulation, Emacs occasionally
1162locks up, grabbing all mouse and keyboard events. We still don't know 1155locks up, grabbing all mouse and keyboard events. We still don't know
1163what causes these problems; they are not reproducible by Emacs 1156what causes these problems; they are not reproducible by Emacs developers.
1164developers.
1165 1157
1166*** Motif: The Motif version of Emacs paints the screen a solid color. 1158*** Motif: The Motif version of Emacs paints the screen a solid color.
1167 1159
@@ -1490,8 +1482,7 @@ In this case, there is no obvious bug in Emacs, and most likely you
1490need more padding, or possibly the terminal manual is wrong. 1482need more padding, or possibly the terminal manual is wrong.
1491 1483
14922) The characters sent are incorrect, due to an obscure aspect 14842) The characters sent are incorrect, due to an obscure aspect
1493 of the terminal behavior not described in an obvious way 1485 of the terminal behavior not described in an obvious way by termcap.
1494 by termcap.
1495 1486
1496This case is hard. It will be necessary to think of a way for 1487This case is hard. It will be necessary to think of a way for
1497Emacs to distinguish between terminals with this kind of behavior 1488Emacs 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.
1517Some versions of rlogin (and possibly telnet) do not pass flow 1508Some versions of rlogin (and possibly telnet) do not pass flow
1518control characters to the remote system to which they connect. 1509control characters to the remote system to which they connect.
1519On such systems, emacs on the remote system cannot disable flow 1510On such systems, emacs on the remote system cannot disable flow
1520control on the local system. Sometimes `rlogin -8' will avoid this 1511control on the local system. Sometimes `rlogin -8' will avoid this problem.
1521problem.
1522 1512
1523One way to cure this is to disable flow control on the local host 1513One way to cure this is to disable flow control on the local host
1524(the one running rlogin, not the one running rlogind) using the 1514(the one running rlogin, not the one running rlogind) using the
@@ -1537,8 +1527,7 @@ following to your .emacs (on the host running rlogind):
1537 1527
1538(enable-flow-control-on "vt200" "vt300" "vt101" "vt131") 1528(enable-flow-control-on "vt200" "vt300" "vt101" "vt131")
1539 1529
1540See the entry about spontaneous display of I-search (above) for more 1530See the entry about spontaneous display of I-search (above) for more info.
1541info.
1542 1531
1543** Output from Control-V is slow. 1532** Output from Control-V is slow.
1544 1533
@@ -1936,8 +1925,8 @@ Definitions" to make them defined.
1936 1925
1937** Solaris 1926** Solaris
1938 1927
1939We list bugs in current versions here. Solaris 2.x and 4.x are covered in the 1928We list bugs in current versions here. See also the section on legacy
1940section on legacy systems. 1929systems.
1941 1930
1942*** On Solaris, C-x doesn't get through to Emacs when you use the console. 1931*** On Solaris, C-x doesn't get through to Emacs when you use the console.
1943 1932
@@ -1951,7 +1940,7 @@ may not work if you have used the unshared system libraries. This
1951is because the unshared libraries fail to use YP for host name lookup. 1940is because the unshared libraries fail to use YP for host name lookup.
1952As a result, the host name you specify may not be recognized. 1941As a result, the host name you specify may not be recognized.
1953 1942
1954*** Solaris 2,6: Emacs crashes with SIGBUS or SIGSEGV on Solaris after you delete a frame. 1943*** Solaris 2.6: Emacs crashes with SIGBUS or SIGSEGV on Solaris after you delete a frame.
1955 1944
1956We suspect that this is a bug in the X libraries provided by 1945We suspect that this is a bug in the X libraries provided by
1957Sun. There is a report that one of these patches fixes the bug and 1946Sun. There is a report that one of these patches fixes the bug and
@@ -2267,8 +2256,7 @@ selection".
2267 2256
2268Of this does not work, please inform bug-gnu-emacs@gnu.org. Then 2257Of this does not work, please inform bug-gnu-emacs@gnu.org. Then
2269please call support for your X-server and see if you can get a fix. 2258please call support for your X-server and see if you can get a fix.
2270If you do, please send it to bug-gnu-emacs@gnu.org so we can list it 2259If you do, please send it to bug-gnu-emacs@gnu.org so we can list it here.
2271here.
2272 2260
2273* Build-time problems 2261* Build-time problems
2274 2262
@@ -2499,7 +2487,7 @@ The fix is to install a newer version of ncurses, such as version 4.2.
2499** Bootstrapping 2487** Bootstrapping
2500 2488
2501Bootstrapping (compiling the .el files) is normally only necessary 2489Bootstrapping (compiling the .el files) is normally only necessary
2502with CVS builds, since the .elc files are pre-compiled in releases. 2490with development builds, since the .elc files are pre-compiled in releases.
2503 2491
2504*** "No rule to make target" with Ubuntu 8.04 make 3.81-3build1 2492*** "No rule to make target" with Ubuntu 8.04 make 3.81-3build1
2505 2493
@@ -2611,32 +2599,28 @@ nonprinting characters, you can fix them:
2611 2599
2612*** temacs prints "Pure Lisp storage exhausted". 2600*** temacs prints "Pure Lisp storage exhausted".
2613 2601
2614This means that the Lisp code loaded from the .elc and .el 2602This means that the Lisp code loaded from the .elc and .el files
2615files during temacs -l loadup inc dump took up more 2603during temacs -l loadup inc dump took up more space than was allocated.
2616space than was allocated.
2617 2604
2618This could be caused by 2605This could be caused by
2619 1) adding code to the preloaded Lisp files 2606 1) adding code to the preloaded Lisp files
2620 2) adding more preloaded files in loadup.el 2607 2) adding more preloaded files in loadup.el
2621 3) having a site-init.el or site-load.el which loads files. 2608 3) having a site-init.el or site-load.el which loads files.
2622 Note that ANY site-init.el or site-load.el is nonstandard; 2609 Note that ANY site-init.el or site-load.el is nonstandard;
2623 if you have received Emacs from some other site 2610 if you have received Emacs from some other site and it contains a
2624 and it contains a site-init.el or site-load.el file, consider 2611 site-init.el or site-load.el file, consider deleting that file.
2625 deleting that file.
2626 4) getting the wrong .el or .elc files 2612 4) getting the wrong .el or .elc files
2627 (not from the directory you expected). 2613 (not from the directory you expected).
2628 5) deleting some .elc files that are supposed to exist. 2614 5) deleting some .elc files that are supposed to exist.
2629 This would cause the source files (.el files) to be 2615 This would cause the source files (.el files) to be
2630 loaded instead. They take up more room, so you lose. 2616 loaded instead. They take up more room, so you lose.
2631 6) a bug in the Emacs distribution which underestimates 2617 6) a bug in the Emacs distribution which underestimates the space required.
2632 the space required.
2633 2618
2634If the need for more space is legitimate, change the definition 2619If the need for more space is legitimate, change the definition
2635of PURESIZE in puresize.h. 2620of PURESIZE in puresize.h.
2636 2621
2637But in some of the cases listed above, this problem is a consequence 2622But in some of the cases listed above, this problem is a consequence
2638of something else that is wrong. Be sure to check and fix the real 2623of something else that is wrong. Be sure to check and fix the real problem.
2639problem.
2640 2624
2641*** Linux: Emacs crashes when dumping itself on Mac PPC running Yellow Dog GNU/Linux. 2625*** Linux: Emacs crashes when dumping itself on Mac PPC running Yellow Dog GNU/Linux.
2642 2626
@@ -2765,16 +2749,7 @@ This section covers bugs reported on very old hardware or software.
2765If you are using hardware and an operating system shipped after 2000, 2749If you are using hardware and an operating system shipped after 2000,
2766it is unlikely you will see any of these. 2750it is unlikely you will see any of these.
2767 2751
2768*** Sunos 5.3: Subprocesses remain, hanging but not zombies. 2752*** OPENSTEP 4.2: Compiling syntax.c with gcc 2.7.2.1 fails.
2769
2770A bug in Sunos 5.3 causes Emacs subprocesses to remain after Emacs
2771exits. Sun patch # 101415-02 is part of the fix for this, but it only
2772applies to ptys, and doesn't fix the problem with subprocesses
2773communicating through pipes.
2774
2775*** OPENSTEP
2776
2777**** OPENSTEP 4.2: Compiling syntax.c with gcc 2.7.2.1 fails.
2778 2753
2779The compiler was reported to crash while compiling syntax.c with the 2754The compiler was reported to crash while compiling syntax.c with the
2780following message: 2755following message:
@@ -2857,15 +2832,10 @@ lists the supported locales; any locale other than "C" or "POSIX"
2857should do. 2832should do.
2858 2833
2859pen@lysator.liu.se says (Feb 1998) that the Compose key does work 2834pen@lysator.liu.se says (Feb 1998) that the Compose key does work
2860if you link with the MIT X11 libraries instead of the Solaris X11 2835if you link with the MIT X11 libraries instead of the Solaris X11 libraries.
2861libraries.
2862
2863*** HP/UX versions before 11.0
2864
2865HP/UX 10 was end-of-lifed in May 1999.
2866 2836
2867*** HP/UX 10: Large file support is disabled. 2837*** HP/UX 10: Large file support is disabled.
2868 2838(HP/UX 10 was end-of-lifed in May 1999.)
2869See the comments in src/s/hpux10-20.h. 2839See the comments in src/s/hpux10-20.h.
2870 2840
2871*** HP/UX: Emacs is slow using X11R5. 2841*** HP/UX: Emacs is slow using X11R5.
@@ -2877,47 +2847,7 @@ libXmu.a, libXext.a and others. HP/UX normally doesn't come with
2877those libraries installed. To get good performance, you need to 2847those libraries installed. To get good performance, you need to
2878install them and rebuild Emacs. 2848install them and rebuild Emacs.
2879 2849
2880*** Digital Unix 4.0: Garbled display on non-X terminals when Emacs runs. 2850*** UnixWare 2.1: Error 12 (virtual memory exceeded) when dumping Emacs.
2881
2882So far it appears that running `tset' triggers this problem (when TERM
2883is vt100, at least). If you do not run `tset', then Emacs displays
2884properly. If someone can tell us precisely which effect of running
2885`tset' actually causes the problem, we may be able to implement a fix
2886in Emacs.
2887
2888*** SVr4
2889
2890**** SVr4: On some variants of SVR4, Emacs does not work at all with X.
2891
2892Try defining BROKEN_FIONREAD in your config.h file. If this solves
2893the problem, please send a bug report to tell us this is needed; be
2894sure to say exactly what type of machine and system you are using.
2895
2896**** SVr4: After running emacs once, subsequent invocations crash.
2897
2898Some versions of SVR4 have a serious bug in the implementation of the
2899mmap () system call in the kernel; this causes emacs to run correctly
2900the first time, and then crash when run a second time.
2901
2902Contact your vendor and ask for the mmap bug fix; in the mean time,
2903you may be able to work around the problem by adding a line to your
2904operating system description file (whose name is reported by the
2905configure script) that reads:
2906#define SYSTEM_MALLOC
2907This makes Emacs use memory less efficiently, but seems to work around
2908the kernel bug.
2909
2910*** SCO Unix and UnixWare
2911
2912**** SCO 4.2.0: Regular expressions matching bugs on SCO systems.
2913
2914On SCO, there are problems in regexp matching when Emacs is compiled
2915with the system compiler. The compiler version is "Microsoft C
2916version 6", SCO 4.2.0h Dev Sys Maintenance Supplement 01/06/93; Quick
2917C Compiler Version 1.00.46 (Beta). The solution is to compile with
2918GCC.
2919
2920**** UnixWare 2.1: Error 12 (virtual memory exceeded) when dumping Emacs.
2921 2851
2922Paul Abrahams (abrahams@acm.org) reports that with the installed 2852Paul Abrahams (abrahams@acm.org) reports that with the installed
2923virtual memory settings for UnixWare 2.1.2, an Error 12 occurs during 2853virtual 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:
2940(He recommends you not change the stack limit, though.) 2870(He recommends you not change the stack limit, though.)
2941These changes take effect when you reboot. 2871These changes take effect when you reboot.
2942 2872
2943** Windows 3.1, 95, 98, and ME 2873** MS-Windows 95, 98, ME, and NT
2944 2874
2945*** MS-Windows NT/95: Problems running Perl under Emacs 2875*** MS-Windows NT/95: Problems running Perl under Emacs
2946 2876
@@ -3022,8 +2952,7 @@ http://www.gnu.org/software/emacs/windows/.
3022When a program you are trying to run is not found on the PATH, 2952When a program you are trying to run is not found on the PATH,
3023Windows might respond by crashing or locking up your system. In 2953Windows might respond by crashing or locking up your system. In
3024particular, this has been reported when trying to compile a Java 2954particular, this has been reported when trying to compile a Java
3025program in JDEE when javac.exe is installed, but not on the system 2955program in JDEE when javac.exe is installed, but not on the system PATH.
3026PATH.
3027 2956
3028** MS-DOS 2957** MS-DOS
3029 2958
@@ -3088,7 +3017,7 @@ your system works as before.
3088*** MS-DOS: Emacs crashes at startup. 3017*** MS-DOS: Emacs crashes at startup.
3089 3018
3090Some users report that Emacs 19.29 requires dpmi memory management, 3019Some users report that Emacs 19.29 requires dpmi memory management,
3091and crashes on startup if the system does not have it. We don't yet 3020and crashes on startup if the system does not have it. We don't
3092know why this happens--perhaps these machines don't have enough real 3021know why this happens--perhaps these machines don't have enough real
3093memory, or perhaps something is wrong in Emacs or the compiler. 3022memory, or perhaps something is wrong in Emacs or the compiler.
3094However, arranging to use dpmi support is a workaround. 3023However, arranging to use dpmi support is a workaround.
@@ -3112,7 +3041,7 @@ This is an unfortunate side-effect of the support for Unix-style
3112device names such as /dev/null in the DJGPP runtime library. A 3041device names such as /dev/null in the DJGPP runtime library. A
3113work-around is to rename the problem directory to another name. 3042work-around is to rename the problem directory to another name.
3114 3043
3115*** MS-DOS+DJGPP: Problems on MS-DOG if DJGPP v2.0 is used to compile Emacs. 3044*** MS-DOS+DJGPP: Problems on MS-DOS if DJGPP v2.0 is used to compile Emacs.
3116 3045
3117There are two DJGPP library bugs which cause problems: 3046There are two DJGPP library bugs which cause problems:
3118 3047
@@ -3134,8 +3063,7 @@ the Lisp files it needs to load at startup. Redirect Emacs stdout
3134and stderr to a file to see the error message printed by Emacs. 3063and stderr to a file to see the error message printed by Emacs.
3135 3064
3136Another manifestation of this problem is that Emacs is unable to load 3065Another manifestation of this problem is that Emacs is unable to load
3137the support for editing program sources in languages such as C and 3066the support for editing program sources in languages such as C and Lisp.
3138Lisp.
3139 3067
3140This can happen if the Emacs distribution was unzipped without LFN 3068This can happen if the Emacs distribution was unzipped without LFN
3141support, thus causing long filenames to be truncated to the first 6 3069support, thus causing long filenames to be truncated to the first 6
@@ -3165,7 +3093,7 @@ shortcut keys entirely by adding this line to ~/.OWdefaults:
3165 3093
3166 OpenWindows.WindowMenuAccelerators: False 3094 OpenWindows.WindowMenuAccelerators: False
3167 3095
3168**** twm: A position you specified in .Xdefaults is ignored, using twm. 3096*** twm: A position you specified in .Xdefaults is ignored, using twm.
3169 3097
3170twm normally ignores "program-specified" positions. 3098twm normally ignores "program-specified" positions.
3171You can tell it to obey them with this command in your `.twmrc' file: 3099You 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
3188 3116
3189* Build problems on legacy systems 3117* Build problems on legacy systems
3190 3118
3191** BSD/386 1.0: --with-x-toolkit option configures wrong.
3192
3193This problem is due to bugs in the shell in version 1.0 of BSD/386.
3194The workaround is to edit the configure file to use some other shell,
3195such as bash.
3196
3197** Digital Unix 4.0: Emacs fails to build, giving error message
3198 Invalid dimension for the charset-ID 160
3199
3200This is due to a bug or an installation problem in GCC 2.8.0.
3201Installing a more recent version of GCC fixes the problem.
3202
3203** Digital Unix 4.0: Failure in unexec while dumping emacs.
3204
3205This problem manifests itself as an error message
3206
3207 unexec: Bad address, writing data section to ...
3208
3209The user suspects that this happened because his X libraries
3210were built for an older system version,
3211
3212 ./configure --x-includes=/usr/include --x-libraries=/usr/shlib
3213
3214made the problem go away.
3215
3216** SunOS: Emacs gets error message from linker on Sun. 3119** SunOS: Emacs gets error message from linker on Sun.
3217 3120
3218If the error message says that a symbol such as `f68881_used' or 3121If 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
3297This problem will only happen if USE_LISP_UNION_TYPE is manually 3200This problem will only happen if USE_LISP_UNION_TYPE is manually
3298defined in lisp.h. 3201defined in lisp.h.
3299 3202
3300*** C compilers lose on returning unions. 3203** C compilers lose on returning unions.
3301 3204
3302I hear that some C compilers cannot handle returning a union type. 3205I hear that some C compilers cannot handle returning a union type.
3303Most of the functions in GNU Emacs return type Lisp_Object, which is 3206Most of the functions in GNU Emacs return type Lisp_Object, which is
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 10cd04ec60d..bc80b4cafe0 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,80 @@
12010-05-27 Chong Yidong <cyd@stupidchicken.com>
2
3 * dired.el (dired-delete-file): New arg TRASH.
4 (dired-internal-do-deletions): New arg TRASH. Use progress
5 reporter.
6 (dired-do-flagged-delete, dired-do-delete): Use trash.
7
8 * speedbar.el (speedbar-item-delete): Allow trashing.
9
10 * files.el (delete-directory): New arg TRASH.
11
12 * net/ange-ftp.el (ange-ftp-del-tmp-name, ange-ftp-delete-file)
13 (ange-ftp-rename-remote-to-remote)
14 (ange-ftp-rename-local-to-remote)
15 (ange-ftp-rename-remote-to-local, ange-ftp-load)
16 (ange-ftp-compress, ange-ftp-uncompress): Remove optional arg from
17 `delete-file'.
18 (ange-ftp-delete-directory): Add optional arg to `delete-file', to
19 allow trashing.
20
21 * net/tramp-compat.el (tramp-compat-delete-file): Rewrite to
22 handle new TRASH arg of `delete-file'.
23
24 * net/tramp.el (tramp-handle-delete-file): Change FORCE arg to
25 TRASH.
26 (tramp-handle-make-symbolic-link, tramp-handle-load)
27 (tramp-do-copy-or-rename-file-via-buffer)
28 (tramp-do-copy-or-rename-file-directly)
29 (tramp-do-copy-or-rename-file-out-of-band)
30 (tramp-handle-process-file, tramp-handle-call-process-region)
31 (tramp-handle-shell-command, tramp-handle-file-local-copy)
32 (tramp-handle-insert-file-contents, tramp-handle-write-region)
33 (tramp-delete-temp-file-function): Use null TRASH arg in
34 tramp-compat-delete-file call.
35
36 * net/tramp-fish.el (tramp-fish-handle-delete-directory)
37 (tramp-fish-handle-delete-file)
38 (tramp-fish-handle-make-symbolic-link)
39 (tramp-fish-handle-process-file): Use null TRASH arg in
40 `tramp-compat-delete-file' call.
41
42 * net/tramp-ftp.el (tramp-ftp-file-name-handler): Use null TRASH
43 arg in `tramp-compat-delete-file' call.
44
45 * net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Rename arg.
46 (tramp-gvfs-handle-write-region): Use null TRASH arg in
47 `tramp-compat-delete-file' call.
48
49 * net/tramp-imap.el (tramp-imap-handle-delete-file): Rename arg.
50 (tramp-imap-do-copy-or-rename-file): Use null TRASH arg in
51 `tramp-compat-delete-file' call.
52
53 * net/tramp-smb.el (tramp-smb-handle-copy-file)
54 (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
55 (tramp-smb-handle-write-region): Use null TRASH arg in
56 tramp-compat-delete-file call.
57 (tramp-smb-handle-delete-directory): Use tramp-compat-delete-file.
58 (tramp-smb-handle-delete-file): Rename arg.
59
60 * diff.el (diff-sentinel):
61 * epg.el (epg--make-temp-file, epg-decrypt-string)
62 (epg-verify-string, epg-sign-string, epg-encrypt-string):
63 * jka-compr.el (jka-compr-partial-uncompress)
64 (jka-compr-call-process, jka-compr-write-region):
65 * server.el (server-sentinel): Remove optional arg from
66 delete-file, reverting 2010-05-03 change.
67
682010-05-27 Chong Yidong <cyd@stupidchicken.com>
69
70 * progmodes/verilog-mode.el (verilog-type-font-keywords): Use
71 font-lock-constant-face, not obsolete font-lock-reference-face.
72
732010-05-27 Masatake YAMATO <yamato@redhat.com>
74
75 * htmlfontify.el (hfy-face-resolve-face): New function.
76 (hfy-face-to-style): Use it (Bug#6279).
77
12010-05-27 Kenichi Handa <handa@m17n.org> 782010-05-27 Kenichi Handa <handa@m17n.org>
2 79
3 * language/hebrew.el (hebrew-shape-gstring): Check if a glyph 80 * language/hebrew.el (hebrew-shape-gstring): Check if a glyph
diff --git a/lisp/diff.el b/lisp/diff.el
index d7fc993ec33..0206c17e770 100644
--- a/lisp/diff.el
+++ b/lisp/diff.el
@@ -64,8 +64,8 @@
64 "Code run when the diff process exits. 64 "Code run when the diff process exits.
65CODE is the exit code of the process. It should be 0 only if no diffs 65CODE is the exit code of the process. It should be 0 only if no diffs
66were found." 66were found."
67 (if diff-old-temp-file (delete-file diff-old-temp-file t)) 67 (if diff-old-temp-file (delete-file diff-old-temp-file))
68 (if diff-new-temp-file (delete-file diff-new-temp-file t)) 68 (if diff-new-temp-file (delete-file diff-new-temp-file))
69 (save-excursion 69 (save-excursion
70 (goto-char (point-max)) 70 (goto-char (point-max))
71 (let ((inhibit-read-only t)) 71 (let ((inhibit-read-only t))
diff --git a/lisp/dired.el b/lisp/dired.el
index 531f329b26a..4fe804dd46d 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -2579,7 +2579,7 @@ Anything else means ask for each directory."
2579;; Delete file, possibly delete a directory and all its files. 2579;; Delete file, possibly delete a directory and all its files.
2580;; This function is usefull outside of dired. One could change it's name 2580;; This function is usefull outside of dired. One could change it's name
2581;; to e.g. recursive-delete-file and put it somewhere else. 2581;; to e.g. recursive-delete-file and put it somewhere else.
2582(defun dired-delete-file (file &optional recursive) "\ 2582(defun dired-delete-file (file &optional recursive trash) "\
2583Delete FILE or directory (possibly recursively if optional RECURSIVE is true.) 2583Delete FILE or directory (possibly recursively if optional RECURSIVE is true.)
2584RECURSIVE determines what to do with a non-empty directory. If RECURSIVE is: 2584RECURSIVE determines what to do with a non-empty directory. If RECURSIVE is:
2585nil, do not delete. 2585nil, do not delete.
@@ -2590,15 +2590,19 @@ Anything else, ask for each sub-directory."
2590 ;; (and (file-directory-p fn) (not (file-symlink-p fn))) 2590 ;; (and (file-directory-p fn) (not (file-symlink-p fn)))
2591 ;; but more efficient 2591 ;; but more efficient
2592 (if (not (eq t (car (file-attributes file)))) 2592 (if (not (eq t (car (file-attributes file))))
2593 (delete-file file) 2593 (delete-file file trash)
2594 (if (and recursive 2594 (if (and recursive
2595 (directory-files file t dired-re-no-dot) ; Not empty. 2595 (directory-files file t dired-re-no-dot) ; Not empty.
2596 (or (eq recursive 'always) 2596 (or (eq recursive 'always)
2597 (yes-or-no-p (format "Recursive delete of %s? " 2597 (yes-or-no-p (format "Recursively %s %s? "
2598 (if (and trash
2599 delete-by-moving-to-trash)
2600 "trash"
2601 "delete")
2598 (dired-make-relative file))))) 2602 (dired-make-relative file)))))
2599 (if (eq recursive 'top) (setq recursive 'always)) ; Don't ask again. 2603 (if (eq recursive 'top) (setq recursive 'always)) ; Don't ask again.
2600 (setq recursive nil)) 2604 (setq recursive nil))
2601 (delete-directory file recursive))) 2605 (delete-directory file recursive trash)))
2602 2606
2603(defun dired-do-flagged-delete (&optional nomessage) 2607(defun dired-do-flagged-delete (&optional nomessage)
2604 "In Dired, delete the files flagged for deletion. 2608 "In Dired, delete the files flagged for deletion.
@@ -2616,7 +2620,7 @@ non-empty directories is allowed."
2616 ;; this can't move point since ARG is nil 2620 ;; this can't move point since ARG is nil
2617 (dired-map-over-marks (cons (dired-get-filename) (point)) 2621 (dired-map-over-marks (cons (dired-get-filename) (point))
2618 nil) 2622 nil)
2619 nil) 2623 nil t)
2620 (or nomessage 2624 (or nomessage
2621 (message "(No deletions requested)"))))) 2625 (message "(No deletions requested)")))))
2622 2626
@@ -2631,11 +2635,11 @@ non-empty directories is allowed."
2631 ;; this may move point if ARG is an integer 2635 ;; this may move point if ARG is an integer
2632 (dired-map-over-marks (cons (dired-get-filename) (point)) 2636 (dired-map-over-marks (cons (dired-get-filename) (point))
2633 arg) 2637 arg)
2634 arg)) 2638 arg t))
2635 2639
2636(defvar dired-deletion-confirmer 'yes-or-no-p) ; or y-or-n-p? 2640(defvar dired-deletion-confirmer 'yes-or-no-p) ; or y-or-n-p?
2637 2641
2638(defun dired-internal-do-deletions (l arg) 2642(defun dired-internal-do-deletions (l arg &optional trash)
2639 ;; L is an alist of files to delete, with their buffer positions. 2643 ;; L is an alist of files to delete, with their buffer positions.
2640 ;; ARG is the prefix arg. 2644 ;; ARG is the prefix arg.
2641 ;; Filenames are absolute. 2645 ;; Filenames are absolute.
@@ -2644,14 +2648,21 @@ non-empty directories is allowed."
2644 ;; lines still to be changed, so the (point) values in L stay valid. 2648 ;; lines still to be changed, so the (point) values in L stay valid.
2645 ;; Also, for subdirs in natural order, a subdir's files are deleted 2649 ;; Also, for subdirs in natural order, a subdir's files are deleted
2646 ;; before the subdir itself - the other way around would not work. 2650 ;; before the subdir itself - the other way around would not work.
2647 (let ((files (mapcar (function car) l)) 2651 (let* ((files (mapcar (function car) l))
2648 (count (length l)) 2652 (count (length l))
2649 (succ 0)) 2653 (succ 0)
2654 (trashing (and trash delete-by-moving-to-trash))
2655 (progress-reporter
2656 (make-progress-reporter
2657 (if trashing "Trashing..." "Deleting...")
2658 succ count)))
2650 ;; canonicalize file list for pop up 2659 ;; canonicalize file list for pop up
2651 (setq files (nreverse (mapcar (function dired-make-relative) files))) 2660 (setq files (nreverse (mapcar (function dired-make-relative) files)))
2652 (if (dired-mark-pop-up 2661 (if (dired-mark-pop-up
2653 " *Deletions*" 'delete files dired-deletion-confirmer 2662 " *Deletions*" 'delete files dired-deletion-confirmer
2654 (format "Delete %s " (dired-mark-prompt arg files))) 2663 (format "%s %s "
2664 (if trashing "Trash" "Delete")
2665 (dired-mark-prompt arg files)))
2655 (save-excursion 2666 (save-excursion
2656 (let (failures);; files better be in reverse order for this loop! 2667 (let (failures);; files better be in reverse order for this loop!
2657 (while l 2668 (while l
@@ -2659,10 +2670,10 @@ non-empty directories is allowed."
2659 (let ((inhibit-read-only t)) 2670 (let ((inhibit-read-only t))
2660 (condition-case err 2671 (condition-case err
2661 (let ((fn (car (car l)))) 2672 (let ((fn (car (car l))))
2662 (dired-delete-file fn dired-recursive-deletes) 2673 (dired-delete-file fn dired-recursive-deletes trash)
2663 ;; if we get here, removing worked 2674 ;; if we get here, removing worked
2664 (setq succ (1+ succ)) 2675 (setq succ (1+ succ))
2665 (message "%s of %s deletions" succ count) 2676 (progress-reporter-update progress-reporter succ)
2666 (dired-fun-in-all-buffers 2677 (dired-fun-in-all-buffers
2667 (file-name-directory fn) (file-name-nondirectory fn) 2678 (file-name-directory fn) (file-name-nondirectory fn)
2668 (function dired-delete-entry) fn)) 2679 (function dired-delete-entry) fn))
@@ -2671,7 +2682,7 @@ non-empty directories is allowed."
2671 (setq failures (cons (car (car l)) failures))))) 2682 (setq failures (cons (car (car l)) failures)))))
2672 (setq l (cdr l))) 2683 (setq l (cdr l)))
2673 (if (not failures) 2684 (if (not failures)
2674 (message "%d deletion%s done" count (dired-plural-s count)) 2685 (progress-reporter-done progress-reporter)
2675 (dired-log-summary 2686 (dired-log-summary
2676 (format "%d of %d deletion%s failed" 2687 (format "%d of %d deletion%s failed"
2677 (length failures) count 2688 (length failures) count
diff --git a/lisp/epg.el b/lisp/epg.el
index 6e69ae09da4..9a75560704a 100644
--- a/lisp/epg.el
+++ b/lisp/epg.el
@@ -1899,7 +1899,7 @@ You can then use `write-region' to write new data into the file."
1899 ;; Cleanup the tempfile. 1899 ;; Cleanup the tempfile.
1900 (and tempfile 1900 (and tempfile
1901 (file-exists-p tempfile) 1901 (file-exists-p tempfile)
1902 (delete-file tempfile t)) 1902 (delete-file tempfile))
1903 ;; Cleanup the tempdir. 1903 ;; Cleanup the tempdir.
1904 (and tempdir 1904 (and tempdir
1905 (file-directory-p tempdir) 1905 (file-directory-p tempdir)
@@ -1999,7 +1999,7 @@ If PLAIN is nil, it returns the result as a string."
1999 (epg-read-output context)) 1999 (epg-read-output context))
2000 (epg-delete-output-file context) 2000 (epg-delete-output-file context)
2001 (if (file-exists-p input-file) 2001 (if (file-exists-p input-file)
2002 (delete-file input-file t)) 2002 (delete-file input-file))
2003 (epg-reset context)))) 2003 (epg-reset context))))
2004 2004
2005(defun epg-start-verify (context signature &optional signed-text) 2005(defun epg-start-verify (context signature &optional signed-text)
@@ -2203,7 +2203,7 @@ Otherwise, it makes a cleartext signature."
2203 (epg-read-output context)) 2203 (epg-read-output context))
2204 (epg-delete-output-file context) 2204 (epg-delete-output-file context)
2205 (if input-file 2205 (if input-file
2206 (delete-file input-file t)) 2206 (delete-file input-file))
2207 (epg-reset context)))) 2207 (epg-reset context))))
2208 2208
2209(defun epg-start-encrypt (context plain recipients 2209(defun epg-start-encrypt (context plain recipients
@@ -2323,7 +2323,7 @@ If RECIPIENTS is nil, it performs symmetric encryption."
2323 (epg-read-output context)) 2323 (epg-read-output context))
2324 (epg-delete-output-file context) 2324 (epg-delete-output-file context)
2325 (if input-file 2325 (if input-file
2326 (delete-file input-file t)) 2326 (delete-file input-file))
2327 (epg-reset context)))) 2327 (epg-reset context))))
2328 2328
2329(defun epg-start-export-keys (context keys) 2329(defun epg-start-export-keys (context keys)
diff --git a/lisp/files.el b/lisp/files.el
index d4c05bdc5d6..4ab583d018b 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -4675,19 +4675,30 @@ this happens by default."
4675 "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*" 4675 "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"
4676 "Regexp of file names excluging \".\" an \"..\".") 4676 "Regexp of file names excluging \".\" an \"..\".")
4677 4677
4678(defun delete-directory (directory &optional recursive) 4678(defun delete-directory (directory &optional recursive trash)
4679 "Delete the directory named DIRECTORY. Does not follow symlinks. 4679 "Delete the directory named DIRECTORY. Does not follow symlinks.
4680If RECURSIVE is non-nil, all files in DIRECTORY are deleted as well." 4680If RECURSIVE is non-nil, all files in DIRECTORY are deleted as well.
4681TRASH non-nil means to trash the directory instead, provided
4682`delete-by-moving-to-trash' is non-nil.
4683
4684When called interactively, TRASH is t if no prefix argument is
4685given. With a prefix argument, TRASH is nil."
4681 (interactive 4686 (interactive
4682 (let ((dir (expand-file-name 4687 (let* ((trashing (and delete-by-moving-to-trash
4683 (read-file-name 4688 (null current-prefix-arg)))
4684 "Delete directory: " 4689 (dir (expand-file-name
4685 default-directory default-directory nil nil)))) 4690 (read-file-name
4691 (if trashing
4692 "Move directory to trash: "
4693 "Delete directory: ")
4694 default-directory default-directory nil nil))))
4686 (list dir 4695 (list dir
4687 (if (directory-files dir nil directory-files-no-dot-files-regexp) 4696 (if (directory-files dir nil directory-files-no-dot-files-regexp)
4688 (y-or-n-p 4697 (y-or-n-p
4689 (format "Directory `%s' is not empty, really delete? " dir)) 4698 (format "Directory `%s' is not empty, really %s? "
4690 nil)))) 4699 dir (if trashing "trash" "delete")))
4700 nil)
4701 (null current-prefix-arg))))
4691 ;; If default-directory is a remote directory, make sure we find its 4702 ;; If default-directory is a remote directory, make sure we find its
4692 ;; delete-directory handler. 4703 ;; delete-directory handler.
4693 (setq directory (directory-file-name (expand-file-name directory))) 4704 (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."
4695 (cond 4706 (cond
4696 (handler 4707 (handler
4697 (funcall handler 'delete-directory directory recursive)) 4708 (funcall handler 'delete-directory directory recursive))
4698 (delete-by-moving-to-trash 4709 ((and delete-by-moving-to-trash trash)
4699 ;; Only move non-empty dir to trash if recursive deletion was 4710 ;; Only move non-empty dir to trash if recursive deletion was
4700 ;; requested. This mimics the non-`delete-by-moving-to-trash' 4711 ;; requested. This mimics the non-`delete-by-moving-to-trash'
4701 ;; case, where the operation fails in delete-directory-internal. 4712 ;; 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."
4715 ;; (and (file-directory-p fn) (not (file-symlink-p fn))) 4726 ;; (and (file-directory-p fn) (not (file-symlink-p fn)))
4716 ;; but more efficient 4727 ;; but more efficient
4717 (if (eq t (car (file-attributes file))) 4728 (if (eq t (car (file-attributes file)))
4718 (delete-directory file recursive) 4729 (delete-directory file recursive nil)
4719 (delete-file file))) 4730 (delete-file file nil)))
4720 ;; We do not want to delete "." and "..". 4731 ;; We do not want to delete "." and "..".
4721 (directory-files 4732 (directory-files
4722 directory 'full directory-files-no-dot-files-regexp))) 4733 directory 'full directory-files-no-dot-files-regexp)))
diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
index d4dd49ac17d..12e54972461 100644
--- a/lisp/htmlfontify.el
+++ b/lisp/htmlfontify.el
@@ -1026,14 +1026,25 @@ haven't encountered them yet. Returns a `hfy-style-assoc'."
1026 (setq n (apply '* m)) 1026 (setq n (apply '* m))
1027 (nconc r (hfy-size (if x (round n) (* n 1.0)))) )) 1027 (nconc r (hfy-size (if x (round n) (* n 1.0)))) ))
1028 1028
1029(defun hfy-face-resolve-face (fn)
1030 (cond
1031 ((facep fn)
1032 (hfy-face-attr-for-class fn hfy-display-class))
1033 ((and (symbolp fn)
1034 (facep (symbol-value fn)))
1035 ;; Obsolete faces like `font-lock-reference-face' are defined as
1036 ;; aliases for another face.
1037 (hfy-face-attr-for-class (symbol-value fn) hfy-display-class))
1038 (t nil)))
1039
1040
1029(defun hfy-face-to-style (fn) 1041(defun hfy-face-to-style (fn)
1030 "Take FN, a font or `defface' style font specification, 1042 "Take FN, a font or `defface' style font specification,
1031\(as returned by `face-attr-construct' or `hfy-face-attr-for-class') 1043\(as returned by `face-attr-construct' or `hfy-face-attr-for-class')
1032and return a `hfy-style-assoc'.\n 1044and return a `hfy-style-assoc'.\n
1033See also `hfy-face-to-style-i', `hfy-flatten-style'." 1045See also `hfy-face-to-style-i', `hfy-flatten-style'."
1034 ;;(message "hfy-face-to-style");;DBUG 1046 ;;(message "hfy-face-to-style");;DBUG
1035 (let ((face-def (if (facep fn) 1047 (let ((face-def (hfy-face-resolve-face fn))
1036 (hfy-face-attr-for-class fn hfy-display-class) fn))
1037 (final-style nil)) 1048 (final-style nil))
1038 1049
1039 (setq final-style (hfy-flatten-style (hfy-face-to-style-i face-def))) 1050 (setq final-style (hfy-flatten-style (hfy-face-to-style-i face-def)))
diff --git a/lisp/jka-compr.el b/lisp/jka-compr.el
index e4311e13f28..3f0ff542212 100644
--- a/lisp/jka-compr.el
+++ b/lisp/jka-compr.el
@@ -181,7 +181,7 @@ to keep: LEN chars starting BEG chars from the beginning."
181 null-device)) 181 null-device))
182 jka-compr-acceptable-retval-list) 182 jka-compr-acceptable-retval-list)
183 (jka-compr-error prog args infile message err-file)) 183 (jka-compr-error prog args infile message err-file))
184 (delete-file err-file t))) 184 (delete-file err-file)))
185 185
186 ;; Run the uncompression program directly. 186 ;; Run the uncompression program directly.
187 ;; We get the whole file and must delete what we don't want. 187 ;; 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."
223 ""))) 223 "")))
224 jka-compr-acceptable-retval-list) 224 jka-compr-acceptable-retval-list)
225 (jka-compr-error prog args infile message err-file)) 225 (jka-compr-error prog args infile message err-file))
226 (delete-file err-file t))) 226 (delete-file err-file)))
227 (or (eq 0 227 (or (eq 0
228 (apply 'call-process 228 (apply 'call-process
229 prog infile (if (stringp output) temp output) 229 prog infile (if (stringp output) temp output)
@@ -335,7 +335,7 @@ There should be no more than seven characters after the final `/'."
335 (and append can-append) 'dont)) 335 (and append can-append) 'dont))
336 (erase-buffer)) ) 336 (erase-buffer)) )
337 337
338 (delete-file temp-file t) 338 (delete-file temp-file)
339 339
340 (and 340 (and
341 compress-message 341 compress-message
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index 73cb2e57bb2..dcc6ddabcdc 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -1736,7 +1736,7 @@ good, skip, fatal, or unknown."
1736 1736
1737(defun ange-ftp-del-tmp-name (filename) 1737(defun ange-ftp-del-tmp-name (filename)
1738 "Force to delete temporary file." 1738 "Force to delete temporary file."
1739 (delete-file filename 'force)) 1739 (delete-file filename))
1740 1740
1741 1741
1742;;;; ------------------------------------------------------------ 1742;;;; ------------------------------------------------------------
@@ -3507,8 +3507,9 @@ system TYPE.")
3507 (file-exists-p file) 3507 (file-exists-p file)
3508 (ange-ftp-real-file-executable-p file)))) 3508 (ange-ftp-real-file-executable-p file))))
3509 3509
3510(defun ange-ftp-delete-file (file &optional force) 3510(defun ange-ftp-delete-file (file &optional trash)
3511 (interactive "fDelete file: ") 3511 (interactive (list (read-file-name "Delete file: " nil default-directory)
3512 (null current-prefix-arg)))
3512 (setq file (expand-file-name file)) 3513 (setq file (expand-file-name file))
3513 (let ((parsed (ange-ftp-ftp-name file))) 3514 (let ((parsed (ange-ftp-ftp-name file)))
3514 (if parsed 3515 (if parsed
@@ -3526,7 +3527,7 @@ system TYPE.")
3526 (format "FTP Error: \"%s\"" (cdr result)) 3527 (format "FTP Error: \"%s\"" (cdr result))
3527 file))) 3528 file)))
3528 (ange-ftp-delete-file-entry file)) 3529 (ange-ftp-delete-file-entry file))
3529 (ange-ftp-real-delete-file file force)))) 3530 (ange-ftp-real-delete-file file trash))))
3530 3531
3531(defun ange-ftp-file-modtime (file) 3532(defun ange-ftp-file-modtime (file)
3532 "Return the modification time of remote file FILE. 3533 "Return the modification time of remote file FILE.
@@ -3897,7 +3898,7 @@ E.g.,
3897 (ange-ftp-add-file-entry newname) 3898 (ange-ftp-add-file-entry newname)
3898 (ange-ftp-delete-file-entry filename)) 3899 (ange-ftp-delete-file-entry filename))
3899 (ange-ftp-copy-file-internal filename newname t nil) 3900 (ange-ftp-copy-file-internal filename newname t nil)
3900 (delete-file filename 'force)))) 3901 (delete-file filename))))
3901 3902
3902(defun ange-ftp-rename-local-to-remote (filename newname) 3903(defun ange-ftp-rename-local-to-remote (filename newname)
3903 "Rename local file FILENAME to remote file NEWNAME." 3904 "Rename local file FILENAME to remote file NEWNAME."
@@ -3906,7 +3907,7 @@ E.g.,
3906 (msg (format "Renaming %s to %s" fabbr nabbr))) 3907 (msg (format "Renaming %s to %s" fabbr nabbr)))
3907 (ange-ftp-copy-file-internal filename newname t nil msg) 3908 (ange-ftp-copy-file-internal filename newname t nil msg)
3908 (let (ange-ftp-process-verbose) 3909 (let (ange-ftp-process-verbose)
3909 (delete-file filename 'force)))) 3910 (delete-file filename))))
3910 3911
3911(defun ange-ftp-rename-remote-to-local (filename newname) 3912(defun ange-ftp-rename-remote-to-local (filename newname)
3912 "Rename remote file FILENAME to local file NEWNAME." 3913 "Rename remote file FILENAME to local file NEWNAME."
@@ -3915,7 +3916,7 @@ E.g.,
3915 (msg (format "Renaming %s to %s" fabbr nabbr))) 3916 (msg (format "Renaming %s to %s" fabbr nabbr)))
3916 (ange-ftp-copy-file-internal filename newname t nil msg) 3917 (ange-ftp-copy-file-internal filename newname t nil msg)
3917 (let (ange-ftp-process-verbose) 3918 (let (ange-ftp-process-verbose)
3918 (delete-file filename 'force)))) 3919 (delete-file filename))))
3919 3920
3920(defun ange-ftp-rename-file (filename newname &optional ok-if-already-exists) 3921(defun ange-ftp-rename-file (filename newname &optional ok-if-already-exists)
3921 (interactive "fRename file: \nFRename %s to file: \np") 3922 (interactive "fRename file: \nFRename %s to file: \np")
@@ -4196,7 +4197,7 @@ directory, so that Emacs will know its current contents."
4196 (if copy 4197 (if copy
4197 (unwind-protect 4198 (unwind-protect
4198 (funcall 'load copy noerror nomessage nosuffix) 4199 (funcall 'load copy noerror nomessage nosuffix)
4199 (delete-file copy 'force)) 4200 (delete-file copy))
4200 (or noerror 4201 (or noerror
4201 (signal 'file-error (list "Cannot open load file" file))) 4202 (signal 'file-error (list "Cannot open load file" file)))
4202 nil)) 4203 nil))
@@ -4267,7 +4268,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
4267 (if (zerop (buffer-size)) 4268 (if (zerop (buffer-size))
4268 (progn 4269 (progn
4269 (let (ange-ftp-process-verbose) 4270 (let (ange-ftp-process-verbose)
4270 (delete-file file 'force)) 4271 (delete-file file))
4271 (ange-ftp-copy-file-internal tmp2 nfile t nil msg2)))) 4272 (ange-ftp-copy-file-internal tmp2 nfile t nil msg2))))
4272 (ange-ftp-del-tmp-name tmp1) 4273 (ange-ftp-del-tmp-name tmp1)
4273 (ange-ftp-del-tmp-name tmp2)))) 4274 (ange-ftp-del-tmp-name tmp2))))
@@ -4303,7 +4304,7 @@ NEWNAME should be the name to give the new compressed or uncompressed file.")
4303 (if (zerop (buffer-size)) 4304 (if (zerop (buffer-size))
4304 (progn 4305 (progn
4305 (let (ange-ftp-process-verbose) 4306 (let (ange-ftp-process-verbose)
4306 (delete-file file 'force)) 4307 (delete-file file))
4307 (ange-ftp-copy-file-internal tmp2 nfile t nil msg2)))) 4308 (ange-ftp-copy-file-internal tmp2 nfile t nil msg2))))
4308 (ange-ftp-del-tmp-name tmp1) 4309 (ange-ftp-del-tmp-name tmp1)
4309 (ange-ftp-del-tmp-name tmp2)))) 4310 (ange-ftp-del-tmp-name tmp2))))
diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el
index a9c4a478c06..530a8693490 100644
--- a/lisp/net/tramp-compat.el
+++ b/lisp/net/tramp-compat.el
@@ -334,23 +334,18 @@ Add the extension of FILENAME, if existing."
334 (if keep-time 334 (if keep-time
335 (set-file-times newname (nth 5 (file-attributes directory)))))))) 335 (set-file-times newname (nth 5 (file-attributes directory))))))))
336 336
337;; FORCE has been introduced with Emacs 24.1. 337;; TRASH has been introduced with Emacs 24.1.
338(defun tramp-compat-delete-file (filename &optional force) 338(defun tramp-compat-delete-file (filename &optional trash)
339 "Like `delete-file' for Tramp files (compat function)." 339 "Like `delete-file' for Tramp files (compat function)."
340 (if (null force) 340 (condition-case nil
341 (delete-file filename) 341 (tramp-compat-funcall 'delete-file filename trash)
342 (condition-case nil 342 ;; This Emacs version does not support the TRASH flag.
343 (tramp-compat-funcall 'delete-file filename force) 343 (wrong-number-of-arguments
344 ;; This Emacs version does not support the FORCE flag. Setting 344 (let ((delete-by-moving-to-trash
345 ;; `delete-by-moving-to-trash' shall give us the same effect. 345 (and (boundp 'delete-by-moving-to-trash)
346 (wrong-number-of-arguments 346 delete-by-moving-to-trash
347 (let ((delete-by-moving-to-trash 347 trash)))
348 (cond 348 (delete-file filename)))))
349 ((null force) t)
350 ((boundp 'delete-by-moving-to-trash)
351 (symbol-value 'delete-by-moving-to-trash))
352 (t nil))))
353 (delete-file filename))))))
354 349
355;; RECURSIVE has been introduced with Emacs 23.2. 350;; RECURSIVE has been introduced with Emacs 23.2.
356(defun tramp-compat-delete-directory (directory &optional recursive) 351(defun tramp-compat-delete-directory (directory &optional recursive)
diff --git a/lisp/net/tramp-fish.el b/lisp/net/tramp-fish.el
index c7617252288..db5c8ad0b48 100644
--- a/lisp/net/tramp-fish.el
+++ b/lisp/net/tramp-fish.el
@@ -326,16 +326,16 @@ pass to the OPERATION."
326 (lambda (file) 326 (lambda (file)
327 (if (file-directory-p file) 327 (if (file-directory-p file)
328 (tramp-compat-delete-directory file recursive) 328 (tramp-compat-delete-directory file recursive)
329 (delete-file file))) 329 (tramp-compat-delete-file file)))
330 ;; We do not want to delete "." and "..". 330 ;; We do not want to delete "." and "..".
331 (directory-files 331 (directory-files
332 directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"))) 332 directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")))
333 (with-parsed-tramp-file-name 333 (with-parsed-tramp-file-name
334 (directory-file-name (expand-file-name directory)) nil 334 (directory-file-name (expand-file-name directory)) nil
335 (tramp-flush-directory-property v localname) 335 (tramp-flush-directory-property v localname)
336 (tramp-fish-send-command-and-check v (format "#RMD %s" localname))))) 336 (tramp-fish-send-command-and-check v (format "#RMD %s" localname)))))
337 337
338(defun tramp-fish-handle-delete-file (filename &optional force) 338(defun tramp-fish-handle-delete-file (filename &optional trash)
339 "Like `delete-file' for Tramp files." 339 "Like `delete-file' for Tramp files."
340 (when (file-exists-p filename) 340 (when (file-exists-p filename)
341 (with-parsed-tramp-file-name (expand-file-name filename) nil 341 (with-parsed-tramp-file-name (expand-file-name filename) nil
@@ -660,7 +660,7 @@ target of the symlink differ."
660 localname))))) 660 localname)))))
661 (tramp-error 661 (tramp-error
662 v 'file-already-exists "File %s already exists" localname) 662 v 'file-already-exists "File %s already exists" localname)
663 (tramp-compat-delete-file linkname 'force))) 663 (tramp-compat-delete-file linkname)))
664 664
665 ;; If FILENAME is a Tramp name, use just the localname component. 665 ;; If FILENAME is a Tramp name, use just the localname component.
666 (when (tramp-tramp-file-p filename) 666 (when (tramp-tramp-file-p filename)
@@ -839,8 +839,8 @@ target of the symlink differ."
839 ;; Provide error file. 839 ;; Provide error file.
840 (when tmpstderr (rename-file tmpstderr (cadr destination) t)) 840 (when tmpstderr (rename-file tmpstderr (cadr destination) t))
841 ;; Cleanup. 841 ;; Cleanup.
842 (when tmpinput (tramp-compat-delete-file tmpinput 'force)) 842 (when tmpinput (tramp-compat-delete-file tmpinput))
843 (when tmpoutput (tramp-compat-delete-file tmpoutput 'force)) 843 (when tmpoutput (tramp-compat-delete-file tmpoutput))
844 ;; Return exit status. 844 ;; Return exit status.
845 ret))) 845 ret)))
846 846
diff --git a/lisp/net/tramp-ftp.el b/lisp/net/tramp-ftp.el
index 17cd6216c78..ca421cbaaa6 100644
--- a/lisp/net/tramp-ftp.el
+++ b/lisp/net/tramp-ftp.el
@@ -182,7 +182,7 @@ pass to the OPERATION."
182 (unwind-protect 182 (unwind-protect
183 (rename-file tmpfile newname (car args)) 183 (rename-file tmpfile newname (car args))
184 ;; Cleanup. 184 ;; Cleanup.
185 (ignore-errors (tramp-compat-delete-file tmpfile 'force))))) 185 (ignore-errors (tramp-compat-delete-file tmpfile)))))
186 186
187 ;; Normally, the handlers must be discarded. 187 ;; Normally, the handlers must be discarded.
188 ;; `inhibit-file-name-handlers' isn't sufficient, because the 188 ;; `inhibit-file-name-handlers' isn't sufficient, because the
diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
index 2cad20e4cfb..25dae77544d 100644
--- a/lisp/net/tramp-gvfs.el
+++ b/lisp/net/tramp-gvfs.el
@@ -533,9 +533,9 @@ is no information where to trace the message.")
533 (tramp-compat-delete-directory 533 (tramp-compat-delete-directory
534 (tramp-gvfs-fuse-file-name directory) recursive)) 534 (tramp-gvfs-fuse-file-name directory) recursive))
535 535
536(defun tramp-gvfs-handle-delete-file (filename &optional force) 536(defun tramp-gvfs-handle-delete-file (filename &optional tramp)
537 "Like `delete-file' for Tramp files." 537 "Like `delete-file' for Tramp files."
538 (tramp-compat-delete-file (tramp-gvfs-fuse-file-name filename) force)) 538 (tramp-compat-delete-file (tramp-gvfs-fuse-file-name filename) tramp))
539 539
540(defun tramp-gvfs-handle-directory-files 540(defun tramp-gvfs-handle-directory-files
541 (directory &optional full match nosort) 541 (directory &optional full match nosort)
@@ -742,7 +742,7 @@ is no information where to trace the message.")
742 "gvfs-save" tmpfile (tramp-get-buffer v) nil 742 "gvfs-save" tmpfile (tramp-get-buffer v) nil
743 (tramp-gvfs-url-file-name filename))) 743 (tramp-gvfs-url-file-name filename)))
744 (signal (car err) (cdr err))) 744 (signal (car err) (cdr err)))
745 (tramp-compat-delete-file tmpfile 'force))))) 745 (tramp-compat-delete-file tmpfile)))))
746 746
747 ;; Set file modification time. 747 ;; Set file modification time.
748 (when (or (eq visit t) (stringp visit)) 748 (when (or (eq visit t) (stringp visit))
diff --git a/lisp/net/tramp-imap.el b/lisp/net/tramp-imap.el
index e1e91365792..de8e58e7491 100644
--- a/lisp/net/tramp-imap.el
+++ b/lisp/net/tramp-imap.el
@@ -268,7 +268,7 @@ of `copy' and `rename'."
268 (write-region (point-min) (point-max) newname))))) 268 (write-region (point-min) (point-max) newname)))))
269 269
270 (when (eq op 'rename) 270 (when (eq op 'rename)
271 (tramp-compat-delete-file filename 'force)))) 271 (tramp-compat-delete-file filename))))
272 272
273;; TODO: revise this much 273;; TODO: revise this much
274(defun tramp-imap-handle-expand-file-name (name &optional dir) 274(defun tramp-imap-handle-expand-file-name (name &optional dir)
@@ -552,7 +552,7 @@ SIZE MODE WEIRD INODE DEVICE)."
552 ;; (file-exists-p (file-name-directory filename))) 552 ;; (file-exists-p (file-name-directory filename)))
553 (file-directory-p (file-name-directory filename))) 553 (file-directory-p (file-name-directory filename)))
554 554
555(defun tramp-imap-handle-delete-file (filename &optional force) 555(defun tramp-imap-handle-delete-file (filename &optional trash)
556 "Like `delete-file' for Tramp files." 556 "Like `delete-file' for Tramp files."
557 (cond 557 (cond
558 ((not (file-exists-p filename)) nil) 558 ((not (file-exists-p filename)) nil)
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index 00b282b83e3..54cccb49053 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -345,7 +345,7 @@ PRESERVE-UID-GID is completely ignored."
345 (condition-case err 345 (condition-case err
346 (rename-file tmpfile newname ok-if-already-exists) 346 (rename-file tmpfile newname ok-if-already-exists)
347 ((error quit) 347 ((error quit)
348 (tramp-compat-delete-file tmpfile 'force) 348 (tramp-compat-delete-file tmpfile)
349 (signal (car err) (cdr err)))) 349 (signal (car err) (cdr err))))
350 350
351 ;; Remote newname. 351 ;; Remote newname.
@@ -382,7 +382,7 @@ PRESERVE-UID-GID is completely ignored."
382 (lambda (file) 382 (lambda (file)
383 (if (file-directory-p file) 383 (if (file-directory-p file)
384 (tramp-compat-delete-directory file recursive) 384 (tramp-compat-delete-directory file recursive)
385 (delete-file file))) 385 (tramp-compat-delete-file file t)))
386 ;; We do not want to delete "." and "..". 386 ;; We do not want to delete "." and "..".
387 (directory-files 387 (directory-files
388 directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*"))) 388 directory 'full "^\\([^.]\\|\\.\\([^.]\\|\\..\\)\\).*")))
@@ -404,7 +404,7 @@ PRESERVE-UID-GID is completely ignored."
404 (tramp-error 404 (tramp-error
405 v 'file-error "%s `%s'" (match-string 0) directory)))))) 405 v 'file-error "%s `%s'" (match-string 0) directory))))))
406 406
407(defun tramp-smb-handle-delete-file (filename &optional force) 407(defun tramp-smb-handle-delete-file (filename &optional trash)
408 "Like `delete-file' for Tramp files." 408 "Like `delete-file' for Tramp files."
409 (setq filename (expand-file-name filename)) 409 (setq filename (expand-file-name filename))
410 (when (file-exists-p filename) 410 (when (file-exists-p filename)
@@ -611,7 +611,7 @@ PRESERVE-UID-GID is completely ignored."
611 v (format "get \"%s\" \"%s\"" 611 v (format "get \"%s\" \"%s\""
612 (tramp-smb-get-localname v) tmpfile)) 612 (tramp-smb-get-localname v) tmpfile))
613 ;; Oops, an error. We shall cleanup. 613 ;; Oops, an error. We shall cleanup.
614 (tramp-compat-delete-file tmpfile 'force) 614 (tramp-compat-delete-file tmpfile)
615 (tramp-error 615 (tramp-error
616 v 'file-error "Cannot make local copy of file `%s'" filename))) 616 v 'file-error "Cannot make local copy of file `%s'" filename)))
617 tmpfile))) 617 tmpfile)))
@@ -861,7 +861,7 @@ target of the symlink differ."
861 (condition-case err 861 (condition-case err
862 (rename-file tmpfile newname ok-if-already-exists) 862 (rename-file tmpfile newname ok-if-already-exists)
863 ((error quit) 863 ((error quit)
864 (tramp-compat-delete-file tmpfile 'force) 864 (tramp-compat-delete-file tmpfile)
865 (signal (car err) (cdr err)))) 865 (signal (car err) (cdr err))))
866 866
867 ;; Remote newname. 867 ;; Remote newname.
@@ -882,7 +882,7 @@ target of the symlink differ."
882 filename (tramp-smb-get-localname v))) 882 filename (tramp-smb-get-localname v)))
883 (tramp-error v 'file-error "Cannot rename `%s'" filename))))) 883 (tramp-error v 'file-error "Cannot rename `%s'" filename)))))
884 884
885 (tramp-compat-delete-file filename 'force))) 885 (tramp-compat-delete-file filename)))
886 886
887(defun tramp-smb-handle-set-file-modes (filename mode) 887(defun tramp-smb-handle-set-file-modes (filename mode)
888 "Like `set-file-modes' for Tramp files." 888 "Like `set-file-modes' for Tramp files."
@@ -946,7 +946,7 @@ errors for shares like \"C$/\", which are common in Microsoft Windows."
946 v (format "put %s \"%s\"" 946 v (format "put %s \"%s\""
947 tmpfile (tramp-smb-get-localname v))) 947 tmpfile (tramp-smb-get-localname v)))
948 (tramp-error v 'file-error "Cannot write `%s'" filename)) 948 (tramp-error v 'file-error "Cannot write `%s'" filename))
949 (tramp-compat-delete-file tmpfile 'force))) 949 (tramp-compat-delete-file tmpfile)))
950 950
951 (unless (equal curbuf (current-buffer)) 951 (unless (equal curbuf (current-buffer))
952 (tramp-error 952 (tramp-error
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 91b35481730..a1aed599ae9 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -2544,7 +2544,7 @@ target of the symlink differ."
2544 l-localname))))) 2544 l-localname)))))
2545 (tramp-error 2545 (tramp-error
2546 l 'file-already-exists "File %s already exists" l-localname) 2546 l 'file-already-exists "File %s already exists" l-localname)
2547 (tramp-compat-delete-file linkname 'force))) 2547 (tramp-compat-delete-file linkname)))
2548 2548
2549 ;; If FILENAME is a Tramp name, use just the localname component. 2549 ;; If FILENAME is a Tramp name, use just the localname component.
2550 (when (tramp-tramp-file-p filename) 2550 (when (tramp-tramp-file-p filename)
@@ -2593,7 +2593,7 @@ target of the symlink differ."
2593 ;; MUST-SUFFIX doesn't exist on XEmacs, so let it default to nil. 2593 ;; MUST-SUFFIX doesn't exist on XEmacs, so let it default to nil.
2594 (unwind-protect 2594 (unwind-protect
2595 (load local-copy noerror t t) 2595 (load local-copy noerror t t)
2596 (tramp-compat-delete-file local-copy 'force))))) 2596 (tramp-compat-delete-file local-copy)))))
2597 t))) 2597 t)))
2598 2598
2599;; Localname manipulation functions that grok Tramp localnames... 2599;; 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."
3769 ;; Set the mode. 3769 ;; Set the mode.
3770 (set-file-modes newname (tramp-default-file-modes filename)) 3770 (set-file-modes newname (tramp-default-file-modes filename))
3771 ;; If the operation was `rename', delete the original file. 3771 ;; If the operation was `rename', delete the original file.
3772 (unless (eq op 'copy) (tramp-compat-delete-file filename 'force))) 3772 (unless (eq op 'copy) (tramp-compat-delete-file filename)))
3773 3773
3774(defun tramp-do-copy-or-rename-file-directly 3774(defun tramp-do-copy-or-rename-file-directly
3775 (op filename newname ok-if-already-exists keep-date preserve-uid-gid) 3775 (op filename newname ok-if-already-exists keep-date preserve-uid-gid)
@@ -3924,7 +3924,7 @@ the uid and gid from FILENAME."
3924 3924
3925 ;; Save exit. 3925 ;; Save exit.
3926 (condition-case nil 3926 (condition-case nil
3927 (tramp-compat-delete-file tmpfile 'force) 3927 (tramp-compat-delete-file tmpfile)
3928 (error))))))))) 3928 (error)))))))))
3929 3929
3930 ;; Set the time and mode. Mask possible errors. 3930 ;; Set the time and mode. Mask possible errors.
@@ -3964,7 +3964,7 @@ The method used must be an out-of-band method."
3964 (if dir-flag 3964 (if dir-flag
3965 (tramp-compat-delete-directory 3965 (tramp-compat-delete-directory
3966 (expand-file-name ".." tmpfile) 'recursive) 3966 (expand-file-name ".." tmpfile) 'recursive)
3967 (tramp-compat-delete-file tmpfile 'force)) 3967 (tramp-compat-delete-file tmpfile))
3968 (error)))) 3968 (error))))
3969 3969
3970 ;; Expand hops. Might be necessary for gateway methods. 3970 ;; Expand hops. Might be necessary for gateway methods.
@@ -4082,7 +4082,7 @@ The method used must be an out-of-band method."
4082 ;; If the operation was `rename', delete the original file. 4082 ;; If the operation was `rename', delete the original file.
4083 (unless (eq op 'copy) 4083 (unless (eq op 'copy)
4084 (if (file-regular-p filename) 4084 (if (file-regular-p filename)
4085 (tramp-compat-delete-file filename 'force) 4085 (tramp-compat-delete-file filename)
4086 (tramp-compat-delete-directory filename 'recursive)))))) 4086 (tramp-compat-delete-directory filename 'recursive))))))
4087 4087
4088(defun tramp-handle-make-directory (dir &optional parents) 4088(defun tramp-handle-make-directory (dir &optional parents)
@@ -4112,7 +4112,7 @@ The method used must be an out-of-band method."
4112 (tramp-shell-quote-argument localname)))) 4112 (tramp-shell-quote-argument localname))))
4113 (tramp-error v 'file-error "Couldn't delete %s" directory)))) 4113 (tramp-error v 'file-error "Couldn't delete %s" directory))))
4114 4114
4115(defun tramp-handle-delete-file (filename &optional force) 4115(defun tramp-handle-delete-file (filename &optional trash)
4116 "Like `delete-file' for Tramp files." 4116 "Like `delete-file' for Tramp files."
4117 (setq filename (expand-file-name filename)) 4117 (setq filename (expand-file-name filename))
4118 (with-parsed-tramp-file-name filename nil 4118 (with-parsed-tramp-file-name filename nil
@@ -4629,7 +4629,7 @@ beginning of local filename are not substituted."
4629 4629
4630 ;; Cleanup. We remove all file cache values for the connection, 4630 ;; Cleanup. We remove all file cache values for the connection,
4631 ;; because the remote process could have changed them. 4631 ;; because the remote process could have changed them.
4632 (when tmpinput (tramp-compat-delete-file tmpinput 'force)) 4632 (when tmpinput (tramp-compat-delete-file tmpinput))
4633 4633
4634 ;; `process-file-side-effects' has been introduced with GNU 4634 ;; `process-file-side-effects' has been introduced with GNU
4635 ;; Emacs 23.2. If set to `nil', no remote file will be changed 4635 ;; 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."
4666 (when delete (delete-region start end)) 4666 (when delete (delete-region start end))
4667 (unwind-protect 4667 (unwind-protect
4668 (apply 'call-process program tmpfile buffer display args) 4668 (apply 'call-process program tmpfile buffer display args)
4669 (tramp-compat-delete-file tmpfile 'force)))) 4669 (tramp-compat-delete-file tmpfile))))
4670 4670
4671(defun tramp-handle-shell-command 4671(defun tramp-handle-shell-command
4672 (command &optional output-buffer error-buffer) 4672 (command &optional output-buffer error-buffer)
@@ -4731,7 +4731,7 @@ Lisp error raised when PROGRAM is nil is trapped also, returning 1."
4731 (when (listp buffer) 4731 (when (listp buffer)
4732 (with-current-buffer error-buffer 4732 (with-current-buffer error-buffer
4733 (insert-file-contents (cadr buffer))) 4733 (insert-file-contents (cadr buffer)))
4734 (tramp-compat-delete-file (cadr buffer) 'force)) 4734 (tramp-compat-delete-file (cadr buffer)))
4735 (if current-buffer-p 4735 (if current-buffer-p
4736 ;; This is like exchange-point-and-mark, but doesn't 4736 ;; This is like exchange-point-and-mark, but doesn't
4737 ;; activate the mark. It is cleaner to avoid activation, 4737 ;; 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."
4813 (unwind-protect 4813 (unwind-protect
4814 (tramp-call-local-coding-command 4814 (tramp-call-local-coding-command
4815 loc-dec tmpfile2 tmpfile) 4815 loc-dec tmpfile2 tmpfile)
4816 (tramp-compat-delete-file tmpfile2 'force))))) 4816 (tramp-compat-delete-file tmpfile2)))))
4817 4817
4818 ;; Set proper permissions. 4818 ;; Set proper permissions.
4819 (set-file-modes tmpfile (tramp-default-file-modes filename)) 4819 (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."
4826 4826
4827 ;; Error handling. 4827 ;; Error handling.
4828 ((error quit) 4828 ((error quit)
4829 (tramp-compat-delete-file tmpfile 'force) 4829 (tramp-compat-delete-file tmpfile)
4830 (signal (car err) (cdr err)))) 4830 (signal (car err) (cdr err))))
4831 4831
4832 (run-hooks 'tramp-handle-file-local-copy-hook) 4832 (run-hooks 'tramp-handle-file-local-copy-hook)
@@ -4961,11 +4961,10 @@ coding system might not be determined. This function repairs it."
4961 (set-buffer-modified-p nil)) 4961 (set-buffer-modified-p nil))
4962 (when (and (stringp local-copy) 4962 (when (and (stringp local-copy)
4963 (or remote-copy (null tramp-temp-buffer-file-name))) 4963 (or remote-copy (null tramp-temp-buffer-file-name)))
4964 (tramp-compat-delete-file local-copy 'force)) 4964 (tramp-compat-delete-file local-copy))
4965 (when (stringp remote-copy) 4965 (when (stringp remote-copy)
4966 (tramp-compat-delete-file 4966 (tramp-compat-delete-file
4967 (tramp-make-tramp-file-name method user host remote-copy) 4967 (tramp-make-tramp-file-name method user host remote-copy))))))
4968 'force)))))
4969 4968
4970 ;; Result. 4969 ;; Result.
4971 (list (expand-file-name filename) 4970 (list (expand-file-name filename)
@@ -5155,7 +5154,7 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
5155 (list start end tmpfile append 'no-message lockname confirm)) 5154 (list start end tmpfile append 'no-message lockname confirm))
5156 ((error quit) 5155 ((error quit)
5157 (setq tramp-temp-buffer-file-name nil) 5156 (setq tramp-temp-buffer-file-name nil)
5158 (tramp-compat-delete-file tmpfile 'force) 5157 (tramp-compat-delete-file tmpfile)
5159 (signal (car err) (cdr err)))) 5158 (signal (car err) (cdr err))))
5160 5159
5161 ;; Now, `last-coding-system-used' has the right value. Remember it. 5160 ;; 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."
5199 (copy-file tmpfile filename t) 5198 (copy-file tmpfile filename t)
5200 ((error quit) 5199 ((error quit)
5201 (setq tramp-temp-buffer-file-name nil) 5200 (setq tramp-temp-buffer-file-name nil)
5202 (tramp-compat-delete-file tmpfile 'force) 5201 (tramp-compat-delete-file tmpfile)
5203 (signal (car err) (cdr err))))) 5202 (signal (car err) (cdr err)))))
5204 (setq tramp-temp-buffer-file-name nil) 5203 (setq tramp-temp-buffer-file-name nil)
5205 ;; Don't rename, in order to keep context in SELinux. 5204 ;; Don't rename, in order to keep context in SELinux.
5206 (unwind-protect 5205 (unwind-protect
5207 (copy-file tmpfile filename t) 5206 (copy-file tmpfile filename t)
5208 (tramp-compat-delete-file tmpfile 'force)))) 5207 (tramp-compat-delete-file tmpfile))))
5209 5208
5210 ;; Use inline file transfer. 5209 ;; Use inline file transfer.
5211 (rem-dec 5210 (rem-dec
@@ -5290,7 +5289,7 @@ Returns a file name in `tramp-auto-save-directory' for autosaving this file."
5290 filename rem-dec))))) 5289 filename rem-dec)))))
5291 5290
5292 ;; Save exit. 5291 ;; Save exit.
5293 (tramp-compat-delete-file tmpfile 'force))) 5292 (tramp-compat-delete-file tmpfile)))
5294 5293
5295 ;; That's not expected. 5294 ;; That's not expected.
5296 (t 5295 (t
@@ -6373,7 +6372,7 @@ hosts, or files, disagree."
6373 "Remove temporary files related to current buffer." 6372 "Remove temporary files related to current buffer."
6374 (when (stringp tramp-temp-buffer-file-name) 6373 (when (stringp tramp-temp-buffer-file-name)
6375 (condition-case nil 6374 (condition-case nil
6376 (tramp-compat-delete-file tramp-temp-buffer-file-name 'force) 6375 (tramp-compat-delete-file tramp-temp-buffer-file-name)
6377 (error nil)))) 6376 (error nil))))
6378 6377
6379(add-hook 'kill-buffer-hook 'tramp-delete-temp-file-function) 6378(add-hook 'kill-buffer-hook 'tramp-delete-temp-file-function)
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index bf9d4b8da47..5e7699b3543 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -2446,12 +2446,12 @@ See also `verilog-font-lock-extra-types'.")
2446 (list 2446 (list
2447 (concat "\\<function\\>\\s-+\\(integer\\|real\\(time\\)?\\|time\\)\\s-+\\(\\sw+\\)" ) 2447 (concat "\\<function\\>\\s-+\\(integer\\|real\\(time\\)?\\|time\\)\\s-+\\(\\sw+\\)" )
2448 '(1 font-lock-keyword-face) 2448 '(1 font-lock-keyword-face)
2449 '(3 font-lock-reference-face prepend)) 2449 '(3 font-lock-constant-face prepend))
2450 '("\\<function\\>\\s-+\\(\\[[^]]+\\]\\)\\s-+\\(\\sw+\\)" 2450 '("\\<function\\>\\s-+\\(\\[[^]]+\\]\\)\\s-+\\(\\sw+\\)"
2451 (1 font-lock-keyword-face) 2451 (1 font-lock-keyword-face)
2452 (2 font-lock-reference-face append)) 2452 (2 font-lock-constant-face append))
2453 '("\\<function\\>\\s-+\\(\\sw+\\)" 2453 '("\\<function\\>\\s-+\\(\\sw+\\)"
2454 1 'font-lock-reference-face append)))) 2454 1 'font-lock-constant-face append))))
2455 2455
2456 (setq verilog-font-lock-keywords-2 2456 (setq verilog-font-lock-keywords-2
2457 (append verilog-font-lock-keywords-1 2457 (append verilog-font-lock-keywords-1
diff --git a/lisp/server.el b/lisp/server.el
index 6b5f2486332..fd2026c4ab8 100644
--- a/lisp/server.el
+++ b/lisp/server.el
@@ -345,7 +345,7 @@ If CLIENT is non-nil, add a description of it to the logged message."
345 (and (process-contact proc :server) 345 (and (process-contact proc :server)
346 (eq (process-status proc) 'closed) 346 (eq (process-status proc) 'closed)
347 (ignore-errors 347 (ignore-errors
348 (delete-file (process-get proc :server-file) t))) 348 (delete-file (process-get proc :server-file))))
349 (server-log (format "Status changed to %s: %s" (process-status proc) msg) proc) 349 (server-log (format "Status changed to %s: %s" (process-status proc) msg) proc)
350 (server-delete-client proc)) 350 (server-delete-client proc))
351 351
diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index 60c1ff6b170..5e732b398f3 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -1644,8 +1644,8 @@ Files can be renamed to new names or moved to new directories."
1644 (if (speedbar-y-or-n-p (format "Delete %s? " f) t) 1644 (if (speedbar-y-or-n-p (format "Delete %s? " f) t)
1645 (progn 1645 (progn
1646 (if (file-directory-p f) 1646 (if (file-directory-p f)
1647 (delete-directory f) 1647 (delete-directory f t t)
1648 (delete-file f)) 1648 (delete-file f t))
1649 (speedbar-message "Okie dokie.") 1649 (speedbar-message "Okie dokie.")
1650 (let ((p (point))) 1650 (let ((p (point)))
1651 (speedbar-refresh) 1651 (speedbar-refresh)
diff --git a/src/ChangeLog b/src/ChangeLog
index 2d8948f6a31..eeee6540e68 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -5,6 +5,28 @@
5 (font_list_entities): Call font_delete_unmatched if 5 (font_list_entities): Call font_delete_unmatched if
6 Vface_ignored_fonts is non-nil. 6 Vface_ignored_fonts is non-nil.
7 7
82010-05-28 Glenn Morris <rgm@gnu.org>
9
10 * Makefile.in (LIBES): Remove $LOADLIBES, it is never set.
11
122010-05-27 Chong Yidong <cyd@stupidchicken.com>
13
14 * fileio.c (Fdelete_file): Change meaning of optional arg to mean
15 whether to trash.
16 (internal_delete_file, Frename_file): Callers changed.
17 (delete_by_moving_to_trash): Doc fix.
18 (Fdelete_directory_internal): Don't move to trash.
19
20 * callproc.c (delete_temp_file):
21 * buffer.c (Fkill_buffer): Callers changed.
22
23 * lisp.h: Update prototype.
24
252010-05-27 Chong Yidong <cyd@stupidchicken.com>
26
27 * xdisp.c (redisplay_window): After redisplay, check if point is
28 still valid before setting it (Bug#6177).
29
82010-05-27 Glenn Morris <rgm@gnu.org> 302010-05-27 Glenn Morris <rgm@gnu.org>
9 31
10 * Makefile.in, autodeps.mk, deps.mk, ns.mk: 32 * Makefile.in, autodeps.mk, deps.mk, ns.mk:
diff --git a/src/ChangeLog.10 b/src/ChangeLog.10
index 39b70d9b199..24818e6770f 100644
--- a/src/ChangeLog.10
+++ b/src/ChangeLog.10
@@ -4645,10 +4645,6 @@
4645 * image.c: Include "charset.h" and "coding.h". 4645 * image.c: Include "charset.h" and "coding.h".
4646 (x_find_image_file): Return an encoded file name. 4646 (x_find_image_file): Return an encoded file name.
4647 4647
46482006-04-01 Eli Zaretskii <eliz@gnu.org>
4649
4650 * configure: Regenerated.
4651
46522006-03-31 Kenichi Handa <handa@m17n.org> 46482006-03-31 Kenichi Handa <handa@m17n.org>
4653 4649
4654 * xfns.c (xg_set_icon): Delete superfluous UNGCPRO. 4650 * xfns.c (xg_set_icon): Delete superfluous UNGCPRO.
diff --git a/src/ChangeLog.8 b/src/ChangeLog.8
index 6da7b6862a5..4dd3d0dd071 100644
--- a/src/ChangeLog.8
+++ b/src/ChangeLog.8
@@ -4629,9 +4629,6 @@
4629 4629
4630 * Makefile.in (LIBGIF): Use libungif. 4630 * Makefile.in (LIBGIF): Use libungif.
4631 4631
4632 * configure.in (HAVE_GIF): Use libungif instead of libgif
4633 because the former doesn't contain patented compression code.
4634
4635 * xdisp.c (compute_window_start_on_continuation_line): Don't 4632 * xdisp.c (compute_window_start_on_continuation_line): Don't
4636 do it if line start is too far away from window start. 4633 do it if line start is too far away from window start.
4637 4634
diff --git a/src/Makefile.in b/src/Makefile.in
index 0b23606a921..336980f4285 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -581,7 +581,7 @@ SOME_MACHINE_LISP = ../lisp/mouse.elc \
581## Note that SunOS needs -lm to come before -lc; otherwise, you get 581## Note that SunOS needs -lm to come before -lc; otherwise, you get
582## duplicated symbols. If the standard libraries were compiled 582## duplicated symbols. If the standard libraries were compiled
583## with GCC, we might need LIB_GCC again after them. 583## with GCC, we might need LIB_GCC again after them.
584LIBES = $(LOADLIBES) $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \ 584LIBES = $(LIBS) $(LIBX_BASE) $(LIBX_OTHER) $(LIBSOUND) \
585 $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \ 585 $(RSVG_LIBS) $(DBUS_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \
586 $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \ 586 $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) ${GCONF_LIBS} ${LIBSELINUX_LIBS} \
587 $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \ 587 $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \
diff --git a/src/buffer.c b/src/buffer.c
index 339bc99dcb1..b19286c6ea9 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1547,7 +1547,7 @@ with SIGHUP. */)
1547 Lisp_Object tem; 1547 Lisp_Object tem;
1548 tem = Fsymbol_value (intern ("delete-auto-save-files")); 1548 tem = Fsymbol_value (intern ("delete-auto-save-files"));
1549 if (! NILP (tem)) 1549 if (! NILP (tem))
1550 internal_delete_file (b->auto_save_file_name, Qt); 1550 internal_delete_file (b->auto_save_file_name);
1551 } 1551 }
1552 1552
1553 if (b->base_buffer) 1553 if (b->base_buffer)
diff --git a/src/callproc.c b/src/callproc.c
index 44dd6ed7764..f922433eb42 100644
--- a/src/callproc.c
+++ b/src/callproc.c
@@ -856,7 +856,7 @@ delete_temp_file (name)
856 /* Suppress jka-compr handling, etc. */ 856 /* Suppress jka-compr handling, etc. */
857 int count = SPECPDL_INDEX (); 857 int count = SPECPDL_INDEX ();
858 specbind (intern ("file-name-handler-alist"), Qnil); 858 specbind (intern ("file-name-handler-alist"), Qnil);
859 internal_delete_file (name, Qt); 859 internal_delete_file (name);
860 unbind_to (count, Qnil); 860 unbind_to (count, Qnil);
861 return Qnil; 861 return Qnil;
862} 862}
diff --git a/src/fileio.c b/src/fileio.c
index de32bfecd34..d3aea0f1e91 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2180,12 +2180,7 @@ DEFUN ("delete-directory-internal", Fdelete_directory_internal,
2180 2180
2181 CHECK_STRING (directory); 2181 CHECK_STRING (directory);
2182 directory = Fdirectory_file_name (Fexpand_file_name (directory, Qnil)); 2182 directory = Fdirectory_file_name (Fexpand_file_name (directory, Qnil));
2183
2184 if (delete_by_moving_to_trash)
2185 return call1 (Qmove_file_to_trash, directory);
2186
2187 encoded_dir = ENCODE_FILE (directory); 2183 encoded_dir = ENCODE_FILE (directory);
2188
2189 dir = SDATA (encoded_dir); 2184 dir = SDATA (encoded_dir);
2190 2185
2191 if (rmdir (dir) != 0) 2186 if (rmdir (dir) != 0)
@@ -2195,19 +2190,21 @@ DEFUN ("delete-directory-internal", Fdelete_directory_internal,
2195} 2190}
2196 2191
2197DEFUN ("delete-file", Fdelete_file, Sdelete_file, 1, 2, 2192DEFUN ("delete-file", Fdelete_file, Sdelete_file, 1, 2,
2198 "(list (read-file-name \"Delete file: \" nil default-directory \ 2193 "(list (read-file-name \
2199 (confirm-nonexistent-file-or-buffer)) \ 2194 (if (and delete-by-moving-to-trash (null current-prefix-arg)) \
2200 current-prefix-arg)", 2195 \"Move file to trash: \" \"Delete file: \") \
2196 nil default-directory (confirm-nonexistent-file-or-buffer)) \
2197 (null current-prefix-arg))",
2201 doc: /* Delete file named FILENAME. If it is a symlink, remove the symlink. 2198 doc: /* Delete file named FILENAME. If it is a symlink, remove the symlink.
2202If file has multiple names, it continues to exist with the other names. 2199If file has multiple names, it continues to exist with the other names.
2200TRASH non-nil means to trash the file instead of deleting, provided
2201`delete-by-moving-to-trash' is non-nil.
2203 2202
2204If optional arg FORCE is non-nil, really delete the file regardless of 2203When called interactively, TRASH is t if no prefix argument is given.
2205`delete-by-moving-to-trash'. Otherwise, \"deleting\" actually moves 2204With a prefix argument, TRASH is nil. */)
2206it to the system's trash can if `delete-by-moving-to-trash' is non-nil. 2205 (filename, trash)
2207Interactively, FORCE is non-nil if called with a prefix arg. */)
2208 (filename, force)
2209 Lisp_Object filename; 2206 Lisp_Object filename;
2210 Lisp_Object force; 2207 Lisp_Object trash;
2211{ 2208{
2212 Lisp_Object handler; 2209 Lisp_Object handler;
2213 Lisp_Object encoded_file; 2210 Lisp_Object encoded_file;
@@ -2226,7 +2223,7 @@ Interactively, FORCE is non-nil if called with a prefix arg. */)
2226 if (!NILP (handler)) 2223 if (!NILP (handler))
2227 return call2 (handler, Qdelete_file, filename); 2224 return call2 (handler, Qdelete_file, filename);
2228 2225
2229 if (delete_by_moving_to_trash && NILP (force)) 2226 if (delete_by_moving_to_trash && !NILP (trash))
2230 return call1 (Qmove_file_to_trash, filename); 2227 return call1 (Qmove_file_to_trash, filename);
2231 2228
2232 encoded_file = ENCODE_FILE (filename); 2229 encoded_file = ENCODE_FILE (filename);
@@ -2244,14 +2241,14 @@ internal_delete_file_1 (ignore)
2244} 2241}
2245 2242
2246/* Delete file FILENAME, returning 1 if successful and 0 if failed. 2243/* Delete file FILENAME, returning 1 if successful and 0 if failed.
2247 FORCE means to ignore `delete-by-moving-to-trash'. */ 2244 This ignores `delete-by-moving-to-trash'. */
2248 2245
2249int 2246int
2250internal_delete_file (Lisp_Object filename, Lisp_Object force) 2247internal_delete_file (Lisp_Object filename)
2251{ 2248{
2252 Lisp_Object tem; 2249 Lisp_Object tem;
2253 2250
2254 tem = internal_condition_case_2 (Fdelete_file, filename, force, 2251 tem = internal_condition_case_2 (Fdelete_file, filename, Qnil,
2255 Qt, internal_delete_file_1); 2252 Qt, internal_delete_file_1);
2256 return NILP (tem); 2253 return NILP (tem);
2257} 2254}
@@ -2345,7 +2342,7 @@ This is what happens in interactive use with M-x. */)
2345 ) 2342 )
2346 call2 (Qdelete_directory, file, Qt); 2343 call2 (Qdelete_directory, file, Qt);
2347 else 2344 else
2348 Fdelete_file (file, Qt); 2345 Fdelete_file (file, Qnil);
2349 unbind_to (count, Qnil); 2346 unbind_to (count, Qnil);
2350 } 2347 }
2351 else 2348 else
@@ -5917,8 +5914,10 @@ A non-nil value may result in data loss! */);
5917 5914
5918 DEFVAR_BOOL ("delete-by-moving-to-trash", &delete_by_moving_to_trash, 5915 DEFVAR_BOOL ("delete-by-moving-to-trash", &delete_by_moving_to_trash,
5919 doc: /* Specifies whether to use the system's trash can. 5916 doc: /* Specifies whether to use the system's trash can.
5920When non-nil, the function `move-file-to-trash' will be used by 5917When non-nil, certain file deletion commands use the function
5921`delete-file' and `delete-directory'. */); 5918`move-file-to-trash' instead of deleting files outright.
5919This includes interactive calls to `delete-file' and
5920`delete-directory' and the Dired deletion commands. */);
5922 delete_by_moving_to_trash = 0; 5921 delete_by_moving_to_trash = 0;
5923 Qdelete_by_moving_to_trash = intern_c_string ("delete-by-moving-to-trash"); 5922 Qdelete_by_moving_to_trash = intern_c_string ("delete-by-moving-to-trash");
5924 Qmove_file_to_trash = intern_c_string ("move-file-to-trash"); 5923 Qmove_file_to_trash = intern_c_string ("move-file-to-trash");
diff --git a/src/lisp.h b/src/lisp.h
index b4ff446b064..e17931ca366 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3060,7 +3060,7 @@ EXFUN (Fread_file_name, 6);
3060extern Lisp_Object close_file_unwind P_ ((Lisp_Object)); 3060extern Lisp_Object close_file_unwind P_ ((Lisp_Object));
3061extern Lisp_Object restore_point_unwind P_ ((Lisp_Object)); 3061extern Lisp_Object restore_point_unwind P_ ((Lisp_Object));
3062extern void report_file_error P_ ((const char *, Lisp_Object)) NO_RETURN; 3062extern void report_file_error P_ ((const char *, Lisp_Object)) NO_RETURN;
3063extern int internal_delete_file P_ ((Lisp_Object, Lisp_Object)); 3063extern int internal_delete_file P_ ((Lisp_Object));
3064extern void syms_of_fileio P_ ((void)); 3064extern void syms_of_fileio P_ ((void));
3065extern Lisp_Object make_temp_name P_ ((Lisp_Object, int)); 3065extern Lisp_Object make_temp_name P_ ((Lisp_Object, int));
3066EXFUN (Fmake_symbolic_link, 3); 3066EXFUN (Fmake_symbolic_link, 3);
diff --git a/src/xdisp.c b/src/xdisp.c
index 699f375e2f4..31fa5f39d5f 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -14788,8 +14788,16 @@ redisplay_window (window, just_this_one_p)
14788 (*FRAME_TERMINAL (f)->redeem_scroll_bar_hook) (w); 14788 (*FRAME_TERMINAL (f)->redeem_scroll_bar_hook) (w);
14789 } 14789 }
14790 14790
14791 /* Restore current_buffer and value of point in it. */ 14791 /* Restore current_buffer and value of point in it. The window
14792 TEMP_SET_PT_BOTH (CHARPOS (opoint), BYTEPOS (opoint)); 14792 update may have changed the buffer, so first make sure `opoint'
14793 is still valid (Bug#6177). */
14794 if (CHARPOS (opoint) < BEGV)
14795 TEMP_SET_PT_BOTH (BEGV, BEGV_BYTE);
14796 else if (CHARPOS (opoint) > ZV)
14797 TEMP_SET_PT_BOTH (Z, Z_BYTE);
14798 else
14799 TEMP_SET_PT_BOTH (CHARPOS (opoint), BYTEPOS (opoint));
14800
14793 set_buffer_internal_1 (old); 14801 set_buffer_internal_1 (old);
14794 /* Avoid an abort in TEMP_SET_PT_BOTH if the buffer has become 14802 /* Avoid an abort in TEMP_SET_PT_BOTH if the buffer has become
14795 shorter. This can be caused by log truncation in *Messages*. */ 14803 shorter. This can be caused by log truncation in *Messages*. */