diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2005-11-14 22:30:35 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2005-11-14 22:30:35 +0000 |
commit | 2d10b62be6e272ceefdfa7d4516f0d8a73781c47 (patch) | |
tree | 82d3034485c54f8591a27b74fdbf49c46e1b0e57 /lisp/savehist.el | |
parent | 8e5c7b90ee28002fa6b4b860d3c69719f865f19a (diff) | |
download | emacs-2d10b62be6e272ceefdfa7d4516f0d8a73781c47.tar.gz |
(savehist-mode): Don't bother with `custom-set-minor-mode.
(savehist-coding-system): Check XEmacs version.
(history-length): Declare also at run time.
(savehist-mode): Don't emit a message. Don't run the minor mode hook.
Don't set the customize state.
(savehist-minibuffer-hook): Special case for when
minibuffer-history-variable is equal to t.
Diffstat (limited to 'lisp/savehist.el')
-rw-r--r-- | lisp/savehist.el | 60 |
1 files changed, 26 insertions, 34 deletions
diff --git a/lisp/savehist.el b/lisp/savehist.el index 6c85fb7c635..b9b0c54aca0 100644 --- a/lisp/savehist.el +++ b/lisp/savehist.el @@ -4,7 +4,7 @@ ;; Author: Hrvoje Niksic <hniksic@xemacs.org> ;; Keywords: minibuffer -;; Version: 19 +;; Version: 23 ;; This file is part of GNU Emacs. @@ -64,9 +64,7 @@ Set this by calling the `savehist-mode' function or using the customize interface." :type 'boolean - :set (if (fboundp 'custom-set-minor-mode) - 'custom-set-minor-mode - (lambda (symbol value) (funcall symbol (or value 0)))) + :set (lambda (symbol value) (savehist-mode (or value 0))) :initialize 'custom-initialize-default :require 'savehist :group 'savehist) @@ -135,12 +133,14 @@ You can use this hook to influence choice and content of variables to save." :type 'hook) -(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) +;; This should be capable of representing characters used by Emacs. +;; We prefer UTF-8 over ISO 2022 because it is well-known outside +;; Mule. XEmacs prir to 21.5 had UTF-8 provided by an external +;; package which may not be loaded, which is why we check for version. +(defvar savehist-coding-system (if (and (featurep 'xemacs) + (<= emacs-major-version 21) + (< emacs-minor-version 5)) + '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.") @@ -157,21 +157,19 @@ The contents of this variable is built while Emacs is running, and saved along with minibuffer history. You can change its value off `savehist-save-hook' to influence which variables are saved.") -(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.") +;; 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)) -(defvar savehist-loaded nil - "Whether the history has already been loaded. -This prevents toggling `savehist-mode' from destroying existing -minibuffer history.") +;; Whether the history has already been loaded. This prevents +;; toggling savehist-mode from destroying existing minibuffer history. +(defvar savehist-loaded nil) -(eval-when-compile - (when (featurep 'xemacs) - ;; Must declare this under XEmacs, which doesn't have built-in - ;; minibuffer history truncation. - (defvar history-length 100))) +(when (featurep 'xemacs) + ;; Must declare this under XEmacs, which doesn't have built-in + ;; minibuffer history truncation. + (defvar history-length 100)) ;; Functions. @@ -210,15 +208,6 @@ which is probably undesirable." (savehist-uninstall) (signal (car errvar) (cdr errvar))))) (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 "") @@ -373,8 +362,11 @@ Does nothing if savehist-mode is off." (error nil)))))) (defun savehist-minibuffer-hook () - (add-to-list 'savehist-minibuffer-history-variables - minibuffer-history-variable)) + ;; XEmacs sets minibuffer-history-variable to t to mean "no history + ;; is being recorded". + (unless (eq minibuffer-history-variable t) + (add-to-list 'savehist-minibuffer-history-variables + minibuffer-history-variable))) (provide 'savehist) |