changeset 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 bcb7b69bc80f
children 1fd0f45a7a2b
files lisp/cus-edit.el
diffstat 1 files changed, 12 insertions(+), 7 deletions(-) [+]
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