Re: [PATCH] emacs/notmuch-show: Work around errors where a part lacks a content-type

2021-01-10 Thread Jonas Bernoulli
I accidentally responded off-list. Here is (part of) Daniel's response to that message: On Wed 2021-01-06 18:48:09 +0100, Jonas Bernoulli wrote: > Okay, I'll prepare a patch that does that. Thanks! > I wasn't so much worried having to deal with this in multiple places in > elisp--that's quite

[PATCH 1/4] emacs: notmuch-mua-add-more-hidden-headers: use local binding

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch-mua.el | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el index 08c73c16..bbf059a2 100644 --- a/emacs/notmuch-mua.el +++ b/emacs/notmuch-mua.el @@ -217,11 +217,10 @@ (defun notmuch-mua-add-more-hidden-headers ()

[PATCH 2/4] emacs: notmuch-show--register-cids: fix names of bindings

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch-show.el | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index fdf4ab3c..21133611 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -581,13 +581,13 @@ (defun notmuch-show--register-cids (msg

[PATCH 3/4] emacs: notmuch-show--get-cid-content: cosmetics

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch-show.el | 17 +++-- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index 21133611..8c846fb2 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -599,16 +599,13 @@ (defun

[PATCH 4/4] emacs: avoid type errors due to nil as content-type

2021-01-10 Thread Jonas Bernoulli
The output of "notmuch show --format=sexp --format-version=4" may contain `:content-type' entries with `nil' as the value, when it fails to detect the correct value. Account for that in a few places where we would otherwise risk a type error. Note that `string=' does not choke on `nil' because

[PATCH 0/4] emacs: avoid type errors due to nil as content-type

2021-01-10 Thread Jonas Bernoulli
The fourth commit tries to address the issue raised in id:87k0sxa6c3@fifthhorseman.net. The output of "notmuch show --format=sexp --format-version=4" may contain `:content-type' entries with `nil' as the value, when it fails to detect the correct value. Account for that in a few

Re: [PATCH 02/36] test/T391-python-cffi

2021-01-10 Thread Tomi Ollila
On Sun, Jan 03 2021, David Bremner wrote: > Make bindings test verbose. This helps in debugging. > --- > test/T391-python-cffi.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/test/T391-python-cffi.sh b/test/T391-python-cffi.sh > index f961069b..d54bad27 100755 > ---

[PATCH v2 00/36] [emacs] Add outline headings and switch to lexical scope

2021-01-10 Thread Jonas Bernoulli
This fixes a minor whitespace bug that Tomi notices in (1). This also adds for commits, two of them in response to a concern raised by Tomi, who didn't "see enough point for requiring subr-x just [for string-empty-p]", which I agree with: 2) Changes how `cl-lib' and `pcase' are required. I did

[PATCH v2 02/36] emacs: sanitize dedicated widget action/notify functions

2021-01-10 Thread Jonas Bernoulli
These functions are used as action/notify functions. That dictates the appropriate function signatures but even though these functions are not used for anything else they use incompatible signatures, forcing the callers to use lambda expressions to deal with these incompatibilities. Fix that by

[PATCH v2 01/36] emacs: use setq instead of set

2021-01-10 Thread Jonas Bernoulli
Commonly `set' is only used if there is no way around it; i.e. when the variable cannot be known until runtime. --- emacs/notmuch-tree.el | 2 +- emacs/notmuch.el | 14 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/emacs/notmuch-tree.el

[PATCH v2 03/36] emacs: define new notmuch-search-item widget type

2021-01-10 Thread Jonas Bernoulli
This is complex enough to warrant a dedicated widget type, which will make future improvements less messy to implement. --- emacs/notmuch-hello.el | 92 +- 1 file changed, 45 insertions(+), 47 deletions(-) diff --git a/emacs/notmuch-hello.el

[PATCH v2 04/36] emacs: notmuch-start-notmuch: remove backward compatibility code

2021-01-10 Thread Jonas Bernoulli
We no longer support Emacs releases before version 25.1. Also adjust the sentinels which only had to deal with an error file when using an older Emacs release was used. --- emacs/notmuch-lib.el | 64 1 file changed, 17 insertions(+), 47 deletions(-)

[PATCH v2 07/36] emacs: notmuch-start-notmuch: avoid storing process buffer twice

2021-01-10 Thread Jonas Bernoulli
The buffer of the error process is accessible using `process-buffer'. We still have to store the error-buffer in the non-error process because for that process `process-buffer' obviously returns its own buffer. --- emacs/notmuch-lib.el | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)

[PATCH v2 06/36] emacs: notmuch-start-notmuch-sentinel: assert buffer is alive

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch-lib.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index 21fa2582..06ca8cdc 100644 --- a/emacs/notmuch-lib.el +++ b/emacs/notmuch-lib.el @@ -917,7 +917,8 @@ (defun notmuch-start-notmuch (name buffer sentinel

[PATCH v2 05/36] emacs: notmuch-start-notmuch-error-sentinel: assert buffer is alive

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch-lib.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index 76387779..21fa2582 100644 --- a/emacs/notmuch-lib.el +++ b/emacs/notmuch-lib.el @@ -956,7 +956,8 @@ (defun notmuch-start-notmuch-sentinel (proc event)

[PATCH v2 23/36] emacs: various cosmetic improvements

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch-address.el | 22 -- emacs/notmuch-hello.el | 24 --- emacs/notmuch-jump.el| 4 +- emacs/notmuch-lib.el | 26 +-- emacs/notmuch-maildir-fcc.el | 61 +++--- emacs/notmuch-mua.el | 28 ++--

[PATCH v2 25/36] emacs: various doc-string improvements

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch-draft.el | 12 ++- emacs/notmuch-maildir-fcc.el | 21 +- emacs/notmuch-mua.el | 9 emacs/notmuch-tag.el | 41 ++-- emacs/notmuch-tree.el| 10 - emacs/notmuch.el |

[PATCH v2 28/36] emacs: notmuch-search-stash-thread-id: use notmuch-search-query-string

2021-01-10 Thread Jonas Bernoulli
No longer use the function `notmuch-search-get-query', which does nothing but return the value of that variable. That function was added in [1: f47eeac0] for use in `notmuch-read-query' along-side related `notmuch-show-get-query' and `notmuch-tree-get-query' but using it here makes little sense.

[PATCH v2 27/36] emacs: define a few variables as automatically buffer-local

2021-01-10 Thread Jonas Bernoulli
Define these variables as automatically buffer-local, meaning that they always become buffer-local when set unless explicitly told otherwise using `setq-default' or when using the Custom interface. Previously they were declared, which keeps the byte-compiler quiet but is not actually the same as

[PATCH v2 19/36] emacs: notmuch-wash.el: require diff-mode at beginning of code

2021-01-10 Thread Jonas Bernoulli
That's what we usually do. Also do not declare variable `diff-file-header-re' because it is defined in `diff-mode.el', which we always require. --- emacs/notmuch-wash.el | 5 + 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/emacs/notmuch-wash.el b/emacs/notmuch-wash.el index

[PATCH v2 22/36] emacs: notmuch-crypto-status-button-type: fix potential bug

2021-01-10 Thread Jonas Bernoulli
The "help-echo" can potentially contain an unintended %-spec so we have to make sure it would not be treated as such. --- emacs/notmuch-crypto.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emacs/notmuch-crypto.el b/emacs/notmuch-crypto.el index 50a3de46..db7cb75d 100644

[PATCH v2 24/36] emacs: various comment improvements

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch-address.el | 5 ++--- emacs/notmuch-hello.el | 4 +--- emacs/notmuch-lib.el | 6 +++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/emacs/notmuch-address.el b/emacs/notmuch-address.el index 2f0ec9b3..1f22e377 100644 --- a/emacs/notmuch-address.el +++

[PATCH v2 21/36] emacs: notmuch-mua.el: move all options into "Options" section

2021-01-10 Thread Jonas Bernoulli
This is how we do it in other libraries. --- emacs/notmuch-mua.el | 32 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el index 2d0b7169..74ffd8f2 100644 --- a/emacs/notmuch-mua.el +++

[PATCH v2 12/36] emacs: deal with unused lexical arguments and variables

2021-01-10 Thread Jonas Bernoulli
The previous commit switched to lexical-binding but without dealing with the new warnings about unused lexical arguments and variables. This commit deals with most of them, in most cases by either removing leftover bindings that are actually unnecessary, or by marking certain arguments as "known

[PATCH v2 11/36] emacs: use lexical-bindings in all libraries

2021-01-10 Thread Jonas Bernoulli
Doing so causes many new compile warnings. Some of these warnings concern genuine changes in behavior that have to be addressed right away. Many other warnings are due to unused variables. Nothing has changed here, except that the byte-compiler can now detect these pre-existing and harmless

[PATCH v2 15/36] emacs: notmuch-wash-region-to-button: remove unused MSG argument

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch-wash.el | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/emacs/notmuch-wash.el b/emacs/notmuch-wash.el index 36041904..4fbb4e12 100644 --- a/emacs/notmuch-wash.el +++ b/emacs/notmuch-wash.el @@ -200,7 +200,7 @@ (defun notmuch-wash-button-label

[PATCH v2 09/36] emacs: avoid killing process buffer when process is still alive

2021-01-10 Thread Jonas Bernoulli
In practice this probably does not make a difference or we would have heard about it many times, but better be safe than sorry. Process sentinels are called not only when the process has finished but also on other state changes. --- emacs/notmuch-lib.el | 7 --- 1 file changed, 4

[PATCH v2 08/36] emacs: avoid passing around some redundant information

2021-01-10 Thread Jonas Bernoulli
When running "notmuch" we use its full path but when displaying the command to the user we show just its name for readability reasons. Avoid passing around both representations because it is very easy to get the name from the path. Notmuch itself uses the involved functions just for "notmuch" but

[PATCH v2 20/36] emacs: notmuch-mua-prompt-for-sender: don't force Ido on users

2021-01-10 Thread Jonas Bernoulli
We shouldn't force `ido-completion-read' on users who do not otherwise use Ido. Unfortunately simply turning on `ido-mode' does not change every `completing-read' into a `ido-completing-read', instead it only changes file and buffer completion. I do realize that existing Ido users will initially

[PATCH v2 16/36] emacs: silence compiler wrt notmuch-show-insert-part-text/plain

2021-01-10 Thread Jonas Bernoulli
`notmuch-show-insert-part-text/plain' calls `notmuch-show-insert-text/plain-hook' with two arguments MSG and DEPTH. Currently all hook functions ignore MSG but third-party functions may not. One hook function uses DEPTH. --- emacs/notmuch-wash.el | 8 1 file changed, 4 insertions(+), 4

[PATCH v2 14/36] emacs: inline notmuch-sexp-eof into only caller

2021-01-10 Thread Jonas Bernoulli
This function had a few issues. - Neither its name nor the old comment before it is called made it clear what it does. - It took one argument but didn't do anything with it. - It's doc-string made a few claims, which are untrue and generally focused on details instead of that its purpose is.

[PATCH v2 17/36] emacs: define notmuch-message-queued-tag-changes as buffer-local

2021-01-10 Thread Jonas Bernoulli
Also improve the doc-string. --- emacs/notmuch-message.el | 14 +++--- emacs/notmuch-mua.el | 12 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/emacs/notmuch-message.el b/emacs/notmuch-message.el index f0e9ffcc..9dc8d056 100644 ---

[PATCH v2 13/36] emacs: notmuch-tag--get-formats: silence byte-compiler

2021-01-10 Thread Jonas Bernoulli
`format-alist' is a global variable and the byte-compiler is unhappy when a lexical function argument shadows a global (dynamic) binding. --- emacs/notmuch-tag.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/emacs/notmuch-tag.el b/emacs/notmuch-tag.el index

[PATCH v2 18/36] emacs: notmuch-message-apply-queued-tag-changes: cosmetics

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch-message.el | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/emacs/notmuch-message.el b/emacs/notmuch-message.el index 9dc8d056..abeff53a 100644 --- a/emacs/notmuch-message.el +++ b/emacs/notmuch-message.el @@ -62,9 +62,8 @@ (defvar-local

[PATCH v2 10/36] emacs: make headings outline-minor-mode compatible

2021-01-10 Thread Jonas Bernoulli
`outline-minor-mode' treats comments that begin with three or more semicolons as headings. That makes it very convenient to navigate code and to show/hide parts of a file. Elips libraries typically have four top-level sections, e.g.: ;;; notmuch.el --- run notmuch within emacs... ;;;

[PATCH v2 29/36] emacs: reorder notmuch.el a bit

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch.el | 41 - 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index 481a0e0a..40b730df 100644 --- a/emacs/notmuch.el +++ b/emacs/notmuch.el @@ -70,6 +70,8 @@ (eval-when-compile (require

[PATCH v2 26/36] emacs: remove variable notmuch-search-disjunctive-regexp

2021-01-10 Thread Jonas Bernoulli
The value is the only possible value, it is only used in one place, and using a global variable serves no purpose but to make things more complicated. --- emacs/notmuch.el | 8 ++-- 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/emacs/notmuch.el b/emacs/notmuch.el index

[PATCH v2 32/36] emacs: make subr-x available in all libraries

2021-01-10 Thread Jonas Bernoulli
Like `cl-lib' and `pcase', which are already available in all libraries, `subr-x' also provided many useful functions that we would like to use. Making `subr-x' available in every library from the get-go means that we can use the functions it defines without having to double check every single

[PATCH v2 30/36] emacs: avoid unnecessary let-bindings

2021-01-10 Thread Jonas Bernoulli
To some extend this is a personal preference, but the preference is strongly dependent on whether one is used to a language that makes it necessary to use variables like this. This makes it perfectly clear that we are first getting and then using a "foo": (use-foo (get-foo)) Sure this has to

[PATCH v2 31/36] emacs: improve how cl-lib and pcase are required

2021-01-10 Thread Jonas Bernoulli
We need to load `cl-lib' at run-time because we use more from it than just macros. Never-the-less many, but not all libraries required it only at compile-time, which we got away with because at least some libraries already required it at run-time as well. We use `cl-lib' and (currently to a

[PATCH v2 35/36] emacs: allow opting out of notmuch's address completion

2021-01-10 Thread Jonas Bernoulli
IMO Notmuch should not override the default completion mechanism by default, at least not globally. But since users are already used to this behavior it is probably too late to change it. Do the next best thing and at least allow users to opt out. --- emacs/notmuch-address.el | 48

[PATCH v2 36/36] emacs: notmuch-address-expand-name: use the actual initial-input

2021-01-10 Thread Jonas Bernoulli
Users may type some text into the buffer on an address line, before actually invoking address completion. We now use that text as the initial input when we begin address completion. Previously we did knowingly replace the actual initial input with some completion candidate that happens to match.

[PATCH v2 33/36] emacs: use string-empty-p

2021-01-10 Thread Jonas Bernoulli
--- emacs/notmuch-lib.el | 2 +- emacs/notmuch-mua.el | 2 +- emacs/notmuch-show.el | 4 ++-- emacs/notmuch-tag.el | 2 +- emacs/notmuch.el | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el index 05d3be10..bc550dc2 100644

[PATCH v2 34/36] emacs: notmuch-tree-get-match: No longer define as command

2021-01-10 Thread Jonas Bernoulli
When called from code, then this function returns non-nil when the message at point is a matched message. However it does nothing at all to present that information to the user when it called interactively. It is therefore safe to conclude that nobody is using this as a command. ---

[autocrypt RFC PATCH] Add support for the notmuch mua

2021-01-10 Thread David Edmondson
--- This is very much an RFC patch, as I'm new to autocrypt. It's also a patch for autocrypt (https://git.sr.ht/~zge/autocrypt) rather than notmuch, but it made more sense to send it here first, I think. Comments welcomed. autocrypt-notmuch.el | 103 +++

Re: [PATCH 01/36] test/T750-gzip: don't compress the xapian database

2021-01-10 Thread Tomi Ollila
On Sun, Jan 03 2021, David Bremner wrote: > This causes mysterious failures in trying to detect if a database > exists. > --- > test/T750-gzip.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/test/T750-gzip.sh b/test/T750-gzip.sh > index fac41d39..807086fd 100755 > ---

Re: [PATCH 0/4] emacs: avoid type errors due to nil as content-type

2021-01-10 Thread Jonas Bernoulli
David Edmondson writes: > On Sunday, 2021-01-10 at 19:47:18 +01, Jonas Bernoulli wrote: > >> The fourth commit tries to address the issue raised in >> id:87k0sxa6c3@fifthhorseman.net. >> >> The output of "notmuch show --format=sexp --format-version=4" >> may contain `:content-type'

Re: [PATCH 0/4] emacs: avoid type errors due to nil as content-type

2021-01-10 Thread David Edmondson
On Sunday, 2021-01-10 at 19:47:18 +01, Jonas Bernoulli wrote: > The fourth commit tries to address the issue raised in > id:87k0sxa6c3@fifthhorseman.net. > > The output of "notmuch show --format=sexp --format-version=4" > may contain `:content-type' entries with `nil' as the value, >

Re: [PATCH 01/36] test/T750-gzip: don't compress the xapian database

2021-01-10 Thread David Bremner
Tomi Ollila writes: > On Sun, Jan 03 2021, David Bremner wrote: > >> +find ${MAIL_DIR} -name .notmuch -prune -false -o -type f -exec gzip >> --recursive {} \; > > (some extra spaces above) > > The point of -false is that if there exists .notmuch which is file, then > include it ? (w/o -false