aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog155
-rw-r--r--lisp/buff-menu.el24
-rw-r--r--lisp/dired.el6
-rw-r--r--lisp/emacs-lisp/bytecomp.el2
-rw-r--r--lisp/emacs-lisp/lisp-mode.el6
-rw-r--r--lisp/emacs-lisp/package.el16
-rw-r--r--lisp/epa.el2
-rw-r--r--lisp/files.el108
-rw-r--r--lisp/gnus/ChangeLog4
-rw-r--r--lisp/gnus/mm-decode.el16
-rw-r--r--lisp/gnus/mm-view.el15
-rw-r--r--lisp/icomplete.el8
-rw-r--r--lisp/image.el18
-rw-r--r--lisp/info.el37
-rw-r--r--lisp/isearch.el4
-rw-r--r--lisp/mail/smtpmail.el8
-rw-r--r--lisp/menu-bar.el12
-rw-r--r--lisp/net/ldap.el7
-rw-r--r--lisp/net/tramp-compat.el1
-rw-r--r--lisp/net/tramp-sh.el15
-rw-r--r--lisp/net/tramp-smb.el91
-rw-r--r--lisp/net/tramp.el47
-rw-r--r--lisp/newcomment.el3
-rw-r--r--lisp/org/ChangeLog4
-rw-r--r--lisp/org/org.el2
-rw-r--r--lisp/outline.el13
-rw-r--r--lisp/progmodes/cc-fonts.el2
-rw-r--r--lisp/progmodes/etags.el4
-rw-r--r--lisp/progmodes/grep.el2
-rw-r--r--lisp/replace.el87
-rw-r--r--lisp/simple.el17
-rw-r--r--lisp/textmodes/ispell.el8
-rw-r--r--lisp/vc/vc-bzr.el10
-rw-r--r--lisp/vc/vc-dir.el16
-rw-r--r--lisp/vc/vc-git.el10
-rw-r--r--lisp/window.el8
-rw-r--r--lisp/woman.el9
37 files changed, 515 insertions, 282 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 57c623df56a..d748c1a967c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,151 @@
12011-09-19 Michael Albinus <michael.albinus@gmx.de>
2
3 * net/tramp-sh.el (tramp-inline-compress-commands): Add "xz".
4 Suggested by Liam Stitt <stittl@cuug.ab.ca>.
5
62011-09-18 Juri Linkov <juri@jurta.org>
7
8 * buff-menu.el (Buffer-menu-mode-map):
9 * dired.el (dired-mode-map):
10 * emacs-lisp/lisp-mode.el (emacs-lisp-mode-map)
11 (lisp-interaction-mode-map):
12 * emacs-lisp/package.el (package-menu-mode-map):
13 * epa.el (epa-key-list-mode-map):
14 * menu-bar.el (menu-bar-showhide-tool-bar-menu)
15 (menu-bar-options-menu):
16 * outline.el (outline-mode-menu-bar-map):
17 * vc/vc-bzr.el (vc-bzr-shelve-menu-map, vc-bzr-extra-menu-map):
18 * vc/vc-dir.el (vc-dir-menu-map):
19 * vc/vc-git.el (vc-git-stash-menu-map, vc-git-extra-menu-map):
20 Capitalize non-function content words in menu item strings.
21
22 * dired.el (dired-mode-map): Add menu item for
23 `image-dired-dired-toggle-marked-thumbs'.
24
252011-09-18 Juri Linkov <juri@jurta.org>
26
27 * isearch.el (isearch-edit-string): Bind `isearch-new-case-fold'
28 to `isearch-case-fold-search' and restore its original value
29 after the `isearch-mode' call.
30
312011-09-18 Juri Linkov <juri@jurta.org>
32
33 * progmodes/grep.el (grep-process-setup): Don't check code for 1
34 because `zgrep' returns 1 for successful matches (bug#9226).
35
362011-09-18 Juri Linkov <juri@jurta.org>
37
38 * info.el (Info-extract-menu-node-name): Check the second match
39 for empty string (second test-case of bug#9528).
40 (Info-last-preorder): Let-bind `Info-history' to nil to not add
41 intermediate nodes to the history (first test-case of bug#9528).
42
432011-09-18 Juri Linkov <juri@jurta.org>
44
45 * info.el (Info-mode-syntax-table): New variable.
46 (Info-mode): Set `:syntax-table' to `Info-mode-syntax-table'. (Bug#3312)
47
482011-09-18 Juri Linkov <juri@jurta.org>
49
50 * info.el (Info-file-supports-index-cookies): Increment
51 line-beginning-position's arg from 3 to 4 because makeinfo outputs
52 one more line for long file names (bug#4142).
53
542011-09-18 Chong Yidong <cyd@stupidchicken.com>
55
56 * newcomment.el (comment-normalize-vars): If prompting for
57 comment-start, set comment-start-skip too (Bug#8424).
58
592011-09-18 Johan Bockgård <bojohan@gnu.org>
60
61 * icomplete.el: Fix previous fix of Bug#5849.
62 (icomplete-mode): Don't set completion-show-inline-help.
63 (icomplete-minibuffer-setup): Set completion-show-inline-help
64 locally during icompletion.
65
662011-09-18 Chong Yidong <cyd@stupidchicken.com>
67
68 * woman.el (woman2-process-escapes): Don't delete unrecognized
69 escapes (Bug#7843).
70
71 * files.el (inhibit-first-line-modes-regexps): Add image files.
72 (hack-local-variables-prop-line): Return nil for malformed
73 prop-lines (Bug#9044).
74
752011-09-18 Michael Albinus <michael.albinus@gmx.de>
76
77 * net/tramp.el (top): Don't require 'shell.
78 (tramp-methods): Fix docstring.
79 (tramp-get-remote-tmpdir): New defun, moved from tramp-sh.el.
80 Return complete remote file name. Handle "smb" case. Use
81 `tramp-tmpdir', if defined for the respective method.
82 (tramp-make-tramp-temp-file): Adapt call of `tramp-get-remote-tmpdir'.
83
84 * net/tramp-compat.el (top): Require 'shell.
85
86 * net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
87 (tramp-maybe-open-connection): Use `tramp-file-name-real-host' for
88 `tramp-current-host'.
89 (tramp-get-remote-tmpdir): Remove.
90
91 * net/tramp-smb.el (tramp-methods): Add `tramp-remote-shell' and
92 `tramp-tmpdir' entries.
93 (tramp-smb-errors): Add "NT_STATUS_IMAGE_ALREADY_LOADED".
94 (tramp-smb-handle-file-attributes): Ignore errors.
95 (tramp-smb-wait-for-output): Check also for process end.
96
972011-09-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
98
99 * mail/smtpmail.el (smtpmail-via-smtp): Ignore errors that arise
100 when sending QUIT (bug#9312).
101
1022011-09-17 Chong Yidong <cyd@stupidchicken.com>
103
104 * replace.el (occur-mode-map): Rebind occur-edit-mode to "e" (Bug#8463).
105 (occur-edit-mode-map): Bind C-c C-c to occur-cease-edit and C-o to
106 occur-mode-display-occurrence.
107 (occur-edit-mode): Add usage message.
108 (occur-cease-edit): New command.
109 (occur-after-change-function): Use text properties to find the
110 position of the prefix text.
111 (occur-engine): Set stickiness of prefix text properties.
112
1132011-09-17 Glenn Morris <rgm@gnu.org>
114
115 * progmodes/etags.el (complete-tag):
116 Fix call to completion-in-region. (Bug#9526)
117
1182011-09-17 Juri Linkov <juri@jurta.org>
119
120 * textmodes/ispell.el (ispell-word): Add to the error message
121 the word, ispell program name and current dictionary (bug#9121).
122 (ispell-tex-arg-end): Capitalize "error" in the error message.
123
1242011-09-17 Andreas Schwab <schwab@linux-m68k.org>
125
126 * emacs-lisp/bytecomp.el (byte-compile-lapcode): Fix overflow
127 check. (Bug#4251)
128
1292011-09-17 Juri Linkov <juri@jurta.org>
130
131 * window.el (window-safe-min-height, window-safe-min-width):
132 Fix typos (followup to bug#9522).
133
1342011-09-17 Sven Joachim <svenjoac@gmx.de>
135
136 * window.el (window-min-width, window-state-put): Fix typos (bug#9522).
137
1382011-09-16 Eli Zaretskii <eliz@gnu.org>
139
140 * simple.el (line-move): If goal-column is set, move by logical
141 lines, not by display lines. (Bug#971)
142 (next-line, previous-line, goal-column, line-move-visual): Doc fix
143 to reflect the above change.
144
1452011-09-16 Stefan Monnier <monnier@iro.umontreal.ca>
146
147 * image.el (imagemagick-register-types): Use regexp-opt.
148
12011-09-15 Chong Yidong <cyd@stupidchicken.com> 1492011-09-15 Chong Yidong <cyd@stupidchicken.com>
2 150
3 * window.el (display-buffer-base-action): Rename from 151 * window.el (display-buffer-base-action): Rename from
@@ -13,8 +161,8 @@
13 with an older version, remove it. 161 with an older version, remove it.
14 (package-menu-mark-delete, package-menu-mark-install) 162 (package-menu-mark-delete, package-menu-mark-install)
15 (package-menu-mark-unmark): Make unused args optional. 163 (package-menu-mark-unmark): Make unused args optional.
16 (package-menu-mark-obsolete-for-deletion): Use 164 (package-menu-mark-obsolete-for-deletion):
17 package-menu-get-status instead of a regexp search. 165 Use package-menu-get-status instead of a regexp search.
18 (package-menu-get-status): Use tabulated-list-entry. 166 (package-menu-get-status): Use tabulated-list-entry.
19 (package-menu-mark-upgrades): New command. 167 (package-menu-mark-upgrades): New command.
20 (package-menu-mode-map): Bind it to U. Add it to menu bar. 168 (package-menu-mode-map): Bind it to U. Add it to menu bar.
@@ -296,7 +444,8 @@
296 444
2972011-09-10 Reuben Thomas <rrt@sc3d.org> 4452011-09-10 Reuben Thomas <rrt@sc3d.org>
298 446
299 * simple.el (count-words-region): Use buffer if there's no region. 447 * simple.el (count-words-region): Use buffer if there's no region
448 (bug#9429).
300 449
3012011-09-09 Juri Linkov <juri@jurta.org> 4502011-09-09 Juri Linkov <juri@jurta.org>
302 451
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index d757453c051..291430d4393 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -167,53 +167,53 @@ Auto Revert Mode.")
167 :help ,(purecopy "Refresh the *Buffer List* buffer contents"))) 167 :help ,(purecopy "Refresh the *Buffer List* buffer contents")))
168 (define-key menu-map [s0] menu-bar-separator) 168 (define-key menu-map [s0] menu-bar-separator)
169 (define-key menu-map [tf] 169 (define-key menu-map [tf]
170 `(menu-item ,(purecopy "Show only file buffers") Buffer-menu-toggle-files-only 170 `(menu-item ,(purecopy "Show Only File Buffers") Buffer-menu-toggle-files-only
171 :button (:toggle . Buffer-menu-files-only) 171 :button (:toggle . Buffer-menu-files-only)
172 :help ,(purecopy "Toggle whether the current buffer-menu displays only file buffers"))) 172 :help ,(purecopy "Toggle whether the current buffer-menu displays only file buffers")))
173 (define-key menu-map [s1] menu-bar-separator) 173 (define-key menu-map [s1] menu-bar-separator)
174 ;; FIXME: The "Select" entries could use better names... 174 ;; FIXME: The "Select" entries could use better names...
175 (define-key menu-map [sel] 175 (define-key menu-map [sel]
176 `(menu-item ,(purecopy "Select marked") Buffer-menu-select 176 `(menu-item ,(purecopy "Select Marked") Buffer-menu-select
177 :help ,(purecopy "Select this line's buffer; also display buffers marked with `>'"))) 177 :help ,(purecopy "Select this line's buffer; also display buffers marked with `>'")))
178 (define-key menu-map [bm2] 178 (define-key menu-map [bm2]
179 `(menu-item ,(purecopy "Select two") Buffer-menu-2-window 179 `(menu-item ,(purecopy "Select Two") Buffer-menu-2-window
180 :help ,(purecopy "Select this line's buffer, with previous buffer in second window"))) 180 :help ,(purecopy "Select this line's buffer, with previous buffer in second window")))
181 (define-key menu-map [bm1] 181 (define-key menu-map [bm1]
182 `(menu-item ,(purecopy "Select current") Buffer-menu-1-window 182 `(menu-item ,(purecopy "Select Current") Buffer-menu-1-window
183 :help ,(purecopy "Select this line's buffer, alone, in full frame"))) 183 :help ,(purecopy "Select this line's buffer, alone, in full frame")))
184 (define-key menu-map [ow] 184 (define-key menu-map [ow]
185 `(menu-item ,(purecopy "Select in other window") Buffer-menu-other-window 185 `(menu-item ,(purecopy "Select in Other Window") Buffer-menu-other-window
186 :help ,(purecopy "Select this line's buffer in other window, leaving buffer menu visible"))) 186 :help ,(purecopy "Select this line's buffer in other window, leaving buffer menu visible")))
187 (define-key menu-map [tw] 187 (define-key menu-map [tw]
188 `(menu-item ,(purecopy "Select in current window") Buffer-menu-this-window 188 `(menu-item ,(purecopy "Select in Current Window") Buffer-menu-this-window
189 :help ,(purecopy "Select this line's buffer in this window"))) 189 :help ,(purecopy "Select this line's buffer in this window")))
190 (define-key menu-map [s2] menu-bar-separator) 190 (define-key menu-map [s2] menu-bar-separator)
191 (define-key menu-map [is] 191 (define-key menu-map [is]
192 `(menu-item ,(purecopy "Regexp Isearch marked buffers") Buffer-menu-isearch-buffers-regexp 192 `(menu-item ,(purecopy "Regexp Isearch Marked Buffers...") Buffer-menu-isearch-buffers-regexp
193 :help ,(purecopy "Search for a regexp through all marked buffers using Isearch"))) 193 :help ,(purecopy "Search for a regexp through all marked buffers using Isearch")))
194 (define-key menu-map [ir] 194 (define-key menu-map [ir]
195 `(menu-item ,(purecopy "Isearch marked buffers") Buffer-menu-isearch-buffers 195 `(menu-item ,(purecopy "Isearch Marked Buffers...") Buffer-menu-isearch-buffers
196 :help ,(purecopy "Search for a string through all marked buffers using Isearch"))) 196 :help ,(purecopy "Search for a string through all marked buffers using Isearch")))
197 (define-key menu-map [s3] menu-bar-separator) 197 (define-key menu-map [s3] menu-bar-separator)
198 (define-key menu-map [by] 198 (define-key menu-map [by]
199 `(menu-item ,(purecopy "Bury") Buffer-menu-bury 199 `(menu-item ,(purecopy "Bury") Buffer-menu-bury
200 :help ,(purecopy "Bury the buffer listed on this line"))) 200 :help ,(purecopy "Bury the buffer listed on this line")))
201 (define-key menu-map [vt] 201 (define-key menu-map [vt]
202 `(menu-item ,(purecopy "Set unmodified") Buffer-menu-not-modified 202 `(menu-item ,(purecopy "Set Unmodified") Buffer-menu-not-modified
203 :help ,(purecopy "Mark buffer on this line as unmodified (no changes to save)"))) 203 :help ,(purecopy "Mark buffer on this line as unmodified (no changes to save)")))
204 (define-key menu-map [ex] 204 (define-key menu-map [ex]
205 `(menu-item ,(purecopy "Execute") Buffer-menu-execute 205 `(menu-item ,(purecopy "Execute") Buffer-menu-execute
206 :help ,(purecopy "Save and/or delete buffers marked with s or k commands"))) 206 :help ,(purecopy "Save and/or delete buffers marked with s or k commands")))
207 (define-key menu-map [s4] menu-bar-separator) 207 (define-key menu-map [s4] menu-bar-separator)
208 (define-key menu-map [delb] 208 (define-key menu-map [delb]
209 `(menu-item ,(purecopy "Mark for delete and move backwards") Buffer-menu-delete-backwards 209 `(menu-item ,(purecopy "Mark for Delete and Move Backwards") Buffer-menu-delete-backwards
210 :help ,(purecopy "Mark buffer on this line to be deleted by x command and move up one line"))) 210 :help ,(purecopy "Mark buffer on this line to be deleted by x command and move up one line")))
211 (define-key menu-map [del] 211 (define-key menu-map [del]
212 `(menu-item ,(purecopy "Mark for delete") Buffer-menu-delete 212 `(menu-item ,(purecopy "Mark for Delete") Buffer-menu-delete
213 :help ,(purecopy "Mark buffer on this line to be deleted by x command"))) 213 :help ,(purecopy "Mark buffer on this line to be deleted by x command")))
214 214
215 (define-key menu-map [sv] 215 (define-key menu-map [sv]
216 `(menu-item ,(purecopy "Mark for save") Buffer-menu-save 216 `(menu-item ,(purecopy "Mark for Save") Buffer-menu-save
217 :help ,(purecopy "Mark buffer on this line to be saved by x command"))) 217 :help ,(purecopy "Mark buffer on this line to be saved by x command")))
218 (define-key menu-map [umk] 218 (define-key menu-map [umk]
219 `(menu-item ,(purecopy "Unmark") Buffer-menu-unmark 219 `(menu-item ,(purecopy "Unmark") Buffer-menu-unmark
diff --git a/lisp/dired.el b/lisp/dired.el
index f01e195f9ec..60ba14ade84 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -1552,6 +1552,10 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
1552 [menu-bar immediate image-dired-dired-display-image] 1552 [menu-bar immediate image-dired-dired-display-image]
1553 '(menu-item "Display Image" image-dired-dired-display-image 1553 '(menu-item "Display Image" image-dired-dired-display-image
1554 :help "Display sized image in a separate window")) 1554 :help "Display sized image in a separate window"))
1555 (define-key map
1556 [menu-bar immediate image-dired-dired-toggle-marked-thumbs]
1557 '(menu-item "Toggle Image Thumbnails in This Buffer" image-dired-dired-toggle-marked-thumbs
1558 :help "Add or remove image thumbnails in front of marked file names"))
1555 1559
1556 (define-key map [menu-bar immediate revert-buffer] 1560 (define-key map [menu-bar immediate revert-buffer]
1557 '(menu-item "Refresh" revert-buffer 1561 '(menu-item "Refresh" revert-buffer
@@ -1708,7 +1712,7 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
1708 :help "Add image comment to current or marked files")) 1712 :help "Add image comment to current or marked files"))
1709 (define-key map 1713 (define-key map
1710 [menu-bar operate image-dired-display-thumbs] 1714 [menu-bar operate image-dired-display-thumbs]
1711 '(menu-item "Display image thumbnails" image-dired-display-thumbs 1715 '(menu-item "Display Image Thumbnails" image-dired-display-thumbs
1712 :help "Display image thumbnails for current or marked image files")) 1716 :help "Display image thumbnails for current or marked image files"))
1713 1717
1714 (define-key map [menu-bar operate dashes-4] 1718 (define-key map [menu-bar operate dashes-4]
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 127f93c6858..fae402d4215 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -834,7 +834,7 @@ CONST2 may be evaulated multiple times."
834 (setcar (cdr bytes-tail) (logand pc 255)) 834 (setcar (cdr bytes-tail) (logand pc 255))
835 (setcar bytes-tail (lsh pc -8)) 835 (setcar bytes-tail (lsh pc -8))
836 ;; FIXME: Replace this by some workaround. 836 ;; FIXME: Replace this by some workaround.
837 (if (> (car bytes) 255) (error "Bytecode overflow"))) 837 (if (> (car bytes-tail) 255) (error "Bytecode overflow")))
838 838
839 (apply 'unibyte-string (nreverse bytes)))) 839 (apply 'unibyte-string (nreverse bytes))))
840 840
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index f2bea30ea39..9408c0a3c9d 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -297,7 +297,7 @@ font-lock keywords will not be case sensitive."
297 `(menu-item ,(purecopy "Untrace All") untrace-all 297 `(menu-item ,(purecopy "Untrace All") untrace-all
298 :help ,(purecopy "Untrace all currently traced functions"))) 298 :help ,(purecopy "Untrace all currently traced functions")))
299 (define-key tracing-map [tr-uf] 299 (define-key tracing-map [tr-uf]
300 `(menu-item ,(purecopy "Untrace function...") untrace-function 300 `(menu-item ,(purecopy "Untrace Function...") untrace-function
301 :help ,(purecopy "Untrace function, and possibly activate all remaining advice"))) 301 :help ,(purecopy "Untrace function, and possibly activate all remaining advice")))
302 (define-key tracing-map [tr-sep] menu-bar-separator) 302 (define-key tracing-map [tr-sep] menu-bar-separator)
303 (define-key tracing-map [tr-q] 303 (define-key tracing-map [tr-q]
@@ -358,7 +358,7 @@ font-lock keywords will not be case sensitive."
358 `(menu-item ,(purecopy "Byte-compile and Load") emacs-lisp-byte-compile-and-load 358 `(menu-item ,(purecopy "Byte-compile and Load") emacs-lisp-byte-compile-and-load
359 :help ,(purecopy "Byte-compile the current file (if it has changed), then load compiled code"))) 359 :help ,(purecopy "Byte-compile the current file (if it has changed), then load compiled code")))
360 (define-key menu-map [byte-compile] 360 (define-key menu-map [byte-compile]
361 `(menu-item ,(purecopy "Byte-compile this File") emacs-lisp-byte-compile 361 `(menu-item ,(purecopy "Byte-compile This File") emacs-lisp-byte-compile
362 :help ,(purecopy "Byte compile the file containing the current buffer"))) 362 :help ,(purecopy "Byte compile the file containing the current buffer")))
363 (define-key menu-map [separator-eval] menu-bar-separator) 363 (define-key menu-map [separator-eval] menu-bar-separator)
364 (define-key menu-map [ielm] 364 (define-key menu-map [ielm]
@@ -509,7 +509,7 @@ if that value is non-nil."
509 `(menu-item ,(purecopy "Evaluate Defun") eval-defun 509 `(menu-item ,(purecopy "Evaluate Defun") eval-defun
510 :help ,(purecopy "Evaluate the top-level form containing point, or after point"))) 510 :help ,(purecopy "Evaluate the top-level form containing point, or after point")))
511 (define-key menu-map [eval-print-last-sexp] 511 (define-key menu-map [eval-print-last-sexp]
512 `(menu-item ,(purecopy "Evaluate and print") eval-print-last-sexp 512 `(menu-item ,(purecopy "Evaluate and Print") eval-print-last-sexp
513 :help ,(purecopy "Evaluate sexp before point; print value into current buffer"))) 513 :help ,(purecopy "Evaluate sexp before point; print value into current buffer")))
514 (define-key menu-map [edebug-defun-lisp-interaction] 514 (define-key menu-map [edebug-defun-lisp-interaction]
515 `(menu-item ,(purecopy "Instrument Function for Debugging") edebug-defun 515 `(menu-item ,(purecopy "Instrument Function for Debugging") edebug-defun
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index f0b1537e2b3..4cab8f43480 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1297,30 +1297,30 @@ If optional arg NO-ACTIVATE is non-nil, don't activate packages."
1297 '(menu-item "Unmark" package-menu-mark-unmark 1297 '(menu-item "Unmark" package-menu-mark-unmark
1298 :help "Clear any marks on a package and move to the next line")) 1298 :help "Clear any marks on a package and move to the next line"))
1299 (define-key menu-map [munm] 1299 (define-key menu-map [munm]
1300 '(menu-item "Unmark backwards" package-menu-backup-unmark 1300 '(menu-item "Unmark Backwards" package-menu-backup-unmark
1301 :help "Back up one line and clear any marks on that package")) 1301 :help "Back up one line and clear any marks on that package"))
1302 (define-key menu-map [md] 1302 (define-key menu-map [md]
1303 '(menu-item "Mark for deletion" package-menu-mark-delete 1303 '(menu-item "Mark for Deletion" package-menu-mark-delete
1304 :help "Mark a package for deletion and move to the next line")) 1304 :help "Mark a package for deletion and move to the next line"))
1305 (define-key menu-map [mi] 1305 (define-key menu-map [mi]
1306 '(menu-item "Mark for install" package-menu-mark-install 1306 '(menu-item "Mark for Install" package-menu-mark-install
1307 :help "Mark a package for installation and move to the next line")) 1307 :help "Mark a package for installation and move to the next line"))
1308 (define-key menu-map [mupgrades] 1308 (define-key menu-map [mupgrades]
1309 '(menu-item "Mark upgradable packages" package-menu-mark-upgrades 1309 '(menu-item "Mark Upgradable Packages" package-menu-mark-upgrades
1310 :help "Mark packages that have a newer version for upgrading")) 1310 :help "Mark packages that have a newer version for upgrading"))
1311 (define-key menu-map [s3] '("--")) 1311 (define-key menu-map [s3] '("--"))
1312 (define-key menu-map [mg] 1312 (define-key menu-map [mg]
1313 '(menu-item "Update package list" revert-buffer 1313 '(menu-item "Update Package List" revert-buffer
1314 :help "Update the list of packages")) 1314 :help "Update the list of packages"))
1315 (define-key menu-map [mr] 1315 (define-key menu-map [mr]
1316 '(menu-item "Refresh package list" package-menu-refresh 1316 '(menu-item "Refresh Package List" package-menu-refresh
1317 :help "Download the ELPA archive")) 1317 :help "Download the ELPA archive"))
1318 (define-key menu-map [s4] '("--")) 1318 (define-key menu-map [s4] '("--"))
1319 (define-key menu-map [mt] 1319 (define-key menu-map [mt]
1320 '(menu-item "Mark obsolete packages" package-menu-mark-obsolete-for-deletion 1320 '(menu-item "Mark Obsolete Packages" package-menu-mark-obsolete-for-deletion
1321 :help "Mark all obsolete packages for deletion")) 1321 :help "Mark all obsolete packages for deletion"))
1322 (define-key menu-map [mx] 1322 (define-key menu-map [mx]
1323 '(menu-item "Execute actions" package-menu-execute 1323 '(menu-item "Execute Actions" package-menu-execute
1324 :help "Perform all the marked actions")) 1324 :help "Perform all the marked actions"))
1325 (define-key menu-map [s5] '("--")) 1325 (define-key menu-map [s5] '("--"))
1326 (define-key menu-map [mh] 1326 (define-key menu-map [mh]
diff --git a/lisp/epa.el b/lisp/epa.el
index f0ec1ece0d1..5164181454a 100644
--- a/lisp/epa.el
+++ b/lisp/epa.el
@@ -239,7 +239,7 @@ You should bind this variable with `let', but do not set it globally.")
239 :help "Encrypt FILE for RECIPIENTS")) 239 :help "Encrypt FILE for RECIPIENTS"))
240 (define-key menu-map [separator-epa-key-list] '(menu-item "--")) 240 (define-key menu-map [separator-epa-key-list] '(menu-item "--"))
241 (define-key menu-map [epa-key-list-delete-keys] 241 (define-key menu-map [epa-key-list-delete-keys]
242 '(menu-item "Delete keys" epa-delete-keys 242 '(menu-item "Delete Keys" epa-delete-keys
243 :help "Delete Marked Keys")) 243 :help "Delete Marked Keys"))
244 (define-key menu-map [epa-key-list-import-keys] 244 (define-key menu-map [epa-key-list-import-keys]
245 '(menu-item "Import Keys" epa-import-keys 245 '(menu-item "Import Keys" epa-import-keys
diff --git a/lisp/files.el b/lisp/files.el
index 5ca9af6783d..b29c0596d7b 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -2461,7 +2461,9 @@ of a script, mode MODE is enabled.
2461 2461
2462See also `auto-mode-alist'.") 2462See also `auto-mode-alist'.")
2463 2463
2464(defvar inhibit-first-line-modes-regexps (mapcar 'purecopy '("\\.tar\\'" "\\.tgz\\'")) 2464(defvar inhibit-first-line-modes-regexps
2465 (mapcar 'purecopy '("\\.tar\\'" "\\.tgz\\'" "\\.tiff?\\'"
2466 "\\.gif\\'" "\\.png\\'" "\\.jpe?g\\'"))
2465 "List of regexps; if one matches a file name, don't look for `-*-'.") 2467 "List of regexps; if one matches a file name, don't look for `-*-'.")
2466 2468
2467(defvar inhibit-first-line-modes-suffixes nil 2469(defvar inhibit-first-line-modes-suffixes nil
@@ -2952,60 +2954,62 @@ Returns an alist of elements (VAR . VAL), where VAR is a variable
2952and VAL is the specified value. Ignores any specification for 2954and VAL is the specified value. Ignores any specification for
2953`mode:' and `coding:' (which should have already been handled 2955`mode:' and `coding:' (which should have already been handled
2954by `set-auto-mode' and `set-auto-coding', respectively). 2956by `set-auto-mode' and `set-auto-coding', respectively).
2955Throws an error if the -*- line is malformed. 2957Return nil if the -*- line is malformed.
2956 2958
2957If MODE-ONLY is non-nil, just returns the symbol specifying the 2959If MODE-ONLY is non-nil, just returns the symbol specifying the
2958mode, if there is one, otherwise nil." 2960mode, if there is one, otherwise nil."
2959 (save-excursion 2961 (catch 'malformed-line
2960 (goto-char (point-min)) 2962 (save-excursion
2961 (let ((end (set-auto-mode-1)) 2963 (goto-char (point-min))
2962 result) 2964 (let ((end (set-auto-mode-1))
2963 (cond ((not end) 2965 result)
2964 nil) 2966 (cond ((not end)
2965 ((looking-at "[ \t]*\\([^ \t\n\r:;]+\\)\\([ \t]*-\\*-\\)") 2967 nil)
2966 ;; Simple form: "-*- MODENAME -*-". 2968 ((looking-at "[ \t]*\\([^ \t\n\r:;]+\\)\\([ \t]*-\\*-\\)")
2967 (if mode-only 2969 ;; Simple form: "-*- MODENAME -*-".
2968 (intern (concat (match-string 1) "-mode")))) 2970 (if mode-only
2969 (t 2971 (intern (concat (match-string 1) "-mode"))))
2970 ;; Hairy form: '-*-' [ <variable> ':' <value> ';' ]* '-*-' 2972 (t
2971 ;; (last ";" is optional). 2973 ;; Hairy form: '-*-' [ <variable> ':' <value> ';' ]* '-*-'
2972 ;; If MODE-ONLY, just check for `mode'. 2974 ;; (last ";" is optional).
2973 ;; Otherwise, parse the -*- line into the RESULT alist. 2975 ;; If MODE-ONLY, just check for `mode'.
2974 (while (and (or (not mode-only) 2976 ;; Otherwise, parse the -*- line into the RESULT alist.
2975 (not result)) 2977 (while (and (or (not mode-only)
2976 (< (point) end)) 2978 (not result))
2977 (or (looking-at "[ \t]*\\([^ \t\n:]+\\)[ \t]*:[ \t]*") 2979 (< (point) end))
2978 (error "Malformed -*- line")) 2980 (unless (looking-at "[ \t]*\\([^ \t\n:]+\\)[ \t]*:[ \t]*")
2979 (goto-char (match-end 0)) 2981 (message "Malformed mode-line")
2980 ;; There used to be a downcase here, 2982 (throw 'malformed-line nil))
2981 ;; but the manual didn't say so, 2983 (goto-char (match-end 0))
2982 ;; and people want to set var names that aren't all lc. 2984 ;; There used to be a downcase here,
2983 (let* ((key (intern (match-string 1))) 2985 ;; but the manual didn't say so,
2984 (val (save-restriction 2986 ;; and people want to set var names that aren't all lc.
2985 (narrow-to-region (point) end) 2987 (let* ((key (intern (match-string 1)))
2986 (let ((read-circle nil)) 2988 (val (save-restriction
2987 (read (current-buffer))))) 2989 (narrow-to-region (point) end)
2988 ;; It is traditional to ignore 2990 (let ((read-circle nil))
2989 ;; case when checking for `mode' in set-auto-mode, 2991 (read (current-buffer)))))
2990 ;; so we must do that here as well. 2992 ;; It is traditional to ignore
2991 ;; That is inconsistent, but we're stuck with it. 2993 ;; case when checking for `mode' in set-auto-mode,
2992 ;; The same can be said for `coding' in set-auto-coding. 2994 ;; so we must do that here as well.
2993 (keyname (downcase (symbol-name key)))) 2995 ;; That is inconsistent, but we're stuck with it.
2994 (if mode-only 2996 ;; The same can be said for `coding' in set-auto-coding.
2995 (and (equal keyname "mode") 2997 (keyname (downcase (symbol-name key))))
2996 (setq result 2998 (if mode-only
2997 (intern (concat (downcase (symbol-name val)) 2999 (and (equal keyname "mode")
2998 "-mode")))) 3000 (setq result
2999 (or (equal keyname "coding") 3001 (intern (concat (downcase (symbol-name val))
3000 (condition-case nil 3002 "-mode"))))
3001 (push (cons (cond ((eq key 'eval) 'eval) 3003 (or (equal keyname "coding")
3002 ;; Downcase "Mode:". 3004 (condition-case nil
3003 ((equal keyname "mode") 'mode) 3005 (push (cons (cond ((eq key 'eval) 'eval)
3004 (t (indirect-variable key))) 3006 ;; Downcase "Mode:".
3005 val) result) 3007 ((equal keyname "mode") 'mode)
3006 (error nil)))) 3008 (t (indirect-variable key)))
3007 (skip-chars-forward " \t;"))) 3009 val) result)
3008 result))))) 3010 (error nil))))
3011 (skip-chars-forward " \t;")))
3012 result))))))
3009 3013
3010(defun hack-local-variables-filter (variables dir-name) 3014(defun hack-local-variables-filter (variables dir-name)
3011 "Filter local variable settings, querying the user if necessary. 3015 "Filter local variable settings, querying the user if necessary.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 211c4455717..fa22d1a5ea1 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,7 @@
12011-09-17 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * mm-decode.el (mm-inline-media-tests): Support imagemagick images.
4
12011-09-15 Lars Magne Ingebrigtsen <larsi@gnus.org> 52011-09-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 6
3 * gnus-sum.el (gnus-summary-read-group-1): Bump the "Retrieving" 7 * gnus-sum.el (gnus-summary-read-group-1): Bump the "Retrieving"
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 692175d471f..6e56213c327 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -195,7 +195,7 @@ before the external MIME handler is invoked."
195 ("image/tiff" 195 ("image/tiff"
196 mm-inline-image 196 mm-inline-image
197 (lambda (handle) 197 (lambda (handle)
198 (mm-valid-and-fit-image-p 'tiff handle)) ) 198 (mm-valid-and-fit-image-p 'tiff handle)))
199 ("image/xbm" 199 ("image/xbm"
200 mm-inline-image 200 mm-inline-image
201 (lambda (handle) 201 (lambda (handle)
@@ -265,6 +265,20 @@ before the external MIME handler is invoked."
265 ("multipart/alternative" ignore identity) 265 ("multipart/alternative" ignore identity)
266 ("multipart/mixed" ignore identity) 266 ("multipart/mixed" ignore identity)
267 ("multipart/related" ignore identity) 267 ("multipart/related" ignore identity)
268 ("image/*"
269 mm-inline-image
270 (lambda (handle)
271 (and (mm-valid-image-format-p 'imagemagick)
272 (mm-with-unibyte-buffer
273 (mm-insert-part handle)
274 (let ((image
275 (ignore-errors
276 (if (fboundp 'create-image)
277 (create-image (buffer-string) 'imagemagick 'data-p)
278 (mm-create-image-xemacs type)))))
279 (when image
280 (setcar (cdr handle) (list "image/imagemagick"))
281 (mm-image-fit-p handle)))))))
268 ;; Disable audio and image 282 ;; Disable audio and image
269 ("audio/.*" ignore ignore) 283 ("audio/.*" ignore ignore)
270 ("image/.*" ignore ignore) 284 ("image/.*" ignore ignore)
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index 5a90f015aed..926422865c7 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -90,13 +90,14 @@
90 (put-image 90 (put-image
91 (let ((image (mm-get-image handle))) 91 (let ((image (mm-get-image handle)))
92 (if (eq mm-inline-large-images 'resize) 92 (if (eq mm-inline-large-images 'resize)
93 (gnus-rescale-image image 93 (gnus-rescale-image
94 (let ((edges (gnus-window-inside-pixel-edges 94 image
95 (get-buffer-window (current-buffer))))) 95 (let ((edges (gnus-window-inside-pixel-edges
96 (cons (truncate (* mm-inline-large-images-proportion 96 (get-buffer-window (current-buffer)))))
97 (- (nth 2 edges) (nth 0 edges)))) 97 (cons (truncate (* mm-inline-large-images-proportion
98 (truncate (* mm-inline-large-images-proportion 98 (- (nth 2 edges) (nth 0 edges))))
99 (- (nth 3 edges) (nth 1 edges))))))) 99 (truncate (* mm-inline-large-images-proportion
100 (- (nth 3 edges) (nth 1 edges)))))))
100 image)) 101 image))
101 b) 102 b)
102 (insert "\n\n") 103 (insert "\n\n")
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index 5f3680630f4..bdd19194c22 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -179,11 +179,8 @@ otherwise turn it off."
179 (if icomplete-mode 179 (if icomplete-mode
180 ;; The following is not really necessary after first time - 180 ;; The following is not really necessary after first time -
181 ;; no great loss. 181 ;; no great loss.
182 (progn 182 (add-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup)
183 (setq completion-show-inline-help nil) 183 (remove-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup)))
184 (add-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup))
185 (remove-hook 'minibuffer-setup-hook 'icomplete-minibuffer-setup)
186 (setq completion-show-inline-help t)))
187 184
188;;;_ > icomplete-simple-completing-p () 185;;;_ > icomplete-simple-completing-p ()
189(defun icomplete-simple-completing-p () 186(defun icomplete-simple-completing-p ()
@@ -209,6 +206,7 @@ Conditions are:
209 "Run in minibuffer on activation to establish incremental completion. 206 "Run in minibuffer on activation to establish incremental completion.
210Usually run by inclusion in `minibuffer-setup-hook'." 207Usually run by inclusion in `minibuffer-setup-hook'."
211 (when (and icomplete-mode (icomplete-simple-completing-p)) 208 (when (and icomplete-mode (icomplete-simple-completing-p))
209 (set (make-local-variable 'completion-show-inline-help) nil)
212 (add-hook 'pre-command-hook 210 (add-hook 'pre-command-hook
213 (lambda () (run-hooks 'icomplete-pre-command-hook)) 211 (lambda () (run-hooks 'icomplete-pre-command-hook))
214 nil t) 212 nil t)
diff --git a/lisp/image.el b/lisp/image.el
index 30362251664..c150f4239dd 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -695,16 +695,14 @@ Emacs visits them in Image mode.
695 695
696If Emacs is compiled without ImageMagick support, do nothing." 696If Emacs is compiled without ImageMagick support, do nothing."
697 (when (fboundp 'imagemagick-types) 697 (when (fboundp 'imagemagick-types)
698 (let ((im-types (imagemagick-types))) 698 (let ((im-types '()))
699 (dolist (im-inhibit imagemagick-types-inhibit) 699 (dolist (im-type (imagemagick-types))
700 (setq im-types (delq im-inhibit im-types))) 700 (unless (memq im-type imagemagick-types-inhibit)
701 (dolist (im-type im-types) 701 (push (downcase (symbol-name im-type)) im-types)))
702 (let ((extension 702 (let ((extension (concat "\\." (regexp-opt im-types) "\\'")))
703 (concat "\\." (downcase (symbol-name im-type)) 703 (push (cons extension 'image-mode) auto-mode-alist)
704 "\\'"))) 704 (push (cons extension 'imagemagick)
705 (push (cons extension 'image-mode) auto-mode-alist) 705 image-type-file-name-regexps)))))
706 (push (cons extension 'imagemagick)
707 image-type-file-name-regexps))))))
708 706
709(provide 'image) 707(provide 'image)
710 708
diff --git a/lisp/info.el b/lisp/info.el
index 40959885edb..e79e4b1195e 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -540,7 +540,7 @@ in `Info-file-supports-index-cookies-list'."
540 (condition-case () 540 (condition-case ()
541 (if (and (re-search-forward 541 (if (and (re-search-forward
542 "makeinfo[ \n]version[ \n]\\([0-9]+.[0-9]+\\)" 542 "makeinfo[ \n]version[ \n]\\([0-9]+.[0-9]+\\)"
543 (line-beginning-position 3) t) 543 (line-beginning-position 4) t)
544 (not (version< (match-string 1) "4.7"))) 544 (not (version< (match-string 1) "4.7")))
545 (setq found t)) 545 (setq found t))
546 (error nil)) 546 (error nil))
@@ -2440,7 +2440,8 @@ Because of ambiguities, this should be concatenated with something like
2440 ) 2440 )
2441 (replace-regexp-in-string 2441 (replace-regexp-in-string
2442 "[ \n]+" " " 2442 "[ \n]+" " "
2443 (or (match-string-no-properties 2) 2443 (or (and (not (equal (match-string-no-properties 2) ""))
2444 (match-string-no-properties 2))
2444 ;; If the node name is the menu entry name (using `entry::'). 2445 ;; If the node name is the menu entry name (using `entry::').
2445 (buffer-substring-no-properties 2446 (buffer-substring-no-properties
2446 (match-beginning 0) (1- (match-beginning 1))))))) 2447 (match-beginning 0) (1- (match-beginning 1)))))))
@@ -2765,22 +2766,24 @@ N is the digit argument used to invoke this command."
2765 ;; so we can scroll back through it. 2766 ;; so we can scroll back through it.
2766 (goto-char (point-max))) 2767 (goto-char (point-max)))
2767 ;; Keep going down, as long as there are nested menu nodes. 2768 ;; Keep going down, as long as there are nested menu nodes.
2768 (while (Info-no-error 2769 (let (Info-history) ; Don't add intermediate nodes to the history.
2769 (Info-last-menu-item) 2770 (while (Info-no-error
2770 ;; If we go down a menu item, go to the end of the node 2771 (Info-last-menu-item)
2771 ;; so we can scroll back through it. 2772 ;; If we go down a menu item, go to the end of the node
2772 (goto-char (point-max)))) 2773 ;; so we can scroll back through it.
2774 (goto-char (point-max)))))
2773 (recenter -1)) 2775 (recenter -1))
2774 ((and (Info-no-error (Info-extract-pointer "prev")) 2776 ((and (Info-no-error (Info-extract-pointer "prev"))
2775 (not (equal (Info-extract-pointer "up") 2777 (not (equal (Info-extract-pointer "up")
2776 (Info-extract-pointer "prev")))) 2778 (Info-extract-pointer "prev"))))
2777 (Info-no-error (Info-prev)) 2779 (Info-no-error (Info-prev))
2778 (goto-char (point-max)) 2780 (goto-char (point-max))
2779 (while (Info-no-error 2781 (let (Info-history) ; Don't add intermediate nodes to the history.
2780 (Info-last-menu-item) 2782 (while (Info-no-error
2781 ;; If we go down a menu item, go to the end of the node 2783 (Info-last-menu-item)
2782 ;; so we can scroll back through it. 2784 ;; If we go down a menu item, go to the end of the node
2783 (goto-char (point-max)))) 2785 ;; so we can scroll back through it.
2786 (goto-char (point-max)))))
2784 (recenter -1)) 2787 (recenter -1))
2785 ((Info-no-error (Info-up t)) 2788 ((Info-no-error (Info-up t))
2786 (goto-char (point-min)) 2789 (goto-char (point-min))
@@ -3887,6 +3890,14 @@ With a zero prefix arg, put the name inside a function call to `info'."
3887(defvar tool-bar-map) 3890(defvar tool-bar-map)
3888(defvar bookmark-make-record-function) 3891(defvar bookmark-make-record-function)
3889 3892
3893(defvar Info-mode-syntax-table
3894 (let ((st (copy-syntax-table text-mode-syntax-table)))
3895 ;; Use punctuation syntax for apostrophe because of
3896 ;; extensive use of quotes like `this' in Info manuals.
3897 (modify-syntax-entry ?' "." st)
3898 st)
3899 "Syntax table used in `Info-mode'.")
3900
3890;; Autoload cookie needed by desktop.el 3901;; Autoload cookie needed by desktop.el
3891;;;###autoload 3902;;;###autoload
3892(define-derived-mode Info-mode nil "Info" 3903(define-derived-mode Info-mode nil "Info"
@@ -3951,7 +3962,7 @@ Advanced commands:
3951\\[clone-buffer] Select a new cloned Info buffer in another window. 3962\\[clone-buffer] Select a new cloned Info buffer in another window.
3952\\[universal-argument] \\[info] Move to new Info file with completion. 3963\\[universal-argument] \\[info] Move to new Info file with completion.
3953\\[universal-argument] N \\[info] Select Info buffer with prefix number in the name *info*<N>." 3964\\[universal-argument] N \\[info] Select Info buffer with prefix number in the name *info*<N>."
3954 :syntax-table text-mode-syntax-table 3965 :syntax-table Info-mode-syntax-table
3955 :abbrev-table text-mode-abbrev-table 3966 :abbrev-table text-mode-abbrev-table
3956 (setq tab-width 8) 3967 (setq tab-width 8)
3957 (add-hook 'activate-menubar-hook 'Info-menu-update nil t) 3968 (add-hook 'activate-menubar-hook 'Info-menu-update nil t)
diff --git a/lisp/isearch.el b/lisp/isearch.el
index e07f1429119..81e0b4bf3b7 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1110,6 +1110,7 @@ The following additional command keys are active while editing.
1110 (isearch-new-message isearch-message) 1110 (isearch-new-message isearch-message)
1111 (isearch-new-forward isearch-forward) 1111 (isearch-new-forward isearch-forward)
1112 (isearch-new-word isearch-word) 1112 (isearch-new-word isearch-word)
1113 (isearch-new-case-fold isearch-case-fold-search)
1113 1114
1114 (isearch-regexp isearch-regexp) 1115 (isearch-regexp isearch-regexp)
1115 (isearch-op-fun isearch-op-fun) 1116 (isearch-op-fun isearch-op-fun)
@@ -1203,7 +1204,8 @@ The following additional command keys are active while editing.
1203 (setq isearch-string isearch-new-string 1204 (setq isearch-string isearch-new-string
1204 isearch-message isearch-new-message 1205 isearch-message isearch-new-message
1205 isearch-forward isearch-new-forward 1206 isearch-forward isearch-new-forward
1206 isearch-word isearch-new-word)) 1207 isearch-word isearch-new-word
1208 isearch-case-fold-search isearch-new-case-fold))
1207 1209
1208 ;; Empty isearch-string means use default. 1210 ;; Empty isearch-string means use default.
1209 (when (= 0 (length isearch-string)) 1211 (when (= 0 (length isearch-string))
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index 9fe19581e81..1c6f2c7b7ed 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -773,8 +773,12 @@ The list is in preference order.")
773 (eq (car result) 530)) 773 (eq (car result) 530))
774 ;; We got a "530 auth required", so we close and try 774 ;; We got a "530 auth required", so we close and try
775 ;; again, this time asking the user for a password. 775 ;; again, this time asking the user for a password.
776 (smtpmail-send-command process "QUIT") 776 ;; We ignore any errors here, because some MTAs just
777 (smtpmail-read-response process) 777 ;; close the connection immediately after giving the
778 ;; error message.
779 (ignore-errors
780 (smtpmail-send-command process "QUIT")
781 (smtpmail-read-response process))
778 (delete-process process) 782 (delete-process process)
779 (setq process nil) 783 (setq process nil)
780 (throw 'done 784 (throw 'done
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index caae40ed8c5..eceb3afc147 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -985,7 +985,7 @@ by \"Save Options\" in Custom buffers.")
985 (let ((menu (make-sparse-keymap "Tool-bar"))) 985 (let ((menu (make-sparse-keymap "Tool-bar")))
986 986
987 (define-key menu [showhide-tool-bar-left] 987 (define-key menu [showhide-tool-bar-left]
988 `(menu-item ,(purecopy "On the left") 988 `(menu-item ,(purecopy "On the Left")
989 menu-bar-showhide-tool-bar-menu-customize-enable-left 989 menu-bar-showhide-tool-bar-menu-customize-enable-left
990 :help ,(purecopy "Tool-bar at the left side") 990 :help ,(purecopy "Tool-bar at the left side")
991 :visible (display-graphic-p) 991 :visible (display-graphic-p)
@@ -997,7 +997,7 @@ by \"Save Options\" in Custom buffers.")
997 'left))))) 997 'left)))))
998 998
999 (define-key menu [showhide-tool-bar-right] 999 (define-key menu [showhide-tool-bar-right]
1000 `(menu-item ,(purecopy "On the right") 1000 `(menu-item ,(purecopy "On the Right")
1001 menu-bar-showhide-tool-bar-menu-customize-enable-right 1001 menu-bar-showhide-tool-bar-menu-customize-enable-right
1002 :help ,(purecopy "Tool-bar at the right side") 1002 :help ,(purecopy "Tool-bar at the right side")
1003 :visible (display-graphic-p) 1003 :visible (display-graphic-p)
@@ -1009,7 +1009,7 @@ by \"Save Options\" in Custom buffers.")
1009 'right))))) 1009 'right)))))
1010 1010
1011 (define-key menu [showhide-tool-bar-bottom] 1011 (define-key menu [showhide-tool-bar-bottom]
1012 `(menu-item ,(purecopy "On the bottom") 1012 `(menu-item ,(purecopy "On the Bottom")
1013 menu-bar-showhide-tool-bar-menu-customize-enable-bottom 1013 menu-bar-showhide-tool-bar-menu-customize-enable-bottom
1014 :help ,(purecopy "Tool-bar at the bottom") 1014 :help ,(purecopy "Tool-bar at the bottom")
1015 :visible (display-graphic-p) 1015 :visible (display-graphic-p)
@@ -1021,7 +1021,7 @@ by \"Save Options\" in Custom buffers.")
1021 'bottom))))) 1021 'bottom)))))
1022 1022
1023 (define-key menu [showhide-tool-bar-top] 1023 (define-key menu [showhide-tool-bar-top]
1024 `(menu-item ,(purecopy "On the top") 1024 `(menu-item ,(purecopy "On the Top")
1025 menu-bar-showhide-tool-bar-menu-customize-enable-top 1025 menu-bar-showhide-tool-bar-menu-customize-enable-top
1026 :help ,(purecopy "Tool-bar at the top") 1026 :help ,(purecopy "Tool-bar at the top")
1027 :visible (display-graphic-p) 1027 :visible (display-graphic-p)
@@ -1200,7 +1200,7 @@ mail status in mode line"))
1200 (define-key menu [menu-system-font] 1200 (define-key menu [menu-system-font]
1201 (menu-bar-make-toggle 1201 (menu-bar-make-toggle
1202 toggle-use-system-font font-use-system-font 1202 toggle-use-system-font font-use-system-font
1203 "Use system font" 1203 "Use System Font"
1204 "Use system font: %s" 1204 "Use system font: %s"
1205 "Use the monospaced font defined by the system"))) 1205 "Use the monospaced font defined by the system")))
1206 1206
@@ -1304,7 +1304,7 @@ mail status in mode line"))
1304 (eq 'turn-on-auto-fill text-mode-hook))))) 1304 (eq 'turn-on-auto-fill text-mode-hook)))))
1305 1305
1306 (define-key menu [line-wrapping] 1306 (define-key menu [line-wrapping]
1307 `(menu-item ,(purecopy "Line Wrapping in this Buffer") 1307 `(menu-item ,(purecopy "Line Wrapping in This Buffer")
1308 ,menu-bar-line-wrapping-menu)) 1308 ,menu-bar-line-wrapping-menu))
1309 1309
1310 1310
diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el
index a45cc5500c2..1fa57dbfe3e 100644
--- a/lisp/net/ldap.el
+++ b/lisp/net/ldap.el
@@ -632,9 +632,10 @@ an alist of attribute/value pairs."
632 (setq record (cons (list name value) 632 (setq record (cons (list name value)
633 record)) 633 record))
634 (forward-line 1)) 634 (forward-line 1))
635 (push (if withdn 635 (cond (withdn
636 (cons dn (nreverse record)) 636 (push (cons dn (nreverse record)) result))
637 (nreverse record)) result) 637 (record
638 (push (nreverse record) result)))
638 (setq record nil) 639 (setq record nil)
639 (skip-chars-forward " \t\n") 640 (skip-chars-forward " \t\n")
640 (message "Parsing results... %d" numres) 641 (message "Parsing results... %d" numres)
diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el
index 460c9f0e118..5054f1d232d 100644
--- a/lisp/net/tramp-compat.el
+++ b/lisp/net/tramp-compat.el
@@ -41,6 +41,7 @@
41 (require 'advice) 41 (require 'advice)
42 (require 'custom) 42 (require 'custom)
43 (require 'format-spec) 43 (require 'format-spec)
44 (require 'shell)
44 45
45 ;; As long as password.el is not part of (X)Emacs, it shouldn't be 46 ;; As long as password.el is not part of (X)Emacs, it shouldn't be
46 ;; mandatory. 47 ;; mandatory.
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 1fa358e9277..e94581392fa 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -2280,7 +2280,7 @@ The method used must be an out-of-band method."
2280 ;; password. 2280 ;; password.
2281 (setq tramp-current-method (tramp-file-name-method v) 2281 (setq tramp-current-method (tramp-file-name-method v)
2282 tramp-current-user (tramp-file-name-user v) 2282 tramp-current-user (tramp-file-name-user v)
2283 tramp-current-host (tramp-file-name-host v)) 2283 tramp-current-host (tramp-file-name-real-host v))
2284 2284
2285 ;; Expand hops. Might be necessary for gateway methods. 2285 ;; Expand hops. Might be necessary for gateway methods.
2286 (setq v (car (tramp-compute-multi-hops v))) 2286 (setq v (car (tramp-compute-multi-hops v)))
@@ -4025,6 +4025,7 @@ means discard it)."
4025(defconst tramp-inline-compress-commands 4025(defconst tramp-inline-compress-commands
4026 '(("gzip" "gzip -d") 4026 '(("gzip" "gzip -d")
4027 ("bzip2" "bzip2 -d") 4027 ("bzip2" "bzip2 -d")
4028 ("xz" "xz -d")
4028 ("compress" "compress -d")) 4029 ("compress" "compress -d"))
4029 "List of compress and decompress commands for inline transfer. 4030 "List of compress and decompress commands for inline transfer.
4030Each item is a list that looks like this: 4031Each item is a list that looks like this:
@@ -4292,7 +4293,7 @@ connection if a previous connection has died for some reason."
4292 (gw (tramp-get-file-property hop "" "gateway" nil)) 4293 (gw (tramp-get-file-property hop "" "gateway" nil))
4293 (g-method (and gw (tramp-file-name-method gw))) 4294 (g-method (and gw (tramp-file-name-method gw)))
4294 (g-user (and gw (tramp-file-name-user gw))) 4295 (g-user (and gw (tramp-file-name-user gw)))
4295 (g-host (and gw (tramp-file-name-host gw))) 4296 (g-host (and gw (tramp-file-name-real-host gw)))
4296 (command login-program) 4297 (command login-program)
4297 ;; We don't create the temporary file. In fact, 4298 ;; We don't create the temporary file. In fact,
4298 ;; it is just a prefix for the ControlPath option 4299 ;; it is just a prefix for the ControlPath option
@@ -4721,16 +4722,6 @@ This is used internally by `tramp-file-mode-from-int'."
4721 x)) 4722 x))
4722 remote-path))))) 4723 remote-path)))))
4723 4724
4724(defun tramp-get-remote-tmpdir (vec)
4725 (with-connection-property vec "tmp-directory"
4726 (let ((dir (tramp-shell-quote-argument "/tmp")))
4727 (if (and (tramp-send-command-and-check
4728 vec (format "%s -d %s" (tramp-get-test-command vec) dir))
4729 (tramp-send-command-and-check
4730 vec (format "%s -w %s" (tramp-get-test-command vec) dir)))
4731 dir
4732 (tramp-error vec 'file-error "Directory %s not accessible" dir)))))
4733
4734(defun tramp-get-ls-command (vec) 4725(defun tramp-get-ls-command (vec)
4735 (with-connection-property vec "ls" 4726 (with-connection-property vec "ls"
4736 (tramp-message vec 5 "Finding a suitable `ls' command") 4727 (tramp-message vec 5 "Finding a suitable `ls' command")
diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el
index eb456298c1a..150ef18be52 100644
--- a/lisp/net/tramp-smb.el
+++ b/lisp/net/tramp-smb.el
@@ -38,7 +38,15 @@
38;; ... and add it to the method list. 38;; ... and add it to the method list.
39;;;###tramp-autoload 39;;;###tramp-autoload
40(unless (memq system-type '(cygwin windows-nt)) 40(unless (memq system-type '(cygwin windows-nt))
41 (add-to-list 'tramp-methods (cons tramp-smb-method nil))) 41 (add-to-list 'tramp-methods
42 `(,tramp-smb-method
43 ;; We define an empty command, because `tramp-smb-call-winexe'
44 ;; opens already the powershell. Used in `tramp-handle-shell-command'.
45 (tramp-remote-shell "")
46 ;; This is just a guess. We don't know whether the share "$C"
47 ;; is available for public use, and whether the user has write
48 ;; access.
49 (tramp-tmpdir "/C$/Temp"))))
42 50
43;; Add a default for `tramp-default-method-alist'. Rule: If there is 51;; Add a default for `tramp-default-method-alist'. Rule: If there is
44;; a domain in USER, it must be the SMB method. 52;; a domain in USER, it must be the SMB method.
@@ -98,7 +106,8 @@ call, letting the SMB client use the default one."
98 "ERRnomem" 106 "ERRnomem"
99 "ERRnosuchshare" 107 "ERRnosuchshare"
100 ;; Windows 4.0 (Windows NT), Windows 5.0 (Windows 2000), 108 ;; Windows 4.0 (Windows NT), Windows 5.0 (Windows 2000),
101 ;; Windows 5.1 (Windows XP), Windows 5.2 (Windows Server 2003). 109 ;; Windows 5.1 (Windows XP), Windows 5.2 (Windows Server 2003),
110 ;; Windows 6.0 (Windows Vista), Windows 6.1 (Windows 7).
102 "NT_STATUS_ACCESS_DENIED" 111 "NT_STATUS_ACCESS_DENIED"
103 "NT_STATUS_ACCOUNT_LOCKED_OUT" 112 "NT_STATUS_ACCOUNT_LOCKED_OUT"
104 "NT_STATUS_BAD_NETWORK_NAME" 113 "NT_STATUS_BAD_NETWORK_NAME"
@@ -107,6 +116,7 @@ call, letting the SMB client use the default one."
107 "NT_STATUS_DIRECTORY_NOT_EMPTY" 116 "NT_STATUS_DIRECTORY_NOT_EMPTY"
108 "NT_STATUS_DUPLICATE_NAME" 117 "NT_STATUS_DUPLICATE_NAME"
109 "NT_STATUS_FILE_IS_A_DIRECTORY" 118 "NT_STATUS_FILE_IS_A_DIRECTORY"
119 "NT_STATUS_IMAGE_ALREADY_LOADED"
110 "NT_STATUS_IO_TIMEOUT" 120 "NT_STATUS_IO_TIMEOUT"
111 "NT_STATUS_LOGON_FAILURE" 121 "NT_STATUS_LOGON_FAILURE"
112 "NT_STATUS_NETWORK_ACCESS_DENIED" 122 "NT_STATUS_NETWORK_ACCESS_DENIED"
@@ -490,39 +500,40 @@ PRESERVE-UID-GID and PRESERVE-SELINUX-CONTEXT are completely ignored."
490(defun tramp-smb-handle-file-attributes (filename &optional id-format) 500(defun tramp-smb-handle-file-attributes (filename &optional id-format)
491 "Like `file-attributes' for Tramp files." 501 "Like `file-attributes' for Tramp files."
492 (unless id-format (setq id-format 'integer)) 502 (unless id-format (setq id-format 'integer))
493 (with-parsed-tramp-file-name filename nil 503 (ignore-errors
494 (with-file-property v localname (format "file-attributes-%s" id-format) 504 (with-parsed-tramp-file-name filename nil
495 (if (and (tramp-smb-get-share v) (tramp-smb-get-stat-capability v)) 505 (with-file-property v localname (format "file-attributes-%s" id-format)
496 (tramp-smb-do-file-attributes-with-stat v id-format) 506 (if (and (tramp-smb-get-share v) (tramp-smb-get-stat-capability v))
497 ;; Reading just the filename entry via "dir localname" is not 507 (tramp-smb-do-file-attributes-with-stat v id-format)
498 ;; possible, because when filename is a directory, some 508 ;; Reading just the filename entry via "dir localname" is not
499 ;; smbclient versions return the content of the directory, and 509 ;; possible, because when filename is a directory, some
500 ;; other versions don't. Therefore, the whole content of the 510 ;; smbclient versions return the content of the directory, and
501 ;; upper directory is retrieved, and the entry of the filename 511 ;; other versions don't. Therefore, the whole content of the
502 ;; is extracted from. 512 ;; upper directory is retrieved, and the entry of the filename
503 (let* ((entries (tramp-smb-get-file-entries 513 ;; is extracted from.
504 (file-name-directory filename))) 514 (let* ((entries (tramp-smb-get-file-entries
505 (entry (assoc (file-name-nondirectory filename) entries)) 515 (file-name-directory filename)))
506 (uid (if (equal id-format 'string) "nobody" -1)) 516 (entry (assoc (file-name-nondirectory filename) entries))
507 (gid (if (equal id-format 'string) "nogroup" -1)) 517 (uid (if (equal id-format 'string) "nobody" -1))
508 (inode (tramp-get-inode v)) 518 (gid (if (equal id-format 'string) "nogroup" -1))
509 (device (tramp-get-device v))) 519 (inode (tramp-get-inode v))
510 520 (device (tramp-get-device v)))
511 ;; Check result. 521
512 (when entry 522 ;; Check result.
513 (list (and (string-match "d" (nth 1 entry)) 523 (when entry
514 t) ;0 file type 524 (list (and (string-match "d" (nth 1 entry))
515 -1 ;1 link count 525 t) ;0 file type
516 uid ;2 uid 526 -1 ;1 link count
517 gid ;3 gid 527 uid ;2 uid
518 '(0 0) ;4 atime 528 gid ;3 gid
519 (nth 3 entry) ;5 mtime 529 '(0 0) ;4 atime
520 '(0 0) ;6 ctime 530 (nth 3 entry) ;5 mtime
521 (nth 2 entry) ;7 size 531 '(0 0) ;6 ctime
522 (nth 1 entry) ;8 mode 532 (nth 2 entry) ;7 size
523 nil ;9 gid weird 533 (nth 1 entry) ;8 mode
524 inode ;10 inode number 534 nil ;9 gid weird
525 device))))))) ;11 file system number 535 inode ;10 inode number
536 device)))))))) ;11 file system number
526 537
527(defun tramp-smb-do-file-attributes-with-stat (vec &optional id-format) 538(defun tramp-smb-do-file-attributes-with-stat (vec &optional id-format)
528 "Implement `file-attributes' for Tramp files using stat command." 539 "Implement `file-attributes' for Tramp files using stat command."
@@ -1352,12 +1363,13 @@ Returns nil if an error message has appeared."
1352 (found (progn (goto-char (point-min)) 1363 (found (progn (goto-char (point-min))
1353 (re-search-forward tramp-smb-prompt nil t))) 1364 (re-search-forward tramp-smb-prompt nil t)))
1354 (err (progn (goto-char (point-min)) 1365 (err (progn (goto-char (point-min))
1355 (re-search-forward tramp-smb-errors nil t)))) 1366 (re-search-forward tramp-smb-errors nil t)))
1367 buffer-read-only)
1356 1368
1357 ;; Algorithm: get waiting output. See if last line contains 1369 ;; Algorithm: get waiting output. See if last line contains
1358 ;; tramp-smb-prompt sentinel or tramp-smb-errors strings. 1370 ;; `tramp-smb-prompt' sentinel or `tramp-smb-errors' strings.
1359 ;; If not, wait a bit and again get waiting output. 1371 ;; If not, wait a bit and again get waiting output.
1360 (while (and (not found) (not err)) 1372 (while (and (not found) (not err) (memq (process-status p) '(run open)))
1361 1373
1362 ;; Accept pending output. 1374 ;; Accept pending output.
1363 (tramp-accept-process-output p) 1375 (tramp-accept-process-output p)
@@ -1393,12 +1405,11 @@ Returns nil if an error message has appeared."
1393;;; TODO: 1405;;; TODO:
1394 1406
1395;; * Error handling in case password is wrong. 1407;; * Error handling in case password is wrong.
1396;; * Read password from "~/.netrc".
1397;; * Return more comprehensive file permission string. 1408;; * Return more comprehensive file permission string.
1398;; * Try to remove the inclusion of dummy "" directory. Seems to be at 1409;; * Try to remove the inclusion of dummy "" directory. Seems to be at
1399;; several places, especially in `tramp-smb-handle-insert-directory'. 1410;; several places, especially in `tramp-smb-handle-insert-directory'.
1400;; * (RMS) Use unwind-protect to clean up the state so as to make the state 1411;; * (RMS) Use unwind-protect to clean up the state so as to make the state
1401;; regular again. 1412;; regular again.
1402;; * Make it multi-hop capable. 1413;; * Ignore case in file names.
1403 1414
1404;;; tramp-smb.el ends here 1415;;; tramp-smb.el ends here
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 6475ea42ec8..3384a6d776b 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -58,7 +58,6 @@
58;;; Code: 58;;; Code:
59 59
60(require 'tramp-compat) 60(require 'tramp-compat)
61(require 'shell)
62 61
63;;; User Customizable Internal Variables: 62;;; User Customizable Internal Variables:
64 63
@@ -192,15 +191,16 @@ This is a list of entries of the form (NAME PARAM1 PARAM2 ...).
192Each NAME stands for a remote access method. Each PARAM is a 191Each NAME stands for a remote access method. Each PARAM is a
193pair of the form (KEY VALUE). The following KEYs are defined: 192pair of the form (KEY VALUE). The following KEYs are defined:
194 * `tramp-remote-shell' 193 * `tramp-remote-shell'
195 This specifies the Bourne shell to use on the remote host. This 194 This specifies the shell to use on the remote host. This
196 MUST be a Bourne-like shell. It is normally not necessary to set 195 MUST be a Bourne-like shell. It is normally not necessary to
197 this to any value other than \"/bin/sh\": Tramp wants to use a shell 196 set this to any value other than \"/bin/sh\": Tramp wants to
198 which groks tilde expansion, but it can search for it. Also note 197 use a shell which groks tilde expansion, but it can search
199 that \"/bin/sh\" exists on all Unixen, this might not be true for 198 for it. Also note that \"/bin/sh\" exists on all Unixen,
200 the value that you decide to use. You Have Been Warned. 199 this might not be true for the value that you decide to use.
200 You Have Been Warned.
201 * `tramp-remote-shell-args' 201 * `tramp-remote-shell-args'
202 For implementation of `shell-command', this specifies the 202 For implementation of `shell-command', this specifies the
203 argument to let `tramp-remote-shell' run a command. 203 arguments to let `tramp-remote-shell' run a single command.
204 * `tramp-login-program' 204 * `tramp-login-program'
205 This specifies the name of the program to use for logging in to the 205 This specifies the name of the program to use for logging in to the
206 remote host. This may be the name of rsh or a workalike program, 206 remote host. This may be the name of rsh or a workalike program,
@@ -255,6 +255,9 @@ pair of the form (KEY VALUE). The following KEYs are defined:
255 not have to be newline or carriage return characters. Other login 255 not have to be newline or carriage return characters. Other login
256 programs are happy with just one character, the newline character. 256 programs are happy with just one character, the newline character.
257 We use \"xy\" as the value for methods using \"plink\". 257 We use \"xy\" as the value for methods using \"plink\".
258 * `tramp-tmpdir'
259 A directory on the remote host for temporary files. If not
260 specified, \"/tmp\" is taken as default.
258 261
259What does all this mean? Well, you should specify `tramp-login-program' 262What does all this mean? Well, you should specify `tramp-login-program'
260for all methods; this program is used to log in to the remote site. Then, 263for all methods; this program is used to log in to the remote site. Then,
@@ -3531,20 +3534,26 @@ If the `tramp-methods' entry does not exist, return nil."
3531 ;; loaded already. 3534 ;; loaded already.
3532 (zerop (tramp-compat-funcall 'tramp-get-remote-uid vec 'integer)))))) 3535 (zerop (tramp-compat-funcall 'tramp-get-remote-uid vec 'integer))))))
3533 3536
3537(defun tramp-get-remote-tmpdir (vec)
3538 "Return directory for temporary files on the remote host identified by VEC."
3539 (with-connection-property vec "tmpdir"
3540 (let ((dir (tramp-make-tramp-file-name
3541 (tramp-file-name-method vec)
3542 (tramp-file-name-user vec)
3543 (tramp-file-name-host vec)
3544 (or
3545 (tramp-get-method-parameter
3546 (tramp-file-name-method vec) 'tramp-tmpdir)
3547 "/tmp"))))
3548 (if (and (file-directory-p dir) (file-writable-p dir))
3549 dir
3550 (tramp-error vec 'file-error "Directory %s not accessible" dir)))))
3551
3534(defun tramp-make-tramp-temp-file (vec) 3552(defun tramp-make-tramp-temp-file (vec)
3535 "Create a temporary file on the remote host identified by VEC. 3553 "Create a temporary file on the remote host identified by VEC.
3536Return the local name of the temporary file." 3554Return the local name of the temporary file."
3537 (let ((prefix 3555 (let ((prefix (expand-file-name
3538 (tramp-make-tramp-file-name 3556 tramp-temp-name-prefix (tramp-get-remote-tmpdir vec)))
3539 (tramp-file-name-method vec)
3540 (tramp-file-name-user vec)
3541 (tramp-file-name-host vec)
3542 (tramp-drop-volume-letter
3543 (expand-file-name
3544 tramp-temp-name-prefix
3545 ;; This is defined in tramp-sh.el. Let's assume this is
3546 ;; loaded already.
3547 (tramp-compat-funcall 'tramp-get-remote-tmpdir vec)))))
3548 result) 3557 result)
3549 (while (not result) 3558 (while (not result)
3550 ;; `make-temp-file' would be the natural choice for 3559 ;; `make-temp-file' would be the natural choice for
diff --git a/lisp/newcomment.el b/lisp/newcomment.el
index 8c0d7b25939..3f2338b3a4c 100644
--- a/lisp/newcomment.el
+++ b/lisp/newcomment.el
@@ -316,7 +316,8 @@ the variables are properly set."
316 (let ((cs (read-string "No comment syntax is defined. Use: "))) 316 (let ((cs (read-string "No comment syntax is defined. Use: ")))
317 (if (zerop (length cs)) 317 (if (zerop (length cs))
318 (error "No comment syntax defined") 318 (error "No comment syntax defined")
319 (set (make-local-variable 'comment-start) cs)))) 319 (set (make-local-variable 'comment-start) cs)
320 (set (make-local-variable 'comment-start-skip) cs))))
320 ;; comment-use-syntax 321 ;; comment-use-syntax
321 (when (eq comment-use-syntax 'undecided) 322 (when (eq comment-use-syntax 'undecided)
322 (set (make-local-variable 'comment-use-syntax) 323 (set (make-local-variable 'comment-use-syntax)
diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog
index d63929d794e..1c320f20e51 100644
--- a/lisp/org/ChangeLog
+++ b/lisp/org/ChangeLog
@@ -1,3 +1,7 @@
12011-09-17 Juanma Barranquero <lekktu@gmail.com>
2
3 * org.el (org-toggle-pretty-entities): Fix typo in message.
4
12011-09-02 Chong Yidong <cyd@stupidchicken.com> 52011-09-02 Chong Yidong <cyd@stupidchicken.com>
2 6
3 * org-compat.el (org-pop-to-buffer-same-window): Deleted. 7 * org-compat.el (org-pop-to-buffer-same-window): Deleted.
diff --git a/lisp/org/org.el b/lisp/org/org.el
index d494bdb28fa..419ff022cf6 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -5660,7 +5660,7 @@ needs to be inserted at a specific position in the font-lock sequence.")
5660 (org-set-local 'org-pretty-entities (not org-pretty-entities)) 5660 (org-set-local 'org-pretty-entities (not org-pretty-entities))
5661 (org-restart-font-lock) 5661 (org-restart-font-lock)
5662 (if org-pretty-entities 5662 (if org-pretty-entities
5663 (message "Entities are displayed as UTF8 characers") 5663 (message "Entities are displayed as UTF8 characters")
5664 (save-restriction 5664 (save-restriction
5665 (widen) 5665 (widen)
5666 (org-decompose-region (point-min) (point-max)) 5666 (org-decompose-region (point-min) (point-max))
diff --git a/lisp/outline.el b/lisp/outline.el
index 2f84e7d93ea..f864058c6fc 100644
--- a/lisp/outline.el
+++ b/lisp/outline.el
@@ -137,24 +137,23 @@ in the file it applies to."
137 (cons "Headings" (make-sparse-keymap "Headings"))) 137 (cons "Headings" (make-sparse-keymap "Headings")))
138 138
139 (define-key map [headings demote-subtree] 139 (define-key map [headings demote-subtree]
140 '(menu-item "Demote subtree" outline-demote 140 '(menu-item "Demote Subtree" outline-demote
141 :help "Demote headings lower down the tree")) 141 :help "Demote headings lower down the tree"))
142 (define-key map [headings promote-subtree] 142 (define-key map [headings promote-subtree]
143 '(menu-item "Promote subtree" outline-promote 143 '(menu-item "Promote Subtree" outline-promote
144 :help "Promote headings higher up the tree")) 144 :help "Promote headings higher up the tree"))
145 (define-key map [headings move-subtree-down] 145 (define-key map [headings move-subtree-down]
146 '(menu-item "Move subtree down" outline-move-subtree-down 146 '(menu-item "Move Subtree Down" outline-move-subtree-down
147 :help "Move the currrent subtree down past arg headlines of the same level")) 147 :help "Move the currrent subtree down past arg headlines of the same level"))
148 (define-key map [headings move-subtree-up] 148 (define-key map [headings move-subtree-up]
149 '(menu-item "Move subtree up" outline-move-subtree-up 149 '(menu-item "Move Subtree Up" outline-move-subtree-up
150 :help "Move the currrent subtree up past arg headlines of the same level")) 150 :help "Move the currrent subtree up past arg headlines of the same level"))
151 (define-key map [headings copy] 151 (define-key map [headings copy]
152 '(menu-item "Copy to kill ring" outline-headers-as-kill 152 '(menu-item "Copy to Kill Ring" outline-headers-as-kill
153 :enable mark-active 153 :enable mark-active
154 :help "Save the visible outline headers in region at the start of the kill ring")) 154 :help "Save the visible outline headers in region at the start of the kill ring"))
155 (define-key map [headings outline-insert-heading] 155 (define-key map [headings outline-insert-heading]
156 156 '(menu-item "New Heading" outline-insert-heading
157 '(menu-item "New heading" outline-insert-heading
158 :help "Insert a new heading at same depth at point")) 157 :help "Insert a new heading at same depth at point"))
159 (define-key map [headings outline-backward-same-level] 158 (define-key map [headings outline-backward-same-level]
160 159
diff --git a/lisp/progmodes/cc-fonts.el b/lisp/progmodes/cc-fonts.el
index 1178a8a0b7e..fd817e3b4f4 100644
--- a/lisp/progmodes/cc-fonts.el
+++ b/lisp/progmodes/cc-fonts.el
@@ -290,7 +290,7 @@
290 res)))) 290 res))))
291 291
292 (defun c-make-font-lock-search-form (regexp highlights) 292 (defun c-make-font-lock-search-form (regexp highlights)
293 ;; Return a lisp form which will fontify every occurence of REGEXP 293 ;; Return a lisp form which will fontify every occurrence of REGEXP
294 ;; (a regular expression, NOT a function) between POINT and `limit' 294 ;; (a regular expression, NOT a function) between POINT and `limit'
295 ;; with HIGHLIGHTS, a list of highlighters as specified on page 295 ;; with HIGHLIGHTS, a list of highlighters as specified on page
296 ;; "Search-based Fontification" in the elisp manual. 296 ;; "Search-based Fontification" in the elisp manual.
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index a3300077909..d321e9c1388 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -2070,7 +2070,9 @@ for \\[find-tag] (which see)."
2070 (let ((comp-data (tags-completion-at-point-function))) 2070 (let ((comp-data (tags-completion-at-point-function)))
2071 (if (null comp-data) 2071 (if (null comp-data)
2072 (error "Nothing to complete") 2072 (error "Nothing to complete")
2073 (apply 'completion-in-region comp-data)))) 2073 (completion-in-region (car comp-data) (cadr comp-data)
2074 (nth 2 comp-data)
2075 (plist-get (nthcdr 3 comp-data) :predicate)))))
2074 2076
2075(dolist (x '("^No tags table in use; use .* to select one$" 2077(dolist (x '("^No tags table in use; use .* to select one$"
2076 "^There is no default tag$" 2078 "^There is no default tag$"
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index 000243b05df..2c68a29dd00 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -476,7 +476,7 @@ Set up `compilation-exit-message-function' and run `grep-setup-hook'."
476 ;; so the buffer is still unmodified if there is no output. 476 ;; so the buffer is still unmodified if there is no output.
477 (cond ((and (zerop code) (buffer-modified-p)) 477 (cond ((and (zerop code) (buffer-modified-p))
478 '("finished (matches found)\n" . "matched")) 478 '("finished (matches found)\n" . "matched"))
479 ((or (= code 1) (not (buffer-modified-p))) 479 ((not (buffer-modified-p))
480 '("finished with no matches found\n" . "no match")) 480 '("finished with no matches found\n" . "no match"))
481 (t 481 (t
482 (cons msg code))) 482 (cons msg code)))
diff --git a/lisp/replace.el b/lisp/replace.el
index 70175cf205c..455e1a511e8 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -810,7 +810,7 @@ a previously found match."
810 ;; We use this alternative name, so we can use \\[occur-mode-mouse-goto]. 810 ;; We use this alternative name, so we can use \\[occur-mode-mouse-goto].
811 (define-key map [mouse-2] 'occur-mode-mouse-goto) 811 (define-key map [mouse-2] 'occur-mode-mouse-goto)
812 (define-key map "\C-c\C-c" 'occur-mode-goto-occurrence) 812 (define-key map "\C-c\C-c" 'occur-mode-goto-occurrence)
813 (define-key map "\C-x\C-q" 'occur-edit-mode) 813 (define-key map "e" 'occur-edit-mode)
814 (define-key map "\C-m" 'occur-mode-goto-occurrence) 814 (define-key map "\C-m" 'occur-mode-goto-occurrence)
815 (define-key map "o" 'occur-mode-goto-occurrence-other-window) 815 (define-key map "o" 'occur-mode-goto-occurrence-other-window)
816 (define-key map "\C-o" 'occur-mode-display-occurrence) 816 (define-key map "\C-o" 'occur-mode-display-occurrence)
@@ -864,8 +864,8 @@ Alternatively, click \\[occur-mode-mouse-goto] on an item to go to it.
864 (let ((map (make-sparse-keymap))) 864 (let ((map (make-sparse-keymap)))
865 (set-keymap-parent map text-mode-map) 865 (set-keymap-parent map text-mode-map)
866 (define-key map [mouse-2] 'occur-mode-mouse-goto) 866 (define-key map [mouse-2] 'occur-mode-mouse-goto)
867 (define-key map "\C-c\C-c" 'occur-mode-goto-occurrence) 867 (define-key map "\C-c\C-c" 'occur-cease-edit)
868 (define-key map "\C-x\C-q" 'occur-mode) 868 (define-key map "\C-o" 'occur-mode-display-occurrence)
869 (define-key map "\C-c\C-f" 'next-error-follow-minor-mode) 869 (define-key map "\C-c\C-f" 'next-error-follow-minor-mode)
870 (define-key map [menu-bar occur] (cons (purecopy "Occur") occur-menu-map)) 870 (define-key map [menu-bar occur] (cons (purecopy "Occur") occur-menu-map))
871 map) 871 map)
@@ -878,40 +878,54 @@ the originating buffer.
878 878
879To return to ordinary Occur mode, use \\[occur-mode]." 879To return to ordinary Occur mode, use \\[occur-mode]."
880 (setq buffer-read-only nil) 880 (setq buffer-read-only nil)
881 (add-hook 'after-change-functions 'occur-after-change-function nil t)) 881 (add-hook 'after-change-functions 'occur-after-change-function nil t)
882 (message (substitute-command-keys
883 "Editing: Type \\[occur-cease-edit] to return to Occur mode.")))
884
885(defun occur-cease-edit ()
886 "Switch from Occur Edit mode to Occur mode."
887 (interactive)
888 (when (derived-mode-p 'occur-edit-mode)
889 (occur-mode)
890 (message "Switching to Occur mode.")))
882 891
883(defun occur-after-change-function (beg end length) 892(defun occur-after-change-function (beg end length)
884 (save-excursion 893 (save-excursion
885 (goto-char beg) 894 (goto-char beg)
886 (let* ((m (get-text-property (line-beginning-position) 'occur-target)) 895 (let* ((line-beg (line-beginning-position))
896 (m (get-text-property line-beg 'occur-target))
887 (buf (marker-buffer m)) 897 (buf (marker-buffer m))
888 (col (current-column))) 898 col)
889 (when (= length 0) 899 (when (and (get-text-property line-beg 'occur-prefix)
890 ;; Apply occur-target property to inserted (e.g. yanked) text. 900 (not (get-text-property end 'occur-prefix)))
891 (put-text-property beg end 'occur-target m) 901 (when (= length 0)
892 ;; Did we insert a newline? Occur Edit mode can't create new 902 ;; Apply occur-target property to inserted (e.g. yanked) text.
893 ;; Occur entries; just discard everything after the newline. 903 (put-text-property beg end 'occur-target m)
894 (save-excursion 904 ;; Did we insert a newline? Occur Edit mode can't create new
895 (and (search-forward "\n" end t) 905 ;; Occur entries; just discard everything after the newline.
896 (delete-region (1- (point)) end)))) 906 (save-excursion
897 (let ((line (- (line-number-at-pos) 907 (and (search-forward "\n" end t)
898 (line-number-at-pos (window-start)))) 908 (delete-region (1- (point)) end))))
899 (readonly (with-current-buffer buf buffer-read-only)) 909 (let* ((line (- (line-number-at-pos)
900 (win (or (get-buffer-window buf) 910 (line-number-at-pos (window-start))))
901 (display-buffer buf t))) 911 (readonly (with-current-buffer buf buffer-read-only))
902 (text (save-excursion 912 (win (or (get-buffer-window buf)
903 (forward-line 0) 913 (display-buffer buf t)))
904 (search-forward ":" nil t) 914 (line-end (line-end-position))
905 (setq col (- col (current-column))) 915 (text (save-excursion
906 (buffer-substring-no-properties (point) (line-end-position))))) 916 (goto-char (next-single-property-change
907 (with-selected-window win 917 line-beg 'occur-prefix nil
908 (goto-char m) 918 line-end))
909 (recenter line) 919 (setq col (- (point) line-beg))
910 (if readonly 920 (buffer-substring-no-properties (point) line-end))))
911 (message "Buffer `%s' is read only." buf) 921 (with-selected-window win
912 (delete-region (line-beginning-position) (line-end-position)) 922 (goto-char m)
913 (insert text)) 923 (recenter line)
914 (move-to-column col)))))) 924 (if readonly
925 (message "Buffer `%s' is read only." buf)
926 (delete-region (line-beginning-position) (line-end-position))
927 (insert text))
928 (move-to-column col)))))))
915 929
916 930
917(defun occur-revert-function (_ignore1 _ignore2) 931(defun occur-revert-function (_ignore1 _ignore2)
@@ -1336,9 +1350,12 @@ See also `multi-occur'."
1336 (when prefix-face 1350 (when prefix-face
1337 `(font-lock-face prefix-face)) 1351 `(font-lock-face prefix-face))
1338 `(occur-prefix t mouse-face (highlight) 1352 `(occur-prefix t mouse-face (highlight)
1339 occur-target ,marker follow-link t 1353 ;; Allow insertion of text at
1340 read-only t 1354 ;; the end of the prefix (for
1341 help-echo "mouse-2: go to this occurrence")))) 1355 ;; Occur Edit mode).
1356 front-sticky t rear-nonsticky t
1357 occur-target ,marker follow-link t
1358 help-echo "mouse-2: go to this occurrence"))))
1342 (match-str 1359 (match-str
1343 ;; We don't put `mouse-face' on the newline, 1360 ;; We don't put `mouse-face' on the newline,
1344 ;; because that loses. And don't put it 1361 ;; because that loses. And don't put it
diff --git a/lisp/simple.el b/lisp/simple.el
index 74343496c72..4db0aae25ad 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4134,7 +4134,9 @@ a semipermanent goal column for this command.
4134Then instead of trying to move exactly vertically (or as close as possible), 4134Then instead of trying to move exactly vertically (or as close as possible),
4135this command moves to the specified goal column (or as close as possible). 4135this command moves to the specified goal column (or as close as possible).
4136The goal column is stored in the variable `goal-column', which is nil 4136The goal column is stored in the variable `goal-column', which is nil
4137when there is no goal column. 4137when there is no goal column. Note that setting `goal-column'
4138overrides `line-move-visual' and causes this command to move by buffer
4139lines rather than by display lines.
4138 4140
4139If you are thinking of using this in a Lisp program, consider 4141If you are thinking of using this in a Lisp program, consider
4140using `forward-line' instead. It is usually easier to use 4142using `forward-line' instead. It is usually easier to use
@@ -4172,7 +4174,9 @@ a semipermanent goal column for this command.
4172Then instead of trying to move exactly vertically (or as close as possible), 4174Then instead of trying to move exactly vertically (or as close as possible),
4173this command moves to the specified goal column (or as close as possible). 4175this command moves to the specified goal column (or as close as possible).
4174The goal column is stored in the variable `goal-column', which is nil 4176The goal column is stored in the variable `goal-column', which is nil
4175when there is no goal column. 4177when there is no goal column. Note that setting `goal-column'
4178overrides `line-move-visual' and causes this command to move by buffer
4179lines rather than by display lines.
4176 4180
4177If you are thinking of using this in a Lisp program, consider using 4181If you are thinking of using this in a Lisp program, consider using
4178`forward-line' with a negative argument instead. It is usually easier 4182`forward-line' with a negative argument instead. It is usually easier
@@ -4196,7 +4200,8 @@ This has no effect when `line-move-visual' is non-nil."
4196 :group 'editing-basics) 4200 :group 'editing-basics)
4197 4201
4198(defcustom goal-column nil 4202(defcustom goal-column nil
4199 "Semipermanent goal column for vertical motion, as set by \\[set-goal-column], or nil." 4203 "Semipermanent goal column for vertical motion, as set by \\[set-goal-column], or nil.
4204A non-nil setting overrides `line-move-visual', which see."
4200 :type '(choice integer 4205 :type '(choice integer
4201 (const :tag "None" nil)) 4206 (const :tag "None" nil))
4202 :group 'editing-basics) 4207 :group 'editing-basics)
@@ -4226,7 +4231,9 @@ Outline mode sets this."
4226This movement is based on where the cursor is displayed on the 4231This movement is based on where the cursor is displayed on the
4227screen, instead of relying on buffer contents alone. It takes 4232screen, instead of relying on buffer contents alone. It takes
4228into account variable-width characters and line continuation. 4233into account variable-width characters and line continuation.
4229If nil, `line-move' moves point by logical lines." 4234If nil, `line-move' moves point by logical lines.
4235A non-nil setting of `goal-column' overrides the value of this variable
4236and forces movement by logical lines."
4230 :type 'boolean 4237 :type 'boolean
4231 :group 'editing-basics 4238 :group 'editing-basics
4232 :version "23.1") 4239 :version "23.1")
@@ -4303,7 +4310,7 @@ If nil, `line-move' moves point by logical lines."
4303 (not executing-kbd-macro) 4310 (not executing-kbd-macro)
4304 (line-move-partial arg noerror to-end)) 4311 (line-move-partial arg noerror to-end))
4305 (set-window-vscroll nil 0 t) 4312 (set-window-vscroll nil 0 t)
4306 (if line-move-visual 4313 (if (and line-move-visual (not goal-column))
4307 (line-move-visual arg noerror) 4314 (line-move-visual arg noerror)
4308 (line-move-1 arg noerror to-end)))) 4315 (line-move-1 arg noerror to-end))))
4309 4316
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 5521cfd3de8..b76b0a303df 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -1723,7 +1723,11 @@ quit spell session exited."
1723 (extent-at start) 1723 (extent-at start)
1724 (and (fboundp 'delete-extent) 1724 (and (fboundp 'delete-extent)
1725 (delete-extent (extent-at start))))) 1725 (delete-extent (extent-at start)))))
1726 ((null poss) (message "Error in ispell process")) 1726 ((null poss)
1727 (message "Error checking word %s using %s with %s dictionary"
1728 (funcall ispell-format-word-function word)
1729 (file-name-nondirectory ispell-program-name)
1730 (or ispell-current-dictionary "default")))
1727 (ispell-check-only ; called from ispell minor mode. 1731 (ispell-check-only ; called from ispell minor mode.
1728 (if (fboundp 'make-extent) 1732 (if (fboundp 'make-extent)
1729 (if (fboundp 'set-extent-property) 1733 (if (fboundp 'set-extent-property)
@@ -3034,7 +3038,7 @@ Must call after `ispell-buffer-local-parsing' due to dependence on mode."
3034 (while (looking-at "[ \t\n]*\\[") (forward-sexp)) 3038 (while (looking-at "[ \t\n]*\\[") (forward-sexp))
3035 (forward-sexp (or arg 1))) 3039 (forward-sexp (or arg 1)))
3036 (error 3040 (error
3037 (message "error skipping s-expressions at point %d." (point)) 3041 (message "Error skipping s-expressions at point %d." (point))
3038 (beep) 3042 (beep)
3039 (sit-for 2)))) 3043 (sit-for 2))))
3040 3044
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el
index 4eff3244cdc..3ab1caf2864 100644
--- a/lisp/vc/vc-bzr.el
+++ b/lisp/vc/vc-bzr.el
@@ -964,23 +964,23 @@ stream. Standard error output is discarded."
964(defvar vc-bzr-shelve-menu-map 964(defvar vc-bzr-shelve-menu-map
965 (let ((map (make-sparse-keymap "Bzr Shelve"))) 965 (let ((map (make-sparse-keymap "Bzr Shelve")))
966 (define-key map [de] 966 (define-key map [de]
967 '(menu-item "Delete shelf" vc-bzr-shelve-delete-at-point 967 '(menu-item "Delete Shelf" vc-bzr-shelve-delete-at-point
968 :help "Delete the current shelf")) 968 :help "Delete the current shelf"))
969 (define-key map [ap] 969 (define-key map [ap]
970 '(menu-item "Apply and keep shelf" vc-bzr-shelve-apply-and-keep-at-point 970 '(menu-item "Apply and Keep Shelf" vc-bzr-shelve-apply-and-keep-at-point
971 :help "Apply the current shelf and keep it")) 971 :help "Apply the current shelf and keep it"))
972 (define-key map [po] 972 (define-key map [po]
973 '(menu-item "Apply and remove shelf (pop)" vc-bzr-shelve-apply-at-point 973 '(menu-item "Apply and Remove Shelf (Pop)" vc-bzr-shelve-apply-at-point
974 :help "Apply the current shelf and remove it")) 974 :help "Apply the current shelf and remove it"))
975 (define-key map [sh] 975 (define-key map [sh]
976 '(menu-item "Show shelve" vc-bzr-shelve-show-at-point 976 '(menu-item "Show Shelve" vc-bzr-shelve-show-at-point
977 :help "Show the contents of the current shelve")) 977 :help "Show the contents of the current shelve"))
978 map)) 978 map))
979 979
980(defvar vc-bzr-extra-menu-map 980(defvar vc-bzr-extra-menu-map
981 (let ((map (make-sparse-keymap))) 981 (let ((map (make-sparse-keymap)))
982 (define-key map [bzr-sn] 982 (define-key map [bzr-sn]
983 '(menu-item "Shelve a snapshot" vc-bzr-shelve-snapshot 983 '(menu-item "Shelve a Snapshot" vc-bzr-shelve-snapshot
984 :help "Shelve the current state of the tree and keep the current state")) 984 :help "Shelve the current state of the tree and keep the current state"))
985 (define-key map [bzr-sh] 985 (define-key map [bzr-sh]
986 '(menu-item "Shelve..." vc-bzr-shelve 986 '(menu-item "Shelve..." vc-bzr-shelve
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index 5f3a9a21b59..ed16ee9f6f8 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -125,15 +125,15 @@ See `run-hooks'."
125 :enable (not (vc-dir-busy)) 125 :enable (not (vc-dir-busy))
126 :help "Refresh the contents of the directory buffer")) 126 :help "Refresh the contents of the directory buffer"))
127 (define-key map [remup] 127 (define-key map [remup]
128 '(menu-item "Hide up-to-date" vc-dir-hide-up-to-date 128 '(menu-item "Hide Up-to-date" vc-dir-hide-up-to-date
129 :help "Hide up-to-date items from display")) 129 :help "Hide up-to-date items from display"))
130 ;; Movement. 130 ;; Movement.
131 (define-key map [sepmv] '("--")) 131 (define-key map [sepmv] '("--"))
132 (define-key map [next-line] 132 (define-key map [next-line]
133 '(menu-item "Next line" vc-dir-next-line 133 '(menu-item "Next Line" vc-dir-next-line
134 :help "Go to the next line" :keys "n")) 134 :help "Go to the next line" :keys "n"))
135 (define-key map [previous-line] 135 (define-key map [previous-line]
136 '(menu-item "Previous line" vc-dir-previous-line 136 '(menu-item "Previous Line" vc-dir-previous-line
137 :help "Go to the previous line")) 137 :help "Go to the previous line"))
138 ;; Marking. 138 ;; Marking.
139 (define-key map [sepmrk] '("--")) 139 (define-key map [sepmrk] '("--"))
@@ -142,7 +142,7 @@ See `run-hooks'."
142 :help "Unmark all files that are in the same state as the current file\ 142 :help "Unmark all files that are in the same state as the current file\
143\nWith prefix argument unmark all files")) 143\nWith prefix argument unmark all files"))
144 (define-key map [unmark-previous] 144 (define-key map [unmark-previous]
145 '(menu-item "Unmark previous " vc-dir-unmark-file-up 145 '(menu-item "Unmark Previous " vc-dir-unmark-file-up
146 :help "Move to the previous line and unmark the file")) 146 :help "Move to the previous line and unmark the file"))
147 147
148 (define-key map [mark-all] 148 (define-key map [mark-all]
@@ -171,10 +171,10 @@ See `run-hooks'."
171 '(menu-item "Isearch Files..." vc-dir-isearch 171 '(menu-item "Isearch Files..." vc-dir-isearch
172 :help "Incremental search a string in the marked files")) 172 :help "Incremental search a string in the marked files"))
173 (define-key map [open-other] 173 (define-key map [open-other]
174 '(menu-item "Open in other window" vc-dir-find-file-other-window 174 '(menu-item "Open in Other Window" vc-dir-find-file-other-window
175 :help "Find the file on the current line, in another window")) 175 :help "Find the file on the current line, in another window"))
176 (define-key map [open] 176 (define-key map [open]
177 '(menu-item "Open file" vc-dir-find-file 177 '(menu-item "Open File" vc-dir-find-file
178 :help "Find the file on the current line")) 178 :help "Find the file on the current line"))
179 (define-key map [sepvcdet] '("--")) 179 (define-key map [sepvcdet] '("--"))
180 ;; FIXME: This needs a key binding. And maybe a better name 180 ;; FIXME: This needs a key binding. And maybe a better name
@@ -203,10 +203,10 @@ See `run-hooks'."
203 ;; VC commands. 203 ;; VC commands.
204 (define-key map [sepvccmd] '("--")) 204 (define-key map [sepvccmd] '("--"))
205 (define-key map [update] 205 (define-key map [update]
206 '(menu-item "Update to latest version" vc-update 206 '(menu-item "Update to Latest Version" vc-update
207 :help "Update the current fileset's files to their tip revisions")) 207 :help "Update the current fileset's files to their tip revisions"))
208 (define-key map [revert] 208 (define-key map [revert]
209 '(menu-item "Revert to base version" vc-revert 209 '(menu-item "Revert to Base Version" vc-revert
210 :help "Revert working copies of the selected fileset to their repository contents.")) 210 :help "Revert working copies of the selected fileset to their repository contents."))
211 (define-key map [next-action] 211 (define-key map [next-action]
212 ;; FIXME: This really really really needs a better name! 212 ;; FIXME: This really really really needs a better name!
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 1bb246fea0b..e9cbeeeb40a 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -486,16 +486,16 @@ or an empty string if none."
486(defvar vc-git-stash-menu-map 486(defvar vc-git-stash-menu-map
487 (let ((map (make-sparse-keymap "Git Stash"))) 487 (let ((map (make-sparse-keymap "Git Stash")))
488 (define-key map [de] 488 (define-key map [de]
489 '(menu-item "Delete stash" vc-git-stash-delete-at-point 489 '(menu-item "Delete Stash" vc-git-stash-delete-at-point
490 :help "Delete the current stash")) 490 :help "Delete the current stash"))
491 (define-key map [ap] 491 (define-key map [ap]
492 '(menu-item "Apply stash" vc-git-stash-apply-at-point 492 '(menu-item "Apply Stash" vc-git-stash-apply-at-point
493 :help "Apply the current stash and keep it in the stash list")) 493 :help "Apply the current stash and keep it in the stash list"))
494 (define-key map [po] 494 (define-key map [po]
495 '(menu-item "Apply and remove stash (pop)" vc-git-stash-pop-at-point 495 '(menu-item "Apply and Remove Stash (Pop)" vc-git-stash-pop-at-point
496 :help "Apply the current stash and remove it")) 496 :help "Apply the current stash and remove it"))
497 (define-key map [sh] 497 (define-key map [sh]
498 '(menu-item "Show stash" vc-git-stash-show-at-point 498 '(menu-item "Show Stash" vc-git-stash-show-at-point
499 :help "Show the contents of the current stash")) 499 :help "Show the contents of the current stash"))
500 map)) 500 map))
501 501
@@ -933,7 +933,7 @@ or BRANCH^ (where \"^\" can be repeated)."
933 '(menu-item "Git grep..." vc-git-grep 933 '(menu-item "Git grep..." vc-git-grep
934 :help "Run the `git grep' command")) 934 :help "Run the `git grep' command"))
935 (define-key map [git-sn] 935 (define-key map [git-sn]
936 '(menu-item "Stash a snapshot" vc-git-stash-snapshot 936 '(menu-item "Stash a Snapshot" vc-git-stash-snapshot
937 :help "Stash the current state of the tree and keep the current state")) 937 :help "Stash the current state of the tree and keep the current state"))
938 (define-key map [git-st] 938 (define-key map [git-st]
939 '(menu-item "Create Stash..." vc-git-stash 939 '(menu-item "Create Stash..." vc-git-stash
diff --git a/lisp/window.el b/lisp/window.el
index c0e8781aab0..e0be98d5bd1 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -158,7 +158,7 @@ An application may bind this to a non-nil value around calls to
158these functions to inhibit processing of window parameters.") 158these functions to inhibit processing of window parameters.")
159 159
160(defconst window-safe-min-height 1 160(defconst window-safe-min-height 1
161 "The absolut minimum number of lines of a window. 161 "The absolute minimum number of lines of a window.
162Anything less might crash Emacs.") 162Anything less might crash Emacs.")
163 163
164(defcustom window-min-height 4 164(defcustom window-min-height 4
@@ -177,12 +177,12 @@ shorter, explictly specify the SIZE argument of that function."
177 :group 'windows) 177 :group 'windows)
178 178
179(defconst window-safe-min-width 2 179(defconst window-safe-min-width 2
180 "The absolut minimum number of columns of a window. 180 "The absolute minimum number of columns of a window.
181Anything less might crash Emacs.") 181Anything less might crash Emacs.")
182 182
183(defcustom window-min-width 10 183(defcustom window-min-width 10
184 "The minimum number of columns of any window. 184 "The minimum number of columns of any window.
185The value has to accomodate margins, fringes, or scrollbars if 185The value has to accommodate margins, fringes, or scrollbars if
186present. A value less than `window-safe-min-width' is ignored. 186present. A value less than `window-safe-min-width' is ignored.
187The value of this variable is honored when windows are resized or 187The value of this variable is honored when windows are resized or
188split. 188split.
@@ -3772,7 +3772,7 @@ subwindows can get as small as `window-safe-min-height' and
3772 ;; issues - so IGNORE equal 'safe might not always produce the 3772 ;; issues - so IGNORE equal 'safe might not always produce the
3773 ;; minimum possible state. But such configurations hardly make 3773 ;; minimum possible state. But such configurations hardly make
3774 ;; sense anyway. 3774 ;; sense anyway.
3775 (error "Window %s too small to accomodate state" window) 3775 (error "Window %s too small to accommodate state" window)
3776 (setq state (cdr state)) 3776 (setq state (cdr state))
3777 (setq window-state-put-list nil) 3777 (setq window-state-put-list nil)
3778 ;; Work on the windows of a temporary buffer to make sure that 3778 ;; Work on the windows of a temporary buffer to make sure that
diff --git a/lisp/woman.el b/lisp/woman.el
index 75a36d6ac36..7b530d1004f 100644
--- a/lisp/woman.el
+++ b/lisp/woman.el
@@ -3954,6 +3954,8 @@ Optional argument NUMERIC, if non-nil, means the argument is numeric."
3954 ;; Done like this to preserve any text properties of the `\' 3954 ;; Done like this to preserve any text properties of the `\'
3955 (while (search-forward "\\" to t) 3955 (while (search-forward "\\" to t)
3956 (let ((c (following-char))) 3956 (let ((c (following-char)))
3957 ;; Some other escapes, such as \f, are handled in
3958 ;; `woman0-process-escapes'.
3957 (cond ((eq c ?') ; \' -> ' 3959 (cond ((eq c ?') ; \' -> '
3958 (delete-char -1) 3960 (delete-char -1)
3959 (cond (numeric ; except in numeric args, \' -> ` 3961 (cond (numeric ; except in numeric args, \' -> `
@@ -3967,12 +3969,7 @@ Optional argument NUMERIC, if non-nil, means the argument is numeric."
3967 (insert "\t")) 3969 (insert "\t"))
3968 ((and numeric 3970 ((and numeric
3969 (memq c '(?w ?n ?h)))) ; leave \w, \n, \h (?????) 3971 (memq c '(?w ?n ?h)))) ; leave \w, \n, \h (?????)
3970 ((eq c ?l) (woman-horizontal-line)) 3972 ((eq c ?l) (woman-horizontal-line)))))
3971 (t
3972 ;; \? -> ? where ? is any remaining character
3973 (WoMan-warn "Escape ignored: \\%c -> %c" c c)
3974 (delete-char -1))
3975 )))
3976 (goto-char from) 3973 (goto-char from)
3977 ;; Process non-default tab settings: 3974 ;; Process non-default tab settings:
3978 (cond (tab-stop-list 3975 (cond (tab-stop-list