aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* nmbug-status: add support for querying the search viewsGravatar Jani Nikula2013-04-06
| | | | Make it easy for scripts to read the views and corresponding searches.
* cli: conform to same conditional build style as elsewhere in notmuch-showGravatar Jani Nikula2013-04-01
| | | | | | | Conform to the same style for #ifdef GMIME_ATLEAST_26 conditional builds as elsewhere. There are no functional changes.
* cli: mime node: abstract decryption and signature verificationGravatar Jani Nikula2013-04-01
| | | | | | | | | The code filled with #ifdef GMIME_ATLEAST_26 is difficult to read. Abstract the decryption and signature verification into functions, with separate implementations for GMime 2.4 and 2.6, to clarify the code. There should be no functional changes.
* cli: crypto: abstract gpg context creation for clarityGravatar Jani Nikula2013-04-01
| | | | | | | | The code filled with #ifdef GMIME_ATLEAST_26 is difficult to read. Abstract gpg context creation into a function, with separate implementations for GMime 2.4 and 2.6, to clarify the code. There should be no functional changes.
* emacs: hello: use batch countGravatar Mark Walters2013-04-01
| | | | | | | | | | | | This modifies notmuch hello to use the new count --batch functionality. It should give exactly the same results as before but under many conditions it should be much faster. In particular it is much faster for remote use. The code is a little ugly as it has to do some working out of the query when asking the query and some when dealing with the result. However, the code path is exactly the same in both local and remote use.
* test: notmuch count --batch and --input optionsGravatar Jani Nikula2013-04-01
|
* man: document notmuch count --batch and --input optionsGravatar Jani Nikula2013-04-01
|
* cli: add --batch option to notmuch countGravatar Jani Nikula2013-04-01
| | | | | | | | Add support for reading queries from stdin, one per line, and writing results to stdout, one per line. This will bring considerable performance improvements when utilized in Emacs notmuch-hello, especially so when running remote notmuch.
* cli: extract count printing to a separate function in notmuch countGravatar Jani Nikula2013-04-01
| | | | Make count printing on a query string reusable. No functional changes.
* cli: remove useless talloc_strdupGravatar Jani Nikula2013-04-01
| | | | | If the condition holds, query_string_from_args() has already returned a talloc allocated empty string. There's no need to duplicate that.
* emacs: introduce notmuch-command-to-string, replace use of ↵Gravatar David Bremner2013-04-01
| | | | | | | | | shell-command-to-string This has two benefits: unified error handling, and avoiding tramp's hooking into shell-command-string. This seems to be a fix for id:874nguxbvq.fsf@tu-dortmund.de
* test: notmuch tag --remove-allGravatar Jani Nikula2013-03-30
|
* man: document notmuch tag --remove-allGravatar Jani Nikula2013-03-30
|
* cli: add --remove-all option to "notmuch tag"Gravatar Jani Nikula2013-03-30
| | | | | | | | | | | | | | | | | | Add --remove-all option to "notmuch tag" to remove all tags from the messages matching query before applying the tag changes. This allows removal of all tags and unconditional setting of the tags of a message: $ notmuch tag --remove-all id:foo@example.com $ notmuch tag --remove-all +foo +bar id:foo@example.com without having to resort to the complicated (and still quoting broken): $ notmuch tag $(notmuch search --output=tags '*' | sed 's/^/-/') \ id:foo@example.com $ notmuch tag $(notmuch search --output=tags '*' | sed 's/^/-/') \ +foo +bar id:foo@example.com
* cli: make caller check tag count in parse_tag_command_lineGravatar Jani Nikula2013-03-30
|
* completion: update README about bash completion dependenciesGravatar Jani Nikula2013-03-30
|
* NEWS: bash completionGravatar Jani Nikula2013-03-30
|
* cli: config: remove unnecessary braces from if blocksGravatar Jani Nikula2013-03-30
| | | | | Cosmetic change to drop unnecessary braces that don't even conform to the prevailing coding style.
* lib: Fix name reordering to handle commas without spacesGravatar Adam Wolfe Gordon2013-03-29
| | | | | | | | Notmuch automatically re-orders names of the format "Last, First" to "First Last" when the associated email address is First.Last@example.com. But, if a name is of the format "Last,First" then notmuch will format the name as "irst Last". Handle any number of spaces after the comma, including none.
* devel: add post-release tools news2wiki.pl and man-to-mdwn.plGravatar Tomi Ollila2013-03-29
| | | | | | | | | After new notmuch release has been published the NEWS and manual pages have been updated using these 2 programs. Adding the tools to notmuch repository eases their use, adds more transparency to the "process" and gives more people chance to do the updates is one is unavailable to do it at the time being.
* devel/STYLE: information how to enable standard pre-commit hookGravatar Tomi Ollila2013-03-29
| | | | | It is easier to enable git standard pre-commit hook, when the operation to do so is presented.
* completion: complete bash completion rewriteGravatar Jani Nikula2013-03-28
| | | | | | | | | | | | | | | | | | | | | | | Rewrite the bash completion script to actually do something useful. Supported completions: * All the notmuch commands, command line arguments, and values for keyword arguments. * Tags after + and - in 'notmuch tag'. * Config options in 'notmuch config', and some config option values. * Search prefixes in all commands that use search terms. * Tags after tag: prefix in search terms. * User's email addresses after from: and to: in search terms. This is all based on the bash-completion package [1], and will not work without it. [1] http://bash-completion.alioth.debian.org/
* emacs: possibility to customize the rendering of tagsGravatar Damien Cassou2013-03-25
| | | | | | | | | | | | | | | | | This patch extracts the rendering of tags in notmuch-show to the notmuch-tag file. This file introduces a `notmuch-tag-formats' variable that associates each tag to a particular format. This variable can be customized thanks to the work of Austin Clements. For example, '(("unread" (propertize tag 'face '(:foreground "red"))) ("flagged" (notmuch-tag-format-image tag "star.svg"))) associates a red foreground to the "unread" tag and a star picture to the "flagged" tag. Signed-off-by: Damien Cassou <damien.cassou@gmail.com>
* emacs: Add notmuch-combine-face-text-property-stringGravatar Damien Cassou2013-03-25
| | | | Signed-off-by: Damien Cassou <damien.cassou@gmail.com>
* emacs: Combine string faces and combine under existing facesGravatar Austin Clements2013-03-25
| | | | | | This improves notmuch-combine-face-text-property to support both applying faces to strings and to support combining the given face under existing faces, rather than over.
* emacs: Handle all face forms when combining facesGravatar Austin Clements2013-03-25
| | | | | | | | | | | | | | | Previously, notmuch-combine-face-text-property assumed that any existing face properties of the modified text were already in face list form. This was true as long as it was the only function manipulating faces (since it always produced a list form face), but if anything else has manipulated the face, it was more likely to be either a face name or a face plist. It also didn't correctly handle face lists as arguments, even though the doc string claimed it did. This patch fixes notmuch-combine-face-text-property to handle all face forms correctly by canonicalizing both the argument face and the existing faces into list form. This also means we can set the face to a simpler non-list form if there's no existing face.
* Bug#703608: [PATCH] debian: tighten notmuch-mutt dependency on notmuchGravatar Jameson Graef Rollins2013-03-22
| | | | notmuch version 0.4 is required for the --output=files option.
* man: document the notmuch --config=FILE global optionGravatar Jani Nikula2013-03-08
|
* cli: add top level --config=FILE optionGravatar Jani Nikula2013-03-08
| | | | Let the user specify the config file on the command line.
* cli: move config open/close to main() from subcommandsGravatar Jani Nikula2013-03-08
| | | | | | | | | | | | | This allows specifying config file as a top level argument to notmuch, and generally makes it possible to override config file options in main(), without having to touch the subcommands. If the config file does not exist, one will be created for the notmuch main command and setup and help subcommands. Help is special in this regard; the config is created just to avoid errors about missing config, but it will not be saved. This also makes notmuch config the talloc context for subcommands.
* cli: config: make notmuch_config_open() "is new" parameter input onlyGravatar Jani Nikula2013-03-07
| | | | | | | | We now have a notmuch_config_is_new() function to query whether a config was created or not. Change the notmuch_config_open() is_new parameter into boolean create_new to determine whether the function should create a new config if one doesn't exist. This reduces the complexity of the API.
* cli: config: keep track of whether the config is newly createdGravatar Jani Nikula2013-03-07
| | | | | | | | Keep track of whether the config is newly created, and add notmuch_config_is_new() accessor function to query this. This is to support anyone with a config handle to check this, instead of just whoever called notmuch_config_open().
* cli: plug main notmuch command into subcommand machineryGravatar Jani Nikula2013-03-07
| | | | | | This allows top level arguments to be added to notmuch in a way that doesn't require special handling for the plain notmuch command without a subcommand.
* cli: abstract subcommand finding into a new functionGravatar Jani Nikula2013-03-07
| | | | Clean up code.
* test/README: mention the test_expect_equal_json and *sanitize* functionsGravatar Aaron Ecay2013-03-07
| | | | also fix one typo
* nmbug: allow empty prefixGravatar David Bremner2013-03-02
| | | | | | | Current code does not distinguish between an empty string in the NMBPREFIX environment variable and the variable being undefined. This makes it impossible to define an empty prefix, if, e.g. somebody wants to dump all of their tags with nmbug.
* nmbug: replace hard-coded magic hash with git-hash-objectGravatar David Bremner2013-03-02
| | | | | | This is at least easier to understand than the magic hash. It may also be a bit more robust, although it is hard to imagine these numbers changing without many other changes in git.
* nmbug: use 'notmuch tag --batch'Gravatar David Bremner2013-03-02
| | | | | | | | This should be more robust with respect to tags with whitespace and and other special characters. It also (hopefully) fixes a remaining bug handling message-ids with whitespace. It should also be noticeably faster for large sets of changes since it does one exec per change set as opposed to one exec per tag changed.
* nmbug: use dump --format=batch-tagGravatar David Bremner2013-03-02
| | | | | | | This should make nmbug tolerate tags with whitespace and other special characters it. At the moment this relies on _not_ passing calls to notmuch tag through the shell, which is a documented feature of perl's system function.
* man: show and reply --decrypt option requires gpg-agentGravatar Jani Nikula2013-03-02
|
* cli: crypto: tell gmime to use gpg-agentGravatar Jani Nikula2013-03-02
| | | | | | | | | | | | | | | | | | | | | | | | | For decryption, we expect there to be a functioning gpg-agent, and we want gpg to talk to it for any needed credentials. There's a gmime function to declare that: g_mime_gpg_context_set_use_agent() [1], [2]. Start using it. I had gpg-agent running, but gpg "use-agent" configuration option disabled. This resulted in an error message from 'notmuch show': Failed to decrypt part: Canceled. and json had this: "encstatus" : [ { "status" : "bad" } ] One could argue the "use-agent" option should be enabled, but I'd like to use the agent only as a last resort. I think that's irrelevant though. There's a gmime function to declare what we expect, so we should use it. Conveniently it also fixes the problem in a user friendly way. [1] http://git.gnome.org/browse/gmime/commit/?id=ed985397843a9da3745a8b5de3d1d652acd24724 [2] https://bugzilla.gnome.org/show_bug.cgi?id=651826
* NEWS: one typo fixed and 0.15.1 header line tidied upGravatar Tomi Ollila2013-02-27
|
* Merge branch 'release'Gravatar David Bremner2013-02-18
|\ | | | | | | | | | | | | add in NEWS from 0.15.2 Conflicts: NEWS
* | devel/release-checks.sh: added check that 1st NEWS header is tidyGravatar Tomi Ollila2013-02-18
| | | | | | | | | | | | | | Check that the underlining '===...' for first (header) line in NEWS file is of the same length as the header text and it is all '=':s. -- extra execs removed by db.
* | ruby: Add bindings for notmuch_thread_get_messagesGravatar Austin Clements2013-02-18
| |
* | lib: Add an iterator over all messages in a threadGravatar Austin Clements2013-02-18
| | | | | | | | | | | | | | | | Previously, getting the list of all messages in a thread required recursively traversing the thread's message hierarchy, which was both difficult and resulted in messages being out of order. This adds a public function to retrieve an iterator over all of the messages in a thread in oldest-first order.
* | lib: Eliminate _notmuch_message_list_appendGravatar Austin Clements2013-02-18
| | | | | | | | | | This API invited micro-optimized and complicated list pointer manipulation and is no longer used.
* | lib: Separate list of all messages from top-level messagesGravatar Austin Clements2013-02-18
| | | | | | | | | | | | | | | | | | | | | | | | Previously, thread.cc built up a list of all messages, then proceeded to tear it apart to transform it into a list of top-level messages. Now we simply build a new list of top-level messages. This simplifies the interface to _notmuch_message_add_reply, eliminates the pointer acrobatics from _resolve_thread_relationships, and will enable us to do things with the list of all messages in the following patches.
* | lib: Clean up error handling in _notmuch_thread_createGravatar Austin Clements2013-02-18
| | | | | | | | | | | | | | Previously, there were various opportunities for memory leaks in the error-handling paths of this function. Use a local talloc context and some reparenting to make eliminate these leaks, while keeping the control flow simple.
* | test/test-lib.sh: separate signaled exitGravatar Tomi Ollila2013-02-18
| | | | | | | | | | | | | | When execution of tests is interrupted by signal coming outside of the test system itself, output just one line "interrupted by signal <num>" message to standard output. This distinguishes the case from internal exit and reduces noise.