From: Katsumi Yamaoka Date: Tue, 31 Aug 2010 23:38:57 +0000 (+0000) Subject: gnus-html.el: Introduce a new variable, gnus-blocked-images, and use that instead... X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~438^2~48^2~173 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=51dee5ef43bc84f1d45657c293a2ccb7ae7e1b0a;p=emacs.git gnus-html.el: Introduce a new variable, gnus-blocked-images, and use that instead of the w3m variable; by Lars Magne Ingebrigtsen . --- diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index eb2adf7fd20..e142af49ad1 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog @@ -1,5 +1,7 @@ 2010-08-31 Lars Magne Ingebrigtsen + * gnus.texi (HTML): Document gnus-blocked-images. + * message.texi (Wide Reply): Document message-prune-recipient-rules. 2010-08-30 Lars Magne Ingebrigtsen diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index f09490d9a9a..8e2caf5a145 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi @@ -12501,10 +12501,22 @@ 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 -@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 diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index cb96149e538..ecfdcc1ee4e 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,5 +1,7 @@ 2010-08-31 Lars Magne Ingebrigtsen + * gnus-html.el (gnus-blocked-images): New variable. + * message.el (message-prune-recipients): New function. (message-prune-recipient-rules): New variable. diff --git a/lisp/gnus/gnus-html.el b/lisp/gnus/gnus-html.el index c64b9f5f0d1..f568d673345 100644 --- a/lisp/gnus/gnus-html.el +++ b/lisp/gnus/gnus-html.el @@ -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 "