Commit Graph

1038 Commits

Author SHA1 Message Date
Dirk-Jan C. Binnema 96e16034c7 contact: fix quoting
Ensure that addresses with commas are quoted. Don't 2047-encode though.

Update tests.
2023-03-14 06:18:56 +02:00
Dirk-Jan C. Binnema 617c8129ae lib/thirdparty: update tabulate to 1.5.0 2023-03-03 18:47:48 +02:00
Dirk-Jan C. Binnema 6f0e295326 lib/thirdparty: update CLI11 to 2.3.2 2023-03-03 18:46:48 +02:00
Dirk-Jan C. Binnema 9d0fe0e5d4 lib/thirdparty: update expected/optional 2023-03-03 18:41:45 +02:00
Dirk-Jan C. Binnema 413a2564b6 server: don't encode addresses in contacts_handlers
Seems it doesn't always play nice with composer
2023-02-28 23:23:52 +02:00
Dirk-Jan C. Binnema a50357966d mu: add müller test-case 2023-02-28 22:42:55 +02:00
Dirk-Jan C. Binnema bd5ae78c49 mime-object: add missing include 2023-02-23 18:38:18 +02:00
Dirk-Jan C. Binnema 6da223fcb6 mu-message-part: rework cooked_filename a bit
Improve working, add a 'minimal' mode, and add some unit tests.
2023-02-19 10:47:50 +02:00
Dirk-Jan C. Binnema 3d4805de0c server: small output improvement
For human users.
2023-02-17 10:20:14 +02:00
Dirk-Jan C. Binnema 76fedf4d64 mu-server: make :update for mkdir optional
It's useful to do "opportunistic" mkdir form mu4e; don't send updates in
that case (i.e. with :update nil)
2023-02-12 11:16:47 +02:00
Dirk-Jan C. Binnema 2255769de7 build: bump schema version, update contacts-cache
Bump schema version to trigger update after we added html processing.

Since we're updating the database schema version, let's use the
opportunity to remove outdated data from the contacts-cache.
2023-01-31 23:41:57 +02:00
Dirk-Jan C. Binnema abfa6f277c mu: index html text as if it were plain text
This is a bit of hack to include html text in results.

Of course, html text is not really plain text, so this is a bit of a
hack until we introduce some html parsing step.
2023-01-31 23:41:57 +02:00
Dirk-Jan C. Binnema 3ec960c609 mu: improve mu-error
Add specific error-code for SchemaMismatch

Combine find/cfind no-matches
2023-01-29 15:38:40 +02:00
Dirk-Jan C. Binnema cc664b8128 utils: add missing mu-regex.cc
Fixes #2425
2023-01-29 12:49:52 +02:00
Dirk-Jan C. Binnema 6b4857b189 mu-scanner: ignore some more unusable files 2023-01-29 12:03:13 +02:00
Dirk-Jan C. Binnema 40c3d3568e utils: improve xapian exception handling / reporting 2023-01-29 11:25:02 +02:00
Dirk-Jan C. Binnema 29dc90486b server: find_handler: better handle sort-field-id
Handle invalid sort-fields correctly.
2023-01-29 10:13:29 +02:00
Dirk-Jan C. Binnema a8daec9598 lib: use join_paths
Convert some manual concatenation to the new join_paths helper.
2023-01-29 10:13:29 +02:00
Dirk-Jan C. Binnema 25635c5cfe utils: add join_paths + tests 2023-01-29 10:13:29 +02:00
Dirk-Jan C. Binnema daef904ca1 utils: add Regex::replace + unit tests 2023-01-29 10:13:29 +02:00
Dirk-Jan C. Binnema ba69e2104a utils: remove some dead test code 2023-01-29 10:13:29 +02:00
Derek Zhou 4271fc2fb6
really allow flags to be empty in move command
Without this patch, I see the following error:

;; mu> (move :docid 1 :maildir "/.Archive")
[2b](:error 32818 :message "invalid flags ''")

flags should not default to "", which is not a valid flags string.
2023-01-25 16:31:41 -05:00
Arsen Arsenović ce94464652
mu-error: Add missing <cstdint> include
GCC 13s libstdc++ reduced its dependency on some headers like <cstdint>, so it's
no longer transitively included through various headers.  Include it explicitly.

See also: https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes

  ../lib/utils/mu-error.hh:36:26: error: ‘uint32_t’ does not name a type
     36 |         static constexpr uint32_t SoftError = 1 << 23;
        |                          ^~~~~~~~
2023-01-21 19:48:57 +01:00
Dirk-Jan C. Binnema 201fe45edc server: add a few stopwatches
For measuring performance.
2023-01-19 22:37:50 +02:00
Dirk-Jan C. Binnema 3dd7cf80d3 mu-scanner: ignore .nnmaildir directories
They contain gnus internal data.
2023-01-18 23:05:46 +02:00
Dirk-Jan C. Binnema 10838a2c58 mu-store: fix typo 2023-01-14 20:02:05 +02:00
Dirk-Jan C. Binnema 86a641f748 mu-flags: use implied unread flag
and update tests.

Fixes #2409
2023-01-14 20:02:05 +02:00
Dirk-Jan C. Binnema 6979a66630 utils: get rid of mu-util.[ch]
It was getting old...
Remove the unused parts, refactor the few parts still in use.
2023-01-14 20:02:05 +02:00
Dirk-Jan C. Binnema 46a2432809 mu: test-message: add test for html text from base64 2023-01-13 22:06:19 +02:00
Dirk-Jan C. Binnema ef2ec7d5a5 server: split off new server command 'queries'
Instead of being part of the ping command, create a separate
queries command, which is easier for updating. Ie. 'ping' implies "show
main screen" but we don't always want that side-effect.
2023-01-07 15:40:30 +02:00
Dirk-Jan C. Binnema 6b04158925 mu-store: create mu cache path if needed 2023-01-06 19:48:40 +02:00
Dirk-Jan C. Binnema 60e9d54a7c mu-regex: make backward-compatible with older glib 2022-12-31 00:10:24 +02:00
Dirk-Jan C. Binnema 07a69bf206 mu-contact: cosmetic 2022-12-30 15:14:17 +02:00
Dirk-Jan C. Binnema 2229e2e77e message/contact: ensure valid email address in cache
Filter out the (rare but existent) invalid email addresses from the
cache; use the new method Contact::has_valid_email for that.
2022-12-30 11:51:21 +02:00
Dirk-Jan C. Binnema 27ecbbdd65 many: use Mu::Regex instead of std::regex
The former is PCRE-compatible, and faster than std::regex.
2022-12-30 11:15:03 +02:00
Dirk-Jan C. Binnema e97bbb83e3 utils/mu-regex: add PCRE Regex wrapper
Add a thin c++ wrapper for GLib's GRegex (which is a PCRE wrapper
itself). PCRE is much faster than C++ std::regex, it may even matter in
some use-cases.
2022-12-30 11:15:03 +02:00
Dirk-Jan C. Binnema 96b208d712 build: bump meson requirement to 56.0
We need some of the new functionality in the near-future.

Fix build warnings.
2022-12-19 23:01:16 +02:00
Dirk-Jan C. Binnema 27ffaba817 mu-utils: use const char* from for time_to_string
To avoid lifetime problems with some(?) compilers.
2022-12-10 19:22:00 +02:00
Dirk-Jan C. Binnema d5fb15574b mu-query-match-decider: add 'Related' to flags
We were _replacing_ the flags (such as Duplicate), but we should add to
them instead.

Add a unit-test for this.
2022-12-08 19:33:15 +02:00
Dirk-Jan C. Binnema ca05c82451 query-threads: add multi-dup unit test 2022-12-08 19:30:20 +02:00
Dirk-Jan C. Binnema b71751a185 mu-server: update for move_message API update 2022-12-07 18:22:29 +02:00
Dirk-Jan C. Binnema da7c3b0c9a tests: update for move_message API update 2022-12-07 18:22:29 +02:00
Dirk-Jan C. Binnema 0b516c18c2 store: add mu_move_message dup flag test
Test the new functionality
2022-12-07 18:22:29 +02:00
Dirk-Jan C. Binnema 87c3ceb7b1 store: update move_message API
Update the move_message API so to allow for updating duplicate messages
too (not implemented yet), and return all updated messages.
2022-12-07 18:22:29 +02:00
Dirk-Jan C. Binnema 62cfc88950 flags: add flags_keep_unmutable + test
When moving we want to maintain _some_ flags; add a function making that
convenient.
2022-12-07 12:32:13 +02:00
Dirk-Jan C. Binnema 4d1352ec56 mu/options: Support date sortfield
Fixes #2368.
2022-11-22 23:16:37 +02:00
Dirk-Jan C. Binnema d2a3a13242 query/test: add term splitting unit test
For checking issue #2365.
2022-11-20 10:18:01 +02:00
Daniel Colascione 26b3110b8f Avoid word-splitting regular expression matches
Previously, we would conduct regular expression searches by
enumerating all values of a given term, manually regex-matching each
one against our search regular expression, remember all the term
values that matched our regular expression, then do a big Xapian
OR-query that matched any of those term values. In constructing this
OR-query, however, we would split each term value on space and add a
separate Xapian phrase search term for each resulting word. This
approach worked fine most of the time, beacuse when we index a term,
we index both each word in a term and the whole term by itself.

This word splitting produced false negatives in some matches, however,
because Xapian and the Mu-level word splitting code do word splitting
slightly differently and apply different transformations to the text
while splitting.  (For example, Xapian transforms fancy Unicode
apostrophes to ASCII apostrophes.)

This patch avoids the problem by not word splitting when constructing
the big Xapian OR-query for finding the results of regular
expression matching.
2022-11-20 10:18:01 +02:00
Dirk-Jan C. Binnema cec08ab1ea script: Rework guile script with new CLI support
Integrate the guile scripting a bit better into the mu cmdline.
Rework the old script module for that.
2022-11-17 11:00:06 +02:00
Dirk-Jan C. Binnema 27a474be41 thirdparty: include CLI11
Add the CLI11 library so we can use it.
2022-11-17 11:00:06 +02:00