changeset 110096:018dd09f6b31

gnus.el, gnus-html.el: Use the deleted text as the image alt text.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Thu, 02 Sep 2010 00:03:57 +0000
parents d87b30cb5a6f
children 19dfa5177fdd
files lisp/gnus/ChangeLog lisp/gnus/gnus-html.el lisp/gnus/gnus.el
diffstat 3 files changed, 26 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Wed Sep 01 23:57:53 2010 +0000
+++ b/lisp/gnus/ChangeLog	Thu Sep 02 00:03:57 2010 +0000
@@ -1,3 +1,11 @@
+2010-09-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+	* gnus-html.el (gnus-html-put-image): Use the deleted text as the image
+	alt text.
+
+	* gnus.el (gnus-string-or): Fix the syntax to not use eval or
+	overshadow variable bindings.
+
 2010-09-01  Teodor Zlatanov  <tzz@lifelogs.com>
 
 	* gnus-html.el (gnus-html-wash-tags)
--- a/lisp/gnus/gnus-html.el	Wed Sep 01 23:57:53 2010 +0000
+++ b/lisp/gnus/gnus-html.el	Thu Sep 02 00:03:57 2010 +0000
@@ -132,17 +132,19 @@
 		    (setq image (gnus-create-image (buffer-string)
 						   nil t))))
 		(when image
-		  (delete-region start end)
-		  (gnus-put-image image)))
+		  (let ((string (buffer-substring start end)))
+		    (delete-region start end)
+		    (gnus-put-image image (gnus-string-or string "*")))))
 	    ;; Normal, external URL.
 	    (when (or (null gnus-blocked-images)
 		      (not (string-match gnus-blocked-images url)))
 	      (let ((file (gnus-html-image-id url)))
 		(if (file-exists-p file)
 		    ;; It's already cached, so just insert it.
-		    (when (gnus-html-put-image file (point))
+		    (let ((string (buffer-substring start end)))
 		      ;; Delete the ALT text.
-		      (delete-region start end))
+		      (delete-region start end)
+		      (gnus-html-put-image file (point) string))
 		  ;; We don't have it, so schedule it for fetching
 		  ;; asynchronously.
 		  (push (list url
@@ -209,13 +211,14 @@
 		 ;; article before the image arrived.
 		 (not (= (marker-position (cadr spec)) (point-min))))
 	(with-current-buffer buffer
-	  (let ((inhibit-read-only t))
-	    (when (gnus-html-put-image file (cadr spec))
-	      (delete-region (1+ (cadr spec)) (caddr spec))))))
+	  (let ((inhibit-read-only t)
+		(string (buffer-substring (cadr spec) (caddr spec))))
+	    (delete-region (cadr spec) (caddr spec))
+	    (gnus-html-put-image file (cadr spec) string))))
       (when images
 	(gnus-html-schedule-image-fetching buffer images)))))
 
-(defun gnus-html-put-image (file point)
+(defun gnus-html-put-image (file point string)
   (when (display-graphic-p)
     (let ((image (ignore-errors
 		   (gnus-create-image file))))
@@ -229,11 +232,14 @@
 			   (= (car (image-size image t)) 30)
 			   (= (cdr (image-size image t)) 30))))
 	    (progn
-	      (gnus-put-image (gnus-html-rescale-image image))
+	      (gnus-put-image (gnus-html-rescale-image image)
+			      (gnus-string-or string "*"))
 	      t)
+	  (insert string)
 	  (when (fboundp 'find-image)
 	    (gnus-put-image (find-image
-			     '((:type xpm :file "lock-broken.xpm")))))
+			     '((:type xpm :file "lock-broken.xpm")))
+			    (gnus-string-or string "*")))
 	  nil)))))
 
 (defun gnus-html-rescale-image (image)
--- a/lisp/gnus/gnus.el	Wed Sep 01 23:57:53 2010 +0000
+++ b/lisp/gnus/gnus.el	Thu Sep 02 00:03:57 2010 +0000
@@ -3289,12 +3289,12 @@
 (defmacro gnus-string-or (&rest strings)
   "Return the first element of STRINGS that is a non-blank string.
 STRINGS will be evaluated in normal `or' order."
-  `(gnus-string-or-1 ',strings))
+  `(gnus-string-or-1 (list ,@strings)))
 
 (defun gnus-string-or-1 (strings)
   (let (string)
     (while strings
-      (setq string (eval (pop strings)))
+      (setq string (pop strings))
       (if (string-match "^[ \t]*$" string)
 	  (setq string nil)
 	(setq strings nil)))