7855 Commits

Author SHA1 Message Date
241a5ea06a properly handle subprojects
Some checks are pending
Build & run tests / build (macos-latest) (push) Waiting to run
Build & run tests / build (ubuntu-latest) (push) Waiting to run
2026-08-20 15:05:32 -07:00
1c7c2cf9a0 shebangs 2026-08-20 15:05:32 -07:00
7d2392f3e8 guile option changed to scm 2026-08-20 15:05:32 -07:00
530c28c3c0 meson.build: fix date.py call under nix 2026-08-20 15:05:32 -07:00
c083c7e341 mu4e: update docs for mu4e-view-save-attachments 2026-08-20 15:05:32 -07:00
bdf2c8b6b1 tests: avoid build warning
Check all the functions that return a Result.
2026-08-20 15:05:32 -07:00
d5a48e99f7 build: bump version to 1.14.4-pre1 2026-08-20 15:05:32 -07:00
36d45b38af avoid nodiscard compiler warnings
We got a lot of the warnings for unchecked Result / tl::expected; let's
handle those.
2026-08-20 15:05:32 -07:00
7e32324ac4 build: use meson wraps instead of thirdparty/
Get rid of the "vendored" thirdparty/ libraries, instead rely on meson
"wrap" subprojects.
2026-08-20 15:05:32 -07:00
3c2300ef50 message/mime-object: cap references
Cap the references, since the threading algo is recursive.
2026-08-20 15:05:32 -07:00
541a4ad00d mu-query-threads: small refinements
Ensure we sort correctly (sort_container), since the last message in a
thread is not necessarily the last (when not sorted by thread-date).

own_date_key is redundant, so let's remove it.
2026-08-20 15:05:32 -07:00
f31b5eedde mu: sort children of a thread based on their own date only
This is a revival of commit c4ccaf0fdb:
"mu: sort childs of thread based on the sortfield only",
whose effect was apparently lost during the rewrite to C++.

Today when we query a find cmd with the `--threads` option, all the
children of each thread are sorted according to the most recent
message in the thread.

This patch changes how the children of a thread are sorted. Threads
are still sorted according to the thread date, but the children of each
thread are now sorted by their own date only.

Here is an example of what happened with the previous sorting:

Example with random kernel thread sorted by date:

[PATCH 0/4] drm/panel: jh057n0090: Add regulators and drop magic value in init
  ┣━▶[PATCH 1/4] MAINTAINERS: Add Purism mail alias as reviewer for their devkit's panel
  ┣━▶[PATCH 2/4] drm/panel: jh057n0090: Don't use magic constant
  ┣━▶[PATCH 3/4] dt-bindings: display/panel: jh057n0090: Document power supply properties
  ┗━▶[PATCH 4/4] drm/panel: jh057n0090: Add regulator support

If someone replies to one of these emails in the middle, its date will
bubble-up and the sorting becomes:

[PATCH 0/4] drm/panel: jh057n0090: Add regulators and drop magic value in init
  ┣━▶[PATCH 2/4] drm/panel: jh057n0090: Don't use magic constant
  ┃  ┗━▶ Re: [PATCH 2/4] drm/panel: jh057n0090: Don't use magic constant
  ┣━▶[PATCH 1/4] MAINTAINERS: Add Purism mail alias as reviewer for their devkit's panel
  ┣━▶[PATCH 3/4] dt-bindings: display/panel: jh057n0090: Document power supply properties
  ┗━▶[PATCH 4/4] drm/panel: jh057n0090: Add regulator support

With this patch, we will have the following output:

[PATCH 0/4] drm/panel: jh057n0090: Add regulators and drop magic value in init
  ┣━▶[PATCH 1/4] MAINTAINERS: Add Purism mail alias as reviewer for their devkit's panel
  ┣━▶[PATCH 2/4] drm/panel: jh057n0090: Don't use magic constant
  ┃  ┗━▶ Re: [PATCH 2/4] drm/panel: jh057n0090: Don't use magic constant
  ┣━▶[PATCH 3/4] dt-bindings: display/panel: jh057n0090: Document power supply properties
  ┗━▶[PATCH 4/4] drm/panel: jh057n0090: Add regulator support

Cc: Julien Masson <massonju.eseo@gmail.com>
Signed-off-by: Jerome Brunet <jbrun3t@gmail.com>
2026-08-20 15:05:32 -07:00
c61d5b980a build: bump version to 1.14.3
New stable version.

Many internal cleanups/fixups/C++20-modernization, but also a number of
new features:

mu:
- better handling of html parts
- fall back to most recent 'Received' for 'Date:'-less messages
- record the time-zone offset

mu4e:
- improved mime-handling
- improved HTML view (generate HTML view for pure text as well)
- hide "clickables" until requested (but see
  mu4e-view-always-show-url-indicators)

scm:
- performance improvements
- new methods for querying system configuration" and querying database
  fields, and getting timezone information (for 'date' and 'changed')

See NEWS.org for further details.
2026-08-20 15:05:32 -07:00
74f8f6bcfb mu: add mu-completion.bash
Was missing.
2026-08-20 15:05:32 -07:00
f9af43c1a0 contrib: add mu4e dbus client script
Add an (experimental/example) script for the mu4e's dbus server (i.e.,
mu4e-dbus-mode). This has a 'dump' and 'waybar' mode, the latter which
can show the mu4e's output on waybar.
2026-08-20 15:05:32 -07:00
e2e9ab690f mu4e.texi: fix typo 2026-08-20 15:05:32 -07:00
f949862ed6 mu: add bash completion
Automatically install (but configuration through meson options)
2026-08-20 15:05:32 -07:00
756f795cea mu: add zsh completion
Remove the ancient zsh completion, and replace with a new, more complete
one. Automatically install (but configuration through meson options)
2026-08-20 15:05:32 -07:00
e26fc581df mu4e-notification: use mu icon
Use the new mu icon for notifications.
2026-08-20 15:05:32 -07:00
f763e7b3bc mu: install mu-icon
Not the best icon in the world, but have to start somewhere. It's
obviously based on Emacs' official icon.
2026-08-20 15:05:32 -07:00
ac52584562 build: modernize meson usage
Since we require meson 1.3(.2), we can modernize the usage a bit,
as well as improve some logic

- use / instead of join_paths
- use option.allowed() instead of !option.disable()
- use cxx.get_supported_arguments
- use fs.copyfile instead of configure_file
- show a summary at the end of the configuration
2026-08-20 15:05:32 -07:00
04079aee7c mu-option: add missing doc to help-all 2026-08-20 15:05:31 -07:00
6889aaadb8 build: bump version to 1.14.3-pre5 2026-08-20 15:05:31 -07:00
54786e2e97 message: fall-back to received for dateless
For the (rare) messages without a Date: header, attempt to guess a date
from the top (most-recent) Received: header. Not perfect, of course, but
better than nothing.

Requires re-indexing to apply to already indexed messages.

Should help for #1083.
2026-08-20 15:05:31 -07:00
4a8b797665 scm: add changed-object, use if-let/when-let
Add a changed-object (to complement changed), and some rework some of
the code with the new if-let/when-let macros.
2026-08-20 15:05:31 -07:00
8c9734066f scm: add if-let/when-let macros
Add if-let/if-let*/when-let/when-let* macros for internal use in
mu-scm.el.
2026-08-20 15:05:31 -07:00
41f999a6bf mu4e-dbus: include delta-unread
Include the delta-unread in the QueryInfo.
2026-08-20 15:05:31 -07:00
bb57f7a226 scm: add utc-offset and date-object methods
Add methods for getting the utc-offset of message, and get the sent-date
as an SRFI-19 date object.
2026-08-20 15:05:31 -07:00
0bea84adce message: add utc-offset field
Add a new db field for storing UTC-offset for the Date: field.
2026-08-20 15:05:31 -07:00
501d27ad89 mu-server: tweak server
Try to set a larger pipe size (on Linux); and only show the mu-prompt
when talking to a tty.
2026-08-20 15:05:31 -07:00
ca5e1d64c1 mu4e: use buffer for reading server output
mu4e used strings processing the server output (from mu4e server) and
interpreting the s-expressions, but it's cleaner and slightly faster to
use a buffer instead. So that is what we do now.
2026-08-20 15:05:31 -07:00
702da53ad9 scm: implement field / fields procedures
Add procedures field & fields to get information about mu's database
fields, similar to "mu info fields".

Add docs & tests as well.
2026-08-20 15:05:31 -07:00
5235e16f54 scm: support configuration
Support a configuration function, with the system-configuration.

Update docs.

Add a tests for language, using the configuration to see if we support
it.
2026-08-20 15:05:31 -07:00
31b0fd45c2 scm: improve store->alist
Include all non-internal properties in the output alist.

Clean up some of the type-conversion (using concepts)

Fix conversion to bool
2026-08-20 15:05:31 -07:00
ae8607093b scm: avoid finalizer race with message-map
Let guile handle the message-map (with weak-hash-table), so we avoid the
cleanup race.

Better handle the fd handling (and avoid calling gc() each time when
we're nearing the limit)
2026-08-20 15:05:31 -07:00
b29e8cb37b scm: fix some issues in scm implementation
- Fix some comment copy-pasta
- Fix some typos
- Make write-to-file exception safe
- Make plist->alist O(n) rather than O(n*n)
2026-08-20 15:05:31 -07:00
60ed8f1a12 scm/c++: fix review issues in handler code
- Fix comments and some debug strings (copy-pasta)
- Fix mime-stream destruction (g_object_unref)
- Fix type-checking of scm types
2026-08-20 15:05:31 -07:00
2c2bc317f3 NEWS.org: update 2026-08-20 15:05:31 -07:00
e585d60511 build: bump version to 1.14.3-pre4 2026-08-20 15:05:31 -07:00
0b725f6c81 man: fix typos / omissions
Update the man-pages for various small error / inconsistencies / typos
etc.
2026-08-20 15:05:31 -07:00
6b1358ea48 mu: tidy up commands
Fix some typos, small errors, debug leftovers. Removed unused
mu-cmd-count.cc. Improve test-coverage. Fix manpage.

Make the errors for unknown commands a little friendlier.
2026-08-20 15:05:31 -07:00
9cf9531acc mu: improve command-line handling
- Remove some dead code
- Make error messages a bit more user-friendly.
- Small cleanups
- Add unit tests and actually run them
2026-08-20 15:05:31 -07:00
497b3db074 docs: fix some typos
Signed-off-by: John E <jeis4wpi@outlook.com>
2026-08-20 15:05:31 -07:00
4489d513be migrate to std::ranges
Move the various seq_ functions, as well as std::(stable_)sort,
std::accumulate, std::transform, std::find, std::find_if to their C++20
std::ranges counterparts.
2026-08-20 15:05:31 -07:00
1b42ad6099 mu-query: cleanups
Cleanup the query running and handling the results.

- in threading, use stable_sort
- remove dead code
- fix indentation in a few places
- don't need Option in various run_... in mu-query.cc
2026-08-20 15:05:31 -07:00
1e1311fc39 mu-utils: cleanups
Fix some types

Improve error handling

Remove dead/unused code
2026-08-20 15:05:31 -07:00
975dbfa367 mu4e: update label handling
- Fix typos
- Sync up with C++
- Fix cl-pushnew usage
2026-08-20 15:05:31 -07:00
03021df79d build: set BUILD_SCM to 0 when there is no guile
As per #2938
2026-08-20 15:05:31 -07:00
57ce31876f build: bump version to 1.14.3-pre3 2026-08-20 15:05:31 -07:00
bed72e5b5c mu-option/-result: tidy-ups
Small tweaks to avoid copying; add [[nodiscard]] .
2026-08-20 15:05:31 -07:00