Synch with Oort Gnus.
authoryamaoka <yamaoka>
Fri, 8 Jun 2001 02:09:02 +0000 (02:09 +0000)
committeryamaoka <yamaoka>
Fri, 8 Jun 2001 02:09:02 +0000 (02:09 +0000)
ChangeLog
contrib/xml.el
lisp/ChangeLog
lisp/gnus-mlspl.el
lisp/lpath.el
lisp/message.el
lisp/nnmail.el
lisp/nnrss.el
texi/ChangeLog
texi/gnus-ja.texi
texi/gnus.texi

index 0d41196..152cece 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-06-08  Katsumi Yamaoka <yamaoka@jpl.org>
+
+       * lisp/lpath.el: Fbind `xml-node-children' for XEmacsen and old FSF
+       Emacsen.
+
 2001-06-07  Katsumi Yamaoka <yamaoka@jpl.org>
 
        * lisp/nnshimbun.el (nnshimbun-request-expire-articles): Prefer the
index 25851e2..a07f449 100644 (file)
@@ -1,6 +1,6 @@
 ;; @(#) xml.el --- XML parser
 
-;; Copyright (C) 2000 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 
 ;; Author: Emmanuel Briot  <briot@gnat.com>
 ;; Maintainer: Emmanuel Briot <briot@gnat.com>
@@ -272,6 +272,8 @@ Returns one of:
          ;;  This was an invalid start tag
          (error "XML: Invalid attribute list")
          ))))
+   (t ;; This is not a tag.
+    (error "XML: Invalid character."))
    ))
 
 (defun xml-parse-attlist (end)
index 953df78..50b4a1d 100644 (file)
@@ -1,3 +1,28 @@
+2001-06-03  Dale Hagglund  <rdh@best.com>
+       
+       * gnus-mlspl.el (gnus-group-split-fancy): Fix generation of split
+       restrict clauses.
+
+2001-06-07 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+       
+       From Benjamin Rutt <brutt+news@bloomington.in.us>
+       
+       * message.el (message-wide-reply-confirm-recipients): New variable.
+
+2001-06-06  Mark Thomas  <mthomas@edrc.cmu.edu>
+
+       * nnmail.el (nnmail-fix-eudora-headers): Change the In-Reply-To
+       fix so it works with XEmacs.
+       
+2001-06-07 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * nnrss.el (nnrss-retrieve-headers): Support description as extra
+       headers.
+
+2001-06-07 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * nnrss.el: Fix a few bugs.
+
 2001-06-05  Simon Josefsson  <jas@extundo.com>
 
        * mm-decode.el (mm-handle-set-external-undisplayer): Don't
index 46ccc99..126c7d2 100644 (file)
@@ -196,12 +196,9 @@ Calling (gnus-group-split-fancy nil nil \"mail.misc\") returns:
                         (list 'any split-regexp)
                         ;; Generate RESTRICTs for SPLIT-EXCLUDEs.
                         (if (listp split-exclude)
-                            (let ((seq split-exclude)
-                                  res)
-                              (while seq
-                                (push (cons '- (pop seq))
-                                      res))
-                              (apply #'nconc (nreverse res)))
+                             (apply #'append 
+                                    (mapcar (lambda (arg) (list '- arg))
+                                            split-exclude))
                           (list '- split-exclude))
                         (list group-clean))
                        split)
index 4d25272..ae2cbb0 100644 (file)
@@ -99,7 +99,7 @@
 (let ((functions-variables
        (cond
        ((featurep 'xemacs)
-        '((propertize xml-parse-region)))
+        '((propertize xml-node-children xml-parse-region)))
        ((>= emacs-major-version 21)
         '((function-max-args smiley-encode-buffer)))
        ((boundp 'MULE)
            coding-system-get compose-mail file-name-extension
            find-coding-systems-region function-max-args get-charset-property
            propertize shell-command-to-string smiley-encode-buffer
-           xml-parse-region)))
+           xml-node-children xml-parse-region)))
        (t
         '((function-max-args
-           propertize smiley-encode-buffer xml-parse-region))))))
+           propertize smiley-encode-buffer
+           xml-node-children xml-parse-region))))))
   (maybe-fbind (car functions-variables))
   (maybe-bind (car (cdr functions-variables))))
 
index 338387b..0cce8e0 100644 (file)
@@ -1345,6 +1345,16 @@ Except if it is nil, use Gnus native MUA; if it is t, use
   :version "21.1"
   :group 'message)
 
+(defcustom message-wide-reply-confirm-recipients nil
+  "Whether to confirm a wide reply to multiple email recipients.
+If this variable is nil, don't ask whether to reply to all recipients.
+If this variable is non-nil, pose the question \"Reply to all
+recipients?\" before a wide reply to multiple recipients.  If the user
+answers yes, reply to all recipients as usual.  If the user answers
+no, only reply back to the author."
+  :group 'message-headers
+  :type 'boolean)
+
 ;;; Internal variables.
 
 (defvar message-sending-message "Sending...")
@@ -4908,7 +4918,12 @@ responses here are directed to other addresses.")))
                                (lambda (addr) (cdr addr)) ccalist ", "))))
            (when (string-match "^ +" (cdr ccs))
              (setcdr ccs (substring (cdr ccs) (match-end 0))))
-           (push ccs follow-to)))))
+           (push ccs follow-to)))
+       ;; Allow the user to be asked whether or not to reply to all
+       ;; recipients in a wide reply.
+       (if (and ccalist wide message-wide-reply-confirm-recipients
+                (not (y-or-n-p "Reply to all recipients?")))
+           (setq follow-to (delq (assoc 'Cc follow-to) follow-to)))))
     follow-to))
 
 ;;;###autoload
index 227f61c..8a9cb7c 100644 (file)
@@ -1121,8 +1121,8 @@ Return the number of characters in the body."
       (beginning-of-line)
       (insert "X-Gnus-Broken-Eudora-"))
     (goto-char (point-min))
-    (when (re-search-forward "^In-Reply-To:[^\n]+\\(\n[ \t]+\\)" nil t)
-      (replace-match "" t t nil 1))))
+    (when (re-search-forward "^\\(In-Reply-To:[^\n]+\\)\n[ \t]+" nil t)
+      (replace-match "\\1" t))))
 
 (custom-add-option 'nnmail-prepare-incoming-header-hook
                   'nnmail-fix-eudora-headers)
index 078a94a..48a1180 100644 (file)
 
 (defvar nnrss-use-local nil)
 
+(defvar nnrss-description-field 'X-Gnus-Description
+  "Field name used for DESCRIPTION.
+To use the description in headers, put this name into `nnmail-extra-headers'.")
+
 (nnoo-define-basics nnrss)
 
 ;;; Interface functions
        (if (setq e (assq article nnrss-group-data))
            (insert (number-to-string (car e)) "\t" ;; number
                    (if (nth 3 e)
-                       (nnrss-string-as-multibyte (nth 3 e)) "")
+                       (nnrss-format-string (nth 3 e)) "")
                    "\t" ;; subject
                    (if (nth 4 e)
-                       (nnrss-string-as-multibyte (nth 4 e)) "")
+                       (nnrss-format-string (nth 4 e))
+                       "(nobody)")
                    "\t" ;;from
                    (or (nth 5 e) "")
                    "\t" ;; date
                    "\t" ;; refs
                    "0" "\t" ;; chars
                    "0" "\t" ;; lines
+                   "" "\t" ;; Xref
+                   (if (memq nnrss-description-field nnmail-extra-headers)
+                       (concat (symbol-name nnrss-description-field)
+                               ": "
+                               (nnrss-format-string (nth 6 e)) "\t")
+                     "")
                    "\n")))))
   'nov)
 
          (erase-buffer)
          (goto-char (point-min))
          (if (nth 3 e)
-             (insert "Subject: " (nnrss-string-as-multibyte (nth 3 e)) "\n"))
+             (insert "Subject: " (nnrss-format-string (nth 3 e)) "\n"))
          (if (nth 4 e)
-             (insert "From: " (nnrss-string-as-multibyte (nth 4 e)) "\n"))
+             (insert "From: " (nnrss-format-string (nth 4 e)) "\n"))
          (if (nth 5 e)
-             (insert "Date: " (nnrss-string-as-multibyte (nth 5 e)) "\n"))
+             (insert "Date: " (nnrss-format-string (nth 5 e)) "\n"))
          (insert "Message-ID: " (format "<%d@%s.nnrss>" (car e) group) "\n")
          (insert "\n")
          (if (nth 6 e)
     (dolist (item (nreverse xml))
        (when (and (listp item)
                  (eq 'item (car item))
-                 (setq url (caddr (assq 'link (cddr item))))
+                 (setq url (nnrss-node-text (assq 'link (cddr item))))
                  (setq url (nnrss-decode-entities-unibyte-string url))
                  (not (gnus-gethash url nnrss-group-hashtb)))
-        (setq subject (caddr (assq 'title (cddr item))))
-        (setq extra (or (caddr (assq 'description (cddr item)))
-                        (caddr (assq 'dc:description (cddr item)))))
-        (setq author (caddr (assq 'dc:creator (cddr item))))
-        (setq date (or (caddr (assq 'dc:date (cddr item)))
+        (setq subject (nnrss-node-text (assq 'title (cddr item))))
+        (setq extra (or (nnrss-node-text (assq 'description (cddr item)))
+                        (nnrss-node-text (assq 'dc:description (cddr item)))))
+        (setq author (nnrss-node-text (assq 'dc:creator (cddr item))))
+        (setq date (or (nnrss-node-text (assq 'dc:date (cddr item)))
                        (message-make-date)))
         (push
          (list
@@ -532,6 +543,13 @@ It is useful when `(setq nnrss-use-local t)'."
     (if changed
        (nnrss-save-server-data ""))))
 
+(defun nnrss-format-string (string)
+  (nnweb-replace-in-string (nnrss-string-as-multibyte string) " *\n *" " "))
+
+(defun nnrss-node-text (node)
+  (if (stringp node) node
+    (mapconcat 'nnrss-node-text (xml-node-children node) "")))
+
 (provide 'nnrss)
 
 ;;; nnrss.el ends here
index 4fddf68..3645414 100644 (file)
@@ -1,3 +1,7 @@
+2001-06-07 16:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus.texi (RSS): Add.
+
 2001-05-31 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * gnus.texi (Setting Marks): Add.
index dc1bd86..6a24dce 100644 (file)
@@ -12732,6 +12732,18 @@ asahi RET an_group RET}\e$B!#\e(B(@sc{an_group} \e$B$r1\Mw$7$?$$5-;v%0%k!<%W$KCV$-4
 \e$B$O\e(B @samp{~/News/rss/} \e$B$G$9!#\e(B
 @end table
 
+\e$B35N,%P%C%U%!$K@bL@$rI=<($5$;$?$$$J$i$P!"0J2<$N%3!<%I$,Lr$KN)$D$G$7$g$&!#\e(B
+
+@lisp
+(add-to-list 'nnmail-extra-headers nnrss-description-field)
+(setq gnus-summary-line-format "%U%R%z%I%(%[%4L: %-15,15f%]%) %s%uX\n")
+
+(defun gnus-user-format-function-X (header)
+  (let ((descr
+        (assq nnrss-description-field (mail-header-extra header))))
+    (if descr (concat "\n\t" (cdr descr)) "")))
+@end lisp
+
 @node Customizing w3
 @subsection w3 \e$B$N%+%9%?%^%$%:\e(B
 @cindex w3
index 6da0766..1a9d267 100644 (file)
@@ -13251,6 +13251,19 @@ The directory where @code{nnrss} stores its files.  The default is
 
 @end table
 
+The following code may be helpful, if you want to show the description in
+the summary buffer.
+
+@lisp
+(add-to-list 'nnmail-extra-headers nnrss-description-field)
+(setq gnus-summary-line-format "%U%R%z%I%(%[%4L: %-15,15f%]%) %s%uX\n")
+
+(defun gnus-user-format-function-X (header)
+  (let ((descr
+        (assq nnrss-description-field (mail-header-extra header))))
+    (if descr (concat "\n\t" (cdr descr)) "")))
+@end lisp
+
 @node Customizing w3
 @subsection Customizing w3
 @cindex w3