| Age | Commit message (Collapse) | Author |
|
Single-threaded is the build-default, and seems to work well enough for
1.12.7, so remove the option to turn it off.
This is because build-options that influence such low-level/core
behavior are a pain to maintain.
|
|
In lazy-mode, we were skipping directories that did not change; however,
this didn't help for the case were users received new messages in big
maildirs.
So, add another check where we compare the ctime of message files with
the time of the last indexing operation. If it's smaller, ignore the
message-file. This is faster than having to consult the Xapian database
for each message.
Note that this requires in mu4e:
(setq mu4e-index-lazy-check t)
or
--lazy-check
as a parameter for 'mu index'.
|
|
GMime isn't more specific, so let's assume it's encrypted; better than
nothing.
Fixes #2784.
|
|
Try to avoid multi-threaded operations with Xapian.
This remove the thread workers during indexing, and avoids the indexing
background thread. So, mu4e has to wait once again during indexing.
We can improve upon that, but first we need to know if it avoids the
problem of issue #2756.
|
|
|
|
It's better to _not_ have auto-saves for your draft directory, but if
you do, ignore them at least in mu.
It may still trip up mbsync and friends, but not much we can do about
that.
Clean up the implementation a bit as well.
|
|
In Mu::parse_date_time, when provided with an empty string, return
time_t_max instead of G_MAXINT64. For systems with a 64-bit time_t, there
is no difference. With a 32-bit time_t it caused a test to fail:
not ok /utils/date-basic - ERROR:../mu-1.12.4/lib/utils/tests/test-utils.cc:92
void test_date_basic(): assertion failed
(parse_date_time(std::get<0>(test), std::get<1>(test)).value_or(-1)
== std::get<2>(test)): (18446744073709551615 == 2147483647)
This edge case probably only affected the test, as when other parts of
the application call parse_date_time (e.g. mu-server.cc and
mu-query-processor.cc), they check if the input string is empty first.
|
|
Fixes #2745
|
|
|
|
|
|
Fix gcc warning:
```
mu4e pre-build [26/198] Compiling C++ object lib/libmu.a.p/mu-query-parser.cc.o 34.390111
mu4e pre-build In file included from ../lib/mu-store.hh:34, 34.390132
mu4e pre-build from ../lib/mu-query-parser.hh:25, 34.390140
mu4e pre-build from ../lib/mu-query-parser.cc:20: 34.390146
mu4e pre-build ../lib/mu-store-worker.hh:162:23: warning: extra ‘;’ [-Wpedantic] 34.390152
mu4e pre-build 162 | Store& store_;; 34.390166
mu4e pre-build | ^ 34.390172
mu4e pre-build | - 34.390177
mu4e pre-build [27/198] Compiling C++ object lib/libmu.a.p/mu-contacts-cache.cc.o 34.538682
```
|
|
|
|
Double-check the changed values are seen in a newly opened store.
|
|
|
|
Of course, after merging some problems come up.
Let's fix those first.
This reverts commit f2f01595a51380ae38aafb4cd11a0d3c17a33a10.
|
|
So we can update doccount in mu4e after indexing
|
|
To ensure all Xapian rw commands happen in the same thread.
|
|
Use the store worker (-thread) to do all database modification.
Currently, the "removed" field of Progress is always 0.
|
|
store-worker is a thread + async queue to throttle requests to a single thread.
|
|
Simplify xapian-db: locks should go elsewhere; transaction level add
too much complication.
|
|
|
|
Useful for stuffing messages in async-queues
|
|
Ensure we use the user-specified batch-size immediately after db creation.
|
|
Add store::consume_message, which is like add message but std::move from
the caller such that the messages longer has copies (with
Xapian::Document) on the caller side; this is to avoid threading issues.
|
|
|
|
Seems journal logging fails on NetBSD (no surprise), but has some
unwanted/not-fully-understood side-effects.
In any case, outside Linux there's no use in even trying to use
journald; so we don't do that anymore.
Add conditional support for syslog (requires glib 2.80).
|
|
According to the readdir(2) man-page, not all file-systems support returning the
entry's file-type in `d_type`. For example, the reprotest reproducibility tool,
uses the disorderfs FUSE file-system to shuffle the order in which directory
entries are returned, and this does not set `d_type`. Therefore, in addition to
entries with type `DT_DIR` and `DT_LNK`, also process entries with type
`DT_UNKNOWN`.
Signed-off-by: Jeremy Sowden <azazel@debian.org>
|
|
Only include xapian.h in one place, so we can have consistent options.
With that in place, we can enable C++ move semantics.
We don't do anything with that yet, but we check in the meson.build file
to see if we have the required xapian version.
|
|
This seems necessary in some cases.
|
|
It's opportunistic: messages referred to be msgid may not exist, and
that's okay.
|
|
netbsd needs this explicitly, other systems let us get away without it.
|
|
We're using ::time_t now.
|
|
Esp. for systems with 32-bit time_t.
|
|
Seeing some db corruption; re-enabling this (old) lock to see if it
helps. It _does_ slow down indexing significantly.
|
|
We no longer need it; we can handle mu4e's sending directly in
mu4e-compose.
|
|
Fixes #2685
|
|
This fixes a compilation failure.
Fixes #2684.
|
|
|
|
So we can be sure the regexp is initialized. This _may_ help for
https://bugzilla.opensuse.org/show_bug.cgi?id=1221861
though it is very hard to tell!
|
|
In musl, `stdout` is a macro that expands to `(stdout)`, and
`::(stdout)` is not valid C++.
../mu-1.12.2/lib/utils/mu-utils.hh:268:32: error: expected
id-expression before '(' token
268 | ::stdout);
| ^~~~~~
Nothing in the Mu namespace is named stdout, so it is safe to drop
the `::`.
Bug: https://bugs.gentoo.org/928361
|
|
We were using get_error_string, but that might be NULL,
which libfmt doesn't like much.
|
|
Flag message that merely have a List-Unsubscribe header with
Flags::MailingList too (some marketing message have this header, yet
miss "List-Id".
Add a test as well.
|
|
From CI.
|
|
just to check if it works at all; no need to check cld2 at all.
|
|
This broke the language detection code
|
|
|
|
It might fail while nl_langinfo does not.
|
|
HT: Arsen Arsenović
Fixes #2633.
|
|
I.e., do our book-keeping beforehand.
|
|
While not recommended, sometimes it can be useful to disable building
the unit tests. This can be done now with
meson -Dtests=disabled build
|