Commit graph

4324 commits

Author SHA1 Message Date
Austin Clements
dc51bf0ad4 reply: Use RFC 2822/MIME wholly for text format template
Previously, reply's default text format used an odd mix of RFC 2045
MIME encoding for the reply template's body and some made-up RFC
2822-like UTF-8 format for the headers.  The intent was to present the
headers to the user in a nice, un-encoded format, but this assumed
that whatever ultimately sent the email would RFC 2047-encode the
headers, while at the same time the body was already RFC 2045 encoded,
so it assumed that whatever sent the email would *not* re-encode the
body.

This can be fixed by either producing a fully decoded UTF-8 reply
template, or a fully encoded MIME-compliant RFC 2822 message.  This
patch does the latter because it is

a) Well-defined by RFC 2822 and MIME (while any UTF-8 format would be
   ad hoc).

b) Ready to be piped to sendmail.  The point of the text format is to
   be minimal, so a user should be able to pop up the template in
   whatever editor they want, edit it, and push it to sendmail.

c) Consistent with frontend capabilities.  If a frontend has the
   smarts to RFC 2047 encode the headers before sending the mail, it
   probably has the smarts to RFC 2047 decode them before presenting
   the template to a user for editing.

Also, as far as I know, nothing automated consumes the reply text
format, so changing this should not cause serious problems.  (And if
anything does still consume this format, it probably gets these
encoding issues wrong anyway.)
2013-08-17 09:06:08 +02:00
Austin Clements
6cdab6e0b7 reply: Remove extraneous space from generated References
Previously, the References header code seemed to assume
notmuch_message_get_header would return NULL if the header was not
present, but it actually returns "".  As a result of this, it was
inserting an unnecessary space when concatenating an empty or missing
original references header with the new reference.

This shows up in only two tests because the text reply format later
passes the whole reply template through g_mime_filter_headers, which
has the side effect of stripping out this extra space.
2013-08-17 09:05:44 +02:00
Austin Clements
ad7bb423fb reply: Test replying to messages with RFC 2047-encoded headers 2013-08-17 09:04:07 +02:00
Austin Clements
a7696844f0 test: Make symbol-test depend on libnotmuch.so
Without this
$ make -j test
intermittently fails and
$ make clean; make test/symbol-test
always fails (not that anybody would do the latter).
2013-08-15 11:35:30 +02:00
Austin Clements
013d11c9f7 reply: Document the reason for g_mime_filter_headers
Given how long it took me to figure out why we pass the reply headers
through g_mime_filter_headers, it's worth a comment.
2013-08-13 17:44:08 +02:00
Austin Clements
3fbb518335 lib: Document which strings are returned in UTF-8
Any string that ultimately comes from notmuch_message_file_get_header
is in UTF-8.
2013-08-13 17:43:34 +02:00
Austin Clements
a7bf045fb1 lib: Correct out-of-date doc comment
notmuch_message_get_header started returning some headers straight
from the database in 567bcbc, but this comment explicitly claimed all
headers were read from the message file.
2013-08-13 17:43:07 +02:00
David Bremner
48f2b3f1bc release: synchronize dates
man pages, NEWS, and debian changelog all hardcode date.  Make them
hardcode the same date.
2013-08-03 08:29:40 -03:00
Mark Walters
15f5fc513d emacs: bugfix attachment content-type as mime-type handling
Notmuch puts attachments in as declared content-type except when the
content-type is application/octet-stream it tries to guess the type
from the filename/extension. This means that viewing a pdf (for
example) which is sent as application/octet-strem invokes the pdf
viewer rather than just offering to save the part.

Recent changes to the attachment handling (commit 1546387d) changed
(broke) this. This patch stores the calculated mime-type with the part
and changes the attachment part handlers can use it instead.
2013-07-31 17:46:09 -03:00
David Bremner
29762dd15e debian: rename notmuch-ruby to ruby-notmuch
This seems more in line with

http://wiki.debian.org/Teams/Ruby/Packaging#Guidelines_for_Ruby_packaging
2013-07-28 14:28:25 -03:00
David Bremner
0eb4213766 debian: build notmuch-vim again
Based on id:1370220299-14722-1-git-send-email-felipe.contreras@gmail.com

Hacked rather extensively by db. The most important changes:

       - bring back notmuch.yaml for the (debian specific?) vim-addons
         tool.
       - depend on vim-ruby, so we get a version of vim with ruby installed.
2013-07-28 13:48:02 -03:00
David Bremner
ec98f13a70 debian: update symbols for libnotmuch
Adding a new symbol should require an SONAME bump.
2013-07-28 11:28:04 -03:00
David Bremner
b739761629 debian: add alot to recommends
Since this is in a disjunction, this should not force new packages to
be installed, but rather let people with auto-install-recommends (the
default) on install notmuch without emacs.
2013-07-28 11:28:04 -03:00
David Bremner
59517e1816 debian: note that we now provide a notmuch-dbg package
This is already in upstream for a bit, but we lacked a changelog entry
closing the bug.
2013-07-28 11:28:03 -03:00
David Bremner
aef1c9cfa0 debian: close bug requesting packaging of notmuch-deliver
notmuch insert is pretty much equivalent, so no need to support both.
2013-07-28 11:28:03 -03:00
David Bremner
85bf67b24d debian: start new changelog entry
Since Debian uses the changelog as metadata, we need an empty stanza
to build the new version.
2013-07-28 11:28:03 -03:00
David Bremner
80b25792b2 version: set new version and release date
These are manually set in version and NEWS, and propagate to the other files via
"make update-versions"
2013-07-28 11:28:03 -03:00
Austin Clements
a933d45580 Put 0.16 NEWS in a reasonable order
The 0.16 NEWS grew chronologically during development, and as a result
wound up in a particularly odd order.  This rearranges it to put the
most user-visible news first.  Roughly: new features, modified
behavior, bug fixes, then deprecation, with related items grouped.

This does not modify the text of any of the news.
2013-07-28 09:51:42 -03:00
Mark Walters
e395f4507d emacs: hello: make --batch error gracefully
Recently notmuch-hello was converted to use batch count. However, it
seems that several people run different versions of notmuch-emacs and
notmuch-cli so this batch makes emacs fail with an error message if
--batch is not available in the CLI.

Amended by: db
2013-07-27 18:22:37 -03:00
Austin Clements
bd4704aa5c emacs: News for S-expressions everywhere
Update the news about search using S-expression support to also say
that show is also now faster.
2013-07-22 08:18:42 -03:00
Mark Walters
1fd1e57d93 contrib: pick: use notmuch-start-notmuch
This uses the new notmuch-start-notmuch function which should give
better handling of stderr and errors generally.
2013-07-20 14:20:17 -03:00
Jameson Graef Rollins
348437243c crypto: return NULL cryptoctx if protocol string is empty.
Badly formed messages that don't specify a protocol in
signed/encrypted parts, end up with a protocol of NULL.  strcasecmp in
notmuch_crypto_get_context then segfaults when trying to check it
against known protocols.  If the protocol is NULL, just return an
empty context immediately (with appropriate message.)
2013-07-20 09:13:48 -03:00
Tomi Ollila
03e2def474 NEWS: Python bindings: Fix loading of libnotmuch on OS X (Darwin) 2013-07-20 09:13:48 -03:00
Tomi Ollila
2bd374c91e emacs: dropped rest of now-unused JSON functionality
Notmuch cli provides all structured data previously provided
in json format now in s-expression format, rendering all current
json functionality obsolete.
2013-07-20 09:13:48 -03:00
Peter Wang
3553b0a288 NEWS: announce insert command 2013-07-20 09:13:48 -03:00
Daniel Kahn Gillmor
ef8151c8e2 debian: Add package for debugging symbols (Closes: #717339) 2013-07-20 09:13:47 -03:00
Tomi Ollila
acb079e357 Python bindings: CDLL("libnotmuch.3.dylib") on Darwin
Use os.uname() to check for 'Darwin' and load "libnotmuch.3.dylib"
instead of "libnotmuch.so.3" if that is the case.
2013-07-09 08:38:42 +02:00
Mark Walters
b60fb3309c contrib: pick: document several of the tree/forest insertion functions. 2013-07-04 00:41:45 -03:00
Mark Walters
4c09e67adf pick: contrib: document notmuch-pick-message-window-kill-hook 2013-07-04 00:41:32 -03:00
Mark Walters
a8ade6b144 pick: contrib: document notmuch-pick-refresh-result 2013-07-04 00:41:15 -03:00
Mark Walters
bb03a26c25 pick: contrib: document notmuch-pick-show-out 2013-07-04 00:40:44 -03:00
Mark Walters
1ed9db6c30 contrib: pick: remove unused function
The function notmuch-pick-show-error was used before Austin's improved
error handling. It is now redundant so remove.
2013-07-04 00:37:47 -03:00
Mark Walters
3d772a0a85 contrib: pick: remove unused variable
This variable was needed at one point for the async parser but is not
needed anymore.
2013-07-04 00:37:37 -03:00
Mark Walters
8c33fde83e contrib: pick: bugfix: make the right variable buffer-local
The variable notmuch-pick-message-buffer should be buffer local but
instead notmuch-pick-message-buffer-name (a non-existent variable) was
made buffer local.
2013-07-04 00:37:30 -03:00
Mark Walters
3a8163e17f contrib: pick: add docstrings to all defvars 2013-07-04 00:37:21 -03:00
Mark Walters
91777f8dc9 contrib: pick: add a docstring for the main notmuch-pick function 2013-07-04 00:37:13 -03:00
Mark Walters
eb26cd1fba contrib: pick: fix refresh result
The function notmuch-pick-refresh-result (used to update tag changes)
was not quite correct: sometimes it got the choice between the subject
and " ..." wrong. This was always true but the new code often calls
this (when opening a message in the message pane to remove the unread
tag) while the async pick process is still running and this caused
mistakes which made the tests fail.

Thus we store the previous subject with the message.
2013-07-04 00:36:38 -03:00
Mark Walters
a9dbcbb00c contrib: pick: remove hack notmuch-pick-show-match-message-with-wait
This function was a horrible hack (sleeping while waiting for the
correct message). The new target code can just open the message in the
message window when it arrives.
2013-07-04 00:36:26 -03:00
Mark Walters
f9aad24f02 contrib: pick: if no target specified go to first matching message 2013-07-04 00:36:19 -03:00
Peter Wang
9a64b2df29 test: test insert --create-folder option
Add tests for notmuch insert --create-folder option.
2013-07-04 00:08:16 -03:00
Peter Wang
d494271d79 man: document insert --create-folder
Add documentation for notmuch insert --create-folder option.
2013-07-04 00:07:48 -03:00
Peter Wang
426558d37e insert: add --create-folder option
Allow the insert command to create the maildir folder
into which the new message should be delivered.
2013-07-04 00:05:11 -03:00
Peter Wang
0c4b8aa736 test: test insert --folder option
Add tests for notmuch insert --folder option.
2013-07-01 12:23:09 -03:00
Peter Wang
9a5b129002 man: document insert --folder option
Add documentation for notmuch insert --folder option.
2013-07-01 12:22:57 -03:00
Peter Wang
51590d0f27 insert: add --folder option
Allow the new message to be inserted into a folder within the Maildir
hierarchy instead of the top-level folder.
2013-07-01 12:22:48 -03:00
Peter Wang
7e3a7ed62f test: add tests for insert
Add tests for new 'insert' command.
2013-06-29 19:29:02 -03:00
Peter Wang
1e690347a7 man: reference notmuch-insert.1
Add references to notmuch-insert.1 from other man pages.
2013-06-29 19:28:18 -03:00
Peter Wang
c8365d0995 man: document 'insert' command
Add initial documentation for notmuch insert command.
2013-06-29 14:42:50 -03:00
Peter Wang
9439a1ec0c cli: add insert command
The notmuch insert command reads a message from standard input,
writes it to a Maildir folder, and then incorporates the message into
the notmuch database.  Essentially it moves the functionality of
notmuch-deliver into notmuch.

Though it could be used as an alternative to notmuch new, the reason
I want this is to allow my notmuch frontend to add postponed or sent
messages to the mail store and notmuch database, without resorting to
another tool (e.g. notmuch-deliver) nor directly modifying the maildir.
2013-06-29 14:42:20 -03:00
Peter Wang
f00c925bd1 tag-util: do not reset list in parse_tag_command_line
The 'insert' command will be better served if parse_tag_command_line
modifies a pre-populated list (of new.tags) instead of clobbering the
list outright.  The sole existing caller, notmuch_tag_command, is
unaffected by this change.
2013-06-29 14:36:23 -03:00