aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* 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).
* 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.
* Fix final link of notmuch binary to use C compiler if possible.Gravatar Carl Worth2010-04-16
| | | | | | | | | 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.
* debian: Remove watch file.Gravatar Carl Worth2010-04-16
| | | | | 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.
* debian: Switch to "3.0 (native)" source format.Gravatar Carl Worth2010-04-16
| | | | To keep lintian happy.
* Makefile: Fix conditionals to avoid calling git when no .git is presentGravatar Carl Worth2010-04-16
| | | | | Otherwise, building from a tar-file snapshot or release caused a bunch of error messages from unnecessary git invocations.
* Makefile: Add a top-level "make snapshot" target.Gravatar Carl Worth2010-04-16
| | | | | | 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.
* Makefile: Rework the version checks slightly.Gravatar Carl Worth2010-04-16
| | | | | | 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".
* RELEASING: Add a step to upgrade the version in the "version" file.Gravatar Carl Worth2010-04-16
| | | | | | 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".
* Makefile: Add an explicit version file to the repository.Gravatar Carl Worth2010-04-16
| | | | | | | | | | | | | | | | | 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.
* debian/changelog: Create an entry for the 0.2 release.Gravatar Carl Worth2010-04-16
| | | | A (very slightly filtered) version of what already appears in NEWS.
* RELEASING: Add a (manual!) step to create a debian/changelog entryGravatar Carl Worth2010-04-16
| | | | | I'd like to have this be fully automated in the future, but for now, it's an extra step.
* debian: Don't auto-generate debian/changelog.Gravatar Carl Worth2010-04-16
| | | | | | | David Bremner informs me that shoving everything from the notmuch "git log" into the debian/changelog is a bit excessive. Instead, we'll start manually updating this file, (which feels a bit redundant with NEWS, but perhaps makes us a better Debian-comunity member).
* debian: Add a gbp.conf to start using git-buildpackageGravatar Carl Worth2010-04-16
| | | | | | | | | | | | | On Bdale Garbee's recommendation I'm switching from gitpkg, (which constructed a source tree but still required me to go run debuild), to git-buildpackage. I hadn't originally used git-buildpackage because it didn't seem to work without a configuration file, (where gitpkg was fine). Bdale was kind enough to point me to his fw/altos source at git.gag.com where I found an example gpb.conf file as well as a target in debian/rules to automatically update debian/changelog with the new version number.
* make release: Don't print the release message on stdout.Gravatar Carl Worth2010-04-16
| | | | | It's just too long for copy/paste, so just let the user know the name of the file containing the message instead.
* Makefile: Fix "make release" to print the current release announcement.Gravatar Carl Worth2010-04-16
| | | | This was accidentally hard-coded to always print the 0.1 NEWS blurb.
* NEWS: Add release notes for the 0.2 release.Gravatar Carl Worth2010-04-16
|
* Revert "notmuch.el: 'F' in search mode takes us to a list of folders."Gravatar Carl Worth2010-04-16
| | | | | | | | | This reverts commit fbec989fe3272d6eff038369587be076347b96f0. I only pushed this accidentally. See message id:871ver6u9r.fsf@yoom.home.cworth.org for the various reasons I didn't like this patch, (mostly I think the association of 'F' is wrong).
* notmuch.c: Shorten version stringGravatar Sebastian Spaeth2010-04-16
| | | | | | | | We previously output "notmuch version 0.1" as response to notmuch --version. Shorten this to "notmuch 0.1" as we know that we will receive a version number when we explicitely ask for it. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
* emacs: Fix search filtering of a global search ("*")Gravatar Carl Worth2010-04-15
| | | | | | | | | | | | | | | With the recent addition of "*" being a special case for a search matching all messages, we have to take care when doing a filter operation. In this case it's not legal to simply append and get: * and <some-new-search-terms> Instead we carefully construct a new search string of only: <some-new-search-terms> This could all be avoided if we had a parser that could understand "*" with the meaning we want.
* TODO: Add two tasks that both have to do with auditing the library APIGravatar Carl Worth2010-04-15
| | | | | | | It was noted today in IRC that libnotmuch is not yet careful about wrapping all Xapian calls with try/catch blocks to print nicer error messages. It seems it would be natural to audit that at the same time as doing the symbol-hiding work.
* RELEASING: Change wording of libnotmuch version instructionGravatar Carl Worth2010-04-15
| | | | | | | We actually want this version to be incremented by the commits that extend the interface. So the release process really is not to just verify two things (NEWS and libnotmuch version), then run "make VERSION=x.y release", and send the mail. Quite nice.
* make release: Enforce a clean source tree before release.Gravatar Carl Worth2010-04-15
| | | | | Where by clean, we check that no files are known to git to be modified.
* RELEASING: Remove a meaningless step from the release process.Gravatar Carl Worth2010-04-15
| | | | | | | | | | | The entire "make sure the code you want is in place" thing is part of a larger release process that we don't document here at all. Instead, we just focus here on the mechanics of pushing things out once the larger process has determined the code is ready. And the fewer steps there are, the better, (for making the release-process as painless as possible and for avoiding any mistakes).
* configure: Fix syntax error (spaces in assignment).Gravatar Gregor Hoffleit2010-04-15
| | | | | | Before and after the assignment operator, no spaces are allowed. I don't know if there are any /bin/sh which allow spaces, but at least in bash, csh and zsh, the former code was no valid assigment.
* Fix typo in messageGravatar Ben Gamari2010-04-15
|
* make release: Provide a kinder message when VERSION is forgotten.Gravatar Carl Worth2010-04-15
| | | | | I'm unlikely to always remember to pass VERSION=X.Y so it's nice for make release to remind me.
* Makefile: Re-order the commands in "make release" slightly.Gravatar Carl Worth2010-04-15
| | | | | | | | | | | We put verify-version as a dependency, not a recursive action to keep its output clean, (I know that I will always type "make release" instead of "make VERSION=X.Y release" so I want a nice, neat reminder). Also, put the various ssh-based commands together, and after the build, (so that it doesn't ask for a password/passphrase both before and after building).