]> git.cworth.org Git - notmuch-old/log
notmuch-old
3 years agodebian: add new function to symbols file
David Bremner [Fri, 15 Oct 2021 11:34:09 +0000 (08:34 -0300)]
debian: add new function to symbols file

3 years agoversion: bump to 0.34~0
David Bremner [Fri, 15 Oct 2021 11:28:59 +0000 (08:28 -0300)]
version: bump to 0.34~0

Start release process for 0.34.

3 years agodebian: install notmuch-sexp-queries man page
David Bremner [Tue, 12 Oct 2021 11:20:09 +0000 (08:20 -0300)]
debian: install notmuch-sexp-queries man page

This was missed in the series that added the sexp-query parser and
docs.

3 years agoconfigure: whitespace cleanup
David Bremner [Sat, 9 Oct 2021 20:09:16 +0000 (17:09 -0300)]
configure: whitespace cleanup

In order to make it easier to keep the whitespace consistent in the
configure script, use the same style defined in devel/STYLE for
C/C++.

  Specifically, a line should begin with zero or more tabs followed
  by fewer than eight spaces.

Presumably this will be no more difficult for people editing configure
than for people editing the C and C++ code.

3 years agodevel: script for checking a commit (series)
David Bremner [Sun, 10 Oct 2021 11:47:58 +0000 (08:47 -0300)]
devel: script for checking a commit (series)

'check-notmuch-commit' is an updated version of a script I have been
using (although not always as consistently as I should) before sending
patches to the list.

Although it requires a bit more tooling, encouraging people to use
check-notmuch-commit might reduce the number of round trips to the
list for style nitpicks.

3 years agoconfigure: check explicitely for python dev (include) files
David Bremner [Thu, 7 Oct 2021 11:59:06 +0000 (08:59 -0300)]
configure: check explicitely for python dev (include) files

As discussed at [1] we have received reports that the implicit check
using cffi.FFI().verify() is not reliable in all environments. Since
we already use pkg-config, and the python dev package should include a
.pc file [2], add an extra check using pkg-config.  On at least
Debian, we have to know which version of python dev files with are
looking for, so calculate that first.

[1]: id:87im1g35ey.fsf@tethera.netid:87im1g35ey.fsf@tethera.net,
[2]: checked on Debian and Fedora

3 years agoMerge tag '0.33.2'
David Bremner [Thu, 30 Sep 2021 11:58:48 +0000 (08:58 -0300)]
Merge tag '0.33.2'

notmuch 0.33.2 release

3 years agoversion: bump to 0.33.2 0.33.2
David Bremner [Thu, 30 Sep 2021 11:28:49 +0000 (08:28 -0300)]
version: bump to 0.33.2

3 years agodebian: changelog for 0.33.2-1
David Bremner [Thu, 30 Sep 2021 11:27:37 +0000 (08:27 -0300)]
debian: changelog for 0.33.2-1

3 years agoNEWS: update for 0.33.2
David Bremner [Thu, 30 Sep 2021 11:25:11 +0000 (08:25 -0300)]
NEWS: update for 0.33.2

3 years agotest/T355-smime: Use key as exported by gpgsm
David Bremner [Tue, 28 Sep 2021 01:30:08 +0000 (22:30 -0300)]
test/T355-smime: Use key as exported by gpgsm

As reported in id:87h7pxiek3.fsf@tethera.net, the previous version of
the test is flaky. There is some so-far undebugged interaction between
openssl and gpgsm that causes the keys to fail to import. As a
potential workaround, use the key as exported by gpgsm, and eliminate
openssl from this particular pipeline.

3 years agoemacs: notmuch-tree: customizable strings for drawing trees
jao [Tue, 31 Aug 2021 01:21:06 +0000 (02:21 +0100)]
emacs: notmuch-tree: customizable strings for drawing trees

New customizable variable, notmuch-tree-thread-symbols, that allows
tweaking of how trees in a forest are represented.  For instance, one
can now choose to use an hyphen rather than a white space as a prefix,
or replace the character(s) used to draw arrows.

Amended-By: db; delete errant '3'
3 years agotest/emacs: tests for notmuch-{tree,unthreaded} with bad CWD
David Bremner [Sun, 29 Aug 2021 19:23:35 +0000 (12:23 -0700)]
test/emacs: tests for notmuch-{tree,unthreaded} with bad CWD

These work thanks to the previous wrapping of process creation
primitives.

3 years agoemacs: wrap call-process
David Bremner [Sat, 11 Sep 2021 14:04:08 +0000 (11:04 -0300)]
emacs: wrap call-process

Provide safe working directory

3 years agotest/emacs: test for notmuch-show with nonexistent CWD
David Bremner [Sun, 29 Aug 2021 19:23:33 +0000 (12:23 -0700)]
test/emacs: test for notmuch-show with nonexistent CWD

Somewhat predictably, the other code path in
notmuch-call-notmuch--helper also needs to be fixed.

3 years agoemacs: wrap make-process
David Bremner [Sun, 29 Aug 2021 19:23:32 +0000 (12:23 -0700)]
emacs: wrap make-process

Provide a safe working directory.

3 years agotest/emacs: test for notmuch-search with nonexistent CWD
David Bremner [Sun, 29 Aug 2021 19:23:31 +0000 (12:23 -0700)]
test/emacs: test for notmuch-search with nonexistent CWD

(At least) notmuch-start-notmuch needs to be updated to set a safe
working directory.

3 years agoemacs: wrap call-process-region
David Bremner [Sun, 29 Aug 2021 19:23:30 +0000 (12:23 -0700)]
emacs: wrap call-process-region

As with notmuch--process-lines, initial purpose is to provide a safe
binding for default-directory. This is enough to make notmuch-hello
robust against non-existent or corrupt values default-directory, but
probably not other views.

3 years agoemacs: wrap process-lines
David Bremner [Sun, 29 Aug 2021 19:23:29 +0000 (12:23 -0700)]
emacs: wrap process-lines

Initially just set the working directory, to avoid (the implicit)
call-process crashing when the default-directory points to a
non-existent location.

Use of a macro here is over-engineering for this change, but the same
change needs to be applied to several other process creation
primitives.

3 years agotest/emacs: run notmuch-hello with a nonexisting default dir
David Bremner [Sun, 29 Aug 2021 19:23:28 +0000 (12:23 -0700)]
test/emacs: run notmuch-hello with a nonexisting default dir

This replicates the problem reported in Debian bug #922536.

3 years agotest/emacs: provide macro test-log-error
David Bremner [Sun, 29 Aug 2021 19:23:27 +0000 (12:23 -0700)]
test/emacs: provide macro test-log-error

Because of the way emacs reports errors, a test form can crash and not
change the main buffer. To work around this, capture both signalled
errors and any other messages.

3 years agoMerge tag '0.33.1'
David Bremner [Sat, 11 Sep 2021 00:02:10 +0000 (21:02 -0300)]
Merge tag '0.33.1'

notmuch 0.33.1 release

3 years agodebian: drop debian specific test exclusion 0.33.1 archive/debian/0.33.1-1 debian/0.33.1-1
David Bremner [Fri, 10 Sep 2021 11:30:24 +0000 (08:30 -0300)]
debian: drop debian specific test exclusion

In principle these tests should pass now.

3 years agodebian: changelog for 0.33.1-1
David Bremner [Fri, 10 Sep 2021 11:30:07 +0000 (08:30 -0300)]
debian: changelog for 0.33.1-1

3 years agoNEWS: update for 0.33.1
David Bremner [Fri, 10 Sep 2021 11:28:04 +0000 (08:28 -0300)]
NEWS: update for 0.33.1

3 years agoversion: bump to 0.33.1
David Bremner [Fri, 10 Sep 2021 11:21:28 +0000 (08:21 -0300)]
version: bump to 0.33.1

3 years agolib: use 'localhost' rather than fqdn for default mail address.
David Bremner [Thu, 9 Sep 2021 12:51:03 +0000 (09:51 -0300)]
lib: use 'localhost' rather than fqdn for default mail address.

As discussed in the thread starting at [1], the fully qualified domain
name is a bit tricky to get reproducibly, might reveal information
people prefer to keep private, and somewhat unlikely to provide
reliable mail routing.

The new approach of $current_username@localhost is better for the
first two considerations, and probably at least as good as a test mail
address.

[1]: id:87sfyibqhj.fsf@tethera.net

3 years agotest/emacs: test for functions in notmuch-search-result-format.
David Bremner [Mon, 30 Aug 2021 19:49:06 +0000 (12:49 -0700)]
test/emacs: test for functions in notmuch-search-result-format.

Based on the commit message in id:20210221151902.2301690-3-dme@dme.org

Add the function notmuch-test-result-flags to test-lib.el to avoid
repeating it in 3 T*.sh files.

3 years agoemacs: Allow functions in notmuch-{tree,unthreaded}-result-format
David Edmondson [Sun, 21 Feb 2021 15:19:02 +0000 (15:19 +0000)]
emacs: Allow functions in notmuch-{tree,unthreaded}-result-format

If the car of an element in notmuch-tree-result-format or
notmuch-unthreaded-result-format is a function, insert the result of
calling the function into the buffer.

3 years agoemacs: Allow functions in notmuch-search-result-format
David Edmondson [Sun, 21 Feb 2021 15:19:01 +0000 (15:19 +0000)]
emacs: Allow functions in notmuch-search-result-format

If the car of an element in notmuch-search-result-format is a
function, insert the result of calling the function into the buffer.

This allows a user to generate custom fields in the output of a search
result. For example, with:

(defun -notmuch-result-flags (format-string result)
  (let ((tags-to-letters '(("flagged" . "!")
   ("unread" . "u")
   ("mine" . "m")
   ("sent" . "s")
   ("replied" . "r")))
(tags (plist-get result :tags)))

    (format format-string
    (mapconcat (lambda (t2l)
 (if (member (car t2l) tags)
     (cdr t2l)
   " "))
       tags-to-letters ""))))

(setq notmuch-search-result-format '((-notmuch-result-flags . "%s ")
     ("date" . "%12s ")
     ("count" . "%9s ")
     ("authors" . "%-30s ")
     ("subject" . "%s ")
     ("tags" . "(%s)")))

The first few characters on each line of the search result are used to
show information about some significant tags associated with the
thread.

3 years agoemacs: Use pcase in notmuch-search-insert-field
David Edmondson [Sun, 21 Feb 2021 15:19:00 +0000 (15:19 +0000)]
emacs: Use pcase in notmuch-search-insert-field

Rather than lots of string-equal calls, use the pcase macro.

3 years agoemacs: notmuch-fcc-header-setup: fix regression
Jonas Bernoulli [Mon, 2 Aug 2021 22:10:08 +0000 (00:10 +0200)]
emacs: notmuch-fcc-header-setup: fix regression

With [1: 16b2db09] we lost the (undocumented) option to use no Fcc
header only for From addresses matching a regexp.  This brings back
that feature and documents it.

1: 2021-01-15 16b2db0986ce0ed7c420a69d0a98bb41e9ca4bd8
   emacs: various cosmetic improvements

3 years agoNEWS: typo fix; some trailing periods
Tomi Ollila [Mon, 6 Sep 2021 21:07:11 +0000 (00:07 +0300)]
NEWS: typo fix; some trailing periods

The trailing periods to smaller diff between devel/news2wiki.pl
output and what has been pushed to notmuch-wiki.

3 years agodoc/sexp-queries: update synopsis and description
David Bremner [Tue, 24 Aug 2021 15:17:45 +0000 (08:17 -0700)]
doc/sexp-queries: update synopsis and description

I chose to go with a somewhat terse synopsis to try to keep the length
of the page down.

3 years agoCLI/tag: enable sexp queries
David Bremner [Tue, 24 Aug 2021 15:17:44 +0000 (08:17 -0700)]
CLI/tag: enable sexp queries

We have to rewrite _optimize_tag_query here because it is generating
a query string in the infix Xapian syntax. Luckily this is easy to do
with the sexp query syntax.

3 years agoCLI/{count, dump, reindex, reply, show}: enable sexp queries
David Bremner [Tue, 24 Aug 2021 15:17:43 +0000 (08:17 -0700)]
CLI/{count, dump, reindex, reply, show}: enable sexp queries

The change in each case is to call notmuch_query_create_with_syntax,
relying on the already inherited shared options.  As a bonus we get
improved error handling from the new query creation API.

The remaining subcommand is 'tag', which is a bit trickier.

3 years agoCLI: move query syntax to shared option
David Bremner [Tue, 24 Aug 2021 15:17:42 +0000 (08:17 -0700)]
CLI: move query syntax to shared option

This will allow easy addition of a query syntax option to other subcommands.

3 years agolib/parse-sexp: apply macros
David Bremner [Tue, 24 Aug 2021 15:17:41 +0000 (08:17 -0700)]
lib/parse-sexp: apply macros

Macros implement lazy evaluation and lexical scope.  The former is
needed to make certain natural constructs work sensibly (e.g. (tag
,param)) but the latter is mainly future-proofing in case the DSL is
is extended to allow local bindings.

For technical background, see chapters 6 and 17 of [1] (or some other
intermediate programming languages textbook).

[1] http://cs.brown.edu/courses/cs173/2012/book/

3 years agolib/parse-sexp: thread environment argument through parser
David Bremner [Tue, 24 Aug 2021 15:17:40 +0000 (08:17 -0700)]
lib/parse-sexp: thread environment argument through parser

No functionality change, just an extra argument carried everywhere.

3 years agolib/parse-sexp: support saved s-expression queries
David Bremner [Tue, 24 Aug 2021 15:17:39 +0000 (08:17 -0700)]
lib/parse-sexp: support saved s-expression queries

It turns out there is not really much code in query-fp.cc useful for
supporting the new syntax. The code we could potentially factor out
amounts to calling notmuch_database_get_config; both the key
construction and the parsing of the results are specific to the query
syntax involved.

3 years agoCLI/config support saving s-expression queries
David Bremner [Tue, 24 Aug 2021 15:17:38 +0000 (08:17 -0700)]
CLI/config support saving s-expression queries

This commit does not enable using saved s-expression queries, only
saving and retrieving them from the config file or the database. Use
in queries will be enabled in a following commit.

3 years agolib/parse-sexp: handle saved queries
David Bremner [Tue, 24 Aug 2021 15:17:37 +0000 (08:17 -0700)]
lib/parse-sexp: handle saved queries

This provides functionality analogous to query: in the Xapian
QueryParser based parser. Perhaps counterintuitively, the saved
queries currently have to be in the original query syntax (i.e. not
s-expressions).

3 years agolib: factor out expansion of saved queries.
David Bremner [Tue, 24 Aug 2021 15:17:36 +0000 (08:17 -0700)]
lib: factor out expansion of saved queries.

This is intended to allow use outside of the Xapian query parser.

3 years agolib/parse-sexp: parse user headers
David Bremner [Tue, 24 Aug 2021 15:17:35 +0000 (08:17 -0700)]
lib/parse-sexp: parse user headers

One subtle aspect is the replacement of _find_prefix with
_notmuch_database_prefix, which understands user headers. Otherwise
the code mainly consists of creating a fake prefix record (since the
user prefixes are not in the prefix table) and error handling.

3 years agolib/parse-sexp: support infix subqueries
David Bremner [Tue, 24 Aug 2021 15:17:34 +0000 (08:17 -0700)]
lib/parse-sexp: support infix subqueries

This is necessary so that programs can take infix syntax queries from
a user and use the sexp query syntax to construct e.g. a refinement of
that query.

3 years agolib/parse-sexp: expand queries
David Bremner [Tue, 24 Aug 2021 15:17:33 +0000 (08:17 -0700)]
lib/parse-sexp: expand queries

The code here is just gluing together _notmuch_query_expand with the
existing sexp parser infrastructure.

3 years agolib/thread-fp: factor out query expansion, rewrite in Xapian
David Bremner [Tue, 24 Aug 2021 15:17:32 +0000 (08:17 -0700)]
lib/thread-fp: factor out query expansion, rewrite in Xapian

It will be convenient not to have to construct a notmuch query object
when parsing subqueries, so the commit rewrites the query
expansion (currently only used for thread:{} queries) using only
Xapian. As a bonus it seems about 15% faster in initial experiments.

3 years agolib/query: factor out _notmuch_query_string_to_xapian_query
David Bremner [Tue, 24 Aug 2021 15:17:31 +0000 (08:17 -0700)]
lib/query: factor out _notmuch_query_string_to_xapian_query

When dealing with recursive queries (i.e. thread:{foo}) it turns out
to be useful just to deal with the underlying Xapian objects, and not
wrap them in notmuch objects.

3 years agolib: generate actual Xapian query for "*" and ""
David Bremner [Tue, 24 Aug 2021 15:17:30 +0000 (08:17 -0700)]
lib: generate actual Xapian query for "*" and ""

The previous code had the somewhat bizarre effect that the (notmuch
specific) query string was "*" (interpreted as MatchAll) and the
allegedly parsed xapian_query was "MatchNothing".

This commit also reduces code duplication.

3 years agolib/parse-sexp: support regular expressions
David Bremner [Tue, 24 Aug 2021 15:17:29 +0000 (08:17 -0700)]
lib/parse-sexp: support regular expressions

At least to the degree that the Xapian QueryParser based parser
also supports them. Support short alias 'rx' as it seems to make more
complex queries nicer to read.

3 years agolib: factor out query construction from regexp
David Bremner [Tue, 24 Aug 2021 15:17:28 +0000 (08:17 -0700)]
lib: factor out query construction from regexp

This will allow re-use of this code outside of the Xapian query parser.

3 years agolib/query: generalize exclude handling to s-expression queries
David Bremner [Tue, 24 Aug 2021 15:17:27 +0000 (08:17 -0700)]
lib/query: generalize exclude handling to s-expression queries

In fact most of the code path is in common, only the caching of terms
in the query needs to be added for s-expression queries.

3 years agolib/parse-sexp: handle unprefixed terms.
David Bremner [Tue, 24 Aug 2021 15:17:26 +0000 (08:17 -0700)]
lib/parse-sexp: handle unprefixed terms.

This is equivalent to adding the same field name "" for multiple
prefixes in the Xapian query parser, but we have to explicitely
construct the resulting query.

3 years agolib/parse-sexp: add '*' as syntactic sugar for '(starts-with "")'
David Bremner [Tue, 24 Aug 2021 15:17:25 +0000 (08:17 -0700)]
lib/parse-sexp: add '*' as syntactic sugar for '(starts-with "")'

Users that insist on using a literal '*' as a tag, can continue to do
so by quoting it when searching.

3 years agolib/parse-sexp: 'starts-with' wildcard searches
David Bremner [Tue, 24 Aug 2021 15:17:24 +0000 (08:17 -0700)]
lib/parse-sexp: 'starts-with' wildcard searches

The many tests potentially overkill, but they could catch typos in the
prefixes table. As a simplifying assumption, for now we assume a
single argument to the wildcard operator, as this matches the Xapian
semantics. The name 'starts-with' is chosen to emphasize the supported
case of wildcards in currrent (1.4.x) Xapian.

3 years agolib/parse-sexp: add term prefix backed fields
David Bremner [Tue, 24 Aug 2021 15:17:23 +0000 (08:17 -0700)]
lib/parse-sexp: add term prefix backed fields

We use "boolean" to describe fields that should generate terms
literally without stemming or phrase splitting.  This terminology
might not be ideal but it is already enshrined in
notmuch-search-terms(7).

3 years agolib/parse-sexp: support phrase queries.
David Bremner [Tue, 24 Aug 2021 15:17:22 +0000 (08:17 -0700)]
lib/parse-sexp: support phrase queries.

Anything that is quoted or not purely word characters is considered a
phrase.  Phrases are not stemmed, because the stems do not have
positional information in the database. It is less efficient to scan
the term twice, but it avoids a second pass to add prefixes, so maybe
it balances out. In any case, it seems unlikely query parsing is very
often a bottleneck.

3 years agoutil/unicode: allow calling from C++
David Bremner [Tue, 24 Aug 2021 15:17:21 +0000 (08:17 -0700)]
util/unicode: allow calling from C++

The omission of the 'extern "C"' machinery seems like an oversight.

3 years agolib/parse-sexp: support subject field
David Bremner [Tue, 24 Aug 2021 15:17:20 +0000 (08:17 -0700)]
lib/parse-sexp: support subject field

The broken tests are because we do not yet handle phrase searches.

3 years agolib/parse-sexp: support and, not, and or.
David Bremner [Tue, 24 Aug 2021 15:17:19 +0000 (08:17 -0700)]
lib/parse-sexp: support and, not, and or.

All operations and (Xapian) fields will eventually have an entry in
the prefixes table. The flags field is just a placeholder for now, but
will eventually distinguish between various kinds of prefixes.

3 years agolib/parse-sexp: stem unquoted atoms
David Bremner [Tue, 24 Aug 2021 15:17:18 +0000 (08:17 -0700)]
lib/parse-sexp: stem unquoted atoms

This is somewhat less DWIM than the Xapian query parser, but it has
the advantage of simplicity.

3 years agolib: leave stemmer object accessible
David Bremner [Tue, 24 Aug 2021 15:17:17 +0000 (08:17 -0700)]
lib: leave stemmer object accessible

This enables using the same stemmer in both query parsers.

3 years agolib/parse-sexp: parse single terms and the empty list.
David Bremner [Tue, 24 Aug 2021 15:17:16 +0000 (08:17 -0700)]
lib/parse-sexp: parse single terms and the empty list.

There is not much of a parser here yet, but it already does some
useful error reporting. Most functionality sketched in the
documentation is not implemented yet; detailed documentation will
follow with the implementation.

3 years agolib: add new status code for query syntax errors.
David Bremner [Tue, 24 Aug 2021 15:17:15 +0000 (08:17 -0700)]
lib: add new status code for query syntax errors.

This will help provide more meaningful error messages without special
casing on the client side.

3 years agoCLI/search+address: support sexpr queries
David Bremner [Tue, 24 Aug 2021 15:17:14 +0000 (08:17 -0700)]
CLI/search+address: support sexpr queries

Initially support selection of query syntax in two subcommands to
enable testing.

3 years agolib: define notmuch_query_create_with_syntax
David Bremner [Tue, 24 Aug 2021 15:17:13 +0000 (08:17 -0700)]
lib: define notmuch_query_create_with_syntax

Set the parsing syntax when the (notmuch) query object is
created. Initially the library always returns a trivial query that
matches all messages when using s-expression syntax.

It seems better to select the syntax at query creation time because
the lazy parsing is an implementation detail.

3 years agolib: split notmuch_query_create
David Bremner [Tue, 24 Aug 2021 15:17:12 +0000 (08:17 -0700)]
lib: split notmuch_query_create

Most of the function will be re-usable when creating a query from an
s-expression.

3 years agoconfigure: optional library sfsexp
David Bremner [Tue, 24 Aug 2021 15:17:11 +0000 (08:17 -0700)]
configure: optional library sfsexp

The configure part is essentially the same as the other checks using
pkg-config. Since the optional inclusion of this feature changes what
options are available to the user, include it in the "built_with"
pseudo-configuration keys.

3 years agoCLI: make variable n_requested_db_uuid file scope.
David Bremner [Tue, 24 Aug 2021 15:17:10 +0000 (08:17 -0700)]
CLI: make variable n_requested_db_uuid file scope.

It turns out that now that we pass an open database into the
subcommands, it is easy to check any requested uuid against the
database at the same time as we process the other shared
arguments. This results in overall less boilerplate code, as well as
making a CLI scope function and variable file scope in notmuch.c.

3 years agoMerge branch 'release'
David Bremner [Sat, 4 Sep 2021 18:51:21 +0000 (11:51 -0700)]
Merge branch 'release'

3 years agodebian: changelog for 0.33-2 archive/debian/0.33-2 debian/0.33-2
David Bremner [Sat, 4 Sep 2021 18:30:00 +0000 (11:30 -0700)]
debian: changelog for 0.33-2

3 years agodebian: temporarily disable two subtests
David Bremner [Sat, 4 Sep 2021 18:26:48 +0000 (11:26 -0700)]
debian: temporarily disable two subtests

These are failing on (surprisingly) the Debian amd64
autobuilder. There were also previous reports of failures on Ubuntu
s390x. Fixing this may require changing the way the default is
calculated.

3 years agoMerge branch 'release'
David Bremner [Sat, 4 Sep 2021 15:05:32 +0000 (08:05 -0700)]
Merge branch 'release'

3 years agodebian: add priorversion to removal of obsolete conffile 0.33 archive/debian/0.33-1 debian/0.33-1
David Bremner [Fri, 3 Sep 2021 19:51:39 +0000 (12:51 -0700)]
debian: add priorversion to removal of obsolete conffile

The conffile in question is long gone, no need to retry removing it
forever.

3 years agodebian: changelog for 0.33-1
David Bremner [Fri, 3 Sep 2021 19:26:24 +0000 (12:26 -0700)]
debian: changelog for 0.33-1

3 years agoversion: bump to 0.33
David Bremner [Fri, 3 Sep 2021 19:20:27 +0000 (12:20 -0700)]
version: bump to 0.33

3 years agoNEWS: set release date
David Bremner [Fri, 3 Sep 2021 19:16:43 +0000 (12:16 -0700)]
NEWS: set release date

3 years agoNEWS: add minimal description of remaining changes.
David Bremner [Fri, 3 Sep 2021 19:06:44 +0000 (12:06 -0700)]
NEWS: add minimal description of remaining changes.

3 years agoemacs: don't inline message/rfc822 parts without content
David Bremner [Sun, 4 Jul 2021 13:16:38 +0000 (10:16 -0300)]
emacs: don't inline message/rfc822 parts without content

This avoids some ugly error messages and exceptions, and hopes that
some gnus method will display message/rfc822 parts that have only a
file, no :content part.

3 years agotest: known broken test for emacs display of message/rfc822 parts
David Bremner [Sat, 3 Jul 2021 20:11:31 +0000 (17:11 -0300)]
test: known broken test for emacs display of message/rfc822 parts

There are at least 3 bugs present.

1) notmuch-show-insert-part-message/rfc822 assumes that message/rfc822
parts will have a ":content" property, but that turns out not to be
the case.

2) something deep in gnus wants gnus-newsgroup-charset, but that is
defined in gnus-sum, which is not loaded by default.

3) If gnus-sum is loaded, then the display of the message/rfc822 part
succeeds, but the buffer gets put into gnus-article-mode, which means
that, inter alia, notmuch text properties and keybindings get wiped.

3 years agotest/crypto: test message with rfc822 attachment.
David Bremner [Sat, 3 Jul 2021 20:11:30 +0000 (17:11 -0300)]
test/crypto: test message with rfc822 attachment.

This is intended to help track down a display problem in the emacs
front end

3 years agolib: consider all instances of Delivered-To header
Hannu Hartikainen [Fri, 2 Jul 2021 09:13:09 +0000 (12:13 +0300)]
lib: consider all instances of Delivered-To header

When using notmuch-reply and guessing the From: address from
Delivered-To headers, I had the wrong address chosen today. This was
because the messages from the notmuch list contain these headers in this
order:

Delivered-To: hannu.hartikainen@gmail.com
...
Delivered-To: hannu@hrtk.in
In my .notmuch-config I have the following configuration:

primary_email=hannu@hrtk.in
other_email=hannu.hartikainen@gmail.com;...

Before this change, notmuch-reply would guess From: @gmail.com because
that is the first Delivered-To header present. After the change, the
primary address is chosen as I would expect.

3 years agoreply: add test for multiple Delivered-To headers
Hannu Hartikainen [Fri, 2 Jul 2021 09:13:08 +0000 (12:13 +0300)]
reply: add test for multiple Delivered-To headers

Add a known broken subtest for guessing From: correctly when there are
multiple Delivered-To: headers. The address configured as primary_email
should get picked.

3 years agoemacs: shorten lines in two doc-strings
Jonas Bernoulli [Mon, 19 Jul 2021 11:31:09 +0000 (13:31 +0200)]
emacs: shorten lines in two doc-strings

The byte-compiler wasn't happy about those.

3 years agoemacs: notmuch-show-pipe-message: cosmetics
Jonas Bernoulli [Mon, 19 Jul 2021 11:31:08 +0000 (13:31 +0200)]
emacs: notmuch-show-pipe-message: cosmetics

3 years agoemacs: fix some option type declarations
Jonas Bernoulli [Mon, 19 Jul 2021 11:31:07 +0000 (13:31 +0200)]
emacs: fix some option type declarations

Also improve their doc-strings.

3 years agoemacs: add some function declarations
Jonas Bernoulli [Mon, 19 Jul 2021 11:31:06 +0000 (13:31 +0200)]
emacs: add some function declarations

3 years agoemacs: use closures instead of backquoted lambdas
Jonas Bernoulli [Mon, 19 Jul 2021 11:31:05 +0000 (13:31 +0200)]
emacs: use closures instead of backquoted lambdas

3 years agoNEWS: user visible changes for 0.33
David Bremner [Thu, 26 Aug 2021 17:43:39 +0000 (10:43 -0700)]
NEWS: user visible changes for 0.33

Based on commits attributed to me in the output of

$ git shortlog 0.32.3..

3 years agodebian: changelog for 0.33~rc0-1 0.33_rc0 archive/debian/0.33_rc0-1 debian/0.33_rc0-1
David Bremner [Thu, 26 Aug 2021 15:28:21 +0000 (08:28 -0700)]
debian: changelog for 0.33~rc0-1

3 years agoversion: bump to 0.33~rc0
David Bremner [Thu, 26 Aug 2021 15:25:36 +0000 (08:25 -0700)]
version: bump to 0.33~rc0

3 years agodoc/emacs: use :code: for some missing references
David Bremner [Sun, 22 Aug 2021 03:51:09 +0000 (20:51 -0700)]
doc/emacs: use :code: for some missing references

It's not obvious how to reference (non-notmuch) emacs variables and
functions in a sphinx document.

3 years agodoc: read notmuch-tree.rsti for rst_epilog
David Bremner [Sun, 22 Aug 2021 03:51:08 +0000 (20:51 -0700)]
doc: read notmuch-tree.rsti for rst_epilog

This is needed so that docstrings from notmuch-tree.el (in particular
notmuch-tree-toggle-order) can be used in the emacs documentation.

3 years agoemacs/rstdoc: escape '*'
David Bremner [Sun, 22 Aug 2021 03:51:07 +0000 (20:51 -0700)]
emacs/rstdoc: escape '*'

This is just a regular character in docstrings (as it is fairly often
used in lisp identifiers and buffer names) but is the start of
emphasis in rst. This change is needed to quell a noisy warning when
including notmuch-tree.rsti

3 years agoCLI: define and use format version 5
David Bremner [Sun, 22 Aug 2021 00:00:11 +0000 (17:00 -0700)]
CLI: define and use format version 5

This is a bit of a cheat, since the format does not actually
change. On the other hand it is fairly common to do something like
this to shared libary SONAMEs when the ABI changes in some subtle way.
It does rely on the format-version argument being early enough on the
command line to generate a sensible error message.

3 years agoemacs: new command notmuch-tree-filter-by-tag
jao [Sun, 22 Aug 2021 00:50:49 +0000 (01:50 +0100)]
emacs: new command notmuch-tree-filter-by-tag

This new command for notmuch-tree-mode is analogous to
notmuch-search-filter-by-tag, bound to "t" in notmuch-search-mode; it
gets therefore the same "t" keybinding in notmuch-tree-mode (replacing
the current assignment to notmuch-search-by-tag).

3 years agoemacs: new command notmuch-tree-filter
jao [Sun, 22 Aug 2021 00:50:48 +0000 (01:50 +0100)]
emacs: new command notmuch-tree-filter

This command is analogous to notmuch-filter, but is defined on tree
mode buffers.

3 years agotest/path-config: use test_expect_equal_file_nonempty
David Bremner [Wed, 4 Aug 2021 10:42:33 +0000 (07:42 -0300)]
test/path-config: use test_expect_equal_file_nonempty

This is more robust against crashes when the expected output is also
generated by notmuch. In the case where the expected output is
explicit, it seems like overkill.

3 years agotest: add test_expect_equal_file_nonempty
David Bremner [Wed, 4 Aug 2021 10:42:32 +0000 (07:42 -0300)]
test: add test_expect_equal_file_nonempty

A common bug in tests is that the code used to generate the EXPECTED
file fails, generating no output. When the code generating the OUTPUT
file fails in the same way, the test passes, even though there is a
failure being hidden. Add a new test function that guards against
this.

3 years agotest: factor out test_diff_file_
David Bremner [Wed, 4 Aug 2021 10:42:31 +0000 (07:42 -0300)]
test: factor out test_diff_file_

A following commit will use this new function in a public test
function.