Commit Graph

7527 Commits

Author SHA1 Message Date
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
a624518441 mu-scm: add texinfo documentation 2025-06-19 14:58:03 +03:00
24a6d7725e mu-scm: add man-page
Not much yet.
2025-06-19 14:58:03 +03:00
caeb2ab3c9 scm: add some unit-tests
Some basic unit tests. More will follow.
2025-06-19 14:55:33 +03:00
527d9322e9 scm: new guile/scheme bindings
This implements the new scm/guile bindings for mu, to replace the deprecated
guile/ (at some point in the future).

For now, we allow for creating a guile shell with mu support.
2025-06-19 14:55:33 +03:00
f9c24c7166 mu: add 'scm' command
Add the "scm" command, the way to get a Guile/Scheme shell.

This is experimental but will replace the current guile support in guile/ at
some point.
2025-06-16 10:57:36 +03:00
7f274fe518 mu-test: fix logging verbosity
We were logging _everything since the g_log_set_handler was only set for the
default domain, not "mu". Let's fix this.
2025-06-16 10:57:36 +03:00
eb75141d0a mu_utils: add to_string_char
Like to_string_gchar, but for malloc/free strings.
2025-06-14 13:14:03 +03:00
6441d26875 mu4e-notification: avoid error when byte-compiled
Ensure eval-when-compile macro is defined
2025-06-12 23:38:29 +03:00
8cded9d464 mu4e.texi: improve dired note 2025-06-12 14:05:25 +03:00
ceed7a2a72 README.org: update re: development branch
Fixes #2853.
2025-06-11 11:24:19 +03:00
151917ce51 mu-maildir.cc: fix typo
Use the right #define in the dirent check. Seems we were always following the
slow path.
2025-06-10 10:04:53 +03:00
1527976729 mu-cfind/contacts-cache: refactor matching in for_each
Move some of the code in from the command-line tool to contacts-cache, for
possible re-use. Clean up a bit while doing so.
2025-06-10 10:04:53 +03:00
155725ff74 fdl.texi: only need one copy in source tree
No need for identical files in mu4e / guile dirs, move to build-aux.
2025-06-10 10:04:53 +03:00
d7011e067d Merge pull request #2851 from sarg/fix-notifications
mu4e-notification: ignore dbus errors
2025-06-09 10:45:44 +03:00
154a68d948 meson.build: tweak guile build 2025-05-31 12:37:13 +03:00