9 years agobump version to 0.13~rc1 0.13_rc1 debian/0.13_rc1-1
David Bremner [Tue, 8 May 2012 17:49:08 +0000 (14:49 -0300)]
bump version to 0.13~rc1

9 years agoruby: Add wrapper for notmuch_query_set_omit_excluded()
Ali Polatel [Mon, 7 May 2012 15:02:46 +0000 (18:02 +0300)]
ruby: Add wrapper for notmuch_query_set_omit_excluded()

9 years agoruby: Add workarounds to use in-tree build not the installed one
Ali Polatel [Mon, 7 May 2012 15:02:45 +0000 (18:02 +0300)]
ruby: Add workarounds to use in-tree build not the installed one

- Make mkmf use the notmuch.h under ../../lib
- Use libnotmuch.a instead of linking to the installed

9 years agoruby: Add wrapper for notmuch_query_add_tag_exclude
Ali Polatel [Mon, 7 May 2012 15:02:44 +0000 (18:02 +0300)]
ruby: Add wrapper for notmuch_query_add_tag_exclude

9 years agoruby: Add wrapper for notmuch_query_count_messages
Ali Polatel [Mon, 7 May 2012 15:02:43 +0000 (18:02 +0300)]
ruby: Add wrapper for notmuch_query_count_messages

9 years agoemacs: fix custom queries section customization widget in notmuch-hello
Dmitry Kurochkin [Sat, 5 May 2012 14:39:47 +0000 (18:39 +0400)]
emacs: fix custom queries section customization widget in notmuch-hello

The customization widget referred to a non-existing function
`notmuch-hello-insert-query-list'.  The patch changes it to the
correct one - `notmuch-hello-insert-searches'.  The relevant test is
fixed now.

9 years agotest: add Emacs notmuch-hello tests for custom tags and queries section.
Dmitry Kurochkin [Sat, 5 May 2012 14:39:46 +0000 (18:39 +0400)]
test: add Emacs notmuch-hello tests for custom tags and queries section.

The tests use default values from customization widgets to make sure
that these customization widgets work (at least on basic level).

The custom queries section test is currently broken.

9 years agotest: Force reply to use html2text for consistency
Adam Wolfe Gordon [Sun, 6 May 2012 14:56:15 +0000 (08:56 -0600)]
test: Force reply to use html2text for consistency

The output of the HTML reply test in the emacs suite can vary
depending on which HTML renderers are installed on the machine running
the tests. The renderer that is always available is emacs's builtin
html2text function. In order to get consistency, force the test to use
html2text even if other renderers are available.

9 years agoemacs: Do not pass stderr of notmuch reply to JSON parser
Michal Sojka [Tue, 1 May 2012 21:10:47 +0000 (23:10 +0200)]
emacs: Do not pass stderr of notmuch reply to JSON parser

Sometimes, notmuch reply outputs something to stderr, for example:
"Failed to verify signed part: Cannot verify multipart/signed part:
unsupported signature protocol". When this happens, replying in emacs
fails, because emacs cannot parse the error message as JSON.

This patch causes emacs to ignore stderr when reading reply from

9 years agoemacs: Let the user choose where to compose new mails
Thomas Jost [Fri, 4 May 2012 10:37:56 +0000 (12:37 +0200)]
emacs: Let the user choose where to compose new mails

Introduce a new defcustom notmuch-mua-compose-in that allows users to
specify where new mails are composed, either in the current window or
in a new window or frame.

Signed-off-by: Jameson Rollins <>
9 years agoemacs: Correctly quote non-text/plain parts in reply
Adam Wolfe Gordon [Sat, 5 May 2012 19:30:37 +0000 (13:30 -0600)]
emacs: Correctly quote non-text/plain parts in reply

Quote non-text parts nicely by displaying them with mm-display-part
before calling message-cite-original to quote them. HTML-only emails
can now be quoted correctly. We re-use some code from notmuch-show
(notmuch-show-mm-display-part-inline), which has been moved to

Mark the test for this feature as not broken.

9 years agotest: Replying to an HTML-only message in emacs
Adam Wolfe Gordon [Sat, 5 May 2012 19:24:28 +0000 (13:24 -0600)]
test: Replying to an HTML-only message in emacs

With the latest reply infrastructure, we should be able to nicely
quote HTML-only emails. But currently emacs quotes the raw HTML
instead of parsing it first. This commit adds a test for this case.

This test currently marked as broken.

9 years agodebian: add notmuch_query_set_omit_excluded to symbols file.
David Bremner [Sat, 5 May 2012 13:53:12 +0000 (10:53 -0300)]
debian: add notmuch_query_set_omit_excluded to symbols file.

This symbol is apparently part of the exclude code that was disabled
for 0.12.

9 years agodebian: update packaging for new soname
David Bremner [Tue, 4 Oct 2011 17:01:21 +0000 (14:01 -0300)]
debian: update packaging for new soname

we need
   - a new changelog stanza, because the symbols files need a new version
   - s/libnotmuch2/libnotmuch3/ everywhere
   - update symbols file, s/.so.1/.so.2/, and bump minimum versions on changed
     symbols (although the latter is just documentation)

9 years agodebian: start changelog stanza for 0.13~rc1-1
David Bremner [Sat, 5 May 2012 13:27:27 +0000 (10:27 -0300)]
debian: start changelog stanza for 0.13~rc1-1

This is mainly so that the soname bump in the debian symbols file
makes sense.

9 years agolib: Bump SO version from 2.0.0 to 3.0.0
Austin Clements [Sat, 28 Apr 2012 22:25:36 +0000 (18:25 -0400)]
lib: Bump SO version from 2.0.0 to 3.0.0

We've changed the APIs of notmuch_database_open,
notmuch_database_create, and notmuch_database_close.

Amended by db: also bump string in bindings/python/notmuch/

9 years agoNews for changes to notmuch_database_{open,create}
Austin Clements [Mon, 30 Apr 2012 16:25:38 +0000 (12:25 -0400)]
News for changes to notmuch_database_{open,create}

9 years agoruby: Update Ruby bindings for new notmuch_database_{open, create} signatures
Austin Clements [Mon, 30 Apr 2012 16:25:37 +0000 (12:25 -0400)]
ruby: Update Ruby bindings for new notmuch_database_{open, create} signatures

9 years agopython: Update Python bindings for new notmuch_database_{open, create} signatures
Austin Clements [Mon, 30 Apr 2012 16:25:36 +0000 (12:25 -0400)]
python: Update Python bindings for new notmuch_database_{open, create} signatures

9 years agogo: Update Go bindings for new notmuch_database_{open, create} signatures
Austin Clements [Mon, 30 Apr 2012 16:25:35 +0000 (12:25 -0400)]
go: Update Go bindings for new notmuch_database_{open, create} signatures

This requires changing the return types of NewDatabase and
OpenDatabase to follow the standard Go convention for returning

9 years agolib/cli: Make notmuch_database_create return a status code
Austin Clements [Mon, 30 Apr 2012 16:25:34 +0000 (12:25 -0400)]
lib/cli: Make notmuch_database_create return a status code

This is the notmuch_database_create equivalent of the previous change.

In this case, there were places where errors were not being propagated
correctly in notmuch_database_create or in calls to it.  These have
been fixed, using the new status value.

9 years agolib/cli: Make notmuch_database_open return a status code
Austin Clements [Mon, 30 Apr 2012 16:25:33 +0000 (12:25 -0400)]
lib/cli: Make notmuch_database_open return a status code

It has been a long-standing issue that notmuch_database_open doesn't
return any indication of why it failed.  This patch changes its
prototype to return a notmuch_status_t and set an out-argument to the
database itself, like other functions that return both a status and an

In the interest of atomicity, this also updates every use in the CLI
so that notmuch still compiles.  Since this patch does not update the
bindings, the Python bindings test fails.

9 years agoNEWS: Insert markdown formatting commands
Tomi Ollila [Thu, 26 Apr 2012 19:52:31 +0000 (22:52 +0300)]
NEWS: Insert markdown formatting commands

To make updating the wiki 'news' section more
straightforward the content of the NEWS file has now been brought
to almost the same as the *.mdwn files in the wiki page.

The changes are basically insertion of mdwn formatting "commands".

More effort has been put into formatting the newer release entries
(0.12, 0.11 & 0.10) than older. Commit to format 0.13 entries will
be made available separately.

9 years agoNEWS: spacing changes
Tomi Ollila [Thu, 26 Apr 2012 19:52:30 +0000 (22:52 +0300)]
NEWS: spacing changes

With these whitespace changes the spacing looks generally
the same throughout the whole file.

9 years agoNEWS: untabified and added file local variables block
Tomi Ollila [Thu, 26 Apr 2012 19:52:29 +0000 (22:52 +0300)]
NEWS: untabified and added file local variables block

Changed all tabs to 8 spaces (M-x untabify over region of the
whole file).

Now this looks uniformly on all viewers (using fixed-width font)
and the observed difference between this "source" file and markdown
generated html output on browser window is smaller. In markdown to
html conversions tab and 8 spaces indents differently.

Also the "Local variables:" block added to the end of this file
attempts to ensure tabs are always expanded; whether the used editor
is Emacs or Vi.

9 years agogo: Update to the current notmuch_database_find_message API
Austin Clements [Sat, 28 Apr 2012 21:45:18 +0000 (17:45 -0400)]
go: Update to the current notmuch_database_find_message API

The signature of notmuch_database_find_message was changed in 02a30767
to report errors and the Go bindings were never updated.  This brings
the Go bindings in sync with that change and at least makes them
compile with Go r60.3, the last release before Go 1.

9 years agopython: remove a note stating wrong things about the memory management
Justus Winter [Mon, 30 Apr 2012 17:51:16 +0000 (19:51 +0200)]
python: remove a note stating wrong things about the memory management

Signed-off-by: Justus Winter <>
9 years agopython: document the Database.close function
Justus Winter [Mon, 30 Apr 2012 17:48:45 +0000 (19:48 +0200)]
python: document the Database.close function

Put a prominent warning into the docstring of Database.close, make the
function show up in the sphinx doc and refer to the warning in the
paragraph mentioning the context manager protocol.

Signed-off-by: Justus Winter <>
9 years agopython: deprecate code formatting messages as text and json
Justus Winter [Mon, 30 Apr 2012 16:48:29 +0000 (18:48 +0200)]
python: deprecate code formatting messages as text and json

This code adds functionality at the python level that is unlikely to
be useful for anyone. Furthermore the python bindings strive to be a
thin wrapper around libnotmuch, so this code will be removed in
notmuch 0.14.

Signed-off-by: Justus Winter <>
9 years agopython: cleanup the __nonzero__ implementations
Justus Winter [Mon, 30 Apr 2012 17:12:36 +0000 (19:12 +0200)]
python: cleanup the __nonzero__ implementations

Cleanup the code, reword the docstring and use the same implementation
in the Threads, Tags and Messages classes.

__nonzero__ implements truth value testing. If __nonzero__ is not
implemented, the python runtime would fall back to `len(..) > 0` thus
exhausting the iterator.

Signed-off-by: Justus Winter <>
9 years agopython: fix NULL pointer tests
Justus Winter [Mon, 30 Apr 2012 16:52:35 +0000 (18:52 +0200)]
python: fix NULL pointer tests

Fix the NULL pointer tests in the destructors of all classes and

Signed-off-by: Justus Winter <>
9 years agopython: update the docstrings of Filenames.{__len__,__unicode}
Justus Winter [Mon, 30 Apr 2012 16:43:02 +0000 (18:43 +0200)]
python: update the docstrings of Filenames.{__len__,__unicode}

Formerly the documentation was overly verbose. Reword the comment and
use the same for both functions.

Signed-off-by: Justus Winter <>
9 years agopython: update the docstring of class Filenames
Justus Winter [Mon, 30 Apr 2012 16:39:06 +0000 (18:39 +0200)]
python: update the docstring of class Filenames

Signed-off-by: Justus Winter <>
9 years agopython: fix the documentation
Justus Winter [Mon, 30 Apr 2012 16:32:32 +0000 (18:32 +0200)]
python: fix the documentation

Remove the reference to Filenames.as_generator in the sphinx

Signed-off-by: Justus Winter <>
9 years agopython: fix Message.get_filenames
Justus Winter [Mon, 30 Apr 2012 16:27:15 +0000 (18:27 +0200)]
python: fix Message.get_filenames

Do not to use the removed function Filenames.as_iterator.

Signed-off-by: Justus Winter <>
9 years agopython: remove the deprecated function Filenames.as_generator
Justus Winter [Mon, 30 Apr 2012 16:13:31 +0000 (18:13 +0200)]
python: remove the deprecated function Filenames.as_generator

Remove the function Filenames.as_generator that has been marked as
deprecated in 0.12.

The class Filenames implements the iterator protocol so you can
directly iterate over such objects instead.

Signed-off-by: Justus Winter <>
9 years agoemacs: eliminate search-tag-thread in favor of just search-tag
Jameson Graef Rollins [Sat, 14 Apr 2012 18:52:54 +0000 (11:52 -0700)]
emacs: eliminate search-tag-thread in favor of just search-tag

notmuch-search-tag-thread is now completely redundant with
notmuch-search-tag so we eliminate it to simplify the interface.

9 years agoemacs: modify show tag functions to use new notmuch-tag interface
Jameson Graef Rollins [Sat, 14 Apr 2012 18:52:53 +0000 (11:52 -0700)]
emacs: modify show tag functions to use new notmuch-tag interface

The main change here is to modify argument parsing so as to not force
tag-changes to be a list, and to let notmuch-tag handle prompting the
user when required.  doc strings are also updated and cleaned up.

9 years agoemacs: modify search tag functions to use new notmuch-tag interface
Jameson Graef Rollins [Sat, 14 Apr 2012 18:52:52 +0000 (11:52 -0700)]
emacs: modify search tag functions to use new notmuch-tag interface

The main change here is to modify argument parsing so as to not force
tag-changes to be a list, and to let notmuch-tag handle prompting the
user when required.  doc strings are also updated and cleaned up.

9 years agoemacs: allow notmuch-tag to accept string inputs and prompt for tags
Jameson Graef Rollins [Sat, 14 Apr 2012 20:49:07 +0000 (13:49 -0700)]
emacs: allow notmuch-tag to accept string inputs and prompt for tags

notmuch-tag is extended to accept various formats of the tag changes.
In particular, user prompting for tag changes is now incorporated
here, so it is common for modes.

The tag binary and the notmuch-{before,after}-tag-hooks are only
called if tag changes is non-nil.

In all cases tag-changes is returned as a list.

9 years agoemacs: create notmuch-tag.el, and move appropriate functions from notmuch.el
Jameson Graef Rollins [Sat, 14 Apr 2012 18:52:50 +0000 (11:52 -0700)]
emacs: create notmuch-tag.el, and move appropriate functions from notmuch.el

Tagging functions are used in notmuch.el, notmuch-show.el, and
notmuch-message.el.  There are enough common functions for tagging
that it makes sense to put them all in their own library.

No code is modified, just moved around.

9 years agoemacs: fix archive thread/message function documentation.
Jameson Graef Rollins [Tue, 17 Jan 2012 18:43:16 +0000 (10:43 -0800)]
emacs: fix archive thread/message function documentation.

This removes an inaccuracy in the thread archiving function, and adds
a clarification to the message archiving function.

9 years agoemacs: Don't move to the next thread unless the cursor is at the end of the buffer.
David Edmondson [Tue, 31 Jan 2012 08:01:54 +0000 (08:01 +0000)]
emacs: Don't move to the next thread unless the cursor is at the end of the buffer.

When using the spacebar to scroll through a thread, hitting 'space'
when the bottom of the last message is visible should take the cursor
to the end of the buffer rather than immediately archiving the thread
and moving to the next thread.

9 years agoemacs-show: open excluded matches if no other matches
Mark Walters [Thu, 15 Mar 2012 18:28:10 +0000 (18:28 +0000)]
emacs-show: open excluded matches if no other matches

Currently emacs show does not open matching but excluded
messages. This is normally the desired behaviour but is probably not
ideal if only excluded messages match. This patch opens all the
matching (necessarily excluded) messages in this case and goes to the
first one.

9 years agoNEWS: add news item for 'config list'
Peter Wang [Sun, 29 Apr 2012 01:26:10 +0000 (11:26 +1000)]
NEWS: add news item for 'config list'

9 years agopython: strip superfluous single quote from copyright notices
Justus Winter [Sun, 29 Apr 2012 14:33:06 +0000 (16:33 +0200)]
python: strip superfluous single quote from copyright notices

Signed-off-by: Justus Winter <>
9 years agopython: add copyright and licensing information to
Justus Winter [Sun, 29 Apr 2012 14:30:38 +0000 (16:30 +0200)]
python: add copyright and licensing information to

Signed-off-by: Justus Winter <>
9 years agopython: stylistic and pep8 fixes in
Justus Winter [Sun, 29 Apr 2012 14:28:50 +0000 (16:28 +0200)]
python: stylistic and pep8 fixes in
Signed-off-by: Justus Winter <>
9 years agopython: update the long description in
Justus Winter [Sun, 29 Apr 2012 14:26:36 +0000 (16:26 +0200)]
python: update the long description in

Signed-off-by: Justus Winter <>
9 years agopython: fix the test asserting that reading the version succeeded
Justus Winter [Sun, 29 Apr 2012 14:21:32 +0000 (16:21 +0200)]
python: fix the test asserting that reading the version succeeded

Signed-off-by: Justus Winter <>
9 years agopython: simplify a path expression in
Justus Winter [Sun, 29 Apr 2012 14:18:52 +0000 (16:18 +0200)]
python: simplify a path expression in

Signed-off-by: Justus Winter <>
9 years agopython: Remove unused import from
Justus Winter [Sun, 29 Apr 2012 14:15:41 +0000 (16:15 +0200)]
python: Remove unused import from

Signed-off-by: Justus Winter <>
9 years agoemacs: do not modify subject in search or show
Jameson Graef Rollins [Sun, 15 Apr 2012 02:17:52 +0000 (19:17 -0700)]
emacs: do not modify subject in search or show

A previous patch [0] replaced blank subject lines with '[No Subject]'
in search and show mode.  Apparently this was needed to circumvent
some bug in the printing code, but there was no need for it search or
show, and it is definitely not desirable, so we undo it here (a revert
is no longer feasible).  We should not be modifying strings in the
original message without good reason, or without a clear indication
that we are doing so, neither of which apply in this case.  For
further discussion see [0].

[0] id:""

9 years agoman: Document 'config list' command
Peter Wang [Sat, 14 Apr 2012 01:41:06 +0000 (11:41 +1000)]
man: Document 'config list' command

Document the 'config list' command and its output.

9 years agoconfig: Add 'config list' command
Peter Wang [Sat, 14 Apr 2012 01:41:05 +0000 (11:41 +1000)]
config: Add 'config list' command

Add a command to list all configuration items with their associated

One use is as follows: a MUA may prefer to store data in a central
notmuch configuration file so that the data is accessible across
different machines, e.g. an addressbook.  The list command helps
to implement features such as tab completion on the keys.

9 years agotest: Add broken test for 'config list'
Peter Wang [Sat, 14 Apr 2012 01:41:04 +0000 (11:41 +1000)]
test: Add broken test for 'config list'

Proposed functionality.

9 years agotest: Add tests for 'config' command
Peter Wang [Sat, 14 Apr 2012 01:41:03 +0000 (11:41 +1000)]
test: Add tests for 'config' command

Start a new test script.

9 years agoconfig: Check 'config get' arity exactly
Peter Wang [Sat, 14 Apr 2012 01:41:02 +0000 (11:41 +1000)]
config: Check 'config get' arity exactly

Require that 'config get' is passed exactly one additional argument,
instead of silently ignoring extra arguments. As a side-effect, produce
more specific error messages for the 'config' command as a whole.

9 years agopython: wrap and use notmuch_database_destroy as destructor
Justus Winter [Sun, 22 Apr 2012 12:07:57 +0000 (14:07 +0200)]
python: wrap and use notmuch_database_destroy as destructor

Adapt the python bindings to the notmuch_database_close split.

Signed-off-by: Justus Winter <>
9 years agoruby: Use notmuch_database_destroy instead of notmuch_database_close
Justus Winter [Sun, 22 Apr 2012 12:07:56 +0000 (14:07 +0200)]
ruby: Use notmuch_database_destroy instead of notmuch_database_close

Adapt the ruby bindings to the notmuch_database_close split.

Signed-off-by: Justus Winter <>
9 years agogo: Use notmuch_database_destroy instead of notmuch_database_close
Justus Winter [Sun, 22 Apr 2012 12:07:55 +0000 (14:07 +0200)]
go: Use notmuch_database_destroy instead of notmuch_database_close

Adapt the go bindings to the notmuch_database_close split.

Signed-off-by: Justus Winter <>
9 years agoUse notmuch_database_destroy instead of notmuch_database_close
Justus Winter [Sun, 22 Apr 2012 12:07:54 +0000 (14:07 +0200)]
Use notmuch_database_destroy instead of notmuch_database_close

Adapt notmuch-deliver to the notmuch_database_close split.

Signed-off-by: Justus Winter <>
9 years agoUse notmuch_database_destroy instead of notmuch_database_close
Justus Winter [Sun, 22 Apr 2012 12:07:53 +0000 (14:07 +0200)]
Use notmuch_database_destroy instead of notmuch_database_close

Adapt the notmuch binaries source to the notmuch_database_close split.

Signed-off-by: Justus Winter <>
9 years agoNEWS: Document the notmuch_database_close split
Justus Winter [Sun, 22 Apr 2012 12:07:52 +0000 (14:07 +0200)]
NEWS: Document the notmuch_database_close split

Signed-off-by: Justus Winter <>
9 years agoSplit notmuch_database_close into two functions
Justus Winter [Wed, 25 Apr 2012 13:20:16 +0000 (15:20 +0200)]
Split notmuch_database_close into two functions

Formerly notmuch_database_close closed the xapian database and
destroyed the talloc structure associated with the notmuch database
object. Split notmuch_database_close into notmuch_database_close and

This makes it possible for long running programs to close the xapian
database and thus release the lock associated with it without
destroying the data structures obtained from it.

This also makes the api more consistent since every other data
structure has a destructor function.

The comments in notmuch.h are a courtesy of Austin Clements.

Signed-off-by: Justus Winter <>
9 years agoemacs: Put notmuch-hello-sections in custom group notmuch-hello
Austin Clements [Mon, 16 Apr 2012 02:57:36 +0000 (22:57 -0400)]
emacs: Put notmuch-hello-sections in custom group notmuch-hello

9 years agonew: Fix missing end_atomic in remove_filename on error
Austin Clements [Sun, 22 Apr 2012 15:50:52 +0000 (11:50 -0400)]
new: Fix missing end_atomic in remove_filename on error

Previously, if we failed to find the message by filename in
remove_filename, we would return immediately from the function without
ending its atomic block.  Now this code follows the usual goto DONE
idiom to perform cleanup.

9 years agonew: Print final fatal error message to stderr
Austin Clements [Sun, 22 Apr 2012 15:50:51 +0000 (11:50 -0400)]
new: Print final fatal error message to stderr

This was going to stdout.  I removed the newline at the beginning of
printing the fatal error message because it wouldn't make sense if you
were only looking at the stderr stream (e.g., you had redirected
stdout to /dev/null).

9 years agonew: Handle fatal errors in remove_filename and _remove_directory
Austin Clements [Sun, 22 Apr 2012 15:50:50 +0000 (11:50 -0400)]
new: Handle fatal errors in remove_filename and _remove_directory

Previously such errors were simply ignored.  Now they cause an
immediate cleanup and abort.

9 years agonew: Consistently treat fatal errors as fatal
Austin Clements [Sun, 22 Apr 2012 15:50:49 +0000 (11:50 -0400)]
new: Consistently treat fatal errors as fatal

Previously, fatal errors in add_files_recursive were not treated as
fatal by its callers (including itself!).  This makes
add_files_recursive errors consistently fatal and updates all callers
to treat them as fatal.

9 years agoemacs: Put notmuch-print-mechanism in custom group notmuch-show
Austin Clements [Mon, 16 Apr 2012 02:57:45 +0000 (22:57 -0400)]
emacs: Put notmuch-print-mechanism in custom group notmuch-show

9 years agoconfig: Fix free in 'config get' implementation.
Peter Wang [Sat, 14 Apr 2012 01:41:01 +0000 (11:41 +1000)]
config: Fix free in 'config get' implementation.

The array returned by g_key_file_get_string_list() should be freed with
g_strfreev(), not free().

9 years agoemacs: modify help message for notmuch-search-line-faces to reflect preferred "delete...
Jameson Graef Rollins [Tue, 17 Jan 2012 19:02:47 +0000 (11:02 -0800)]
emacs: modify help message for notmuch-search-line-faces to reflect preferred "deleted" tag name.

No functional change here.  The help message previously referred to
the "delete" tag, but "deleted" is now preferred, so hopefully this
will reduce any potential confusion.

9 years agovim: simplify build
Felipe Contreras [Wed, 22 Feb 2012 16:57:56 +0000 (18:57 +0200)]
vim: simplify build

There should be no functional changes, except that you don't need to
make the directories before installing.

Signed-off-by: Felipe Contreras <>
9 years agovim: fix regex after "notmuch show" output change
Jakob [Thu, 29 Mar 2012 22:02:53 +0000 (15:02 -0700)]
vim: fix regex after "notmuch show" output change

The new field "excluded" was added to the output and made this regex fail.

Signed-off-by: Felipe Contreras <>
9 years agolib: work around talloc_steal usage from C++ code
Jani Nikula [Thu, 12 Apr 2012 20:57:39 +0000 (23:57 +0300)]
lib: work around talloc_steal usage from C++ code

Implicit typecast from 'void *' to 'T *' is okay in C, but not in
C++. In talloc_steal, an explicit cast is provided for type safety in
some GCC versions. Otherwise, a cast is required. Provide a template
function for this to maintain type safety, and redefine talloc_steal
to use it.

The template must be outside the extern "C" block (NOTMUCH_BEGIN_DECLS
and NOTMUCH_END_DECLS), but keep it within the GCC visibility #pragma.

No functional changes, apart from making the library build with
compilers other than recent GCC.

Signed-off-by: Jani Nikula <>
9 years agoRecord dependencies during build instead of before
Austin Clements [Wed, 11 Apr 2012 20:38:39 +0000 (16:38 -0400)]
Record dependencies during build instead of before

Previously, the makefile created dependency files in a separate, first
pass.  In particular, include-ing the dependency files would cause
make to attempt to rebuild those files using the dependency-generation
rules in the makefile.  Unfortunately, this approach required obtuse
rules and silently delayed the start of the build process (by quite a
bit on a clean tree without any dependency files).  Worse, this
required the dependency files to themselves depend on all of the
headers the source file depended on, which meant that, if a header
file was removed, the depedency file could not be updated because of a
missing dependency (!), which would cause make to silently fail.

This patch eliminates the dependency generation rules and instead
generates dependency files as a side-effect of the regular build rule.
On the first build, we don't need to know the dependencies beforehand;
the object file doesn't exist, so it will be built anyway.  On
subsequent builds, if a header file is updated, the dependency rules
generated by the previous build will force a rebuild.  If a source
file is updated, the dependency rules may be stale, but it doesn't
matter because the updated source file will force a rebuild.

In the final case above, the stale dependency rules may refer to a
header file that no longer exists but is also no longer needed.  In
order to prevent this from breaking the build, we also pass gcc the
-MP option, which generates phony targets for every depended-on header
file, so make won't complain if it can't find them during a later

9 years agoshow: Remove empty message_set_{start,sep,end} fields
Austin Clements [Sun, 8 Apr 2012 00:57:50 +0000 (20:57 -0400)]
show: Remove empty message_set_{start,sep,end} fields

Setting these to NULL is equivalent to the empty string now.

9 years agoshow: Support NULL values for message_set_{start, sep, end}
Austin Clements [Sun, 8 Apr 2012 00:57:49 +0000 (20:57 -0400)]
show: Support NULL values for message_set_{start, sep, end}

Many formats don't need these, so it's more convenient if they don't
have to set them at all.

9 years agoshow: Remove unused fields from notmuch_show_format
Austin Clements [Sun, 8 Apr 2012 00:57:48 +0000 (20:57 -0400)]
show: Remove unused fields from notmuch_show_format

These fields were only used by old-style formatters.

9 years agoRemove show-message.c
Austin Clements [Sun, 8 Apr 2012 00:57:47 +0000 (20:57 -0400)]
Remove show-message.c

There are no more calls to show_message_body.

9 years agoshow: Remove support for old-style formatters in show_message
Austin Clements [Sun, 8 Apr 2012 00:57:46 +0000 (20:57 -0400)]
show: Remove support for old-style formatters in show_message

show_message used to have a compatibility path for old-style
formatters.  This removes that.

9 years agoSync schemata with current code structure
Austin Clements [Sun, 8 Apr 2012 00:57:45 +0000 (20:57 -0400)]
Sync schemata with current code structure

The schema itself hasn't changed, but many of the references to
functions in notmuch-show.c were out of date.

9 years agoemacs: have tag-completion return all tags for nil input
Jameson Graef Rollins [Mon, 9 Apr 2012 18:36:18 +0000 (11:36 -0700)]
emacs: have tag-completion return all tags for nil input

Previously the function would fail if the initial input was nil.  Now
it will return a list of all tags, which obviously makes much more

9 years agoNews for raw format changes
Austin Clements [Sun, 8 Apr 2012 01:09:56 +0000 (21:09 -0400)]
News for raw format changes

9 years agodebian: add gnupg-agent to notmuch recommends
Jameson Graef Rollins [Wed, 11 Apr 2012 17:23:51 +0000 (10:23 -0700)]
debian: add gnupg-agent to notmuch recommends

gnupg-agent is required for message decryption, so this should help
stem some issues encountered by users trying to decrypt messages.

9 years agoemacs: include tags from excluded messages in tag tab completion
Jameson Graef Rollins [Mon, 9 Apr 2012 18:36:17 +0000 (11:36 -0700)]
emacs: include tags from excluded messages in tag tab completion

The new message exclude functionality will hide tags that only exist
on excluded messages.  However, one might very well want to manually
modify excluded tags.  This makes sure tags from excluded messages are
always available in tab completion.

9 years agoemacs: update call in tag-completion function
Jameson Graef Rollins [Mon, 9 Apr 2012 18:36:16 +0000 (11:36 -0700)]
emacs: update call in tag-completion function

"search-tags" is deprecated, so use the more modern and supported
"search --output=tags".

9 years agoemacs: get rid of trailing spaces in notmuch-hello view
Dmitry Kurochkin [Sat, 10 Mar 2012 03:54:15 +0000 (07:54 +0400)]
emacs: get rid of trailing spaces in notmuch-hello view

This patch removes trailing spaces in notmuch-hello view.

A side effect of this change is that tag/query buttons no longer
include a space at the end.  This means that pressing RET when the
point is at the first character after the tag/query button no longer
works (note that this is the standard behavior for buttons).  We may
change this behavior in the future (without adding trailing spaces
back) if people would find this change inconvenient.

9 years agoemacs: make show set --exclude=false
Mark Walters [Sat, 7 Apr 2012 16:10:08 +0000 (17:10 +0100)]
emacs: make show set --exclude=false

Show has to set --exclude=false to deal with cases where it is asked
to show a single excluded message. It uses JSON so it can easily pass
the exclude information to the user.

9 years agotest: add some exclude tests
Mark Walters [Sat, 7 Apr 2012 16:10:07 +0000 (17:10 +0100)]
test: add some exclude tests

Systematically test the exclude options for search. Also move the
search existing exclude tests into the new test. There is some overlap
between the two sets of tests but many of the existing ones are there
because they triggered bugs in the past so I have kept them to ensure

9 years agocli: move show to the new --exclude= option naming scheme.
Mark Walters [Sat, 7 Apr 2012 16:10:06 +0000 (17:10 +0100)]
cli: move show to the new --exclude= option naming scheme.

This moves notmuch show to the --exclude=(true|false) naming
scheme. When exclude=false show returns all threads that match
including those that only match in an excluded message. The excluded
messages are flagged.

When exclude=true the behaviour depends on whether --entire-thread is
set. If it is not set then show only returns the messages which match
and are not excluded. If it is set then show returns all messages in
the threads that match in a non-excluded message, flagging the excluded
messages in these threads. The rationale is that it is awkward to use
a thread with some missing messages.

9 years agocli: move search to the new --exclude= naming scheme.
Mark Walters [Sat, 7 Apr 2012 16:10:05 +0000 (17:10 +0100)]
cli: move search to the new --exclude= naming scheme.

This commit replaces the --no-exclude option with a
--exclude=(true|false|flag) option. The default is to omit the
excluded messages.

The flag option only makes sense if output=summary (as otherwise there
is nowhere to print the flag). In summary output exclude=false and
exclude=flag give almost identical output:
they differ in that with the exclude=flag option the match count
(i.e., the x in [x/n] in the output) is the number of matching
non-excluded messages rather than the number of matching messages.

Note this changes the default for output=summary when no --exclude=
option is given: it used to default to flag and now defaults to true
(i.e. omit excluded messages). This is neccesary to keep the cli
output uncluttered and for speed reasons.

9 years agocli: move count to the new --exclude=(true|false|flag) naming scheme.
Mark Walters [Sat, 7 Apr 2012 16:10:04 +0000 (17:10 +0100)]
cli: move count to the new --exclude=(true|false|flag) naming scheme.

Move the option --no-exclude to the --exclude= scheme. Since there is
no way to flag messages only true and false are implemented. Note
that, for consistency with other commands, this is implemented as a
keyword option rather than a boolean option.

9 years agolib: change default for notmuch_query_set_omit_excluded
Mark Walters [Sat, 7 Apr 2012 16:10:03 +0000 (17:10 +0100)]
lib: change default for notmuch_query_set_omit_excluded

9 years agoemacs: do not modify the alist passed to notmuch-sort-saved-searches
Jani Nikula [Sun, 1 Apr 2012 14:51:23 +0000 (17:51 +0300)]
emacs: do not modify the alist passed to notmuch-sort-saved-searches

Sort modifies its input as a side effect. Pass it a copy in
notmuch-sort-saved-searches to not modify the notmuch-saved-searches

9 years agoconfigure: change gmime version in help message to 2.6
David Bremner [Thu, 5 Apr 2012 11:01:32 +0000 (08:01 -0300)]
configure: change gmime version in help message to 2.6

Since GMime 2.6 is now the stable version upstream, and probably the
most tested by notmuch developers, it makes sense to suggest that to
users to install.

9 years agoconfigure: print info about required gmime 2.4 or 2.6 versions
Tomi Ollila [Wed, 21 Mar 2012 19:18:50 +0000 (21:18 +0200)]
configure: print info about required gmime 2.4 or 2.6 versions

In case required gmime (2.4 or 2.6) version if not found print information
about both alternatives (and currently minimal 2.6 version that is needed).

9 years agoconfigure: add empty line after each missing component message
Tomi Ollila [Tue, 20 Mar 2012 22:16:50 +0000 (00:16 +0200)]
configure: add empty line after each missing component message

Currently whenever message about missing GMime, Glib or talloc is
printed the message is 2 lines, component info and its http location
in next line. In the future the amount of lines will vary. To ease
reading in these cases newline is added after each message.

9 years agoemacs: fix off-by-one error in notmuch-hello column alignment
Dmitry Kurochkin [Fri, 9 Mar 2012 07:34:53 +0000 (11:34 +0400)]
emacs: fix off-by-one error in notmuch-hello column alignment

Expected results for few tests are fixed, the relevant test is
unmarked broken.