David Bremner [Sat, 15 May 2021 12:10:58 +0000 (09:10 -0300)]
Merge branch 'release'
David Bremner [Sat, 15 May 2021 12:04:20 +0000 (09:04 -0300)]
NEWS: finalize release date
David Bremner [Sat, 15 May 2021 12:03:19 +0000 (09:03 -0300)]
debian: changelog for 0.32.1-1
David Bremner [Sat, 15 May 2021 11:59:01 +0000 (08:59 -0300)]
version: bump to 0.32.1
David Bremner [Sat, 15 May 2021 11:52:47 +0000 (08:52 -0300)]
NEWS: add news for $HOME/mail fix
David Bremner [Mon, 10 May 2021 10:39:18 +0000 (07:39 -0300)]
lib/open: restore default database path of $HOME/mail
Although this default worked for "notmuch config get", it didn't work
most other places. Restore the previous functionality, with the
wrinkle that XDG locations will shadow $HOME/mail if they exist.
This fixes a bug reported by Jack Kamm in id:
87eeefdc8b.fsf@gmail.com
David Bremner [Sat, 8 May 2021 12:11:13 +0000 (09:11 -0300)]
NEWS: add NEWS for notmuch-{before,after}-tag-hook fixes
Kyle Meyer [Sat, 8 May 2021 12:11:12 +0000 (09:11 -0300)]
emacs: restore tag-changes and query bindings for tag hooks
notmuch-before-tag-hook and notmuch-after-tag-hook are supposed to
have access to two dynamic variables, tag-changes and query, but these
were lost with the switch to lexical binding in
fc4cda07 (emacs: use
lexical-bindings in all libraries, 2021-01-13).
Add a variant of Emacs's dlet (not available until Emacs 28) and use
it in notmuch-tag to expose tag-changes and query to the hooks.
David Bremner [Sat, 8 May 2021 12:11:11 +0000 (09:11 -0300)]
test: add known broken tests for notuch-{before,after}-tag-hook
These tests illustrate the bug reported in id:87v97ytd2s.fsf@fastmail.fm
David Bremner [Sat, 15 May 2021 11:14:37 +0000 (08:14 -0300)]
CLI: add missing file notmuch-client-init
This file should have been created in commit
5a8d174f, but wasn't.
David Bremner [Thu, 13 May 2021 00:01:02 +0000 (21:01 -0300)]
CLI/notmuch: make immutable tables const
Let the compiler enforce the immutability.
David Bremner [Wed, 12 May 2021 23:40:23 +0000 (20:40 -0300)]
CLI: make static message strings const
This is both a bit clearer and avoids the possibility of modification.
David Bremner [Wed, 12 May 2021 23:25:59 +0000 (20:25 -0300)]
CLI/config: make immutable tables const
Let the compiler help us catch bugs.
David Bremner [Wed, 12 May 2021 23:22:18 +0000 (20:22 -0300)]
CLI: centralize initialization in notmuch_client_init
Initially make sure gmime_filter_reply initialization is
thread-safe (assuming notmuch_client_init is only called once).
For tidyness, also put talloc initialization in the new function.
David Bremner [Wed, 12 May 2021 01:58:55 +0000 (22:58 -0300)]
lib/message: mark flag2tag as const
This table is intended to be immutable
David Bremner [Tue, 11 May 2021 11:08:32 +0000 (08:08 -0300)]
lib/generate_thread_id: move static buffer to notmuch_database_t
Work towards the goal of concurrent access to different Xapian
databases from the same process.
David Bremner [Sun, 9 May 2021 20:33:48 +0000 (17:33 -0300)]
lib: make glib initialization thread-safe
In principle this could be done without depending on C++11 features,
but these features should be available since gcc 4.8.1, and this
localized usage is easy to replace if it turns out to be problematic
for portability.
Felipe Contreras [Tue, 4 May 2021 08:17:42 +0000 (03:17 -0500)]
ruby: improve general data get helper
There's no need to do Check_Type, Data_Get_Struct calls
rb_data_object_get(), which already does that.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Tue, 4 May 2021 08:17:41 +0000 (03:17 -0500)]
ruby: improve all Data_Get_Notmuch_* helpers
There's no need to repeat the same code over and over.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Tue, 4 May 2021 08:17:40 +0000 (03:17 -0500)]
ruby: add missing Data_Get_Notmuch helpers
Apparently commit
5c9e3855 (ruby: Don't barf if an object is destroyed
more than once, 2010-05-26) missed these two.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
David Bremner [Wed, 12 May 2021 11:42:28 +0000 (08:42 -0300)]
Merge branch 'release'
David Bremner [Tue, 11 May 2021 22:50:51 +0000 (19:50 -0300)]
NEWS: add note about fix to notmuch_database_reopen
David Bremner [Sun, 9 May 2021 12:28:48 +0000 (09:28 -0300)]
lib/notmuch_database_reopen: reload some database metadata
In some uses of reopen, new documents and threads maybe have been
added, and e.g. compaction may have changed the uuid.
Michael J Gruber [Tue, 11 May 2021 20:48:52 +0000 (22:48 +0200)]
test: change database from within pre-new hook
Due to the change in the config system, notmuch keeps a notmuch database
open when it would not do so before. Consequently, it can miss changes
to the database which are done from a hook (while notmuch holds the
databse in read only mode). When notmuch itself writes to the database
after that it uses wrong assumptions about the last used doc id etc.
Demonstrate this by triggering an assertion. (This new test succeeds
with notmuch 0.31.4.)
Signed-off-by: Michael J Gruber <git@grubix.eu>
Amended-by: db. Check for both messages
David Bremner [Mon, 10 May 2021 14:36:56 +0000 (11:36 -0300)]
Merge branch 'release'
David Bremner [Fri, 7 May 2021 11:07:33 +0000 (08:07 -0300)]
NEWS: start NEWS for 0.32.1
David Bremner [Fri, 7 May 2021 11:13:22 +0000 (08:13 -0300)]
doc: document database.backup_dir
Most users will not need to change this, but documenting it helps
preserve the interface.
David Bremner [Fri, 7 May 2021 11:02:16 +0000 (08:02 -0300)]
doc: document (tersely) the intended behaviour of relative paths.
David Bremner [Fri, 7 May 2021 10:56:08 +0000 (07:56 -0300)]
test: test explicit configuration of backup directory
Including the relative path that was broken until a recent commit.
David Bremner [Fri, 7 May 2021 10:38:32 +0000 (07:38 -0300)]
test: test relative paths for database.hook_dir
David Bremner [Fri, 7 May 2021 10:27:37 +0000 (07:27 -0300)]
lib/config: expand relative paths when reading from database
This makes the treatment of relative paths consistent between the
database and config files.
David Bremner [Fri, 7 May 2021 10:17:43 +0000 (07:17 -0300)]
test: add known broken test for relative setting of mail_root
The behaviour should not change depending on where the configuration
is stored.
David Bremner [Fri, 7 May 2021 00:16:38 +0000 (21:16 -0300)]
lib/config: canonicalize paths relative to $HOME.
Prior to 0.32, notmuch had the (undocumented) behaviour that it
expanded a relative value of database.path with respect to $HOME. In
0.32 this was special cased for database.path but broken for
database.mail_root, which causes problems for at least notmuch-new
when database.path is set to a relative path.
The change in T030-config.sh reflects a user visible, but hopefully
harmless behaviour change; the expanded form of the paths will now be
printed by notmuch config.
David Bremner [Thu, 6 May 2021 22:55:07 +0000 (19:55 -0300)]
test: add known broken test for relative database path in new
This test highlights a bug introduced in 0.32. The new split between
path and mail_root does not properly canonicalize relative paths in
the latter.
Felipe Contreras [Sat, 1 May 2021 11:59:23 +0000 (06:59 -0500)]
test: ruby: simplify output comparison
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:59:22 +0000 (06:59 -0500)]
test: ruby: don't use instance variables
Local variables are perfectly fine.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:59:21 +0000 (06:59 -0500)]
test: ruby: use much more standard Ruby idioms
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:59:20 +0000 (06:59 -0500)]
test: ruby: use much more standard puts
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:59:19 +0000 (06:59 -0500)]
test: ruby: simplify test_ruby()
We always do test_expect_equal_file, so do it in test_ruby() directly.
The only subtest where we don't (get non-existent file) can be easily
modified.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:59:18 +0000 (06:59 -0500)]
test: ruby: simplify MAIL_DIR initialization
There's no need to complicate the script passing the MAIL_DIR
environment variable.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:59:17 +0000 (06:59 -0500)]
test: ruby: simplify MAIL_DIR check
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:59:16 +0000 (06:59 -0500)]
test: ruby: refactor test_ruby()
There's no point in repeating the same initialization in all the tests.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:59:15 +0000 (06:59 -0500)]
test: move test_ruby() inside the only client
Not much point in polluting the main library, and also will be useful to
modify it in tandem with the tests.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
David Bremner [Sun, 2 May 2021 10:41:42 +0000 (07:41 -0300)]
Merge tag '0.32'
notmuch 0.32 release
David Bremner [Sun, 2 May 2021 10:05:44 +0000 (07:05 -0300)]
debian: add changelog for 0.32-1
David Bremner [Sun, 2 May 2021 10:01:41 +0000 (07:01 -0300)]
NEWS: set date for 0.32 release
David Bremner [Sun, 2 May 2021 10:00:15 +0000 (07:00 -0300)]
version: bump to 0.32
Felipe Contreras [Sat, 1 May 2021 11:54:16 +0000 (06:54 -0500)]
test: add external prereqs to many emacs tests
The tests fail otherwise.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:54:15 +0000 (06:54 -0500)]
test: add prereqs check in test_emacs_expect_t
test_emacs may update the external prereqs, in which case we want to
skip the test rather than fail.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:54:14 +0000 (06:54 -0500)]
test: fix wrong SKIP messages
When the external prereqs are updated inside the body of the command
(e.g. test_emacs) the message in test_report_skip_ is wrong: it outputs
the body of the command instead of the subtest name.
We need to pass the same argument we pass to test_skip.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:54:13 +0000 (06:54 -0500)]
test: use correct fqdn in passwd_sanitize()
My fqdn is 'natae.localdomain', however, socket.getfqdn() returns
'localhost'.
To fetch the true fqdn we need socket.getaddrinfo().
For more information see: https://stackoverflow.com/a/
11580042/10474
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:54:11 +0000 (06:54 -0500)]
test: unset NAME environment variable
Otherwise the output from the tests would be different.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Felipe Contreras [Sat, 1 May 2021 11:54:10 +0000 (06:54 -0500)]
test: fix passwd_sanitize()
If any of the variables is empty the output is completely messed up,
because replace("", "FOO") puts "FOO" before every single character.
I don't have my full name configured, and this is what I get:
USER_FULL_NAME=USER_FULL_NAME=USER_FULL_NAME USER_FULL_NAMEsUSER_FULL_NAMEtUSER_FULL_NAMEdUSER_FULL_NAMEoUSER_FULL_NAMEuUSER_FULL_NAMEtUSER_FULL_NAME USER_FULL_NAME=USER_FULL_NAME=USER_FULL_NAME
Let's check for empty strings before doing any replace.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
David Bremner [Sun, 25 Apr 2021 15:23:52 +0000 (12:23 -0300)]
perf-test: add option to run perf
Although the generation of perf data is not as slow as valgrind, it
seems simplest to re-use the machinery already there to save the logs
in a timestamped subdirectory.
David Bremner [Wed, 28 Apr 2021 10:32:44 +0000 (07:32 -0300)]
Merge tag '0.32_rc2'
notmuch 0.32~rc2 release
David Bremner [Wed, 28 Apr 2021 10:06:31 +0000 (07:06 -0300)]
debian: add changelog for 0.32~rc2-1
David Bremner [Wed, 28 Apr 2021 10:04:57 +0000 (07:04 -0300)]
version: bump to 0.32~rc2
David Bremner [Wed, 28 Apr 2021 10:01:53 +0000 (07:01 -0300)]
NEWS: fix typo
Spellcheckers, is that like spellchess?
David Bremner [Tue, 27 Apr 2021 00:12:02 +0000 (21:12 -0300)]
NEWS: summarize changes to emacs interface.
This my attempt at a summary based on git log.
Amended: with suggestions from id:87wnsmkf12.fsf@bernoul.li
David Bremner [Tue, 27 Apr 2021 23:34:06 +0000 (20:34 -0300)]
Revert "Vim: Ensure that every queries respect excluded tags"
This reverts commit
0998fa9a09387b622d770fc8c5f780a951b0cf2a.
per id:CAMP44s2k+fthVXCS9R9kQRzzwWbnS7RAcKg1Q0m6q5Ybzdm71Q@mail.gmail.com
David Bremner [Mon, 26 Apr 2021 23:53:01 +0000 (20:53 -0300)]
NEWS: mention file deletion speedups
It seems a bit silly to have two NEWS entries for one commit, but
there are two potiential audiences.
Jules Aguillon [Tue, 16 Feb 2021 23:43:16 +0000 (00:43 +0100)]
Vim: Ensure that every queries respect excluded tags
This makes sure that the bug solved by the previous commit won't happen again
and remove some dupplication.
This shouldn't have any side effect.
Jules Aguillon [Tue, 16 Feb 2021 23:43:15 +0000 (00:43 +0100)]
Vim: Respect excluded tags when showing a thread
Other queries have exclude_tags taken into account but this one.
This is annoying when using an excluded tag to ignore past messages from a
thread (for example the 'deleted' tag), the entire thread is shown all the
time.
Felipe Contreras [Sun, 18 Apr 2021 22:48:39 +0000 (17:48 -0500)]
vim: fix Mail 2.8.0 warning
Passing an unparsed header field to Mail::Field.new is deprecated and will be removed in Mail 2.8.0. Use Mail::Field.parse instead.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
David Bremner [Mon, 26 Apr 2021 12:00:11 +0000 (09:00 -0300)]
test: hide message from moreutils parallel.
The argument --version confuses moreutils parallel, but this is OK,
because its confusing does not include printing "GNU"
Tobias Backer Dirks [Sat, 24 Apr 2021 20:41:03 +0000 (21:41 +0100)]
test: check for GNU parallel with --version options
The lastest versions of GNU parallel no longer make mention of GNU
within their help output. This causes the test script to mistakenly use
the moreutils parallel execution. In order to fix this, while
maintaining compatibility with previous versions of GNU parallel,
--version should be used.
Signed-off-by: Tobias Backer Dirks <omgitsaheadcrab@gmail.com>
David Bremner [Sat, 24 Apr 2021 15:46:32 +0000 (12:46 -0300)]
debian: bump changelog version
David Bremner [Sat, 24 Apr 2021 15:26:09 +0000 (12:26 -0300)]
version: bump to 0.32~rc1
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.
David Bremner [Sat, 24 Apr 2021 13:44:28 +0000 (10:44 -0300)]
lib/config: remove early free in _get_email_from_passwd_file
This (obvious) bug was caused by cut&pasting the code from
notmuch-config.c into the library and adding on a return at the end.
David Bremner [Sat, 24 Apr 2021 12:28:15 +0000 (09:28 -0300)]
test: replace notmuch_passwd_sanitize with python version
Apparently the -f option to hostname is not portable, and in fact it
does not seem to always behave reasonably in e.g. a chroot.
Python code originally due to Tomi [1], modified by yours truly.
[1]: id:m2lf9fbkug.fsf@guru.guru-group.fi
David Bremner [Sat, 24 Apr 2021 11:55:45 +0000 (08:55 -0300)]
debian: update d/libnotmuch5
This corresponds to libnotmuch 5.3. It should be backward compatible
because it only adds symbols.
David Bremner [Sat, 24 Apr 2021 11:49:44 +0000 (08:49 -0300)]
debian: start changelog for 0.32~rc0-1
David Bremner [Sat, 24 Apr 2021 11:45:54 +0000 (08:45 -0300)]
update version to 0.32~rc0
Đoàn Trần Công Danh [Sat, 24 Apr 2021 01:05:37 +0000 (08:05 +0700)]
compat: rename {,notmuch_}canonicalize_file_name
When compat canonicalize_file_name was introduced, it was limited to
C code only because it was used by C code only during that time.
>From
5ec6fd4d, (lib/open: check for split configuration when creating
database., 2021-02-16), lib/open.cc, which is C++, relies on the
existent of canonicalize_file_name.
However, we can't blindly enable canonicalize_file_name for C++ code,
because different implementation has different additional signature for
C++ and users can arbitrarily add -DHAVE_CANONICALIZE_FILE_NAME=0 to
{C,CXX}FLAGS.
Let's move our implementation into a util library.
Helped-by: Tomi Ollila <tomi.ollila@iki.fi>
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Felipe Contreras [Fri, 16 Apr 2021 20:27:31 +0000 (15:27 -0500)]
ruby: fix ruby 3.1 warnings
init.c:214:5: warning: ‘rb_cData’ is deprecated: by: rb_cObject. Will be removed in 3.1. [-Wdeprecated-declarations]
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
David Bremner [Sat, 20 Mar 2021 13:10:52 +0000 (10:10 -0300)]
lib/n_d_index_file: check return value from _n_m_add_filename
Ignoring this return value seems like a bad idea in general, and in
particular it has been hiding one or more bugs related to handling
long directory names.
Đoàn Trần Công Danh [Sun, 18 Apr 2021 03:48:46 +0000 (10:48 +0700)]
test-lib: unset XDG_CONFIG_HOME
lib/open.cc:_load_key_file will only open xdg-config files in
$XDG_CONFIG_HOME if it's defined, $HOME/.config will be considered if
and only if XDG_CONFIG_HOME not defined.
Let's unset said variable before running the test.
David Bremner [Fri, 16 Apr 2021 12:00:39 +0000 (09:00 -0300)]
lib: directly traverse postlists in _n_message_delete
This is intended to fix the slow behaviour of "notmuch new" (and possibly
"notmuch reindex") when large numbers of files are deleted.
The underlying issue [1] seems to be the Xapian glass backend spending
a large amount of time in db.has_positions when running queries with
large-ish amounts of unflushed changes.
This commit removes two uses of Xapian queries [2], and replaces them with
an approximation of what Xapian would do after optimizing the
queries. This avoids the calls to has_positions (which are in any case
un-needed because we are only using boolean terms here).
[1] Thanks to "andres" on IRC for narrowing down the performance
bottleneck.
[2] Thanks to Olly Betts of Xapian fame for talking me a through a fix
that does not require people to update Xapian.
David Bremner [Fri, 16 Apr 2021 12:00:38 +0000 (09:00 -0300)]
perf-tests: add test for removing files.
Without the proposed fix for deletion performance [1], this test is
probably unreasonably slow compared to others at the same
small/medium/large scale.
[1]: id:
20210414021627.
1236560-3-david@tethera.net
David Bremner [Sat, 13 Mar 2021 12:43:37 +0000 (08:43 -0400)]
test: put shim at end of LD_PRELOAD path
Certain tools like the address-sanitizer fail if they are not the
first LD_PRELOADed library. It does not seem to matter for our shims,
as long as they are loaded before libnotmuch.
David Bremner [Sat, 10 Apr 2021 12:49:37 +0000 (09:49 -0300)]
NEWS: user visible config related changes for 0.32
David Bremner [Sat, 27 Feb 2021 14:11:23 +0000 (10:11 -0400)]
CLI: rename notmuch_config_t to notmuch_conffile_t
The name is a compromise between keeping function names from getting
too long, and avoiding confusion with the newer notmuch_config library
API. Try to make clear that the residual functionality is only about
updating configuration files.
David Bremner [Sat, 27 Feb 2021 14:07:45 +0000 (10:07 -0400)]
CLI: drop notmuch_config_t from subcommand interface.
At this point it is unused in all subcommands.
David Bremner [Sat, 27 Feb 2021 13:22:32 +0000 (09:22 -0400)]
CLI/config: remove calls to notmuch_config_open from top level
This will allow simplifying the subcommand interface.
Change the internal API to notmuch_config_open to not tie it to the
implementation of subcommands in notmuch.c.
It also fixes a previously broken test, since notmuch_config_open does
not understand the notion of the empty string as a config file name.
David Bremner [Thu, 25 Feb 2021 12:00:26 +0000 (08:00 -0400)]
CLI/config: support set/get with split configuration
There are two small code changes. The main one is to retrieve the
possibly updated config file name found during the database opening
call. The second change is to allow empty config file names, as
a (currently broken) way of specifying that configuration should only
be taken from the database.
David Bremner [Sun, 21 Feb 2021 11:34:52 +0000 (07:34 -0400)]
lib: provide notmuch_config_path
Since the library searches in several locations for a config file, the
caller does not know which of these is chosen in the usual case of
passing NULL as a config file. This changes provides an API for the
caller to retrieve the name of the config file chosen. It will be
tested in a following commit.
David Bremner [Tue, 23 Feb 2021 20:19:13 +0000 (16:19 -0400)]
CLI+lib: detect missing database in split configurations.
Eventually we want to do all opening of databases in the top
level (main function). This means that detection of missing databases
needs to move out of subcommands. It also requires updating the
library to use the new NO_DATABASE status code.
David Bremner [Tue, 23 Feb 2021 19:56:47 +0000 (15:56 -0400)]
lib: add NOTMUCH_STATUS_NO_DATABASE
This will allow more precise return values from various open related functions.
David Bremner [Fri, 19 Feb 2021 12:41:36 +0000 (08:41 -0400)]
CLI/config: default to storing all config in external files
Previously the fact that some configuration options were only stored
in the database (and thus editing the config file had no effect) was a
source of user confusion. This was fixed with the series ending at
d9af0af1646.
On the other hand, the underlying partition of config options into
those stored by default in the database and those stored in the config
file remained. This is also confusing, since now some invocations of
"notmuch config set" modify the config file, and others silently
modify the database instead.
With this commit, it is up to the user to decide which configuration
to modify. A new "--database" option is provided for notmuch config to
enable modifying the configuration information in the database;
otherwise the default is to update an external config file.
David Bremner [Sun, 14 Feb 2021 18:36:18 +0000 (14:36 -0400)]
CLI/config: drop cached data from notmuch_config_t
The idea is to preserve notmuch_config_t as a thin wrapper for GKeyFile.
David Bremner [Sun, 14 Feb 2021 18:02:51 +0000 (14:02 -0400)]
CLI/config: drop obsolete notmuch_config_get_*
These are no longer used, replaced by notmuch_config_get.
David Bremner [Tue, 23 Feb 2021 13:22:37 +0000 (09:22 -0400)]
CLI/notmuch: switch notmuch_command to notmuch_config_get
The goal at this point is to remove the dependence on
notmuch_config_get_* without breaking any existing functionality. This
is a step towards removing notmuch_config_get_* in a future commit.
David Bremner [Sun, 14 Feb 2021 17:46:13 +0000 (13:46 -0400)]
CLI/config: use notmuch_database_reopen
This allows `notmuch config` to use the common configuration
information carried by the notmuch_database_t opened at the top level.
David Bremner [Sun, 14 Feb 2021 13:32:41 +0000 (09:32 -0400)]
CLI/config: migrate notmuch_config_open to new config
notmuch_config_open will be preserved in the medium term for use by
the commands that are manipulating the config file directly (config
and setup)
David Bremner [Sun, 14 Feb 2021 11:54:22 +0000 (07:54 -0400)]
CLI/config: switch "notmuch config list" to merged config
Use the database opened at the top level rather than opening another
notmuch_database_t.
Test output changes because keys are now listed in alphabetical order,
and because a missing database is no longer an error.
David Bremner [Sat, 13 Feb 2021 17:49:32 +0000 (13:49 -0400)]
CLI/setup: switch to new configuration framework
Most of the changes are the elimination of notmuch_config_t accessor
use. We also migrate some of the diagnostics to the top level where we
are opening the files in question.
David Bremner [Sat, 27 Feb 2021 14:50:33 +0000 (10:50 -0400)]
test/setup: check file output instead of notmuch config list
This allows verification of comments added to new / updated config
file.
David Bremner [Sat, 13 Feb 2021 13:01:50 +0000 (09:01 -0400)]
CLI/config: use merged config for "config get"
This commit starts the conversion of notmuch-config.c
functionality (as opposed to just interface) to the new config
framework.
The change to T030-config is because of the move of the
canonicalization database paths from the notmuch_config_t accessor to
the internal function _choose_database_path.
David Bremner [Wed, 10 Feb 2021 00:26:40 +0000 (20:26 -0400)]
CLI: load merged config at top level
This paves the way for the conversion of the remaining subcommands to
the new configuration framework.