diff options
| author | Stefan Monnier | 2007-04-11 02:28:26 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2007-04-11 02:28:26 +0000 |
| commit | 341c2f07d4f50009670c397a4745bdc000864ddf (patch) | |
| tree | 7ccc1fb4556258af858e27e23f34ea8594d8d886 | |
| parent | c429815a6b9d271a57eed4956125f6bc89d1d72b (diff) | |
| download | emacs-341c2f07d4f50009670c397a4745bdc000864ddf.tar.gz emacs-341c2f07d4f50009670c397a4745bdc000864ddf.zip | |
(desktop-save, desktop-create-buffer): Replace mapcar with dolist.
(after-init-hook): Don't quote lambda.
(desktop-first-buffer): Don't wrap it in eval-when-compile.
(desktop-internal-v2s): Remove unused var `el'.
(desktop-buffer-major-mode, desktop-buffer-locals): Move out of
desktop-restore-file-buffer.
(desktop-buffer-ok-count, desktop-buffer-fail-count): Move out of
desktop-create-buffer.
| -rw-r--r-- | lisp/ChangeLog | 24 | ||||
| -rw-r--r-- | lisp/desktop.el | 94 |
2 files changed, 64 insertions, 54 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 16acb6f40e0..eca3f6e1c34 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,15 @@ | |||
| 1 | 2007-04-11 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * desktop.el (desktop-save, desktop-create-buffer): Replace mapcar with | ||
| 4 | dolist. | ||
| 5 | (after-init-hook): Don't quote lambda. | ||
| 6 | (desktop-first-buffer): Don't wrap it in eval-when-compile. | ||
| 7 | (desktop-internal-v2s): Remove unused var `el'. | ||
| 8 | (desktop-buffer-major-mode, desktop-buffer-locals): Move out of | ||
| 9 | desktop-restore-file-buffer. | ||
| 10 | (desktop-buffer-ok-count, desktop-buffer-fail-count): Move out of | ||
| 11 | desktop-create-buffer. | ||
| 12 | |||
| 1 | 2007-04-10 Chong Yidong <cyd@stupidchicken.com> | 13 | 2007-04-10 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 14 | ||
| 3 | * woman.el (woman-decode-buffer): Postphone macro-set check... | 15 | * woman.el (woman-decode-buffer): Postphone macro-set check... |
| @@ -25,8 +37,8 @@ | |||
| 25 | 37 | ||
| 26 | * emacs-lisp/byte-opt.el (byte-optimize-char-before): Remove (move | 38 | * emacs-lisp/byte-opt.el (byte-optimize-char-before): Remove (move |
| 27 | to bytecomp.el as byte-compile-char-before). | 39 | to bytecomp.el as byte-compile-char-before). |
| 28 | * emacs-lisp/bytecomp.el (byte-compile-char-before): New | 40 | * emacs-lisp/bytecomp.el (byte-compile-char-before): |
| 29 | function (modified replacement for byte-optimize-char-before in | 41 | New function (modified replacement for byte-optimize-char-before in |
| 30 | byte-opt.el). | 42 | byte-opt.el). |
| 31 | 43 | ||
| 32 | 2007-04-09 Alan Mackenzie <acm@muc.de> | 44 | 2007-04-09 Alan Mackenzie <acm@muc.de> |
| @@ -76,8 +88,8 @@ | |||
| 76 | 88 | ||
| 77 | 2007-04-08 Johan Bockg,Ae(Brd <bojohan+news@dd.chalmers.se> | 89 | 2007-04-08 Johan Bockg,Ae(Brd <bojohan+news@dd.chalmers.se> |
| 78 | 90 | ||
| 79 | * term/xterm.el (terminal-init-xterm): Fix key definitions. Add | 91 | * term/xterm.el (terminal-init-xterm): Fix key definitions. |
| 80 | binding for C-M-SPC. | 92 | Add binding for C-M-SPC. |
| 81 | 93 | ||
| 82 | 2007-04-08 Richard Stallman <rms@gnu.org> | 94 | 2007-04-08 Richard Stallman <rms@gnu.org> |
| 83 | 95 | ||
| @@ -142,8 +154,8 @@ | |||
| 142 | 154 | ||
| 143 | * menu-bar.el (menu-bar-tools-menu): Revert 2003-07-25 change. | 155 | * menu-bar.el (menu-bar-tools-menu): Revert 2003-07-25 change. |
| 144 | 156 | ||
| 145 | * desktop.el (desktop-create-buffer, desktop-save): Revert | 157 | * desktop.el (desktop-create-buffer, desktop-save): |
| 146 | 2004-11-12 change. | 158 | Revert 2004-11-12 change for lack of copyright papers. |
| 147 | 159 | ||
| 148 | * dired-x.el (dired-guess-shell-case-fold-search): Delete var. | 160 | * dired-x.el (dired-guess-shell-case-fold-search): Delete var. |
| 149 | (dired-guess-default): Respect case. | 161 | (dired-guess-default): Respect case. |
diff --git a/lisp/desktop.el b/lisp/desktop.el index 7b5db86f3cf..92f6a448574 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el | |||
| @@ -45,9 +45,9 @@ | |||
| 45 | ;; "Saving Emacs Sessions" in the GNU Emacs Manual. | 45 | ;; "Saving Emacs Sessions" in the GNU Emacs Manual. |
| 46 | 46 | ||
| 47 | ;; When the desktop module is loaded, the function `desktop-kill' is | 47 | ;; When the desktop module is loaded, the function `desktop-kill' is |
| 48 | ;; added to the `kill-emacs-hook'. This function is responsible for | 48 | ;; added to the `kill-emacs-hook'. This function is responsible for |
| 49 | ;; saving the desktop when Emacs is killed. Furthermore an anonymous | 49 | ;; saving the desktop when Emacs is killed. Furthermore an anonymous |
| 50 | ;; function is added to the `after-init-hook'. This function is | 50 | ;; function is added to the `after-init-hook'. This function is |
| 51 | ;; responsible for loading the desktop when Emacs is started. | 51 | ;; responsible for loading the desktop when Emacs is started. |
| 52 | 52 | ||
| 53 | ;; Special handling. | 53 | ;; Special handling. |
| @@ -55,12 +55,12 @@ | |||
| 55 | ;; Variables `desktop-buffer-mode-handlers' and `desktop-minor-mode-handlers' | 55 | ;; Variables `desktop-buffer-mode-handlers' and `desktop-minor-mode-handlers' |
| 56 | ;; are supplied to handle special major and minor modes respectively. | 56 | ;; are supplied to handle special major and minor modes respectively. |
| 57 | ;; `desktop-buffer-mode-handlers' is an alist of major mode specific functions | 57 | ;; `desktop-buffer-mode-handlers' is an alist of major mode specific functions |
| 58 | ;; to restore a desktop buffer. Elements must have the form | 58 | ;; to restore a desktop buffer. Elements must have the form |
| 59 | ;; | 59 | ;; |
| 60 | ;; (MAJOR-MODE . RESTORE-BUFFER-FUNCTION). | 60 | ;; (MAJOR-MODE . RESTORE-BUFFER-FUNCTION). |
| 61 | ;; | 61 | ;; |
| 62 | ;; Functions listed are called by `desktop-create-buffer' when `desktop-read' | 62 | ;; Functions listed are called by `desktop-create-buffer' when `desktop-read' |
| 63 | ;; evaluates the desktop file. Buffers with a major mode not specified here, | 63 | ;; evaluates the desktop file. Buffers with a major mode not specified here, |
| 64 | ;; are restored by the default handler `desktop-restore-file-buffer'. | 64 | ;; are restored by the default handler `desktop-restore-file-buffer'. |
| 65 | ;; `desktop-minor-mode-handlers' is an alist of functions to restore | 65 | ;; `desktop-minor-mode-handlers' is an alist of functions to restore |
| 66 | ;; non-standard minor modes. Elements must have the form | 66 | ;; non-standard minor modes. Elements must have the form |
| @@ -85,7 +85,7 @@ | |||
| 85 | ;; '(bar-mode . bar-desktop-restore)) | 85 | ;; '(bar-mode . bar-desktop-restore)) |
| 86 | 86 | ||
| 87 | ;; in the module itself, and make shure that the mode function is | 87 | ;; in the module itself, and make shure that the mode function is |
| 88 | ;; autoloaded. See the docstrings of `desktop-buffer-mode-handlers' and | 88 | ;; autoloaded. See the docstrings of `desktop-buffer-mode-handlers' and |
| 89 | ;; `desktop-minor-mode-handlers' for more info. | 89 | ;; `desktop-minor-mode-handlers' for more info. |
| 90 | 90 | ||
| 91 | ;; Minor modes. | 91 | ;; Minor modes. |
| @@ -100,7 +100,7 @@ | |||
| 100 | ;; The variables `desktop-minor-mode-table' and `desktop-minor-mode-handlers' | 100 | ;; The variables `desktop-minor-mode-table' and `desktop-minor-mode-handlers' |
| 101 | ;; are used to handle non-conventional minor modes. `desktop-save' uses | 101 | ;; are used to handle non-conventional minor modes. `desktop-save' uses |
| 102 | ;; `desktop-minor-mode-table' to map minor mode variables to minor mode | 102 | ;; `desktop-minor-mode-table' to map minor mode variables to minor mode |
| 103 | ;; functions before writing `desktop-minor-modes'. If a minor mode has a | 103 | ;; functions before writing `desktop-minor-modes'. If a minor mode has a |
| 104 | ;; variable name that is different form its function name, an entry | 104 | ;; variable name that is different form its function name, an entry |
| 105 | 105 | ||
| 106 | ;; (NAME RESTORE-FUNCTION) | 106 | ;; (NAME RESTORE-FUNCTION) |
| @@ -619,8 +619,7 @@ QUOTE may be `may' (value may be quoted), | |||
| 619 | (setq newlist (cons q.txt newlist))) | 619 | (setq newlist (cons q.txt newlist))) |
| 620 | (setq p (cdr p))) | 620 | (setq p (cdr p))) |
| 621 | (if p | 621 | (if p |
| 622 | (let ((last (desktop-internal-v2s p)) | 622 | (let ((last (desktop-internal-v2s p))) |
| 623 | (el (car newlist))) | ||
| 624 | (or anynil (setq anynil (null (car last)))) | 623 | (or anynil (setq anynil (null (car last)))) |
| 625 | (or anynil | 624 | (or anynil |
| 626 | (setq newlist (cons '(must . ".") newlist))) | 625 | (setq newlist (cons '(must . ".") newlist))) |
| @@ -782,7 +781,8 @@ See also `desktop-base-file-name'." | |||
| 782 | ";; Desktop file format version " desktop-file-version "\n" | 781 | ";; Desktop file format version " desktop-file-version "\n" |
| 783 | ";; Emacs version " emacs-version "\n\n" | 782 | ";; Emacs version " emacs-version "\n\n" |
| 784 | ";; Global section:\n") | 783 | ";; Global section:\n") |
| 785 | (mapcar (function desktop-outvar) desktop-globals-to-save) | 784 | (dolist (varspec desktop-globals-to-save) |
| 785 | (desktop-outvar varspec)) | ||
| 786 | (if (memq 'kill-ring desktop-globals-to-save) | 786 | (if (memq 'kill-ring desktop-globals-to-save) |
| 787 | (insert | 787 | (insert |
| 788 | "(setq kill-ring-yank-pointer (nthcdr " | 788 | "(setq kill-ring-yank-pointer (nthcdr " |
| @@ -790,22 +790,20 @@ See also `desktop-base-file-name'." | |||
| 790 | " kill-ring))\n")) | 790 | " kill-ring))\n")) |
| 791 | 791 | ||
| 792 | (insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n") | 792 | (insert "\n;; Buffer section -- buffers listed in same order as in buffer list:\n") |
| 793 | (mapcar #'(lambda (l) | 793 | (dolist (l info) |
| 794 | (when (apply 'desktop-save-buffer-p l) | 794 | (when (apply 'desktop-save-buffer-p l) |
| 795 | (insert "(" | 795 | (insert "(" |
| 796 | (if (or (not (integerp eager)) | 796 | (if (or (not (integerp eager)) |
| 797 | (unless (zerop eager) | 797 | (unless (zerop eager) |
| 798 | (setq eager (1- eager)) | 798 | (setq eager (1- eager)) |
| 799 | t)) | 799 | t)) |
| 800 | "desktop-create-buffer" | 800 | "desktop-create-buffer" |
| 801 | "desktop-append-buffer-args") | 801 | "desktop-append-buffer-args") |
| 802 | " " | 802 | " " |
| 803 | desktop-file-version) | 803 | desktop-file-version) |
| 804 | (mapcar #'(lambda (e) | 804 | (dolist (e l) |
| 805 | (insert "\n " (desktop-value-to-string e))) | 805 | (insert "\n " (desktop-value-to-string e))) |
| 806 | l) | 806 | (insert ")\n\n"))) |
| 807 | (insert ")\n\n"))) | ||
| 808 | info) | ||
| 809 | (setq default-directory dirname) | 807 | (setq default-directory dirname) |
| 810 | (let ((coding-system-for-write 'emacs-mule)) | 808 | (let ((coding-system-for-write 'emacs-mule)) |
| 811 | (write-region (point-min) (point-max) filename nil 'nomessage))))) | 809 | (write-region (point-min) (point-max) filename nil 'nomessage))))) |
| @@ -941,14 +939,13 @@ directory DIRNAME." | |||
| 941 | (desktop-clear) | 939 | (desktop-clear) |
| 942 | (desktop-read desktop-dirname)) | 940 | (desktop-read desktop-dirname)) |
| 943 | 941 | ||
| 942 | (defvar desktop-buffer-major-mode) | ||
| 943 | (defvar desktop-buffer-locals) | ||
| 944 | ;; ---------------------------------------------------------------------------- | 944 | ;; ---------------------------------------------------------------------------- |
| 945 | (defun desktop-restore-file-buffer (desktop-buffer-file-name | 945 | (defun desktop-restore-file-buffer (desktop-buffer-file-name |
| 946 | desktop-buffer-name | 946 | desktop-buffer-name |
| 947 | desktop-buffer-misc) | 947 | desktop-buffer-misc) |
| 948 | "Restore a file buffer." | 948 | "Restore a file buffer." |
| 949 | (eval-when-compile ; Just to silence the byte compiler | ||
| 950 | (defvar desktop-buffer-major-mode) | ||
| 951 | (defvar desktop-buffer-locals)) | ||
| 952 | (if desktop-buffer-file-name | 949 | (if desktop-buffer-file-name |
| 953 | (if (or (file-exists-p desktop-buffer-file-name) | 950 | (if (or (file-exists-p desktop-buffer-file-name) |
| 954 | (let ((msg (format "Desktop: File \"%s\" no longer exists." | 951 | (let ((msg (format "Desktop: File \"%s\" no longer exists." |
| @@ -985,8 +982,12 @@ directory DIRNAME." | |||
| 985 | ;; called from Desktop file only. | 982 | ;; called from Desktop file only. |
| 986 | 983 | ||
| 987 | ;; Just to silence the byte compiler. | 984 | ;; Just to silence the byte compiler. |
| 988 | (eval-when-compile | 985 | |
| 989 | (defvar desktop-first-buffer)) ; Dynamically bound in `desktop-read' | 986 | (defvar desktop-first-buffer) ; Dynamically bound in `desktop-read' |
| 987 | |||
| 988 | ;; Bound locally in `desktop-read'. | ||
| 989 | (defvar desktop-buffer-ok-count) | ||
| 990 | (defvar desktop-buffer-fail-count) | ||
| 990 | 991 | ||
| 991 | (defun desktop-create-buffer | 992 | (defun desktop-create-buffer |
| 992 | (desktop-file-version | 993 | (desktop-file-version |
| @@ -1000,10 +1001,6 @@ directory DIRNAME." | |||
| 1000 | desktop-buffer-misc | 1001 | desktop-buffer-misc |
| 1001 | &optional | 1002 | &optional |
| 1002 | desktop-buffer-locals) | 1003 | desktop-buffer-locals) |
| 1003 | ;; Just to silence the byte compiler. Bound locally in `desktop-read'. | ||
| 1004 | (eval-when-compile | ||
| 1005 | (defvar desktop-buffer-ok-count) | ||
| 1006 | (defvar desktop-buffer-fail-count)) | ||
| 1007 | ;; To make desktop files with relative file names possible, we cannot | 1004 | ;; To make desktop files with relative file names possible, we cannot |
| 1008 | ;; allow `default-directory' to change. Therefore we save current buffer. | 1005 | ;; allow `default-directory' to change. Therefore we save current buffer. |
| 1009 | (save-current-buffer | 1006 | (save-current-buffer |
| @@ -1045,21 +1042,22 @@ directory DIRNAME." | |||
| 1045 | ((equal '(nil) desktop-buffer-minor-modes) ; backwards compatible | 1042 | ((equal '(nil) desktop-buffer-minor-modes) ; backwards compatible |
| 1046 | (auto-fill-mode 0)) | 1043 | (auto-fill-mode 0)) |
| 1047 | (t | 1044 | (t |
| 1048 | (mapcar #'(lambda (minor-mode) | 1045 | (dolist (minor-mode desktop-buffer-minor-modes) |
| 1049 | ;; Give minor mode module a chance to add a handler. | 1046 | ;; Give minor mode module a chance to add a handler. |
| 1050 | (desktop-load-file minor-mode) | 1047 | (desktop-load-file minor-mode) |
| 1051 | (let ((handler (cdr (assq minor-mode desktop-minor-mode-handlers)))) | 1048 | (let ((handler (cdr (assq minor-mode desktop-minor-mode-handlers)))) |
| 1052 | (if handler | 1049 | (if handler |
| 1053 | (funcall handler desktop-buffer-locals) | 1050 | (funcall handler desktop-buffer-locals) |
| 1054 | (when (functionp minor-mode) | 1051 | (when (functionp minor-mode) |
| 1055 | (funcall minor-mode 1))))) | 1052 | (funcall minor-mode 1))))))) |
| 1056 | desktop-buffer-minor-modes))) | 1053 | ;; Even though point and mark are non-nil when written by |
| 1057 | ;; Even though point and mark are non-nil when written by `desktop-save', | 1054 | ;; `desktop-save', they may be modified by handlers wanting to set |
| 1058 | ;; they may be modified by handlers wanting to set point or mark themselves. | 1055 | ;; point or mark themselves. |
| 1059 | (when desktop-buffer-point | 1056 | (when desktop-buffer-point |
| 1060 | (goto-char | 1057 | (goto-char |
| 1061 | (condition-case err | 1058 | (condition-case err |
| 1062 | ;; Evaluate point. Thus point can be something like '(search-forward ... | 1059 | ;; Evaluate point. Thus point can be something like |
| 1060 | ;; '(search-forward ... | ||
| 1063 | (eval desktop-buffer-point) | 1061 | (eval desktop-buffer-point) |
| 1064 | (error (message "%s" (error-message-string err)) 1)))) | 1062 | (error (message "%s" (error-message-string err)) 1)))) |
| 1065 | (when desktop-buffer-mark | 1063 | (when desktop-buffer-mark |
| @@ -1167,7 +1165,7 @@ If there are no buffers left to create, kill the timer." | |||
| 1167 | ;; functions are processed after `after-init-hook'. | 1165 | ;; functions are processed after `after-init-hook'. |
| 1168 | (add-hook | 1166 | (add-hook |
| 1169 | 'after-init-hook | 1167 | 'after-init-hook |
| 1170 | '(lambda () | 1168 | (lambda () |
| 1171 | (let ((key "--no-desktop")) | 1169 | (let ((key "--no-desktop")) |
| 1172 | (when (member key command-line-args) | 1170 | (when (member key command-line-args) |
| 1173 | (setq command-line-args (delete key command-line-args)) | 1171 | (setq command-line-args (delete key command-line-args)) |
| @@ -1176,5 +1174,5 @@ If there are no buffers left to create, kill the timer." | |||
| 1176 | 1174 | ||
| 1177 | (provide 'desktop) | 1175 | (provide 'desktop) |
| 1178 | 1176 | ||
| 1179 | ;;; arch-tag: 221907c3-1771-4fd3-9c2e-c6f700c6ede9 | 1177 | ;; arch-tag: 221907c3-1771-4fd3-9c2e-c6f700c6ede9 |
| 1180 | ;;; desktop.el ends here | 1178 | ;;; desktop.el ends here |