aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* emacs: Introduce notmuch-jump: shortcut keys to saved searchesGravatar Austin Clements2014-08-05
| | | | | | | | | | | | | | | This introduces notmuch-jump, which is like a user-friendly, user-configurable global prefix map for saved searches. This provides a non-modal and much faster way to access saved searches than notmuch-hello. A user configures shortcut keys in notmuch-saved-searches, which are immediately accessible from anywhere in Notmuch under the "j" key (for "jump"). When the user hits "j", the minibuffer immediately shows a helpful table of bindings reminiscent of a completions buffer. This code is a combination of work from myself (originally, "notmuch-go"), David Edmondson, and modifications from Mark Walters.
* travis: Only notify IRC on success if the previous build failedGravatar Austin Clements2014-08-05
| | | | | Without this, Travis is rather spammy. Travis will continue to notify the IRC channel on each build failure, which seems desirable.
* lib: Fix slight misinformation in the database schema docGravatar Austin Clements2014-08-04
| | | | | | The database schema documentation made it sound like each mail document had exactly one on-disk message file, which hasn't been true for a long time.
* lib: Invalidate message metadata in _notmuch_message_gen_termsGravatar Austin Clements2014-08-04
| | | | | | | | Previously, we invalidated stored message metadata in _notmuch_message_add_term and _notmuch_message_remove_term, but not in _notmuch_message_gen_terms. This doesn't currently result in any bugs because of our limited uses of _notmuch_message_gen_terms, but it may could cause trouble in the future.
* config: read database.path from $MAILDIR if setGravatar Mark Oteiza2014-07-31
| | | | | Try to read the config parameter database.path from $MAILDIR before falling back to $HOME/mail
* config: read user.name from $NAME if setGravatar Mark Oteiza2014-07-31
| | | | | Try to read the config parameter user.name from $NAME before taking the user name from /etc/passwd.
* util: Make string-util.h C++-compatibleGravatar Austin Clements2014-07-31
|
* emacs: Clarify that notmuch-poll-script is deprecatedGravatar Austin Clements2014-07-31
| | | | | | | | | notmuch-poll-script has long since been deprecated in favor of post-new hooks, but this wasn't obvious from the documentation. Update the documentation to make this clear. Since notmuch-poll-script could, to some extend, be used to control the path of the notmuch binary and that use is now clearly discouraged, promote notmuch-command to a real defcustom instead of just a variable.
* emacs: show: make return value of notmuch-show-get-prop explicitGravatar Mark Walters2014-07-30
| | | | | This makes the fact the notmuch-show-get-prop returns nil if the major mode is neither show not tree explicit.
* dump: make dump take Xapian write lockGravatar Mark Walters2014-07-16
| | | | | | | | | | | | | | | | | | | | | | | Dump currently only takes the read lock. Xapian can cope with some changes while maintaining a read snapshot but with more changes it fails. Currently notmuch just gives a xapian error. To avoid this we take the write lock when dumping. This prevents other notmuch processes from modifying the xapian database preventing this error. Discussion with Olly on irc indicates that this is currently the best solution: in xapian trunk there may be better possibilities using snapshots but they need to make it to a release and propogate out to users before we can switch approach. Finally, this breaks one use case: pipelines of the form notmuch dump | ... | notmuch restore According to Olly this is already very fragile: it will only work on small databases. One of the tests relies on this behaviour so fix that to store the dump rather than use a pipe.
* nmbug: Handle missing @upstream in is_unmergedGravatar W. Trevor King2014-07-16
| | | | | | | | | | | | | | | | If we don't have an upstream, there is nothing to merge, so nothing is unmerged. This avoids errors like: $ nmbug status error: No upstream configured for branch 'master' error: No upstream configured for branch 'master' fatal: ambiguous argument '@{upstream}': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' 'git rev-parse @{upstream}' exited with nonzero value You might not have an upstream if you're only using nmbug locally to version-control your tags.
* test: Test thread linking in all possible delivery ordersGravatar Austin Clements2014-07-16
| | | | | | | | | | | | These tests deliver all possible (single-root) four-message threads in all possible orders and check that notmuch successfully links them into threads. These tests supersede and replace the previous and much less thorough "T260-thread-order" tests. There are two variants of the test: one delivers messages that reference only their immediate parent and the other delivers messages that reference all of their parents. The latter test is currently known-broken.
* Enable Travis-CI as a backup continuous integration service.Gravatar Wael M. Nasreddine2014-07-16
| | | | You can access the dashboard at https://travis-ci.org/notmuch/notmuch
* emacs: tree/show remove duplicate functionGravatar Mark Walters2014-07-16
| | | | | | | tree overrides notmuch-show-get-prop so that it can use many of the utility function directly. Now that tree is in mainline the version from tree can be moved to show and the original overridden show version dropped.
* nmbug: Add a git_with_status helper functionGravatar W. Trevor King2014-07-16
| | | | | | Sometimes we want to catch Git errors and handle them, instead of dying with an error message. This lower-level version of git() allows us to get the error status when we want it.
* emacs: set default in notmuch-read-queryGravatar Mark Walters2014-07-15
| | | | | | | | | | | | | | This adds the current query as a "default value" to notmuch-read-qeury. The default value is available via a down-arrow as opposed to history which is available from the up arrow. Note if a user presses return in the minibuffer this value is not returned. The implementation is simple but notmuch-read-query could be called via notmuch-search/notmuch-tree etc from any buffer so it makes sense to put the decision of how to extract the current query in notmuch-read-query rather than in each of the callers.
* nmbug-status: Optionally load the header and footer templates from the configGravatar W. Trevor King2014-07-15
| | | | For folks that don't like the default templates for whatever reason.
* nmbug-status: Add the time to the footer's build-dateGravatar W. Trevor King2014-07-15
| | | | | | | | | | | | | | | | Our repository [1] has a post-update hook that rebuilds the status page after each push. Since that may happen several times a day, we might as well show the build time (as well as the date) in the footer. The trailing 'Z' is the ISO 8601 designator for UTC. Now that we're showing times, it's nice to be explicit about the timezone we're using. The rename from date -> datetime gives us backward-compatibility for folks that *do* only want the date. We keep the old date formatting to support those folks. [1]: http://nmbug.tethera.net/git/nmbug-tags.git
* nmbug-status: Factor out header/footer context into a shared dictGravatar W. Trevor King2014-07-15
| | | | | | | Rather than splitting this context into header-only and footer-only groups, just dump it all in a shared dict. This will make it easier to eventually split the header/footer templates out of this script (e.g. if we want to load them from the config file).
* Move the generated date from the top of the page to the footer.Gravatar Carl Worth2014-07-15
| | | | | | | | | | | | It's useful reference information, but anyone who wants it will look for and find it. We don't need this front-and-center. Follow the pattern set by our header template with a triple-quoted string. The gray <hr> styling is less agressive. IE uses 'color' for drawing the rule, while Gecko and Opera use the border or 'background-color' [1]. [1]: https://bugzilla.mozilla.org/show_bug.cgi?id=239386
* Add a docstring describing the programGravatar Carl Worth2014-07-15
| | | | | | | | | Prefer a docstring to a header comment so we can use it as the ArgumentParser description (formatted with 'nmbug-status --help'). Script readers still have it near the top of the file. Since it's a docstring, use PEP 257's summary-line-and-body format [1]. [1]: http://legacy.python.org/dev/peps/pep-0257/#multi-line-docstrings
* Add explicit license informationGravatar Carl Worth2014-07-15
| | | | | It's nice to have for situations where this script is found outside of the notmuch source repository (e.g. after being installed).
* emacs: search archive tweakGravatar Mark Walters2014-07-15
| | | | | | | notmuch-search-archive-thread moves to the next line after tagging. In the normal case this makes sense, but if the region is active, it tags the whole region and then it doesn't really. Thus only move to the next line if region is not active.
* test: redirect gdb output to a file.Gravatar David Bremner2014-07-13
| | | | | It seems that the normal output redirection in the test suite doesn't work for gdb, but it's nice to have output in a file for debugging.
* devel: news2wiki to recognize yyyy-mm-dd or UNRELEASED as release dateGravatar Tomi Ollila2014-07-13
| | | | | | | The yyyy-mm-dd (actually \d\d\d\d-\d\d-\d\d) for a bit more restrictive (and self-documentative) than the \w\w\w\w-... that used to be there and UNRELEASED so that developers can test the latest NEWS converted to mdwn format before submitting NEWS patches.
* emacs: show: add an update seen function to post-command-hookGravatar Mark Walters2014-07-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add a function for updating seen messages to the post-command-hook. This function calls a customizable (by eg defcustom) function with parameters the start and end of the current window and that function can decide what to mark read based on that and the current point. Since this is in the post-command-hook it should get called after most user actions (exceptions include user resizing the window) so it should be possible to make sure the seen status gets updated whether the user uses notmuch commands like next-message or normal emacs commands like scroll-up. It removes all of the old mark read/seen points but introduces a simple example function that just marks the current message read if it is open. This function has one small subtlety: it makes sure it doesn't mark the same message read twice (in the same instance of the same buffer); otherwise the post-command-hook makes it impossible for a user to manually mark a message unread. This fixes the current bugs (imo) that closed messages can be marked read, and that opening a closed message does not mark it read. Another advantage of using the post-command-hook any programmatic use with point passing through a message will not mark it read.
* test: make test_emacs call post-command-hookGravatar David Bremner2014-07-13
| | | | | | | | | | | | | | The unread/read changes will use the post-command-hook. test_emacs does not call the post-command-hook. This adds a notmuch-test-progn which takes a list of commands as argument and executes them in turn but runs the post-command-hook after each one. The caller can batch operations (ie to stop post-command-hook from being interleaved) by wrapping the batch of operations inside a progn. We also explicitly run the post-command-hook before getting the output from a test; this makes sense as this will be a place the user would be seeing the information.
* emacs: Fix indentation.Gravatar David Edmondson2014-07-13
| | | | Fix the indentation of `notmuch-show-mode-map'.
* lib: Start all function names in notmuch-private.h withGravatar Charles Celerier2014-07-13
| | | | | | | | | | | | | | | | | As noted in devel/STYLE, every private library function should start with _notmuch. This patch corrects function naming that did not adhere to this style in lib/notmuch-private.h. In particular, the old function names that now begin with _notmuch are notmuch_sha1_of_file notmuch_sha1_of_string notmuch_message_file_close notmuch_message_file_get_header notmuch_message_file_open notmuch_message_get_author notmuch_message_set_author Signed-off-by: Charles Celerier <cceleri@cs.stanford.edu>
* test: use sh.config for configurationGravatar Jani Nikula2014-07-13
|
* build: generate sh.config for feeding configure results to shell scriptsGravatar Jani Nikula2014-07-13
| | | | | | | | | Only include the relevant information. Amended by David Bremner: Use a prefix NOTMUCH_ to minimize collisions with other variables.
* docs: remove spurious man page generated from doxygenGravatar David Bremner2014-07-13
| | | | | | | | | There is a doxygen bug about these odd files, https://bugzilla.gnome.org/show_bug.cgi?id=727796 But it isn't clear if / when a fix will be provided, so just delete it to avoid e.g. confusing man-to-wiki.pl
* NEWS: add minimal item for API change to close/destroyGravatar David Bremner2014-07-09
|
* lib: add return status to database close and destroyGravatar Jani Nikula2014-07-09
| | | | | | | | | notmuch_database_close may fail in Xapian ->flush() or ->close(), so report the status. Similarly for notmuch_database_destroy which calls close. This is required for notmuch insert to report error status if message indexing failed.
* build: check .git directory existence in srcdir (for out-of-tree builds)Gravatar Tomi Ollila2014-07-09
| | | | | | | | | | So that $(VERSION) and version.stamp uses the git-describe -based version data instead of the content of `version' file. For consistency also the git commands in Makefile[.local] target `verify-no-dirty-code' uses the git --git-dir=$srcdir/.git ... commands (inside ifeq($(IS_GIT),yes)). Attempting to make this target outside of the tree will fail in any case.
* doc: postprocess notmuch.3Gravatar David Bremner2014-07-09
| | | | | | Remove excess italics from doxygen output. It seems to make no sense (and is certainly ugly) to italicize the first argument to the .RI macro.
* doc: quiet doxygen warningsGravatar David Bremner2014-07-09
| | | | | remove some obsolete tags for XML output (which we don't currently generate in any case)
* doc: build and install doxygen api docsGravatar David Bremner2014-07-09
| | | | | In order to support out of tree builds and avoid hardcoding version number, generate `doc/config.dox` from configure.
* configure: use cc/c++ instead of gcc/g++Gravatar Fraser Tweedale2014-07-04
| | | | | | Some systems (e.g. FreeBSD 10) do not ship with the GNU Compiler Collection. Use generic cc/c++ instead of gcc/g++ (unless the CC/CXX environment variables are used).
* Merge tag '0.18.1'Gravatar David Bremner2014-06-25
|\ | | | | | | notmuch 0.18.1 release
| * version: bump to 0.18.1Gravatar David Bremner2014-06-25
| | | | | | | | Also add precis of NEWS to debian changelog
| * NEWS: Improve and correct "Fix for phrase indexing" entryGravatar Austin Clements2014-06-24
| | | | | | | | | | | | This improves the description of the fix, fixes some typos, and changes "(re)-indexed" to "indexed" because we have no particular notion of "re-indexing" a message.
| * NEWS: quibbles from TomiGravatar David Bremner2014-06-23
| | | | | | | | See id:m2vbrsgi7n.fsf@guru.guru-group.fi for details
* | Merge tag '0.18.1_rc0'Gravatar David Bremner2014-06-22
|\| | | | | | | notmuch 0.18.1~rc0 release
| * version: bump to 0.18.1~rc0Gravatar David Bremner2014-06-22
| | | | | | | | | | | | | | | | Also bump the python bindings version, the NEWS version and the Debian version. Since the changelog is (slightly dubiously) metadata, we have to change it to upload a release candidate.
| * NEWS: add news for 0.18.1Gravatar David Bremner2014-06-22
| | | | | | | | This is my summary of the commits from 0.18.
* | emacs: Forwarded messages should not have modified buffersGravatar David Edmondson2014-06-22
| | | | | | | | | | | | When the user begins forwarding a message, the resulting composition buffer should not be marked as modified, in order that it can immediately be killed without prompting.
* | Merge branch 'release'Gravatar David Bremner2014-06-22
|\| | | | | | | Austin's termpos patches and Felipe's zlib.pc workaround
| * configure: add workaround for systems without zlib.pcGravatar Felipe Contreras2014-06-21
| | | | | | | | | | | | | | | | Some systems (e.g. FreeBSD) might not have installed the appropriate pkg-config file as they should. We can workaround the issue by creating the .pc file they should have distributed. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
| * lib: Separate all phrases indexed by _notmuch_message_gen_termsGravatar Austin Clements2014-06-18
| | | | | | | | | | | | | | | | | | | | | | | | This adds a 100 termpos gap between all phrases indexed by _notmuch_message_gen_terms. This fixes a bug where terms from the end of one header and the beginning of another header could match together in a single phrase and a separate bug where term positions of un-prefixed terms overlapped. This fix only affects newly indexed messages. Messages that are already indexed won't benefit from this fix without re-indexing, but the fix won't make things any worse for existing messages.