shr.el (shr-image-displayer): Protect function against non-existent image source.
authorKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 17 Nov 2010 08:27:32 +0000 (08:27 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 17 Nov 2010 08:27:32 +0000 (08:27 +0000)
lisp/ChangeLog
lisp/shr.el

index aabcb39..f2e95ba 100644 (file)
@@ -1,5 +1,8 @@
 2010-11-17  Katsumi Yamaoka  <yamaoka@jpl.org>
 
+       * shr.el (shr-image-displayer): Protect function against non-existent
+       image source.
+
        * gnus-art.el (gnus-inhibit-images): New user option.
        (gnus-mime-display-single): Don't display image if it is non-nil.
 
index 2dd33ec..526f812 100644 (file)
@@ -441,19 +441,20 @@ CONTENT-FUNCTION is a function to retrieve an image for a cid url that
 is an argument.  The function to be returned takes three arguments URL,
 START, and END."
   `(lambda (url start end)
-     (if (string-match "\\`cid:" url)
-        ,(when content-function
-           `(let ((image (funcall ,content-function
-                                  (substring url (match-end 0)))))
-              (when image
-                (goto-char start)
-                (shr-put-image image
-                               (prog1
-                                   (buffer-substring-no-properties start end)
-                                 (delete-region start end))))))
-       (url-retrieve url 'shr-image-fetched
-                    (list (current-buffer) start end)
-                    t))))
+     (when url
+       (if (string-match "\\`cid:" url)
+          ,(when content-function
+             `(let ((image (funcall ,content-function
+                                    (substring url (match-end 0)))))
+                (when image
+                  (goto-char start)
+                  (shr-put-image image
+                                 (prog1
+                                     (buffer-substring-no-properties start end)
+                                   (delete-region start end))))))
+        (url-retrieve url 'shr-image-fetched
+                      (list (current-buffer) start end)
+                      t)))))
 
 (defun shr-heading (cont &rest types)
   (shr-ensure-paragraph)