aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuanma Barranquero2013-07-23 03:10:54 +0200
committerJuanma Barranquero2013-07-23 03:10:54 +0200
commitb61d71e44f34c887107b0ca84371c67b904426df (patch)
tree05d15c2249c21798c29c2876291153598d529ebd
parentc35120929bcfe55e9faddc028e3e3de7cd8cfc5a (diff)
downloademacs-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/ChangeLog7
-rw-r--r--lisp/desktop.el65
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 @@
12013-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
12013-07-23 Leo Liu <sdl.web@gmail.com> 82013-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.