aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* Fix a few documentation typos in notmuch.hGravatar Fernando Carrijo2010-03-09
| | | | | | Fix a few documentation typos in notmuch.h Signed-off-by: Fernando Carrijo <fcarrijo@yahoo.com.br>
* Update documentation of notmuch_query_createGravatar Fernando Carrijo2010-03-09
| | | | | | | | | | | Commit cd467caf renamed notmuch_query_search to notmuch_query_search_messages. Commit 1ba3d46f created notmuch_query_search_threads. We better keep the docs of notmuch_query_create consistent with those changes. Signed-off-by: Fernando Carrijo <fcarrijo@yahoo.com.br> Edited-by: Carl Worth to explicitly list the full name of each function being referenced.
* notmuch show: Don't show empty headers.Gravatar Carl Worth2010-03-09
| | | | | | | This is a fairly old regression. There has always been code to avoid printing empty headers (such as Cc or Bcc with no values), but it has been broken since notmuch_message_get_header was changed to return an empty string rather than a NULL pointer for these fields.
* TODO: Add proposal for a saved-search interface.Gravatar Carl Worth2010-03-09
| | | | Adding this to our TODO list so that it doesn't get forgotten.
* TODO: Remove many items that have been completed recently.Gravatar Carl Worth2010-03-09
| | | | | | | | | There's been a lot of good work done, and we've been doing a generally poor job of noticing when some of the tasks we've completed were already on our TODO list. So here's a careful scan, removing all items I could find that have already been done.
* emacs: Fix documentation of notmuch-search-remove-tag.Gravatar Carl Worth2010-03-09
| | | | | | | The behavior was changed in commit 4aff2ca55bfe285ced36e9fe02c907d8b4120672 to affect all messages in the thread (and not only those matching the current search) but the documentation was not updated (until now).
* lib: Document what move_to_next does at the end of the list.Gravatar Carl Worth2010-03-09
| | | | | Explicitly mention that there's an invalid position after the last item in the list.
* lib: Rename iterator functions to prepare for reverse iteration.Gravatar Carl Worth2010-03-09
| | | | | | | | We rename 'has_more' to 'valid' so that it can function whether iterating in a forward or reverse direction. We also rename 'advance' to 'move_to_next' to setup parallel naming with the proposed functions 'move_to_first', 'move_to_last', and 'move_to_previous'.
* emacs: Fix backspace to not scroll more than the previous messageGravatar Carl Worth2010-03-09
| | | | | The bug was occuring due to counting invisible lines, but then scrolling past them since they are invisible.
* emacs: Unbreak notmuch-show-rewind (the function to which Backspace is bound)Gravatar Carl Worth2010-03-09
| | | | | | | Commit 095a02211e696434e5b41a85ab516b3a639f9a9b broke the backspace key by trying to execute nil as a function, (which obviously won't work), when it was intended as a return value. Fix this now, (and pine for a test suite that exercises the emacs user-interface of notmuch).
* emacs: Make 'n' and 'p' navigate only open messages.Gravatar Carl Worth2010-02-26
| | | | | And add new 'N' and 'P' keybindings for navigating through messages that are open or closed.
* emacs: Don't open unread messages by default.Gravatar Carl Worth2010-02-26
| | | | | | | | | When searching for an individual message, (by message id, say), it's really annoying to have the entire thread open just because the thread was archived without ever having been read. This means that the "unread" tag is a lot less special, and it really just exists as a mild cue for the user.
* README: Mention that notmuch only supports maildir or mh format.Gravatar Carl Worth2010-02-25
| | | | | | | Justin B Rye pointed out (in Debian bug #566282) that a user with mail in mbox format can spend a lot of time investigating notmuch before realizing that mbox is not supported. Head that off with a more detailed mention in the README blurb.
* emacs: Avoid removing the unread tag due to internal navigationGravatar Carl Worth2010-02-24
| | | | | | | | | | Sometimes the internals of the implementation navigate among messages, (as opposed to the user explicitly requesting the next message to be shown). In these cases we don't want to remove the unread tag from the message navigated to. This fixes a bug where invocation of notmuch-show-next-unread-message would clear the unread tag from all messages in a thread.
* Simplify "unread" tag handling in emacs UI.Gravatar Jameson Rollins2010-02-24
| | | | | | | | | | | | | | | | | This patch is intended to greatly simplify the handling of the "unread" tag in the emacs UI. This patch adds a new function 'notmuch-show-mark-read', that removes the "unread" tag in notmuch-show-mode. This function is then executed as a notmuch-show-hook, and by notmuch-show-next-message. All of the functions that explicitly marked messages as unread are removed or renamed. The idea here is that the user should never have to worry about manipulating the "unread" tag. The tag should persist until the user actually views a message, at which point it should be automatically removed. This patch simplifies the notmuch.el quite a bit, removing a lot of somewhat redundant functions, and reducing clutter in the name and key-mapping space.
* TODO: We should fix the --format=json option to not imply --entire-thread.Gravatar Carl Worth2010-02-23
| | | | | What we print and how we print it are orthogonal options, so --format shouldn't change what messages are printed.
* notmuch search: Use "thread" rather than "id" when formatting with JSONGravatar Carl Worth2010-02-23
| | | | | | | The text output uses thread:<foo>, (which is a syntax directly supported by "notmuch show"), so make the json output be "thread", "<foo>" rather than "id", "<foo>". This should help avoid confusion of thread IDs with message IDs, (which do use the "id" prefix in searches).
* json: Add copy of MIT license text from cJSONGravatar Carl Worth2010-02-23
| | | | | | When we incorporate external code, we should include its license, (particularly when one of the terms of the license is to include it in copies).
* Add an "--format=(json|text)" command-line option to both notmuch-search and ↵Gravatar Scott Robinson2010-02-23
| | | | | | | | | | | | | notmuch-show. In the case of notmuch-show, "--format=json" also implies "--entire-thread" as the thread structure is implicit in the emitted document tree. As a coincidence to the implementation, multipart message ID numbers are now incremented with each part printed. This changes the previous semantics, which were unclear and not necessary related to the actual ordering of the message parts.
* TODO: Rename the proposed --for option to --outputGravatar Carl Worth2010-02-23
| | | | | | We've been using --output in IRC and on the mailing list for a while, (someone had the good sense to point out that --for would defeat command-line completion since it's a prefix of the proposed --format).
* notmuch.1: Use bold and indentation for the NOTMUCH_CONFIG variable.Gravatar Carl Worth2010-02-23
| | | | | This seems to be the standard method of formatting an environment variable section within a man page.
* Add ENVIRONMENT VARIABLES section to the man pageGravatar James Westby2010-02-23
| | | | Briefly describe the NOTMUCH_CONFIG variable there.
* notmuch.el: Emphasize the 'i' of 'ID' in the documentation for 'c i'.Gravatar Carl Worth2010-02-20
| | | | | We're using 'i' in the keybinding, so it helps to have a capital 'I' in the help string to empahsize the point.
* Change the stash keybinding from 'z' to 'c'. And use 'i' for message ID.Gravatar Carl Worth2010-02-20
| | | | | | | | | | | | In spite of being implemented with the word "stash" in the function names, the documentation (and hence help strings) for each function already use the word "Copy" to describe the action. So 'c' is a much more natural key-binding, (particularly since 'z' didn't map to any real word anyway). We also use 'i' for the message ID copying of the submap. This is intended to align mnemonically with the "id:" prefix already used for message IDs.
* notmuch.el: add a submap (on "z" for "ztash") to stash things.Gravatar David Bremner2010-02-20
| | | | | | | | | | | | | | Provide key bindings for stuffing various RFC822 header fields and other metadata into the emacs kill-ring as text. The bindings are as follows: z F notmuch-show-stash-filename z T notmuch-show-stash-tags z c notmuch-show-stash-cc z d notmuch-show-stash-date z f notmuch-show-stash-from z m notmuch-show-stash-message-id z s notmuch-show-stash-subject z t notmuch-show-stash-to
* notmuch.el: convert sparse keymap to a list in ↵Gravatar David Bremner2010-02-20
| | | | | | | | | notmuch-substitute-one-command-key-with-prefix The previous version would crash when a key was bound to a sparse keymap, since apparently these are not straightforward lists. The usage of map-keymap is a bit obscure: it only has side-effects, no return value.
* Add functions notmuch-show-get-(bcc, cc, date, from, subject, to).Gravatar David Bremner2010-02-20
| | | | | | | Return the corresponding header field for the current message as a string. These are thin wrappers around notmuch-show-get-header, which means they each cause a full parse of the RFC822 header. The main idea is to fix an api.
* notmuch-show-get-header: new function; return alist of parsed header fields.Gravatar David Bremner2010-02-20
| | | | | | | | This function parses the displayed message to recover header fields. It uses mailheader.el to do the actual header parsing, after preprocessing to remove indentation. It relies on the variables notmuch-show-message-begin-regexp, notmuch-show-header-begin-regexp, and notmuch-show-message-end-regexp.
* notmuch.el: Delete some trailing whitespace.Gravatar Carl Worth2010-02-20
| | | | I'm not sure when this managed to creep in, but we don't want it.
* notmuch.el: Fix bug from message with ':' in the From address.Gravatar Carl Worth2010-02-11
| | | | | | | | | | | Eric reported that a particular thread was non-functional in the notmuch-search mode in the emacs client. It was easy enough to trace the bug down to a broken regular expression (using ':' instead of ';'). The bug would be triggered by a message with ':' in the From address. This is something I hope to add to the test suite as soon as we have support for testing the emacs interface there.
* notmuch.el: Handle attached images via an external viewer.Gravatar Carl Worth2010-02-10
| | | | | | | | | We temporarily override the mm-inline-media-tests variable so that the only parts inserted into the temporary buffer (and lost) are those parts that the user has already seen in the notmuch-show buffer. Anything else, (such as images), will now be left to be handled via mailcap, just like other attachment types.
* notmuch.el: Fix indentation.Gravatar Carl Worth2010-02-10
| | | | This line was indented incorrectly which can be confusing.
* notmuch.el: Avoid infinite loop marking up message with no parts.Gravatar Carl Worth2010-02-10
| | | | | | | | | | | | | | | The infinite loop was triggered by a message consisting of a single attachment within the body, (and no "part") tags. We need to do things in response to this bug (beyond this specific fix): 1. Create a test suite that exercises our emacs frontend so that bugs like this do not come back to haunt us after we fix them once. 2. Switch from our ad-hoc regexp based search of message-part delimeters to known-good code for parsing a structured document, (for example, the outstanding JSON patches).
* Reintroduce HTML inlining, with a much needed optimizationGravatar Alexander Botero-Lowry2010-02-09
| | | | | | Now instead of requiring every single message be parsed, we now check the Content-type in the parsed headers and only do HTML inlining if it's text/html
* Fix printf for when uint64_t != unsigned long long intGravatar Carl Worth2010-02-09
| | | | | | | | Thanks to Michal Sojka <sojkam1@fel.cvut.cz> for pointing out the correct fix, which I verified in the freely-available WG14/N1124 draft (from the C99 working group) which is available here: http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1124.pdf
* Switch from random to sequential thread identifiers.Gravatar Carl Worth2010-02-09
| | | | | | | | | | | | | The sequential identifiers have the advantage of being guaranteed to be unique (until we overflow a 64-bit unsigned integer), and also take up half as much space in the "notmuch search" output (16 columns rather than 32). This change also has the side effect of fixing a bug where notmuch could block on /dev/random at startup (waiting for some entropy to appear). This bug was hit hard by the test suite, (which could easily exhaust the available entropy on common systems---resulting in large delays of the test suite).
* TODO: Add some recently discussed items.Gravatar Carl Worth2010-02-09
| | | | | | These were collected either from the mailing list of from IRC conversations. The good ideas probably aren't mine, and the mistakes probably are.
* Allow folders with no messages to be elided from listGravatar Keith Packard2010-02-08
| | | | | | | This makes it easier to see folders with messages. Eliding empty folders is togged with the 'e' binding. Signed-off-by: Keith Packard <keithp@keithp.com>
* Look at whitespace to separate folder name from countGravatar Keith Packard2010-02-08
| | | | | | This allows folder names to contain any non-blank characters Signed-off-by: Keith Packard <keithp@keithp.com>
* Add 'm' and ' ' bindings to notmuch-folder viewGravatar Keith Packard2010-02-08
| | | | | | | This allows the user to compose new mail from the folder view, and also to use <space> to show the current folder. Signed-off-by: Keith Packard <keithp@keithp.com>
* emacs: Use font-lock-comment-face to highlight citation buttonGravatar Kan-Ru Chen2010-02-08
| | | | Signed-off-by: Kan-Ru Chen <kanru@kanru.info>
* notmuch.el: show some of citation even when hiding.Gravatar David Bremner2010-02-08
| | | | | | | | | - rename notmuch-show-citation-lines-min to n-s-c-l-prefix - call forward-line with the appropriate parameter to adjust region to be hidden. - change citation button text so that it makes (some) sense when citation is shown Reviewed-by: Kan-Ru Chen <kanru@kanru.info>
* notmuch.el: Refactor citation markup. Variables for minimum size, button text.Gravatar David Bremner2010-02-08
| | | | | | | | | | | | | | | | | | | | | This is a fairly intrusive rewrite. - I pulled the common code for the signature and citation case out into a separate function. This is not so much shorter, but I think it will be easier to maintain. - I replaced the sequence of (looking-at blah) (forward-line) with a single re-search-forward per citation. New variables - notmuch-show-signature-button-format, notmuch-show-citation-button-format Allow customization of button text. - notmuch-show-citation-lines-min Do not buttonize citations below the given threshold. Reviewed-by: Kan-Ru Chen <kanru@kanru.info>
* notmuch.h: Fix a couple of typos in the documentation.Gravatar Carl Worth2010-02-05
| | | | | Obviously, the spell-checker isn't able to catch every mistake I make.
* notmuch restore: Don't waste time with messages with unchanged tags.Gravatar Carl Worth2010-02-05
| | | | | | | | | | It's a simple optimization to look at a message and check that the existing tags are actually different than the tags we are setting before we do anything. For my mail store this takes a "notmuch restore" that does nothing from about 10 minutes down to 1 minute, so there's a significant speedup here.
* notmuch-test: Add basic tests for "notmuch dump" and "notmuch restore"Gravatar Carl Worth2010-02-05
| | | | Our test-suite coverage keeps improving, (slowly).
* notmuch-test: Fix misalignment in output.Gravatar Carl Worth2010-02-05
| | | | Clean output is just so much easier to read (and validate).
* notmuch.el: Use emacs built-in forward-button and backward-buttonGravatar Kan-Ru Chen2010-02-05
| | | | | | There are built-ins, so why not use them? Signed-off-by: Kan-Ru Chen <kanru@kanru.info>
* Use forward-line instead of next-lineGravatar Carl Worth2010-02-05
| | | | | | We do this all the time, but at least emacs is kind enough to remind us, (when compiling), that next-line is only intended for interactive use, and we should use forward-line inside of lisp code.
* notmuch.el: Add missing documentation for the new 'h' keybinding.Gravatar Carl Worth2010-02-05
| | | | | Without this, our help screen displayed 'h' with no description of what it does.