diff options
| author | Juanma Barranquero | 2013-07-23 03:10:54 +0200 |
|---|---|---|
| committer | Juanma Barranquero | 2013-07-23 03:10:54 +0200 |
| commit | b61d71e44f34c887107b0ca84371c67b904426df (patch) | |
| tree | 05d15c2249c21798c29c2876291153598d529ebd | |
| parent | c35120929bcfe55e9faddc028e3e3de7cd8cfc5a (diff) | |
| download | emacs-b61d71e44f34c887107b0ca84371c67b904426df.tar.gz emacs-b61d71e44f34c887107b0ca84371c67b904426df.zip | |
lisp/desktop.el: Simplify.
(desktop-clear): Simplify; remove useless checks against invalid buffer names.
(desktop-list*): Use cl-list*.
(desktop-buffer-info, desktop-create-buffer): Simplify.
| -rw-r--r-- | lisp/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/desktop.el | 65 |
2 files changed, 31 insertions, 41 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 597c50899c0..b30163526b1 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2013-07-23 Juanma Barranquero <lekktu@gmail.com> | ||
| 2 | |||
| 3 | * desktop.el (desktop-clear): Simplify; remove useless checks | ||
| 4 | against invalid buffer names. | ||
| 5 | (desktop-list*): Use cl-list*. | ||
| 6 | (desktop-buffer-info, desktop-create-buffer): Simplify. | ||
| 7 | |||
| 1 | 2013-07-23 Leo Liu <sdl.web@gmail.com> | 8 | 2013-07-23 Leo Liu <sdl.web@gmail.com> |
| 2 | 9 | ||
| 3 | * bookmark.el (bookmark-make-record): Restore NAME as a default | 10 | * bookmark.el (bookmark-make-record): Restore NAME as a default |
diff --git a/lisp/desktop.el b/lisp/desktop.el index 57a139ee7ee..666be7efee3 100644 --- a/lisp/desktop.el +++ b/lisp/desktop.el | |||
| @@ -644,22 +644,17 @@ Furthermore, it clears the variables listed in `desktop-globals-to-clear'." | |||
| 644 | (if (symbolp var) | 644 | (if (symbolp var) |
| 645 | (eval `(setq-default ,var nil)) | 645 | (eval `(setq-default ,var nil)) |
| 646 | (eval `(setq-default ,(car var) ,(cdr var))))) | 646 | (eval `(setq-default ,(car var) ,(cdr var))))) |
| 647 | (let ((buffers (buffer-list)) | 647 | (let ((preserve-regexp (concat "^\\(" |
| 648 | (preserve-regexp (concat "^\\(" | ||
| 649 | (mapconcat (lambda (regexp) | 648 | (mapconcat (lambda (regexp) |
| 650 | (concat "\\(" regexp "\\)")) | 649 | (concat "\\(" regexp "\\)")) |
| 651 | desktop-clear-preserve-buffers | 650 | desktop-clear-preserve-buffers |
| 652 | "\\|") | 651 | "\\|") |
| 653 | "\\)$"))) | 652 | "\\)$"))) |
| 654 | (while buffers | 653 | (dolist (buffer (buffer-list)) |
| 655 | (let ((bufname (buffer-name (car buffers)))) | 654 | (let ((bufname (buffer-name buffer))) |
| 656 | (or | 655 | (unless (or (eq (aref bufname 0) ?s) ;; Don't kill internal buffers |
| 657 | (null bufname) | 656 | (string-match-p preserve-regexp bufname)) |
| 658 | (string-match-p preserve-regexp bufname) | 657 | (kill-buffer buffer))))) |
| 659 | ;; Don't kill buffers made for internal purposes. | ||
| 660 | (and (not (equal bufname "")) (eq (aref bufname 0) ?\s)) | ||
| 661 | (kill-buffer (car buffers)))) | ||
| 662 | (setq buffers (cdr buffers)))) | ||
| 663 | (delete-other-windows)) | 658 | (delete-other-windows)) |
| 664 | 659 | ||
| 665 | ;; ---------------------------------------------------------------------------- | 660 | ;; ---------------------------------------------------------------------------- |
| @@ -696,15 +691,7 @@ is nil, ask the user where to save the desktop." | |||
| 696 | 691 | ||
| 697 | ;; ---------------------------------------------------------------------------- | 692 | ;; ---------------------------------------------------------------------------- |
| 698 | (defun desktop-list* (&rest args) | 693 | (defun desktop-list* (&rest args) |
| 699 | (if (null (cdr args)) | 694 | (and args (cl-list* args))) |
| 700 | (car args) | ||
| 701 | (setq args (nreverse args)) | ||
| 702 | (let ((value (cons (nth 1 args) (car args)))) | ||
| 703 | (setq args (cdr (cdr args))) | ||
| 704 | (while args | ||
| 705 | (setq value (cons (car args) value)) | ||
| 706 | (setq args (cdr args))) | ||
| 707 | value))) | ||
| 708 | 695 | ||
| 709 | ;; ---------------------------------------------------------------------------- | 696 | ;; ---------------------------------------------------------------------------- |
| 710 | (defun desktop-buffer-info (buffer) | 697 | (defun desktop-buffer-info (buffer) |
| @@ -736,16 +723,14 @@ is nil, ask the user where to save the desktop." | |||
| 736 | (when (functionp desktop-save-buffer) | 723 | (when (functionp desktop-save-buffer) |
| 737 | (funcall desktop-save-buffer desktop-dirname)) | 724 | (funcall desktop-save-buffer desktop-dirname)) |
| 738 | ;; local variables | 725 | ;; local variables |
| 739 | (let ((locals desktop-locals-to-save) | 726 | (let ((loclist (buffer-local-variables)) |
| 740 | (loclist (buffer-local-variables)) | 727 | (ll nil)) |
| 741 | (ll)) | 728 | (dolist (local desktop-locals-to-save) |
| 742 | (while locals | 729 | (let ((here (assq local loclist))) |
| 743 | (let ((here (assq (car locals) loclist))) | 730 | (cond (here |
| 744 | (if here | 731 | (push here ll)) |
| 745 | (setq ll (cons here ll)) | 732 | ((member local loclist) |
| 746 | (when (member (car locals) loclist) | 733 | (push local ll))))) |
| 747 | (setq ll (cons (car locals) ll))))) | ||
| 748 | (setq locals (cdr locals))) | ||
| 749 | ll))) | 734 | ll))) |
| 750 | 735 | ||
| 751 | ;; ---------------------------------------------------------------------------- | 736 | ;; ---------------------------------------------------------------------------- |
| @@ -1748,17 +1733,15 @@ integer, start a new timer to call `desktop-auto-save' in that many seconds." | |||
| 1748 | (set-mark desktop-buffer-mark))) | 1733 | (set-mark desktop-buffer-mark))) |
| 1749 | ;; Never override file system if the file really is read-only marked. | 1734 | ;; Never override file system if the file really is read-only marked. |
| 1750 | (when desktop-buffer-read-only (setq buffer-read-only desktop-buffer-read-only)) | 1735 | (when desktop-buffer-read-only (setq buffer-read-only desktop-buffer-read-only)) |
| 1751 | (while desktop-buffer-locals | 1736 | (dolist (this desktop-buffer-locals) |
| 1752 | (let ((this (car desktop-buffer-locals))) | 1737 | (if (consp this) |
| 1753 | (if (consp this) | 1738 | ;; an entry of this form `(symbol . value)' |
| 1754 | ;; an entry of this form `(symbol . value)' | 1739 | (progn |
| 1755 | (progn | 1740 | (make-local-variable (car this)) |
| 1756 | (make-local-variable (car this)) | 1741 | (set (car this) (cdr this))) |
| 1757 | (set (car this) (cdr this))) | 1742 | ;; an entry of the form `symbol' |
| 1758 | ;; an entry of the form `symbol' | 1743 | (make-local-variable this) |
| 1759 | (make-local-variable this) | 1744 | (makunbound this)))))))) |
| 1760 | (makunbound this))) | ||
| 1761 | (setq desktop-buffer-locals (cdr desktop-buffer-locals)))))))) | ||
| 1762 | 1745 | ||
| 1763 | ;; ---------------------------------------------------------------------------- | 1746 | ;; ---------------------------------------------------------------------------- |
| 1764 | ;; Backward compatibility -- update parameters to 205 standards. | 1747 | ;; Backward compatibility -- update parameters to 205 standards. |