aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-12-10debian: build only against default python versiondebian/0.34.2-1archive/debian/0.34.2-1David Bremner
This problem will will be solved in the next release of dh-python, but the crude solution is needed for backports anyway.
2021-12-09NEWS: mention fix for unprintable python exception0.34.2David Bremner
2021-12-09debian: changelog for 0.34.2-1David Bremner
2021-12-09version: bump to 0.34.2David Bremner
2021-12-09NEWS: add NEWS for 0.34.2David Bremner
2021-12-06test/emacs: mark one test as fixed in newer emacs.David Bremner
The remaining problem in this test is fixed upstream in Emacs 28. While most people are using earlier versions of emacs, the test still provides some documentation of a known bug.
2021-12-05python-cffi: fix out-of-tree buildDavid Bremner
The main idea is to replace the hack of copying version.txt into the bindings source with a generated _notmuch_config.py file. This will mean that the bindings only build after configuring and building notmuch itself. Given those constraints, "pip install ." should work.
2021-12-05Merge branch 'release'David Bremner
2021-12-05Fix error message when using notmuch_status_to_stringFloris Bruynooghe
The python exception class was incorrectly loading the error message which resulted in unprintable exception objects.
2021-12-04python-cffi: introduce stamp fileDavid Bremner
Although the rebuild does not take long, it is a bit noisy, so assume if it succeeds once, it doesn't need to re-invoke setup.py until the shared library is rebuilt. This is a partial fix for [1]. [1]: id:87r29wwgq2.fsf@fifthhorseman.net
2021-12-04ruby: don't use a directory as a target.David Bremner
The directory is (neccesarily) not updated by the build, so it keeps trying to build. The proposed fix is to use the name of the dynamic library containing the extension. This is a partial fix for the rebuilding reported at [1]. [1]: id:87r29wwgq2.fsf@fifthhorseman.net
2021-12-04emacs: don't add space to tag completion candidates.David Bremner
Apparently this messes up various third party completion frameworks. This change does mean that users will have to hit space after completing a tag change in order to enter another change. As a bonus, remove the call to #'delete, since completing-read-multiple already promises to remove empty strings.
2021-12-04test/new: replace use of gdb in vanishing file testDavid Bremner
Unlike the similar change in T060-new, no symlink creation is needed here.
2021-12-04test/count: replace use of gdb with a LD_PRELOAD shimDavid Bremner
There is a certain amount of boilerplate to pass the call on the original function, so abstract it out as a C preprocessor macro, plus some extra includes in notmuch-test.h
2021-12-04test: move system includes to notmuch-test.hDavid Bremner
This removes some redudant includes, and will also make it easier to introduce "#define _GNU_SOURCE", which must come before all system includes.
2021-12-04lib/config: use g_key_file_get_string to read config valuesDavid Bremner
Unlike the previous g_key_file_get_value, this version processes escape codes for whitespace and \. The remaining two broken tests from the last commit are because "notmuch config get" treats every value as a list, and thus the previously introduces stripping of leading whitespace applies.
2021-12-04test: known broken tests for escape characters in config files.David Bremner
glib generates the following escape characters with their usual meanings: \n, \t, \r, and \\, along with \s for _leading_ spaces. Currently notmuch fails to unescape these on reading the config files. These tests demonstrate this bug; the one new test that passes is because apparently glib only escapes tabs at the beginning of a key.
2021-12-04config: ignore leading/trailing spaces in ';'-delimited listsDavid Bremner
In [1] Ciprian observed that it was easy for users to mistakenly introduce leading and trailing space to new.tags when editing a notmuch config file. This commit strips spaces on either side of the ';' delimiter when splitting. In principle it would be possible to support tags (or other config values) with leading or trailing spaces by processing '\s' escapes in the input string. Currently such processing is not done. [1]: id:CA+Tk8fzjPLaEd3vL1f9ebk_bF_RV8PDTLzDupraTkCLCpJAmCg@mail.gmail.com
2021-12-04test: known broken tests for leading/trailing ws in configDavid Bremner
These tests duplicate the bug/misfeature reported in id:CA+Tk8fzjPLaEd3vL1f9ebk_bF_RV8PDTLzDupraTkCLCpJAmCg@mail.gmail.com
2021-12-04emacs: run notmuch-search-hook lazilyDavid Bremner
In message id:YT3ueuZHKW931NW3@localhost, Fabio Natali isolated a visual glitch caused by running notmuch-search-hook too early. This change moves the running of that hook to notmuch-search-process-filter, which ensures there is some output in the buffer before running the hook. Since n-s-p-f can be called many times for a given buffer, add a buffer local flag to make sure it is only run once per buffer.
2021-12-04Merge branch 'release'David Bremner
2021-12-04python-cffi: switch to notmuch_database_{open,create}_with_configDavid Bremner
Since release 0.32, libnotmuch provides searching for database and configuration paths. This commit changes the python module notmuch2 to use those facilities. This fixes the bug reported in [1], along with a couple of the deprecation warnings in the python bindings. Database.default_path is deprecated, since it no longer faithfully reflects what libnotmuch is doing, and it is also no longer used in the bindings themselves. This commit choose the default of config=CONFIG.EMPTY (equivalent to passing "" to notmuch_database_open_with_config). This makes the change upward compatible API-wise (at least as far as the test suite verifies), but changing the default to CONFIG.SEARCH would probably be more convenient for bindings users. [1]: id:87h7d4wp6b.fsf@tethera.net
2021-12-04test: add known broken tests for python bindings in split configsDavid Bremner
This reproduces the bug(s) reported in id:87h7d4wp6b.fsf@tethera.net
2021-12-04test: add python-cffi bindings to path for test_pythonDavid Bremner
This will allow testing the new python bindings using test_python, in addition to the current invocation of pytest.
2021-12-04python-cffi: fix typos in docstring for Database.default_pathDavid Bremner
These generate warnings from sphinx doc, which makes it harder to debug documentation changes. They also corrupt the output.
2021-12-03lib/config: don't overwrite database.path if the caller passed itDavid Bremner
If the user passed a path, and we opened it, then we consider that definitive definition of "database.path". This makes libnotmuch respond more gracefully to certain erroneous combinations of NOTMUCH_CONFIG settings and config file contents.
2021-12-03lib/open: track which parameters are passedDavid Bremner
This will be used to fine tune the loading of configuration for certain special configuration items (initially just "database.path").
2021-12-03test: add known broken test for conflict with database parameterDavid Bremner
This is arguably user error: having configuration file with bad settings in it (and/or having a bad NOTMUCH_CONFIG environment variable). On the other hand returning a different path than was actually opened is definitely a bug.
2021-12-03test/libconfig: use 'export' for remaining sets of NOTMUCH_CONFIGDavid Bremner
It makes the tests easier to understand if we always use export for environment variables.
2021-12-03emacs: drop C-tab binding in hello mode, document <backtab>.David Bremner
The <backtab> binding has always been there, but the docs were apparently mistakenly changed to say <backspace> [1] Revert to <backtab> in the documentation. The commit also drops the C-<tab> binding, since it seems redundant and it interferes with tab-bar-mode. [1]: 703dec7754da477b5683867c88cb940b8553be91.
2021-12-03doc/python-cffi: import from built bindings, not installed moduleDavid Bremner
Previously the python-cffi bindings either failed to build, or built for the wrong module by using the installed module. The fix requires correction the module path, building the bindings before docs, and helping python find the built libnotmuch. Based on patch / discussion from Micheal Gruber [1] [1]: id:cover.1634808719.git.git@grubix.eu
2021-12-03rename built_with.sexpr_query to built_with.sexp_queriesDavid Bremner
It is confusing to use two different names (sexp vs sexpr) when compared with the command line option --query=sexp and (furthermore) singular vs plural when compared with the man page title.
2021-11-04Merge tag '0.34.1'David Bremner
notmuch 0.34.1 release
2021-11-03debian: refinalize changelogdebian/0.34.1-1archive/debian/0.34.1-10.34.1David Bremner
2021-11-03NEWS: finalize release dateDavid Bremner
2021-10-31debian: changelog for 0.34.1-1David Bremner
2021-10-31NEWS: start news for 0.34.1David Bremner
2021-10-31version: bump to 0.34.1David Bremner
2021-10-30emacs: improve notmuch-*-from-current-query docstringsDavid Bremner
Err on the side of providing better user documentation, rather than documentation for developers.
2021-10-30emacs: add minimal docstring for notmuch-unthreadedDavid Bremner
The missing docstring causes a blank in the notmuch-help display [1]. Since the function is a simple wrapper for notmuch-tree, it seems fair to forward the reader there for more detailed information. [1]: id:878sape5a9.fsf@disroot.org
2021-10-30lib/open: replace call to deprecated notmuch_database_open_verboseDavid Bremner
Essentially inline the existing shim definition of notmuch_database_open_verbose.
2021-10-30lib/compact: replace deprecated notmuch_database_open_verboseDavid Bremner
It should not be necesary to have any config information here, hence passing "" to n_d_open_with_config.
2021-10-30Merge branch 'release'David Bremner
2021-10-30lib/load_config: deallocate / NULL database on fatal errorDavid Bremner
This fixes a potential memory leak, and makes the behaviour of notmuch_database_load_config (somewhat) consistent with n_d_{open,create} with config.
2021-10-30lib/load_config: document expectations for db on error, add testsDavid Bremner
This is a bit different than n_d_{open,create}_with_config, since there are several non-zero status codes where we do want to return a non-NULL database structure.
2021-10-30lib/create: fix memory leak, ensure *database=NULL on errorDavid Bremner
This code previously relied on _finish_open to free the notmuch struct on errors (except for the case of database == NULL, which was a potential double free). When we removed those frees from _finish_open, we introduced a (small) memory leak. In this commit, fix the memory leak, and harmonize the on-error behaviour with n_d_open_with_config.
2021-10-30lib/create: document expectations for db on error, add testsDavid Bremner
It seems sensible to harmonize the behaviour with n_d_open_with_config. In this commit we just assert the desired behaviour.
2021-10-30lib/open: fix potential double-free, ensure *database=NULL on errorDavid Bremner
During refactoring for 0.32, the code that set notmuch=NULL on various errors was moved into _finish_open. This meant that the the code which relied on that to set *database to NULL on error was no longer correct. It also introduced a potential double free, since the notmuch struct was deallocated inside _finish_open (via n_d_destroy). In this commit we revert to "allocator frees", and leave any cleanup to the caller of _finish_open. This allows us to get back the behaviour of setting *database to NULL with a small change. Other callers of _finish_open will need free notmuch on errors.
2021-10-30test: add two known broken tests for missing config filesDavid Bremner
The documentation claims that the database will be set to NULL in this case, but it is currently not happening. Based on a reproducer [1] from Austin Ray. [1]: id:20211021190401.imirxau2ewke6e2m@athena
2021-10-30lib: document n_o_w_config can return NOTMUCH_STATUS_NO_CONFIGDavid Bremner
This should be treated as fatal by callers, since we didn't succeed in opening a Xapian database.