[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#69116: 29.1; plstore.el failed when save using EasyPG
From: |
LdBeth |
Subject: |
bug#69116: 29.1; plstore.el failed when save using EasyPG |
Date: |
Tue, 13 Feb 2024 23:37:23 -0600 |
User-agent: |
Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (Gojō) APEL-LB/10.8 EasyPG/1.0.0 Emacs/29.1 (x86_64-apple-darwin20.6.0) MULE/6.0 (HANACHIRUSATO) |
It seems to be the residue of bug #63256, with GnuPG 2.4.4 and set epg
to use loopback pinentry the plstore.el still failed to encrypt file.
The result below is produced without using init file on macOS.
$ gpg2 --version
gpg (GnuPG) 2.4.4
libgcrypt 1.10.3
Copyright (C) 2024 g10 Code GmbH
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /Users/ldbeth/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
$ cat .gnupg/gpg-agent.conf
allow-loopback-pinentry
default-cache-ttl 34560000
max-cache-ttl 34560000
(setq epg-pinentry-mode 'loopback)
(require 'plstore)
(setq store (plstore-open (expand-file-name "~/foo")))
(plstore-put store "as" '(:host "bar.example.kk") '(:user "ba"))
(plstore-save store)
Debugger entered--Lisp error: (error "Process epg not running: exited
abnormally with co...")
process-send-string(#<process epg> "abcdef\n")
(progn (setq passphrase-with-new-line (concat passphrase "\n")) (clear-string
passphrase) (setq passphrase nil) (if epg-passphrase-coding-system (progn (setq
encoded-passphrase-with-new-line (encode-coding-string passphrase-with-new-line
(coding-system-change-eol-conversion epg-passphrase-coding-system 'unix)))
(clear-string passphrase-with-new-line) (setq passphrase-with-new-line nil))
(progn (setq encoded-passphrase-with-new-line passphrase-with-new-line) (setq
passphrase-with-new-line nil))) (process-send-string (progn (or (progn (and
(memq (type-of context) cl-struct-epg-context-tags) t)) (signal
'wrong-type-argument (list 'epg-context context))) (aref context 16))
encoded-passphrase-with-new-line))
(if passphrase (progn (setq passphrase-with-new-line (concat passphrase
"\n")) (clear-string passphrase) (setq passphrase nil) (if
epg-passphrase-coding-system (progn (setq encoded-passphrase-with-new-line
(encode-coding-string passphrase-with-new-line
(coding-system-change-eol-conversion epg-passphrase-coding-system 'unix)))
(clear-string passphrase-with-new-line) (setq passphrase-with-new-line nil))
(progn (setq encoded-passphrase-with-new-line passphrase-with-new-line) (setq
passphrase-with-new-line nil))) (process-send-string (progn (or (progn (and
(memq ... cl-struct-epg-context-tags) t)) (signal 'wrong-type-argument (list
'epg-context context))) (aref context 16)) encoded-passphrase-with-new-line)))
(progn (setq passphrase (funcall (car (progn (or (progn (and ... t)) (signal
'wrong-type-argument (list ... context))) (aref context 10))) context
epg-key-id (cdr (progn (or (progn (and ... t)) (signal 'wrong-type-argument
(list ... context))) (aref context 10))))) (if passphrase (progn (setq
passphrase-with-new-line (concat passphrase "\n")) (clear-string passphrase)
(setq passphrase nil) (if epg-passphrase-coding-system (progn (setq
encoded-passphrase-with-new-line (encode-coding-string passphrase-with-new-line
(coding-system-change-eol-conversion epg-passphrase-coding-system ...)))
(clear-string passphrase-with-new-line) (setq passphrase-with-new-line nil))
(progn (setq encoded-passphrase-with-new-line passphrase-with-new-line) (setq
passphrase-with-new-line nil))) (process-send-string (progn (or (progn (and ...
t)) (signal 'wrong-type-argument (list ... context))) (aref context 16))
encoded-passphrase-with-new-line))))
(condition-case nil (progn (setq passphrase (funcall (car (progn (or (progn
...) (signal ... ...)) (aref context 10))) context epg-key-id (cdr (progn (or
(progn ...) (signal ... ...)) (aref context 10))))) (if passphrase (progn (setq
passphrase-with-new-line (concat passphrase "\n")) (clear-string passphrase)
(setq passphrase nil) (if epg-passphrase-coding-system (progn (setq
encoded-passphrase-with-new-line (encode-coding-string passphrase-with-new-line
...)) (clear-string passphrase-with-new-line) (setq passphrase-with-new-line
nil)) (progn (setq encoded-passphrase-with-new-line passphrase-with-new-line)
(setq passphrase-with-new-line nil))) (process-send-string (progn (or (progn
...) (signal ... ...)) (aref context 16)) encoded-passphrase-with-new-line))))
(quit (epg-context-set-result-for context 'error (cons '(quit)
(epg-context-result-for context 'error))) (delete-process (progn (or (progn
(and (memq ... cl-struct-epg-context-tags) t)) (signal 'wrong-type-argument
(list 'epg-
context context))) (aref context 16)))))
(unwind-protect (condition-case nil (progn (setq passphrase (funcall (car
(progn (or ... ...) (aref context 10))) context epg-key-id (cdr (progn (or ...
...) (aref context 10))))) (if passphrase (progn (setq passphrase-with-new-line
(concat passphrase "\n")) (clear-string passphrase) (setq passphrase nil) (if
epg-passphrase-coding-system (progn (setq encoded-passphrase-with-new-line ...)
(clear-string passphrase-with-new-line) (setq passphrase-with-new-line nil))
(progn (setq encoded-passphrase-with-new-line passphrase-with-new-line) (setq
passphrase-with-new-line nil))) (process-send-string (progn (or ... ...) (aref
context 16)) encoded-passphrase-with-new-line)))) (quit
(epg-context-set-result-for context 'error (cons '(quit)
(epg-context-result-for context 'error))) (delete-process (progn (or (progn
(and ... t)) (signal 'wrong-type-argument (list ... context))) (aref context
16))))) (if passphrase (clear-string passphrase)) (if passphrase-with-new-line
(clear-string passphrase-w
ith-new-line)) (if encoded-passphrase-with-new-line (clear-string
encoded-passphrase-with-new-line)))
(let (inhibit-quit passphrase passphrase-with-new-line
encoded-passphrase-with-new-line) (unwind-protect (condition-case nil (progn
(setq passphrase (funcall (car (progn ... ...)) context epg-key-id (cdr (progn
... ...)))) (if passphrase (progn (setq passphrase-with-new-line (concat
passphrase "\n")) (clear-string passphrase) (setq passphrase nil) (if
epg-passphrase-coding-system (progn ... ... ...) (progn ... ...))
(process-send-string (progn ... ...) encoded-passphrase-with-new-line)))) (quit
(epg-context-set-result-for context 'error (cons '(quit)
(epg-context-result-for context 'error))) (delete-process (progn (or (progn
...) (signal ... ...)) (aref context 16))))) (if passphrase (clear-string
passphrase)) (if passphrase-with-new-line (clear-string
passphrase-with-new-line)) (if encoded-passphrase-with-new-line (clear-string
encoded-passphrase-with-new-line))))
(progn (if (progn (or (progn (and (memq (type-of context)
cl-struct-epg-context-tags) t)) (signal 'wrong-type-argument (list 'epg-context
context))) (aref context 10)) nil (error "Variable `passphrase-callback' not
set")) (let (inhibit-quit passphrase passphrase-with-new-line
encoded-passphrase-with-new-line) (unwind-protect (condition-case nil (progn
(setq passphrase (funcall (car ...) context epg-key-id (cdr ...))) (if
passphrase (progn (setq passphrase-with-new-line ...) (clear-string passphrase)
(setq passphrase nil) (if epg-passphrase-coding-system ... ...)
(process-send-string ... encoded-passphrase-with-new-line)))) (quit
(epg-context-set-result-for context 'error (cons '... (epg-context-result-for
context ...))) (delete-process (progn (or ... ...) (aref context 16))))) (if
passphrase (clear-string passphrase)) (if passphrase-with-new-line
(clear-string passphrase-with-new-line)) (if encoded-passphrase-with-new-line
(clear-string encoded-passphrase-with-new-line)))))
(if (and epg-key-id (string-match "\\`passphrase\\." string)) (progn (if
(progn (or (progn (and (memq ... cl-struct-epg-context-tags) t)) (signal
'wrong-type-argument (list 'epg-context context))) (aref context 10)) nil
(error "Variable `passphrase-callback' not set")) (let (inhibit-quit passphrase
passphrase-with-new-line encoded-passphrase-with-new-line) (unwind-protect
(condition-case nil (progn (setq passphrase (funcall ... context epg-key-id
...)) (if passphrase (progn ... ... ... ... ...))) (quit
(epg-context-set-result-for context 'error (cons ... ...)) (delete-process
(progn ... ...)))) (if passphrase (clear-string passphrase)) (if
passphrase-with-new-line (clear-string passphrase-with-new-line)) (if
encoded-passphrase-with-new-line (clear-string
encoded-passphrase-with-new-line))))))
epg--status-GET_HIDDEN(#s(epg-context :protocol OpenPGP :program
"/usr/local/bin/gpg2" :home-directory nil :armor t :textmode nil :include-certs
nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil
:passphrase-callback (plstore-passphrase-callback-function . [#<buffer plstore
/Users/ldbeth/foo> (("as" :secret-user t :host "bar.example.kk")) nil (("as"
:user "ba")) (("as" :user "ba" :host "bar.example.kk"))]) :progress-callback
nil :edit-callback nil :signers nil :sender nil :sig-notations nil :process
#<process epg> :output-file
"/var/folders/0g/jfnmzzj15ms8p2zcgz88d4rr0000gn/T/e..." :result nil :operation
encrypt :pinentry-mode loopback :error-output "" :error-buffer #<buffer
*epg-error*>) "passphrase.enter")
funcall(epg--status-GET_HIDDEN #s(epg-context :protocol OpenPGP :program
"/usr/local/bin/gpg2" :home-directory nil :armor t :textmode nil :include-certs
nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil
:passphrase-callback (plstore-passphrase-callback-function . [#<buffer plstore
/Users/ldbeth/foo> (("as" :secret-user t :host "bar.example.kk")) nil (("as"
:user "ba")) (("as" :user "ba" :host "bar.example.kk"))]) :progress-callback
nil :edit-callback nil :signers nil :sender nil :sig-notations nil :process
#<process epg> :output-file
"/var/folders/0g/jfnmzzj15ms8p2zcgz88d4rr0000gn/T/e..." :result nil :operation
encrypt :pinentry-mode loopback :error-output "" :error-buffer #<buffer
*epg-error*>) "passphrase.enter")
(if (and symbol (fboundp symbol)) (funcall symbol epg-context string))
(if (eq (progn (or (progn (and (memq (type-of epg-context)
cl-struct-epg-context-tags) t)) (signal 'wrong-type-argument (list 'epg-context
epg-context))) (aref epg-context 19)) 'edit-key) (funcall (car (progn (or
(progn (and (memq ... cl-struct-epg-context-tags) t)) (signal
'wrong-type-argument (list 'epg-context epg-context))) (aref epg-context 12)))
epg-context status string (cdr (progn (or (progn (and (memq ...
cl-struct-epg-context-tags) t)) (signal 'wrong-type-argument (list 'epg-context
epg-context))) (aref epg-context 12)))) (setq symbol (intern-soft (concat
"epg--status-" status))) (if (and symbol (fboundp symbol)) (funcall symbol
epg-context string)))
(let ((status (match-string 1)) (string (match-string 2)) symbol) (if (member
status epg-pending-status-list) (setq epg-pending-status-list nil)) (if (eq
(progn (or (progn (and (memq ... cl-struct-epg-context-tags) t)) (signal
'wrong-type-argument (list 'epg-context epg-context))) (aref epg-context 19))
'edit-key) (funcall (car (progn (or (progn (and ... t)) (signal
'wrong-type-argument (list ... epg-context))) (aref epg-context 12)))
epg-context status string (cdr (progn (or (progn (and ... t)) (signal
'wrong-type-argument (list ... epg-context))) (aref epg-context 12)))) (setq
symbol (intern-soft (concat "epg--status-" status))) (if (and symbol (fboundp
symbol)) (funcall symbol epg-context string))) (setq epg-last-status (cons
status string)))
(if (looking-at "\\[GNUPG:] \\([A-Z_]+\\) ?\\(.*\\)") (let ((status
(match-string 1)) (string (match-string 2)) symbol) (if (member status
epg-pending-status-list) (setq epg-pending-status-list nil)) (if (eq (progn (or
(progn (and ... t)) (signal 'wrong-type-argument (list ... epg-context))) (aref
epg-context 19)) 'edit-key) (funcall (car (progn (or (progn ...) (signal ...
...)) (aref epg-context 12))) epg-context status string (cdr (progn (or (progn
...) (signal ... ...)) (aref epg-context 12)))) (setq symbol (intern-soft
(concat "epg--status-" status))) (if (and symbol (fboundp symbol)) (funcall
symbol epg-context string))) (setq epg-last-status (cons status string))))
(while (looking-at ".*\n") (if (looking-at "\\[GNUPG:] \\([A-Z_]+\\)
?\\(.*\\)") (let ((status (match-string 1)) (string (match-string 2)) symbol)
(if (member status epg-pending-status-list) (setq epg-pending-status-list nil))
(if (eq (progn (or (progn ...) (signal ... ...)) (aref epg-context 19))
'edit-key) (funcall (car (progn (or ... ...) (aref epg-context 12)))
epg-context status string (cdr (progn (or ... ...) (aref epg-context 12))))
(setq symbol (intern-soft (concat "epg--status-" status))) (if (and symbol
(fboundp symbol)) (funcall symbol epg-context string))) (setq epg-last-status
(cons status string)))) (forward-line) (setq epg-read-point (point)))
(let ((epg-process-filter-running t)) (goto-char epg-read-point)
(beginning-of-line) (while (looking-at ".*\n") (if (looking-at "\\[GNUPG:]
\\([A-Z_]+\\) ?\\(.*\\)") (let ((status (match-string 1)) (string (match-string
2)) symbol) (if (member status epg-pending-status-list) (setq
epg-pending-status-list nil)) (if (eq (progn (or ... ...) (aref epg-context
19)) 'edit-key) (funcall (car (progn ... ...)) epg-context status string (cdr
(progn ... ...))) (setq symbol (intern-soft (concat "epg--status-" status)))
(if (and symbol (fboundp symbol)) (funcall symbol epg-context string))) (setq
epg-last-status (cons status string)))) (forward-line) (setq epg-read-point
(point))))
(if epg-process-filter-running nil (let ((epg-process-filter-running t))
(goto-char epg-read-point) (beginning-of-line) (while (looking-at ".*\n") (if
(looking-at "\\[GNUPG:] \\([A-Z_]+\\) ?\\(.*\\)") (let ((status (match-string
1)) (string (match-string 2)) symbol) (if (member status
epg-pending-status-list) (setq epg-pending-status-list nil)) (if (eq (progn ...
...) 'edit-key) (funcall (car ...) epg-context status string (cdr ...)) (setq
symbol (intern-soft ...)) (if (and symbol ...) (funcall symbol epg-context
string))) (setq epg-last-status (cons status string)))) (forward-line) (setq
epg-read-point (point)))))
(save-excursion (goto-char (point-max)) (insert input) (if
epg-process-filter-running nil (let ((epg-process-filter-running t)) (goto-char
epg-read-point) (beginning-of-line) (while (looking-at ".*\n") (if (looking-at
"\\[GNUPG:] \\([A-Z_]+\\) ?\\(.*\\)") (let ((status ...) (string ...) symbol)
(if (member status epg-pending-status-list) (setq epg-pending-status-list nil))
(if (eq ... ...) (funcall ... epg-context status string ...) (setq symbol ...)
(if ... ...)) (setq epg-last-status (cons status string)))) (forward-line)
(setq epg-read-point (point))))))
(save-current-buffer (set-buffer (process-buffer process)) (save-excursion
(goto-char (point-max)) (insert input) (if epg-process-filter-running nil (let
((epg-process-filter-running t)) (goto-char epg-read-point) (beginning-of-line)
(while (looking-at ".*\n") (if (looking-at "\\[GNUPG:] \\([A-Z_]+\\)
?\\(.*\\)") (let (... ... symbol) (if ... ...) (if ... ... ... ...) (setq
epg-last-status ...))) (forward-line) (setq epg-read-point (point)))))))
(if (buffer-live-p (process-buffer process)) (save-current-buffer (set-buffer
(process-buffer process)) (save-excursion (goto-char (point-max)) (insert
input) (if epg-process-filter-running nil (let ((epg-process-filter-running t))
(goto-char epg-read-point) (beginning-of-line) (while (looking-at ".*\n") (if
(looking-at "\\[GNUPG:] \\([A-Z_]+\\) ?\\(.*\\)") (let ... ... ... ...))
(forward-line) (setq epg-read-point (point))))))))
epg--process-filter(#<process epg> "[GNUPG:] NEED_PASSPHRASE_SYM 9 3
8\n[GNUPG:] INQUIR...")
accept-process-output(#<process epg> 1)
(while (eq (process-status (progn (or (progn (and (memq ...
cl-struct-epg-context-tags) t)) (signal 'wrong-type-argument (list 'epg-context
context))) (aref context 16))) 'run) (accept-process-output (progn (or (progn
(and (memq (type-of context) cl-struct-epg-context-tags) t)) (signal
'wrong-type-argument (list 'epg-context context))) (aref context 16)) 1))
epg-wait-for-completion(#s(epg-context :protocol OpenPGP :program
"/usr/local/bin/gpg2" :home-directory nil :armor t :textmode nil :include-certs
nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil
:passphrase-callback (plstore-passphrase-callback-function . [#<buffer plstore
/Users/ldbeth/foo> (("as" :secret-user t :host "bar.example.kk")) nil (("as"
:user "ba")) (("as" :user "ba" :host "bar.example.kk"))]) :progress-callback
nil :edit-callback nil :signers nil :sender nil :sig-notations nil :process
#<process epg> :output-file
"/var/folders/0g/jfnmzzj15ms8p2zcgz88d4rr0000gn/T/e..." :result nil :operation
encrypt :pinentry-mode loopback :error-output "" :error-buffer #<buffer
*epg-error*>))
(progn (progn (or (progn (and (memq (type-of context)
cl-struct-epg-context-tags) t)) (signal 'wrong-type-argument (list 'epg-context
context))) (let* ((v context)) (aset v 17 (make-temp-file "epg-output"))))
(write-region plain nil input-file nil 'quiet) (epg-start-encrypt context
(record 'epg-data input-file nil) recipients sign always-trust)
(epg-wait-for-completion context) (let ((errors (epg-context-result-for context
'error))) (if (and sign (not (epg-context-result-for context 'sign))) (signal
'epg-error (list "Sign failed" (epg-errors-to-string errors)))) (if errors
(signal 'epg-error (list "Encrypt failed" (epg-errors-to-string errors)))))
(epg-read-output context))
(unwind-protect (progn (progn (or (progn (and (memq (type-of context)
cl-struct-epg-context-tags) t)) (signal 'wrong-type-argument (list 'epg-context
context))) (let* ((v context)) (aset v 17 (make-temp-file "epg-output"))))
(write-region plain nil input-file nil 'quiet) (epg-start-encrypt context
(record 'epg-data input-file nil) recipients sign always-trust)
(epg-wait-for-completion context) (let ((errors (epg-context-result-for context
'error))) (if (and sign (not (epg-context-result-for context 'sign))) (signal
'epg-error (list "Sign failed" (epg-errors-to-string errors)))) (if errors
(signal 'epg-error (list "Encrypt failed" (epg-errors-to-string errors)))))
(epg-read-output context)) (epg-delete-output-file context) (delete-file
input-file) (epg-reset context))
(let ((input-file (make-temp-file "epg-input")) (coding-system-for-write
'binary)) (unwind-protect (progn (progn (or (progn (and (memq ...
cl-struct-epg-context-tags) t)) (signal 'wrong-type-argument (list 'epg-context
context))) (let* ((v context)) (aset v 17 (make-temp-file "epg-output"))))
(write-region plain nil input-file nil 'quiet) (epg-start-encrypt context
(record 'epg-data input-file nil) recipients sign always-trust)
(epg-wait-for-completion context) (let ((errors (epg-context-result-for context
'error))) (if (and sign (not (epg-context-result-for context ...))) (signal
'epg-error (list "Sign failed" (epg-errors-to-string errors)))) (if errors
(signal 'epg-error (list "Encrypt failed" (epg-errors-to-string errors)))))
(epg-read-output context)) (epg-delete-output-file context) (delete-file
input-file) (epg-reset context)))
epg-encrypt-string(#s(epg-context :protocol OpenPGP :program
"/usr/local/bin/gpg2" :home-directory nil :armor t :textmode nil :include-certs
nil :cipher-algorithm nil :digest-algorithm nil :compress-algorithm nil
:passphrase-callback (plstore-passphrase-callback-function . [#<buffer plstore
/Users/ldbeth/foo> (("as" :secret-user t :host "bar.example.kk")) nil (("as"
:user "ba")) (("as" :user "ba" :host "bar.example.kk"))]) :progress-callback
nil :edit-callback nil :signers nil :sender nil :sig-notations nil :process
#<process epg> :output-file
"/var/folders/0g/jfnmzzj15ms8p2zcgz88d4rr0000gn/T/e..." :result nil :operation
encrypt :pinentry-mode loopback :error-output "" :error-buffer #<buffer
*epg-error*>) "((\"as\" :user \"ba\"))\n" nil)
(setq cipher (epg-encrypt-string context (pp-to-string
(plstore--get-secret-alist plstore)) (if (or (eq plstore-select-keys t) (and
(null plstore-select-keys) (not (local-variable-p 'plstore-encrypt-to
(current-buffer))))) (epa-select-keys context "Select recipients for
encryption.\nIf no one is sel..." recipients) (if plstore-encrypt-to
(epg-list-keys context recipients)))))
(let ((context (epg-make-context 'OpenPGP)) (pp-escape-newlines nil)
(recipients (cond ((listp plstore-encrypt-to) plstore-encrypt-to) ((stringp
plstore-encrypt-to) (list plstore-encrypt-to)))) cipher) (progn (or (progn (and
(memq (type-of context) cl-struct-epg-context-tags) t)) (signal
'wrong-type-argument (list 'epg-context context))) (let* ((v context)) (aset v
4 t))) (epg-context-set-passphrase-callback context (cons
#'plstore-passphrase-callback-function plstore)) (setq cipher
(epg-encrypt-string context (pp-to-string (plstore--get-secret-alist plstore))
(if (or (eq plstore-select-keys t) (and (null plstore-select-keys) (not
(local-variable-p ... ...)))) (epa-select-keys context "Select recipients for
encryption.\nIf no one is sel..." recipients) (if plstore-encrypt-to
(epg-list-keys context recipients))))) (goto-char (point-max)) (insert ";;;
secret entries\n" (pp-to-string cipher)))
(if (plstore--get-secret-alist plstore) (let ((context (epg-make-context
'OpenPGP)) (pp-escape-newlines nil) (recipients (cond ((listp
plstore-encrypt-to) plstore-encrypt-to) ((stringp plstore-encrypt-to) (list
plstore-encrypt-to)))) cipher) (progn (or (progn (and (memq (type-of context)
cl-struct-epg-context-tags) t)) (signal 'wrong-type-argument (list 'epg-context
context))) (let* ((v context)) (aset v 4 t)))
(epg-context-set-passphrase-callback context (cons
#'plstore-passphrase-callback-function plstore)) (setq cipher
(epg-encrypt-string context (pp-to-string (plstore--get-secret-alist plstore))
(if (or (eq plstore-select-keys t) (and (null plstore-select-keys) (not ...)))
(epa-select-keys context "Select recipients for encryption.\nIf no one is
sel..." recipients) (if plstore-encrypt-to (epg-list-keys context
recipients))))) (goto-char (point-max)) (insert ";;; secret entries\n"
(pp-to-string cipher))))
plstore--insert-buffer([#<buffer plstore /Users/ldbeth/foo> (("as"
:secret-user t :host "bar.example.kk")) nil (("as" :user "ba")) (("as" :user
"ba" :host "bar.example.kk"))])
(save-current-buffer (set-buffer (plstore--get-buffer plstore))
(erase-buffer) (plstore--insert-buffer plstore) (save-buffer))
plstore-save([#<buffer plstore /Users/ldbeth/foo> (("as" :secret-user t
:host "bar.example.kk")) nil (("as" :user "ba")) (("as" :user "ba" :host
"bar.example.kk"))])
eval((plstore-save store) nil)
elisp--eval-last-sexp(nil)
eval-last-sexp(nil)
funcall-interactively(eval-last-sexp nil)
call-interactively(eval-last-sexp nil nil)
command-execute(eval-last-sexp)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#69116: 29.1; plstore.el failed when save using EasyPG,
LdBeth <=