Jesse Rosenthal [Tue, 30 Mar 2010 06:59:40 +0000 (08:59 +0200)]
[REV2] adding part, simplifying Message.get_parts(), and fixing json to work with dme's json ui
Sebastian:
This replaces the patch it responds to. With this patch, we can now use
the cnotmuch with David's json ui. There are still issues, but this
allows interaction with emacs.
Sebastian Spaeth [Thu, 25 Mar 2010 11:01:20 +0000 (12:01 +0100)]
Implement Filenames() iterator. The API should be complete at this point.
We are still missing Database.upgrade() as I am not sure how to implement the callback, and it's not that important for now. Documentation for the new classes is written inline, but not integrated in the docs yet.
Sebastian Spaeth [Wed, 24 Mar 2010 10:08:43 +0000 (11:08 +0100)]
notmuch: Implement 'notmuch search'
This passes all search tests for the notmuch test suite. We don't have the nice
recent date formatting, no --format and no --sort option implemented though.
Sebastian Spaeth [Mon, 22 Mar 2010 10:19:51 +0000 (11:19 +0100)]
Fix Database().create_query() to actually initialize the Query with the correct object.
We were passing the internal pointer to the notmuch_database_t object to Query(), but it should be initialized with the Database() object itself. This rightfully raised an exception. Yay, for thorough sanity checking.
Sebastian Spaeth [Fri, 19 Mar 2010 09:55:06 +0000 (10:55 +0100)]
Add Database.create_query() as a shorthand for db=Database();q=Query(db,"")
This is a convenience extension to the C API. I hardly saves any typing, but
let's us automatically free the top-level Database() object when we delete
the Query().
Sebastian Spaeth [Thu, 18 Mar 2010 17:48:36 +0000 (18:48 +0100)]
Database(): honor NOTMUCH_CONFIG env variable for reading the standard database location.
Also replaces all Database.MODE.* defaults in the keyword arguments with their numeric replacement, they do not seem to be available yet at that time, so the python parser complained about them as being unknown.
Sebastian Spaeth [Thu, 11 Mar 2010 12:11:43 +0000 (13:11 +0100)]
notmuch-show: add tags to json output
The previous json patches forgot to add the notmuch tags to the json
output. This is inconsistent to the text output so here they are. We
just output a 'tags' field that sends notmuch tags as a json array.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
Carl Worth [Wed, 10 Mar 2010 19:07:58 +0000 (11:07 -0800)]
emacs: Fix search refresh when on the last line of a search buffer.
We currently allow the cursor to be positioned on the "End of search
results" line after the last thread in a search buffer. When
refreshing on this line, there's no thread ID to be used as the
target.
Previously, a refresh from this case would result in a nil thread
target, but we were also using nil to indicate that the target thread
had been found. This caused the position to be lost during refresh,
(the cursor would move from the last line in the buffer to the first).
We fix this by using a magic string of "found" rather than nil to
clearly indicate whether the target thread has actually been found.
Carl Worth [Wed, 10 Mar 2010 19:05:33 +0000 (11:05 -0800)]
emacs: Adjust search refresh to use a target line not a target position.
It doesn't make sense to move the cursor to some random point in the
middle of a line. We always want the refresh to leave the cursor at
the beginning of some line instead.
Carl Worth [Wed, 10 Mar 2010 18:59:57 +0000 (10:59 -0800)]
Makefile: Fix Makefiles to depend on all child Makefile fragments.
We were previously maintaining two lists of the child Makefile
fragments---one for the includes and another for the dependencies. So,
of course, they drifted and the dependency list wasn't up to date.
We fix this by adding a single subdirs variable, and then using GNU
Makefile substitution to generate both the include and the dependency
lists.
Some side effect of this change caused the '=' assignment of the dir
variable to not work anymore. I'm not sure why that is, but using ':='
makes sense here and fixes the problem.
Carl Worth [Wed, 10 Mar 2010 18:44:44 +0000 (10:44 -0800)]
Makefile: Simplify the conditional message of the all target.
We wamt a simple "make" to call the 'all' target and then print a
message when done, but we don't want "make install" which depends on
that same 'all' target to print the message.
We previously did this with a separate 'all-without-message' target,
which was inelegant because it caused all users of the target to
carefully depend on 'all-without-message' rather than 'all'.
Instead, we now use a single 'all' target but with a Makefile
conditional that examines the MAKECMDGOALS variable to determine
whether to print the message.