Function: epa--select-keys
epa--select-keys is a byte-compiled function defined in epa.el.gz.
Signature
(epa--select-keys PROMPT KEYS)
Source Code
;; Defined in /usr/src/emacs/lisp/epa.el.gz
(defun epa--select-keys (prompt keys)
(unless (and epa-keys-buffer
(buffer-live-p epa-keys-buffer))
(setq epa-keys-buffer (generate-new-buffer "*Keys*")))
(save-window-excursion
(with-current-buffer epa-keys-buffer
(epa-key-list-mode)
;; C-c C-c is the usual way to finish the selection (bug#11159).
(define-key (current-local-map) "\C-c\C-c" 'exit-recursive-edit)
(let ((inhibit-read-only t)
buffer-read-only)
(erase-buffer)
(insert prompt "\n"
(substitute-command-keys "\
- `\\[epa-mark-key]' to mark a key on the line
- `\\[epa-unmark-key]' to unmark a key on the line\n"))
(insert-button "[Cancel]"
'action (lambda (_button) (abort-recursive-edit)))
(insert " ")
(insert-button "[OK]"
'action (lambda (_button) (exit-recursive-edit)))
(insert "\n\n")
(epa--insert-keys keys)
(setq epa-exit-buffer-function #'abort-recursive-edit)
(goto-char (point-min))
(let ((display-buffer-mark-dedicated 'soft))
(pop-to-buffer (current-buffer))))
(unwind-protect
(progn
(recursive-edit)
(epa--marked-keys))
(kill-buffer epa-keys-buffer)))))