Commit graph

7231 commits

Author SHA1 Message Date
David Bremner
378415a557 test: add known broken test for conflict with database parameter
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-03 20:49:36 -04:00
David Bremner
59a778ae4b test/libconfig: use 'export' for remaining sets of NOTMUCH_CONFIG
It makes the tests easier to understand if we always use export for
environment variables.
2021-12-03 20:47:05 -04:00
David Bremner
20b2ae1218 emacs: drop C-tab binding in hello mode, document <backtab>.
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]: 703dec7754.
2021-12-03 20:28:12 -04:00
David Bremner
48b5263646 doc/python-cffi: import from built bindings, not installed module
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-03 20:25:59 -04:00
David Bremner
b264a49be3 rename built_with.sexpr_query to built_with.sexp_queries
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-12-03 20:06:06 -04:00
David Bremner
fc3c79dd37 notmuch 0.34.1 release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEkiyHYXwaY0SiY6fqA0U5G1WqFSEFAmGCjv8ACgkQA0U5G1Wq
 FSGt7RAAvH6gVnLnlYcGyI8rBblQvlbmGnRl84KHI5W6jIyTj7pQ2KGK1n3yYzue
 eQsQMSl/bquWJI3GkWebQfHie6c5NzYvsiDLvYg95q6Xq79VFKyZckhpI8t6s+Ez
 U9XxxVMvKpeOs0YrO9gzXyu/oNC1QnHzY7cMzNnGl9VHLLLbmMk8PXR8Ax9X36xi
 xkhP6k/qE7D/SZHKHqr9s16UKyZykTLgF3htG3T+YoitSvIzIZSJAYjAz1BXhKkR
 /Qqyvw63qtFjDR4zey68z8QS0H8G66aM/HKaG57ZB+rd7yUNLAr72Fa8qnHMAS2y
 kcvgUDrKiTR4tXEFRxSgp+HfaybbgzXNJmR1KbL+e1qLD7m2okYMuad4X4c8JgwW
 O3HuU2q2/REJgP1cvXh+0/bGQmCrX7VlFDTsK6EdebGg1kxlcA7/Us1BuNpjv+sU
 9tQjEikDAhIIpsykseUyJcKeyNGYbY3vcMNcNJaAlJTbEH6T/hyJEuFG/g6uunYT
 x21CEXztKtUrmk+1iH6xrz0gmEwR+NIHYjRFLhSvvSwACve/i1enqcztsZqg2EfP
 Z7TFLHUwk4e94ilob4XOCk9URmLfd2l+jJQH1y4mWuGBFuI2q56HM3+NufeTa9oj
 N83uTRZpbdPPcrz59A9mQatttJ3IpGOcsc5nB5YRiLW+kDJh6zs=
 =3Op2
 -----END PGP SIGNATURE-----

Merge tag '0.34.1'

notmuch 0.34.1 release
2021-11-04 16:28:03 -03:00
David Bremner
6858c36595 debian: refinalize changelog 2021-11-03 10:20:49 -03:00
David Bremner
ba7f26e2a5 NEWS: finalize release date 2021-11-03 10:20:08 -03:00
David Bremner
edd5e15360 debian: changelog for 0.34.1-1 2021-10-31 08:25:25 -03:00
David Bremner
b4894de877 NEWS: start news for 0.34.1 2021-10-31 08:18:38 -03:00
David Bremner
0c2edc522b version: bump to 0.34.1 2021-10-31 08:11:25 -03:00
David Bremner
78416a3e97 emacs: improve notmuch-*-from-current-query docstrings
Err on the side of providing better user documentation, rather than
documentation for developers.
2021-10-30 15:19:10 -03:00
David Bremner
55c6570318 emacs: add minimal docstring for notmuch-unthreaded
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-30 15:18:51 -03:00
David Bremner
efbf5bafaf lib/open: replace call to deprecated notmuch_database_open_verbose
Essentially inline the existing shim definition of
notmuch_database_open_verbose.
2021-10-30 15:04:28 -03:00
David Bremner
c7705fb95e lib/compact: replace deprecated notmuch_database_open_verbose
It should not be necesary to have any config information here, hence
passing "" to n_d_open_with_config.
2021-10-30 15:04:00 -03:00
David Bremner
e7bb7919a2 Merge branch 'release' 2021-10-30 15:01:01 -03:00
David Bremner
fe51c275fc lib/load_config: deallocate / NULL database on fatal error
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-30 13:51:50 -03:00
David Bremner
8f0b84789d lib/load_config: document expectations for db on error, add tests
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-30 13:49:37 -03:00
David Bremner
2ba50b5230 lib/create: fix memory leak, ensure *database=NULL on error
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-30 13:47:47 -03:00
David Bremner
f3fcdd2dda lib/create: document expectations for db on error, add tests
It seems sensible to harmonize the behaviour with
n_d_open_with_config. In this commit we just assert the desired
behaviour.
2021-10-30 13:45:40 -03:00
David Bremner
74c4ce6d88 lib/open: fix potential double-free, ensure *database=NULL on error
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-30 13:43:58 -03:00
David Bremner
a942cb8ee3 test: add two known broken tests for missing config files
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-30 13:42:16 -03:00
David Bremner
fb02817943 lib: document n_o_w_config can return NOTMUCH_STATUS_NO_CONFIG
This should be treated as fatal by callers, since we didn't succeed in
opening a Xapian database.
2021-10-30 13:41:57 -03:00
David Bremner
e7528f9b77 Merge branch 'release' 2021-10-27 22:09:03 -03:00
David Bremner
d6e4ca6a7a NEWS: fix typo in 0.34 news.
Thanks to jrm on IRC for finding the typo.
2021-10-27 22:06:36 -03:00
David Bremner
e2b842afb1 test/libconfig: use 'export' when restoring NOTMUCH_CONFIG
This is required when NOTMUCH_CONFIG has been unset, and is harmless
otherwise.
2021-10-27 22:05:45 -03:00
David Bremner
93104f0d9d doc/sexp-queries: replace definition lists with block quotes.
This document contains meaningful markup in the terms, which makeinfo
complains about. Replace the use of definition lists with regular
paragraphs containing quote blocks. This is accomplished by splitting
the "term" from the definition with a blank line.
2021-10-25 08:25:35 -03:00
David Bremner
00fdf10937 doc: remove explicit formatting of terms in definition lists
Sphinx-doc already formats the terms appropriately for a given
backend (bold in html and man). `makeinfo` complains noisily about
formatting inside a @item if we add our own explicit formatting.

This change may change the formatting in the info output. On the other
hand, the existing use of quotes for bold is not that great anyway.

In some places blank lines were removed to preserve the logical
structure of a definition list.
2021-10-25 08:25:22 -03:00
David Bremner
2ce6c76a61 CLI: move indexopts variable out of shared options block
This reduces the amount of global state.  Furthermore, index options
can be set (in principle) in several ways, not just in the one
function for processing indexing command line options.
2021-10-23 09:51:50 -03:00
David Bremner
c128c995bc lib: make indexopts pointers opaque
There is no reason for anything outside the indexopts.c compilation
unit to have access to structure members.
2021-10-23 09:48:39 -03:00
Jani Nikula
f316f7ef6a cli: remove enum names from typedefs
There are some enum typedefs with the enum name:

    typedef enum _name_t { ... } name_t;

We don't need or use the enum names _name_t for anything, and not all
of the enum typedefs have them. We have the typedefs specifically to
use the typedef name.

Use the anonymous enum in the typedefs:

    typedef enum { ... } name_t;
2021-10-23 08:39:16 -03:00
Jani Nikula
6987286a5b lib: remove enum names from typedefs
There are some enum typedefs with the enum name:

    typedef enum _name_t { ... } name_t;

We don't need or use the enum names _name_t for anything, and not all
of the enum typedefs have them. We have the typedefs specifically to
use the typedef name.

Use the anonymous enum in the typedefs:

    typedef enum { ... } name_t;
2021-10-23 08:38:53 -03:00
Jani Nikula
e0834e376a lib: fix commented out NOTMUCH_DEPRECATED()
Remove the comment markers from the placeholder NOTMUCH_DEPRECATED(),
added in commit e5f3c3ed50 ("lib: add stub for
notmuch_database_open_with_config").
2021-10-23 08:34:06 -03:00
David Bremner
f25e48e023 NEWS: set date 2021-10-20 11:25:35 -03:00
David Bremner
95fc947f94 debian: changelog for 0.34 2021-10-20 11:16:03 -03:00
David Bremner
35c625cb97 add NEWS for remaining changes 2021-10-20 10:51:06 -03:00
David Bremner
7b490b4b80 version: bump to 0.34 2021-10-20 10:42:18 -03:00
David Bremner
0cab538778 NEWS: update sexp-query news 2021-10-20 10:42:18 -03:00
Doug Woos
175476d1d1 emacs: fix call to nonexistent notmuch--call-process-shell-command
Looks like a find/replace error in e722b4f4
2021-10-19 08:43:14 -03:00
David Bremner
0f196b5659 debian: add dependency on libsexp-dev
Enable the s-expression query parser in Debian.
2021-10-15 08:52:32 -03:00
David Bremner
603a9992e0 debian: add changelog for 0.34~rc0 2021-10-15 08:51:55 -03:00
David Bremner
40897af1fc INSTALL: document optional dependency on libsfsexp
For now putting it in the apt-get line will cause complaints about
missing packages for too many people.
2021-10-15 08:49:01 -03:00
David Bremner
d3d4c2804a NEWS: stub news for 0.34~rc0
This is mostly to pacify the release checks. NEWS will be filled in
during the release process.
2021-10-15 08:43:29 -03:00
David Bremner
8383b6cb3a lib: bump lib minor version to 5
One new function (and an enum) was added to the API/ABI.
2021-10-15 08:34:39 -03:00
David Bremner
1c932cd5e0 debian: add new function to symbols file 2021-10-15 08:34:09 -03:00
David Bremner
5ad946310d version: bump to 0.34~0
Start release process for 0.34.
2021-10-15 08:28:59 -03:00
David Bremner
bc91954ee0 debian: install notmuch-sexp-queries man page
This was missed in the series that added the sexp-query parser and
docs.
2021-10-12 08:20:09 -03:00
David Bremner
174ec2a28f 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.
2021-10-10 20:58:29 -03:00
David Bremner
a4b1c39331 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.
2021-10-10 20:55:09 -03:00
David Bremner
6e050de4c0 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
2021-10-09 16:39:06 -03:00