notmuch.git
12 years agotest: add tests for message only search
Mark Walters [Wed, 14 Mar 2012 12:26:53 +0000 (12:26 +0000)]
test: add tests for message only search

This adds three tests for --output=messages searches. One test is for
the case when one exclude tag does not occur in the Xapian
database. This triggers a Xapian bug in some cases and causes the
whole exclusion to fail. The next commit avoids this bug.

12 years agotest: the test for the exclude code mistakenly excludes the tag "="
Mark Walters [Wed, 14 Mar 2012 12:26:52 +0000 (12:26 +0000)]
test: the test for the exclude code mistakenly excludes the tag "="

The tests for the exclude code in search and count use the line
    notmuch config set search.exclude_tags = deleted
which actually sets the exclude tags to be "=" and "deleted". Remove
the "=" from this line.

12 years agolib: Add exclude query debug output
Austin Clements [Wed, 14 Mar 2012 02:31:31 +0000 (22:31 -0400)]
lib: Add exclude query debug output

12 years agolib: Expose query debug output via an environment variable
Austin Clements [Wed, 14 Mar 2012 02:31:30 +0000 (22:31 -0400)]
lib: Expose query debug output via an environment variable

Allow query debugging to be enabled at run-time by setting the
NOTMUCH_DEBUG_QUERY environment variable to a non-empty string.

Previously, enabling query debugging required recompiling, but parsed
queries are often useful for tracking down bugs in situations where
recompiling is inconvenient.

12 years agocli: Parsing. Allow true/false parameter for boolean options.
Mark Walters [Sat, 10 Mar 2012 11:05:32 +0000 (11:05 +0000)]
cli: Parsing. Allow true/false parameter for boolean options.

Allow NOTMUCH_OPT_BOOLEAN to take a true or false parameter.  In
particular it allows the user to turn off a boolean option with
--option=false.

12 years agotest: use subtest name for generated message subject by default
Dmitry Kurochkin [Sat, 10 Mar 2012 01:24:51 +0000 (05:24 +0400)]
test: use subtest name for generated message subject by default

Before the change, messages generated by generate_message() used "Test
message #N" for default subject where N is the generated messages
counter.  Since message subject is commonly present in expected
results, there is a chance of breaking other tests when a new
generate_message() call is added.  The patch changes default subject
value for generated messages to subtest name if it is available.  If
subtest name is not available (i.e. message is generated during test
initialization), the old default value is used (in this case it is
fine to have the counter in the subject).

Another benefit of this change is a sane default value for subject in
generated messages, which would allow to simplify code like:

  test_begin_subtest "test for a cool feature"
  add_message [subject]="message for test for a cool feature"

12 years agotest: remove "Generate some messages" test from raw
Dmitry Kurochkin [Sat, 10 Mar 2012 01:24:50 +0000 (05:24 +0400)]
test: remove "Generate some messages" test from raw

Before the change, the first subtest in raw format tests just
generated messages and checked that they are added successfully.  This
is not really a raw format test, it is creating of environment
required for other subtests to run.  The patch removes the first
subtest from raw and replaces it with bare add_message calls, similar
to how it is done in other tests.

TODO: we should check that test environment was created successfully.
Currently, many tests do add_message(), notmuch new and other calls
without checking the results.  We should come up with a general
solution for this, i.e. if any command during test initialization
fails, all tests should be skipped with appropriate error message.

12 years agoman: Update raw format documentation
Austin Clements [Tue, 6 Mar 2012 18:48:44 +0000 (18:48 +0000)]
man: Update raw format documentation

12 years agoshow: Convert raw format to the new self-recursive style, properly support interior...
Austin Clements [Tue, 6 Mar 2012 18:48:43 +0000 (18:48 +0000)]
show: Convert raw format to the new self-recursive style, properly support interior parts

This is fully compatible for root and leaf parts, but now has proper
support for interior parts.  This requires some design decisions that
were guided by what I would want if I were to save a part.
Specifically:

- Leaf parts are printed without headers and with transfer decoding.
  This is what makes sense for saving attachments.  (Furthermore, the
  transfer decoding is necessary since, without the headers, the
  caller would not be able to interpret non-transfer-decoded output.)

- Message parts are printed with their message headers, but without
  enclosing part headers.  This is what makes sense for saving a
  message as a whole (which is a message part) and for saving attached
  messages.  This is symmetric for whole messages and for attached
  messages, though we special-case the whole message for performance
  reasons (and corner-case correctness reasons: given malformed input,
  GMime may not be able to reproduce it from the parsed
  representation).

- Multipart parts are printed with their headers and all child parts.
  It's not clear what the best thing to do for multipart is, but this
  was the most natural to implement and can be justified because such
  parts can't be interpreted without their headers.

As an added benefit, we can move the special-case code for part 0 into
the raw formatter.

12 years agoshow: Move format_part_content_raw with the other new-style formats
Austin Clements [Tue, 6 Mar 2012 18:48:42 +0000 (18:48 +0000)]
show: Move format_part_content_raw with the other new-style formats

Just code motion.

12 years agoshow: Convert mbox format to new self-recursive style
Austin Clements [Tue, 6 Mar 2012 18:48:41 +0000 (18:48 +0000)]
show: Convert mbox format to new self-recursive style

Given the lack of recursion, this is pretty easy.

12 years agoshow: Move format_message_mbox with the other new-style formats
Austin Clements [Tue, 6 Mar 2012 18:48:40 +0000 (18:48 +0000)]
show: Move format_message_mbox with the other new-style formats

Just code motion.

12 years agoshow: Allow formatters to return errors
Austin Clements [Tue, 6 Mar 2012 18:48:39 +0000 (18:48 +0000)]
show: Allow formatters to return errors

Formatter errors are propagated to the exit status of notmuch show.

This isn't used by the JSON or text formatters, but it will be useful
for the raw format, which is pickier.

12 years agotest: Fix malformed multipart message
Austin Clements [Tue, 6 Mar 2012 18:48:38 +0000 (18:48 +0000)]
test: Fix malformed multipart message

Previously, there was only one CRLF between the terminating boundary
of the embedded multipart/alternative and the boundary of the
containing multipart.  However, according the RFC 1341, 7.2.1:

  The boundary must be followed immediately either by another CRLF and
  the header fields for the next part, or by two CRLFs, in which case
  there are no header fields for the next part

and

  The CRLF preceding the encapsulation line is considered part of the
  boundary so that it is possible to have a part that does not end
  with a CRLF (line break).

Thus, there must be *two* CRLFs between these boundaries: one that
ends the terminating boundary and one that begins the enclosing
boundary.

While GMime accepted the message we had before, it could not produce
such a message.

12 years agotest: Fix typo in test description
Austin Clements [Tue, 6 Mar 2012 18:48:37 +0000 (18:48 +0000)]
test: Fix typo in test description

Part 4 is a multipart, not an html part.

12 years agoMerge tag '0.12_rc2'
David Bremner [Sun, 18 Mar 2012 11:36:33 +0000 (08:36 -0300)]
Merge tag '0.12_rc2'

notmuch 0.12~rc2 release

12 years agodebian: changelog stanza for 0.12~rc2 debian/0.12_rc2-1
David Bremner [Sun, 18 Mar 2012 11:16:55 +0000 (08:16 -0300)]
debian: changelog stanza for 0.12~rc2

mention the two bugfixes

12 years agobump version to 0.12~rc2
David Bremner [Sun, 18 Mar 2012 11:07:00 +0000 (08:07 -0300)]
bump version to 0.12~rc2

12 years agopython: fix signature of two wrapped libnotmuch functions
Justus Winter [Fri, 16 Mar 2012 12:56:32 +0000 (13:56 +0100)]
python: fix signature of two wrapped libnotmuch functions

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
12 years agoFix error reporting in notmuch_database_find_message_by_filename
Justus Winter [Sat, 17 Mar 2012 16:41:27 +0000 (17:41 +0100)]
Fix error reporting in notmuch_database_find_message_by_filename

Formerly it was possible for *message_ret to be left
uninitialized. The documentation however clearly states that "[o]n any
failure or when the message is not found, this function initializes
'*message' to NULL".

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
12 years agoMerge branch 'release'
David Bremner [Thu, 15 Mar 2012 02:01:38 +0000 (23:01 -0300)]
Merge branch 'release'

12 years agoNEWS: emacs: enable `notmuch-search-line-faces' by default
Jani Nikula [Wed, 14 Mar 2012 21:21:10 +0000 (23:21 +0200)]
NEWS: emacs: enable `notmuch-search-line-faces' by default

12 years agoMerge branch 'release'
David Bremner [Thu, 15 Mar 2012 01:58:20 +0000 (22:58 -0300)]
Merge branch 'release'

12 years agoNEWS: cli: manual page for notmuch configuration options
Jani Nikula [Wed, 14 Mar 2012 21:21:11 +0000 (23:21 +0200)]
NEWS: cli: manual page for notmuch configuration options

12 years agoNEWS: emacs: inline patch fake attachment file names
Jani Nikula [Wed, 14 Mar 2012 21:21:09 +0000 (23:21 +0200)]
NEWS: emacs: inline patch fake attachment file names

12 years agoNEWS: emacs: support text/calendar MIME type
Jani Nikula [Wed, 14 Mar 2012 21:21:08 +0000 (23:21 +0200)]
NEWS: emacs: support text/calendar MIME type

12 years agoNEWS: emacs: show view archiving key binding changes
Jani Nikula [Wed, 14 Mar 2012 21:21:07 +0000 (23:21 +0200)]
NEWS: emacs: show view archiving key binding changes

12 years agoNEWS: emacs: Fix MML tag quoting in replies
Jani Nikula [Wed, 14 Mar 2012 21:21:06 +0000 (23:21 +0200)]
NEWS: emacs: Fix MML tag quoting in replies

12 years agoMerge branch 'release'
David Bremner [Wed, 14 Mar 2012 01:09:56 +0000 (22:09 -0300)]
Merge branch 'release'

12 years agodebian: bump gmime dependency to 2.6.7 debian/0.12_rc1-1
David Bremner [Wed, 14 Mar 2012 00:40:40 +0000 (21:40 -0300)]
debian: bump gmime dependency to 2.6.7

As explained in f34613e, if using gmime 2.6, we want at least 2.6.7

12 years agoman: update SEE ALSO references in man pages
Jani Nikula [Sun, 11 Mar 2012 21:36:16 +0000 (23:36 +0200)]
man: update SEE ALSO references in man pages

Drop references to notmuch-part(1). Reference all man pages. Fix man
page section of notmuch-dump(1).

12 years agobuild: Require gmime >= 2.6.7
Thomas Jost [Tue, 21 Feb 2012 19:35:35 +0000 (20:35 +0100)]
build: Require gmime >= 2.6.7

gmime-2.6 had a bug [1] which made it impossible to tell why a signature
verification failed when the signer key was unavailable (empty "sigstatus" field
in the JSON output). Since 00b5623d the corresponding test is marked as broken
when using gmime-2.6 (2.4 is fine).

This bug has been fixed in gmime 2.6.5, which is now the minimal gmime-2.6
version required for building notmuch (gmime-2.4 is still available). As a
consequence the version check in test/crypto can be removed.

[Added by db]

Although less unambigously a bug, Gmime 2.6 prior to 2.6.7 also was
more strict about parsing, and rejected messages with initial "From "
headers.  This restriction is relaxed in [2].  For reasons explained in [3],
we want to keep this more relaxed parsing for now.

[1] https://bugzilla.gnome.org/show_bug.cgi?id=668085

[2] http://git.gnome.org/browse/gmime/commit/?id=d311f576baf750476e06e9a1367a2dc1793ea7eb

[3] id:"1331385931-1610-1-git-send-email-david@tethera.net"

12 years agoMerge branch 'release'
David Bremner [Sun, 11 Mar 2012 01:46:26 +0000 (21:46 -0400)]
Merge branch 'release'

12 years agoFix configure script to properly detect gmime-2.6 if available.
Jameson Graef Rollins [Thu, 8 Mar 2012 16:45:01 +0000 (08:45 -0800)]
Fix configure script to properly detect gmime-2.6 if available.

Previously, the configure script would appear to detect gmime-2.6 if
present.  However, the binaries would end up being compiled against
gmime-2.4.  The addition of a break fixes things so that now gmime-2.6
will be used if available, falling back to gmime-2.4.

12 years agoHandle errors in mime_node_open
Austin Clements [Tue, 6 Mar 2012 18:26:57 +0000 (18:26 +0000)]
Handle errors in mime_node_open

12 years agoemacs: fix MML quoting in replies
Jani Nikula [Sun, 4 Mar 2012 08:25:38 +0000 (10:25 +0200)]
emacs: fix MML quoting in replies

The reply MML quoting added in commit ae438cc unintentionally MML
quotes also the signature/encryption MML tags added via
message-setup-hook, causing the reply not to be signed/encrypted.

MML quote just the original message in the temp buffer before
inserting it to the message buffer, to not interfere with message mode
hooks or message construction in general.

See [1] and [2] for bug reports.

Thanks to Tim Bielawa <tbielawa@redhat.com> for testing.

[1] id:"87hay78x6l.fsf@wyzanski.jamesvasile.com"
[2] id:"1330812262-28272-1-git-send-email-tbielawa@redhat.com".

Signed-off-by: Jani Nikula <jani@nikula.org>
12 years agoemacs-hello: Do not calculate the count of the messages in hidden sections
Michal Sojka [Sat, 18 Feb 2012 22:12:29 +0000 (23:12 +0100)]
emacs-hello: Do not calculate the count of the messages in hidden sections

The result is that hello screen shows much faster when some sections are
hidden.

12 years agoMake exclusion visible again
David Bremner [Sat, 3 Mar 2012 12:56:15 +0000 (08:56 -0400)]
Make exclusion visible again

This reverts

dfee0f9 man: remove search.exclude_tags from notmuch-config.1 for 0.12
e83409d NEWS: revert NEWS item for exclude tags for 0.12
e77b031 config: disable addition of exclude tags for 0.12

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

12 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>
12 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.

12 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.

12 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.

12 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

12 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

12 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.

12 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.

12 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.

12 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

12 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

12 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.

12 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).

12 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.

12 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.

12 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.

12 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.

12 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.

12 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

12 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.

12 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 .

12 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).

12 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}'

12 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

12 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.

12 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.

12 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.

12 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.

12 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.

12 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.

12 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.

12 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.

12 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

12 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.

12 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.

12 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

12 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.

12 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.

12 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.

12 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.

12 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.

12 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.

12 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.

12 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

12 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.

12 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

12 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.

12 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

12 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.

12 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.

12 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"

12 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.

12 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'.

12 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>
12 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>
12 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>

12 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"

12 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>
12 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>
12 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>
12 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>