diff options
| author | Karoly Lorentey | 2004-10-19 17:00:02 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-10-19 17:00:02 +0000 |
| commit | 90b404757b24ea0c88d6ec3ed9c1ccce07bbd19f (patch) | |
| tree | b5cb05f7c5d0c27537362072badf76355d363319 /lisp | |
| parent | ec16044407f468aacda9eb031fb7267d5ee0f899 (diff) | |
| parent | d4c2c0eff81e7540cbb0a32ef10017285f68e1aa (diff) | |
| download | emacs-90b404757b24ea0c88d6ec3ed9c1ccce07bbd19f.tar.gz emacs-90b404757b24ea0c88d6ec3ed9c1ccce07bbd19f.zip | |
Merged in changes from CVS trunk.
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-616
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-617
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-618
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-619
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-620
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-621
Merge from gnus--rel--5.10
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-622
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-623
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-624
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-625
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-51
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-52
Update from CVS
* miles@gnu.org--gnu-2004/gnus--rel--5.10--patch-53
Merge from emacs--cvs-trunk--0
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-261
Diffstat (limited to 'lisp')
51 files changed, 935 insertions, 491 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 41606eb7e93..eaa71c4abad 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,10 +1,164 @@ | |||
| 1 | 2004-10-18 David Ponce <david@dponce.com> | ||
| 2 | |||
| 3 | * mouse.el (mouse-drag-move-window-top): New function. | ||
| 4 | (mouse-drag-mode-line-1): Use it. | ||
| 5 | |||
| 6 | 2004-10-18 Thien-Thi Nguyen <ttn@gnu.org> | ||
| 7 | |||
| 8 | * info.el (Info-fontify-node): For multiline refs, | ||
| 9 | arrange to unfontify newline and surrounding whitespace. | ||
| 10 | |||
| 11 | 2004-10-17 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 12 | |||
| 13 | * vc-arch.el (vc-arch-workfile-version): Don't burp if the patch-log | ||
| 14 | directory is missing. | ||
| 15 | |||
| 16 | 2004-10-17 John Paul Wallington <jpw@gnu.org> | ||
| 17 | |||
| 18 | * ibuffer.el (ibuffer-default-display-maybe-show-predicates): | ||
| 19 | New customizable variable; whether to display buffers that match | ||
| 20 | `ibuffer-maybe-show-predicates' by default. | ||
| 21 | (ibuffer-maybe-show-predicates): Mention it in docstring. | ||
| 22 | (ibuffer-display-maybe-show-predicates): New variable. | ||
| 23 | (ibuffer-update): Prefix arg now toggles whether buffers that | ||
| 24 | match `ibuffer-maybe-show-predicates' should be displayed. | ||
| 25 | (ibuffer-mode): Set `ibuffer-display-maybe-show-predicates' | ||
| 26 | locally to heed `ibuffer-default-display-maybe-show-predicates'. | ||
| 27 | (ibuffer-redisplay-engine): Rename optional second arg to `ignore'. | ||
| 28 | |||
| 29 | 2004-10-17 Michael Albinus <michael.albinus@gmx.de> | ||
| 30 | |||
| 31 | * net/tramp.el: Redo sync with Tramp 2.0.45. Last commit did not | ||
| 32 | work correctly. | ||
| 33 | |||
| 34 | 2004-10-17 Daniel Pfeiffer <occitan@esperanto.org> | ||
| 35 | |||
| 36 | * buff-menu.el (Buffer-menu-revert-function): Emulate save-excursion. | ||
| 37 | (Buffer-menu-beginning): New helper function. | ||
| 38 | (Buffer-menu-execute): Use it. | ||
| 39 | (Buffer-menu-select): Use it. | ||
| 40 | (Buffer-menu-sort): Use it and also keep markers. | ||
| 41 | |||
| 42 | 2004-10-17 Richard M. Stallman <rms@gnu.org> | ||
| 43 | |||
| 44 | * paths.el (news-directory): Rename from news-path. Old name alias. | ||
| 45 | (rmail-spool-directory): Use defvar. | ||
| 46 | (sendmail-program): Use defcustom. | ||
| 47 | (remote-shell-program): Use defcustom. | ||
| 48 | (term-file-prefix): Use defvar. | ||
| 49 | (abbrev-file-name): Use defvar. | ||
| 50 | |||
| 51 | * term.el: Add maintainer. | ||
| 52 | |||
| 53 | * subr.el (with-local-quit): Return nil if there's a quit. | ||
| 54 | (read-passwd): Use with-local-quit. Doc fix. | ||
| 55 | |||
| 56 | * strokes.el (strokes-list-strokes): Don't try to delete char at eob. | ||
| 57 | (strokes-unload-hook): Set as a variable with add-hook. | ||
| 58 | |||
| 59 | * startup.el (fancy-splash-tail, normal-splash-screen): | ||
| 60 | Update copyright year. | ||
| 61 | |||
| 62 | * shadowfile.el (shadowfile-unload-hook): Set as variable w/ add-hook. | ||
| 63 | |||
| 64 | * server.el (server-unload-hook): Set as a variable with add-hook. | ||
| 65 | |||
| 66 | * help-at-pt.el (help-at-pt-unload-hook): Use add-hook; no defvar. | ||
| 67 | |||
| 68 | * frame.el (special-display-popup-frame): | ||
| 69 | Make the buffer current as its frame is created. | ||
| 70 | |||
| 71 | * delsel.el (delsel-unload-hook): Set as a variable. | ||
| 72 | |||
| 73 | * comint.el (comint-output-filter-functions): | ||
| 74 | Add comint-watch-for-password-prompt. | ||
| 75 | (comint-read-noecho): Function deleted. | ||
| 76 | (send-invisible): Use read-passwd. | ||
| 77 | |||
| 78 | * fringe.el (fringe-mode-initialize): New function. | ||
| 79 | (fringe-mode): Use fringe-mode-initialize as :initialize. | ||
| 80 | |||
| 81 | 2004-10-17 Kim F. Storm <storm@cua.dk> | ||
| 82 | |||
| 83 | * language/indian.el (indian-script-language-alist): Swap value and doc. | ||
| 84 | (indian-font-char-index-table): Doc fix. | ||
| 85 | |||
| 86 | 2004-10-16 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 87 | |||
| 88 | * vc-hooks.el (vc-find-file-hook): Call vc-backend with absolute name. | ||
| 89 | |||
| 90 | 2004-10-16 Juri Linkov <juri@jurta.org> | ||
| 91 | |||
| 92 | * progmodes/compile.el (compilation-start): Move let-binding of | ||
| 93 | `process-environment' into `with-current-buffer' body. | ||
| 94 | Reported by Matt Hodges <MPHodges@member.fsf.org>. | ||
| 95 | |||
| 96 | 2004-10-16 Richard M. Stallman <rms@gnu.org> | ||
| 97 | |||
| 98 | * pcvs-util.el (cvs-bury-buffer): | ||
| 99 | Don't call get-buffer-window for effect. | ||
| 100 | |||
| 101 | * outline.el (hide-other): Call outline-up-heading with INVISIBLE-OK=t. | ||
| 102 | |||
| 103 | * newcomment.el (comment-auto-fill-only-comments): Add autoload. | ||
| 104 | |||
| 105 | * msb.el (msb-unload-hook): Set the variable. | ||
| 106 | |||
| 107 | * mouse.el (mouse-yank-at-click, mouse-yank-secondary): | ||
| 108 | Use * to err if buffer is readonly. | ||
| 109 | |||
| 110 | * subr.el (looking-back): Return only t or nil. | ||
| 111 | |||
| 112 | * whitespace.el (whitespace-unload-hook): Set the variable. | ||
| 113 | |||
| 114 | * view.el (view-mode-enable): Set view-page-size and | ||
| 115 | view-half-page-size to nil. | ||
| 116 | (view-set-half-page-size-default): view-half-page-size = nil | ||
| 117 | means the default. | ||
| 118 | (View-scroll-page-forward): Use view-page-size-default. | ||
| 119 | (View-scroll-page-backward): Likewise. | ||
| 120 | (view-page-size, view-half-page-size): Doc fixes. | ||
| 121 | |||
| 122 | * emacs-lisp/elp.el (elp-unload-hook): Set the variable. | ||
| 123 | |||
| 124 | * emacs-lisp/cl.el (cl-unload-hook): Don't defvar it, just set it. | ||
| 125 | |||
| 126 | * emacs-lisp/bytecomp.el (byte-compile-eval): Don't process | ||
| 127 | "cl" like other files. Instead, call byte-compile-find-cl-functions. | ||
| 128 | (byte-compile-log-1): Bind inhibit-read-only. | ||
| 129 | (byte-compile-warning-prefix, byte-compile-log-file): Likewise. | ||
| 130 | (byte-compile-log-warning): Likewise. | ||
| 131 | (byte-compile-file-form-require): Detect "cl" from the arg value. | ||
| 132 | |||
| 133 | * progmodes/compile.el (compilation-start): Assume compilation-mode | ||
| 134 | will make the buffer read-only. | ||
| 135 | (compilation-mode): Take arg name-of-mode. | ||
| 136 | (compilation-setup): Make buffer read-only. | ||
| 137 | (compilation-handle-exit): Bind inhibit-read-only. | ||
| 138 | |||
| 139 | * textmodes/ispell.el (ispell-command-loop): Use with-no-warnings. | ||
| 140 | (ispell-message): Likewise. | ||
| 141 | (ispell-show-choices): Don't call get-buffer-window uselessly. | ||
| 142 | (ispell-init-process): Use set-process-query-on-exit-flag. | ||
| 143 | |||
| 144 | 2004-10-16 Kim F. Storm <storm@cua.dk> | ||
| 145 | |||
| 146 | * fringe.el (fringe-bitmaps): Only initialize when defined. | ||
| 147 | |||
| 148 | * pcvs.el (cvs-mode-view-file, cvs-mode-view-file-other-window): Add. | ||
| 149 | (cvs-mode-find-file): Add optional `view' arg to enter view mode. | ||
| 150 | |||
| 151 | * pcvs-defs.el (cvs-mode-map): Bind v to cvs-mode-view-file. | ||
| 152 | |||
| 153 | 2004-10-15 Simon Josefsson <jas@extundo.com> | ||
| 154 | |||
| 155 | * net/password.el: Add. | ||
| 156 | |||
| 1 | 2004-10-13 Daniel Pfeiffer <occitan@esperanto.org> | 157 | 2004-10-13 Daniel Pfeiffer <occitan@esperanto.org> |
| 2 | 158 | ||
| 3 | * button.el (button-activate): Allow a marker to display as an | 159 | * button.el (button-activate): Allow a marker to display as an action. |
| 4 | action. | ||
| 5 | 160 | ||
| 6 | * help-fns.el (describe-variable): Use it to make "below" a | 161 | * help-fns.el (describe-variable): Use it to make "below" a hyperlink. |
| 7 | hyperlink. | ||
| 8 | 162 | ||
| 9 | * help.el (describe-mode): Use it to make minor mode list into | 163 | * help.el (describe-mode): Use it to make minor mode list into |
| 10 | hyperlinks. | 164 | hyperlinks. |
| @@ -25,6 +179,15 @@ | |||
| 25 | (event-modifiers): Use push. | 179 | (event-modifiers): Use push. |
| 26 | (mouse-movement-p, with-temp-buffer): Simplify. | 180 | (mouse-movement-p, with-temp-buffer): Simplify. |
| 27 | 181 | ||
| 182 | 2004-10-12 Richard M. Stallman <rms@gnu.org> | ||
| 183 | |||
| 184 | * info-look.el (info-lookup-file): Add info-file property. | ||
| 185 | (info-lookup-symbol): Likewise. | ||
| 186 | |||
| 187 | * info.el (info-xref): Add underlining. | ||
| 188 | (info): Add info-file property. | ||
| 189 | (Info-find-emacs-command-nodes): Specify case-sensitive search. | ||
| 190 | |||
| 28 | 2004-10-12 Michael Albinus <michael.albinus@gmx.de> | 191 | 2004-10-12 Michael Albinus <michael.albinus@gmx.de> |
| 29 | 192 | ||
| 30 | Sync with Tramp 2.0.45. | 193 | Sync with Tramp 2.0.45. |
| @@ -201,7 +364,7 @@ | |||
| 201 | 2004-10-05 Juri Linkov <juri@jurta.org> | 364 | 2004-10-05 Juri Linkov <juri@jurta.org> |
| 202 | 365 | ||
| 203 | * isearch.el (isearch-done): Set mark after running hook. | 366 | * isearch.el (isearch-done): Set mark after running hook. |
| 204 | Suggested by Drew Adams <drew.adams@oracle.com>. | 367 | Reported by Drew Adams <drew.adams@oracle.com>. |
| 205 | 368 | ||
| 206 | * info.el (Info-history, Info-toc): Fix Info headers. | 369 | * info.el (Info-history, Info-toc): Fix Info headers. |
| 207 | (Info-toc): Narrow buffer before Info-fontify-node. | 370 | (Info-toc): Narrow buffer before Info-fontify-node. |
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el index 33a8c3ec3f5..da21f5336d8 100644 --- a/lisp/buff-menu.el +++ b/lisp/buff-menu.el | |||
| @@ -197,9 +197,15 @@ Letters do not insert themselves; instead, they are commands. | |||
| 197 | 197 | ||
| 198 | (defun Buffer-menu-revert-function (ignore1 ignore2) | 198 | (defun Buffer-menu-revert-function (ignore1 ignore2) |
| 199 | ;; We can not use save-excursion here. The buffer gets erased. | 199 | ;; We can not use save-excursion here. The buffer gets erased. |
| 200 | (let ((old-point (point))) | 200 | (let ((ocol (current-column)) |
| 201 | (oline (progn (move-to-column 4) | ||
| 202 | (get-text-property (point) 'buffer))) | ||
| 203 | (prop (point-min))) | ||
| 201 | (list-buffers-noselect Buffer-menu-files-only) | 204 | (list-buffers-noselect Buffer-menu-files-only) |
| 202 | (goto-char old-point))) | 205 | (while (setq prop (next-single-property-change prop 'buffer)) |
| 206 | (when (eq (get-text-property prop 'buffer) oline) | ||
| 207 | (goto-char prop) | ||
| 208 | (move-to-column ocol))))) | ||
| 203 | 209 | ||
| 204 | (defun Buffer-menu-toggle-files-only (arg) | 210 | (defun Buffer-menu-toggle-files-only (arg) |
| 205 | "Toggle whether the current buffer-menu displays only file buffers. | 211 | "Toggle whether the current buffer-menu displays only file buffers. |
| @@ -354,13 +360,16 @@ and then move up one line. Prefix arg means move that many lines." | |||
| 354 | (delete-char 1) | 360 | (delete-char 1) |
| 355 | (insert (if arg ?* ? )))))) | 361 | (insert (if arg ?* ? )))))) |
| 356 | 362 | ||
| 363 | (defun Buffer-menu-beginning () | ||
| 364 | (goto-char (point-min)) | ||
| 365 | (unless Buffer-menu-use-header-line | ||
| 366 | (forward-line))) | ||
| 367 | |||
| 357 | (defun Buffer-menu-execute () | 368 | (defun Buffer-menu-execute () |
| 358 | "Save and/or delete buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-save] or \\<Buffer-menu-mode-map>\\[Buffer-menu-delete] commands." | 369 | "Save and/or delete buffers marked with \\<Buffer-menu-mode-map>\\[Buffer-menu-save] or \\<Buffer-menu-mode-map>\\[Buffer-menu-delete] commands." |
| 359 | (interactive) | 370 | (interactive) |
| 360 | (save-excursion | 371 | (save-excursion |
| 361 | (goto-char (point-min)) | 372 | (Buffer-menu-beginning) |
| 362 | (unless Buffer-menu-use-header-line | ||
| 363 | (forward-line 1)) | ||
| 364 | (while (re-search-forward "^..S" nil t) | 373 | (while (re-search-forward "^..S" nil t) |
| 365 | (let ((modp nil)) | 374 | (let ((modp nil)) |
| 366 | (save-excursion | 375 | (save-excursion |
| @@ -371,9 +380,7 @@ and then move up one line. Prefix arg means move that many lines." | |||
| 371 | (delete-char -1) | 380 | (delete-char -1) |
| 372 | (insert (if modp ?* ? )))))) | 381 | (insert (if modp ?* ? )))))) |
| 373 | (save-excursion | 382 | (save-excursion |
| 374 | (goto-char (point-min)) | 383 | (Buffer-menu-beginning) |
| 375 | (unless Buffer-menu-use-header-line | ||
| 376 | (forward-line 1)) | ||
| 377 | (let ((buff-menu-buffer (current-buffer)) | 384 | (let ((buff-menu-buffer (current-buffer)) |
| 378 | (buffer-read-only nil)) | 385 | (buffer-read-only nil)) |
| 379 | (while (re-search-forward "^D" nil t) | 386 | (while (re-search-forward "^D" nil t) |
| @@ -399,9 +406,7 @@ in the selected frame." | |||
| 399 | (menu (current-buffer)) | 406 | (menu (current-buffer)) |
| 400 | (others ()) | 407 | (others ()) |
| 401 | tem) | 408 | tem) |
| 402 | (goto-char (point-min)) | 409 | (Buffer-menu-beginning) |
| 403 | (unless Buffer-menu-use-header-line | ||
| 404 | (forward-line 1)) | ||
| 405 | (while (re-search-forward "^>" nil t) | 410 | (while (re-search-forward "^>" nil t) |
| 406 | (setq tem (Buffer-menu-buffer t)) | 411 | (setq tem (Buffer-menu-buffer t)) |
| 407 | (let ((buffer-read-only nil)) | 412 | (let ((buffer-read-only nil)) |
| @@ -581,7 +586,35 @@ For more information, see the function `buffer-menu'." | |||
| 581 | (if (< column 2) (setq column 2)) | 586 | (if (< column 2) (setq column 2)) |
| 582 | (if (> column 5) (setq column 5))) | 587 | (if (> column 5) (setq column 5))) |
| 583 | (setq Buffer-menu-sort-column column) | 588 | (setq Buffer-menu-sort-column column) |
| 584 | (Buffer-menu-revert)) | 589 | (let (buffer-read-only l buf m1 m2) |
| 590 | (save-excursion | ||
| 591 | (Buffer-menu-beginning) | ||
| 592 | (while (not (eobp)) | ||
| 593 | (when (buffer-live-p (setq buf (get-text-property (+ (point) 4) 'buffer))) | ||
| 594 | (setq m1 (char-after) | ||
| 595 | m1 (if (memq m1 '(?> ?D)) m1) | ||
| 596 | m2 (char-after (+ (point) 2)) | ||
| 597 | m2 (if (eq m2 ?S) m2)) | ||
| 598 | (if (or m1 m2) | ||
| 599 | (push (list buf m1 m2) l))) | ||
| 600 | (forward-line))) | ||
| 601 | (Buffer-menu-revert) | ||
| 602 | (setq buffer-read-only) | ||
| 603 | (save-excursion | ||
| 604 | (Buffer-menu-beginning) | ||
| 605 | (while (not (eobp)) | ||
| 606 | (when (setq buf (assq (get-text-property (+ (point) 4) 'buffer) l)) | ||
| 607 | (setq m1 (cadr buf) | ||
| 608 | m2 (cadr (cdr buf))) | ||
| 609 | (when m1 | ||
| 610 | (delete-char 1) | ||
| 611 | (insert m1) | ||
| 612 | (backward-char 1)) | ||
| 613 | (when m2 | ||
| 614 | (forward-char 2) | ||
| 615 | (delete-char 1) | ||
| 616 | (insert m2))) | ||
| 617 | (forward-line))))) | ||
| 585 | 618 | ||
| 586 | (defun Buffer-menu-make-sort-button (name column) | 619 | (defun Buffer-menu-make-sort-button (name column) |
| 587 | (if (equal column Buffer-menu-sort-column) (setq column nil)) | 620 | (if (equal column Buffer-menu-sort-column) (setq column nil)) |
| @@ -592,7 +625,9 @@ For more information, see the function `buffer-menu'." | |||
| 592 | 'mouse-face 'highlight | 625 | 'mouse-face 'highlight |
| 593 | 'keymap (let ((map (make-sparse-keymap))) | 626 | 'keymap (let ((map (make-sparse-keymap))) |
| 594 | (define-key map [header-line mouse-2] | 627 | (define-key map [header-line mouse-2] |
| 595 | `(lambda () (interactive) | 628 | `(lambda (e) |
| 629 | (interactive "e") | ||
| 630 | (if e (set-buffer (window-buffer (posn-window (event-end e))))) | ||
| 596 | (Buffer-menu-sort ,column))) | 631 | (Buffer-menu-sort ,column))) |
| 597 | map))) | 632 | map))) |
| 598 | 633 | ||
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el index c24a13b91d7..c48ac23e8e5 100644 --- a/lisp/calc/calc-help.el +++ b/lisp/calc/calc-help.el | |||
| @@ -112,34 +112,27 @@ C-w Describe how there is no warranty for Calc." | |||
| 112 | (describe-bindings) | 112 | (describe-bindings) |
| 113 | (save-excursion | 113 | (save-excursion |
| 114 | (set-buffer "*Help*") | 114 | (set-buffer "*Help*") |
| 115 | (goto-char (point-min)) | 115 | (let ((buffer-read-only nil)) |
| 116 | (if (search-forward "Global bindings:" nil t) | 116 | (goto-char (point-min)) |
| 117 | (delete-region (match-beginning 0) (point-max))) | 117 | (when (search-forward "Major Mode Bindings:" nil t) |
| 118 | (goto-char (point-min)) | 118 | (delete-region (point-min) (point)) |
| 119 | (while (re-search-forward "\n[a-z] ESC" nil t) | 119 | (insert "Calc Mode Bindings:")) |
| 120 | (end-of-line) | 120 | (when (search-forward "Global bindings:" nil t) |
| 121 | (delete-region (match-beginning 0) (point))) | 121 | (forward-line -1) |
| 122 | (goto-char (point-min)) | 122 | (delete-region (point) (point-max))) |
| 123 | (while (re-search-forward "\nESC m" nil t) | 123 | (goto-char (point-min)) |
| 124 | (end-of-line) | 124 | (while |
| 125 | (delete-region (match-beginning 0) (point))) | 125 | (re-search-forward |
| 126 | (goto-char (point-min)) | 126 | "\n[a-z] [0-9]\\( .*\n\\)\\([a-z] [0-9]\\1\\)*[a-z] \\([0-9]\\)\\1" |
| 127 | (while (search-forward "\n\n\n" nil t) | 127 | nil t) |
| 128 | (backward-delete-char 1) | 128 | (let ((dig1 (char-after (1- (match-beginning 1)))) |
| 129 | (backward-char 2)) | 129 | (dig2 (char-after (match-beginning 3)))) |
| 130 | (goto-char (point-min)) | 130 | (delete-region (match-end 1) (match-end 0)) |
| 131 | (while | 131 | (goto-char (match-beginning 1)) |
| 132 | (re-search-forward | 132 | (delete-backward-char 1) |
| 133 | "\n[a-z] [0-9]\\(\t\t.*\n\\)\\([a-z] [0-9]\\1\\)*[a-z] \\([0-9]\\)\\1" | 133 | (delete-char 5) |
| 134 | nil t) | 134 | (insert (format "%c .. %c" (min dig1 dig2) (max dig1 dig2))))) |
| 135 | (let ((dig1 (char-after (1- (match-beginning 1)))) | 135 | (goto-char (point-min))))) |
| 136 | (dig2 (char-after (match-beginning 3)))) | ||
| 137 | (delete-region (match-end 1) (match-end 0)) | ||
| 138 | (goto-char (match-beginning 1)) | ||
| 139 | (delete-backward-char 1) | ||
| 140 | (delete-char 1) | ||
| 141 | (insert (format "%c .. %c" (min dig1 dig2) (max dig1 dig2))))) | ||
| 142 | (goto-char (point-min)))) | ||
| 143 | 136 | ||
| 144 | (defun calc-describe-key-briefly (key) | 137 | (defun calc-describe-key-briefly (key) |
| 145 | (interactive "kDescribe key briefly: ") | 138 | (interactive "kDescribe key briefly: ") |
diff --git a/lisp/comint.el b/lisp/comint.el index 8b2c779ecd3..cfbd618c896 100644 --- a/lisp/comint.el +++ b/lisp/comint.el | |||
| @@ -372,7 +372,7 @@ history list. Default is to save anything that isn't all whitespace.") | |||
| 372 | "Special hook run before input is sent to the process. | 372 | "Special hook run before input is sent to the process. |
| 373 | These functions get one argument, a string containing the text to send.") | 373 | These functions get one argument, a string containing the text to send.") |
| 374 | 374 | ||
| 375 | (defvar comint-output-filter-functions '(comint-postoutput-scroll-to-bottom) | 375 | (defvar comint-output-filter-functions '(comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) |
| 376 | "Functions to call after output is inserted into the buffer. | 376 | "Functions to call after output is inserted into the buffer. |
| 377 | One possible function is `comint-postoutput-scroll-to-bottom'. | 377 | One possible function is `comint-postoutput-scroll-to-bottom'. |
| 378 | These functions get one argument, a string containing the text as originally | 378 | These functions get one argument, a string containing the text as originally |
| @@ -1901,65 +1901,7 @@ prompt skip is done by skipping text matching the regular expression | |||
| 1901 | 1901 | ||
| 1902 | ;; These three functions are for entering text you don't want echoed or | 1902 | ;; These three functions are for entering text you don't want echoed or |
| 1903 | ;; saved -- typically passwords to ftp, telnet, or somesuch. | 1903 | ;; saved -- typically passwords to ftp, telnet, or somesuch. |
| 1904 | ;; Just enter m-x send-invisible and type in your line, or add | 1904 | ;; Just enter m-x send-invisible and type in your line. |
| 1905 | ;; `comint-watch-for-password-prompt' to `comint-output-filter-functions'. | ||
| 1906 | |||
| 1907 | (defun comint-read-noecho (prompt &optional stars) | ||
| 1908 | "Read a single line of text from user without echoing, and return it. | ||
| 1909 | Prompt with argument PROMPT, a string. Optional argument STARS causes | ||
| 1910 | input to be echoed with '*' characters on the prompt line. Input ends with | ||
| 1911 | RET, LFD, or ESC. DEL or C-h rubs out. C-u kills line. C-g aborts (if | ||
| 1912 | `inhibit-quit' is set because e.g. this function was called from a process | ||
| 1913 | filter and C-g is pressed, this function returns nil rather than a string). | ||
| 1914 | |||
| 1915 | Note that the keystrokes comprising the text can still be recovered | ||
| 1916 | \(temporarily) with \\[view-lossage]. Some people find this worrisome (see, | ||
| 1917 | however, `clear-this-command-keys'). | ||
| 1918 | Once the caller uses the password, it can erase the password | ||
| 1919 | by doing (clear-string STRING)." | ||
| 1920 | (let ((ans "") | ||
| 1921 | (newans nil) | ||
| 1922 | (c 0) | ||
| 1923 | (echo-keystrokes 0) | ||
| 1924 | (cursor-in-echo-area t) | ||
| 1925 | (message-log-max nil) | ||
| 1926 | (done nil)) | ||
| 1927 | (while (not done) | ||
| 1928 | (if stars | ||
| 1929 | (message "%s%s" prompt (make-string (length ans) ?*)) | ||
| 1930 | (message "%s" prompt)) | ||
| 1931 | ;; Use this instead of `read-char' to avoid "Non-character input-event". | ||
| 1932 | (setq c (read-char-exclusive)) | ||
| 1933 | (cond ((= c ?\C-g) | ||
| 1934 | ;; This function may get called from a process filter, where | ||
| 1935 | ;; inhibit-quit is set. In later versions of emacs read-char | ||
| 1936 | ;; may clear quit-flag itself and return C-g. That would make | ||
| 1937 | ;; it impossible to quit this loop in a simple way, so | ||
| 1938 | ;; re-enable it here (for backward-compatibility the check for | ||
| 1939 | ;; quit-flag below would still be necessary, so this seems | ||
| 1940 | ;; like the simplest way to do things). | ||
| 1941 | (setq quit-flag t | ||
| 1942 | done t)) | ||
| 1943 | ((or (= c ?\r) (= c ?\n) (= c ?\e)) | ||
| 1944 | (setq done t)) | ||
| 1945 | ((= c ?\C-u) | ||
| 1946 | (clear-string ans) | ||
| 1947 | (setq ans "")) | ||
| 1948 | ((and (/= c ?\b) (/= c ?\177)) | ||
| 1949 | (setq newans (concat ans (char-to-string c))) | ||
| 1950 | (clear-string ans) | ||
| 1951 | (setq ans newans)) | ||
| 1952 | ((> (length ans) 0) | ||
| 1953 | (aset ans (1- (length ans)) 0) | ||
| 1954 | (setq ans (substring ans 0 -1))))) | ||
| 1955 | (if quit-flag | ||
| 1956 | ;; Emulate a true quit, except that we have to return a value. | ||
| 1957 | (prog1 | ||
| 1958 | (setq quit-flag nil) | ||
| 1959 | (message "Quit") | ||
| 1960 | (beep t)) | ||
| 1961 | (message "") | ||
| 1962 | ans))) | ||
| 1963 | 1905 | ||
| 1964 | (defun send-invisible (&optional prompt) | 1906 | (defun send-invisible (&optional prompt) |
| 1965 | "Read a string without echoing. | 1907 | "Read a string without echoing. |
| @@ -1970,7 +1912,7 @@ Security bug: your string can still be temporarily recovered with | |||
| 1970 | (interactive "P") ; Defeat snooping via C-x ESC ESC | 1912 | (interactive "P") ; Defeat snooping via C-x ESC ESC |
| 1971 | (let ((proc (get-buffer-process (current-buffer)))) | 1913 | (let ((proc (get-buffer-process (current-buffer)))) |
| 1972 | (if proc | 1914 | (if proc |
| 1973 | (let ((str (comint-read-noecho (or prompt "Non-echoed text: ") t))) | 1915 | (let ((str (read-passwd (or prompt "Non-echoed text: ")))) |
| 1974 | (if (stringp str) | 1916 | (if (stringp str) |
| 1975 | (progn | 1917 | (progn |
| 1976 | (comint-snapshot-last-prompt) | 1918 | (comint-snapshot-last-prompt) |
diff --git a/lisp/delsel.el b/lisp/delsel.el index d8e034a5f9f..962fa156a07 100644 --- a/lisp/delsel.el +++ b/lisp/delsel.el | |||
| @@ -147,6 +147,8 @@ then it takes a second \\[keyboard-quit] to abort the minibuffer." | |||
| 147 | (define-key minibuffer-local-must-match-map "\C-g" 'abort-recursive-edit) | 147 | (define-key minibuffer-local-must-match-map "\C-g" 'abort-recursive-edit) |
| 148 | (define-key minibuffer-local-isearch-map "\C-g" 'abort-recursive-edit)) | 148 | (define-key minibuffer-local-isearch-map "\C-g" 'abort-recursive-edit)) |
| 149 | 149 | ||
| 150 | (add-hook 'delsel-unload-hook 'delsel-unload-hook) | ||
| 151 | |||
| 150 | (provide 'delsel) | 152 | (provide 'delsel) |
| 151 | 153 | ||
| 152 | ;;; arch-tag: 1e388890-1b50-4ed0-9347-763b1343b6ed | 154 | ;;; arch-tag: 1e388890-1b50-4ed0-9347-763b1343b6ed |
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 2b0a8e698a6..118352937bd 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el | |||
| @@ -792,7 +792,8 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." | |||
| 792 | (let ((xs (pop hist-new)) | 792 | (let ((xs (pop hist-new)) |
| 793 | old-autoloads) | 793 | old-autoloads) |
| 794 | ;; Make sure the file was not already loaded before. | 794 | ;; Make sure the file was not already loaded before. |
| 795 | (unless (assoc (car xs) hist-orig) | 795 | (unless (or (assoc (car xs) hist-orig) |
| 796 | (equal (car xs) "cl")) | ||
| 796 | (dolist (s xs) | 797 | (dolist (s xs) |
| 797 | (cond | 798 | (cond |
| 798 | ((symbolp s) | 799 | ((symbolp s) |
| @@ -809,7 +810,18 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." | |||
| 809 | (when (and (symbolp s) (not (memq s old-autoloads))) | 810 | (when (and (symbolp s) (not (memq s old-autoloads))) |
| 810 | (push s byte-compile-noruntime-functions)) | 811 | (push s byte-compile-noruntime-functions)) |
| 811 | (when (and (consp s) (eq t (car s))) | 812 | (when (and (consp s) (eq t (car s))) |
| 812 | (push (cdr s) old-autoloads)))))))))) | 813 | (push (cdr s) old-autoloads))))))) |
| 814 | (when (memq 'cl-functions byte-compile-warnings) | ||
| 815 | (let ((hist-new load-history) | ||
| 816 | (hist-nil-new current-load-list)) | ||
| 817 | ;; Go through load-history, look for newly loaded files | ||
| 818 | ;; and mark all the functions defined therein. | ||
| 819 | (while (and hist-new (not (eq hist-new hist-orig))) | ||
| 820 | (let ((xs (pop hist-new)) | ||
| 821 | old-autoloads) | ||
| 822 | ;; Make sure the file was not already loaded before. | ||
| 823 | (when (and (equal (car xs) "cl") (not (assoc (car xs) hist-orig))) | ||
| 824 | (byte-compile-find-cl-functions))))))))) | ||
| 813 | 825 | ||
| 814 | (defun byte-compile-eval-before-compile (form) | 826 | (defun byte-compile-eval-before-compile (form) |
| 815 | "Evaluate FORM for `eval-and-compile'." | 827 | "Evaluate FORM for `eval-and-compile'." |
| @@ -848,12 +860,13 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." | |||
| 848 | ;; Log something that isn't a warning. | 860 | ;; Log something that isn't a warning. |
| 849 | (defun byte-compile-log-1 (string) | 861 | (defun byte-compile-log-1 (string) |
| 850 | (with-current-buffer "*Compile-Log*" | 862 | (with-current-buffer "*Compile-Log*" |
| 851 | (goto-char (point-max)) | 863 | (let ((inhibit-read-only t)) |
| 852 | (byte-compile-warning-prefix nil nil) | 864 | (goto-char (point-max)) |
| 853 | (cond (noninteractive | 865 | (byte-compile-warning-prefix nil nil) |
| 854 | (message " %s" string)) | 866 | (cond (noninteractive |
| 855 | (t | 867 | (message " %s" string)) |
| 856 | (insert (format "%s\n" string)))))) | 868 | (t |
| 869 | (insert (format "%s\n" string))))))) | ||
| 857 | 870 | ||
| 858 | (defvar byte-compile-read-position nil | 871 | (defvar byte-compile-read-position nil |
| 859 | "Character position we began the last `read' from.") | 872 | "Character position we began the last `read' from.") |
| @@ -904,7 +917,8 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." | |||
| 904 | ;; This is used as warning-prefix for the compiler. | 917 | ;; This is used as warning-prefix for the compiler. |
| 905 | ;; It is always called with the warnings buffer current. | 918 | ;; It is always called with the warnings buffer current. |
| 906 | (defun byte-compile-warning-prefix (level entry) | 919 | (defun byte-compile-warning-prefix (level entry) |
| 907 | (let* ((dir default-directory) | 920 | (let* ((inhibit-read-only t) |
| 921 | (dir default-directory) | ||
| 908 | (file (cond ((stringp byte-compile-current-file) | 922 | (file (cond ((stringp byte-compile-current-file) |
| 909 | (format "%s:" (file-relative-name byte-compile-current-file dir))) | 923 | (format "%s:" (file-relative-name byte-compile-current-file dir))) |
| 910 | ((bufferp byte-compile-current-file) | 924 | ((bufferp byte-compile-current-file) |
| @@ -950,7 +964,8 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." | |||
| 950 | (save-excursion | 964 | (save-excursion |
| 951 | (set-buffer (get-buffer-create "*Compile-Log*")) | 965 | (set-buffer (get-buffer-create "*Compile-Log*")) |
| 952 | (goto-char (point-max)) | 966 | (goto-char (point-max)) |
| 953 | (let* ((dir (and byte-compile-current-file | 967 | (let* ((inhibit-read-only t) |
| 968 | (dir (and byte-compile-current-file | ||
| 954 | (file-name-directory byte-compile-current-file))) | 969 | (file-name-directory byte-compile-current-file))) |
| 955 | (was-same (equal default-directory dir)) | 970 | (was-same (equal default-directory dir)) |
| 956 | pt) | 971 | pt) |
| @@ -984,7 +999,8 @@ Each function's symbol gets added to `byte-compile-noruntime-functions'." | |||
| 984 | (defun byte-compile-log-warning (string &optional fill level) | 999 | (defun byte-compile-log-warning (string &optional fill level) |
| 985 | (let ((warning-prefix-function 'byte-compile-warning-prefix) | 1000 | (let ((warning-prefix-function 'byte-compile-warning-prefix) |
| 986 | (warning-type-format "") | 1001 | (warning-type-format "") |
| 987 | (warning-fill-prefix (if fill " "))) | 1002 | (warning-fill-prefix (if fill " ")) |
| 1003 | (inhibit-read-only t)) | ||
| 988 | (display-warning 'bytecomp string level "*Compile-Log*"))) | 1004 | (display-warning 'bytecomp string level "*Compile-Log*"))) |
| 989 | 1005 | ||
| 990 | (defun byte-compile-warn (format &rest args) | 1006 | (defun byte-compile-warn (format &rest args) |
| @@ -2140,17 +2156,15 @@ list that represents a doc string reference. | |||
| 2140 | (setq tail (cdr tail)))) | 2156 | (setq tail (cdr tail)))) |
| 2141 | form) | 2157 | form) |
| 2142 | 2158 | ||
| 2143 | (put 'require 'byte-hunk-handler 'byte-compile-file-form-eval-boundary) | 2159 | (put 'require 'byte-hunk-handler 'byte-compile-file-form-require) |
| 2144 | (defun byte-compile-file-form-eval-boundary (form) | 2160 | (defun byte-compile-file-form-require (form) |
| 2145 | (let ((old-load-list current-load-list)) | 2161 | (let ((old-load-list current-load-list) |
| 2146 | (eval form) | 2162 | (args (mapcar 'eval (cdr form)))) |
| 2147 | ;; (require 'cl) turns off warnings for cl functions. | 2163 | (apply 'require args) |
| 2148 | (let ((tem current-load-list)) | 2164 | ;; Detech (require 'cl) in a way that works even if cl is already loaded. |
| 2149 | (while (not (eq tem old-load-list)) | 2165 | (if (member (car args) '("cl" cl)) |
| 2150 | (when (equal (car tem) '(require . cl)) | 2166 | (setq byte-compile-warnings |
| 2151 | (setq byte-compile-warnings | 2167 | (remq 'cl-functions byte-compile-warnings)))) |
| 2152 | (remq 'cl-functions byte-compile-warnings))) | ||
| 2153 | (setq tem (cdr tem))))) | ||
| 2154 | (byte-compile-keep-pending form 'byte-compile-normal-call)) | 2168 | (byte-compile-keep-pending form 'byte-compile-normal-call)) |
| 2155 | 2169 | ||
| 2156 | (put 'progn 'byte-hunk-handler 'byte-compile-file-form-progn) | 2170 | (put 'progn 'byte-hunk-handler 'byte-compile-file-form-progn) |
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el index b098a467f9f..2f6c799f528 100644 --- a/lisp/emacs-lisp/cl.el +++ b/lisp/emacs-lisp/cl.el | |||
| @@ -108,8 +108,7 @@ printer proceeds to the next function on the list. | |||
| 108 | This variable is not used at present, but it is defined in hopes that | 108 | This variable is not used at present, but it is defined in hopes that |
| 109 | a future Emacs interpreter will be able to use it.") | 109 | a future Emacs interpreter will be able to use it.") |
| 110 | 110 | ||
| 111 | (defvar cl-unload-hook '(cl-cannot-unload) | 111 | (add-hook 'cl-unload-hook 'cl-cannot-unload) |
| 112 | "Prevent unloading the feature `cl', since it does not work.") | ||
| 113 | (defun cl-cannot-unload () | 112 | (defun cl-cannot-unload () |
| 114 | (error "Cannot unload the feature `cl'")) | 113 | (error "Cannot unload the feature `cl'")) |
| 115 | 114 | ||
diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el index f8d41f200d2..17991067fab 100644 --- a/lisp/emacs-lisp/elp.el +++ b/lisp/emacs-lisp/elp.el | |||
| @@ -626,6 +626,7 @@ displayed." | |||
| 626 | 626 | ||
| 627 | (defun elp-unload-hook () | 627 | (defun elp-unload-hook () |
| 628 | (elp-restore-all)) | 628 | (elp-restore-all)) |
| 629 | (add-hook 'elp-unload-hook 'elp-unload-hook) | ||
| 629 | 630 | ||
| 630 | (provide 'elp) | 631 | (provide 'elp) |
| 631 | 632 | ||
diff --git a/lisp/frame.el b/lisp/frame.el index 12cc904d47d..3658cfc1879 100644 --- a/lisp/frame.el +++ b/lisp/frame.el | |||
| @@ -153,7 +153,9 @@ Pass it BUFFER as first arg, and (cdr ARGS) gives the rest of the args." | |||
| 153 | ;; (set-window-dedicated-p window t) | 153 | ;; (set-window-dedicated-p window t) |
| 154 | window)) | 154 | window)) |
| 155 | ;; If no window yet, make one in a new frame. | 155 | ;; If no window yet, make one in a new frame. |
| 156 | (let ((frame (make-frame (append args special-display-frame-alist)))) | 156 | (let ((frame |
| 157 | (with-current-buffer buffer | ||
| 158 | (make-frame (append args special-display-frame-alist))))) | ||
| 157 | (set-window-buffer (frame-selected-window frame) buffer) | 159 | (set-window-buffer (frame-selected-window frame) buffer) |
| 158 | (set-window-dedicated-p (frame-selected-window frame) t) | 160 | (set-window-dedicated-p (frame-selected-window frame) t) |
| 159 | (frame-selected-window frame)))))) | 161 | (frame-selected-window frame)))))) |
diff --git a/lisp/fringe.el b/lisp/fringe.el index 07c93d39f40..f9ddd87931f 100644 --- a/lisp/fringe.el +++ b/lisp/fringe.el | |||
| @@ -43,7 +43,8 @@ | |||
| 43 | 43 | ||
| 44 | (defvar fringe-bitmaps) | 44 | (defvar fringe-bitmaps) |
| 45 | 45 | ||
| 46 | (unless (get 'left-truncation 'fringe) | 46 | (unless (or (not (boundp 'fringe-bitmaps)) |
| 47 | (get 'left-truncation 'fringe)) | ||
| 47 | (let ((bitmaps '(left-truncation right-truncation | 48 | (let ((bitmaps '(left-truncation right-truncation |
| 48 | up-arrow down-arrow | 49 | up-arrow down-arrow |
| 49 | continued-line continuation-line | 50 | continued-line continuation-line |
| @@ -112,6 +113,25 @@ See `fringe-mode' for possible values and their effect." | |||
| 112 | fringe-mode)))) | 113 | fringe-mode)))) |
| 113 | (setq frames (cdr frames))))) | 114 | (setq frames (cdr frames))))) |
| 114 | 115 | ||
| 116 | ;; For initialization of fringe-mode, take account of changes | ||
| 117 | ;; made explicitly to default-frame-alist. | ||
| 118 | (defun fringe-mode-initialize (symbol value) | ||
| 119 | (let* ((left-pair (assq 'left-fringe default-frame-alist)) | ||
| 120 | (right-pair (assq 'right-fringe default-frame-alist)) | ||
| 121 | (left (cdr left-pair)) | ||
| 122 | (right (cdr right-pair))) | ||
| 123 | (if (or left-pair right-pair) | ||
| 124 | ;; If there's something in default-frame-alist for fringes, | ||
| 125 | ;; don't change it, but reflect that into the value of fringe-mode. | ||
| 126 | (progn | ||
| 127 | (setq fringe-mode (cons left right)) | ||
| 128 | (if (equal fringe-mode '(nil . nil)) | ||
| 129 | (setq fringe-mode nil)) | ||
| 130 | (if (equal fringe-mode '(0 . 0)) | ||
| 131 | (setq fringe-mode 0))) | ||
| 132 | ;; Otherwise impose the user-specified value of fringe-mode. | ||
| 133 | (custom-initialize-reset symbol value)))) | ||
| 134 | |||
| 115 | ;;;###autoload | 135 | ;;;###autoload |
| 116 | (defcustom fringe-mode nil | 136 | (defcustom fringe-mode nil |
| 117 | "*Specify appearance of fringes on all frames. | 137 | "*Specify appearance of fringes on all frames. |
| @@ -138,6 +158,7 @@ you can use the interactive function `toggle-fringe'" | |||
| 138 | (integer :tag "Right width"))) | 158 | (integer :tag "Right width"))) |
| 139 | :group 'frames | 159 | :group 'frames |
| 140 | :require 'fringe | 160 | :require 'fringe |
| 161 | :initialize 'fringe-mode-initialize | ||
| 141 | :set 'set-fringe-mode-1) | 162 | :set 'set-fringe-mode-1) |
| 142 | 163 | ||
| 143 | (defun fringe-query-style (&optional all-frames) | 164 | (defun fringe-query-style (&optional all-frames) |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 292d36ce9e1..70f43183e28 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,33 @@ | |||
| 1 | 2004-10-17 Richard M. Stallman <rms@gnu.org> | ||
| 2 | |||
| 3 | * gnus-registry.el (gnus-registry-unload-hook): | ||
| 4 | Set as a variable with add-hook. | ||
| 5 | |||
| 6 | * nnspool.el (nnspool-spool-directory): Use news-directory instead | ||
| 7 | of news-path. | ||
| 8 | |||
| 9 | * spam-stat.el (spam-stat-unload-hook): Set as a variable w/ add-hook. | ||
| 10 | |||
| 11 | * spam.el: Delete duplicate `provide'. | ||
| 12 | (spam-unload-hook): Set as a variable with add-hook. | ||
| 13 | |||
| 14 | 2004-10-15 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 15 | |||
| 16 | * pop3.el (pop3-leave-mail-on-server): Describe possible problems | ||
| 17 | in the doc string. | ||
| 18 | |||
| 19 | * message.el (message-ignored-news-headers) | ||
| 20 | (message-ignored-supersedes-headers) | ||
| 21 | (message-ignored-resent-headers) | ||
| 22 | (message-forward-ignored-headers): Improve custom type. | ||
| 23 | |||
| 24 | 2004-10-15 Simon Josefsson <jas@extundo.com> | ||
| 25 | |||
| 26 | * pop3.el (top-level): Don't require nnheader. | ||
| 27 | (pop3-read-timeout): Add. | ||
| 28 | (pop3-accept-process-output): Add. | ||
| 29 | (pop3-read-response, pop3-retr): Use it. | ||
| 30 | |||
| 1 | 2004-10-13 Katsumi Yamaoka <yamaoka@jpl.org> | 31 | 2004-10-13 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 32 | ||
| 3 | * message.el (message-tokenize-header): Fix 2004-09-06 change | 33 | * message.el (message-tokenize-header): Fix 2004-09-06 change |
| @@ -9,6 +39,10 @@ | |||
| 9 | (tls-certificate-information): New function, based on | 39 | (tls-certificate-information): New function, based on |
| 10 | ssl-certificate-information. | 40 | ssl-certificate-information. |
| 11 | 41 | ||
| 42 | 2004-10-11 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 43 | |||
| 44 | * message.el (message-bury): Use `window-dedicated-p'. | ||
| 45 | |||
| 12 | 2004-10-10 Reiner Steib <Reiner.Steib@gmx.de> | 46 | 2004-10-10 Reiner Steib <Reiner.Steib@gmx.de> |
| 13 | 47 | ||
| 14 | * gnus-sum.el: Mention that multibyte characters don't work as marks. | 48 | * gnus-sum.el: Mention that multibyte characters don't work as marks. |
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index 33238ef4552..841f0057566 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el | |||
| @@ -693,6 +693,8 @@ Returns the first place where the trail finds a group name." | |||
| 693 | 693 | ||
| 694 | (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids)) | 694 | (remove-hook 'gnus-summary-prepare-hook 'gnus-registry-register-message-ids)) |
| 695 | 695 | ||
| 696 | (add-hook 'gnus-registry-unload-hook 'gnus-registry-unload-hook) | ||
| 697 | |||
| 696 | (when gnus-registry-install | 698 | (when gnus-registry-install |
| 697 | (gnus-registry-install-hooks) | 699 | (gnus-registry-install-hooks) |
| 698 | (gnus-registry-read)) | 700 | (gnus-registry-read)) |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index c9d05d1a0fe..9e61e007a3e 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -255,7 +255,12 @@ included. Organization and User-Agent are optional." | |||
| 255 | :group 'message-news | 255 | :group 'message-news |
| 256 | :group 'message-headers | 256 | :group 'message-headers |
| 257 | :link '(custom-manual "(message)Message Headers") | 257 | :link '(custom-manual "(message)Message Headers") |
| 258 | :type 'regexp) | 258 | :type '(repeat :value-to-internal (lambda (widget value) |
| 259 | (custom-split-regexp-maybe value)) | ||
| 260 | :match (lambda (widget value) | ||
| 261 | (or (stringp value) | ||
| 262 | (widget-editable-list-match widget value))) | ||
| 263 | regexp)) | ||
| 259 | 264 | ||
| 260 | (defcustom message-ignored-mail-headers | 265 | (defcustom message-ignored-mail-headers |
| 261 | "^[GF]cc:\\|^Resent-Fcc:\\|^Xref:\\|^X-Draft-From:\\|^X-Gnus-Agent-Meta-Information:" | 266 | "^[GF]cc:\\|^Resent-Fcc:\\|^Xref:\\|^X-Draft-From:\\|^X-Gnus-Agent-Meta-Information:" |
| @@ -271,7 +276,12 @@ It's best to delete old Path and Date headers before posting to avoid | |||
| 271 | any confusion." | 276 | any confusion." |
| 272 | :group 'message-interface | 277 | :group 'message-interface |
| 273 | :link '(custom-manual "(message)Superseding") | 278 | :link '(custom-manual "(message)Superseding") |
| 274 | :type 'regexp) | 279 | :type '(repeat :value-to-internal (lambda (widget value) |
| 280 | (custom-split-regexp-maybe value)) | ||
| 281 | :match (lambda (widget value) | ||
| 282 | (or (stringp value) | ||
| 283 | (widget-editable-list-match widget value))) | ||
| 284 | regexp)) | ||
| 275 | 285 | ||
| 276 | (defcustom message-subject-re-regexp | 286 | (defcustom message-subject-re-regexp |
| 277 | "^[ \t]*\\([Rr][Ee]\\(\\[[0-9]*\\]\\)*:[ \t]*\\)*[ \t]*" | 287 | "^[ \t]*\\([Rr][Ee]\\(\\[[0-9]*\\]\\)*:[ \t]*\\)*[ \t]*" |
| @@ -534,13 +544,22 @@ Done before generating the new subject of a forward." | |||
| 534 | "*All headers that match this regexp will be deleted when resending a message." | 544 | "*All headers that match this regexp will be deleted when resending a message." |
| 535 | :group 'message-interface | 545 | :group 'message-interface |
| 536 | :link '(custom-manual "(message)Resending") | 546 | :link '(custom-manual "(message)Resending") |
| 537 | :type 'regexp) | 547 | :type '(repeat :value-to-internal (lambda (widget value) |
| 548 | (custom-split-regexp-maybe value)) | ||
| 549 | :match (lambda (widget value) | ||
| 550 | (or (stringp value) | ||
| 551 | (widget-editable-list-match widget value))) | ||
| 552 | regexp)) | ||
| 538 | 553 | ||
| 539 | (defcustom message-forward-ignored-headers "^Content-Transfer-Encoding:\\|^X-Gnus" | 554 | (defcustom message-forward-ignored-headers "^Content-Transfer-Encoding:\\|^X-Gnus" |
| 540 | "*All headers that match this regexp will be deleted when forwarding a message." | 555 | "*All headers that match this regexp will be deleted when forwarding a message." |
| 541 | :version "21.1" | 556 | :version "21.1" |
| 542 | :group 'message-forwarding | 557 | :group 'message-forwarding |
| 543 | :type '(choice (const :tag "None" nil) | 558 | :type '(repeat :value-to-internal (lambda (widget value) |
| 559 | (custom-split-regexp-maybe value)) | ||
| 560 | :match (lambda (widget value) | ||
| 561 | (or (stringp value) | ||
| 562 | (widget-editable-list-match widget value))) | ||
| 544 | regexp)) | 563 | regexp)) |
| 545 | 564 | ||
| 546 | (defcustom message-ignored-cited-headers "." | 565 | (defcustom message-ignored-cited-headers "." |
diff --git a/lisp/gnus/nnspool.el b/lisp/gnus/nnspool.el index eaf5159be8f..9a08cdfe71c 100644 --- a/lisp/gnus/nnspool.el +++ b/lisp/gnus/nnspool.el | |||
| @@ -44,7 +44,7 @@ This is most commonly `inews' or `injnews'.") | |||
| 44 | "Switches for nnspool-request-post to pass to `inews' for posting news. | 44 | "Switches for nnspool-request-post to pass to `inews' for posting news. |
| 45 | If you are using Cnews, you probably should set this variable to nil.") | 45 | If you are using Cnews, you probably should set this variable to nil.") |
| 46 | 46 | ||
| 47 | (defvoo nnspool-spool-directory (file-name-as-directory news-path) | 47 | (defvoo nnspool-spool-directory (file-name-as-directory news-directory) |
| 48 | "Local news spool directory.") | 48 | "Local news spool directory.") |
| 49 | 49 | ||
| 50 | (defvoo nnspool-nov-directory (concat nnspool-spool-directory "over.view/") | 50 | (defvoo nnspool-nov-directory (concat nnspool-spool-directory "over.view/") |
diff --git a/lisp/gnus/pop3.el b/lisp/gnus/pop3.el index e288f6cace2..db8753057d6 100644 --- a/lisp/gnus/pop3.el +++ b/lisp/gnus/pop3.el | |||
| @@ -83,7 +83,14 @@ values are 'apop." | |||
| 83 | :group 'pop3) | 83 | :group 'pop3) |
| 84 | 84 | ||
| 85 | (defcustom pop3-leave-mail-on-server nil | 85 | (defcustom pop3-leave-mail-on-server nil |
| 86 | "*Non-nil if the mail is to be left on the POP server after fetching." | 86 | "*Non-nil if the mail is to be left on the POP server after fetching. |
| 87 | |||
| 88 | If the `pop3-leave-mail-on-server' is non-`nil' the mail is to be | ||
| 89 | left on the POP server after fetching. Note that POP servers | ||
| 90 | maintain no state information between sessions, so what the | ||
| 91 | client believes is there and what is actually there may not match | ||
| 92 | up. If they do not, then the whole thing can fall apart and | ||
| 93 | leave you with a corrupt mailbox." | ||
| 87 | :version "21.4" ;; Oort Gnus | 94 | :version "21.4" ;; Oort Gnus |
| 88 | :type 'boolean | 95 | :type 'boolean |
| 89 | :group 'pop3) | 96 | :group 'pop3) |
| @@ -95,6 +102,32 @@ Used for APOP authentication.") | |||
| 95 | (defvar pop3-read-point nil) | 102 | (defvar pop3-read-point nil) |
| 96 | (defvar pop3-debug nil) | 103 | (defvar pop3-debug nil) |
| 97 | 104 | ||
| 105 | ;; Borrowed from nnheader-accept-process-output in nnheader.el. | ||
| 106 | (defvar pop3-read-timeout | ||
| 107 | (if (string-match "windows-nt\\|os/2\\|emx\\|cygwin" | ||
| 108 | (symbol-name system-type)) | ||
| 109 | ;; http://thread.gmane.org/v9655t3pjo.fsf@marauder.physik.uni-ulm.de | ||
| 110 | ;; | ||
| 111 | ;; IIRC, values lower than 1.0 didn't/don't work on Windows/DOS. | ||
| 112 | ;; | ||
| 113 | ;; There should probably be a runtime test to determine the timing | ||
| 114 | ;; resolution, or a primitive to report it. I don't know off-hand | ||
| 115 | ;; what's possible. Perhaps better, maybe the Windows/DOS primitive | ||
| 116 | ;; could round up non-zero timeouts to a minimum of 1.0? | ||
| 117 | 1.0 | ||
| 118 | 0.1) | ||
| 119 | "How long pop3 should wait between checking for the end of output. | ||
| 120 | Shorter values mean quicker response, but are more CPU intensive.") | ||
| 121 | |||
| 122 | ;; Borrowed from nnheader-accept-process-output in nnheader.el. | ||
| 123 | (defun pop3-accept-process-output (process) | ||
| 124 | (accept-process-output | ||
| 125 | process | ||
| 126 | (truncate pop3-read-timeout) | ||
| 127 | (truncate (* (- pop3-read-timeout | ||
| 128 | (truncate pop3-read-timeout)) | ||
| 129 | 1000)))) | ||
| 130 | |||
| 98 | (defun pop3-movemail (&optional crashbox) | 131 | (defun pop3-movemail (&optional crashbox) |
| 99 | "Transfer contents of a maildrop to the specified CRASHBOX." | 132 | "Transfer contents of a maildrop to the specified CRASHBOX." |
| 100 | (or crashbox (setq crashbox (expand-file-name "~/.crashbox"))) | 133 | (or crashbox (setq crashbox (expand-file-name "~/.crashbox"))) |
| @@ -207,7 +240,7 @@ Return the response string if optional second argument is non-nil." | |||
| 207 | (goto-char pop3-read-point) | 240 | (goto-char pop3-read-point) |
| 208 | (while (and (memq (process-status process) '(open run)) | 241 | (while (and (memq (process-status process) '(open run)) |
| 209 | (not (search-forward "\r\n" nil t))) | 242 | (not (search-forward "\r\n" nil t))) |
| 210 | (nnheader-accept-process-output process) | 243 | (pop3-accept-process-output process) |
| 211 | (goto-char pop3-read-point)) | 244 | (goto-char pop3-read-point)) |
| 212 | (setq match-end (point)) | 245 | (setq match-end (point)) |
| 213 | (goto-char pop3-read-point) | 246 | (goto-char pop3-read-point) |
| @@ -381,8 +414,7 @@ This function currently does nothing.") | |||
| 381 | (save-excursion | 414 | (save-excursion |
| 382 | (set-buffer (process-buffer process)) | 415 | (set-buffer (process-buffer process)) |
| 383 | (while (not (re-search-forward "^\\.\r\n" nil t)) | 416 | (while (not (re-search-forward "^\\.\r\n" nil t)) |
| 384 | ;; Fixme: Shouldn't depend on nnheader. | 417 | (pop3-accept-process-output process) |
| 385 | (nnheader-accept-process-output process) | ||
| 386 | (goto-char start)) | 418 | (goto-char start)) |
| 387 | (setq pop3-read-point (point-marker)) | 419 | (setq pop3-read-point (point-marker)) |
| 388 | ;; this code does not seem to work for some POP servers... | 420 | ;; this code does not seem to work for some POP servers... |
diff --git a/lisp/gnus/spam-stat.el b/lisp/gnus/spam-stat.el index 9e20a51b127..f197d165cdd 100644 --- a/lisp/gnus/spam-stat.el +++ b/lisp/gnus/spam-stat.el | |||
| @@ -594,6 +594,8 @@ COUNT defaults to 5" | |||
| 594 | (remove-hook 'gnus-select-article-hook | 594 | (remove-hook 'gnus-select-article-hook |
| 595 | 'spam-stat-store-gnus-article-buffer)) | 595 | 'spam-stat-store-gnus-article-buffer)) |
| 596 | 596 | ||
| 597 | (add-hook 'spam-stat-unload-hook 'spam-stat-unload-hook) | ||
| 598 | |||
| 597 | (provide 'spam-stat) | 599 | (provide 'spam-stat) |
| 598 | 600 | ||
| 599 | ;;; arch-tag: ff1d2200-8ddb-42fb-bb7b-1b5e20448554 | 601 | ;;; arch-tag: ff1d2200-8ddb-42fb-bb7b-1b5e20448554 |
diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el index 85534f3828c..2b5f7be936b 100644 --- a/lisp/gnus/spam.el +++ b/lisp/gnus/spam.el | |||
| @@ -1814,14 +1814,12 @@ REMOVE not nil, remove the ADDRESSES." | |||
| 1814 | (remove-hook 'gnus-get-new-news-hook 'spam-setup-widening) | 1814 | (remove-hook 'gnus-get-new-news-hook 'spam-setup-widening) |
| 1815 | (remove-hook 'gnus-summary-prepare-hook 'spam-find-spam)) | 1815 | (remove-hook 'gnus-summary-prepare-hook 'spam-find-spam)) |
| 1816 | 1816 | ||
| 1817 | (add-hook 'spam-unload-hook 'spam-unload-hook) | ||
| 1818 | |||
| 1817 | (when spam-install-hooks | 1819 | (when spam-install-hooks |
| 1818 | (spam-initialize)) | 1820 | (spam-initialize)) |
| 1819 | 1821 | ||
| 1820 | (provide 'spam) | 1822 | (provide 'spam) |
| 1821 | 1823 | ||
| 1822 | ;;; spam.el ends here. | ||
| 1823 | |||
| 1824 | (provide 'spam) | ||
| 1825 | |||
| 1826 | ;;; arch-tag: 07e6e0ca-ab0a-4412-b445-1f6c72a4f27f | 1824 | ;;; arch-tag: 07e6e0ca-ab0a-4412-b445-1f6c72a4f27f |
| 1827 | ;;; spam.el ends here | 1825 | ;;; spam.el ends here |
diff --git a/lisp/help-at-pt.el b/lisp/help-at-pt.el index ad1f2b3a96a..d6ac6ec3fdc 100644 --- a/lisp/help-at-pt.el +++ b/lisp/help-at-pt.el | |||
| @@ -348,8 +348,7 @@ different regions. With numeric argument ARG, behaves like | |||
| 348 | (interactive "p") | 348 | (interactive "p") |
| 349 | (scan-buf-move-to-region 'help-echo (- arg) 'scan-buf-move-hook)) | 349 | (scan-buf-move-to-region 'help-echo (- arg) 'scan-buf-move-hook)) |
| 350 | 350 | ||
| 351 | (defvar help-at-pt-unload-hook '(help-at-pt-cancel-timer) | 351 | (add-hook 'help-at-pt-unload-hook 'help-at-pt-cancel-timer) |
| 352 | "Normal hook run when `help-at-pt' is unloaded.") | ||
| 353 | 352 | ||
| 354 | (provide 'help-at-pt) | 353 | (provide 'help-at-pt) |
| 355 | 354 | ||
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index f013f8e3c72..12f29bdac63 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el | |||
| @@ -213,12 +213,20 @@ If a regexp, then it will be matched against the buffer's name. | |||
| 213 | If a function, it will be called with the buffer as an argument, and | 213 | If a function, it will be called with the buffer as an argument, and |
| 214 | should return non-nil if this buffer should be shown. | 214 | should return non-nil if this buffer should be shown. |
| 215 | 215 | ||
| 216 | Viewing of buffers hidden because of these predicates is enabled by | 216 | Viewing of buffers hidden because of these predicates may be customized |
| 217 | giving a non-nil prefix argument to `ibuffer-update'. Note that this | 217 | via `ibuffer-default-display-maybe-show-predicates' and is toggled by |
| 218 | specialized filtering occurs before real filtering." | 218 | giving a non-nil prefix argument to `ibuffer-update'. |
| 219 | Note that this specialized filtering occurs before real filtering." | ||
| 219 | :type '(repeat (choice regexp function)) | 220 | :type '(repeat (choice regexp function)) |
| 220 | :group 'ibuffer) | 221 | :group 'ibuffer) |
| 221 | 222 | ||
| 223 | (defcustom ibuffer-default-display-maybe-show-predicates nil | ||
| 224 | "Non-nil means show buffers that match `ibuffer-maybe-show-predicates'." | ||
| 225 | :type 'boolean | ||
| 226 | :group 'ibuffer) | ||
| 227 | |||
| 228 | (defvar ibuffer-display-maybe-show-predicates nil) | ||
| 229 | |||
| 222 | (defvar ibuffer-current-format nil) | 230 | (defvar ibuffer-current-format nil) |
| 223 | 231 | ||
| 224 | (defcustom ibuffer-movement-cycle t | 232 | (defcustom ibuffer-movement-cycle t |
| @@ -2069,11 +2077,15 @@ If optional arg SILENT is non-nil, do not display progress messages." | |||
| 2069 | 2077 | ||
| 2070 | (defun ibuffer-update (arg &optional silent) | 2078 | (defun ibuffer-update (arg &optional silent) |
| 2071 | "Regenerate the list of all buffers. | 2079 | "Regenerate the list of all buffers. |
| 2072 | Display buffers whose name matches one of `ibuffer-maybe-show-predicates' | 2080 | |
| 2073 | iff arg ARG is non-nil. | 2081 | Prefix arg non-nil means to toggle whether buffers that match |
| 2082 | `ibuffer-maybe-show-predicates' should be displayed. | ||
| 2074 | 2083 | ||
| 2075 | If optional arg SILENT is non-nil, do not display progress messages." | 2084 | If optional arg SILENT is non-nil, do not display progress messages." |
| 2076 | (interactive "P") | 2085 | (interactive "P") |
| 2086 | (if arg | ||
| 2087 | (setq ibuffer-display-maybe-show-predicates | ||
| 2088 | (not ibuffer-display-maybe-show-predicates))) | ||
| 2077 | (ibuffer-forward-line 0) | 2089 | (ibuffer-forward-line 0) |
| 2078 | (let* ((bufs (buffer-list)) | 2090 | (let* ((bufs (buffer-list)) |
| 2079 | (blist (ibuffer-filter-buffers | 2091 | (blist (ibuffer-filter-buffers |
| @@ -2086,7 +2098,7 @@ If optional arg SILENT is non-nil, do not display progress messages." | |||
| 2086 | (caddr bufs) | 2098 | (caddr bufs) |
| 2087 | (cadr bufs)) | 2099 | (cadr bufs)) |
| 2088 | (ibuffer-current-buffers-with-marks bufs) | 2100 | (ibuffer-current-buffers-with-marks bufs) |
| 2089 | arg))) | 2101 | ibuffer-display-maybe-show-predicates))) |
| 2090 | (when (null blist) | 2102 | (when (null blist) |
| 2091 | (if (and (featurep 'ibuf-ext) | 2103 | (if (and (featurep 'ibuf-ext) |
| 2092 | ibuffer-filtering-qualifiers) | 2104 | ibuffer-filtering-qualifiers) |
| @@ -2148,7 +2160,7 @@ If optional arg SILENT is non-nil, do not display progress messages." | |||
| 2148 | 'ibuffer-filter-group | 2160 | 'ibuffer-filter-group |
| 2149 | name))) | 2161 | name))) |
| 2150 | 2162 | ||
| 2151 | (defun ibuffer-redisplay-engine (bmarklist &optional all) | 2163 | (defun ibuffer-redisplay-engine (bmarklist &optional ignore) |
| 2152 | (assert (eq major-mode 'ibuffer-mode)) | 2164 | (assert (eq major-mode 'ibuffer-mode)) |
| 2153 | (let* ((--ibuffer-insert-buffers-and-marks-format | 2165 | (let* ((--ibuffer-insert-buffers-and-marks-format |
| 2154 | (ibuffer-current-format)) | 2166 | (ibuffer-current-format)) |
| @@ -2475,6 +2487,8 @@ will be inserted before the group at point." | |||
| 2475 | ibuffer-default-sorting-reversep) | 2487 | ibuffer-default-sorting-reversep) |
| 2476 | (set (make-local-variable 'ibuffer-shrink-to-minimum-size) | 2488 | (set (make-local-variable 'ibuffer-shrink-to-minimum-size) |
| 2477 | ibuffer-default-shrink-to-minimum-size) | 2489 | ibuffer-default-shrink-to-minimum-size) |
| 2490 | (set (make-local-variable 'ibuffer-display-maybe-show-predicates) | ||
| 2491 | ibuffer-default-display-maybe-show-predicates) | ||
| 2478 | (set (make-local-variable 'ibuffer-filtering-qualifiers) nil) | 2492 | (set (make-local-variable 'ibuffer-filtering-qualifiers) nil) |
| 2479 | (set (make-local-variable 'ibuffer-filter-groups) nil) | 2493 | (set (make-local-variable 'ibuffer-filter-groups) nil) |
| 2480 | (set (make-local-variable 'ibuffer-filter-group-kill-ring) nil) | 2494 | (set (make-local-variable 'ibuffer-filter-group-kill-ring) nil) |
diff --git a/lisp/info.el b/lisp/info.el index 386f5b612ec..17905c6d738 100644 --- a/lisp/info.el +++ b/lisp/info.el | |||
| @@ -3445,7 +3445,8 @@ Preserve text properties." | |||
| 3445 | (fontify-visited-p ; visited nodes need to be re-fontified | 3445 | (fontify-visited-p ; visited nodes need to be re-fontified |
| 3446 | (and Info-fontify-visited-nodes | 3446 | (and Info-fontify-visited-nodes |
| 3447 | ;; Don't take time to refontify visited nodes in huge nodes | 3447 | ;; Don't take time to refontify visited nodes in huge nodes |
| 3448 | (< (- (point-max) (point-min)) Info-fontify-maximum-menu-size)))) | 3448 | (< (- (point-max) (point-min)) Info-fontify-maximum-menu-size))) |
| 3449 | rbeg rend) | ||
| 3449 | 3450 | ||
| 3450 | ;; Fontify header line | 3451 | ;; Fontify header line |
| 3451 | (goto-char (point-min)) | 3452 | (goto-char (point-min)) |
| @@ -3570,39 +3571,48 @@ Preserve text properties." | |||
| 3570 | "mouse-2: go to this node") | 3571 | "mouse-2: go to this node") |
| 3571 | 'mouse-face 'highlight))) | 3572 | 'mouse-face 'highlight))) |
| 3572 | (when (or not-fontified-p fontify-visited-p) | 3573 | (when (or not-fontified-p fontify-visited-p) |
| 3573 | (add-text-properties | 3574 | (setq rbeg (match-beginning 2) |
| 3574 | (match-beginning 2) (match-end 2) | 3575 | rend (match-end 2)) |
| 3575 | (list | 3576 | (put-text-property |
| 3576 | 'font-lock-face | 3577 | rbeg rend |
| 3577 | ;; Display visited nodes in a different face | 3578 | 'font-lock-face |
| 3578 | (if (and Info-fontify-visited-nodes | 3579 | ;; Display visited nodes in a different face |
| 3579 | (save-match-data | 3580 | (if (and Info-fontify-visited-nodes |
| 3580 | (let* ((node (replace-regexp-in-string | 3581 | (save-match-data |
| 3581 | "^[ \t]+" "" | 3582 | (let* ((node (replace-regexp-in-string |
| 3582 | (replace-regexp-in-string | 3583 | "^[ \t]+" "" |
| 3583 | "[ \t\n]+" " " | 3584 | (replace-regexp-in-string |
| 3584 | (or (match-string 5) | 3585 | "[ \t\n]+" " " |
| 3585 | (and (not (equal (match-string 4) "")) | 3586 | (or (match-string 5) |
| 3586 | (match-string 4)) | 3587 | (and (not (equal (match-string 4) "")) |
| 3587 | (match-string 2))))) | 3588 | (match-string 4)) |
| 3588 | (file (file-name-nondirectory | 3589 | (match-string 2))))) |
| 3589 | Info-current-file)) | 3590 | (file (file-name-nondirectory |
| 3590 | (hl Info-history-list) | 3591 | Info-current-file)) |
| 3591 | res) | 3592 | (hl Info-history-list) |
| 3592 | (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node) | 3593 | res) |
| 3593 | (setq file (file-name-nondirectory | 3594 | (if (string-match "(\\([^)]+\\))\\([^)]*\\)" node) |
| 3594 | (match-string 1 node)) | 3595 | (setq file (file-name-nondirectory |
| 3595 | node (if (equal (match-string 2 node) "") | 3596 | (match-string 1 node)) |
| 3596 | "Top" | 3597 | node (if (equal (match-string 2 node) "") |
| 3597 | (match-string 2 node)))) | 3598 | "Top" |
| 3598 | (while hl | 3599 | (match-string 2 node)))) |
| 3599 | (if (and (string-equal node (nth 1 (car hl))) | 3600 | (while hl |
| 3600 | (string-equal file | 3601 | (if (and (string-equal node (nth 1 (car hl))) |
| 3601 | (file-name-nondirectory | 3602 | (string-equal file |
| 3602 | (nth 0 (car hl))))) | 3603 | (file-name-nondirectory |
| 3603 | (setq res (car hl) hl nil) | 3604 | (nth 0 (car hl))))) |
| 3604 | (setq hl (cdr hl)))) | 3605 | (setq res (car hl) hl nil) |
| 3605 | res))) 'info-xref-visited 'info-xref)))) | 3606 | (setq hl (cdr hl)))) |
| 3607 | res))) 'info-xref-visited 'info-xref)) | ||
| 3608 | ;; For multiline ref, unfontify newline and surrounding whitespace | ||
| 3609 | (save-excursion | ||
| 3610 | (goto-char rbeg) | ||
| 3611 | (save-match-data | ||
| 3612 | (while (re-search-forward "\\s-*\n\\s-*" rend t nil) | ||
| 3613 | (remove-text-properties (match-beginning 0) | ||
| 3614 | (match-end 0) | ||
| 3615 | '(font-lock-face t)))))) | ||
| 3606 | (when not-fontified-p | 3616 | (when not-fontified-p |
| 3607 | (when (memq Info-hide-note-references '(t hide)) | 3617 | (when (memq Info-hide-note-references '(t hide)) |
| 3608 | (add-text-properties (match-beginning 3) (match-end 3) | 3618 | (add-text-properties (match-beginning 3) (match-end 3) |
diff --git a/lisp/language/indian.el b/lisp/language/indian.el index 9c6184364bd..4b9e08045db 100644 --- a/lisp/language/indian.el +++ b/lisp/language/indian.el | |||
| @@ -50,6 +50,15 @@ | |||
| 50 | Currently supported foundries are `cdac' and `akruti'.") | 50 | Currently supported foundries are `cdac' and `akruti'.") |
| 51 | 51 | ||
| 52 | (defvar indian-script-language-alist | 52 | (defvar indian-script-language-alist |
| 53 | '((devanagari (hindi sanskrit) nil) | ||
| 54 | (bengali (bengali assamese) nil) | ||
| 55 | (gurmukhi (punjabi) nil) | ||
| 56 | (gujarati (gujarati) nil) | ||
| 57 | (oriya (oriya) nil) | ||
| 58 | (tamil (tamil) nil) | ||
| 59 | (telugu (telugu) nil) | ||
| 60 | (kannada (kannada) nil) | ||
| 61 | (malayalam (malayalam) nil)) | ||
| 53 | "Alist of Indian scripts vs the corresponding language list and font foundry. | 62 | "Alist of Indian scripts vs the corresponding language list and font foundry. |
| 54 | Each element has this form: | 63 | Each element has this form: |
| 55 | 64 | ||
| @@ -62,16 +71,7 @@ The list is in the priority order. | |||
| 62 | 71 | ||
| 63 | FONT-FOUNDRY is a font foundry representing a group of Indian | 72 | FONT-FOUNDRY is a font foundry representing a group of Indian |
| 64 | fonts. If the value is nil, the value of `indian-font-foundry' | 73 | fonts. If the value is nil, the value of `indian-font-foundry' |
| 65 | is used." | 74 | is used.") |
| 66 | '((devanagari (hindi sanskrit) nil) | ||
| 67 | (bengali (bengali assamese) nil) | ||
| 68 | (gurmukhi (punjabi) nil) | ||
| 69 | (gujarati (gujarati) nil) | ||
| 70 | (oriya (oriya) nil) | ||
| 71 | (tamil (tamil) nil) | ||
| 72 | (telugu (telugu) nil) | ||
| 73 | (kannada (kannada) nil) | ||
| 74 | (malayalam (malayalam) nil))) | ||
| 75 | 75 | ||
| 76 | (defconst indian-font-char-index-table | 76 | (defconst indian-font-char-index-table |
| 77 | '( ; for which language(s) | 77 | '( ; for which language(s) |
| @@ -99,14 +99,14 @@ is used." | |||
| 99 | (#x1200 . akruti:knd) ; kannada | 99 | (#x1200 . akruti:knd) ; kannada |
| 100 | (#x1300 . akruti:mal) ; malayalam | 100 | (#x1300 . akruti:mal) ; malayalam |
| 101 | ) | 101 | ) |
| 102 | "Aliat of indices of `indian-glyph' character vs Indian font identifiers. | 102 | "Alist of indices of `indian-glyph' character vs Indian font identifiers. |
| 103 | Each element has this form: (INDEX . FONT-IDENTIFIER) | 103 | Each element has this form: (INDEX . FONT-IDENTIFIER) |
| 104 | 104 | ||
| 105 | INDEX is an index number of the first character in the charset | 105 | INDEX is an index number of the first character in the charset |
| 106 | `indian-glyph' assigned for glyphs in the font specified by | 106 | `indian-glyph' assigned for glyphs in the font specified by |
| 107 | FONT-IDENTIFIER. Currently FONT-IDENTIFIERs are defined for CDAC | 107 | FONT-IDENTIFIER. Currently FONT-IDENTIFIERs are defined for CDAC |
| 108 | and AKRUTI font groups.") | 108 | and AKRUTI font groups.") |
| 109 | 109 | ||
| 110 | (defun indian-font-char (index font-identifier) | 110 | (defun indian-font-char (index font-identifier) |
| 111 | "Return character of charset `indian-glyph' made from glyph index INDEX. | 111 | "Return character of charset `indian-glyph' made from glyph index INDEX. |
| 112 | FONT-IDENTIFIER is an identifier of an Indian font listed in the | 112 | FONT-IDENTIFIER is an identifier of an Indian font listed in the |
| @@ -127,7 +127,7 @@ font INDEX is for." | |||
| 127 | (defun indian-font-char-range (font-identifier) | 127 | (defun indian-font-char-range (font-identifier) |
| 128 | (cons (indian-font-char 0 font-identifier) | 128 | (cons (indian-font-char 0 font-identifier) |
| 129 | (indian-font-char 255 font-identifier))) | 129 | (indian-font-char 255 font-identifier))) |
| 130 | 130 | ||
| 131 | (defvar indian-script-table | 131 | (defvar indian-script-table |
| 132 | '[ | 132 | '[ |
| 133 | devanagari | 133 | devanagari |
diff --git a/lisp/mouse.el b/lisp/mouse.el index b73967b99dc..abf62a97836 100644 --- a/lisp/mouse.el +++ b/lisp/mouse.el | |||
| @@ -338,6 +338,17 @@ shrink the window or windows above it to make room." | |||
| 338 | (select-window window) | 338 | (select-window window) |
| 339 | (enlarge-window growth nil (> growth 0)))) | 339 | (enlarge-window growth nil (> growth 0)))) |
| 340 | 340 | ||
| 341 | (defsubst mouse-drag-move-window-top (window growth) | ||
| 342 | "Move the top of WINDOW up or down by GROWTH lines. | ||
| 343 | Move it down if GROWTH is positive, or up if GROWTH is negative. | ||
| 344 | If this would make WINDOW too short, shrink the window or windows | ||
| 345 | above it to make room." | ||
| 346 | ;; Moving the top of WINDOW is actually moving the bottom of the | ||
| 347 | ;; window above. | ||
| 348 | (let ((window-above (mouse-drag-window-above window))) | ||
| 349 | (and window-above | ||
| 350 | (mouse-drag-move-window-bottom window-above (- growth))))) | ||
| 351 | |||
| 341 | (defun mouse-drag-mode-line-1 (start-event mode-line-p) | 352 | (defun mouse-drag-mode-line-1 (start-event mode-line-p) |
| 342 | "Change the height of a window by dragging on the mode or header line. | 353 | "Change the height of a window by dragging on the mode or header line. |
| 343 | START-EVENT is the starting mouse-event of the drag action. | 354 | START-EVENT is the starting mouse-event of the drag action. |
| @@ -444,7 +455,9 @@ MODE-LINE-P non-nil means dragging a mode line; nil means a header line." | |||
| 444 | (select-window start-event-window)) | 455 | (select-window start-event-window)) |
| 445 | ;; no. grow/shrink the selected window | 456 | ;; no. grow/shrink the selected window |
| 446 | ;(message "growth = %d" growth) | 457 | ;(message "growth = %d" growth) |
| 447 | (mouse-drag-move-window-bottom start-event-window growth)) | 458 | (if mode-line-p |
| 459 | (mouse-drag-move-window-bottom start-event-window growth) | ||
| 460 | (mouse-drag-move-window-top start-event-window growth))) | ||
| 448 | 461 | ||
| 449 | ;; if this window's growth caused another | 462 | ;; if this window's growth caused another |
| 450 | ;; window to be deleted because it was too | 463 | ;; window to be deleted because it was too |
| @@ -1097,7 +1110,7 @@ and set mark at the beginning. | |||
| 1097 | Prefix arguments are interpreted as with \\[yank]. | 1110 | Prefix arguments are interpreted as with \\[yank]. |
| 1098 | If `mouse-yank-at-point' is non-nil, insert at point | 1111 | If `mouse-yank-at-point' is non-nil, insert at point |
| 1099 | regardless of where you click." | 1112 | regardless of where you click." |
| 1100 | (interactive "e\nP") | 1113 | (interactive "*e\nP") |
| 1101 | ;; Give temporary modes such as isearch a chance to turn off. | 1114 | ;; Give temporary modes such as isearch a chance to turn off. |
| 1102 | (run-hooks 'mouse-leave-buffer-hook) | 1115 | (run-hooks 'mouse-leave-buffer-hook) |
| 1103 | (or mouse-yank-at-point (mouse-set-point click)) | 1116 | (or mouse-yank-at-point (mouse-set-point click)) |
| @@ -1399,7 +1412,7 @@ The function returns a non-nil value if it creates a secondary selection." | |||
| 1399 | Move point to the end of the inserted text. | 1412 | Move point to the end of the inserted text. |
| 1400 | If `mouse-yank-at-point' is non-nil, insert at point | 1413 | If `mouse-yank-at-point' is non-nil, insert at point |
| 1401 | regardless of where you click." | 1414 | regardless of where you click." |
| 1402 | (interactive "e") | 1415 | (interactive "*e") |
| 1403 | ;; Give temporary modes such as isearch a chance to turn off. | 1416 | ;; Give temporary modes such as isearch a chance to turn off. |
| 1404 | (run-hooks 'mouse-leave-buffer-hook) | 1417 | (run-hooks 'mouse-leave-buffer-hook) |
| 1405 | (or mouse-yank-at-point (mouse-set-point click)) | 1418 | (or mouse-yank-at-point (mouse-set-point click)) |
diff --git a/lisp/msb.el b/lisp/msb.el index e352150a57d..2ab7fe5491d 100644 --- a/lisp/msb.el +++ b/lisp/msb.el | |||
| @@ -1153,6 +1153,7 @@ different buffer menu using the function `msb'." | |||
| 1153 | 1153 | ||
| 1154 | (defun msb-unload-hook () | 1154 | (defun msb-unload-hook () |
| 1155 | (msb-mode 0)) | 1155 | (msb-mode 0)) |
| 1156 | (add-hook 'msb-unload-hook 'msb-unload-hook) | ||
| 1156 | 1157 | ||
| 1157 | (provide 'msb) | 1158 | (provide 'msb) |
| 1158 | (eval-after-load "msb" '(run-hooks 'msb-after-load-hook 'msb-after-load-hooks)) | 1159 | (eval-after-load "msb" '(run-hooks 'msb-after-load-hook 'msb-after-load-hooks)) |
diff --git a/lisp/net/password.el b/lisp/net/password.el new file mode 100644 index 00000000000..e8be612ecca --- /dev/null +++ b/lisp/net/password.el | |||
| @@ -0,0 +1,128 @@ | |||
| 1 | ;;; password.el --- Read passwords from user, possibly using a password cache. | ||
| 2 | |||
| 3 | ;; Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | ;; Author: Simon Josefsson <simon@josefsson.org> | ||
| 6 | ;; Created: 2003-12-21 | ||
| 7 | ;; Keywords: password cache passphrase key | ||
| 8 | |||
| 9 | ;; This file is part of GNU Emacs. | ||
| 10 | |||
| 11 | ;; GNU Emacs is free software; you can redistribute it and/or modify | ||
| 12 | ;; it under the terms of the GNU General Public License as published by | ||
| 13 | ;; the Free Software Foundation; either version 2, or (at your option) | ||
| 14 | ;; any later version. | ||
| 15 | |||
| 16 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 17 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 18 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 19 | ;; GNU General Public License for more details. | ||
| 20 | |||
| 21 | ;; You should have received a copy of the GNU General Public License | ||
| 22 | ;; along with GNU Emacs; see the file COPYING. If not, write to the | ||
| 23 | ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | ||
| 24 | ;; Boston, MA 02111-1307, USA. | ||
| 25 | |||
| 26 | ;;; Commentary: | ||
| 27 | |||
| 28 | ;; Greatly influenced by pgg.el written by Daiki Ueno, with timer | ||
| 29 | ;; fixes for XEmacs by Katsumi Yamaoka. In fact, this is mostly just | ||
| 30 | ;; a rip-off. | ||
| 31 | ;; | ||
| 32 | ;; (password-read "Password? " "test") | ||
| 33 | ;; ;; Minibuffer prompt for password. | ||
| 34 | ;; => "foo" | ||
| 35 | ;; | ||
| 36 | ;; (password-cache-add "test" "foo") | ||
| 37 | ;; => nil | ||
| 38 | |||
| 39 | ;; Note the previous two can be replaced with: | ||
| 40 | ;; (password-read-and-add "Password? " "test") | ||
| 41 | ;; ;; Minibuffer prompt for password. | ||
| 42 | ;; => "foo" | ||
| 43 | ;; ;; "foo" is now cached with key "test" | ||
| 44 | |||
| 45 | |||
| 46 | ;; (password-read "Password? " "test") | ||
| 47 | ;; ;; No minibuffer prompt | ||
| 48 | ;; => "foo" | ||
| 49 | ;; | ||
| 50 | ;; (password-read "Password? " "test") | ||
| 51 | ;; ;; No minibuffer prompt | ||
| 52 | ;; => "foo" | ||
| 53 | ;; | ||
| 54 | ;; ;; Wait `password-cache-expiry' seconds. | ||
| 55 | ;; | ||
| 56 | ;; (password-read "Password? " "test") | ||
| 57 | ;; ;; Minibuffer prompt for password is back. | ||
| 58 | ;; => "foo" | ||
| 59 | |||
| 60 | ;;; Code: | ||
| 61 | |||
| 62 | (when (featurep 'xemacs) | ||
| 63 | (require 'run-at-time)) | ||
| 64 | |||
| 65 | (eval-when-compile | ||
| 66 | (require 'cl)) | ||
| 67 | |||
| 68 | (defcustom password-cache t | ||
| 69 | "Whether to cache passwords." | ||
| 70 | :group 'password | ||
| 71 | :type 'boolean) | ||
| 72 | |||
| 73 | (defcustom password-cache-expiry 16 | ||
| 74 | "How many seconds passwords are cached, or nil to disable expiring. | ||
| 75 | Whether passwords are cached at all is controlled by `password-cache'." | ||
| 76 | :group 'password | ||
| 77 | :type '(choice (const :tag "Never" nil) | ||
| 78 | (integer :tag "Seconds"))) | ||
| 79 | |||
| 80 | (defvar password-data (make-vector 7 0)) | ||
| 81 | |||
| 82 | (defun password-read (prompt &optional key) | ||
| 83 | "Read password, for use with KEY, from user, or from cache if wanted. | ||
| 84 | KEY indicate the purpose of the password, so the cache can | ||
| 85 | separate passwords. The cache is not used if KEY is nil. It is | ||
| 86 | typically a string. | ||
| 87 | The variable `password-cache' control whether the cache is used." | ||
| 88 | (or (and password-cache | ||
| 89 | key | ||
| 90 | (symbol-value (intern-soft key password-data))) | ||
| 91 | (read-passwd prompt))) | ||
| 92 | |||
| 93 | (defun password-read-and-add (prompt &optional key) | ||
| 94 | "Read password, for use with KEY, from user, or from cache if wanted. | ||
| 95 | Then store the password in the cache. Uses `password-read' and | ||
| 96 | `password-cache-add'." | ||
| 97 | (let ((password (password-read prompt key))) | ||
| 98 | (when (and password key) | ||
| 99 | (password-cache-add key password)) | ||
| 100 | password)) | ||
| 101 | |||
| 102 | (defun password-cache-remove (key) | ||
| 103 | "Remove password indexed by KEY from password cache. | ||
| 104 | This is typically run be a timer setup from `password-cache-add', | ||
| 105 | but can be invoked at any time to forcefully remove passwords | ||
| 106 | from the cache. This may be useful when it has been detected | ||
| 107 | that a password is invalid, so that `password-read' query the | ||
| 108 | user again." | ||
| 109 | (let ((password (symbol-value (intern-soft key password-data)))) | ||
| 110 | (when password | ||
| 111 | (fillarray password ?_) | ||
| 112 | (unintern key password-data)))) | ||
| 113 | |||
| 114 | (defun password-cache-add (key password) | ||
| 115 | "Add password to cache. | ||
| 116 | The password is removed by a timer after `password-cache-expiry' | ||
| 117 | seconds." | ||
| 118 | (set (intern key password-data) password) | ||
| 119 | (when password-cache-expiry | ||
| 120 | (run-at-time password-cache-expiry nil | ||
| 121 | #'password-cache-remove | ||
| 122 | key)) | ||
| 123 | nil) | ||
| 124 | |||
| 125 | (provide 'password) | ||
| 126 | |||
| 127 | ;;; arch-tag: ab160494-16c8-4c68-a4a1-73eebf6686e5 | ||
| 128 | ;;; password.el ends here | ||
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index a30280dbd4f..582ae8ee207 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el | |||
| @@ -2337,45 +2337,46 @@ If it doesn't exist, generate a new one." | |||
| 2337 | ;; This function makes the same assumption as | 2337 | ;; This function makes the same assumption as |
| 2338 | ;; `tramp-handle-set-visited-file-modtime'. | 2338 | ;; `tramp-handle-set-visited-file-modtime'. |
| 2339 | (defun tramp-handle-verify-visited-file-modtime (buf) | 2339 | (defun tramp-handle-verify-visited-file-modtime (buf) |
| 2340 | "Like `verify-visited-file-modtime' for tramp files. | 2340 | "Like `verify-visited-file-modtime' for tramp files." |
| 2341 | At the time `verify-visited-file-modtime' calls this function, we | ||
| 2342 | already know that the buffer is visiting a file and that | ||
| 2343 | `visited-file-modtime' does not return 0. Do not call this | ||
| 2344 | function directly, unless those two cases are already taken care | ||
| 2345 | of." | ||
| 2346 | (with-current-buffer buf | 2341 | (with-current-buffer buf |
| 2347 | (let ((f (buffer-file-name))) | 2342 | ;; There is no file visiting the buffer, or the buffer has no |
| 2348 | (with-parsed-tramp-file-name f nil | 2343 | ;; recorded last modification time. |
| 2349 | (let* ((attr (file-attributes f)) | 2344 | (if (or (not (buffer-file-name)) |
| 2350 | (modtime (nth 5 attr))) | 2345 | (eq (visited-file-modtime) 0)) |
| 2351 | (cond ((and attr (not (equal modtime '(0 0)))) | 2346 | t |
| 2352 | ;; Why does `file-attributes' return a list (HIGH | 2347 | (let ((f (buffer-file-name))) |
| 2353 | ;; LOW), but `visited-file-modtime' returns a cons | 2348 | (with-parsed-tramp-file-name f nil |
| 2354 | ;; (HIGH . LOW)? | 2349 | (let* ((attr (file-attributes f)) |
| 2355 | (let ((mt (visited-file-modtime))) | 2350 | (modtime (nth 5 attr)) |
| 2356 | (< (abs (tramp-time-diff | 2351 | (mt (visited-file-modtime))) |
| 2357 | modtime | 2352 | |
| 2358 | ;; For compatibility, deal with both the old | 2353 | (cond |
| 2359 | ;; (HIGH . LOW) and the new (HIGH LOW) | 2354 | ;; file exists, and has a known modtime. |
| 2360 | ;; return values of `visited-file-modtime'. | 2355 | ((and attr (not (equal modtime '(0 0)))) |
| 2361 | (if (atom (cdr mt)) | 2356 | (< (abs (tramp-time-diff |
| 2362 | (list (car mt) (cdr mt)) | 2357 | modtime |
| 2363 | mt))) | 2358 | ;; For compatibility, deal with both the old |
| 2364 | 2))) | 2359 | ;; (HIGH . LOW) and the new (HIGH LOW) |
| 2365 | (attr | 2360 | ;; return values of `visited-file-modtime'. |
| 2366 | (save-excursion | 2361 | (if (atom (cdr mt)) |
| 2367 | (tramp-send-command | 2362 | (list (car mt) (cdr mt)) |
| 2368 | multi-method method user host | 2363 | mt))) |
| 2369 | (format "%s -ild %s" | 2364 | 2)) |
| 2370 | (tramp-get-ls-command multi-method method | 2365 | ;; modtime has the don't know value. |
| 2371 | user host) | 2366 | (attr |
| 2372 | (tramp-shell-quote-argument localname))) | 2367 | (save-excursion |
| 2373 | (tramp-wait-for-output) | 2368 | (tramp-send-command |
| 2374 | (setq attr (buffer-substring | 2369 | multi-method method user host |
| 2375 | (point) (progn (end-of-line) (point))))) | 2370 | (format "%s -ild %s" |
| 2376 | (equal tramp-buffer-file-attributes attr)) | 2371 | (tramp-get-ls-command multi-method method user host) |
| 2377 | ;; If file does not exist, say it is not modified. | 2372 | (tramp-shell-quote-argument localname))) |
| 2378 | (t nil))))))) | 2373 | (tramp-wait-for-output) |
| 2374 | (setq attr (buffer-substring | ||
| 2375 | (point) (progn (end-of-line) (point))))) | ||
| 2376 | (equal tramp-buffer-file-attributes attr)) | ||
| 2377 | ;; If file does not exist, say it is not modified | ||
| 2378 | ;; if and only if that agrees with the buffer's record. | ||
| 2379 | (t (equal mt '(-1 65535)))))))))) | ||
| 2379 | 2380 | ||
| 2380 | (defadvice clear-visited-file-modtime (after tramp activate) | 2381 | (defadvice clear-visited-file-modtime (after tramp activate) |
| 2381 | "Set `tramp-buffer-file-attributes' back to nil. | 2382 | "Set `tramp-buffer-file-attributes' back to nil. |
diff --git a/lisp/newcomment.el b/lisp/newcomment.el index 5711e7903ad..5a7b7666e89 100644 --- a/lisp/newcomment.el +++ b/lisp/newcomment.el | |||
| @@ -1087,6 +1087,7 @@ Else, call `comment-indent'." | |||
| 1087 | (insert (comment-padleft comment-end add))) | 1087 | (insert (comment-padleft comment-end add))) |
| 1088 | (indent-according-to-mode)))))) | 1088 | (indent-according-to-mode)))))) |
| 1089 | 1089 | ||
| 1090 | ;;;###autoload | ||
| 1090 | (defcustom comment-auto-fill-only-comments nil | 1091 | (defcustom comment-auto-fill-only-comments nil |
| 1091 | "Non-nil means to only auto-fill inside comments. | 1092 | "Non-nil means to only auto-fill inside comments. |
| 1092 | This has no effect in modes that do not define a comment syntax." | 1093 | This has no effect in modes that do not define a comment syntax." |
diff --git a/lisp/outline.el b/lisp/outline.el index 0f7d3b627b0..2d2663b12f2 100644 --- a/lisp/outline.el +++ b/lisp/outline.el | |||
| @@ -808,7 +808,7 @@ Show the heading too, if it is currently invisible." | |||
| 808 | (save-excursion | 808 | (save-excursion |
| 809 | (outline-back-to-heading t) | 809 | (outline-back-to-heading t) |
| 810 | (show-entry) | 810 | (show-entry) |
| 811 | (while (condition-case nil (progn (outline-up-heading 1) (not (bobp))) | 811 | (while (condition-case nil (progn (outline-up-heading 1 t) (not (bobp))) |
| 812 | (error nil)) | 812 | (error nil)) |
| 813 | (outline-flag-region (1- (point)) | 813 | (outline-flag-region (1- (point)) |
| 814 | (save-excursion (forward-line 1) (point)) | 814 | (save-excursion (forward-line 1) (point)) |
diff --git a/lisp/paths.el b/lisp/paths.el index 925dbb06e97..5611246ac8b 100644 --- a/lisp/paths.el +++ b/lisp/paths.el | |||
| @@ -101,11 +101,12 @@ This variable `Info-default-directory-list' is used as the default | |||
| 101 | for initializing `Info-directory-list' when Info is started, unless | 101 | for initializing `Info-directory-list' when Info is started, unless |
| 102 | the environment variable INFOPATH is set.") | 102 | the environment variable INFOPATH is set.") |
| 103 | 103 | ||
| 104 | (defvar news-path | 104 | (defvar news-directory |
| 105 | (if (file-exists-p "/usr/spool/news/") | 105 | (if (file-exists-p "/usr/spool/news/") |
| 106 | "/usr/spool/news/" | 106 | "/usr/spool/news/" |
| 107 | "/var/spool/news/") | 107 | "/var/spool/news/") |
| 108 | "The root directory below which all news files are stored.") | 108 | "The root directory below which all news files are stored.") |
| 109 | (defalias 'news-path 'news-directory) | ||
| 109 | 110 | ||
| 110 | (defvar news-inews-program | 111 | (defvar news-inews-program |
| 111 | (cond ((file-exists-p "/usr/bin/inews") "/usr/bin/inews") | 112 | (cond ((file-exists-p "/usr/bin/inews") "/usr/bin/inews") |
| @@ -136,7 +137,7 @@ The `ORGANIZATION' environment variable is used instead if defined.") | |||
| 136 | :group 'rmail | 137 | :group 'rmail |
| 137 | :version "21.1") | 138 | :version "21.1") |
| 138 | 139 | ||
| 139 | (defconst rmail-spool-directory | 140 | (defvar rmail-spool-directory |
| 140 | (cond ((string-match "^[^-]+-[^-]+-sco3.2v4" system-configuration) | 141 | (cond ((string-match "^[^-]+-[^-]+-sco3.2v4" system-configuration) |
| 141 | "/usr/spool/mail/") | 142 | "/usr/spool/mail/") |
| 142 | ;; On The Bull DPX/2 /usr/spool/mail is used although | 143 | ;; On The Bull DPX/2 /usr/spool/mail is used although |
| @@ -157,15 +158,17 @@ The `ORGANIZATION' environment variable is used instead if defined.") | |||
| 157 | "Name of directory used by system mailer for delivering new mail. | 158 | "Name of directory used by system mailer for delivering new mail. |
| 158 | Its name should end with a slash.") | 159 | Its name should end with a slash.") |
| 159 | 160 | ||
| 160 | (defconst sendmail-program | 161 | (defcustom sendmail-program |
| 161 | (cond | 162 | (cond |
| 162 | ((file-exists-p "/usr/sbin/sendmail") "/usr/sbin/sendmail") | 163 | ((file-exists-p "/usr/sbin/sendmail") "/usr/sbin/sendmail") |
| 163 | ((file-exists-p "/usr/lib/sendmail") "/usr/lib/sendmail") | 164 | ((file-exists-p "/usr/lib/sendmail") "/usr/lib/sendmail") |
| 164 | ((file-exists-p "/usr/ucblib/sendmail") "/usr/ucblib/sendmail") | 165 | ((file-exists-p "/usr/ucblib/sendmail") "/usr/ucblib/sendmail") |
| 165 | (t "fakemail")) ;In ../etc, to interface to /bin/mail. | 166 | (t "fakemail")) ;In ../etc, to interface to /bin/mail. |
| 166 | "Program used to send messages.") | 167 | "Program used to send messages." |
| 168 | :group 'mail | ||
| 169 | :type 'file) | ||
| 167 | 170 | ||
| 168 | (defconst remote-shell-program | 171 | (defcustom remote-shell-program |
| 169 | (cond | 172 | (cond |
| 170 | ;; Some systems use rsh for the remote shell; others use that name for the | 173 | ;; Some systems use rsh for the remote shell; others use that name for the |
| 171 | ;; restricted shell and use remsh for the remote shell. Let's try to guess | 174 | ;; restricted shell and use remsh for the remote shell. Let's try to guess |
| @@ -186,14 +189,16 @@ Its name should end with a slash.") | |||
| 186 | ((file-exists-p "/bin/rsh") "/bin/rsh") | 189 | ((file-exists-p "/bin/rsh") "/bin/rsh") |
| 187 | ((file-exists-p "/usr/bin/rsh") "/usr/bin/rsh") | 190 | ((file-exists-p "/usr/bin/rsh") "/usr/bin/rsh") |
| 188 | (t "rsh")) | 191 | (t "rsh")) |
| 189 | "File name for remote-shell program (often rsh or remsh).") | 192 | "File name for remote-shell program (often rsh or remsh)." |
| 193 | :group 'environment | ||
| 194 | :type 'file) | ||
| 190 | 195 | ||
| 191 | (defconst term-file-prefix (if (eq system-type 'vax-vms) "[.term]" "term/") "\ | 196 | (defvar term-file-prefix (if (eq system-type 'vax-vms) "[.term]" "term/") "\ |
| 192 | If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\"))) | 197 | If non-nil, Emacs startup does (load (concat term-file-prefix (getenv \"TERM\"))) |
| 193 | You may set this variable to nil in your `.emacs' file if you do not wish | 198 | You may set this variable to nil in your `.emacs' file if you do not wish |
| 194 | the terminal-initialization file to be loaded.") | 199 | the terminal-initialization file to be loaded.") |
| 195 | 200 | ||
| 196 | (defconst abbrev-file-name | 201 | (defvar abbrev-file-name |
| 197 | (if (eq system-type 'vax-vms) | 202 | (if (eq system-type 'vax-vms) |
| 198 | "~/abbrev.def" | 203 | "~/abbrev.def" |
| 199 | (convert-standard-filename "~/.abbrev_defs")) | 204 | (convert-standard-filename "~/.abbrev_defs")) |
diff --git a/lisp/pcvs-defs.el b/lisp/pcvs-defs.el index cd379afab77..6bdd6bb6dd8 100644 --- a/lisp/pcvs-defs.el +++ b/lisp/pcvs-defs.el | |||
| @@ -374,7 +374,7 @@ This variable is buffer local and only used in the *cvs* buffer.") | |||
| 374 | ("r" . cvs-mode-remove) | 374 | ("r" . cvs-mode-remove) |
| 375 | ("s" . cvs-mode-status) | 375 | ("s" . cvs-mode-status) |
| 376 | ("t" . cvs-mode-tag) | 376 | ("t" . cvs-mode-tag) |
| 377 | ;;("v" . cvs-mode-diff-vendor) | 377 | ("v" . cvs-mode-view-file) |
| 378 | ("x" . cvs-mode-remove-handled) | 378 | ("x" . cvs-mode-remove-handled) |
| 379 | ;; cvstree bindings | 379 | ;; cvstree bindings |
| 380 | ("+" . cvs-mode-tree) | 380 | ("+" . cvs-mode-tree) |
diff --git a/lisp/pcvs-util.el b/lisp/pcvs-util.el index 5d9d0d215af..a4eda95e23e 100644 --- a/lisp/pcvs-util.el +++ b/lisp/pcvs-util.el | |||
| @@ -104,11 +104,12 @@ BUF is assumed to be a temporary buffer used from the buffer MAINBUF." | |||
| 104 | (condition-case () | 104 | (condition-case () |
| 105 | (delete-window win) | 105 | (delete-window win) |
| 106 | (error (iconify-frame (window-frame win)))) | 106 | (error (iconify-frame (window-frame win)))) |
| 107 | (if (and mainbuf (get-buffer-window mainbuf)) | 107 | ;;; (if (and mainbuf (get-buffer-window mainbuf)) |
| 108 | ;; FIXME: if the buffer popped into a pre-existing window, | 108 | ;;; ;; FIXME: if the buffer popped into a pre-existing window, |
| 109 | ;; we don't want to delete that window. | 109 | ;;; ;; we don't want to delete that window. |
| 110 | t ;;(delete-window win) | 110 | ;;; t ;;(delete-window win) |
| 111 | )))) | 111 | ;;; ) |
| 112 | ))) | ||
| 112 | (with-current-buffer buf | 113 | (with-current-buffer buf |
| 113 | (bury-buffer (unless (and (eq buf (window-buffer (selected-window))) | 114 | (bury-buffer (unless (and (eq buf (window-buffer (selected-window))) |
| 114 | (not (window-dedicated-p (selected-window)))) | 115 | (not (window-dedicated-p (selected-window)))) |
diff --git a/lisp/pcvs.el b/lisp/pcvs.el index 120acbbc2bc..0a666927c52 100644 --- a/lisp/pcvs.el +++ b/lisp/pcvs.el | |||
| @@ -1925,6 +1925,18 @@ to hear about anymore." | |||
| 1925 | (cvs-mode-find-file e 'dont-select)) | 1925 | (cvs-mode-find-file e 'dont-select)) |
| 1926 | 1926 | ||
| 1927 | 1927 | ||
| 1928 | (defun cvs-mode-view-file (e) | ||
| 1929 | "View the file." | ||
| 1930 | (interactive (list last-input-event)) | ||
| 1931 | (cvs-mode-find-file e nil t)) | ||
| 1932 | |||
| 1933 | |||
| 1934 | (defun cvs-mode-view-file-other-window (e) | ||
| 1935 | "View the file." | ||
| 1936 | (interactive (list last-input-event)) | ||
| 1937 | (cvs-mode-find-file e t t)) | ||
| 1938 | |||
| 1939 | |||
| 1928 | (defun cvs-find-modif (fi) | 1940 | (defun cvs-find-modif (fi) |
| 1929 | (with-temp-buffer | 1941 | (with-temp-buffer |
| 1930 | (call-process cvs-program nil (current-buffer) nil | 1942 | (call-process cvs-program nil (current-buffer) nil |
| @@ -1935,7 +1947,7 @@ to hear about anymore." | |||
| 1935 | 1))) | 1947 | 1))) |
| 1936 | 1948 | ||
| 1937 | 1949 | ||
| 1938 | (defun cvs-mode-find-file (e &optional other) | 1950 | (defun cvs-mode-find-file (e &optional other view) |
| 1939 | "Select a buffer containing the file. | 1951 | "Select a buffer containing the file. |
| 1940 | With a prefix, opens the buffer in an OTHER window." | 1952 | With a prefix, opens the buffer in an OTHER window." |
| 1941 | (interactive (list last-input-event current-prefix-arg)) | 1953 | (interactive (list last-input-event current-prefix-arg)) |
| @@ -1963,8 +1975,10 @@ With a prefix, opens the buffer in an OTHER window." | |||
| 1963 | (let ((buf (if rev (cvs-retrieve-revision fi rev) | 1975 | (let ((buf (if rev (cvs-retrieve-revision fi rev) |
| 1964 | (find-file-noselect (cvs-fileinfo->full-path fi))))) | 1976 | (find-file-noselect (cvs-fileinfo->full-path fi))))) |
| 1965 | (funcall (cond ((eq other 'dont-select) 'display-buffer) | 1977 | (funcall (cond ((eq other 'dont-select) 'display-buffer) |
| 1966 | (other 'switch-to-buffer-other-window) | 1978 | (other |
| 1967 | (t 'switch-to-buffer)) | 1979 | (if view 'view-buffer-other-window |
| 1980 | 'switch-to-buffer-other-window)) | ||
| 1981 | (t (if view 'view-buffer 'switch-to-buffer))) | ||
| 1968 | buf) | 1982 | buf) |
| 1969 | (when (and cvs-find-file-and-jump (cvs-applicable-p fi 'diff-base)) | 1983 | (when (and cvs-find-file-and-jump (cvs-applicable-p fi 'diff-base)) |
| 1970 | (goto-line (cvs-find-modif fi))) | 1984 | (goto-line (cvs-find-modif fi))) |
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 2f910608d5c..d90fe77fe28 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el | |||
| @@ -866,20 +866,6 @@ Returns the compilation buffer created." | |||
| 866 | (if (eq mode t) | 866 | (if (eq mode t) |
| 867 | (prog1 "compilation" (require 'comint)) | 867 | (prog1 "compilation" (require 'comint)) |
| 868 | (replace-regexp-in-string "-mode$" "" (symbol-name mode)))) | 868 | (replace-regexp-in-string "-mode$" "" (symbol-name mode)))) |
| 869 | (process-environment | ||
| 870 | (append | ||
| 871 | compilation-environment | ||
| 872 | (if (if (boundp 'system-uses-terminfo) ; `if' for compiler warning | ||
| 873 | system-uses-terminfo) | ||
| 874 | (list "TERM=dumb" "TERMCAP=" | ||
| 875 | (format "COLUMNS=%d" (window-width))) | ||
| 876 | (list "TERM=emacs" | ||
| 877 | (format "TERMCAP=emacs:co#%d:tc=unknown:" | ||
| 878 | (window-width)))) | ||
| 879 | ;; Set the EMACS variable, but | ||
| 880 | ;; don't override users' setting of $EMACS. | ||
| 881 | (unless (getenv "EMACS") '("EMACS=t")) | ||
| 882 | (copy-sequence process-environment))) | ||
| 883 | cd-path ; in case process-environment contains CDPATH | 869 | cd-path ; in case process-environment contains CDPATH |
| 884 | (thisdir (if (string-match "^\\s *cd\\s +\\(.+?\\)\\s *[;&\n]" command) | 870 | (thisdir (if (string-match "^\\s *cd\\s +\\(.+?\\)\\s *[;&\n]" command) |
| 885 | (substitute-in-file-name (match-string 1 command)) | 871 | (substitute-in-file-name (match-string 1 command)) |
| @@ -903,18 +889,18 @@ Returns the compilation buffer created." | |||
| 903 | (error nil)) | 889 | (error nil)) |
| 904 | (error "Cannot have two processes in `%s' at once" | 890 | (error "Cannot have two processes in `%s' at once" |
| 905 | (buffer-name))))) | 891 | (buffer-name))))) |
| 906 | ;; Clear out the compilation buffer and make it writable. | ||
| 907 | ;; Change its default-directory to the directory where the compilation | ||
| 908 | ;; will happen, and insert a `default-directory' to indicate this. | ||
| 909 | (setq buffer-read-only nil) | ||
| 910 | (buffer-disable-undo (current-buffer)) | 892 | (buffer-disable-undo (current-buffer)) |
| 911 | (erase-buffer) | 893 | ;; Make compilation buffer read-only. The filter can still write it. |
| 912 | (buffer-enable-undo (current-buffer)) | 894 | ;; Clear out the compilation buffer. |
| 913 | (cd thisdir) | 895 | (let ((inhibit-read-only t)) |
| 914 | ;; output a mode setter, for saving and later reloading this buffer | 896 | (erase-buffer) |
| 915 | (insert "-*- mode: " name-of-mode | 897 | ;; Change its default-directory to the directory where the compilation |
| 916 | "; default-directory: " (prin1-to-string default-directory) | 898 | ;; will happen, and insert a `cd' command to indicate this. |
| 917 | " -*-\n" command "\n") | 899 | (setq default-directory thisdir) |
| 900 | ;; output a mode setter, for saving and later reloading this buffer | ||
| 901 | (insert "-*- mode: " name-of-mode | ||
| 902 | "; default-directory: " (prin1-to-string default-directory) | ||
| 903 | " -*-\n" command "\n")) | ||
| 918 | (set-buffer-modified-p nil)) | 904 | (set-buffer-modified-p nil)) |
| 919 | ;; If we're already in the compilation buffer, go to the end | 905 | ;; If we're already in the compilation buffer, go to the end |
| 920 | ;; of the buffer, so point will track the compilation output. | 906 | ;; of the buffer, so point will track the compilation output. |
| @@ -923,70 +909,83 @@ Returns the compilation buffer created." | |||
| 923 | ;; Pop up the compilation buffer. | 909 | ;; Pop up the compilation buffer. |
| 924 | (setq outwin (display-buffer outbuf nil t)) | 910 | (setq outwin (display-buffer outbuf nil t)) |
| 925 | (with-current-buffer outbuf | 911 | (with-current-buffer outbuf |
| 926 | (if (not (eq mode t)) | 912 | (let ((process-environment |
| 927 | (funcall mode) | 913 | (append |
| 928 | (with-no-warnings (comint-mode)) | 914 | compilation-environment |
| 929 | (compilation-shell-minor-mode)) | 915 | (if (if (boundp 'system-uses-terminfo) ; `if' for compiler warning |
| 930 | ;; In what way is it non-ergonomic ? -stef | 916 | system-uses-terminfo) |
| 931 | ;; (toggle-read-only 1) ;;; Non-ergonomic. | 917 | (list "TERM=dumb" "TERMCAP=" |
| 932 | (if highlight-regexp | 918 | (format "COLUMNS=%d" (window-width))) |
| 933 | (set (make-local-variable 'compilation-highlight-regexp) | 919 | (list "TERM=emacs" |
| 934 | highlight-regexp)) | 920 | (format "TERMCAP=emacs:co#%d:tc=unknown:" |
| 935 | (set (make-local-variable 'compilation-arguments) | 921 | (window-width)))) |
| 936 | (list command mode name-function highlight-regexp)) | 922 | ;; Set the EMACS variable, but |
| 937 | (set (make-local-variable 'revert-buffer-function) | 923 | ;; don't override users' setting of $EMACS. |
| 938 | 'compilation-revert-buffer) | 924 | (unless (getenv "EMACS") '("EMACS=t")) |
| 939 | (set-window-start outwin (point-min)) | 925 | (copy-sequence process-environment)))) |
| 940 | (or (eq outwin (selected-window)) | 926 | (if (not (eq mode t)) |
| 941 | (set-window-point outwin (if compilation-scroll-output | 927 | (funcall mode) |
| 942 | (point) | 928 | (setq buffer-read-only nil) |
| 943 | (point-min)))) | 929 | (with-no-warnings (comint-mode)) |
| 944 | ;; The setup function is called before compilation-set-window-height | 930 | (compilation-shell-minor-mode)) |
| 945 | ;; so it can set the compilation-window-height buffer locally. | 931 | (if highlight-regexp |
| 946 | (if compilation-process-setup-function | 932 | (set (make-local-variable 'compilation-highlight-regexp) |
| 947 | (funcall compilation-process-setup-function)) | 933 | highlight-regexp)) |
| 948 | (compilation-set-window-height outwin) | 934 | (set (make-local-variable 'compilation-arguments) |
| 949 | ;; Start the compilation. | 935 | (list command mode name-function highlight-regexp)) |
| 950 | (if (fboundp 'start-process) | 936 | (set (make-local-variable 'revert-buffer-function) |
| 951 | (let ((proc (if (eq mode t) | 937 | 'compilation-revert-buffer) |
| 952 | (get-buffer-process | 938 | (set-window-start outwin (point-min)) |
| 953 | (with-no-warnings | 939 | (or (eq outwin (selected-window)) |
| 954 | (comint-exec outbuf (downcase mode-name) | 940 | (set-window-point outwin (if compilation-scroll-output |
| 955 | shell-file-name nil `("-c" ,command)))) | 941 | (point) |
| 956 | (start-process-shell-command (downcase mode-name) | 942 | (point-min)))) |
| 957 | outbuf command)))) | 943 | ;; The setup function is called before compilation-set-window-height |
| 958 | ;; Make the buffer's mode line show process state. | 944 | ;; so it can set the compilation-window-height buffer locally. |
| 959 | (setq mode-line-process '(":%s")) | 945 | (if compilation-process-setup-function |
| 960 | (set-process-sentinel proc 'compilation-sentinel) | 946 | (funcall compilation-process-setup-function)) |
| 961 | (set-process-filter proc 'compilation-filter) | 947 | (compilation-set-window-height outwin) |
| 962 | (set-marker (process-mark proc) (point) outbuf) | 948 | ;; Start the compilation. |
| 963 | (setq compilation-in-progress | 949 | (if (fboundp 'start-process) |
| 964 | (cons proc compilation-in-progress))) | 950 | (let ((proc (if (eq mode t) |
| 965 | ;; No asynchronous processes available. | 951 | (get-buffer-process |
| 966 | (message "Executing `%s'..." command) | 952 | (with-no-warnings |
| 967 | ;; Fake modeline display as if `start-process' were run. | 953 | (comint-exec outbuf (downcase mode-name) |
| 968 | (setq mode-line-process ":run") | 954 | shell-file-name nil `("-c" ,command)))) |
| 969 | (force-mode-line-update) | 955 | (start-process-shell-command (downcase mode-name) |
| 970 | (sit-for 0) ; Force redisplay | 956 | outbuf command)))) |
| 971 | (let ((status (call-process shell-file-name nil outbuf nil "-c" | 957 | ;; Make the buffer's mode line show process state. |
| 972 | command))) | 958 | (setq mode-line-process '(":%s")) |
| 973 | (cond ((numberp status) | 959 | (set-process-sentinel proc 'compilation-sentinel) |
| 974 | (compilation-handle-exit 'exit status | 960 | (set-process-filter proc 'compilation-filter) |
| 975 | (if (zerop status) | 961 | (set-marker (process-mark proc) (point) outbuf) |
| 976 | "finished\n" | 962 | (setq compilation-in-progress |
| 977 | (format "\ | 963 | (cons proc compilation-in-progress))) |
| 964 | ;; No asynchronous processes available. | ||
| 965 | (message "Executing `%s'..." command) | ||
| 966 | ;; Fake modeline display as if `start-process' were run. | ||
| 967 | (setq mode-line-process ":run") | ||
| 968 | (force-mode-line-update) | ||
| 969 | (sit-for 0) ; Force redisplay | ||
| 970 | (let ((status (call-process shell-file-name nil outbuf nil "-c" | ||
| 971 | command))) | ||
| 972 | (cond ((numberp status) | ||
| 973 | (compilation-handle-exit 'exit status | ||
| 974 | (if (zerop status) | ||
| 975 | "finished\n" | ||
| 976 | (format "\ | ||
| 978 | exited abnormally with code %d\n" | 977 | exited abnormally with code %d\n" |
| 979 | status)))) | 978 | status)))) |
| 980 | ((stringp status) | 979 | ((stringp status) |
| 981 | (compilation-handle-exit 'signal status | 980 | (compilation-handle-exit 'signal status |
| 982 | (concat status "\n"))) | 981 | (concat status "\n"))) |
| 983 | (t | 982 | (t |
| 984 | (compilation-handle-exit 'bizarre status status)))) | 983 | (compilation-handle-exit 'bizarre status status)))) |
| 985 | ;; Without async subprocesses, the buffer is not yet | 984 | ;; Without async subprocesses, the buffer is not yet |
| 986 | ;; fontified, so fontify it now. | 985 | ;; fontified, so fontify it now. |
| 987 | (let ((font-lock-verbose nil)) ; shut up font-lock messages | 986 | (let ((font-lock-verbose nil)) ; shut up font-lock messages |
| 988 | (font-lock-fontify-buffer)) | 987 | (font-lock-fontify-buffer)) |
| 989 | (message "Executing `%s'...done" command))) | 988 | (message "Executing `%s'...done" command)))) |
| 990 | (if (buffer-local-value 'compilation-scroll-output outbuf) | 989 | (if (buffer-local-value 'compilation-scroll-output outbuf) |
| 991 | (save-selected-window | 990 | (save-selected-window |
| 992 | (select-window outwin) | 991 | (select-window outwin) |
| @@ -1108,7 +1107,7 @@ from a different message." | |||
| 1108 | :version "21.4") | 1107 | :version "21.4") |
| 1109 | 1108 | ||
| 1110 | ;;;###autoload | 1109 | ;;;###autoload |
| 1111 | (defun compilation-mode () | 1110 | (defun compilation-mode (&optional name-of-mode) |
| 1112 | "Major mode for compilation log buffers. | 1111 | "Major mode for compilation log buffers. |
| 1113 | \\<compilation-mode-map>To visit the source for a line-numbered error, | 1112 | \\<compilation-mode-map>To visit the source for a line-numbered error, |
| 1114 | move point to the error message line and type \\[compile-goto-error]. | 1113 | move point to the error message line and type \\[compile-goto-error]. |
| @@ -1121,7 +1120,7 @@ Runs `compilation-mode-hook' with `run-hooks' (which see). | |||
| 1121 | (kill-all-local-variables) | 1120 | (kill-all-local-variables) |
| 1122 | (use-local-map compilation-mode-map) | 1121 | (use-local-map compilation-mode-map) |
| 1123 | (setq major-mode 'compilation-mode | 1122 | (setq major-mode 'compilation-mode |
| 1124 | mode-name "Compilation") | 1123 | mode-name (or name-of-mode "Compilation")) |
| 1125 | (set (make-local-variable 'page-delimiter) | 1124 | (set (make-local-variable 'page-delimiter) |
| 1126 | compilation-page-delimiter) | 1125 | compilation-page-delimiter) |
| 1127 | (compilation-setup) | 1126 | (compilation-setup) |
| @@ -1187,6 +1186,7 @@ If nil, use the beginning of buffer.") | |||
| 1187 | "Prepare the buffer for the compilation parsing commands to work. | 1186 | "Prepare the buffer for the compilation parsing commands to work. |
| 1188 | Optional argument MINOR indicates this is called from | 1187 | Optional argument MINOR indicates this is called from |
| 1189 | `compilation-minor-mode'." | 1188 | `compilation-minor-mode'." |
| 1189 | (setq buffer-read-only t) | ||
| 1190 | (make-local-variable 'compilation-current-error) | 1190 | (make-local-variable 'compilation-current-error) |
| 1191 | (make-local-variable 'compilation-messages-start) | 1191 | (make-local-variable 'compilation-messages-start) |
| 1192 | (make-local-variable 'compilation-error-screen-columns) | 1192 | (make-local-variable 'compilation-error-screen-columns) |
| @@ -1248,7 +1248,7 @@ Turning the mode on runs the normal hook `compilation-minor-mode-hook'." | |||
| 1248 | 1248 | ||
| 1249 | (defun compilation-handle-exit (process-status exit-status msg) | 1249 | (defun compilation-handle-exit (process-status exit-status msg) |
| 1250 | "Write MSG in the current buffer and hack its mode-line-process." | 1250 | "Write MSG in the current buffer and hack its mode-line-process." |
| 1251 | (let ((buffer-read-only nil) | 1251 | (let ((inhibit-read-only t) |
| 1252 | (status (if compilation-exit-message-function | 1252 | (status (if compilation-exit-message-function |
| 1253 | (funcall compilation-exit-message-function | 1253 | (funcall compilation-exit-message-function |
| 1254 | process-status exit-status msg) | 1254 | process-status exit-status msg) |
diff --git a/lisp/server.el b/lisp/server.el index 161c1f2b5d9..baf07a87186 100644 --- a/lisp/server.el +++ b/lisp/server.el | |||
| @@ -946,6 +946,8 @@ With prefix arg, silently save all file-visiting buffers, then kill." | |||
| 946 | (remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function) | 946 | (remove-hook 'kill-buffer-query-functions 'server-kill-buffer-query-function) |
| 947 | (remove-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function) | 947 | (remove-hook 'kill-emacs-query-functions 'server-kill-emacs-query-function) |
| 948 | (remove-hook 'kill-buffer-hook 'server-kill-buffer)) | 948 | (remove-hook 'kill-buffer-hook 'server-kill-buffer)) |
| 949 | |||
| 950 | (add-hook 'server-unload-hook 'server-unload-hook) | ||
| 949 | 951 | ||
| 950 | (provide 'server) | 952 | (provide 'server) |
| 951 | 953 | ||
diff --git a/lisp/shadowfile.el b/lisp/shadowfile.el index b3427ac59e5..f047223cbae 100644 --- a/lisp/shadowfile.el +++ b/lisp/shadowfile.el | |||
| @@ -837,6 +837,8 @@ look for files that have been changed and need to be copied to other systems." | |||
| 837 | (symbol-function 'shadow-orig-save-buffers-kill-emacs))) | 837 | (symbol-function 'shadow-orig-save-buffers-kill-emacs))) |
| 838 | (remove-hook 'write-file-hooks 'shadow-add-to-todo)) | 838 | (remove-hook 'write-file-hooks 'shadow-add-to-todo)) |
| 839 | 839 | ||
| 840 | (add-hook 'shadowfile-unload-hook 'shadowfile-unload-hook) | ||
| 841 | |||
| 840 | (provide 'shadowfile) | 842 | (provide 'shadowfile) |
| 841 | 843 | ||
| 842 | ;;; arch-tag: e2f4cdd7-2bab-4def-9130-9e69b412b79e | 844 | ;;; arch-tag: e2f4cdd7-2bab-4def-9130-9e69b412b79e |
diff --git a/lisp/startup.el b/lisp/startup.el index 1cee4e9d013..3fab203cf59 100644 --- a/lisp/startup.el +++ b/lisp/startup.el | |||
| @@ -1159,7 +1159,7 @@ where FACE is a valid face specification, as it can be used with | |||
| 1159 | (emacs-version) | 1159 | (emacs-version) |
| 1160 | "\n" | 1160 | "\n" |
| 1161 | :face '(variable-pitch :height 0.5) | 1161 | :face '(variable-pitch :height 0.5) |
| 1162 | "Copyright (C) 2002 Free Software Foundation, Inc.") | 1162 | "Copyright (C) 2004 Free Software Foundation, Inc.") |
| 1163 | (and auto-save-list-file-prefix | 1163 | (and auto-save-list-file-prefix |
| 1164 | ;; Don't signal an error if the | 1164 | ;; Don't signal an error if the |
| 1165 | ;; directory for auto-save-list files | 1165 | ;; directory for auto-save-list files |
| @@ -1325,7 +1325,7 @@ More Manuals / Ordering Manuals How to order printed manuals from the FSF. | |||
| 1325 | ") | 1325 | ") |
| 1326 | (insert "\n\n" (emacs-version) | 1326 | (insert "\n\n" (emacs-version) |
| 1327 | " | 1327 | " |
| 1328 | Copyright (C) 2002 Free Software Foundation, Inc.")) | 1328 | Copyright (C) 2004 Free Software Foundation, Inc.")) |
| 1329 | 1329 | ||
| 1330 | ;; No mouse menus, so give help using kbd commands. | 1330 | ;; No mouse menus, so give help using kbd commands. |
| 1331 | 1331 | ||
| @@ -1373,7 +1373,7 @@ If you have no Meta key, you may instead type ESC followed by the character.)") | |||
| 1373 | 1373 | ||
| 1374 | (insert "\n\n" (emacs-version) | 1374 | (insert "\n\n" (emacs-version) |
| 1375 | " | 1375 | " |
| 1376 | Copyright (C) 2002 Free Software Foundation, Inc.") | 1376 | Copyright (C) 2004 Free Software Foundation, Inc.") |
| 1377 | 1377 | ||
| 1378 | (if (and (eq (key-binding "\C-h\C-c") 'describe-copying) | 1378 | (if (and (eq (key-binding "\C-h\C-c") 'describe-copying) |
| 1379 | (eq (key-binding "\C-h\C-d") 'describe-distribution) | 1379 | (eq (key-binding "\C-h\C-d") 'describe-distribution) |
diff --git a/lisp/strokes.el b/lisp/strokes.el index cd3e82c4d3c..57f1e3355b2 100644 --- a/lisp/strokes.el +++ b/lisp/strokes.el | |||
| @@ -1354,7 +1354,8 @@ If STROKES-MAP is not given, `strokes-global-map' will be used instead." | |||
| 1354 | :color-symbols | 1354 | :color-symbols |
| 1355 | `(("foreground" | 1355 | `(("foreground" |
| 1356 | . ,(frame-parameter nil 'foreground-color)))))) | 1356 | . ,(frame-parameter nil 'foreground-color)))))) |
| 1357 | finally do (kill-region (1+ (point)) (point-max))) | 1357 | finally do (unless (eobp) |
| 1358 | (kill-region (1+ (point)) (point-max)))) | ||
| 1358 | (view-buffer "*Strokes List*" nil) | 1359 | (view-buffer "*Strokes List*" nil) |
| 1359 | (set (make-local-variable 'view-mode-map) | 1360 | (set (make-local-variable 'view-mode-map) |
| 1360 | (let ((map (copy-keymap view-mode-map))) | 1361 | (let ((map (copy-keymap view-mode-map))) |
| @@ -1745,6 +1746,8 @@ Store XPM in buffer BUFNAME if supplied \(default is ` *strokes-xpm*'\)" | |||
| 1745 | (strokes-mode -1) | 1746 | (strokes-mode -1) |
| 1746 | (remove-hook 'kill-emacs-query-functions 'strokes-prompt-user-save-strokes)) | 1747 | (remove-hook 'kill-emacs-query-functions 'strokes-prompt-user-save-strokes)) |
| 1747 | 1748 | ||
| 1749 | (add-hooks 'strokes-unload-hook 'strokes-unload-hook) | ||
| 1750 | |||
| 1748 | (run-hooks 'strokes-load-hook) | 1751 | (run-hooks 'strokes-load-hook) |
| 1749 | (provide 'strokes) | 1752 | (provide 'strokes) |
| 1750 | 1753 | ||
diff --git a/lisp/subr.el b/lisp/subr.el index 6860dd57984..a06b136b642 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -1212,51 +1212,59 @@ any other non-digit terminates the character code and is then used as input.")) | |||
| 1212 | code)) | 1212 | code)) |
| 1213 | 1213 | ||
| 1214 | (defun read-passwd (prompt &optional confirm default) | 1214 | (defun read-passwd (prompt &optional confirm default) |
| 1215 | "Read a password, prompting with PROMPT. Echo `.' for each character typed. | 1215 | "Read a password, prompting with PROMPT, and return it. |
| 1216 | End with RET, LFD, or ESC. DEL or C-h rubs out. C-u kills line. | 1216 | If optional CONFIRM is non-nil, read the password twice to make sure. |
| 1217 | If optional CONFIRM is non-nil, read password twice to make sure. | 1217 | Optional DEFAULT is a default password to use instead of empty input. |
| 1218 | Optional DEFAULT is a default password to use instead of empty input." | 1218 | |
| 1219 | (if confirm | 1219 | This function echoes `.' for each character that the user types. |
| 1220 | (let (success) | 1220 | The user ends with RET, LFD, or ESC. DEL or C-h rubs out. C-u kills line. |
| 1221 | (while (not success) | 1221 | C-g quits; if `inhibit-quit' was non-nil around this function, |
| 1222 | (let ((first (read-passwd prompt nil default)) | 1222 | then it returns nil if the user types C-g. |
| 1223 | (second (read-passwd "Confirm password: " nil default))) | 1223 | |
| 1224 | (if (equal first second) | 1224 | Once the caller uses the password, it can erase the password |
| 1225 | (progn | 1225 | by doing (clear-string STRING)." |
| 1226 | (and (arrayp second) (clear-string second)) | 1226 | (with-local-quit |
| 1227 | (setq success first)) | 1227 | (if confirm |
| 1228 | (and (arrayp first) (clear-string first)) | 1228 | (let (success) |
| 1229 | (and (arrayp second) (clear-string second)) | 1229 | (while (not success) |
| 1230 | (message "Password not repeated accurately; please start over") | 1230 | (let ((first (read-passwd prompt nil default)) |
| 1231 | (sit-for 1)))) | 1231 | (second (read-passwd "Confirm password: " nil default))) |
| 1232 | success) | 1232 | (if (equal first second) |
| 1233 | (let ((pass nil) | 1233 | (progn |
| 1234 | (c 0) | 1234 | (and (arrayp second) (clear-string second)) |
| 1235 | (echo-keystrokes 0) | 1235 | (setq success first)) |
| 1236 | (cursor-in-echo-area t)) | 1236 | (and (arrayp first) (clear-string first)) |
| 1237 | (while (progn (message "%s%s" | 1237 | (and (arrayp second) (clear-string second)) |
| 1238 | prompt | 1238 | (message "Password not repeated accurately; please start over") |
| 1239 | (make-string (length pass) ?.)) | 1239 | (sit-for 1)))) |
| 1240 | (setq c (read-char-exclusive nil t)) | 1240 | success) |
| 1241 | (and (/= c ?\r) (/= c ?\n) (/= c ?\e))) | 1241 | (let ((pass nil) |
| 1242 | (clear-this-command-keys) | 1242 | (c 0) |
| 1243 | (if (= c ?\C-u) | 1243 | (echo-keystrokes 0) |
| 1244 | (progn | 1244 | (cursor-in-echo-area t)) |
| 1245 | (and (arrayp pass) (clear-string pass)) | 1245 | (while (progn (message "%s%s" |
| 1246 | (setq pass "")) | 1246 | prompt |
| 1247 | (if (and (/= c ?\b) (/= c ?\177)) | 1247 | (make-string (length pass) ?.)) |
| 1248 | (let* ((new-char (char-to-string c)) | 1248 | (setq c (read-char-exclusive nil t)) |
| 1249 | (new-pass (concat pass new-char))) | 1249 | (and (/= c ?\r) (/= c ?\n) (/= c ?\e))) |
| 1250 | (clear-this-command-keys) | ||
| 1251 | (if (= c ?\C-u) | ||
| 1252 | (progn | ||
| 1250 | (and (arrayp pass) (clear-string pass)) | 1253 | (and (arrayp pass) (clear-string pass)) |
| 1251 | (clear-string new-char) | 1254 | (setq pass "")) |
| 1252 | (setq c ?\0) | 1255 | (if (and (/= c ?\b) (/= c ?\177)) |
| 1253 | (setq pass new-pass)) | 1256 | (let* ((new-char (char-to-string c)) |
| 1254 | (if (> (length pass) 0) | 1257 | (new-pass (concat pass new-char))) |
| 1255 | (let ((new-pass (substring pass 0 -1))) | ||
| 1256 | (and (arrayp pass) (clear-string pass)) | 1258 | (and (arrayp pass) (clear-string pass)) |
| 1257 | (setq pass new-pass)))))) | 1259 | (clear-string new-char) |
| 1258 | (message nil) | 1260 | (setq c ?\0) |
| 1259 | (or pass default "")))) | 1261 | (setq pass new-pass)) |
| 1262 | (if (> (length pass) 0) | ||
| 1263 | (let ((new-pass (substring pass 0 -1))) | ||
| 1264 | (and (arrayp pass) (clear-string pass)) | ||
| 1265 | (setq pass new-pass)))))) | ||
| 1266 | (message nil) | ||
| 1267 | (or pass default ""))))) | ||
| 1260 | 1268 | ||
| 1261 | ;; This should be used by `call-interactively' for `n' specs. | 1269 | ;; This should be used by `call-interactively' for `n' specs. |
| 1262 | (defun read-number (prompt &optional default) | 1270 | (defun read-number (prompt &optional default) |
| @@ -1834,14 +1842,14 @@ See also `with-temp-file' and `with-output-to-string'." | |||
| 1834 | 1842 | ||
| 1835 | (defmacro with-local-quit (&rest body) | 1843 | (defmacro with-local-quit (&rest body) |
| 1836 | "Execute BODY, allowing quits to terminate BODY but not escape further. | 1844 | "Execute BODY, allowing quits to terminate BODY but not escape further. |
| 1837 | When a quit terminates BODY, `with-local-quit' requests another quit when | 1845 | When a quit terminates BODY, `with-local-quit' returns nil but |
| 1838 | it finishes. That quit will be processed in turn, the next time quitting | 1846 | requests another quit. That quit will be processed, the next time quitting |
| 1839 | is again allowed." | 1847 | is allowed once again." |
| 1840 | (declare (debug t) (indent 0)) | 1848 | (declare (debug t) (indent 0)) |
| 1841 | `(condition-case nil | 1849 | `(condition-case nil |
| 1842 | (let ((inhibit-quit nil)) | 1850 | (let ((inhibit-quit nil)) |
| 1843 | ,@body) | 1851 | ,@body) |
| 1844 | (quit (setq quit-flag t)))) | 1852 | (quit (setq quit-flag t) nil))) |
| 1845 | 1853 | ||
| 1846 | (defmacro combine-after-change-calls (&rest body) | 1854 | (defmacro combine-after-change-calls (&rest body) |
| 1847 | "Execute BODY, but don't call the after-change functions till the end. | 1855 | "Execute BODY, but don't call the after-change functions till the end. |
| @@ -2035,11 +2043,12 @@ STRING should be given if the last search was by `string-match' on STRING." | |||
| 2035 | 2043 | ||
| 2036 | (defun looking-back (regexp &optional limit) | 2044 | (defun looking-back (regexp &optional limit) |
| 2037 | "Return non-nil if text before point matches regular expression REGEXP. | 2045 | "Return non-nil if text before point matches regular expression REGEXP. |
| 2038 | Like `looking-at' except backwards and slower. | 2046 | Like `looking-at' except matches before point, and is slower. |
| 2039 | LIMIT if non-nil speeds up the search by specifying how far back the | 2047 | LIMIT if non-nil speeds up the search by specifying how far back the |
| 2040 | match can start." | 2048 | match can start." |
| 2041 | (save-excursion | 2049 | (not (null |
| 2042 | (re-search-backward (concat "\\(?:" regexp "\\)\\=") limit t))) | 2050 | (save-excursion |
| 2051 | (re-search-backward (concat "\\(?:" regexp "\\)\\=") limit t))))) | ||
| 2043 | 2052 | ||
| 2044 | (defconst split-string-default-separators "[ \f\t\n\r\v]+" | 2053 | (defconst split-string-default-separators "[ \f\t\n\r\v]+" |
| 2045 | "The default value of separators for `split-string'. | 2054 | "The default value of separators for `split-string'. |
diff --git a/lisp/term.el b/lisp/term.el index 7b0fd1aaf73..bc816e476e1 100644 --- a/lisp/term.el +++ b/lisp/term.el | |||
| @@ -2,7 +2,8 @@ | |||
| 2 | 2 | ||
| 3 | ;;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2004 Free Software Foundation, Inc. | 3 | ;;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2004 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Per Bothner <bothner@cygnus.com> | 5 | ;; Author: Per Bothner <per@bothner.com> |
| 6 | ;; Maintainer: Dan Nicolaescu <dann@ics.uci.edu>, Per Bothner <per@bothner.com> | ||
| 6 | ;; Based on comint mode written by: Olin Shivers <shivers@cs.cmu.edu> | 7 | ;; Based on comint mode written by: Olin Shivers <shivers@cs.cmu.edu> |
| 7 | ;; Keywords: processes | 8 | ;; Keywords: processes |
| 8 | 9 | ||
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index b98c9fc183d..f0547d6d596 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el | |||
| @@ -1618,10 +1618,11 @@ Global `ispell-quit' set to start location to continue spell session." | |||
| 1618 | (set-buffer (get-buffer-create ispell-choices-buffer)) | 1618 | (set-buffer (get-buffer-create ispell-choices-buffer)) |
| 1619 | (setq mode-line-format (concat "-- %b -- word: " word)) | 1619 | (setq mode-line-format (concat "-- %b -- word: " word)) |
| 1620 | ;; XEmacs: no need for horizontal scrollbar in choices window | 1620 | ;; XEmacs: no need for horizontal scrollbar in choices window |
| 1621 | (and (fboundp 'set-specifier) | 1621 | (with-no-warnings |
| 1622 | (boundp 'horizontal-scrollbar-visible-p) | 1622 | (and (fboundp 'set-specifier) |
| 1623 | (set-specifier horizontal-scrollbar-visible-p nil | 1623 | (boundp 'horizontal-scrollbar-visible-p) |
| 1624 | (cons (current-buffer) nil))) | 1624 | (set-specifier horizontal-scrollbar-visible-p nil |
| 1625 | (cons (current-buffer) nil)))) | ||
| 1625 | (erase-buffer) | 1626 | (erase-buffer) |
| 1626 | (if guess | 1627 | (if guess |
| 1627 | (progn | 1628 | (progn |
| @@ -1871,7 +1872,7 @@ Global `ispell-quit' set to start location to continue spell session." | |||
| 1871 | (if (and ispell-use-framepop-p (fboundp 'framepop-display-buffer)) | 1872 | (if (and ispell-use-framepop-p (fboundp 'framepop-display-buffer)) |
| 1872 | (progn | 1873 | (progn |
| 1873 | (framepop-display-buffer (get-buffer ispell-choices-buffer)) | 1874 | (framepop-display-buffer (get-buffer ispell-choices-buffer)) |
| 1874 | (get-buffer-window ispell-choices-buffer t) | 1875 | ;;; (get-buffer-window ispell-choices-buffer t) |
| 1875 | (select-window (previous-window))) ; *Choices* window | 1876 | (select-window (previous-window))) ; *Choices* window |
| 1876 | ;; standard selection by splitting a small buffer out of this window. | 1877 | ;; standard selection by splitting a small buffer out of this window. |
| 1877 | (let ((choices-window (get-buffer-window ispell-choices-buffer))) | 1878 | (let ((choices-window (get-buffer-window ispell-choices-buffer))) |
| @@ -2355,7 +2356,7 @@ Keeps argument list for future ispell invocations for no async support." | |||
| 2355 | (if extended-char-mode ; ~ extended character mode | 2356 | (if extended-char-mode ; ~ extended character mode |
| 2356 | (ispell-send-string (concat extended-char-mode "\n")))) | 2357 | (ispell-send-string (concat extended-char-mode "\n")))) |
| 2357 | (if ispell-async-processp | 2358 | (if ispell-async-processp |
| 2358 | (process-kill-without-query ispell-process)))) | 2359 | (set-process-query-on-exit-flag ispell-process nil)))) |
| 2359 | 2360 | ||
| 2360 | ;;;###autoload | 2361 | ;;;###autoload |
| 2361 | (defun ispell-kill-ispell (&optional no-error) | 2362 | (defun ispell-kill-ispell (&optional no-error) |
| @@ -3286,19 +3287,23 @@ You can bind this to the key C-c i in GNUS or mail by adding to | |||
| 3286 | (cond | 3287 | (cond |
| 3287 | ((functionp 'sc-cite-regexp) ; sc 3.0 | 3288 | ((functionp 'sc-cite-regexp) ; sc 3.0 |
| 3288 | (concat "\\(" (sc-cite-regexp) "\\)" "\\|" | 3289 | (concat "\\(" (sc-cite-regexp) "\\)" "\\|" |
| 3289 | (ispell-non-empty-string sc-reference-tag-string))) | 3290 | (with-no-warnings |
| 3291 | (ispell-non-empty-string sc-reference-tag-string)))) | ||
| 3290 | ((boundp 'sc-cite-regexp) ; sc 2.3 | 3292 | ((boundp 'sc-cite-regexp) ; sc 2.3 |
| 3291 | (concat "\\(" sc-cite-regexp "\\)" "\\|" | 3293 | (concat "\\(" sc-cite-regexp "\\)" "\\|" |
| 3292 | (ispell-non-empty-string sc-reference-tag-string))) | 3294 | (with-no-warnings |
| 3295 | (ispell-non-empty-string sc-reference-tag-string)))) | ||
| 3293 | ((or (equal major-mode 'news-reply-mode) ;GNUS 4 & below | 3296 | ((or (equal major-mode 'news-reply-mode) ;GNUS 4 & below |
| 3294 | (equal major-mode 'message-mode)) ;GNUS 5 | 3297 | (equal major-mode 'message-mode)) ;GNUS 5 |
| 3295 | (concat "In article <" "\\|" | 3298 | (concat "In article <" "\\|" |
| 3296 | "[^,;&+=\n]+ <[^,;&+=]+> writes:" "\\|" | 3299 | "[^,;&+=\n]+ <[^,;&+=]+> writes:" "\\|" |
| 3297 | message-cite-prefix-regexp "\\|" | 3300 | (with-no-warnings message-cite-prefix-regexp) |
| 3301 | "\\|" | ||
| 3298 | default-prefix)) | 3302 | default-prefix)) |
| 3299 | ((equal major-mode 'mh-letter-mode) ; mh mail message | 3303 | ((equal major-mode 'mh-letter-mode) ; mh mail message |
| 3300 | (concat "[^,;&+=\n]+ writes:" "\\|" | 3304 | (concat "[^,;&+=\n]+ writes:" "\\|" |
| 3301 | (ispell-non-empty-string mh-ins-buf-prefix))) | 3305 | (with-no-warnings |
| 3306 | (ispell-non-empty-string mh-ins-buf-prefix)))) | ||
| 3302 | ((not internal-messagep) ; Assume nn sent us this message. | 3307 | ((not internal-messagep) ; Assume nn sent us this message. |
| 3303 | (concat "In [a-zA-Z.]+ you write:" "\\|" | 3308 | (concat "In [a-zA-Z.]+ you write:" "\\|" |
| 3304 | "In <[^,;&+=]+> [^,;&+=]+ writes:" "\\|" | 3309 | "In <[^,;&+=]+> [^,;&+=]+ writes:" "\\|" |
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 91a6c869a21..87f818cd70d 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog | |||
| @@ -1,3 +1,25 @@ | |||
| 1 | 2004-10-16 Richard M. Stallman <rms@gnu.org> | ||
| 2 | |||
| 3 | * url.el (url-do-setup): Don't set url-passwd-entry-func. | ||
| 4 | |||
| 5 | * url-vars.el (url-passwd-entry-func): Var deleted. | ||
| 6 | (mm-mime-mule-charset-alist): Remove compatibility code for old Gnus. | ||
| 7 | (url-weekday-alist): Renamed from weekday-alist. | ||
| 8 | (url-monthabbrev-alist): Renamed from monthabbrev-alist. | ||
| 9 | (url-vars-unload-hook): Initialize hook var to hold the function. | ||
| 10 | |||
| 11 | * url-util.el (url-get-normalized-date): Use | ||
| 12 | url-weekday-alist and url-monthabbrev-alist. | ||
| 13 | |||
| 14 | * url-misc.el: Load cl at compile time. | ||
| 15 | |||
| 16 | * url-mailto.el: Don't load cl. | ||
| 17 | (url-mailto): Fix call to `push'. | ||
| 18 | |||
| 19 | * url-gw.el (url-open-telnet): Use read-passwd. | ||
| 20 | |||
| 21 | * url-auth.el (url-basic-auth, url-digest-auth): Use read-passwd. | ||
| 22 | |||
| 1 | 2004-10-12 Simon Josefsson <jas@extundo.com> | 23 | 2004-10-12 Simon Josefsson <jas@extundo.com> |
| 2 | 24 | ||
| 3 | * url-vars.el (url-gateway-method): Add new method `tls'. | 25 | * url-vars.el (url-gateway-method): Add new method `tls'. |
diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el index 39bb730bebc..e92fdd1542c 100644 --- a/lisp/url/url-auth.el +++ b/lisp/url/url-auth.el | |||
| @@ -78,7 +78,7 @@ instead of the pathname inheritance method." | |||
| 78 | ((and prompt (not byserv)) | 78 | ((and prompt (not byserv)) |
| 79 | (setq user (read-string (url-auth-user-prompt url realm) | 79 | (setq user (read-string (url-auth-user-prompt url realm) |
| 80 | (user-real-login-name)) | 80 | (user-real-login-name)) |
| 81 | pass (funcall url-passwd-entry-func "Password: ")) | 81 | pass (read-passwd "Password: ")) |
| 82 | (set url-basic-auth-storage | 82 | (set url-basic-auth-storage |
| 83 | (cons (list server | 83 | (cons (list server |
| 84 | (cons path | 84 | (cons path |
| @@ -102,7 +102,7 @@ instead of the pathname inheritance method." | |||
| 102 | (progn | 102 | (progn |
| 103 | (setq user (read-string (url-auth-user-prompt url realm) | 103 | (setq user (read-string (url-auth-user-prompt url realm) |
| 104 | (user-real-login-name)) | 104 | (user-real-login-name)) |
| 105 | pass (funcall url-passwd-entry-func "Password: ") | 105 | pass (read-passwd "Password: ") |
| 106 | retval (base64-encode-string (format "%s:%s" user pass)) | 106 | retval (base64-encode-string (format "%s:%s" user pass)) |
| 107 | byserv (assoc server (symbol-value url-basic-auth-storage))) | 107 | byserv (assoc server (symbol-value url-basic-auth-storage))) |
| 108 | (setcdr byserv | 108 | (setcdr byserv |
| @@ -160,7 +160,7 @@ instead of hostname:portnum." | |||
| 160 | ((and prompt (not byserv)) | 160 | ((and prompt (not byserv)) |
| 161 | (setq user (read-string (url-auth-user-prompt url realm) | 161 | (setq user (read-string (url-auth-user-prompt url realm) |
| 162 | (user-real-login-name)) | 162 | (user-real-login-name)) |
| 163 | pass (funcall url-passwd-entry-func "Password: ") | 163 | pass (read-passwd "Password: ") |
| 164 | url-digest-auth-storage | 164 | url-digest-auth-storage |
| 165 | (cons (list server | 165 | (cons (list server |
| 166 | (cons path | 166 | (cons path |
| @@ -187,7 +187,7 @@ instead of hostname:portnum." | |||
| 187 | (progn | 187 | (progn |
| 188 | (setq user (read-string (url-auth-user-prompt url realm) | 188 | (setq user (read-string (url-auth-user-prompt url realm) |
| 189 | (user-real-login-name)) | 189 | (user-real-login-name)) |
| 190 | pass (funcall url-passwd-entry-func "Password: ") | 190 | pass (read-passwd "Password: ") |
| 191 | retval (setq retval | 191 | retval (setq retval |
| 192 | (cons user | 192 | (cons user |
| 193 | (url-digest-auth-create-key | 193 | (url-digest-auth-create-key |
diff --git a/lisp/url/url-gw.el b/lisp/url/url-gw.el index 608827d7cee..933dd161004 100644 --- a/lisp/url/url-gw.el +++ b/lisp/url/url-gw.el | |||
| @@ -186,7 +186,7 @@ linked Emacs under SunOS 4.x" | |||
| 186 | proc (concat | 186 | proc (concat |
| 187 | (or url-gateway-telnet-password | 187 | (or url-gateway-telnet-password |
| 188 | (setq url-gateway-telnet-password | 188 | (setq url-gateway-telnet-password |
| 189 | (funcall url-passwd-entry-func "Password: "))) | 189 | (read-passwd "Password: "))) |
| 190 | "\n")) | 190 | "\n")) |
| 191 | (erase-buffer) | 191 | (erase-buffer) |
| 192 | (url-wait-for-string url-gateway-prompt-pattern proc) | 192 | (url-wait-for-string url-gateway-prompt-pattern proc) |
diff --git a/lisp/url/url-mailto.el b/lisp/url/url-mailto.el index bcb6bad4179..f5192bcb03f 100644 --- a/lisp/url/url-mailto.el +++ b/lisp/url/url-mailto.el | |||
| @@ -25,7 +25,6 @@ | |||
| 25 | 25 | ||
| 26 | ;;; Code: | 26 | ;;; Code: |
| 27 | 27 | ||
| 28 | (eval-when-compile (require 'cl)) | ||
| 29 | (require 'url-vars) | 28 | (require 'url-vars) |
| 30 | (require 'url-parse) | 29 | (require 'url-parse) |
| 31 | (require 'url-util) | 30 | (require 'url-util) |
| @@ -85,7 +84,7 @@ | |||
| 85 | (setq args (cons (list "x-url-from" source-url) args))) | 84 | (setq args (cons (list "x-url-from" source-url) args))) |
| 86 | 85 | ||
| 87 | (if (assoc "to" args) | 86 | (if (assoc "to" args) |
| 88 | (push to (cdr (assoc "to" args))) | 87 | (push (cdr (assoc "to" args)) to) |
| 89 | (setq args (cons (list "to" to) args))) | 88 | (setq args (cons (list "to" to) args))) |
| 90 | (setq subject (cdr-safe (assoc "subject" args))) | 89 | (setq subject (cdr-safe (assoc "subject" args))) |
| 91 | (if (fboundp url-mail-command) (funcall url-mail-command) (mail)) | 90 | (if (fboundp url-mail-command) (funcall url-mail-command) (mail)) |
diff --git a/lisp/url/url-misc.el b/lisp/url/url-misc.el index ff2f1282137..ff18ef9b863 100644 --- a/lisp/url/url-misc.el +++ b/lisp/url/url-misc.el | |||
| @@ -22,6 +22,7 @@ | |||
| 22 | ;;; Boston, MA 02111-1307, USA. | 22 | ;;; Boston, MA 02111-1307, USA. |
| 23 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 23 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 24 | 24 | ||
| 25 | (eval-when-compile (require 'cl)) | ||
| 25 | (require 'url-vars) | 26 | (require 'url-vars) |
| 26 | (require 'url-parse) | 27 | (require 'url-parse) |
| 27 | (autoload 'Info-goto-node "info" "" t) | 28 | (autoload 'Info-goto-node "info" "" t) |
diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el index 5d1f73e0d5d..1d0bfcf0c48 100644 --- a/lisp/url/url-util.el +++ b/lisp/url/url-util.el | |||
| @@ -192,13 +192,13 @@ Will not do anything if `url-show-status' is nil." | |||
| 192 | (nth 1 (current-time-zone)) | 192 | (nth 1 (current-time-zone)) |
| 193 | "GMT")) | 193 | "GMT")) |
| 194 | (parsed (timezone-parse-date gmt)) | 194 | (parsed (timezone-parse-date gmt)) |
| 195 | (day (cdr-safe (assoc (substring raw 0 3) weekday-alist))) | 195 | (day (cdr-safe (assoc (substring raw 0 3) url-weekday-alist))) |
| 196 | (year nil) | 196 | (year nil) |
| 197 | (month (car | 197 | (month (car |
| 198 | (rassoc | 198 | (rassoc |
| 199 | (string-to-int (aref parsed 1)) monthabbrev-alist))) | 199 | (string-to-int (aref parsed 1)) url-monthabbrev-alist))) |
| 200 | ) | 200 | ) |
| 201 | (setq day (or (car-safe (rassoc day weekday-alist)) | 201 | (setq day (or (car-safe (rassoc day url-weekday-alist)) |
| 202 | (substring raw 0 3)) | 202 | (substring raw 0 3)) |
| 203 | year (aref parsed 0)) | 203 | year (aref parsed 0)) |
| 204 | ;; This is needed for plexus servers, or the server will hang trying to | 204 | ;; This is needed for plexus servers, or the server will hang trying to |
diff --git a/lisp/url/url-vars.el b/lisp/url/url-vars.el index a33d8ba43e3..97a9b8dc252 100644 --- a/lisp/url/url-vars.el +++ b/lisp/url/url-vars.el | |||
| @@ -191,19 +191,6 @@ from the ACCESS_proxy environment variables." | |||
| 191 | (string :tag "Proxy"))) | 191 | (string :tag "Proxy"))) |
| 192 | :group 'url) | 192 | :group 'url) |
| 193 | 193 | ||
| 194 | (defcustom url-passwd-entry-func nil | ||
| 195 | "*Symbol indicating which function to call to read in a password. | ||
| 196 | It will be set up depending on whether you are running EFS or ange-ftp | ||
| 197 | at startup if it is nil. This function should accept the prompt | ||
| 198 | string as its first argument, and the default value as its second | ||
| 199 | argument." | ||
| 200 | :type '(choice (const :tag "Guess" :value nil) | ||
| 201 | (const :tag "Use Ange-FTP" :value ange-ftp-read-passwd) | ||
| 202 | (const :tag "Use EFS" :value efs-read-passwd) | ||
| 203 | (const :tag "Use Password Package" :value read-passwd) | ||
| 204 | (function :tag "Other")) | ||
| 205 | :group 'url-hairy) | ||
| 206 | |||
| 207 | (defcustom url-standalone-mode nil | 194 | (defcustom url-standalone-mode nil |
| 208 | "*Rely solely on the cache?" | 195 | "*Rely solely on the cache?" |
| 209 | :type 'boolean | 196 | :type 'boolean |
| @@ -240,24 +227,6 @@ Should be an assoc list of headers/contents.") | |||
| 240 | (defvar url-mime-encoding-string nil | 227 | (defvar url-mime-encoding-string nil |
| 241 | "*String to send in the Accept-encoding: field in HTTP requests.") | 228 | "*String to send in the Accept-encoding: field in HTTP requests.") |
| 242 | 229 | ||
| 243 | ;; `mm-mime-mule-charset-alist' in Gnus 5.8/9 contains elements whose | ||
| 244 | ;; cars aren't valid MIME charsets/coding systems, at least in Emacs. | ||
| 245 | ;; This gets it correct by construction in Emacs. Fixme: DTRT for | ||
| 246 | ;; XEmacs -- its `coding-system-list' doesn't have the BASE-ONLY arg. | ||
| 247 | (when (and (not (featurep 'xemacs)) | ||
| 248 | (fboundp 'coding-system-list)) | ||
| 249 | (setq mm-mime-mule-charset-alist | ||
| 250 | (apply | ||
| 251 | 'nconc | ||
| 252 | (mapcar | ||
| 253 | (lambda (cs) | ||
| 254 | (when (and (coding-system-get cs 'mime-charset) | ||
| 255 | (not (eq t (coding-system-get cs 'safe-charsets)))) | ||
| 256 | (list (cons (coding-system-get cs 'mime-charset) | ||
| 257 | (delq 'ascii | ||
| 258 | (coding-system-get cs 'safe-charsets)))))) | ||
| 259 | (coding-system-list 'base-only))))) | ||
| 260 | |||
| 261 | ;; Perhaps the first few should actually be given decreasing `q's and | 230 | ;; Perhaps the first few should actually be given decreasing `q's and |
| 262 | ;; the list should be trimmed significantly. | 231 | ;; the list should be trimmed significantly. |
| 263 | ;; Fixme: do something sane if we don't have `sort-coding-systems' | 232 | ;; Fixme: do something sane if we don't have `sort-coding-systems' |
| @@ -381,14 +350,14 @@ Currently supported methods: | |||
| 381 | 350 | ||
| 382 | (defvar url-setup-done nil "Has setup configuration been done?") | 351 | (defvar url-setup-done nil "Has setup configuration been done?") |
| 383 | 352 | ||
| 384 | (defconst weekday-alist | 353 | (defconst url-weekday-alist |
| 385 | '(("Sunday" . 0) ("Monday" . 1) ("Tuesday" . 2) ("Wednesday" . 3) | 354 | '(("Sunday" . 0) ("Monday" . 1) ("Tuesday" . 2) ("Wednesday" . 3) |
| 386 | ("Thursday" . 4) ("Friday" . 5) ("Saturday" . 6) | 355 | ("Thursday" . 4) ("Friday" . 5) ("Saturday" . 6) |
| 387 | ("Tues" . 2) ("Thurs" . 4) | 356 | ("Tues" . 2) ("Thurs" . 4) |
| 388 | ("Sun" . 0) ("Mon" . 1) ("Tue" . 2) ("Wed" . 3) | 357 | ("Sun" . 0) ("Mon" . 1) ("Tue" . 2) ("Wed" . 3) |
| 389 | ("Thu" . 4) ("Fri" . 5) ("Sat" . 6))) | 358 | ("Thu" . 4) ("Fri" . 5) ("Sat" . 6))) |
| 390 | 359 | ||
| 391 | (defconst monthabbrev-alist | 360 | (defconst url-monthabbrev-alist |
| 392 | '(("Jan" . 1) ("Feb" . 2) ("Mar" . 3) ("Apr" . 4) ("May" . 5) ("Jun" . 6) | 361 | '(("Jan" . 1) ("Feb" . 2) ("Mar" . 3) ("Apr" . 4) ("May" . 5) ("Jun" . 6) |
| 393 | ("Jul" . 7) ("Aug" . 8) ("Sep" . 9) ("Oct" . 10) ("Nov" . 11) | 362 | ("Jul" . 7) ("Aug" . 8) ("Sep" . 9) ("Oct" . 10) ("Nov" . 11) |
| 394 | ("Dec" . 12))) | 363 | ("Dec" . 12))) |
| @@ -425,6 +394,8 @@ This should be set, e.g. by mail user agents rendering HTML to avoid | |||
| 425 | (defun url-vars-unload-hook () | 394 | (defun url-vars-unload-hook () |
| 426 | (remove-hook 'set-language-environment-hook 'url-set-mime-charset-string)) | 395 | (remove-hook 'set-language-environment-hook 'url-set-mime-charset-string)) |
| 427 | 396 | ||
| 397 | (add-hook 'url-vars-unload-hook 'url-vars-unload-hook) | ||
| 398 | |||
| 428 | (provide 'url-vars) | 399 | (provide 'url-vars) |
| 429 | 400 | ||
| 430 | ;;; arch-tag: 29205e5f-c5ce-433c-8d5d-38cbaed64b49 | 401 | ;;; arch-tag: 29205e5f-c5ce-433c-8d5d-38cbaed64b49 |
diff --git a/lisp/url/url.el b/lisp/url/url.el index f7b1b717681..75ddfdc3a2f 100644 --- a/lisp/url/url.el +++ b/lisp/url/url.el | |||
| @@ -113,26 +113,6 @@ Emacs." | |||
| 113 | noproxy "") "\\)")) | 113 | noproxy "") "\\)")) |
| 114 | url-proxy-services)))) | 114 | url-proxy-services)))) |
| 115 | 115 | ||
| 116 | ;; Set the password entry funtion based on user defaults or guess | ||
| 117 | ;; based on which remote-file-access package they are using. | ||
| 118 | (cond | ||
| 119 | (url-passwd-entry-func nil) ; Already been set | ||
| 120 | ((fboundp 'read-passwd) ; Use secure password if available | ||
| 121 | (setq url-passwd-entry-func 'read-passwd)) | ||
| 122 | ((or (featurep 'efs) ; Using EFS | ||
| 123 | (featurep 'efs-auto)) ; or autoloading efs | ||
| 124 | (if (not (fboundp 'read-passwd)) | ||
| 125 | (autoload 'read-passwd "passwd" "Read in a password" nil)) | ||
| 126 | (setq url-passwd-entry-func 'read-passwd)) | ||
| 127 | ((or (featurep 'ange-ftp) ; Using ange-ftp | ||
| 128 | (and (boundp 'file-name-handler-alist) | ||
| 129 | (not (featurep 'xemacs)))) ; ?? | ||
| 130 | (setq url-passwd-entry-func 'ange-ftp-read-passwd)) | ||
| 131 | (t | ||
| 132 | (url-warn | ||
| 133 | 'security | ||
| 134 | "(url-setup): Can't determine how to read passwords, winging it."))) | ||
| 135 | |||
| 136 | (url-setup-privacy-info) | 116 | (url-setup-privacy-info) |
| 137 | (run-hooks 'url-load-hook) | 117 | (run-hooks 'url-load-hook) |
| 138 | (setq url-setup-done t))) | 118 | (setq url-setup-done t))) |
diff --git a/lisp/vc-arch.el b/lisp/vc-arch.el index e32fc474d94..70dbdcc85f2 100644 --- a/lisp/vc-arch.el +++ b/lisp/vc-arch.el | |||
| @@ -283,8 +283,8 @@ Return non-nil if FILE is unchanged." | |||
| 283 | (setq logdir (expand-file-name version logdir)) | 283 | (setq logdir (expand-file-name version logdir)) |
| 284 | (setq logdir (expand-file-name archive logdir)) | 284 | (setq logdir (expand-file-name archive logdir)) |
| 285 | (setq logdir (expand-file-name "patch-log" logdir)) | 285 | (setq logdir (expand-file-name "patch-log" logdir)) |
| 286 | ;; Revision names go: base-0, patch-N, version-0, versionfix-N. | 286 | (dolist (file (if (file-directory-p logdir) (directory-files logdir))) |
| 287 | (dolist (file (directory-files logdir)) | 287 | ;; Revision names go: base-0, patch-N, version-0, versionfix-M. |
| 288 | (when (and (eq (aref file 0) ?v) (not sealed)) | 288 | (when (and (eq (aref file 0) ?v) (not sealed)) |
| 289 | (setq sealed t rev-nb 0)) | 289 | (setq sealed t rev-nb 0)) |
| 290 | (if (and (string-match "-\\([0-9]+\\)\\'" file) | 290 | (if (and (string-match "-\\([0-9]+\\)\\'" file) |
diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el index fef1431fe7d..22ff9edd428 100644 --- a/lisp/vc-hooks.el +++ b/lisp/vc-hooks.el | |||
| @@ -754,8 +754,8 @@ current, and kill the buffer that visits the link." | |||
| 754 | (set (make-local-variable 'backup-inhibited) t)) | 754 | (set (make-local-variable 'backup-inhibited) t)) |
| 755 | ;; Let the backend setup any buffer-local things he needs. | 755 | ;; Let the backend setup any buffer-local things he needs. |
| 756 | (vc-call-backend (vc-backend buffer-file-name) 'find-file-hook)) | 756 | (vc-call-backend (vc-backend buffer-file-name) 'find-file-hook)) |
| 757 | ((let* ((link (file-symlink-p buffer-file-name)) | 757 | ((let ((link-type (and (file-symlink-p buffer-file-name) |
| 758 | (link-type (and link (vc-backend (file-chase-links link))))) | 758 | (vc-backend (file-chase-links buffer-file-name))))) |
| 759 | (cond ((not link-type) nil) ;Nothing to do. | 759 | (cond ((not link-type) nil) ;Nothing to do. |
| 760 | ((eq vc-follow-symlinks nil) | 760 | ((eq vc-follow-symlinks nil) |
| 761 | (message | 761 | (message |
diff --git a/lisp/view.el b/lisp/view.el index b17cd52ae35..e184d68b117 100644 --- a/lisp/view.el +++ b/lisp/view.el | |||
| @@ -117,12 +117,12 @@ functions that enable or disable view mode.") | |||
| 117 | 117 | ||
| 118 | (defvar view-page-size nil | 118 | (defvar view-page-size nil |
| 119 | "Default number of lines to scroll by View page commands. | 119 | "Default number of lines to scroll by View page commands. |
| 120 | If nil then the local value of this is initially set to window size.") | 120 | If nil that means use the window size.") |
| 121 | (make-variable-buffer-local 'view-page-size) | 121 | (make-variable-buffer-local 'view-page-size) |
| 122 | 122 | ||
| 123 | (defvar view-half-page-size nil | 123 | (defvar view-half-page-size nil |
| 124 | "Default number of lines to scroll by View half page commands. | 124 | "Default number of lines to scroll by View half page commands. |
| 125 | If nil then the local value of this is initially set to half window size.") | 125 | If nil that means use half the window size.") |
| 126 | (make-variable-buffer-local 'view-half-page-size) | 126 | (make-variable-buffer-local 'view-half-page-size) |
| 127 | 127 | ||
| 128 | (defvar view-last-regexp nil) | 128 | (defvar view-last-regexp nil) |
| @@ -453,8 +453,8 @@ Entry to view-mode runs the normal hook `view-mode-hook'." | |||
| 453 | ;; This is to guarantee that the buffer-read-only variable is restored. | 453 | ;; This is to guarantee that the buffer-read-only variable is restored. |
| 454 | (add-hook 'change-major-mode-hook 'view-mode-disable nil t) | 454 | (add-hook 'change-major-mode-hook 'view-mode-disable nil t) |
| 455 | (setq view-mode t | 455 | (setq view-mode t |
| 456 | view-page-size (view-page-size-default view-page-size) | 456 | view-page-size nil |
| 457 | view-half-page-size (or view-half-page-size (/ (view-window-size) 2)) | 457 | view-half-page-size nil |
| 458 | view-old-buffer-read-only buffer-read-only | 458 | view-old-buffer-read-only buffer-read-only |
| 459 | buffer-read-only t | 459 | buffer-read-only t |
| 460 | view-old-Helper-return-blurb (and (boundp 'Helper-return-blurb) | 460 | view-old-Helper-return-blurb (and (boundp 'Helper-return-blurb) |
| @@ -675,7 +675,8 @@ previous state and go to previous buffer or window." | |||
| 675 | 675 | ||
| 676 | (defun view-set-half-page-size-default (lines) | 676 | (defun view-set-half-page-size-default (lines) |
| 677 | ;; Get and maybe set half page size. | 677 | ;; Get and maybe set half page size. |
| 678 | (if (not lines) view-half-page-size | 678 | (if (not lines) (or view-half-page-size |
| 679 | (/ (view-window-size) 2)) | ||
| 679 | (setq view-half-page-size | 680 | (setq view-half-page-size |
| 680 | (if (zerop (setq lines (prefix-numeric-value lines))) | 681 | (if (zerop (setq lines (prefix-numeric-value lines))) |
| 681 | (/ (view-window-size) 2) | 682 | (/ (view-window-size) 2) |
| @@ -803,13 +804,13 @@ Exit if end of text is visible and `view-scroll-auto-exit' is non-nil. | |||
| 803 | \\[View-scroll-page-backward-set-page-size]. | 804 | \\[View-scroll-page-backward-set-page-size]. |
| 804 | If LINES is more than a window-full, only the last window-full is shown." | 805 | If LINES is more than a window-full, only the last window-full is shown." |
| 805 | (interactive "P") | 806 | (interactive "P") |
| 806 | (view-scroll-lines lines nil view-page-size nil)) | 807 | (view-scroll-lines lines nil (view-page-size-default view-page-size) nil)) |
| 807 | 808 | ||
| 808 | (defun View-scroll-page-backward (&optional lines) | 809 | (defun View-scroll-page-backward (&optional lines) |
| 809 | "Scroll \"page size\" or prefix LINES lines backward in View mode. | 810 | "Scroll \"page size\" or prefix LINES lines backward in View mode. |
| 810 | See also `View-scroll-page-forward'." | 811 | See also `View-scroll-page-forward'." |
| 811 | (interactive "P") | 812 | (interactive "P") |
| 812 | (view-scroll-lines lines t view-page-size nil)) | 813 | (view-scroll-lines lines t (view-page-size-default view-page-size) nil)) |
| 813 | 814 | ||
| 814 | (defun View-scroll-page-forward-set-page-size (&optional lines) | 815 | (defun View-scroll-page-forward-set-page-size (&optional lines) |
| 815 | "Scroll forward LINES lines in View mode, setting the \"page size\". | 816 | "Scroll forward LINES lines in View mode, setting the \"page size\". |
diff --git a/lisp/whitespace.el b/lisp/whitespace.el index 40a234f02d6..323c75ed6de 100644 --- a/lisp/whitespace.el +++ b/lisp/whitespace.el | |||
| @@ -859,6 +859,8 @@ This is meant to be added buffer-locally to `write-file-functions'." | |||
| 859 | (remove-hook 'write-file-functions 'whitespace-write-file-hook t) | 859 | (remove-hook 'write-file-functions 'whitespace-write-file-hook t) |
| 860 | (remove-hook 'kill-buffer-hook 'whitespace-buffer)) | 860 | (remove-hook 'kill-buffer-hook 'whitespace-buffer)) |
| 861 | 861 | ||
| 862 | (add-hook 'whitespace-unload-hook 'whitespace-unload-hook) | ||
| 863 | |||
| 862 | (provide 'whitespace) | 864 | (provide 'whitespace) |
| 863 | 865 | ||
| 864 | ;;; arch-tag: 4ff44e87-b63c-402d-95a6-15e51e58bd0c | 866 | ;;; arch-tag: 4ff44e87-b63c-402d-95a6-15e51e58bd0c |