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
Dirk-Jan C. Binnema
4990792f02
utils: rework Mu::split
...
And add some tests, cleanups.
2022-02-22 23:07:30 +02:00
Dirk-Jan C. Binnema
af87cde217
utils/mu-date: remove
...
Remove mu-date.[ch] and convert its last users to use time_to_string instead.
2022-02-22 23:07:29 +02:00
Dirk-Jan C. Binnema
0e117fd6ab
utils: improve assert_equal macro
...
make it a macro so we get line numbers etc
2022-02-21 23:51:46 +02:00
Dirk-Jan C. Binnema
ec826cd838
tests: update naming
2022-02-21 23:51:46 +02:00
Dirk-Jan C. Binnema
4eddf4e6ba
update unit tests
2022-02-21 23:51:46 +02:00
Dirk-Jan C. Binnema
7822d2633e
update contacts-cache users for MessageContact
...
Since contacts-cache now uses MessageContact, update its users
2022-02-21 23:51:46 +02:00
Dirk-Jan C. Binnema
4b9814be25
contacts-cache: Rework to use MessageContact
...
Replace the internal ContactInfo with MessageContact, so we can use the same
type throughout.
2022-02-21 23:51:46 +02:00
Dirk-Jan C. Binnema
a82bd77d09
lib: rename contacts into contacts-cache
...
Plus dependents.
2022-02-21 23:22:42 +02:00
Dirk-Jan C. Binnema
39c45abc38
mu-store: use Mu::MessageContact
...
Use the new contact class. And a lot of whitespace cleanups.
2022-02-21 23:22:42 +02:00
Dirk-Jan C. Binnema
3aa053e158
mu-msg: use Mu::MessageContact
...
Use the new contact class
2022-02-21 23:22:42 +02:00
Dirk-Jan C. Binnema
d436a47c1f
lib: Implement Mu::MessageContact
...
Implement a new struct Mu::MessageContact to usurps some of the different types
for contact information.
Sprinkle some "modern C++" on it for convenience.
2022-02-21 23:22:42 +02:00
Dirk-Jan C. Binnema
69a465d849
mu-sexp: add some small conveniences
2022-02-20 14:08:53 +02:00
Dirk-Jan C. Binnema
be2f91c0ad
build: update autotools build
2022-02-19 19:32:02 +02:00
Dirk-Jan C. Binnema
1a13e4f0fd
mu-message-priority: set namespace correctly
2022-02-19 19:16:49 +02:00
Dirk-Jan C. Binnema
8cea933a51
mu-store: take mu_util_get_hash
...
mu-store is the only user left, move the implementation there.
2022-02-19 19:09:25 +02:00
Dirk-Jan C. Binnema
c0da564bba
lib: fix clang compatibility / warnings
2022-02-18 10:49:56 +02:00
Dirk-Jan C. Binnema
fe2b1693c1
lib/message-flags: update whitespace & clang++ appeasement
2022-02-18 07:12:56 +02:00
Dirk-Jan C. Binnema
80f947024a
server: lock run_query
...
So the query-results don't outlive the lock.
2022-02-17 23:49:17 +02:00
Dirk-Jan C. Binnema
831d26052a
store: expose the mutex so we can lock query-results
...
The QueryResults must not outlive the lock (when in a MT context), so expose for
clients (mu-server) to handle it.
2022-02-17 23:49:17 +02:00
Dirk-Jan C. Binnema
4eabf1a64a
*: update for for mu-maildir changes
...
Update the dependencies.
2022-02-17 23:48:59 +02:00
Dirk-Jan C. Binnema
abd2a4a8f1
lib: Update mu-maildir for modern times
...
Update the good-old mu-maildir to be a bit more... modern.
2022-02-17 23:48:59 +02:00
Dirk-Jan C. Binnema
1db70c05e6
utils/async-queue: appease helgrind
...
We used notify_one _outside_ the lock; that should be just fine... but helgrind
doesn't like it, so let's appease it.
2022-02-17 23:48:59 +02:00
Dirk-Jan C. Binnema
f6f17d5d6b
*: update code for Mu::MessageFlags
...
Migrate the code to use the new niceness
2022-02-17 23:48:59 +02:00
Dirk-Jan C. Binnema
473134a7b1
lib: replace MuFlags with Mu::MessageFlags
...
Modernize the ancient MuFlags code to C++17
2022-02-16 23:18:16 +02:00
Dirk-Jan C. Binnema
c5538d5b14
utils: update optional & expected
...
Use the latest upstream versions.
2022-02-16 23:18:16 +02:00
Dirk-Jan C. Binnema
bc44666d88
mu-str: Remove some dead code
2022-02-16 21:55:02 +02:00
Dirk-Jan C. Binnema
dce924da9c
mu-error: Better support for GError
...
Allow filling a GError from a Mu::Error
2022-02-16 21:55:02 +02:00
Dirk-Jan C. Binnema
80cbf7c75b
utils: Improve Mu::Result
...
Ensure the Ok() and Err() actually work, and add support for Result<void>
2022-02-16 21:55:02 +02:00
Dirk-Jan C. Binnema
6ff1831200
utils: make MU_ENABLE_BITOPS more constexpr
2022-02-14 11:12:38 +02:00
Dirk-Jan C. Binnema
3086238b33
store: expose metadata()/set_metadata()
...
Allow for storing metadata in the database, and consider the cache.
2022-02-14 11:12:26 +02:00
Dirk-Jan C. Binnema
3820118246
store: rename "metadata" into "properties"
...
properties are the constant (for the duration) values for a store; metadata may
change, so reserve that name for that.
2022-02-14 11:12:26 +02:00
Dirk-Jan C. Binnema
23fc8bdba8
update code for Mu::MessagePriority
...
Update dependent code
2022-02-14 11:12:26 +02:00
Dirk-Jan C. Binnema
13bcc6eb5d
lib: replace MuMsgPrio with Mu::MessagePriority
...
Rework good-old MuMsgPrio into Mu::MessagePriority, which looks a bit more like
modern C++.
2022-02-14 11:12:16 +02:00
Dirk-Jan C. Binnema
a0ec982789
mu4e/server: honor rename-move for view-message, too
...
It's technically a 'move', so apply user preference.
2022-02-13 14:33:12 +02:00
Dirk-Jan C. Binnema
43c44cf6cd
store: catch dtor exception
2022-02-07 22:34:49 +02:00
Dirk-Jan C. Binnema
18ddbe06e6
indexer: fix some threading issues with Progress
...
Make it a const object with atomic members.
2022-02-07 20:49:43 +02:00
Dirk-Jan C. Binnema
a628f214a1
index: fix thread-sanitizer issue
...
Need a lock to access workers_;
2022-02-07 18:03:53 +02:00
Dirk-Jan C. Binnema
e818e94d0e
build: fix some scan-build warnings
2022-02-07 17:36:34 +02:00
Dirk-Jan C. Binnema
8493e8649d
mu-utils: try g_autoptr/g_autofree
...
It's useful, but let's if it works for all targets.
2022-02-06 14:18:23 +02:00
Zero King
d0a3ca3453
utils: validate string before g_utf8_next_char()
2022-02-06 14:18:23 +02:00
Dirk-Jan C. Binnema
c3503ba663
server: flush the "indexing complete" message
2022-02-06 14:18:23 +02:00
Dirk-Jan C. Binnema
77bca5463f
store: don't lock for_each_term
...
It's only called from the parser with a store, and when we _already_
hold the lock.
2022-02-05 08:44:43 +02:00
Dirk-Jan C. Binnema
4d0ecf7f85
server: make indexing asynchronous
...
Perform indexing in a background thread.
2022-02-03 23:04:18 +02:00
Dirk-Jan C. Binnema
b6d7d142f6
server: support flushing the output
...
So we can get some progress output
2022-02-03 23:04:18 +02:00
Dirk-Jan C. Binnema
05393ba797
index: save/commit metadata after messages
...
Ensure the metadata (dirstamps) for messages are only written / committed _after_
the accompanying message have been written / committed.
This avoids missing updates when indexing gets terminated unexpectedly.
2022-02-03 23:04:18 +02:00
Dirk-Jan C. Binnema
ebc9b88f80
store/query: update for new store/query api
...
Update to the new API.
2022-01-30 14:52:41 +02:00
Dirk-Jan C. Binnema
5fc8a8f83e
store/query: access query only through store
...
Make Mu::Query only accessible through store, so we can lock the db for the
duration of a (full, multipass) query.
2022-01-30 14:52:41 +02:00
Dirk-Jan C. Binnema
f035c801bb
store: save contacts more often
...
Use the new Contacts::dirty() so serialize/save the contacts whenever we commit
a transaction.
And some cosmetics.
2022-01-15 15:12:38 +02:00
Dirk-Jan C. Binnema
ca4651a891
mu-contacts: add dirty()
...
Maintain a "dirtiness" number, which increases with changes, and resets after
serialize().
2022-01-15 15:11:26 +02:00
Dirk-Jan C. Binnema
dfe592ac4f
mu-server: check for message readability
...
When querying, avoid showing any messages that do not exists on the file system.
2022-01-15 10:21:32 +02:00
Dirk-Jan C. Binnema
08dc66a525
mu-utils: Fix compiler warning
2022-01-14 17:10:16 +02:00
Dirk-Jan C. Binnema
ec41585dab
mu-msg-file: check for top-level s/mime
...
Update the content flags for top-level S/MIME encrypted & signed.
2022-01-09 11:36:39 +02:00
Dirk-Jan C. Binnema
4f02702510
store: add catch blocks for dirstamp/set_dirstamp
2021-12-18 15:22:52 +02:00
Dirk-Jan C. Binnema
abd0abf5c8
mu-msg-file: don't insist on absolute path
...
Since we make it absolute anyway (g_canonicalize_file); this avoid an annoying
error when using mu view with a relative path.
2021-12-18 15:22:52 +02:00
Dirk-Jan C. Binnema
3001c7832d
tests: add unit test for cjk handling
...
This test exposes some problem finding longer CJK strings; see: issue #1428 .
The test does not _pass_ yet, so skip it for now.
2021-11-22 22:23:18 +02:00
Dirk-Jan C. Binnema
0ade4ecfa7
indexer: fix race condition
...
It was possible for the worker to stop before the work was even started; and
then we might wait forever for the queue to become empty.
2021-11-22 21:52:01 +02:00
Dirk-Jan C. Binnema
f71c05805c
build: Add some Xapian deps
...
Fixes: issue #2178 .
2021-11-12 23:11:45 +02:00
Dirk-Jan C. Binnema
e672f952a8
index: ignore .update when store is empty
...
This somewhat emulates the 1.4 behavior.
2021-11-11 21:58:23 +02:00
Dirk-Jan C. Binnema
503d7224e0
mu: update the index 'processed' -> 'checked'
...
The 'processed' statistic for indexing was more-or-less synonymous for
'updated'; let's change to something more useful, 'checked' which roughly means
the number of messages checked for updates (typically a cheap timestamp check).
2021-11-10 22:32:28 +02:00
Dirk-Jan C. Binnema
c9e958d65c
utils: add Mu::time_to_string
...
Helper function to format strings (a-la strftime).
2021-11-10 22:32:28 +02:00
Dirk-Jan C. Binnema
4c0d8572d8
store/indexer: move transaction handling to store
...
Move the transaction handling code inside Store, simplifying the indexer.
2021-11-09 22:43:11 +02:00
Dirk-Jan C. Binnema
48d3f9cfab
tests: move to subdir, move to meson
...
De-clutter the source directories a bit. Ensure tests build with meson, and
remove from autotools in a few places (no need to do things twice).
2021-11-08 23:58:05 +02:00
Dirk-Jan C. Binnema
6bea54805f
build: fix compiler warning
...
guile: some clang warning
and ensure we get the right Xapian in all places, and fileno is defined.
2021-11-05 09:02:24 +02:00
Dirk-Jan C. Binnema
1c851315ca
build: ensure correct xapian.h is found
2021-11-03 22:13:49 +02:00
Dirk-Jan C. Binnema
8028f88a51
mu: rework xapian dependencies a bit
...
Reduce the places where we need to include Xapian, and add a few places where
the (meson build) didn't explicitly have a Xapian dep where needed.
2021-11-03 12:34:08 +02:00
Dirk-Jan C. Binnema
388f18a278
utils: add from_gchars
...
To copy into a std::string & free.
2021-11-02 22:24:17 +02:00
Dirk-Jan C. Binnema
4e6f2a3c26
mu: remove some unneeded code
...
Dead code, and replace mu_canonicalize_filename with g_canonicalize_filename.
2021-11-02 22:20:58 +02:00
Dirk-Jan C. Binnema
9a2fd441c5
mu-query: honor maxnum in threaded queries
2021-10-23 11:06:45 +03:00
Dirk-Jan C. Binnema
f17995b113
lib/server: send query results in batches
...
Instead of one message (header) at a time, send batches of them; this allows for
much faster handling in mu4e.
2021-10-22 08:33:51 +03:00
Dirk-Jan C. Binnema
e46347aa54
lib/index/scanner: tidy up a bit
...
Use strcmp instead of hand-optimized. Avoid tmp/ directories.
2021-10-22 08:33:51 +03:00
Dirk-Jan C. Binnema
428dddd74e
lib/mu: fix a few leaks
...
Thanks to valgrind
2021-10-20 23:06:28 +03:00
Dirk-Jan C. Binnema
701ca75536
mu4e/server: split message / metadata
...
Split message and metadata, so we can use pristine (possibly pre-cached)
messages. Update dependencies.
2021-10-20 22:41:48 +03:00
Dirk-Jan C. Binnema
89014ecd06
index/store: simplify transaction handling
...
only have transactions for indexing, and make it opportunistic. All other ops do
not use transactions.
2021-10-20 20:14:25 +03:00
Dirk-Jan C. Binnema
3dd721d5a3
clang-format: update c/cc coding style
...
Update all cc code using .clang-format; please do so as well for future PRs
etc.; emacs has a handy 'clang-format' mode to make this automatic.
For comparing old changes with git blame, we can disregard this one using
--ignore-rev
(see https://www.moxio.com/blog/43/ignoring-bulk-change-commits-with-git-blame )
2021-10-20 12:26:16 +03:00
Dirk-Jan C. Binnema
3e4771ad1c
mu-options: avoid clang warning
2021-10-18 22:32:46 +03:00
Dirk-Jan C. Binnema
49637dbc3a
lib: replace CATCH_BLOCK macros with template magic
2021-10-18 21:52:37 +03:00
Dirk-Jan C. Binnema
672d0c7238
store: don't try to commit when there's no transaction
...
Avoids some error warning.
2021-10-16 11:15:19 +03:00
Dirk-Jan C. Binnema
1a449dd885
meson.build: Improve guile detection
2021-10-16 11:15:12 +03:00
Dirk-Jan C. Binnema
9bcebb5cf8
build: avoid some compiler warnings
2021-09-02 23:36:43 +03:00
Dirk-Jan C. Binnema
87ac89b082
index: rely less on dir tstamp when indexing
...
Let's use the _current time_ (time(NULL)) instead of the dir-tstamp for a maildir;
this avoids re-indexing mail where the mails have a newer time, but their
directory hasn't (e.g. 'touch')
Experimental, let see how this works.
2021-09-02 23:16:24 +03:00
Dirk-Jan C. Binnema
e3080e39ab
lib/mu-server: remove unneeded code
...
With the demise of the old mu4e-view, we can get rid of extract / verify.
2021-08-29 21:40:42 +03:00
Dirk-Jan C. Binnema
b465c1f779
index: make lazy check less lazy
...
We got many reports where the 'lazy check' didn't work too well for
people... so make it a bit less lazy, so it'll just work for more
people.
In practice, never skip _directories_ unless they're leaf directories;
this avoids the mtime-does-not-bubble-up problem.
2021-08-12 17:56:00 +03:00
Dirk-Jan C. Binnema
ab51f1553b
thread-subject: make even laxer:
...
compare subject from the *last* plus any spaces.
2021-08-11 22:24:28 +03:00
Dirk-Jan C. Binnema
9a31225ef4
thread-subject: ignore '<prefix>:' when comparing
...
Should catch most cases.
Fixes : #2083 .
2021-08-11 15:16:54 +03:00
Dirk-Jan C. Binnema
b7844358d2
threads: recurse thread-subject check
...
Not only check for duplicate subjects in *siblings*, also recurse into
the children. This remove some clutter from deeply nested threads.
Fixes : #2078 .
2021-08-10 22:10:39 +03:00
Dirk-Jan C. Binnema
16a2cffc11
utils: use _GNU_SOURCE for S_ISLINK on freebsd
...
Unbreak FreeBSD build.
Fixes : #2079 .
2021-08-08 15:15:51 +03:00
Dirk-Jan C. Binnema
e52683f0ed
server: when marking-as-read, include duplicates
...
When marking a message a read, do the same for the duplicates; this
was the old behavior and the intention of the new behavior but didn't
quite work.
Fixes : #2071 .
2021-08-04 23:55:41 +03:00
Dirk-Jan C. Binnema
e26767b842
mu-server: mark _all_ messages with message-id as read
...
Not just the one we're viewing.
2021-08-03 22:17:56 +03:00
Dirk-Jan C. Binnema
78ef8ddcbb
mu-store: fix warning schema mismatch message
...
Fixes : #2069 .
2021-07-31 17:54:33 +03:00
Dirk-Jan C. Binnema
fd9cc6bcc4
mu-store: improve database schema error
...
Tell user they should mu-init
2021-07-31 01:47:21 +03:00
Dirk-Jan C. Binnema
34fae2c072
mu-store: update whitespace
2021-07-31 01:45:22 +03:00
Dirk-Jan C. Binnema
1998505679
index: update removed value in progress report
...
Fixes : #2016
2021-07-29 23:26:40 +03:00
Dirk-Jan C. Binnema
c8a2151cb9
mu: use g_strerror instead of strerror
...
Some #includes were missing for the latter (but only noticeable on some
systems - e.g., build breaks on Cygwin).
So let's replace with something that works equally everywhere.
Fixes : #2060
2021-07-29 00:02:30 +03:00
Dirk-Jan C. Binnema
7fa80f77e9
index: don't assume very fast machine cfg drive
...
The scanner had a timeout for scanning, which doesn't work too well with
machine with rel. fast disks / rel. slow machines. Which I don't happen
to have!
Let's remove the timeout, should help with getting unwanted timeouts
which would cut short the indexing.
2021-07-28 17:04:39 +03:00
Nicolas Avrutin
ee4bf5664a
query: fix include-related.
...
mu-query.cc:
- make_related_enquire: don't include first query in qvec, we already have all
thread IDs we need to query in thread_ds.
- run_related: always sort first query by date, explained by the comment.
- run_related: include qflags (in particular ascending vs descending) in
leader_qflags.
- run_theaded: don't limit results to maxnum, that results in threads
potentially being cut off.
mu-server.cc:
- output_sexp: don't limit results to maxnum so as to match the behaviour of
mu find (and avoid cuttong off threads).
Fixes #1924 and #1911 .
2021-07-11 16:23:39 -04:00
Dirk-Jan C. Binnema
619509eb56
query-results: remove GatherThreadIds
...
We can't really do that in the match-decider, since we get _all_ messages
there, not the <n>-limited.
And some whitespace changes.
2021-06-17 20:54:59 +03:00
Dirk-Jan C. Binnema
6caa9acb34
query-match-deciders: whitespace
2021-06-17 20:54:59 +03:00
Dirk-Jan C. Binnema
047c10453a
query: gather related ids from mset, not match-decider
...
Since we only want the (smaller) set from the mset, not the (full) set
that the match-decider sees.
2021-06-04 00:54:28 +03:00
Dirk-Jan C. Binnema
473d3998ce
mu: calculate thread subjects
...
Calculate the thread subject, that is, the subject of the (sub)thread _or_
empty if it's the same as the previous subject.
This is for the UI feature of _not_ showing the subject when it's just
repeating from the previous.
2021-05-04 17:34:47 +03:00
Dirk-Jan C. Binnema
8c9430a09a
query: improve thread-date handling
...
And make it available in query_match, so we can expose it to elisp.
2021-05-02 23:30:32 +03:00
Dirk-Jan C. Binnema
bed6058fdc
mu-server: add thread-date as emacs timestamp
...
So we can more easily deal with it from elisp.
2021-05-02 23:30:32 +03:00
Dirk-Jan C. Binnema
b8f8ffa967
mu-sexp: make lists printable
...
And some typo fixes
2021-05-02 23:30:32 +03:00
Dirk-Jan C. Binnema
38f7075daa
mu-server: use orphan, not empty-parent
...
So we use only one term.
2021-05-02 23:30:32 +03:00
Nicolas Avrutin
8ccd8f5425
threads: fix flag handling of orphan children
...
Even if a container has no query_match, it may still have children that need to
have flags applied.
This was broken by 6ff9829ce1
.
Fixes : #1995
2021-05-02 14:27:11 -04:00
Derek Zhou
dc6f76d74d
seperate Mu::format and Mu::vformat
2021-04-22 18:32:38 +00:00
Dirk-Jan C. Binnema
750a9d1626
query: Better debug logging
2021-03-17 18:33:45 +02:00
Dirk-Jan C. Binnema
08890dee2d
lib/sexp: Clean up contact name/email
...
Don't allow control characters.
Fixes : #1944 .
2021-03-16 17:10:35 +02:00
Dirk-Jan C. Binnema
f56aca7c23
lib/contacts: Use remove_ctrl
...
Use the new helper function rather than `wash'.
2021-03-16 17:09:37 +02:00
Dirk-Jan C. Binnema
15aca5e396
utils: cleanup whitespace
2021-03-16 17:07:39 +02:00
Dirk-Jan C. Binnema
725826231f
utils: Add remove_ctrl
...
Add a helper function to remove control characters / multi-spaces, and a
test.
2021-03-16 16:51:01 +02:00
Dirk-Jan C. Binnema
6e9a60c385
mu: fix some compiler warnings
...
and whitespace.
2021-03-12 22:20:48 +02:00
Dirk-Jan C. Binnema
98abcf8e84
store: support in-memory database
...
For testing, this is faster / and doesn't pollute the file system.
2021-02-16 19:32:15 +02:00
Dirk-Jan C. Binnema
98a742e5e5
query: honor maxnum in threaded searches
2021-02-15 22:45:33 +02:00
Dirk-Jan C. Binnema
45655da948
mu-msg-file: calculate sha1 for messages
...
And use this to generate a message-id for messages that do not have one.
2021-02-15 22:29:38 +02:00
Dirk-Jan C. Binnema
108a33f16e
query: avoid expected warning
...
Remove some debug leftover.
2021-02-15 21:43:47 +02:00
Dirk-Jan C. Binnema
579f841bdd
query: filter out docs without query-matches
...
This avoid including unwanted messages in threaded results.
Also some cleanups.
2021-02-15 19:11:22 +02:00
Dirk-Jan C. Binnema
bba8af8d51
mu-query: tweaks threaded/threaded querying
2021-02-13 00:48:07 +02:00
Dirk-Jan C. Binnema
50511a7460
mu-query: update deciders (avoid warning)
...
Don't report non-warning.
2021-02-12 23:48:02 +02:00
Dirk-Jan C. Binnema
ffc809a01e
query: improve thread-key-maker
...
For threading, we still get the _full_ set of messages (since the mset is
limited, but not the enquire); so no need to warn about docids we
haven't seen before.
Also, ensure the unwanted docids are sorted after the wanted ones.
Fixes : #1926 .
2021-02-12 19:14:37 +02:00
Dirk-Jan C. Binnema
7a70942e67
build: experimental support for the meson build system
2021-02-12 00:49:35 +02:00
Dirk-Jan C. Binnema
a3c6e74869
lib: replace some #define with constexpr
...
minor cleanup.
2021-02-11 18:54:25 +02:00
Dirk-Jan C. Binnema
936fd3f485
mu-query: sort "related" input by date
...
When doing 'related' searches, sort the initial (bounded) query results
by date, so we get the newest (or oldest)
2021-02-10 22:04:42 +02:00
Dirk-Jan C. Binnema
6ff9829ce1
lib: improve threaded sorting
...
Improve threaded sorting:
- rework the recursive algo (which should a crash noted earlier)
- sort by thread key (as in 1.5.7)
Fixes : #1923
Fixes : #1922
Fixes : #1911
Fixes : #1916
2021-02-10 12:35:19 +02:00
Dirk-Jan C. Binnema
ba895bc65e
mu-query-result: detect thread-subjects
...
Ongoing... try to determine the thread-subject, to be used in mu4e
later.
2021-01-29 22:44:45 +02:00
Dirk-Jan C. Binnema
fdcbc5257d
query-match-deciders: mark as leader / related
...
So we can use that as metadata later
2021-01-29 22:41:59 +02:00
Dirk-Jan C. Binnema
ad86e2c4fc
mu-contacts: cosmetic
2021-01-29 22:41:12 +02:00
Dirk-Jan C. Binnema
72fdfec3eb
lib: clean up mu_msg_to_sexp API
...
move out the QueryMatch
2021-01-29 22:39:21 +02:00
Dirk-Jan C. Binnema
e5a52e45fd
mu-threads: improve sorting, duplicate handling
...
And add some more tests.
2021-01-27 22:28:58 +02:00
Dirk-Jan C. Binnema
7f70149c95
threads: don't assert on remove_child
...
Investigate this, seems to hit in the wild.
2021-01-25 21:44:02 +02:00
Dirk-Jan C. Binnema
3e64fdfb0f
threads: avoid assert
...
The assert failure was spotted in the wild... we need to investigate,
but we can ignore it now to avoid SIGABRT.
2021-01-25 18:11:50 +02:00
Dirk-Jan C. Binnema
086999c2d1
query: in related/threaded mode, search all
...
In the related query, search _all_ messages, not just the amount asked;
this increases the chance of full threads.
2021-01-25 10:12:48 +02:00
Dirk-Jan C. Binnema
cec25d3166
query: fix some typos
2021-01-25 10:11:46 +02:00
Dirk-Jan C. Binnema
01db0a4269
Merge pull request #1910 from rhgg2/contact-less-than-antisymmetric
...
Make order relation on contacts antisymmetric
2021-01-23 10:57:33 +02:00
Dirk-Jan C. Binnema
451fa65ffb
build: fix compiler flags
2021-01-23 01:00:47 +02:00
Richard Garner
f65bb4196c
Make order relation on contacts antisymmetric
2021-01-23 09:07:35 +11:00
Dirk-Jan C. Binnema
3db19ce92b
mu-msg-sexp: Improve list-post regexp
...
This should catch some more addresses.
Fixes : #1909 .
2021-01-22 23:24:53 +02:00
Dirk-Jan C. Binnema
035a10ab49
remove obsolete threading tests
2021-01-22 23:24:53 +02:00
Dirk-Jan C. Binnema
98744c66f7
remove some dead code
2021-01-22 23:24:53 +02:00
Dirk-Jan C. Binnema
36684c9e97
mu: use sha-1 for fallback msgid
...
We were using a hash based on the path, but it's better to have
something that's constant even if the path chnages.
2021-01-22 22:53:35 +02:00
Dirk-Jan C. Binnema
af386824f2
contacts: remove some dead code
2021-01-22 22:53:35 +02:00
Dirk-Jan C. Binnema
fb34824232
contacts: only sort recent contacts by recency
...
Fixes : #1857
2021-01-22 22:51:33 +02:00
Dirk-Jan C. Binnema
e282d80bc0
lib: Update for new querying machinery
...
Port to c++ and use new APIs.
2021-01-22 22:51:33 +02:00
Dirk-Jan C. Binnema
95dffb98a6
query: Rework querying/threading machinery
...
Rewrite the query machinery in c++:
- use an MSet decorator instead of the mu-msg-iter stuff
- use mu-query-decider to mark duplicates/unreadable/related messages
- use mu-query-threader to replace the older container/thread code
Algorithm did not substantially change, but the implementation details
did.
2021-01-20 14:09:04 +02:00
Dirk-Jan C. Binnema
a3865d6ba9
index: wait with cleanup until work-queue is empty
2021-01-15 21:07:38 +02:00
Dirk-Jan C. Binnema
0ebf456612
lib: comment out some future unit test
...
Don't break the build!
2020-12-05 12:20:19 +02:00
Dirk-Jan C. Binnema
ecafe54c99
parser: restore most unit tests
2020-12-05 11:42:54 +02:00
Dirk-Jan C. Binnema
3010e614a3
parser: using correct field for regexp expansion
...
Fixes : #1848
2020-12-05 11:42:54 +02:00
Dirk-Jan C. Binnema
d0e357c150
utils: Improve option/result types
...
And add the beginnings of unit tests.
2020-11-28 10:46:38 +02:00
Dirk-Jan C. Binnema
4b6d9a0ce8
utils: add RAII stopwatch
...
For benchmarking
2020-11-28 10:46:38 +02:00
Evan Klitzke
bd2fe50a74
use readdir(3) instead of deprecated readdir_r(3) in mu-maildir.c
2020-11-15 12:46:59 -08:00
Dirk-Jan C. Binnema
7d6475758c
scripts: using GUILE_BINARY from configure
...
I.e., do not hard-code guile-2.2, it may be guile-3.0 instead.
2020-11-15 17:20:52 +02:00
Dirk-Jan C. Binnema
c8b507f826
mu: remove obsolete MU_FEATURE_CRYPTO
2020-11-15 17:20:52 +02:00
Dirk-Jan C. Binnema
3f4e0cff62
mu-indexer: clean up state management
2020-11-15 17:20:52 +02:00
Dirk-Jan C. Binnema
558add3843
mu-msg: cosmetic
2020-11-15 17:20:52 +02:00
Dirk-Jan C. Binnema
702a1d8452
utils: add Result / Option types
...
Add some Rust-style Result/Option types, based on TartanLlama's
expected, optional classes.
There's std::optional of course, but we can't depend on C++17 yet.
2020-11-15 17:20:52 +02:00
Dirk-Jan C. Binnema
a1d1619bda
use c++ for some more sources
...
Do a (superficial) port to c++ of some of the c sources. Update
deps. Fix a few compiler warnings.
2020-11-07 14:11:59 +02:00
Dirk-Jan C. Binnema
f7452761cb
index: improve error handling
2020-11-07 11:43:11 +02:00
Dirk-Jan C. Binnema
26c1b9b6ad
lib: remove unused json conversion
...
We no longer use the glib-json based impl.
2020-11-07 11:43:11 +02:00
Dirk-Jan C. Binnema
c7a874b8d6
lib: convert threader/container to c++
...
Did change the code much, but it's now compiled as c++
2020-11-07 11:43:11 +02:00
Dirk-Jan C. Binnema
ed4a640c39
lib/query: refactor & rework
...
- Move the lib/query/ stuff up a level into lib/
- Associate directly with the Query object
- Rework the Query object to be C++ rather than mixed with C
- Update all dependencies, tests
2020-11-04 23:35:30 +02:00