aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Split notmuch_database_close into two functionsGravatar Justus Winter2012-04-28
| | | | | | | | | | | | | | | | | | Formerly notmuch_database_close closed the xapian database and destroyed the talloc structure associated with the notmuch database object. Split notmuch_database_close into notmuch_database_close and notmuch_database_destroy. This makes it possible for long running programs to close the xapian database and thus release the lock associated with it without destroying the data structures obtained from it. This also makes the api more consistent since every other data structure has a destructor function. The comments in notmuch.h are a courtesy of Austin Clements. Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
* emacs: Put notmuch-hello-sections in custom group notmuch-helloGravatar Austin Clements2012-04-24
|
* new: Fix missing end_atomic in remove_filename on errorGravatar Austin Clements2012-04-24
| | | | | | | Previously, if we failed to find the message by filename in remove_filename, we would return immediately from the function without ending its atomic block. Now this code follows the usual goto DONE idiom to perform cleanup.
* new: Print final fatal error message to stderrGravatar Austin Clements2012-04-24
| | | | | | | This was going to stdout. I removed the newline at the beginning of printing the fatal error message because it wouldn't make sense if you were only looking at the stderr stream (e.g., you had redirected stdout to /dev/null).
* new: Handle fatal errors in remove_filename and _remove_directoryGravatar Austin Clements2012-04-24
| | | | | Previously such errors were simply ignored. Now they cause an immediate cleanup and abort.
* new: Consistently treat fatal errors as fatalGravatar Austin Clements2012-04-24
| | | | | | | Previously, fatal errors in add_files_recursive were not treated as fatal by its callers (including itself!). This makes add_files_recursive errors consistently fatal and updates all callers to treat them as fatal.
* emacs: Put notmuch-print-mechanism in custom group notmuch-showGravatar Austin Clements2012-04-24
|
* config: Fix free in 'config get' implementation.Gravatar Peter Wang2012-04-24
| | | | | The array returned by g_key_file_get_string_list() should be freed with g_strfreev(), not free().
* emacs: modify help message for notmuch-search-line-faces to reflect ↵Gravatar Jameson Graef Rollins2012-04-24
| | | | | | | | preferred "deleted" tag name. No functional change here. The help message previously referred to the "delete" tag, but "deleted" is now preferred, so hopefully this will reduce any potential confusion.
* vim: simplify buildGravatar Felipe Contreras2012-04-21
| | | | | | | There should be no functional changes, except that you don't need to make the directories before installing. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* vim: fix regex after "notmuch show" output changeGravatar Jakob2012-04-21
| | | | | | The new field "excluded" was added to the output and made this regex fail. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
* lib: work around talloc_steal usage from C++ codeGravatar Jani Nikula2012-04-15
| | | | | | | | | | | | | | | | Implicit typecast from 'void *' to 'T *' is okay in C, but not in C++. In talloc_steal, an explicit cast is provided for type safety in some GCC versions. Otherwise, a cast is required. Provide a template function for this to maintain type safety, and redefine talloc_steal to use it. The template must be outside the extern "C" block (NOTMUCH_BEGIN_DECLS and NOTMUCH_END_DECLS), but keep it within the GCC visibility #pragma. No functional changes, apart from making the library build with compilers other than recent GCC. Signed-off-by: Jani Nikula <jani@nikula.org>
* Record dependencies during build instead of beforeGravatar Austin Clements2012-04-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the makefile created dependency files in a separate, first pass. In particular, include-ing the dependency files would cause make to attempt to rebuild those files using the dependency-generation rules in the makefile. Unfortunately, this approach required obtuse rules and silently delayed the start of the build process (by quite a bit on a clean tree without any dependency files). Worse, this required the dependency files to themselves depend on all of the headers the source file depended on, which meant that, if a header file was removed, the depedency file could not be updated because of a missing dependency (!), which would cause make to silently fail. This patch eliminates the dependency generation rules and instead generates dependency files as a side-effect of the regular build rule. On the first build, we don't need to know the dependencies beforehand; the object file doesn't exist, so it will be built anyway. On subsequent builds, if a header file is updated, the dependency rules generated by the previous build will force a rebuild. If a source file is updated, the dependency rules may be stale, but it doesn't matter because the updated source file will force a rebuild. In the final case above, the stale dependency rules may refer to a header file that no longer exists but is also no longer needed. In order to prevent this from breaking the build, we also pass gcc the -MP option, which generates phony targets for every depended-on header file, so make won't complain if it can't find them during a later build.
* show: Remove empty message_set_{start,sep,end} fieldsGravatar Austin Clements2012-04-15
| | | | Setting these to NULL is equivalent to the empty string now.
* show: Support NULL values for message_set_{start, sep, end}Gravatar Austin Clements2012-04-15
| | | | | Many formats don't need these, so it's more convenient if they don't have to set them at all.
* show: Remove unused fields from notmuch_show_formatGravatar Austin Clements2012-04-15
| | | | These fields were only used by old-style formatters.
* Remove show-message.cGravatar Austin Clements2012-04-15
| | | | There are no more calls to show_message_body.
* show: Remove support for old-style formatters in show_messageGravatar Austin Clements2012-04-15
| | | | | show_message used to have a compatibility path for old-style formatters. This removes that.
* Sync schemata with current code structureGravatar Austin Clements2012-04-15
| | | | | The schema itself hasn't changed, but many of the references to functions in notmuch-show.c were out of date.
* emacs: have tag-completion return all tags for nil inputGravatar Jameson Graef Rollins2012-04-12
| | | | | | Previously the function would fail if the initial input was nil. Now it will return a list of all tags, which obviously makes much more sense.
* News for raw format changesGravatar Austin Clements2012-04-12
|
* debian: add gnupg-agent to notmuch recommendsGravatar Jameson Graef Rollins2012-04-12
| | | | | gnupg-agent is required for message decryption, so this should help stem some issues encountered by users trying to decrypt messages.
* emacs: include tags from excluded messages in tag tab completionGravatar Jameson Graef Rollins2012-04-12
| | | | | | | The new message exclude functionality will hide tags that only exist on excluded messages. However, one might very well want to manually modify excluded tags. This makes sure tags from excluded messages are always available in tab completion.
* emacs: update call in tag-completion functionGravatar Jameson Graef Rollins2012-04-12
| | | | | "search-tags" is deprecated, so use the more modern and supported "search --output=tags".
* emacs: get rid of trailing spaces in notmuch-hello viewGravatar Dmitry Kurochkin2012-04-12
| | | | | | | | | | | This patch removes trailing spaces in notmuch-hello view. A side effect of this change is that tag/query buttons no longer include a space at the end. This means that pressing RET when the point is at the first character after the tag/query button no longer works (note that this is the standard behavior for buttons). We may change this behavior in the future (without adding trailing spaces back) if people would find this change inconvenient.
* emacs: make show set --exclude=falseGravatar Mark Walters2012-04-07
| | | | | | Show has to set --exclude=false to deal with cases where it is asked to show a single excluded message. It uses JSON so it can easily pass the exclude information to the user.
* test: add some exclude testsGravatar Mark Walters2012-04-07
| | | | | | | | Systematically test the exclude options for search. Also move the search existing exclude tests into the new test. There is some overlap between the two sets of tests but many of the existing ones are there because they triggered bugs in the past so I have kept them to ensure coverage.
* cli: move show to the new --exclude= option naming scheme.Gravatar Mark Walters2012-04-07
| | | | | | | | | | | | | | This moves notmuch show to the --exclude=(true|false) naming scheme. When exclude=false show returns all threads that match including those that only match in an excluded message. The excluded messages are flagged. When exclude=true the behaviour depends on whether --entire-thread is set. If it is not set then show only returns the messages which match and are not excluded. If it is set then show returns all messages in the threads that match in a non-excluded message, flagging the excluded messages in these threads. The rationale is that it is awkward to use a thread with some missing messages.
* cli: move search to the new --exclude= naming scheme.Gravatar Mark Walters2012-04-07
| | | | | | | | | | | | | | | | | | This commit replaces the --no-exclude option with a --exclude=(true|false|flag) option. The default is to omit the excluded messages. The flag option only makes sense if output=summary (as otherwise there is nowhere to print the flag). In summary output exclude=false and exclude=flag give almost identical output: they differ in that with the exclude=flag option the match count (i.e., the x in [x/n] in the output) is the number of matching non-excluded messages rather than the number of matching messages. Note this changes the default for output=summary when no --exclude= option is given: it used to default to flag and now defaults to true (i.e. omit excluded messages). This is neccesary to keep the cli output uncluttered and for speed reasons.
* cli: move count to the new --exclude=(true|false|flag) naming scheme.Gravatar Mark Walters2012-04-07
| | | | | | | Move the option --no-exclude to the --exclude= scheme. Since there is no way to flag messages only true and false are implemented. Note that, for consistency with other commands, this is implemented as a keyword option rather than a boolean option.
* lib: change default for notmuch_query_set_omit_excludedGravatar Mark Walters2012-04-07
|
* emacs: do not modify the alist passed to notmuch-sort-saved-searchesGravatar Jani Nikula2012-04-06
| | | | | | Sort modifies its input as a side effect. Pass it a copy in notmuch-sort-saved-searches to not modify the notmuch-saved-searches alist.
* configure: change gmime version in help message to 2.6Gravatar David Bremner2012-04-05
| | | | | | Since GMime 2.6 is now the stable version upstream, and probably the most tested by notmuch developers, it makes sense to suggest that to users to install.
* configure: print info about required gmime 2.4 or 2.6 versionsGravatar Tomi Ollila2012-04-05
| | | | | In case required gmime (2.4 or 2.6) version if not found print information about both alternatives (and currently minimal 2.6 version that is needed).
* configure: add empty line after each missing component messageGravatar Tomi Ollila2012-04-05
| | | | | | | Currently whenever message about missing GMime, Glib or talloc is printed the message is 2 lines, component info and its http location in next line. In the future the amount of lines will vary. To ease reading in these cases newline is added after each message.
* emacs: fix off-by-one error in notmuch-hello column alignmentGravatar Dmitry Kurochkin2012-04-05
| | | | | Expected results for few tests are fixed, the relevant test is unmarked broken.
* test: add broken test for long names in Emacs notmuch-hello viewGravatar Dmitry Kurochkin2012-04-05
| | | | | Currently, the column alignment in Emacs notmuch-hello is broken for tags/queries with long names.
* emacs: Fix the References header in replyGravatar Adam Wolfe Gordon2012-04-02
| | | | | | | | | | | | | | In the new reply code, the References header gets inserted by message.el using a function called message-shorten-references. Unlike all the other header-inserting functions, it doesn't put a newline after the header, causing the next header to end up on the same line. In our case, this header happened to be User-Agent, so it's hard to notice. This is probably a bug in message.el, but we need to work around it. This fixes the problem by wrapping message-shorten-references in a function that inserts a newline after if necessary. This should protect against the message.el bug being fixed in the future.
* test: Show all headers in emacs reply testsGravatar Adam Wolfe Gordon2012-04-02
| | | | | | | | | | | | | | By default, emacs hides the User-Agent and References headers when composing mail. This is a good thing for users, but a bad thing for testing, since we can create ugly or invalid headers and not have it show up in the tests. By setting message-hidden-headers to an empty list, we force emacs to show all the headers, so we can check that they're correct. Users won't see this, but it will let us catch future bugs. As a side-effect, this breaks all the reply tests, since there is a bug with the References and User-Agent headers, fixed in the next commit.
* emacs: Fix two bugs in replyGravatar Adam Wolfe Gordon2012-04-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug 1: Replying from alternate addresses ---------------------------------------- The reply code was inconsistent in its use of symbols and strings for header names being passed to message.el functions. This caused the From header to be lookup up incorrectly, causing an additional From header to be added with the user's primary address instead of the correct alternate address. This is fixed by using symbols everywhere, i.e. never using strings for header names when interacting with message.el. This change also removes our use of `mail-header`, since we don't use it anywhere else, and using assq makes it clear how the header lists are expected to work. Bug 2: Duplicate headers in emacs 23.2 -------------------------------------- The message.el code in emacs 23.2 assumes that header names will always be passed as symbols, so our use of strings caused problems. The symptom was that on 23.2 (and presumably on earlier versions) the reply message would end up with two of some headers. Converting everything to symbols also fixes this issue.
* test: Tests for reply from alternate addresses in emacsGravatar Adam Wolfe Gordon2012-04-02
| | | | | | | | | | Since the recent reply changes were pushed, there has been a bug that causes emacs to always reply from the primary address, even if the JSON or default CLI reply output uses an alternate address. This adds two tests to the emacs test library based on the two "Reply form..." tests in the reply test library. One is currently marked broken.
* notmuch-mutt: fix typo in manpageGravatar Stefano Zacchiroli2012-03-31
|
* NEWS: document inclusion of contrib/notmuch-muttGravatar Stefano Zacchiroli2012-03-31
|
* emacs: Fix mis-named argument to notmuch-get-bodypart-internalGravatar Austin Clements2012-03-31
| | | | | | Previously, this function took an argument called "message-id", even though it was a general query, rather than a message ID. This changes it to "query".
* reply: Move reply citation printing to the recursive MIME walkGravatar Austin Clements2012-03-31
| | | | | | | | | This makes more logical sense, since it makes the recursive printer responsible for the entire reply body and lets it start at the root of the MIME tree instead of the first child. (We could move reply header creation in there, too, but if we ever support proper reply to multiple messages, we'll want just one set of reply headers computed from the entire message set and many bodies.)
* reply: Convert default reply format to self-recursive styleGravatar Austin Clements2012-03-31
| | | | | This re-arranges the default reply formatter code to use the mime_node_t abstraction. There are no semantic changes.
* show/reply: Unify the code that extracts text partsGravatar Austin Clements2012-03-31
| | | | | | | | | Previously, show and reply had separate implementations of decoding and printing text parts. Now both use show's implementation, which was more complete. Show's implementation has been extended with an option to add reply quoting to the extracted part (this is implemented as a named flag to avoid naked booleans, even though it's the only flag it can take).
* emacs: Escape all message ID queriesGravatar Austin Clements2012-03-30
| | | | | | | | | | This adds a lib function to turn a message ID into a properly escaped message ID query and uses this function wherever we previously hand-constructed ID queries. Wherever this new function is used, documentation has been clarified to refer to "id: queries" instead of "message IDs". This fixes the broken test introduced by the previous patch.
* test: Add Emacs test for messages with quotes in their message IDGravatar Austin Clements2012-03-30
| | | | | Currently this is broken because Emacs doesn't properly escape double quotes in message IDs.
* cli: refactor "notmuch restore" message tagging into a separate functionGravatar Jani Nikula2012-03-30
| | | | | | | Refactor to make tagging code easier to reuse in the future. No functional changes. Signed-off-by: Jani Nikula <jani@nikula.org>