[PATCH 02/23] emacs: Remove excess empty lines

Subject: [PATCH 02/23] emacs: Remove excess empty lines

Date: Sun, 26 Jul 2020 18:57:57 +0200

To: notmuch@notmuchmail.org


From: Jonas Bernoulli

Most people who write lots of lisp tend to only sparsely use empty
"separator" lines within forms.  In lisp they feel unnecessary and
since most files stick to this convention we get a bit confused
when there are extra empty lines.  It feels like the s-expressions
are falling into pieces.

All of this is especially true between a function's doc-string and
body because the doc-string is colored differently, which visually
already separates it quite sufficiently from the code that follows.
 emacs/make-deps.el           |  2 -
 emacs/notmuch-address.el     |  2 -
 emacs/notmuch-crypto.el      |  4 --
 emacs/notmuch-hello.el       | 18 ---------
 emacs/notmuch-jump.el        |  5 ---
 emacs/notmuch-lib.el         | 10 -----
 emacs/notmuch-maildir-fcc.el |  7 ----
 emacs/notmuch-mua.el         | 26 -------------
 emacs/notmuch-parser.el      |  5 ---
 emacs/notmuch-show.el        | 75 ++----------------------------------
 emacs/notmuch-tag.el         |  3 --
 emacs/notmuch-tree.el        |  9 -----
 emacs/notmuch-wash.el        | 18 +--------
 emacs/notmuch.el             |  7 ----
 14 files changed, 5 insertions(+), 186 deletions(-)

diff --git a/emacs/make-deps.el b/emacs/make-deps.el
index 5b6db698..dcac319c 100644
--- a/emacs/make-deps.el
+++ b/emacs/make-deps.el
@@ -23,7 +23,6 @@
 (defun batch-make-deps ()
   "Invoke `make-deps' for each file on the command line."
   (setq debug-on-error t)
   (dolist (file command-line-args-left)
     (let ((default-directory command-line-default-directory))
@@ -37,7 +36,6 @@ (defun make-deps (&optional dir)
 This prints make dependencies to `standard-output' based on the
 top-level `require' expressions in the current buffer.  Paths in
 rules will be given relative to DIR, or `default-directory'."
   (setq dir (or dir default-directory))
     (goto-char (point-min))
diff --git a/emacs/notmuch-address.el b/emacs/notmuch-address.el
index 2a9c411a..ca4da3f3 100644
--- a/emacs/notmuch-address.el
+++ b/emacs/notmuch-address.el
@@ -302,7 +302,6 @@ (defun notmuch-address-harvest (&optional addr-prefix synchronous callback)
 Address harvesting may take some time so the address collection runs
 asynchronously unless SYNCHRONOUS is t. In case of asynchronous
 execution, CALLBACK is called when harvesting finishes."
   (let* ((sent (eq (car notmuch-address-internal-completion) 'sent))
 	 (config-query (cadr notmuch-address-internal-completion))
 	 (prefix-query (when addr-prefix
@@ -335,7 +334,6 @@ (defun notmuch-address-harvest (&optional addr-prefix synchronous callback)
 	;; Kill any existing process
 	(when current-proc
 	  (kill-buffer (process-buffer current-proc))) ; this also kills the process
 	(setq current-proc
 	      (apply 'notmuch-start-notmuch proc-name proc-buf
 		     callback				; process sentinel
diff --git a/emacs/notmuch-crypto.el b/emacs/notmuch-crypto.el
index 2327ff1f..58947a20 100644
--- a/emacs/notmuch-crypto.el
+++ b/emacs/notmuch-crypto.el
@@ -123,17 +123,14 @@ (defun notmuch-crypto-insert-sigstatus-button (sigstatus from)
 		face 'notmuch-crypto-signature-good-key))
 	(setq button-action 'notmuch-crypto-sigstatus-good-callback
 	      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
 			     " from keyserver.")))
      ((string= status "bad")
       (setq label (concat "Bad signature (claimed key ID " keyid ")")
 	    face 'notmuch-crypto-signature-bad))
       (setq label (concat "Unknown signature status: " status)))
@@ -232,7 +229,6 @@ (defun notmuch-crypto-sigstatus-error-callback (button)
 	    (process-put p :notmuch-show-buffer (current-buffer))
 	    (process-put p :notmuch-show-point (point))
 	    (message "Getting the GPG key %s asynchronously..." keyid)))
       (let ((window (display-buffer buffer)))
 	(with-selected-window window
 	  (with-current-buffer buffer
diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el
index 11c625ea..e71e55f3 100644
--- a/emacs/notmuch-hello.el
+++ b/emacs/notmuch-hello.el
@@ -150,7 +150,6 @@ (defcustom notmuch-saved-searches
 ;; The saved-search format is also used by the all-tags notmuch-hello
 ;; section. This section generates its own saved-search list in one of
 ;; the latter two forms.
   :get 'notmuch-hello--saved-searches-to-plist
   :type '(repeat notmuch-saved-search-plist)
   :tag "List of Saved Searches"
@@ -482,20 +481,17 @@ (defun notmuch-hello-tags-per-line (widest)
 		   ;; Count is 9 wide (8 digits plus space), 1 for the space
 		   ;; after the name.
 		   (+ 9 1 (max notmuch-column-control widest)))))
 	  ((floatp notmuch-column-control)
 	   (let* ((available-width (- (window-width) notmuch-hello-indent))
 		  (proposed-width (max (* available-width notmuch-column-control)
 	     (floor available-width proposed-width)))
 	   (max 1
 		(/ (- (window-width) notmuch-hello-indent)
 		   ;; Count is 9 wide (8 digits plus space), 1 for the space
 		   ;; after the name.
 		   (+ 9 1 widest)))))))
     (cons tags-per-line (/ (max 1
 				(- (window-width) notmuch-hello-indent
 				   ;; Count is 9 wide (8 digits plus
@@ -545,7 +541,6 @@ (defun notmuch-hello-query-counts (query-list &rest options)
 					(or (plist-get options :filter-count)
 					    (plist-get options :filter))))
     (unless (= (call-process-region (point-min) (point-max) notmuch-command
 				    t t nil "count" "--batch") 0)
@@ -553,9 +548,7 @@ (defun notmuch-hello-query-counts (query-list &rest options)
        "Please check that the notmuch CLI is new enough to support `count
 --batch'. In general we recommend running matching versions of
 the CLI and emacs interface."))
     (goto-char (point-min))
@@ -621,7 +614,6 @@ (defun notmuch-hello-insert-buttons (searches)
 	      (setq column-indent 0)
 	      (widget-insert "\n")))
     ;; If the last line was not full (and hence did not include a
     ;; carriage return), insert one now.
     (unless (eq (% count tags-per-line) 0)
@@ -780,7 +772,6 @@ (defun notmuch-hello-insert-header ()
 		     (car (process-lines notmuch-command "count")))))
     (widget-insert " messages.\n")))
 (defun notmuch-hello-insert-saved-searches ()
   "Insert the saved-searches section."
   (let ((searches (notmuch-hello-query-counts
@@ -977,7 +968,6 @@ (defun notmuch-hello-insert-footer ()
 (defun notmuch-hello (&optional no-display)
   "Run notmuch and display saved searches, known tags, etc."
   ;; This may cause a window configuration change, so if the
   ;; auto-refresh hook is already installed, avoid recursive refresh.
@@ -985,32 +975,25 @@ (defun notmuch-hello (&optional no-display)
     (if no-display
 	(set-buffer "*notmuch-hello*")
       (switch-to-buffer "*notmuch-hello*")))
   ;; Install auto-refresh hook
   (when notmuch-hello-auto-refresh
     (add-hook 'window-configuration-change-hook
   (let ((target-line (line-number-at-pos))
 	(target-column (current-column))
 	(inhibit-read-only t))
     ;; Delete all editable widget fields.  Editable widget fields are
     ;; tracked in a buffer local variable `widget-field-list' (and
     ;; others).  If we do `erase-buffer' without properly deleting the
     ;; widgets, some widget-related functions are confused later.
     (mapc 'widget-delete widget-field-list)
     (unless (eq major-mode 'notmuch-hello-mode)
     (let ((all (overlay-lists)))
       ;; Delete all the overlays.
       (mapc 'delete-overlay (car all))
       (mapc 'delete-overlay (cdr all)))
      (lambda (section)
        (let ((point-before (point)))
@@ -1023,7 +1006,6 @@ (defun notmuch-hello (&optional no-display)
 	   (widget-insert "\n"))))
     ;; Move point back to where it was before refresh. Use line and
     ;; column instead of point directly to be insensitive to additions
     ;; and removals of text within earlier lines.
diff --git a/emacs/notmuch-jump.el b/emacs/notmuch-jump.el
index 6d8cd97f..adf79650 100644
--- a/emacs/notmuch-jump.el
+++ b/emacs/notmuch-jump.el
@@ -43,7 +43,6 @@ (defun notmuch-jump-search ()
 Typically these shortcuts are a single key long, so this is a
 fast way to jump to a saved search from anywhere in Notmuch."
   ;; Build the action map
   (let (action-map)
     (dolist (saved-search notmuch-saved-searches)
@@ -67,7 +66,6 @@ (defun notmuch-jump-search ()
 			  `(lambda () (notmuch-search ',query ',oldest-first)))))
     (setq action-map (nreverse action-map))
     (if action-map
 	(notmuch-jump action-map "Search: ")
       (error "To use notmuch-jump, \
@@ -90,7 +88,6 @@ (defun notmuch-jump (action-map prompt)
 the buffer, and ACTION is a nullary function to call.  LABEL may
 be null, in which case the action will still be bound, but will
 not appear in the pop-up buffer."
   (let* ((items (notmuch-jump--format-actions action-map))
 	 ;; Format the table of bindings and the full prompt
@@ -115,7 +112,6 @@ (defun notmuch-jump (action-map prompt)
 	 (notmuch-jump--action nil))
     ;; Read the action
     (read-from-minibuffer full-prompt nil minibuffer-map)
     ;; If we got an action, do it
     (when notmuch-jump--action
       (funcall notmuch-jump--action))))
@@ -126,7 +122,6 @@ (defun notmuch-jump--format-actions (action-map)
 Returns a list of strings, one for each item with a label in
 ACTION-MAP.  These strings can be inserted into a tabular
   ;; Compute the maximum key description width
   (let ((key-width 1))
     (pcase-dolist (`(,key ,desc) action-map)
diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
index 9339f9d0..615207ed 100644
--- a/emacs/notmuch-lib.el
+++ b/emacs/notmuch-lib.el
@@ -418,7 +418,6 @@ (defun notmuch-subkeymap-help ()
     (while (< i (length prefix))
       (aset prefix i (aref key i))
       (setq i (1+ i)))
     (let* ((subkeymap (key-binding prefix))
 	   (ua-keys (where-is-internal 'universal-argument nil t))
 	   (prefix-string (notmuch-prefix-key-description prefix))
@@ -486,7 +485,6 @@ (defun notmuch-escape-boolean-term (term)
 The caller is responsible for prepending the term prefix and a
 colon.  This performs minimal escaping in order to produce
 user-friendly queries."
     (if (or (equal term "")
 	    ;; To be pessimistic, only pass through terms composed
@@ -731,7 +729,6 @@ (defun notmuch-apply-face (object face &optional below start end)
 attributes, or a list of these.  If START and/or END are omitted,
 they default to the beginning/end of OBJECT.  For convenience
 when applied to strings, this returns OBJECT."
   ;; A face property can have three forms: a face name (a string or
   ;; symbol), a property list, or a list of these two forms.  In the
   ;; list case, the faces will be combined, with the earlier faces
@@ -774,7 +771,6 @@ (defun notmuch-logged-error (msg &optional extra)
 signals MSG as an error.  If EXTRA is non-nil, text referring the
 user to the *Notmuch errors* buffer will be appended to the
 signaled error.  This function does not return."
   (with-current-buffer (get-buffer-create "*Notmuch errors*")
     (goto-char (point-max))
     (unless (bobp)
@@ -819,7 +815,6 @@ (defun notmuch-check-exit-status (exit-status command &optional output err)
 giving the output of command.  ERR, if provided, is the error
 output of command.  OUTPUT and ERR will be included in the error
    ((eq exit-status 0) t)
    ((eq exit-status 20)
@@ -865,7 +860,6 @@ (defun notmuch-call-notmuch--helper (destination args)
 This wraps `call-process'.  DESTINATION has the same meaning as
 for `call-process'.  ARGS is as described for
   (let (stdin-string)
     (while (keywordp (car args))
       (cl-case (car args)
@@ -903,7 +897,6 @@ (defun notmuch-call-notmuch-sexp (&rest args)
 Like `notmuch-call-notmuch-process', if notmuch exits with a
 non-zero status, this will report its output and signal an
     (let ((err-file (make-temp-file "nmerr")))
@@ -931,7 +924,6 @@ (defun notmuch-start-notmuch (name buffer sentinel &rest args)
 invoke `set-process-sentinel' directly on the returned process,
 as that will interfere with the handling of stderr and the exit
   (let (err-file err-buffer proc err-proc
 	;; Find notmuch using Emacs' `exec-path'
 	(command (or (executable-find notmuch-command)
@@ -956,7 +948,6 @@ (defun notmuch-start-notmuch (name buffer sentinel &rest args)
 	  (process-put err-proc 'err-file err-file)
 	  (process-put err-proc 'err-buffer err-buffer)
 	  (set-process-sentinel err-proc #'notmuch-start-notmuch-error-sentinel))
       ;; On Emacs versions before 25, there is no way to capture
       ;; stdout and stderr separately for asynchronous processes, or
       ;; even to redirect stderr to a file, so we use a trivial shell
@@ -969,7 +960,6 @@ (defun notmuch-start-notmuch (name buffer sentinel &rest args)
 			  "exec 2>\"$1\"; shift; exec \"$0\" \"$@\""
 			  command err-file args)))
       (process-put proc 'err-file err-file))
     (process-put proc 'sub-sentinel sentinel)
     (process-put proc 'real-command (cons notmuch-command args))
     (set-process-sentinel proc #'notmuch-start-notmuch-sentinel)
diff --git a/emacs/notmuch-maildir-fcc.el b/emacs/notmuch-maildir-fcc.el
index 4b10a731..66f32fd4 100644
--- a/emacs/notmuch-maildir-fcc.el
+++ b/emacs/notmuch-maildir-fcc.el
@@ -94,22 +94,18 @@ (defun notmuch-fcc-header-setup ()
 Originally intended to be use a hook function, but now called directly
 by notmuch-mua-mail."
   (let ((subdir
 	  ((or (not notmuch-fcc-dirs)
 	       (message-field-value "Fcc"))
 	   ;; Nothing set or an existing header.
 	  ((stringp notmuch-fcc-dirs)
 	  ((and (listp notmuch-fcc-dirs)
 		(stringp (car notmuch-fcc-dirs)))
 	   ;; Old style - no longer works.
 	   (error "Invalid `notmuch-fcc-dirs' setting (old style)"))
 	  ((listp notmuch-fcc-dirs)
 	   (let* ((from (message-field-value "From"))
@@ -121,10 +117,8 @@ (defun notmuch-fcc-header-setup ()
 		 (cdr match)
 	       (message "No Fcc header added.")
 	   (error "Invalid `notmuch-fcc-dirs' setting (neither string nor list)")))))
     (when subdir
       (if notmuch-maildir-use-notmuch-insert
 	  (notmuch-maildir-add-notmuch-insert-style-fcc-header subdir)
@@ -133,7 +127,6 @@ (defun notmuch-fcc-header-setup ()
 (defun notmuch-maildir-add-notmuch-insert-style-fcc-header (subdir)
   ;; Notmuch insert does not accept absolute paths, so check the user
   ;; really want this header inserted.
   (when (or (not (= (elt subdir 0) ?/))
 	     (format "Fcc header %s is an absolute path and notmuch insert is requested.
diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el
index 74dfb384..3bc06b4b 100644
--- a/emacs/notmuch-mua.el
+++ b/emacs/notmuch-mua.el
@@ -228,22 +228,17 @@ (defun notmuch-mua-reply (query-string &optional sender reply-all)
     (when process-crypto
       (setq args (append args '("--decrypt=true"))))
     (if reply-all
 	(setq args (append args '("--reply-to=all")))
       (setq args (append args '("--reply-to=sender"))))
     (setq args (append args (list query-string)))
     ;; Get the reply object as SEXP, and parse it into an elisp object.
     (setq reply (apply #'notmuch-call-notmuch-sexp args))
     ;; Extract the original message to simplify the following code.
     (setq original (plist-get reply :original))
     ;; Extract the headers of both the reply and the original message.
     (let* ((original-headers (plist-get original :headers))
 	   (reply-headers (plist-get reply :reply-headers)))
       ;; If sender is non-nil, set the From: header to its value.
       (when sender
 	(plist-put reply-headers :From sender))
@@ -251,7 +246,6 @@ (defun notmuch-mua-reply (query-string &optional sender reply-all)
 	  ;; Overlay the composition window on that being used to read
 	  ;; the original message.
 	  ((same-window-regexps '("\\*mail .*")))
 	;; We modify message-header-format-alist to get around
 	;; a bug in message.el.  See the comment above on
 	;; notmuch-mua-insert-references.
@@ -268,13 +262,11 @@ (defun notmuch-mua-reply (query-string &optional sender reply-all)
 			    (notmuch-sanitize (plist-get reply-headers :Subject))
 			    (notmuch-headers-plist-to-alist reply-headers)
 			    nil (notmuch-mua-get-switch-function))))
       ;; Create a buffer-local queue for tag changes triggered when
       ;; sending the reply.
       (when notmuch-message-replied-tags
 	(setq-local notmuch-message-queued-tag-changes
 		    (list (cons query-string notmuch-message-replied-tags))))
       ;; Insert the message body - but put it in front of the signature
       ;; if one is present, and after any other content
       ;; message*setup-hooks may have added to the message body already.
@@ -286,17 +278,14 @@ (defun notmuch-mua-reply (query-string &optional sender reply-all)
 	    (if message-signature-insert-empty-line
 		(forward-line -1))
 	  (goto-char (point-max))))
       (let ((from (plist-get original-headers :From))
 	    (date (plist-get original-headers :Date))
 	    (start (point)))
 	;; notmuch-mua-cite-function constructs a citation line based
 	;; on the From and Date headers of the original message, which
 	;; are assumed to be in the buffer.
 	(insert "From: " from "\n")
 	(insert "Date: " date "\n\n")
@@ -320,22 +309,18 @@ (defun notmuch-mua-reply (query-string &optional sender reply-all)
 		       ((symbol-function 'notmuch-crypto-insert-encstatus-button) #'ignore))
 	       (notmuch-show-insert-body original (plist-get original :body) 0)
 	       (buffer-substring-no-properties (point-min) (point-max))))))
 	(set-mark (point))
 	(goto-char start)
 	;; Quote the original message according to the user's configured style.
 	(funcall notmuch-mua-cite-function)))
     ;; Crypto processing based crypto content of the original message
     (when process-crypto
       (notmuch-mua-reply-crypto (plist-get original :body))))
   ;; Push mark right before signature, if any.
   (unless (eobp)
     (end-of-line -1))
   (set-buffer-modified-p nil))
@@ -381,18 +366,15 @@ (defun notmuch-mua-mail (&optional to subject other-headers continue
 				   return-action &rest ignored)
   "Invoke the notmuch mail composition window."
   (when notmuch-mua-user-agent-function
     (let ((user-agent (funcall notmuch-mua-user-agent-function)))
       (when (not (string= "" user-agent))
 	(push (cons 'User-Agent user-agent) other-headers))))
   (unless (assq 'From other-headers)
     (push (cons 'From (message-make-from
   (notmuch-mua-pop-to-buffer (message-buffer-name "mail" to)
 			     (or switch-function
@@ -422,7 +404,6 @@ (defun notmuch-mua-mail (&optional to subject other-headers continue
   (set-buffer-modified-p nil)
 (defcustom notmuch-identities nil
@@ -495,10 +476,8 @@ (defun notmuch-mua-new-forward-messages (messages &optional prompt-for-sender)
 			  ;; applied later.
 	 forward-references ;; List of accumulated message-references of forwarded messages
 	 forward-queries) ;; List of corresponding message-query
     ;; Generate the template for the outgoing message.
     (notmuch-mua-mail nil "" other-headers nil (notmuch-mua-get-switch-function))
       ;; Insert all of the forwarded messages.
       (mapc (lambda (id)
@@ -524,7 +503,6 @@ (defun notmuch-mua-new-forward-messages (messages &optional prompt-for-sender)
 	    ;; `message-forward-make-body' always puts the message at
 	    ;; the top, so do them in reverse order.
 	    (reverse messages))
       ;; Add in the appropriate subject.
@@ -533,7 +511,6 @@ (defun notmuch-mua-new-forward-messages (messages &optional prompt-for-sender)
 	(message-remove-header "References")
 	(message-add-header (concat "References: "
 				    (mapconcat 'identity forward-references " "))))
       ;; Create a buffer-local queue for tag changes triggered when
       ;; sending the message.
       (when notmuch-message-forwarded-tags
@@ -541,7 +518,6 @@ (defun notmuch-mua-new-forward-messages (messages &optional prompt-for-sender)
 		    (cl-loop for id in forward-queries
 			     (cons id notmuch-message-forwarded-tags))))
       ;; `message-forward-make-body' shows the User-agent header.  Hide
       ;; it again.
@@ -553,7 +529,6 @@ (defun notmuch-mua-new-reply (query-string &optional prompt-for-sender reply-all
 If PROMPT-FOR-SENDER is non-nil, the user will be prompted for
 the From: address first.  If REPLY-ALL is non-nil, the message
 will be addressed to all recipients of the source message."
 ;; In current emacs (24.3) select-active-regions is set to t by
 ;; default. The reply insertion code sets the region to the quoted
 ;; message to make it easy to delete (kill-region or C-w). These two
@@ -565,7 +540,6 @@ (defun notmuch-mua-new-reply (query-string &optional prompt-for-sender reply-all
 ;; primary selection was previously in a non-emacs window but not if
 ;; it was in an emacs window. To avoid the problem in the latter case
 ;; we deactivate mark.
   (let ((sender
 	 (when prompt-for-sender
diff --git a/emacs/notmuch-parser.el b/emacs/notmuch-parser.el
index dc9fbe2f..06e7487b 100644
--- a/emacs/notmuch-parser.el
+++ b/emacs/notmuch-parser.el
@@ -38,7 +38,6 @@ (defun notmuch-sexp-create-parser ()
 The parser always consumes input from point in the current
 buffer.  Hence, the caller is allowed to delete any data before
 point and may resynchronize after an error by moving point."
   (vector 'notmuch-sexp-parser
 	  ;; List depth
@@ -60,7 +59,6 @@ (defun notmuch-sexp-read (sp)
 list, this moves point just past the terminator and returns 'end.
 Otherwise, this moves point to just past the end of the value and
 returns the value."
   (skip-chars-forward " \n\r\t")
   (cond ((eobp) 'retry)
 	((= (char-after) ?\))
@@ -134,7 +132,6 @@ (defun notmuch-sexp-begin-list (sp)
 returns t.  Later calls to `notmuch-sexp-read' will return the
 elements inside the list.  If the input in buffer is not the
 beginning of a list, throw invalid-read-syntax."
   (skip-chars-forward " \n\r\t")
   (cond ((eobp) 'retry)
 	((= (char-after) ?\()
@@ -151,7 +148,6 @@ (defun notmuch-sexp-eof (sp)
 Moves point to the beginning of any trailing data or to the end
 of the buffer if there is only trailing whitespace."
   (skip-chars-forward " \n\r\t")
   (unless (eobp)
     (error "Trailing garbage following expression")))
@@ -173,7 +169,6 @@ (defun notmuch-sexp-parse-partial-list (result-function result-buffer)
 be called whenever the input buffer has been extended with
 additional data.  The caller just needs to ensure it does not
 move point in the input buffer."
   ;; Set up the initial state
   (unless (local-variable-p 'notmuch-sexp--parser)
     (set (make-local-variable 'notmuch-sexp--parser)
diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index 26b41603..6e23a980 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -320,7 +320,6 @@ (defun notmuch-show-with-message-as-text (fn)
 FN is called with one argument, the message properties. It should
 operation on the contents of the current buffer."
   ;; Remake the header to ensure that all information is available.
   (let* ((to (notmuch-show-get-to))
 	 (cc (notmuch-show-get-cc))
@@ -329,7 +328,6 @@ (defun notmuch-show-with-message-as-text (fn)
 	 (date (notmuch-show-get-date))
 	 (tags (notmuch-show-get-tags))
 	 (depth (notmuch-show-get-depth))
 	 (header (concat
 		  "Subject: " subject "\n"
 		  "To: " to "\n"
@@ -375,7 +373,6 @@ (defun notmuch-show-fontify-header ()
     (overlay-put (make-overlay (point) (re-search-forward ":"))
 		 'face 'message-header-name)
     (overlay-put (make-overlay (point) (re-search-forward ".*$"))
@@ -421,39 +418,30 @@ (defun notmuch-clean-address (address)
        ((string-match "\\(.*\\) <\\(.*\\)>" address)
 	(setq p-name (match-string 1 address)
 	      p-address (match-string 2 address)))
        ;; "<user@dom.ain>" style.
        ((string-match "<\\(.*\\)>" address)
 	(setq p-address (match-string 1 address)))
        ;; Everything else.
 	(setq p-address address)))
       (when p-name
 	;; Remove elements of the mailbox part that are not relevant for
 	;; display, even if they are required during transport:
 	;; Backslashes.
 	(setq p-name (replace-regexp-in-string "\\\\" "" p-name))
 	;; Outer single and double quotes, which might be nested.
 	(cl-loop with start-of-loop
-		 do (setq start-of-loop p-name)
+		 do   (setq start-of-loop p-name)
 		 when (string-match "^\"\\(.*\\)\"$" p-name)
-		 do (setq p-name (match-string 1 p-name))
+		 do   (setq p-name (match-string 1 p-name))
 		 when (string-match "^'\\(.*\\)'$" p-name)
-		 do (setq p-name (match-string 1 p-name))
+		 do   (setq p-name (match-string 1 p-name))
 		 until (string= start-of-loop p-name)))
       ;; If the address is 'foo@bar.com <foo@bar.com>' then show just
       ;; 'foo@bar.com'.
       (when (string= p-name p-address)
 	(setq p-name nil))
       (cons p-address p-name))
     (error (cons address nil))))
@@ -517,7 +505,6 @@ (defun notmuch-show-insert-part-header (nth content-type declared-type
 			    (unless (string-equal declared-type content-type)
 			      (concat " (as " content-type ")"))
     (setq button
 	   (concat "[ " base-label " ]")
@@ -658,14 +645,12 @@ (defun notmuch-show-insert-part-multipart/alternative (msg part content-type nth
 (defun notmuch-show-insert-part-multipart/related (msg part content-type nth depth button)
   (let ((inner-parts (plist-get part :content))
 	(start (point)))
     ;; Render the primary part.  FIXME: Support RFC 2387 Start header.
     (notmuch-show-insert-bodypart msg (car inner-parts) depth)
     ;; Add hidden buttons for the rest
     (mapc (lambda (inner-part)
 	    (notmuch-show-insert-bodypart msg inner-part depth t))
 	  (cdr inner-parts))
     (when notmuch-show-indent-multipart
       (indent-rigidly start (point) 1)))
@@ -673,18 +658,15 @@ (defun notmuch-show-insert-part-multipart/related (msg part content-type nth dep
 (defun notmuch-show-insert-part-multipart/signed (msg part content-type nth depth button)
   (when button
     (button-put button 'face 'notmuch-crypto-part-header))
   ;; Insert a button detailing the signature status.
   (notmuch-crypto-insert-sigstatus-button (car (plist-get part :sigstatus))
 					  (notmuch-show-get-header :From msg))
   (let ((inner-parts (plist-get part :content))
 	(start (point)))
     ;; Show all of the parts.
     (mapc (lambda (inner-part)
 	    (notmuch-show-insert-bodypart msg inner-part depth))
     (when notmuch-show-indent-multipart
       (indent-rigidly start (point) 1)))
@@ -692,21 +674,17 @@ (defun notmuch-show-insert-part-multipart/signed (msg part content-type nth dept
 (defun notmuch-show-insert-part-multipart/encrypted (msg part content-type nth depth button)
   (when button
     (button-put button 'face 'notmuch-crypto-part-header))
   ;; Insert a button detailing the encryption status.
   (notmuch-crypto-insert-encstatus-button (car (plist-get part :encstatus)))
   ;; Insert a button detailing the signature status.
   (notmuch-crypto-insert-sigstatus-button (car (plist-get part :sigstatus))
 					  (notmuch-show-get-header :From msg))
   (let ((inner-parts (plist-get part :content))
 	(start (point)))
     ;; Show all of the parts.
     (mapc (lambda (inner-part)
 	    (notmuch-show-insert-bodypart msg inner-part depth))
     (when notmuch-show-indent-multipart
       (indent-rigidly start (point) 1)))
@@ -721,7 +699,6 @@ (defun notmuch-show-insert-part-multipart/* (msg part content-type nth depth but
     (mapc (lambda (inner-part)
 	    (notmuch-show-insert-bodypart msg inner-part depth))
     (when notmuch-show-indent-multipart
       (indent-rigidly start (point) 1)))
@@ -730,19 +707,15 @@ (defun notmuch-show-insert-part-message/rfc822 (msg part content-type nth depth
   (let* ((message (car (plist-get part :content)))
 	 (body (car (plist-get message :body)))
 	 (start (point)))
     ;; Override `notmuch-message-headers' to force `From' to be
     ;; displayed.
     (let ((notmuch-message-headers '("From" "Subject" "To" "Cc" "Date")))
       (notmuch-show-insert-headers (plist-get message :headers)))
     ;; Blank line after headers to be compatible with the normal
     ;; message display.
     (insert "\n")
     ;; Show the body
     (notmuch-show-insert-bodypart msg body depth)
     (when notmuch-show-indent-multipart
       (indent-rigidly start (point) 1)))
@@ -826,7 +799,6 @@ (defun notmuch-show-insert-part-text/html (msg part content-type nth depth butto
       ;; It's easier to drive shr ourselves than to work around the
       ;; goofy things `mm-shr' does (like irreversibly taking over
       ;; content ID handling).
       ;; FIXME: If we block an image, offer a button to load external
       ;; images.
       (let ((shr-blocked-images notmuch-show-text/html-blocked-images))
@@ -902,7 +874,6 @@ (defun notmuch-show-insert-bodypart-internal (msg part content-type nth depth bu
 (defun notmuch-show-create-part-overlays (button beg end)
   "Add an overlay to the part between BEG and END."
   ;; If there is no button (i.e., the part is text/plain and the first
   ;; part) or if the part has no content then we don't make the part
   ;; toggleable.
@@ -913,7 +884,6 @@ (defun notmuch-show-create-part-overlays (button beg end)
 (defun notmuch-show-record-part-information (part beg end)
   "Store PART as a text property from BEG to END."
   ;; Record part information.  Since we already inserted subparts,
   ;; don't override existing :notmuch-part properties.
   (notmuch-map-text-property beg end :notmuch-part
@@ -1011,7 +981,6 @@ (defun notmuch-show-insert-bodypart (msg part depth &optional hide)
 HIDE determines whether to show or hide the part and the button
 as follows: If HIDE is nil, show the part and the button. If HIDE
 is t, hide the part initially and show the button."
   (let* ((content-type (downcase (plist-get part :content-type)))
 	 (mime-type (notmuch-show-mime-type part))
 	 (nth (plist-get part :id))
@@ -1030,16 +999,13 @@ (defun notmuch-show-insert-bodypart (msg part depth &optional hide)
 	 (show-part (not (or (equal hide t)
 			     (and long button))))
 	 (content-beg (point)))
     ;; Store the computed mime-type for later use (e.g. by attachment handlers).
     (plist-put part :computed-type mime-type)
     (if show-part
         (notmuch-show-insert-bodypart-internal msg part mime-type nth depth button)
       (when button
 	(button-put button :notmuch-lazy-part
 		    (list msg part mime-type nth depth button))))
     ;; Some of the body part handlers leave point somewhere up in the
     ;; part, so we make sure that we're down at the end.
     (goto-char (point-max))
@@ -1056,12 +1022,10 @@ (defun notmuch-show-insert-bodypart (msg part depth &optional hide)
 (defun notmuch-show-insert-body (msg body depth)
   "Insert the body BODY at depth DEPTH in the current thread."
   ;; Register all content IDs for this message.  According to RFC
   ;; 2392, content IDs are *global*, but it's okay if an MUA treats
   ;; them as only global within a message.
   (notmuch-show--register-cids msg (car body))
   (mapc (lambda (part) (notmuch-show-insert-bodypart msg part depth)) body))
 (defun notmuch-show-make-symbol (type)
@@ -1082,18 +1046,14 @@ (defun notmuch-show-insert-msg (msg depth)
 	 content-start content-end
 	 headers-start headers-end
 	 (bare-subject (notmuch-show-strip-re (plist-get headers :Subject))))
     (setq message-start (point-marker))
     (notmuch-show-insert-headerline headers
 				    (or (if notmuch-show-relative-dates
 					    (plist-get msg :date_relative)
 					(plist-get headers :Date))
 				    (plist-get msg :tags) depth)
     (setq content-start (point-marker))
     ;; Set `headers-start' to point after the 'Subject:' header to be
     ;; compatible with the existing implementation. This just sets it
     ;; to after the first header.
@@ -1108,9 +1068,7 @@ (defun notmuch-show-insert-msg (msg depth)
 	(forward-line 1))
       (setq headers-start (point-marker)))
     (setq headers-end (point-marker))
     (setq notmuch-show-previous-subject bare-subject)
     ;; A blank line between the headers and the body.
     (insert "\n")
     (notmuch-show-insert-body msg (plist-get msg :body)
@@ -1119,36 +1077,28 @@ (defun notmuch-show-insert-msg (msg depth)
     (unless (bolp)
       (insert "\n"))
     (setq content-end (point-marker))
     ;; Indent according to the depth in the thread.
     (if notmuch-show-indent-content
 	(indent-rigidly content-start
 			(* notmuch-show-indent-messages-width depth)))
     (setq message-end (point-max-marker))
     ;; Save the extents of this message over the whole text of the
     ;; message.
     (put-text-property message-start message-end
 		       (cons message-start message-end))
     ;; Create overlays used to control visibility
     (plist-put msg :headers-overlay (make-overlay headers-start headers-end))
     (plist-put msg :message-overlay (make-overlay headers-start content-end))
     (plist-put msg :depth depth)
     ;; Save the properties for this message. Currently this saves the
     ;; entire message (augmented it with other stuff), which seems
     ;; like overkill. We might save a reduced subset (for example, not
     ;; the content).
     (notmuch-show-set-message-properties msg)
     ;; Set header visibility.
     (notmuch-show-headers-visible msg notmuch-message-headers-visible)
     ;; Message visibility depends on whether it matched the search
     ;; criteria.
     (notmuch-show-message-visible msg (and (plist-get msg :match)
@@ -1296,9 +1246,7 @@ (defun notmuch-show (thread-id &optional elide-toggle parent-buffer query-contex
     (switch-to-buffer (get-buffer-create buffer-name))
     ;; No need to track undo information for this buffer.
     (setq buffer-undo-list t)
     ;; Set various buffer local variables to their appropriate initial
     ;; state. Do this after enabling `notmuch-show-mode' so that they
     ;; aren't wiped out.
@@ -1307,24 +1255,19 @@ (defun notmuch-show (thread-id &optional elide-toggle parent-buffer query-contex
 	  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.
 	  (if elide-toggle
 	      (not notmuch-show-only-matching-messages)
     (add-hook 'post-command-hook #'notmuch-show-command-hook nil t)
     (jit-lock-register #'notmuch-show-buttonise-links)
     (let ((inhibit-read-only t))
       (if (notmuch-show--build-buffer)
 	  ;; Messages were inserted into the buffer.
 	;; No messages were inserted - presumably none matched the
 	;; query.
 	(kill-buffer (current-buffer))
@@ -1367,26 +1310,21 @@ (defun notmuch-show--build-buffer (&optional state)
       (setq queries (cdr queries)))
     (when forest
       (notmuch-show-insert-forest forest)
       ;; Store the original tags for each message so that we can
       ;; display changes.
        (lambda () (notmuch-show-set-prop :orig-tags (notmuch-show-get-tags))))
       ;; Set the header line to the subject of the first message.
       (setq header-line-format
 	    (replace-regexp-in-string "%" "%%"
       (run-hooks 'notmuch-show-hook)
       (if state
 	  (notmuch-show-apply-state state)
 	;; With no state to apply, just go to the first message.
     ;; Report back to the caller whether any messages matched.
@@ -1431,14 +1369,12 @@ (defun notmuch-show-apply-state (state)
  - moving to the correct current message in every displayed window."
   (let ((win-msg-alist (car state))
 	(open (cadr state)))
     ;; Open those that were open.
     (goto-char (point-min))
     (cl-loop do (notmuch-show-message-visible
 		 (member (notmuch-show-get-message-id) open))
 	     until (not (notmuch-show-goto-message-next)))
     (dolist (win-msg-pair win-msg-alist)
       (with-selected-window (car win-msg-pair)
 	;; Go to the previously open message in this window
@@ -1460,7 +1396,6 @@ (defun notmuch-show-refresh-view (&optional reset-state)
     ;; manually.
     (unless (notmuch-show--build-buffer state)
       ;; No messages were inserted.
       (kill-buffer (current-buffer))
@@ -1881,16 +1816,13 @@ (defun notmuch-show-advance ()
 	   (> visible-end-of-this-message (window-end)))
       ;; The bottom of this message is not visible - scroll.
       (scroll-up nil))
      ((not (= end-of-this-message (point-max)))
       ;; This is not the last message - move to the next visible one.
      ((not (= (point) (point-max)))
       ;; This is the last message, but the cursor is not at the end of
       ;; the buffer. Move it there.
       (goto-char (point-max)))
       ;; This is the last message - change the return value
       (setq ret t)))
@@ -2527,7 +2459,6 @@ (defun notmuch-show-pipe-part ()
   (notmuch-show-apply-to-current-part-handle #'mm-pipe-part))
 (defun notmuch-show--mm-display-part (handle)
   "Use mm-display-part to display HANDLE in a new buffer.
diff --git a/emacs/notmuch-tag.el b/emacs/notmuch-tag.el
index 34cd493a..85c80f54 100644
--- a/emacs/notmuch-tag.el
+++ b/emacs/notmuch-tag.el
@@ -331,7 +331,6 @@ (defun notmuch-tag-format-tag (tags orig-tags tag)
 		    (otherwise nil))))
 	(setq formatted-tag (notmuch-tag--do-format tag tag base))
 	(setq formatted-tag (notmuch-tag--do-format tag formatted-tag over))
 	(puthash (cons tag tag-state) formatted-tag notmuch-tag--format-cache)))
@@ -356,7 +355,6 @@ (defcustom notmuch-before-tag-hook nil
 a list of strings of the form \"+TAG\" or \"-TAG\".
 'query' will be a string containing the search query that determines
 the messages that are about to be tagged."
   :type 'hook
   :options '(notmuch-hl-line-mode)
   :group 'notmuch-hooks)
@@ -406,7 +404,6 @@ (defun notmuch-read-tag-changes (current-tags &optional prompt initial-input)
 non-nil, is the query string to present in the minibuffer.  It
 defaults to \"Tags\".  INITIAL-INPUT, if non-nil, will be the
 initial input in the minibuffer."
   (let* ((all-tag-list (notmuch-tag-completions))
 	 (add-tag-list (mapcar (apply-partially 'concat "+") all-tag-list))
 	 (remove-tag-list (mapcar (apply-partially 'concat "-") current-tags))
diff --git a/emacs/notmuch-tree.el b/emacs/notmuch-tree.el
index fcfb972d..d90f2aa0 100644
--- a/emacs/notmuch-tree.el
+++ b/emacs/notmuch-tree.el
@@ -891,7 +891,6 @@ (defun notmuch-tree-insert-tree (tree depth tree-status first last)
 message together with all its descendents."
   (let ((msg (car tree))
 	(replies (cadr tree)))
        ((and (< 0 depth) (not last))
 	(push "├" tree-status))
@@ -907,7 +906,6 @@ (defun notmuch-tree-insert-tree (tree depth tree-status first last)
 	(push "╰" tree-status))
        ((and (eq 0 depth) (not first) (not last))
 	(push "├" tree-status)))
       (push (concat (if replies "┬" "─") "►") tree-status)
       (setq msg (plist-put msg :first (and first (eq 0 depth))))
       (setq msg (plist-put msg :tree-status tree-status))
@@ -915,11 +913,9 @@ (defun notmuch-tree-insert-tree (tree depth tree-status first last)
       (notmuch-tree-goto-and-insert-msg msg)
       (pop tree-status)
       (pop tree-status)
       (if last
 	  (push " " tree-status)
 	(push "│" tree-status))
     (notmuch-tree-insert-thread replies (1+ depth) tree-status)))
 (defun notmuch-tree-insert-thread (thread depth tree-status)
@@ -958,7 +954,6 @@ (define-derived-mode notmuch-tree-mode fundamental-mode "notmuch-tree"
 Complete list of currently available key bindings:
   (setq notmuch-buffer-refresh-function #'notmuch-tree-refresh-view)
   (hl-line-mode 1)
   (setq buffer-read-only t
@@ -1022,7 +1017,6 @@ (defun notmuch-tree-worker (basic-query &optional query-context target open-targ
   ;; (such as reply) do. It is a buffer local variable so setting it
   ;; will not affect genuine show buffers.
   (setq notmuch-show-process-crypto notmuch-crypto-process-mime)
   (goto-char (point-min))
   (let* ((search-args (concat basic-query
@@ -1079,13 +1073,10 @@ (defun notmuch-tree (&optional query query-context target buffer-name open-targe
 						(if unthreaded "unthreaded-" "tree-")
 						query "*")))))
 	(inhibit-read-only t))
     (switch-to-buffer buffer))
   ;; Don't track undo information for this buffer
   (set 'buffer-undo-list t)
   (notmuch-tree-worker query query-context target open-target unthreaded)
   (setq truncate-lines t))
 (defun notmuch-unthreaded (&optional query query-context target buffer-name open-target)
diff --git a/emacs/notmuch-wash.el b/emacs/notmuch-wash.el
index 3a9ffdd0..c3b24cb9 100644
--- a/emacs/notmuch-wash.el
+++ b/emacs/notmuch-wash.el
@@ -203,12 +203,10 @@ (defun notmuch-wash-region-to-button (msg beg end type &optional prefix)
 \"citation\" or \"signature\". Optional PREFIX is some arbitrary
 text to insert before the button, probably for indentation.  Note
 that PREFIX should not include a newline."
   ;; This uses some slightly tricky conversions between strings and
   ;; symbols because of the way the button code works. Note that
   ;; replacing intern-soft with make-symbol will cause this to fail,
   ;; since the newly created symbol has no plist.
   (let ((overlay (make-overlay beg end))
 	(button-type (intern-soft (concat "notmuch-wash-button-"
 					  type "-toggle-type"))))
@@ -276,25 +274,20 @@ (defun notmuch-wash-excerpt-citations (msg depth)
 (defun notmuch-wash-elide-blank-lines (msg depth)
   "Elide leading, trailing and successive blank lines."
   ;; Algorithm derived from `article-strip-multiple-blank-lines' in
   ;; `gnus-art.el'.
   ;; Make all blank lines empty.
   (goto-char (point-min))
   (while (re-search-forward "^[[:space:]\t]+$" nil t)
     (replace-match "" nil t))
   ;; Replace multiple empty lines with a single empty line.
   (goto-char (point-min))
   (while (re-search-forward "^\n\\(\n+\\)" nil t)
     (delete-region (match-beginning 1) (match-end 1)))
   ;; Remove a leading blank line.
   (goto-char (point-min))
   (if (looking-at "\n")
       (delete-region (match-beginning 0) (match-end 0)))
   ;; Remove a trailing blank line.
   (goto-char (point-max))
   (if (looking-at "\n")
@@ -313,20 +306,15 @@ (defun notmuch-wash-tidy-citations (msg depth)
 - Remove citation trailers standing alone after a block of cited
   ;; Remove lines of repeated citation leaders with no other content.
   (goto-char (point-min))
   (while (re-search-forward "\\(^>[> ]*\n\\)\\{2,\\}" nil t)
     (replace-match "\\1"))
-  ;; Remove citation leaders standing alone before a block of cited
-  ;; text.
+  ;; Remove citation leaders standing alone before a block of cited text.
   (goto-char (point-min))
   (while (re-search-forward "\\(\n\\|^[^>].*\\)\n\\(^>[> ]*\n\\)" nil t)
     (replace-match "\\1\n"))
-  ;; Remove citation trailers standing alone after a block of cited
-  ;; text.
+  ;; Remove citation trailers standing alone after a block of cited text.
   (goto-char (point-min))
   (while (re-search-forward "\\(^>[> ]*\n\\)\\(^$\\|^[^>].*\\)" nil t)
     (replace-match "\\2")))
@@ -341,7 +329,6 @@ (defun notmuch-wash-wrap-long-lines (msg depth)
 its value. Otherwise, this function will wrap long lines in the
 message at the window width. When doing so, citation leaders in
 the wrapped text are maintained."
   (let* ((coolj-wrap-follows-window-size nil)
 	 (indent (* depth notmuch-show-indent-messages-width))
 	 (limit (if (numberp notmuch-wash-wrap-lines-length)
@@ -405,7 +392,6 @@ (defun notmuch-wash-convert-inline-patch-to-part (msg depth)
 Given that this function guesses whether a buffer includes a
 patch and then guesses the extent of the patch, there is scope
 for error."
   (goto-char (point-min))
   (when (re-search-forward diff-file-header-re nil t)
     (beginning-of-line -1)
diff --git a/emacs/notmuch.el b/emacs/notmuch.el
index 07a58da7..04334c76 100644
--- a/emacs/notmuch.el
+++ b/emacs/notmuch.el
@@ -755,7 +755,6 @@ (defun notmuch-search-insert-authors (format-string authors)
 	   (visible-string formatted-authors)
 	   (invisible-string "")
 	   (padding ""))
       ;; Truncate the author string to fit the specification.
       (if (> (length formatted-authors)
 	     (length formatted-sample))
@@ -782,7 +781,6 @@ (defun notmuch-search-insert-authors (format-string authors)
 					  (length visible-string)
 					  (length "..."))
 				       ? ))))
       ;; Use different faces to show matching and non-matching authors.
       (if (string-match "\\(.*\\)|\\(.*\\)" visible-string)
 	  ;; The visible string contains both matching and
@@ -798,14 +796,12 @@ (defun notmuch-search-insert-authors (format-string authors)
 	      ;; The invisible string may contain both matching and
 	      ;; non-matching authors.
 	      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 ""))
 	(setq visible-string
 	      (propertize visible-string
 			  'help-echo (concat "..." invisible-string))))
       ;; Insert the visible and, if present, invisible author strings.
       (insert visible-string)
       (when (not (string= invisible-string ""))
@@ -831,11 +827,9 @@ (defun notmuch-search-insert-field (field format-string result)
     (insert (propertize (format format-string
 				(notmuch-sanitize (plist-get result :subject)))
 			'face 'notmuch-search-subject)))
    ((string-equal field "authors")
      format-string (notmuch-sanitize (plist-get result :authors))))
    ((string-equal field "tags")
     (let ((tags (plist-get result :tags))
 	  (orig-tags (plist-get result :orig-tags)))
@@ -1118,7 +1112,6 @@ (defun notmuch-cycle-notmuch-buffers ()
 If the current buffer is the only notmuch buffer, bury it. If no
 notmuch buffers exist, run `notmuch'."
   (let (start first)
     ;; If the current buffer is a notmuch buffer, remember it and then
     ;; bury it.

notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org