Introduce a new variable, gnus-blocked-images, and use that instead of the w3m variable.
authorLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Tue, 31 Aug 2010 15:06:34 +0000 (17:06 +0200)
committerLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Tue, 31 Aug 2010 15:06:34 +0000 (17:06 +0200)
lisp/ChangeLog
lisp/gnus-html.el
texi/ChangeLog
texi/gnus.texi

index 0b4b03f..3265797 100644 (file)
@@ -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.
 
index cf0299e..7a33016 100644 (file)
   :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)))
        ((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.
 
 ;;;###autoload
 (defun gnus-html-prefetch-images (summary)
-  (let (safe-url-regexp urls)
+  (let (blocked-images urls)
     (when (buffer-live-p summary)
       (save-excursion
        (set-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)
index 5838ce0..3085dcd 100644 (file)
@@ -1,6 +1,8 @@
 2010-08-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * message.texi (Wide Reply): Document message-prune-recipient-rules. 
+       * 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>
 
@@ -21,7 +23,7 @@
 2010-08-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus.texi (Asynchronous Fetching): Document
-       gnus-async-post-fetch-function. 
+       gnus-async-post-fetch-function.
        (HTML): Made into its own section.
 
 2010-06-24  Glenn Morris  <rgm@gnu.org>
index 913743e..5bbbbde 100644 (file)
@@ -12501,6 +12501,18 @@ section only describes the default method.
 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