Mercurial > emacs
diff lisp/desktop.el @ 5314:e65e125e5334
Add keywords.
(desktop-outvar): clean-up output using fewer quotes and \n for newlines.
(desktop-save): print buffer information using \n for newlines.
(desktop-save-buffer-p): doc fix.
(desktop-save): bug in mark-activity saving.
(desktop-buffer-rmail): doc fix.
(desktop-buffer-rmail, desktop-buffer-dired, desktop-buffer):
Use `eq' instead of `equal'.
(desktop-clear): end up with one window.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 23 Dec 1993 04:59:47 +0000 |
parents | a61307ac474e |
children | 9fcfca1caec7 |
line wrap: on
line diff
--- a/lisp/desktop.el Thu Dec 23 04:58:26 1993 +0000 +++ b/lisp/desktop.el Thu Dec 23 04:59:47 1993 +0000 @@ -3,7 +3,9 @@ ;; Copyright (C) 1993 Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@diku.dk> -;; Version: 2.02 +;; Version: 2.03 +;; Keywords: customization +;; Favourite-brand-of-beer: None, I hate beer. ;; This file is part of GNU Emacs. @@ -87,7 +89,7 @@ 'tags-file-name 'tags-table-list ;; 'desktop-globals-to-save ; Itself! - ) + ) "List of global variables to save when killing Emacs.") ;; We skip .log files because they are normally temporary. @@ -125,7 +127,8 @@ (interactive) (setq kill-ring nil) (setq kill-ring-yank-pointer nil) - (mapcar (function kill-buffer) (buffer-list))) + (mapcar (function kill-buffer) (buffer-list)) + (delete-other-windows)) ;; ---------------------------------------------------------------------------- ;; This is a bit dirty for version 18 because that version of Emacs was not ;; toilet-trained considering hooks. @@ -146,21 +149,26 @@ (progn (desktop-save desktop-dirname)))) ;; ---------------------------------------------------------------------------- -(defun desktop-outvar (VAR) +(defun desktop-outvar (var) "Output a setq statement for VAR to the desktop file." - (if (boundp VAR) - (progn + (if (boundp var) + (let ((print-escape-newlines t) + (val (symbol-value var))) (insert "(setq ") - (prin1 VAR (current-buffer)) - (insert " '") - (prin1 (symbol-value VAR) (current-buffer)) + (prin1 var (current-buffer)) + ;; symbols are needed for cons cells and for symbols except + ;; `t' and `nil'. + (if (or (consp val) + (and (symbolp val) val (not (eq t val)))) + (insert " '") + (insert " ")) + (prin1 val (current-buffer)) (insert ")\n")))) ;; ---------------------------------------------------------------------------- (defun desktop-save-buffer-p (filename bufname mode) - "Return t if should record a particular buffer for next startup. + "Return t if the desktop should record a particular buffer for next startup. FILENAME is the visited file name, BUFNAME is the buffer name, and MODE is the major mode." - (or (and filename (not (string-match desktop-buffers-not-to-save bufname))) (and (null filename) @@ -188,7 +196,7 @@ auto-fill-hook))))) (point) (if postv18 - (list 'quote (mark t) mark-active) + (list 'quote (list (mark t) mark-active)) (mark)) buffer-read-only truncate-lines @@ -226,21 +234,22 @@ " kill-ring))\n")) (insert "\n;; Buffer section:\n") - (mapcar - (function (lambda (l) - (if (desktop-save-buffer-p - (car l) - (nth 1 l) - (nth 1 (nth 2 l))) - (progn - (insert "(desktop-buffer") - (mapcar - (function (lambda (e) - (insert "\n ") - (prin1 e (current-buffer)))) - l) - (insert ")\n\n"))))) - info) + (let ((print-escape-newlines t)) + (mapcar + (function (lambda (l) + (if (desktop-save-buffer-p + (car l) + (nth 1 l) + (nth 1 (nth 2 l))) + (progn + (insert "(desktop-buffer") + (mapcar + (function (lambda (e) + (insert "\n ") + (prin1 e (current-buffer)))) + l) + (insert ")\n\n"))))) + info)) (setq default-directory dirname) (if (file-exists-p filename) (delete-file filename)) (write-region (point-min) (point-max) filename nil 'nomessage))) @@ -288,12 +297,12 @@ (Info-find-node (nth 0 misc) (nth 1 misc)) t))) ;; ---------------------------------------------------------------------------- -(defun desktop-buffer-rmail () "Load a RMAIL file." - (if (equal 'rmail-mode mam) +(defun desktop-buffer-rmail () "Load an RMAIL file." + (if (eq 'rmail-mode mam) (progn (rmail-input fn) t))) ;; ---------------------------------------------------------------------------- (defun desktop-buffer-dired () "Load a directory using dired." - (if (equal 'dired-mode mam) + (if (eq 'dired-mode mam) (progn (dired (car misc)) (mapcar (function dired-maybe-insert-subdir) (cdr misc)) @@ -319,7 +328,7 @@ (setq handler (car hlist)) (setq result (funcall handler)) (setq hlist (cdr hlist))) - (if (equal result t) + (if (eq result t) (progn (if (not (equal (buffer-name) bn)) (rename-buffer bn)) @@ -346,4 +355,3 @@ (provide 'desktop) ;; desktop.el ends here. -