changeset 65225:131c93f081eb

(custom-buffer-sort-alphabetically): Default to t. (custom-save-all): Visit the file if necessary; kill the buffer if we created it. (custom-save-delete): Don't visit file or kill buffer here.
author Richard M. Stallman <rms@gnu.org>
date Tue, 30 Aug 2005 10:35:09 +0000
parents 87efa9b46716
children 596278fa5d70
files lisp/cus-edit.el
diffstat 1 files changed, 30 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/cus-edit.el	Tue Aug 30 10:29:08 2005 +0000
+++ b/lisp/cus-edit.el	Tue Aug 30 10:35:09 2005 +0000
@@ -670,7 +670,7 @@
   :type 'boolean
   :group 'custom-browse)
 
-(defcustom custom-buffer-sort-alphabetically nil
+(defcustom custom-buffer-sort-alphabetically t
   "If non-nil, sort members of each customization group alphabetically."
   :type 'boolean
   :group 'custom-buffer)
@@ -3836,8 +3836,9 @@
 	    (setq magics (cdr magics)))))
       (widget-put widget :custom-state found)))
   (custom-magic-reset widget))
-
-;;; The `custom-save-all' Function.
+
+;;; Reading and writing the custom file.
+
 ;;;###autoload
 (defcustom custom-file nil
   "File used for storing customization information.
@@ -3898,17 +3899,33 @@
 	   (setq user-init-file default-init-file))
 	 user-init-file))))
 
+;;;###autoload
+(defun custom-save-all ()
+  "Save all customizations in `custom-file'."
+  (let* ((filename (custom-file))
+	 (recentf-exclude (if recentf-mode
+			      (cons (concat "\\`"
+					    (regexp-quote (custom-file))
+					    "\\'")
+				    recentf-exclude)))
+	 (old-buffer (find-buffer-visiting filename)))
+    (with-current-buffer (or old-buffer (find-file-noselect filename))
+      (let ((inhibit-read-only t))
+	(custom-save-variables)
+	(custom-save-faces))
+      (let ((file-precious-flag t))
+	(save-buffer))
+      (unless old-buffer
+	(kill-buffer (current-buffer))))))
+
+;; Editing the custom file contents in a buffer.
+
 (defun custom-save-delete (symbol)
-  "Visit `custom-file' and delete all calls to SYMBOL from it.
+  "Delete all calls to SYMBOL from the contents of the current buffer.
 Leave point at the old location of the first such call,
-or (if there were none) at the end of the buffer."
-  (let ((default-major-mode 'emacs-lisp-mode)
-	(recentf-exclude (if recentf-mode
-			     (cons (concat "\\`"
-					   (regexp-quote (custom-file))
-					   "\\'")
-				   recentf-exclude))))
-    (set-buffer (find-file-noselect (custom-file))))
+or (if there were none) at the end of the buffer.
+
+This function does not save the buffer."
   (goto-char (point-min))
   ;; Skip all whitespace and comments.
   (while (forward-comment 1))
@@ -4128,24 +4145,7 @@
 		  (put symbol 'customized-face-comment nil)))))
   ;; We really should update all custom buffers here.
   (custom-save-all))
-
-;;;###autoload
-(defun custom-save-all ()
-  "Save all customizations in `custom-file'."
-  (let ((inhibit-read-only t))
-    (custom-save-variables)
-    (custom-save-faces)
-    (save-excursion
-      (let ((default-major-mode nil)
-	    (recentf-exclude (if recentf-mode
-				 (cons (concat "\\`"
-					       (regexp-quote (custom-file))
-					       "\\'")
-				       recentf-exclude))))
-	(set-buffer (find-file-noselect (custom-file))))
-      (let ((file-precious-flag t))
-	(save-buffer)))))
-
+
 ;;; The Customize Menu.
 
 ;;; Menu support