Commit Graph

7622 Commits

Author SHA1 Message Date
76b9000588 mu-document: improve sexp updating
Ensure the cached message sexp gets updated in all cases where it's necessary.
2026-08-20 15:04:26 -07:00
d07a5bc2c1 labels: implement parse_delta_labels
Convenience function for parsing a series of delta labels; add tests as well.
2026-08-20 15:04:26 -07:00
ee42d90b51 build: don't use PWD in when doc-building
So it works with make -C.
2026-08-20 15:04:26 -07:00
543c43f078 Replace "the the " with "the " 2026-08-20 15:04:26 -07:00
65816093c4 docs: Fix typo 2026-08-20 15:04:26 -07:00
171fdad03b build: improve doc building 2026-08-20 15:04:26 -07:00
f8160e152b scm: implement store personal?, rename all-labels->labels
Add a method personal? to check if some string looks like a personal address;
add docs / tests as well.

Rename the all-labels method into simply 'labels'

Make some define* into define-method, for consistency.
2026-08-20 15:04:26 -07:00
5e87a9c81e mu4e: add basic auto-completion for labels 2026-08-20 15:04:26 -07:00
e6371ff705 mu4e: allow for displaying labels
Basic support for displaying labels.
2026-08-20 15:04:26 -07:00
5a6ca68846 mu4e/server: get cached list of labels
This will be useful with label commands.
2026-08-20 15:04:26 -07:00
3e5ef67650 mu: improve command help 2026-08-20 15:04:25 -07:00
013233c041 scm: clean up scm running
Split run_script / run_repl more clearly; update callers.
2026-08-20 15:04:25 -07:00
5378f321f4 utils: add set_thread_name
With HAVE_PTHREAD_SETNAME_NP
2026-08-20 15:04:25 -07:00
4bda2718ac add nix flake
Some checks failed
Build & run tests / build (macos-latest) (push) Has been cancelled
Build & run tests / build (ubuntu-latest) (push) Has been cancelled
2025-08-26 14:26:43 -07:00
44a16ff4e2 NEWS.org: update 2025-08-24 17:45:42 +03:00
d66a29cf5e scm: add support for logging
Add functions debug, info, warning, critical which log to the mu logging
facilities.
2025-08-24 17:36:15 +03:00
a69e6fad1d mu4e: implement mu4e-mu-scm-repl
With `mu4e-mu-scm-server` set to non-nil, a mu with scm support / --listen will
start a Guile SCM REPL listening on a Unix Domain Socket.

You can connect to this socket using the command mu4e-mu-scm-repl; this depends
on the geiser-guile package.
2025-08-24 11:54:08 +03:00
02a0dc4333 mu-server: implement exposing the socket-path
Add the scm-socket-path to the ping-properties we expose for mu4e.
2025-08-24 11:54:08 +03:00
9a2d481fc3 mu: add --listen option for server
Add a --listen option for the server

Rework the option code to share the --listen / socket-path code between scm and
server subcommands.

Move option off the stack in mu.cc, seems it's too big, at least when using gdb.
2025-08-24 11:54:08 +03:00
d5a0fce4cf scm: implement blocking / non-blocking modes
Implement running the REPL on background thread. That way, we can _share_ the
store&.
2025-08-24 11:54:08 +03:00
81ff303d2e meson.build: check for pthread_setname_np 2025-08-23 09:12:47 +03:00
6b89f4abae scm: message_parts: use cons instead of append
It's faster.
2025-08-22 08:13:55 +03:00
3b7e5507f7 scm: to_scm: use cons, not append
It's faster.
2025-08-22 08:08:32 +03:00
c207921cfa scm: all_labels: use cons instead of append
it's faster.
2025-08-22 08:05:10 +03:00
cd249ffaf0 scm: cfind: use cons instead of append
It's faster.
2025-08-22 09:02:09 +03:00
24e25f9663 scm: mfind: use cons instead of append, eval lazy
For the list building, using cons is much faster. So traverse the results
_backwards_, and then cons gives us the right order.

Don't eval when creating the list, but do so lazily (when requested in the
message, in mu-scm.scm)
2025-08-22 09:01:59 +03:00
cacac82070 mu-query-results: add decrement operators
So we can easily iterator from end->begin
2025-08-22 07:58:59 +03:00
5ad70335e6 NEWS.org: update 2025-08-17 13:19:17 +03:00
bd7026a53e update NEWS.org 2025-08-17 12:24:22 +03:00
b52920bfcf scm: update documentation
Describe the new --listen flag, and give some example of its usage, including
some snippet for using it with Emacs/Geiser.
2025-08-17 12:02:34 +03:00
e56c848952 scm: support --listen flag for uds
Support the --listen flag to mu scm, to start listening on a Unix domain socket.
2025-08-17 12:02:29 +03:00
8c706a77db mu-init: automatic export labels with --reinit
When re-initializing the store, automatically write the labels to a file in mu's
cache, so user can later import them.
2025-08-16 16:20:33 +03:00
a6b1f47a30 labels: refactor import/export to mu-store-labels
Move the import/export code to 'lib'.
2025-08-16 12:18:21 +03:00
f504289a02 labels: ensure c++17 compatibility
This broke the build earlier.
2025-08-16 08:43:41 +03:00
d843c9eb8e man: update man-pages (label / typos) 2025-08-15 21:03:19 +03:00
910cec591f scm: add support for labels + tests
Add procedures 'label' (for a message) and all-labels (for a store).
2025-08-15 21:03:19 +03:00
46fa4f2aa2 mu: add 'label' command + manpage + tests
Add a label command and document it.
2025-08-15 21:03:19 +03:00
1e628dfcab store: add support for modifying and listing labels and caching
Add methods update_labels, clear_labels which update or clear the labels for a
message in the store, and update the cache with the overall counts of labels.

Add a LabelsCache to keep track of the counts and labels_map() to retrieve that
map.
2025-08-15 21:02:24 +03:00
552bb3a7c8 message: add support for labels + tests
Labels are strings associated with messages, which can be used for searching
them.
2025-08-15 21:02:24 +03:00
34d3bf2e28 tests: only build when needed
Build the tests lazily, i.e., not before `meson test`. This helps with
build-times.
2025-08-15 21:01:05 +03:00
0714873978 mu4e-mime-parts: massage file names in m-v-save-attachments
This avoids unusable file-names.

Fixes #2862.
2025-07-30 00:06:49 +03:00
8d3b65c5d8 utils: refactor count_nl from mu-cmd-find
And update users.
Please enter the commit message for your changes. Lines starting
2025-07-27 19:39:23 +03:00
28ea23a2a3 contacts-cache: cosmetics 2025-07-27 19:39:23 +03:00
4c2ce92a15 cli11: prefer system package if found
mu embeds a "vendored" version of libcl11 under thirdparty/; but it's
better to use the system-package if the user has one.

So, use the system package if found or user -Duse-embedded-cli11=true is
specified.
2025-07-24 19:55:27 +03:00
33958cd0f7 fmt: prefer system package if found
mu embeds a "vendored" subset of the libfmt package under thirdparty; but it's
better to use the system-package if the user has one.

So, use the system package if found or user -Duse-embedded-fmt=true is
specified.
2025-07-24 19:55:27 +03:00
f90839b48b mu-cmd: load mu-scm.hh only with BUILD_SCM
We don't want/need it otherwise, and in fact it triggers build failures when
guile (but not scm) is enabled.

Fixes #2861.
2025-07-24 19:55:27 +03:00
f95ae6cffe mu-scm: avoid compiler warning
designated initializers are a C++20 feature.
2025-07-19 10:42:21 +03:00
bed7e6bd82 build: bump version to 1.12.12
New stable version. Some small fixes and doc updates; big new thing are
the new SCM bindings (under scm/), which will replace the
long-deprecated old bindings (under guile/).

Overall:

- In 'mu init', --my-address has been renamed into --personal-address
  for consistency. The old name still works.

Mu4e:

- Emacs bookmarks can be now also be created for mu4e queries; see
  the mu4e-emacs-bookmark-policy defcustom

- Support dash when completing maildirs

- Add defcustom for mu4e-compose-jump-to-reasonable-place, so it can be
  overridden, e.g. in compose hooks.

- In mu4e, make indexing snappier when there no new messages

SCM:

- Experimental new Guile bindings under scm/, including a reference
  manual and unit tests.
2025-07-19 08:03:38 +03:00
3b8edda881 mu-config.hh: unbreak mac build
The mac build broke (CI) because there's no conversion from time_t -> SCM
defined. Since we want to use int64_t anyway (2038), simply change to that.
2025-07-12 12:00:09 +03:00
a81bfd438c Merge branch 'wip/djcb/more-scm' 2025-07-12 11:34:38 +03:00