diff lisp/cus-edit.el @ 68194:f4bca1157746

(Custom-set, Custom-save, Custom-reset-current, Custom-reset-saved): Do not ask for confirmation in single option buffers.
author Luc Teirlinck <teirllm@auburn.edu>
date Sun, 15 Jan 2006 03:15:25 +0000
parents 08dc54e52e8e
children 4580b1bedd8a 7beb78bc1f8e
line wrap: on
line diff
--- a/lisp/cus-edit.el	Sun Jan 15 03:13:20 2006 +0000
+++ b/lisp/cus-edit.el	Sun Jan 15 03:15:25 2006 +0000
@@ -746,28 +746,35 @@
 (defun Custom-set ()
   "Set the current value of all edited settings in the buffer."
   (interactive)
-  (if (y-or-n-p "Set all values according to this buffer? ")
-      (let ((children custom-options))
+  (let ((children custom-options))
+    (if (or (and (= 1 (length children))
+		 (memq (widget-type (car children))
+		       '(custom-variable custom-face)))
+	    (y-or-n-p "Set all values according to this buffer? "))
 	(mapc (lambda (child)
 		(when (eq (widget-get child :custom-state) 'modified)
 		  (widget-apply child :custom-set)))
-	      children))
-    (message "Aborted")))
+	      children)
+      (message "Aborted"))))
 
 (defun Custom-save ()
   "Set all edited settings, then save all settings that have been set.
 If a setting was edited and set before, this saves it.
 If a setting was merely edited before, this sets it then saves it."
   (interactive)
-  (if (yes-or-no-p "Save all settings in this buffer? ")
-      (let ((children custom-options))
-	(mapc (lambda (child)
-		(when (memq (widget-get child :custom-state)
-			    '(modified set changed rogue))
-		  (widget-apply child :custom-save)))
-	      children)
-	(custom-save-all))
-    (message "Aborted")))
+  (let ((children custom-options))
+    (if (or (and (= 1 (length children))
+		 (memq (widget-type (car children))
+		       '(custom-variable custom-face)))
+	    (yes-or-no-p "Save all settings in this buffer? "))
+	(progn
+	  (mapc (lambda (child)
+		  (when (memq (widget-get child :custom-state)
+			      '(modified set changed rogue))
+		    (widget-apply child :custom-save)))
+		children)
+	  (custom-save-all))
+      (message "Aborted"))))
 
 (defvar custom-reset-menu
   '(("Undo Edits" . Custom-reset-current)
@@ -790,27 +797,33 @@
 (defun Custom-reset-current (&rest ignore)
   "Reset all edited settings in the buffer to show their current values."
   (interactive)
-  (if (y-or-n-p "Reset all settings' buffer text to show current values? ")
-      (let ((children custom-options))
+  (let ((children custom-options))
+    (if (or (and (= 1 (length children))
+		 (memq (widget-type (car children))
+		       '(custom-variable custom-face)))
+	    (y-or-n-p "Reset all settings' buffer text to show current values?  "))
 	(mapc (lambda (widget)
 		(if (memq (widget-get widget :custom-state)
 			  '(modified changed))
 		    (widget-apply widget :custom-reset-current)))
-	      children))
-    (message "Aborted")))
+	      children)
+      (message "Aborted"))))
 
 (defun Custom-reset-saved (&rest ignore)
   "Reset all edited or set settings in the buffer to their saved value.
 This also shows the saved values in the buffer."
   (interactive)
-  (if (y-or-n-p "Reset all settings (current values and buffer text) to saved values? ")
-      (let ((children custom-options))
+  (let ((children custom-options))
+    (if (or (and (= 1 (length children))
+		 (memq (widget-type (car children))
+		       '(custom-variable custom-face)))
+	    (y-or-n-p "Reset all settings (current values and buffer text) to saved values? "))
 	(mapc (lambda (widget)
 		(if (memq (widget-get widget :custom-state)
 			  '(modified set changed rogue))
 		    (widget-apply widget :custom-reset-saved)))
-	      children))
-    (message "Aborted")))
+	      children)
+      (message "Aborted"))))
 
 (defun Custom-reset-standard (&rest ignore)
   "Erase all customization (either current or saved) for the group members.