From: Jonas Bernoulli <jonas@bernoul.li>
To: notmuch@notmuchmail.org
Subject: [PATCH v2 05/23] emacs: Only set one variable per setq form
Date: Thu, 6 Aug 2020 09:18:52 +0200 [thread overview]
Message-ID: <20200806071910.10369-6-jonas@bernoul.li> (raw)
In-Reply-To: <20200806071910.10369-1-jonas@bernoul.li>
It's a bit weird to avoid having to write the "(setq ... )" more than
once, just because we can. In a language that uses '=' for the same
purpose we also happily use that once per assignment.
While there are no benefit to using just one 'setq' there are some
drawbacks. It is not always clear on first what is a key and what a
value and as a result it is easy to make a mistake. Also it becomes
harder to comment out just one assignment.
---
emacs/notmuch-address.el | 6 +++---
emacs/notmuch-crypto.el | 23 ++++++++++++-----------
emacs/notmuch-lib.el | 8 ++++----
emacs/notmuch-show.el | 26 ++++++++++++++------------
emacs/notmuch-tree.el | 4 ++--
emacs/notmuch.el | 35 ++++++++++++++++++-----------------
6 files changed, 53 insertions(+), 49 deletions(-)
diff --git a/emacs/notmuch-address.el b/emacs/notmuch-address.el
index 09dda247..4db7096c 100644
--- a/emacs/notmuch-address.el
+++ b/emacs/notmuch-address.el
@@ -381,9 +381,9 @@ (defun notmuch-address--load-address-hash ()
notmuch-address-internal-completion)
(equal (plist-get load-plist :version)
notmuch-address--save-hash-version))
- (setq notmuch-address-last-harvest (plist-get load-plist :last-harvest)
- notmuch-address-completions (plist-get load-plist :completions)
- notmuch-address-full-harvest-finished t)
+ (setq notmuch-address-last-harvest (plist-get load-plist :last-harvest))
+ (setq notmuch-address-completions (plist-get load-plist :completions))
+ (setq notmuch-address-full-harvest-finished t)
;; Return t to say load was successful.
t)))
diff --git a/emacs/notmuch-crypto.el b/emacs/notmuch-crypto.el
index 58947a20..420b008f 100644
--- a/emacs/notmuch-crypto.el
+++ b/emacs/notmuch-crypto.el
@@ -117,20 +117,21 @@ (defun notmuch-crypto-insert-sigstatus-button (sigstatus from)
(userid (plist-get sigstatus :userid)))
;; If userid is present it has full or greater validity.
(if userid
- (setq label (concat "Good signature by: " userid)
- face 'notmuch-crypto-signature-good)
- (setq label (concat "Good signature by key: " fingerprint)
- face 'notmuch-crypto-signature-good-key))
- (setq button-action 'notmuch-crypto-sigstatus-good-callback
- help-msg (concat "Click to list key ID 0x" fingerprint "."))))
+ (progn
+ (setq label (concat "Good signature by: " userid))
+ (setq face 'notmuch-crypto-signature-good))
+ (setq label (concat "Good signature by key: " fingerprint))
+ (setq face 'notmuch-crypto-signature-good-key))
+ (setq button-action 'notmuch-crypto-sigstatus-good-callback)
+ (setq help-msg (concat "Click to list key ID 0x" fingerprint "."))))
((string= status "error")
- (setq label (concat "Unknown key ID " keyid " or unsupported algorithm")
- button-action 'notmuch-crypto-sigstatus-error-callback
- help-msg (concat "Click to retrieve key ID " keyid
+ (setq label (concat "Unknown key ID " keyid " or unsupported algorithm"))
+ (setq button-action 'notmuch-crypto-sigstatus-error-callback)
+ (setq help-msg (concat "Click to retrieve key ID " keyid
" from keyserver.")))
((string= status "bad")
- (setq label (concat "Bad signature (claimed key ID " keyid ")")
- face 'notmuch-crypto-signature-bad))
+ (setq label (concat "Bad signature (claimed key ID " keyid ")"))
+ (setq face 'notmuch-crypto-signature-bad))
(status
(setq label (concat "Unknown signature status: " status)))
(t
diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
index f8958a91..886da99f 100644
--- a/emacs/notmuch-lib.el
+++ b/emacs/notmuch-lib.el
@@ -861,8 +861,8 @@ (defun notmuch-call-notmuch--helper (destination args)
(let (stdin-string)
(while (keywordp (car args))
(cl-case (car args)
- (:stdin-string (setq stdin-string (cadr args)
- args (cddr args)))
+ (:stdin-string (setq stdin-string (cadr args))
+ (setq args (cddr args)))
(otherwise
(error "Unknown keyword argument: %s" (car args)))))
(if (null stdin-string)
@@ -939,8 +939,8 @@ (defun notmuch-start-notmuch (name buffer sentinel &rest args)
:buffer buffer
:command (cons command args)
:connection-type 'pipe
- :stderr err-buffer)
- err-proc (get-buffer-process err-buffer))
+ :stderr err-buffer))
+ (setq err-proc (get-buffer-process err-buffer))
(process-put proc 'err-buffer err-buffer)
(process-put err-proc 'err-file err-file)
diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index 8592936f..a0a6c09d 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -415,8 +415,8 @@ (defun notmuch-clean-address (address)
(cond
;; "User <user@dom.ain>" style.
((string-match "\\(.*\\) <\\(.*\\)>" address)
- (setq p-name (match-string 1 address)
- p-address (match-string 2 address)))
+ (setq p-name (match-string 1 address))
+ (setq p-address (match-string 2 address)))
;; "<user@dom.ain>" style.
((string-match "<\\(.*\\)>" address)
@@ -1250,14 +1250,16 @@ (defun notmuch-show (thread-id &optional elide-toggle parent-buffer query-contex
;; Set various buffer local variables to their appropriate initial
;; state. Do this after enabling `notmuch-show-mode' so that they
;; aren't wiped out.
- (setq notmuch-show-thread-id thread-id
- notmuch-show-parent-buffer parent-buffer
- notmuch-show-query-context (if (or (string= query-context "")
- (string= query-context "*"))
- nil query-context)
- notmuch-show-process-crypto notmuch-crypto-process-mime
- ;; If `elide-toggle', invert the default value.
- notmuch-show-elide-non-matching-messages
+ (setq notmuch-show-thread-id thread-id)
+ (setq notmuch-show-parent-buffer parent-buffer)
+ (setq notmuch-show-query-context
+ (if (or (string= query-context "")
+ (string= query-context "*"))
+ nil
+ query-context))
+ (setq notmuch-show-process-crypto notmuch-crypto-process-mime)
+ ;; If `elide-toggle', invert the default value.
+ (setq notmuch-show-elide-non-matching-messages
(if elide-toggle
(not notmuch-show-only-matching-messages)
notmuch-show-only-matching-messages))
@@ -1512,8 +1514,8 @@ (define-derived-mode notmuch-show-mode fundamental-mode "notmuch-show"
\\{notmuch-show-mode-map}"
(setq notmuch-buffer-refresh-function #'notmuch-show-refresh-view)
- (setq buffer-read-only t
- truncate-lines t)
+ (setq buffer-read-only t)
+ (setq truncate-lines t)
(setq imenu-prev-index-position-function
#'notmuch-show-imenu-prev-index-position-function)
(setq imenu-extract-index-name-function
diff --git a/emacs/notmuch-tree.el b/emacs/notmuch-tree.el
index b1bb40b1..827acebf 100644
--- a/emacs/notmuch-tree.el
+++ b/emacs/notmuch-tree.el
@@ -956,8 +956,8 @@ (define-derived-mode notmuch-tree-mode fundamental-mode "notmuch-tree"
\\{notmuch-tree-mode-map}"
(setq notmuch-buffer-refresh-function #'notmuch-tree-refresh-view)
(hl-line-mode 1)
- (setq buffer-read-only t
- truncate-lines t))
+ (setq buffer-read-only t)
+ (setq truncate-lines t))
(defun notmuch-tree-process-sentinel (proc msg)
"Add a message to let user know when \"notmuch tree\" exits."
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index d6e0a9d5..6ce2b1f9 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -443,8 +443,8 @@ (defun notmuch-search-foreach-result (beg end fn)
(while (and pos (or (< pos end) first))
(when (notmuch-search-get-result pos)
(funcall fn pos))
- (setq pos (notmuch-search-result-end pos)
- first nil))))
+ (setq pos (notmuch-search-result-end pos))
+ (setq first nil))))
;; Unindent the function argument of notmuch-search-foreach-result so
;; the indentation of callers doesn't get out of hand.
(put 'notmuch-search-foreach-result 'lisp-indent-function 2)
@@ -589,8 +589,8 @@ (defun notmuch-search-tag (tag-changes &optional beg end only-matched)
If ONLY-MATCHED is non-nil, only tag matched messages."
(interactive (notmuch-search-interactive-tag-changes))
(unless (and beg end)
- (setq beg (car (notmuch-interactive-region))
- end (cadr (notmuch-interactive-region))))
+ (setq beg (car (notmuch-interactive-region)))
+ (setq end (cadr (notmuch-interactive-region))))
(let ((search-string (notmuch-search-find-stable-query-region
beg end only-matched)))
(notmuch-tag search-string tag-changes)
@@ -762,8 +762,8 @@ (defun notmuch-search-insert-authors (format-string authors)
(length "... "))))
;; Truncate the visible string according to the width of
;; the display string.
- (setq visible-string (substring formatted-authors 0 visible-length)
- invisible-string (substring formatted-authors visible-length))
+ (setq visible-string (substring formatted-authors 0 visible-length))
+ (setq invisible-string (substring formatted-authors visible-length))
;; If possible, truncate the visible string at a natural
;; break (comma or pipe), as incremental search doesn't
;; match across the visible/invisible border.
@@ -771,8 +771,8 @@ (defun notmuch-search-insert-authors (format-string authors)
;; Second clause is destructive on `visible-string', so
;; order is important.
(setq invisible-string (concat (match-string 3 visible-string)
- invisible-string)
- visible-string (concat (match-string 1 visible-string)
+ invisible-string))
+ (setq visible-string (concat (match-string 1 visible-string)
(match-string 2 visible-string))))
;; `visible-string' may be shorter than the space allowed
;; by `format-string'. If so we must insert some padding
@@ -785,17 +785,18 @@ (defun notmuch-search-insert-authors (format-string authors)
(if (string-match "\\(.*\\)|\\(.*\\)" visible-string)
;; The visible string contains both matching and
;; non-matching authors.
- (setq visible-string (notmuch-search-author-propertize visible-string)
- ;; The invisible string must contain only non-matching
- ;; authors, as the visible-string contains both.
- invisible-string (propertize invisible-string
- 'face 'notmuch-search-non-matching-authors))
+ (progn
+ (setq visible-string (notmuch-search-author-propertize visible-string))
+ ;; The invisible string must contain only non-matching
+ ;; authors, as the visible-string contains both.
+ (setq invisible-string (propertize invisible-string
+ 'face 'notmuch-search-non-matching-authors)))
;; The visible string contains only matching authors.
(setq visible-string (propertize visible-string
- 'face 'notmuch-search-matching-authors)
- ;; The invisible string may contain both matching and
- ;; non-matching authors.
- invisible-string (notmuch-search-author-propertize invisible-string)))
+ 'face 'notmuch-search-matching-authors))
+ ;; The invisible string may contain both matching and
+ ;; non-matching authors.
+ (setq invisible-string (notmuch-search-author-propertize invisible-string)))
;; If there is any invisible text, add it as a tooltip to the
;; visible text.
(when (not (string= invisible-string ""))
--
2.28.0
next prev parent reply other threads:[~2020-08-06 7:19 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-26 16:57 [PATCH 00/23] A create number of cosmetic changes Jonas Bernoulli
2020-07-26 16:57 ` [PATCH 01/23] emacs: Shorten long lines Jonas Bernoulli
2020-07-27 17:52 ` Tomi Ollila
2020-07-27 20:13 ` Jonas Bernoulli
2020-07-26 16:57 ` [PATCH 02/23] emacs: Remove excess empty lines Jonas Bernoulli
2020-07-27 18:00 ` Tomi Ollila
2020-07-27 20:25 ` Jonas Bernoulli
2020-07-26 16:57 ` [PATCH 03/23] emacs: Fix indentation Jonas Bernoulli
2020-07-30 20:07 ` Tomi Ollila
2020-08-01 20:37 ` Jonas Bernoulli
2020-07-26 16:57 ` [PATCH 04/23] emacs: Closing parenthesis go on the same line Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 05/23] emacs: Only set one variable per setq form Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 06/23] emacs: Use cl-incf where appropriate Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 07/23] emacs: Use 'and' instead of 'when' when the return value matters Jonas Bernoulli
2020-07-26 21:27 ` Sean Whitton
2020-07-26 22:02 ` Jonas Bernoulli
2020-07-27 16:43 ` Sean Whitton
2020-07-27 20:32 ` Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 08/23] emacs: Use 'unless' instead of 'when' and 'not' Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 09/23] emacs: Use 'when' instead of 'if' when there is no ELSE part Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 10/23] emacs: Use one or three lines for 'if' forms Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 11/23] emacs: Extend face to window edge again Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 12/23] emacs: Fix some function declarations Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 13/23] emacs: No longer define notmuch-hello-mode-map as a function Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 14/23] emacs: notmuch-poll: Let the user know we are polling Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 15/23] emacs: Use makefile-gmake-mode in Makefile*s Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 16/23] emacs: Improve doc-strings Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 17/23] emacs: Autoload notmuch-jump-search only once Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 18/23] emacs: Autoload notmuch-jump using an autoload cookie Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 19/23] emacs: Various cosmetic changes Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 20/23] emacs: Increase consistency of library headers Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 21/23] Fix typos Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 22/23] .dir-locals.el: Set variables for correct "shell" mode Jonas Bernoulli
2020-07-26 16:58 ` [PATCH 23/23] test: Fix indentation Jonas Bernoulli
2020-07-30 20:36 ` [PATCH 00/23] A create number of cosmetic changes Tomi Ollila
2020-08-01 20:48 ` [PATCH 00/23] A great " Jonas Bernoulli
2020-08-03 17:32 ` David Bremner
2020-08-06 7:18 ` [PATCH v2 " Jonas Bernoulli
2020-08-06 7:18 ` [PATCH v2 01/23] emacs: Shorten long lines Jonas Bernoulli
2020-08-06 7:18 ` [PATCH v2 02/23] emacs: Remove excess empty lines Jonas Bernoulli
2020-08-06 7:18 ` [PATCH v2 03/23] emacs: Fix indentation Jonas Bernoulli
2020-08-06 7:18 ` [PATCH v2 04/23] emacs: Closing parenthesis go on the same line Jonas Bernoulli
2020-08-06 7:18 ` Jonas Bernoulli [this message]
2020-08-06 7:18 ` [PATCH v2 06/23] emacs: Use cl-incf where appropriate Jonas Bernoulli
2020-08-06 11:37 ` David Bremner
2020-08-06 13:37 ` Jonas Bernoulli
2020-08-07 17:03 ` Tomi Ollila
2020-08-07 17:22 ` David Bremner
2020-08-06 7:18 ` [PATCH v2 07/23] emacs: Use 'and' instead of 'when' when the return value matters Jonas Bernoulli
2020-08-06 7:18 ` [PATCH v2 08/23] emacs: Use 'unless' instead of 'when' and 'not' Jonas Bernoulli
2020-08-06 7:18 ` [PATCH v2 09/23] emacs: Use 'when' instead of 'if' when there is no ELSE part Jonas Bernoulli
2020-08-06 7:18 ` [PATCH v2 10/23] emacs: Use one or three lines for 'if' forms Jonas Bernoulli
2020-08-06 7:18 ` [PATCH v2 11/23] emacs: Extend face to window edge again Jonas Bernoulli
2020-08-06 7:18 ` [PATCH v2 12/23] emacs: Fix some function declarations Jonas Bernoulli
2020-08-06 7:19 ` [PATCH v2 13/23] emacs: No longer define notmuch-hello-mode-map as a function Jonas Bernoulli
2020-08-06 7:19 ` [PATCH v2 14/23] emacs: notmuch-poll: Let the user know we are polling Jonas Bernoulli
2020-08-06 7:19 ` [PATCH v2 15/23] emacs: Use makefile-gmake-mode in Makefile*s Jonas Bernoulli
2020-08-06 7:19 ` [PATCH v2 16/23] emacs: Improve doc-strings Jonas Bernoulli
2020-08-06 7:19 ` [PATCH v2 17/23] emacs: Autoload notmuch-jump-search only once Jonas Bernoulli
2020-08-06 7:19 ` [PATCH v2 18/23] emacs: Autoload notmuch-jump using an autoload cookie Jonas Bernoulli
2020-08-06 7:19 ` [PATCH v2 19/23] emacs: Various cosmetic changes Jonas Bernoulli
2020-08-06 7:19 ` [PATCH v2 20/23] emacs: Increase consistency of library headers Jonas Bernoulli
2020-08-06 7:19 ` [PATCH v2 21/23] Fix typos Jonas Bernoulli
2020-08-06 7:19 ` [PATCH v2 22/23] .dir-locals.el: Set variables for correct "shell" mode Jonas Bernoulli
2020-08-06 7:19 ` [PATCH v2 23/23] test: Fix indentation Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 00/34] A great number of cosmetic changes Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 01/34] emacs: Shorten long lines Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 02/34] emacs: Remove excess empty lines Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 03/34] emacs: Fix indentation Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 04/34] emacs: Closing parenthesis go on the same line Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 05/34] emacs: Only set one variable per setq form Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 06/34] emacs: Use 'and' instead of 'when' when the return value matters Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 07/34] emacs: Use 'unless' instead of 'when' and 'not' Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 08/34] emacs: Use 'when' instead of 'if' when there is no ELSE part Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 09/34] emacs: Use one or three lines for 'if' forms Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 10/34] emacs: Extend face to window edge again Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 11/34] emacs: Fix some function declarations Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 12/34] emacs: No longer define notmuch-hello-mode-map as a function Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 13/34] emacs: notmuch-poll: Let the user know we are polling Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 14/34] emacs: Use makefile-gmake-mode in Makefile*s Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 15/34] emacs: Improve doc-strings Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 16/34] emacs: Autoload notmuch-jump-search only once Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 17/34] emacs: Autoload notmuch-jump using an autoload cookie Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 18/34] emacs: Various cosmetic changes Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 19/34] emacs: Increase consistency of library headers Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 20/34] Fix typos Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 21/34] .dir-locals.el: Set variables for correct "shell" mode Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 22/34] test: Fix indentation Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 23/34] .gitignore: Sort using sort-lines Jonas Bernoulli
2020-08-08 11:49 ` [PATCH v3 24/34] emacs: Provide 'rstdoc' feature at end of file Jonas Bernoulli
2020-08-08 11:50 ` [PATCH v3 25/34] emacs: Add end-of-file line to libraries that lack it Jonas Bernoulli
2020-08-08 11:50 ` [PATCH v3 26/34] NEWS: Add stub for 0.31 Jonas Bernoulli
2020-08-08 11:50 ` [PATCH v3 27/34] NEWS: At least Emacs 25.1 is required now Jonas Bernoulli
2020-08-08 11:50 ` [PATCH v3 28/34] emacs: Use cl-incf where appropriate Jonas Bernoulli
2020-08-08 11:50 ` [PATCH v3 29/34] emacs: Remove notmuch-setq-local Jonas Bernoulli
2020-08-08 11:50 ` [PATCH v3 30/34] emacs: Remove notmuch-read-char-choice Jonas Bernoulli
2020-08-08 11:50 ` [PATCH v3 31/34] emacs: Drop old advices that were only need for Emacs 23 Jonas Bernoulli
2020-08-08 11:50 ` [PATCH v3 32/34] emacs: Do not abuse advice to monkey patch while testing Jonas Bernoulli
2020-08-08 11:50 ` [PATCH v3 33/34] emacs: Use new advice mechanism do advice mm-shr Jonas Bernoulli
2020-08-08 11:50 ` [PATCH v3 34/34] try-emacs-mua: Trim `require' advice for Emacs 25 Jonas Bernoulli
2020-08-09 7:15 ` [PATCH v3 00/34] A great number of cosmetic changes Tomi Ollila
2020-08-09 7:48 ` Jonas Bernoulli
2020-08-09 12:09 ` David Bremner
2020-08-09 12:41 ` Đoàn Trần Công Danh
2020-08-09 13:21 ` Jonas Bernoulli
2020-08-09 13:32 ` Jonas Bernoulli
2020-08-09 14:49 ` Tomi Ollila
2020-08-10 1:25 ` David Bremner
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
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200806071910.10369-6-jonas@bernoul.li \
--to=jonas@bernoul.li \
--cc=notmuch@notmuchmail.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 public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).