aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/cus-edit.el
diff options
context:
space:
mode:
authorStefan Monnier <[email protected]>2003-05-31 15:23:00 +0000
committerStefan Monnier <[email protected]>2003-05-31 15:23:00 +0000
commit40627755beddfff5a4584ef8003da7ded1b2c14e (patch)
treed797386d79a5fe0a35a88afbc0267d6a1d087c0a /lisp/cus-edit.el
parentf118d83b7965edbbe2b0f3d7b1e9b92f29885abf (diff)
(custom-get-fresh-buffer): New fun.
(custom-buffer-create, custom-buffer-create-other-window) (customize-browse): Use it instead of killing buffers. (custom-bury-buffer): Obey the argument. (custom-variable-reset-saved, custom-variable-reset-standard): Remove unused var `comment-widget'. (custom-face-edit-deactivate): Remove unused var `to'. (custom-save-variables): Remove unused var `sep'.
Diffstat (limited to 'lisp/cus-edit.el')
-rw-r--r--lisp/cus-edit.el37
1 files changed, 22 insertions, 15 deletions
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 0cf78ac1a0..c7cb7d67ce 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1,6 +1,6 @@
;;; cus-edit.el --- tools for customizing Emacs and Lisp packages
;;
-;; Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,1999,2000,01,02,2003 Free Software Foundation, Inc.
;;
;; Author: Per Abrahamsen <[email protected]>
;; Maintainer: FSF
@@ -1189,7 +1189,8 @@ links: groups have links to subgroups."
;; If we pass BUFFER to `bury-buffer', the buffer isn't removed from
;; the window.
(defun custom-bury-buffer (buffer)
- (bury-buffer))
+ (with-current-buffer buffer
+ (bury-buffer)))
(defcustom custom-buffer-done-function 'custom-bury-buffer
"*Function called to remove a Custom buffer when the user is done with it.
@@ -1205,6 +1206,20 @@ Called with one argument, the buffer to remove."
:type 'integer
:group 'custom-buffer)
+(defun custom-get-fresh-buffer (name)
+ "Get a fresh new buffer with name NAME.
+If the buffer already exist, clean it up to be like new."
+ (let ((buf (get-buffer name)))
+ (if (null buf)
+ (get-buffer-create name)
+ (with-current-buffer buf
+ (kill-all-local-variables)
+ (erase-buffer)
+ (let ((ols (overlay-lists)))
+ (dolist (ol (nconc (car ols) (cdr ols)))
+ (delete-overlay ol)))
+ buf))))
+
;;;###autoload
(defun custom-buffer-create (options &optional name description)
"Create a buffer containing OPTIONS.
@@ -1212,9 +1227,7 @@ Optional NAME is the name of the buffer.
OPTIONS should be an alist of the form ((SYMBOL WIDGET)...), where
SYMBOL is a customization option, and WIDGET is a widget for editing
that option."
- (unless name (setq name "*Customization*"))
- (kill-buffer (get-buffer-create name))
- (pop-to-buffer (get-buffer-create name))
+ (pop-to-buffer (custom-get-fresh-buffer (or name "*Customization*")))
(custom-buffer-create-internal options description))
;;;###autoload
@@ -1225,14 +1238,13 @@ OPTIONS should be an alist of the form ((SYMBOL WIDGET)...), where
SYMBOL is a customization option, and WIDGET is a widget for editing
that option."
(unless name (setq name "*Customization*"))
- (kill-buffer (get-buffer-create name))
(let ((window (selected-window))
(pop-up-windows t)
(special-display-buffer-names nil)
(special-display-regexps nil)
(same-window-buffer-names nil)
(same-window-regexps nil))
- (pop-to-buffer (get-buffer-create name))
+ (pop-to-buffer (custom-get-fresh-buffer name))
(custom-buffer-create-internal options description)
(select-window window)))
@@ -1392,8 +1404,7 @@ Un-customize all values in this buffer. They get their standard settings."
(unless group
(setq group 'emacs))
(let ((name "*Customize Browser*"))
- (kill-buffer (get-buffer-create name))
- (pop-to-buffer (get-buffer-create name)))
+ (pop-to-buffer (custom-get-fresh-buffer name)))
(custom-mode)
(widget-insert "\
Square brackets show active fields; type RET or click mouse-1
@@ -2440,7 +2451,6 @@ The value that was current before this operation
becomes the backup value, so you can get it again."
(let* ((symbol (widget-value widget))
(set (or (get symbol 'custom-set) 'set-default))
- (comment-widget (widget-get widget :comment-widget))
(value (get symbol 'saved-value))
(comment (get symbol 'saved-variable-comment)))
(cond ((or value comment)
@@ -2464,8 +2474,7 @@ restoring it to the state of a variable that has never been customized.
The value that was current before this operation
becomes the backup value, so you can get it again."
(let* ((symbol (widget-value widget))
- (set (or (get symbol 'custom-set) 'set-default))
- (comment-widget (widget-get widget :comment-widget)))
+ (set (or (get symbol 'custom-set) 'set-default)))
(if (get symbol 'standard-value)
(progn
(custom-variable-backup-value widget)
@@ -2586,7 +2595,6 @@ Also change :reverse-video to :inverse-video."
(unless (widget-get widget :inactive)
(let ((tag (custom-face-edit-attribute-tag widget))
(from (copy-marker (widget-get widget :from)))
- (to (widget-get widget :to))
(value (widget-value widget))
(inhibit-read-only t)
(inhibit-modification-hooks t))
@@ -3727,8 +3735,7 @@ or (if there were none) at the end of the buffer."
(and (not (boundp symbol))
(not (eq (get symbol 'force-value)
'rogue))))))
- (comment (get symbol 'saved-variable-comment))
- sep)
+ (comment (get symbol 'saved-variable-comment)))
;; Check `requests'.
(dolist (request requests)
(when (and (symbolp request) (not (featurep request)))