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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
David Bremner [Sat, 4 Sep 2021 18:51:21 +0000 (11:51 -0700)]
Merge branch 'release'
David Bremner [Sat, 4 Sep 2021 18:30:00 +0000 (11:30 -0700)]
debian: changelog for 0.33-2
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.
David Bremner [Sat, 4 Sep 2021 15:05:32 +0000 (08:05 -0700)]
Merge branch 'release'
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.
David Bremner [Fri, 3 Sep 2021 19:26:24 +0000 (12:26 -0700)]
debian: changelog for 0.33-1
David Bremner [Fri, 3 Sep 2021 19:20:27 +0000 (12:20 -0700)]
version: bump to 0.33
David Bremner [Fri, 3 Sep 2021 19:16:43 +0000 (12:16 -0700)]
NEWS: set release date
David Bremner [Fri, 3 Sep 2021 19:06:44 +0000 (12:06 -0700)]
NEWS: add minimal description of remaining changes.
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.
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.
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
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.
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.
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.
Jonas Bernoulli [Mon, 19 Jul 2021 11:31:08 +0000 (13:31 +0200)]
emacs: notmuch-show-pipe-message: cosmetics
Jonas Bernoulli [Mon, 19 Jul 2021 11:31:07 +0000 (13:31 +0200)]
emacs: fix some option type declarations
Also improve their doc-strings.
Jonas Bernoulli [Mon, 19 Jul 2021 11:31:06 +0000 (13:31 +0200)]
emacs: add some function declarations
Jonas Bernoulli [Mon, 19 Jul 2021 11:31:05 +0000 (13:31 +0200)]
emacs: use closures instead of backquoted lambdas
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..
David Bremner [Thu, 26 Aug 2021 15:28:21 +0000 (08:28 -0700)]
debian: changelog for 0.33~rc0-1
David Bremner [Thu, 26 Aug 2021 15:25:36 +0000 (08:25 -0700)]
version: bump to 0.33~rc0
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.
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.
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
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.
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).
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.
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.
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.
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.
David Bremner [Wed, 4 Aug 2021 10:42:30 +0000 (07:42 -0300)]
test/expect_equal_file: whitespace cleanup
No functional change, just reindent to Emacs defaults.
David Bremner [Wed, 4 Aug 2021 10:42:36 +0000 (07:42 -0300)]
doc: document database search algorithm.
Essentially a translation of the function _choose_database_path for
human consumption. As a bonus, document environment variable
NOTMUCH_DATABASE
David Bremner [Thu, 19 Aug 2021 04:46:42 +0000 (21:46 -0700)]
Merge tag 'debian/0.32.3-1'
notmuch release 0.32.3-1 for unstable (sid) [dgit]
[dgit distro=debian no-split --quilt=linear]
David Bremner [Wed, 18 Aug 2021 05:05:32 +0000 (22:05 -0700)]
debian: drop patches
The relevant changes are of the 0.32.2 release
David Bremner [Wed, 18 Aug 2021 05:03:24 +0000 (22:03 -0700)]
Merge remote-tracking branch 'origin/debian/bullseye' into release
David Bremner [Wed, 18 Aug 2021 00:18:21 +0000 (17:18 -0700)]
debian: changelog for 0.32.3-1
David Bremner [Wed, 18 Aug 2021 00:12:27 +0000 (17:12 -0700)]
version: bump to 0.32.3
David Bremner [Wed, 18 Aug 2021 00:02:21 +0000 (17:02 -0700)]
NEWS: news for 0.32.3
David Bremner [Sun, 18 Jul 2021 17:58:22 +0000 (14:58 -0300)]
CLI/config: restore "notmuch config get built_with.*"
We need to special case the config section "built_with" because it is
not (currently) handled by the library. This seems consist with the
other sub-sub-commands 'list' and 'set'.
David Bremner [Sun, 18 Jul 2021 17:58:21 +0000 (14:58 -0300)]
test/config: add tests for built_with
The "get" test is known broken because this functionality was dropped
during the 0.32 config rewrite.
David Bremner [Wed, 4 Aug 2021 10:42:35 +0000 (07:42 -0300)]
lib/open: look in MAILDIR for database, as documented.
This fixes the bug id:87bl9lx864.fsf@kisara.moe
David Bremner [Wed, 4 Aug 2021 10:42:34 +0000 (07:42 -0300)]
test: add known broken tests for finding database via MAILDIR
This highlights a bug reported by several users, including
Mohsin Kaleem [1].
The inconsistent use of test_begin_subtest_known_broken is because
some of these tests pass even though the database cannot be
located. This problem is left for a future commit.
[1]: id:87bl9lx864.fsf@kisara.moe
Austin Ray [Fri, 13 Aug 2021 16:50:28 +0000 (12:50 -0400)]
lib: bump libnotmuch minor version
Notmuch 0.32 corresponds to libnotmuch 5.4 as indicated by docstrings;
however, the minor number wasn't bumped. Any libnotmuch downstream
consumer using the LIBNOTMUCH_CHECK_VERSION macro to support multiple
versions won't be able to access the new 5.4 functions.
Signed-off-by: Austin Ray <austin@austinray.io>
Austin Ray [Sat, 14 Aug 2021 22:39:17 +0000 (18:39 -0400)]
lib: correct deprecated db open functions' docs
Both notmuch_database_open() and notmuch_database_open_verbose()'s
documentation state they call notmuch_database_open_with_config() with
config_path=NULL; however, their implementations pass an empty string.
The empty string is the correct value to maintain their original
behavior of not loading the user's configuration so their documentation
is incorrect.
Felipe Contreras [Sat, 26 Jun 2021 20:13:03 +0000 (15:13 -0500)]
perf-test: fix for verbose
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Protesilaos Stavrou [Sat, 17 Jul 2021 08:30:18 +0000 (11:30 +0300)]
emacs: Refine scope of notmuch-jump-key face
The intent of the 'notmuch-jump-key' face is to allow users/themes to
differentiate the text of the minibuffer prompt from the keys that are
associated with jump actions. Commit
5cc106b0 correctly introduced the
'notmuch-jump-key' face for keys, but mistakenly applied it to the
prompt as well.
jao [Wed, 4 Aug 2021 00:02:41 +0000 (01:02 +0100)]
emacs: honour notmuch-show-text/html-blocked-images in w3m messages
When mm-text-html-renderer is set to 'w3m, the variable playing the
role of a regular expression for blocked images is
w3m-ignored-image-url-regexp. We bind it when the renderer is not
'shr.
David Bremner [Tue, 3 Aug 2021 23:35:13 +0000 (20:35 -0300)]
test: revert to mkdir -p to make results directory.
As suggested by id:m21r7al3mt.fsf@guru.guru-group.fi
Felipe Contreras [Tue, 3 Aug 2021 18:44:57 +0000 (13:44 -0500)]
ruby: cleanup object_destroy()
It was assumed the destructor of notmuch_rb_database_type did return a
notmuch_status_t because that's what notmuch_database_close returns, and
that value was checked by notmuch_rb_database_close in order to decide
if to raise an exception.
It turns out notmuch_database_destroy was called instead, so nothing was
returned (void).
All the destroy functions are void, and that's what we want.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
David Bremner [Mon, 2 Aug 2021 11:21:42 +0000 (08:21 -0300)]
test: use --minversion to detect GNU Parallel.
Based on a suggestion of Ole Tange [1].
[1]: id:CA+4vN7x6jp4HCiEybZ=5g+2X6Pa7etBFX3Bbd=UYty37gR6wEQ@mail.gmail.com
Matt Armstrong [Sat, 13 Feb 2021 18:22:43 +0000 (10:22 -0800)]
Fix author-scan.sh on BSD systems.
BSD xargs does not have the -d option. Here we use tr to convert
newlines to NUL characters, then pass -0 to xargs (which BSD does
support).
I looked at passing -z to 'git ls-files', but I did not find a BSD
grep option to turn on NUL deliminted line processing.
David Bremner [Mon, 2 Aug 2021 10:14:03 +0000 (07:14 -0300)]
doc: drop note about early versions of Xapian
Mathias Beyer [1] points out that this note is redudant since Xapian
no longer builds with the problematic versions of Xapian.
[1]: id:
20210207124404.yldgtzjrsagacrl4@hoshi
Felipe Contreras [Wed, 7 Jul 2021 03:45:32 +0000 (22:45 -0500)]
ruby: split database close and destroy
Mirrors the C API:
7864350c (Split notmuch_database_close into two
functions, 2012-04-25).
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Simon Branch [Sun, 29 Nov 2020 22:35:22 +0000 (14:35 -0800)]
cli: remove extraneous space in message
Jonas Bernoulli [Tue, 16 Feb 2021 00:01:38 +0000 (01:01 +0100)]
emacs: notmuch-tree: mark the initial message at point as read
When moving between message in a tree or show buffer, the message at
point is marked as read. Likewise when creating such a buffer, then
the message that is initially at point is supposed to be marked as
read as well.
The latter worked for `notmuch-show' but not for `notmuch-tree'.
Press "RET" or "M-RET" in a search buffer to observe these behaviors.
In both cases the marking is supposed to be done by the function
`notmuch-show-command-hook'. In the case of `notmuch-show' that
function is added directly to `post-command-hook'.
`notmuch-tree' instead adds the function `notmuch-tree-command-hook'
to `post-command-hook' and that calls `notmuch-show-command-hook',
in the respective show buffer, but of course only if that exists.
Because the tree buffer is created asynchronously, the show buffer
doesn't exist yet by the time the `post-command-hook' is run, so
we have to explicitly run `notmuch-tree-command-hook' once the
show buffer exists.
The show buffer is created when `notmuch-tree-goto-and-insert-msg'
calls `notmuch-tree-show-message-in'. `notmuch-tree-process-filter'
is what finally brings us here.
David Bremner [Wed, 7 Jul 2021 01:51:08 +0000 (22:51 -0300)]
emacs: remove useless lexically bound variable
A let binding without a value is just an obfuscated way of saying
nil, especially if you are not going to mutate the variable.
Felipe Contreras [Mon, 17 May 2021 19:39:15 +0000 (14:39 -0500)]
ruby: enable garbage collection using talloc
We basically steal all the objects from their notmuch parents, therefore
they are completely under Ruby's gc control.
The order at which these objects are freed does not matter any more,
because destroying the database does not destroy all the children
objects, since they belong to Ruby now.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Mon, 17 May 2021 19:39:14 +0000 (14:39 -0500)]
ruby: create an actual wrapper struct
Currently Ruby data points directly to a notmuch object (e.g.
notmuch_database_t), since we don't need any extra data that is fine.
However, in the next commit we will need extra data, therefore we create
a new struct notmuch_rb_object_t wrapper which contains nothing but a
pointer to the current pointer (e.g. notmuch_database_t).
This struct is tied to the Ruby object, and is freed when the Ruby
object is freed by the garbage collector.
We do nothing with this wrapper, so no functionality should be changed.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 26 Jun 2021 20:07:14 +0000 (15:07 -0500)]
perf-test: add ruby test
Simply list the message-id of all the messages in a loop 100 times.
Suggested-by: David Bremner <david@tethera.net>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
David Bremner [Wed, 7 Jul 2021 01:35:30 +0000 (22:35 -0300)]
emacs: update declaration of notmuch-tree
This fixes an a warning from the byte-compiler. The commit
74ab62a34018b38a40db4d363fff3faae964b47a changed the function
signature but did not update the declaration.
David Bremner [Wed, 7 Jul 2021 01:25:57 +0000 (22:25 -0300)]
emacs: fix typo in variable name
This error crept in during my style rewrite of dkg's proposed change.
David Bremner [Tue, 6 Jul 2021 20:19:03 +0000 (17:19 -0300)]
replace references to freenode with references to libera
I left the reference to freenode in the test suite data, since it is
historical.
jao [Fri, 2 Jul 2021 20:44:24 +0000 (21:44 +0100)]
doc: new notmuch show --sort and related emacs commands
New --sort CLI option documented in notmuch-show's man page, and
notmuch-search-toggle-order mentioned in doc/notmuch-emacs.rst and
devel/emacs-keybindings.org (in the latter, there's also some
whitespace changes in a table introduced by org-mode).
jao [Fri, 2 Jul 2021 20:44:23 +0000 (21:44 +0100)]
emacs/tree: command to toggle search sort order in tree mode
New command notmuch-tree-toggle-order for switching the sort order (by
reissuing the search with a different flag) in a notmuch-tree buffer.
jao [Fri, 2 Jul 2021 20:44:22 +0000 (21:44 +0100)]
emacs/hello: honouring :sort-order in threaded queries
Now that notmuch show accepts --sort, we can, on the emacs side, use
it according to the value of :sort-order in the definition of saved
queries.
jao [Fri, 2 Jul 2021 20:44:21 +0000 (21:44 +0100)]
CLI/show: tests for the new --sort option
New unit tests for notmuch show --sort, covering the basic use cases.
jao [Fri, 2 Jul 2021 20:44:20 +0000 (21:44 +0100)]
CLI/show: accept --sort
Add the command-line option --sort to the show command of the CLI
notmuch interface, with the same possible values as the same option in
notmuch search.
Michael J Gruber [Tue, 29 Jun 2021 15:29:20 +0000 (17:29 +0200)]
test: deduplicate T590
Test numbers are a concise way to communicate about tests and to remeber
them. Currently, there is one pait of duplicates:
T590-libconfig.sh
T590-thread-breakage.sh
Renumber the latter one to 592 since this keeps the alphabetic order and
leaves room in between.
Signed-off-by: Michael J Gruber <git@grubix.eu>
David Bremner [Tue, 29 Jun 2021 01:48:29 +0000 (22:48 -0300)]
debian: document new build-dependency
David Bremner [Tue, 29 Jun 2021 01:44:24 +0000 (22:44 -0300)]
Commit Debian 3.0 (quilt) metadata
[dgit (9.13) quilt-fixup]
David Bremner [Sat, 24 Apr 2021 15:13:37 +0000 (12:13 -0300)]
debian: add xapian-tools for tests
xapian-metadata is used by some of the new tests.
(cherry picked from commit
9f8458a998a0a20f435b5d47ac085acb9490ddae)
David Bremner [Tue, 29 Jun 2021 01:09:54 +0000 (22:09 -0300)]
debian/changelog: refinalize for upload
David Bremner [Sat, 26 Jun 2021 12:04:28 +0000 (09:04 -0300)]
emacs/tree use notmuch-show-single-message
This is more efficient than notmuch-show-only-matching-messages, since
we do not parse the potentially large thread structure to find a
single message.
This is only a partial fix for notmuch-tree view, because displaying
the thread structure in the tree-mode window still crashes on long
threads. It is however enough to make unthreaded view handle long
threads.
David Bremner [Sat, 26 Jun 2021 12:04:27 +0000 (09:04 -0300)]
emacs/show: add parameter notmuch-show-single-message
This dynamically bound variable can be set when the caller of
notmuch-show guarantees that exactly one message will match the
query. It avoids transporting and parsing the complete thread
structure.
David Bremner [Sat, 26 Jun 2021 12:04:26 +0000 (09:04 -0300)]
test: start test file for emacs unthreaded view.
Initial focus is on behaviour with large threads.
The second test replicates a bug reported by Alan Schmitt in
id:87lf7sojbq.fsf@m4x.org.