diff options
| author | Joakim Verona | 2011-09-19 11:37:46 +0200 |
|---|---|---|
| committer | Joakim Verona | 2011-09-19 11:37:46 +0200 |
| commit | 4caed0bee59613be5d2a6c4afabcdc43222f953e (patch) | |
| tree | d0c1debf666ef2107492e6cdd2bc8d6bb17de8a2 /lisp | |
| parent | c139d20a0c582a2c8fe3766128092c32b692ac23 (diff) | |
| parent | c5b01d8c63cfd14c95a029540a6fb0da84537726 (diff) | |
| download | emacs-4caed0bee59613be5d2a6c4afabcdc43222f953e.tar.gz emacs-4caed0bee59613be5d2a6c4afabcdc43222f953e.zip | |
upstream
Diffstat (limited to 'lisp')
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 @@ | |||
| 1 | 2011-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 | |||
| 6 | 2011-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 | |||
| 25 | 2011-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 | |||
| 31 | 2011-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 | |||
| 36 | 2011-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 | |||
| 43 | 2011-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 | |||
| 48 | 2011-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 | |||
| 54 | 2011-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 | |||
| 59 | 2011-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 | |||
| 66 | 2011-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 | |||
| 75 | 2011-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 | |||
| 97 | 2011-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 | |||
| 102 | 2011-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 | |||
| 113 | 2011-09-17 Glenn Morris <rgm@gnu.org> | ||
| 114 | |||
| 115 | * progmodes/etags.el (complete-tag): | ||
| 116 | Fix call to completion-in-region. (Bug#9526) | ||
| 117 | |||
| 118 | 2011-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 | |||
| 124 | 2011-09-17 Andreas Schwab <schwab@linux-m68k.org> | ||
| 125 | |||
| 126 | * emacs-lisp/bytecomp.el (byte-compile-lapcode): Fix overflow | ||
| 127 | check. (Bug#4251) | ||
| 128 | |||
| 129 | 2011-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 | |||
| 134 | 2011-09-17 Sven Joachim <svenjoac@gmx.de> | ||
| 135 | |||
| 136 | * window.el (window-min-width, window-state-put): Fix typos (bug#9522). | ||
| 137 | |||
| 138 | 2011-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 | |||
| 145 | 2011-09-16 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 146 | |||
| 147 | * image.el (imagemagick-register-types): Use regexp-opt. | ||
| 148 | |||
| 1 | 2011-09-15 Chong Yidong <cyd@stupidchicken.com> | 149 | 2011-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 | ||
| 297 | 2011-09-10 Reuben Thomas <rrt@sc3d.org> | 445 | 2011-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 | ||
| 301 | 2011-09-09 Juri Linkov <juri@jurta.org> | 450 | 2011-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 | ||
| 2462 | See also `auto-mode-alist'.") | 2462 | See 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 | |||
| 2952 | and VAL is the specified value. Ignores any specification for | 2954 | and 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 |
| 2954 | by `set-auto-mode' and `set-auto-coding', respectively). | 2956 | by `set-auto-mode' and `set-auto-coding', respectively). |
| 2955 | Throws an error if the -*- line is malformed. | 2957 | Return nil if the -*- line is malformed. |
| 2956 | 2958 | ||
| 2957 | If MODE-ONLY is non-nil, just returns the symbol specifying the | 2959 | If MODE-ONLY is non-nil, just returns the symbol specifying the |
| 2958 | mode, if there is one, otherwise nil." | 2960 | mode, 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 @@ | |||
| 1 | 2011-09-17 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 2 | |||
| 3 | * mm-decode.el (mm-inline-media-tests): Support imagemagick images. | ||
| 4 | |||
| 1 | 2011-09-15 Lars Magne Ingebrigtsen <larsi@gnus.org> | 5 | 2011-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. |
| 210 | Usually run by inclusion in `minibuffer-setup-hook'." | 207 | Usually 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 | ||
| 696 | If Emacs is compiled without ImageMagick support, do nothing." | 696 | If 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. |
| 4030 | Each item is a list that looks like this: | 4031 | Each 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 ...). | |||
| 192 | Each NAME stands for a remote access method. Each PARAM is a | 191 | Each NAME stands for a remote access method. Each PARAM is a |
| 193 | pair of the form (KEY VALUE). The following KEYs are defined: | 192 | pair 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 | ||
| 259 | What does all this mean? Well, you should specify `tramp-login-program' | 262 | What does all this mean? Well, you should specify `tramp-login-program' |
| 260 | for all methods; this program is used to log in to the remote site. Then, | 263 | for 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. |
| 3536 | Return the local name of the temporary file." | 3554 | Return 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 @@ | |||
| 1 | 2011-09-17 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * org.el (org-toggle-pretty-entities): Fix typo in message. | ||
| 4 | |||
| 1 | 2011-09-02 Chong Yidong <cyd@stupidchicken.com> | 5 | 2011-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 | ||
| 879 | To return to ordinary Occur mode, use \\[occur-mode]." | 879 | To 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. | |||
| 4134 | Then instead of trying to move exactly vertically (or as close as possible), | 4134 | Then instead of trying to move exactly vertically (or as close as possible), |
| 4135 | this command moves to the specified goal column (or as close as possible). | 4135 | this command moves to the specified goal column (or as close as possible). |
| 4136 | The goal column is stored in the variable `goal-column', which is nil | 4136 | The goal column is stored in the variable `goal-column', which is nil |
| 4137 | when there is no goal column. | 4137 | when there is no goal column. Note that setting `goal-column' |
| 4138 | overrides `line-move-visual' and causes this command to move by buffer | ||
| 4139 | lines rather than by display lines. | ||
| 4138 | 4140 | ||
| 4139 | If you are thinking of using this in a Lisp program, consider | 4141 | If you are thinking of using this in a Lisp program, consider |
| 4140 | using `forward-line' instead. It is usually easier to use | 4142 | using `forward-line' instead. It is usually easier to use |
| @@ -4172,7 +4174,9 @@ a semipermanent goal column for this command. | |||
| 4172 | Then instead of trying to move exactly vertically (or as close as possible), | 4174 | Then instead of trying to move exactly vertically (or as close as possible), |
| 4173 | this command moves to the specified goal column (or as close as possible). | 4175 | this command moves to the specified goal column (or as close as possible). |
| 4174 | The goal column is stored in the variable `goal-column', which is nil | 4176 | The goal column is stored in the variable `goal-column', which is nil |
| 4175 | when there is no goal column. | 4177 | when there is no goal column. Note that setting `goal-column' |
| 4178 | overrides `line-move-visual' and causes this command to move by buffer | ||
| 4179 | lines rather than by display lines. | ||
| 4176 | 4180 | ||
| 4177 | If you are thinking of using this in a Lisp program, consider using | 4181 | If 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. |
| 4204 | A 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." | |||
| 4226 | This movement is based on where the cursor is displayed on the | 4231 | This movement is based on where the cursor is displayed on the |
| 4227 | screen, instead of relying on buffer contents alone. It takes | 4232 | screen, instead of relying on buffer contents alone. It takes |
| 4228 | into account variable-width characters and line continuation. | 4233 | into account variable-width characters and line continuation. |
| 4229 | If nil, `line-move' moves point by logical lines." | 4234 | If nil, `line-move' moves point by logical lines. |
| 4235 | A non-nil setting of `goal-column' overrides the value of this variable | ||
| 4236 | and 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 | |||
| 158 | these functions to inhibit processing of window parameters.") | 158 | these 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. |
| 162 | Anything less might crash Emacs.") | 162 | Anything 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. |
| 181 | Anything less might crash Emacs.") | 181 | Anything 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. |
| 185 | The value has to accomodate margins, fringes, or scrollbars if | 185 | The value has to accommodate margins, fringes, or scrollbars if |
| 186 | present. A value less than `window-safe-min-width' is ignored. | 186 | present. A value less than `window-safe-min-width' is ignored. |
| 187 | The value of this variable is honored when windows are resized or | 187 | The value of this variable is honored when windows are resized or |
| 188 | split. | 188 | split. |
| @@ -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 |