| Age | Commit message (Collapse) | Author |
|
This broke the build earlier.
|
|
Add a label command and document it.
|
|
Add methods update_labels, clear_labels which update or clear the labels for a
message in the store, and update the cache with the overall counts of labels.
Add a LabelsCache to keep track of the counts and labels_map() to retrieve that
map.
|
|
Labels are strings associated with messages, which can be used for searching
them.
|
|
Build the tests lazily, i.e., not before `meson test`. This helps with
build-times.
|
|
And update users.
Please enter the commit message for your changes. Lines starting
|
|
|
|
mu embeds a "vendored" subset of the libfmt package under thirdparty; but it's
better to use the system-package if the user has one.
So, use the system package if found or user -Duse-embedded-fmt=true is
specified.
|
|
The mac build broke (CI) because there's no conversion from time_t -> SCM
defined. Since we want to use int64_t anyway (2038), simply change to that.
|
|
Makes it easier to use elsewhere.
|
|
|
|
|
|
|
|
|
|
We were logging _everything since the g_log_set_handler was only set for the
default domain, not "mu". Let's fix this.
|
|
Like to_string_gchar, but for malloc/free strings.
|
|
Use the right #define in the dirent check. Seems we were always following the
slow path.
|
|
Move some of the code in from the command-line tool to contacts-cache, for
possible re-use. Clean up a bit while doing so.
|
|
|
|
refactor code a bit; move sorting to Contact
remove unneeded hashing in Contact (just use the email address)
|
|
|
|
|
|
Make it a bit easier to skip some tests when running under valgrind.
|
|
The content-flags won't change, and the unread-flag can be re-calculated.
Add a unit test, and some small doc improvements.
Fixes #2831.
|
|
This makes things a bit more uniform with all the places where we use
"personal".
--my-address remains as an alias for the command-line option.
Add unit test.
Resolves #2806.
|
|
The 'circular-symlink' test.
|
|
Rework the overly long find-handler.
Improve parsing of options, and return better return properties (for use
in mu4e).
|
|
Work-around some weirdness. No energy to do a root-cause analysis ;)
Fixes #2832.
|
|
|
|
Implement a new experimental json2 format for mu-find, which gets rid of
the ":" prefixes for fields, i.e., "subject" instead of ":subject".
Document it as well.
|
|
In a plist, we also require the first of each two element pairs to start
with ':'
Fixes #2830.
|
|
Space between operator"" and _xxx is deprecated.
|
|
|
|
This change makes index cleanup ~4x faster by changing how we
determine whether a file mentioned by the database still exists on
disk. Previously, we'd call access(2) for each file the database
mentioned. Doing so produced a lot of system call overhead. Now, we
read the directory entries of the directories containing the files
whose existence we're checking, build a hash table from what we find,
then do the existence check against this hash table instead of
entering the kernel.
The semantics of the cleanup check do change subtly, however.
Previously, we checked whether the mentioned file was *readable*.
Now we check merely that it exists. Extant but unreadable files in
maildirs should be rare.
BEFORE:
$ time mu index --lazy-check
lazily indexing maildir /home/dancol/Mail -> store /home/dancol/.cache/mu/xapian
/ indexing messages; checked: 0; updated/new: 0; cleaned-up: 0
real 0m19.310s
user 0m1.803s
sys 0m12.999s
AFTER:
$ time mu --debug index --lazy-check
lazily indexing maildir /home/dancol/Mail -> store /home/dancol/.cache/mu/xapian
- indexing messages; checked: 0; updated/new: 0; cleaned-up: 0
real 0m4.584s
user 0m2.433s
sys 0m2.133s
|
|
Some message can have an _empty_ message-id, e.g. with:
In-Reply-To: <>
which we weren't filter out.
This would yield and _empty_ Thread-Id, in mu-message.cc
And this would make mu-query believe it had no matches in the first
query, in Query::Private::run_related, and effectively throw away the
results. (Xapian using empty string both for a "not found" result, and
"found an empty string doesn't help either).
So, avoid having an empty reference. Also add a unit-test.
Fixes #2812.
|
|
Include the search parameters besides the query.
|
|
|
|
In message, don't re-fill when unneeded. Add tests.
Fixes #2802.
|
|
Test the interaction between related/new/skipped-duplicates. Seems to
work as expected.
|
|
|
|
|
|
Basically, make the "mu find .... --analyze" information available in
mu4e, through a function mu4e-server-last-query.
This is shows the query as the server saw it, as well as the parse
s-expressions. This can be useful to see how some query is interpreted.
|
|
|
|
The json output (for mu-find etc.) just showed the converted sexp
output, including the clumsy emacs-style tstamps (for changed/date).
Add unix timestamps as well, which are easier to work with outside
emacs.
This handles #2770.
|
|
Needed for 'join'
|
|
Add a new combination (pseudo) field "related:", which combines
"message-id" and "references"
|
|
|
|
And add the display of combination-fields to 'mu info fields'.
|
|
Allow searching for message that have the given message-id in
References: or Reply-To:
|
|
We're not using it.
|