Package: emacs;
Reported by: Jonas Bernoulli <jonas <at> bernoul.li>
Date: Thu, 14 May 2020 19:14:07 UTC
Severity: normal
Tags: patch
Merged with 41268, 41269, 41270, 41271, 41272, 41273, 41274, 41275, 41277
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Message #29 received at 41276 <at> debbugs.gnu.org (full text, mbox):
From: Jonas Bernoulli <jonas <at> bernoul.li> To: 41276 <at> debbugs.gnu.org Subject: [PATCH 4/9] Split EasyPG libraries into outline sections Date: Thu, 14 May 2020 22:16:13 +0200
lisp/epa-dired.el, lisp/epa-file.el, lisp/epa-hook.el, lisp/epa-mail.el, lisp/epa.el, lisp/epg-config.el, lisp/epg.el: Split into outline sections. --- lisp/epa-dired.el | 1 + lisp/epa-file.el | 9 +++++++++ lisp/epa-hook.el | 1 + lisp/epa-mail.el | 9 +++++++++ lisp/epa.el | 23 +++++++++++++++++++++++ lisp/epg-config.el | 8 ++++++++ lisp/epg.el | 26 +++++++++++++++++++++++++- 7 files changed, 76 insertions(+), 1 deletion(-) diff --git a/lisp/epa-dired.el b/lisp/epa-dired.el index f601d42656..1bcfb758ed 100644 --- a/lisp/epa-dired.el +++ b/lisp/epa-dired.el @@ -1,4 +1,5 @@ ;;; epa-dired.el --- the EasyPG Assistant, dired extension -*- lexical-binding: t -*- + ;; Copyright (C) 2006-2020 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno <at> unixuser.org> diff --git a/lisp/epa-file.el b/lisp/epa-file.el index dedf20b0d7..43399d2852 100644 --- a/lisp/epa-file.el +++ b/lisp/epa-file.el @@ -1,4 +1,5 @@ ;;; epa-file.el --- the EasyPG Assistant, transparent file encryption -*- lexical-binding: t -*- + ;; Copyright (C) 2006-2020 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno <at> unixuser.org> @@ -25,6 +26,8 @@ (require 'epa) (require 'epa-hook) +;;; Options + (defcustom epa-file-cache-passphrase-for-symmetric-encryption nil "If non-nil, cache passphrase for symmetric encryption. @@ -49,6 +52,8 @@ epa-file-select-keys (const :tag "Don't ask" silent)) :group 'epa-file) +;;; Other + (defvar epa-file-passphrase-alist nil) (eval-and-compile @@ -82,6 +87,8 @@ epa-file-passphrase-callback-function passphrase)))) (epa-passphrase-callback-function context key-id file))) +;;; File Handler + (defvar epa-inhibit nil "Non-nil means don't try to decrypt .gpg files when operating on them.") @@ -317,6 +324,8 @@ epa-file-write-region (message "Wrote %s" buffer-file-name)))) (put 'write-region 'epa-file 'epa-file-write-region) +;;; Commands + (defun epa-file-select-keys () "Select recipients for encryption." (interactive) diff --git a/lisp/epa-hook.el b/lisp/epa-hook.el index d424e7a9fa..002f46ad27 100644 --- a/lisp/epa-hook.el +++ b/lisp/epa-hook.el @@ -1,4 +1,5 @@ ;;; epa-hook.el --- preloaded code to enable epa-file.el -*- lexical-binding: t -*- + ;; Copyright (C) 2006-2020 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno <at> unixuser.org> diff --git a/lisp/epa-mail.el b/lisp/epa-mail.el index 00f560af0b..4c57235394 100644 --- a/lisp/epa-mail.el +++ b/lisp/epa-mail.el @@ -1,4 +1,5 @@ ;;; epa-mail.el --- the EasyPG Assistant, minor-mode for mail composer -*- lexical-binding: t -*- + ;; Copyright (C) 2006-2020 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno <at> unixuser.org> @@ -25,6 +26,8 @@ (require 'epa) (require 'mail-utils) +;;; Local Mode + (defvar epa-mail-mode-map (let ((keymap (make-sparse-keymap))) (define-key keymap "\C-c\C-ed" 'epa-mail-decrypt) @@ -50,6 +53,8 @@ epa-mail-mode "A minor-mode for composing encrypted/clearsigned mails." nil " epa-mail" epa-mail-mode-map) +;;; Utilities + (defun epa-mail--find-usable-key (keys usage) "Find a usable key from KEYS for USAGE. USAGE would be `sign' or `encrypt'." @@ -64,6 +69,8 @@ epa-mail--find-usable-key (setq pointer (cdr pointer)))) (setq keys (cdr keys))))) +;;; Commands + ;;;###autoload (defun epa-mail-decrypt () "Decrypt OpenPGP armors in the current buffer. @@ -238,6 +245,8 @@ epa-mail-import-keys (interactive) (epa-import-armor-in-region (point-min) (point-max))) +;;; Global Mode + ;;;###autoload (define-minor-mode epa-global-mail-mode "Minor mode to hook EasyPG into Mail mode." diff --git a/lisp/epa.el b/lisp/epa.el index 7fb5a92547..62a4941f9d 100644 --- a/lisp/epa.el +++ b/lisp/epa.el @@ -28,6 +28,8 @@ (eval-when-compile (require 'wid-edit)) (require 'derived) +;;; Options + (defgroup epa nil "The EasyPG Assistant" :version "23.1" @@ -71,6 +73,8 @@ epa-mail-aliases :group 'epa :version "24.4") +;;; Faces + (defgroup epa-faces nil "Faces for epa-mode." :version "23.1" @@ -141,6 +145,8 @@ epa-validity-face-alist :type '(repeat (cons symbol face)) :group 'epa-faces) +;;; Variables + (defvar epa-font-lock-keywords '(("^\\*" (0 'epa-mark)) @@ -245,6 +251,8 @@ epa-info-mode-map (defvar epa-exit-buffer-function #'quit-window) +;;; Key Widget + (define-widget 'epa-key 'push-button "Button for representing an epg-key object." :format "%[%v%]" @@ -286,6 +294,8 @@ epa--key-widget-help-echo (epg-sub-key-id (car (epg-key-sub-key-list (widget-get widget :value)))))) +;;; Modes + (define-derived-mode epa-key-list-mode special-mode "EPA Keys" "Major mode for `epa-list-keys'." (buffer-disable-undo) @@ -309,6 +319,9 @@ epa-info-mode (setq truncate-lines t buffer-read-only t)) +;;; Commands +;;;; Marking + (defun epa-mark-key (&optional arg) "Mark a key on the current line. If ARG is non-nil, unmark the key." @@ -331,12 +344,16 @@ epa-unmark-key (interactive "P") (epa-mark-key (not arg))) +;;;; Quitting + (defun epa-exit-buffer () "Exit the current buffer. `epa-exit-buffer-function' is called if it is set." (interactive) (funcall epa-exit-buffer-function)) +;;;; Listing and Selecting + (defun epa--insert-keys (keys) (save-excursion (save-restriction @@ -500,6 +517,8 @@ epa-select-keys (let ((keys (epg-list-keys context names secret))) (epa--select-keys prompt keys))) +;;;; Key Details + (defun epa--show-key (key) (let* ((primary-sub-key (car (epg-key-sub-key-list key))) (entry (assoc (epg-sub-key-id primary-sub-key) @@ -578,6 +597,8 @@ epa--show-key (goto-char (point-min)) (pop-to-buffer (current-buffer)))) +;;;; Encryption and Signatures + (defun epa-display-info (info) (if epa-popup-info-window (save-selected-window @@ -1178,6 +1199,8 @@ epa-encrypt-region 'start-open t 'end-open t))))) +;;;; Key Management + ;;;###autoload (defun epa-delete-keys (keys &optional allow-secret) "Delete selected KEYS." diff --git a/lisp/epg-config.el b/lisp/epg-config.el index 1c42924652..a148737f1c 100644 --- a/lisp/epg-config.el +++ b/lisp/epg-config.el @@ -25,6 +25,8 @@ (eval-when-compile (require 'cl-lib)) +;;; Constants (1/2) + (defconst epg-package-name "epg" "Name of this package.") @@ -34,6 +36,8 @@ epg-version-number (define-obsolete-variable-alias 'epg-bug-report-address 'report-emacs-bug-address "27.1") +;;; Options + (defgroup epg () "Interface to the GNU Privacy Guard (GnuPG)." :tag "EasyPG" @@ -106,6 +110,8 @@ epg-debug Note that the buffer name starts with a space." :type 'boolean) +;;; Constants (2/2) + (defconst epg-gpg-minimum-version "1.4.3") (defconst epg-gpg2-minimum-version "2.1.6") @@ -133,6 +139,8 @@ epg-config--configuration-constructor-alist either `OpenPGP' or `CMS'. The second element is a function which constructs a configuration object (actually a plist).") +;;; "Configuration" + (defvar epg--configurations nil) ;;;###autoload diff --git a/lisp/epg.el b/lisp/epg.el index 222fd913e1..4bb9e998e1 100644 --- a/lisp/epg.el +++ b/lisp/epg.el @@ -1,4 +1,5 @@ ;;; epg.el --- the EasyPG Library -*- lexical-binding: t -*- + ;; Copyright (C) 1999-2000, 2002-2020 Free Software Foundation, Inc. ;; Author: Daiki Ueno <ueno <at> unixuser.org> @@ -25,6 +26,10 @@ (require 'epg-config) (eval-when-compile (require 'cl-lib)) +(define-error 'epg-error "GPG error") + +;;; Variables + (defvar epg-user-id nil "GnuPG ID of your default identity.") @@ -41,6 +46,8 @@ epg-debug-buffer (defvar epg-agent-file nil) (defvar epg-agent-mtime nil) +;;; Enums + ;; from gnupg/common/openpgpdefs.h (defconst epg-cipher-algorithm-alist '((0 . "NONE") @@ -169,7 +176,8 @@ epg-dn-type-alist (defvar epg-prompt-alist nil) -(define-error 'epg-error "GPG error") +;;; Structs +;;;; Data Struct (cl-defstruct (epg-data (:constructor nil) @@ -180,6 +188,8 @@ 'epg-error (file nil :read-only t) (string nil :read-only t)) +;;;; Context Struct + (cl-defstruct (epg-context (:constructor nil) (:constructor epg-context--make @@ -218,6 +228,8 @@ 'epg-error (error-output "") error-buffer) +;;;; Context Methods + ;; This is not an alias, just so we can mark it as autoloaded. ;;;###autoload (defun epg-make-context (&optional protocol armor textmode include-certs @@ -281,6 +293,8 @@ epg-context-set-signers (declare (obsolete setf "25.1")) (setf (epg-context-signers context) signers)) +;;;; Other Structs + (cl-defstruct (epg-signature (:constructor nil) (:constructor epg-make-signature @@ -385,6 +399,8 @@ epg-context-set-signers secret-unchanged not-imported imports) +;;; Functions + (defun epg-context-result-for (context name) "Return the result of CONTEXT associated with NAME." (cdr (assq name (epg-context-result context)))) @@ -859,6 +875,8 @@ epg--prompt-GET_BOOL-untrusted_key.override (format "Untrusted key %s %s. Use anyway? " key-id user-id)) "Use untrusted key anyway? "))) +;;; Status Functions + (defun epg--status-GET_BOOL (context string) (let (inhibit-quit) (condition-case nil @@ -1234,6 +1252,8 @@ epg--status-IMPORT_RES (epg-context-result-for context 'import-status))) (epg-context-set-result-for context 'import-status nil))) +;;; Functions + (defun epg-passphrase-callback-function (context key-id _handback) (declare (obsolete epa-passphrase-callback-function "23.1")) (if (eq key-id 'SYM) @@ -1303,6 +1323,8 @@ epg--make-sub-key-1 (if (aref line 6) (epg--time-from-seconds (aref line 6))))) +;;; Public Functions + (defun epg-list-keys (context &optional name mode) "Return a list of epg-key objects matched with NAME. If MODE is nil or `public', only public keyring should be searched. @@ -2031,6 +2053,8 @@ epg-edit-key (epg-errors-to-string errors)))))) (epg-reset context))) +;;; Decode Functions + (defun epg--decode-percent-escape (string) (setq string (encode-coding-string string 'raw-text)) (let ((index 0)) -- 2.26.0
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.