aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-09-04lib/parse-sexp: support phrase queries.David Bremner
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.
2021-09-04util/unicode: allow calling from C++David Bremner
The omission of the 'extern "C"' machinery seems like an oversight.
2021-09-04lib/parse-sexp: support subject fieldDavid Bremner
The broken tests are because we do not yet handle phrase searches.
2021-09-04lib/parse-sexp: support and, not, and or.David Bremner
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.
2021-09-04lib/parse-sexp: stem unquoted atomsDavid Bremner
This is somewhat less DWIM than the Xapian query parser, but it has the advantage of simplicity.
2021-09-04lib: leave stemmer object accessibleDavid Bremner
This enables using the same stemmer in both query parsers.
2021-09-04lib/parse-sexp: parse single terms and the empty list.David Bremner
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.
2021-09-04lib: add new status code for query syntax errors.David Bremner
This will help provide more meaningful error messages without special casing on the client side.
2021-09-04CLI/search+address: support sexpr queriesDavid Bremner
Initially support selection of query syntax in two subcommands to enable testing.
2021-09-04lib: define notmuch_query_create_with_syntaxDavid Bremner
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.
2021-09-04lib: split notmuch_query_createDavid Bremner
Most of the function will be re-usable when creating a query from an s-expression.
2021-09-04configure: optional library sfsexpDavid Bremner
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.
2021-09-04CLI: make variable n_requested_db_uuid file scope.David Bremner
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.
2021-09-04Merge branch 'release'David Bremner
2021-09-04debian: changelog for 0.33-2debian/0.33-2archive/debian/0.33-2David Bremner
2021-09-04debian: temporarily disable two subtestsDavid Bremner
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.
2021-09-04Merge branch 'release'David Bremner
2021-09-03debian: add priorversion to removal of obsolete conffiledebian/0.33-1archive/debian/0.33-10.33David Bremner
The conffile in question is long gone, no need to retry removing it forever.
2021-09-03debian: changelog for 0.33-1David Bremner
2021-09-03version: bump to 0.33David Bremner
2021-09-03NEWS: set release dateDavid Bremner
2021-09-03NEWS: add minimal description of remaining changes.David Bremner
2021-08-30emacs: don't inline message/rfc822 parts without contentDavid Bremner
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.
2021-08-30test: known broken test for emacs display of message/rfc822 partsDavid Bremner
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.
2021-08-30test/crypto: test message with rfc822 attachment.David Bremner
This is intended to help track down a display problem in the emacs front end
2021-08-29lib: consider all instances of Delivered-To headerHannu Hartikainen
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.
2021-08-29reply: add test for multiple Delivered-To headersHannu Hartikainen
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.
2021-08-29emacs: shorten lines in two doc-stringsJonas Bernoulli
The byte-compiler wasn't happy about those.
2021-08-29emacs: notmuch-show-pipe-message: cosmeticsJonas Bernoulli
2021-08-29emacs: fix some option type declarationsJonas Bernoulli
Also improve their doc-strings.
2021-08-29emacs: add some function declarationsJonas Bernoulli
2021-08-29emacs: use closures instead of backquoted lambdasJonas Bernoulli
2021-08-26NEWS: user visible changes for 0.33David Bremner
Based on commits attributed to me in the output of $ git shortlog 0.32.3..
2021-08-26debian: changelog for 0.33~rc0-1debian/0.33_rc0-1archive/debian/0.33_rc0-10.33_rc0David Bremner
2021-08-26version: bump to 0.33~rc0David Bremner
2021-08-22doc/emacs: use :code: for some missing referencesDavid Bremner
It's not obvious how to reference (non-notmuch) emacs variables and functions in a sphinx document.
2021-08-22doc: read notmuch-tree.rsti for rst_epilogDavid Bremner
This is needed so that docstrings from notmuch-tree.el (in particular notmuch-tree-toggle-order) can be used in the emacs documentation.
2021-08-22emacs/rstdoc: escape '*'David Bremner
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
2021-08-22CLI: define and use format version 5David Bremner
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.
2021-08-21emacs: new command notmuch-tree-filter-by-tagjao
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).
2021-08-21emacs: new command notmuch-tree-filterjao
This command is analogous to notmuch-filter, but is defined on tree mode buffers.
2021-08-21test/path-config: use test_expect_equal_file_nonemptyDavid Bremner
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.
2021-08-21test: add test_expect_equal_file_nonemptyDavid Bremner
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.
2021-08-21test: factor out test_diff_file_David Bremner
A following commit will use this new function in a public test function.
2021-08-21test/expect_equal_file: whitespace cleanupDavid Bremner
No functional change, just reindent to Emacs defaults.
2021-08-21doc: document database search algorithm.David Bremner
Essentially a translation of the function _choose_database_path for human consumption. As a bonus, document environment variable NOTMUCH_DATABASE
2021-08-18Merge tag 'debian/0.32.3-1'David Bremner
notmuch release 0.32.3-1 for unstable (sid) [dgit] [dgit distro=debian no-split --quilt=linear]
2021-08-17debian: drop patchesdebian/0.32.3-1archive/debian/0.32.3-1David Bremner
The relevant changes are of the 0.32.2 release
2021-08-17Merge remote-tracking branch 'origin/debian/bullseye' into releaseDavid Bremner
2021-08-17debian: changelog for 0.32.3-10.32.3David Bremner