]> git.eshelyaron.com Git - emacs.git/commitdiff
(Custom-reset-standard): Make it handle Custom group
authorLuc Teirlinck <teirllm@auburn.edu>
Tue, 22 Nov 2005 23:28:28 +0000 (23:28 +0000)
committerLuc Teirlinck <teirllm@auburn.edu>
Tue, 22 Nov 2005 23:28:28 +0000 (23:28 +0000)
buffers correctly.  (It used to throw an error in such buffers.)
Make it ask for confirmation in group buffers and other Custom
buffers containing more than one customization item.

lisp/cus-edit.el

index 59a8b341cad6ece457c6f216c49e8a5d9c26d381..b84568b70604d04068a879a45753547521554aad 100644 (file)
@@ -800,13 +800,18 @@ This operation eliminates any saved settings for the group members,
 making them as if they had never been customized at all."
   (interactive)
   (let ((children custom-options))
-    (mapc (lambda (widget)
-           (and (widget-get widget :custom-standard-value)
-                (widget-apply widget :custom-standard-value)
-                (if (memq (widget-get widget :custom-state)
-                          '(modified set changed saved rogue))
-                    (widget-apply widget :custom-reset-standard))))
-           children)))
+    (when (or (and (= 1 (length children))
+                  (memq (widget-type (car children))
+                        '(custom-variable custom-face)))
+             (yes-or-no-p "Really erase all customizations in this buffer? "))
+      (mapc (lambda (widget)
+             (and (if (widget-get widget :custom-standard-value)
+                      (widget-apply widget :custom-standard-value)
+                    t)
+                  (memq (widget-get widget :custom-state)
+                        '(modified set changed saved rogue))
+                  (widget-apply widget :custom-reset-standard)))
+           children))))
 
 ;;; The Customize Commands