aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* contrib/nmbug: new script for sharing tags with a given prefix.Gravatar David Bremner2011-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main idea is consider the notmuch database as analogous to the work-tree. A bare git repo is maintained in the users home directory, with a tree of the form tags/$message-id/$tag Like notmuch and git, we have a set of subcommnds, mainly modelled on git. Implementation wise, the heavy lifting is in the following functions. commit xapian -> git checkout git -> xapian merge fetched git + git -> xapian status find differences between xapian, git, and remote git. The central implementation trick, from an idea I think due to tomprince on IRC is manipulate the git index directly from the xapian tag information. The merge routine is still done using a temporary checkout as I wasn't able to get it working with the index only. There are also some convenience wrappers around git commands, like "fetch" that essential just set GIT_DIR in the environment. In order to encode tags (viewed as octet sequences) into filenames, we whitelist a smallish set of characters and %hex escape anything outside. The prefix is omitted in git, which lets one save and restore to different prefixes (although this is only lightly tested). Thanks to Tomi Ollila for a huge amount of feedback and patches while putting this together.
* emacs: update notmuch-crypto-process-mime config variable documentation.Gravatar Jameson Graef Rollins2011-11-12
| | | | | This mentions the fact that prefix arguments are now used to enable to crypto switch.
* emacs: Unbind M-RET as display of thread with crypto switch.Gravatar Jameson Graef Rollins2011-11-12
| | | | Use prefix argument instead to set switch.
* test: stashing in notmuch-{show,search}Gravatar Pieter Praet2011-11-12
| | | | | | Should provide full test coverage of the stashing feature. Signed-off-by: Pieter Praet <pieter@praet.org>
* emacs: add keybind and function to stash Message-ID without prefixGravatar Pieter Praet2011-11-12
| | | | | | | | | | | Add function `notmuch-show-stash-message-id-stripped' which stashes a Message-ID after ripping off the prefix and quotes, add bind it to "I" key in `notmuch-show-stash-map'. Simplifying `notmuch-show-get-message-id' instead might seem better, but that would require concat'ing in 9 places instead of 1. Signed-off-by: Pieter Praet <pieter@praet.org>
* NEWS: mention dtach instead of screen in the description of testing changesGravatar David Bremner2011-11-12
| | | | This brings NEWS back in line with the actual code.
* emacs: add invisible space after the search widget field in notmuch-helloGravatar Dmitry Kurochkin2011-11-12
| | | | | | | | | It is very convenient when C-e (bound to `widget-end-of-line') ignores trailing spaces inside the search widget. But it only does so if a widget is not followed by a newline (that is why it works in the saved search widgets). The patch just adds an invisible space after the search widget to get the desirable behavior of `widget-end-of-line'. The extra space is also added to expected results of emacs tests.
* emacs: Use a single buffer invisibility spec to fix quadratic search cost.Gravatar Austin Clements2011-11-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Buffer redisplay requires traversing the buffer's invisibility spec for every part of the display that has an 'invisible text or overlay property. Previously, the search buffer's invisibility spec list contained roughly one entry for each search result. As a result, redisplay took O(NM) time where N is the number of visible lines and M is the total number of results. On a slow computer, this is enough to make even buffer motion noticeably slow. Worse, during a search operation, redisplay is triggered for each search result (even if there are no visible buffer changes), so search was quadratic (O(NM^2)) in the number of search results. This change switches to using a single element buffer invisibility spec. To un-hide authors, instead of removing an entry from the invisibility spec, it simply removes the invisibility overlay from those authors. I tested using a query with 6633 results on a 9 year old machine. Before this patch, Emacs took 70 seconds to fill the search buffer; toward the end of the search, Emacs consumed 10-20x as much CPU as notmuch; and moving point in the buffer took about a second. With this patch, the same query takes 40 seconds, Emacs consumes ~3x the CPU of notmuch by the end, and there's no noticeable lag to moving point. (There's still some source of non-linearity, because Emacs and notmuch consume roughly the same amount of CPU early in the search.)
* smtp-dummy: clear sockaddr_in structure before use in bind()Gravatar Tomi Ollila2011-11-12
| | | | | Any junk bytes in sockaddr_in structure before passing that to bind() system call may cause problems.
* debian: update build dependency on dtach instead of screenGravatar Jameson Graef Rollins2011-11-11
| | | | | This reflects a modification to the test suite to use dtach instead of screen.
* debian: clean up Uploaders and Build-Depends fields in debian/controlGravatar Jameson Graef Rollins2011-11-11
| | | | | No functional change, but this will make for cleaner diffs down the line.
* test: use dtach(1) instead of screen(1) in emacs testsGravatar Tomi Ollila2011-11-11
| | | | | dtach is simpler than screen and is not setuid/setgid program so TMPDIR does not get cleared by dynamic loader when executed
* Do not query on notmuch-search exitGravatar Michal Sojka2011-11-08
| | | | | | Emacs 23.2 queries by default about killing existing processes. This is annoying when one wants to interrupt long search with 'q' key. Disable this behavior for notmuch.
* emacs: remove unused `point-invisible-p' functionGravatar Dmitry Kurochkin2011-11-07
| | | | | | `point-invisible-p' does not work correctly when `invisible' property is a list. There are standard `invisible-p' and related functions that should be used instead.
* emacs: remove no longer used functions from notmuch-show.elGravatar Dmitry Kurochkin2011-11-07
| | | | | | Remove `notmuch-show-move-past-invisible-backward' and `notmuch-show-move-past-invisible-forward' functions which are unused.
* emacs: improve hidden signatures handling in notmuch-show-advance-and-archiveGravatar Dmitry Kurochkin2011-11-07
| | | | | | | Use `previous-single-char-property-change' instead of going through each character by hand and testing it's visibility. This fixes `notmuch-show-advance-and-archive' to work for the last message in thread with hidden signature.
* test: `notmuch-show-advance-and-archive' with invisible signatureGravatar Dmitry Kurochkin2011-11-07
| | | | | Add Emacs test to check that `notmuch-show-advance-and-archive' works for the last message in thread with invisible signature.
* NEWS: tentative news item about requiring screen to run the test suite.Gravatar David Bremner2011-11-05
| | | | | | Hopefully this will be fixed before release, but for the moment, explain to people why their test suite might not be working like it used to.
* debian: build-depend on screen.Gravatar David Bremner2011-11-05
| | | | This is needed for emacs tests, now that those are run in screen.
* test: do not set frame width in emacsGravatar Dmitry Kurochkin2011-11-05
| | | | | No need for `set-frame-width' in emacs tests since it runs in screen now.
* test: avoid using screen(1) configuration filesGravatar Dmitry Kurochkin2011-11-05
| | | | | | Set SCREENRC and SYSSCREENRC environment variables to "/dev/null" as suggested by Jim Paris to avoid potential problems with screen(1) configuration files.
* test: run emacs inside screenGravatar Dmitry Kurochkin2011-11-05
| | | | | | | | | | | | | Before the change, emacs run in daemon mode without any visible buffers. Turns out that this affects emacs behavior in some cases. In particular, `window-end' function returns `point-max' instead of the last visible position. That makes it hard or impossible to implement some tests. The patch runs emacs in a detached screen(1) session. So that it works exactly as if it has a visible window. Note: screen terminates when emacs exits. So the patch does not introduce new "running processes left behind" issues.
* test: json show format of message with inline attachment with filenameGravatar Dmitry Kurochkin2011-11-05
| | | | | The patch adds a test to check that json show format includes filenames for attachments with inline disposition.
* notmuch-deliver: update gitignoreGravatar Ali Polatel2011-11-05
|
* notmuch-deliver: Don't read errno inappropriately.Gravatar Thomas Schwinge2011-11-05
| | | | Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
* notmuch-deliver: Won't deliver to more than one folder.Gravatar Thomas Schwinge2011-11-05
| | | | Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
* notmuch-deliver: Advance imported files to maildrop-2.5.2 release.Gravatar Thomas Schwinge2011-11-05
|
* notmuch-deliver: Import said files from maildrop-2.2.0 release.Gravatar Thomas Schwinge2011-11-05
| | | | | | | We won't use all of the included build infrastructure files, but adding them nevertheless helps to track changes that are applied to them upstream. Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
* Move files copied from maildrop to a separate hierarchy.Gravatar Thomas Schwinge2011-11-05
| | | | Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
* Make it build in a separate build directory.Gravatar Thomas Schwinge2011-11-05
| | | | Signed-off-by: Thomas Schwinge <thomas@schwinge.name>
* notmuch-deliver: Add mailmapGravatar Ali Polatel2011-11-05
|
* notmuch-deliver: Fix utter failureGravatar alip2011-11-05
|
* notmuch-deliver: Use splice() if it's availableGravatar Ali Polatel2011-11-05
| | | | | NOTMUCH_DELIVER_NO_SPLICE environment variable may be set to fallback to the read/write method.
* notmuch-deliver: Add --enable-{gprof,gcov} options to configureGravatar Ali Polatel2011-11-05
|
* More debug messagesGravatar Ali Polatel2011-11-05
|
* notmuch-deliver: Fix typos in option context descriptionGravatar Ali Polatel2011-11-05
|
* notmuch-deliver: Fix copy/paste failGravatar Ali Polatel2011-11-05
|
* notmuch-deliver: Initial importGravatar Ali Polatel2011-11-05
|
* emacs: Tab completion for notmuch-search and notmuch-search-filterGravatar Daniel Schoepe2011-11-02
| | | | | This patch adds completion with <tab> in the minibuffer for notmuch-search and notmuch-search-filter.
* lib/database.cc: use flush Xapian method instead of commitGravatar David Bremner2011-11-02
| | | | | | | Apparently the method was renamed in Xapian 1.1.0 but the old method name will stay around for a while. It seems better to stick with the old name to make notmuch compile with older versions of Xapian, at least for now.
* remove GCC visibility pragmasGravatar Tomi Ollila2011-10-31
| | | | | | | | libnotmuch.so.* linking fail on some environments. According to David Bremner on irc: "We jump through hoops with the linker script (notmuch.sym) so the pragmas are not needed. And they are a little bizarre in a library anyway..."
* xregcomp: don't consider every regex compilation failure an internal error.Gravatar David Bremner2011-10-30
| | | | | | This pushes the error handling up one step, but makes the function more flexible. Running out of memory still triggers an internal error, in the spirit of other xutils functions.
* xutil.c: remove duplicate copies, create new library libutil.a to contain xutil.Gravatar David Bremner2011-10-30
| | | | | | | We keep the lib/xutil.c version. As a consequence, also factor out _internal_error and associated macros. It might be overkill to make a new file error_util.c for this, but _internal_error does not really belong in database.cc.
* build system: target to make a Debian snapshot package.Gravatar David Bremner2011-10-28
| | | | | | | | | | Currently this builds a native package, but since the source package is throw away, it should not matter too much, except for the extra warnings from lintian. The extra +1 is so that if $(VERSION) is the same as the last released version (for example outside a git repo) then the versions still order correctly.
* build system: remove dashes from git-describe generated version.Gravatar David Bremner2011-10-28
| | | | | This makes it less confusing with released Debian versions, now that we have non-native Debian versions.
* emacs: Turn id:"<message-id>" elements into buttons for notmuch searchesGravatar Daniel Schoepe2011-10-28
| | | | | This fixes the minor annoyance that message ids were parsed as mail addresses by goto-address-mode in notmuch-show buffers.
* Separate Emacs misc. files dir. from Emacs code dir.Gravatar Amadeusz Żołnowski2011-10-28
| | | | | New option --emacsetcdir was added, but it's set default to the same value as --emacslispdir for backward compatibility.
* Prefix lib/notmuch.h and lib/gen-version-script.sh with $(srcdir)Gravatar Amadeusz Żołnowski2011-10-24
| | | | | lib/notmuch.h and lib/gen-version-script.sh couldn't have been found when building out of sources directory.
* docs: Update news, man page, and online help for restore --accumulateGravatar David Bremner2011-10-23
| | | | | | As a side effect, reformat the NEWs entry for notmuch dump for consistency with the notmuch restore NEWS submitted by Thomas Schwinge.
* notmuch-restore: check for extra arguments.Gravatar David Bremner2011-10-23
| | | | | We consider it an error to pass more than one file to restore, since extra ones are ignored.