Commit 40627755 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(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'.
parent f118d83b
;;; 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 <abraham@dina.kvl.dk>
;; 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)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment