changeset 111578:312237f41f80

shr.el (shr-image-displayer): Protect function against non-existent image source.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Wed, 17 Nov 2010 08:28:15 +0000
parents db20adbc4108
children 4433803ef920
files lisp/gnus/ChangeLog lisp/gnus/shr.el
diffstat 2 files changed, 17 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Wed Nov 17 07:22:19 2010 +0000
+++ b/lisp/gnus/ChangeLog	Wed Nov 17 08:28:15 2010 +0000
@@ -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.
 
--- a/lisp/gnus/shr.el	Wed Nov 17 07:22:19 2010 +0000
+++ b/lisp/gnus/shr.el	Wed Nov 17 08:28:15 2010 +0000
@@ -441,19 +441,20 @@
 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)