Jani Nikula [Sun, 26 Feb 2017 13:42:55 +0000 (15:42 +0200)]
test: remove unused test_external and test_external_without_stderr
They've been unused since their introduction in commit
0083854b1204
("Copy test framework from Git"), only causing maintenance burden.
Jani Nikula [Sun, 26 Feb 2017 13:42:54 +0000 (15:42 +0200)]
test: remove unused filter functions
They've been unused since their introduction in commit
0083854b1204
("Copy test framework from Git").
Jani Nikula [Sun, 26 Feb 2017 13:42:53 +0000 (15:42 +0200)]
test: remove unused regexp convenience variables
They've been unused since their introduction in commit
0083854b1204
("Copy test framework from Git").
Jani Nikula [Sun, 26 Feb 2017 17:36:50 +0000 (19:36 +0200)]
test: suppress diff for broken test without V=1
Known broken tests are, well, known broken. Do not print the result
diff for them unless V=1 is specified. Now that the test description
is printed also when known broken tests fail, the user can also skip
to running the individual failing tests.
Jani Nikula [Sun, 26 Feb 2017 17:36:49 +0000 (19:36 +0200)]
test: print test description also for failing known broken tests
With the test description, the user can see the test script name, and
debug with that alone.
David Bremner [Wed, 8 Mar 2017 12:31:51 +0000 (08:31 -0400)]
Merge branch 'release'
new release candidate, with regexp fix
David Bremner [Wed, 8 Mar 2017 12:10:11 +0000 (08:10 -0400)]
debian: changelog stanza for 0.24~rc1-1
David Bremner [Wed, 8 Mar 2017 12:04:42 +0000 (08:04 -0400)]
version: bump version to 0.24~rc1
Olly Betts [Tue, 7 Mar 2017 12:52:39 +0000 (08:52 -0400)]
lib: Fix RegexpPostingSource
Remove incorrect skipping to first match from init(), and add explicit
skip_to() and check() methods to work around xapian-core bug (the
check() method will also improve speed when filtering by one of
these).
David Bremner [Tue, 7 Mar 2017 13:12:22 +0000 (09:12 -0400)]
Merge branch 'release'
NEWS and doc changes
Jani Nikula [Mon, 6 Mar 2017 19:27:01 +0000 (21:27 +0200)]
NEWS: notmuch-emacs-mua and desktop integration
Jani Nikula [Mon, 6 Mar 2017 19:27:00 +0000 (21:27 +0200)]
NEWS: external subcommand handling
Jani Nikula [Mon, 6 Mar 2017 19:26:59 +0000 (21:26 +0200)]
man: document external subcommand handling in notmuch(1)
The documentation for this was overlooked when adding the subcommand
handling. This seems like the proper place for it.
Mark Walters [Mon, 6 Mar 2017 08:49:20 +0000 (08:49 +0000)]
NEWS for emacs
David Bremner [Mon, 6 Mar 2017 00:32:20 +0000 (20:32 -0400)]
Merge tag '0.24_rc0'
notmuch 0.24~rc0 release
David Bremner [Mon, 6 Mar 2017 00:13:06 +0000 (20:13 -0400)]
debian: add two new exception symbols.
It seems these need to be exported from the library in order for
exception handling to work.
David Bremner [Sun, 5 Mar 2017 23:44:33 +0000 (19:44 -0400)]
NEWS: start NEWS for 0.24
David Bremner [Sun, 5 Mar 2017 23:33:50 +0000 (19:33 -0400)]
debian: start changelog stanza for 0.24~rc0-1
David Bremner [Sun, 5 Mar 2017 23:30:21 +0000 (19:30 -0400)]
version: bump to 0.24~rc0
Jani Nikula [Sun, 26 Feb 2017 17:36:48 +0000 (19:36 +0200)]
test: shrink T590-thread-breakage test decription to one line
The test description is used for log output, I think the intention is
to keep it as a one-liner. Leave the rest of the long description as a
comment.
Mark Walters [Sat, 4 Mar 2017 20:42:14 +0000 (20:42 +0000)]
emacs: compat: backport fix for folding long headers when sending
This backports the fix from emacs master (commit
77bbca8c82f6e553c42abbfafca28f55fc995d00) to notmuch-emacs to wrap
long headers.
This fixes the test introduced in the previous changeset.
Mark Walters [Sat, 4 Mar 2017 20:42:13 +0000 (20:42 +0000)]
Test: emacs: test for folding long headers.
Headers of more than 998 characters should be folded when sending.
However, until recently, emacs did not do this.
This adds a (known broken) test for this when sending messages in
emacs. We will backport the fix to notmuch-emacs in the next
changeset.
David Bremner [Sat, 25 Feb 2017 16:09:13 +0000 (12:09 -0400)]
lib: query make exclude handling non-destructive
We filter added exclude at add time, rather than modifying the query by
count search. As noted in the comments, there are several ignored
conditions here.
David Bremner [Sat, 25 Feb 2017 16:09:11 +0000 (12:09 -0400)]
lib: centralize query parsing, store results.
The main goal is to prepare the way for non-destructive (or at least
less destructive) exclude tag handling. It does this by having a
pre-parsed query available for further processing. This also allows us
to provide slightly more precise error messages.
Jani Nikula [Sat, 4 Mar 2017 17:38:41 +0000 (19:38 +0200)]
lib: use delete[] to free buffer allocated using new[]
Fix warning caught by clang:
lib/regexp-fields.cc:41:2: warning: 'delete' applied to a pointer that was allocated
with 'new[]'; did you mean 'delete[]'? [-Wmismatched-new-delete]
delete buffer;
^
[]
lib/regexp-fields.cc:37:17: note: allocated with 'new[]' here
char *buffer = new char[len];
^
David Bremner [Mon, 27 Feb 2017 02:34:21 +0000 (22:34 -0400)]
lib: add mid: as a synonym for id:
mid: is the url scheme suggested by URL 2392. We also plan to
introduce more flexible searches for mid: than are possible with
id: (in order not to break assumptions about the special behaviour of
id:, e.g. identifying at most one message).
David Bremner [Mon, 27 Feb 2017 02:34:20 +0000 (22:34 -0400)]
lib: regexp matching in 'subject' and 'from'
the idea is that you can run
% notmuch search subject:/<your-favourite-regexp>/
% notmuch search from:/<your-favourite-regexp>/
or
% notmuch search subject:"your usual phrase search"
% notmuch search from:"usual phrase search"
This feature is only available with recent Xapian, specifically
support for field processors is needed.
It should work with bindings, since it extends the query parser.
This is easy to extend for other value slots, but currently the only
value slots are date, message_id, from, subject, and last_mod. Date is
already searchable; message_id is left for a followup commit.
This was originally written by Austin Clements, and ported to Xapian
field processors (from Austin's custom query parser) by yours truly.
David Bremner [Mon, 27 Feb 2017 02:34:19 +0000 (22:34 -0400)]
lib: create field processors from prefix table
This is a bit more code than hardcoding the two existing field
processors, but it should make it easy to add more.
David Bremner [Thu, 2 Mar 2017 00:44:47 +0000 (20:44 -0400)]
build: use sha256sum instead of sha1sum to sign releases
Jani Nikula [Sat, 25 Feb 2017 09:25:40 +0000 (11:25 +0200)]
emacs/desktop: update to use notmuch-emacs-mua and handle mailto
With the mailto: handling in notmuch-emacs-mua, we can update the
desktop file to advertize we can be set as the default application to
handle email. While at it, add GenericName and Comment to be more
informative.
With --hello, notmuch-emacs-mua will run (notmuch) if mailto: url is
not given.
Jani Nikula [Sat, 25 Feb 2017 09:25:39 +0000 (11:25 +0200)]
completion: complete notmuch emacs-mua
With subcommand handling for external commands we can easily complete
'notmuch emacs-mua' using the existing completion system.
David Bremner [Wed, 1 Mar 2017 01:21:07 +0000 (21:21 -0400)]
Merge branch 'release'
Second gnugpg test suite fix
David Bremner [Wed, 1 Mar 2017 00:49:24 +0000 (20:49 -0400)]
update version to 0.23.7
David Bremner [Wed, 1 Mar 2017 00:46:53 +0000 (20:46 -0400)]
NEWS: add news for 0.23.7
David Bremner [Tue, 28 Feb 2017 00:07:52 +0000 (20:07 -0400)]
add changelog stanza for 0.23.7-1
Tomi Ollila [Sun, 26 Feb 2017 19:12:39 +0000 (21:12 +0200)]
notmuch-config: ENOENT vs generic handling when file open fails.
When opening configuration file fails, ENOENT (file not found) is
handled specially -- in setup missing file is ok (often expected),
and otherwise user can be informed to run notmuch setup.
In any other case the the reason is unknown, so there is no other
option but to print generic error message to stderr.
Jani Nikula [Sun, 26 Feb 2017 19:12:38 +0000 (21:12 +0200)]
cli/config: don't try to open config file for 'notmuch help'
The help command does not really need to try to open the config
file. So don't.
David Bremner [Tue, 28 Feb 2017 12:06:42 +0000 (08:06 -0400)]
Merge tag '0.23.6'
notmuch 0.23.6 release
Jani Nikula [Sun, 26 Feb 2017 18:33:48 +0000 (20:33 +0200)]
cli/show: add content-disposition to structured output message parts
Help the clients decide how to display parts.
Test updates by Mark Walters <markwalters1009@gmail.com>.
One more test fix by db
Jani Nikula [Sun, 26 Feb 2017 18:33:47 +0000 (20:33 +0200)]
cli/show: abstract get content disposition
Reduce duplication in follow-up work. As a side effect, handle error
returns from g_mime_content_disposition_get_disposition() without
segfaulting.
David Bremner [Mon, 27 Feb 2017 23:53:56 +0000 (19:53 -0400)]
test: move GNUPGHOME to TEST_TMPDIR
We already use this directory for dtach sockets, so it makes sense to
put gnupg sockets there as well. There doesn't seem to be a clean way
to put a fully functional socket in a different location than
GNUPGHOME.
David Bremner [Mon, 27 Feb 2017 22:27:49 +0000 (18:27 -0400)]
Revert "configure: add test for gpgconf --create-socketdir"
This reverts commit
12f7d4e61d30fb9a5c99e128ab1aab0bf069cdb4.
Since we're not using gpgconf anymore, drop the unneeded test in
configure.
David Bremner [Mon, 27 Feb 2017 22:26:47 +0000 (18:26 -0400)]
Revert "test: use gpgconf --create-socketdir if available"
This reverts commit
e7b88e8b0a93ca83d807edc00e0c97af54c5b5f1.
It turns out that this does not work well in environments without a
running systemd (or some other provider of /run/user)
David Bremner [Mon, 27 Feb 2017 10:58:07 +0000 (06:58 -0400)]
debian: set upload date and suite
David Bremner [Mon, 27 Feb 2017 10:57:42 +0000 (06:57 -0400)]
NEWS: set release date
David Bremner [Sun, 26 Feb 2017 12:16:45 +0000 (08:16 -0400)]
test: make T640 compatible with old C compilers
Apparently our test system does not use the same flags for compiling
tests as it does for compiling notmuch. Make the test compatible with
C89. Also remove one unused loop index.
Jani Nikula [Sat, 17 Dec 2016 10:50:49 +0000 (12:50 +0200)]
completion: add bash completion for query: and property:
Add prefix completion for query and property, with value completion
for query. Apparently there's no way to get at the available
properties in the cli.
Mark Walters [Sat, 28 Jan 2017 09:47:42 +0000 (09:47 +0000)]
emacs: show: stop display of application/* parts
Gnus seems to display application/zip and application/tar by
default. This doesn't seem desirable so we override it.
We only override if the user has not customized
mm-inline-override-types themselves.
Jani Nikula [Sat, 25 Feb 2017 13:31:32 +0000 (15:31 +0200)]
test: test format version difference between v2 and v3
Schemata v3 changed message filename field to a list. Test both
versions 2 and 3.
Jani Nikula [Sat, 25 Feb 2017 13:31:31 +0000 (15:31 +0200)]
cli/show: list all filenames of a message in the formatted output
Instead of just having the first filename for the message, list all
duplicate filenames of the message as a list in the formatted
outputs. This bumps the format version to 3.
Jani Nikula [Sun, 26 Feb 2017 09:28:30 +0000 (11:28 +0200)]
emacs: use (system-name) instead of system-name
Fix the deprecation warning:
In notmuch-maildir-fcc-make-uniq-maildir-id:
emacs/notmuch-maildir-fcc.el:279:53:Warning: ‘system-name’ is an obsolete
variable (as of 25.1); use (system-name) instead
I've used (system-name) since at least 2011, so it must have been
around quite a while.
David Bremner [Fri, 24 Feb 2017 18:33:07 +0000 (14:33 -0400)]
lib/message.cc: use view number to invalidate cached metadata
Currently the view number is incremented by notmuch_database_reopen
David Bremner [Sat, 18 Feb 2017 01:28:05 +0000 (21:28 -0400)]
lib: handle DatabaseModifiedError in _n_message_ensure_metadata
The retries are hardcoded to a small number, and error handling aborts
than propagating errors from notmuch_database_reopen. These are both
somewhat justified by the assumption that most things that can go
wrong in Xapian::Database::reopen are rare and fatal. Here's the brief
discussion with Xapian upstream:
24-02-2017 08:12:57 < bremner> any intuition about how likely
Xapian::Database::reopen is to fail? I'm catching a
DatabaseModifiedError somewhere where handling any further errors is
tricky, and wondering about treating a failed reopen as as "the
impossible happened, stopping"
24-02-2017 16:22:34 < olly> bremner: there should not be much scope for
failure - stuff like out of memory or disk errors, which are probably a
good enough excuse to stop
David Bremner [Fri, 24 Feb 2017 01:38:24 +0000 (21:38 -0400)]
lib: add _notmuch_database_reopen
The main expected use is to recover from a Xapian::DatabaseChanged
exception.
David Bremner [Sat, 25 Feb 2017 02:57:40 +0000 (22:57 -0400)]
test: add known broken test for uncaught DatabaseModifiedError
There are several of these to track down, but one that is in quite a
few code paths is _notmuch_message_ensure_metadata.
David Bremner [Sat, 25 Feb 2017 12:48:10 +0000 (08:48 -0400)]
debian: note read-after-free fix in d/changelog
David Bremner [Sat, 25 Feb 2017 12:45:43 +0000 (08:45 -0400)]
NEWS: document read-after-free bugfix
David Bremner [Thu, 23 Feb 2017 13:08:15 +0000 (09:08 -0400)]
Merge branch 'release'
Merge in g_hash_table read-after-free fix
David Bremner [Thu, 23 Feb 2017 13:03:10 +0000 (09:03 -0400)]
version: bump to 0.23.6
python and debian bumped at the same time
Tomi Ollila [Wed, 4 Jan 2017 21:33:15 +0000 (23:33 +0200)]
test: replaced use of python with $NOTMUCH_PYTHON (twice)
$NOTMUCH_PYTHON is sourced from sh.config, configured by
./configure and stated to be used as:
"Name of python command to use in configure and the test suite."
Mark Walters [Sat, 28 Jan 2017 10:19:58 +0000 (10:19 +0000)]
emacs: company: remove two build warnings
This adds two defvars to avoid two build warnings in the notmuch emacs
code. These were both introduced (by me) in commit
827c28a0.
Mark Walters [Sat, 28 Jan 2017 10:38:27 +0000 (10:38 +0000)]
emacs: fully add the notmuch-address customize group
We now have several customizable options for address completion. There
is a customize group notmuch-address but it only contains one of these
options. Add all the others, and make it part of the notmuch customize
group.
David Bremner [Sat, 18 Feb 2017 14:45:48 +0000 (10:45 -0400)]
lib: make _notmuch_message_ensure_property_map static
It's not called outside message.cc
David Bremner [Sat, 18 Feb 2017 14:45:44 +0000 (10:45 -0400)]
lib: make _notmuch_message_ensure_metadata static
It's not called anywhere outside message.cc.
David Bremner [Wed, 22 Feb 2017 10:17:47 +0000 (06:17 -0400)]
lib: fix g_hash_table related read-after-free bug
The two g_hash_table functions (insert, add) have different behaviour
with respect to existing keys. g_hash_table_insert frees the new key,
while g_hash_table_add (which is really g_hash_table_replace in
disguise) frees the existing key. With this change 'ref' is live until
the end of the function (assuming single-threaded access to
'hash'). We can't guarantee it will continue to be live in the
future (i.e. there may be a future key duplication) so we copy it with
the allocation context passed to parse_references (in practice this is
the notmuch_message_t object whose parents we are finding).
Thanks to Tomi for the simpler approach to the problem based on
reading the fine glib manual.
David Bremner [Tue, 21 Feb 2017 12:16:07 +0000 (08:16 -0400)]
Merge branch 'release'
Merge changes to use gpgconf --create-socketdir
David Bremner [Tue, 21 Feb 2017 11:51:44 +0000 (07:51 -0400)]
debian: start changelog for 0.23.6
David Bremner [Tue, 21 Feb 2017 11:50:05 +0000 (07:50 -0400)]
NEWS: news for gpgconf use in test suite
David Bremner [Tue, 14 Feb 2017 21:42:39 +0000 (16:42 -0500)]
test: use gpgconf --create-socketdir if available
This enables the shortened socket pathes in /run or equivalent. The
explicit call to gpgconf is needed for nonstandard GNUPGHOME settings.
(amended according to id:m2fujatr4k.fsf@guru.guru-group.fi)
David Bremner [Tue, 14 Feb 2017 21:42:38 +0000 (16:42 -0500)]
configure: add test for gpgconf --create-socketdir
This is primarily intended for use in the test suite (since notmuch
builds fine without gnupg installed). Thus we only write the variable
to sh.config.
David Bremner [Fri, 17 Feb 2017 03:07:50 +0000 (23:07 -0400)]
lib: Let Xapian manage the memory for FieldProcessors
It turns out this is exactly what release() is for; Xapian will
deallocate the objects when it's done with them.
David Bremner [Fri, 17 Feb 2017 03:07:49 +0000 (23:07 -0400)]
lib: merge internal prefix tables
Replace multiple tables with some flags in a single table. This makes
the code in notmuch_database_open_verbose a bit shorter, and it should
also make it easier to add other options to fields, e.g. regexp
searching.
Mark Walters [Sun, 20 Nov 2016 16:50:34 +0000 (16:50 +0000)]
emacs: address: save hash
This allows the user to save the address hash so that it is much
faster for the first completion after a restart. This defaults to off
as there are privacy implications to saving this information.
The code tries hard to avoid overwriting the wrong file. It also notes
if changes have been made to any of the relevant user settings, so
that the user does not get surprising results (i.e., outdated options
being used). Finally it stores some version information so that is
easy for us to update the format of the save file.
Mark Walters [Sun, 20 Nov 2016 16:50:33 +0000 (16:50 +0000)]
emacs: address: move address-full-harvest-finished to a function
This makes the code access notmuch-address-full-harvest-finished via a
helper function, notmuch-address--harvest-ready. Later we will use
this to check whether we can load the harvest instead of regenerating
it.
Jani Nikula [Sat, 17 Dec 2016 16:28:43 +0000 (18:28 +0200)]
cli: don't call _entry_in_ignore_list twice in count files debug
Split file ignores in count_files to fixed and user configured in
order to not have to call _entry_in_ignore_list twice when debugging
is enabled. Minor detail.
Tomi Ollila [Wed, 4 Jan 2017 22:35:23 +0000 (00:35 +0200)]
test: wrap 'wc -l' results in arithmetic evaluation to strip whitespace
Some new unwrapped 'wc -l's have been added since Jani's
60e79e3a9f1c8
David Bremner [Thu, 12 Jan 2017 02:01:15 +0000 (22:01 -0400)]
lib: optimize counting documents
From #xapian
olly> bremner: btw, i noticed notmuch count see ms to request all the documents and then ignores them
bremner> hmm. There's something funny about the way that notmuch uses matches in general iirc
olly> it should be able to do: mset = enquire.get_mset (0, 0, notmuch->xapian_db->get_doccount ());
...
olly> get_matches_estimated() will be exact because check_at_least is the size of the database
Steven Allen [Fri, 13 Jan 2017 17:51:02 +0000 (09:51 -0800)]
docs: fix notmuch_message_properties_value documentation
It returns the value, not the key.
David Bremner [Mon, 9 Jan 2017 10:47:30 +0000 (06:47 -0400)]
Merge tag '0.23.5'
notmuch 0.23.5 release
Jani Nikula [Sun, 8 Jan 2017 17:09:45 +0000 (19:09 +0200)]
configure: remove leftover byte order test cleanup
Removing the removal of byteorder configure test files was overlooked
in commit
5a957c3f33e6 ("build & util: drop byte order configure check
and endian util header"). Finish the job.
David Bremner [Mon, 9 Jan 2017 10:25:01 +0000 (06:25 -0400)]
NEWS,debian: set date for release
Jani Nikula [Fri, 6 Jan 2017 21:29:28 +0000 (23:29 +0200)]
build & util: drop byte order configure check and endian util header
With the removal of the embedded libsha1, we lost the first and last
user of the platform byte order checks. Remove them from configure,
and remove the endian util header.
Jani Nikula [Fri, 6 Jan 2017 21:29:27 +0000 (23:29 +0200)]
lib: use glib for sha1 digests instead of embedding libsha1
We already depend on glib both directly and indirectly (via gmime). We
might as well make use of its facilities. Drop the embedded libsha1
and use glib for sha1 digests.
Tomi Ollila [Sat, 7 Jan 2017 09:47:27 +0000 (11:47 +0200)]
test: allow user to choose which gdb to run tests with
The variable used for selecting gdb is TEST_GDB, consistent with
TEST_CC and TEST_EMACS{,CLIENT}.
David Bremner [Sun, 8 Jan 2017 12:42:26 +0000 (08:42 -0400)]
Merge branch 'release'
These are the (tentative) changes for 0.23.5
David Bremner [Sun, 8 Jan 2017 12:35:17 +0000 (08:35 -0400)]
docs: add 2017 to copyright years
David Bremner [Sun, 8 Jan 2017 12:32:56 +0000 (08:32 -0400)]
bump version to 0.23.5
David Bremner [Sun, 8 Jan 2017 12:31:28 +0000 (08:31 -0400)]
debian: changelog for 0.23.5-1
David Bremner [Sun, 8 Jan 2017 12:30:08 +0000 (08:30 -0400)]
NEWS for 0.23.5
Jani Nikula [Sat, 17 Dec 2016 11:05:40 +0000 (13:05 +0200)]
lib: fix the todo comment placement on NOTMUCH_STATUS_XAPIAN_EXCEPTION
The todo comment got separated from the status it's related to at
commit
3f32fd8a1c06 ("Add missing comment for
NOTMUCH_STATUS_READONLY_DATABASE."). Later, commit
b65ca8e0ba5e ("lib:
modify notmuch.h for automatic document generation") moved it, but to
the wrong place. Fix the location.
Jani Nikula [Sat, 17 Dec 2016 16:20:27 +0000 (18:20 +0200)]
cli/config: rename name to key in _config_set_list
The other getters and setters speak of key, follow suit. No functional
changes.
Jani Nikula [Sat, 17 Dec 2016 16:20:26 +0000 (18:20 +0200)]
cli/config: allocate config using talloc_zero
Do not initialize each field separately. It's more robust to allocate
the config with zero initialization, and only set the non-zero
defaults individually.
Tomi Ollila [Sun, 1 Jan 2017 17:20:30 +0000 (19:20 +0200)]
configure: fix $prefix expansion for libdir_expanded
Since the sed expansion line which did $prefix expansion for
libdir_expanded was changed from the legacy `...` format to the
new $(...) expression, the subtle backslash expansion change went
unnoticed -- \\$ which used to escape '$' now escapes '\' and the
following '$prefix' was attempted to expand as a variable. So
changing \\$ to \$ fixes this.
Also, replaced echo with printf %s -- echo does expansions of its own.
While at it, the following 2 inconsistencies were fixed:
1) the /g flag was removed from first expression; second didn't have it
2) first expression did not end with /, so "dropped" it from second
configure | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
David Bremner [Wed, 28 Dec 2016 23:41:20 +0000 (08:41 +0900)]
Merge branch 'release'
merge 0.23.4 release
David Bremner [Sat, 24 Dec 2016 08:52:11 +0000 (17:52 +0900)]
version: update to 0.23.4
David Bremner [Sat, 24 Dec 2016 08:48:16 +0000 (17:48 +0900)]
set date in NEWS and debian/changelog
pentultimate prepartions for release
David Bremner [Thu, 22 Dec 2016 23:34:30 +0000 (08:34 +0900)]
debian: remove setting of emacslispdir
With dh-elpa, this setting is no longer used
David Bremner [Sun, 18 Dec 2016 11:48:48 +0000 (20:48 +0900)]
debian: changelog stanza for 0.23.4-1
Ioan-Adrian Ratiu [Sat, 10 Dec 2016 19:54:07 +0000 (21:54 +0200)]
notmuch-config: replace config reading function
Config files are currently read using glib's g_key_file_load_from_file
function which is very inconvenient because it's limited by design to read
only from "regular data files" in a filesystem. Because of this limitation
notmuch can't read configs from pipes, fifos, sockets, stdin, etc. Not even
"notmuch --config=/dev/stdin" works:
Error reading configuration file /dev/stdin: Not a regular file
So replace g_key_file_load_from_file with g_key_file_load_from_data which
gives us much more freedom to read configs from multiple sources.
This also helps the more security sensitive users: If someone has private
information in the config file, it can be encrypted on disk, then decrypted
in RAM and passed through a pipe directly to notmuch without the use of
intermediate plain text files.
Signed-off-by: Ioan-Adrian Ratiu <adi@adirat.com>
Jani Nikula [Sat, 10 Dec 2016 19:54:06 +0000 (21:54 +0200)]
cli: abstract config file reading to a separate function
Simplify and fix the coding style while at it.