Mercurial > emacs
changeset 66586:c948bf4e448e
(savehist-mode) <defcustom>: Use custom-set-minor-mode if available.
(savehist-mode) <defun>: Run the minor mode hook, set the custom state
and emit a message if applicable.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 01 Nov 2005 06:09:32 +0000 |
parents | 00e4363eadb1 |
children | 809641367405 |
files | lisp/savehist.el |
diffstat | 1 files changed, 31 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/savehist.el Tue Nov 01 05:49:46 2005 +0000 +++ b/lisp/savehist.el Tue Nov 01 06:09:32 2005 +0000 @@ -40,7 +40,7 @@ ;; or with customize: `M-x customize-option RET savehist-mode RET'. ;; ;; You can also explicitly save history with `M-x savehist-save' and -;; load it by loading the `savehist-file' with `M-x load'. +;; load it by loading the `savehist-file' with `M-x load-file'. ;; If you are using a version of Emacs that does not ship with this ;; package, be sure to have `savehist.el' in a directory that is in @@ -64,7 +64,9 @@ Set this by calling the `savehist-mode' function or using the customize interface." :type 'boolean - :set (lambda (symbol value) (savehist-mode (or value 0))) + :set (if (fboundp 'custom-set-minor-mode) + 'custom-set-minor-mode + (lambda (symbol value) (funcall symbol (or value 0)))) :initialize 'custom-initialize-default :require 'savehist :group 'savehist) @@ -128,12 +130,17 @@ :group 'savehist) (defcustom savehist-save-hook nil - "Hook called by savehist-save before saving the variables. + "Hook called by `savehist-save' before saving the variables. You can use this hook to influence choice and content of variables to save." :type 'hook) -(defvar savehist-coding-system (if (featurep 'xemacs) 'iso-2022-8 'utf-8) +(defvar savehist-coding-system + ;; UTF-8 is usually preferable to ISO-2022-8 when available, but under + ;; XEmacs, UTF-8 is provided by external packages, and may not always be + ;; available, so even if it currently is available, we prefer not to + ;; use is. + (if (featurep 'xemacs) 'iso-2022-8 'utf-8) "The coding system savehist uses for saving the minibuffer history. Changing this value while Emacs is running is supported, but considered unwise, unless you know what you are doing.") @@ -150,14 +157,15 @@ along with minibuffer history. You can change its value off `savehist-save-hook' to influence which variables are saved.") -;; Coding system without any conversion, used for calculating an -;; internal checksum. Should be as fast as possible, ideally simply -;; exposing the internal representation of buffer text. -(defconst savehist-no-conversion (if (featurep 'xemacs) 'binary 'no-conversion)) +(defconst savehist-no-conversion (if (featurep 'xemacs) 'binary 'no-conversion) + "Coding system without conversion, used for calculating internal checksums. +Should be as fast as possible, ideally simply exposing the internal +representation of buffer text.") -;; Whether the history has already been loaded. This prevents -;; toggling savehist-mode from destroying existing minibuffer history. -(defvar savehist-loaded nil) +(defvar savehist-loaded nil + "Whether the history has already been loaded. +This prevents toggling `savehist-mode' from destroying existing +minibuffer history.") (eval-when-compile (when (featurep 'xemacs) @@ -201,7 +209,18 @@ (setq savehist-mode nil) (savehist-uninstall) (signal (car errvar) (cdr errvar))))) - (savehist-install))) + (savehist-install)) + + ;; End with the usual minor-mode conventions normally provided + ;; transparently by define-minor-mode. + (run-hooks 'savehist-mode-hook) + (if (interactive-p) + (progn + (customize-mark-as-set 'savehist-mode) + (unless (current-message) + (message "Savehist mode %sabled" (if savehist-mode "en" "dis"))))) + ;; Return the new setting. + savehist-mode) (add-minor-mode 'savehist-mode "") (defun savehist-load ()