shr.el (shr-image-fetched): Be more defensive about killing the correct buffer

This commit is contained in:
Lars Ingebrigtsen 2012-02-18 22:28:00 +00:00 committed by Katsumi Yamaoka
parent 37c3b9ee24
commit 0e2cebe57e
2 changed files with 20 additions and 14 deletions

View file

@ -1,3 +1,8 @@
2012-02-18 Lars Ingebrigtsen <larsi@gnus.org>
* shr.el (shr-image-fetched): Make sure we really kill the right
buffer.
2012-02-16 Leo Liu <sdl.web@gmail.com>
* gnus-start.el (gnus-1): Avoid duplicate entries.

View file

@ -524,20 +524,21 @@ the URL of the image to the kill buffer instead."
directory)))))
(defun shr-image-fetched (status buffer start end)
(when (and (buffer-name buffer)
(not (plist-get status :error)))
(url-store-in-cache (current-buffer))
(when (or (search-forward "\n\n" nil t)
(search-forward "\r\n\r\n" nil t))
(let ((data (buffer-substring (point) (point-max))))
(with-current-buffer buffer
(save-excursion
(let ((alt (buffer-substring start end))
(inhibit-read-only t))
(delete-region start end)
(goto-char start)
(funcall shr-put-image-function data alt)))))))
(kill-buffer (current-buffer)))
(let ((image-buffer (current-buffer)))
(when (and (buffer-name buffer)
(not (plist-get status :error)))
(url-store-in-cache image-buffer)
(when (or (search-forward "\n\n" nil t)
(search-forward "\r\n\r\n" nil t))
(let ((data (buffer-substring (point) (point-max))))
(with-current-buffer buffer
(save-excursion
(let ((alt (buffer-substring start end))
(inhibit-read-only t))
(delete-region start end)
(goto-char start)
(funcall shr-put-image-function data alt)))))))
(kill-buffer image-buffer)))
(defun shr-put-image (data alt)
"Put image DATA with a string ALT. Return image."