Function: plstore-put
plstore-put is an autoloaded and byte-compiled function defined in
plstore.el.gz.
Signature
(plstore-put PLSTORE NAME KEYS SECRET-KEYS)
Documentation
Put an entry named NAME in PLSTORE.
KEYS is a plist containing non-secret data. SECRET-KEYS is a plist containing secret data.
Source Code
;; Defined in /usr/src/emacs/lisp/plstore.el.gz
(defun plstore-put (plstore name keys secret-keys)
"Put an entry named NAME in PLSTORE.
KEYS is a plist containing non-secret data.
SECRET-KEYS is a plist containing secret data."
(let (entry
plist
secret-plist
symbol)
(if secret-keys
(plstore--decrypt plstore))
(while secret-keys
(setq symbol
(intern (concat ":secret-"
(substring (symbol-name (car secret-keys)) 1))))
(setq plist (plist-put plist symbol t)
secret-plist (plist-put secret-plist
(car secret-keys) (car (cdr secret-keys)))
secret-keys (nthcdr 2 secret-keys)))
(while keys
(setq symbol
(intern (concat ":secret-"
(substring (symbol-name (car keys)) 1))))
(setq plist (plist-put plist (car keys) (car (cdr keys)))
keys (nthcdr 2 keys)))
(setq entry (assoc name (plstore--get-alist plstore)))
(if entry
(setcdr entry plist)
(plstore--set-alist
plstore
(cons (cons name plist) (plstore--get-alist plstore))))
(when secret-plist
(setq entry (assoc name (plstore--get-secret-alist plstore)))
(if entry
(setcdr entry secret-plist)
(plstore--set-secret-alist
plstore
(cons (cons name secret-plist) (plstore--get-secret-alist plstore)))))
(plstore--merge-secret plstore)))