# HG changeset patch # User Richard M. Stallman # Date 1125398109 0 # Node ID 131c93f081eb602540b2d022f53e28115bfb8fe8 # Parent 87efa9b46716f336c4f6b3cb5220105820f755eb (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. diff -r 87efa9b46716 -r 131c93f081eb lisp/cus-edit.el --- 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