summaryrefslogtreecommitdiff
path: root/lisp/gnus/mm-decode.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/gnus/mm-decode.el')
-rw-r--r--lisp/gnus/mm-decode.el39
1 files changed, 20 insertions, 19 deletions
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index a4fa56bc03d..f03b9c9b484 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -23,10 +23,6 @@
;;; Code:
-;; For Emacs <22.2 and XEmacs.
-(eval-and-compile
- (unless (fboundp 'declare-function) (defmacro declare-function (&rest r))))
-
(require 'mail-parse)
(require 'mm-bodies)
(eval-when-compile (require 'cl))
@@ -124,7 +120,6 @@
((executable-find "w3m") 'gnus-w3m)
((executable-find "links") 'links)
((executable-find "lynx") 'lynx)
- ((locate-library "w3") 'w3)
((locate-library "html2text") 'html2text)
(t nil))
"Render of HTML contents.
@@ -136,13 +131,11 @@ The defined renderer types are:
`w3m-standalone': use plain w3m;
`links': use links;
`lynx': use lynx;
-`w3': use Emacs/W3;
`html2text': use html2text;
nil : use external viewer (default web browser)."
:version "24.1"
:type '(choice (const shr)
(const gnus-w3m)
- (const w3)
(const w3m :tag "emacs-w3m")
(const w3m-standalone :tag "standalone w3m" )
(const links)
@@ -153,9 +146,9 @@ nil : use external viewer (default web browser)."
:group 'mime-display)
(defcustom mm-inline-text-html-with-images nil
- "If non-nil, Gnus will allow retrieving images in HTML contents with
-the <img> tags. It has no effect on Emacs/w3. See also the
-documentation for the `mm-w3m-safe-url-regexp' variable."
+ "If non-nil, Gnus will allow retrieving images in HTML that has <img> tags.
+See also the documentation for the `mm-w3m-safe-url-regexp'
+variable."
:version "22.1"
:type 'boolean
:group 'mime-display)
@@ -654,7 +647,7 @@ MIME-Version header before proceeding."
(unless from
(setq from (mail-fetch-field "from")))
;; FIXME: In some circumstances, this code is running within
- ;; an unibyte macro. mail-extract-address-components
+ ;; a unibyte macro. mail-extract-address-components
;; creates unibyte buffers. This `if', though not a perfect
;; solution, avoids most of them.
(if from
@@ -828,7 +821,6 @@ external if displayed external."
'inline)
((and (mm-inlinable-p ehandle)
(mm-inlined-p ehandle))
- (forward-line 1)
(mm-display-inline handle)
'inline)
((or method
@@ -841,18 +833,18 @@ external if displayed external."
'inline)
(setq external
(and method ;; If nil, we always use "save".
- (stringp method) ;; 'mailcap-save-binary-file
(or (eq mm-enable-external t)
(and (eq mm-enable-external 'ask)
(y-or-n-p
(concat
"Display part (" type
- ") using external program"
- ;; Can non-string method ever happen?
+ ") "
(if (stringp method)
(concat
- " \"" (format method filename) "\"")
- "")
+ "using external program \""
+ (format method filename) "\"")
+ (format
+ "by calling `%s' on the contents)" method))
"? "))))))
(if external
(mm-display-external
@@ -893,7 +885,15 @@ external if displayed external."
(mm-handle-media-type handle) t))))
(unwind-protect
(if method
- (funcall method)
+ (progn
+ (when (and (boundp 'gnus-summary-buffer)
+ (bufferp gnus-summary-buffer)
+ (buffer-name gnus-summary-buffer))
+ ;; So that we pop back to the right place, sortof.
+ (switch-to-buffer gnus-summary-buffer)
+ (switch-to-buffer mm))
+ (delete-other-windows)
+ (funcall method))
(mm-save-part handle))
(when (and (not non-viewer)
method)
@@ -1822,6 +1822,7 @@ If RECURSIVE, search recursively."
;; Require since we bind its variables.
(require 'shr)
(let ((article-buffer (current-buffer))
+ (shr-width fill-column)
(shr-content-function (lambda (id)
(let ((handle (mm-get-content-id id)))
(when handle
@@ -1875,7 +1876,7 @@ If RECURSIVE, search recursively."
handle
`(lambda ()
(let ((inhibit-read-only t))
- (delete-region ,(point-min-marker)
+ (delete-region ,(copy-marker (point-min) t)
,(point-max-marker))))))))
(defvar shr-map)