aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* lib: fix NULL checks for filenames iteratorsGravatar Sascha Silbe2012-09-01
| | | | | | | | The API documentation (notmuch.h) states that the parameter may be NULL, but the implementation only checked the current element, potentially dereferencing a NULL pointer in the process. Signed-off-by: Sascha Silbe <sascha-pgp@silbe.org>
* emacs: make notmuch-show return its bufferGravatar Mark Walters2012-09-01
| | | | | notmuch-pick uses the returned buffer to try and make sure it does not close the wrong buffer.
* contrib/nmbug/nmbug-status: if realname empty, use part of mailaddrGravatar Tomi Ollila2012-09-01
| | | | | | | When the From: field in patch email does not contain 'realname' field, the patch listing does not show anything as patch sender. In this case use the part before '@' in mail address as the sender identification in patch listing.
* test: use (format "%S") to print nil in emacs test.Gravatar David Bremner2012-08-30
| | | | | | | | The behaviour of "emacsclient --eval nil" changed from emacs23 to emacs24, and in emacs24 it prints 'nil' rather than an empty string. (format "%S" foo) produces a sexpr form of foo, and is consistent between the two versions.
* test: canonicalize content-type in "Sending a message via (fake) SMTP"Gravatar David Bremner2012-08-30
| | | | | | | The version of message.el in emacs24 omits the charset=us-ascii, causing the current version of this test to fail. With this patch, we accept either option. According to RFC 2046, they are semantically equivalent.
* test: emacs: run list-processes after accept-process-output in emacs 23.1Gravatar Tomi Ollila2012-08-29
| | | | | | | | | | | | | | When running emacs tests using emacs 23.1.1 the tests block (until timeout) when emacs function (notmuch-test-wait) is called. There is an emacs bug #2930 titled: 23.0.92; `accept-process-output' and `sleep-for' do not run sentinel It seems this is present in emacs 23.1. Calling list-processes after accept-process-output seems work around this problem; in case Emacs version is 23.1 a defadvice is activated to do just that.
* test: emacs: call accept-process-output in notmuch-test-waitGravatar Tomi Ollila2012-08-29
| | | | | | | | notmuch-test-wait called sleep-for in a loop to wait unconditionally 0.1 seconds while waiting for process to exit. accept-process-output returns as soon as there is any data available from process, so using it avoids unnecessary fixed delays. Both of these functions run process sentinels.
* notmuch-show: add notmuch-show-mark-read-tags optionGravatar Michal Nazarewicz2012-08-29
| | | | | | | | The `notmuch-show-mark-read-tags' lists tags that are to be applied when message is read. By default, the only value is "-unread" which will remove the unread tag. Among other uses, this variable can be used to stop notmuch-show from modifying tags when message is shown (by setting the variable to an empty list).
* NEWS: 2 minor consistency changes in sections 0.13.1 and 0.13.2Gravatar Tomi Ollila2012-08-29
| | | | | | | | | | 0.13.2: `contrib/notmuch-deliver` is in backticks elsewhere in NEWS file. Commands are generally written in backticks in latest NEWS entries. 0.13.1: Dropped period at the end of Title 'Fix compilation of ruby bindings', as all other titles do not end with a period.
* debian: mention some upstream news in changelogGravatar David Bremner2012-08-21
|
* debian: set distribution to experimentalGravatar David Bremner2012-08-21
| | | | This is to simplify potential bugfix uploads during Debian freeze.
* version: propagate version changesGravatar David Bremner2012-08-21
| | | | These are the result of running "make update-versions"
* debian: set date for changelog.Gravatar David Bremner2012-08-20
| | | | Make d/changelog match NEWS
* NEWS: set date for release.Gravatar David Bremner2012-08-20
|
* version: bump primary versionGravatar David Bremner2012-08-20
| | | | | The date for man pages is taken from the last commit, so in this case it makes sense to do this in two commits.
* News for new 'previous' behaviorGravatar Austin Clements2012-08-14
|
* emacs: Make moving to the previous message move to the previous boundaryGravatar Austin Clements2012-08-12
| | | | | | | | | | | Previously, notmuch-show-previous-message would move to the beginning of the message before the message containing point. This patch makes it instead move to the previous message *boundary*. That is, if point isn't already at the beginning of the message, it moves to the beginning of the current message. This is consistent with notmuch-show-next-message, which can be thought of as moving to the next message boundary. Several people have expressed a preference for this.
* reply: Convert JSON format to use sprinterGravatar Austin Clements2012-08-12
| | | | | | Almost all of reply was already being formatted using the sprinter. This patch converts the top-level dictionary to use the sprinter interface.
* cli: Remove now-unused json.cGravatar Austin Clements2012-08-12
| | | | | The string buffer quoting functions in json.c have been superseded by the new sprinter interface and are no longer used. Remove them.
* emacs: notmuch search bugfixGravatar Mark Walters2012-08-12
| | | | | | | | | | | | | | The recent change to use json for notmuch-search.el introduced a bug in the code for keeping position on refresh. The problem is a comparison between (plist-get result :thread) and a thread-id returned by notmuch-search-find-thread-id: the latter is prefixed with "thread:" We fix this by adding an option to notmuch-search-find-thread-id to return the bare thread-id. It appears that notmuch-search-refresh-view is the only caller of notmuch-search that supplies a thread-id so this change should be safe (but could theoretically break users .emacs functions).
* sprinters: bugfix when NULL passed for a string.Gravatar Mark Walters2012-08-12
| | | | | | | | | | | | The string function in a sprinter may be called with a NULL string pointer (eg if a header is absent). This causes a segfault. We fix this by checking for a null pointer in the string functions and update the sprinter documentation. At the moment some output when format=text is done directly rather than via an sprinter: in that case a null pointer is passed to printf or similar and a "(null)" appears in the output. That behaviour is not changed in this patch.
* test: Add test for messages with missing headersGravatar Austin Clements2012-08-12
| | | | | Currently the JSON tests for search and show are broken because notmuch attempts to dereference a NULL pointer.
* emacs: Fix "not defined at runtime" warningGravatar Austin Clements2012-08-12
| | | | | | | | | | Previously, the Emacs byte compiler produced the warning the function `remove-if-not' might not be defined at runtime. because we only required cl at compile-time (not runtime). This fixes this warning by requiring cl at runtime, ensuring that the definition of remove-if-not is available.
* NEWS: discuss changes for dump and restore syntax.Gravatar David Bremner2012-08-06
| | | | | The duplication in NEWS.Debian is so that Debian users will be warned during upgrade.
* notmuch-restore: replace positional argument for input with optionGravatar David Bremner2012-08-06
| | | | | Since notmuch dump doesn't use positional arguments anymore, it seems better to be consistent.
* notmuch-dump: remove deprecated positional argument for output fileGravatar David Bremner2012-08-06
| | | | | | The syntax --output=filename is a smaller change than deleting the output argument completely, and conceivably useful e.g. when running notmuch under a debugger.
* debian: alternately depend on emacs24 for notmuch-emacs, buildGravatar David Bremner2012-08-05
| | | | | | This should allow users to install notmuch-emacs with only emacs24 installed on their system. For good measure, allow building with emacs24 as a 4th choice.
* show: Remove now unused fields from notmuch_show_formatGravatar Austin Clements2012-08-03
| | | | | The message_set_{begin,sep,end} and null_message fields are no longer used because we now use the structure printer provided by the format.
* show: Convert do_show to use sprinterGravatar Austin Clements2012-08-03
|
* show: Convert show_message to use sprinterGravatar Austin Clements2012-08-03
| | | | | | | | | | Unlike the previous patches, this function is used for all formats. However, for formats other than the JSON format, the sprinter methods used by show_message are all no-ops, so this code continues to function correctly for all of the formats. Converting show_message eliminates show_null_message in the process, since this maps directly to an sprinter method.
* show: Convert envelope format_part_json to use sprinterGravatar Austin Clements2012-08-03
|
* show: Convert non-envelope format_part_json to use sprinterGravatar Austin Clements2012-08-03
|
* show: Convert format_part_sigstatus_json to use sprinterGravatar Austin Clements2012-08-03
|
* show: Convert format_headers_json to use sprinterGravatar Austin Clements2012-08-03
| | | | | | This no longer requires a talloc context (not that it really did before since it didn't return anything), so we remove its context argument.
* show: Feed the sprinter down to part formattersGravatar Austin Clements2012-08-03
| | | | | | There are several levels of function calls between where we create the sprinter and the call to the part formatter in show_message. This feeds the sprinter through all of them and into the part formatters.
* reply: Create a JSON sprinterGravatar Austin Clements2012-08-03
|
* show: Associate an sprinter with each formatGravatar Austin Clements2012-08-03
| | | | | | | This associates an sprinter constructor with each show format and uses this to construct the appropriate sprinter. Currently nothing is done with this sprinter, but the following patches will weave it through the layers of notmuch show.
* sprinter: Add a string_len methodGravatar Austin Clements2012-08-03
| | | | | | | This method allows callers to output strings with specific lengths. It's useful both for strings with embedded NULs (which JSON can represent, though parser support is apparently spotty), and non-terminated strings.
* test: Remove unnecessary JSON canonicalizationGravatar Austin Clements2012-08-03
| | | | | | Format canonicalization of JSON output is no longer necessary, so remove it. Value canonicalization (e.g., normalizing thread IDs) is still necessary, so all of the sanitization functions remain.
* test: Uniformly canonicalize actual and expected JSONGravatar Austin Clements2012-08-03
| | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we used a variety of ad-hoc canonicalizations for JSON output in the test suite, but were ultimately very sensitive to JSON irrelevancies such as whitespace. This introduces a new test comparison function, test_expect_equal_json, that first pretty-prints *both* the actual and expected JSON and the compares the result. The current implementation of this simply uses Python's json.tool to perform pretty-printing (with a fallback to the identity function if parsing fails). However, since the interface it introduces is semantically high-level, we could swap in other mechanisms in the future, such as another pretty-printer or something that does not re-order object keys (if we decide that we care about that). In general, this patch does not remove the existing ad-hoc canonicalization because it does no harm. We do have to remove the newline-after-comma rule from notmuch_json_show_sanitize and filter_show_json because it results in invalid JSON that cannot be pretty-printed. Most of this patch simply replaces test_expect_equal and test_expect_equal_file with test_expect_equal_json. It changes the expected JSON in a few places where sanitizers had placed newlines after commas inside strings.
* debian: close notmuch-mutt bug in changelogGravatar David Bremner2012-08-02
| | | | | Apparently Stefano and I forgot to finish that discussion about how to patch the changelog.
* emacs: show: exclude bug fixGravatar Mark Walters2012-08-02
| | | | | | The pipe message function (when used with a prefix) uses a search of the form "id:<id1> or id:<id2>" etc. Since the user says precisely which messages are wanted by opening them it should not use excludes.
* debian packaging: new depends for duplicate removals in mutt contribGravatar Stefano Zacchiroli2012-08-02
| | | | both new hard dependency for File::Which and soft dependency on fdupes
* Add duplicate message removal for notmuch-mutt.Gravatar Kevin McCarthy2012-08-02
| | | | | | | | Add a --remove-dups flag which removes duplicate files from search and thread results. Uses fdupes if installed. Otherwise it runs a size and Digest::SHA scan on each file to detect duplicates. Signed-off-by: Stefano Zacchiroli <zack@upsilon.cc>
* emacs: fix a bug introduced by the recent search cleanups.Gravatar Mark Walters2012-08-02
| | | | | | | In commit 5d0883e the function notmuch-search-next-thread was changed. In particular it only goes to the next message if there is a next message. This breaks notmuch-show-archive-thread-then-next. Fix this by going to the "next" message whenever we are on a current message.
* debian: update changelog for cleaning changesGravatar David Bremner2012-08-02
|
* build system: remove configure output in Make distclean.Gravatar David Bremner2012-08-02
| | | | | | | | | | | | Create a variable DISTCLEAN which contains a list of things to clean in the distclean target (in addition to running the clean target). The deleted comment seems to be false these days, since we do create files during configuration. Use "rm -rf" here as well in case we want to add directories to DISTCLEAN.
* build system: remove directories created by tests in "make clean"Gravatar David Bremner2012-08-02
| | | | | | | | | These extra directories cause problems for building on Debian twice in a row. In order to remove directories, we need to us "rm -rf" instead of "rm -f". So now we should be extra careful what we add to the variable CLEAN.
* configure: check whether shell is capable of parameter substring processingGravatar Tomi Ollila2012-07-25
| | | | | | | | | | | | | | | 'configure' script uses parameter substring extensively. It is Posix shell feature. Original Bourne shell does not have such features. Some systems still ships such shells as /bin/sh (for compatibility reasons -- shell scripts written on those platforms are expected to work on 1990's systems). Just testing whether parameter substring processing works will make the shell exit due to syntax error if it is not compatible. Therefore the test is executed in a subshell -- subshell exits with nonzero value when the operation in question fails. As 'if ! ...' does not work in Bourne shell, Short-circuiting construct '||' is used to print information message and exit when expected.
* man: show: update man page for entire-thread and json.Gravatar Mark Walters2012-07-25
| | | | | | Previously in notmuch show --format=json implied --entire-thread. This is still the default but it is now possible to disable this. Update the manpage to reflect this.