aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* man: add missing SEE ALSO header to notmuch reply man pageGravatar Jani Nikula2012-01-10
| | | | Signed-off-by: Jani Nikula <jani@nikula.org>
* emacs: Mark the quoted region during reply.Gravatar David Edmondson2012-01-10
| | | | | Mark the quoted region of text during a reply, making it easy for the user to delete it quickly.
* emacs: Better handling of inherited keymaps for `nomuch-help'.Gravatar David Edmondson2012-01-09
| | | | | | | | `notmuch-hello-mode' inherits the keymap for widgets, which confused `notmuch-substitute-command-keys'. Fix the confusion. Simplify `notmuch-substitute-command-keys' a little to make it easier to read.
* Merge branch 'master' of ssh://notmuchmail.org/git/notmuchGravatar Sebastian Spaeth2012-01-09
|\
| * cli: convert "notmuch reply" to use the new argument parserGravatar Jani Nikula2012-01-09
| | | | | | | | | | | | | | Use the new notmuch argument parser to handle arguments in "notmuch reply". There should be no functional changes. Signed-off-by: Jani Nikula <jani@nikula.org>
| * cli: fix use of uninitialized variable in "notmuch reply"Gravatar Jani Nikula2012-01-09
| | | | | | | | | | | | | | | | | | | | | | notmuch_show_params_t params is only initialized partially in notmuch_reply_command(). The only field that is used uninitialized is params.decrypt. It is usually non-zero, making "notmuch reply" on encrypted messages work by coincidence. Initialize params properly, and set params.decrypt as needed. Signed-off-by: Jani Nikula <jani@nikula.org>
| * emacs: Don't signal an error when reaching the end of the search results.Gravatar David Edmondson2012-01-09
| | | | | | | | | | | | | | | | | | With the default configuration ('space' moves through the messages matching the search and back to the results index at the end) it's unnecessary to signal an error when the last message has been read, as this is the common case. Moreover, it's very annoying when `debug-on-error' is t.
* | python test "compare message ids"Gravatar Patrick Totzke2012-01-08
| | | | | | | | | | | | Introduces a second (trivial) test for the python bindings that searches for message ids and compares the output with that of `notmuch search`.
* | clean up "compare thread ids" python testGravatar Patrick Totzke2012-01-08
|/ | | | | This makes the test script open the database in READ_ONLY mode and use the libraries own sorting methods instead of "sort".
* python: str.decode() doesn't like kwargs in python 2.5Gravatar Sebastian Spaeth2012-01-02
| | | | | | | | | Recent changes introduced lots of unicodification of strings, mostly in the form of .decode('utf-8', errors='ignore'). However, python 2.5 does not like the errors keyword argument and complains. It does work when used as a simple arg though, so that's what this patch does. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* python: make the result of Message.get_replies() more pythonicGravatar Justus Winter2012-01-02
| | | | | | | | | | | Formerly Message.get_replies() returned an iterator or None forcing users to check the result before iterating over it leading to strange looking code at the call site. Fix this flaw by adding an EmptyMessagesResult class that behaves like the Messages class but immediatly raises StopIteration if used as an iterator and returning objects of this type from Message.get_replies() to indicate that there are no replies.
* python: refactor print_messages into format_messages and print_messagesGravatar Justus Winter2012-01-02
|
* python: add missing conversions from and to utf-8Gravatar Justus Winter2012-01-02
|
* py3k: Add and use a mixin class that implements __str__Gravatar Justus Winter2012-01-02
| | | | | Amended by Sebastian Spaeth <Sebastian@SSpaeth.de> to include the required sys import in globals.py.
* py3k: Rename .next() to __next__(), add python2.x compatibility aliasGravatar Justus Winter2012-01-02
|
* py3k: All strings are unicode strings in py3kGravatar Justus Winter2012-01-02
|
* py3k: The ConfigParser module has been renamed to configparserGravatar Justus Winter2012-01-02
|
* py3k: The execfile built-in has been removed in python 3Gravatar Justus Winter2012-01-02
|
* lib: call g_mime_init() from notmuch_database_open()Gravatar Kazuo Teramoto2011-12-31
| | | | | | | | | | | | | | As reported in id:"CAEbOPGyuHnz4BPtDutnTPUHcP3eYcRCRkXhYoJR43RUMw671+g@mail.gmail.com" sometimes gmime tries to access a NULL pointer, e.g. g_mime_iconv_open() tries to access iconv_cache that is NULL if g_mime_init() is not called. This causes notmuch to segfault when calling gmime functions. Calling g_mime_init() initializes iconv_cache and others variables needed by gmime, making sure they are initialized when notmuch calls gmime functions. Test marked fix by db.
* test: add two new messages to corpus with iso-8859-1 encodingGravatar David Bremner2011-12-31
| | | | | | One is quoted printable, the other users 8 bit encoding. The latter triggers a bug in the python bindings due to missing call to g_mime_init. The corresponding test is marked broken in this commit.
* test: use file based comparison for search '*' testGravatar David Bremner2011-12-31
| | | | | This seems a bit easier to maintain, and is more accurate since lines are not joined together.
* notmuch: replace built-in help with exec of manGravatar David Bremner2011-12-31
| | | | | | | | | | | "notmuch help" now relies on a working man installation, and a correct setting of MANPATH, for users that install in "unusual" places. This should probably noted in NEWS before shipping. There is still some small duplication of docs as the one line summaries are hard coded in the binary. This seems preferable to complicated script games, at least as long was we are using a presentation level markup like nroff.
* force install notmuch-setup.1 symlinkGravatar Jameson Graef Rollins2011-12-31
| | | | This will prevent the install from failing if the link already exists.
* break up dump and restore man pages.Gravatar Jameson Graef Rollins2011-12-31
| | | | | | | | These functions are enough different in their behavior that it's not really worth it to combine them. They overlap in the format of the dump file, but we can have a separate page that describes the dump format, and either reference it or include it. This also keeps things nice and clean with one page per command.
* remove reference to notmuch-part.1 from Makefile.localGravatar Jameson Graef Rollins2011-12-31
|
* debian: install split man pages.Gravatar David Bremner2011-12-31
| | | | | We now have man pages in sections 5 and 7 as well, so we copy the whole /usr/share/man hierarchy.
* build-system: update for split man pagesGravatar David Bremner2011-12-31
| | | | | | | | | | | | | | | | | | - We have to remove the installation of notmuch.1.gz from the top level Makefile.local. - Man pages with multiple names are handled by making relative symlinks in the install-man target. - update version tests and convenience rules for split man pages The man page version test still only checks notmuch.1, but the location is updated. update-man-versions is longer than the one-line previously in update-versions mainly because I decided to take the high road and stick to POSIX sed (thus, no sed -i). The sed regex itself is more complicated to cope with variations in the headers.
* man/*: fixup page referencesGravatar David Bremner2011-12-31
| | | | | | | - Replace references to section X below with page refences. - Add SEE ALSO to each page. This is a bit error prone, because each SEE ALSO section is different, i.e. a page does not refer to itself.
* notmuch-config.1: fix typoGravatar David Bremner2011-12-31
|
* notmuch.1: smooth wording.Gravatar David Bremner2011-12-31
| | | | | After most of the content was ripped out of the page, a few words were needed to glue things back togetehr.
* man/*: formatting cleanupGravatar David Bremner2011-12-31
| | | | | | | | | | | | | | | | | | | | | | | | | | Fix some problems with indentation (controlled by markup) and whitespace. - notmuch.1: reformat Use .SS macro to make "notmuch setup" a subsection. Introduce another subsection for the remaining commands. - notmuch-config.1: reformat Put all the syntax in the synopsis. Supposedly this is the the UNIX way. - notmuch-reply.1: fix formatting issues. Give nicer formatting for synopsis. Insert missing SEE ALSO header. - notmuch-dump.1: reformat using subsections These seems more natural, although, as mentioned, it does require referring back to the synopsis. Or maybe copying parts of the synopsis
* man: add symlinks for notmuch-restore.1 and notmuch-setup.1Gravatar David Bremner2011-12-31
| | | | | | These are just for the convenience of testers using $src/man as an element of MANPATH. They are intentionally omitted from MAN1, so that they do not interfere with the install.
* remove notmuch-part from documentation.Gravatar David Bremner2011-12-31
| | | | | This should have been done when "notmuch part" was deprecated and replaced by notmuch show --part, but it slipped through the cracks.
* initial splitting of notmuch.1Gravatar David Bremner2011-12-31
| | | | | | | | We mostly just cut and paste the command descriptions into individual files, with a short header added to each one. The splitting into subdirectories is to support the use of ./man as an element in MANPATH, e.g. for testing.
* test/symbol-hiding: prepend new directory to LD_LIBRARY_PATHGravatar Tomi Ollila2011-12-31
| | | | | | | Tester may have set LD_LIBRARY_PATH to find libraries required by notmuch. Therefore add $TEST_DIRECTORY/../lib to the beginning of current list of library paths in $LD_LIBRARY_PATH before running symbol-test.
* test: Remove #! line from test-lib.shGravatar Austin Clements2011-12-29
| | | | | | | | It makes no sense to run test-lib.sh, so it makes no sense to give it an interpreter. This is particularly annoying for Emacs users who have executable-insert set, since the presence of the #! line will cause Emacs to mark test-lib.sh executable when saving it, which will in turn case the 'basic' test to fail.
* test: Make generated message date a real dateGravatar Austin Clements2011-12-29
| | | | | | | | | January 5, 2001 was a Tuesday, not a Friday. Jameson fixed this exact problem for the multipart test in ec2b0a98cc, but not for generate_message itself. As Jameson pointed out in ec2b0a98cc, if we want to test date parsing, we should do it separately.
* Ignore encrypted parts when indexing.Gravatar Jameson Graef Rollins2011-12-29
| | | | | | | | It appears to be an oversight that encrypted parts were indexed previously. The terms generated from encrypted parts are meaningless and do nothing but add bloat to the database. It is not worth indexing the encrypted content, just as it's not worth indexing the signatures in signed parts.
* test: allow user to choose which emacs to run tests with.Gravatar David Bremner2011-12-28
| | | | | | | | | | | | As we start to pay more attention to emacs24, it helps to be able to select a different version of emacs to run the tests with to verify version specific bugs. A separate variable TEST_EMACS is needed to avoid being overwritten by the make variable EMACS in Makefile.config For what it's worth, the value of emacs is chosen at the time tmp.emacs/run_emacs is created, so is fixed for all subtests.
* test: Updated the expected output to match the newly enabled text/plain hooks.Gravatar David Edmondson2011-12-28
|
* emacs: Enable more text/plain hook functions by default.Gravatar David Edmondson2011-12-28
| | | | | | | | | Users are missing out on various functions which usefully improve the display of text/plain message parts because they are not enabled by default. Enable a useful set. `notmuch-wash-convert-inline-patch-to-part' is _not_ enabled by default as it is based on a heuristic.
* test: emacs: test notmuch-wash-subject-to-* functionsGravatar Jani Nikula2011-12-28
| | | | Signed-off-by: Jani Nikula <jani@nikula.org>
* emacs: create patch filename from subject for inline patch fake partsGravatar Jani Nikula2011-12-28
| | | | | | | | | | | | | | | | | | | | | Use the mail subject line for creating a descriptive filename for the wash generated inline patch fake parts. The names are similar to the ones created by 'git format-patch'. If the user has notmuch-wash-convert-inline-patch-to-part hook enabled in notmuch-show-insert-text/plain-hook, this will change the old default filename of "inline patch" in fake parts: [ inline patch: inline patch (as text/x-diff) ] into, for example: [ 0002-emacs-create-patch-filename-from-subject-for-inline.patch: inline patch (as text/x-diff) ] which is typically the same filename the sender had if he was using 'git format-patch' and 'git send-email'. Signed-off-by: Jani Nikula <jani@nikula.org>
* emacs: add inline patch fake parts through a special handlerGravatar Jani Nikula2011-12-28
| | | | | | | | Add wash generated inline patch fake parts through a special "inline-patch-fake-part" handler to distinguish them from real MIME parts. The fake parts are described as "inline patch (as text/x-diff)". Signed-off-by: Jani Nikula <jani@nikula.org>
* show: Rewrite show_message_body to use the MIME tree interface.Gravatar Austin Clements2011-12-25
| | | | | | | | | | | | | | | | | | | | | This removes all of the MIME traversal logic from show_message_body and leaves only its interaction with the format callbacks. Besides isolating concerns, since traversal happens behind a trivial interface, there is now much less code duplication in show_message_part. Also, this uses mime_node_seek_dfs to start at the requested part, eliminating all of the logic about parts being selected or being in_zone (and reducing the "show state" to only a part counter). notmuch_show_params_t no longer needs to be passed through the recursion because the only two fields that mattered (related to crypto) are now handled by the MIME tree. The few remaining complexities in show_message_part highlight irregularities in the format callbacks with respect to top-level messages and embedded message parts. Since this is a rewrite, the diff is not very enlightening. It's easier to look at the old code and the new code side-by-side.
* Utility function to seek in MIME trees in depth-first order.Gravatar Austin Clements2011-12-25
| | | | | | | This function matches how we number parts for the --part argument to show. It will allow us to jump directly to the desired part, rather than traversing the entire tree and carefully tracking whether or not we're "in the zone".
* Introduce a generic tree-like abstraction for MIME traversal.Gravatar Austin Clements2011-12-25
| | | | | | | | | | | | | | This wraps all of the complex MIME part handling in a single, simple function that gets part N from *any* MIME object, so traversing a MIME part tree becomes a two-line for loop. Furthermore, the MIME node structure provides easy access to envelopes for message parts as well as cryptographic information. This code is directly derived from the current show_message_body code (much of it is identical), but the control relation is inverted: instead of show_message_body controlling the traversal of the MIME structure and invoking callbacks, the caller controls the traversal of the MIME structure.
* show: Pass notmuch_message_t instead of path to show_message_body.Gravatar Austin Clements2011-12-25
| | | | | In addition to simplifying the code, we'll need the notmuch_message_t* in show_message_body shortly.
* emacs: fix docstring for `notmuch-search-line-faces'.Gravatar Dmitry Kurochkin2011-12-24
| | | | | | | | | | | | | | Examples in documentation for `notmuch-search-line-faces' had an extra quote, e.g.: '(\"unread\" . '(:foreground \"green\")) Which resulted in values like: (\"unread\" quote (:foreground \"green\")) And tons of "Invalid face reference: quote" errors in the messages buffer.
* emacs: call notmuch-show instead of notmuch-search in buttonised id: linksGravatar Jameson Graef Rollins2011-12-24
| | | | | | | Since message-ids necessarily match just a single message, there's no reason to do a search for the id before viewing the actual message; the search just becomes an extra screen to click through. Clicking on an id: links now just jumps straight to the message itself.