notmuch
8 years agoMerge branch 'release'
David Bremner [Sat, 3 Mar 2012 15:56:36 +0000 (11:56 -0400)]
Merge branch 'release'

8 years agoActually close the xapian database in notmuch_database_close
Justus Winter [Fri, 2 Mar 2012 14:58:39 +0000 (15:58 +0100)]
Actually close the xapian database in notmuch_database_close

Formerly the xapian database object was deleted and closed in its
destructor once the object was garbage collected. Explicitly call
close() so that the database and the associated lock is released
immediately.

The comment is a courtesy of Austin Clements.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agodebian: Bump standards version
David Bremner [Sat, 3 Mar 2012 13:40:18 +0000 (09:40 -0400)]
debian: Bump standards version

No actual changes are needed.

8 years agodebian: update .gitignore
David Bremner [Sat, 3 Mar 2012 13:38:45 +0000 (09:38 -0400)]
debian: update .gitignore

Ignore individual binary package directories.

8 years agodebian: add notmuch_query_add_tag_exclude to exported symbols
David Bremner [Sat, 3 Mar 2012 13:19:44 +0000 (09:19 -0400)]
debian: add notmuch_query_add_tag_exclude to exported symbols

This symbol is added in 0.12, although we are "stealthing" the feature
overall.

8 years agoman: remove search.exclude_tags from notmuch-config.1 for 0.12
Mark Walters [Wed, 29 Feb 2012 18:13:07 +0000 (18:13 +0000)]
man: remove search.exclude_tags from notmuch-config.1 for 0.12

8 years agoNEWS: revert NEWS item for exclude tags for 0.12
Mark Walters [Wed, 29 Feb 2012 18:13:06 +0000 (18:13 +0000)]
NEWS: revert NEWS item for exclude tags for 0.12

8 years agoconfig: disable addition of exclude tags for 0.12
Mark Walters [Wed, 29 Feb 2012 18:13:05 +0000 (18:13 +0000)]
config: disable addition of exclude tags for 0.12

This disables the addition of search_exclude_tags in notmuch-setup and
notmuch-config.

8 years agoemacs: notmuch.el ignore excluded matches
Mark Walters [Thu, 1 Mar 2012 22:30:45 +0000 (22:30 +0000)]
emacs: notmuch.el ignore excluded matches

This is a small change to make notmuch.el ignore excluded matches.  In
the future it could do something better like add a button for
rerunning the search with the excludes (particularly if nothing
matches with the excludes) or having them invisible and allowing the
visibility to be toggled.

8 years agoemacs: show: recognize the exclude flag.
Mark Walters [Thu, 1 Mar 2012 22:30:44 +0000 (22:30 +0000)]
emacs: show: recognize the exclude flag.

Show mode will recognize the exclude flag by not opening excluding
messages by default, and will start at the first matching non-excluded
message. If there are no matching non-excluded messages it will go to
the first matching (necessarily excluded) message.

8 years agocli: omit excluded messages in results where appropriate.
Mark Walters [Thu, 1 Mar 2012 22:30:43 +0000 (22:30 +0000)]
cli: omit excluded messages in results where appropriate.

In all cases of notmuch count/search/show where the results returned
cannot reflect the exclude flag return just the matched not-excluded
results. If the caller wishes to have all the matched results (i.e.,
including the excluded ones) they should call with the
--no-exclude option.

The relevant cases are
    count: both threads and messages
    search: all cases except the summary view
    show: mbox format

8 years agoman: update manpage for notmuch-show --no-exclude option
Mark Walters [Thu, 1 Mar 2012 22:30:42 +0000 (22:30 +0000)]
man: update manpage for notmuch-show --no-exclude option

8 years agotest: update tests to reflect the exclude flag
Mark Walters [Thu, 1 Mar 2012 22:30:41 +0000 (22:30 +0000)]
test: update tests to reflect the exclude flag

notmuch show outputs the exclude flag so many tests using notmuch
show failed. This commit adds "excluded:0" or "excluded: false" to
the expected outputs. After this commit there should be no failing
tests.

8 years agocli: Make notmuch-show respect excludes.
Mark Walters [Thu, 1 Mar 2012 22:30:40 +0000 (22:30 +0000)]
cli: Make notmuch-show respect excludes.

This adds the excludes to notmuch-show.c. We do not exclude when only
a single message (or part) is requested. notmuch-show will output the
exclude information when either text or json format is requested. As
this changes the output from notmuch-show it breaks many tests (in a
trivial and expected fashion).

8 years agotest: update search test to reflect exclude flag
Mark Walters [Thu, 1 Mar 2012 22:30:39 +0000 (22:30 +0000)]
test: update search test to reflect exclude flag

notmuch-search.c now returns all matching threads even if it the
match is a search.tag_excluded message (but with a mark indicating
this). Update the test to reflect this.

8 years agolib: Add the exclude flag to notmuch_query_search_threads
Mark Walters [Thu, 1 Mar 2012 22:30:38 +0000 (22:30 +0000)]
lib: Add the exclude flag to notmuch_query_search_threads

Add the NOTMUCH_MESSAGE_FLAG_EXCLUDED flag to
notmuch_query_search_threads. Implemented by inspecting the tags
directly in _notmuch_thread_create/_thread_add_message rather than as
a Xapian query for speed reasons.

Note notmuch_thread_get_matched_messages now returns the number of
non-excluded matching messages. This API is not totally desirable but
fixing it means breaking binary compatibility so we delay that.

8 years agolib: Make notmuch_query_search_messages set the exclude flag
Mark Walters [Thu, 1 Mar 2012 22:30:37 +0000 (22:30 +0000)]
lib: Make notmuch_query_search_messages set the exclude flag

Add a flag NOTMUCH_MESSAGE_FLAG_EXCLUDED which is set by
notmuch_query_search_messages for excluded messages. Also add an
option omit_excluded_messages to the search that we do not want the
excludes at all.

This exclude flag will be added to notmuch_query_search threads in the
next patch.

8 years agolib: Rearrange the exclude code in query.cc
Mark Walters [Thu, 1 Mar 2012 22:30:36 +0000 (22:30 +0000)]
lib: Rearrange the exclude code in query.cc

Slightly refactor the exclude code to give the callers access to the
exclude query itself. There should be no functional change.

8 years agotest: add tests for new cli --no-exclude option
Mark Walters [Thu, 1 Mar 2012 22:30:35 +0000 (22:30 +0000)]
test: add tests for new cli --no-exclude option

The tests test the new --no-exclude option to search and count.
There were no existing tests for the exclude behaviour for count so
added these too.

8 years agocli: Add --no-exclude to the man pages for search and count
Mark Walters [Thu, 1 Mar 2012 22:30:34 +0000 (22:30 +0000)]
cli: Add --no-exclude to the man pages for search and count

8 years agocli: add --no-exclude option to count and search.
Mark Walters [Thu, 1 Mar 2012 22:30:33 +0000 (22:30 +0000)]
cli: add --no-exclude option to count and search.

This option turns off the exclusion so all matching messages are
returned. We do not need to add this to notmuch-show as that does not
(yet) exclude.

8 years agoSpelling fix
Tomi Ollila [Thu, 1 Mar 2012 13:34:06 +0000 (15:34 +0200)]
Spelling fix

Retreive is spelled as r e t r i e v e .

8 years agoemacs: retain show buffer state after retrieving gpg key
Tomi Ollila [Thu, 1 Mar 2012 13:34:05 +0000 (15:34 +0200)]
emacs: retain show buffer state after retrieving gpg key

After retrieving gpg key retain show buffer state like in
all other operations (i.e. no other calls to notmuch-show-refresh-view
provides optional reset-state argument).
Emacs MUA keeps current message under cursor instead of going first
open message(possibly marking it read).

8 years agoNEWS: add entry for `notmuch-show-stash-mlarchive-link{,-and-go}'
Pieter Praet [Thu, 1 Mar 2012 21:44:30 +0000 (22:44 +0100)]
NEWS: add entry for `notmuch-show-stash-mlarchive-link{,-and-go}'

8 years agoshow: Further general simplifications of the JSON formatter
Austin Clements [Mon, 20 Feb 2012 00:26:30 +0000 (19:26 -0500)]
show: Further general simplifications of the JSON formatter

8 years agoshow: Make format_part_sigstatus_json's API consistent between GMIME 2.4 and 2.6
Austin Clements [Mon, 20 Feb 2012 00:26:29 +0000 (19:26 -0500)]
show: Make format_part_sigstatus_json's API consistent between GMIME 2.4 and 2.6

The implementation is still different for GMIME 2.4 and 2.6, but at
least now the caller doesn't have to be aware of this.

8 years agoshow: Make JSON helper functions print complete objects
Austin Clements [Mon, 20 Feb 2012 00:26:28 +0000 (19:26 -0500)]
show: Make JSON helper functions print complete objects

This makes the main recursive function easier to follow because helper
functions don't add fields to the running object.

8 years agoshow: Simplify talloc use in format_headers_json
Austin Clements [Mon, 20 Feb 2012 00:26:27 +0000 (19:26 -0500)]
show: Simplify talloc use in format_headers_json

Previously there was an unnecessary talloc context.

8 years agoshow: Unify JSON header output for messages and message parts
Austin Clements [Mon, 20 Feb 2012 00:26:26 +0000 (19:26 -0500)]
show: Unify JSON header output for messages and message parts

This has three ramifications:
- Blank To and Cc headers are no longer output for messages.
- Dates are now canonicalized for messages, which means they always
  have a day of the week and GMT is printed +0000 (never -0000)
- Invalid From message headers are handled slightly differently, since
  they get parsed by GMime now instead of notmuch.

8 years agoshow: Use consistent header ordering in the JSON format
Austin Clements [Mon, 20 Feb 2012 00:26:25 +0000 (19:26 -0500)]
show: Use consistent header ordering in the JSON format

Previously, top-level message headers were printed as Subject, From,
To, Date, while embedded message headers were printed From, To,
Subject, Date.  This makes both cases use the former order and updates
the tests accordingly.

8 years agoshow: Convert JSON format to the new self-recursive style
Austin Clements [Mon, 20 Feb 2012 00:26:24 +0000 (19:26 -0500)]
show: Convert JSON format to the new self-recursive style

As before, this is all code movement and a smidgen of glue.  This
moves the existing JSON formatter code into one self-recursive
function, but doesn't change any of the logic to take advantage of the
new structure.

In general, "leafs" of the JSON structure are left in helper functions
(most of them untouched), so that it's easy to see the overall
structure of the format from the main recursive function.

8 years agoemacs: Tests for user-defined sections
Daniel Schoepe [Fri, 17 Feb 2012 14:48:08 +0000 (18:48 +0400)]
emacs: Tests for user-defined sections

A new file was added for notmuch-hello tests.

8 years agoemacs: User-defined sections in notmuch-hello
Daniel Schoepe [Fri, 17 Feb 2012 14:48:07 +0000 (18:48 +0400)]
emacs: User-defined sections in notmuch-hello

This patch makes the notmuch-hello screen fully customizable
by allowing the user to add and remove arbitrary sections. It
also provides some convenience functions for constructing sections,
e.g. showing the unread message count for each tag.

This is done by specifying a list of functions that will be run
when notmuch-hello is invoked.

8 years agoadd minimal changelog stanza for 0.12~rc1
David Bremner [Thu, 1 Mar 2012 11:52:05 +0000 (07:52 -0400)]
add minimal changelog stanza for 0.12~rc1

8 years agobump version to 0.12~rc1
David Bremner [Thu, 1 Mar 2012 11:47:21 +0000 (07:47 -0400)]
bump version to 0.12~rc1

As usual, only `version' is edited by hand. The rest of the changes I
blame on the machine.

8 years agoemacs: Clarify description of thread manipulating functions
Michal Sojka [Tue, 21 Feb 2012 09:15:08 +0000 (10:15 +0100)]
emacs: Clarify description of thread manipulating functions

It is not clear whether the term "thread" refers to the thread in the
database or to the thread currently shown in a buffer. Those two
meanings may refer to different sets of messages, e.g. when a new email
is added to the database while the buffer shows the state before the new
email arrived.

This patch replaces the term thread with the term current buffer, which
is hopefully less ambiguous.

8 years agotest: Remove 'broken' flag from encoding test
Michal Sojka [Fri, 24 Feb 2012 07:36:23 +0000 (08:36 +0100)]
test: Remove 'broken' flag from encoding test

8 years agoConvert non-UTF-8 parts to UTF-8 before indexing them
Michal Sojka [Fri, 24 Feb 2012 07:36:22 +0000 (08:36 +0100)]
Convert non-UTF-8 parts to UTF-8 before indexing them

This fixes a bug that didn't allow to search for non-ASCII words such
parts. The code here was copied from show_text_part_content(), because
the show command already does the needed conversion when showing the
message.

8 years agotest: Add test for searching of uncommonly encoded messages
Michal Sojka [Fri, 24 Feb 2012 00:33:15 +0000 (01:33 +0100)]
test: Add test for searching of uncommonly encoded messages

Emails that are encoded differently than as ASCII or UTF-8 are not
indexed properly by notmuch. It is not possible to search for non-ASCII
words within those messages.

8 years agodoc: minor corrections in notmuch-config.1
Pieter Praet [Tue, 28 Feb 2012 18:42:03 +0000 (19:42 +0100)]
doc: minor corrections in notmuch-config.1

* man/man1/notmuch-config.1

  - SYNOPSIS:
    Remove spaces in 'section.item' arg, and indicate that
    `notmuch config set' accepts multiple value args.

  - DESCRIPTION:
    Correct config option to exclude tags from search results.
    ('search.exclude_tags' instead of 'search.exclude')

Also see commit bb8ab4c8.

8 years agoNews for Make buttons for attachments allow viewing as well as saving
Mark Walters [Wed, 29 Feb 2012 09:31:26 +0000 (09:31 +0000)]
News for Make buttons for attachments allow viewing as well as saving

On Sat, 21 Jan 2012 09:09:58 -0400, David Bremner <david@tethera.net> wrote:
> On Fri, 20 Jan 2012 09:44:06 +0000, Mark Walters <markwalters1009@gmail.com> wrote:
> > Define a keymap for attachment buttons to allow multiple actions.
> > Define 3 possible actions:
> >     save attachment: exactly as currently,
> >     view attachment: uses mailcap entry,
> >     view attachment with user chosen program
>
> pushed.

Here is a News patch for this feature.

Best wishes

Mark

From fde33258850a438f1810e4158c946b3cf185b5e8 Mon Sep 17 00:00:00 2001
From: Mark Walters <markwalters1009@gmail.com>
Date: Wed, 29 Feb 2012 09:26:17 +0000
Subject: [PATCH] News item for allowing attachment buttons to view as well as save.

8 years agoman: add references to maildir flag synchronization
Jani Nikula [Sat, 25 Feb 2012 22:57:23 +0000 (00:57 +0200)]
man: add references to maildir flag synchronization

notmuch new, restore, and tag commands support maildir flag
synchronization with notmuch tags. Reference the notmuch-config(1) man
page about it in the relevant man pages.

8 years agoman: document the notmuch configuration settings in notmuch-config(1)
Jani Nikula [Sat, 25 Feb 2012 22:23:41 +0000 (00:23 +0200)]
man: document the notmuch configuration settings in notmuch-config(1)

At the risk of duplication between the man page and the configuration
file generated by default, document the notmuch configuration options
in the notmuch config man page.

Existing users of notmuch should not be expected to re-generate their
config file in order to get access to the documentation for new
configuration options.

Include some minor fixes and cleanups while at it.

8 years agoemacs: Fix out of date comment
Austin Clements [Sat, 25 Feb 2012 14:50:26 +0000 (09:50 -0500)]
emacs: Fix out of date comment

The behavior of the header line in show-mode changed from showing the
subject of the first open message to showing the subject of the first
message in 4d77f18b.  Update a comment to reflect this.

8 years agoDocument the JSON schemata used by show and search
Austin Clements [Mon, 20 Feb 2012 00:26:23 +0000 (19:26 -0500)]
Document the JSON schemata used by show and search

8 years agoNEWS: sync 'new.ignore' entry with its comment in notmuch-config.c
Pieter Praet [Sun, 19 Feb 2012 20:47:52 +0000 (21:47 +0100)]
NEWS: sync 'new.ignore' entry with its comment in notmuch-config.c

See previous commit.

8 years agocli: update 'new.ignore' config file comment wrt file/directory matching
Pieter Praet [Sun, 19 Feb 2012 20:47:51 +0000 (21:47 +0100)]
cli: update 'new.ignore' config file comment wrt file/directory matching

8 years agoBuild-Depend on libgmime-2.6-dev | libgmime2.4-dev
Daniel Kahn Gillmor [Thu, 9 Feb 2012 23:20:20 +0000 (18:20 -0500)]
Build-Depend on libgmime-2.6-dev | libgmime2.4-dev

libgmime-2.6-dev entered debian unstable today.  If 2.6 is available,
notmuch should build against 2.6 instead of 2.4, as 2.6 is the current
upstream stable version of libgmime.

8 years agoNews for retaining state when refreshing notmuch show
Austin Clements [Tue, 21 Feb 2012 15:42:33 +0000 (10:42 -0500)]
News for retaining state when refreshing notmuch show

8 years agoemacs: Reverse the meaning of notmuch-show-refresh-view's argument
Austin Clements [Tue, 21 Feb 2012 15:42:32 +0000 (10:42 -0500)]
emacs: Reverse the meaning of notmuch-show-refresh-view's argument

Consensus seems to be that people prefer that refreshing show buffers
retains state by default, rather than resetting it by default.  This
turns out to be the case in the code, as well.  In fact, there's even
a test for this that's been marked broken for several months, which
this patch finally gets to mark as fixed.

8 years agoemacs: When refreshing a show buffer, only mark read when resetting state
Austin Clements [Tue, 21 Feb 2012 15:42:31 +0000 (10:42 -0500)]
emacs: When refreshing a show buffer, only mark read when resetting state

If we retain state while refreshing a show buffer, it should not mark
any messages read since it's not a navigation operation (it especially
shouldn't mark the first message matching the query read, which is
what it did previously).  If the user or caller requests that refresh
reset the state of the buffer, then we consider that a navigation
operation, so we do mark the message under point after the refresh
read.

This is implemented by moving responsibility for initial positioning
and read-marking out of notmuch-show-worker and into its caller.
Since notmuch-show-worker is now exclusively about building the show
buffer, we rename it to notmuch-show-build-buffer.

8 years agoemacs: add `notmuch-show-stash-mlarchive-link{, -and-go}'
Pieter Praet [Sun, 19 Feb 2012 20:50:27 +0000 (21:50 +0100)]
emacs: add `notmuch-show-stash-mlarchive-link{, -and-go}'

* emacs/notmuch-show.el

  (notmuch-show-stash-mlarchive-link-alist):
    New defcustom of type `alist' (key = name, value = URI),
    containing Mailing List Archive URI's for searching by Message-Id.

  (notmuch-show-stash-mlarchive-link-default):
    New defcustom, default MLA to use when `notmuch-show-stash-mlarchive-link'
    received no user input whatsoever.  Available choices are generated using
    the contents of `notmuch-show-stash-mlarchive-link-alist'.

  (notmuch-show-stash-map):
    Added keybinds "l" and "L" for `notmuch-show-stash-mlarchive-link'
    respectively `notmuch-show-stash-mlarchive-link-and-go'.

  (notmuch-show-stash-mlarchive-link):
    New function, stashes a URI pointing to the current message at one
    of the MLAs configured in `notmuch-show-stash-mlarchive-link-alist'.
    Prompts user with `completing-read' if not provided with an MLA key.

  (notmuch-show-stash-mlarchive-link-and-go):
    New function, uses `notmuch-show-stash-mlarchive-link' to
    stash a URI, and then visits it using the browser configured
    in `browse-url-browser-function'.

Based on original work [1] by David Edmondson <dme@dme.org>.

[1] id:"1327397873-20596-1-git-send-email-dme@dme.org"

8 years agotest: emacs: expand subtest "Stashing in notmuch-show" wrt stashing Mailing List...
Pieter Praet [Sun, 19 Feb 2012 20:50:26 +0000 (21:50 +0100)]
test: emacs: expand subtest "Stashing in notmuch-show" wrt stashing Mailing List Archive URIs

`notmuch-show-stash-mlarchive-link' stashes a URI pointing to the current message
at one of the MLAs configured in `notmuch-show-stash-mlarchive-link-alist'.

Marked as "broken": fixed in next commit.

8 years agoemacs: `notmuch-show-get-message-id': optionally return Message-Id sans prefix
Pieter Praet [Sun, 19 Feb 2012 20:50:25 +0000 (21:50 +0100)]
emacs: `notmuch-show-get-message-id': optionally return Message-Id sans prefix

* emacs/notmuch-show.el

  (notmuch-show-get-message-id):
    Add optional arg BARE.  When non-nil, return a Message-Id without
    quotes and prefix, thus obviating the need to strip them off again
    in various places.

  (notmuch-show-stash-message-id-stripped):
    Update wrt changes in `notmuch-show-get-message-id'.

8 years agoNEWS: add entry for the improved unicode handling in the python bindings
Justus Winter [Wed, 22 Feb 2012 19:33:31 +0000 (20:33 +0100)]
NEWS: add entry for the improved unicode handling in the python bindings

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agoNEWS: add entry for python 3.2 compatibility
Justus Winter [Wed, 22 Feb 2012 19:33:30 +0000 (20:33 +0100)]
NEWS: add entry for python 3.2 compatibility

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agoemacs: support text/calendar mime type
Jani Nikula [Thu, 9 Feb 2012 14:46:03 +0000 (14:46 +0000)]
emacs: support text/calendar mime type

Replace text/x-vcalendar with text/calendar, while maintaining support
and backwards compatibility for text/x-vcalendar.

Code by David Edmondson <dme@dme.org>

8 years agotest: replace occurrences of $PWD with vars that are more stable
Pieter Praet [Wed, 1 Feb 2012 20:37:21 +0000 (21:37 +0100)]
test: replace occurrences of $PWD with vars that are more stable

Thanks to Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
for pointing this out:  id:"87d39ymyb4.fsf@gmail.com"

8 years agopython: split the documentation
Justus Winter [Fri, 24 Feb 2012 00:34:15 +0000 (01:34 +0100)]
python: split the documentation

Move each classes documentation into its own file and thus into its
own page in the generated documentation.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: move the notmuch module section to notes.rst
Justus Winter [Fri, 24 Feb 2012 00:30:04 +0000 (01:30 +0100)]
python: move the notmuch module section to notes.rst

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: move the usage example to quickstart.rst
Justus Winter [Fri, 24 Feb 2012 00:18:54 +0000 (01:18 +0100)]
python: move the usage example to quickstart.rst

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: strip module prefix in the sphinx documentation
Justus Winter [Thu, 23 Feb 2012 23:38:47 +0000 (00:38 +0100)]
python: strip module prefix in the sphinx documentation

Remove the notmuch prefix from classes in the documentation. This
change makes the table of contents look much nicer.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: mention the exception class refactoring in the docs
Justus Winter [Wed, 22 Feb 2012 23:14:59 +0000 (00:14 +0100)]
python: mention the exception class refactoring in the docs

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: move the exception classes into error.py
Justus Winter [Wed, 22 Feb 2012 23:11:22 +0000 (00:11 +0100)]
python: move the exception classes into error.py

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: rename filename.py into filenames.py
Justus Winter [Wed, 22 Feb 2012 21:44:35 +0000 (22:44 +0100)]
python: rename filename.py into filenames.py

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: move Threads class into its own file
Justus Winter [Wed, 22 Feb 2012 21:39:52 +0000 (22:39 +0100)]
python: move Threads class into its own file

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: move Messages class into its own file
Justus Winter [Wed, 22 Feb 2012 21:34:40 +0000 (22:34 +0100)]
python: move Messages class into its own file

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: refactor the python bindings
Justus Winter [Wed, 22 Feb 2012 20:55:59 +0000 (21:55 +0100)]
python: refactor the python bindings

Move the Directory class into its own file, merge the two Filenames
classes into one, deprecate Filenames.as_iterator, update the
documentation accordingly.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: work around libnotmuch calling exit(3) in Database.find_message_by_filename
Justus Winter [Wed, 22 Feb 2012 20:14:13 +0000 (21:14 +0100)]
python: work around libnotmuch calling exit(3) in Database.find_message_by_filename

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: improve the docstring of Database.find_message_by_filename
Justus Winter [Wed, 22 Feb 2012 20:07:18 +0000 (21:07 +0100)]
python: improve the docstring of Database.find_message_by_filename

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: work around libnotmuch calling exit(3) in Database.get_directory
Justus Winter [Wed, 22 Feb 2012 19:58:44 +0000 (20:58 +0100)]
python: work around libnotmuch calling exit(3) in Database.get_directory

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: Improve the docstring of Database.get_directory
Justus Winter [Wed, 22 Feb 2012 19:46:42 +0000 (20:46 +0100)]
python: Improve the docstring of Database.get_directory
Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: avoid using a magic value for database mode in Database.__init__
Justus Winter [Wed, 22 Feb 2012 20:01:24 +0000 (21:01 +0100)]
python: avoid using a magic value for database mode in Database.__init__

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agotest: always report missing prereqs, independent of `--verbose' option
Pieter Praet [Wed, 18 Jan 2012 12:19:41 +0000 (13:19 +0100)]
test: always report missing prereqs, independent of `--verbose' option

When tests are skipped due to missing prereqs, those prereqs are only
displayed when running with the `--verbose' option.  This is essential
information when troubleshooting, so always send to stdout.

8 years agoemacs: Fix out-of-date declare-function
Austin Clements [Sun, 19 Feb 2012 18:02:40 +0000 (13:02 -0500)]
emacs: Fix out-of-date declare-function

The names of the arguments to notmuch-show-refresh-view had gotten out
of sync between the declare-function and the real thing.

8 years agoPrevent segmentation fault in notmuch_database_close
Justus Winter [Sat, 18 Feb 2012 23:56:57 +0000 (00:56 +0100)]
Prevent segmentation fault in notmuch_database_close

Previously opening a notmuch database in read write mode that has been
locked resulted in the notmuch_database_open function executing
notmuch_database_close as a cleanup function. notmuch_database_close
failed to check whether the xapian database has in fact been created.

Add a check whether the xapian database object has actually been
created before trying to call its flush method.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: fix the type nonsense of the first parameter of class Directory
Justus Winter [Tue, 21 Feb 2012 00:06:15 +0000 (01:06 +0100)]
python: fix the type nonsense of the first parameter of class Directory

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: allow an empty path as parameter to Database.get_directory
Justus Winter [Mon, 20 Feb 2012 23:56:07 +0000 (00:56 +0100)]
python: allow an empty path as parameter to Database.get_directory

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: remove :returns: keywords from functions returning nothing
Justus Winter [Mon, 20 Feb 2012 23:15:59 +0000 (00:15 +0100)]
python: remove :returns: keywords from functions returning nothing

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: rework Directory.set_mtime
Justus Winter [Mon, 20 Feb 2012 23:13:20 +0000 (00:13 +0100)]
python: rework Directory.set_mtime

Fix the indentation within the docstring, remove useless remarks, do
some trivial refactoring.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: harmonize the sphinx keyword for exceptions
Justus Winter [Mon, 20 Feb 2012 23:01:23 +0000 (00:01 +0100)]
python: harmonize the sphinx keyword for exceptions

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: refactor the error handling machinery
Justus Winter [Mon, 20 Feb 2012 22:49:07 +0000 (23:49 +0100)]
python: refactor the error handling machinery

Raise specific error classes instead of a generic NotmuchError with an
magic status value (e.g. NotmuchError(STATUS.NULL_POINTER) ->
NullPointerError()), update the documentation accordingly.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: fix the projects name and update years of the copyright notice in the sphinx...
Justus Winter [Mon, 20 Feb 2012 20:48:35 +0000 (21:48 +0100)]
python: fix the projects name and update years of the copyright notice in the sphinx docs

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: more error handling fixes
Justus Winter [Sat, 18 Feb 2012 23:36:15 +0000 (00:36 +0100)]
python: more error handling fixes

This is a follow up commit to 221c7e0b38177f5f1dbf0561580c15e8aaa49004
fixing more NULL pointer checks.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: remove trailing whitespace within the documentation source files
Justus Winter [Sat, 18 Feb 2012 00:41:23 +0000 (01:41 +0100)]
python: remove trailing whitespace within the documentation source files

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: improve Query.count_messages docstring
Justus Winter [Sat, 18 Feb 2012 00:38:19 +0000 (01:38 +0100)]
python: improve Query.count_messages docstring

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: wrap notmuch_query_count_threads as Query.count_threads
Justus Winter [Sat, 18 Feb 2012 00:32:21 +0000 (01:32 +0100)]
python: wrap notmuch_query_count_threads as Query.count_threads

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: refactor Query class
Justus Winter [Sat, 18 Feb 2012 00:13:06 +0000 (01:13 +0100)]
python: refactor Query class

Put each libnotmuch function reference right in front of the
corresponding python wrapper.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: move Query class to its own file
Justus Winter [Sat, 18 Feb 2012 00:10:45 +0000 (01:10 +0100)]
python: move Query class to its own file

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: remove unused but imported symbol
Justus Winter [Sat, 18 Feb 2012 00:01:33 +0000 (01:01 +0100)]
python: remove unused but imported symbol

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: remove unused but imported symbol
Justus Winter [Fri, 17 Feb 2012 23:57:59 +0000 (00:57 +0100)]
python: remove unused but imported symbol

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agoNEWS: add news section for new.ignore
Tomi Ollila [Wed, 15 Feb 2012 09:17:32 +0000 (11:17 +0200)]
NEWS: add news section for new.ignore

Added NEWS section 'Mail store folder/file ignore'.

8 years agoadd support for user-specified files & directories to ignore
Tomi Ollila [Wed, 15 Feb 2012 09:17:31 +0000 (11:17 +0200)]
add support for user-specified files & directories to ignore

A new configuration key 'new.ignore' is used to determine which
files and directories user wants not to be scanned as new mails.

Mark the corresponding test as no longer broken.
This work merges my previous attempts and Andreas Amann's work
in id:"ylp7hi23mw8.fsf@tyndall.ie"

8 years agotest: add tests wrt ignoring user-specified files and directories
Tomi Ollila [Wed, 15 Feb 2012 09:17:30 +0000 (11:17 +0200)]
test: add tests wrt ignoring user-specified files and directories

Files and directories which are specified in 'new.ignore' in the
config file shouldn't be indexed nor reported by `notmuch new'.

This is basically Pieter's work with Austin's comments addressed.

8 years agoemacs: Fix display of highlighted line in notmuch-search
Michal Sojka [Tue, 14 Feb 2012 17:09:47 +0000 (18:09 +0100)]
emacs: Fix display of highlighted line in notmuch-search

When notmuch-search-line-faces is used to set background color in search
results, the highlight of the current line is not always displayed
correctly. This patch fixes that by increasing the priority property of
the highlight overlay.

8 years agopython: implement the context manager protocol for database objects
Justus Winter [Wed, 15 Feb 2012 21:41:16 +0000 (22:41 +0100)]
python: implement the context manager protocol for database objects

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agopython: provide a Database.close function
Justus Winter [Wed, 15 Feb 2012 21:25:13 +0000 (22:25 +0100)]
python: provide a Database.close function

Rename Database.__del__ to Database.close, move it just below the open
function and call close() in a newly created destructor just below the
constructor.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
8 years agoFree the results of scandir()
Ethan Glasser-Camp [Tue, 7 Feb 2012 10:05:03 +0000 (05:05 -0500)]
Free the results of scandir()

scandir() returns "strings allocated via malloc(3)" which are then
"collected in array namelist which is allocated via
malloc(3)". Currently we just free the array namelist. Instead, free
all the entries of namelist, and then free namelist.

entry only points to elements of namelist, so we don't free it
separately.

8 years agoemacs: allow to set RETAIN-STATE for `notmuch-show-refresh-view' interactively
Dmitry Kurochkin [Mon, 13 Feb 2012 11:09:07 +0000 (15:09 +0400)]
emacs: allow to set RETAIN-STATE for `notmuch-show-refresh-view' interactively

The notmuch-show view refresh function (`notmuch-show-refresh-view',
bound to "=") accepts an optional RETAIN-STATE argument.  The patch
allows to set this argument interactively by using "C-u =".

8 years agoemacs: cleanup and simplify `notmuch-show-archive-thread' and related functions
Dmitry Kurochkin [Wed, 8 Feb 2012 16:48:51 +0000 (20:48 +0400)]
emacs: cleanup and simplify `notmuch-show-archive-thread' and related functions

Recent changes in notmuch-show tagging introduced some code
duplication.  The patch cleanups and simplifies
`notmuch-show-archive-thread' function by using
`notmuch-show-tag-all', no longer used function are removed.  After
the change, `notmuch-show-archive-thread' function becomes symmetric
with `notmuch-show-archive-message'.

A side effect of these changes is that `notmuch-show-archive-thread'
no longer calls "notmuch tag" for each message in the thread.