aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-04-21Fix help message for "show"Jameson Rollins
Help message for "show" mistakenly refers to '--output' instead of '--format'.
2010-04-21Merge Sebastian Spaeth's python bindings into bindings/pythonCarl Worth
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.
2010-04-21Move everything down into a bindings/python directory.Carl Worth
In preparation for merging the python bindings into the notmuch repository.
2010-04-21thread: Removed unsed sort argument from _thread_add_matched_messageCarl Worth
The reworked solution for naming a thread based on the subject of oldest/newest matching message no longer needs this argument.
2010-04-21emacs: Move definition of notmuch-folders to earlier in the file.Carl Worth
To avoid a warning about a free variable from the emacs compiler.
2010-04-21emacs: Try to name search buffers using info in notmuch-foldersServilio Afre Puentes
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.
2010-04-21notmuch-tag: don't sort messages before applying tag changesSebastian Spaeth
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>
2010-04-21query.cc: allow to return query results unsortedSebastian Spaeth
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>
2010-04-21notmuch: Abort if specified configuration file is not found.Carl Worth
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.
2010-04-21thread: Fix sort of search when constructing threads.Carl Worth
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.
2010-04-21test: Add tests for naming threads with changing subjects.Carl Worth
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.
2010-04-21thread: Simplify code for assigning the subject.Carl Worth
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.
2010-04-21Name thread based on matching msgs instead of first msg.Jesse Rosenthal
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>
2010-04-21configure: Print version of Xapian found during configure check.Carl Worth
This might be handy to know, (since there are important performance considerations that depend on the Xapian version).
2010-04-21configure: Generalize the GMime configure checks.Carl Worth
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.
2010-04-21configure: Add support for GMime 2.6Adrien Bustany
Notmuch compiles just fine with GMime 2.6, so accept it in the configure script.
2010-04-21emacs: Fix notmuch-search-authors-width declaration.Carl Worth
Our defcustom call was missing the 'notmuch group, which emacs was nice enough to warn about during compilation.
2010-04-21emacs: Support for customizing search result displayDavid Edmondson
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>
2010-04-21emacs/notmuch-show.el: Part headers are real buttons that save the partCarl Worth
Convert the part headers into buttons that save the part when activated.
2010-04-21emacs: Display all body parts using `notmuch part --part=<n>'David Edmondson
Use the `notmuch part' command to access body parts not currently included in the JSON output and display those body parts appropriately.
2010-04-21emacs: Use mailcap.el to guess the type of application/octet-stream partsDavid Edmondson
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.
2010-04-21emacs: Use `mm-display-part' when possibleDavid Edmondson
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.
2010-04-21emacs/notmuch-show.el: Improved part labellingDavid Edmondson
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.
2010-04-21emacs: Move body markup to a separate fileDavid Edmondson
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.
2010-04-21emacs: Rename body-invis-spec to message-invis-specCarl Worth
This is more consistent with the related names (toggle-message, :message-visible, etc.)
2010-04-21emacs: Remove the notmuch-show-toggle-body command (with "b" binding)Carl Worth
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).
2010-04-21emacs: JSON based implementationDavid Edmondson
Re-implement notmuch-show.el using the JSON output format of the notmuch command. Most functionality is retained - HTML display is noticeably missing.
2010-04-20json_quote_chararray: Always return a newly talloced arrayAnthony
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.
2010-04-20json: Avoid calling strlen(NULL)David Edmondson
MIME parts may have no filename, which previously resulted in calling strlen(NULL).
2010-04-19python: Adapt README somewhatSebastian Spaeth
2010-04-19python: Rename notmuch binary to notmuch.pySebastian Spaeth
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
2010-04-19Remove all traces of cnotmuchSebastian Spaeth
import cnotmuch.notmuch is dead. Long live import notmuch!
2010-04-19python: adapt docs to the notmuch module renamingSebastian Spaeth
2010-04-19rename module to just 'notmuch'Sebastian Spaeth
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
2010-04-19cnotmuch -> notmuchSebastian Spaeth
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
2010-04-19emacs/notmuch.el: Enable `hl-line-mode' in `notmuch-search-mode'David Edmondson
2010-04-19emacs/notmuch-show.el: Avoid passing unintended format strings to `message'David Edmondson
If the text being stashed included %, `message' was unhappy and complained.
2010-04-19debian: Make git ignore several intermediate files.Carl Worth
The "make release" target doesn't cause these to be left around, but manually doing something like ./debian/rules/build can.
2010-04-16make release: Add Debian package building and upload0.2Carl Worth
Finally, a single button to push to do all the uploading.
2010-04-16Increment version to 0.2.Carl Worth
Only minor features added this time--nothing that merits a 1.0.
2010-04-16make release: Add a check that version and debian/changelog are consistentCarl Worth
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.
2010-04-16Makefile: Avoid complaining about .first-build-message not existingCarl Worth
This cleans up a few spurious warnings from the build.
2010-04-16Fix final link of notmuch binary to use C compiler if possible.Carl Worth
On Linux, a C program that depends on a C library which in turn depends on a C++ can be linked with the C compiler, (avoiding a direct link from the program to the C++ runtime libraries). Other platforms with less fancy linkers need to use the C++ compiler for this linking.
2010-04-16debian: Remove watch file.Carl Worth
We're switching to a native package, where we build the upstream and debian releases simultaneously, so there's no need for a watch file.
2010-04-16debian: Switch to "3.0 (native)" source format.Carl Worth
To keep lintian happy.
2010-04-16Makefile: Fix conditionals to avoid calling git when no .git is presentCarl Worth
Otherwise, building from a tar-file snapshot or release caused a bunch of error messages from unnecessary git invocations.
2010-04-16Makefile: Add a top-level "make snapshot" target.Carl Worth
Useful for verifying that our tar-file creation works. The tar-file name can't easily be used as a target directly since it depends on the current git revision.
2010-04-16Makefile: Rework the version checks slightly.Carl Worth
Theese were previously pointing to "make VERSION=X.Y release", but we've recently changed to an alternate scheme involving the updated version in a file named "version".
2010-04-16RELEASING: Add a step to upgrade the version in the "version" file.Carl Worth
It is annoying to have an extra step here, but it does at least mean that we are back to just "make release" rather than "make VERSION=X.Y release".
2010-04-16Makefile: Add an explicit version file to the repository.Carl Worth
We do this so that "git archive" produces a usable tar file without us having to post-modify it, (since tools like git-buildpackage might not give us an easy way to hook into the tar-file-creation step). To support this we also have to change our preference to prefer the git-described-based version (if available) and only if not available do we fallback to using what's in the "version" file. Finally, we also ovverride this preference when releasing, (where what's in the "version" file wins). Note that using our Makefile's rule to create a tar file still will insert the git-based version into the tar file. This is useful for creating snapshots which will correctly report the git version from which they were created.