mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 12:28:09 +01:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
68a2c7a8b0
37 changed files with 151 additions and 64 deletions
|
@ -1,7 +1,23 @@
|
||||||
; emacs local configuration settings for notmuch source
|
; emacs local configuration settings for notmuch source
|
||||||
; surmised by dkg on 2010-11-23 13:43:18-0500
|
; surmised by dkg on 2010-11-23 13:43:18-0500
|
||||||
|
; amended by amdragon on 2011-06-06
|
||||||
|
|
||||||
((c-mode . ((indent-tabs-mode . t)
|
((c-mode
|
||||||
|
(indent-tabs-mode . t)
|
||||||
(tab-width . 8)
|
(tab-width . 8)
|
||||||
(c-basic-offset . 4)
|
(c-basic-offset . 4)
|
||||||
(c-file-style . "linux"))))
|
(c-file-style . "linux"))
|
||||||
|
(c++-mode
|
||||||
|
(indent-tabs-mode . t)
|
||||||
|
(tab-width . 8)
|
||||||
|
(c-basic-offset . 4)
|
||||||
|
(c-file-style . "linux"))
|
||||||
|
(emacs-lisp-mode
|
||||||
|
(indent-tabs-mode . t)
|
||||||
|
(tab-width . 8))
|
||||||
|
(shell-mode
|
||||||
|
(indent-tabs-mode . t)
|
||||||
|
(tab-width . 8)
|
||||||
|
(sh-basic-offset . 4)
|
||||||
|
(sh-indentation . 4))
|
||||||
|
)
|
||||||
|
|
10
NEWS
10
NEWS
|
@ -112,15 +112,15 @@ Allow for notmuch-fcc-dirs to have a value of nil.
|
||||||
string. Instead it's now a list of cons cells where the car of each
|
string. Instead it's now a list of cons cells where the car of each
|
||||||
cell is a regular expression to be matched against the sender
|
cell is a regular expression to be matched against the sender
|
||||||
address, and the cdr is the name of a folder to use for an FCC. So
|
address, and the cdr is the name of a folder to use for an FCC. So
|
||||||
the old fallback behavior can be achieved by including a fineal cell
|
the old fallback behavior can be achieved by including a final cell
|
||||||
of (".*" . "default-fcc-folder").
|
of (".*" . "default-fcc-folder").
|
||||||
|
|
||||||
Vim interface improvements
|
Vim interface improvements
|
||||||
--------------------------
|
--------------------------
|
||||||
Felipe Contreras provided a number of updates for the vim interface.
|
Felipe Contreras provided a number of updates for the vim interface.
|
||||||
|
|
||||||
These include optimiations, support for newer versions of vim, fixed
|
These include optimizations, support for newer versions of vim, fixed
|
||||||
support for sending mail on modern systmms, new commands, and
|
support for sending mail on modern systems, new commands, and
|
||||||
various cleanups.
|
various cleanups.
|
||||||
|
|
||||||
New bindings
|
New bindings
|
||||||
|
@ -606,7 +606,7 @@ Fix to compile against GMime 2.6
|
||||||
|
|
||||||
Fix configure script to accept (and ignore) various standard options.
|
Fix configure script to accept (and ignore) various standard options.
|
||||||
|
|
||||||
For example, those that the gentoo build scripts expect configure to
|
For example, those that the Gentoo build scripts expect configure to
|
||||||
accept are now all accepted.
|
accept are now all accepted.
|
||||||
|
|
||||||
Test suite
|
Test suite
|
||||||
|
@ -714,7 +714,7 @@ tags by region.
|
||||||
Selective bulk tagging is now possible by selecting a region of
|
Selective bulk tagging is now possible by selecting a region of
|
||||||
threads and then using either the '+' or '-' keybindings. Bulk
|
threads and then using either the '+' or '-' keybindings. Bulk
|
||||||
tagging is still available for all threads matching the current
|
tagging is still available for all threads matching the current
|
||||||
search with th '*' binding.
|
search with the '*' binding.
|
||||||
|
|
||||||
More meaningful buffer names for thread-view buffers.
|
More meaningful buffer names for thread-view buffers.
|
||||||
|
|
||||||
|
|
4
TODO
4
TODO
|
@ -29,7 +29,7 @@ Make 'notmuch-show-pipe-message have a private history.
|
||||||
|
|
||||||
Add support for a delete keybinding that adds a "deleted" tag to the
|
Add support for a delete keybinding that adds a "deleted" tag to the
|
||||||
current message/thread and make searches not return deleted messages
|
current message/thread and make searches not return deleted messages
|
||||||
by default, (unless the user asks explicitly for deleted messags in
|
by default, (unless the user asks explicitly for deleted messages in
|
||||||
the search query).
|
the search query).
|
||||||
|
|
||||||
Add keybindings for next/previous thread.
|
Add keybindings for next/previous thread.
|
||||||
|
@ -119,7 +119,7 @@ Allow configuration for filename patterns that should be ignored when
|
||||||
indexing.
|
indexing.
|
||||||
|
|
||||||
Replace the "notmuch part --part=id" command with "notmuch show
|
Replace the "notmuch part --part=id" command with "notmuch show
|
||||||
--part=id", (David Edmonson wants to rewrite some of "notmuch show" to
|
--part=id", (David Edmondson wants to rewrite some of "notmuch show" to
|
||||||
provide more MIME-structure information in its output first).
|
provide more MIME-structure information in its output first).
|
||||||
|
|
||||||
Replace the "notmuch search-tags" command with "notmuch search
|
Replace the "notmuch search-tags" command with "notmuch search
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
notmuch/comapt
|
notmuch/compat
|
||||||
|
|
||||||
This directory consists of two things:
|
This directory consists of two things:
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# See Makfefile.local for the list of files to be compiled in this
|
# See Makefile.local for the list of files to be compiled in this
|
||||||
# directory.
|
# directory.
|
||||||
all:
|
all:
|
||||||
$(MAKE) -C .. all
|
$(MAKE) -C .. all
|
||||||
|
|
4
configure
vendored
4
configure
vendored
|
@ -22,7 +22,7 @@ if [ "$srcdir" != "." ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set several defaults (optionally specified by the user in
|
# Set several defaults (optionally specified by the user in
|
||||||
# environemnt variables)
|
# environment variables)
|
||||||
CC=${CC:-gcc}
|
CC=${CC:-gcc}
|
||||||
CXX=${CXX:-g++}
|
CXX=${CXX:-g++}
|
||||||
CFLAGS=${CFLAGS:--O2}
|
CFLAGS=${CFLAGS:--O2}
|
||||||
|
@ -608,7 +608,7 @@ includedir = ${INCLUDEDIR:=\$(prefix)/include}
|
||||||
# The directory to which man pages should be installed
|
# The directory to which man pages should be installed
|
||||||
mandir = ${MANDIR:=\$(prefix)/share/man}
|
mandir = ${MANDIR:=\$(prefix)/share/man}
|
||||||
|
|
||||||
# The directory to which read-only (configuration) filesshould be installed
|
# The directory to which read-only (configuration) files should be installed
|
||||||
sysconfdir = ${SYSCONFDIR:=\$(prefix)/etc}
|
sysconfdir = ${SYSCONFDIR:=\$(prefix)/etc}
|
||||||
|
|
||||||
# The directory to which emacs lisp files should be installed
|
# The directory to which emacs lisp files should be installed
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# See Makfefile.local for the list of files to be compiled in this
|
# See Makefile.local for the list of files to be compiled in this
|
||||||
# directory.
|
# directory.
|
||||||
all:
|
all:
|
||||||
$(MAKE) -C .. all
|
$(MAKE) -C .. all
|
||||||
|
|
|
@ -428,7 +428,7 @@ Complete list of currently available key bindings:
|
||||||
(let ((found-target-pos nil)
|
(let ((found-target-pos nil)
|
||||||
(final-target-pos nil))
|
(final-target-pos nil))
|
||||||
(let* ((saved-alist
|
(let* ((saved-alist
|
||||||
;; Filter out empty saved seaches if required.
|
;; Filter out empty saved searches if required.
|
||||||
(if notmuch-show-empty-saved-searches
|
(if notmuch-show-empty-saved-searches
|
||||||
notmuch-saved-searches
|
notmuch-saved-searches
|
||||||
(loop for elem in notmuch-saved-searches
|
(loop for elem in notmuch-saved-searches
|
||||||
|
|
|
@ -88,7 +88,7 @@ the user hasn't set this variable with the old or new value."
|
||||||
(notmuch-config-get "user.primary_email"))
|
(notmuch-config-get "user.primary_email"))
|
||||||
|
|
||||||
(defun notmuch-user-other-email ()
|
(defun notmuch-user-other-email ()
|
||||||
"Return the user.primary_email value (as a list) from the notmuch configuration."
|
"Return the user.other_email value (as a list) from the notmuch configuration."
|
||||||
(split-string (notmuch-config-get "user.other_email") "\n"))
|
(split-string (notmuch-config-get "user.other_email") "\n"))
|
||||||
|
|
||||||
(defun notmuch-kill-this-buffer ()
|
(defun notmuch-kill-this-buffer ()
|
||||||
|
|
|
@ -88,7 +88,7 @@ will NOT be removed or replaced."
|
||||||
notmuch-fcc-dirs)
|
notmuch-fcc-dirs)
|
||||||
|
|
||||||
((and (listp notmuch-fcc-dirs)
|
((and (listp notmuch-fcc-dirs)
|
||||||
(= 1 (length (car notmuch-fcc-dirs))))
|
(stringp (car notmuch-fcc-dirs)))
|
||||||
;; Old style - no longer works.
|
;; Old style - no longer works.
|
||||||
(error "Invalid `notmuch-fcc-dirs' setting (old style)"))
|
(error "Invalid `notmuch-fcc-dirs' setting (old style)"))
|
||||||
|
|
||||||
|
@ -163,7 +163,7 @@ will NOT be removed or replaced."
|
||||||
(make-directory (concat path "/new/") t)
|
(make-directory (concat path "/new/") t)
|
||||||
(make-directory (concat path "/tmp/") t))
|
(make-directory (concat path "/tmp/") t))
|
||||||
((file-regular-p path)
|
((file-regular-p path)
|
||||||
(error "%s is a file. Can't creat maildir." path))
|
(error "%s is a file. Can't create maildir." path))
|
||||||
(t
|
(t
|
||||||
(error "I don't know how to create a maildir here"))))
|
(error "I don't know how to create a maildir here"))))
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,7 @@ same as that of the previous message."
|
||||||
"Use external viewers to view all attachments from the current message."
|
"Use external viewers to view all attachments from the current message."
|
||||||
(interactive)
|
(interactive)
|
||||||
(with-current-notmuch-show-message
|
(with-current-notmuch-show-message
|
||||||
; We ovverride the mm-inline-media-tests to indicate which message
|
; We override the mm-inline-media-tests to indicate which message
|
||||||
; parts are already sufficiently handled by the original
|
; parts are already sufficiently handled by the original
|
||||||
; presentation of the message in notmuch-show mode. These parts
|
; presentation of the message in notmuch-show mode. These parts
|
||||||
; will be inserted directly into the temporary buffer of
|
; will be inserted directly into the temporary buffer of
|
||||||
|
@ -803,7 +803,7 @@ The optional QUERY-CONTEXT is a notmuch search term. Only
|
||||||
messages from the thread matching this search term are shown if
|
messages from the thread matching this search term are shown if
|
||||||
non-nil.
|
non-nil.
|
||||||
|
|
||||||
The optional BUFFER-NAME provides the neame of the buffer in
|
The optional BUFFER-NAME provides the name of the buffer in
|
||||||
which the message thread is shown. If it is nil (which occurs
|
which the message thread is shown. If it is nil (which occurs
|
||||||
when the command is called interactively) the argument to the
|
when the command is called interactively) the argument to the
|
||||||
function is used. "
|
function is used. "
|
||||||
|
@ -921,7 +921,7 @@ more selectively, (such as '\\[notmuch-show-next-message]' and '\\[notmuch-show-
|
||||||
without removing any tags, and '\\[notmuch-show-archive-thread]' to archive an entire thread
|
without removing any tags, and '\\[notmuch-show-archive-thread]' to archive an entire thread
|
||||||
without scrolling through with \\[notmuch-show-advance-and-archive]).
|
without scrolling through with \\[notmuch-show-advance-and-archive]).
|
||||||
|
|
||||||
You can add or remove arbitary tags from the current message with
|
You can add or remove arbitrary tags from the current message with
|
||||||
'\\[notmuch-show-add-tag]' or '\\[notmuch-show-remove-tag]'.
|
'\\[notmuch-show-add-tag]' or '\\[notmuch-show-remove-tag]'.
|
||||||
|
|
||||||
All currently available key bindings:
|
All currently available key bindings:
|
||||||
|
|
|
@ -137,7 +137,7 @@ collapse the remaining lines into a button.")
|
||||||
(format label-format lines-count)))
|
(format label-format lines-count)))
|
||||||
|
|
||||||
(defun notmuch-wash-region-to-button (msg beg end type prefix)
|
(defun notmuch-wash-region-to-button (msg beg end type prefix)
|
||||||
"Auxilary function to do the actual making of overlays and buttons
|
"Auxiliary function to do the actual making of overlays and buttons
|
||||||
|
|
||||||
BEG and END are buffer locations. TYPE should a string, either
|
BEG and END are buffer locations. TYPE should a string, either
|
||||||
\"citation\" or \"signature\". PREFIX is some arbitrary text to
|
\"citation\" or \"signature\". PREFIX is some arbitrary text to
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
("authors" . "%-20s ")
|
("authors" . "%-20s ")
|
||||||
("subject" . "%s ")
|
("subject" . "%s ")
|
||||||
("tags" . "(%s)"))
|
("tags" . "(%s)"))
|
||||||
"Search result formating. Supported fields are:
|
"Search result formatting. Supported fields are:
|
||||||
date, count, authors, subject, tags
|
date, count, authors, subject, tags
|
||||||
For example:
|
For example:
|
||||||
(setq notmuch-search-result-format \(\(\"authors\" . \"%-40s\"\)
|
(setq notmuch-search-result-format \(\(\"authors\" . \"%-40s\"\)
|
||||||
|
@ -493,7 +493,7 @@ the messages that are about to be tagged"
|
||||||
:group 'notmuch)
|
:group 'notmuch)
|
||||||
|
|
||||||
(defcustom notmuch-after-tag-hook nil
|
(defcustom notmuch-after-tag-hook nil
|
||||||
"Hooks that are run before tags of a message are modified.
|
"Hooks that are run after tags of a message are modified.
|
||||||
|
|
||||||
'tags' will contain the tags that were added or removed as
|
'tags' will contain the tags that were added or removed as
|
||||||
a list of strings of the form \"+TAG\" or \"-TAG\".
|
a list of strings of the form \"+TAG\" or \"-TAG\".
|
||||||
|
@ -836,7 +836,7 @@ non-authors is found, assume that all of the authors match."
|
||||||
(defun notmuch-search-operate-all (action)
|
(defun notmuch-search-operate-all (action)
|
||||||
"Add/remove tags from all matching messages.
|
"Add/remove tags from all matching messages.
|
||||||
|
|
||||||
Tis command adds or removes tags from all messages matching the
|
This command adds or removes tags from all messages matching the
|
||||||
current search terms. When called interactively, this command
|
current search terms. When called interactively, this command
|
||||||
will prompt for tags to be added or removed. Tags prefixed with
|
will prompt for tags to be added or removed. Tags prefixed with
|
||||||
'+' will be added and tags prefixed with '-' will be removed.
|
'+' will be added and tags prefixed with '-' will be removed.
|
||||||
|
|
|
@ -39,7 +39,7 @@ typedef struct _GMimeFilterHeadersClass GMimeFilterHeadersClass;
|
||||||
* @parent_object: parent #GMimeFilter
|
* @parent_object: parent #GMimeFilter
|
||||||
* @saw_nl: previous char was a \n
|
* @saw_nl: previous char was a \n
|
||||||
* @line: temporary buffer for line unfolding
|
* @line: temporary buffer for line unfolding
|
||||||
* @line_size: size of currently allocated nemory for @line
|
* @line_size: size of currently allocated memory for @line
|
||||||
* @lineptr: pointer to the first unused character in @line
|
* @lineptr: pointer to the first unused character in @line
|
||||||
*
|
*
|
||||||
* A filter to decode rfc2047 encoded headers
|
* A filter to decode rfc2047 encoded headers
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# See Makfefile.local for the list of files to be compiled in this
|
# See Makefile.local for the list of files to be compiled in this
|
||||||
# directory.
|
# directory.
|
||||||
all:
|
all:
|
||||||
$(MAKE) -C .. all
|
$(MAKE) -C .. all
|
||||||
|
|
|
@ -89,7 +89,7 @@ $(dir)/$(LINKER_NAME): $(dir)/$(SONAME)
|
||||||
|
|
||||||
install: install-$(dir)
|
install: install-$(dir)
|
||||||
|
|
||||||
# The (often-reused) $dir works fine within targets/pre-requisites,
|
# The (often-reused) $dir works fine within targets/prerequisites,
|
||||||
# but cannot be used reliably within commands, so copy its value to a
|
# but cannot be used reliably within commands, so copy its value to a
|
||||||
# variable that is not reused.
|
# variable that is not reused.
|
||||||
lib := $(dir)
|
lib := $(dir)
|
||||||
|
|
|
@ -69,7 +69,7 @@ typedef struct {
|
||||||
*
|
*
|
||||||
* Multiple terms of given prefix:
|
* Multiple terms of given prefix:
|
||||||
*
|
*
|
||||||
* reference: All message IDs from In-Reply-To and Re ferences
|
* reference: All message IDs from In-Reply-To and References
|
||||||
* headers in the message.
|
* headers in the message.
|
||||||
*
|
*
|
||||||
* tag: Any tags associated with this message by the user.
|
* tag: Any tags associated with this message by the user.
|
||||||
|
@ -137,7 +137,7 @@ typedef struct {
|
||||||
* ASCII integer. The initial database version
|
* ASCII integer. The initial database version
|
||||||
* was 1, (though a schema existed before that
|
* was 1, (though a schema existed before that
|
||||||
* were no "version" database value existed at
|
* were no "version" database value existed at
|
||||||
* all). Succesive versions are allocated as
|
* all). Successive versions are allocated as
|
||||||
* changes are made to the database (such as by
|
* changes are made to the database (such as by
|
||||||
* indexing new fields).
|
* indexing new fields).
|
||||||
*
|
*
|
||||||
|
@ -148,7 +148,7 @@ typedef struct {
|
||||||
* incremented for each thread ID.
|
* incremented for each thread ID.
|
||||||
*
|
*
|
||||||
* thread_id_* A pre-allocated thread ID for a particular
|
* thread_id_* A pre-allocated thread ID for a particular
|
||||||
* message. This is actually an arbitarily large
|
* message. This is actually an arbitrarily large
|
||||||
* family of metadata name. Any particular name is
|
* family of metadata name. Any particular name is
|
||||||
* formed by concatenating "thread_id_" with a message
|
* formed by concatenating "thread_id_" with a message
|
||||||
* ID (or the SHA1 sum of a message ID if it is very
|
* ID (or the SHA1 sum of a message ID if it is very
|
||||||
|
@ -422,7 +422,7 @@ skip_space_and_comments (const char **str)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Parse an RFC 822 message-id, discarding whitespace, any RFC 822
|
/* Parse an RFC 822 message-id, discarding whitespace, any RFC 822
|
||||||
* comments, and the '<' and '>' delimeters.
|
* comments, and the '<' and '>' delimiters.
|
||||||
*
|
*
|
||||||
* If not NULL, then *next will be made to point to the first character
|
* If not NULL, then *next will be made to point to the first character
|
||||||
* not parsed, (possibly pointing to the final '\0' terminator.
|
* not parsed, (possibly pointing to the final '\0' terminator.
|
||||||
|
@ -1149,7 +1149,7 @@ _notmuch_database_filename_to_direntry (void *ctx,
|
||||||
|
|
||||||
/* Given a legal 'path' for the database, return the relative path.
|
/* Given a legal 'path' for the database, return the relative path.
|
||||||
*
|
*
|
||||||
* The return value will be a pointer to the originl path contents,
|
* The return value will be a pointer to the original path contents,
|
||||||
* and will be either the original string (if 'path' was relative) or
|
* and will be either the original string (if 'path' was relative) or
|
||||||
* a portion of the string (if path was absolute and begins with the
|
* a portion of the string (if path was absolute and begins with the
|
||||||
* database path).
|
* database path).
|
||||||
|
@ -1476,7 +1476,7 @@ _notmuch_database_link_message_to_children (notmuch_database_t *notmuch,
|
||||||
* In all cases, we assign to the current message the first thread_id
|
* In all cases, we assign to the current message the first thread_id
|
||||||
* found (through either parent or child). We will also merge any
|
* found (through either parent or child). We will also merge any
|
||||||
* existing, distinct threads where this message belongs to both,
|
* existing, distinct threads where this message belongs to both,
|
||||||
* (which is not uncommon when mesages are processed out of order).
|
* (which is not uncommon when messages are processed out of order).
|
||||||
*
|
*
|
||||||
* Finally, if no thread ID has been found through parent or child, we
|
* Finally, if no thread ID has been found through parent or child, we
|
||||||
* call _notmuch_message_generate_thread_id to generate a new thread
|
* call _notmuch_message_generate_thread_id to generate a new thread
|
||||||
|
|
|
@ -174,7 +174,7 @@ void sha1_hash(const unsigned char data[], unsigned long len, sha1_ctx ctx[1])
|
||||||
if((ctx->count[0] += len) < len)
|
if((ctx->count[0] += len) < len)
|
||||||
++(ctx->count[1]);
|
++(ctx->count[1]);
|
||||||
|
|
||||||
while(len >= space) /* tranfer whole blocks if possible */
|
while(len >= space) /* transfer whole blocks if possible */
|
||||||
{
|
{
|
||||||
memcpy(((unsigned char*)ctx->wbuf) + pos, sp, space);
|
memcpy(((unsigned char*)ctx->wbuf) + pos, sp, space);
|
||||||
sp += space; len -= space; space = SHA1_BLOCK_SIZE; pos = 0;
|
sp += space; len -= space; space = SHA1_BLOCK_SIZE; pos = 0;
|
||||||
|
|
|
@ -38,7 +38,7 @@ extern "C"
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
#if 0
|
#if 0
|
||||||
} /* Appleasing Emacs */
|
} /* Appeasing Emacs */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
|
@ -837,7 +837,7 @@ _notmuch_message_add_term (notmuch_message_t *message,
|
||||||
|
|
||||||
/* Parse 'text' and add a term to 'message' for each parsed word. Each
|
/* Parse 'text' and add a term to 'message' for each parsed word. Each
|
||||||
* term will be added both prefixed (if prefix_name is not NULL) and
|
* term will be added both prefixed (if prefix_name is not NULL) and
|
||||||
* also unprefixed). */
|
* also non-prefixed). */
|
||||||
notmuch_private_status_t
|
notmuch_private_status_t
|
||||||
_notmuch_message_gen_terms (notmuch_message_t *message,
|
_notmuch_message_gen_terms (notmuch_message_t *message,
|
||||||
const char *prefix_name,
|
const char *prefix_name,
|
||||||
|
|
|
@ -103,7 +103,7 @@ typedef enum _notmuch_status {
|
||||||
|
|
||||||
/* Get a string representation of a notmuch_status_t value.
|
/* Get a string representation of a notmuch_status_t value.
|
||||||
*
|
*
|
||||||
* The result is readonly.
|
* The result is read-only.
|
||||||
*/
|
*/
|
||||||
const char *
|
const char *
|
||||||
notmuch_status_to_string (notmuch_status_t status);
|
notmuch_status_to_string (notmuch_status_t status);
|
||||||
|
@ -510,7 +510,7 @@ notmuch_threads_move_to_next (notmuch_threads_t *threads);
|
||||||
*
|
*
|
||||||
* It's not strictly necessary to call this function. All memory from
|
* It's not strictly necessary to call this function. All memory from
|
||||||
* the notmuch_threads_t object will be reclaimed when the
|
* the notmuch_threads_t object will be reclaimed when the
|
||||||
* containg query object is destroyed.
|
* containing query object is destroyed.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
notmuch_threads_destroy (notmuch_threads_t *threads);
|
notmuch_threads_destroy (notmuch_threads_t *threads);
|
||||||
|
|
|
@ -69,7 +69,7 @@ static const char maildir_config_comment[] =
|
||||||
"\tsynchronize_flags Valid values are true and false.\n"
|
"\tsynchronize_flags Valid values are true and false.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\tIf true, then the following maildir flags (in message filenames)\n"
|
"\tIf true, then the following maildir flags (in message filenames)\n"
|
||||||
"\twill be syncrhonized with the corresponding notmuch tags:\n"
|
"\twill be synchronized with the corresponding notmuch tags:\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\t\tFlag Tag\n"
|
"\t\tFlag Tag\n"
|
||||||
"\t\t---- -------\n"
|
"\t\t---- -------\n"
|
||||||
|
|
|
@ -373,7 +373,7 @@ add_files_recursive (notmuch_database_t *notmuch,
|
||||||
/* If we're looking at a symlink, we only want to add it if it
|
/* If we're looking at a symlink, we only want to add it if it
|
||||||
* links to a regular file, (and not to a directory, say).
|
* links to a regular file, (and not to a directory, say).
|
||||||
*
|
*
|
||||||
* Similarly, if the file is of unknown type (due to filesytem
|
* Similarly, if the file is of unknown type (due to filesystem
|
||||||
* limitations), then we also need to look closer.
|
* limitations), then we also need to look closer.
|
||||||
*
|
*
|
||||||
* In either case, a stat does the trick.
|
* In either case, a stat does the trick.
|
||||||
|
|
|
@ -278,7 +278,7 @@ add_recipients_from_message (GMimeMessage *reply,
|
||||||
* The munging is easy to detect, because it results in a
|
* The munging is easy to detect, because it results in a
|
||||||
* redundant reply-to header, (with an address that already exists
|
* redundant reply-to header, (with an address that already exists
|
||||||
* in either To or Cc). So in this case, we ignore the Reply-To
|
* in either To or Cc). So in this case, we ignore the Reply-To
|
||||||
* field and use the From header. Thie ensures the original sender
|
* field and use the From header. This ensures the original sender
|
||||||
* will get the reply even if not subscribed to the list. Note
|
* will get the reply even if not subscribed to the list. Note
|
||||||
* that the address in the Reply-To header will always appear in
|
* that the address in the Reply-To header will always appear in
|
||||||
* the reply.
|
* the reply.
|
||||||
|
@ -362,7 +362,7 @@ guess_from_received_header (notmuch_config_t *config, notmuch_message_t *message
|
||||||
* them indications to which email address this message was
|
* them indications to which email address this message was
|
||||||
* delivered.
|
* delivered.
|
||||||
* The Received: header is special in our get_header function
|
* The Received: header is special in our get_header function
|
||||||
* and is always concated.
|
* and is always concatenated.
|
||||||
*/
|
*/
|
||||||
received = notmuch_message_get_header (message, "received");
|
received = notmuch_message_get_header (message, "received");
|
||||||
if (received == NULL)
|
if (received == NULL)
|
||||||
|
|
|
@ -484,7 +484,7 @@ sup calls them).
|
||||||
|
|
||||||
The
|
The
|
||||||
.B part
|
.B part
|
||||||
command can used to output a single part of a multi-part MIME message.
|
command can used to output a single part of a multipart MIME message.
|
||||||
|
|
||||||
.RS 4
|
.RS 4
|
||||||
.TP 4
|
.TP 4
|
||||||
|
@ -641,13 +641,13 @@ expression).
|
||||||
Finally, results can be restricted to only messages within a
|
Finally, results can be restricted to only messages within a
|
||||||
particular time range, (based on the Date: header) with a syntax of:
|
particular time range, (based on the Date: header) with a syntax of:
|
||||||
|
|
||||||
<intial-timestamp>..<final-timestamp>
|
<initial-timestamp>..<final-timestamp>
|
||||||
|
|
||||||
Each timestamp is a number representing the number of seconds since
|
Each timestamp is a number representing the number of seconds since
|
||||||
1970\-01\-01 00:00:00 UTC. This is not the most convenient means of
|
1970\-01\-01 00:00:00 UTC. This is not the most convenient means of
|
||||||
expressing date ranges, but until notmuch is fixed to accept a more
|
expressing date ranges, but until notmuch is fixed to accept a more
|
||||||
convenient form, one can use the date program to construct
|
convenient form, one can use the date program to construct
|
||||||
timestamps. For example, with the bash shell the folowing syntax would
|
timestamps. For example, with the bash shell the following syntax would
|
||||||
specify a date range to return messages from 2009\-10\-01 until the
|
specify a date range to return messages from 2009\-10\-01 until the
|
||||||
current time:
|
current time:
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ static int
|
||||||
notmuch_help_command (void *ctx, int argc, char *argv[]);
|
notmuch_help_command (void *ctx, int argc, char *argv[]);
|
||||||
|
|
||||||
static const char search_terms_help[] =
|
static const char search_terms_help[] =
|
||||||
"\tSeveral notmuch commands accept a comman syntax for search\n"
|
"\tSeveral notmuch commands accept a common syntax for search\n"
|
||||||
"\tterms.\n"
|
"\tterms.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\tThe search terms can consist of free-form text (and quoted\n"
|
"\tThe search terms can consist of free-form text (and quoted\n"
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
The debian packaging exists in the top-level "debian" directory within
|
The Debian packaging exists in the top-level "debian" directory within
|
||||||
this source-code respository.
|
this source-code repository.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# See Makfefile.local for the list of files to be compiled in this
|
# See Makefile.local for the list of files to be compiled in this
|
||||||
# directory.
|
# directory.
|
||||||
all:
|
all:
|
||||||
$(MAKE) -C .. all
|
$(MAKE) -C .. all
|
||||||
|
|
|
@ -151,7 +151,7 @@ library for your script to use.
|
||||||
|
|
||||||
This works similar to test_expect_equal (see above) but is used to
|
This works similar to test_expect_equal (see above) but is used to
|
||||||
mark a test that demonstrates a known breakage, (that is, the
|
mark a test that demonstrates a known breakage, (that is, the
|
||||||
author of the test expectes "output" and "expected" to differ until
|
author of the test expects "output" and "expected" to differ until
|
||||||
the breakage is fixed). See test_expect_failure for details.
|
the breakage is fixed). See test_expect_failure for details.
|
||||||
|
|
||||||
test_debug <script>
|
test_debug <script>
|
||||||
|
@ -181,7 +181,7 @@ writing tests:
|
||||||
generate_message
|
generate_message
|
||||||
|
|
||||||
Generates a message with an optional template. Most tests will
|
Generates a message with an optional template. Most tests will
|
||||||
actually prefere to call add_message. See below.
|
actually prefer to call add_message. See below.
|
||||||
|
|
||||||
add_message
|
add_message
|
||||||
|
|
||||||
|
@ -197,6 +197,6 @@ writing tests:
|
||||||
|
|
||||||
This function should be called at the beginning of a test file
|
This function should be called at the beginning of a test file
|
||||||
when a test needs to operate on a non-empty body of messages. It
|
when a test needs to operate on a non-empty body of messages. It
|
||||||
will intialize the mail database to a known state of 50 sample
|
will initialize the mail database to a known state of 50 sample
|
||||||
messages, (culled from the early history of the notmuch mailing
|
messages, (culled from the early history of the notmuch mailing
|
||||||
list).
|
list).
|
||||||
|
|
|
@ -318,7 +318,7 @@ test_expect_equal \
|
||||||
"$expected"
|
"$expected"
|
||||||
|
|
||||||
test_begin_subtest "signature verification with revoked key"
|
test_begin_subtest "signature verification with revoked key"
|
||||||
# generate revokation certificate and load it to revoke key
|
# generate revocation certificate and load it to revoke key
|
||||||
echo "y
|
echo "y
|
||||||
1
|
1
|
||||||
Notmuch Test Suite key revocation (automated) $(date '+%F_%T%z')
|
Notmuch Test Suite key revocation (automated) $(date '+%F_%T%z')
|
||||||
|
|
71
test/emacs
71
test/emacs
|
@ -108,6 +108,77 @@ notmuch new > /dev/null
|
||||||
output=$(notmuch search 'subject:"testing message sent via SMTP"' | notmuch_search_sanitize)
|
output=$(notmuch search 'subject:"testing message sent via SMTP"' | notmuch_search_sanitize)
|
||||||
test_expect_equal "$output" "thread:XXX 1974-03-29 [1/1] Notmuch Test Suite; Testing message sent via SMTP (inbox)"
|
test_expect_equal "$output" "thread:XXX 1974-03-29 [1/1] Notmuch Test Suite; Testing message sent via SMTP (inbox)"
|
||||||
|
|
||||||
|
test_begin_subtest "notmuch-fcc-dirs set to nil"
|
||||||
|
test_emacs "(setq notmuch-fcc-dirs nil) (notmuch-mua-mail) (princ (buffer-string))" > OUTPUT
|
||||||
|
cat <<EOF >EXPECTED
|
||||||
|
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||||
|
To:
|
||||||
|
Subject:
|
||||||
|
--text follows this line--
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file OUTPUT EXPECTED
|
||||||
|
|
||||||
|
# Make another FCC maildir specific for the next test
|
||||||
|
mkdir -p mail/sent-string/cur
|
||||||
|
mkdir -p mail/sent-string/new
|
||||||
|
mkdir -p mail/sent-string/tmp
|
||||||
|
|
||||||
|
test_begin_subtest "notmuch-fcc-dirs set to a string"
|
||||||
|
test_emacs "(setq notmuch-fcc-dirs \"sent-string\") (notmuch-mua-mail) (princ (buffer-string))" > OUTPUT
|
||||||
|
cat <<EOF >EXPECTED
|
||||||
|
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||||
|
To:
|
||||||
|
Subject:
|
||||||
|
Fcc: ${MAIL_DIR}/sent-string
|
||||||
|
--text follows this line--
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file OUTPUT EXPECTED
|
||||||
|
|
||||||
|
# Make more FCC maildirs specific for the next test
|
||||||
|
mkdir -p mail/sent-list-match/cur
|
||||||
|
mkdir -p mail/sent-list-match/new
|
||||||
|
mkdir -p mail/sent-list-match/tmp
|
||||||
|
mkdir -p mail/failure/cur
|
||||||
|
mkdir -p mail/failure/new
|
||||||
|
mkdir -p mail/failure/tmp
|
||||||
|
|
||||||
|
test_begin_subtest "notmuch-fcc-dirs set to a list (with match)"
|
||||||
|
test_emacs "(setq notmuch-fcc-dirs '((\"notmuchmail.org\" . \"sent-list-match\") (\".*\" . \"failure\"))) (notmuch-mua-mail) (princ (buffer-string))" > OUTPUT
|
||||||
|
cat <<EOF >EXPECTED
|
||||||
|
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||||
|
To:
|
||||||
|
Subject:
|
||||||
|
Fcc: ${MAIL_DIR}/sent-list-match
|
||||||
|
--text follows this line--
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file OUTPUT EXPECTED
|
||||||
|
|
||||||
|
# Make another FCC maildir specific for the next test
|
||||||
|
mkdir -p mail/sent-list-catch-all/cur
|
||||||
|
mkdir -p mail/sent-list-catch-all/new
|
||||||
|
mkdir -p mail/sent-list-catch-all/tmp
|
||||||
|
|
||||||
|
test_begin_subtest "notmuch-fcc-dirs set to a list (catch-all)"
|
||||||
|
test_emacs "(setq notmuch-fcc-dirs '((\"example.com\" . \"failure\") (\".*\" . \"sent-list-catch-all\"))) (notmuch-mua-mail) (princ (buffer-string))" > OUTPUT
|
||||||
|
cat <<EOF >EXPECTED
|
||||||
|
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||||
|
To:
|
||||||
|
Subject:
|
||||||
|
Fcc: ${MAIL_DIR}/sent-list-catch-all
|
||||||
|
--text follows this line--
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file OUTPUT EXPECTED
|
||||||
|
|
||||||
|
test_begin_subtest "notmuch-fcc-dirs set to a list (no match)"
|
||||||
|
test_emacs "(setq notmuch-fcc-dirs '((\"example.com\" . \"failure\") (\"nomatchhere.net\" . \"failure\"))) (notmuch-mua-mail) (princ (buffer-string))" > OUTPUT
|
||||||
|
cat <<EOF >EXPECTED
|
||||||
|
From: Notmuch Test Suite <test_suite@notmuchmail.org>
|
||||||
|
To:
|
||||||
|
Subject:
|
||||||
|
--text follows this line--
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file OUTPUT EXPECTED
|
||||||
|
|
||||||
test_begin_subtest "Reply within emacs"
|
test_begin_subtest "Reply within emacs"
|
||||||
# We sed away everything before the ^From in the output to avoid getting
|
# We sed away everything before the ^From in the output to avoid getting
|
||||||
# confused by messages such as "Parsing /home/cworth/.mailrc... done"
|
# confused by messages such as "Parsing /home/cworth/.mailrc... done"
|
||||||
|
|
|
@ -85,7 +85,7 @@ test_expect_equal "$output" "No new mail."
|
||||||
# test created directory document in the database but this document
|
# test created directory document in the database but this document
|
||||||
# was not linked as subdirectory of $MAIL_DIR. Therefore notmuch new
|
# was not linked as subdirectory of $MAIL_DIR. Therefore notmuch new
|
||||||
# could not reach the cur/ directory and its files in it during
|
# could not reach the cur/ directory and its files in it during
|
||||||
# recurive traversal.
|
# recursive traversal.
|
||||||
#
|
#
|
||||||
# XXX: The above sounds like a bug that should be fixed. If notmuch is
|
# XXX: The above sounds like a bug that should be fixed. If notmuch is
|
||||||
# creating new directories in the mail store, then it should be
|
# creating new directories in the mail store, then it should be
|
||||||
|
|
|
@ -209,7 +209,7 @@ Non-text part: text/html
|
||||||
EOF
|
EOF
|
||||||
test_expect_equal_file OUTPUT EXPECTED
|
test_expect_equal_file OUTPUT EXPECTED
|
||||||
|
|
||||||
test_begin_subtest "--format=text --part=5, inline attachement"
|
test_begin_subtest "--format=text --part=5, inline attachment"
|
||||||
notmuch show --format=text --part=5 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
notmuch show --format=text --part=5 'id:87liy5ap00.fsf@yoom.home.cworth.org' >OUTPUT
|
||||||
cat <<EOF >EXPECTED
|
cat <<EOF >EXPECTED
|
||||||
attachment{ ID: 5, Content-type: text/plain
|
attachment{ ID: 5, Content-type: text/plain
|
||||||
|
|
|
@ -424,7 +424,7 @@ test_begin_subtest ()
|
||||||
error "bug in test script: Missing test_expect_equal in ${BASH_SOURCE[1]}:${BASH_LINENO[0]}"
|
error "bug in test script: Missing test_expect_equal in ${BASH_SOURCE[1]}:${BASH_LINENO[0]}"
|
||||||
fi
|
fi
|
||||||
test_subtest_name="$1"
|
test_subtest_name="$1"
|
||||||
# Remember stdout and stderr file descriptios and redirect test
|
# Remember stdout and stderr file descriptors and redirect test
|
||||||
# output to the previously prepared file descriptors 3 and 4 (see
|
# output to the previously prepared file descriptors 3 and 4 (see
|
||||||
# below)
|
# below)
|
||||||
if test "$verbose" != "t"; then exec 4>test.output 3>&4; fi
|
if test "$verbose" != "t"; then exec 4>test.output 3>&4; fi
|
||||||
|
|
|
@ -5,11 +5,11 @@ test_description="handling of uuencoded data"
|
||||||
add_message [subject]=uuencodetest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' \
|
add_message [subject]=uuencodetest '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' \
|
||||||
'[body]="This message is used to ensure that notmuch correctly handles a
|
'[body]="This message is used to ensure that notmuch correctly handles a
|
||||||
message containing a block of uuencoded data. First, we have a marker
|
message containing a block of uuencoded data. First, we have a marker
|
||||||
this content beforeuudata . Then we beging the uunencoded data itself:
|
this content beforeuudata . Then we begin the uuencoded data itself:
|
||||||
|
|
||||||
begin 644 bogus-uuencoded-data
|
begin 644 bogus-uuencoded-data
|
||||||
M0123456789012345678901234567890123456789012345678901234567890
|
M0123456789012345678901234567890123456789012345678901234567890
|
||||||
MOBVIOUSLY, THIS IS NOT ANY SORT OF USEFUL UUNECODED DATA.
|
MOBVIOUSLY, THIS IS NOT ANY SORT OF USEFUL UUENCODED DATA.
|
||||||
MINSTEAD THIS IS JUST A WAY TO ENSURE THAT THIS BLOCK OF DATA
|
MINSTEAD THIS IS JUST A WAY TO ENSURE THAT THIS BLOCK OF DATA
|
||||||
MIS CORRECTLY IGNORED WHEN NOTMUCH CREATES ITS INDEX. SO WE
|
MIS CORRECTLY IGNORED WHEN NOTMUCH CREATES ITS INDEX. SO WE
|
||||||
MINCLUDE A DURINGUUDATA MARKER THAT SHOULD NOT RESULT IN ANY
|
MINCLUDE A DURINGUUDATA MARKER THAT SHOULD NOT RESULT IN ANY
|
||||||
|
|
|
@ -37,7 +37,7 @@ Buffer types:
|
||||||
You are presented with the search results when you run :NotMuch.
|
You are presented with the search results when you run :NotMuch.
|
||||||
|
|
||||||
Keybindings:
|
Keybindings:
|
||||||
<Space> - show the selected thread colapsing unmatched items
|
<Space> - show the selected thread collapsing unmatched items
|
||||||
<Enter> - show the entire selected thread
|
<Enter> - show the entire selected thread
|
||||||
a - archive message (remove inbox tag)
|
a - archive message (remove inbox tag)
|
||||||
f - filter the current search terms
|
f - filter the current search terms
|
||||||
|
|
|
@ -765,7 +765,7 @@ function! s:NM_cmd_show_parse(inlines)
|
||||||
|
|
||||||
if part_end
|
if part_end
|
||||||
" FIXME: this is a hack for handling two folds being added for one line
|
" FIXME: this is a hack for handling two folds being added for one line
|
||||||
" we should handle addinga fold in a function
|
" we should handle adding a fold in a function
|
||||||
if len(foldinfo) && foldinfo[1] < foldinfo[2]
|
if len(foldinfo) && foldinfo[1] < foldinfo[2]
|
||||||
call add(info['folds'], foldinfo[0:3])
|
call add(info['folds'], foldinfo[0:3])
|
||||||
let info['foldtext'][foldinfo[1]] = foldinfo[4]
|
let info['foldtext'][foldinfo[1]] = foldinfo[4]
|
||||||
|
@ -1314,7 +1314,7 @@ endfunction
|
||||||
function! s:NM_tag(filter, tags)
|
function! s:NM_tag(filter, tags)
|
||||||
let filter = len(a:filter) ? a:filter : [<SID>NM_search_thread_id()]
|
let filter = len(a:filter) ? a:filter : [<SID>NM_search_thread_id()]
|
||||||
if !len(filter)
|
if !len(filter)
|
||||||
throw 'Eeek! I couldn''t find the thead id!'
|
throw 'Eeek! I couldn''t find the thread id!'
|
||||||
endif
|
endif
|
||||||
let args = ['tag']
|
let args = ['tag']
|
||||||
call extend(args, a:tags)
|
call extend(args, a:tags)
|
||||||
|
|
Loading…
Reference in a new issue