Commit Graph

7727 Commits

Author SHA1 Message Date
71b5f31f99 man: update label manpage 2026-08-20 15:04:26 -07:00
c074c138f8 store: improve label handling
In particular, clear_labels

And some cosmetics
2026-08-20 15:04:26 -07:00
a2b1a7cc31 mu4e: implement label updating through marks
Add support for updating label, using the marking interface.

Add some helpers for dealing with (delta) labels

Add keybindings to headers / views

Update docs
2026-08-20 15:04:26 -07:00
bf2f4ce57d server: add label handler
For handling mu4e label update requests.
2026-08-20 15:04:26 -07:00
2fa973ec90 mu-label: allow more characters
reduce the number of "taboo" characters in labels.

update docs.
2026-08-20 15:04:26 -07:00
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