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
Dirk-Jan C. Binnema
9aabe74df6
mu4e: add more tests for related/skipdups queries
2022-08-07 12:01:18 +03:00
Dirk-Jan C. Binnema
9fdcee8c22
test-mu-store-query: add more contact-matching tests
2022-07-14 08:10:15 +03:00
Dirk-Jan C. Binnema
ed93ff4968
message: sanitize maildir
...
Remove trailing '/' in maildirs, since people have that (like "/foo/"),
and earlier version didn't complain about that.
Fixes #2298
2022-07-13 23:27:54 +03:00
Dirk-Jan C. Binnema
d8bbeb0218
mu-server: more informative error message
2022-07-05 00:11:56 +03:00
Dirk-Jan C. Binnema
ca8836b631
document: cosmetic
2022-06-29 22:20:34 +03:00
Dirk-Jan C. Binnema
810b9643f4
query: exclude some test code from coverage
2022-06-29 22:20:09 +03:00
Dirk-Jan C. Binnema
97459beed9
maildir: improve testing coverage
...
Remove some dead/unused code. Update docs. Add test cases.
2022-06-29 22:19:26 +03:00
Dirk-Jan C. Binnema
fc25bb2866
server: commit after indexing
...
So external users see the changes.
2022-06-29 22:18:15 +03:00
Dirk-Jan C. Binnema
c4ed3e6ba7
server: fix read-mark propagation
...
Whenever a message is flagged as 'read', do the same for all the duplicates as well.
This used to work, make it work again.
Fixes #2277
2022-06-29 08:59:40 +03:00
Dirk-Jan C. Binnema
df80935c2e
document: index some sub-parts as well
...
1. Also add 'normal' terms for some indexable fields
2. Add terms for e-mail address components
And add some tests.
This helps for some corner-case queries (see tests).
Fixes #2278
Fixes #2281
2022-06-29 08:00:43 +03:00
Dirk-Jan C. Binnema
23ac71e6a7
maildir: add tests for maildir_link / maildir_clear_links
2022-06-29 07:50:16 +03:00
Dirk-Jan C. Binnema
0708033e48
build: update autotools build
2022-06-18 15:21:26 +03:00
Dirk-Jan C. Binnema
cade7493fd
build: fix some compiler warnings
2022-06-18 15:21:26 +03:00
Dirk-Jan C. Binnema
1f9172a008
message: remove x-ms-has-attach check
...
Apparently, it's not very useful (marks sigs as attachments).
2022-06-16 22:50:36 +03:00
Dirk-Jan C. Binnema
f69ad37e7a
utils: add regex-split
2022-06-16 22:49:46 +03:00
Dirk-Jan C. Binnema
040d74a326
lib/test-mu-store-query: add aujourd'hui tests
...
We match aujourd'hui now; add a test.
Fixes #1150 .
2022-06-14 23:48:59 +03:00
Dirk-Jan C. Binnema
48695a1981
query-parser: tidy up
...
Remove "Data", and use Field directly.
2022-06-14 23:15:27 +03:00
Dirk-Jan C. Binnema
412adf3400
query-match-deciders: cosmetics
2022-06-10 23:28:43 +03:00
Dirk-Jan C. Binnema
40669aae49
message/mime-object: add MimeObject::headers
...
To get a list of all header values.
2022-06-10 23:28:43 +03:00
Dirk-Jan C. Binnema
1ec03ce07c
message-file: filter out non-file flags
...
Only take flags from file names that are actually file-flags, not random other
things
2022-06-10 23:28:43 +03:00
Dirk-Jan C. Binnema
9bf580de3d
message: refactor/improve attachment heuristic a bit
...
Also check for X-MS-Has-Attach
2022-06-10 23:28:43 +03:00
Dirk-Jan C. Binnema
39dcd08fbe
message: add calendar flag
...
For message that contain calendar invitations
2022-06-10 00:47:31 +03:00
Dirk-Jan C. Binnema
646a672ae0
test-utils: add error test
2022-06-09 00:39:34 +03:00
Dirk-Jan C. Binnema
2f3d1bb522
lib: add tokenizer test tool
2022-06-09 00:39:34 +03:00
Dirk-Jan C. Binnema
c1f66059a8
store: fix typo
2022-06-09 00:39:34 +03:00
Dirk-Jan C. Binnema
ce28c86803
tests: add store/query test
...
Add some tests for storing/indexing message and then run queries on them.
2022-06-09 00:39:34 +03:00
Dirk-Jan C. Binnema
d38d32c404
query-threads/results: cosmetics
2022-06-09 00:39:34 +03:00
Dirk-Jan C. Binnema
49b97e1b6b
message/fields: explicit mark contact fields as IndexableTerm
...
They were so *implicitly*, but the query parser needs the info so contact fields
can use phrase-searces, too.
2022-06-09 00:04:35 +03:00
Dirk-Jan C. Binnema
4379e66b9f
bench-store-index: make a bit more realistic
...
```
.',;::::;,'. djcb@evergrey
.';:cccccccccccc:;,. -------------
.;cccccccccccccccccccccc;. OS: Fedora release 36 (Thirty Six) x86_64
.:cccccccccccccccccccccccccc:. Host: MS-7B09 2.0
.;ccccccccccccc;.:dddl:.;ccccccc;. Kernel: 5.17.11-300.fc36.x86_64
.:ccccccccccccc;OWMKOOXMWd;ccccccc:. Uptime: 6 hours, 16 mins
.:ccccccccccccc;KMMc;cc;xMMc:ccccccc:. Packages: 4340 (rpm), 70 (flatpak)
,cccccccccccccc;MMM.;cc;;WW::cccccccc, Shell: zsh 5.8.1
:cccccccccccccc;MMM.;cccccccccccccccc: Resolution: 3840x2160
:ccccccc;oxOOOo;MMM0OOk.;cccccccccccc: WM: sway
cccccc:0MMKxdd:;MMMkddc.;cccccccccccc; Theme: Adwaita [GTK2]
ccccc:XM0';cccc;MMM.;cccccccccccccccc' Icons: Adwaita [GTK2]
ccccc;MMo;ccccc;MMW.;ccccccccccccccc; Terminal: tilix
ccccc;0MNc.ccc.xMMd:ccccccccccccccc; CPU: AMD Ryzen Threadripper 1950X (32) @ 3.399GHz
cccccc;dNMWXXXWM0::cccccccccccccc:, GPU: AMD ATI Radeon RX 470/480/570/570X/580/580X/590
cccccccc;.:odl:.;cccccccccccccc:,. Memory: 7101MiB / 15881MiB
:cccccccccccccccccccccccccccc:'.
.:cccccccccccccccccccccc:;,..
'::cccccccccccccc::;,.
```
% make benchmark
ninja -C /home/djcb/Sources/mu/build benchmark
ninja: Entering directory `/home/djcb/Sources/mu/build'
[0/1] Running benchmark suite.
1/1 bench-store-index OK 17.40s
2022-06-07 23:06:25 +03:00
Dirk-Jan C. Binnema
65e60a6ed5
indexer: make faster
...
Remove an (apparently) unneeded lock which help back much of the multi-core
handing.
2022-06-07 23:06:25 +03:00
Dirk-Jan C. Binnema
30c46fba61
message: fix 'changed' test
2022-06-05 15:22:35 +03:00
Dirk-Jan C. Binnema
3d3fd1aa7a
server: add some more logging for read-marking
...
See what happens with multiple messages.
2022-06-04 00:41:28 +03:00
Dirk-Jan C. Binnema
d89820b26b
lib/tests: move tests to parent
...
Otherwise, the coverage checker won't notice them!
2022-06-04 00:41:28 +03:00
Dirk-Jan C. Binnema
015a7ee0cb
utils: improve locale_workaround
...
Fixes : #2270 .
2022-06-04 00:41:28 +03:00
Dirk-Jan C. Binnema
0fe8f9a613
mu-util-play: simplify
...
Remove some unused options
2022-06-04 00:41:28 +03:00
Dirk-Jan C. Binnema
172ff25bb6
mu-maildir: refactor some duplicate code
...
mu-flags & mu-maildir were having some duplicate code; refactor it into mu-message-file.{cc,hh}
2022-06-04 00:41:28 +03:00
Dirk-Jan C. Binnema
13f0e24241
lib: improve test coverage
...
Add a bunch of tests
2022-06-02 21:07:41 +03:00
Dirk-Jan C. Binnema
a66360eda5
maildir: revamp unit tests
...
Re-enable many of the tests that were turned off, and update them for the new impl.
2022-05-31 23:43:13 +03:00
Dirk-Jan C. Binnema
26d64ec78f
mu-maildir: fix message_file_parts / empty flags
...
Remove the suffix part even with no flags.
Fixes: issue #2268
2022-05-31 23:41:50 +03:00
Dirk-Jan C. Binnema
022ae9c2e3
result: make assert_valid_result a bit more informative
...
For unit tests.
2022-05-31 23:39:50 +03:00
Dirk-Jan C. Binnema
ce1fea6302
store: log whether a message is 'personal'
2022-05-30 20:31:23 +03:00
Dirk-Jan C. Binnema
734445f78d
mu-server: add a bit more debugging info
2022-05-30 20:30:33 +03:00
Dirk-Jan C. Binnema
5df56896fb
lib/meson.build: explicitly add thread_dep
...
For many setups (local, CI), things work fine without this, but apparently not
for all users. So, add thread_dep explicitly.
Fixes : #2266 .
2022-05-29 11:10:58 +03:00
Dirk-Jan C. Binnema
d5632b9ac9
script: avoid compiler warning
2022-05-29 00:17:41 +03:00
Dirk-Jan C. Binnema
ffcb59bfd3
utils: add fallback for time_to_string
...
Still don't understand issue #2230
2022-05-28 00:51:08 +03:00
Dirk-Jan C. Binnema
ad6f8f1190
thirdparty: include in EXTRA_DIST
...
For autotools.
2022-05-28 00:51:08 +03:00
Dirk-Jan C. Binnema
5c161cfdbb
lib/tests: add indexing benchmark
2022-05-28 00:51:08 +03:00
Dirk-Jan C. Binnema
0adf91f821
fields: include references in sexp
...
We need them for setting up replies. This requires a db update.
2022-05-28 00:51:08 +03:00
Dirk-Jan C. Binnema
91dcd19dad
tests: improve coverage a bit
2022-05-24 19:36:39 +03:00
Dirk-Jan C. Binnema
046398b1ae
utils: avoid compiler warning
2022-05-24 19:36:21 +03:00
Dirk-Jan C. Binnema
277a7e0e10
guile: don't extern-c'ify libguile
...
Already has it... seems to break compilation on some machines?
2022-05-24 19:35:29 +03:00
Dirk-Jan C. Binnema
9c9f9ecae3
lib: improve coverage a bit
2022-05-23 23:55:11 +03:00
Dirk-Jan C. Binnema
8eac392221
guile: re-enable the guile support
...
Update for the internal (Mu::Message) APIs.
Update build.
2022-05-21 17:44:09 +03:00
Dirk-Jan C. Binnema
ce46c44ea9
query-results: ease getting Xapian::Document for iter
...
This makes it easier to construct guile-usable Messages.
2022-05-21 17:42:25 +03:00
Dirk-Jan C. Binnema
a3ad04f12f
message: make it easier to create heap-allocated messages
...
We need this for guile to coöperate with its garbage collector.
2022-05-21 17:41:21 +03:00
Dirk-Jan C. Binnema
cc63eca8ad
autotools: improve build
...
*almost* works (except for guile/, which does work yet anyway).
2022-05-19 23:38:49 +03:00
Dirk-Jan C. Binnema
cea3167f3e
lib: remove some dead code (mu-str/utils)
...
Remove unused library code; recycle some electrons.
2022-05-19 23:38:49 +03:00
Dirk-Jan C. Binnema
9af9d0fa94
indexer/store: avoid completed callback
...
This cause havoc / race conditions.
2022-05-18 20:16:48 +03:00
Dirk-Jan C. Binnema
c3778cd467
store: reset indexer in dtor
...
Clear it up as soon as possible.
2022-05-18 18:24:30 +03:00
Dirk-Jan C. Binnema
0be54119d8
store: stop indexer in dtor
2022-05-18 18:07:19 +03:00
Dirk-Jan C. Binnema
2fd133761f
utils: fix unsetting timezone
2022-05-18 01:12:20 +03:00
Dirk-Jan C. Binnema
b03590cca8
tests: skip missing timezones in queries, too
2022-05-18 01:08:40 +03:00
Dirk-Jan C. Binnema
33d30775ee
test-utils: Skip test if timezone is not available
2022-05-18 00:52:28 +03:00
Dirk-Jan C. Binnema
dbd15cf704
mu-maildir: don't allow empty path for new maildir
...
be a bit stricter.
2022-05-18 00:35:02 +03:00
Dirk-Jan C. Binnema
493549a896
mime-object: fix some pedantic compiler warnings
2022-05-18 00:14:01 +03:00
Dirk-Jan C. Binnema
c4cc9795dc
utils: add locale_workaround
...
Attempt to work around some locale handling throwing in some systems.
"locale::facet::_S_create_c_locale name not valid"
Ugly, but maybe it helps.
2022-05-17 22:31:03 +03:00
Dirk-Jan C. Binnema
6e37790012
mu: improve error reporting
2022-05-15 13:40:44 +03:00
Dirk-Jan C. Binnema
e13dd0da98
server: Implement forwarding attachments
...
Using the new infra in Message.
2022-05-15 11:33:14 +03:00
Dirk-Jan C. Binnema
5d9bb72c0b
message: augment cache-path() so it supports subparts
...
Take an optional index parameter for a *subpart*.
This is for the case where we save attachments from a message (in particular,
when forwarding). We can't save them in the same directory for the (rare) case
when there are multiple attachments with the same name. And we don't want to
uniquify the name, since that shows up in e.g. the forwarded file name.
This can be solved by saving each in their own indexed subdir.
2022-05-15 11:28:48 +03:00
Dirk-Jan C. Binnema
9e78d3d13f
utils: insist on semicolon after MU_ENABLE_BITOPS
2022-05-14 12:47:26 +03:00
Dirk-Jan C. Binnema
bf9e083ed4
message: avoid shadowing variable
2022-05-14 12:47:01 +03:00
Dirk-Jan C. Binnema
907751bc7b
test: enable some more
2022-05-13 23:01:33 +03:00
Dirk-Jan C. Binnema
4edbe01aa0
indexer: add extra fsm state "finishing" to fix some races
...
As reported by helgrind
2022-05-13 23:00:20 +03:00
Dirk-Jan C. Binnema
201acfbbd3
store: add lock to index_complete
...
It must be protected.
2022-05-12 23:23:47 +03:00
Dirk-Jan C. Binnema
eb22ec450c
message: Don't assume there's a sub-message
...
Also add unit-test.
Fixes: issue #2256 .
2022-05-12 19:59:10 +03:00
Dirk-Jan C. Binnema
5b5dbf3aae
fields: some small tweaks
2022-05-12 08:56:13 +03:00
Dirk-Jan C. Binnema
d79d770958
store: improve error handling
...
Detect store-lock
2022-05-12 08:56:13 +03:00
Dirk-Jan C. Binnema
34c5ca1627
mu-error: encode retval/flags in enum
2022-05-12 08:56:13 +03:00
Dirk-Jan C. Binnema
2e9666af0b
store/info: Gather some usage statistics
...
Keep track of the latest-change/latest-index.
2022-05-10 08:16:47 +03:00
Dirk-Jan C. Binnema
81689f0af3
contacts-cache: return most relevant contacts
...
Return in the contacts in *reverse* rank order, i.e. the most relevant come first.
This is useful since we only want the first maxnum contacts, and those should of
course be the most relevant.
Update mu cfind/server as well.
cfind
2022-05-09 22:25:28 +03:00
Dirk-Jan C. Binnema
80d84bf635
store: use Result<Store> builder, add auto upgrade
...
Make it a Result type, and add auto-upgrade (not enabled yet)
Update dependents.
2022-05-09 22:25:28 +03:00
Dirk-Jan C. Binnema
7470a5f8ea
store/fields: Use one MaxTermLength everywhere
...
One should be enough!
2022-05-09 22:25:28 +03:00
Dirk-Jan C. Binnema
dc69505580
mu-maildir: No need for namespaced function names
...
Mu::mu_maildir_... -> Mu::maildir_...
2022-05-09 22:25:28 +03:00
Dirk-Jan C. Binnema
48311ea18d
mu/mu4e: tweak :list vs :mailing list
2022-05-07 20:48:21 +03:00
Dirk-Jan C. Binnema
80c9ffae1e
mu/mu4e: use :mailing-list as the mailing-list property
...
In queries you can use list: as before
This helps for issue #2246 .
2022-05-07 16:10:52 +03:00
Dirk-Jan C. Binnema
d79488efdc
avoid warnings, update tests
2022-05-06 22:54:41 +03:00
Dirk-Jan C. Binnema
f83d1b3ed0
update tests: avoid helgrind warning
...
Log to the black_hole or helgrind gets unhappy
2022-05-06 22:17:53 +03:00
Dirk-Jan C. Binnema
8c3d1ae90a
message: cosmetics
2022-05-06 22:17:53 +03:00
Dirk-Jan C. Binnema
4fc05261ce
message: implement rfc2047-encoding addresses
...
For address names with commas, quotes etc.
2022-05-06 22:17:53 +03:00
Dirk-Jan C. Binnema
da8489d0f6
sexp: allow for some prettified string output
...
Allow for adding newlines between list items
2022-05-06 22:17:53 +03:00
Dirk-Jan C. Binnema
2a5c1e239c
message: support embed:text in attached mail
...
As before; scan attached messages as well.
2022-05-06 22:17:53 +03:00
Dirk-Jan C. Binnema
f9550f3cb6
mu: merge flags into fields command
...
One is enough
2022-05-06 22:17:53 +03:00
Dirk-Jan C. Binnema
836bfc9062
mu/mu4e: implement mu4e-compose-complete-max
...
Allow limiting number of contacts for auto-completion to a specific number;
defaulting to 2000.
2022-05-06 21:58:51 +03:00
Dirk-Jan C. Binnema
ffce3dda21
contacts: support encoding names with '"', ',' etc.
2022-05-06 09:03:11 +03:00
Dirk-Jan C. Binnema
e0d047105b
server/message-part: restore forwarding attachments
2022-05-05 23:45:11 +03:00
Dirk-Jan C. Binnema
62e546a4e2
autotools: fix build
2022-05-05 23:40:56 +03:00
Dirk-Jan C. Binnema
8d80bedf38
maildir: add some useful defaults for mu_maildir_mkdir
2022-05-05 01:41:32 +03:00
Dirk-Jan C. Binnema
2ccf703769
server: update for dealing with message/sexps
2022-05-05 01:40:17 +03:00
Dirk-Jan C. Binnema
4b56b8779d
mime-object: ensure init_gmime is called
...
Was missing in some paths
2022-05-05 01:40:17 +03:00
Dirk-Jan C. Binnema
6126d7ee62
store: ensure updates update message sexp too
...
And turn all "add" into "replace" so old messages get removed.
Update tests too.
2022-05-05 01:40:17 +03:00
Dirk-Jan C. Binnema
c0ae7e6860
message: add cache_path per message
...
Generate a message-specific cache path when needed.
Update tests, too.
2022-05-05 01:40:17 +03:00
Dirk-Jan C. Binnema
85fed37870
message/document: update sexp on the fly
...
Keep the sexp for the document up to date during scan / change, instead of
having a separate step.
2022-05-05 01:40:17 +03:00
Dirk-Jan C. Binnema
5da066a59e
indexer: use ctime, not mtime
...
So we update if _anything_ changes with the file, not just the contents.
2022-05-05 01:38:25 +03:00
Dirk-Jan C. Binnema
e067bca090
message-sexp: Add :modified and :reply-to
2022-05-05 01:38:25 +03:00
Dirk-Jan C. Binnema
ee4b3bda2d
message: support 'personal' flag for messages
...
Add a new flag 'personal' for a message, which means that at least one of the
contact fields is personal.
2022-05-05 01:38:25 +03:00
Dirk-Jan C. Binnema
a4f39819ee
message/document: allow updating flags
...
Some flags (such as 'personal') can only be set just before storing; so allow
for update the flags.
2022-05-05 01:38:25 +03:00
Dirk-Jan C. Binnema
fea596ae3b
message/field: cache the message's sexp
...
Keep it in the store; much faster than generating on the fly.
2022-05-05 01:38:25 +03:00
Dirk-Jan C. Binnema
263e122a13
contacts: expose contact type
...
Instead of the Field::Id, keep a specific Contact::Type so we can distinguish
Sender, ReplyTo as well.
Update dependents.
Some cleanup.
2022-05-05 01:38:25 +03:00
Dirk-Jan C. Binnema
91d2a37379
query-results: Use mu-document as backend
...
So the mu-specific serialization/deserialization gets handled correctly
2022-05-05 01:38:25 +03:00
Dirk-Jan C. Binnema
a864616110
mu: add "modified" fields
...
Add a new "modified" field for checking the last modification time of the
message.
2022-05-05 01:38:25 +03:00
Dirk-Jan C. Binnema
9e0173f387
store: set XAPIAN_FLUSH_THRESHOLD above internal commit
...
Don't auto-flush more often than the internal handling.
2022-05-05 01:38:25 +03:00
Dirk-Jan C. Binnema
8f9d1e5e60
mu: add fields/flags commands
...
Useful information for devising queries.
Directly generated from the source. Add manpages, too.
2022-05-05 01:38:25 +03:00
Dirk-Jan C. Binnema
30e7b5d9ec
lib: move 3rd party code to thirdparty; add tabulate.hpp
...
Move 3rd-party code to their own dir, and add the nice tabulate.hpp
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
a4317d3264
mu-query-matches: remove dead code
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
967e855f6b
message: add docid param to sexp
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
fccd961712
server: update mu4e server for new Message
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
629006681a
message: update unit tests
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
525fef479a
store: update to use Message; big cleanup
...
Remove much of the message processing from the store
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
459f6db476
query: update query subsys to use Message
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
95710edff4
parser: use the new number (de)serialization
...
Use the new lexnums, and the update parsing
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
55113c6d5c
message: improve API; improve extract_tags
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
9a8741f0dd
message:document/fields: update and tie down
...
Update many of the field flags; remove obsolete ones.
Ensure they are handled correctly in mu-document
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
b7a30c0a36
utils: update date/size parsing, factor out format
...
And update tests
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
4b9c663ded
mu-maildir: rework mu_maildir_from_path
...
Take a 'root' parameter
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
3ac3ce7828
error: Add some more error codes
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
a8a3a0c3bf
message: implement update-after-move
...
Allow for in-place updating of a moved document; i.e., without re-parsing
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
a548cac2d0
message: refactor file handling, add ::mtime()
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
f0bfb38ff2
message: add move constructor
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
4a135e70fb
server: update (mu4e) server to use Mu::Message
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
9e9e16a7ec
lib/tests: rework in terms of Mu::Message
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
9b8353fc37
lib: update Store & QueryResults in terms of Mu::Message
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
4b2812d25f
maildir: improve naming in mu_maildir_move_message
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
de07df77d3
lib: remove the old mu-msg* code
...
Replaced by Mu::Message & friends
2022-04-30 10:40:45 +03:00
Dirk-Jan C. Binnema
bb6d271a23
contacts-cache: handle 'personal' mail for groups
...
When passing a vec of _all_ contacts for some message, mark _all_ of them as
personal if at least _one_ is a personal address.
2022-04-30 09:02:13 +03:00
Dirk-Jan C. Binnema
d0619b1db2
server: workaround for broken message-id
...
We cannot really _search_ for the broken message-id, but we can still view it.
Should help for issue #2232 .
2022-04-19 00:04:01 +03:00
Dirk-Jan C. Binnema
1ff161d91b
utils: add mu-option.cc
...
Was missing.
2022-04-18 22:54:33 +03:00
Dirk-Jan C. Binnema
9c853acfa3
build: bump version 1.7.13
...
And some small tweaks, cleanups
2022-04-18 22:40:46 +03:00
Dirk-Jan C. Binnema
15decf6327
mu-utils: avoid compiler warning
2022-04-18 22:26:13 +03:00
Dirk-Jan C. Binnema
4ac66baccc
mu-result: add assert_valid_result
...
Useful for unit tests
2022-04-18 22:26:04 +03:00
Dirk-Jan C. Binnema
17d2926cd0
message: improve support for decryption
...
Found a small leak:
https://github.com/jstedfast/gmime/pull/124/commits
2022-04-18 22:26:04 +03:00
Dirk-Jan C. Binnema
7c51bc68d4
option: rename to to_string_opt and to_string_view_opt
...
to_option_string -> to_string_opt
to_string_view -> to_string_view_opt
2022-04-18 22:04:33 +03:00
Dirk-Jan C. Binnema
4f9c154d1a
utils: add deletable_unique_ptr
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
de8dd048e8
message: add basic support for encrypted parts
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
72c0f82b41
message: improve attachment,encrypted part detection
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
478ef67fc6
flags: rename flags_to_string -> to_string
...
For consistency.
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
ad0e9b7514
test-mu-message: improve signature check test
...
Still not very good though...
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
43c71c7698
error: Add crypto error code
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
09e175e9b5
message: part: better handle internal mime-object
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
8ede2a8354
message: better deal with test messages
...
Allow for specifying path / maildir for tests messages
Improve fake_msg_id
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
00c7fc897d
message: move tests to test-mu-message.cc
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
4e65cac631
message: mime-object: extend support for crypto
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
187c3da408
contact: implement to_string
...
Make it easy to get a string for a sequence of contacts.
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
97c1725461
message: implement conversion to sexp
...
Like mu-msg-sexp, but for Mu::Message
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
e9fdf7f01d
utils: add extra check for #2230
2022-04-16 16:20:38 +03:00
Dirk-Jan C. Binnema
acbcbc0b43
utils: include unistd.h
2022-04-14 23:04:42 +03:00
Dirk-Jan C. Binnema
a7e6d57286
utils: add TempDir RAII class
...
For tests
2022-04-14 17:06:33 +03:00
Dirk-Jan C. Binnema
92a8122b93
message: Add Makefile.am
...
For the autotools build.
2022-04-06 20:21:02 +03:00
Dirk-Jan C. Binnema
99b06a97de
message: extend unit test
2022-03-28 23:26:23 +03:00
Dirk-Jan C. Binnema
297930261a
msg-sexp: fix adding contacts
...
std::array doesn't check its size...
2022-03-28 23:04:12 +03:00
Dirk-Jan C. Binnema
ab3dd3de58
mime-object: add support for MimeMessagePart
2022-03-28 22:53:05 +03:00
Dirk-Jan C. Binnema
55489cc0d1
mu-error: make fill_g_error const
...
And add some more error codes.
2022-03-28 22:53:05 +03:00
Dirk-Jan C. Binnema
dc2be0b442
utils: add seq_some
2022-03-28 22:53:05 +03:00
Dirk-Jan C. Binnema
a93685b09b
server: fix typo
2022-03-28 22:53:05 +03:00
Dirk-Jan C. Binnema
3810964a38
message: make maildir optional
2022-03-28 22:38:37 +03:00
Dirk-Jan C. Binnema
da8eee0e69
message: support cooked/raw filenames
...
Supported a "cooked" mode for attachment filenames, which gets rid of any
unacceptable characters. Add "raw_filename" to get the filename as specified in
the part.
Update tests.
2022-03-28 22:35:45 +03:00
Dirk-Jan C. Binnema
9f062ae482
message/flags: add flags_from_path
...
Borrow from mu-maildir, to which we cannot link.
2022-03-28 22:35:45 +03:00
Dirk-Jan C. Binnema
27ebfb3b3c
lib+guile: use Mu::Option, not std::optional
...
We need the extensions, and/or let's use _one_ optional implementation everywhere.
2022-03-28 08:58:04 +03:00
Dirk-Jan C. Binnema
5a28cdfba4
message: some fixes for github ci build
2022-03-26 20:30:42 +02:00
Dirk-Jan C. Binnema
de80b557e8
meson: build updates
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
03993b93b2
autotools: build updates
...
Ensure things build with autotools, too.
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
37988b5a26
message: update implementation
...
Add more of the Message class (and various helpers), which are to replace all
the `mu-msg-*` code.
Add more tests.
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
55402622b9
result: add Err which takes a GError
...
Convenience
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
8ed09a9a82
store: cosmetics
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
f7c84006d7
many: update for lib/message updates
...
Adapt to the new names / directory. Big commit, but mostly just very boring renaming.
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
4c4fb1759f
message: move to lib/message, update naming
...
Basically, move/rename lib/mu-message* to lib/mu-*.
Add the beginnings of a Message class.
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
7774261526
test-query: improve logging
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
33dbcbb25f
mu-error: fix typo
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
ede99aff83
message: add document, xapian wrapper
...
Add Message::Document, which does the translation from/to message & xapian document.
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
3646345442
contacts-cache: add helper for adding multiple contacts
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
f0475f5e87
message: flags: fix typo
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
7f15767faf
message: fields: rationalize flags
...
Improve naming.
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
d4285975b3
message: contact: remove ::Type, use Field
...
Don't need a special Type {} in Contact, when we have more-or-less the same info
in Field.
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
a23c99ff7e
utils: add some handy STL conveniences
2022-03-26 17:19:10 +02:00
Dirk-Jan C. Binnema
e0096c3dee
utils: improve split / join
2022-03-19 10:58:13 +02:00
Dirk-Jan C. Binnema
056fecd6aa
store::for_each_term: use field-id
...
We were trying to convert a field (string) to a xapian prefix back to a
field (enum). That's unnecessarily complicated and worse, step 2 won't work.
2022-03-14 09:38:59 +02:00
Dirk-Jan C. Binnema
2fb6356ab6
xapian-utils: xapian_try: also catch std::exception
2022-03-13 07:49:31 +02:00
Dirk-Jan C. Binnema
673929f169
logger: with MU_LOG_STDOUTERR, write logs to console
...
For debugging
2022-03-13 07:49:31 +02:00
Dirk-Jan C. Binnema
5b121352c2
utils: Handle failing g_date_time_new_...
...
Possibly, this caused a crashed under some scenarios (though couldn't reproduce).
2022-03-07 22:28:40 +02:00
Dirk-Jan C. Binnema
52c31afef1
contacts-cache: refactor personal check
2022-03-07 06:50:18 +02:00
Dirk-Jan C. Binnema
00d9fb121f
utils: add rename has_flag into one_if in BITOPS
2022-03-07 06:50:18 +02:00
Dirk-Jan C. Binnema
04913d8ea9
tests: update for mu-message-fields
2022-03-07 06:50:18 +02:00
Dirk-Jan C. Binnema
f576fc59b9
server: use mu-message-fields
2022-03-07 06:50:18 +02:00
Dirk-Jan C. Binnema
a8654a616a
lib/store: use mu-message-fields
2022-03-07 06:50:18 +02:00
Dirk-Jan C. Binnema
0df7a6959a
lib/query,parser: update to use mu-message-fields
2022-03-04 00:06:31 +02:00
Dirk-Jan C. Binnema
7c185590e4
lib/mu-msg: update to use mu-message-fields
...
Remove mu-msg-fields.[ch] and update sources to use mu-message-fields.
2022-03-04 00:04:30 +02:00
Dirk-Jan C. Binnema
c3ae3da0de
lib: update mu-contact-{fields,contact,flags,priority}
...
Improve cohesion and tests.
2022-03-04 00:02:52 +02:00
Dirk-Jan C. Binnema
58af12add6
mu-message-field: Implement
...
Implement Mu::MessageField, which replace MuMsgField with something a bit more
modern.
2022-02-26 11:11:04 +02:00
Dirk-Jan C. Binnema
5417928c1e
utils: add has_flag to MU_ENABLE_BITOPS
2022-02-26 10:09:31 +02:00
Dirk-Jan C. Binnema
38d08bad85
utils: add STR_V macro for printing string_view
2022-02-26 10:09:31 +02:00
Dirk-Jan C. Binnema
08534b31e6
mu-message-contacts: fix naming in tests
2022-02-26 09:38:17 +02:00
Dirk-Jan C. Binnema
1966dcb795
mu-server: turn off renaming for 'view' now
...
It seems to confuse mbsync, see issue #2214 .
2022-02-25 23:05:36 +02:00
Dirk-Jan C. Binnema
cfc68732e7
message-contact: remove control characters from names
...
I.e., issue #2216 .
2022-02-25 23:05:36 +02:00
Dirk-Jan C. Binnema
285185aac7
lib: add unit tests for message priority / flags
...
We already had _compile-time_ tests; but for coverage it's useful to make those
available as runtime-tests, too.
2022-02-22 23:29:55 +02:00
Dirk-Jan C. Binnema
273f84483a
utils: some more convenience for error/result
2022-02-22 23:07:30 +02:00