Austin Clements [Tue, 27 Mar 2012 21:59:50 +0000 (17:59 -0400)]
show/reply: Unify the code that extracts text parts
Previously, show and reply had separate implementations of decoding
and printing text parts. Now both use show's implementation, which
was more complete. Show's implementation has been extended with an
option to add reply quoting to the extracted part (this is implemented
as a named flag to avoid naked booleans, even though it's the only
flag it can take).
Austin Clements [Tue, 27 Mar 2012 01:37:16 +0000 (21:37 -0400)]
emacs: Escape all message ID queries
This adds a lib function to turn a message ID into a properly escaped
message ID query and uses this function wherever we previously
hand-constructed ID queries. Wherever this new function is used,
documentation has been clarified to refer to "id: queries" instead of
"message IDs".
This fixes the broken test introduced by the previous patch.
Austin Clements [Tue, 27 Mar 2012 01:37:15 +0000 (21:37 -0400)]
test: Add Emacs test for messages with quotes in their message ID
Currently this is broken because Emacs doesn't properly escape double
quotes in message IDs.
Jani Nikula [Mon, 26 Mar 2012 21:04:11 +0000 (00:04 +0300)]
cli: refactor "notmuch restore" message tagging into a separate function
Refactor to make tagging code easier to reuse in the future. No
functional changes.
Signed-off-by: Jani Nikula <jani@nikula.org>
Jani Nikula [Mon, 26 Mar 2012 21:04:10 +0000 (00:04 +0300)]
cli: refactor "notmuch tag" query tagging into a separate function
Refactor to make tagging code easier to reuse in the future. No
functional changes.
Signed-off-by: Jani Nikula <jani@nikula.org>
Jani Nikula [Mon, 26 Mar 2012 21:04:09 +0000 (00:04 +0300)]
cli: refactor "notmuch tag" data structures for tagging operations
To simplify code, keep all tagging operations in a single array
instead of separate add and remove arrays. Apply tag changes in the
order specified on the command line, instead of first removing and
then adding the tags.
This results in a minor functional change: If a tag is both added and
removed, the last specified operation is now used. Previously the tag
was always added. Change the relevant test to reflect the new
behaviour.
Signed-off-by: Jani Nikula <jani@nikula.org>
Jani Nikula [Mon, 26 Mar 2012 21:04:08 +0000 (00:04 +0300)]
test: add test for both adding and removing a tag at the same time
The current behaviour is that regardless of the order in which the
addition and removal of a tag are specified, the tag is added.
Signed-off-by: Jani Nikula <jani@nikula.org>
Mark Walters [Sun, 25 Mar 2012 00:43:28 +0000 (00:43 +0000)]
emacs: content-type comparison should be case insensitive.
The function notmuch-match-content-type was comparing content types
case sensitively. Fix it so it tests case insensitively.
This fixes a bug where emacs would not include any body when replying
to a message with content-type TEXT/PLAIN.
Stefano Zacchiroli [Mon, 26 Mar 2012 08:51:44 +0000 (10:51 +0200)]
debian packaging: new binary package notmuch-mutt
Stefano Zacchiroli [Mon, 26 Mar 2012 08:45:58 +0000 (10:45 +0200)]
contrib: new mutt-notmuch utility for Mutt integration
Tomi Ollila [Wed, 21 Mar 2012 19:32:29 +0000 (21:32 +0200)]
NEWS: consistent 2-space indentation in new content
Some 0.12 NEWS items descriptions were indented with 3 spaces whereas
all other lines are indented with 2 spaces. Brought those
escaped lines back in line with others.
David Bremner [Tue, 20 Mar 2012 22:07:36 +0000 (19:07 -0300)]
Merge tag 'debian/0.12-1'
notmuch Debian 0.12-1 upload (same as 0.12 + debian changelog fix)
David Bremner [Tue, 20 Mar 2012 18:43:35 +0000 (15:43 -0300)]
debian: reword changelog about ignores
Tomi Ollila [Wed, 14 Mar 2012 15:00:00 +0000 (17:00 +0200)]
Allow selecting which version of gmime is used to build notmuch.
This allows for testing against both versions of gmime on a single
machine, without having to mess with pkg-config paths.
This is rework of Tom Prince's patch submitted in
id:"
1331402091-15663-1-git-send-email-tom.prince@ualberta.net"
Tomi Ollila [Wed, 14 Mar 2012 14:59:59 +0000 (16:59 +0200)]
configure: store $IFS to $DEFAULT_IFS readonly variable
In the future, IFS value needs to be changed in a few places
in configure -- and then restored. Store the original value
to $DEFAULT_IFS for easy restoration.
Justus Winter [Mon, 5 Mar 2012 10:23:44 +0000 (11:23 +0100)]
Do not try to parse the options for --build and --host arguments
Formerly the code assumed the arguments to be triples and threw an
error if this was not the case. But those arguments are only there for
compatibility with autotools and are not used within the build system,
so just dropping the code parsing these values makes the build system
more robust.
Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
Justus Winter [Mon, 5 Mar 2012 10:23:43 +0000 (11:23 +0100)]
Add GNU as a valid platform
Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
David Bremner [Tue, 20 Mar 2012 11:08:17 +0000 (08:08 -0300)]
Merge tag '0.12'
notmuch 0.12 release
David Bremner [Tue, 20 Mar 2012 10:47:24 +0000 (07:47 -0300)]
add NEWS item for printing
David Bremner [Tue, 20 Mar 2012 01:48:24 +0000 (22:48 -0300)]
Merge branch 'release'
Conflicts:
NEWS
Conflicts resolved by hand for date of 0.12 release.
David Bremner [Tue, 20 Mar 2012 01:43:50 +0000 (22:43 -0300)]
debian: add changelog stanza for 0.12
Include extremely terse summary of NEWS.
David Bremner [Tue, 20 Mar 2012 01:32:23 +0000 (22:32 -0300)]
NEWS: add news item for help = man page
As we discovered recently on the list, this really is new for 0.12
David Bremner [Tue, 20 Mar 2012 01:28:17 +0000 (22:28 -0300)]
update version to 0.12
There may be a few NEWS changes after this, but no code (hopefully).
David Bremner [Tue, 20 Mar 2012 01:25:05 +0000 (22:25 -0300)]
NEWS: update discussion of GMime 2.6 version requirements.
Be more specific than "Current GMime 2.6". Also explain why we need
>=2.6.7
David Bremner [Tue, 20 Mar 2012 01:15:05 +0000 (22:15 -0300)]
NEWS: set release date for 0.12
Adam Wolfe Gordon [Sun, 18 Mar 2012 16:32:43 +0000 (10:32 -0600)]
NEWS: news for reply enhancements
Adam Wolfe Gordon [Sun, 18 Mar 2012 16:32:42 +0000 (10:32 -0600)]
emacs: Use the new JSON reply format and message-cite-original
Use the new JSON reply format to create replies in emacs. Quote HTML
parts nicely by using mm-display-part to turn them into displayable
text, then quoting them with message-cite-original. This is very
useful for users who regularly receive HTML-only email.
Use message-mode's message-cite-original function to create the
quoted body for reply messages. In order to make this act like the
existing notmuch defaults, you will need to set the following in
your emacs configuration:
message-citation-line-format "On %a, %d %b %Y, %f wrote:"
message-citation-line-function 'message-insert-formatted-citation-line
The tests have been updated to reflect the (ugly) emacs default.
Adam Wolfe Gordon [Sun, 18 Mar 2012 16:32:41 +0000 (10:32 -0600)]
test: Add broken tests for new emacs reply functionality
Add tests for creating nice replies to multipart messages, including
those with HTML parts. These tests are expected to fail for now.
Adam Wolfe Gordon [Sun, 18 Mar 2012 16:32:40 +0000 (10:32 -0600)]
emacs: Factor out useful functions into notmuch-lib
Move a few functions related to handling multipart/alternative parts
into notmuch-lib.el, so they can be used by future reply code.
Adam Wolfe Gordon [Sun, 18 Mar 2012 16:32:39 +0000 (10:32 -0600)]
man: Add --decrypt to reply flags
Adam Wolfe Gordon [Sun, 18 Mar 2012 16:32:38 +0000 (10:32 -0600)]
man: Update notmuch-reply man page for JSON format.
Adam Wolfe Gordon [Sun, 18 Mar 2012 16:32:37 +0000 (10:32 -0600)]
schemata: Add documentation for JSON reply format.
Adam Wolfe Gordon [Sun, 18 Mar 2012 16:32:36 +0000 (10:32 -0600)]
reply: Add a JSON reply format.
This new JSON format for replies includes headers generated for a
reply message as well as the headers of the original message. Using
this data, a client can intelligently create a reply. For example, the
emacs client will be able to create replies with quoted HTML parts by
parsing the HTML parts.
Adam Wolfe Gordon [Sun, 18 Mar 2012 16:32:35 +0000 (10:32 -0600)]
TODO: Add replying to multiple messages
Adam Wolfe Gordon [Sun, 18 Mar 2012 16:32:34 +0000 (10:32 -0600)]
reply: Factor out reply creation
Factor out the creation of a reply message based on an original
message so it can be shared by different reply formats.
Adam Wolfe Gordon [Sun, 18 Mar 2012 16:32:33 +0000 (10:32 -0600)]
test: Add broken test for the new JSON reply format.
David Bremner [Sun, 18 Mar 2012 13:15:47 +0000 (10:15 -0300)]
NEWS: start section for 0.13
People are making patches for the 0.12 NEWS section for features that
won't be there.
Let's help them out by adding a new stanza.
Austin Clements [Fri, 16 Mar 2012 03:13:12 +0000 (23:13 -0400)]
emacs: Fix search tab completion in terminals
In X, Emacs distinguishes the tab key, which produces a 'tab event;
from C-i, which produces a ?\t event. However, in a terminal, these
are indistinguishable and only produce a ?\t event. In order to
simplify things, Emacs automatically translates from 'tab to ?\t (see
"Function key translations" in M-x describe-bindings), so functions
only need to be bound to ?\t to work in all situations.
Previously, the search tab completion code usedq (kbd "<tab>"), which
produced the event sequence [tab], which only matched the 'tab event
and hence only worked in X. This patch changes it to (kbd "TAB"),
which matches the general ?\t event and works in all situations.
Mark Walters [Wed, 14 Mar 2012 12:26:54 +0000 (12:26 +0000)]
lib: fix an exclude bug
When the exclude tags contain a tag that does not occur anywhere in
the Xapian database the exclusion fails. We modify the way the query
is constructed to `work around' this. (In fact the new code is cleaner
anyway.)
It also seems to fix another exclusion failure bug reported by
jrollins but we have not yet worked out why it helps in that case.
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.
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.
Austin Clements [Wed, 14 Mar 2012 02:31:31 +0000 (22:31 -0400)]
lib: Add exclude query debug output
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.
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.
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"
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.
Austin Clements [Tue, 6 Mar 2012 18:48:44 +0000 (18:48 +0000)]
man: Update raw format documentation
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.
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.
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.
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.
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.
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.
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.
David Bremner [Sun, 18 Mar 2012 11:36:33 +0000 (08:36 -0300)]
Merge tag '0.12_rc2'
notmuch 0.12~rc2 release
David Bremner [Sun, 18 Mar 2012 11:16:55 +0000 (08:16 -0300)]
debian: changelog stanza for 0.12~rc2
mention the two bugfixes
David Bremner [Sun, 18 Mar 2012 11:07:00 +0000 (08:07 -0300)]
bump version to 0.12~rc2
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>
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>
David Bremner [Thu, 15 Mar 2012 02:01:38 +0000 (23:01 -0300)]
Merge branch 'release'
Jani Nikula [Wed, 14 Mar 2012 21:21:10 +0000 (23:21 +0200)]
NEWS: emacs: enable `notmuch-search-line-faces' by default
David Bremner [Thu, 15 Mar 2012 01:58:20 +0000 (22:58 -0300)]
Merge branch 'release'
Jani Nikula [Wed, 14 Mar 2012 21:21:11 +0000 (23:21 +0200)]
NEWS: cli: manual page for notmuch configuration options
Jani Nikula [Wed, 14 Mar 2012 21:21:09 +0000 (23:21 +0200)]
NEWS: emacs: inline patch fake attachment file names
Jani Nikula [Wed, 14 Mar 2012 21:21:08 +0000 (23:21 +0200)]
NEWS: emacs: support text/calendar MIME type
Jani Nikula [Wed, 14 Mar 2012 21:21:07 +0000 (23:21 +0200)]
NEWS: emacs: show view archiving key binding changes
Jani Nikula [Wed, 14 Mar 2012 21:21:06 +0000 (23:21 +0200)]
NEWS: emacs: Fix MML tag quoting in replies
David Bremner [Wed, 14 Mar 2012 01:09:56 +0000 (22:09 -0300)]
Merge branch 'release'
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
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).
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"
David Bremner [Sun, 11 Mar 2012 01:46:26 +0000 (21:46 -0400)]
Merge branch 'release'
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.
Austin Clements [Tue, 6 Mar 2012 18:26:57 +0000 (18:26 +0000)]
Handle errors in mime_node_open
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>
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.
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
David Bremner [Sat, 3 Mar 2012 15:56:36 +0000 (11:56 -0400)]
Merge branch 'release'
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>
David Bremner [Sat, 3 Mar 2012 13:40:18 +0000 (09:40 -0400)]
debian: Bump standards version
No actual changes are needed.
David Bremner [Sat, 3 Mar 2012 13:38:45 +0000 (09:38 -0400)]
debian: update .gitignore
Ignore individual binary package directories.
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.
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
Mark Walters [Wed, 29 Feb 2012 18:13:06 +0000 (18:13 +0000)]
NEWS: revert NEWS item for 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.
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.
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.
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
Mark Walters [Thu, 1 Mar 2012 22:30:42 +0000 (22:30 +0000)]
man: update manpage for notmuch-show --no-exclude option
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.
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).
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.
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.
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.
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.
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.
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
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.
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 .
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).