Commit graph

3181 commits

Author SHA1 Message Date
Mark Walters
075d7df01e emacs: make show set --exclude=false
Show has to set --exclude=false to deal with cases where it is asked
to show a single excluded message. It uses JSON so it can easily pass
the exclude information to the user.
2012-04-07 23:06:31 -03:00
Mark Walters
6478e1bc92 test: add some exclude tests
Systematically test the exclude options for search. Also move the
search existing exclude tests into the new test. There is some overlap
between the two sets of tests but many of the existing ones are there
because they triggered bugs in the past so I have kept them to ensure
coverage.
2012-04-07 23:06:21 -03:00
Mark Walters
903327279c cli: move show to the new --exclude= option naming scheme.
This moves notmuch show to the --exclude=(true|false) naming
scheme. When exclude=false show returns all threads that match
including those that only match in an excluded message. The excluded
messages are flagged.

When exclude=true the behaviour depends on whether --entire-thread is
set. If it is not set then show only returns the messages which match
and are not excluded. If it is set then show returns all messages in
the threads that match in a non-excluded message, flagging the excluded
messages in these threads. The rationale is that it is awkward to use
a thread with some missing messages.
2012-04-07 23:05:56 -03:00
Mark Walters
fd62a25f91 cli: move search to the new --exclude= naming scheme.
This commit replaces the --no-exclude option with a
--exclude=(true|false|flag) option. The default is to omit the
excluded messages.

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

Note this changes the default for output=summary when no --exclude=
option is given: it used to default to flag and now defaults to true
(i.e. omit excluded messages). This is neccesary to keep the cli
output uncluttered and for speed reasons.
2012-04-07 23:05:41 -03:00
Mark Walters
785c1e497f cli: move count to the new --exclude=(true|false|flag) naming scheme.
Move the option --no-exclude to the --exclude= scheme. Since there is
no way to flag messages only true and false are implemented. Note
that, for consistency with other commands, this is implemented as a
keyword option rather than a boolean option.
2012-04-07 23:05:18 -03:00
Mark Walters
d6fbef4690 lib: change default for notmuch_query_set_omit_excluded 2012-04-07 22:58:33 -03:00
Jani Nikula
052000f85a emacs: do not modify the alist passed to notmuch-sort-saved-searches
Sort modifies its input as a side effect. Pass it a copy in
notmuch-sort-saved-searches to not modify the notmuch-saved-searches
alist.
2012-04-06 12:34:16 -03:00
David Bremner
6acd61dad9 configure: change gmime version in help message to 2.6
Since GMime 2.6 is now the stable version upstream, and probably the
most tested by notmuch developers, it makes sense to suggest that to
users to install.
2012-04-05 08:01:32 -03:00
Tomi Ollila
3c7d97c3c7 configure: print info about required gmime 2.4 or 2.6 versions
In case required gmime (2.4 or 2.6) version if not found print information
about both alternatives (and currently minimal 2.6 version that is needed).
2012-04-05 07:53:04 -03:00
Tomi Ollila
e8138c522b configure: add empty line after each missing component message
Currently whenever message about missing GMime, Glib or talloc is
printed the message is 2 lines, component info and its http location
in next line. In the future the amount of lines will vary. To ease
reading in these cases newline is added after each message.
2012-04-05 07:50:51 -03:00
Dmitry Kurochkin
1361dd37bc emacs: fix off-by-one error in notmuch-hello column alignment
Expected results for few tests are fixed, the relevant test is
unmarked broken.
2012-04-05 07:40:12 -03:00
Dmitry Kurochkin
818790f7b5 test: add broken test for long names in Emacs notmuch-hello view
Currently, the column alignment in Emacs notmuch-hello is broken for
tags/queries with long names.
2012-04-05 07:37:53 -03:00
Adam Wolfe Gordon
e4844fafec emacs: Fix the References header in reply
In the new reply code, the References header gets inserted by
message.el using a function called message-shorten-references. Unlike
all the other header-inserting functions, it doesn't put a newline
after the header, causing the next header to end up on the same
line. In our case, this header happened to be User-Agent, so it's hard
to notice. This is probably a bug in message.el, but we need to work
around it.

This fixes the problem by wrapping message-shorten-references in a
function that inserts a newline after if necessary. This should
protect against the message.el bug being fixed in the future.
2012-04-02 17:47:04 -03:00
Adam Wolfe Gordon
bc531924e0 test: Show all headers in emacs reply tests
By default, emacs hides the User-Agent and References headers when
composing mail. This is a good thing for users, but a bad thing for
testing, since we can create ugly or invalid headers and not have it
show up in the tests.

By setting message-hidden-headers to an empty list, we force emacs to
show all the headers, so we can check that they're correct. Users
won't see this, but it will let us catch future bugs.

As a side-effect, this breaks all the reply tests, since there is a
bug with the References and User-Agent headers, fixed in the next commit.
2012-04-02 17:45:36 -03:00
Adam Wolfe Gordon
3737ca6e26 emacs: Fix two bugs in reply
Bug 1: Replying from alternate addresses
----------------------------------------

The reply code was inconsistent in its use of symbols and strings for
header names being passed to message.el functions. This caused the
From header to be lookup up incorrectly, causing an additional From
header to be added with the user's primary address instead of the
correct alternate address.

This is fixed by using symbols everywhere, i.e. never using strings
for header names when interacting with message.el.

This change also removes our use of `mail-header`, since we don't use
it anywhere else, and using assq makes it clear how the header lists
are expected to work.

Bug 2: Duplicate headers in emacs 23.2
--------------------------------------

The message.el code in emacs 23.2 assumes that header names will
always be passed as symbols, so our use of strings caused
problems. The symptom was that on 23.2 (and presumably on earlier
versions) the reply message would end up with two of some headers.

Converting everything to symbols also fixes this issue.
2012-04-02 17:45:27 -03:00
Adam Wolfe Gordon
b45b72aa14 test: Tests for reply from alternate addresses in emacs
Since the recent reply changes were pushed, there has been a bug that
causes emacs to always reply from the primary address, even if the
JSON or default CLI reply output uses an alternate address.

This adds two tests to the emacs test library based on the two "Reply
form..." tests in the reply test library. One is currently marked
broken.
2012-04-02 17:45:16 -03:00
Stefano Zacchiroli
f162b19148 notmuch-mutt: fix typo in manpage 2012-03-31 11:33:45 -03:00
Stefano Zacchiroli
84f7ac7fc3 NEWS: document inclusion of contrib/notmuch-mutt 2012-03-31 11:33:40 -03:00
Austin Clements
839a80513a emacs: Fix mis-named argument to notmuch-get-bodypart-internal
Previously, this function took an argument called "message-id", even
though it was a general query, rather than a message ID.  This changes
it to "query".
2012-03-31 08:27:15 -03:00
Austin Clements
4ba18958b5 reply: Move reply citation printing to the recursive MIME walk
This makes more logical sense, since it makes the recursive printer
responsible for the entire reply body and lets it start at the root of
the MIME tree instead of the first child.  (We could move reply header
creation in there, too, but if we ever support proper reply to
multiple messages, we'll want just one set of reply headers computed
from the entire message set and many bodies.)
2012-03-31 08:17:55 -03:00
Austin Clements
4d322fb579 reply: Convert default reply format to self-recursive style
This re-arranges the default reply formatter code to use the
mime_node_t abstraction.  There are no semantic changes.
2012-03-31 08:17:41 -03:00
Austin Clements
ea4fd50f45 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).
2012-03-31 08:17:20 -03:00
Austin Clements
ee1180018e 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.
2012-03-30 21:27:03 -03:00
Austin Clements
5ae960fc19 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.
2012-03-30 21:23:43 -03:00
Jani Nikula
7400e18fb5 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>
2012-03-30 21:22:44 -03:00
Jani Nikula
9605e62099 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>
2012-03-30 21:22:31 -03:00
Jani Nikula
8e3ff8fb03 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>
2012-03-30 21:20:36 -03:00
Jani Nikula
918b803597 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>
2012-03-30 21:20:21 -03:00
Mark Walters
f57ef64302 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.
2012-03-30 21:19:50 -03:00
Stefano Zacchiroli
46e73fe539 debian packaging: new binary package notmuch-mutt 2012-03-30 18:13:01 -03:00
Stefano Zacchiroli
d13810dc1e contrib: new mutt-notmuch utility for Mutt integration 2012-03-30 18:12:49 -03:00
Tomi Ollila
2b97293b15 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.
2012-03-22 08:30:41 -03:00
David Bremner
0e38650434 notmuch Debian 0.12-1 upload (same as 0.12 + debian changelog fix)
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iJwEAAECAAYFAk9o/J4ACgkQTiiN/0Um85kr2AP7BVAL5kgCoAzZRXaeGuAz6Tcd
 PwchpB/B6CICvKrY6uf8VkMk+0uHVKGruh9oq0PgZJL0pJyLoI1aD597iMkfZeMN
 HiCzwAJtqlzxCVMPiBVK4DgDAn0JAfUpzO/kI8BcXWbp8CJkV7p2ljJ/e/j3flb+
 9Mfo4xluBC570mqAl30=
 =oYkn
 -----END PGP SIGNATURE-----

Merge tag 'debian/0.12-1'

notmuch Debian 0.12-1 upload (same as 0.12 + debian changelog fix)
2012-03-20 19:07:36 -03:00
David Bremner
331f0cac61 debian: reword changelog about ignores 2012-03-20 18:54:10 -03:00
Tomi Ollila
8bf1842b19 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"
2012-03-20 08:11:27 -03:00
Tomi Ollila
1ef9f769d7 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.
2012-03-20 08:10:57 -03:00
Justus Winter
1984a26646 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>
2012-03-20 08:10:57 -03:00
Justus Winter
524f01a7b5 Add GNU as a valid platform
Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
2012-03-20 08:10:57 -03:00
David Bremner
596a2076dc notmuch 0.12 release
-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.11 (GNU/Linux)
 
 iJwEAAECAAYFAk9oZIIACgkQTiiN/0Um85l6lwP/UxuYsiowXRFj8WcZGmiqoa9U
 qcst0CrJ8EX8ZsSD7fHT6z0S10wQsnqvjptCdsDePq5aMcvdOAJjG1r8deQt1w4I
 uVN75afBsRbCxfBwEuuOu6jIwl2Ug5bGHcJboxcyTl39w0w/pYVdHNguO3wfyeZZ
 On+4LZAKrETGpGwZWgQ=
 =Utq2
 -----END PGP SIGNATURE-----

Merge tag '0.12'

notmuch 0.12 release
2012-03-20 08:08:17 -03:00
David Bremner
0dcdc2ae8a add NEWS item for printing 2012-03-20 07:47:24 -03:00
David Bremner
2ee1d8e1c7 Merge branch 'release'
Conflicts:
	NEWS

Conflicts resolved by hand for date of 0.12 release.
2012-03-19 22:48:24 -03:00
David Bremner
82fd8c1a83 debian: add changelog stanza for 0.12
Include extremely terse summary of NEWS.
2012-03-19 22:43:50 -03:00
David Bremner
5b6a91849c NEWS: add news item for help = man page
As we discovered recently on the list, this really is new for 0.12
2012-03-19 22:32:23 -03:00
David Bremner
c302bfa2f6 update version to 0.12
There may be a few NEWS changes after this, but no code (hopefully).
2012-03-19 22:28:17 -03:00
David Bremner
686ed4c6ad 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
2012-03-19 22:25:05 -03:00
David Bremner
7fb0eb3293 NEWS: set release date for 0.12 2012-03-19 22:15:05 -03:00
Adam Wolfe Gordon
eb82b4551a NEWS: news for reply enhancements 2012-03-19 22:03:46 -03:00
Adam Wolfe Gordon
650123510c 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.
2012-03-19 22:03:23 -03:00
Adam Wolfe Gordon
8420ba1035 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.
2012-03-19 22:01:13 -03:00
Adam Wolfe Gordon
950789f3c3 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.
2012-03-19 21:59:24 -03:00