aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2004-06-10 17:17:08 +0000
committerKaroly Lorentey2004-06-10 17:17:08 +0000
commit12828db003f4154515725d1943e22b00690bacce (patch)
tree55eb186283c845a071b711284c837aacd514443e
parentd6b4b3cfcc7bfc5a4a3b24acf2ce7e0a49c08b5f (diff)
parentd82baff9bd95b64b89e3a10072f292647f8b2b87 (diff)
downloademacs-12828db003f4154515725d1943e22b00690bacce.tar.gz
emacs-12828db003f4154515725d1943e22b00690bacce.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-383 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-384 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-385 src/xfaces.c (push_named_merge_point): Return 0 if a cycle is detected * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-386 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-387 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-388 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-389 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-390 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-391 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-392 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-393 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-196
-rw-r--r--etc/NEWS24
-rw-r--r--etc/compilation.txt11
-rw-r--r--lisp/ChangeLog129
-rw-r--r--lisp/completion.el4
-rw-r--r--lisp/dired-aux.el48
-rw-r--r--lisp/dired.el249
-rw-r--r--lisp/emacs-lisp/edebug.el10
-rw-r--r--lisp/emacs-lisp/lisp-mode.el14
-rw-r--r--lisp/ffap.el2
-rw-r--r--lisp/format.el12
-rw-r--r--lisp/pcvs-defs.el1
-rw-r--r--lisp/pcvs.el6
-rw-r--r--lisp/progmodes/compile.el16
-rw-r--r--lisp/replace.el7
-rw-r--r--lisp/saveplace.el4
-rw-r--r--lisp/simple.el12
-rw-r--r--lisp/subr.el10
-rw-r--r--lisp/toolbar/lc-copy.xpm33
-rw-r--r--lisp/toolbar/lc-cut.xpm34
-rw-r--r--lisp/toolbar/lc-help.xpm39
-rw-r--r--lisp/toolbar/lc-home.xpm38
-rw-r--r--lisp/toolbar/lc-index.xpm34
-rw-r--r--lisp/toolbar/lc-jump_to.xpm35
-rw-r--r--lisp/toolbar/lc-left_arrow.xpm34
-rw-r--r--lisp/toolbar/lc-new.xpm33
-rw-r--r--lisp/toolbar/lc-open.xpm35
-rw-r--r--lisp/toolbar/lc-paste.xpm35
-rw-r--r--lisp/toolbar/lc-preferences.xpm37
-rw-r--r--lisp/toolbar/lc-print.xpm33
-rw-r--r--lisp/toolbar/lc-right_arrow.xpm33
-rw-r--r--lisp/toolbar/lc-save.xpm39
-rw-r--r--lisp/toolbar/lc-saveas.xpm40
-rw-r--r--lisp/toolbar/lc-search.xpm33
-rw-r--r--lisp/toolbar/lc-spell.xpm35
-rw-r--r--lisp/toolbar/lc-undo.xpm32
-rw-r--r--lisp/toolbar/lc-up_arrow.xpm35
-rw-r--r--lisp/toolbar/tool-bar.el43
-rw-r--r--lisp/wid-edit.el14
-rw-r--r--man/ChangeLog13
-rw-r--r--man/building.texi2
-rw-r--r--man/files.texi5
-rw-r--r--man/pcl-cvs.texi5
-rw-r--r--nt/ChangeLog5
-rw-r--r--nt/INSTALL14
-rw-r--r--src/ChangeLog10
-rw-r--r--src/editfns.c21
-rw-r--r--src/xfaces.c6
47 files changed, 1020 insertions, 344 deletions
diff --git a/etc/NEWS b/etc/NEWS
index e71562a0cdd..e4c7033e0f3 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -90,8 +90,16 @@ types any more. Add -DUSE_LISP_UNION_TYPE if you want union types.
90 90
91* Changes in Emacs 21.4 91* Changes in Emacs 21.4
92 92
93** A New package flymake.el does on-the-fly syntax checking of program 93** New features in evaluation commands
94source files. See the Flymake's Info manual for more details. 94
95*** The function `eval-defun' (C-M-x) called on defface reinitializes
96the face to the value specified in the defface expression.
97
98*** Typing C-x C-e twice prints the value of the integer result
99in additional formats (octal, hexadecimal, character) specified
100by the new function `eval-expression-print-format'. The same
101function also defines the result format for `eval-expression' (M-:),
102`eval-print-last-sexp' (C-j) and some edebug evaluation functions.
95 103
96** New input method chinese-sisheng for inputting Chinese Pinyin 104** New input method chinese-sisheng for inputting Chinese Pinyin
97characters. 105characters.
@@ -1808,9 +1816,18 @@ to view diffs or log entries directly from vc-annotate-mode:
1808 D: shows the diff of the revision at line with its previous revision 1816 D: shows the diff of the revision at line with its previous revision
1809 L: shows the log of the revision at line 1817 L: shows the log of the revision at line
1810 W: annotates the workfile (most up to date) version 1818 W: annotates the workfile (most up to date) version
1819
1820+++
1821** In pcl-cvs mode, there is a new `d y' command to view the diffs
1822between the local version of the file and yesterday's head revision
1823in the repository.
1824
1811 1825
1812* New modes and packages in Emacs 21.4 1826* New modes and packages in Emacs 21.4
1813 1827
1828** The new package flymake.el does on-the-fly syntax checking of program
1829source files. See the Flymake's Info manual for more details.
1830
1814** The library tree-widget.el provides a new widget to display a set 1831** The library tree-widget.el provides a new widget to display a set
1815of hierarchical data as an outline. For example, the tree-widget is 1832of hierarchical data as an outline. For example, the tree-widget is
1816well suited to display a hierarchy of directories and files. 1833well suited to display a hierarchy of directories and files.
@@ -1905,6 +1922,7 @@ where the keys work like (shifted) arrow keys, home/end, etc., and
1905are left unspecified and can be bound individually through the global 1922are left unspecified and can be bound individually through the global
1906or local keymaps. 1923or local keymaps.
1907 1924
1925+++
1908** The new kmacro package provides a simpler user interface to 1926** The new kmacro package provides a simpler user interface to
1909emacs' keyboard macro facilities. 1927emacs' keyboard macro facilities.
1910 1928
@@ -2043,7 +2061,7 @@ configuration files.
2043 2061
2044* Lisp Changes in Emacs 21.4 2062* Lisp Changes in Emacs 21.4
2045 2063
2046** The sentinel is now called whan a network process is deleted with 2064** The sentinel is now called when a network process is deleted with
2047delete-process. The status message passed to the sentinel for a 2065delete-process. The status message passed to the sentinel for a
2048deleted network process is "deleted". The message passed to the 2066deleted network process is "deleted". The message passed to the
2049sentinel when the connection is closed by the remote peer has been 2067sentinel when the connection is closed by the remote peer has been
diff --git a/etc/compilation.txt b/etc/compilation.txt
index 9c8d06c9ccb..ff86583299d 100644
--- a/etc/compilation.txt
+++ b/etc/compilation.txt
@@ -205,6 +205,7 @@ foo.c:8.23-9.1: message
205jade:dbcommon.dsl:133:17:E: missing argument for function call 205jade:dbcommon.dsl:133:17:E: missing argument for function call
206G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found. 206G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found.
207file:G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found. 207file:G:/cygwin/dev/build-myproj.xml:54: Compiler Adapter 'javac' can't be found.
208{standard input}:27041: Warning: end of file not at end of a line; newline inserted
208 209
209 210
210* Lucid Compiler, lcc 3.x 211* Lucid Compiler, lcc 3.x
@@ -252,7 +253,17 @@ d:\tmp\test.c(23) : error C2143: syntax error : missing ';' before 'if'
252 253
253symbol: oracle 254symbol: oracle
254 255
256This stupid precompiler wraps lines at column 80 in the middle of a file name.
257There is no obvious way of detecting this or turning it off. But if you
258delete the newline, the file name will automatically be reparsed, so that you
259can then go there.
260
255Semantic error at line 528, column 5, file erosacqdb.pc: 261Semantic error at line 528, column 5, file erosacqdb.pc:
262Error at line 41, column 10 in file /usr/src/sb/ODBI_BHP.hpp
263PCC-02150: error at line 49, column 27 in file /usr/src/sb/ODBI_dxfgh.pc
264PCC-00003: invalid SQL Identifier at column name in line 12 of file /usr/src/sb/ODBI_BHP.hpp
265PCC-00004: mismatched IF/ELSE/ENDIF block at line 27 in file /usr/src/sb/ODBI_BHP.hpp
266PCC-02151: line 21 column 40 file /usr/src/sb/ODBI_BHP.hpp:
256 267
257 268
258* Perl 269* Perl
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index fd90663c608..1e04651a097 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,130 @@
12004-06-10 Kim F. Storm <storm@cua.dk>
2
3 * pcvs.el (cvs-mode-diff-yesterday): New command.
4
5 * pcvs-defs.el (cvs-mode-diff-map): Bind y to cvs-mode-diff-yesterday.
6
72004-06-10 Juri Linkov <juri@jurta.org>
8
9 * emacs-lisp/edebug.el (edebug-eval-defun):
10 * emacs-lisp/lisp-mode.el (eval-defun-1): Add `defface'.
11 Fix docstring.
12
13 * simple.el (eval-expression-print-format): Don't print additional
14 information on the first call to `eval-print-last-sexp'.
15 (next-error-find-buffer): Fix punctuation.
16 (killing) <defgroup>: Fix punctuation.
17 (yank-excluded-properties): Change group from editing to killing.
18
19 * replace.el (perform-replace): Use `limit' to terminate the
20 while-loop explicitly.
21
222004-06-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
23
24 * toolbar/tool-bar.el (tool-bar-add-item, tool-bar-local-item):
25 Use lc-*.xpm as prefix instead of *-locol.xpm.
26
27 * toolbar/lc-copy.xpm, toolbar/lc-cut.xpm
28 * toolbar/lc-help.xpm, toolbar/lc-home.xpm
29 * toolbar/lc-index.xpm, toolbar/lc-jump_to.xpm
30 * toolbar/lc-left_arrow.xpm, toolbar/lc-new.xpm
31 * toolbar/lc-open.xpm, toolbar/lc-paste.xpm
32 * toolbar/lc-preferences.xpm, toolbar/lc-print.xpm
33 * toolbar/lc-right_arrow.xpm, toolbar/lc-save.xpm
34 * toolbar/lc-saveas.xpm, toolbar/lc-search.xpm
35 * toolbar/lc-spell.xpm, toolbar/lc-undo.xpm
36 * toolbar/lc-up_arrow.xpm:
37 Renamed from *-locol.xpm.
38
392004-06-09 Rajesh Vaidheeswarran <rv@gnu.org>
40
41 * ffap.el (ffap-string-at-point-mode-alist): Fix the url mode to
42 include forms like &<str>; as valid url patterns.
43
442004-06-08 Luc Teirlinck <teirllm@auburn.edu>
45
46 * dired.el (dired-diff, dired-backup-diff)
47 (dired-clean-directory, dired-do-chmod, dired-do-chgrp)
48 (dired-do-chown, dired-do-touch, dired-do-print)
49 (dired-do-shell-command, dired-do-kill-lines, dired-do-compress)
50 (dired-do-byte-compile, dired-do-load, dired-do-redisplay)
51 (dired-create-directory, dired-do-copy, dired-do-symlink)
52 (dired-do-hardlink, dired-do-rename, dired-do-rename-regexp)
53 (dired-do-copy-regexp, dired-do-hardlink-regexp)
54 (dired-do-symlink-regexp, dired-upcase, dired-downcase)
55 (dired-maybe-insert-subdir, dired-next-subdir)
56 (dired-prev-subdir, dired-goto-subdir, dired-mark-subdir-files)
57 (dired-kill-subdir, dired-tree-up, dired-tree-down)
58 (dired-hide-subdir, dired-hide-all, dired-show-file-type)
59 (dired-run-shell-command, dired-query): Remove redundant,
60 or incorrect, autoloads.
61
62 * dired-aux.el (dired-kill-tree): Do not kill DIRNAME, even if it
63 does not end in a slash. Add optional argument KILL-ROOT. Update
64 docstring.
65 (dired-do-touch, dired-clean-directory, dired-run-shell-command)
66 (dired-query): Add autoloads.
67
682004-06-08 Daniel Pfeiffer <occitan@esperanto.org>
69
70 * progmodes/compile.el (compilation-set-window-height): Rearrange
71 the save-* functions because a buffer can have several current
72 point in different windows.
73 (compilation-error-regexp-alist-alist): Recognize {standard input}
74 GNU messages (for gcc --pipe) and more kinds of Oracle messages.
75
762004-06-08 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
77
78 * toolbar/copy-locol.xpm, toolbar/cut-locol.xpm
79 * toolbar/help-locol.xpm, toolbar/home-locol.xpm
80 * toolbar/index-locol.xpm, toolbar/jump_to-locol.xpm
81 * toolbar/left_arrow-locol.xpm, toolbar/new-locol.xpm
82 * toolbar/open-locol.xpm, toolbar/paste-locol.xpm
83 * toolbar/preferences-locol.xpm, toolbar/print-locol.xpm
84 * toolbar/right_arrow-locol.xpm, toolbar/save-locol.xpm
85 * toolbar/saveas-locol.xpm, toolbar/search-locol.xpm
86 * toolbar/spell-locol.xpm, toolbar/undo-locol.xpm
87 * toolbar/up_arrow-locol.xpm:
88 New versions of icons that uses fewer colors.
89
90 * toolbar/tool-bar.el (tool-bar-local-item)
91 (tool-bar-local-item-from-menu): Try to use icons with fewer colors
92 if display-color-cells is 256 or less.
93
942004-06-08 Kim F. Storm <storm@cua.dk>
95
96 * wid-edit.el (widget-specify-button): Use hand pointer rather
97 than mouse-face as visible mouse-over effect.
98
992004-06-07 Karl Fogel <kfogel@red-bean.com>
100
101 * saveplace.el (save-place-alist-to-file): Bind `print-length'
102 and `print-level' to nil when writing out `save-place-alist'.
103 Thanks to Kai Grossjohann <kai@emptydomain.de> for enlightenment.
104
1052004-06-07 Juanma Barranquero <lektu@terra.es>
106
107 * completion.el (completion-kill-region): Doc fix.
108
109 * format.el (format-insert-annotations)
110 (format-annotate-location): Doc fixes.
111 (format-subtract-regions): Make arguments match their use in
112 docstring.
113
114 * simple.el (kill-region): Doc fix.
115
116 * subr.el (insert-buffer-substring-no-properties)
117 (insert-buffer-substring-as-yank): Doc fixes.
118
1192004-06-07 Luc Teirlinck <teirllm@auburn.edu>
120
121 * dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir):
122 Update docstring.
123 (dired-reset-subdir-switches): New function.
124
125 * dired.el (dired-undo): Call `dired-build-subdir-alist'.
126 Limit scope of `buffer-read-only' binding.
127
12004-06-06 Emilio C. Lopes <eclig@gmx.net> 1282004-06-06 Emilio C. Lopes <eclig@gmx.net>
2 129
3 * eshell/esh-cmd.el (eshell/which): Respect commands quoted with 130 * eshell/esh-cmd.el (eshell/which): Respect commands quoted with
@@ -10,7 +137,7 @@
10 137
112004-06-06 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 1382004-06-06 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
12 139
13 * toolbar/alias.pbm, toolbar/close.pbm, toolbar/copy.pbm, 140 * toolbar/alias.pbm, toolbar/close.pbm, toolbar/copy.pbm
14 * toolbar/cut.pbm, toolbar/help.pbm, toolbar/home.pbm 141 * toolbar/cut.pbm, toolbar/help.pbm, toolbar/home.pbm
15 * toolbar/index.pbm, toolbar/jump_to.pbm, toolbar/left_arrow.pbm 142 * toolbar/index.pbm, toolbar/jump_to.pbm, toolbar/left_arrow.pbm
16 * toolbar/new.pbm, toolbar/open.pbm, toolbar/paste.pbm 143 * toolbar/new.pbm, toolbar/open.pbm, toolbar/paste.pbm
diff --git a/lisp/completion.el b/lisp/completion.el
index 2fb0ef0a3b2..d7f728821f9 100644
--- a/lisp/completion.el
+++ b/lisp/completion.el
@@ -1,6 +1,6 @@
1;;; completion.el --- dynamic word-completion code 1;;; completion.el --- dynamic word-completion code
2 2
3;; Copyright (C) 1990, 1993, 1995, 1997 Free Software Foundation, Inc. 3;; Copyright (C) 1990, 1993, 1995, 1997, 2004 Free Software Foundation, Inc.
4 4
5;; Maintainer: FSF 5;; Maintainer: FSF
6;; Keywords: abbrev convenience 6;; Keywords: abbrev convenience
@@ -2251,7 +2251,7 @@ The command \\[yank] can retrieve it from there.
2251/(If you want to kill and then yank immediately, use \\[copy-region-as-kill].) 2251/(If you want to kill and then yank immediately, use \\[copy-region-as-kill].)
2252 2252
2253This is the primitive for programs to kill text (as opposed to deleting it). 2253This is the primitive for programs to kill text (as opposed to deleting it).
2254Supply two arguments, character numbers indicating the stretch of text 2254Supply two arguments, character positions indicating the stretch of text
2255 to be killed. 2255 to be killed.
2256Any command that calls this function is a \"kill command\". 2256Any command that calls this function is a \"kill command\".
2257If the previous command was also a kill command, 2257If the previous command was also a kill command,
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index db09fc57fb7..7e96f1673ed 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -255,6 +255,7 @@ This calls chmod, thus symbolic modes like `g+w' are allowed."
255 (error "chown not supported on this system")) 255 (error "chown not supported on this system"))
256 (dired-do-chxxx "Owner" dired-chown-program 'chown arg)) 256 (dired-do-chxxx "Owner" dired-chown-program 'chown arg))
257 257
258;;;###autoload
258(defun dired-do-touch (&optional arg) 259(defun dired-do-touch (&optional arg)
259 "Change the timestamp of the marked (or next ARG) files. 260 "Change the timestamp of the marked (or next ARG) files.
260This calls touch." 261This calls touch."
@@ -342,6 +343,7 @@ Uses the shell command coming from variables `lpr-command' and
342 343
343(defvar dired-file-version-alist) 344(defvar dired-file-version-alist)
344 345
346;;;###autoload
345(defun dired-clean-directory (keep) 347(defun dired-clean-directory (keep)
346 "Flag numerical backups for deletion. 348 "Flag numerical backups for deletion.
347Spares `dired-kept-versions' latest versions, and `kept-old-versions' oldest. 349Spares `dired-kept-versions' latest versions, and `kept-old-versions' oldest.
@@ -551,6 +553,7 @@ the list of file names explicitly with the FILE-LIST argument."
551 (funcall stuff-it files))))) 553 (funcall stuff-it files)))))
552 554
553;; This is an extra function so that it can be redefined by ange-ftp. 555;; This is an extra function so that it can be redefined by ange-ftp.
556;;;###autoload
554(defun dired-run-shell-command (command) 557(defun dired-run-shell-command (command)
555 (let ((handler 558 (let ((handler
556 (find-file-name-handler (directory-file-name default-directory) 559 (find-file-name-handler (directory-file-name default-directory)
@@ -805,6 +808,7 @@ Otherwise, the rule is a compression rule, and compression is done with gzip.")
805 ;; None of these keys quit - use C-g for that. 808 ;; None of these keys quit - use C-g for that.
806 )) 809 ))
807 810
811;;;###autoload
808(defun dired-query (qs-var qs-prompt &rest qs-args) 812(defun dired-query (qs-var qs-prompt &rest qs-args)
809 ;; Query user and return nil or t. 813 ;; Query user and return nil or t.
810 ;; Store answer in symbol VAR (which must initially be bound to nil). 814 ;; Store answer in symbol VAR (which must initially be bound to nil).
@@ -891,7 +895,14 @@ Otherwise, the rule is a compression rule, and compression is done with gzip.")
891(defun dired-do-redisplay (&optional arg test-for-subdir) 895(defun dired-do-redisplay (&optional arg test-for-subdir)
892 "Redisplay all marked (or next ARG) files. 896 "Redisplay all marked (or next ARG) files.
893If on a subdir line, redisplay that subdirectory. In that case, 897If on a subdir line, redisplay that subdirectory. In that case,
894a prefix arg lets you edit the `ls' switches used for the new listing." 898a prefix arg lets you edit the `ls' switches used for the new listing.
899
900Dired remembers switches specified with a prefix arg, so that reverting
901the buffer will not reset them. However, using `dired-undo' to re-insert
902or delete subdirectories can bypass this machinery. Hence, you sometimes
903may have to reset some subdirectory switches after a `dired-undo'.
904You can reset all subdirectory switches to the default using
905\\<dired-mode-map>\\[dired-reset-subdir-switches]."
895 ;; Moves point if the next ARG files are redisplayed. 906 ;; Moves point if the next ARG files are redisplayed.
896 (interactive "P\np") 907 (interactive "P\np")
897 (if (and test-for-subdir (dired-get-subdir)) 908 (if (and test-for-subdir (dired-get-subdir))
@@ -914,6 +925,12 @@ a prefix arg lets you edit the `ls' switches used for the new listing."
914 arg) 925 arg)
915 (dired-move-to-filename) 926 (dired-move-to-filename)
916 (message "Redisplaying...done"))) 927 (message "Redisplaying...done")))
928
929(defun dired-reset-subdir-switches ()
930 "Set `dired-switches-alist' to nil and revert dired buffer."
931 (interactive)
932 (setq dired-switches-alist nil)
933 (revert-buffer))
917 934
918(defun dired-update-file-line (file) 935(defun dired-update-file-line (file)
919 ;; Delete the current line, and insert an entry for FILE. 936 ;; Delete the current line, and insert an entry for FILE.
@@ -1727,7 +1744,14 @@ If it is already present, just move to it (type \\[dired-do-redisplay] to refres
1727With a prefix arg, you may edit the ls switches used for this listing. 1744With a prefix arg, you may edit the ls switches used for this listing.
1728 You can add `R' to the switches to expand the whole tree starting at 1745 You can add `R' to the switches to expand the whole tree starting at
1729 this subdirectory. 1746 this subdirectory.
1730This function takes some pains to conform to `ls -lR' output." 1747This function takes some pains to conform to `ls -lR' output.
1748
1749Dired remembers switches specified with a prefix arg, so that reverting
1750the buffer will not reset them. However, using `dired-undo' to re-insert
1751or delete subdirectories can bypass this machinery. Hence, you sometimes
1752may have to reset some subdirectory switches after a `dired-undo'.
1753You can reset all subdirectory switches to the default using
1754\\<dired-mode-map>\\[dired-reset-subdir-switches]."
1731 (interactive 1755 (interactive
1732 (list (dired-get-filename) 1756 (list (dired-get-filename)
1733 (if current-prefix-arg 1757 (if current-prefix-arg
@@ -1832,19 +1856,23 @@ This function takes some pains to conform to `ls -lR' output."
1832 (> (dired-get-subdir-min elt1) 1856 (> (dired-get-subdir-min elt1)
1833 (dired-get-subdir-min elt2))))))) 1857 (dired-get-subdir-min elt2)))))))
1834 1858
1835(defun dired-kill-tree (dirname &optional remember-marks) 1859(defun dired-kill-tree (dirname &optional remember-marks kill-root)
1836 "Kill all proper subdirs of DIRNAME, excluding DIRNAME itself. 1860 "Kill all proper subdirs of DIRNAME, excluding DIRNAME itself.
1837With optional arg REMEMBER-MARKS, return an alist of marked files." 1861Interactively, you can kill DIRNAME as well by using a prefix argument.
1838 (interactive "DKill tree below directory: ") 1862In interactive use, the command prompts for DIRNAME.
1839 (setq dirname (expand-file-name dirname)) 1863
1864When called from Lisp, if REMEMBER-MARKS is non-nil, return an alist
1865of marked files. If KILL-ROOT is non-nil, kill DIRNAME as well."
1866 (interactive "DKill tree below directory: \ni\nP")
1867 (setq dirname (file-name-as-directory (expand-file-name dirname)))
1840 (let ((s-alist dired-subdir-alist) dir m-alist) 1868 (let ((s-alist dired-subdir-alist) dir m-alist)
1841 (while s-alist 1869 (while s-alist
1842 (setq dir (car (car s-alist)) 1870 (setq dir (car (car s-alist))
1843 s-alist (cdr s-alist)) 1871 s-alist (cdr s-alist))
1844 (if (and (not (string-equal dir dirname)) 1872 (and (or kill-root (not (string-equal dir dirname)))
1845 (dired-in-this-tree dir dirname) 1873 (dired-in-this-tree dir dirname)
1846 (dired-goto-subdir dir)) 1874 (dired-goto-subdir dir)
1847 (setq m-alist (nconc (dired-kill-subdir remember-marks) m-alist)))) 1875 (setq m-alist (nconc (dired-kill-subdir remember-marks) m-alist))))
1848 m-alist)) 1876 m-alist))
1849 1877
1850(defun dired-insert-subdir-newpos (new-dir) 1878(defun dired-insert-subdir-newpos (new-dir)
diff --git a/lisp/dired.el b/lisp/dired.el
index 589e1fa0489..f206b03cd26 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1448,14 +1448,13 @@ Keybindings:
1448(defun dired-undo () 1448(defun dired-undo ()
1449 "Undo in a dired buffer. 1449 "Undo in a dired buffer.
1450This doesn't recover lost files, it just undoes changes in the buffer itself. 1450This doesn't recover lost files, it just undoes changes in the buffer itself.
1451You can use it to recover marks, killed lines or subdirs. 1451You can use it to recover marks, killed lines or subdirs."
1452In the latter case, you have to do \\[dired-build-subdir-alist] to
1453parse the buffer again."
1454 (interactive) 1452 (interactive)
1455 (let (buffer-read-only) 1453 (let (buffer-read-only)
1456 (undo) 1454 (undo))
1457 (message "Change in Dired buffer undone. 1455 (dired-build-subdir-alist)
1458Actual changes in files cannot be undone by Emacs."))) 1456 (message "Change in Dired buffer undone.
1457Actual changes in files cannot be undone by Emacs."))
1459 1458
1460(defun dired-next-line (arg) 1459(defun dired-next-line (arg)
1461 "Move down lines then position at filename. 1460 "Move down lines then position at filename.
@@ -3037,244 +3036,6 @@ To be called first in body of `dired-sort-other', etc."
3037 ;; listing: 3036 ;; listing:
3038 (list (car (reverse dired-subdir-alist)))))))) 3037 (list (car (reverse dired-subdir-alist))))))))
3039 3038
3040;; To make this file smaller, the less common commands
3041;; go in a separate file. But autoload them here
3042;; to make the separation invisible.
3043
3044(autoload 'dired-diff "dired-aux"
3045 "Compare file at point with file FILE using `diff'.
3046FILE defaults to the file at the mark. (That's the mark set by
3047\\[set-mark-command], not by Dired's \\[dired-mark] command.)
3048The prompted-for file is the first file given to `diff'."
3049 t)
3050
3051(autoload 'dired-backup-diff "dired-aux"
3052 "Diff this file with its backup file or vice versa.
3053Uses the latest backup, if there are several numerical backups.
3054If this file is a backup, diff it with its original.
3055The backup file is the first file given to `diff'."
3056 t)
3057
3058(autoload 'dired-clean-directory "dired-aux"
3059 "Flag numerical backups for deletion.
3060Spares `dired-kept-versions' latest versions, and `kept-old-versions' oldest.
3061Positive prefix arg KEEP overrides `dired-kept-versions';
3062Negative prefix arg KEEP overrides `kept-old-versions' with KEEP made positive.
3063
3064To clear the flags on these files, you can use \\[dired-flag-backup-files]
3065with a prefix argument."
3066 t)
3067
3068(autoload 'dired-do-chmod "dired-aux"
3069 "Change the mode of the marked (or next ARG) files.
3070This calls chmod, thus symbolic modes like `g+w' are allowed."
3071 t)
3072
3073(autoload 'dired-do-chgrp "dired-aux"
3074 "Change the group of the marked (or next ARG) files."
3075 t)
3076
3077(autoload 'dired-do-chown "dired-aux"
3078 "Change the owner of the marked (or next ARG) files."
3079 t)
3080
3081(autoload 'dired-do-touch "dired-aux"
3082 "Change the timestamp of the marked (or next ARG) files."
3083 t)
3084
3085(autoload 'dired-do-print "dired-aux"
3086 "Print the marked (or next ARG) files.
3087Uses the shell command coming from variables `lpr-command' and
3088`lpr-switches' as default."
3089 t)
3090
3091(autoload 'dired-do-shell-command "dired-aux"
3092 "Run a shell command COMMAND on the marked files.
3093If no files are marked or a specific numeric prefix arg is given,
3094the next ARG files are used. Just \\[universal-argument] means the current file.
3095The prompt mentions the file(s) or the marker, as appropriate.
3096
3097If there is a `*' in COMMAND, surrounded by whitespace, this runs
3098COMMAND just once with the entire file list substituted there.
3099
3100If there is no `*', but there is a `?' in COMMAND, surrounded by
3101whitespace, this runs COMMAND on each file individually with the
3102file name substituted for `?'.
3103
3104Otherwise, this runs COMMAND on each file individually with the
3105file name added at the end of COMMAND (separated by a space).
3106
3107`*' and `?' when not surrounded by whitespace have no special
3108significance for `dired-do-shell-command', and are passed through
3109normally to the shell, but you must confirm first. To pass `*' by
3110itself to the shell as a wildcard, type `*\"\"'.
3111
3112If COMMAND produces output, it goes to a separate buffer.
3113
3114This feature does not try to redisplay Dired buffers afterward, as
3115there's no telling what files COMMAND may have changed.
3116Type \\[dired-do-redisplay] to redisplay the marked files.
3117
3118When COMMAND runs, its working directory is the top-level directory of
3119the Dired buffer, so output files usually are created there instead of
3120in a subdir.
3121
3122In a noninteractive call (from Lisp code), you must specify
3123the list of file names explicitly with the FILE-LIST argument."
3124 t)
3125
3126(autoload 'dired-do-kill-lines "dired-aux"
3127 "Kill all marked lines (not the files).
3128With a prefix arg, kill all lines not marked or flagged."
3129 t)
3130
3131(autoload 'dired-do-compress "dired-aux"
3132 "Compress or uncompress marked (or next ARG) files."
3133 t)
3134
3135(autoload 'dired-do-byte-compile "dired-aux"
3136 "Byte compile marked (or next ARG) Emacs Lisp files."
3137 t)
3138
3139(autoload 'dired-do-load "dired-aux"
3140 "Load the marked (or next ARG) Emacs Lisp files."
3141 t)
3142
3143(autoload 'dired-do-redisplay "dired-aux"
3144 "Redisplay all marked (or next ARG) files.
3145If on a subdir line, redisplay that subdirectory. In that case,
3146a prefix arg lets you edit the `ls' switches used for the new listing."
3147 t)
3148
3149(autoload 'dired-create-directory "dired-aux"
3150 "Create a directory called DIRECTORY."
3151 t)
3152
3153(autoload 'dired-do-copy "dired-aux"
3154 "Copy all marked (or next ARG) files, or copy the current file.
3155Thus, a zero prefix argument copies nothing. But it toggles the
3156variable `dired-copy-preserve-time' (which see)."
3157 t)
3158
3159(autoload 'dired-do-symlink "dired-aux"
3160 "Make symbolic links to current file or all marked (or next ARG) files.
3161When operating on just the current file, you specify the new name.
3162When operating on multiple or marked files, you specify a directory
3163and new symbolic links are made in that directory
3164with the same names that the files currently have."
3165 t)
3166
3167(autoload 'dired-do-hardlink "dired-aux"
3168 "Add names (hard links) current file or all marked (or next ARG) files.
3169When operating on just the current file, you specify the new name.
3170When operating on multiple or marked files, you specify a directory
3171and new hard links are made in that directory
3172with the same names that the files currently have."
3173 t)
3174
3175(autoload 'dired-do-rename "dired-aux"
3176 "Rename current file or all marked (or next ARG) files.
3177When renaming just the current file, you specify the new name.
3178When renaming multiple or marked files, you specify a directory."
3179 t)
3180
3181(autoload 'dired-do-rename-regexp "dired-aux"
3182 "Rename marked files containing REGEXP to NEWNAME.
3183As each match is found, the user must type a character saying
3184 what to do with it. For directions, type \\[help-command] at that time.
3185NEWNAME may contain \\=\\<n> or \\& as in `query-replace-regexp'.
3186REGEXP defaults to the last regexp used.
3187With a zero prefix arg, renaming by regexp affects the full file name;
3188usually only the non-directory part of file names is used and changed."
3189 t)
3190
3191(autoload 'dired-do-copy-regexp "dired-aux"
3192 "Copy all marked files containing REGEXP to NEWNAME.
3193See function `dired-do-rename-regexp' for more info."
3194 t)
3195
3196(autoload 'dired-do-hardlink-regexp "dired-aux"
3197 "Hardlink all marked files containing REGEXP to NEWNAME.
3198See function `dired-do-rename-regexp' for more info."
3199 t)
3200
3201(autoload 'dired-do-symlink-regexp "dired-aux"
3202 "Symlink all marked files containing REGEXP to NEWNAME.
3203See function `dired-do-rename-regexp' for more info."
3204 t)
3205
3206(autoload 'dired-upcase "dired-aux"
3207 "Rename all marked (or next ARG) files to upper case."
3208 t)
3209
3210(autoload 'dired-downcase "dired-aux"
3211 "Rename all marked (or next ARG) files to lower case."
3212 t)
3213
3214(autoload 'dired-maybe-insert-subdir "dired-aux"
3215 "Insert this subdirectory into the same dired buffer.
3216If it is already present, just move to it (type \\[dired-do-redisplay] to refresh),
3217 else inserts it at its natural place (as `ls -lR' would have done).
3218With a prefix arg, you may edit the ls switches used for this listing.
3219 You can add `R' to the switches to expand the whole tree starting at
3220 this subdirectory.
3221This function takes some pains to conform to `ls -lR' output."
3222 t)
3223
3224(autoload 'dired-next-subdir "dired-aux"
3225 "Go to next subdirectory, regardless of level."
3226 t)
3227
3228(autoload 'dired-prev-subdir "dired-aux"
3229 "Go to previous subdirectory, regardless of level.
3230When called interactively and not on a subdir line, go to this subdir's line."
3231 t)
3232
3233(autoload 'dired-goto-subdir "dired-aux"
3234 "Go to end of header line of DIR in this dired buffer.
3235Return value of point on success, otherwise return nil.
3236The next char is either \\n, or \\r if DIR is hidden."
3237 t)
3238
3239(autoload 'dired-mark-subdir-files "dired-aux"
3240 "Mark all files except `.' and `..'."
3241 t)
3242
3243(autoload 'dired-kill-subdir "dired-aux"
3244 "Remove all lines of current subdirectory.
3245Lower levels are unaffected."
3246 t)
3247
3248(autoload 'dired-tree-up "dired-aux"
3249 "Go up ARG levels in the dired tree."
3250 t)
3251
3252(autoload 'dired-tree-down "dired-aux"
3253 "Go down in the dired tree."
3254 t)
3255
3256(autoload 'dired-hide-subdir "dired-aux"
3257 "Hide or unhide the current subdirectory and move to next directory.
3258Optional prefix arg is a repeat factor.
3259Use \\[dired-hide-all] to (un)hide all directories."
3260 t)
3261
3262(autoload 'dired-hide-all "dired-aux"
3263 "Hide all subdirectories, leaving only their header lines.
3264If there is already something hidden, make everything visible again.
3265Use \\[dired-hide-subdir] to (un)hide a particular subdirectory."
3266 t)
3267
3268(autoload 'dired-show-file-type "dired-aux"
3269 "Print the type of FILE, according to the `file' command.
3270If FILE is a symbolic link and the optional argument DEREF-SYMLINKS is
3271true then the type of the file linked to by FILE is printed instead."
3272 t)
3273
3274(autoload 'dired-run-shell-command "dired-aux")
3275
3276(autoload 'dired-query "dired-aux")
3277
3278 3039
3279;;;; Drag and drop support 3040;;;; Drag and drop support
3280 3041
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 3cebfd2435b..9a7b9efc333 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -477,7 +477,8 @@ also dependent on the values of `edebug-all-defs' and
477If the current defun is actually a call to `defvar', then reset the 477If the current defun is actually a call to `defvar', then reset the
478variable using its initial value expression even if the variable 478variable using its initial value expression even if the variable
479already has some other value. (Normally `defvar' does not change the 479already has some other value. (Normally `defvar' does not change the
480variable's value if it already has a value.) 480variable's value if it already has a value.) Treat `defcustom'
481similarly. Reinitialize the face according to `defface' specification.
481 482
482With a prefix argument, instrument the code for Edebug. 483With a prefix argument, instrument the code for Edebug.
483 484
@@ -507,7 +508,12 @@ the minibuffer."
507 ((and (eq (car form) 'defcustom) 508 ((and (eq (car form) 'defcustom)
508 (default-boundp (nth 1 form))) 509 (default-boundp (nth 1 form)))
509 ;; Force variable to be bound. 510 ;; Force variable to be bound.
510 (set-default (nth 1 form) (eval (nth 2 form))))) 511 (set-default (nth 1 form) (eval (nth 2 form))))
512 ((eq (car form) 'defface)
513 ;; Reset the face.
514 (put (nth 1 form) 'face-defface-spec nil)
515 (setq face-new-frame-defaults
516 (assq-delete-all (nth 1 form) face-new-frame-defaults))))
511 (setq edebug-result (eval form)) 517 (setq edebug-result (eval form))
512 (if (not edebugging) 518 (if (not edebugging)
513 (princ edebug-result) 519 (princ edebug-result)
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index d6ac05642ba..d471ad79538 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -570,8 +570,9 @@ Interactively, with prefix argument, print output into current buffer."
570 value))) 570 value)))
571 571
572(defun eval-defun-1 (form) 572(defun eval-defun-1 (form)
573 "Change defvar into defconst within FORM. 573 "Treat some expressions specially.
574Likewise for other constructs as necessary." 574Reset the `defvar' and `defcustom' variables to the initial value.
575Reinitialize the face according to the `defface' specification."
575 ;; The code in edebug-defun should be consistent with this, but not 576 ;; The code in edebug-defun should be consistent with this, but not
576 ;; the same, since this gets a macroexpended form. 577 ;; the same, since this gets a macroexpended form.
577 (cond ((not (listp form)) 578 (cond ((not (listp form))
@@ -589,6 +590,13 @@ Likewise for other constructs as necessary."
589 ;; Force variable to be bound. 590 ;; Force variable to be bound.
590 (set-default (eval (nth 1 form)) (eval (nth 1 (nth 2 form)))) 591 (set-default (eval (nth 1 form)) (eval (nth 1 (nth 2 form))))
591 form) 592 form)
593 ;; `defface' is macroexpanded to `custom-declare-face'.
594 ((eq (car form) 'custom-declare-face)
595 ;; Reset the face.
596 (put (eval (nth 1 form)) 'face-defface-spec nil)
597 (setq face-new-frame-defaults
598 (assq-delete-all (eval (nth 1 form)) face-new-frame-defaults))
599 form)
592 ((eq (car form) 'progn) 600 ((eq (car form) 'progn)
593 (cons 'progn (mapcar 'eval-defun-1 (cdr form)))) 601 (cons 'progn (mapcar 'eval-defun-1 (cdr form))))
594 (t form))) 602 (t form)))
@@ -624,7 +632,7 @@ Return the result of evaluation."
624 (setq beg (point)) 632 (setq beg (point))
625 (setq form (read (current-buffer))) 633 (setq form (read (current-buffer)))
626 (setq end (point))) 634 (setq end (point)))
627 ;; Alter the form if necessary, changing defvar into defconst, etc. 635 ;; Alter the form if necessary.
628 (setq form (eval-defun-1 (macroexpand form))) 636 (setq form (eval-defun-1 (macroexpand form)))
629 (list beg end standard-output 637 (list beg end standard-output
630 `(lambda (ignore) 638 `(lambda (ignore)
diff --git a/lisp/ffap.el b/lisp/ffap.el
index 38f7f92405e..dc78bd355be 100644
--- a/lisp/ffap.el
+++ b/lisp/ffap.el
@@ -941,7 +941,7 @@ If t, `ffap-tex-init' will initialize this when needed.")
941 ;; * no commas (good for latex) 941 ;; * no commas (good for latex)
942 (file "--:$+<>@-Z_a-z~" "<@" "@>;.,!?:") 942 (file "--:$+<>@-Z_a-z~" "<@" "@>;.,!?:")
943 ;; An url, or maybe a email/news message-id: 943 ;; An url, or maybe a email/news message-id:
944 (url "--:=&?$+@-Z_a-z~#,%" "^A-Za-z0-9" ":;.,!?") 944 (url "--:=&?$+@-Z_a-z~#,%;" "^A-Za-z0-9" ":;.,!?")
945 ;; Find a string that does *not* contain a colon: 945 ;; Find a string that does *not* contain a colon:
946 (nocolon "--9$+<>@-Z_a-z~" "<@" "@>;.,!?") 946 (nocolon "--9$+<>@-Z_a-z~" "<@" "@>;.,!?")
947 ;; A machine: 947 ;; A machine:
diff --git a/lisp/format.el b/lisp/format.el
index 525588eeca4..f3a5ae2d581 100644
--- a/lisp/format.el
+++ b/lisp/format.el
@@ -750,13 +750,15 @@ to write these unknown annotations back into the file."
750 (message "Unknown annotations: %s" unknown-ans)))))) 750 (message "Unknown annotations: %s" unknown-ans))))))
751 751
752(defun format-subtract-regions (minu subtra) 752(defun format-subtract-regions (minu subtra)
753 "Remove from the regions in MINUend the regions in SUBTRAhend. 753 "Remove from the regions in MINUEND the regions in SUBTRAHEND.
754A region is a dotted pair (FROM . TO). Both parameters are lists of 754A region is a dotted pair (FROM . TO). Both parameters are lists of
755regions. Each list must contain nonoverlapping, noncontiguous 755regions. Each list must contain nonoverlapping, noncontiguous
756regions, in descending order. The result is also nonoverlapping, 756regions, in descending order. The result is also nonoverlapping,
757noncontiguous, and in descending order. The first element of MINUEND 757noncontiguous, and in descending order. The first element of MINUEND
758can have a cdr of nil, indicating that the end of that region is not 758can have a cdr of nil, indicating that the end of that region is not
759yet known." 759yet known.
760
761\(fn MINUEND SUBTRAHEND)"
760 (let* ((minuend (copy-alist minu)) 762 (let* ((minuend (copy-alist minu))
761 (subtrahend (copy-alist subtra)) 763 (subtrahend (copy-alist subtra))
762 (m (car minuend)) 764 (m (car minuend))
@@ -809,8 +811,8 @@ in the region, it is treated as though it were DEFAULT."
809Inserts each element of the given LIST of buffer annotations at its 811Inserts each element of the given LIST of buffer annotations at its
810appropriate place. Use second arg OFFSET if the annotations' locations are 812appropriate place. Use second arg OFFSET if the annotations' locations are
811not relative to the beginning of the buffer: annotations will be inserted 813not relative to the beginning of the buffer: annotations will be inserted
812at their location-OFFSET+1 \(ie, the offset is treated as the character number 814at their location-OFFSET+1 \(ie, the offset is treated as the position of
813of the first character in the buffer)." 815the first character in the buffer)."
814 (if (not offset) 816 (if (not offset)
815 (setq offset 0) 817 (setq offset 0)
816 (setq offset (1- offset))) 818 (setq offset (1- offset)))
@@ -920,7 +922,7 @@ The same TRANSLATIONS structure can be used in reverse for reading files."
920 922
921(defun format-annotate-location (loc all ignore translations) 923(defun format-annotate-location (loc all ignore translations)
922 "Return annotation(s) needed at location LOC. 924 "Return annotation(s) needed at location LOC.
923This includes any properties that change between LOC-1 and LOC. 925This includes any properties that change between LOC - 1 and LOC.
924If ALL is true, don't look at previous location, but generate annotations for 926If ALL is true, don't look at previous location, but generate annotations for
925all non-nil properties. 927all non-nil properties.
926Third argument IGNORE is a list of text-properties not to consider. 928Third argument IGNORE is a list of text-properties not to consider.
diff --git a/lisp/pcvs-defs.el b/lisp/pcvs-defs.el
index dadb194abb9..6fea0052a7d 100644
--- a/lisp/pcvs-defs.el
+++ b/lisp/pcvs-defs.el
@@ -305,6 +305,7 @@ This variable is buffer local and only used in the *cvs* buffer.")
305 ("d" "diff" . cvs-mode-diff) 305 ("d" "diff" . cvs-mode-diff)
306 ("b" "backup" . cvs-mode-diff-backup) 306 ("b" "backup" . cvs-mode-diff-backup)
307 ("h" "head" . cvs-mode-diff-head) 307 ("h" "head" . cvs-mode-diff-head)
308 ("y" "yesterday" . cvs-mode-diff-yesterday)
308 ("v" "vendor" . cvs-mode-diff-vendor)) 309 ("v" "vendor" . cvs-mode-diff-vendor))
309 "Keymap for diff-related operations in `cvs-mode'." 310 "Keymap for diff-related operations in `cvs-mode'."
310 :name "Diff") 311 :name "Diff")
diff --git a/lisp/pcvs.el b/lisp/pcvs.el
index 9e518d791ec..73f7106d0e8 100644
--- a/lisp/pcvs.el
+++ b/lisp/pcvs.el
@@ -1565,6 +1565,12 @@ See ``cvs-mode-diff'' for more info."
1565 (interactive (list (cvs-flags-query 'cvs-diff-flags "cvs diff flags"))) 1565 (interactive (list (cvs-flags-query 'cvs-diff-flags "cvs diff flags")))
1566 (cvs-mode-diff-1 (cons "-rHEAD" flags))) 1566 (cvs-mode-diff-1 (cons "-rHEAD" flags)))
1567 1567
1568(defun-cvs-mode (cvs-mode-diff-yesterday . SIMPLE) (flags)
1569 "Diff the selected files against yesterday's head of the current branch.
1570See ``cvs-mode-diff'' for more info."
1571 (interactive (list (cvs-flags-query 'cvs-diff-flags "cvs diff flags")))
1572 (cvs-mode-diff-1 (cons "-Dyesterday" flags)))
1573
1568(defun-cvs-mode (cvs-mode-diff-vendor . SIMPLE) (flags) 1574(defun-cvs-mode (cvs-mode-diff-vendor . SIMPLE) (flags)
1569 "Diff the selected files against the head of the vendor branch. 1575 "Diff the selected files against the head of the vendor branch.
1570See ``cvs-mode-diff'' for more info." 1576See ``cvs-mode-diff'' for more info."
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 0a1ed9e7077..3a880a4c9ea 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -210,7 +210,7 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
210 210
211 (gnu 211 (gnu
212 "^\\(?:[[:alpha:]][-[:alnum:].]+: ?\\)?\ 212 "^\\(?:[[:alpha:]][-[:alnum:].]+: ?\\)?\
213\\([/.]*[a-zA-Z]:?[^ \t\n:]*\\): ?\ 213\\([/.]*[a-zA-Z]:?[^ \t\n:]*\\|{standard input}\\): ?\
214\\([0-9]+\\)\\([.:]?\\)\\([0-9]+\\)?\ 214\\([0-9]+\\)\\([.:]?\\)\\([0-9]+\\)?\
215\\(?:-\\(?:\\([0-9]+\\)\\3\\)?\\.?\\([0-9]+\\)?\\)?:\ 215\\(?:-\\(?:\\([0-9]+\\)\\3\\)?\\.?\\([0-9]+\\)?\\)?:\
216\\(?: *\\(\\(?:Future\\|Runtime\\)?[Ww]arning\\|W:\\)\\|\ 216\\(?: *\\(\\(?:Future\\|Runtime\\)?[Ww]arning\\|W:\\)\\|\
@@ -242,7 +242,9 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1))
242: \\(?:error\\|warnin\\(g\\)\\) C[0-9]+:" 1 2 nil (3)) 242: \\(?:error\\|warnin\\(g\\)\\) C[0-9]+:" 1 2 nil (3))
243 243
244 (oracle 244 (oracle
245 "^Semantic error at line \\([0-9]+\\), column \\([0-9]+\\), file \\(.*\\):$" 245 "^\\(?:Semantic error\\|Error\\|PCC-[0-9]+:\\).* line \\([0-9]+\\)\
246\\(?:\\(?:,\\| at\\)? column \\([0-9]+\\)\\)?\
247\\(?:,\\| in\\| of\\)? file \\(.*?\\):?$"
246 3 1 2) 248 3 1 2)
247 249
248 (perl 250 (perl
@@ -988,13 +990,11 @@ exited abnormally with code %d\n"
988 ;; If window is alone in its frame, aside from a minibuffer, 990 ;; If window is alone in its frame, aside from a minibuffer,
989 ;; don't change its height. 991 ;; don't change its height.
990 (not (eq window (frame-root-window (window-frame window)))) 992 (not (eq window (frame-root-window (window-frame window))))
991 ;; This save-current-buffer prevents us from changing the current 993 ;; Stef said that doing the saves in this order is safer:
992 ;; buffer, which might not be the same as the selected window's buffer. 994 (save-excursion
993 (save-current-buffer
994 (save-selected-window 995 (save-selected-window
995 (save-excursion 996 (select-window window)
996 (select-window window) 997 (enlarge-window (- height (window-height))))))))
997 (enlarge-window (- height (window-height)))))))))
998 998
999(defvar compilation-menu-map 999(defvar compilation-menu-map
1000 (let ((map (make-sparse-keymap "Errors"))) 1000 (let ((map (make-sparse-keymap "Errors")))
diff --git a/lisp/replace.el b/lisp/replace.el
index f7afcd594cf..014762be53e 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -1132,7 +1132,7 @@ make, or the user didn't cancel the call."
1132 (unwind-protect 1132 (unwind-protect
1133 ;; Loop finding occurrences that perhaps should be replaced. 1133 ;; Loop finding occurrences that perhaps should be replaced.
1134 (while (and keep-going 1134 (while (and keep-going
1135 (not (eobp)) 1135 (not (or (eobp) (and limit (>= (point) limit))))
1136 ;; Use the next match if it is already known; 1136 ;; Use the next match if it is already known;
1137 ;; otherwise, search for a match after moving forward 1137 ;; otherwise, search for a match after moving forward
1138 ;; one char if progress is required. 1138 ;; one char if progress is required.
@@ -1148,7 +1148,10 @@ make, or the user didn't cancel the call."
1148 ;; character too far at the end, 1148 ;; character too far at the end,
1149 ;; but this is undone after the 1149 ;; but this is undone after the
1150 ;; while-loop. 1150 ;; while-loop.
1151 (progn (forward-char 1) (not (eobp)))) 1151 (progn
1152 (forward-char 1)
1153 (not (or (eobp)
1154 (and limit (>= (point) limit))))))
1152 (funcall search-function search-string limit t) 1155 (funcall search-function search-string limit t)
1153 ;; For speed, use only integers and 1156 ;; For speed, use only integers and
1154 ;; reuse the list used last time. 1157 ;; reuse the list used last time.
diff --git a/lisp/saveplace.el b/lisp/saveplace.el
index 3e40f118a41..249bdfe00e3 100644
--- a/lisp/saveplace.el
+++ b/lisp/saveplace.el
@@ -207,7 +207,9 @@ may have changed\) back to `save-place-alist'."
207 (delete-region (point-min) (point-max)) 207 (delete-region (point-min) (point-max))
208 (when save-place-forget-unreadable-files 208 (when save-place-forget-unreadable-files
209 (save-place-forget-unreadable-files)) 209 (save-place-forget-unreadable-files))
210 (print save-place-alist (current-buffer)) 210 (let ((print-length nil)
211 (print-level nil))
212 (print save-place-alist (current-buffer)))
211 (let ((version-control 213 (let ((version-control
212 (cond 214 (cond
213 ((null save-place-version-control) nil) 215 ((null save-place-version-control) nil)
diff --git a/lisp/simple.el b/lisp/simple.el
index 9187c0db484..94557956de0 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -37,7 +37,7 @@
37 37
38 38
39(defgroup killing nil 39(defgroup killing nil
40 "Killing and yanking commands" 40 "Killing and yanking commands."
41 :group 'editing) 41 :group 'editing)
42 42
43(defgroup paren-matching nil 43(defgroup paren-matching nil
@@ -133,7 +133,7 @@ to navigate in it.")
133 (if other-buffer 133 (if other-buffer
134 (message "This is the only next-error capable buffer.")) 134 (message "This is the only next-error capable buffer."))
135 (current-buffer))) 135 (current-buffer)))
136 (error "No next-error capable buffer found!")))))))) 136 (error "No next-error capable buffer found"))))))))
137 137
138(defun next-error (arg &optional reset) 138(defun next-error (arg &optional reset)
139 "Visit next next-error message and corresponding source code. 139 "Visit next next-error message and corresponding source code.
@@ -791,12 +791,12 @@ Return a formatted string which is displayed in the echo area
791in addition to the value printed by prin1 in functions which 791in addition to the value printed by prin1 in functions which
792display the result of expression evaluation." 792display the result of expression evaluation."
793 (if (and (integerp value) 793 (if (and (integerp value)
794 (or (not (eq this-command 'eval-last-sexp)) 794 (or (not (memq this-command '(eval-last-sexp eval-print-last-sexp)))
795 (eq this-command last-command) 795 (eq this-command last-command)
796 (and (boundp 'edebug-active) edebug-active))) 796 (and (boundp 'edebug-active) edebug-active)))
797 (let ((char-string 797 (let ((char-string
798 (if (or (and (boundp 'edebug-active) edebug-active) 798 (if (or (and (boundp 'edebug-active) edebug-active)
799 (eq this-command 'eval-last-sexp)) 799 (memq this-command '(eval-last-sexp eval-print-last-sexp)))
800 (prin1-char value)))) 800 (prin1-char value))))
801 (if char-string 801 (if char-string
802 (format " (0%o, 0x%x) = %s" value value char-string) 802 (format " (0%o, 0x%x) = %s" value value char-string)
@@ -2107,7 +2107,7 @@ the text, but put the text in the kill ring anyway. This means that
2107you can use the killing commands to copy text from a read-only buffer. 2107you can use the killing commands to copy text from a read-only buffer.
2108 2108
2109This is the primitive for programs to kill text (as opposed to deleting it). 2109This is the primitive for programs to kill text (as opposed to deleting it).
2110Supply two arguments, character numbers indicating the stretch of text 2110Supply two arguments, character positions indicating the stretch of text
2111 to be killed. 2111 to be killed.
2112Any command that calls this function is a \"kill command\". 2112Any command that calls this function is a \"kill command\".
2113If the previous command was also a kill command, 2113If the previous command was also a kill command,
@@ -2224,7 +2224,7 @@ The argument is used for internal purposes; do not supply one."
2224The value should be a list of text properties to discard or t, 2224The value should be a list of text properties to discard or t,
2225which means to discard all text properties." 2225which means to discard all text properties."
2226 :type '(choice (const :tag "All" t) (repeat symbol)) 2226 :type '(choice (const :tag "All" t) (repeat symbol))
2227 :group 'editing 2227 :group 'killing
2228 :version "21.4") 2228 :version "21.4")
2229 2229
2230(defvar yank-window-start nil) 2230(defvar yank-window-start nil)
diff --git a/lisp/subr.el b/lisp/subr.el
index 747f1925ad5..50216bb7536 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1339,7 +1339,7 @@ Optional DEFAULT is a default password to use instead of empty input."
1339 (replace-match (format " (default %s)" default) t t prompt 1) 1339 (replace-match (format " (default %s)" default) t t prompt 1)
1340 (replace-regexp-in-string "[ \t]*\\'" 1340 (replace-regexp-in-string "[ \t]*\\'"
1341 (format " (default %s) " default) 1341 (format " (default %s) " default)
1342 prompt t t)))) 1342 prompt t t))))
1343 (while 1343 (while
1344 (progn 1344 (progn
1345 (let ((str (read-from-minibuffer prompt nil nil nil nil 1345 (let ((str (read-from-minibuffer prompt nil nil nil nil
@@ -1708,8 +1708,8 @@ If UNDO is present and non-nil, it is a function that will be called
1708(defun insert-buffer-substring-no-properties (buffer &optional start end) 1708(defun insert-buffer-substring-no-properties (buffer &optional start end)
1709 "Insert before point a substring of BUFFER, without text properties. 1709 "Insert before point a substring of BUFFER, without text properties.
1710BUFFER may be a buffer or a buffer name. 1710BUFFER may be a buffer or a buffer name.
1711Arguments START and END are character numbers specifying the substring. 1711Arguments START and END are character positions specifying the substring.
1712They default to the beginning and the end of BUFFER." 1712They default to the values of (point-min) and (point-max) in BUFFER."
1713 (let ((opoint (point))) 1713 (let ((opoint (point)))
1714 (insert-buffer-substring buffer start end) 1714 (insert-buffer-substring buffer start end)
1715 (let ((inhibit-read-only t)) 1715 (let ((inhibit-read-only t))
@@ -1718,8 +1718,8 @@ They default to the beginning and the end of BUFFER."
1718(defun insert-buffer-substring-as-yank (buffer &optional start end) 1718(defun insert-buffer-substring-as-yank (buffer &optional start end)
1719 "Insert before point a part of BUFFER, stripping some text properties. 1719 "Insert before point a part of BUFFER, stripping some text properties.
1720BUFFER may be a buffer or a buffer name. 1720BUFFER may be a buffer or a buffer name.
1721Arguments START and END are character numbers specifying the substring. 1721Arguments START and END are character positions specifying the substring.
1722They default to the beginning and the end of BUFFER. 1722They default to the values of (point-min) and (point-max) in BUFFER.
1723Strip text properties from the inserted text according to 1723Strip text properties from the inserted text according to
1724`yank-excluded-properties'." 1724`yank-excluded-properties'."
1725 ;; Since the buffer text should not normally have yank-handler properties, 1725 ;; Since the buffer text should not normally have yank-handler properties,
diff --git a/lisp/toolbar/lc-copy.xpm b/lisp/toolbar/lc-copy.xpm
new file mode 100644
index 00000000000..f50fb51baf5
--- /dev/null
+++ b/lisp/toolbar/lc-copy.xpm
@@ -0,0 +1,33 @@
1/* XPM */
2static char * copy2_xpm[] = {
3"24 24 6 1",
4" c None",
5". c #FFFFFF",
6"+ c #000100",
7"@ c #6B6B66",
8"# c #BBBDBA",
9"$ c #504D46",
10" ",
11" +++++++++++++ ",
12" +#..........#+ ",
13" +............+ ",
14" +.#@@@.#@.@#.+ ",
15" +............+ ",
16" +.@$.@@#.++++++++++++ ",
17" +.......+#..........#+ ",
18" +.#@@.@@+............+ ",
19" +.......+.#@@#.#@.@#.+ ",
20" +.@$$.@@+............+ ",
21" +.......+.@@.@@#.#@..+ ",
22" +.#@@.@@+............+ ",
23" +.......+.#@@.@@#.#@.+ ",
24" +#......+............+ ",
25" ++++++++.@@@.@@#.#@.+ ",
26" +............+ ",
27" +.#@@.@@#.#@.+ ",
28" +............+ ",
29" +#..........#+ ",
30" ++++++++++++++ ",
31" ",
32" ",
33" "};
diff --git a/lisp/toolbar/lc-cut.xpm b/lisp/toolbar/lc-cut.xpm
new file mode 100644
index 00000000000..750ec729f60
--- /dev/null
+++ b/lisp/toolbar/lc-cut.xpm
@@ -0,0 +1,34 @@
1/* XPM */
2static char * cut2_xpm[] = {
3"24 24 7 1",
4" c None",
5". c #000100",
6"+ c #BBBDBA",
7"@ c #FFFFFF",
8"# c #6B6B66",
9"$ c #504D46",
10"% c #3E4850",
11" ",
12" ",
13" . . ",
14" . . ",
15" .+. .@. ",
16" .@$ #@. ",
17" .@#. .@+. ",
18" .@+$ #@+. ",
19" #@#. .@+$ ",
20" .@+$ $@+. ",
21" #@#.%@+# ",
22" .@+$#++. ",
23" .@+$+. ",
24" .++.. ",
25" ..#$. ",
26" ............. ",
27" . ... ... ... ",
28" .. .. .. .. ",
29" . . . . ",
30" .. .. .. .. ",
31" .... .. . ",
32" .... .... ",
33" ",
34" "};
diff --git a/lisp/toolbar/lc-help.xpm b/lisp/toolbar/lc-help.xpm
new file mode 100644
index 00000000000..663460c3a06
--- /dev/null
+++ b/lisp/toolbar/lc-help.xpm
@@ -0,0 +1,39 @@
1/* XPM */
2static char * help2_xpm[] = {
3"24 24 12 1",
4" c None",
5". c #000100",
6"+ c #FFFFFF",
7"@ c #BBBDBA",
8"# c #C43107",
9"$ c #EBA291",
10"% c #D15237",
11"& c #504D46",
12"* c #751805",
13"= c #6B6B66",
14"- c #974F3D",
15"; c #3E4850",
16" .. &....& ",
17" ....&.;@++++@..&.... ",
18".. &.+++++++++@.. .. ",
19" . .%$+++++++++@#*. . ",
20" ..%$$%+@@@++++###*... ",
21" -.$$%%$@@@@@+$####.. ",
22" .$$$%#*.....=#%####. ",
23" =+$%#*.. .*#$##$.. ",
24"&++@%#.. .*$$+@.. ",
25".++@@-. *$++@&. ",
26".++@@@. .+++@=. ",
27".++@@@. .++@@&. ",
28".+++@@. =++@@.. ",
29"&@++@@-. .$++@@.. ",
30" .+++$%*. .-$$@@=.. ",
31" .@$%%$%*...&$$$%#$.. ",
32" &.###%$$++++$$###... ",
33" ..*####$++++$###*... ",
34" . .*###+++@@@%#... . ",
35" . ..#@@@@@@@&... . ",
36" .......&&&..... .. ",
37" ........ .... ",
38" ",
39" "};
diff --git a/lisp/toolbar/lc-home.xpm b/lisp/toolbar/lc-home.xpm
new file mode 100644
index 00000000000..c7a7ecfb634
--- /dev/null
+++ b/lisp/toolbar/lc-home.xpm
@@ -0,0 +1,38 @@
1/* XPM */
2static char * home2_xpm[] = {
3"24 24 11 1",
4" c None",
5". c #000100",
6"+ c #BBBDBA",
7"@ c #FFFFFF",
8"# c #6B6B66",
9"$ c #504D46",
10"% c #974F3D",
11"& c #EBA291",
12"* c #87AF85",
13"= c #3E4850",
14"- c #D15237",
15" ",
16" .. ",
17" .... ..=. ",
18" .%%..===.. ",
19" .%%..$$#$.. ",
20" .%..=+#++$.. ",
21" ...$#+#++@$.. ",
22" ..$+#++@+@+#.. ",
23" ..#+++@+@+@+@#.. ",
24" ..+++@+@+@+@+@+#.. ",
25" ..+++++++++.....##.. ",
26" ....@@@@@@@@.++@.#.... ",
27" .+@.....@.+@@.#. ",
28" .+@.&&%.@.+@@.#. ",
29" .#@.&-%.@.....#. ",
30" ..@.&-..++####.. ",
31" ..@.&-%.@@@@@+. ",
32" .+.&%%.+++++#. ",
33" .+.-%%.@@@@@#. ",
34" .................... . ",
35" .****##$$$.**#$#$. ",
36" .. ......... ...... ",
37" ... ",
38" "};
diff --git a/lisp/toolbar/lc-index.xpm b/lisp/toolbar/lc-index.xpm
new file mode 100644
index 00000000000..7a2464f032b
--- /dev/null
+++ b/lisp/toolbar/lc-index.xpm
@@ -0,0 +1,34 @@
1/* XPM */
2static char * index2_xpm[] = {
3"24 24 7 1",
4" c None",
5". c #BBBDBA",
6"+ c #000100",
7"@ c #FFFFFF",
8"# c #6B6B66",
9"$ c #504D46",
10"% c #3E4850",
11" ",
12" ++++++++++++++++++++ ",
13" +@@@@@@@@@@@@@@@@@.+ ",
14" +@................#+ ",
15" +@................#+ ",
16" +@#################+ ",
17" +@@@@@@@@@@@@@@@@@.+ ",
18" +@.................+ ",
19" +@........+........+ ",
20" +@.......$@+###...#+ ",
21" +@@@@@@@.$@+...@@@.+ ",
22" +@.......#@+#......+ ",
23" +@.......#@$+#+#...+ ",
24" +@.....#+#@#@+@++##+ ",
25" +@@@@@@+@.@.@#@#.+.+ ",
26" +@.....+@.@#@#@##+.+ ",
27" +@.....+@.@.....#+.+ ",
28" +@.....+........#+#+ ",
29" +@@@@@.+.#.....##+.+ ",
30" +@@@@@..%$######+#.+ ",
31" +@@@@@@.#+$#$#$#+..+ ",
32" +@........++++++$#.+ ",
33" ++++++++++@...@@++++ ",
34" ++++++++ "};
diff --git a/lisp/toolbar/lc-jump_to.xpm b/lisp/toolbar/lc-jump_to.xpm
new file mode 100644
index 00000000000..cd7499396c7
--- /dev/null
+++ b/lisp/toolbar/lc-jump_to.xpm
@@ -0,0 +1,35 @@
1/* XPM */
2static char * jump_to2_xpm[] = {
3"24 24 8 1",
4" c None",
5". c #D3B354",
6"+ c #000100",
7"@ c #87AF85",
8"# c #974F3D",
9"$ c #FFFFFF",
10"% c #D15237",
11"& c #BBBDBA",
12" ",
13" ",
14" + ",
15" ++ ",
16" +@+ ++++++ ",
17" ++++++@@+ +.#..%#++ ",
18" +$$$$$@@@+........++ ",
19" +&@@@@@@@@+........+ ",
20" +&@@@@@@@@@+.......#+ ",
21" +@@@@@@@@@@@+......%+ ",
22" +@@@@@@@@@@+........+ ",
23" +@@@@@@@@@+.........+ ",
24" +@@@@@@@@+#........#+ ",
25" ++++++@@+#..........+ ",
26" +@++#.........+ ",
27" ++ ++........++ ",
28" + +.%..#.++ ",
29" ++++++ ",
30" ",
31" ",
32" ",
33" ",
34" ",
35" "};
diff --git a/lisp/toolbar/lc-left_arrow.xpm b/lisp/toolbar/lc-left_arrow.xpm
new file mode 100644
index 00000000000..61dded3a5aa
--- /dev/null
+++ b/lisp/toolbar/lc-left_arrow.xpm
@@ -0,0 +1,34 @@
1/* XPM */
2static char * left_arrow2_xpm[] = {
3"24 24 7 1",
4" c None",
5". c #87AF85",
6"+ c #000100",
7"@ c #BBBDBA",
8"# c #504D46",
9"$ c #6B6B66",
10"% c #3E4850",
11" ",
12" ",
13" ",
14" + ",
15" ++ ",
16" +@+ ",
17" +@@+ ",
18" +@@@++++++++ ",
19" +@@@@@@@@@@.+ ",
20" +@.@@@@...@.$+ ",
21" %@.@@@..@@@@..+ ",
22" +@............$+ ",
23" +#...........#+ ",
24" +#..........#+ ",
25" +#..########+ ",
26" +#.#++++++++ ",
27" +##+ ",
28" +#+ ",
29" ++ ",
30" + ",
31" ",
32" ",
33" ",
34" "};
diff --git a/lisp/toolbar/lc-new.xpm b/lisp/toolbar/lc-new.xpm
new file mode 100644
index 00000000000..e2984bffd4f
--- /dev/null
+++ b/lisp/toolbar/lc-new.xpm
@@ -0,0 +1,33 @@
1/* XPM */
2static char * new2_xpm[] = {
3"24 24 6 1",
4" c None",
5". c #FFFFFF",
6"+ c #BBBDBA",
7"@ c #000100",
8"# c #6B6B66",
9"$ c #504D46",
10" ",
11" @@@@@@@@@@@@@ ",
12" @+..........+$@ ",
13" @...........+++@ ",
14" @...........+..+@ ",
15" @...........+...#@ ",
16" @...........+...++@ ",
17" @...........+@@@@@@@ ",
18" @............++++##@ ",
19" @.............++++#@ ",
20" @...............++#@ ",
21" @................+#@ ",
22" @.................#@ ",
23" @.................+@ ",
24" @.................+@ ",
25" @...............+++@ ",
26" @..............++++@ ",
27" @.............+++++@ ",
28" @............++++++@ ",
29" @............++++++@ ",
30" @+...+.+.+.++++++++@ ",
31" @+++++++++++++++++#@ ",
32" @@@@@@@@@@@@@@@@@@ ",
33" "};
diff --git a/lisp/toolbar/lc-open.xpm b/lisp/toolbar/lc-open.xpm
new file mode 100644
index 00000000000..0e074830bb6
--- /dev/null
+++ b/lisp/toolbar/lc-open.xpm
@@ -0,0 +1,35 @@
1/* XPM */
2static char * open2_xpm[] = {
3"24 24 8 1",
4" c None",
5". c #BBBDBA",
6"+ c #000100",
7"@ c #87AF85",
8"# c #FFFFFF",
9"$ c #6B6B66",
10"% c #504D46",
11"& c #3E4850",
12" ",
13" ",
14" ",
15" +++++++ ",
16" +.#####$% ",
17" +#.....@% ",
18"+.#......%+ ",
19"+..@@@...$%++++++++ ",
20"+.@@@@@..@@........+ ",
21"+.@@@@@@@@@@@@@@@@$+ ",
22"+.$$++++++++++++++++++ ",
23"+.$%################..& ",
24"+.$+#.................+ ",
25"+.%.#...............@$+ ",
26"+.+#...............@@%+ ",
27"+.$#............@@.@$+ ",
28"+....@@@@@.....@@@@$%+ ",
29"+.#..@@@@@@@@@@@@$$$+ ",
30"+#.@@@@$$$$$$$$$$$$%+ ",
31" +++++++++++++++++++ ",
32" ",
33" ",
34" ",
35" "};
diff --git a/lisp/toolbar/lc-paste.xpm b/lisp/toolbar/lc-paste.xpm
new file mode 100644
index 00000000000..c728f0f038c
--- /dev/null
+++ b/lisp/toolbar/lc-paste.xpm
@@ -0,0 +1,35 @@
1/* XPM */
2static char * paste2_xpm[] = {
3"24 24 8 1",
4" c None",
5". c #FFFFFF",
6"+ c #BBBDBA",
7"@ c #000100",
8"# c #6B6B66",
9"$ c #504D46",
10"% c #D3B354",
11"& c #974F3D",
12" @@@@ ",
13" @@@@@@+..#@@@@@@ ",
14"@.....$.++#$+...+@ ",
15"@.++++$.##+$#+++%@ ",
16"@.+++$..+++#$#++%@ ",
17"@.++$++++++#$$++%@ ",
18"@.++#$$$$$$$$#++%@ ",
19"@.+++########+++%@ ",
20"@.+++++#$@@@@@$$@@@@@ ",
21"@.+++++$+...........+@ ",
22"@.+++++$.............@ ",
23"@.+++++@.+##+..+#.#+.@ ",
24"@.+++++@.............@ ",
25"@.+++++$.##.###+.+#..@ ",
26"@.+++++$.............@ ",
27"@.+++++$.+##.###+.+#.@ ",
28"@.+++++@.............@ ",
29"@.+++++@.##.###+.+#..@ ",
30"@.+++++$.............@ ",
31"@.+++++$.+##.###+.+#.@ ",
32"@+%%%%&@.............@ ",
33" @@@@@@@+...........+@ ",
34" @@@@@@@@@@@@@ ",
35" "};
diff --git a/lisp/toolbar/lc-preferences.xpm b/lisp/toolbar/lc-preferences.xpm
new file mode 100644
index 00000000000..cebac821d6e
--- /dev/null
+++ b/lisp/toolbar/lc-preferences.xpm
@@ -0,0 +1,37 @@
1/* XPM */
2static char * preferences2_xpm[] = {
3"24 24 10 1",
4" c None",
5". c #000100",
6"+ c #BBBDBA",
7"@ c #FFFFFF",
8"# c #7A98B0",
9"$ c #6B6B66",
10"% c #4D687C",
11"& c #B0CCE2",
12"* c #504D46",
13"= c #3E4850",
14" .. ",
15" .++$. ",
16" .+++. .. ",
17" .@+. .@$. ",
18" .. =@+. .@++. ",
19" .+ ..+@+$. .++. ",
20" .+++@@+++. .@.. ",
21" .+++++++$. .@. ",
22" .....@@+$..+. ",
23" .@@+.+. ",
24" .@.+.. ",
25" .+.$*. ",
26" ....+.$$$$. ",
27" .#&#.. .+++$. ",
28" .#&+&%. .@@+$. ",
29" .#@#%&%. .@@+$. ",
30" .#@#%&#%. .@@+$..",
31" .&@#%&#%. .+$*+.",
32" .#@#%&#%. .+++.",
33" .&@#&#%.. ... ",
34" .#&&#%.. ",
35" .##%.. ",
36" ... ",
37" "};
diff --git a/lisp/toolbar/lc-print.xpm b/lisp/toolbar/lc-print.xpm
new file mode 100644
index 00000000000..8c67bb632f0
--- /dev/null
+++ b/lisp/toolbar/lc-print.xpm
@@ -0,0 +1,33 @@
1/* XPM */
2static char * print2_xpm[] = {
3"24 24 6 1",
4" c None",
5". c #FFFFFF",
6"+ c #000100",
7"@ c #BBBDBA",
8"# c #6B6B66",
9"$ c #504D46",
10" ",
11" ++++++++++++ ",
12" +@..........@+ ",
13" +.........@@@+ ",
14" +.###.#@@...@+ ",
15" +...........@+ ",
16" +.##@.#@.@#.@+ ",
17" +...........@+ ",
18" +.@@.@.@@@..@+ ",
19" +....@......@+ ",
20" ++.###@##@#@@@++ ",
21" +.+@@@@@@@@@@@@+#+ ",
22" +..#$++++++++++##@@+ ",
23" +....................+ ",
24" +@#...............@@@+ ",
25" +@#.@@@@@@@@@@@@@@#@#+ ",
26" +@#...............$##+ ",
27" +@#$$$$$$$$$$$$$$$$##+ ",
28" +@@###$#$$$$$$$$$$###+ ",
29" +#@@#########$#######+ ",
30" ++++++++++++++++++++ ",
31" +#@@@@@@@@@@@@@@@##+ ",
32" ++++++++++++++++++ ",
33" "};
diff --git a/lisp/toolbar/lc-right_arrow.xpm b/lisp/toolbar/lc-right_arrow.xpm
new file mode 100644
index 00000000000..a74b70c74b3
--- /dev/null
+++ b/lisp/toolbar/lc-right_arrow.xpm
@@ -0,0 +1,33 @@
1/* XPM */
2static char * right_arrow2_xpm[] = {
3"24 24 6 1",
4" c None",
5". c #87AF85",
6"+ c #000100",
7"@ c #BBBDBA",
8"# c #6B6B66",
9"$ c #504D46",
10" ",
11" ",
12" ",
13" + ",
14" ++ ",
15" +.+ ",
16" +..+ ",
17" ++++++++@..+ ",
18" +@@@@@@@@@..+ ",
19" +@@..........+ ",
20" +..........@..+ ",
21" +.............$+ ",
22" +............$+ ",
23" +...........$+ ",
24" +.######...$+ ",
25" ++++++++#.$+ ",
26" +#$+ ",
27" +$+ ",
28" ++ ",
29" + ",
30" ",
31" ",
32" ",
33" "};
diff --git a/lisp/toolbar/lc-save.xpm b/lisp/toolbar/lc-save.xpm
new file mode 100644
index 00000000000..fd3156abfbf
--- /dev/null
+++ b/lisp/toolbar/lc-save.xpm
@@ -0,0 +1,39 @@
1/* XPM */
2static char * save2_xpm[] = {
3"24 24 12 1",
4" c None",
5". c #FFFFFF",
6"+ c #000100",
7"@ c #BBBDBA",
8"# c #7A98B0",
9"$ c #6B6B66",
10"% c #EBA291",
11"& c #3E4850",
12"* c #B0CCE2",
13"= c #4D687C",
14"- c #504D46",
15"; c #974F3D",
16" ",
17" +++++++++++++++++++ ",
18" +**$%%%%%%%%%%%%@$**+ ",
19" +*#$%%%%%%%%;;%;;$#=+ ",
20" +*#$%%%%%%;%;%;;;$#=+ ",
21" +*#$.............$#=+ ",
22" +*#$.............$#=+ ",
23" +*#$@@@@@@@@@@@@@$#=+ ",
24" +*#$.............$#=+ ",
25" +*#$.............$#=+ ",
26" +*#$@@@@@@@@@@@@@$#$+ ",
27" +*#$.............$#&+ ",
28" +*##$$$$$$$$$$$$$$#&+ ",
29" +*#################&+ ",
30" +*###&&&==$$$$&&&#*&+ ",
31" +*##&@@....@@@@$==*&+ ",
32" +*##&@.$--@@@@@&==*&+ ",
33" +*##&..$--@@@@@&==*&+ ",
34" +*##&..---@@@..&==*&+ ",
35" +###&@@---@@...&==*&+ ",
36" +==&@@@@@@..@@&==*&+ ",
37" ++++++++++++++++&+ ",
38" ",
39" "};
diff --git a/lisp/toolbar/lc-saveas.xpm b/lisp/toolbar/lc-saveas.xpm
new file mode 100644
index 00000000000..11cc684c22d
--- /dev/null
+++ b/lisp/toolbar/lc-saveas.xpm
@@ -0,0 +1,40 @@
1/* XPM */
2static char * saveas2_xpm[] = {
3"24 24 13 1",
4" c None",
5". c #000100",
6"+ c #BBBDBA",
7"@ c #7A98B0",
8"# c #FFFFFF",
9"$ c #6B6B66",
10"% c #3E4850",
11"& c #B0CCE2",
12"* c #4D687C",
13"= c #EBA291",
14"- c #504D46",
15"; c #D3B354",
16"> c #974F3D",
17" .. ",
18" .;;. ",
19" .............;;-... ",
20" .&&$========.;;-.%@@. ",
21" .&@$=======.;;-.>-@*. ",
22" .&@$======.;;-.>>%@*. ",
23" .&@$#####.;;-.++#$@*. ",
24" .&@$####.;;-.++##$@*. ",
25" .&@$+++.;;-.+++++$@*. ",
26" .&@$###.;-.++####$@*. ",
27" .&@$##.-..++#####$@*. ",
28" .&@$++..+++++++++$@$. ",
29" .&@$###++########$@%. ",
30" .&@@$$$$$$$$$$$$$$@%. ",
31" .&@@@@@@@@@@@@@@@@@%. ",
32" .&@@@%%%**$$$$%%%@&%. ",
33" .&@@%++####++++$**&%. ",
34" .&@@%+#$--+++++%**&%. ",
35" .&@@%##$--+++++%**&%. ",
36" .&@@%##---+++##%**&%. ",
37" .@@@%++---++###%**&%. ",
38" .**%++++++##++%**&%. ",
39" ................%. ",
40" "};
diff --git a/lisp/toolbar/lc-search.xpm b/lisp/toolbar/lc-search.xpm
new file mode 100644
index 00000000000..478b63ff648
--- /dev/null
+++ b/lisp/toolbar/lc-search.xpm
@@ -0,0 +1,33 @@
1/* XPM */
2static char * search2_xpm[] = {
3"24 24 6 1",
4" c None",
5". c #FFFFFF",
6"+ c #BBBDBA",
7"@ c #000100",
8"# c #6B6B66",
9"$ c #504D46",
10" ",
11" @@@@@@@@@@@@@ ",
12" @+..........+$@ ",
13" @...........+++@ ",
14" @...........+..+@ ",
15" @...........+...#@ ",
16" @...........+...++@ ",
17" @....+$@@$+.+@@@@@@@ ",
18" @...+$+++#$+.++++##@ ",
19" @...$+..++#$..++++#@ ",
20" @...@+.++++@+...++#@ ",
21" @...@++++++@++...+#@ ",
22" @...$#+++++$++....#@ ",
23" @...+$#+++@@++....+@ ",
24" @...+#$@@$#@@+....+@ ",
25" @....++++++@@@+++++@ ",
26" @....++++++#@@@++++@ ",
27" @.....++++++#@@@+++@ ",
28" @..........++#@@+++@ ",
29" @..........++++++++@ ",
30" @+...+.+.+.++++++++@ ",
31" @+++++++++++++#####@ ",
32" @@@@@@@@@@@@@@@@@@ ",
33" "};
diff --git a/lisp/toolbar/lc-spell.xpm b/lisp/toolbar/lc-spell.xpm
new file mode 100644
index 00000000000..ec952467cc5
--- /dev/null
+++ b/lisp/toolbar/lc-spell.xpm
@@ -0,0 +1,35 @@
1/* XPM */
2static char * spell2_xpm[] = {
3"24 24 8 1",
4" c None",
5". c #000100",
6"+ c #87AF85",
7"@ c #504D46",
8"# c #BBBDBA",
9"$ c #6B6B66",
10"% c #3E4850",
11"& c #FFFFFF",
12" ",
13" ",
14" ",
15" ",
16" ... .... ... ",
17" .. . .. . .. . ",
18" .. . .... .. ",
19" ..... .. . .. ",
20" .. . .. . .. . . ",
21" .. . .... ... ... ",
22" .+. ",
23" .. .+@ ",
24" .+. .++. ",
25" @+. %#+. ",
26" .++. .#+$. ",
27" .++.&++. ",
28" .+++++$. ",
29" .++++. ",
30" .+++@. ",
31" .++. ",
32" .+@. ",
33" .. ",
34" ",
35" "};
diff --git a/lisp/toolbar/lc-undo.xpm b/lisp/toolbar/lc-undo.xpm
new file mode 100644
index 00000000000..8172fb2c951
--- /dev/null
+++ b/lisp/toolbar/lc-undo.xpm
@@ -0,0 +1,32 @@
1/* XPM */
2static char * undo2_xpm[] = {
3"24 24 5 1",
4" c None",
5". c #D3B354",
6"+ c #000100",
7"@ c #FFFFFF",
8"# c #6B6B66",
9" ",
10" ",
11" ",
12" + ",
13" ++ ",
14" +@+ ",
15" +@.++++ ",
16" +@......+ ",
17" +@........+ ",
18" +...........+ ",
19" +..........++ ",
20" +..........+ ",
21" +..+++....+ ",
22" +.+ ++...+ ",
23" ++ ++..+ ",
24" + +..+ ",
25" +..+ ",
26" +.+ ",
27" +.#+ ",
28" +..+ ",
29" ++ ",
30" ",
31" ",
32" "};
diff --git a/lisp/toolbar/lc-up_arrow.xpm b/lisp/toolbar/lc-up_arrow.xpm
new file mode 100644
index 00000000000..ed4b7526015
--- /dev/null
+++ b/lisp/toolbar/lc-up_arrow.xpm
@@ -0,0 +1,35 @@
1/* XPM */
2static char * up_arrow2_xpm[] = {
3"24 24 8 1",
4" c None",
5". c #87AF85",
6"+ c #000100",
7"@ c #504D46",
8"# c #6B6B66",
9"$ c #BBBDBA",
10"% c #FFFFFF",
11"& c #3E4850",
12" ",
13" ",
14" + ",
15" &$+ ",
16" +%.@+ ",
17" +%...@+ ",
18" +%.....@+ ",
19" +%......#@+ ",
20" +%.......##@+ ",
21" +%$$.....#@@@@+ ",
22" +++++$.....@+++++ ",
23" +$....#@+ ",
24" +$....#@+ ",
25" +$...##@+ ",
26" +$...##@+ ",
27" +$...##@+ ",
28" +...#@@@+ ",
29" +++++++++ ",
30" ",
31" ",
32" ",
33" ",
34" ",
35" "};
diff --git a/lisp/toolbar/tool-bar.el b/lisp/toolbar/tool-bar.el
index 6b890e5078f..bf1c229ccb9 100644
--- a/lisp/toolbar/tool-bar.el
+++ b/lisp/toolbar/tool-bar.el
@@ -96,7 +96,8 @@ PROPS are additional items to add to the menu item specification. See
96Info node `(elisp)Tool Bar'. Items are added from left to right. 96Info node `(elisp)Tool Bar'. Items are added from left to right.
97 97
98ICON is the base name of a file containing the image to use. The 98ICON is the base name of a file containing the image to use. The
99function will first try to use ICON.xpm, then ICON.pbm, and finally 99function will first try to use lc-ICON.xpm if display-color-cells
100is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally
100ICON.xbm, using `find-image'. 101ICON.xbm, using `find-image'.
101 102
102Use this function only to make bindings in the global value of `tool-bar-map'. 103Use this function only to make bindings in the global value of `tool-bar-map'.
@@ -112,24 +113,24 @@ PROPS are additional items to add to the menu item specification. See
112Info node `(elisp)Tool Bar'. Items are added from left to right. 113Info node `(elisp)Tool Bar'. Items are added from left to right.
113 114
114ICON is the base name of a file containing the image to use. The 115ICON is the base name of a file containing the image to use. The
115function will first try to use ICON.xpm, then ICON.pbm, and finally 116function will first try to use lc-ICON.xpm if display-color-cells
117is less or equal to 256, then ICON.xpm, then ICON.pbm, and finally
116ICON.xbm, using `find-image'." 118ICON.xbm, using `find-image'."
117 (let* ((fg (face-attribute 'tool-bar :foreground)) 119 (let* ((fg (face-attribute 'tool-bar :foreground))
118 (bg (face-attribute 'tool-bar :background)) 120 (bg (face-attribute 'tool-bar :background))
119 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg)) 121 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg))
120 (if (eq bg 'unspecified) nil (list :background bg)))) 122 (if (eq bg 'unspecified) nil (list :background bg))))
123 (xpm-spec (list :type 'xpm :file (concat icon ".xpm")))
124 (xpm-lo-spec (if (> (display-color-cells) 256)
125 nil
126 (list :type 'xpm :file (concat "lc-" icon ".xpm"))))
127 (pbm-spec (append (list :type 'pbm :file (concat icon ".pbm")) colors))
128 (xbm-spec (append (list :type 'xbm :file (concat icon ".xbm")) colors))
121 (image (find-image 129 (image (find-image
122 (if (display-color-p) 130 (if (display-color-p)
123 (list (list :type 'xpm :file (concat icon ".xpm")) 131 (list xpm-lo-spec xpm-spec pbm-spec xbm-spec)
124 (append (list :type 'pbm :file (concat icon ".pbm")) 132 (list pbm-spec xbm-spec xpm-lo-spec xpm-spec)))))
125 colors) 133
126 (append (list :type 'xbm :file (concat icon ".xbm"))
127 colors))
128 (list (append (list :type 'pbm :file (concat icon ".pbm"))
129 colors)
130 (append (list :type 'xbm :file (concat icon ".xbm"))
131 colors)
132 (list :type 'xpm :file (concat icon ".xpm")))))))
133 (when (and (display-images-p) image) 134 (when (and (display-images-p) image)
134 (unless (image-mask-p image) 135 (unless (image-mask-p image)
135 (setq image (append image '(:mask heuristic)))) 136 (setq image (append image '(:mask heuristic))))
@@ -170,17 +171,15 @@ MAP must contain appropriate binding for `[menu-bar]' which holds a keymap."
170 (bg (face-attribute 'tool-bar :background)) 171 (bg (face-attribute 'tool-bar :background))
171 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg)) 172 (colors (nconc (if (eq fg 'unspecified) nil (list :foreground fg))
172 (if (eq bg 'unspecified) nil (list :background bg)))) 173 (if (eq bg 'unspecified) nil (list :background bg))))
174 (xpm-spec (list :type 'xpm :file (concat icon ".xpm")))
175 (xpm-lo-spec (if (> (display-color-cells) 256)
176 nil
177 (list :type 'xpm :file (concat "lc-" icon ".xpm"))))
178 (pbm-spec (append (list :type 'pbm :file (concat icon ".pbm")) colors))
179 (xbm-spec (append (list :type 'xbm :file (concat icon ".xbm")) colors))
173 (spec (if (display-color-p) 180 (spec (if (display-color-p)
174 (list (list :type 'xpm :file (concat icon ".xpm")) 181 (list xpm-lo-spec xpm-spec pbm-spec xbm-spec)
175 (append (list :type 'pbm :file (concat icon ".pbm")) 182 (list pbm-spec xbm-spec xpm-lo-spec xpm-spec)))
176 colors)
177 (append (list :type 'xbm :file (concat icon ".xbm"))
178 colors))
179 (list (append (list :type 'pbm :file (concat icon ".pbm"))
180 colors)
181 (append (list :type 'xbm :file (concat icon ".xbm"))
182 colors)
183 (list :type 'xpm :file (concat icon ".xpm")))))
184 (image (find-image spec)) 183 (image (find-image spec))
185 submap key) 184 submap key)
186 (when (and (display-images-p) image) 185 (when (and (display-images-p) image)
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 33f1f06ba9a..a37f4871beb 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -385,8 +385,8 @@ new value.")
385 (overlay-put overlay 'evaporate t) 385 (overlay-put overlay 'evaporate t)
386 ;; We want to avoid the face with image buttons. 386 ;; We want to avoid the face with image buttons.
387 (unless (widget-get widget :suppress-face) 387 (unless (widget-get widget :suppress-face)
388 (overlay-put overlay 'face (widget-apply widget :button-face-get)) 388 (overlay-put overlay 'face (widget-apply widget :button-face-get)))
389 (overlay-put overlay 'mouse-face widget-mouse-face)) 389 (overlay-put overlay 'pointer 'hand)
390 (overlay-put overlay 'help-echo help-echo))) 390 (overlay-put overlay 'help-echo help-echo)))
391 391
392(defun widget-mouse-help (window overlay point) 392(defun widget-mouse-help (window overlay point)
@@ -1289,8 +1289,8 @@ Store the newly created widget in the :children attribute.
1289The value of the :type attribute should be an unconverted widget type." 1289The value of the :type attribute should be an unconverted widget type."
1290 (let ((value (widget-get widget :value)) 1290 (let ((value (widget-get widget :value))
1291 (type (widget-get widget :type))) 1291 (type (widget-get widget :type)))
1292 (widget-put widget :children 1292 (widget-put widget :children
1293 (list (widget-create-child-value widget 1293 (list (widget-create-child-value widget
1294 (widget-convert type) 1294 (widget-convert type)
1295 value))))) 1295 value)))))
1296 1296
@@ -3312,8 +3312,8 @@ Here we attempt to define my-list as a choice of either the constant
3312nil, or a cons-cell containing a sexp and my-lisp. This will not work 3312nil, or a cons-cell containing a sexp and my-lisp. This will not work
3313because the `choice' widget does not allow recursion. 3313because the `choice' widget does not allow recursion.
3314 3314
3315Using the `lazy' widget you can overcome this problem, as in this 3315Using the `lazy' widget you can overcome this problem, as in this
3316example: 3316example:
3317 3317
3318 (define-widget 'sexp-list 'lazy 3318 (define-widget 'sexp-list 'lazy
3319 \"A list of sexps.\" 3319 \"A list of sexps.\"
@@ -3322,7 +3322,7 @@ example:
3322 :format "%{%t%}: %v" 3322 :format "%{%t%}: %v"
3323 ;; We don't convert :type because we want to allow recursive 3323 ;; We don't convert :type because we want to allow recursive
3324 ;; datastructures. This is slow, so we should not create speed 3324 ;; datastructures. This is slow, so we should not create speed
3325 ;; critical widgets by deriving from this. 3325 ;; critical widgets by deriving from this.
3326 :convert-widget 'widget-value-convert-widget 3326 :convert-widget 'widget-value-convert-widget
3327 :value-create 'widget-type-value-create 3327 :value-create 'widget-type-value-create
3328 :value-get 'widget-child-value-get 3328 :value-get 'widget-child-value-get
diff --git a/man/ChangeLog b/man/ChangeLog
index 28942663664..47bfea09bda 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,16 @@
12004-06-10 Kim F. Storm <storm@cua.dk>
2
3 * pcl-cvs.texi (Viewing differences): Add 'd y'.
4
52004-06-10 Juri Linkov <juri@jurta.org>
6
7 * building.texi (Lisp Eval): Add C-M-x on defface.
8
92004-06-08 Luc Teirlinck <teirllm@auburn.edu>
10
11 * files.texi (Reverting): Auto-Revert mode and
12 Global Auto-Revert mode no longer revert remote files.
13
12004-06-05 Lars Hansen <larsh@math.ku.dk> 142004-06-05 Lars Hansen <larsh@math.ku.dk>
2 15
3 * dired-x.texi (variable dired-omit-mode): Rename from 16 * dired-x.texi (variable dired-omit-mode): Rename from
diff --git a/man/building.texi b/man/building.texi
index 994e3be3f59..f7c1883e0d3 100644
--- a/man/building.texi
+++ b/man/building.texi
@@ -989,6 +989,8 @@ defines already has a value. But @kbd{C-M-x} unconditionally resets the
989variable to the initial value specified in the @code{defvar} expression. 989variable to the initial value specified in the @code{defvar} expression.
990@code{defcustom} expressions are treated similarly. 990@code{defcustom} expressions are treated similarly.
991This special feature is convenient for debugging Lisp programs. 991This special feature is convenient for debugging Lisp programs.
992Typing @kbd{C-M-x} on a @code{defface} expression reinitializes
993the face according to the @code{defface} specification.
992 994
993@kindex C-x C-e 995@kindex C-x C-e
994@findex eval-last-sexp 996@findex eval-last-sexp
diff --git a/man/files.texi b/man/files.texi
index f73d1370eba..476c3c7b461 100644
--- a/man/files.texi
+++ b/man/files.texi
@@ -894,8 +894,9 @@ they change. Two minor modes are available to do this. In Global
894Auto-Revert mode, Emacs periodically checks all file buffers and 894Auto-Revert mode, Emacs periodically checks all file buffers and
895reverts any when the corresponding file has changed. The local 895reverts any when the corresponding file has changed. The local
896variant, Auto-Revert mode, applies only to buffers in which it was 896variant, Auto-Revert mode, applies only to buffers in which it was
897activated. Checking the files is done at intervals determined by the 897activated. The variable @code{auto-revert-interval} controls how
898variable @code{auto-revert-interval}. 898often to check for a changed file. Since checking a remote file is
899too slow, these modes do not check or revert remote files.
899 900
900@node Auto Save 901@node Auto Save
901@section Auto-Saving: Protection Against Disasters 902@section Auto-Saving: Protection Against Disasters
diff --git a/man/pcl-cvs.texi b/man/pcl-cvs.texi
index 427707fe4b5..2bd6703dac6 100644
--- a/man/pcl-cvs.texi
+++ b/man/pcl-cvs.texi
@@ -1057,6 +1057,11 @@ branch) (@code{cvs-mode-diff-head}).@refill
1057Display a @samp{cvs diff} between the selected files and the head 1057Display a @samp{cvs diff} between the selected files and the head
1058revision of the vendor branch in the repository. 1058revision of the vendor branch in the repository.
1059(@code{cvs-mode-diff-vendor}).@refill 1059(@code{cvs-mode-diff-vendor}).@refill
1060
1061@item d y
1062Display a @samp{cvs diff} between the selected files and yesterday's
1063head revision in the repository.
1064(@code{cvs-mode-diff-yesterday}).@refill
1060@end table 1065@end table
1061 1066
1062By default, @samp{diff} commands ignore the marks. This can be changed 1067By default, @samp{diff} commands ignore the marks. This can be changed
diff --git a/nt/ChangeLog b/nt/ChangeLog
index 9091da843cf..77c8305b0e5 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,8 @@
12004-06-07 Juanma Barranquero <lektu@terra.es>
2
3 * INSTALL: Clarify paragraph about compatibility between image
4 libraries and builds of Emacs with several compilers.
5
12004-06-06 Juanma Barranquero <lektu@terra.es> 62004-06-06 Juanma Barranquero <lektu@terra.es>
2 7
3 * makefile.w32-in (bootstrap-nmake): When nmake'ing bootstrap on 8 * makefile.w32-in (bootstrap-nmake): When nmake'ing bootstrap on
diff --git a/nt/INSTALL b/nt/INSTALL
index 420dced5505..646054e07f4 100644
--- a/nt/INSTALL
+++ b/nt/INSTALL
@@ -112,13 +112,13 @@
112 112
113 Binaries for the image libraries (among many others) can be found at 113 Binaries for the image libraries (among many others) can be found at
114 GnuWin32 (http://gnuwin32.sourceforge.net). These are built with 114 GnuWin32 (http://gnuwin32.sourceforge.net). These are built with
115 MinGW and work better with GCC/MinGW builds of Emacs, like the 115 MinGW, and so are very compatible with GCC/MinGW builds of Emacs (like
116 official binary tarballs for Windows. Compatibility with MSVC is 116 the official binary tarballs for Windows). Compatibility with MSVC,
117 still weak and should not be trusted in production environments; if 117 on the other hand, is still weak and should not be trusted in
118 you really need an MSVC-compiled Emacs with image support, you should 118 production environments; if you really need an MSVC-compiled Emacs
119 try to build the required libraries with the same compiler (though it 119 with image support, you should try to build the required libraries
120 can be extremely non-trivial, and we'll be interested on hearing of 120 with the same compiler (though it can be extremely non-trivial, and
121 any such effort). 121 we'll be interested on hearing of any such effort).
122 122
123* Building 123* Building
124 124
diff --git a/src/ChangeLog b/src/ChangeLog
index 583537d889d..d6750648fd5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,13 @@
12004-06-08 Miles Bader <miles@gnu.org>
2
3 * xfaces.c (push_named_merge_point): Return 0 when a cycle is detected.
4
52004-06-07 Juanma Barranquero <lektu@terra.es>
6
7 * editfns.c (Fuser_login_name, Ffloat_time, Fencode_time)
8 (Fcurrent_time_string, Fcurrent_time_zone)
9 (Finsert_buffer_substring, Ftranspose_regions): Doc fixes.
10
12004-06-07 Miles Bader <miles@gnu.org> 112004-06-07 Miles Bader <miles@gnu.org>
2 12
3 * xfaces.c (struct named_merge_point): New type. 13 * xfaces.c (struct named_merge_point): New type.
diff --git a/src/editfns.c b/src/editfns.c
index 207faf492ab..c9dd4ecefdf 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1218,7 +1218,7 @@ If POS is out of range, the value is nil. */)
1218DEFUN ("user-login-name", Fuser_login_name, Suser_login_name, 0, 1, 0, 1218DEFUN ("user-login-name", Fuser_login_name, Suser_login_name, 0, 1, 0,
1219 doc: /* Return the name under which the user logged in, as a string. 1219 doc: /* Return the name under which the user logged in, as a string.
1220This is based on the effective uid, not the real uid. 1220This is based on the effective uid, not the real uid.
1221Also, if the environment variable LOGNAME or USER is set, 1221Also, if the environment variables LOGNAME or USER are set,
1222that determines the value of this function. 1222that determines the value of this function.
1223 1223
1224If optional argument UID is an integer, return the login name of the user 1224If optional argument UID is an integer, return the login name of the user
@@ -1430,7 +1430,7 @@ lisp_time_argument (specified_time, result, usec)
1430 1430
1431DEFUN ("float-time", Ffloat_time, Sfloat_time, 0, 1, 0, 1431DEFUN ("float-time", Ffloat_time, Sfloat_time, 0, 1, 0,
1432 doc: /* Return the current time, as a float number of seconds since the epoch. 1432 doc: /* Return the current time, as a float number of seconds since the epoch.
1433If an argument is given, it specifies a time to convert to float 1433If SPECIFIED-TIME is given, it is the time to convert to float
1434instead of the current time. The argument should have the forms: 1434instead of the current time. The argument should have the forms:
1435 (HIGH . LOW) or (HIGH LOW USEC) or (HIGH LOW . USEC). 1435 (HIGH . LOW) or (HIGH LOW USEC) or (HIGH LOW . USEC).
1436Thus, you can use times obtained from `current-time' 1436Thus, you can use times obtained from `current-time'
@@ -1660,7 +1660,7 @@ are used as SECOND through YEAR, and the *last* argument is used as ZONE.
1660The intervening arguments are ignored. 1660The intervening arguments are ignored.
1661This feature lets (apply 'encode-time (decode-time ...)) work. 1661This feature lets (apply 'encode-time (decode-time ...)) work.
1662 1662
1663Out-of-range values for SEC, MINUTE, HOUR, DAY, or MONTH are allowed; 1663Out-of-range values for SECOND, MINUTE, HOUR, DAY, or MONTH are allowed;
1664for example, a DAY of 0 means the day preceding the given month. 1664for example, a DAY of 0 means the day preceding the given month.
1665Year numbers less than 100 are treated just like other year numbers. 1665Year numbers less than 100 are treated just like other year numbers.
1666If you want them to stand for years in this century, you must do that yourself. 1666If you want them to stand for years in this century, you must do that yourself.
@@ -1745,8 +1745,8 @@ The format is `Sun Sep 16 01:03:52 1973'.
1745However, see also the functions `decode-time' and `format-time-string' 1745However, see also the functions `decode-time' and `format-time-string'
1746which provide a much more powerful and general facility. 1746which provide a much more powerful and general facility.
1747 1747
1748If an argument is given, it specifies a time to format 1748If SPECIFIED-TIME is given, it is a time to format instead
1749instead of the current time. The argument should have the form: 1749of the current time. The argument should have the form:
1750 (HIGH . LOW) 1750 (HIGH . LOW)
1751or the form: 1751or the form:
1752 (HIGH LOW . IGNORED). 1752 (HIGH LOW . IGNORED).
@@ -1801,7 +1801,7 @@ This returns a list of the form (OFFSET NAME).
1801OFFSET is an integer number of seconds ahead of UTC (east of Greenwich). 1801OFFSET is an integer number of seconds ahead of UTC (east of Greenwich).
1802 A negative value means west of Greenwich. 1802 A negative value means west of Greenwich.
1803NAME is a string giving the name of the time zone. 1803NAME is a string giving the name of the time zone.
1804If an argument is given, it specifies when the time zone offset is determined 1804If SPECIFIED-TIME is given, the time zone offset is determined from it
1805instead of using the current time. The argument should have the form: 1805instead of using the current time. The argument should have the form:
1806 (HIGH . LOW) 1806 (HIGH . LOW)
1807or the form: 1807or the form:
@@ -2349,8 +2349,8 @@ DEFUN ("insert-buffer-substring", Finsert_buffer_substring, Sinsert_buffer_subst
2349 1, 3, 0, 2349 1, 3, 0,
2350 doc: /* Insert before point a substring of the contents of BUFFER. 2350 doc: /* Insert before point a substring of the contents of BUFFER.
2351BUFFER may be a buffer or a buffer name. 2351BUFFER may be a buffer or a buffer name.
2352Arguments START and END are character numbers specifying the substring. 2352Arguments START and END are character positions specifying the substring.
2353They default to the beginning and the end of BUFFER. */) 2353They default to the values of (point-min) and (point-max) in BUFFER. */)
2354 (buffer, start, end) 2354 (buffer, start, end)
2355 Lisp_Object buffer, start, end; 2355 Lisp_Object buffer, start, end;
2356{ 2356{
@@ -2827,6 +2827,7 @@ It returns the number of characters changed. */)
2827 2827
2828DEFUN ("delete-region", Fdelete_region, Sdelete_region, 2, 2, "r", 2828DEFUN ("delete-region", Fdelete_region, Sdelete_region, 2, 2, "r",
2829 doc: /* Delete the text between point and mark. 2829 doc: /* Delete the text between point and mark.
2830
2830When called from a program, expects two arguments, 2831When called from a program, expects two arguments,
2831positions (integers or markers) specifying the stretch to be deleted. */) 2832positions (integers or markers) specifying the stretch to be deleted. */)
2832 (start, end) 2833 (start, end)
@@ -3875,11 +3876,11 @@ transpose_markers (start1, end1, start2, end2,
3875} 3876}
3876 3877
3877DEFUN ("transpose-regions", Ftranspose_regions, Stranspose_regions, 4, 5, 0, 3878DEFUN ("transpose-regions", Ftranspose_regions, Stranspose_regions, 4, 5, 0,
3878 doc: /* Transpose region START1 to END1 with START2 to END2. 3879 doc: /* Transpose region STARTR1 to ENDR1 with STARTR2 to ENDR2.
3879The regions may not be overlapping, because the size of the buffer is 3880The regions may not be overlapping, because the size of the buffer is
3880never changed in a transposition. 3881never changed in a transposition.
3881 3882
3882Optional fifth arg LEAVE_MARKERS, if non-nil, means don't update 3883Optional fifth arg LEAVE-MARKERS, if non-nil, means don't update
3883any markers that happen to be located in the regions. 3884any markers that happen to be located in the regions.
3884 3885
3885Transposing beyond buffer boundaries is an error. */) 3886Transposing beyond buffer boundaries is an error. */)
diff --git a/src/xfaces.c b/src/xfaces.c
index b48ccac9d9d..505e601c57d 100644
--- a/src/xfaces.c
+++ b/src/xfaces.c
@@ -3172,8 +3172,8 @@ struct named_merge_point
3172 3172
3173/* If a face merging cycle is detected for FACE_NAME, return 0, 3173/* If a face merging cycle is detected for FACE_NAME, return 0,
3174 otherwise add NEW_NAMED_MERGE_POINT, which is initialized using 3174 otherwise add NEW_NAMED_MERGE_POINT, which is initialized using
3175 FACE_NAME, as the head of the linked list 3175 FACE_NAME, as the head of the linked list pointed to by
3176 pointed to by NAMED_MERGE_POINTS, and return 1. */ 3176 NAMED_MERGE_POINTS, and return 1. */
3177 3177
3178static INLINE int 3178static INLINE int
3179push_named_merge_point (struct named_merge_point *new_named_merge_point, 3179push_named_merge_point (struct named_merge_point *new_named_merge_point,
@@ -3184,7 +3184,7 @@ push_named_merge_point (struct named_merge_point *new_named_merge_point,
3184 3184
3185 for (prev = *named_merge_points; prev; prev = prev->prev) 3185 for (prev = *named_merge_points; prev; prev = prev->prev)
3186 if (EQ (face_name, prev->face_name)) 3186 if (EQ (face_name, prev->face_name))
3187 break; 3187 return 0;
3188 3188
3189 new_named_merge_point->face_name = face_name; 3189 new_named_merge_point->face_name = face_name;
3190 new_named_merge_point->prev = *named_merge_points; 3190 new_named_merge_point->prev = *named_merge_points;