]> git.eshelyaron.com Git - emacs.git/commitdiff
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-690
authorMiles Bader <miles@gnu.org>
Wed, 11 Jan 2006 02:03:24 +0000 (02:03 +0000)
committerMiles Bader <miles@gnu.org>
Wed, 11 Jan 2006 02:03:24 +0000 (02:03 +0000)
Merge from gnus--rel--5.10

Patches applied:

 * gnus--rel--5.10  (patch 174-181)

   - Update from CVS
   - Update from CVS: texi/gnus.texi (RSS): Addition.

2006-01-10  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/gnus/nnrss.el (nnrss-wash-html-in-text-plain-parts): New variable.
   (nnrss-request-article): Render text/plain parts as HTML.

   * lisp/gnus/gnus-art.el (gnus-article-wash-html-with-w3m): No need to narrow
   the buffer.

2006-01-08  Reiner Steib  <Reiner.Steib@gmx.de>

   * lisp/gnus/gnus-cus.el (gnus-group-parameters): Sync posting-style with
   custom definition of `gnus-posting-styles'.

   * lisp/gnus/gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bind
   print-circle.  Suggested by Kalle Olavi Niemitalo <kon@iki.fi>.

2006-01-05  Reiner Steib  <Reiner.Steib@gmx.de>

   * lisp/gnus/gnus-group.el (gnus-useful-groups): Use Gmane for ding. Use
   nntp for bug archive.

2006-01-05  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/gnus/nnrss.el (nnrss-request-article): Fix the way to fill text/plain
   parts.
   (nnrss-normalize-date): New function converts ISO 8601 date into
   RFC822 style.  Suggested by Mark Plaksin <happy@mcplaksin.org>.
   (nnrss-check-group): Use it.

2006-01-03  Rodrigo Ventura <yoda@isr.ist.utl.pt>  (tiny change)

   * lisp/gnus/gnus-xmas.el (gnus-xmas-group-startup-message): Typo
   gnus-splash-face -> gnus-splash.  Fixes starting from a TTY in
   XEmacs.

2006-01-01  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/gnus/gnus-sum.el (gnus-summary-work-articles): Remove useless `min'.

   * lisp/gnus/nnrss.el (nnrss-fetch): Make it fail gracefully when it can't
   fetch a feed.  Suggested by Mark Plaksin <happy@mcplaksin.org>.
   (nnrss-insert-w3): Ditto.

2005-12-21  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/gnus/nnrss.el (nnrss-request-article): Fix last change; fill
   text/plain parts.

2005-12-20  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/gnus/nnrss.el (nnrss-request-article): Replace <br />s with newlines
   in text/plain part.
   (nnrss-check-group): Don't add excessive newline to dc:subject.

2005-12-19  Katsumi Yamaoka  <yamaoka@jpl.org>

   * lisp/gnus/gnus-art.el (gnus-article-delete-text-of-type): Enable it to
   remove MIME buttons associated with multipart/alternative parts.
   (gnus-mime-display-alternative): Tag buttons using `article-type'
   text property.

   * lisp/gnus/gnus-msg.el (gnus-copy-article-buffer): Remove MIME buttons
   associated with multipart/alternative parts.

2005-12-19  Mark Plaksin <happy@mcplaksin.org>  (tiny change)

   * lisp/gnus/nnrss.el (nnrss-check-group): Put the RSS dc:subject in the
   article.

2005-12-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>

   * lisp/gnus/dns.el (query-dns): Make sure we check the buffer size before
   removing tcp headers.

2006-01-10  Katsumi Yamaoka  <yamaoka@jpl.org>

   * man/gnus.texi (RSS): Document nnrss-wash-html-in-text-plain-parts.

2006-01-06  Katsumi Yamaoka  <yamaoka@jpl.org>

   * man/gnus.texi (RSS): Addition.

2005-12-22  Katsumi Yamaoka  <yamaoka@jpl.org>

   * man/gnus.texi (Summary Post Commands): Fix function bound to `S O p'.

2005-12-19  Katsumi Yamaoka  <yamaoka@jpl.org>

   * man/emacs-mime.texi (Display Customization): Add setting example to
   mm-discouraged-alternatives.

12 files changed:
lisp/gnus/ChangeLog
lisp/gnus/dns.el
lisp/gnus/gnus-art.el
lisp/gnus/gnus-cus.el
lisp/gnus/gnus-group.el
lisp/gnus/gnus-msg.el
lisp/gnus/gnus-start.el
lisp/gnus/gnus-sum.el
lisp/gnus/nnrss.el
man/ChangeLog
man/emacs-mime.texi
man/gnus.texi

index c9c5f76c601bdfb9cd5d6b59dc2e64807057bc35..fe3275c8380aabc7ee95c65fa6cf5b4a86ce7d5d 100644 (file)
@@ -1,3 +1,77 @@
+2006-01-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * nnrss.el (nnrss-wash-html-in-text-plain-parts): New variable.
+       (nnrss-request-article): Render text/plain parts as HTML.
+
+       * gnus-art.el (gnus-article-wash-html-with-w3m): No need to narrow
+       the buffer.
+
+2006-01-08  Reiner Steib  <Reiner.Steib@gmx.de>
+
+       * gnus-cus.el (gnus-group-parameters): Sync posting-style with
+       custom definition of `gnus-posting-styles'.
+
+       * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bind
+       print-circle.  Suggested by Kalle Olavi Niemitalo <kon@iki.fi>.
+
+2006-01-05  Reiner Steib  <Reiner.Steib@gmx.de>
+
+       * gnus-group.el (gnus-useful-groups): Use Gmane for ding.  Use
+       nntp for bug archive.
+
+2006-01-05  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * nnrss.el (nnrss-request-article): Fix the way to fill text/plain
+       parts.
+       (nnrss-normalize-date): New function converts ISO 8601 date into
+       RFC822 style.  Suggested by Mark Plaksin <happy@mcplaksin.org>.
+       (nnrss-check-group): Use it.
+
+2006-01-03  Rodrigo Ventura <yoda@isr.ist.utl.pt>  (tiny change)
+
+       * gnus-xmas.el (gnus-xmas-group-startup-message): Typo
+       gnus-splash-face -> gnus-splash.  Fixes starting from a TTY in
+       XEmacs.
+
+2006-01-01  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus-sum.el (gnus-summary-work-articles): Remove useless `min'.
+
+       * nnrss.el (nnrss-fetch): Make it fail gracefully when it can't
+       fetch a feed.  Suggested by Mark Plaksin <happy@mcplaksin.org>.
+       (nnrss-insert-w3): Ditto.
+
+2005-12-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * nnrss.el (nnrss-request-article): Fix last change; fill
+       text/plain parts.
+
+2005-12-20  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * nnrss.el (nnrss-request-article): Replace <br />s with newlines
+       in text/plain part.
+       (nnrss-check-group): Don't add excessive newline to dc:subject.
+
+2005-12-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus-art.el (gnus-article-delete-text-of-type): Enable it to
+       remove MIME buttons associated with multipart/alternative parts.
+       (gnus-mime-display-alternative): Tag buttons using `article-type'
+       text property.
+
+       * gnus-msg.el (gnus-copy-article-buffer): Remove MIME buttons
+       associated with multipart/alternative parts.
+
+2005-12-19  Mark Plaksin <happy@mcplaksin.org>  (tiny change)
+
+       * nnrss.el (nnrss-check-group): Put the RSS dc:subject in the
+       article.
+
+2005-12-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * dns.el (query-dns): Make sure we check the buffer size before
+       removing tcp headers.
+
 2006-01-08  Chong Yidong  <cyd@stupidchicken.com>
 
        * spam.el (spam-group-ham-mark-p, spam-group-spam-mark-p)
index 01c373ba954548d928982e16a7238f3d0f74e334..d73848ca6e524167a7aae619cdac4f3d97539a29 100644 (file)
@@ -343,7 +343,8 @@ If FULLP, return the entire record returned."
            (decf times step))
          (ignore-errors
            (delete-process process))
-         (when tcp-p
+         (when (and tcp-p
+                    (>= (buffer-size) 2))
            (goto-char (point-min))
            (delete-region (point) (+ (point) 2)))
          (unless (zerop (buffer-size))
index ad3c91f35792255ed6bc17a317b34c2ebb79ef0a..77177765821811947a03e31da1d24185dc2e04c1 100644 (file)
@@ -1632,10 +1632,24 @@ Initialized from `text-mode-syntax-table.")
   "Delete text of TYPE in the current buffer."
   (save-excursion
     (let ((b (point-min)))
-      (while (setq b (text-property-any b (point-max) 'article-type type))
-       (delete-region
-        b (or (text-property-not-all b (point-max) 'article-type type)
-              (point-max)))))))
+      (if (eq type 'multipart)
+         ;; Remove MIME buttons associated with multipart/alternative parts.
+         (progn
+           (goto-char b)
+           (while (if (get-text-property (point) 'gnus-part)
+                      (setq b (point))
+                    (when (setq b (next-single-property-change (point)
+                                                               'gnus-part))
+                      (goto-char b)
+                      t))
+             (end-of-line)
+             (skip-chars-forward "\n")
+             (when (eq (get-text-property b 'article-type) 'multipart)
+               (delete-region b (point)))))
+       (while (setq b (text-property-any b (point-max) 'article-type type))
+         (delete-region
+          b (or (text-property-not-all b (point-max) 'article-type type)
+                (point-max))))))))
 
 (defun gnus-article-delete-invisible-text ()
   "Delete all invisible text in the current buffer."
@@ -2500,19 +2514,17 @@ If READ-CHARSET, ask for a coding system."
 (defun gnus-article-wash-html-with-w3m ()
   "Wash the current buffer with emacs-w3m."
   (mm-setup-w3m)
-  (save-restriction
-    (narrow-to-region (point) (point-max))
-    (let ((w3m-safe-url-regexp mm-w3m-safe-url-regexp)
-         w3m-force-redisplay)
-      (w3m-region (point-min) (point-max)))
-    (when (and mm-inline-text-html-with-w3m-keymap
-              (boundp 'w3m-minor-mode-map)
-              w3m-minor-mode-map)
-      (add-text-properties
-       (point-min) (point-max)
-       (list 'keymap w3m-minor-mode-map
-            ;; Put the mark meaning this part was rendered by emacs-w3m.
-            'mm-inline-text-html-with-w3m t)))))
+  (let ((w3m-safe-url-regexp mm-w3m-safe-url-regexp)
+       w3m-force-redisplay)
+    (w3m-region (point-min) (point-max)))
+  (when (and mm-inline-text-html-with-w3m-keymap
+            (boundp 'w3m-minor-mode-map)
+            w3m-minor-mode-map)
+    (add-text-properties
+     (point-min) (point-max)
+     (list 'keymap w3m-minor-mode-map
+          ;; Put the mark meaning this part was rendered by emacs-w3m.
+          'mm-inline-text-html-with-w3m t))))
 
 (defun article-hide-list-identifiers ()
   "Remove list identifies from the Subject header.
@@ -4956,7 +4968,7 @@ If displaying \"text/html\" is discouraged \(see
             ,gnus-mouse-face-prop ,gnus-article-mouse-face
             face ,gnus-article-button-face
             gnus-part ,id
-            gnus-data ,handle))
+            article-type multipart))
          (widget-convert-button 'link from (point)
                                 :action 'gnus-widget-press-button
                                 :button-keymap gnus-widget-button-keymap)
index df10c769315f06c58a90ea3988e39e90d1a5da03..df09fd43e489da3192854861033efd39ffe3b570 100644 (file)
@@ -235,8 +235,11 @@ See `gnus-emphasis-alist'.")
                              (const signature-file)
                              (const organization)
                              (const address)
+                             (const x-face-file)
                              (const name)
-                             (const body))
+                             (const body)
+                             (symbol)
+                             (string :tag "Header"))
                      (string :format "%v"))))
      "post style.
 See `gnus-posting-styles'."))
index 9a2516d2c03cb3d7927d0e49b663914e8d343afc..4246dbe6d86700f651e1d333704997c4bd0d00c4 100644 (file)
@@ -284,14 +284,15 @@ variable."
   :type 'hook)
 
 (defcustom gnus-useful-groups
-  '(("(ding) mailing list mirrored at sunsite.auc.dk"
-     "emacs.ding"
-     (nntp "sunsite.auc.dk"
-          (nntp-address "sunsite.auc.dk")))
-    ("gnus-bug archive"
-     "gnus-bug"
-     (nndir "/ftp@ftp.ifi.uio.no:/pub/emacs/gnus/gnus-bug/"))
-    ("Gnus help group"
+  '(("(ding) mailing list mirrored at gmane.org"
+     "gmane.emacs.gnus.general"
+     (nntp "Gmane"
+          (nntp-address "news.gmane.org")))
+    ("Gnus bug archive"
+     "gnus.gnus-bug"
+     (nntp "news.gnus.org"
+          (nntp-address "news.gnus.org")))
+    ("Local Gnus help group"
      "gnus-help"
      (nndoc "gnus-help"
            (nndoc-article-type mbox)
index eced2a8097a5223988fa19370ff0e3a96890603e..a1efede2a4de9db292f28d0fc74cc2edc3f838c5 100644 (file)
@@ -844,6 +844,7 @@ header line with the old Message-ID."
              (delete-region (point) (point-max))
              (insert yank-string))
            (gnus-article-delete-text-of-type 'annotation)
+           (gnus-article-delete-text-of-type 'multipart)
            (gnus-remove-text-with-property 'gnus-prev)
            (gnus-remove-text-with-property 'gnus-next)
            (gnus-remove-text-with-property 'gnus-decoration)
index 53bcc4be15fb73e4507ab66894ff80b285ae8290..a7ae3eb95fe1afeebf244c6f93f63f75b471ae0c 100644 (file)
@@ -2818,6 +2818,7 @@ If FORCE is non-nil, the .newsrc file is read."
            (print-escape-nonascii t)
            (print-length nil)
            (print-level nil)
+          (print-circle nil)
            (print-escape-newlines t)
           (gnus-killed-list
            (if (and gnus-save-killed-list
index 51f03061d4f35f4edec3da4cd4dcc446cccc2080..cd8d3c03d79326c7fec3e958b36e08f23bb48740 100644 (file)
@@ -6114,7 +6114,7 @@ current article will be taken into consideration."
       (let ((max (max (point) (mark)))
            articles article)
        (save-excursion
-         (goto-char (min (min (point) (mark))))
+         (goto-char (min (point) (mark)))
          (while
              (and
               (push (setq article (gnus-summary-article-number)) articles)
index adef035c830c1a5bdb7b38ce2caca9dafd5090d5..18a54d05d0db881502ac4d374220501321bf607d 100644 (file)
@@ -87,9 +87,14 @@ ARTICLE is the article number of the current headline.")
 (defvar nnrss-compatible-encoding-alist '((iso-8859-1 . windows-1252))
   "Alist of encodings and those supersets.
 The cdr of each element is used to decode data if it is available when
-the car is what the data specify as the encoding. Or, the car is used
+the car is what the data specify as the encoding.  Or, the car is used
 for decoding when the cdr that the data specify is not available.")
 
+(defvar nnrss-wash-html-in-text-plain-parts nil
+  "*Non-nil means render text in text/plain parts as HTML.
+The function specified by the `mm-text-html-renderer' variable will be
+used to render text.  If it is nil, text will simply be folded.")
+
 (nnoo-define-basics nnrss)
 
 ;;; Interface functions
@@ -169,6 +174,10 @@ for decoding when the cdr that the data specify is not available.")
 (deffoo nnrss-close-group (group &optional server)
   t)
 
+(eval-when-compile
+  (defvar mm-text-html-renderer)
+  (defvar mm-text-html-washer-alist))
+
 (deffoo nnrss-request-article (article &optional group server buffer)
   (setq group (nnrss-decode-group-name group))
   (when (stringp article)
@@ -191,10 +200,7 @@ for decoding when the cdr that the data specify is not available.")
        (if (nth 5 e)
            (insert "Date: " (nnrss-format-string (nth 5 e)) "\n"))
        (let ((header (buffer-string))
-             (text (if (nth 6 e)
-                       (mapconcat 'identity
-                                  (delete "" (split-string (nth 6 e) "\n+"))
-                                  " ")))
+             (text (nth 6 e))
              (link (nth 2 e))
              (enclosure (nth 7 e))
              (comments (nth 8 e))
@@ -205,14 +211,55 @@ for decoding when the cdr that the data specify is not available.")
                   (cons '("Newsgroups" . utf-8)
                         rfc2047-header-encoding-alist)
                 rfc2047-header-encoding-alist))
-             rfc2047-encode-encoded-words body)
+             rfc2047-encode-encoded-words body fn)
          (when (or text link enclosure comments)
            (insert "\n")
            (insert "<#multipart type=alternative>\n"
                    "<#part type=\"text/plain\">\n")
            (setq body (point))
            (when text
-             (insert text "\n")
+             (insert text)
+             (goto-char body)
+             (if (and nnrss-wash-html-in-text-plain-parts
+                      (progn
+                        (require 'mm-view)
+                        (setq fn (or (cdr (assq mm-text-html-renderer
+                                                mm-text-html-washer-alist))
+                                     mm-text-html-renderer))))
+                 (progn
+                   (narrow-to-region body (point-max))
+                   (if (functionp fn)
+                       (funcall fn)
+                     (apply (car fn) (cdr fn)))
+                   (widen)
+                   (goto-char body)
+                   (re-search-forward "[^\t\n ]" nil t)
+                   (beginning-of-line)
+                   (delete-region body (point))
+                   (goto-char (point-max))
+                   (skip-chars-backward "\t\n ")
+                   (end-of-line)
+                   (delete-region (point) (point-max))
+                   (insert "\n"))
+               (while (re-search-forward "\n+" nil t)
+                 (replace-match " "))
+               (goto-char body)
+               ;; See `nnrss-check-group', which inserts "<br /><br />".
+               (when (search-forward "<br /><br />" nil t)
+                 (if (eobp)
+                     (replace-match "\n")
+                   (replace-match "\n\n")))
+               (unless (eobp)
+                 (let ((fill-column default-fill-column)
+                       (window (get-buffer-window nntp-server-buffer)))
+                   (when window
+                     (setq fill-column
+                           (max 1 (/ (* (window-width window) 7) 8))))
+                   (fill-region (point) (point-max))
+                   (goto-char (point-max))
+                   ;; XEmacs version of `fill-region' inserts newline.
+                   (unless (bolp)
+                     (insert "\n")))))
              (when (or link enclosure)
                (insert "\n")))
            (when link
@@ -362,7 +409,11 @@ otherwise return nil."
        ;; FIXME: shouldn't binding `coding-system-for-read' be moved
        ;; to `mm-url-insert'?
        (let ((coding-system-for-read 'binary))
-         (mm-url-insert url)))
+         (condition-case err
+             (mm-url-insert url)
+           (error (if (or debug-on-quit debug-on-error)
+                      (signal (car err) (cdr err))
+                    (message "nnrss: Failed to fetch %s" url))))))
       (nnheader-remove-cr-followed-by-lf)
       ;; Decode text according to the encoding attribute.
       (when (setq cs (nnrss-get-encoding))
@@ -414,6 +465,74 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
       (unless (assoc (car elem) nnrss-group-alist)
        (insert (prin1-to-string (car elem)) " 0 1 y\n")))))
 
+(eval-and-compile (autoload 'timezone-parse-date "timezone"))
+
+(defun nnrss-normalize-date (date)
+  "Return a date string of DATE in the RFC822 style.
+This function handles the ISO 8601 date format described in
+<URL:http://www.w3.org/TR/NOTE-datetime>, and also the RFC822 style
+which RSS 2.0 allows."
+  (let (case-fold-search vector year month day time zone cts)
+    (cond ((null date))
+         ;; RFC822
+         ((string-match " [0-9]+ " date)
+          (setq vector (timezone-parse-date date)
+                year (string-to-number (aref vector 0)))
+          (when (>= year 1969)
+            (setq month (string-to-number (aref vector 1))
+                  day (string-to-number (aref vector 2)))
+            (unless (>= (length (setq time (aref vector 3))) 3)
+              (setq time "00:00:00"))
+            (when (and (setq zone (aref vector 4))
+                       (not (string-match "\\`[A-Z+-]" zone)))
+              (setq zone nil))))
+         ;; ISO 8601
+         ((string-match
+           (eval-when-compile
+             (concat
+              ;; 1. year
+              "\\(199[0-9]\\|20[0-9][0-9]\\)"
+              "\\(-"
+              ;; 3. month
+              "\\([01][0-9]\\)"
+              "\\(-"
+              ;; 5. day
+              "\\([0-3][0-9]\\)"
+              "\\)?\\)?\\(T"
+              ;; 7. hh:mm
+              "\\([012][0-9]:[0-5][0-9]\\)"
+              "\\("
+              ;; 9. :ss
+              "\\(:[0-5][0-9]\\)"
+              "\\(\\.[0-9]+\\)?\\)?\\)?"
+              ;; 13+14,15,16. zone
+              "\\(\\(\\([+-][012][0-9]\\):\\([0-5][0-9]\\)\\)"
+              "\\|\\([+-][012][0-9][0-5][0-9]\\)"
+              "\\|\\(Z\\)\\)?"))
+           date)
+          (setq year (string-to-number (match-string 1 date))
+                month (string-to-number (or (match-string 3 date) "1"))
+                day (string-to-number (or (match-string 5 date) "1"))
+                time (if (match-beginning 9)
+                         (substring date (match-beginning 7) (match-end 9))
+                       (concat (or (match-string 7 date) "00:00") ":00"))
+                zone (cond ((match-beginning 13)
+                            (concat (match-string 13 date)
+                                    (match-string 14 date)))
+                           ((match-beginning 16) ;; Z
+                            "+0000")
+                           (t ;; nil if zone is not provided.
+                            (match-string 15 date))))))
+    (if month
+       (progn
+         (setq cts (current-time-string (encode-time 0 0 0 day month year)))
+         (format "%s, %02d %s %04d %s%s"
+                 (substring cts 0 3) day (substring cts 4 7) year time
+                 (if zone
+                     (concat " " zone)
+                   "")))
+      (message-make-date))))
+
 ;;; data functions
 
 (defun nnrss-read-server-data (server)
@@ -497,7 +616,11 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
 
 (defun nnrss-insert-w3 (url)
   (mm-with-unibyte-current-buffer
-    (mm-url-insert url)))
+    (condition-case err
+       (mm-url-insert url)
+      (error (if (or debug-on-quit debug-on-error)
+                (signal (car err) (cdr err))
+              (message "nnrss: Failed to fetch %s" url))))))
 
 (defun nnrss-decode-entities-string (string)
   (if string
@@ -532,7 +655,7 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
 ;;; Snarf functions
 
 (defun nnrss-check-group (group server)
-  (let (file xml subject url extra changed author date
+  (let (file xml subject url extra changed author date feed-subject
             enclosure comments rss-ns rdf-ns content-ns dc-ns)
     (if (and nnrss-use-local
             (file-exists-p (setq file (expand-file-name
@@ -575,12 +698,14 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
        (setq extra (or extra
                        (nnrss-node-text content-ns 'encoded item)
                        (nnrss-node-text rss-ns 'description item)))
+       (if (setq feed-subject (nnrss-node-text dc-ns 'subject item))
+           (setq extra (concat feed-subject "<br /><br />" extra)))
        (setq author (or (nnrss-node-text rss-ns 'author item)
                         (nnrss-node-text dc-ns 'creator item)
                         (nnrss-node-text dc-ns 'contributor item)))
-       (setq date (or (nnrss-node-text dc-ns 'date item)
-                      (nnrss-node-text rss-ns 'pubDate item)
-                      (message-make-date)))
+       (setq date (nnrss-normalize-date
+                   (or (nnrss-node-text dc-ns 'date item)
+                       (nnrss-node-text rss-ns 'pubDate item))))
        (setq comments (nnrss-node-text rss-ns 'comments item))
        (when (setq enclosure (cadr (assq (intern (concat rss-ns "enclosure")) item)))
          (let ((url (cdr (assq 'url enclosure)))
index 36085b48d7b2cfa041fdf5e17f3dcb9d681e0551..16e9373c5b3aa0236f339d9cbacc2e9925af1681 100644 (file)
@@ -1,3 +1,20 @@
+2006-01-10  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus.texi (RSS): Document nnrss-wash-html-in-text-plain-parts.
+
+2006-01-06  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus.texi (RSS): Addition.
+
+2005-12-22  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus.texi (Summary Post Commands): Fix function bound to `S O p'.
+
+2005-12-19  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * emacs-mime.texi (Display Customization): Add setting example to
+       mm-discouraged-alternatives.
+
 2006-01-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * flymake.texi (Obtaining Flymake): Remove chapter since Emacs's
index d98fd4091bb456f90741f5d64583ff904c46fdd7..9df33969bec4cb9c8d1c010d453b08022e8e0ef4 100644 (file)
@@ -323,10 +323,28 @@ you could say something like:
 @end lisp
 
 Adding @code{"image/.*"} might also be useful.  Spammers use it as the
-prefered part of @samp{multipart/alternative} messages.  See also
+prefered part of @samp{multipart/alternative} messages, and you might
+not notice there are other parts.  See also
 @code{gnus-buttonized-mime-types} (@pxref{MIME Commands, ,MIME Commands,
 gnus, Gnus Manual}), to which adding @code{"multipart/alternative"}
 enables you to choose manually one of two types those mails include.
+For example, you can set those variables like:
+
+@lisp
+(setq gnus-buttonized-mime-types
+      '("multipart/alternative" "multipart/signed")
+      mm-discouraged-alternatives
+      '("text/html" "image/.*"))
+@end lisp
+
+In this case, Gnus will display radio buttons for such a kind of spam
+message as follows:
+
+@example
+1.  (*) multipart/alternative  ( ) image/gif
+
+2.  (*) text/plain          ( ) text/html
+@end example
 
 @item mm-inline-large-images
 @vindex mm-inline-large-images
index ad4343de5d352ea0f52442ef6091132f7dfb2b46..df3b1db78740463afffb1fc12fc437c0517c6895 100644 (file)
@@ -5491,7 +5491,7 @@ default, the message is decoded and forwarded as an rfc822 @acronym{MIME} sectio
 @cindex digests
 @cindex making digests
 Digest the current series and forward the result to a newsgroup
-(@code{gnus-uu-digest-mail-forward}).  This command uses the
+(@code{gnus-uu-digest-post-forward}).  This command uses the
 process/prefix convention.
 
 @item S u
@@ -15886,6 +15886,10 @@ the value of @code{default-file-name-coding-system}.  If you are using
 XEmacs and want to use non-@acronym{ASCII} group names, you should set
 the value for the @code{nnmail-pathname-coding-system} variable properly.
 
+The @code{nnrss} back end generates @samp{multipart/alternative}
+@acronym{MIME} articles in which each contains a @samp{text/plain} part
+and a @samp{text/html} part.
+
 @cindex OPML
 You can also use the following commands to import and export your
 subscriptions from a file in @acronym{OPML} format (Outline Processor
@@ -15923,6 +15927,15 @@ If you set @code{nnrss-use-local} to @code{t}, @code{nnrss} will read
 the feeds from local files in @code{nnrss-directory}.  You can use
 the command @code{nnrss-generate-download-script} to generate a
 download script using @command{wget}.
+
+@item nnrss-wash-html-in-text-plain-parts
+Non-@code{nil} means that @code{nnrss} renders text in @samp{text/plain}
+parts as @acronym{HTML}.  The function specified by the
+@code{mm-text-html-renderer} variable (@pxref{Display Customization,
+,Display Customization, emacs-mime, The Emacs MIME Manual}) will be used
+to render text.  If it is @code{nil}, which is the default, text will
+simply be folded.  Leave it @code{nil} if you prefer to see
+@samp{text/html} parts.
 @end table
 
 The following code may be helpful, if you want to show the description in
@@ -15940,6 +15953,7 @@ the summary buffer.
 
 The following code may be useful to open an nnrss url directly from the
 summary buffer.
+
 @lisp
 (require 'browse-url)
 
@@ -15962,6 +15976,31 @@ summary buffer.
 (add-to-list 'nnmail-extra-headers nnrss-url-field)
 @end lisp
 
+Even if you have added @code{"text/html"} to the
+@code{mm-discouraged-alternatives} variable (@pxref{Display
+Customization, ,Display Customization, emacs-mime, The Emacs MIME
+Manual}) since you don't want to see @acronym{HTML} parts, it might be
+more useful especially in @code{nnrss} groups to display
+@samp{text/html} parts.  Here's an example of setting
+@code{mm-discouraged-alternatives} as a group parameter (@pxref{Group
+Parameters}) in order to display @samp{text/html} parts only in
+@code{nnrss} groups:
+
+@lisp
+;; @r{Set the default value of @code{mm-discouraged-alternatives}.}
+(eval-after-load "gnus-sum"
+  '(add-to-list
+    'gnus-newsgroup-variables
+    '(mm-discouraged-alternatives
+      . '("text/html" "image/.*"))))
+
+;; @r{Display @samp{text/html} parts in @code{nnrss} groups.}
+(add-to-list
+ 'gnus-parameters
+ '("\\`nnrss:" (mm-discouraged-alternatives nil)))
+@end lisp
+
+
 @node Customizing W3
 @subsection Customizing W3
 @cindex W3