Be more defensive about killing the correct buffer
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 18 Feb 2012 13:09:21 +0000 (14:09 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 18 Feb 2012 13:09:21 +0000 (14:09 +0100)
* shr.el (shr-image-fetched): Make sure we really kill the right
buffer.

lisp/ChangeLog
lisp/shr.el

index 9e565fe..4e21742 100644 (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.
index f3d7503..dd0f159 100644 (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."