X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/7c82f3e23e37cc848a38b1f8be7149fd672a6393..cc39a9dba6e3633e67501eaf0361fb2f040cb064:/lisp/password-cache.el diff --git a/lisp/password-cache.el b/lisp/password-cache.el index 7011a76665..941428d529 100644 --- a/lisp/password-cache.el +++ b/lisp/password-cache.el @@ -1,7 +1,6 @@ ;;; 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 ;; Created: 2003-12-21 @@ -77,6 +76,13 @@ regulate cache behavior." 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 @@ -112,9 +118,10 @@ that a password is invalid, so that `password-read' query the 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)