aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/desktop.el21
2 files changed, 16 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index bf08d2643f..064f7a01f1 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2004-05-31 Lars Hansen <[email protected]>
+
+ * desktop.el (desktop-save): Don't save minor modes without a
+ known mode initialization function.
+
2004-05-30 Luc Teirlinck <[email protected]>
* replace.el (query-replace-interactive): Convert defvar into
diff --git a/lisp/desktop.el b/lisp/desktop.el
index a21d132e03..3888262f02 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -326,7 +326,7 @@ NAME is the name of the buffer-local variable indicating that the minor
mode is active. RESTORE-FUNCTION is the function to activate the minor mode.
called. RESTORE-FUNCTION nil means don't try to restore the minor mode.
Only minor modes for which the name of the buffer-local variable
-and the name of the minor mode function are different have to added to
+and the name of the minor mode function are different have to be added to
this table."
:type 'sexp
:group 'desktop)
@@ -589,16 +589,17 @@ See also `desktop-base-file-name'."
major-mode
;; minor modes
(let (ret)
- (mapcar
- #'(lambda (mim)
+ (mapc
+ #'(lambda (minor-mode)
(and
- (boundp mim)
- (symbol-value mim)
- (setq ret
- (cons
- (let ((special (assq mim desktop-minor-mode-table)))
- (if special (cadr special) mim))
- ret))))
+ (boundp minor-mode)
+ (symbol-value minor-mode)
+ (let ((special (assq minor-mode desktop-minor-mode-table)))
+ (when (or special (functionp minor-mode))
+ (setq ret
+ (cons
+ (if special (cadr special) minor-mode)
+ ret))))))
(mapcar #'car minor-mode-alist))
ret)
(point)