Previously, the cursor would be moved to the first html attachment which
would break using mu4e keybindings (e.g. delete). With this change, the
cursor isn't moved at all, presumably the expected behavior.
The support for emacs in bookmarks in mu4e-contrib has been broken for a while;
we removed it an now re-implement it as part of mu4e-proper.
Fixes: issue #2255.
Add command ~mu4e-sexp-at-point~ for showing/hiding the s-expression for the
message-at-point. Useful for development / debugging. Bound to ~,~ in headers and
view mode.
`mu4e-view-mode-map` was initialized from a sparse keymap and eventually passed
to `suppress-keymap` in order to remove bindings to `self-insert-command` which
obviously make no sense in read-only buffers. However, `suppress-keymap` also
remaps all digits and the minus sign to make prefix args, i.e., pressing 8
would be equal to `C-u 8` and `-` got bound to `negative-argument` instead of
`mu4e-view-mark-for-unflag` as defined.
While `suppress-keymap` has a `NODIGITS` arg to suppress the rebinding of
digits and minus sign (which would also mean that pressing a digit would try
inserting that digit and lead to an error), I chose the more straight-forward
solution and start from an empty rather than a sparse keymap and added the
`digit-argument` bindings for 0..9 explicitly.
I'm not quite sure why it was done in the first place, and it seems to have
unwanted side-effects. So let's turn it off and see if anything breaks.
Fixes: #2146.
Replace obsolete variable alias with obsolete function alias for mu4e-headers-search-edit.
Update docstring for mu4e-view-search-edit to reference the new function.
This is needed when gnus is used along mu4e for other purpose like
reading News, in this case gnus rename `gnus-article-buffer` and we
end up with an unrelated buffer-name in mu4e.
Usurp more of the utils code than can be re-used without further dependencies in
helpers.
Split off specific parts in their own file.
After the helper/utils changes, update the rest of mu4e to take the changes into
account.
Make mu4e-view-use-gnus obsolete (it's the default now), and add a
variable mu4e-view-use-old (which must be set before starting mu4e).
Update documentation / mentions.
Load the correct view when starting mu4e, so people can customize
e.g. the keymap.
Add some sanity checking.
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
in replacement of mu4e-view-save-attachment-multi for gnus viewers.
The alias mu4e-view-save-attachment have been replaced by a wrapper function
that calls either mu4e-view-save-attachment-multi or
mu4e-view-gnus-save-mime-parts depending of the context.
In mu4e~view-gnus, mu4e-view-mode derive from gnus-article-mode which derive
from gnus-mode which derive from special-mode:
(get 'mu4e-view-mode 'mode-class) => special.
When this option is set to 'known and the needed key is not yet in the user's
keyring, mu4e may hangs forever unable to verify email so lets user set this
variable globally to 'never to prevent this issue.
Make mu4e-personal-address-p safe for being called with nil.
Upgrade code that used mu4e-user-mail-address-p to
mu4e-personal-address-p.
Update docs.
Add some more helpers to mu4e-message, and avoid some byte-compiler
warnings.
Instead of a multi-step process to display an unread message (ie. get
the original, notice it's unread, then update it, replace the message
with update one etc.), we now handle that in the (view /./..) command on
the server side.
Simplifies things, and is faster (which could be noticeable, esp. if
e.g. signature verification is part of the process)
The code still has some problems, and the original author has moved
elsewhere (which is fine of course), but it's not ready enough for
1.4.... yet. So let's remove it for now and check again with 1.5+.
This requires setting the buffer-local variable before calling the
major mode function, and protecting the variable from the standard
mode-change cleanup.
There are some behavioral differences causing the RET binding in emacs
26.3 (an possibly others) to be active even in gnus mode; this breaks
clicking URLs.
Attempt to work around that.
With the current version of the mu server, it is not possible open
attachments, because the server expects symbols as parameters, but
mu4e sends strings.
This change fixes this.
In the keybinding defintions for mu4e-view-mode-map, the variable
mu4e-view-use-gnus was used quoted in an if condition, which means that the
condition always evaluated to true. Therefore, M-q would always be bound to
article-fill-long lines and never to mu4e-view-fill-long-lines.
Use "_" as the title of that section so that it is less distracting
when sections are collapsed to get an overview of the library.
Using a separate section is useful because it reduces the risk of
accidentally into the middle of a library.
Placing two semicolons on an otherwise empty line helps to logically
"connect" the surrounding "paragraphs", which in (only) some cases
makes sense.
Previously the three paragraphs of the permission statement were not
connected to each other like this, which is perfectly fine. However
the preceding "This file is not part of GNU Emacs." line was connected
to the first paragraph, which does not make sense considering that the
latter is not connected two the second paragraph, which it relates to
more.
Once those two semicolons are gone, it also makes sense to remove
those from the second line.
Commit edce635416 only loads it
dynamically when executing the function mu4e~view-gnus but as a
consequence many variables are undefined at compile time and, more
importantly, it is no longer possible to override the variable
gnus-display-mime-function with a let binding before calling
gnus-article-prepare-display