7855 Commits

Author SHA1 Message Date
7e83f5e4b0 mu-regex: add match_groups, use everywhere
Add match_groups to Mu::Regex, and update old "raw" GRegex users.
2026-08-20 15:05:31 -07:00
31e5c7b34e mu-message: various small tweaks
- Remove possible cache-dir
- Retain Personal flag
- Handle some corner cases
2026-08-20 15:05:31 -07:00
a9a57d0511 mu-message-file/-part: small fixes
Handle is_new in all cases.

Use starts_with where applicable (C++20)

Update unit-tests
2026-08-20 15:05:31 -07:00
51d5ab3163 mu-mime-object: improve error-handling
Fix possible UAF in write_to_stream

Fix a few typos.
2026-08-20 15:05:31 -07:00
877b946539 mu-document: fix phrase-queries, small o10ns
Fix the phrase-query term-generator

Avoid double utf8_flatten
2026-08-20 15:05:31 -07:00
f9ad65423e mu-fields: const correctness, o18n
Don't copy strings when unneeded.
2026-08-20 15:05:31 -07:00
8208639c49 mu-labels: fix comment 2026-08-20 15:05:31 -07:00
0658f18062 mu-flags: ensure shortcut is single-char
And add some tests. Use std::popcount.
2026-08-20 15:05:31 -07:00
2750fe9f27 mu-contact: move ctor parameters
Small optimization; and remove some dead-code; use is_ascii_cntrl.
2026-08-20 15:05:31 -07:00
19b2bdd6e4 mu-priority: make to_string inline
And remove some dead code.
2026-08-20 15:05:31 -07:00
a03fd48551 utils: support negative lexnums
We use "lexnums" to efficiently/sortably store numbers >= 0; let's
support negative numbers as well (albeit not very optimal in size yet)
2026-08-20 15:05:31 -07:00
51a2bc5f60 cld2: unit-test fix
Fix inverted HAVE_CLD2 test
2026-08-20 15:05:31 -07:00
ca881a6e83 cld2: fix macos unit-test on ci 2026-08-20 15:05:31 -07:00
40ee042b6d scm: fix build-scm check 2026-08-20 15:05:31 -07:00
391cc3c556 cld2: fix language-detector
Inverted #if check.
2026-08-20 15:05:30 -07:00
91ad1c4478 cld2: fix HAVE_CLD2 test
It _is_ defined (as 0) when there is no CLD2.
2026-08-20 15:05:30 -07:00
ffa110d08d dir-locals: avoid warnings
Some names changed, making new enough emacs unhappy.
2026-08-20 15:05:30 -07:00
d24347bad6 lib: rename support-ngrams => ngrams-enabled
For consistency.
2026-08-20 15:05:30 -07:00
a347d3ada0 properties: support system-properties
Support "system" properties, i.e., library versions, whether
language-detection, scm is supported.

Make these more generic (with display strings), so we can handle them
more automatic int mu-cmd-info.
2026-08-20 15:05:30 -07:00
f3361b9cee server: small tweaks
Handle a few small issues / typos, make the code a little clearer and
add some comments. Remove some dead code.
2026-08-20 15:05:30 -07:00
da2995a768 mu-sexp: improve corner-cases, performance
Some C++20 updates; use the new ascii/ctype functions. Avoid unlimited
recursion. Speed-up conversion to_string

Update unit-tests.
2026-08-20 15:05:30 -07:00
dfdd943817 utils: html-to-text: fix some issues, update tests
Improve handling of some corner-cases, and add more unit-tests for
things that were broken before.
2026-08-20 15:05:30 -07:00
500bf400c3 mu-query-parser: handle corner case / complexity
Some improvements:

- Fix or/xor chains (use left-associativity).
- Fix quote handling
- Make parsing O(n) rather than quadratic; limit recursion depth

And update tests.
2026-08-20 15:05:30 -07:00
809b9e4f4a utils: read_from_stdin: avoid reading nuls
We should read the actual written size, not the allocated size.
2026-08-20 15:05:30 -07:00
39c8472dba build: bump version to 1.14.3-pre2 2026-08-20 15:05:30 -07:00
7d60d2728a index: generalize pre-fetch paths
We already pre-fetched db file paths for the cleanup-case (since
cdb619e4f), now let's generalize this to all indexing.

For now this is mostly performance-neutral (lazy-rescan is slightly
faster); however, this simplifies the code.
2026-08-20 15:05:30 -07:00
86464cd083 modernization: tweaks for c++20
Update various places for what we can do with C++20:

- ends_with / starts_with
- std::to_array
- using instead of typedef
- designated initializers
- "[[maybe_unused]]" instead of G_GNUC_UNUSED

Also remove some unnecessary 'static'
2026-08-20 15:05:30 -07:00
502c9cd67b lib: use ascii ctype utils
Use the new ascii ctype utils.
2026-08-20 15:05:30 -07:00
f2960a197e utils: add ascii ctype helpers
Add some constexpr ctype helpers that avoid any possible UB (i.e.,
handling casting to unsigned), and explicitly avoid any
locale-specifics.
2026-08-20 15:05:30 -07:00
39b7cf2e9d mu4e: update queue handling ui
Hide queue commands from main-view when smtpmail-queue-dir is nil.
Update docs.
2026-08-20 15:05:30 -07:00
b0d5dc545e bench: update benchmark runner
Modernize code a bit; and use a temporary dir for the working set.
Typically, this makes the tests run faster (since the temporary dir is
often in-memory), which allows focusing on the part we can most easily
influence.
2026-08-20 15:05:30 -07:00
5f385dd6a1 IDEAS.org: update
Fix some typos.

Mention #2936.
2026-08-20 15:05:30 -07:00
36bed1816a thirdparty/fmt: update to 12.2.0
Get a newer version, since newer Apple Clang (v21) in CI is stricter
than the previous v17 and yield compile-errors.

So let's update.
2026-08-20 15:05:30 -07:00
dcc537c545 mu4e-view: tweak html generation
Use the message plist.
2026-08-20 15:05:30 -07:00
1d1c1df4b3 build: bump version to 1.14.3-pre1 2026-08-20 15:05:30 -07:00
e323ec51fb mu4e-view: clear up message massaging
Remove some non-working / rarely useful options. Fix
show-all-mime-part.
x
2026-08-20 15:05:30 -07:00
06b8d3fc5b mu4e-view: improve html support, link-indicators
Use the updated support for HTML messages (even converting plain-text
only). Update the link detection, clean up.

Add links for e-mail addresses too, not just ones that start with
mailto:.

Only show link-indicators when mu4e-view-go-to-url or mu4e-view-save-url
are invoked, or with mu4e-view-always-show-indicator set to non-nil.

Update docs.
2026-08-20 15:05:30 -07:00
94051898a5 mu4e-mime-parts: handle html parts and conversion
Produce HTML-versions of messages, even plain-text ones without an
HTML-part. This allows for uniform handling, e.g. showing a message in
an external browser.

Implement linkification as well.
2026-08-20 15:05:30 -07:00
d321c9cfe1 build: bump version to 1.14.2
New stable version:

- silence some MIME part errors
- some emacs 28.1+ modernization
- list org links with M-x mu4e-org-agenda-links
- when replying to a message with some part selected, cite only that
  part
- fix parsing of the Keywords: headers. If you use those, you're
  recommend to re-index your message
2026-08-20 15:05:30 -07:00
5fd639b5f3 mu: add keywords unit-test 2026-08-20 15:05:30 -07:00
01c07d8bcc Fix mu tag parsing from Keywords header
Split tags in the Keywords field on commas instead of spaces

https://datatracker.ietf.org/doc/html/rfc5322#section-3.6.5

Fixes #2932
2026-08-20 15:05:30 -07:00
2ba741117a build: bump version to 1.14.2-pre1 2026-08-20 15:05:30 -07:00
8e638a639a mu4e: fix byte-compile warnings 2026-08-20 15:05:30 -07:00
2d022f1756 mu4e: cite region in reply
When replying to a message with some part selected / marked, cite only
that part.

Implements ancient feature-request, issue #44.
2026-08-20 15:05:30 -07:00
9b6a277eca mu4e: allow listing org-links
New command mu4e-org-agenda-links to pop up a buffer with a tabulated
list of the mu4e links in your org-agenda-files
x
This is just a little experiment.
2026-08-20 15:05:30 -07:00
8d1919cd36 mu4e: clean up temp file handling
Use a temp file directory per mu4e session

Remove files when a buffer is closed, not after 30 secs
2026-08-20 15:05:30 -07:00
008529696a mu4e: remove emacs < 28.1 shims
We can depend on more functions now, so can get rid of our own versions.
2026-08-20 15:05:30 -07:00
a27398ae39 mu4e-draft: fix friendly-name rx
Corner-case, but it was incorrect.
2026-08-20 15:05:30 -07:00
cbe64d4cae mu4e: emacs 28.1 modernization
We can now use setq-local, length>, string-empty-p, affixations
functions and "choice" defcustoms.
2026-08-20 15:05:30 -07:00
dca5334295 Remove unnecessary eager loads of ido 2026-08-20 15:05:29 -07:00