aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* emacs: Re-arrange message sending codeGravatar David Edmondson2010-04-23
| | | | | | Define a new `mail-user-agent' (`notmuch-user-agent') and use it by default. Re-arrange various routines that send mail to use this (compose, reply, forward). Insert a `User-Agent:' header by default.
* emacs: Fix some compilation warnings.Gravatar Carl Worth2010-04-23
| | | | | | Fix missing argumen in declaration of notmuch-search function and add a definition of notmuch-search-continuation to avoid warning about assignment to a free variable.
* emacs: Add notmuch-hello.el, a friendly frontend to notmuchGravatar David Edmondson2010-04-23
| | | | | | | This is based on the prototype that Carl Worth described in the TODO file. It provides a search bar as well as support for recent searches, saved searches, and a list of all tags in the database (as well as the number of messages with each tag).
* emacs: Remove `notmuch-search-authors-width' and fix the use of ↵Gravatar David Edmondson2010-04-23
| | | | | | | | | | | | | | | | | | `notmuch-search-result-format' accordingly The width of the authors field in search output was previously specified in two places: - `notmuch-search-authors-width': the limit beyond which the authors names are truncated, - `notmuch-search-result-format': the layout of the search results. Changing the configuration of one of these may have required the user to know about and adapt the other accordingly. This led to confusion. Instead, remove `notmuch-search-authors-width' and perform truncation based on the relevant field in `notmuch-search-result-format'. Approved-By: Jameson Rollins <jrollins@finestructure.net>
* Reintroduce patch to quote args in notmuch-show to facilitate remote useGravatar Jesse Rosenthal2010-04-23
| | | | | This reintroduces the patch committed in 9193455fa1, which was reverted during the upgrade to the JSON emacs UI.
* notmuch setup: Prompt for tags to set on new messages.Gravatar Carl Worth2010-04-23
| | | | | Our "notmuch setup" command is only really helpful if it guides the user through all the possible options. So add this one.
* config: Rename messages.new_tags to just new.tagsGravatar Carl Worth2010-04-23
| | | | | | I think one configuration group for each top-level command makes a lot of sense. And this makes the existing naming of set_new_tags and get_new_tags also very reasonable.
* Clarify the documentation for the new_tags configuration option.Gravatar Carl Worth2010-04-23
| | | | | Specifically mentioning that it's a list separated by ';' and use "will" instead of "should".
* notmuch setup: Fix new configuration-file groups to get commentsGravatar Carl Worth2010-04-23
| | | | | | | | | | Our intent has always been that when new configuration-file settings are created by notmuch, that they get created with comments telling the user how to use them. But this was only working before when the entire configuration file was created. We fix this so that when a new group is added, (such as the recently- added [messages] section) that it gets its documentation.
* Sprinkle some const-correctness around new_tags.Gravatar Carl Worth2010-04-23
| | | | To eliminate a compiler warning.
* notmuch-config: make new message tags configurableGravatar Ben Gamari2010-04-23
| | | | | | Add a new_tags option in the [messages] section of the configuration file to allow the user to specify which tags should be added to new messages by notmuch new.
* python: Add UNSORTED as Query.SORT optionGravatar Sebastian Spaeth2010-04-23
| | | | | | Keep up to date with the libnotmuch.so API. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* python: Delete unused filesGravatar Sebastian Spaeth2010-04-23
| | | | | | | | No more .hg files needed in the git repo. No stock notmuch-test suite needed in a subdirectory. We have the real one in this repository Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* test: Put the json tests into their own section.Gravatar Carl Worth2010-04-22
| | | | | Not that the sections actually mean anything yet, but it makes for clean output.
* notmuch search: Fix timezone of timestamp in --format=json outputGravatar Carl Worth2010-04-22
| | | | | This is one of those cases that I move love. Deleting code fixes a bug, (test suite now passes again).
* First tests for JSON output and UTF-8 in mail body and subjectGravatar Gregor Hoffleit2010-04-22
| | | | | | | | | | | | | | | | | | | | The test suite doesn't yet cover --format=json output nor UTF-8 in subject or body. This patch starts with test cases for 'search --format=json' and 'show --format=json'. Furthermore, it has test cases for a search for a UTF-8 string in a mail body for a UTF-8 string in a mail subject. Finally, it has a test case for --format=json with UTF-8 messages, demonstrating the fix in 1267697893-sup-4538@sam.mediasupervision.de. Reviewed-by: Carl Worth <cworth@cworth.org> Updated tests to current implementation of the test suite. These tests demonstrate a bug in the current implementation of "notmuch show --format=json", (timestamp output is changed depending on current timezone).
* test: Make existing "notmuch show" test more resilientGravatar Carl Worth2010-04-22
| | | | | | | If future updates to the test suite add more messages to the database before this "notmuch show" test, then the message-ID numbers in the expected output will all change. But we can at least compute the numbers so that this test will continue to pass.
* json: Replace `date_unix' with `timestamp' in show outputGravatar David Edmondson2010-04-22
| | | | | Search output was already using `timestamp' for a very similar field, so follow that.
* emacs: Add customize treatment and rename refresh-script to notmuch-poll-scriptGravatar Carl Worth2010-04-22
| | | | | | | | | With defcustom the user can easily find this variable (and its documentation) within "M-x customize-group" "notmuch" (though finding *that* is still tricky). The new name of notmuch-poll-script is also easier to remember, (for me at least).
* emacs: Use consistent naming for the two new poll functions.Gravatar Carl Worth2010-04-22
| | | | | | Emacs scoping rules strongly encourage us to have fully-namespaced function names. A prefix like "notmuch-search" is a pretty ugly namespace name, but it's what we have for now.
* Add 'G' keybinding to folder and search view that triggers external pollGravatar Dirk Hohndel2010-04-22
| | | | | | | | | | | | The new functions first check if an external poll script has been defined in the variable 'notmuch-external-refresh-script and if yes, runs that script before executing the existing refresh function (which is bound to '=') This can be used to have 'G' mimic the mutt behavior of polling an external mail server - or if the mail polling is already automatic, it can trigger the call to notmuch new and any necessary automatic tagging of new email. Signed-off-by: Dirk Hohndel <hohndel@infradead.org>
* Revert "thread: Simplify code for assigning the subject."Gravatar Carl Worth2010-04-22
| | | | | | | This reverts commit 36e4459a328b8449b3e9d510be81a332a9b35aaa. With the two previous reverts, this fixes the recent message-sorting regression, so the test suite now passes again.
* Revert "thread: Fix sort of search when constructing threads."Gravatar Carl Worth2010-04-22
| | | | This reverts commit f43990ce134d838cdb2cdd5d0752a602e81cfdd9.
* Revert "thread: Removed unsed sort argument from _thread_add_matched_message"Gravatar Carl Worth2010-04-22
| | | | This reverts commit 7fb56f9dc5d8e66f717f5e48ecbfbc11c8190182.
* test: Add a test to demonstrate message-sorting regression.Gravatar Carl Worth2010-04-22
| | | | | | | | | | | In the recent change to rename threads based on changing subject lines, I broke message ordering within "notmuch show" output. But our test suite didn't catch that regressions, because we didn't have any tests of "notmuch show". This adds one "notmuch show" test along with the thread-naming tests. It's not a whole suite of "notmuch show" testing, but it does catch this regression at least.
* test: When a test fails, show diff only (save complete output to a file)Gravatar Carl Worth2010-04-22
| | | | | | | | We're starting to get test output that's fairly long, so it's much kinder to just show a diff rather than displaying the complete expected and actual output. To allow the user to investigate things after the fact, we save the expected and actual output to files named test-${test_number}.expected and test-${test_number}.output .
* test: Improve grammar in test-message subjects.Gravatar Carl Worth2010-04-22
| | | | | Before codifying these in any expected test output, I'd like them to at least resemble English.
* Fix help message for "show"Gravatar Jameson Rollins2010-04-21
| | | | | Help message for "show" mistakenly refers to '--output' instead of '--format'.
* Merge Sebastian Spaeth's python bindings into bindings/pythonGravatar Carl Worth2010-04-21
|\ | | | | | | | | | | | | | | | | | | | | | | | | Sebastian offered to maintain these bindings within the notmuch repository and offered them in the following repository: git://github.com/spaetz/python-notmuch.git These are the bindings formerly known as "cnotmuch" and now known simply as "notmuch" from within python. The bindings are not yet integrated into the build system and packaging of the primary ntomuch repository.
| * Move everything down into a bindings/python directory.Gravatar Carl Worth2010-04-21
| | | | | | | | | | In preparation for merging the python bindings into the notmuch repository.
* | thread: Removed unsed sort argument from _thread_add_matched_messageGravatar Carl Worth2010-04-21
| | | | | | | | | | The reworked solution for naming a thread based on the subject of oldest/newest matching message no longer needs this argument.
* | emacs: Move definition of notmuch-folders to earlier in the file.Gravatar Carl Worth2010-04-21
| | | | | | | | To avoid a warning about a free variable from the emacs compiler.
* | emacs: Try to name search buffers using info in notmuch-foldersGravatar Servilio Afre Puentes2010-04-21
| | | | | | | | | | | | As the user has already defined aliases for certain searches in notmuch-folders, search buffer names that use these aliases will be easier to identify.
* | notmuch-tag: don't sort messages before applying tag changesGravatar Sebastian Spaeth2010-04-21
| | | | | | | | | | | | | | | | | | It's not neccessary to sort the results before we apply tags. Xapian contributor Olly Betts says that savings might be bigger with a cold file cache and (as unsorted implies really sorted by document id) a better cache locality when applying tags to messages. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* | query.cc: allow to return query results unsortedGravatar Sebastian Spaeth2010-04-21
| | | | | | | | | | | | | | | | | | | | | | Previously, we always sorted the returned results by some string value, (newest-to-oldest by default), however in some cases (as when applying tags to a search result) we are not interested in any special order. This introduces a NOTMUCH_SORT_UNSORTED value that does just that. It is not used at the moment anywhere in the code. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* | notmuch: Abort if specified configuration file is not found.Gravatar Carl Worth2010-04-21
| | | | | | | | | | | | | | | | When there is no configuration file at all, (and none specified), notmuch works correctly by assuming correct default values. But when the user specifies a configuration file (with the NOTMUCH_CONFIG environment variable) and that file doesn't exist, then notmuch should aboirt and let the user know about the problem.
* | thread: Fix sort of search when constructing threads.Gravatar Carl Worth2010-04-21
| | | | | | | | | | | | The thread-naming feature depends on the matched messages being passed down in a precise order, (the order of the top-level search). We fix the feature by passing that sort order down.
* | test: Add tests for naming threads with changing subjects.Gravatar Carl Worth2010-04-21
| | | | | | | | | | | | | | | | We recently added a feature to name threads based on the messages that actually matched the search, (as opposed to simply the oldest or newest message in the thread whether it matched or not). So add tests for that, and (surprise, surprise!) the feature does not entirely work.
* | thread: Simplify code for assigning the subject.Gravatar Carl Worth2010-04-21
| | | | | | | | | | | | | | | | | | We know that matched messages are always added in order, so we can always just grab the subject from the first message. This is the same approach that was used previously in _thread_add_message. That is, the recent feature of renaming a thread based on the subject of the "first" matched message is as simple as moving the subject assignment from _thread_add_message to _thread_add_matched_message.
* | Name thread based on matching msgs instead of first msg.Gravatar Jesse Rosenthal2010-04-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the moment all threads are named based on the name of the first message in the thread. However, this can cause problems if people either start new threads by replying-all (as unfortunately, many out there do) or change the subject of their mails to reflect a shift in a thread on a list. This patch names threads based on (a) matches for the query, and (b) the search order. If the search order is oldest-first (as in the default inbox) it chooses the oldest matching message as the subject. If the search order is newest-first it chooses the newest one. Reply prefixes ("Re: ", "Aw: ", "Sv: ", "Vs: ") are ignored (case-insensitively) so a Re: won't change the subject. Note that this adds a "sort" argument to _notmuch_thread_create and _thread_add_matched_message, so that when constructing the thread we can be aware of the sort order. Signed-off-by: Jesse Rosenthal <jrosenthal@jhu.edu>
* | configure: Print version of Xapian found during configure check.Gravatar Carl Worth2010-04-21
| | | | | | | | | | This might be handy to know, (since there are important performance considerations that depend on the Xapian version).
* | configure: Generalize the GMime configure checks.Gravatar Carl Worth2010-04-21
| | | | | | | | | | | | This way when GMime 2.8 comes out we can simply add it to the list rather than adding an additional block of conditional code for it. Also GMime 2.6 is now preferred over GMime 2.4.
* | configure: Add support for GMime 2.6Gravatar Adrien Bustany2010-04-21
| | | | | | | | | | Notmuch compiles just fine with GMime 2.6, so accept it in the configure script.
* | emacs: Fix notmuch-search-authors-width declaration.Gravatar Carl Worth2010-04-21
| | | | | | | | | | Our defcustom call was missing the 'notmuch group, which emacs was nice enough to warn about during compilation.
* | emacs: Support for customizing search result displayGravatar David Edmondson2010-04-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch helps in customizing search result display similar to mutt's index_format. The customization is done by defining an alist as below: (setq notmuch-search-result-format '(("date" . "%s ") ("authors" . "%-40s ") ("subject" . "%s "))) The supported keywords are date, count, authors, subject and tags. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@gmail.com> Signed-off-by: David Edmondson <dme@dme.org>
* | emacs/notmuch-show.el: Part headers are real buttons that save the partGravatar Carl Worth2010-04-21
| | | | | | | | | | Convert the part headers into buttons that save the part when activated.
* | emacs: Display all body parts using `notmuch part --part=<n>'Gravatar David Edmondson2010-04-21
| | | | | | | | | | | | Use the `notmuch part' command to access body parts not currently included in the JSON output and display those body parts appropriately.
* | emacs: Use mailcap.el to guess the type of application/octet-stream partsGravatar David Edmondson2010-04-21
| | | | | | | | | | | | | | | | | | | | Use the mailcap functionality to guess a MIME type for attachments of type application/octet-stream and, presuming successful, feed the attachment back into the display code with the determine type. This is mostly useless at the moment, as the JSON output from notmuch does not include the content of application/octet-stream parts, so they cannot be displayed even if the guess is a good one.
* | emacs: Use `mm-display-part' when possibleGravatar David Edmondson2010-04-21
| | | | | | | | | | | | For parts that the mm-decode/mm-view functions can inline and we have the content, use `mm-display-part' to insert the part in the buffer.
* | emacs/notmuch-show.el: Improved part labellingGravatar David Edmondson2010-04-21
| | | | | | | | | | | | | | | | If a text/plain part is not the first part in a message, add a label in order that a user can see that multiple parts are present. If a part has a 'filename' attribute, include it in any label describing the part.