;;; password-cache.el --- Read passwords, possibly using a password cache.
-;; Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1999-2000, 2003-2011 Free Software Foundation, Inc.
;; Author: Simon Josefsson <simon@josefsson.org>
;; Created: 2003-12-21
key
(symbol-value (intern-soft key password-data))))
+;;;###autoload
+(defun password-in-cache-p (key)
+ "Check if KEY is in the cache."
+ (and password-cache
+ key
+ (intern-soft key password-data)))
+
(defun password-read (prompt &optional key)
"Read password, for use with KEY, from user, or from cache if wanted.
KEY indicate the purpose of the password, so the cache can
user again."
(let ((password (symbol-value (intern-soft key password-data))))
(when password
- (if (fboundp 'clear-string)
- (clear-string password)
- (fillarray password ?_))
+ (when (stringp password)
+ (if (fboundp 'clear-string)
+ (clear-string password)
+ (fillarray password ?_)))
(unintern key password-data))))
(defun password-cache-add (key password)