gnus-art.el (gnus-inhibit-images): New user option.

* gnus-art.el (gnus-inhibit-images): New user option.
(gnus-mime-display-single): Don't display image if it is non-nil.

* mm-decode.el (mm-shr): Bind shr-inhibit-images to the value of
gnus-inhibit-images.

* shr.el (shr-image-displayer): New function.
(shr-tag-img): Use it.
This commit is contained in:
Katsumi Yamaoka 2010-11-17 07:22:19 +00:00
parent 6b4bb7039f
commit 40de2c6dd3
4 changed files with 43 additions and 5 deletions

View file

@ -1,3 +1,14 @@
2010-11-17 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (gnus-inhibit-images): New user option.
(gnus-mime-display-single): Don't display image if it is non-nil.
* mm-decode.el (mm-shr): Bind shr-inhibit-images to the value of
gnus-inhibit-images.
* shr.el (shr-image-displayer): New function.
(shr-tag-img): Use it.
2010-11-16 Daniel Dehennin <daniel.dehennin@baby-gnu.org>
* mml2015.el (mml2015-epg-sign): Use From header.

View file

@ -1636,6 +1636,12 @@ This requires GNU Libidn, and by default only enabled if it is found."
:group 'gnus-article
:type 'boolean)
(defcustom gnus-inhibit-images nil
"Non-nil means inhibit displaying of images inline in the article body."
:version "24.1"
:group 'gnus-article
:type 'boolean)
(defcustom gnus-blocked-images 'gnus-block-private-groups
"Images that have URLs matching this regexp will be blocked.
This can also be a function to be evaluated. If so, it will be
@ -5845,7 +5851,9 @@ If displaying \"text/html\" is discouraged \(see
(while ignored
(when (string-match (pop ignored) type)
(throw 'ignored nil)))
(if (and (setq not-attachment
(if (and (not (and gnus-inhibit-images
(string-match "\\`image/" type)))
(setq not-attachment
(and (not (mm-inline-override-p handle))
(or (not (mm-handle-disposition handle))
(equal (car (mm-handle-disposition handle))

View file

@ -1687,6 +1687,7 @@ If RECURSIVE, search recursively."
(start end &optional base-url))
(declare-function shr-insert-document "shr" (dom))
(defvar shr-blocked-images)
(defvar gnus-inhibit-images)
(autoload 'gnus-blocked-images "gnus-art")
(defun mm-shr (handle)
@ -1703,6 +1704,7 @@ If RECURSIVE, search recursively."
(when handle
(mm-with-part handle
(buffer-string))))))
(shr-inhibit-images gnus-inhibit-images)
charset)
(unless handle
(setq handle (mm-dissect-buffer t)))

View file

@ -435,6 +435,26 @@ Return a string with image data."
(search-forward "\r\n\r\n" nil t))
(buffer-substring (point) (point-max))))))
(defun shr-image-displayer (content-function)
"Return a function to display an image.
CONTENT-FUNCTION is a function to retrieve an image for a cid url that
is an argument. The function to be returned takes three arguments URL,
START, and END."
`(lambda (url start end)
(if (string-match "\\`cid:" url)
,(when content-function
`(let ((image (funcall ,content-function
(substring url (match-end 0)))))
(when image
(goto-char start)
(shr-put-image image
(prog1
(buffer-substring-no-properties start end)
(delete-region start end))))))
(url-retrieve url 'shr-image-fetched
(list (current-buffer) start end)
t))))
(defun shr-heading (cont &rest types)
(shr-ensure-paragraph)
(apply #'shr-fontize-cont cont types)
@ -574,10 +594,7 @@ Return a string with image data."
(put-text-property start (point) 'shr-alt alt)
(put-text-property start (point) 'image-url url)
(put-text-property start (point) 'image-displayer
(lambda (url start end)
(url-retrieve url 'shr-image-fetched
(list (current-buffer) start end)
t)))
(shr-image-displayer shr-content-function))
(put-text-property start (point) 'help-echo alt)
(setq shr-state 'image)))))