+2010-10-05 Julien Danjou <julien@danjou.info>
+
+ * gnus-html.el (gnus-html-wash-images): Rescale image from cid too.
+ (gnus-html-maximum-image-size): Add this function.
+ (gnus-html-put-image): Use gnus-html-maximum-image-size.
+
+ * sieve-manage.el (sieve-manage-capability): Do not bug out when the
+ server-value of the capability is nil.
+
2010-10-05 Lars Magne Ingebrigtsen <larsi@gnus.org>
* shr.el (shr-tag-em): Add <EM> tag.
;; 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\\)=\"\\([^\"]+\\)"
(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))
(= (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)
(setq sieve-manage-state 'auth)))))
(defun sieve-manage-capability (&optional name value buffer)
+ "Check if capability NAME of server BUFFER match VALUE.
+If it does, return the server value of NAME. If not returns nil.
+If VALUE is nil, do not check VALUE and return server value.
+If NAME is nil, return the full server list of capabilities."
(with-current-buffer (or buffer (current-buffer))
(if (null name)
sieve-manage-capability
- (if (null value)
- (nth 1 (assoc name sieve-manage-capability))
- (when (string-match value (nth 1 (assoc name sieve-manage-capability)))
- (nth 1 (assoc name sieve-manage-capability)))))))
+ (let ((server-value (cadr (assoc name sieve-manage-capability))))
+ (when (or (null value)
+ (and server-value
+ (string-match value server-value)))
+ server-value)))))
(defun sieve-manage-listscripts (&optional buffer)
(with-current-buffer (or buffer (current-buffer))