Commit Graph

6824 Commits

Author SHA1 Message Date
Dirk-Jan C. Binnema a16d288c70 server: implement 'data' handler / maildirs
Add a new command 'data' for getting kinds of 'data'. There's one kind
for now: "maildirs". This retrieves the list as per Store::maildirs().
2023-08-17 22:42:25 +03:00
Dirk-Jan C. Binnema e52030c049 store: expose maildirs() method
This gets the current list of maildirs by asking the scanner to do a
file-system search.
2023-08-17 22:42:25 +03:00
Dirk-Jan C. Binnema f5beea2eb2 scanner: add maildir-scan mode; improve portability
Use d_ino (struct dirent) only when available.

Implement a mode for scanning just maildirs (ie. the dirs with cur / new
in them). Use d_type (if available) to optimize that.
2023-08-17 22:42:25 +03:00
Dirk-Jan C. Binnema 8caf504381 store: update "move" and some related APIs
Update test cases as well.
2023-08-17 22:42:25 +03:00
Dirk-Jan C. Binnema e64b343c9d
Merge pull request #2536 from Chris00/master
Don't use the original message `To` for a reply `To` field
2023-08-17 22:27:34 +03:00
Christophe Troestler 3d0120d024 Don't use the original message `To` for a reply `To` field
Fixes https://github.com/djcb/mu/issues/2535
2023-08-16 23:03:06 +02:00
Dirk-Jan C. Binnema 6168d776e1 server: fix contacts handler
Condition was b0rked; clean up code a bit.
2023-08-11 19:57:00 +03:00
Dirk-Jan C. Binnema 11df0bedce utils: add mu_print[ln] for ostreams 2023-08-11 19:57:00 +03:00
Dirk-Jan C. Binnema 677a6d3882 mu4e-search-query: include unread counts if available
In the completion annotation.
2023-08-10 17:11:24 +03:00
Dirk-Jan C. Binnema dd5d5e6bbf mu4e: fix byte-compiler warnings 2023-08-10 09:14:07 +03:00
Dirk-Jan C. Binnema e9ce45fde9 build: bump version to 1.11.14 2023-08-09 23:24:47 +03:00
Dirk-Jan C. Binnema 7aa38d0b56 option/result: add "unwrap"
Sprinkle some more Rust on Option & Result
2023-08-09 23:24:47 +03:00
Dirk-Jan C. Binnema 04219b55f7 message & friends: make formattable
So we can easily debug-print them.
2023-08-09 23:24:47 +03:00
Dirk-Jan C. Binnema 4dcd457b7f mu4e-update: small doc improvement 2023-08-09 23:24:47 +03:00
Dirk-Jan C. Binnema d5129052df mu4e: implement mu4e-search-query
Pick a query using completing-read with a new command mu4e-search-query.
Update docs.
2023-08-09 23:24:47 +03:00
Dirk-Jan C. Binnema 40a73c70f2
Merge pull request #2530 from danielfleischer/to-cc-pr
To/Cc Lists fix
2023-08-09 23:23:22 +03:00
Dirk-Jan C. Binnema 52e3a4766e guile: make guile-extension-dir configurable
We use
   guile_dep.get_variable(pkgconfig: 'extensiondir')
but that's not good for everyone.
2023-08-09 22:02:09 +03:00
Dirk-Jan C. Binnema 31bb84182b mu4e: add prefix arg to mu4e-quit
Remove mu4e-main-quit-or-bury and simply update mu4e-quit
to take a prefix which, if non-nil, make mu4e-quit
bury the buffer rather than quite mu4e.

Also make the mu4e check for an existing mu4e buffer, and if found,
switch to it rather start mu4e.
2023-08-07 23:15:48 +03:00
Dirk-Jan C. Binnema 843c086b2c indexer: fix build 2023-08-07 19:09:19 +03:00
Dirk-Jan C. Binnema fabeb4a89a index: fix lazy indexing
After the previous changes
2023-08-07 08:49:44 +03:00
Dirk-Jan C. Binnema ab96211799 mu4e-mime-parts: use mm-handle-filename
So we get filenames in some cases we were missing
2023-08-06 23:24:12 +03:00
Daniel Fleischer 8b2437fc69
mu4e-draft: changes in to/cc lists creation
- Bug fix.
- Reply-all consistency, related to #2524
2023-08-06 18:44:10 +03:00
Dirk-Jan C. Binnema 253b44043b indexer: disable lazy check for "full" scan
Lazy would actually do _more_ work a full scan.
2023-08-06 16:19:43 +03:00
Dirk-Jan C. Binnema 4ecf386cda utils-file: don't use regexp in join_paths
It's slow.
2023-08-06 16:19:43 +03:00
Dirk-Jan C. Binnema fa2ceec4ae man: add performance notes to find/index/server manpages 2023-08-06 16:19:43 +03:00
Dirk-Jan C. Binnema 01a516f0d3 server: tweak sexp generation 2023-08-06 16:19:43 +03:00
Dirk-Jan C. Binnema 4945e699c8 lib/mu: use fmt-based time/date formatting
For a small speedup
2023-08-06 16:19:43 +03:00
Dirk-Jan C. Binnema 27c07280b1 utils: replace time_to_string with fmt-based formatting
It's faster; make "mu find" ~5-10% faster, and removes some code we no
longer need.
2023-08-06 16:19:43 +03:00
Dirk-Jan C. Binnema bdbf47c80f Makefile: improve benchmark targets 2023-08-06 16:19:43 +03:00
Dirk-Jan C. Binnema 6dfb2aae7b server: don't use structured-bindings / lambda for contacts_handler
Older clang doesn't like that.
2023-08-04 22:00:51 +03:00
Dirk-Jan C. Binnema 75c37a506b server: don't use structured-bindings / lambda
Older clang doesn't like that.
2023-08-04 21:44:58 +03:00
Dirk-Jan C. Binnema d47c92c287 docs: update README/NEWS. 2023-08-04 21:39:01 +03:00
Dirk-Jan C. Binnema f89e4c26d7 server: attempt to appease clang (pair/tuple)
https://stackoverflow.com/questions/46114214/lambda-implicit-capture-fails-with-variable-declared-from-structured-binding
2023-08-04 21:21:49 +03:00
Dirk-Jan C. Binnema 589327afd7 build: bump version to 1.11.13, update NEWS.org 2023-08-04 00:09:02 +03:00
Dirk-Jan C. Binnema 051fdb4ccf lib/config: set default batch-size to 50000
The default was 250000 but that led to problems on some systems with
limited memory, esp. since mu's indexing does quite a bit more than in
the olden days (e.g. html mail).

Fixes #2529.
2023-08-04 00:09:02 +03:00
Dirk-Jan C. Binnema 25151aad00 mu-query: small optimization tweaks 2023-08-04 00:09:02 +03:00
Dirk-Jan C. Binnema aea95b5be0 mu-server: use strings, not sexps object (optimization)
When passing messages to mu, often we got a (parsed from string)
message-sexp from the message document; then appended some more
properties ("build_message_sexp").

Instead, we can do it in terms of the strings; this is _a little_
inelegant, but also much faster; compare:

(base)
[mu4e] Found 500 matching messages; 0 hidden; search: 1298.0 ms (2.60 ms/msg); render: 642.1 ms (1.28 ms/msg)

(with temp-file optimization (earlier commit)
[mu4e] Found 500 matching messages; 0 hidden; search: 1152.7 ms (2.31 ms/msg); render: 270.1 ms (0.54 ms/msg)

(with temp file optimize _and_ the string opt (this commit)
[mu4e] Found 500 matching messages; 0 hidden; search: 266.0 ms (0.53 ms/msg); render: 199.7 ms (0.40 ms/msg)
2023-08-04 00:09:02 +03:00
Dirk-Jan C. Binnema 1018f0f0a1 mu-document: Make sexp() lazy (optimization)
This makes queries where we don't need the sexp much faster; e.g.

before:
   mu find "a" --include-related  47,51s user 2,68s system 99% cpu 50,651 total
after:
  mu find "a" --include-related  7,12s user 1,97s system 87% cpu 10,363 total
2023-08-04 00:09:02 +03:00
Dirk-Jan C. Binnema 7c85b61944 mu4e-server: enable mu4e-mu-allow-temp-file optimization
Add a new configuration variable mu4e-mu-allow-temp-file, t by default,
which triggers the same optimization in the mu server.

It improves message rendering speed:

I.e. without:
  [mu4e] Found 500 matching messages; 0 hidden; search: 1298.0 ms (2.60 ms/msg); render: 642.1 ms (1.28 ms/msg)
with:
  [mu4e] Found 500 matching messages; 0 hidden; search: 1152.7 ms (2.31 ms/msg); render: 270.1 ms (0.54 ms/msg)

As a useful side-effect, this also:
Fixes #1802.
2023-08-04 00:09:02 +03:00
Dirk-Jan C. Binnema 924bb2145e mu-server: implement temp-file optimization
It can be faster to feed big mu -> mu4e data, such as contacts are
message headers through a temp-file instead directly though stdout;
implement this, and add the server parameter --allow-temp-file.

Implement this the "contacts" and "find" commands.
2023-08-04 00:09:02 +03:00
Dirk-Jan C. Binnema 0ace413f80 mu4e-headers: don't auto-update header with message open
Avoid removing a message that's potentially being looked at.

Fixes #1055
Fixes #1981
2023-08-04 00:08:30 +03:00
Dirk-Jan C. Binnema a71b4f5e8d options: expand option file paths
Fixes #2528
2023-08-03 22:47:27 +03:00
Dirk-Jan C. Binnema ade62fc67c options: implement ExpandPath transformer
For expanding shell options (with expand_path / wordexp)

Note that e.g. in zsh: --maildir=~/Maildir is handled (program receives
--maildir=/home/user/Maildir) but e.g. bash does not do that, and the
program receives the literal '~/Maildir'

We expanded this in mu earlier, so let's do that again.
2023-08-03 22:47:27 +03:00
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 b91272aca2 mu-mkdir manpage: small fix 2023-08-03 19:49:39 +03:00
Dirk-Jan C. Binnema 890fc46da9 mu4e-update: save last update results in *mu4e-last-update*
This can be useful for diagnosis.

Fixes #2455
2023-08-03 19:48:49 +03:00
Dirk-Jan C. Binnema 2f98dacade mu4e/mu4e.texi: fix external links in html
Fixes #2182.
2023-08-03 19:48:49 +03:00
Dirk-Jan C. Binnema 5409c2cd87 mu-view: attempt to avoid locale diffs in test
A bit ugly attempt make tests work in CI
2023-07-30 00:51:12 +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