Commit Graph

7542 Commits

Author SHA1 Message Date
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
1b3199a552 mu-scm: implement message->alist
Implement message->alist; i.e. to convert the mu4e-style plist into an idiomatic
alist. Add it as a message slot, initializing it lazily.

Update the message accessors to use the alist.

Add tests, docs.
2025-07-12 09:35:37 +03:00
d24d87336a mu-scm: use cc-prefix for C++ objects
Both in SCM and C++, use cc- for functions and objects defined in C++.
Makes it a little easier to track.
2025-07-12 09:35:37 +03:00
5c52ccc256 mu-scm: add docstrings for symbols
Use some snippet from
  https://git.wolfsden.cz/guile-wolfsden/tree/wolfsden/documentation.scm
and document some symbols (variables, classes etc.)
2025-07-12 09:35:37 +03:00
6d72aa5c7f mu-scm: implement store->alist
Get information about the store as an alist.

Scm + cc + test + doc.
2025-07-12 09:35:37 +03:00
8d46f80bb9 mu-config: split get() into get_str() and decode()
Makes it easier to use elsewhere.
2025-07-12 09:35:37 +03:00
7b4aea432e mu-scm: add filename procedure for mime-part 2025-07-12 09:35:37 +03:00
5fdb13fd72 mu4e-draft: add mu4e-compose-jump-to-reasonable-place
t by default (current behavior), but you can turn if off if your change (e.g.
compose-hook) wants to put the point in some different place.
2025-07-12 09:25:40 +03:00
8f15eedc74 mu4e-update: fix typo 2025-07-11 22:53:26 +03:00
e0c800c233 NEWS.org: update 2025-07-09 21:59:35 +03:00
cd23cd83bb build: add cond dep on g_mime_object_write_content_to_stream
This function only appeared in gmime versions newer than the minimum one we
require; since we only need this function in the new/experimental "scm", we make
the latter conditional on that function.

Fixes #2859.
2025-07-09 21:39:24 +03:00
da9cd06fce NEWS.org: update 2025-07-07 19:57:39 +03:00
b02aa57686 mu-scm: implement mime-part handling, refact
Implement accessing the MIME-parts + docs  + test.

Implement saving attachments to file.

Implement creating messages from files.

Refactor / rename functions to be more uniform.
2025-07-07 10:57:13 +03:00
54ec919e8f mu4e: allow mu4e-get-mail-command to be a function
For making it easier to influence the behavior.
2025-07-05 11:04:37 +03:00
652c7dc6b5 mu-mime-object.hh: fix some typos 2025-07-05 11:04:37 +03:00
3f53e4b439 mu-scm-message: don't require c++ >= 17 2025-06-30 22:52:13 +03:00
9360a641a9 mu-scm: add string->time and time->string
Replace the iso-date->time-t and v.v. functions with something more
customizable. Add more tests.

Use some (internal for now) %preferences variable for the defaults. TBD... maybe
should become a fluid?
2025-06-30 22:11:46 +03:00
f2699a4b95 mu-scm: add support for thread-id
Code + doc + test
2025-06-30 21:57:29 +03:00
cc39c9cae6 mu-scm: add support for mailing-list
method + doc + test
2025-06-30 21:57:29 +03:00
f66172db3b mu-scm: add support for references
Message method + test + docs.
2025-06-30 21:57:29 +03:00
123c0c1bc8 mu-scm: defer scm exceptions with c++ throw/catch
SCM exception are "non-local exits", which mean that c++ objects don't get their
DTOR called when leaving the scope.... this break RAII, leaks mem etc.

So instead, we avoid SCM exceptions (where we can), and throw C++ exceptions,
and only use SCM-expections in the catch block.
2025-06-30 21:57:29 +03:00
ca46c09ccb mu-scm: add full-message support (body/header)
Implement support for "header" and "body" procedures, with require loading the
message file from disk, and create a foreign object for the message.

We keep those alive in a vector, and hook up a finalizer.

Update docs & tests as well.
2025-06-30 21:57:29 +03:00
812d78be49 mu-scm: add options, some tweaks
Add the (options) procedure + docs.

Some internal tweaks / clean-ups.
2025-06-30 21:57:29 +03:00
e647ca924d server: make index log back-off a bit more concise 2025-06-30 21:50:16 +03:00
2c3ee5bd7b Merge branch 'index-sleep-exp-backoff' 2025-06-30 21:49:48 +03:00
0d7ddba9fd fix typo 2025-07-01 00:48:40 +08:00
507925ca4b indexer sleep exp backoff 2025-07-01 00:34:36 +08:00
9763ca0830 mu4e-folder: don't offer "other" if there are none
When mu4e is not started yet, we don't have "other" maildirs; document and don't
add the 'other' option.

Fixes #2855.
2025-06-30 19:24:06 +03:00
97fbaf1771 mu4e-headers: use string-width, not length for alignment
For e.g., for CJK languages
2025-06-28 18:07:03 +03:00
417c070e27 build: better handle non-guile build 2025-06-24 18:15:03 +03:00
ef502b77c6 NEWS.org: update for scm 2025-06-19 14:58:03 +03:00