emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/cus-edit.el


From: Luc Teirlinck
Subject: [Emacs-diffs] Changes to emacs/lisp/cus-edit.el
Date: Sun, 15 Jan 2006 03:15:25 +0000

Index: emacs/lisp/cus-edit.el
diff -u emacs/lisp/cus-edit.el:1.276 emacs/lisp/cus-edit.el:1.277
--- emacs/lisp/cus-edit.el:1.276        Fri Jan 13 19:47:44 2006
+++ emacs/lisp/cus-edit.el      Sun Jan 15 03:15:25 2006
@@ -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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]