aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* mime node: Record depth-first part numbersGravatar Austin Clements2012-01-25
| | | | | | | This makes the part numbers readily accessible to formatters. Hierarchical part numbering would be a more natural and efficient fit for MIME and may be the way to go in the future, but depth-first numbering maintains compatibility with what we currently do.
* emacs: have notmuch-search-archive-thread use -next-thread functionGravatar Jameson Graef Rollins2012-01-25
| | | | Use this standard function, to keep thread navigation in one place.
* NEWS: update "Tag exclusion" sectionGravatar Pieter Praet2012-01-23
|
* setup: prompt user for search.exclude_tags valueGravatar Pieter Praet2012-01-23
| | | | Allow users to customize the search.exclude_tags option during setup.
* setup: Create functions for tag list printing and parsingGravatar Austin Clements2012-01-23
| | | | | | This refactors the tag list printing and parsing currently used for new.tags so that both can be reused for the new search.exclude_tags option.
* config: only exclude messages if 'search.exclude_tags' is explicitly setGravatar Pieter Praet2012-01-23
| | | | | | | | | | | | Currently, the 'search.exclude_tags' option is automatically set to "deleted;spam;" if it's missing from the config file. This violates the Principle of Least Surprise, so *only* set 'search.exclude_tags' to "deleted;spam;" if we didn't find a configuration file at all. This patch is actually Austin Clements' work: id:"20120117203211.GQ16740@mit.edu"
* test: only exclude "deleted" messages from search if explicitly configuredGravatar Pieter Praet2012-01-23
| | | | | | | | | Currently, the 'search.exclude_tags' option is automatically set to "deleted;spam;" if it's missing from the config file. This violates the Principle of Least Surprise, so update the tests to *only* expect the exclusion of messages which are tagged "deleted" if the 'search.exclude_tags' option is explicitly set *and* contains that tag.
* search: rename auto_exclude_tags to {search, }exclude_tagsGravatar Pieter Praet2012-01-23
| | | | | | | All other config-related functions and args include the section title in their name, so for the sake of consistency, mirror that. Also, the "auto"matic part is a given, so that was dropped.
* show: Use consistent header ordering in the text formatGravatar Austin Clements2012-01-23
| | | | | | | | | | Previously, top-level message headers were printed as Subject, From, To, Date, while embedded message headers were printed From, To, Subject, Date. This makes both cases use the former order and updates the tests accordingly. Strangely, the raw format also uses this function, so this also fixes the two raw format tests affected by this change.
* test/emacs-large-search-buffer: correct typo (EXPEXTED -> EXPECTED)Gravatar Pieter Praet2012-01-23
| | | | introduced in commit 3b24b396
* test: make (kill-emacs) from emacsclient work with emacs 23.(1|2)Gravatar Tomi Ollila2012-01-22
| | | | | | | emacsclient --eval '(kill-emacs)' makes emacs versions 23.1 and 23.2 ask user input from running emacs. Redefining yes-or-no-p function when kill-emacs is executed for these emacs versions in test-lib.el avoids this test problem.
* test: whitespace-cleanup for most test/* filesGravatar Tomi Ollila2012-01-22
| | | | | | Used emacs (whitespace-cleanup) function to "cleanup blank problems" in test files where that could be done without breaking tests; test/emacs was partially, and test/multipart was fully reverted.
* .dir-locals.el: changed one-char comment prefix '; ' to two; '; ; 'Gravatar Tomi Ollila2012-01-22
| | | | | Like in emacs/*.el two comment chars (;;) is required so that (indent-region) doesn't break indentation.
* show: don't use hex literals in JSON outputGravatar Thomas Jost2012-01-22
| | | | | | | | | | | | | | | JSON does not support hex literals (0x..) so numbers must be formatted as %d instead of %x. Currently, the possible values for the gmime error code are 1 (expired signature), 2 (no public key), 4 (expired key) and 8 (revoked key). The other possible value is 16 (unsupported algorithm) but obviously it is much more rare. If this happens, the current code will add '"errors": 10'. This is valid JSON (it looks like a decimal number) but it is incorrect (should be 16, not 10). Since this is just an issue in the JSON encoder, no changes are needed on the Emacs side (or in other UIs using the JSON output).
* Fix NEWS about gmime 2.6Gravatar Thomas Jost2012-01-22
| | | | | Previous version had a typo ("they may be" instead of "there may be") and was lacking a proper description of the gmime bug.
* python: fix error handlingGravatar Justus Winter2012-01-22
| | | | | | | | | | | Before 3434d1940 the return values of libnotmuch functions were declared as c_void_p and the code checking for errors compared the returned value to None, which is the ctypes equivalent of a NULL pointer. But said commit wrapped all the data types in python classes and the semantic changed in a subtle way. If a function returns NULL, the wrapped python value is falsish, but no longer equal to None.
* uncrustify.cfg: initial support for notmuch coding styleGravatar David Bremner2012-01-21
| | | | | | | | | | | | | | | | | | | | | Uncrustify is a free (as in GPL2+) tool that indents and beautifies C/C++ code. It is similar to GNU indent in functionality although probably more configurable (in fairness, indent has better documentation). Uncrustify does not have the indent mis-feature of needing to have every typedef'ed type defined in the configuration (even standard types like size_t). This configuration starts with the linux-kernel style from the uncrustify config, disables aggressive re-indenting of structs, and fine tunes the handling 'else' and braces. In an ideal situation, running uncrustify on notmuch code would be NOP; currently this is not true for all files because 1) the configuration is not perfect 2) the coding style of notmuch is not completely consistent; in particular the treatment of braces after e.g. for (_) is not consistent. Some fine tuning by Tomi Olilla.
* emacs/*.el: changed one-char comment prefix ';' to two; ';;'Gravatar Tomi Ollila2012-01-21
| | | | | In order for emacs (indent-region) to (re)indent emacs lisp properly there needs to be at least 2 comment characters (;;).
* Make buttons for attachments allow viewing as well as savingGravatar Mark Walters2012-01-21
| | | | | | | | | | | | | | | | | Define a keymap for attachment buttons to allow multiple actions. Define 3 possible actions: save attachment: exactly as currently, view attachment: uses mailcap entry, view attachment with user chosen program Keymap on a button is: s for save, v for view and o for view with other program. Default (i.e. enter or mouse button) is save but this is configurable in notmuch customize. One implementation detail: the view attachment function forces all attachments to be "displayed" using mailcap even if emacs could display them itself. Thus, for example, text/html appears in a browser and text/plain asks whether to save (on a standard debian setup)
* Update NEWS and INSTALL about gmime 2.6Gravatar Thomas Jost2012-01-21
|
* Add compatibility with gmime 2.6Gravatar Thomas Jost2012-01-21
| | | | | | | | | | | | | | There are lots of API changes in gmime 2.6 crypto handling. By adding preprocessor directives, it is however possible to add gmime 2.6 compatibility while preserving compatibility with gmime 2.4 too. This is mostly based on id:"8762i8hrb9.fsf@bookbinder.fernseed.info". This was tested against both gmime 2.6.4 and 2.4.31. With gmime 2.4.31, the crypto tests all work fine (as expected). With gmime 2.6.4, one crypto test is currently broken (signature verification with signer key unavailable), most likely because of a bug in gmime which will hopefully be fixed in a future version.
* emacs: add invisible dot instead of space at the end of notmuch-hello search boxGravatar Dmitry Kurochkin2012-01-21
| | | | | | | | | | This makes `show-trailing-whitespace' happy, i.e. it does not mark the whole search box line as trailing spaces. Since the dot is invisible, this change makes no visible difference for `notmuch-hello'. Edited-by: Pieter Praet <pieter@praet.org> to fix the tests.
* Silence buildbot warnings about unused resultsGravatar Austin Clements2012-01-21
| | | | | | | | | | | This ignores the results of the two writes in sigint handlers even harder than before. While my libc lacks the declarations that trigger these warnings, this can be tested by adding the following to notmuch.h: __attribute__((warn_unused_result)) ssize_t write(int fd, const void *buf, size_t count);
* show: Handle read and write errorsGravatar Austin Clements2012-01-21
| | | | | | | | | | | | | For showing a message in raw format, rather than silently succeeding when a read or a write fails (or, probably, looping if a read fails), try to print an error message and exit with a non-zero status. This silences one of the buildbot warnings about unused results. While my libc lacks the declarations that trigger these warnings, this can be tested by adding the following to notmuch.h: __attribute__((warn_unused_result)) size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
* emacs: invert relation between 'notmuch-send and 'message customization groupsGravatar Pieter Praet2012-01-21
| | | | | | | 'message contains options relevant to 'notmuch-send, not the other way around. Thanks to Austin for suggesting `custom-add-to-group'. id:"20120118184408.GD16740@mit.edu"
* emacs: Improved printing support.Gravatar David Edmondson2012-01-21
| | | | | | | | | | Add various functions to print notmuch messages and tie them together with a simple frontend. Add a binding ('#') in `notmuch-show-mode' to print the current message. one trailing space removed by db.
* Document external dependencies in the test suiteGravatar Ethan Glasser-Camp2012-01-21
| | | | | | | | Add an explicit note to the README explaining what programs are necessary and the perhaps-surprising behavior of skipping tests if they aren't present. Signed-off-by: Ethan Glasser-Camp <ethan@betacantrips.com>
* emacs: Truncate lines and do not enable visual-line-mode in notmuch-show ↵Gravatar David Edmondson2012-01-21
| | | | | | | | | | | | | buffers. Enable the truncation of lines in `notmuch-show-mode' to avoid visual noise caused by the wrapping of the header lines. Don't enable `visual-line-mode' because it disables line truncation. The benefits of `visual-line-mode' were that it wrapped long lines in received messages. With `notmuch-wash-wrap-long-lines' now default behaviour, this is no longer required.
* emacs: globally replace non-branching "(if (not ..." with "(unless ..."Gravatar Pieter Praet2012-01-21
| | | | Less code, same results, without sacrificing readability.
* config: Better formatting for search section commentGravatar Austin Clements2012-01-20
| | | | | Since "auto_exclude_tags" is long and its description is multi-line, start the description on the next line and indent it consistently.
* News for tag exclusionGravatar Austin Clements2012-01-19
|
* emacs: logically group def{custom,face}sGravatar Pieter Praet2012-01-19
| | | | | | | | | | | | | | | | | | | | | To allow for expansion whilst keeping everything tidy and organized, move all defcustom/defface variables to the following subgroups, defined in notmuch-lib.el: - Hello - Search - Show - Send - Crypto - Hooks - External Commands - Appearance As an added benefit, defcustom keyword args are now consistently ordered as they appear @ defcustom's docstring (OCD much?). Proper defgroup docstrings and various other improvements by courtesy of Austin Clements.
* Fix dependency generation for compat, test, and utilGravatar Austin Clements2012-01-19
| | | | | This adds source files in compat, test, and util to SRCS so that the top-level Makefile.local will generate dependency files for them.
* Fix dependency generation for CLI sourcesGravatar Austin Clements2012-01-19
| | | | | | Previously, the dependency file list was generated before the CLI sources were added to SRCS, so dependency files weren't generated for CLI sources. This moves that code to after the CLI sources are added.
* Start devel directory for developer tools and documentation.Gravatar David Bremner2012-01-17
| | | | | | We had a lot of back and forth about the name of this directory, but nothing very conclusive. In the end, I just chose "devel" just to move on.
* fix .gitignore for gzipped man pagesGravatar Jani Nikula2012-01-17
|
* Revert "emacs: Don't attempt to colour tags in `notmuch-show-mode'."Gravatar David Bremner2012-01-17
| | | | | | | This reverts commit 4b256ff557e924fbaffca144d25a9d5f92026146. According to id:"87aa5nlwwg.fsf@praet.org" and followup messages, the assumptions of the patch seem not to hold in emacs 23.
* NEWS: consistent 2-space indentationGravatar Tomi Ollila2012-01-17
| | | | | | | In NEWS file, indentation for item descriptions is generally 2 spaces but in a few cases there were 3 or 4 (4 caused different markdown handling) space indentations. Indentation in those lines are brought to consistent 2-space indentation.
* search: Support automatic tag exclusionsGravatar Austin Clements2012-01-16
| | | | | | This adds a "search" section to the config file and an "auto_tag_exclusions" setting in that section. The search and count commands pass tag tags from the configuration to the library.
* lib: Add support for automatically excluding tags from queriesGravatar Austin Clements2012-01-16
| | | | | | This is useful for tags like "deleted" and "spam" that people generally want to exclude from query results. These exclusions will be overridden if a tag is explicitly mentioned in a query.
* cli: pick the user's address in a group list as from addressGravatar Jani Nikula2012-01-16
| | | | | | | Messages received to a group list were not replied to using the from address in the list. Fix it. Signed-off-by: Jani Nikula <jani@nikula.org>
* test: add known broken test for reply from address in named group listGravatar Jani Nikula2012-01-16
| | | | | | | | | | If a message was received to the user's address that was in a named group list, notmuch reply does not use that address for picking the from address. Groups lists are of the form: foo:bar@example.com,baz@example.com; Signed-off-by: Jani Nikula <jani@nikula.org>
* py3k: add a specialized version of _str for python3Gravatar Justus Winter2012-01-16
| | | | | | | All strings are unicode strings in python 3 and the basestring and unicode types are removed hence the need for a specialized version. Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>
* test: don't bail out of `run_emacs' too early when missing prereqsGravatar Pieter Praet2012-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | When running the Emacs tests in verbose mode, only the first missing prereq is reported because the `run_emacs' function is short-circuited early: #+begin_example emacs: Testing emacs interface missing prerequisites: [0] emacs(1) skipping test: [0] Basic notmuch-hello view in emacs SKIP [0] Basic notmuch-hello view in emacs #+end_example This can lead to situations reminiscent of "dependency hell", so instead of returning based on each individual `test_require_external_prereq's exit status, we now do so only after checking all the prereqs: #+begin_example emacs: Testing emacs interface missing prerequisites: [0] dtach(1) emacs(1) emacsclient(1) skipping test: [0] Basic notmuch-hello view in emacs SKIP [0] Basic notmuch-hello view in emacs #+end_example Also added missing prereq for dtach(1).
* emacs: Cycle through notmuch buffers rather than jumping to the last.Gravatar David Edmondson2012-01-15
| | | | | | | | As suggested by j4ni in #notmuch, rename `notmuch-jump-to-recent-buffer' as `notmuch-cycle-notmuch-buffers' and have it behave accordingly. Consider `message-mode' buffers to be of interest.
* emacs: Don't attempt to colour tags in `notmuch-show-mode'.Gravatar David Edmondson2012-01-15
| | | | | | | The tags were coloured using text properties. Unfortunately that text (the header line) also has an overlay, which overrides the text properties. There's not point in applying text properties that will never be seen.
* NEWS: add news items for reply to senderGravatar Jani Nikula2012-01-14
|
* Fix build warning: "/*" within commentGravatar Austin Clements2012-01-14
|
* test: add tests for "notmuch reply" --reply-to=senderGravatar Mark Walters2012-01-14
|
* emacs: bind 'r' to reply-to-sender and 'R' to reply-to-allGravatar Jani Nikula2012-01-14
| | | | | | | Change the default reply key bindings, making 'r' reply-to-sender and 'R' reply-to-all. Signed-off-by: Jani Nikula <jani@nikula.org>