summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2025-08-16labels: ensure c++17 compatibilityDirk-Jan C. Binnema
This broke the build earlier.
2025-08-15mu: add 'label' command + manpage + testsDirk-Jan C. Binnema
Add a label command and document it.
2025-08-15store: add support for modifying and listing labels and cachingDirk-Jan C. Binnema
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.
2025-08-15message: add support for labels + testsDirk-Jan C. Binnema
Labels are strings associated with messages, which can be used for searching them.
2025-08-15tests: only build when neededDirk-Jan C. Binnema
Build the tests lazily, i.e., not before `meson test`. This helps with build-times.
2025-07-27utils: refactor count_nl from mu-cmd-findDirk-Jan C. Binnema
And update users. Please enter the commit message for your changes. Lines starting
2025-07-27contacts-cache: cosmeticsDirk-Jan C. Binnema
2025-07-24fmt: prefer system package if foundDirk-Jan C. Binnema
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.
2025-07-12mu-config.hh: unbreak mac buildDirk-Jan C. Binnema
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.
2025-07-12mu-config: split get() into get_str() and decode()Dirk-Jan C. Binnema
Makes it easier to use elsewhere.
2025-07-05mu-mime-object.hh: fix some typosDirk-Jan C. Binnema
2025-06-30server: make index log back-off a bit more conciseDirk-Jan C. Binnema
2025-07-01fix typoZheng, Ping
2025-07-01indexer sleep exp backoffZheng, Ping
2025-06-16mu-test: fix logging verbosityDirk-Jan C. Binnema
We were logging _everything since the g_log_set_handler was only set for the default domain, not "mu". Let's fix this.
2025-06-14mu_utils: add to_string_charDirk-Jan C. Binnema
Like to_string_gchar, but for malloc/free strings.
2025-06-10mu-maildir.cc: fix typoDirk-Jan C. Binnema
Use the right #define in the dirent check. Seems we were always following the slow path.
2025-06-10mu-cfind/contacts-cache: refactor matching in for_eachDirk-Jan C. Binnema
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.
2025-05-26lib: improve xapianizer / xapian_termDirk-Jan C. Binnema
2025-05-26contacts/contacts-cache: cleanupsDirk-Jan C. Binnema
refactor code a bit; move sorting to Contact remove unneeded hashing in Contact (just use the email address)
2025-05-24tests: skip some slow tests when valgrindingDirk-Jan C. Binnema
2025-05-24mu-scanner: improve ignore_dentry checkDirk-Jan C. Binnema
2025-05-24mu-test: add valgrind checkDirk-Jan C. Binnema
Make it a bit easier to skip some tests when running under valgrind.
2025-05-24message: retain non-file flags when movingDirk-Jan C. Binnema
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.
2025-05-24mu: rename --my-address into --personal-addressDirk-Jan C. Binnema
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.
2025-04-13test-store: don't break on slow systemsDirk-Jan C. Binnema
The 'circular-symlink' test.
2025-04-12mu-server: cleanup find prop handlingDirk-Jan C. Binnema
Rework the overly long find-handler. Improve parsing of options, and return better return properties (for use in mu4e).
2025-04-12test-circular-symlink: loosen test a bitDirk-Jan C. Binnema
Work-around some weirdness. No energy to do a root-cause analysis ;) Fixes #2832.
2025-03-23mu-sexp: don't require > c++17Dirk-Jan C. Binnema
2025-03-23mu-find: implement format=json2Dirk-Jan C. Binnema
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.
2025-03-23mu-sexp: tighten definition of plistpDirk-Jan C. Binnema
In a plist, we also require the first of each two element pairs to start with ':' Fixes #2830.
2025-03-23mu-sexp: fix c++23 warning for suffix operatorDirk-Jan C. Binnema
Space between operator"" and _xxx is deprecated.
2025-02-23indexer: minor tweakingDirk-Jan C. Binnema
2025-02-23Improve performance of index cleanup: use readdir(3), not access(2)Daniel Colascione
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
2025-02-13mu: remove empty refs + unit-testDirk-Jan C. Binnema
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.
2025-02-07mu-server: more info for mu4e-analyze-last-queryDirk-Jan C. Binnema
Include the search parameters besides the query.
2025-02-05mu-server: minor cleanupsDirk-Jan C. Binnema
2025-02-05guile: avoid body duplicationDirk-Jan C. Binnema
In message, don't re-fill when unneeded. Add tests. Fixes #2802.
2025-02-02test: add unit-tests for related/new/skip-dupsDirk-Jan C. Binnema
Test the interaction between related/new/skipped-duplicates. Seems to work as expected.
2025-01-13mu-info: add example for ref:, thread:Dirk-Jan C. Binnema
2025-01-08mu-query-parser: cosmeticDirk-Jan C. Binnema
2025-01-08server: make parsed queries available to mu4eDirk-Jan C. Binnema
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.
2024-12-09utils-file: add unit-test for expand_fileDirk-Jan C. Binnema
2024-12-07mu-sexp: add -unix output for json tstampsDirk-Jan C. Binnema
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.
2024-12-06lib/utils: include fmt/xchar.hDirk-Jan C. Binnema
Needed for 'join'
2024-12-02query: add related: combi-field + testDirk-Jan C. Binnema
Add a new combination (pseudo) field "related:", which combines "message-id" and "references"
2024-12-01tests: add tests for ref: searchingDirk-Jan C. Binnema
2024-11-30fields: make combi-fields introspectableDirk-Jan C. Binnema
And add the display of combination-fields to 'mu info fields'.
2024-11-26search: make references searchableDirk-Jan C. Binnema
Allow searching for message that have the given message-id in References: or Reply-To:
2024-11-26lib/store-worker: removeDirk-Jan C. Binnema
We're not using it.