aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* vim: add help fileGravatar Felipe Contreras2013-11-20
| | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: check compose is done on deleteGravatar Felipe Contreras2013-11-20
| | | | | | Not on unload, which happens when we switch buffers. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: remove unnecessary buffer queueGravatar Felipe Contreras2013-11-20
| | | | | | | Vim handles the buffers just fine: when one is deleted, we go to the previous one. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: add wrapper for old variable namesGravatar Felipe Contreras2013-11-20
| | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: move default sets to set_defaults()Gravatar Felipe Contreras2013-11-20
| | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: rename public notmuch_rb variablesGravatar Felipe Contreras2013-11-20
| | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: rename internal notmuch_rb variablesGravatar Felipe Contreras2013-11-20
| | | | | | Now we are the official one. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: add option to compose new messagesGravatar Felipe Contreras2013-11-20
| | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: refactor open_reply()Gravatar Felipe Contreras2013-11-20
| | | | | | In preparation for composing new messages. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: trivial cleanupGravatar Felipe Contreras2013-11-20
| | | | | | Using $email_address is more straight forward. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: don't execute search if it's cancelledGravatar Felipe Contreras2013-11-20
| | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: generate custom message-idGravatar Felipe Contreras2013-11-20
| | | | | | Using Mail as a reference. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: split $email_addressGravatar Felipe Contreras2013-11-20
| | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: allow calling with argumentsGravatar Felipe Contreras2013-11-20
| | | | | | | | For example: :NotMuch date:today Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: add option to save the patches of a patch seriesGravatar Felipe Contreras2013-11-20
| | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: use much clearer sort constantGravatar Felipe Contreras2013-11-20
| | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: show first message of the threadGravatar Felipe Contreras2013-11-20
| | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: refactor database handlingGravatar Felipe Contreras2013-11-20
| | | | | | | | | | | | | To minimize memory usage we need to destroy the queries and the databases, so we should keep track of them. Each buffer gets a database connection that is destroyed when the buffer is destroyed, and all the queries along with it. Ideally notmuch should destroy the queries when the database is destroyed, but it's not doing that at the moment. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: use notmuch fieldsGravatar Felipe Contreras2013-11-20
| | | | | | They are better encoded than Ruby's Mail. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: don't automatically refresh after taggingGravatar Felipe Contreras2013-11-20
| | | | | | | This operation might take a while, and even if it only takes fractions of a second, that's not what the user might want. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: run mutt in default termGravatar Charlie Allom2013-11-20
| | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* NEWS: insert quotable parts in reply as they are displayed in show viewGravatar Jani Nikula2013-11-19
| | | | | | | | | News for commit 5c19eb46a906819744a022463ee3fd7cdfaabbb9 Author: Jani Nikula <jani@nikula.org> Date: Sun Sep 1 20:59:53 2013 +0300 emacs: insert quotable parts in reply as they are displayed in show view
* emacs: do not put quoted reply in primary selectionGravatar Mark Walters2013-11-19
| | | | | | | | | | | | | | | | | | | In current emacs (24.3) select-active-regions is set to t by default. The reply insertion code sets the region to the quoted message to make it easy to delete (kill-region or C-w). These two things combine to put the quoted message in the primary selection. This is not what the user wanted and is a privacy risk (accidental pasting of the quoted message). We can avoid some of the problems by let-binding select-active-regions to nil. This fixes if the primary selection was previously in a non-emacs window but not if it was in an emacs window. To avoid the problem in the latter case we deactivate mark. One key test (which fails under many simpler "fixes") is: open emacs 24.3 with notmuch, open 2 windows (viewing different notmuch buffers), highlight some text in one, and then reply to a message in the other. In many of my earlier attempts to fix this big this test fails.
* compact: improve error messages on failures after compactionGravatar Tomi Ollila2013-11-19
| | | | | The error messages written during the steps replacing old database with new now includes relevant paths and strerror.
* compact: unconditionally remove old wip database compact directoryGravatar Tomi Ollila2013-11-19
| | | | | | In case previous notmuch compact has been interrupted there is old work-in-progress database compact directory partially filled. Remove it just before starting to fill the directory with new files.
* compact: preserve backup database until compacted database is in placeGravatar Tomi Ollila2013-11-19
| | | | | | | It is less error prone and window of failure opportunity is smaller if the old (backup) database is always renamed (instead of sometimes rmtree'd) before new (compacted) database is put into its place. Finally rmtree() old database in case old database backup is not kept.
* compact: catch Xapian::Error consistentlyGravatar Tomi Ollila2013-11-17
| | | | | | catch Xapian::Error in compact code in lib/database.cc to be consistent with other code in addition to not making software crash on uncaught other Xapian error.
* compact: tidy formattingGravatar Tomi Ollila2013-11-17
| | | | Notmuch compact code whitespace changes to match devel/STYLE.
* News for tree-viewGravatar Mark Walters2013-11-16
|
* emacs: tree: use remap for the over-ridden global bindingsGravatar Mark Walters2013-11-13
| | | | | | | | | | | Following a suggestion by Austin in id:20130915153642.GY1426@mit.edu we use remap for the over-riding bindings in pick. This means that if the user modifies the global keymap these modifications will happen in the tree-view versions of them too. [tree-view overrides these to do things like close the message pane before doing the action, so the functionality is very close to the original common keymap function.]
* emacs: help: add a special function to deal with remapsGravatar Mark Walters2013-11-13
| | | | | | remaps are a rather unusual keymap consisting of "first key" 'remap and then "second-key" the remapped-function. Thus we do the documentation for it separately.
* emacs: help: add base-keymapGravatar Mark Walters2013-11-13
| | | | | | To support key remapping in emacs help we need to know the base keymap when looking at the remapping. keep track of this while we recurse down the sub-keymaps in help.
* emacs: help: split out notmuch-describe-key as a functionGravatar Mark Walters2013-11-13
| | | | | | The actual documentation function notmuch-describe-keymap was getting rather complicated so split out the code for a single key into its own function notmuch-describe-key.
* emacs: help: remove duplicate bindingsGravatar Mark Walters2013-11-13
| | | | | | | | | | | If the user (or a mode) overrides a keybinding from the common keymap in one of the modes then both help lines appear in the help screen even though only one of them is applicable. Fix this by checking if we already have that key binding. We do this by constructing an list of (key . docstring) pairs so it is easy to check if we have already had that binding. Then the actual print help routine changes these pairs into strings "key \t docstring"
* emacs: help: save-match-dataGravatar Mark Walters2013-11-13
| | | | | | | | The routines that construct the help page in notmuch-lib rely on match-data being preserved across some fairly complicated code. This is currently valid but will not be when this series is finished. Thus place everything between the string-match and replace-match inside a save-match-data.
* emacs: help: check for nil key bindingGravatar Mark Walters2013-11-13
| | | | | | | | | A standard way to unset a key binding is local-unset-key which is equivalent to (define-key (current-local-map) key nil) Currently notmuch-help gives an error and fails if a user has done this. To fix this we only add a help line if the binding is non-nil.
* emacs: Correct documentation of `notmuch-poll-script'Gravatar Austin Clements2013-11-13
| | | | | | The functions referred to in the documentation for this variable were replaced by the unified `notmuch-poll-and-refresh-this-buffer' in 21474f0e. Update the documentation to reflect the new function.
* NEWS: emacs: fix notmuch-mua-reply point placementGravatar Tomi Ollila2013-11-13
| | | | | | News for commit 4ceeaf8038ff241f438ad2a5d0bbda1c78aee385 Minor grammar edit by db.
* remove notmuch-pickGravatar Mark Walters2013-11-13
|
* Accumulated news for Austin's changesGravatar Austin Clements2013-11-13
|
* completion: update bash completionGravatar Jani Nikula2013-11-11
| | | | | | | | | | | Update bash completion to cover new commands and options: notmuch compact --quiet --backup=DIR notmuch count --output=files --batch --input=FILE notmuch insert --folder=DIR --create-folder notmuch search --exclude=all --duplicate=N notmuch show --include-html notmuch tag --batch --input=FILE --remove-all
* devel/release-checks.sh: check NOTMUCH_(MAJOR|MINOR|MICRO)_VERSIONGravatar Tomi Ollila2013-11-11
| | | | | | New defines NOTMUCH_MAJOR_VERSION, NOTMUCH_MINOR_VERSION and NOTMUCH_MICRO_VERSION were added to lib/notmuch.h. Check that these match the current value defined in ./version.
* emacs: Fix search tagging racesGravatar Austin Clements2013-11-08
| | | | | | | | | | | | | | This fixes races in thread-local and global tagging in notmuch-search (e.g., "+", "-", "a", "*", etc.). Previously, these would modify tags of new messages that arrived after the search. Now they only operate on the messages that were in the threads when the search was performed. This prevents surprises like archiving messages that arrived in a thread after the search results were shown. This eliminates `notmuch-search-find-thread-id-region(-search)' because these functions strongly encouraged racy usage. This fixes the two broken tests added by the previous patch.
* emacs: Add known-broken tests for search tagging racesGravatar Austin Clements2013-11-08
| | | | | | These tests check that both thread-local and global search tagging operations are race-free. They are currently known-broken because they aren't race-free.
* Add TODO about more efficient stable thread queriesGravatar Austin Clements2013-11-08
|
* search: Add stable queries to thread search resultsGravatar Austin Clements2013-11-08
| | | | | | | | | | | | | | These queries will match exactly the set of messages currently in the thread, even if more messages later arrive. Two queries are provided: one for matched messages and one for unmatched messages. This can be used to fix race conditions with tagging threads from search results. While tagging based on a thread: query can affect messages that arrived after the search, tagging based on stable queries affects only the messages the user was shown in the search UI. Since we want clients to be able to depend on the presence of these queries, this ushers in schema version 2.
* emacs: Use notmuch tag --batch for large tag queriesGravatar Austin Clements2013-11-08
| | | | | | (Unfortunately, it's difficult to first demonstrate this problem with a known-broken test because modern Linux kernels have argument length limits in the megabytes, which makes Emacs really slow!)
* emacs: Support passing input via `notmuch-call-notmuch-*'Gravatar Austin Clements2013-11-08
| | | | | | | This adds support for passing a string to write to notmuch's stdin to `notmuch-call-notmuch-process' and `notmuch-call-notmuch-sexp'. Since this makes both interfaces a little more complicated, it also unifies their documentation better.
* emacs: Move `notmuch-call-notmuch-process' to notmuch-libGravatar Austin Clements2013-11-08
| | | | | | | Previously, this was in notmuch.el, but all of the other notmuch call wrappers were in notmuch-lib.el. Move `notmuch-call-notmuch-process' to live with its friends. This happens to fix a missing dependency from notmuch-tag.el, which required notmuch-lib, but not notmuch.
* test: Fix missing erase-buffer in emacs testGravatar Austin Clements2013-11-08
| | | | | The first subprocess error exit code test assumed the *Notmuch errors* buffer would be empty. Rather than assuming, make it so.