summaryrefslogtreecommitdiff
path: root/lisp/gnus/gnus-html.el
diff options
context:
space:
mode:
authorJulien Danjou <julien@danjou.info>2010-10-05 13:19:07 +0000
committerKatsumi Yamaoka <yamaoka@jpl.org>2010-10-05 13:19:07 +0000
commit6f7e2ffd5e39425cedf22aa444d7fb642840e52b (patch)
tree32546339e8ef2cb1a94d8a34f9810cb76786b550 /lisp/gnus/gnus-html.el
parent562f5ce55c90f66679adc959c8aa9cc4a9bf0c83 (diff)
downloademacs-6f7e2ffd5e39425cedf22aa444d7fb642840e52b.tar.gz
sieve-manage.el (sieve-manage-capability): Do not bug out when the server-value of the capability is nil.
gnus-html.el (gnus-html-wash-images): Rescale image from cid too.
Diffstat (limited to 'lisp/gnus/gnus-html.el')
-rw-r--r--lisp/gnus/gnus-html.el44
1 files changed, 23 insertions, 21 deletions
diff --git a/lisp/gnus/gnus-html.el b/lisp/gnus/gnus-html.el
index bfbdc41e98c..d30b574b55e 100644
--- a/lisp/gnus/gnus-html.el
+++ b/lisp/gnus/gnus-html.el
@@ -191,17 +191,16 @@ CHARS is a regexp-like character alternative (e.g., \"[)$]\")."
;; URLs with cid: have their content stashed in other
;; parts of the MIME structure, so just insert them
;; immediately.
- (let ((handle (mm-get-content-id
- (setq url (match-string 1 url))))
- image)
- (when handle
- (mm-with-part handle
- (setq image (gnus-create-image (buffer-string)
- nil t))))
+ (let* ((handle (mm-get-content-id
+ (setq url (match-string 1 url))))
+ (image (when handle
+ (gnus-create-image (mm-with-part handle (buffer-string))
+ nil t))))
(when image
(let ((string (buffer-substring start end)))
(delete-region start end)
- (gnus-put-image image (gnus-string-or string "*") 'cid)
+ (gnus-put-image (gnus-rescale-image image (gnus-html-maximum-image-size))
+ (gnus-string-or string "*") 'cid)
(gnus-add-image 'cid image))))
;; Normal, external URL.
(let ((alt-text (when (string-match "\\(alt\\|title\\)=\"\\([^\"]+\\)"
@@ -398,7 +397,22 @@ Return a string with image data."
(search-forward "\r\n\r\n" nil t))
(buffer-substring (point) (point-max)))))
+(defun gnus-html-maximum-image-size ()
+ "Return the maximum size of an image according to `gnus-max-image-proportion'."
+ (let ((edges (gnus-window-inside-pixel-edges
+ (get-buffer-window (current-buffer)))))
+ ;; (width . height)
+ (cons
+ ;; Aimed width
+ (truncate
+ (* gnus-max-image-proportion
+ (- (nth 2 edges) (nth 0 edges))))
+ ;; Aimed height
+ (truncate (* gnus-max-image-proportion
+ (- (nth 3 edges) (nth 1 edges)))))))
+
(defun gnus-html-put-image (data url &optional alt-text)
+ "Put an image with DATA from URL and optional ALT-TEXT."
(when (gnus-graphic-display-p)
(let* ((start (text-property-any (point-min) (point-max)
'gnus-image-url url))
@@ -434,19 +448,7 @@ Return a string with image data."
(= (car size) 30)
(= (cdr size) 30))))
;; Good image, add it!
- (let ((image (gnus-rescale-image
- image
- (let ((edges (gnus-window-inside-pixel-edges
- (get-buffer-window (current-buffer)))))
- ;; (width . height)
- (cons
- ;; Aimed width
- (truncate
- (* gnus-max-image-proportion
- (- (nth 2 edges) (nth 0 edges))))
- ;; Aimed height
- (truncate (* gnus-max-image-proportion
- (- (nth 3 edges) (nth 1 edges)))))))))
+ (let ((image (gnus-rescale-image image (gnus-html-maximum-image-size))))
(delete-region start end)
(gnus-put-image image alt-text 'external)
(gnus-put-text-property start (point) 'help-echo alt-text)