# HG changeset patch # User Stefan Monnier # Date 1132007435 0 # Node ID 17486c85326e85830a9d3e78aecb4690c29f5ea5 # Parent 5b337342659501ee9d4d0cca18c9fd71c99520d9 (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. diff -r 5b3373426595 -r 17486c85326e lisp/ChangeLog --- a/lisp/ChangeLog Mon Nov 14 22:19:28 2005 +0000 +++ b/lisp/ChangeLog Mon Nov 14 22:30:35 2005 +0000 @@ -1,3 +1,13 @@ +2005-11-14 Hrvoje Niksic + + * savehist.el (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. + 2005-11-14 Stefan Monnier * files.el (write-file): Refresh VC status. diff -r 5b3373426595 -r 17486c85326e lisp/savehist.el --- a/lisp/savehist.el Mon Nov 14 22:19:28 2005 +0000 +++ b/lisp/savehist.el Mon Nov 14 22:30:35 2005 +0000 @@ -4,7 +4,7 @@ ;; Author: Hrvoje Niksic ;; 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 @@ 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 @@ 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 @@ (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 @@ (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)