diff lisp/cus-edit.el @ 67086:7ae3d744378e

(Custom-reset-standard): Make it handle Custom group 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.
author Luc Teirlinck <teirllm@auburn.edu>
date Tue, 22 Nov 2005 23:28:28 +0000
parents 38c5bc4332b9
children 7af5860f4444
line wrap: on
line diff
--- a/lisp/cus-edit.el	Tue Nov 22 23:26:53 2005 +0000
+++ b/lisp/cus-edit.el	Tue Nov 22 23:28:28 2005 +0000
@@ -800,13 +800,18 @@
 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