X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/db0406bb64f7e5dceeb257c7e350f1e80ed9c1c1..9a84bfd6813ca38b8402e4368dcc76e857716cd9:/lisp/savehist.el diff --git a/lisp/savehist.el b/lisp/savehist.el index 653d0312a1..14085e5e57 100644 --- a/lisp/savehist.el +++ b/lisp/savehist.el @@ -1,9 +1,9 @@ ;;; savehist.el --- Save minibuffer history -;; Copyright (C) 1997, 2005-2011 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2005-2014 Free Software Foundation, Inc. ;; Author: Hrvoje Niksic -;; Maintainer: FSF +;; Maintainer: emacs-devel@gnu.org ;; Keywords: minibuffer ;; Version: 24 @@ -49,7 +49,7 @@ (require 'custom) (eval-when-compile - (require 'cl)) + (if (featurep 'xemacs) (require 'cl))) ;; User variables @@ -170,15 +170,19 @@ minibuffer history.") ;;;###autoload (define-minor-mode savehist-mode - "Toggle savehist-mode. -Positive ARG turns on `savehist-mode'. When on, savehist-mode causes -minibuffer history to be saved periodically and when exiting Emacs. -When turned on for the first time in an Emacs session, it causes the -previous minibuffer history to be loaded from `savehist-file'. + "Toggle saving of minibuffer history (Savehist mode). +With a prefix argument ARG, enable Savehist mode if ARG is +positive, and disable it otherwise. If called from Lisp, enable +the mode if ARG is omitted or nil. + +When Savehist mode is enabled, minibuffer history is saved +periodically and when exiting Emacs. When Savehist mode is +enabled for the first time in an Emacs session, it loads the +previous minibuffer history from `savehist-file'. This mode should normally be turned on from your Emacs init file. -Calling it at any other time replaces your current minibuffer histories, -which is probably undesirable." +Calling it at any other time replaces your current minibuffer +histories, which is probably undesirable." :global t (if (not savehist-mode) (savehist-uninstall) @@ -205,6 +209,7 @@ which is probably undesirable." If `savehist-file' is in the old format that doesn't record the value of `savehist-minibuffer-history-variables', that value is deducted from the contents of the file." + (declare (obsolete savehist-mode "22.1")) (savehist-mode 1) ;; Old versions of savehist distributed with XEmacs didn't save ;; savehist-minibuffer-history-variables. If that variable is nil @@ -221,7 +226,6 @@ value is deducted from the contents of the file." ;; Collect VAR, i.e. (nth form 1). (push (nth 1 form) vars)) vars))))) -(make-obsolete 'savehist-load 'savehist-mode "22.1") (defun savehist-install () "Hook savehist into Emacs. @@ -274,6 +278,13 @@ If AUTO-SAVE is non-nil, compare the saved contents to the one last saved, (print-level nil) (print-readably t) (print-quoted t)) + ;; During the 24.3 development, read-passwd had a bug which resulted in + ;; the passwords being saved by savehist. Trim them, retroactively. + ;; This code can be removed after the 24.3 release. + (dolist (sym savehist-minibuffer-history-variables) + (if (and (symbolp sym) (equal (symbol-name sym) "forget-history")) + (setq savehist-minibuffer-history-variables + (delq sym savehist-minibuffer-history-variables)))) ;; Save the minibuffer histories, along with the value of ;; savehist-minibuffer-history-variables itself. (when savehist-save-minibuffer-history @@ -365,9 +376,11 @@ trimming of history lists to `history-length' items." "Return non-nil if VALUE is printable." (cond ;; Quick response for oft-encountered types known to be printable. - ((stringp value)) ((numberp value)) ((symbolp value)) + ;; String without properties + ((and (stringp value) + (equal-including-properties value (substring-no-properties value)))) (t ;; For others, check explicitly. (with-temp-buffer