aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* python: remove now unused import of module sysGravatar Justus Winter2012-12-21
| | | | Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
* python: remove functions that have been marked as deprecated in 0.14Gravatar Justus Winter2012-12-21
| | | | | | | | | | | Removes Message.{format,print}_messages. This code adds functionality at the python level that is unlikely to be useful for anyone. Furthermore the python bindings strive to be a thin wrapper around libnotmuch. The code has been marked as deprecated in 0.14 and is now removed. Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
* python: remove Database.db_pGravatar Justus Winter2012-12-21
| | | | | | The function has been marked as deprecated in 0.14 and is now removed. Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
* man: document notmuch search --format=text0Gravatar Jani Nikula2012-12-18
|
* test: notmuch search --format=text0Gravatar Jani Nikula2012-12-18
|
* cli: add --format=text0 to notmuch searchGravatar Jani Nikula2012-12-18
| | | | | | | Add new format text0, which is otherwise the same as text, but use the null character as separator instead of the newline character. This is similar to find(1) -print0 option, and works together with the xargs(1) -0 option.
* sprinter: add text0 formatter for null character separated textGravatar Jani Nikula2012-12-18
| | | | | Same as the text formatter, but with each field separated by a null character rather than a newline character.
* sprinter: clarify separator documentationGravatar Jani Nikula2012-12-18
| | | | For text printers, the separator is a syntactic element.
* contrib: pick: Do not indent messages in the message paneGravatar Mark Walters2012-12-18
| | | | | | | Currently pick just uses notmuch-show to display messages in the message pane: this means that they get indented just as show would. However, since pick is only displaying one message at a time there is no need to indent so override the indentation.
* test: conform to content length, encoding fieldsGravatar Peter Wang2012-12-17
| | | | | | Update tests to expect content-length and content-transfer-encoding fields in show --format=json output, for leaf parts with omitted body content.
* show: indicate length, encoding of omitted body contentGravatar Peter Wang2012-12-17
| | | | | | | | | | | If a leaf part's body content is omitted, return the encoded length and transfer encoding in --format=json output. This information may be used by the consumer, e.g. to decide whether to download a large attachment over a slow link. Returning the _encoded_ content length is more efficient than returning the _decoded_ content length. Returning the transfer encoding allows the consumer to estimate the decoded content length.
* show: indicate charset for all omitted partsGravatar Peter Wang2012-12-17
| | | | | | Write a "charset" field for all omitted parts for which it is applicable, not only text/html parts. Factor out the code to a separate function. It will be extended with more fields next.
* test: normalize only message filenames in show jsonGravatar Peter Wang2012-12-17
| | | | | | | notmuch_json_show_sanitize replaced "filename" field values even in part structures, where the value is predictable. Make it only normalize the filename value if it is an absolute path (begins with slash), which is true of the Maildir filenames that were intended to be normalized away.
* emacs: Use --format-version for search, show, and replyGravatar Austin Clements2012-12-16
|
* emacs: Special handling for version mismatch errorsGravatar Austin Clements2012-12-16
| | | | | Since Emacs has more semantic information, we suppress the generic format version error from the CLI and give a more informative error.
* test: Sanity tests for the --format-version argumentGravatar Austin Clements2012-12-16
|
* reply: Support --format-versionGravatar Austin Clements2012-12-16
|
* show: Support --format-versionGravatar Austin Clements2012-12-16
|
* search: Support --format-versionGravatar Austin Clements2012-12-16
|
* cli: Framework for structured output versioningGravatar Austin Clements2012-12-16
| | | | | | | | | | | | | | | | | | | | | Currently there is a period of pain whenever we make backward-incompatible changes to the structured output format, which discourages not only backward-incompatible improvements to the format, but also backwards-compatible additions that may not be "perfect". In the end, these problems limit experimentation and innovation. This series of patches introduces a way for CLI callers to request a specific format version on the command line and to determine if the CLI does not supported the requested version (and perhaps present a useful diagnostic to the user). Since the caller requests a format version, it's also possible for the CLI to support multiple incompatible versions simultaneously, unlike the alternate approach of including version information in the output. This patch lays the groundwork by introducing a versioning convention, standard exit codes, and a utility function to check the requested version and produce standardized diagnostic messages and exit statuses.
* test: Test search's handling of subprocess errorsGravatar Austin Clements2012-12-16
|
* emacs: Use unified error handling in searchGravatar Austin Clements2012-12-16
| | | | | | This slightly changes the output of an existing test since we now report non-zero exits with a pop-up buffer instead of at the end of the search results.
* test: Test show's handling of subprocess errorsGravatar Austin Clements2012-12-16
|
* emacs: Improve error handling for notmuch-call-notmuch-jsonGravatar Austin Clements2012-12-16
| | | | | | This checks for non-zero exit status from JSON CLI calls and pops up an error buffer with stderr and stdout. A consequence of this is that show and reply now handle errors, rather than ignoring them.
* emacs: Factor out synchronous notmuch JSON invocationsGravatar Austin Clements2012-12-16
| | | | | | Previously this code was duplicated between show and reply. This factors out synchronously invoking notmuch and parsing the output as JSON.
* emacs: Use unified error handling in notmuch-call-notmuch-processGravatar Austin Clements2012-12-16
| | | | | | This makes notmuch-call-notmuch-process use the unified CLI error handling, which basically refines the error handling this function already did.
* emacs: Centralize notmuch command error handlingGravatar Austin Clements2012-12-16
| | | | | | | This provides library functions for unified handling of errors from the notmuch CLI. Follow-up patches will convert some scattered error handling to use this and add error handling where we currently ignore errors.
* contrib: pick: archive message updatedGravatar Mark Walters2012-12-15
| | | | | | | Update pick's archive message to respect notmuch-archive-tags. Also split archive message into an archiving part and a separate "then-next" part, to move more inline with show. Update the keybinding so default behaviour is unchanged.
* emacs: Fix bug in resynchronizing after a JSON parse errorGravatar Austin Clements2012-12-15
| | | | | | | | | | | | | | | Previously, if the input stream consisted only of an error message, notmuch-json-begin-compound would signal a (wrong-type-argument number-or-marker-p nil) error when reaching the end of the error message. This happened because notmuch-json-scan-to-value would think that it reached a value and put the parser into the 'value state. Even after notmuch-json-begin-compound signaled the syntax error, the parser would remain in this state and when the resynchronization logic reached the end of the buffer, the parser would fail because the 'value state indicates that characters are available. This fixes this problem by restoring the parser's previous state if it encounters a syntax error.
* perf-test: use nmbug tags in dump-restore testsGravatar David Bremner2012-12-15
| | | | | | | | | | | This makes the tag set a bit less trivial. Note that if you use the small corpus, this is not so interesting (and is also a bit noisy) since the messages will not be found. In the future this could be checked for. Conflicts: performance-test/01-dump-restore
* perf-test: split basic into 00-new, 01-dump-restore, and 02-tagGravatar David Bremner2012-12-15
| | | | | We use the new "time_start" function to restore the database from cache if possible.
* perf-test: unpack tags.Gravatar David Bremner2012-12-15
| | | | | There is only one set of tags, independant of the size of message corpus chosen.
* perf-test: bump corpus version to 0.3Gravatar David Bremner2012-12-15
| | | | | The new version ships with some tags, and an updated archive of the notmuch mailing list.
* perf-test: update READMEGravatar David Bremner2012-12-15
| | | | Describe new argument parsing and mention cache handling routines.
* perf-test: add caching of xapian databaseGravatar David Bremner2012-12-15
| | | | | The caching and uncaching seem to be necessarily manual, as timing the initial notmuch new is one of our goals with this suite.
* perf-test: cache unpacked corpusGravatar David Bremner2012-12-15
| | | | | Unpacking is not really the expensive step (compared to the initial notmuch new), but this is a pre-requisite to caching the database.
* perf-test: optionally print description for each group of testsGravatar David Bremner2012-12-15
| | | | | Output from tests is indented slightly in the same style as the correctness tests.
* perf-test: add corpus size to output, compact I/O statsGravatar David Bremner2012-12-14
| | | | | | | | | Austin suggested a while ago that the corpus size be printed in the header. In the end it seems the corpus will be fixed per test script, so this suggestion indeed makes sense. The tabbing was wrapping on my usual 80 column terminal, so I joined the input and output columns together.
* perf-test: add argument parsing for performance testsGravatar David Bremner2012-12-14
| | | | | This patch just sets (non-exported) variables. The variable $debug is already used, and $corpus_size will be used in following commits.
* perf-test: propagate non-zero returns from /usr/bin/timeGravatar David Bremner2012-12-14
| | | | | | Unlike in the correctness tests, the most common cause of non-zero return seems to be the user interrupting, so killing the run seems like the friendly thing to do.
* test: emacs: new tests "notmuch-show: {add,remove} multiple tags {to,from} ↵Gravatar Pieter Praet2012-12-11
| | | | | | | | | | | | | | | | single message" * test/emacs: - Rename subtests "{Add,Remove} tag from notmuch-show view" to "notmuch-show: {add,remove} single tag {to,from} single message" to be consistent with the following tests. - New subtest "notmuch-show: add multiple tags to single message": `notmuch-show-add-tag' ("+") can add multiple tags to a message. - New subtest "notmuch-show: remove multiple tags from single message": `notmuch-show-remove-tag' ("-") can remove multiple tags from a message.
* contrib: pick: bugfix for pick splitting the window excessivelyGravatar Mark Walters2012-12-11
| | | | | | | | | | Previously if you carried on past the last message in a pick view pick would get confused and `forget' about the split pane and would try and re-split when moving up again. This was due to faulty logic in notmuch-pick-show-message: something that should have been in the (when message) clause was not. Thanks to jrollins for the bug report.
* NEWS: under-the-hood Emacs interface fixesGravatar Tomi Ollila2012-12-10
| | | | | | | | | | | Added the following Emacs Interface NEWS entries: Catch errors bodypart insertions may throw, Improved text/calendar content handling and Disabled coding conversions when reading in `with-current-notmuch-show-message`. Thanks to Austin and David for content improvements.
* emacs: add support for stashing the thread id in show viewGravatar Jani Nikula2012-12-09
| | | | | Add a prefix argument to notmuch-show-stash-message-id to stash thread id instead of message id.
* tag-util: optimization of tag applicationGravatar David Bremner2012-12-09
| | | | | | | | | The idea is not to bother with restore operations if they don't change the set of tags. This is actually a relatively common case. In order to avoid fancy datastructures, this method is quadratic in the number of tags; at least on my mail database this doesn't seem to be a big problem.
* notmuch-{dump,restore}.1: document new format optionsGravatar David Bremner2012-12-09
| | | | | More or less arbitrarily, notmuch-dump.1 gets the more detailed description of the format.
* test/dump-restore: add test for warning/error messagesGravatar David Bremner2012-12-09
| | | | | | We want to test both that error/warning messages are generated when they should be, and not generated when they should not be. This varies between restore and batch tagging.
* test: second set of dump/restore --format=batch-tag testsGravatar David Bremner2012-12-09
| | | | | | | | These one need the completed functionality in notmuch-restore. Fairly exotic tags are tested, but no weird message id's. We test each possible input to autodetection, both explicit (with --format=auto) and implicit (without --format).
* test: update dump-restore roundtripping test for batch-tag formatGravatar David Bremner2012-12-09
| | | | | Now we can actually round trip these crazy tags and and message ids. hex-xcode is no longer needed as it's built in.
* notmuch-restore: normalize case of error messages.Gravatar David Bremner2012-12-09
| | | | | In English, (unlike German) one does not capitalize the first word after a colon.