1
0
mirror of https://github.com/djcb/mu.git synced 2024-06-25 07:28:02 +02:00
Commit Graph

1212 Commits

Author SHA1 Message Date
Dirk-Jan C. Binnema
111e48efa3 utils: add expand_path (wordexp wrapper)
For expanding command-line options for shells that don't do that by themselves.
2023-08-03 22:47:27 +03:00
Dirk-Jan C. Binnema
33fd79a9f0 mu-regex: add multiline test 2023-07-30 00:50:45 +03:00
Dirk-Jan C. Binnema
3a38d6366a mu-view: test locale to C for tests 2023-07-29 17:25:07 +03:00
Dirk-Jan C. Binnema
766d1849ff test-utils: add TempTz, RAII temporary timezone 2023-07-29 16:39:08 +03:00
Dirk-Jan C. Binnema
1f0342a91f mu-view: add unit-test 2023-07-28 19:43:46 +03:00
Dirk-Jan C. Binnema
dc29dc8395 html-to-text: add missing include <array> 2023-07-26 23:30:54 +03:00
Dirk-Jan C. Binnema
c06e765d13 html-to-text: be explicit with array type
clang in CI fails to deduce it, so let's help it a bit.
2023-07-26 23:24:29 +03:00
Dirk-Jan C. Binnema
455119f695 Merge branch 'wip/djcb/html-to-text' 2023-07-26 19:11:41 +03:00
Dirk-Jan C. Binnema
da290c21a9 benchmark: improve setup
Add some useful make targets, and separate (optimized) build.
2023-07-25 23:56:19 +03:00
Dirk-Jan C. Binnema
4c0b7db3d8 store: add 'add_document' optimization, use it
*Usually* we need Xapian's replace_document() API, but when we know a
document (message) is completely new, we can use the faster
add_document(). That is the case with the initial (re)indexing, when
start with an empty database.

Also a few smaller cleanups.
2023-07-25 23:56:19 +03:00
Dirk-Jan C. Binnema
4d8ba5f579 index/scanner: implement i-node sorting
On rotational devices (HDD) processing direntries is much faster when
doing so sorted by i-node for the dir-entries. This is an old
optimization (perhaps mu <= 1.6 or so?) that was implemented yet after
indexing changed, likely because my systems use SDDs instead!

But, let's restore that optimization; the sorting is fast enough that we
don't care for SDDs; on HDD it should be quite a bit faster.
2023-07-25 22:39:12 +03:00
Dirk-Jan C. Binnema
b795242d5a message: use html-to-text scraper for html parts
We were dumping the HTML-parts as-is in the Xapian indexer; however,
it's better to remove the html decoration first, and just pass the text.

We use the new built-in html->text scraper for that.
2023-07-25 21:26:36 +03:00
Dirk-Jan C. Binnema
56b8fad89e utils: implement html-to-text
Implement a crude html-to-text scraper function, to extract plain text
from html messages, so we can use it for indexing.
2023-07-25 21:26:36 +03:00
Dirk-Jan C. Binnema
11c807f955 utils/readline: use fmt-based apis 2023-07-25 21:26:01 +03:00
Dirk-Jan C. Binnema
9580d11fef utils/result: add std::move version of Err
Avoid a copy in some situations
2023-07-25 21:26:01 +03:00
Dirk-Jan C. Binnema
72f43f11df lib: improve store error messages
Use xapian_try_result
2023-07-23 21:04:26 +03:00
Dirk-Jan C. Binnema
d374d94031 clang: avoid some build warnings 2023-07-23 21:04:26 +03:00
Dirk-Jan C. Binnema
7b38f094c4 migrate some more code to mu_format / join_paths
Let's modernize a bit.
2023-07-20 23:14:29 +03:00
Dirk-Jan C. Binnema
6ad5cccc53 store/index: and unit test for circular symlink
Check that we bail out early
2023-07-18 23:18:21 +03:00
Dirk-Jan C. Binnema
885903c496 index: limit length of maildir path to MaxTermLength
This limit was already in place, but now we detect it a bit earlier (in
the indexer). We _could_ increase it (by using hashes for dirstamps), but
right now it's a good catch for circular symlinks.
2023-07-18 23:18:21 +03:00
Dirk-Jan C. Binnema
cf6c5a36d7 utils: rework running system commands
Use g_spawn and pass arguments, so we don't involve a shell that needs
escaping etc.

Improve error handling.
2023-07-18 20:19:27 +03:00
Dirk-Jan C. Binnema
e8462e0204 lib/index: add rudimentary scanner test
Make the defunct existing one a working test.
2023-07-18 19:08:16 +03:00
Dirk-Jan C. Binnema
99a0eaaa76 lib/store: improve dirstamp / set_dirstamp code
Modernize.
2023-07-11 22:54:01 +03:00
Dirk-Jan C. Binnema
545494225a lib/contacts-cache: improve code 2023-07-11 22:54:01 +03:00
Dirk-Jan C. Binnema
6f69f5d482 utils/mu-regex: add move constructor 2023-07-11 22:54:01 +03:00
Dirk-Jan C. Binnema
f3bfdf5add lib/maildir: use mv for moving to avoid warnings
using gio gives some (false, we assume) valgrind warnings, so for now
use 'mv' instead.

Also slightly update the code with some mu_format overtaking format.
2023-07-10 23:17:06 +03:00
Dirk-Jan C. Binnema
18490a818d store/server: centralize docids-for-msgid
No need for two near-identical impls

Remove some dead declarations.
2023-07-10 23:17:06 +03:00
Dirk-Jan C. Binnema
0b4f7c4cbe lib: xapian-db/store: simplify
No need for "pimpl" in xapian-db; keep it simple.
2023-07-10 23:15:40 +03:00
Dirk-Jan C. Binnema
cc65b8b401 utils: add some more helpers for test code
Creating and removing (temp) dirs, running mu commands.
2023-07-10 23:15:40 +03:00
Dirk-Jan C. Binnema
904f64aa03 utils/result: add "unwrap" convenience function 2023-07-10 23:15:40 +03:00
Dirk-Jan C. Binnema
31f0c40893 migrate to fmt-based logging in some more places
and improve logging.
2023-07-08 10:30:36 +03:00
Dirk-Jan C. Binnema
4171fe14c3 store: removing trailing / for root_maildir
Other code depends on that.
2023-07-06 21:49:50 +03:00
Dirk-Jan C. Binnema
75a2cab3f1 message: don't check language without cld2 support
No point in checking if we do not have the support.
2023-07-06 21:49:50 +03:00
Dirk-Jan C. Binnema
82235b9d49 fmt: more update to use new fmt-based APIs 2023-07-06 21:49:50 +03:00
Dirk-Jan C. Binnema
91c5a9bac5 store: only write last-change _once_
xapian-db does it, no longer needed in store.cc
2023-07-06 21:49:50 +03:00
Dirk-Jan C. Binnema
e48485cb58 sexp: use fmt for parsing_error
Should help with Apple clang build too.
2023-07-05 23:40:36 +03:00
Dirk-Jan C. Binnema
aed1395c53 lib/utils: update library paths 2023-07-05 23:14:34 +03:00
Dirk-Jan C. Binnema
4920b56671 update to use fmt-based apis
Not complete, but a first big stab converting users of Mu::Error and
various g_warning & friends, format to the new libfmt-based APIs.
2023-07-05 23:10:13 +03:00
Dirk-Jan C. Binnema
742ca33740 utils: rework Mu::Error and g_ logging macros with fmt
A bit more C++ template magic to remove a lot of code.
2023-07-05 23:07:11 +03:00
Dirk-Jan C. Binnema
e6ab61d233 thirdparty: add fmt
Add libfmt for formatting strings. With C++23, perhaps we can remove
this. Let's see.
2023-07-05 23:07:11 +03:00
Dirk-Jan C. Binnema
5c878558e0 thirdparty: move {optional,expected}.hpp to tl/
Follow upstream naming.
2023-07-05 23:07:11 +03:00
Dirk-Jan C. Binnema
c5f3894374 message: double-check part-type in Multipart
Avoid exception for some messages (unsigned messages with signed
attachment).
2023-07-05 20:39:47 +03:00
Dirk-Jan C. Binnema
867f3205e2 lib/xapian-db: add missing include unordered_map 2023-07-02 10:08:58 +03:00
Dirk-Jan C. Binnema
c4b5795328 cli: support --ignored-address for init command
Allow for skipping unwanted addresses (such as 'noreply') from the
contacts cache.
2023-07-02 10:00:40 +03:00
Dirk-Jan C. Binnema
5dc41ed811 lib: support ignoring addresses for contacts-cache
Skip annoying 'noreply' & friends.
2023-07-02 00:06:56 +03:00
Dirk-Jan C. Binnema
c6fff6a281 all: update for API changes (config etc.)
Use the new & improved APIs.
2023-07-02 00:06:56 +03:00
Dirk-Jan C. Binnema
2acc1c2271 lib/contacts-cache: rework using config
Use the new config class to pass information and serialization.
2023-07-02 00:06:56 +03:00
Dirk-Jan C. Binnema
3791d0c375 lib/store: rework to use xapian-db / config
Simplifies the implementation.
2023-07-02 00:06:56 +03:00
Dirk-Jan C. Binnema
c28fde9155 lib: create mu-xapian-db, mu-config
XapianDb is a fairly thing wrapper around Xapian, which handles locking,
exception handling and some tracking.

On top of that, Config add a configuration database for type /
introspectable configuration info.
2023-07-02 00:06:56 +03:00
Dirk-Jan C. Binnema
426c1d35d0 thirdparty: bump tl::expected version 2023-06-27 22:43:29 +03:00
Dirk-Jan C. Binnema
fd7c011195 lib: update for api changes, update tests
With the new Sexp. And expand unit tests.
2023-06-27 00:53:23 +03:00
Dirk-Jan C. Binnema
ae9607530f utils/sexp: extend and improve tests
Extend functionality for parsing; update documentation, tests.
2023-06-27 00:52:07 +03:00
Dirk-Jan C. Binnema
0bdab5ae06 contact/display-name: quote "names" with '@'
Apparently, some mail servers want this, and gnus doesn't handle it
automatically.
2023-06-12 23:37:39 +03:00
Dirk-Jan C. Binnema
b9026c5042 message/fields: add some helpers for combination-fields
such as "recip" and "contacts".
2023-06-04 14:56:40 +03:00
Dirk-Jan C. Binnema
9bab2a4050 utils/sexp: add some convenience
Add some convenience function for dealing the head/tail
Some whitespace / cosmetics
Add operators ==
Add operator !=
Update command handler for this.
2023-06-04 14:56:40 +03:00
Dirk-Jan C. Binnema
eafc81f168 utils: fix non-cld2 build 2023-05-12 21:52:32 +03:00
Dirk-Jan C. Binnema
7f2eeb1010 message: try to detect body text language
Try to detect the language of the e-mail body and make it searchable.
2023-05-11 23:23:52 +03:00
Dirk-Jan C. Binnema
ad64093183 utils: implement language-detector
A thing wrapper around CLD2 with which we can detect the language of an
e-mail message.
2023-05-11 23:23:52 +03:00
Dirk-Jan C. Binnema
3a05dd8725 lib/utils: implement read_from_stdin 2023-04-29 23:01:12 +03:00
Dirk-Jan C. Binnema
e4af910d04 utils: implement g_cancellable_new_with_timeout 2023-04-29 23:01:12 +03:00
Dirk-Jan C. Binnema
36d89f400f message: remove control characters from subject
And add a unit-test.

Fixes #2477
2023-04-24 21:52:13 +03:00
Dirk-Jan C. Binnema
a3538e5ef1 store: small cleanups
Remove readonly/inmemory from properties. Add read_only() accessor.
2023-04-23 20:26:16 +03:00
Dirk-Jan C. Binnema
3c578d7a3b utils: add thread_dep for logger test
Needed on some systems

Fixes #2473
2023-04-14 12:48:03 +03:00
Dirk-Jan C. Binnema
b41955b82a mu-server: improve error message 2023-04-11 21:31:13 +03:00
Dirk-Jan C. Binnema
8762ac27dc mu: improve error numbers
Ensure they match what mu expects.
2023-04-11 20:47:48 +03:00
Dirk-Jan C. Binnema
ec942a988d tests: always log to file during tests
And set the cachedir (for logging and other things) to a random tmpdir.
2023-04-09 14:43:36 +03:00
Dirk-Jan C. Binnema
9b8a0146e0 logger: create logdir if non-existent 2023-04-09 14:43:17 +03:00
Dirk-Jan C. Binnema
e43452fa18 test: don't "uniqify" link names during test 2023-04-09 11:02:58 +03:00
Dirk-Jan C. Binnema
2aa0d20f39 mu-logger: Add lock for file-logger and stress test
Add a lock to the file logger and add a unit-test to stress test it.
(It does fail without the lock, and passed with it).

Should help for: #2469.
2023-04-08 10:26:15 +03:00
Dirk-Jan C. Binnema
026a19bcfa message: allow extracting message parts to file
And add unit-test.

Fixes #2467
2023-04-06 07:19:26 +03:00
Dirk-Jan C. Binnema
cd23e6015d mu: allow relative message paths in mu commands 2023-04-06 07:19:26 +03:00
Dirk-Jan C. Binnema
ff1e06c7c8 mu-find: restore JSON output
Fixes #2453
2023-03-30 18:12:33 +03:00
Dirk-Jan C. Binnema
39101cf583 mu-find: brush off --format=links unit test
Enable it by default, and modernize it a little bit
2023-03-28 22:26:56 +03:00
Dirk-Jan C. Binnema
f3c3811818 message: fix user-after-scope in test 2023-03-24 23:24:19 +02:00
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
Dirk-Jan C. Binnema
64f08149bc lib: remove mu-runtime
Remove runtime; update the logger for that, and move the runtime-paths
stuff to utils.
2022-11-16 23:31:51 +02:00
Dirk-Jan C. Binnema
ed08118652 utils/command-handler: fix symbol-arg copy-pasta
Fixes #2361.
2022-11-13 15:03:07 +02:00
Dirk-Jan C. Binnema
aa6fd3e757 utils/mu-utils-format: add missing includes 2022-11-12 08:30:46 +02:00
Dirk-Jan C. Binnema
a417b38624 store: update for new sexp api
And use improved cached_sexp api (automatically handled with
mu-document now)
2022-11-07 18:38:03 +02:00
Dirk-Jan C. Binnema
e1dd6f10b1 server: rework for updated Sexp/CommandHandler
Rework for the new APIs.
2022-11-07 18:38:03 +02:00
Dirk-Jan C. Binnema
58176f8438 message: updates for new sexp
Update for API changes.
2022-11-07 18:38:03 +02:00
Dirk-Jan C. Binnema
dbd3c1309a command-handler: rework for new sexp
Rework / cleanup the command-handler (and rename for command-parser).

Update tests (and integrate with sources)
2022-11-07 18:38:03 +02:00
Dirk-Jan C. Binnema
dfc2cb12d7 sexp: major rework / API improvements
Use a bit nicer/modern c++, since we're using C++17 now. Add more tests.
2022-11-07 18:37:23 +02:00
Dirk-Jan C. Binnema
6064c2e88b test-mu-store-query: make move/refresh test more rigorous 2022-11-01 18:41:10 +02:00
Dirk-Jan C. Binnema
db0d51d630 server: improve error messages 2022-11-01 18:37:31 +02:00
Dirk-Jan C. Binnema
cb4e893f3a mu-error: add missing string include 2022-10-30 15:51:03 +02:00
Dirk-Jan C. Binnema
83eceaf580 test-mu-store-query: make move/refresh test more rigorous 2022-10-30 11:39:33 +02:00
Dirk-Jan C. Binnema
0055b40a8d mu-maildir: improve error handling / reporting 2022-10-30 11:27:54 +02:00
Dirk-Jan C. Binnema
06be7a24e7 test-mu-store-query: add unit test for dup message
For ticket #2327. Haven't been able to reproduce though.
2022-10-26 22:35:34 +03:00
Dirk-Jan C. Binnema
27a85eada2 store: fix move ctor
indexer_ is holding a ptr to the _old_ store; clear it so it gets
regenerated.
2022-10-26 21:51:53 +03:00
Daniel Colascione
f0bba8e1fa message: use fake Message-ID when empty
Previously, mu generated a fake message ID for messages without a
Message-ID header. This fake message ID allows these messages to show in
an --include-related query. However, if a message contained a Message-ID
header with the value equal to the empty string, we did not generate a
fake message ID in the index, and consequently, these messages failed to
appear in an --include-related query. This change uses a fake message ID
when the Message-ID header is absent _or_ empty.
2022-10-24 23:14:17 +03:00
Dirk-Jan C. Binnema
822f49d41a mu-fields: fix string format 2022-10-17 07:33:23 +03:00
Dirk-Jan C. Binnema
3d97db8ffc view: be clearer there's no text body found
There may have been an html body, but mu-view only shows a text-body;
make that clearer.

Add a test case for an html-only message.

Fixes #2349.
2022-10-16 00:57:19 +03:00
Dirk-Jan C. Binnema
5367122c08 store: support reinit
Support reinitializing, based on some current store. This is useful for
upgrading. Note that this is only the backend implementation + tests.
2022-10-02 18:24:23 +03:00
Dirk-Jan C. Binnema
9e60ebb683 utils: add helpers for assoc-pairs
Add some unit-test, too.
2022-10-02 18:24:23 +03:00
Dirk-Jan C. Binnema
ca04ae4d65 test-mu-msg.cc: fix unit test
Fix typo.
2022-10-02 18:24:23 +03:00
Dirk-Jan C. Binnema
bb7c8d880a message: convert mime-parts to utf-8
Ensure that non-utf8 mime-parts are converted to utf8. This fixes a
problem with messages with such parts; added unit test.

Fixes #2333.
2022-09-19 18:27:03 +03:00
Dirk-Jan C. Binnema
e416a5215f autotools: remove
Since 2008, autotools has served us well - thank you!

However, mu is now using meson build, and it's time to remove the
autotools support -- one build system is enough.
2022-08-20 11:19:29 +03:00
Dirk-Jan C. Binnema
6fdc20aeb1 tests: add unit-tests for references with fake message-ids
For #2312.
2022-08-11 23:06:12 +03:00
Dirk-Jan C. Binnema
fc88158357 message: update references() implementation
Clean up the implementation at bit, and filter out 'fake' message-ids,
such as the ones from protonmail.

Update documentation.

Add Mu::Message::thread_id().

This fixes #2312.
2022-08-11 23:01:29 +03:00
Dirk-Jan C. Binnema
317fe53ff7 tests: update test helpers and users
Move test-mu-common to mu-test-utils. Use mu_test_init as a wrapper for
g_test_init. Update users.
2022-08-11 22:55:10 +03:00