Move draft-creation part of message-composition to a new file
mu4e-drafts
However, this is more than just some refactoring: rework the
message (draft) setup as such to ensure we always get a (non-active,
live) buffer back from the composition process.
This also fixes
(progn
(compose-mail "test@example.org" "Test")
(insert "TEST"))
as mentioned on the mailing list.
Fixes#2699
This is a new composer sub-system, which more closely follows
Gnus/message; in particular, we let gnus take care of creating draft
messages.
This reduces code size and allows us to re-use some of the more advanced
features.
There are a number of user-visible changes:
- `mu4e-compose-resend' directly uses `message-resend', so there is no
more editing phase (which used to be a bit broken with re-encoding
MIME messages.
We were using dates (in documentation, (c) notices etc) based on the
build-date; that makes it hard to do reproducible builds, so specify a
specific date in the top-level meson file, and use that throughout.
This triggered what I think is a bug/limitation in emacs; move the
source files to the build dir _after_ byte-compiling so we don't need
load-prefer-newer to avoid build warnings.
Fixes#2565.
Split off the MIME-handling from mu4e-view.el into its own
mu4e-mime-parts.el
Improve the implementation, updating completions with annotations.
Support "Pick all" for completing attachments and MIME-types.
Both attachment/inline disposition MIME-type with a file name are
considered "attachment" now.
Allow MIME-part actions to target multiple MIME-parts.
Implement function / datas structure to conveniently aggregate all
query-related data, for reuse in various places in mu4e...
... to start with the main menu, which gets much simpler. And the
modeline.
Add lispdir option for installing mu4e in a custom directory, which what
some pre-meson users tended to do with --lispdir.
Passing '-Dlispdir=/tmp/foo/bar' causes the mu4e files to be installed
in /tmp/foo/bar/mu4e.
Should help for issue #2287.
All these changes to avoid:
,----
| mu4e/meson.build:92: WARNING: Source item '/home/djcb/Sources/mu/build/mu4e/mu4e-meta.el' cannot be converted to File object, because it is a generated file. This will become a hard error in the future
`----
This is because we want to byte-compile a file we just before generated using
configure_file. This does not seem like a crazy thing, but meson threatens with
breaking the build at some point in the future.
So instead, we decide _not_ to compile this (very boring) file. But, users may
still have an older mu4e-meta.elc lying around, leading to confusion.
So, let's rename that file and we're golden.
`mu4e` expects this file when activating the [A]bout link in `mu4e-main`
view, but when building the `mu-git` package from the AUR, this file
did not appear in the resulting package.
Now this file is not lost.
re-enable the gnus/old split (the key was re-implementing
mu4e-view-message-text for gnus)
split helpers into mu4e-view-common
as a bonus 'go to url' now also works with gnus