From: yamaoka Date: Mon, 12 Dec 2005 15:24:38 +0000 (+0000) Subject: Synch to No Gnus 200512121407. X-Git-Tag: t-gnus-6_17_4-quimby-~180 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=6470eb2c31dc14d6f92e9f1a0ce862143a61a53c;p=elisp%2Fgnus.git- Synch to No Gnus 200512121407. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 3023306..ea6f589 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2005-12-12 Simon Josefsson + + * password.el (password-read-from-cache): Add. + (password-read): Use it. + 2005-12-12 Katsumi Yamaoka * rfc2047.el (rfc2047-charset-to-coding-system): Recognize diff --git a/lisp/password.el b/lisp/password.el index b22d60c..1adeb86 100644 --- a/lisp/password.el +++ b/lisp/password.el @@ -1,6 +1,6 @@ ;;; password.el --- Read passwords from user, possibly using a password cache. -;; Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Simon Josefsson ;; Created: 2003-12-21 @@ -79,21 +79,29 @@ Whether passwords are cached at all is controlled by `password-cache'." (defvar password-data (make-vector 7 0)) +(defun password-read-from-cache (key) + "Obtain passphrase for KEY from time-limited passphrase cache. +Custom variables `password-cache' and `password-cache-expiry' +regulate cache behavior." + (and password-cache + key + (symbol-value (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 separate passwords. The cache is not used if KEY is nil. It is typically a string. The variable `password-cache' control whether the cache is used." - (or (and password-cache - key - (symbol-value (intern-soft key password-data))) + (or (password-read-from-cache key) (read-passwd prompt))) (defun password-read-and-add (prompt &optional key) "Read password, for use with KEY, from user, or from cache if wanted. Then store the password in the cache. Uses `password-read' and -`password-cache-add'." +`password-cache-add'. +Custom variables `password-cache' and `password-cache-expiry' +regulate cache behavior." (let ((password (password-read prompt key))) (when (and password key) (password-cache-add key password))