Commit 6f7e2ffd authored by Julien Danjou's avatar Julien Danjou Committed by Katsumi Yamaoka
Browse files

sieve-manage.el (sieve-manage-capability): Do not bug out when the...

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.
parent 562f5ce5
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.
......
......@@ -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)
......
......@@ -553,13 +553,18 @@ password is remembered in the buffer."
(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))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment