* lisp/gnus/mm-decode.el: Do not require shr.el at the top
of the file; `mm-shr' already requires shr.el in its body, and
this function is the only `mm-convert-shr-links' caller (Bug#31151).
* lisp/gnus/mm-decode.el (mm--images-in-region-p): New utility
function.
(mm-convert-shr-links): Only use the shr image map on links that
contain images. This avoids binding commands like `r' on links
that don't need it.
* doc/misc/emacs-mime.texi (Display Customization): Remove the doc
for the nil case of mm-inline-text-html.
* doc/misc/mh-e.texi (HTML): Ditto.
* lisp/gnus/mm-view.el (mm-inline-text-html): If no
mm-text-html-renderer is specified, just insert the raw text
instead of erroring out (bug#30870).
* lisp/gnus/mm-decode.el (mm-keep-viewer-alive-types): Add the
media types that LibreOffice uses to the list, since we don't want
to kill off LibreOffice willy-nilly.
(mm-display-parts): Remove unused arg 'no-default'. Use 'cond'.
(mm-display-external): Use closures rather than `(lambda ...).
Don't bother with 'lexical-let'.
(mm-insert-part): No need for string-to-multibyte now that
'insert' will do that for us now (it used to behave more like
string-make-multibyte).
(mm-pipe-part): Remove unused var 'name'.
(shr-width, shr-content-function, shr-inhibit-images): Declare.
(mm-shr): Use a closure rather than `(lambda ...).
Most of this change is to boilerplate commentary such as license URLs.
This change was prompted by ftp://ftp.gnu.org's going-away party,
planned for November. Change these FTP URLs to https://ftp.gnu.org
instead. Make similar changes for URLs to other organizations moving
away from FTP. Also, change HTTP to HTTPS for URLs to gnu.org and
fsf.org when this works, as this will further help defend against
man-in-the-middle attacks (for this part I omitted the MS-DOS and
MS-Windows sources and the test tarballs to keep the workload down).
HTTPS is not fully working to lists.gnu.org so I left those URLs alone
for now.
;; Try inlining the attachment in the article <87wp94dzj6.fsf@gmail.com>
;; of bug#27078 in the Emacs bug list using Gnus.
* lisp/gnus/mm-archive.el (mm-archive-decoders):
Add a decoder for application/x-tar-gz.
(mm-dissect-archive): Error out if a decoder is not found.
* lisp/gnus/mm-decode.el (mm-get-image): Allow image/svg+xml.
* lisp/gnus/mm-decode.el (mm-shr): Prefer charset specified in html
meta tag than mail-parse-charset in the case there is no charset spec
in MIME header.
* lisp/gnus/mm-decode (mm-convert-shr-links): Avoid `shr-next-link'
and `shr-previous-link' so TAB and M-TAB run `widget-forward' and
`widget-backward' instead (bug#25091).
* lisp/gnus/gnus-util.el (gnus-replace-in-string): Declare
obsolete. Transform all usages of it into
replace-regexp-in-string.
* lisp/gnus/mailcap.el (mailcap-replace-in-string): Remove.
* lisp/gnus/mm-decode.el (mm-convert-shr-links): Allow
accessing the image commands.
* lisp/net/shr.el (shr-image-map): New map used for images.
(shr-urlify): Don't overwrite image maps when applying URL maps.
* lisp/gnus/mm-decode.el (mm-html-blocked-images):
Default to "" that blocks all external images.
* doc/misc/emacs-mime.texi (Display Customization):
Mention that mm-html-blocked-images defaults to "".
* doc/misc/emacs-mime.texi (Display Customization):
Remove mm-inline-text-html-with-images; add documentations for
mm-html-inhibit-images and mm-html-blocked-images.
* lisp/gnus/gnus-art.el (gnus-article-show-images):
No need to bind mm-inline-text-html-with-images.
(gnus-bind-safe-url-regexp): Rename to gnus-bind-mm-vars.
(gnus-bind-mm-vars): Rename from gnus-bind-safe-url-regexp;
bind mm-html-inhibit-images and mm-html-blocked-images.
(gnus-mime-view-all-parts, gnus-mime-view-part-internally)
(gnus-mm-display-part, gnus-mime-display-single)
(gnus-mime-display-alternative): Use gnus-bind-mm-vars.
* lisp/gnus/mm-decode.el (mm-inline-text-html-with-images): Remove.
(mm-html-inhibit-images, mm-html-blocked-images): New user options.
(mm-shr): Bind shr-inhibit-images and shr-blocked-images with
mm-html-inhibit-images and mm-html-blocked-images respectively
instead of gnus-inhibit-images and gnus-blocked-images.
* lisp/gnus/mm-view.el (mm-setup-w3m): Use mm-html-inhibit-images
instead of mm-inline-text-html-with-images.
Problem reported by Artur Malabarba in:
http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01513.html
Most of these fixes are to documentation; many involve fixing
longstanding quoting glitches that are independent of the
recent substitute-command-keys changes. The changes to code are:
* lisp/cedet/mode-local.el (mode-local-augment-function-help)
(describe-mode-local-overload):
Substitute docstrings before displaying them.
* lisp/emacs-lisp/cl-macs.el (cl--transform-lambda):
Quote the generated docstring for later substitution.
This patch should not change behavior. It typically omits backslashes
where they are redundant (e.g., in the string literal "^\$").
In a few places, insert backslashes where they make regular
expressions clearer: e.g., replace "^\*" (equivalent to "^*") with
"^\\*", which has the same effect as a regular expression.
Also, use ‘\ %’ instead of ‘\%’ when avoiding confusion with SCCS IDs,
and similarly use ‘\ $’ instead of ‘\$’ when avoiding confusion with
RCS IDs, as that makes it clearer that the backslash is intended.