Jani Nikula [Sat, 5 Sep 2015 09:35:31 +0000 (12:35 +0300)]
cli: reset db directory mtime upon directory removal
The library does not have a function to remove a directory document
for a path. Usually this doesn't matter except for a slight waste of
space. However, if the same directory gets added to the filesystem
again, the old directory document is found with the old mtime. Reset
the directory mtime on removal to avoid problems.
The corner case that can hit this problem is renaming directories back
and forth. Renaming does not change the mtime of the directory in the
filesystem, and thus the old db directory document mtime may match the
fs mtime of the directory.
The long term fix might be to add a library function to remove a
directory document, however this is a much simpler and faster fix for
the time being.
Uli Scholler [Sun, 6 Sep 2015 21:29:05 +0000 (23:29 +0200)]
emacs: wrap current search in parens when filtering
When filtering the current search further with notmuch-search-filter,
wrap the current search in parens (if necessary).
This fixes unexpected behavior when the current search is
complex (like "(tag:this and date:one_week_ago..) or tag:that").
David Bremner [Sun, 7 Jun 2015 15:02:00 +0000 (17:02 +0200)]
lib: constify argument to notmuch_database_status_string
We don't modify the database struct, so no harm in committing to that.
David Bremner [Sun, 7 Jun 2015 15:01:59 +0000 (17:01 +0200)]
test: move backup_database and restore_database to library
The plan is to re-use them in testing the same errors from the CLI
David Bremner [Sun, 7 Jun 2015 15:01:58 +0000 (17:01 +0200)]
lib: note remaining uses of deprecated message search API
The two remaining cases in the lib seem to require more than a simple
replacement of the old call, with the new call plus a check of the
return value.
David Bremner [Sun, 7 Jun 2015 15:01:57 +0000 (17:01 +0200)]
lib: remove use of notmuch_query_search_messages from query.cc
There is not too much point in worrying about the bad error reporting
here, because the count api is due for the same deprecation.
David Bremner [Sun, 16 Aug 2015 15:33:21 +0000 (17:33 +0200)]
cli/lib: remove support for GMime 2.4
It's becoming a maintenance burden to do anything things with the
crypto glue code twice, once for 2.4 and once for 2.6. I don't have
any 2.4 version available to test on my development machine anymore,
so the 2.4 specific code paths are likely not very well tested.
Austin Clements [Mon, 13 Oct 2014 06:20:03 +0000 (02:20 -0400)]
lib: Add "lastmod:" queries for filtering by last modification
The implementation is essentially the same as the date range search
prior to Jani's fancy date parser.
David Bremner [Sun, 5 Apr 2015 22:39:55 +0000 (07:39 +0900)]
cli: add global option "--uuid"
The function notmuch_exit_if_unmatched_db_uuid is split from
notmuch_process_shared_options because it needs an open notmuch
database.
There are two exceptional cases in uuid handling.
1) notmuch config and notmuch setup don't currently open the database,
so it doesn't make sense to check the UUID.
2) notmuch compact opens the database inside the library, so we either
need to open the database just to check uuid, or change the API.
David Bremner [Fri, 5 Jun 2015 06:16:17 +0000 (08:16 +0200)]
cli/count: add --lastmod
In the short term we need a way to get lastmod information e.g. for
the test suite. In the long term we probably want to add lastmod
information to at least the structured output for several other
clients (e.g. show, search).
Austin Clements [Mon, 13 Oct 2014 06:20:02 +0000 (02:20 -0400)]
lib: API to retrieve database revision and UUID
This exposes the committed database revision to library users along
with a UUID that can be used to detect when revision numbers are no
longer comparable (e.g., because the database has been replaced).
Austin Clements [Mon, 13 Oct 2014 06:20:01 +0000 (02:20 -0400)]
lib: Add per-message last modification tracking
This adds a new document value that stores the revision of the last
modification to message metadata, where the revision number increases
monotonically with each database commit.
An alternative would be to store the wall-clock time of the last
modification of each message. In principle this is simpler and has
the advantage that any process can determine the current timestamp
without support from libnotmuch. However, even assuming a computer's
clock never goes backward and ignoring clock skew in networked
environments, this has a fatal flaw. Xapian uses (optimistic)
snapshot isolation, which means reads can be concurrent with writes.
Given this, consider the following time line with a write and two read
transactions:
write |-X-A--------------|
read 1 |---B---|
read 2 |---|
The write transaction modifies message X and records the wall-clock
time of the modification at A. The writer hangs around for a while
and later commits its change. Read 1 is concurrent with the write, so
it doesn't see the change to X. It does some query and records the
wall-clock time of its results at B. Transaction read 2 later starts
after the write commits and queries for changes since wall-clock time
B (say the reads are performing an incremental backup). Even though
read 1 could not see the change to X, read 2 is told (correctly) that
X has not changed since B, the time of the last read. In fact, X
changed before wall-clock time A, but the change was not visible until
*after* wall-clock time B, so read 2 misses the change to X.
This is tricky to solve in full-blown snapshot isolation, but because
Xapian serializes writes, we can use a simple, monotonically
increasing database revision number. Furthermore, maintaining this
revision number requires no more IO than a wall-clock time solution
because Xapian already maintains statistics on the upper (and lower)
bound of each value stream.
Jani Nikula [Mon, 10 Aug 2015 12:39:16 +0000 (15:39 +0300)]
configure: clean up messages around reading libnotmuch version
Clean up punctuation for consistency, and add newline for clean
configure output.
David Bremner [Sun, 9 Aug 2015 14:25:41 +0000 (16:25 +0200)]
build: extract library versions from notmuch.h
- Make lib/notmuch.h the canonical location for the library versioning
information.
- Since the release-check should never fail now, remove it to reduce
complexity.
- Make the version numbers in notmuch.h consistent with the (now
deleted) ones in lib/Makefile.local
Tomi Ollila [Thu, 6 Aug 2015 09:13:36 +0000 (12:13 +0300)]
test: make script exit (1) if it "fails" to source (.) a file
The files (test) scripts source (with builtin command `.`) provides
information which the scripts depend, and without the `source` to
succeed allowing script to continue may lead to dangerous situations
(e.g. rm -rf "${undefined_variable}"/*).
At the end of all source (.) lines construct ' || exit 1' was added;
In our case the script script will exit if it cannot find (or read) the
file to be sourced. Additionally script would also exits if the last
command of the sourced file exited nonzero.
Tomi Ollila [Wed, 5 Aug 2015 20:05:02 +0000 (23:05 +0300)]
NEWS: emacs: notmuch-{cli,emacs}-version usage
News for notmuch-emacs-version usage in User-Agent header and
rename of function notmuch-version to notmuch-cli-version.
While at it, made some minor (consistency) punctuation changes
to make news to wiki conversion work as expected.
David Bremner [Fri, 7 Aug 2015 19:33:57 +0000 (21:33 +0200)]
emacs/notmuch-mua.el: whitespace cleanup
M-x whitespace-cleanup in Emacs.
David Bremner [Sat, 1 Aug 2015 09:44:56 +0000 (11:44 +0200)]
emacs: make modifications to message Fcc vars buffer-local
Previously we globally modified these variables, which tended to cause
problems for people using message-mode, but not notmuch-mua-mail, to
send mail.
User visible changes:
- Calling notmuch-fcc-header-setup is no longer optional. OTOH, it
seems to do the right thing if notmuch-fcc-dirs is set to nil.
- The Fcc header is visible during message composition
- The name in the mode line is changed, and no longer matches exactly
the menu label.
- Previously notmuch-mua-send-and-exit was never called. Either we
misunderstood define-mail-user-agent, or it had a bug. So there was
no difference if the user called message-send-and-exit directly. Now
there will be.
- User bindings to C-c C-c and C-c C-s in message-mode-map are
overridden. The user can override them in notmuch-message-mode-map,
but then they're on their own for Fcc handling.
David Bremner [Sat, 1 Aug 2015 09:44:55 +0000 (11:44 +0200)]
emacs: define a notmuch-compose-mode based on message mode.
This is to provide a clean way of overriding e.g. keybindings when
sending mail from notmuch.
This is needed in particular to allow somewhere to dynamically bind
certain message-mode variables which are not respected when buffer-local. See e.g.
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21174
David Bremner [Tue, 4 Aug 2015 06:48:34 +0000 (08:48 +0200)]
test: add debugging output to notmuch-new tests, mark 5 as broken
I marked the tests where I really couldn't understand the output as
broken. It could also be that I don't understand how directory removal
is supposed to work.
David Bremner [Tue, 4 Aug 2015 06:48:33 +0000 (08:48 +0200)]
cli/new: add more debugging output
Try to narrow down what part of the code adds files and directories to
the queue(s) to be deleted.
Update one test. The output is slightly confusing, but I believe it is
correct, resulting from a directory being discovered but containing only ignored files.
David Bremner [Tue, 4 Aug 2015 06:48:32 +0000 (08:48 +0200)]
test: don't claim single message mbox support is going away
We gave up on this.
Tomi Ollila [Sun, 2 Aug 2015 14:48:14 +0000 (17:48 +0300)]
emacs: prefer notmuch-emacs-version in User-Agent: header
Now that we have `notmuch-emacs-version' defined in notmuch emacs MUA
use that as a part of User-Agent: header to provide more accurate
version information when sending emails.
In case some incomplete installation of notmuch emacs MUA is used and
`notmuch-emacs-version' is defined as "unknown" then fall back to ask
version info from cli (as it used to be before this commit).
Requiring notmuch-version[.elc] and if that is missing setting
"fallback" notmuch-emacs-version (to "unknown") was moved from
notmuch.el to notmuch-lib.el as notmuch-mua.el (which provides
User-Agent: information) require's the latter.
Tomi Ollila [Sun, 2 Aug 2015 14:48:13 +0000 (17:48 +0300)]
emacs: renamed function notmuch-version to notmuch-cli-version
As it asks `notmuch` binary for its version number.
Tomi Ollila [Sun, 2 Aug 2015 09:48:25 +0000 (12:48 +0300)]
devel/release-checks.sh: made python version check work with python 3
This trivial change consists of just putting print() argument in
parentheses.
David Bremner [Sun, 2 Aug 2015 06:40:55 +0000 (08:40 +0200)]
test: use the python interpreter in sh.config
The configure script chooses "python" if both python and python{2,3}
exist exists, so this could change the version of python used to run
the test suite.
The checking for ${NOTMUCH_PYTHON} in the test suite is arguably
over-engineering, since the configure step will fail if it can't find
it.
Mark Walters [Sat, 13 Jun 2015 08:08:09 +0000 (09:08 +0100)]
emacs: add a filter option to show
Show the current thread with a different filter (i.e., open messages
in the thread matching the new query).
Bound to 'l' for "limit".
Note that it is not the same as filter in search mode as it replaces
the existing query rather than ANDing with it (but it does keep the
thread-id part of the query).
Mark Walters [Sat, 13 Jun 2015 08:08:08 +0000 (09:08 +0100)]
emacs: split notmuch-show-apply-state
Separate out a notmuch-show-goto-msg-id sub-function from
notmuch-show-apply-state. There should be no functional change but the
next patch will call the new function.
David Bremner [Sun, 7 Jun 2015 15:01:56 +0000 (17:01 +0200)]
lib: add public accessor for database from query
This is to make it easier for clients of the library to update to the
new error code returning versions of notmuch_query_search_messages
David Bremner [Sun, 7 Jun 2015 15:01:55 +0000 (17:01 +0200)]
lib: deprecate notmuch_query_search_{threads, messages}
The CLI (and bindings) code should really be updated to use the new
status-code-returning versions. Here are some warnings to prod us (and
other clients) to do so.
David Bremner [Sun, 7 Jun 2015 15:01:54 +0000 (17:01 +0200)]
lib: define NOTMUCH_DEPRECATED macro, document its use.
This has been tested with gcc and clang.
Austin Clements [Fri, 5 Jun 2015 17:28:33 +0000 (19:28 +0200)]
lib: Only sync modified message documents
Previously, we updated the database copy of a message on every call to
_notmuch_message_sync, even if nothing had changed. In particular,
this always happens on a thaw, so a freeze/thaw pair with no
modifications between still caused a database update.
We only modify message documents in a handful of places, so keep track
of whether the document has been modified and only sync it when
necessary. This will be particularly important when we add message
revision tracking.
David Bremner [Thu, 30 Jul 2015 06:16:29 +0000 (08:16 +0200)]
configure: support --without-ruby
Apparently some ruby installs are broken in ways that prevent the ruby
bindings from building.
David Bremner [Thu, 30 Jul 2015 06:08:31 +0000 (08:08 +0200)]
configure: support --with-docs=no
Since we promise --with-foo=no is equivalent to --without-foo
David Bremner [Thu, 30 Jul 2015 06:00:55 +0000 (08:00 +0200)]
configure: alphabetize --without help
Now that the "without" options seem to be multiplying, try to make it
easier for people to find the one they want.
David Bremner [Thu, 30 Jul 2015 05:57:04 +0000 (07:57 +0200)]
configure: fix typo in comment
Some lazy person, probably me, forgot to press shift.
David Bremner [Mon, 15 Jun 2015 15:46:44 +0000 (17:46 +0200)]
cli: enable notmuch --help command
This functionality seems to have been undocumented, if it ever
existed. Document it now.
David Bremner [Tue, 28 Jul 2015 18:24:43 +0000 (20:24 +0200)]
doc: whitespace cleanup for notmuch.rst
replace leading spaces with tabs
David Bremner [Mon, 27 Jul 2015 18:42:32 +0000 (20:42 +0200)]
build: add "set -eu" to version script generation
It turns out that on certain systems like FreeBSD, c++filt is not
installed by default. It's basically OK if we fail the build in that
case, but what's really not OK is for the build to continue and
generate bad binaries.
David Bremner [Tue, 28 Jul 2015 13:29:38 +0000 (15:29 +0200)]
configure: whitespace cleanup
This is the result of running M-x whitespace-cleanup in emacs. In
particular this replaces some spaces at the beginning of lines with
tabs.
Mikhail [Mon, 27 Jul 2015 18:04:37 +0000 (21:04 +0300)]
configure: add --without-docs switch
Previously documentation was build automatically if sphinx/doxygen
executable were found. The switch is used to unconditionally disable
sphinx/doxygen detection and therefor, building of documentation
(including man pages).
David Bremner [Fri, 10 Jul 2015 16:13:28 +0000 (18:13 +0200)]
replace hardcoded "python" with configured python command
Thanks to FreeBSD port maintainer Mikhail for report and the original
the original patch.
This is the right thing (TM) and also apparently fixes the build on
FreeBSD.
Daniel Schoepe [Tue, 16 Jun 2015 21:47:20 +0000 (23:47 +0200)]
Fix documentation for notmuch--tag-hook functions
The second argument to notmuch-tag is now called tag-changes, but the
documentation for notmuch-before-tag-hook and notmuch-after-tag-hook
still used the old argument name `tags'. This resulted in broken hooks
when following the documentation.
David Bremner [Sat, 27 Jun 2015 13:29:52 +0000 (15:29 +0200)]
Merge tag '0.20.2'
notmuch 0.20.2 release
Conflicts:
NEWS
David Bremner [Sat, 27 Jun 2015 13:05:31 +0000 (15:05 +0200)]
version: update to 0.20.2
As usual, bump python version at same time.
David Bremner [Sat, 27 Jun 2015 13:04:16 +0000 (15:04 +0200)]
debian: update changelog for 20.2-1
Actual changes are documented in the bug.
David Bremner [Sat, 27 Jun 2015 12:47:38 +0000 (14:47 +0200)]
NEWS for 0.20.2
Just the one bug fix
Mark Walters [Tue, 9 Jun 2015 09:51:07 +0000 (10:51 +0100)]
emacs: tree: mark read change
The mark read code for tree mode did not get updated in the recent
changes. This updates it to match. Since the user can customize the
mark read logic we just call the show logic in the message pane.
David Bremner [Mon, 1 Jun 2015 07:09:02 +0000 (09:09 +0200)]
test: add initial ruby tests
This is pretty much a line by line translation of the existing python
tests, with two new tests for the count API.
David Bremner [Mon, 1 Jun 2015 07:09:01 +0000 (09:09 +0200)]
build/ruby: use notmuch configure script values for shared lib
This is supposed to help build on systems like MacOS with different
conventions for naming shared libraries. We have already computed the
relevant names, so doing it again in ruby seems like a bad idea.
David Bremner [Mon, 1 Jun 2015 07:09:00 +0000 (09:09 +0200)]
lib, ruby: make use of -Wl,--no-undefined configurable
In particular this is supposed to help build on systems (presumably
using a non-gnu ld) where this flag is not available.
Mark Walters [Fri, 12 Jun 2015 08:15:32 +0000 (09:15 +0100)]
emacs search: stash query
Add keybinding c q to stash the current query in search mode.
David Bremner [Mon, 1 Jun 2015 07:08:59 +0000 (09:08 +0200)]
build: integrate building ruby bindings into notmuch build process
Because ruby generates a Makefile, we have to use recursive make.
Because mkmf.rb hardcodes the name Makefile, put our Makefile{.local}
in the parent directory.
David Bremner [Mon, 8 Jun 2015 06:02:22 +0000 (08:02 +0200)]
lib: reject relative paths in n_d_{create,open}_verbose
There are many places in the notmuch code where the path is assumed to be absolute. If someone (TM) wants a project, one could remove these assumptions. In the mean time, prevent users from shooting themselves in the foot.
Update test suite mark tests for this error as no longer broken, and
also convert some tests that used relative paths for nonexistent
directories.
David Bremner [Wed, 10 Jun 2015 05:58:44 +0000 (07:58 +0200)]
lib: add NOTMUCH_STATUS_PATH_ERROR
The difference with FILE_ERROR is that this is for things that are
wrong with the path before looking at the disk.
Add some 3 tests; two broken as a reminder to actually use this new
code.
Tomi Ollila [Tue, 2 Jun 2015 14:43:45 +0000 (17:43 +0300)]
release-checks: check that git working directory is clean
Before release check that there are no uncommitted changes and
that there are no files in working directory that possibly should
have been added to the repository.
Amended by db: remove --ignored, since that seems like too much
trouble.
David Bremner [Sat, 23 May 2015 20:28:47 +0000 (22:28 +0200)]
test: redirect man output to /dev/null
In the case the these tests fail, they generate a bunch of output;
this output is not very interesting because it is just the successful
output of a man page. It does however make it hard to see what tests are actually failing, even with NOTMUCH_TEST_QUIET
David Bremner [Sat, 23 May 2015 20:28:45 +0000 (22:28 +0200)]
configure: add ability to force python version via environment
This is makes it a bit easier to run our test suite under alternative
python versions.
David Bremner [Sat, 23 May 2015 20:28:44 +0000 (22:28 +0200)]
test: make python tests compatible with python3
Making the test suite actually run them with python3 is left for
future work.
David Bremner [Thu, 4 Jun 2015 05:32:42 +0000 (07:32 +0200)]
doc: add minimal note about shared options.
The example is a bit silly, but notmuch subcommand --help is actually
not equivalent to "notmuch --help subcommand".
David Bremner [Tue, 2 Jun 2015 04:37:59 +0000 (06:37 +0200)]
Merge branch 'release'
20.1 plus NEWS fixup
David Bremner [Tue, 2 Jun 2015 04:34:48 +0000 (06:34 +0200)]
NEWS: missing NEWS for 20.1
Embarrassingly, these were not included in the actual 20.1 release
David Bremner [Mon, 1 Jun 2015 20:00:11 +0000 (22:00 +0200)]
debian: change stanza for 0.20.1
David Bremner [Mon, 1 Jun 2015 19:47:35 +0000 (21:47 +0200)]
version: bump to 20.1
David Bremner [Sun, 5 Apr 2015 20:34:55 +0000 (05:34 +0900)]
cli: add standard option processing to config, help and setup
In particular this fixes a recently encountered bug where the
"--config" argument to "notmuch setup" is silently ignored, which the
unpleasant consequence of overwriting the users config file.
David Bremner [Sun, 5 Apr 2015 13:13:03 +0000 (22:13 +0900)]
cli: define shared options, use for --help and --version
Unfortunately it seems trickier to support --config globally
The non-trivial changes are in notmuch.c; most of the other changes
consists of blindly inserting two lines into every subcommand.
David Bremner [Sun, 5 Apr 2015 14:59:18 +0000 (23:59 +0900)]
cli: refactor notmuch_help_command
Create a new private entry point _help_for so that we can call help
without simulating a command line invokation to set up the arguments.
David Bremner [Sun, 5 Apr 2015 13:24:42 +0000 (22:24 +0900)]
cli: ignore config argument of notmuch_help_command
We call it with NULL at one point anyway, so it needs to work with
NULL. Since the only place we use talloc is right before exec, there
is no harm in always using NULL.
J. Lewis Muir [Wed, 27 May 2015 17:53:52 +0000 (12:53 -0500)]
cli: change "setup" to "set up" where used as a verb
The word "setup" is a noun, not a verb. Change occurrences of "setup"
where used as a verb to "set up".
Charles Celerier [Sat, 27 Dec 2014 09:18:27 +0000 (10:18 +0100)]
emacs: Added "is:<tag>" style completion to notmuch-read-query.
The notmuch-search-terms man page states that "tag:<tag>" is equivalent
to "is:<tag>". Completion for "is:<tag>" style searches is now supported
in the Emacs interface.
Amended by David Bremner: combine lexical-let and let into
lexical-let*
David Bremner [Sun, 31 May 2015 16:56:10 +0000 (18:56 +0200)]
test: remove redundant 'file' command from gdb scripts.
Quoting Debian bug 787341
It failed to build on arm64: the last ten tests in T070-insert
failed.
What's happening here is that GDB is segfaulting in response to
the
"file" command. GDB on arm64 can be a bit buggy.
However, the "file" command is redundant here as GDB has already
got
the file from the --args on the command line.
David Bremner [Sun, 31 May 2015 10:06:40 +0000 (12:06 +0200)]
Merge tag '0.20'
notmuch 0.20 release
David Bremner [Sun, 31 May 2015 09:26:41 +0000 (11:26 +0200)]
NEWS: bump date
David Bremner [Sun, 31 May 2015 09:22:34 +0000 (11:22 +0200)]
debian: changelog stanza for 0.20-1
David Bremner [Sun, 31 May 2015 09:13:56 +0000 (11:13 +0200)]
version: bump to 0.20
David Bremner [Sun, 31 May 2015 09:12:13 +0000 (11:12 +0200)]
drop mention of notmuch-emacs-mua
David Bremner [Sat, 23 May 2015 19:27:41 +0000 (21:27 +0200)]
Merge tag '0.20_rc2'
notmuch 0.20~rc2 release
David Bremner [Sat, 23 May 2015 19:05:25 +0000 (21:05 +0200)]
debian: changelog stanza for 0.20~rc2-1
David Bremner [Sat, 23 May 2015 19:03:30 +0000 (21:03 +0200)]
version: bump to 0.20~rc2
David Bremner [Sat, 9 May 2015 06:13:50 +0000 (08:13 +0200)]
python: use absolute import for SOVERSION
Apparently python3 needs this.
David Bremner [Fri, 1 May 2015 14:54:57 +0000 (23:54 +0900)]
docs: initial draft of NEWS for 0.20
This is meant as much to jog people's memory as to be definitive.
David Bremner [Tue, 19 May 2015 20:48:24 +0000 (22:48 +0200)]
configure: Add sanity checking for environment variables
Passing in environment variables incompatible with the compiler may
cause other parts of the configure script to fail in hard to
understand ways, so we abort early.
David Bremner [Mon, 4 May 2015 08:47:22 +0000 (10:47 +0200)]
Merge tag '0.20_rc1'
notmuch 0.20~rc1 release
David Bremner [Mon, 4 May 2015 08:18:43 +0000 (10:18 +0200)]
debian: add new symbols to libnotmuch4.symbols
Since we only add new symbols, no SONAME bump is needed.
David Bremner [Mon, 4 May 2015 07:43:52 +0000 (09:43 +0200)]
debian: call upstream configure script directly
dh defaults for dh_auto_configure are now incompatible with notmuch's
homebrew configure script (at least in debian experimental)
David Bremner [Mon, 4 May 2015 06:09:43 +0000 (08:09 +0200)]
version: bump to 0.20~rc1
David Bremner [Mon, 4 May 2015 06:08:43 +0000 (08:08 +0200)]
debian: changelog stanza for 0.20~rc1
Jack Peirce [Fri, 1 May 2015 08:32:05 +0000 (10:32 +0200)]
notmuch-mutt: fix xargs/ln usage for OpenBSD compatibility
- xargs: use -r flag instead of --no-run-if-empty
- ln: use -I flag/3rd form of ln command instead of -t flag/4th form
Signed-off-by: Stefano Zacchiroli <zack@upsilon.cc>
David Bremner [Tue, 7 Apr 2015 12:10:15 +0000 (21:10 +0900)]
test: move nonexistent directory to something under notmuch's control.
Apparently some systems actually have a directory called /nonexist[ae]nt.
It's hard to fathom a good reason for that, but oh well. As long as we
don't create such a directory inside the notmuch source tree, the new
version should be more robust.
David Bremner [Wed, 8 Apr 2015 14:31:43 +0000 (23:31 +0900)]
test: be consistent about spelling `nonexistent'
Apparently most of the misspellings are my fault.
Mark Walters [Sat, 28 Mar 2015 11:08:59 +0000 (11:08 +0000)]
emacs: show: hide large text attachments by default
notmuch-show can be slow displaying large attachments so hide them by
default. The default maximum size is 10000 bytes/characters but it is
customizable.
Note that notmuch-show-insert-bodypart is also called from the reply
code so we need to be a little careful.
Tomi Ollila [Sun, 29 Mar 2015 15:30:36 +0000 (18:30 +0300)]
test/thread-order: more robust loop exit in case of broken input
When creating $THREADS data it may end of not having 'None' at all
or the numbers in line output yields a loop.
To avoid loop the value in current array index is set to 'None'
so that if the same item is reached again the loop will end.
Also empty string as next array index will end the loop.
Tomi Ollila [Sun, 29 Mar 2015 16:37:34 +0000 (19:37 +0300)]
notmuch-emacs-mua: non-forking escape () usage with backslash '\' escape
Use the printf -v convention to give output variable as argument
to escape () function so no subshell needs to be executed for
escaping input. The '-v' option to escape () is just syntactic
sugar for better understanding.
Also, backslash is now escaped with another backslash for emacs. This
ie especially important at the end of string.
`echo` is no longer used to write escaped output -- it might interpret
the escapes itself.
W. Trevor King [Sun, 22 Mar 2015 22:51:41 +0000 (15:51 -0700)]
nmbug-status: Use 'show-ref --heads' for loading configs
When loading configs from Git, the bare branch name (without a
refs/heads/ prefix or similar) matches all branches of that name
(including remote-tracking branches):
.nmbug $ git show-ref config
48f3bbf1d1492e5f3d2f01de6ea79a30d3840f20 refs/heads/config
48f3bbf1d1492e5f3d2f01de6ea79a30d3840f20 refs/remotes/origin/config
4b6dbd9ffd152e7476f5101eff26747f34497cee refs/remotes/wking/config
Instead of relying on the ordering of the matching references, use
--heads to ensure we only match local branches.
W. Trevor King [Sat, 28 Mar 2015 15:46:40 +0000 (08:46 -0700)]
NEWS: fix 'not' -> 'now' typo in 0.19 nmbug section
David Bremner [Sun, 29 Mar 2015 07:39:46 +0000 (09:39 +0200)]
test: make one error output test more robust.
Since notmuch_database_status_string can return NULL, passing it
directly to fputs is not a good idea.
David Bremner [Sat, 28 Mar 2015 23:24:38 +0000 (00:24 +0100)]
test: add more error reporting tests
This second half of the error reporting tests actually uses the function
notmuch_database_status_string to retrieve the last logged error
David Bremner [Fri, 26 Dec 2014 17:34:49 +0000 (18:34 +0100)]
lib: eliminate fprintf from _notmuch_message_file_open
You may wonder why _notmuch_message_file_open_ctx has two parameters.
This is because we need sometime to use a ctx which is a
notmuch_message_t. While we could get the database from this, there is
no easy way in C to tell type we are getting.
David Bremner [Fri, 26 Dec 2014 16:25:35 +0000 (17:25 +0100)]
lib: replace almost all fprintfs in library with _n_d_log
This is not supposed to change any functionality from an end user
point of view. Note that it will eliminate some output to stderr. The
query debugging output is left as is; it doesn't really fit with the
current primitive logging model. The remaining "bad" fprintf will need
an internal API change.
David Bremner [Fri, 26 Dec 2014 16:16:12 +0000 (17:16 +0100)]
lib: add private function to extract the database for a message.
This is needed by logging in functions outside message.cc that take
only a notmuch_message_t object.