From: Jonas Bernoulli <jonas@bernoul.li>
To: 41276@debbugs.gnu.org
Subject: bug#41276: [PATCH 4/9] Split EasyPG libraries into outline sections
Date: Thu, 14 May 2020 22:16:13 +0200 [thread overview]
Message-ID: <20200514201618.26313-4-jonas@bernoul.li> (raw)
In-Reply-To: <20200514201618.26313-1-jonas@bernoul.li>
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@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@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@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@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@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
next prev parent reply other threads:[~2020-05-14 20:16 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-14 19:13 bug#41276: [PATCH 0/9] Various small improvements to EasyPG Jonas Bernoulli
2020-05-14 19:13 ` bug#41272: [PATCH 1/9] * lisp/epa.el (epa-faces): Move definition Jonas Bernoulli
2020-05-14 19:13 ` bug#41269: [PATCH 2/9] Add all epa faces to epa-faces Custom group Jonas Bernoulli
2020-05-14 19:13 ` bug#41270: [PATCH 3/9] * lisp/epg-config.el (epg-config--make-gpg-configuration): Fix indentation Jonas Bernoulli
2020-05-14 19:13 ` bug#41275: [PATCH 4/9] Split EasyPG libraries into outline sections Jonas Bernoulli
2020-05-14 19:13 ` bug#41277: [PATCH 5/9] Improve and add doc-strings Jonas Bernoulli
2020-05-14 19:13 ` bug#41268: [PATCH 6/9] Drop unnecessary backward compatibility aliases Jonas Bernoulli
2020-05-14 19:13 ` bug#41271: [PATCH 7/9] Cosmetic changes to epa libraries Jonas Bernoulli
2020-05-14 19:13 ` bug#41273: [PATCH 8/9] epa-key-list-mode-map: Use widget-keymap as parent keymap Jonas Bernoulli
2020-05-14 19:13 ` bug#41274: [PATCH 9/9] * lisp/epa.el (epa-show-key): New command Jonas Bernoulli
2020-06-23 22:57 ` Basil L. Contovounesios
2020-07-07 15:34 ` Jonas Bernoulli
[not found] ` <handler.41276.B.15894836275636.ack@debbugs.gnu.org>
2020-05-14 20:14 ` bug#41276: Acknowledgement ([PATCH 0/9] Various small improvements to EasyPG) Jonas Bernoulli
2020-05-14 22:33 ` Stefan Kangas
2020-05-15 7:26 ` Eli Zaretskii
2020-05-15 11:27 ` Jonas Bernoulli
2020-05-15 11:52 ` Eli Zaretskii
2020-05-15 16:56 ` Jonas Bernoulli
2020-05-15 17:42 ` Eli Zaretskii
2020-05-15 22:42 ` Jonas Bernoulli
2020-05-16 6:45 ` Eli Zaretskii
2020-05-14 20:16 ` bug#41276: [PATCH 1/9] * lisp/epa.el (epa-faces): Move definition Jonas Bernoulli
2020-05-14 20:16 ` bug#41276: [PATCH 2/9] Add all epa faces to epa-faces Custom group Jonas Bernoulli
2020-05-15 9:32 ` Robert Pluim
2020-06-23 22:57 ` Basil L. Contovounesios
2020-07-07 15:32 ` Jonas Bernoulli
2020-05-14 20:16 ` bug#41276: [PATCH 3/9] * lisp/epg-config.el (epg-config--make-gpg-configuration): Fix indentation Jonas Bernoulli
2020-05-14 20:16 ` Jonas Bernoulli [this message]
2020-05-14 20:16 ` bug#41276: [PATCH 5/9] Improve and add doc-strings Jonas Bernoulli
2020-05-14 20:16 ` bug#41276: [PATCH 6/9] Drop unnecessary backward compatibility aliases Jonas Bernoulli
2020-05-14 20:16 ` bug#41276: [PATCH 7/9] Cosmetic changes to epa libraries Jonas Bernoulli
2020-05-14 20:16 ` bug#41276: [PATCH 8/9] epa-key-list-mode-map: Use widget-keymap as parent keymap Jonas Bernoulli
2020-05-15 7:27 ` Eli Zaretskii
2020-05-14 20:16 ` bug#41276: [PATCH 9/9] * lisp/epa.el (epa-show-key): New command Jonas Bernoulli
2020-05-14 23:04 ` bug#41276: [PATCH 0/9] Various small improvements to EasyPG Stefan Kangas
2020-05-15 9:26 ` Robert Pluim
2020-05-25 1:34 ` Noam Postavsky
2020-07-17 7:30 ` Robert Pluim
2020-07-07 15:47 ` bug#41276: [PATCH v2 0/8] " Jonas Bernoulli
2020-07-07 15:47 ` bug#41276: [PATCH v2 1/8] * lisp/epa.el (epa-faces): Move definition Jonas Bernoulli
2020-07-07 15:47 ` bug#41276: [PATCH v2 2/8] Add all epa faces to epa-faces Custom group Jonas Bernoulli
2020-07-07 15:47 ` bug#41276: [PATCH v2 3/8] * lisp/epg-config.el (epg-config--make-gpg-configuration): Fix indentation Jonas Bernoulli
2020-07-07 15:47 ` bug#41276: [PATCH v2 4/8] Improve and add doc-strings Jonas Bernoulli
2020-07-07 15:47 ` bug#41276: [PATCH v2 5/8] Drop unnecessary backward compatibility aliases Jonas Bernoulli
2020-07-07 15:47 ` bug#41276: [PATCH v2 6/8] Cosmetic changes to epa libraries Jonas Bernoulli
2020-07-07 15:47 ` bug#41276: [PATCH v2 7/8] epa-key-list-mode-map: Use widget-keymap as parent keymap Jonas Bernoulli
2020-07-07 15:47 ` bug#41276: [PATCH v2 8/8] * lisp/epa.el (epa-show-key): New command Jonas Bernoulli
2020-07-07 18:30 ` bug#41276: [PATCH v2 0/8] Various small improvements to EasyPG Eli Zaretskii
2020-07-07 21:09 ` Jonas Bernoulli
2020-07-08 2:29 ` Eli Zaretskii
2020-07-08 12:08 ` Jonas Bernoulli
2020-07-14 18:09 ` Jonas Bernoulli
2020-07-14 18:16 ` Eli Zaretskii
2020-07-14 18:27 ` Jonas Bernoulli
2020-07-14 18:57 ` Eli Zaretskii
2020-07-14 20:20 ` Jonas Bernoulli
2020-07-15 2:22 ` Eli Zaretskii
2020-08-05 19:03 ` bug#41276: [PATCH 0/9] " Lars Ingebrigtsen
2020-08-06 7:22 ` bug#41268: " Jonas Bernoulli
2020-08-06 7:26 ` Lars Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200514201618.26313-4-jonas@bernoul.li \
--to=jonas@bernoul.li \
--cc=41276@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.