aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-11-13emacs: help: split out notmuch-describe-key as a functionMark Walters
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.
2013-11-13emacs: help: remove duplicate bindingsMark Walters
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"
2013-11-13emacs: help: save-match-dataMark Walters
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.
2013-11-13emacs: help: check for nil key bindingMark Walters
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.
2013-11-13emacs: Correct documentation of `notmuch-poll-script'Austin Clements
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.
2013-11-13NEWS: emacs: fix notmuch-mua-reply point placementTomi Ollila
News for commit 4ceeaf8038ff241f438ad2a5d0bbda1c78aee385 Minor grammar edit by db.
2013-11-13remove notmuch-pickMark Walters
2013-11-13Accumulated news for Austin's changesAustin Clements
2013-11-11completion: update bash completionJani Nikula
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
2013-11-11devel/release-checks.sh: check NOTMUCH_(MAJOR|MINOR|MICRO)_VERSIONTomi Ollila
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.
2013-11-08emacs: Fix search tagging racesAustin Clements
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.
2013-11-08emacs: Add known-broken tests for search tagging racesAustin Clements
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.
2013-11-08Add TODO about more efficient stable thread queriesAustin Clements
2013-11-08search: Add stable queries to thread search resultsAustin Clements
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.
2013-11-08emacs: Use notmuch tag --batch for large tag queriesAustin Clements
(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!)
2013-11-08emacs: Support passing input via `notmuch-call-notmuch-*'Austin Clements
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.
2013-11-08emacs: Move `notmuch-call-notmuch-process' to notmuch-libAustin Clements
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.
2013-11-08test: Fix missing erase-buffer in emacs testAustin Clements
The first subprocess error exit code test assumed the *Notmuch errors* buffer would be empty. Rather than assuming, make it so.
2013-11-08lib: Document extent of some return valuesAustin Clements
This documents the extent of the notmuch_messages_t* pointers returned by notmuch_thread_get_toplevel_messages and notmuch_thread_get_messages.
2013-11-08cli: Separate current and deprecated format versionAustin Clements
Previously, the CLI would print a deprecation warning if a client requested any format version other than the current one. However, if we add fields that are backwards-compatible, but want clients to be able to depend on, we need to bump the version, but that doesn't make the older version deprecated. Hence, separate out the "minimum active" version and only print a warning for requests below this version number.
2013-11-08schemata: Disambiguate non-terminal namesAustin Clements
Previously, the show schema and the search schema used different "thread" non-terminals. While these schemata don't interact, this is still confusing, so rename search's "thread" to "thread_summary". To further limit confusion, prefix all top-level search non-terminals now begin with "search_".
2013-11-07man: document notmuch compact --quiet and --backup=DIRECTORY optionsJani Nikula
2013-11-07cli: add compact --quiet option and silence output with itJani Nikula
Provide a way to silence the output.
2013-11-07lib: add library version check macroJani Nikula
There have been some plans for making build incompatible changes to the library API. This is inconvenient, but it is much more so without a way to easily conditional build against multiple versions of notmuch. The macro has been lifted from glib.
2013-11-07emacs: move the show entry to tree into show.elMark Walters
Move the keybinding and show specific helper from tree.el to show.el
2013-11-07emacs: add z to common keymapMark Walters
Add the main entry "z" to notmuch-tree to the common keymap.
2013-11-07emacs: move search based tree functions to notmuch.elMark Walters
Move a couple of the search mode specifc caller helpers for tree from tree into notmuch.el.
2013-11-07test: tree: remove require from testsMark Walters
Now tree is included by default we don't need to "require it" in the test.
2013-11-07emacs: minimal change to load notmuch-tree by defaultMark Walters
We want to load notmuch-tree when notmuch is loaded, so include it as a require in notmuch.el. To avoid circular dependency we need to move one keybinding from notmuch-tree.el to notmuch.el: it makes sense for it to be defined there anyway. Since tree is now loaded by default there is no need to print a message when it is loaded.
2013-11-07emacs: tree: remove test for emacs from tree testMark Walters
Now the test is in mainline we can remove the check that emacs exists.
2013-11-07test: move emacs-tree test into mainlineMark Walters
We move the emacs-tree test and associated files into the main test directory and add the test to the list in notmuch-test.
2013-11-07emacs: add tree to the makefileMark Walters
2013-11-07emacs: move notmuch-tree from contrib to mainlineMark Walters
2013-11-07emacs: tree: remove unneeded declarationsMark Walters
There are some crufty declare-functions and requires in notmuch-tree: since it requires notmuch.el itself this all works but in preparation for the move to mainline tidy this up.
2013-11-07emacs: move notmuch-help to libMark Walters
notmuch-help is in notmuch.el not notmuch-lib.el and this is incovenient for the way pick/tree uses it. I think lib makes more sense anyway so move it there.
2013-11-07cli: add compact --backup=DIRECTORY option, don't backup by defaultJani Nikula
It's the user's decision. The recommended way is to do a database dump anyway. Clean up the relevant printfs too.
2013-11-07cli: return error status if compaction failsJani Nikula
As is customary for any tool.
2013-11-07lib: use the compaction backup path provided by the callerJani Nikula
The extra path component added by the lib is a magic value that the caller just has to know. This is demonstrated by the current code, which indeed has "xapian.old" both sides of the interface. Use the backup path provided by the lib caller verbatim, without adding anything to it.
2013-11-07lib: update documentation of callback functions for database_compact and database_upgrade.David Bremner
Compact was missing callback documentation entirely, and upgrade did not discuss the closure parameter.
2013-11-07lib: add closure parameter to compact status update callbackJani Nikula
This provides much more flexibility for the caller.
2013-11-07lib: do not leak the database in compactionJani Nikula
Destroy instead of close the database after compaction, and also on error path, to not leak the database.
2013-11-06lib: check talloc success in compactJani Nikula
In line with the allocation checks all around.
2013-11-06lib: construct compactor within try block to catch any exceptionsJani Nikula
Constructors may also throw exceptions. Catch them.
2013-11-06test: fix compact backup / restore testDavid Bremner
It was looking in completely the wrong place for the backup and the (test) xapian database. Unfortunately test_begin_subtest hides the relevant errors.
2013-11-02query: bind queries to database objectsFelipe Contreras
The queries don't really work after a database is closed, and we would like them to be freed if the database is destroyed. Acknowledged-by: David Bremner <david@tethera.net> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2013-10-31test: Add compact testBen Gamari
Signed-off-by: Ben Gamari <bgamari.foss@gmail.com>
2013-10-30lib: fix build on !HAVE_XAPIAN_COMPACTJani Nikula
Minimal change to build notmuch against xapian that doesn't have compaction support.
2013-10-29pick: rename test emacs-pick to emacs-treeMark Walters
Also fixup run-tests.sh
2013-10-29pick: rename test outputs from pick to treeMark Walters
Rename all the test output files to tree rather than pick, move the containing directory to a tree.expected-output and fix up the references in the test.
2013-10-29pick: Change the test names and print out for pick testsMark Walters
Change from the pick name to the tree name