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
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.
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.
Support "system" properties, i.e., library versions, whether
language-detection, scm is supported.
Make these more generic (with display strings), so we can handle them
more automatic int mu-cmd-info.
Update various places for what we can do with C++20:
- ends_with / starts_with
- std::to_array
- using instead of typedef
- designated initializers
- "[[maybe_unused]]" instead of G_GNUC_UNUSED
Also remove some unnecessary 'static'
With the ~--eval~ option you can evaluate an expression in mu/scm
environment. For example:
$ mu scm --eval \
'(format #t "found ~d match(es)\n" (length (mfind "hello")))'
found 7173 match(es)
Add command-line parameter and implement.
- don't make assumptions on where programs live (i.e., /bin/sh, /bin/rm,
/bin/mv) are not universal
- dont invoke shell when unnecessary
- improve error-handling
E.g. with unexpected termination for mu it is possible that the
labels-cache (i.e., the one that is used for auto-completion) gets disconnected
from reality.
Add a --restore option to `mu label list` to restore the actual labels from the
labels seen in the store.
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.
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.
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.
This makes things a bit more uniform with all the places where we use
"personal".
--my-address remains as an alias for the command-line option.
Add unit test.
Resolves#2806.
Implement a new experimental json2 format for mu-find, which gets rid of
the ":" prefixes for fields, i.e., "subject" instead of ":subject".
Document it as well.