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
23fc8bdba8
update code for Mu::MessagePriority
...
Update dependent code
2022-02-14 11:12:26 +02:00
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
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
43c44cf6cd
store: catch dtor exception
2022-02-07 22:34:49 +02:00
18ddbe06e6
indexer: fix some threading issues with Progress
...
Make it a const object with atomic members.
2022-02-07 20:49:43 +02:00
a628f214a1
index: fix thread-sanitizer issue
...
Need a lock to access workers_;
2022-02-07 18:03:53 +02:00
e818e94d0e
build: fix some scan-build warnings
2022-02-07 17:36:34 +02:00
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
d0a3ca3453
utils: validate string before g_utf8_next_char()
2022-02-06 14:18:23 +02:00
c3503ba663
server: flush the "indexing complete" message
2022-02-06 14:18:23 +02:00
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
4d0ecf7f85
server: make indexing asynchronous
...
Perform indexing in a background thread.
2022-02-03 23:04:18 +02:00
b6d7d142f6
server: support flushing the output
...
So we can get some progress output
2022-02-03 23:04:18 +02:00
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
ebc9b88f80
store/query: update for new store/query api
...
Update to the new API.
2022-01-30 14:52:41 +02:00
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
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
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
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
08dc66a525
mu-utils: Fix compiler warning
2022-01-14 17:10:16 +02:00
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
4f02702510
store: add catch blocks for dirstamp/set_dirstamp
2021-12-18 15:22:52 +02:00
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
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
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
f71c05805c
build: Add some Xapian deps
...
Fixes: issue #2178 .
2021-11-12 23:11:45 +02:00
e672f952a8
index: ignore .update when store is empty
...
This somewhat emulates the 1.4 behavior.
2021-11-11 21:58:23 +02:00
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
c9e958d65c
utils: add Mu::time_to_string
...
Helper function to format strings (a-la strftime).
2021-11-10 22:32:28 +02:00
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
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
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
1c851315ca
build: ensure correct xapian.h is found
2021-11-03 22:13:49 +02:00
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
388f18a278
utils: add from_gchars
...
To copy into a std::string & free.
2021-11-02 22:24:17 +02:00
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
9a2fd441c5
mu-query: honor maxnum in threaded queries
2021-10-23 11:06:45 +03:00
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
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
428dddd74e
lib/mu: fix a few leaks
...
Thanks to valgrind
2021-10-20 23:06:28 +03:00
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
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
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
3e4771ad1c
mu-options: avoid clang warning
2021-10-18 22:32:46 +03:00
49637dbc3a
lib: replace CATCH_BLOCK macros with template magic
2021-10-18 21:52:37 +03:00
672d0c7238
store: don't try to commit when there's no transaction
...
Avoids some error warning.
2021-10-16 11:15:19 +03:00
1a449dd885
meson.build: Improve guile detection
2021-10-16 11:15:12 +03:00
9bcebb5cf8
build: avoid some compiler warnings
2021-09-02 23:36:43 +03:00
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