| Age | Commit message (Collapse) | Author |
|
The new outputs allow printing senders, recipients or both of matching
messages. To print both, the user can use --output=sender and
--output=recipients simultaneously.
Currently, the same address can appear multiple times in the output.
The next commit will change this. For this reason, tests are
introduced there.
We use mailbox_t rather than InternetAddressMailbox because we will
need to extend it in a following commit.
This code is based on a patch from Jani Nikula.
|
|
This converts "notmuch search" to use the recently introduced
keyword-flag argument parser. At this point, it only makes the code
slightly less readable but following commits that add new --output
keywords will profit from this.
|
|
This allows having multiple --foo=bar --foo=baz options on the command
line, with the corresponding values OR'd together.
[Test added by Michal Sojka]
|
|
Many functions that implement the search command need to access command
line options. Instead of passing each option in a separate variable, put
them in a structure and pass only this structure.
This will become handy in the following commits.
|
|
|
|
When a user hits 'q' in a notmuch buffer, kill the buffer only if
there are no other windows currently showing it.
|
|
Apparently the test binaries are built with minimal LDFLAGS, only
adding dependency specific LDFLAGS as needed. However because some of
the test binaries incorporate notmuch object files, it is necessary to
use the same link flags as notmuch. For example user provided
CFLAGS/CXXFLAGS/LDFLAGS with -fsanitize=undefined fails to build the
test binaries if the flags differ.
|
|
Most of the existing tests for pre/post-new hook don't seem to apply.
|
|
The post-new hook might no longer be needed or run very often if
notmuch insert is being used. Therefore a post-insert hook is needed
(arguably pre-insert not so much, so don't add one). Also add the
--no-hooks option to skip hooks.
|
|
|
|
This hides platform differences between struct timeval field types.
|
|
To ease loading, notmuch-jump.el should provide 'notmuch-jump.
|
|
Previously, it was necessary to link new messages to children to work
around some (though not all) problems with the old metadata-based
approach to stored thread IDs. With ghost messages, this is no longer
necessary, so don't bother with child linking when ghost messages are
in use.
|
|
|
|
This fixes the broken thread order test.
|
|
Somehow this is the first upgrade pass that actually does *any* error
checking, so this also adds the bit of necessary infrastructure to
handle that.
|
|
This updates the thread linking code to use ghost messages instead of
user metadata to link messages into threads.
In contrast with the old approach, this is actually correct.
Previously, thread merging updated only the thread IDs of message
documents, not thread IDs stored in user metadata. As originally
diagnosed by Mark Walters [1] and as demonstrated by the broken
T260-thread-order test, this can cause notmuch to fail to link
messages even though they're in the same thread. In principle the old
approach could have been fixed by updating the user metadata thread
IDs as well, but these are not indexed and hence this would have
required a full scan of all stored thread IDs. Ghost messages solve
this problem naturally by reusing the exact same thread ID and message
ID representation and indexing as regular messages.
Furthermore, thanks to this greater symmetry, ghost messages are also
algorithmically simpler. We continue to support the old user metadata
format, so this patch can't delete any code, but when we do remove
support for the old format, several functions can simply be deleted.
[1] id:8738h7kv2q.fsf@qmul.ac.uk
|
|
This updates the message abstraction to support ghost messages: it
adds a message flag that distinguishes regular messages from ghost
messages, and an internal function for initializing a newly created
(blank) message as a ghost message.
|
|
These macros help clarify basic bit-twiddling code and are written to
be robust against C undefined behavior of shift operators.
|
|
This describes the structure of ghost mail documents. Ghost messages
are not yet implemented.
|
|
This will be implemented over the next several patches. The feature
is not yet "enabled" (this does not add it to
NOTMUCH_FEATURES_CURRENT).
|
|
notmuch 0.18.2 release
|
|
|
|
No non-documentation changes
|
|
Expand out what the actual test suite changes are, so people have a
better idea if the release is relevant to them.
|
|
notmuch 0.18.2~rc1 release
Conflicts:
NEWS
debian/changelog
|
|
The build log asked me nicely, so I did.
|
|
|
|
The less said, the less typos to make.
|
|
|
|
This starts to appear with emacs24.4, so we can't easily have it in
our expected output.
|
|
In emacs 24.4 the messages buffer starts being read-only, which kills
these tests. This seems to be the point of the variable
inihibit-read-only, which has existed at least since emacs 21.
|
|
After yet another variation in objdump output caused this test to fail
(on a Debian port, no less), I decided whatever putative benefit we
get from looking at the object files instead of the library isn't
worth the maintenence headache.
This version uses nm -P. nm -P should be portable, and fixed format.
It purposely doesn't use the -D argument, since that is non-POSIX and
nm on GNU/Linux seems do the right thing without it.
It still won't work out of the box on e.g. Mac OS/X. I think the right
thing to do there is to move some more configuration information into
sh.config.
(cherry picked from commit c34d6bad0f9da300eac2181e2073aee130432932)
|
|
Previously, this was implemented using a horrible GDB script (because
there is no such thing as a non-horrible GDB script). This GDB script
often broke with newer versions of GDB for mysterious reasons. Port
the test script to GDB's Python API, which makes the code much cleaner
and, hopefully, more stable.
(cherry picked from commit cbbda62258360f035894cff9dfd66c60b0cc707f)
Conflicts:
test/T380-atomicity.sh
|
|
It occurs that hardcoding the URL will not make sense in forks.
Mind you, the whole README won't make much sense in forks.
|
|
Apparently README.rst overrides README, so this will show up instead
of our generic README on github.
If the user is already on github, then clicking a link for more
information is not a hardship.
|
|
This adds a variable to make starting in insert mode optional when
composing and replying to emails. I found it unusual to be started in
insert mode so I thought I'd make it optional as others may find this as
well.
Ian
|
|
This patch switches from reading .notmuch-config directly to using
the CLI the same way that emacs does it. It actually uses less code
and is probably less error prone.
Ian
|
|
Commits a6cee01 and c48b12f otherwise break the build for people
without gdb.
|
|
This is overkill for the current code path, but should provide some
robustness for future changes in error handling.
|
|
Add --keep option to keep any remaining stuff in index or file. We
could distinguish between failures to index and failures to apply tags
or maildir sync, but for simplicity just have one.
|
|
Handle failures gracefully in add_file_to_database, renamed simply
add_file while at it. Add keep option to not remove the message from
database if tagging or tag syncing to maildir flags fails. Expand the
function documentation to cover the changes.
|
|
These tests are written with the assumption that we want all indexing
failures to be considered as failures by notmuch insert.
|
|
In the interest of robustness, avoid undefined behavior of
sortable_unserialise if the date value is missing. This shouldn't
happen now, but ghost messages will have blank date values.
|
|
This moves the code to retrieve and clear the metadata thread ID out
of _notmuch_database_link_message into its own function. This will
simplify future changes.
|
|
Previously, this was performed by notmuch_database_add_message. This
happens to be the only caller currently (which is why this was safe),
but we're about to introduce more callers, and it makes more sense to
put responsibility for ID compression in the lower-level function
rather than requiring each caller to handle it.
|
|
It blows things up by a factor of six or so, so it's worth giving
people a heads up. It won't effect e.g. Debian, that already builds
with -g and then strips.
|
|
For more details, see the commit message for 7f2cb3be (nmbug:
Translate to Python, 2014-10-03). I realized while writing this that
the 7f2cb3be commit message has:
* 'nmbug log' now execs 'git log', as there's no need to keep the
Python process around once we've launched Git there.
But we dropped that exec in favor of the subprocess approach between
v3 and v4, I just forgot to update the commit message [1].
[1]: id:e630b6763e9d0771718afee41ea15b29bb4a1de8.1409935538.git.wking@tremily.us
http://article.gmane.org/gmane.mail.notmuch.general/19007
|
|
Found by clang:
CC -O2 util/hex-escape.o
util/hex-escape.c:28:21: warning: unused variable 'default_buf_size'
[-Wunused-const-variable]
static const size_t default_buf_size = 1024;
^
1 warning generated.
|
|
Previously, this was implemented using a horrible GDB script (because
there is no such thing as a non-horrible GDB script). This GDB script
often broke with newer versions of GDB for mysterious reasons. Port
the test script to GDB's Python API, which makes the code much cleaner
and, hopefully, more stable.
|