aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* 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.
* | emacs: Move body markup to a separate fileGravatar David Edmondson2010-04-21
| | | | | | | | | | | | Move the citation and signature markup for text/plain parts to a new file (notmuch-wash.el) and call it using a hook mechanism rather than directly.
* | emacs: Rename body-invis-spec to message-invis-specGravatar Carl Worth2010-04-21
| | | | | | | | | | This is more consistent with the related names (toggle-message, :message-visible, etc.)
* | emacs: Remove the notmuch-show-toggle-body command (with "b" binding)Gravatar Carl Worth2010-04-21
| | | | | | | | | | | | | | | | | | | | | | In the recent switch to a JSON-based emacs interface, RET now toggles message visibility anywhere in the message, (rather than only on the summary line). So we no longer need this separate "b" binding for this. Additionally, the body toggle was implemented independently from RET, so after hiding a message with "b" one could not make it visible with RET. This confusing state is now no longer possible, (since the :body-visible property is removed entirely).
* | emacs: JSON based implementationGravatar David Edmondson2010-04-21
| | | | | | | | | | | | Re-implement notmuch-show.el using the JSON output format of the notmuch command. Most functionality is retained - HTML display is noticeably missing.
* | json_quote_chararray: Always return a newly talloced arrayGravatar Anthony2010-04-20
| | | | | | | | | | | | | | | | | | | | | | The special case for len==0 was wrong---the normal code path is to talloc to get a newly allocated, editable string, that might be talloc_free'd later. It makes more sense just to let the len==0 behaviour fall through into the normal case code. Reviewed-by: Carl Worth <cworth@cworth.org> This results in the same value being returned, but with the proper memory handling.
* | json: Avoid calling strlen(NULL)Gravatar David Edmondson2010-04-20
| | | | | | | | | | MIME parts may have no filename, which previously resulted in calling strlen(NULL).
| * python: Adapt README somewhatGravatar Sebastian Spaeth2010-04-19
| |
| * python: Rename notmuch binary to notmuch.pyGravatar Sebastian Spaeth2010-04-19
| | | | | | | | | | | | | | | | If we have it in the toplevel directory we can run it without having to install the library, which is great for testing purposes. --HG-- rename : docs/notmuch => notmuch.py
| * Remove all traces of cnotmuchGravatar Sebastian Spaeth2010-04-19
| | | | | | | | import cnotmuch.notmuch is dead. Long live import notmuch!
| * python: adapt docs to the notmuch module renamingGravatar Sebastian Spaeth2010-04-19
| |
| * rename module to just 'notmuch'Gravatar Sebastian Spaeth2010-04-19
| | | | | | | | | | | | | | | | | | | | So you need to do e.g. 'from notmuch import Database' rather than the previous from cnotmuch.notmuch import Database. Alse recreate our fake python 'notmuch' binary in the docs directory for now --HG-- rename : notmuch/notmuch.py => notmuch/__init__.py
| * cnotmuch -> notmuchGravatar Sebastian Spaeth2010-04-19
| | | | | | | | | | | | | | | | | | | | | | | | | | and GPL v3+ boilerplate code to each source file. --HG-- rename : cnotmuch/__init__.py => notmuch/__init__.py rename : cnotmuch/database.py => notmuch/database.py rename : cnotmuch/globals.py => notmuch/globals.py rename : cnotmuch/message.py => notmuch/message.py rename : cnotmuch/notmuch.py => notmuch/notmuch.py rename : cnotmuch/tag.py => notmuch/tag.py rename : cnotmuch/thread.py => notmuch/thread.py
* | emacs/notmuch.el: Enable `hl-line-mode' in `notmuch-search-mode'Gravatar David Edmondson2010-04-19
| |
* | emacs/notmuch-show.el: Avoid passing unintended format strings to `message'Gravatar David Edmondson2010-04-19
| | | | | | | | | | If the text being stashed included %, `message' was unhappy and complained.
* | debian: Make git ignore several intermediate files.Gravatar Carl Worth2010-04-19
| | | | | | | | | | The "make release" target doesn't cause these to be left around, but manually doing something like ./debian/rules/build can.
* | make release: Add Debian package building and uploadGravatar Carl Worth2010-04-16
| | | | | | | | Finally, a single button to push to do all the uploading.
* | Increment version to 0.2.Gravatar Carl Worth2010-04-16
| | | | | | | | Only minor features added this time--nothing that merits a 1.0.
* | make release: Add a check that version and debian/changelog are consistentGravatar Carl Worth2010-04-16
| | | | | | | | | | | | | | Eventually I'd like to automate this so that one or the other of these files is canonical and the other is generated from it. Until then, add this check to the release process to avoid a skewed release being shipped.
* | Makefile: Avoid complaining about .first-build-message not existingGravatar Carl Worth2010-04-16
| | | | | | | | This cleans up a few spurious warnings from the build.