summaryrefslogtreecommitdiff
path: root/lisp/gnus/plstore.el
diff options
context:
space:
mode:
authorDaiki Ueno <ueno@unixuser.org>2011-07-01 16:35:39 +0900
committerDaiki Ueno <ueno@unixuser.org>2011-07-01 16:35:39 +0900
commitf3078a00412e29aac774f9a6780963313d4aebc9 (patch)
treef062178deca413ec88a0015f2f91fe2082735394 /lisp/gnus/plstore.el
parent85e428791ed26d2094d13a74b0e578e624885d92 (diff)
downloademacs-f3078a00412e29aac774f9a6780963313d4aebc9.tar.gz
emacs-f3078a00412e29aac774f9a6780963313d4aebc9.tar.bz2
emacs-f3078a00412e29aac774f9a6780963313d4aebc9.zip
Add plstore-delete.
* auth-source.el (plstore-delete): Autoload. (auth-source-plstore-search): Support delete operation. * plstore.el (plstore-delete): New function.
Diffstat (limited to 'lisp/gnus/plstore.el')
-rw-r--r--lisp/gnus/plstore.el18
1 files changed, 18 insertions, 0 deletions
diff --git a/lisp/gnus/plstore.el b/lisp/gnus/plstore.el
index 360388d002e..8d973a9b0ae 100644
--- a/lisp/gnus/plstore.el
+++ b/lisp/gnus/plstore.el
@@ -337,6 +337,24 @@ SECRET-KEYS is a plist containing secret data."
(cons (cons name secret-plist) (plstore--get-secret-alist plstore)))))
(plstore--merge-secret plstore)))
+(defun plstore-delete (plstore name)
+ "Delete an entry with NAME from PLSTORE."
+ (let ((entry (assoc name (plstore--get-alist plstore))))
+ (if entry
+ (plstore--set-alist
+ plstore
+ (delq entry (plstore--get-alist plstore))))
+ (setq entry (assoc name (plstore--get-secret-alist plstore)))
+ (if entry
+ (plstore--set-secret-alist
+ plstore
+ (delq entry (plstore--get-secret-alist plstore))))
+ (setq entry (assoc name (plstore--get-merged-alist plstore)))
+ (if entry
+ (plstore--set-merged-alist
+ plstore
+ (delq entry (plstore--get-merged-alist plstore))))))
+
(defvar pp-escape-newlines)
(defun plstore-save (plstore)
"Save the contents of PLSTORE associated with a FILE."