aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* emacs: fix `notmuch-wash-region-to-button' to work at beginning of bufferDmitry Kurochkin2012-02-04
| | | | | | | | | | | | | | | | | | `Notmuch-wash-region-to-button' is the function that creates hidden regions with buttons for signatures, citations and original messages. Before the change, it did not work correctly if the to-be-hidden region started at the beginning of a message: the visibility toggle button was hidden as well. The patch fixes this. There are two parts in the fix: * Use `insert-before-markers' instead of `insert' for creating the button, so that it does not get added to the hidden overlay. * Stop using PREFIX argument for adding a newline before the button. The newline should not be added before a button at the beginning of buffer. The corresponding test is fixed now.
* test: add test for hiding Original Message region at beginning of a messageDmitry Kurochkin2012-02-04
| | | | | | | | | | The test is currently broken and will be fixed by a subsequent patch. The patch adds a new file for tests of Emacs notmuch-show view. Based on patch by David Edmondson [1]. [1] id:"1327562380-12894-4-git-send-email-dme@dme.org"
* emacs: Move the blank line from the bottom of the headers to the top of the ↵David Edmondson2012-02-03
| | | | | | | | | body. The blank line doesn't really change position, but is now considered to be part of the body rather than part of the headers. This means that it is visible when the body is visible rather than when the headers are visible.
* emacs: More address cleaning.David Edmondson2012-02-03
| | | | | | | Remove outer single-quotes from the mailbox part. Allow for multiple sets of nested single and double quotes. Add more tests.
* emacs: Prefer '[No Subject]' to blank subjects.David Edmondson2012-02-03
|
* emacs: Stop the `truncate-string-to-width' madness.David Edmondson2012-02-03
| | | | | There's no need to call `truncate-string-to-width' twice in this code path.
* lib: Use talloc to simplify cleanup in notmuch_database_openAustin Clements2012-02-03
| | | | | | | Previously, we manually "free"d various pointers in notmuch_database_open. Use a local talloc context instead to simplify cleanup and eliminate various NULL pointer initializations and conditionals.
* lib: Release resources if notmuch_database_open failsAustin Clements2012-02-03
| | | | | Previously, if a Xapian exception occurred in notmuch_database_open, we failed to clean up the allocated notmuch_database_t object.
* lib: Don't delete uninitialized pointersAustin Clements2012-02-03
| | | | | | | | | In the error-handling paths of notmuch_database_open, we call notmuch_database_close, which "delete"s several objects referenced by the notmuch_database_t object. However, some of these pointers may be uninitialized, resulting in undefined behavior. Hence, allocate the notmuch_database_t with talloc_zero to make sure these pointers are NULL so that "delete"ing them is harmless.
* test: remove ".sh" extension from the recently added Emacs testsDmitry Kurochkin2012-02-03
| | | | | All test files, except for the recently added Emacs tests, do not have ".sh" extension. So remove it from the new test files for consistency.
* configure: update explicit check for glib : >= 2.22Pieter Praet2012-02-03
| | | | | | | | | | | As of commit b3caef1f, we're using g_array_unref() in 'lib/query.cc', which was only introduced in glib 2.22, so update the dependency. Thanks to datapipe@gmail.com for reporting this [1]. Also see commit b88e6abc. [1] id:"alpine.DEB.2.02.1201132130220.21970@ltspubuntu4.int.smq.datapipe.net"
* emacs: globally replace non-branching "(if COND (progn ..." with "(when ..."Pieter Praet2012-02-01
| | | | Less code, same results, without sacrificing readability.
* emacs: fix show-previous-message doc stringJameson Graef Rollins2012-01-30
|
* emacs: modify the default show-mode key bindings for archivingJameson Graef Rollins2012-01-30
| | | | | | | | This changes the default key bindings for the 'a' key in notmuch-show mode. Instead of archiving the entire thread, it now just archives the current message, and then advance to the next open message (archive-message-then-next). 'A' is now bound to the previous archive-thread-then-next function.
* emacs: use pop-at-end functionality in show-archive-message-then-next functionJameson Graef Rollins2012-01-30
| | | | | This provides a smoother message processing flow by reducing the number of key presses needed for these common operations.
* emacs: add option to show-next-{, open-}message functions to pop out to ↵Jameson Graef Rollins2012-01-30
| | | | | | | | parent buffer if at end This will allow for keybindings that achieve a smoother message processing flow by reducing the number of key presses needed for most common operations.
* emacs: add message archiving functionsJameson Graef Rollins2012-01-30
| | | | | | | This adds two new message archiving functions that parallel the thread archiving functions: notmuch-show-archive-message{,-then-next}. The former also takes a prefix argument to unarchive the message (ie. put back in inbox).
* emacs: break out thread navigation from notmuch-show-archive-threadJameson Graef Rollins2012-01-30
| | | | | | | | | | | This function is now just for archiving the current thread. A new function is created to archive-then-next. The 'a' key binding is updated accordingly. This will allow people to bind to the simple thread archiving function without the extra navigation. The archive-thread function now also takes a prefix to unarchive the current thread (ie. put the whole thread back in the inbox).
* emacs: break up notmuch-show-archive-thread-internal into two more generally ↵Jameson Graef Rollins2012-01-30
| | | | | | | | | | | | | | | | | | | | | useful functions Break up notmuch-show-archive-thread-internal into two new functions: notmuch-show-tag-thread-internal: applies a tag to all messages in thread. If option remove flag is t, tags will be removed instead of added. notmuch-show-next-thread: moves to the next thread in the search result. If given a prefix, will show the next result, otherwise will just move to it in the search view. Two new interactive functions, notmuch-show-{add,remove}-tag-thread, are also added. Together, these provide a better suit of thread tagging and navigation tools. The higher level thread archiving functions are modified to use these new function.
* emacs: use search-next-thread to move to next thread in show modeJameson Graef Rollins2012-01-30
| | | | | We should always use the dedicated search mode navigation functions, in case navigation mechanics change down the line.
* moved _config_(get|set)_list () functions earlier in the fileTomi Ollila2012-01-30
| | | | | | Moved static functions _config_get_list () and _config_set_list () closer to the beginning of file so that their definition is known (without adding forward declarations) in upcoming changes.
* emacs: Don't mark messages as "unsaved" when printing.David Edmondson2012-01-27
| | | | | `ps-print-buffer' notes that a buffer is unsaved unless `buffer-modified-p' returns `nil', so ensure that it does.
* emacs: Another special case for `notmuch-show-clean-address'.David Edmondson2012-01-27
| | | | Remove backslashes.
* test: Updated expected output for new `notmuch-show-clean-address'.David Edmondson2012-01-27
|
* emacs: Avoid `mail-header-parse-address' in `notmuch-show-clean-address'.David Edmondson2012-01-27
| | | | | | | | | | `mail-header-parse-address' expects un-decoded mailbox parts, which is not what we have at this point. Replace it with simple string deconstruction. Mark the corresponding test as no longer broken. Minor whitespace cleanup.
* emacs: Re-enable line wrapping in `notmuch-show-mode'.David Edmondson2012-01-27
| | | | | Turn on `visual-line-mode' via a hook, so that those who so choose can avoid it.
* emacs: `notmuch-search-operate-all' code cleanup, no functional changesDmitry Kurochkin2012-01-27
|
* emacs: add completion to "tag all" operation ("*" binding)Dmitry Kurochkin2012-01-27
| | | | | The patch adds <tab> completion to "tag all" operation bound to "*" (`notmuch-search-operate-all' function).
* test: `notmuch-test-run' should protect against buffer switching.David Edmondson2012-01-26
| | | | | | The body of the test may cause the current buffer to change. Ensure that the output goes to the correct buffer by switching back before inserting it.
* test: `visible-buffer-substring' should not return text properties.David Edmondson2012-01-26
| | | | | When using `visible-buffer-substring' to examine a buffer, the text properties are not useful, so don't include them.
* emacs: polish notmuch-hello help textDmitry Kurochkin2012-01-26
| | | | Make `=' binding description consistent with others.
* emacs: Fix a notmuch-print.el compiler warning.David Edmondson2012-01-26
| | | | `notmuch-show-get-prop' should be declared.
* emacs: Make the part content available to `mm-inlinable-p'.David Edmondson2012-01-26
| | | | | | | | | | The `mm-inlinable-p' function works better if it has access to the data of the relevant part, so load that content before calling it. Don't load the content for parts that the user has indicated no desire to inline. This fixes the display of attached image/jpeg parts, for example.
* emacs: bind "s" to `notmuch-hello-search' in notmuch-hello bufferDmitry Kurochkin2012-01-25
| | | | | `notmuch-hello-search' uses `notmuch-search' function but refreshes notmuch-hello buffer when the search buffer is closed.
* emacs: use a single history for all searchesDmitry Kurochkin2012-01-25
| | | | | | | | There are two ways to do search in Emacs UI: search widget in notmuch-hello buffer and `notmuch-search' function bound to "s". Before the change, these search mechanisms used different history lists. The patch makes notmuch-hello search use the same history list as `notmuch-search' function.
* emacs: bind "s" to `notmuch-search' in notmuch-hello bufferDmitry Kurochkin2012-01-25
| | | | | | Before the change, "s" in notmuch-hello buffer would jump to the search box. The patch changes the binding to `notmuch-search' which is consistent with all other notmuch buffers.
* uncrustify.cfg: label indent, some known types, not, # and ##Tomi Ollila2012-01-25
| | | | | | | | | | | | | | | | | Adjusted some uncrustify variables to get closer to prevailing style: * Label indent (for goto) relative to current indentation. * Registered GMimeObject and mime_node_t being as types. * Space after ! (not) operator. * No space after 'stringify' (#) preprosessor token. * No spacing change around ## (option not versatile enough). There are at least 3 cases where attention needs to be paid: * If there is newline between function name and open paren in function call, the paren (and args) are indented too far right. * #define HOUR (60 *MINUTE) -- i.e. no space after star (*). * void (*foo)(args) -- i.e no space between (name) and (args).
* test: Add address cleaning tests.David Edmondson2012-01-25
|
* test: Add more helpers for emacs tests.David Edmondson2012-01-25
|
* test: Add `test_emacs_expect_t'.David Edmondson2012-01-25
| | | | | | | | | Add a new test function to allow simpler testing of emacs functionality. `test_emacs_expect_t' takes one argument - a lisp expression to evaluate. The test passes if the expression returns `t', otherwise it fails and the output is reported to the tester.
* test: Don't return the result of checking for running emacs to the tester.David Edmondson2012-01-25
| | | | | | | | When checking for a running emacs, test_emacs evaluates the empty list '()'. This returns 'nil' when emacs is running, which is then prepended to the actual test result. Given that it is not part of the actual test output the test harness can incorrectly report test failure (or success).
* show: Introduce mime_node formatter callbackAustin Clements2012-01-25
| | | | | | | | | This callback is the gateway to the new mime_node_t-based formatters. This maintains backwards compatibility so the formatters can be transitioned one at a time. Once all formatters are converted, the formatter structure can be reduced to only message_set_{start,sep,end} and part, most of show_message can be deleted, and all of show-message.c can be deleted.
* mime node: Record depth-first part numbersAustin 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 functionJameson Graef Rollins2012-01-25
| | | | Use this standard function, to keep thread navigation in one place.
* NEWS: update "Tag exclusion" sectionPieter Praet2012-01-23
|
* setup: prompt user for search.exclude_tags valuePieter Praet2012-01-23
| | | | Allow users to customize the search.exclude_tags option during setup.
* setup: Create functions for tag list printing and parsingAustin 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 setPieter 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 configuredPieter 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_tagsPieter 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.