+2005-09-07 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * spam-report.el (spam-report-gmane): Make it work without
+ X-Report-Spam header. Gmane now only provides Archived-At. This
+ is only used if `spam-report-gmane-use-article-number' is nil.
+ (spam-report-gmane-spam-header): Removed. Not used anymore.
+
+ * nnweb.el (nnweb-google-wash-article): Print a message if article
+ is not available.
+
+2005-09-07 TSUCHIYA Masatoshi <tsuchiya@namazu.org>
+
+ * gnus-art.el (gnus-mime-display-single): Decode text/* parts
+ content before displaying.
+
+2005-09-06 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * mml-smime.el: Remove defvar of gnus-extract-address-components.
+
+2005-09-06 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * mm-view.el (mm-display-inline-fontify): Disable support modes.
+
2005-09-05 Reiner Steib <Reiner.Steib@gmx.de>
* message.el (message-tab-body-function): Fixed mismatched custom
* gnus.el (gnus-group-change-level-function): Ditto.
- * gnus-msg.el (gnus-outgoing-message-group): Ditto.
+ * gnus-msg.el (gnus-outgoing-message-group): Ditto.
* gnus-art.el (gnus-signature-limit)
(gnus-article-mime-part-function): Ditto.
* gnus-util.el (gnus-beginning-of-window): Remove.
(gnus-end-of-window): Remove.
- * lpath.el: Don't bind scroll-margin.
-
2005-07-25 Simon Josefsson <jas@extundo.com>
* pgg.el (pgg-insert-url-with-w3): Don't load w3, it is possible
(forward-line -1)
(setq beg (point)))
(gnus-article-insert-newline)
- (mm-insert-inline handle (mm-get-part handle))
+ (mm-insert-inline handle
+ (let ((charset
+ (mail-content-type-get
+ (mm-handle-type handle) 'charset)))
+ (if (eq charset 'gnus-decoded)
+ (mm-get-part handle)
+ (mm-decode-string (mm-get-part handle)
+ charset))))
(goto-char (point-max))))
;; Do highlighting.
(save-excursion
(buffer-disable-undo)
(mm-insert-part handle)
(require 'font-lock)
- ;; Inhibit font-lock this time (*-mode-hook might run
- ;; `turn-on-font-lock') so that jit-lock may not turn off
- ;; font-lock immediately after this.
- (let ((font-lock-mode t))
- (funcall mode))
- (let ((font-lock-verbose nil))
- ;; I find font-lock a bit too verbose.
- (font-lock-fontify-buffer))
+ (let ((font-lock-maximum-size nil)
+ ;; Disable support modes, e.g., jit-lock, lazy-lock, etc.
+ (font-lock-mode-hook nil)
+ (font-lock-support-mode nil)
+ ;; I find font-lock a bit too verbose.
+ (font-lock-verbose nil))
+ (funcall mode)
+ ;; The mode function might have already turned on font-lock.
+ (unless (symbol-value 'font-lock-mode)
+ (font-lock-fontify-buffer)))
;; By default, XEmacs font-lock uses non-duplicable text
;; properties. This code forces all the text properties
;; to be copied along with the text.
(eval-when-compile (require 'cl))
-(defvar gnus-extract-address-components)
-
(require 'smime)
(require 'mm-decode)
(autoload 'message-narrow-to-headers "message")
;; We have Google's masked e-mail addresses here. :-/
(let ((case-fold-search t))
(goto-char (point-min))
- (delete-region (point-min)
- (1+ (re-search-forward "^<pre>" nil t)))
- (goto-char (point-min))
- (delete-region (- (re-search-forward "^</pre>" nil t) (length "</pre>"))
- (point-max))
- (mm-url-decode-entities)))
+ (if (save-excursion
+ (or (re-search-forward "The requested message.*could not be found."
+ nil t)
+ (not (and (re-search-forward "^<pre>" nil t)
+ (re-search-forward "^</pre>" nil t)))))
+ ;; FIXME: Don't know how to indicate "not found".
+ ;; Should this function throw an error? --rsteib
+ (progn
+ (gnus-message 3 "Requested article not found")
+ (erase-buffer))
+ (delete-region (point-min)
+ (1+ (re-search-forward "^<pre>" nil t)))
+ (goto-char (point-min))
+ (delete-region (- (re-search-forward "^</pre>" nil t) (length "</pre>"))
+ (point-max))
+ (mm-url-decode-entities))))
(defun nnweb-google-parse-1 (&optional Message-ID)
(let ((i 0)
(regexp :value "^nntp\+.*:gmane\."))
:group 'spam-report)
-(defcustom spam-report-gmane-spam-header
- "^X-Report-Spam: http://\\([^/]+\\)\\(.*\\)$"
- "String matching Gmane spam-reporting header. Two match groups are needed."
- :type 'regexp
- :group 'spam-report)
-
(defcustom spam-report-gmane-use-article-number t
"Whether the article number (faster!) or the header should be used."
:type 'boolean
article))
(with-current-buffer nntp-server-buffer
(gnus-request-head article gnus-newsgroup-name)
- (goto-char (point-min))
- (if (re-search-forward spam-report-gmane-spam-header nil t)
- (let* ((host (match-string 1))
- (report (match-string 2))
- (url (format "http://%s%s" host report)))
- (gnus-message 7 "Reporting spam through URL %s..." url)
- (spam-report-url-ping host report))
- (gnus-message 3 "Could not find X-Report-Spam in article %d..."
- article)))))))
+ (let ((case-fold-search t)
+ field host report url)
+ ;; First check for X-Report-Spam because it's more specific to
+ ;; spam reporting than Archived-At. OTOH, all new articles on
+ ;; Gmane don't have X-Report-Spam anymore (unless Lars changes his
+ ;; mind :-)).
+ ;;
+ ;; There might be more than one Archived-At header so we need to
+ ;; find (and transform) the one related to Gmane.
+ (setq field (or (gnus-fetch-field "X-Report-Spam")
+ (gnus-fetch-field "Archived-At")))
+ (setq host (progn
+ (string-match
+ (concat "http://\\([a-z]+\\.gmane\\.org\\)"
+ "\\(/[^:/]+[:/][0-9]+\\)")
+ field)
+ (match-string 1 field)))
+ (setq report (match-string 2 field))
+ (when (string-equal "permalink.gmane.org" host)
+ (setq host "spam.gmane.org"))
+ (setq url (format "http://%s%s" host report))
+ (if (not (and host report url))
+ (gnus-message
+ 3 "Could not find a spam report header in article %d..."
+ article)
+ (gnus-message 7 "Reporting spam through URL %s..." url)
+ (spam-report-url-ping host report))))))))
(defun spam-report-url-ping (host report)
"Ping a host through HTTP, addressing a specific GET resource using
the function specified by `spam-report-url-ping-function'."
+ ;; Example:
+ ;; host: "spam.gmane.org"
+ ;; report: "/gmane.some.group:123456"
(funcall spam-report-url-ping-function host report))
(defun spam-report-url-ping-plain (host report)