changeset 110075:9ef61fac0063

gnus-html.el: Introduce a new variable, gnus-blocked-images, and use that instead of the w3m variable; by Lars Magne Ingebrigtsen <larsi@gnus.org>.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Tue, 31 Aug 2010 23:38:57 +0000
parents ad9b8f76c61d
children c74caa6fbef5
files doc/misc/ChangeLog doc/misc/gnus.texi lisp/gnus/ChangeLog lisp/gnus/gnus-html.el
diffstat 4 files changed, 43 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/doc/misc/ChangeLog	Tue Aug 31 23:30:11 2010 +0000
+++ b/doc/misc/ChangeLog	Tue Aug 31 23:38:57 2010 +0000
@@ -1,5 +1,7 @@
 2010-08-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
+	* gnus.texi (HTML): Document gnus-blocked-images.
+
 	* message.texi (Wide Reply): Document message-prune-recipient-rules.
 
 2010-08-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
--- a/doc/misc/gnus.texi	Tue Aug 31 23:30:11 2010 +0000
+++ b/doc/misc/gnus.texi	Tue Aug 31 23:38:57 2010 +0000
@@ -12501,10 +12501,22 @@
 If set to @code{gnus-article-html}, Gnus will use the built-in method,
 that's based on @code{curl} and @code{w3m}.
 
+@item gnus-blocked-images
+@vindex gnus-blocked-images
+Images that have @acronym{URL}s that match this regexp won't be
+fetched and displayed.  For instance, do block all @acronym{URL}s that
+have the string ``ads'' in them, do the following:
+
+@lisp
+(setq gnus-blocked-images "ads")
+@end lisp
+
+The default is to block all external images.
+
 @item gnus-html-cache-directory
 @vindex gnus-html-cache-directory
 Gnus will download and cache images according to how
-@code{mm-w3m-safe-url-regexp} is set.  These images will be stored in
+@code{gnus-blocked-images} is set.  These images will be stored in
 this directory.
 
 @item gnus-html-cache-size
--- a/lisp/gnus/ChangeLog	Tue Aug 31 23:30:11 2010 +0000
+++ b/lisp/gnus/ChangeLog	Tue Aug 31 23:38:57 2010 +0000
@@ -1,5 +1,7 @@
 2010-08-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
+	* gnus-html.el (gnus-blocked-images): New variable.
+
 	* message.el (message-prune-recipients): New function.
 	(message-prune-recipient-rules): New variable.
 
--- a/lisp/gnus/gnus-html.el	Tue Aug 31 23:30:11 2010 +0000
+++ b/lisp/gnus/gnus-html.el	Tue Aug 31 23:38:57 2010 +0000
@@ -47,6 +47,11 @@
   :group 'gnus-art
   :type 'integer)
 
+(defcustom gnus-blocked-images "."
+  "Images that have URLs matching this regexp will be blocked."
+  :group 'gnus-art
+  :type 'regexp)
+
 ;;;###autoload
 (defun gnus-article-html (handle)
   (let ((article-buffer (current-buffer)))
@@ -94,23 +99,23 @@
        ((equal tag "img_alt")
 	(when (string-match "src=\"\\([^\"]+\\)" parameters)
 	  (setq url (match-string 1 parameters))
-	  (when (or (null mm-w3m-safe-url-regexp)
-		    (string-match mm-w3m-safe-url-regexp url))
-	    (if (string-match "^cid:\\(.*\\)" url)
-		;; URLs with cid: have their content stashed in other
-		;; parts of the MIME structure, so just insert them
-		;; immediately.
-		(let ((handle (mm-get-content-id
-			       (setq url (match-string 1 url))))
-		      image)
-		  (when handle
-		    (mm-with-part handle
-		      (setq image (gnus-create-image (buffer-string)
-						     nil t))))
-		  (when image
-		    (delete-region start end)
-		    (gnus-put-image image)))
-	      ;; Normal, external URL.
+	  (if (string-match "^cid:\\(.*\\)" url)
+	      ;; URLs with cid: have their content stashed in other
+	      ;; parts of the MIME structure, so just insert them
+	      ;; immediately.
+	      (let ((handle (mm-get-content-id
+			     (setq url (match-string 1 url))))
+		    image)
+		(when handle
+		  (mm-with-part handle
+		    (setq image (gnus-create-image (buffer-string)
+						   nil t))))
+		(when image
+		  (delete-region start end)
+		  (gnus-put-image image)))
+	    ;; 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.
@@ -224,15 +229,15 @@
 
 ;;;###autoload
 (defun gnus-html-prefetch-images (summary)
-  (let (safe-url-regexp urls)
+  (let (blocked-images urls)
     (when (buffer-live-p summary)
       (with-current-buffer summary
-	(setq safe-url-regexp mm-w3m-safe-url-regexp))
+	(setq blocked-images gnus-blocked-images))
       (save-match-data
 	(while (re-search-forward "<img.*src=[\"']\\([^\"']+\\)" nil t)
 	  (let ((url (match-string 1)))
-	    (when (or (null safe-url-regexp)
-		      (string-match safe-url-regexp url))
+	    (when (or (null blocked-images)
+		      (not (string-match blocked-images url)))
 	      (unless (file-exists-p (gnus-html-image-id url))
 		(push url urls)
 		(push (gnus-html-image-id url) urls)