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.
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 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.
Xapian supports an "ngrams" option to help with languages/scripts
without explicit wordbreaks, such as Chinese / Japanese / Korean.
Add some plumbing for supporting this in mu as well. Experimental for
now.
It can be faster to feed big mu -> mu4e data, such as contacts are
message headers through a temp-file instead directly though stdout;
implement this, and add the server parameter --allow-temp-file.
Implement this the "contacts" and "find" commands.
For expanding shell options (with expand_path / wordexp)
Note that e.g. in zsh: --maildir=~/Maildir is handled (program receives
--maildir=/home/user/Maildir) but e.g. bash does not do that, and the
program receives the literal '~/Maildir'
We expanded this in mu earlier, so let's do that again.
Implement a new command-line parser, based on CLI11.
It's a bit more C++'ish, and allows for a lot of fancy things... some of
which we have implemented here.
Update the various commands to use the new Options struct
Remove the old help strings; instead e.g. `mu help view` opens the
manpage.
Integrate the guile scripts more tightly.