| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`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.
|
|
|
|
|
|
|
|
|
|
| |
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"
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Remove outer single-quotes from the mailbox part. Allow for multiple
sets of nested single and double quotes.
Add more tests.
|
| |
|
|
|
|
|
| |
There's no need to call `truncate-string-to-width' twice in this code
path.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Previously, if a Xapian exception occurred in notmuch_database_open,
we failed to clean up the allocated notmuch_database_t object.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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"
|
|
|
|
| |
Less code, same results, without sacrificing readability.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This provides a smoother message processing flow by reducing the
number of key presses needed for these common operations.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
We should always use the dedicated search mode navigation functions,
in case navigation mechanics change down the line.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
`ps-print-buffer' notes that a buffer is unsaved unless
`buffer-modified-p' returns `nil', so ensure that it does.
|
|
|
|
| |
Remove backslashes.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
`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.
|
|
|
|
|
| |
Turn on `visual-line-mode' via a hook, so that those who so choose can
avoid it.
|
| |
|
|
|
|
|
| |
The patch adds <tab> completion to "tag all" operation bound to "*"
(`notmuch-search-operate-all' function).
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
When using `visible-buffer-substring' to examine a buffer, the text
properties are not useful, so don't include them.
|
|
|
|
| |
Make `=' binding description consistent with others.
|
|
|
|
| |
`notmuch-show-get-prop' should be declared.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
`notmuch-hello-search' uses `notmuch-search' function but refreshes
notmuch-hello buffer when the search buffer is closed.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Use this standard function, to keep thread navigation in one place.
|
| |
|
|
|
|
| |
Allow users to customize the search.exclude_tags option during setup.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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"
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|