sync up with MainBranch .. gnus-6_7_3
authorichikawa <ichikawa>
Fri, 26 Jun 1998 13:52:16 +0000 (13:52 +0000)
committerichikawa <ichikawa>
Fri, 26 Jun 1998 13:52:16 +0000 (13:52 +0000)
28 files changed:
ChangeLog
lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-cache.el
lisp/gnus-cus.el
lisp/gnus-msg.el
lisp/gnus-picon.el
lisp/gnus-salt.el
lisp/gnus-score.el
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/gnus-uu.el
lisp/gnus.el
lisp/message.el
lisp/nnagent.el
lisp/nnfolder.el
lisp/nngateway.el
lisp/nnheader.el
lisp/nnkiboze.el
lisp/nnmail.el
lisp/nntp.el
lisp/nnvirtual.el
readme
texi/ChangeLog
texi/gnus-ja.texi
texi/gnus.texi
texi/message.texi

index d09700b..fd0d0d4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,93 @@
+1998-06-26  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.7.3.
+
+       * lisp/gnus-sum.el (gnus-summary-move-article): Use
+       `gnus-request-article-this-buffer'.
+       (gnus-request-partial-message): Likewise.
+
+       * lisp/gnus-art.el (gnus-article-prepare): Use
+       `gnus-request-article-this-buffer'.
+       (gnus-request-article-this-buffer): Renamed from
+       `gnus-request-original-article'; abolish conventional
+       implementation.
+       - Abolish unused setting for `mime-view-show-summary-method'.
+
+1998-06-26  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * readme, texi/ChangeLog, texi/gnus.texi, texi/message.texi,
+       lisp/ChangeLog, lisp/gnus.el, lisp/nnmail.el, lisp/nnheader.el,
+       lisp/nngateway.el, lisp/nnfolder.el, lisp/nnagent.el,
+       lisp/message.el, lisp/gnus-sum.el, lisp/gnus-score.el,
+       lisp/gnus-salt.el, lisp/gnus-msg.el, lisp/gnus-cus.el,
+       lisp/gnus-cache.el, lisp/gnus-art.el: Sync up with gnus-5_6_15.
+
+1998-06-24  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * texi/gnus.texi, texi/message.texi, texi/ChangeLog: Sync up with
+       Gnus 5.6.13.
+
+1998-06-14  Tatsuya Ichikawa  <t-ichi@po.shiojiri.ne.jp>
+       
+       * Sync up with Gnus 5.6.13.
+       
+1998-06-24  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus-art.el (gnus-article-display-mime-message): Don't
+       `save-excursion'.
+       (gnus-article-prepare): Use `mime-fetch-field' instead of
+       `mime-entity-fetch-field'.
+
+1998-06-19  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus-art.el (gnus-article-display-mime-message): Use
+       `mime-display-message' instead of `mime-view-buffer'.
+       (gnus-article-display-traditional-message): Set
+       `gnus-article-buffer'.
+       (gnus-article-display-message-with-encoded-word): Modify for
+       `gnus-article-display-traditional-message'.
+       (gnus-article-prepare): Use `mime-parse-buffer' and
+       `mime-entity-fetch-field'; don't set gnus-article-buffer.
+
+1998-06-19  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus-sum.el (gnus-summary-move-article): Use
+       `gnus-request-original-article' instead of
+       `gnus-request-article-this-buffer'.
+
+1998-06-19  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * texi/gnus-ja.texi, texi/gnus.texi (Using MIME): Modify
+       description about new display mechanism.
+
+1998-06-19  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.6.0.
+       (gnus-version): Modify for this branch.
+
+       * lisp/gnus-art.el (gnus-article-display-method-for-mime): New
+       variable; abolish `gnus-show-mime-method'.
+       (gnus-article-display-method-for-encoded-word): New variable;
+       abolish `gnus-decode-encoded-word-method'.
+       (gnus-article-display-method-for-traditional): New variable.
+       (gnus-article-display-mime-message): New function; abolish
+       `gnus-article-preview-mime-message'.
+       (gnus-article-display-traditional-message): New function.
+       (gnus-article-display-message-with-encoded-word): New function;
+       abolish `gnus-article-decode-encoded-word'.
+       (gnus-article-prepare): Change display mechanism; use
+       `gnus-request-original-article' instead of
+       `gnus-request-article-this-buffer'.
+       (gnus-request-original-article): New function.
+
+1998-06-22  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.6.0.
+       (gnus-version): Modify for SEMI 1.8.
+
+       * lisp/gnus-sum.el: Modify for interface change in SEMI 1.8 about
+       automatic message/partial combining.
+
 1998-06-19  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
        * lisp/gnus.el (gnus-version-number): Update to 6.5.0.
index 7054db5..7da8130 100644 (file)
@@ -1,3 +1,151 @@
+Fri Jun 26 04:23:12 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.15 is released.
+
+Fri Jun 26 03:39:32 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * nnfolder.el (nnfolder-request-replace-article): Delete old
+       delimiter. 
+
+       * gnus-msg.el (gnus-summary-reply): Use it.
+
+       * message.el (message-reply): Removed parameter.
+       (message-wide-reply): Ditto.
+
+       * gnus-msg.el (gnus-msg-treat-broken-reply-to): New function.
+
+       * gnus-art.el (gnus-check-group-server): New function.
+       (gnus-request-article-this-buffer): Don't try to waken the server
+       before needing to.
+
+Thu Jun 25 10:35:48 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-sum.el (gnus-summary-delete-article): Sort the articles
+       before deleting.
+
+       * nngateway.el (nngateway-request-post): Return success.
+
+       * nnheader.el (nnheader-insert-file-contents): Bind more hooks.
+
+       * gnus-sum.el (gnus-summary-limit-to-age): Reverse logic.
+
+       * gnus-score.el (gnus-summary-score-entry): Removed interactive
+       spec. 
+       ((gnus-summary-score-map "V" gnus-summary-mode-map)): Removed
+       keystroke. 
+
+       * gnus-art.el (gnus-article-show-summary): Position point.
+
+       * gnus-cache.el (gnus-cache-update-article): Change group first.
+
+       * gnus.el (gnus-short-group-name): Collapse more.
+
+Thu Jun 25 08:48:06 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.14 is released.
+
+Thu Jun 25 05:13:31 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-sum.el (gnus-rebuild-thread): Accept a line argument.
+       (gnus-rebuild-thread): Would skip around a lot when `P'-ing past
+       the beginning.
+
+       * gnus-msg.el (gnus-post-method): Present all known servers if
+       `C-u 0'.
+
+       * gnus-salt.el (gnus-pick-mode-map): Reinstated keymap.
+
+       * gnus-sum.el (gnus-build-sparse-threads): Put the proper date
+       in. 
+
+Wed Jun 24 07:52:30 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.13 is released.
+
+Wed Jun 24 07:47:04 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-topic.el (gnus-topic-rename): Disallow "nil".
+
+Wed Jun 24 07:33:17 1998  Vladimir Alexiev  <vladimir@cs.ualberta.ca>
+
+       * nnvirtual.el (nnvirtual-update-xref-header): Regexp-quote group
+       name. 
+
+Wed Jun 24 06:15:27 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-sum.el (gnus-build-sparse-threads): Give all the sparse
+       articles the date of the current child.  
+
+       * gnus-topic.el (gnus-group-topic-parameters): Didn't compute.
+
+Wed Jun 24 03:27:44 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Gnus v5.6.12 is released.
+
+Wed Jun 10 11:06:35 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+       * message.el (message-mail-other-window): Bind message-this-is-mail.
+       (message-mail-other-frame): Likewise.
+       (message-news-other-window): Bind message-this-is-news.
+       (message-news-other-frame): Likewise.
+
+1998-06-09  Sam Steingold  <sds@goems.com>
+
+        * gnus-uu.el (gnus-uu-default-view-rules): make sed kill ^M only
+        at the end of line.
+
+1998-06-05  Hrvoje Niksic  <hniksic@srce.hr>
+
+       * nnmail.el (nnmail-get-split-group): Don't regexp-quote
+       nnmail-procmail-suffix.
+
+Wed Jun 24 03:04:05 1998  Kim-Minh Kaplan  <kaplan@sky.fr>
+
+       * gnus-sum.el (gnus-build-get-header): Fix obarray.
+
+Wed Jun 24 02:49:57 1998  Castor  <castor@my-dejanews.com>
+
+       * nntp.el (nntp-open-ssl-stream): 
+
+Wed Jun 24 02:31:46 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-sum.el (gnus-nov-parse-line): Cleaned up.
+       (gnus-build-all-threads): Put things in the wrong obarray.
+
+Wed Jun 24 01:43:26 1998  Decklin Foster  <djarum@base.org>
+
+       * nngateway.el (nngateway-mail2news-header-transformation): New
+       function. 
+
+Wed Jun 24 00:25:45 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * message.el (message-shorten-references): New function.
+       (message-header-format-alist): Use it.
+
+       * gnus-start.el (gnus-always-read-dribble-file): Customized.
+
+       * message.el (message-generate-new-buffers): Dox fox.
+
+Tue Jun 23 23:58:48 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-topic.el (gnus-topic-prepare-topic): Respect visible topic
+       param. 
+       (gnus-topic-hierarchical-parameters): New function.
+
+1998-06-02  Didier Verna  <verna@inf.enst.fr>
+
+       * gnus-picon.el (gnus-get-buffer-name): use get-buffer-create
+       instead of get-buffer 
+
+Wed Jun  3 04:41:45 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * nnkiboze.el (nnkiboze-request-delete-group): Delete .newsrc
+       file. 
+
+       * nnmail.el (nnmail-article-group): Nuke looong lines.
+
+       * gnus-art.el (gnus-button-alist): Buggy default.
+
 Wed Jun  3 04:03:37 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Gnus v5.6.11 is released.
index 0508d68..11c72f7 100644 (file)
@@ -368,14 +368,23 @@ be used as possible file names."
   :group 'gnus-article-mime
   :type 'boolean)
 
-(defcustom gnus-show-mime-method 'gnus-article-preview-mime-message
-  "Function to process a MIME message.
+(defcustom gnus-article-display-method-for-mime
+  'gnus-article-display-mime-message
+  "Function to display a MIME message.
 The function is called from the article buffer."
   :group 'gnus-article-mime
   :type 'function)
 
-(defcustom gnus-decode-encoded-word-method 'gnus-article-decode-encoded-word
-  "*Function to decode MIME encoded words.
+(defcustom gnus-article-display-method-for-encoded-word
+  'gnus-article-display-message-with-encoded-word
+  "*Function to display a message with MIME encoded-words.
+The function is called from the article buffer."
+  :group 'gnus-article-mime
+  :type 'function)
+
+(defcustom gnus-article-display-method-for-traditional
+  'gnus-article-display-traditional-message
+  "*Function to display a traditional message.
 The function is called from the article buffer."
   :group 'gnus-article-mime
   :type 'function)
@@ -1948,7 +1957,8 @@ commands:
 ;;; @@ article filters
 ;;;
 
-(defun gnus-article-preview-mime-message ()
+(defun gnus-article-display-mime-message ()
+  "Article display method for MIME message."
   (make-local-variable 'mime-button-mother-dispatcher)
   (setq mime-button-mother-dispatcher
        (function gnus-article-push-button))
@@ -1957,22 +1967,32 @@ commands:
            (set-buffer gnus-summary-buffer)
            default-mime-charset))
        )
-    (save-excursion
-      (mime-view-buffer gnus-original-article-buffer gnus-article-buffer
-                       nil gnus-article-mode-map)
-      ))
+    (mime-display-message mime-message-structure
+                         gnus-article-buffer nil gnus-article-mode-map)
+    )
   (run-hooks 'gnus-mime-article-prepare-hook)
   )
 
-(defun gnus-article-decode-encoded-word ()
-  "Header filter for gnus-article-mode."
+(defun gnus-article-display-traditional-message ()
+  "Article display method for traditional message."
+  (set-buffer gnus-article-buffer)
+  (let (buffer-read-only)
+    (erase-buffer)
+    (insert-buffer-substring gnus-original-article-buffer)
+    ))
+
+(defun gnus-article-display-message-with-encoded-word ()
+  "Article display method for message with encoded-words."
   (let ((charset (save-excursion
                   (set-buffer gnus-summary-buffer)
                   default-mime-charset)))
-    (eword-decode-header charset)
-    (goto-char (point-min))
-    (if (search-forward "\n\n" nil t)
-       (decode-mime-charset-region (match-end 0) (point-max) charset))
+    (gnus-article-display-traditional-message)
+    (let (buffer-read-only)
+      (eword-decode-header charset)
+      (goto-char (point-min))
+      (if (search-forward "\n\n" nil t)
+         (decode-mime-charset-region (match-end 0) (point-max) charset))
+      )
     (mime-maybe-hide-echo-buffer)
     )
   (gnus-run-hooks 'gnus-mime-article-prepare-hook)
@@ -1988,11 +2008,6 @@ If ALL-HEADERS is non-nil, no headers are hidden."
     (unless (eq major-mode 'gnus-summary-mode)
       (set-buffer gnus-summary-buffer))
     (setq gnus-summary-buffer (current-buffer))
-    ;; Make sure the connection to the server is alive.
-    (unless (gnus-server-opened
-            (gnus-find-method-for-group gnus-newsgroup-name))
-      (gnus-check-server (gnus-find-method-for-group gnus-newsgroup-name))
-      (gnus-request-group gnus-newsgroup-name t))
     (let* ((gnus-article (if header (mail-header-number header) article))
           (summary-buffer (current-buffer))
           (internal-hook gnus-article-internal-prepare-hook)
@@ -2000,7 +2015,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
           result)
       (save-excursion
        (gnus-article-setup-buffer)
-       (set-buffer gnus-article-buffer)
+       (set-buffer gnus-original-article-buffer)
        ;; Deactivate active regions.
        (when (and (boundp 'transient-mark-mode)
                   transient-mark-mode)
@@ -2070,17 +2085,21 @@ If ALL-HEADERS is non-nil, no headers are hidden."
                      (or all-headers gnus-show-all-headers))))
            (when (or (numberp article)
                      (stringp article))
-             ;; Hooks for getting information from the article.
-             ;; This hook must be called before being narrowed.
-             (let (buffer-read-only)
+             (let ((method
+                    (if gnus-show-mime
+                        (progn
+                          (mime-parse-buffer)
+                          (if (or (not gnus-strict-mime)
+                                  (mime-fetch-field "MIME-Version"))
+                              gnus-article-display-method-for-mime
+                            gnus-article-display-method-for-encoded-word))
+                      gnus-article-display-method-for-traditional)))
+               ;; Hooks for getting information from the article.
+               ;; This hook must be called before being narrowed.
                (gnus-run-hooks 'internal-hook)
                (gnus-run-hooks 'gnus-article-prepare-hook)
-               ;; Decode MIME message.
-               (when gnus-show-mime
-                 (if (or (not gnus-strict-mime)
-                         (gnus-fetch-field "Mime-Version"))
-                     (funcall gnus-show-mime-method)
-                   (funcall gnus-decode-encoded-word-method)))
+               ;; Display message.
+               (funcall method)
                ;; Perform the article display hooks.
                (gnus-run-hooks 'gnus-article-display-hook))
              ;; Do page break.
@@ -2256,7 +2275,8 @@ Argument LINES specifies lines to be scrolled down."
       (error "There is no summary buffer for this article buffer")
     (gnus-article-set-globals)
     (gnus-configure-windows 'article)
-    (gnus-summary-goto-subject gnus-current-article)))
+    (gnus-summary-goto-subject gnus-current-article)
+    (gnus-summary-position-point)))
 
 (defun gnus-article-describe-briefly ()
   "Describe article mode commands briefly."
@@ -2368,6 +2388,13 @@ If given a prefix, show the hidden text instead."
   (when (gnus-visual-p 'article-highlight 'highlight)
     (gnus-article-highlight-some)))
 
+(defun gnus-check-group-server ()
+  ;; Make sure the connection to the server is alive.
+  (unless (gnus-server-opened
+          (gnus-find-method-for-group gnus-newsgroup-name))
+    (gnus-check-server (gnus-find-method-for-group gnus-newsgroup-name))
+    (gnus-request-group gnus-newsgroup-name t)))
+
 (defun gnus-request-article-this-buffer (article group)
   "Get an article and insert it into this buffer."
   (let (do-update-line)
@@ -2377,9 +2404,6 @@ If given a prefix, show the hidden text instead."
          (gnus-kill-all-overlays)
          (setq group (or group gnus-newsgroup-name))
 
-         ;; Open server if it has closed.
-         (gnus-check-server (gnus-find-method-for-group group))
-
          ;; Using `gnus-request-article' directly will insert the article into
          ;; `nntp-server-buffer' - so we'll save some time by not having to
          ;; copy it from the server buffer into the article buffer.
@@ -2439,15 +2463,6 @@ If given a prefix, show the hidden text instead."
                            (assq article gnus-newsgroup-reads)))
                     gnus-canceled-mark))
            nil)
-          ;; We first check `gnus-original-article-buffer'.
-          ((and (get-buffer gnus-original-article-buffer)
-                (numberp article)
-                (save-excursion
-                  (set-buffer gnus-original-article-buffer)
-                  (and (equal (car gnus-original-article) group)
-                       (eq (cdr gnus-original-article) article))))
-           (insert-buffer-substring gnus-original-article-buffer)
-           'article)
           ;; Check the backlog.
           ((and gnus-keep-backlog
                 (gnus-backlog-request-article group article (current-buffer)))
@@ -2470,6 +2485,7 @@ If given a prefix, show the hidden text instead."
                  (buffer-read-only nil))
              (erase-buffer)
              (gnus-kill-all-overlays)
+             (gnus-check-group-server)
              (when (gnus-request-article article group (current-buffer))
                (when (numberp article)
                  (gnus-async-prefetch-next group article gnus-summary-buffer)
@@ -2482,24 +2498,6 @@ If given a prefix, show the hidden text instead."
 
       ;; Associate this article with the current summary buffer.
       (setq gnus-article-current-summary gnus-summary-buffer)
-      
-      ;; Take the article from the original article buffer
-      ;; and place it in the buffer it's supposed to be in.
-      (when (and (get-buffer gnus-article-buffer)
-                (equal (buffer-name (current-buffer))
-                       (buffer-name (get-buffer gnus-article-buffer))))
-       (save-excursion
-         (if (get-buffer gnus-original-article-buffer)
-             (set-buffer gnus-original-article-buffer)
-           (set-buffer (get-buffer-create gnus-original-article-buffer))
-           (buffer-disable-undo (current-buffer))
-           (setq major-mode 'gnus-original-article-mode)
-           (setq buffer-read-only t)
-           (gnus-add-current-to-buffer-list))
-         (let (buffer-read-only)
-           (erase-buffer)
-           (insert-buffer-substring gnus-article-buffer))
-         (setq gnus-original-article (cons group article))))
 
       ;; Update sparse articles.
       (when (and do-update-line
@@ -2682,7 +2680,7 @@ groups."
     ("\\bin\\( +article\\| +message\\)? +\\(<\\([^\n @<>]+@[^\n @<>]+\\)>\\)" 2
      t gnus-button-message-id 3)
     ("\\(<URL: *\\)mailto: *\\([^> \n\t]+\\)>" 0 t gnus-url-mailto 2)
-    ("mailto:\\([a-zA-Z.-@_+0-9%]+\\)" 0 t gnus-url-mailto 2)
+    ("mailto:\\([a-zA-Z.-@_+0-9%]+\\)" 0 t gnus-url-mailto 1)
     ("\\bmailto:\\([^ \n\t]+\\)" 0 t gnus-url-mailto 1)
     ;; This is how URLs _should_ be embedded in text...
     ("<URL: *\\([^>]*\\)>" 0 t gnus-button-embedded-url 1)
@@ -3260,10 +3258,6 @@ forbidden in URL encoding."
           'gnus-original-article-mode
           #'mime-preview-quitting-method-for-gnus)
 
-(set-alist 'mime-view-show-summary-method
-          'gnus-original-article-mode
-          #'mime-preview-quitting-method-for-gnus)
-
 (defun gnus-following-method (buf)
   (set-buffer buf)
   (message-followup)
index 04a3ad7..21e3c50 100644 (file)
@@ -405,7 +405,8 @@ Returns the list of articles removed."
 
 (defun gnus-cache-update-article (group article)
   "If ARTICLE is in the cache, remove it and re-enter it."
-  (when (gnus-cache-possibly-remove-article article nil nil nil t)
+  (gnus-cache-change-buffer group)
+  (when (gnus-cache-possibly-remove-article article nil nil nil t)    
     (let ((gnus-use-cache nil))
       (gnus-cache-possibly-enter-article
        gnus-newsgroup-name article (gnus-summary-article-header article)
index 4416895..1bd882d 100644 (file)
@@ -651,4 +651,3 @@ articles in the thread.
 (provide 'gnus-cus)
 
 ;;; gnus-cus.el ends here
-
index a489f2b..0b9018e 100644 (file)
@@ -427,12 +427,19 @@ header line with the old Message-ID."
                  (push (list 'gnus-inews-add-to-address pgroup)
                        message-send-actions)))
            (set-buffer gnus-article-copy)
-           (message-wide-reply to-address
-                               (gnus-group-find-parameter
-                                gnus-newsgroup-name 'broken-reply-to))))
+           (gnus-msg-treat-broken-reply-to)
+           (message-wide-reply to-address)))
        (when yank
          (gnus-inews-yank-articles yank))))))
 
+(defun gnus-msg-treat-broken-reply-to ()
+  "Remove the Reply-to header iff broken-reply-to."
+  (when (gnus-group-find-parameter
+        gnus-newsgroup-name 'broken-reply-to)
+    (save-restriction
+      (message-narrow-to-head)
+      (message-remove-header "reply-to"))))
+
 (defun gnus-post-method (arg group &optional silent)
   "Return the posting method based on GROUP and ARG.
 If SILENT, don't prompt the user."
@@ -462,6 +469,7 @@ If SILENT, don't prompt the user."
                     gnus-post-method
                   (list gnus-post-method)))
               gnus-secondary-select-methods
+              (mapcar 'cdr gnus-server-alist)
               (list gnus-select-method)
               (list group-method)))
             method-alist post-methods method)
@@ -508,7 +516,7 @@ If SILENT, don't prompt the user."
 ;;; as well include the Emacs version as well.
 ;;; The following function works with later GNU Emacs, and XEmacs.
 (defun gnus-extended-version ()
-  "Stringified Gnus version."
+  "Stringified gnus version."
   (interactive)
   gnus-version)
 
@@ -533,8 +541,8 @@ automatically."
     (gnus-setup-message (if yank 'reply-yank 'reply)
       (gnus-summary-select-article)
       (set-buffer (gnus-copy-article-buffer))
-      (message-reply nil wide (gnus-group-find-parameter
-                              gnus-newsgroup-name 'broken-reply-to))
+      (gnus-msg-treat-broken-reply-to)
+      (message-reply nil wide)
       (when yank
        (gnus-inews-yank-articles yank)))))
 
index 7579b0c..be64979 100644 (file)
@@ -184,8 +184,9 @@ arguments necessary for the job.")
 
 (defun gnus-get-buffer-name (variable)
   "Returns the buffer name associated with the contents of a variable."
-  (let ((buf (get-buffer (gnus-window-to-buffer-helper
-                           (cdr (assq variable gnus-window-to-buffer))))))
+  (let ((buf (get-buffer-create (gnus-window-to-buffer-helper
+                                (cdr 
+                                 (assq variable gnus-window-to-buffer))))))
     (and buf
         (buffer-name buf))))
 
index 1efaa60..9a56f37 100644 (file)
@@ -77,18 +77,18 @@ It accepts the same format specs that `gnus-summary-line-format' does."
     "." gnus-pick-article
     gnus-down-mouse-2 gnus-pick-mouse-pick-region
     "\r" gnus-pick-start-reading
-    ;; "t" gnus-uu-mark-thread
-    ;; "T" gnus-uu-unmark-thread
-    ;; "U" gnus-summary-unmark-all-processable
-    ;; "v" gnus-uu-mark-over
-    ;; "r" gnus-uu-mark-region
-    ;; "R" gnus-uu-unmark-region
-    ;; "e" gnus-uu-mark-by-regexp
-    ;; "E" gnus-uu-mark-by-regexp
-    ;; "b" gnus-uu-mark-buffer
-    ;; "B" gnus-uu-unmark-buffer
-    ;;gnus-mouse-2 gnus-pick-mouse-pick
-    ;; "X" gnus-pick-start-reading
+    "t" gnus-uu-mark-thread
+    "T" gnus-uu-unmark-thread
+    "U" gnus-summary-unmark-all-processable
+    "v" gnus-uu-mark-over
+    "r" gnus-uu-mark-region
+    "R" gnus-uu-unmark-region
+    "e" gnus-uu-mark-by-regexp
+    "E" gnus-uu-mark-by-regexp
+    "b" gnus-uu-mark-buffer
+    "B" gnus-uu-unmark-buffer
+    gnus-mouse-2 gnus-pick-mouse-pick
+    "X" gnus-pick-start-reading
     ))
 
 (defun gnus-pick-make-menu-bar ()
index f324be2..08bf0f0 100644 (file)
@@ -454,7 +454,6 @@ of the last successful match.")
 
 (gnus-define-keys (gnus-summary-score-map "V" gnus-summary-mode-map)
   "s" gnus-summary-set-score
-  "a" gnus-summary-score-entry
   "S" gnus-summary-current-score
   "c" gnus-score-change-score-file
   "C" gnus-score-customize
@@ -752,20 +751,6 @@ SCORE is the score to add.
 DATE is the expire date, or nil for no expire, or 'now for immediate expire.
 If optional argument `PROMPT' is non-nil, allow user to edit match.
 If optional argument `SILENT' is nil, show effect of score entry."
-  (interactive
-   (list (completing-read "Header: "
-                         gnus-header-index
-                         (lambda (x) (fboundp (nth 2 x)))
-                         t)
-        (read-string "Match: ")
-        (if (y-or-n-p "Use regexp match? ") 'r 's)
-        (and current-prefix-arg
-             (prefix-numeric-value current-prefix-arg))
-        (cond ((not (y-or-n-p "Add to score file? "))
-               'now)
-              ((y-or-n-p "Expire kill? ")
-               (current-time-string))
-              (t nil))))
   ;; Regexp is the default type.
   (when (eq type t)
     (setq type 'r))
index d83f15f..29b6b04 100644 (file)
@@ -383,10 +383,12 @@ Can be used to turn version control on or off."
   :group 'gnus-newsrc
   :type 'hook)
 
-;;; Internal variables
+(defcustom gnus-always-read-dribble-file nil
+  "Uncoditionally read the dribble file."
+  :group 'gnus-newsrc
+  :type 'boolean)
 
-(defvar gnus-always-read-dribble-file nil
-  "Uncoditionally read the dribble file.")
+;;; Internal variables
 
 (defvar gnus-newsrc-file-version nil)
 (defvar gnus-override-subscribe-method nil)
index 07a1b65..c64afeb 100644 (file)
@@ -34,7 +34,6 @@
 (require 'gnus-range)
 (require 'gnus-int)
 (require 'gnus-undo)
-(require 'std11)
 (require 'mime-view)
 
 (autoload 'gnus-summary-limit-include-cached "gnus-cache" nil t)
@@ -2871,25 +2870,24 @@ If NO-DISPLAY, don't generate a summary buffer."
 (defun gnus-dependencies-add-header (header dependencies force-new)
   "Enter HEADER into the DEPENDENCIES table if it is not already there.
 
-If FORCE-NEW is not NIL, enter HEADER into the DEPENDENCIES table even
+If FORCE-NEW is not nil, enter HEADER into the DEPENDENCIES table even
 if it was already present.
 
-If `gnus-summary-ignore-duplicates' is NIL then duplicate Message-IDs
+If `gnus-summary-ignore-duplicates' is nil then duplicate Message-IDs
 will not be entered in the DEPENDENCIES table.  Otherwise duplicate
 Message-IDs will be renamed be renamed to a unique Message-ID before
 being entered.
 
-Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
-
+Returns HEADER if it was entered in the DEPENDENCIES.  Returns nil otherwise."
   (let* ((id (mail-header-id header))
         (id-dep (and id (intern id dependencies)))
         ref ref-dep ref-header)
-    ;; Enter this `header' in the `dependencies' table
+    ;; Enter this `header' in the `dependencies' table.
     (cond
      ((not id-dep)
       (setq header nil))
-     ;; The first two cases do the normal part : enter a new `header'
-     ;; in the `dependencies' table,
+     ;; The first two cases do the normal part: enter a new `header'
+     ;; in the `dependencies' table.
      ((not (boundp id-dep))
       (set id-dep (list header)))
      ((null (car (symbol-value id-dep)))
@@ -2897,10 +2895,9 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
 
      ;; From here the `header' was already present in the
      ;; `dependencies' table.
-
      (force-new
-      ;; Overrides an existing entry,
-      ;; Just set the header part of the entry.
+      ;; Overrides an existing entry;
+      ;; just set the header part of the entry.
       (setcar (symbol-value id-dep) header))
 
      ;; Renames the existing `header' to a unique Message-ID.
@@ -2911,11 +2908,11 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
           (list header))
       (mail-header-set-id header id))
 
-     ;;   - The last case ignores an existing entry, except it adds
-     ;;     any additional Xrefs (in case the two articles came from
-     ;;     different servers.
-     ;;     Also sets `header' to `nil' meaning that the
-     ;;     `dependencies' table was *not* modified.
+     ;; The last case ignores an existing entry, except it adds any
+     ;; additional Xrefs (in case the two articles came from different
+     ;; servers.
+     ;; Also sets `header' to `nil' meaning that the `dependencies'
+     ;; table was *not* modified.
      (t
       (mail-header-set-xref
        (car (symbol-value id-dep))
@@ -2932,9 +2929,10 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
                  (boundp ref-dep)
                  (setq ref-header (car (symbol-value ref-dep))))
        (if (string= id ref)
-           ;; Yuk !  This is a reference loop.  Make the article be a
+           ;; Yuk!  This is a reference loop.  Make the article be a
            ;; root article.
            (progn
+             (debug)
              (mail-header-set-references (car (symbol-value id-dep)) "none")
              (setq ref nil))
          (setq ref (gnus-parent-id (mail-header-references ref-header)))))
@@ -2950,7 +2948,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
 (defun gnus-build-sparse-threads ()
   (let ((headers gnus-newsgroup-headers)
        header references generation relations
-       cthread subject child end pthread relation new-child)
+       cthread subject child end pthread relation new-child date)
     ;; First we create an alist of generations/relations, where
     ;; generations is how much we trust the relation, and the relation
     ;; is parent/child.
@@ -2962,32 +2960,35 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
                   (not (string= references "")))
          (insert references)
          (setq child (mail-header-id header)
-               subject (mail-header-subject header))
-         (setq generation 0)
+               subject (mail-header-subject header)
+               date (mail-header-date header)
+               generation 0)
          (while (search-backward ">" nil t)
            (setq end (1+ (point)))
            (if (search-backward "<" nil t)
                (push (list (incf generation)
                            child (setq child new-child)
-                           subject)
+                           subject date)
                      relations)))
          (push (list (1+ generation) child nil subject) relations)
          (erase-buffer)))
       (kill-buffer (current-buffer)))
     ;; Sort over trustworthiness.
-    (mapc #'(lambda (relation)
-             (when (gnus-dependencies-add-header
-                    (make-full-mail-header gnus-reffed-article-number
-                                           (cadddr relation)
-                                           "" "" (cadr relation)
-                                           (or (caddr relation) "") 0 0 "")
-                    gnus-newsgroup-dependencies nil)
-               (push gnus-reffed-article-number gnus-newsgroup-limit)
-               (push gnus-reffed-article-number gnus-newsgroup-sparse)
-               (push (cons gnus-reffed-article-number gnus-sparse-mark)
-                     gnus-newsgroup-reads)
-               (decf gnus-reffed-article-number)))
-         (sort relations 'car-less-than-car))
+    (mapcar
+     (lambda (relation)
+       (when (gnus-dependencies-add-header
+             (make-full-mail-header
+              gnus-reffed-article-number
+              (nth 3 relation) "" (nth 4 relation)
+              (nth 1 relation)
+              (or (nth 2 relation) "") 0 0 "")
+             gnus-newsgroup-dependencies nil)
+        (push gnus-reffed-article-number gnus-newsgroup-limit)
+        (push gnus-reffed-article-number gnus-newsgroup-sparse)
+        (push (cons gnus-reffed-article-number gnus-sparse-mark)
+              gnus-newsgroup-reads)
+        (decf gnus-reffed-article-number)))
+     (sort relations 'car-less-than-car))
     (gnus-message 7 "Making sparse threads...done")))
 
 (defun gnus-build-old-threads ()
@@ -3010,11 +3011,66 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
             (setq heads nil)))))
      gnus-newsgroup-dependencies)))
 
+;; The following macros and functions were written by Felix Lee
+;; <flee@cse.psu.edu>.
+
+(defmacro gnus-nov-read-integer ()
+  '(prog1
+       (if (= (following-char) ?\t)
+          0
+        (let ((num (ignore-errors (read buffer))))
+          (if (numberp num) num 0)))
+     (unless (eobp)
+       (search-forward "\t" eol 'move))))
+
+(defmacro gnus-nov-skip-field ()
+  '(search-forward "\t" eol 'move))
+
+(defmacro gnus-nov-field ()
+  '(buffer-substring (point) (if (gnus-nov-skip-field) (1- (point)) eol)))
+
+;; This function has to be called with point after the article number
+;; on the beginning of the line.
+(defsubst gnus-nov-parse-line (number dependencies &optional force-new)
+  (let ((eol (gnus-point-at-eol))
+       (buffer (current-buffer))
+       header)
+
+    ;; overview: [num subject from date id refs chars lines misc]
+    (unwind-protect
+       (progn
+         (narrow-to-region (point) eol)
+         (unless (eobp)
+           (forward-char))
+
+         (setq header
+               (make-full-mail-header
+                number                 ; number
+                (funcall
+                 gnus-unstructured-field-decoder (gnus-nov-field)) ; subject
+                (funcall
+                 gnus-structured-field-decoder (gnus-nov-field)) ; from
+                (gnus-nov-field)       ; date
+                (or (gnus-nov-field)
+                    (nnheader-generate-fake-message-id)) ; id
+                (gnus-nov-field)       ; refs
+                (gnus-nov-read-integer) ; chars
+                (gnus-nov-read-integer) ; lines
+                (unless (= (following-char) ?\n)
+                  (gnus-nov-field))))) ; misc
+
+      (widen))
+
+    (when gnus-alter-header-function
+      (funcall gnus-alter-header-function header))
+    (gnus-dependencies-add-header header dependencies force-new)))
+
 (defun gnus-build-get-header (id)
   ;; Look through the buffer of NOV lines and find the header to
   ;; ID.  Enter this line into the dependencies hash table, and return
   ;; the id of the parent article (if any).
-  (let (found header)
+  (let ((deps gnus-newsgroup-dependencies)
+       found header)
     (prog1
        (save-excursion
          (set-buffer nntp-server-buffer)
@@ -3030,8 +3086,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
            (when found
              (beginning-of-line)
              (and
-              (setq header (gnus-nov-parse-line (read (current-buffer))
-                                                gnus-newsgroup-dependencies))
+              (setq header (gnus-nov-parse-line
+                            (read (current-buffer)) deps))
               (gnus-parent-id (mail-header-references header))))))
       (when header
        (let ((number (mail-header-number header)))
@@ -3047,6 +3103,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
 (defun gnus-build-all-threads ()
   "Read all the headers."
   (let ((gnus-summary-ignore-duplicates t)
+       (dependencies gnus-newsgroup-dependencies)
        found header article)
     (save-excursion
       (set-buffer nntp-server-buffer)
@@ -3054,9 +3111,9 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
        (goto-char (point-min))
        (while (not (eobp))
          (ignore-errors
-           (setq article (read (current-buffer)))
-           (setq header (gnus-nov-parse-line article
-                                             gnus-newsgroup-dependencies)))
+           (setq article (read (current-buffer))
+                 header (gnus-nov-parse-line
+                         article dependencies)))
          (when header
            (push header gnus-newsgroup-headers)
            (if (memq (setq article (mail-header-number header))
@@ -3141,8 +3198,9 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
        (setcar thread old)
        nil))))
 
-(defun gnus-rebuild-thread (id)
-  "Rebuild the thread containing ID."
+(defun gnus-rebuild-thread (id &optional line)
+  "Rebuild the thread containing ID.
+If LINE, insert the rebuilt thread starting on line LINE."
   (let ((buffer-read-only nil)
        old-pos current thread data)
     (if (not gnus-show-threads)
@@ -3172,6 +3230,9 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
          (setq thread (cons subject (gnus-sort-threads roots))))))
     (let (threads)
       ;; We then insert this thread into the summary buffer.
+      (when line
+       (goto-char (point-min))
+       (forward-line (1- line)))
       (let (gnus-newsgroup-data gnus-newsgroup-threads)
        (if gnus-show-threads
            (gnus-summary-prepare-threads (gnus-cut-threads (list thread)))
@@ -3179,8 +3240,14 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
        (setq data (nreverse gnus-newsgroup-data))
        (setq threads gnus-newsgroup-threads))
       ;; We splice the new data into the data structure.
-      (gnus-data-enter-list current data (- (point) old-pos))
-      (setq gnus-newsgroup-threads (nconc threads gnus-newsgroup-threads)))))
+      ;;!!! This is kinda bogus.  We assume that in LINE is non-nil,
+      ;;!!! then we want to insert at the beginning of the buffer.
+      ;;!!! That happens to be true with Gnus now, but that may
+      ;;!!! change in the future.  Perhaps.
+      (gnus-data-enter-list (if line nil current) data (- (point) old-pos))
+      (setq gnus-newsgroup-threads (nconc threads gnus-newsgroup-threads))
+      (when line
+       (gnus-data-compute-positions)))))
 
 (defun gnus-number-to-header (number)
   "Return the header for article NUMBER."
@@ -4402,76 +4469,14 @@ The resulting hash table is returned, or nil if no Xrefs were found."
            (setq id (mail-header-id header)
                  ref (gnus-parent-id (mail-header-references header))))
 
-         (setq header
-               (gnus-dependencies-add-header header dependencies force-new))
-         (if header
-             (push header headers))
+         (when (setq header
+                     (gnus-dependencies-add-header
+                      header dependencies force-new))
+           (push header headers))
          (goto-char (point-max))
          (widen))
        (nreverse headers)))))
 
-;; The following macros and functions were written by Felix Lee
-;; <flee@cse.psu.edu>.
-
-(defmacro gnus-nov-read-integer ()
-  '(prog1
-       (if (= (following-char) ?\t)
-          0
-        (let ((num (ignore-errors (read buffer))))
-          (if (numberp num) num 0)))
-     (unless (eobp)
-       (search-forward "\t" eol 'move))))
-
-(defmacro gnus-nov-skip-field ()
-  '(search-forward "\t" eol 'move))
-
-(defmacro gnus-nov-field ()
-  '(buffer-substring (point) (if (gnus-nov-skip-field) (1- (point)) eol)))
-
-;; (defvar gnus-nov-none-counter 0)
-
-;; This function has to be called with point after the article number
-;; on the beginning of the line.
-(defun gnus-nov-parse-line (number dependencies &optional force-new)
-  (let ((eol (gnus-point-at-eol))
-       (buffer (current-buffer))
-       header ref id id-dep ref-dep)
-
-    ;; overview: [num subject from date id refs chars lines misc]
-    (unwind-protect
-       (progn
-         (narrow-to-region (point) eol)
-         (unless (eobp)
-           (forward-char))
-
-         (setq header
-               (make-full-mail-header
-                number                 ; number
-                (funcall
-                 gnus-unstructured-field-decoder (gnus-nov-field)) ; subject
-                (funcall
-                 gnus-structured-field-decoder (gnus-nov-field)) ; from
-                (gnus-nov-field)       ; date
-                (or (gnus-nov-field)
-                    (nnheader-generate-fake-message-id)) ; id
-                (gnus-nov-field)       ; refs
-                (gnus-nov-read-integer) ; chars
-                (gnus-nov-read-integer) ; lines
-                (unless (= (following-char) ?\n)
-                  (gnus-nov-field))))) ; misc
-
-      (widen))
-
-    (when gnus-alter-header-function
-      (funcall gnus-alter-header-function header))
-
-    (setq id (mail-header-id header)
-         ref (gnus-parent-id (mail-header-references header)))
-
-    (gnus-dependencies-add-header header dependencies force-new)
-
-    header))
-
 ;; Goes through the xover lines and returns a list of vectors
 (defun gnus-get-newsgroup-headers-xover (sequence &optional
                                                  force-new dependencies
@@ -4548,8 +4553,12 @@ This is meant to be called in `gnus-article-internal-prepare-hook'."
              (mail-header-set-xref headers xref)))))))
 
 (defun gnus-summary-insert-subject (id &optional old-header use-old-header)
-  "Find article ID and insert the summary line for that article."
-  (let ((header (cond ((and old-header use-old-header)
+  "Find article ID and insert the summary line for that article.
+OLD-HEADER can either be a header or a line number to insert
+the subject line on."
+  (let* ((line (and (numberp old-header) old-header))
+        (old-header (and (vectorp old-header) old-header))
+        (header (cond ((and old-header use-old-header)
                       old-header)
                      ((and (numberp id)
                            (gnus-number-to-header id))
@@ -4579,7 +4588,7 @@ This is meant to be called in `gnus-article-internal-prepare-hook'."
                  gnus-newsgroup-sparse))
       (setq gnus-newsgroup-ancient (delq number gnus-newsgroup-ancient))
       (push number gnus-newsgroup-limit)
-      (gnus-rebuild-thread (mail-header-id header))
+      (gnus-rebuild-thread (mail-header-id header) line)
       (gnus-summary-goto-subject number nil t))
     (when (and (numberp number)
               (> number 0))
@@ -5419,7 +5428,10 @@ If FORCE, also allow jumping to articles not currently shown."
     ;; We read in the article if we have to.
     (and (not data)
         force
-        (gnus-summary-insert-subject article (and (vectorp force) force) t)
+        (gnus-summary-insert-subject
+         article
+         (if (or (numberp force) (vectorp force)) force)
+         t)
         (setq data (gnus-data-find article)))
     (goto-char b)
     (if (not data)
@@ -5529,7 +5541,7 @@ If BACKWARD, the previous article is selected instead of the next."
         (not unread) (not subject))
     (gnus-summary-goto-article
      (if backward (1- gnus-newsgroup-begin) (1+ gnus-newsgroup-end))
-     nil t))
+     nil (count-lines (point-min) (point))))
    ;; Go to next/previous group.
    (t
     (unless (gnus-ephemeral-group-p gnus-newsgroup-name)
@@ -5805,7 +5817,9 @@ Return nil if there are no articles."
 
 (defun gnus-summary-goto-article (article &optional all-headers force)
   "Fetch ARTICLE (article number or Message-ID) and display it if it exists.
-If ALL-HEADERS is non-nil, no header lines are hidden."
+If ALL-HEADERS is non-nil, no header lines are hidden.
+If FORCE, go to the article even if it isn't displayed.  If FORCE
+is a number, it is the line the article is to be displayed on."
   (interactive
    (list
     (completing-read
@@ -5906,8 +5920,8 @@ articles that are younger than AGE days."
                              (nnmail-time-since (nnmail-date-to-time date))
                              cutoff))
            (when (if younger-p
-                     (not is-younger)
-                   is-younger)
+                     is-younger
+                   (not is-younger))
              (push (gnus-data-number d) articles))))
        (gnus-summary-limit (nreverse articles)))
     (gnus-summary-position-point)))
@@ -7230,7 +7244,7 @@ delete these instead."
                                       gnus-newsgroup-name)
     (error "The current newsgroup does not support article deletion"))
   ;; Compute the list of articles to delete.
-  (let ((articles (gnus-summary-work-articles n))
+  (let ((articles (sort (copy-sequence (gnus-summary-work-articles n)) '<))
        not-deleted)
     (if (and gnus-novice-user
             (not (gnus-yes-or-no-p
@@ -8923,9 +8937,17 @@ save those articles instead."
 ;;; @ for mime-partial
 ;;;
 
-(defun gnus-mime-partial-preview-function ()
-  (gnus-summary-preview-mime-message (gnus-summary-article-number))
-  )
+(defun gnus-request-partial-message ()
+  (save-excursion
+    (let ((number (gnus-summary-article-number))
+         (group gnus-newsgroup-name)
+         (mother gnus-article-buffer))
+      (set-buffer (get-buffer-create " *Partial Article*"))
+      (erase-buffer)
+      (setq mime-preview-buffer mother)
+      (gnus-request-article-this-buffer number group)
+      (mime-parse-buffer)
+      )))
 
 (autoload 'mime-combine-message/partial-pieces-automatically
   "mime-partial"
@@ -8936,12 +8958,9 @@ save those articles instead."
           (major-mode . gnus-original-article-mode)
           (method . mime-combine-message/partial-pieces-automatically)
           (summary-buffer-exp . gnus-summary-buffer)
+          (request-partial-message-method . gnus-request-partial-message)
           ))
 
-(set-alist 'mime-view-partial-message-method-alist
-          'gnus-original-article-mode
-          'gnus-mime-partial-preview-function)
-
 
 ;;; @ end
 ;;;
index 249367d..15e036b 100644 (file)
@@ -166,9 +166,10 @@ with some simple extensions.
     (when result
       (symbol-name result))))
 
-(defun gnus-current-topics ()
-  "Return a list of all current topics, lowest in hierarchy first."
-  (let ((topic (gnus-current-topic))
+(defun gnus-current-topics (&optional topic)
+  "Return a list of all current topics, lowest in hierarchy first.
+If TOPIC, start with that topic."
+  (let ((topic (or topic (gnus-current-topic)))
        topics)
     (while topic
       (push topic topics)
@@ -199,7 +200,8 @@ with some simple extensions.
                              active
                              (- (1+ (cdr active)) (car active))))
              clevel (or (gnus-info-level info)
-                        (if (member group gnus-zombie-list) gnus-level-zombie gnus-level-killed))))
+                        (if (member group gnus-zombie-list)
+                            gnus-level-zombie gnus-level-killed))))
       (and
        unread                          ; nil means that the group is dead.
        (<= clevel level)
@@ -324,27 +326,32 @@ with some simple extensions.
 
 (defun gnus-group-topic-parameters (group)
   "Compute the group parameters for GROUP taking into account inheritance from topics."
-  (let ((params-list (list (gnus-group-get-parameter group)))
-       topics params param out)
+  (let ((params-list (copy-sequence (gnus-group-get-parameter group))))
     (save-excursion
       (gnus-group-goto-group group)
-      (setq topics (gnus-current-topics))
-      (while topics
-       (push (gnus-topic-parameters (pop topics)) params-list))
-      ;; We probably have lots of nil elements here, so
-      ;; we remove them.  Probably faster than doing this "properly".
-      (setq params-list (delq nil params-list))
-      ;; Now we have all the parameters, so we go through them
-      ;; and do inheritance in the obvious way.
-      (while (setq params (pop params-list))
-       (while (setq param (pop params))
-         (when (atom param)
-           (setq param (cons param t)))
-         ;; Override any old versions of this param.
-         (setq out (delq (assq (car param) out) out))
-         (push param out)))
-      ;; Return the resulting parameter list.
-      out)))
+      (nconc params-list
+            (gnus-topic-hierarchical-parameters (gnus-current-topic))))))
+
+(defun gnus-topic-hierarchical-parameters (topic)
+  "Return a topic list computed for TOPIC."
+  (let ((topics (gnus-current-topics topic))
+       params-list param out params)
+    (while topics
+      (push (gnus-topic-parameters (pop topics)) params-list))
+    ;; We probably have lots of nil elements here, so
+    ;; we remove them.  Probably faster than doing this "properly".
+    (setq params-list (delq nil params-list))
+    ;; Now we have all the parameters, so we go through them
+    ;; and do inheritance in the obvious way.
+    (while (setq params (pop params-list))
+      (while (setq param (pop params))
+       (when (atom param)
+         (setq param (cons param t)))
+       ;; Override any old versions of this param.
+       (setq out (delq (assq (car param) out) out))
+       (push param out)))
+    ;; Return the resulting parameter list.
+    out))
 
 ;;; General utility functions
 
@@ -406,7 +413,13 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
 If SILENT, don't insert anything.  Return the number of unread
 articles in the topic and its subtopics."
   (let* ((type (pop topicl))
-        (entries (gnus-topic-find-groups (car type) list-level all lowest))
+        (entries (gnus-topic-find-groups
+                  (car type) list-level
+                  (or all
+                      (cdr (assq 'visible 
+                                 (gnus-topic-hierarchical-parameters
+                                  (car type)))))
+                  lowest))
         (visiblep (and (eq (nth 1 type) 'visible) (not silent)))
         (gnus-group-indentation
          (make-string (* gnus-topic-indent-level level) ? ))
@@ -1254,6 +1267,10 @@ If COPYP, copy the groups instead."
   ;; Check whether the new name exists.
   (when (gnus-topic-find-topology new-name)
     (error "Topic '%s' already exists"))
+  ;; "nil" is an invalid name, for reasons I'd rather not go
+  ;; into here.  Trust me.
+  (when (equal new-name "nil")
+    (error "Invalid name: %s" nil))
   ;; Do the renaming.
   (let ((top (gnus-topic-find-topology old-name))
        (entry (assoc old-name gnus-topic-alist)))
index 7b28e53..3a0bf91 100644 (file)
@@ -54,8 +54,8 @@
 ;; Default viewing action rules
 
 (defcustom gnus-uu-default-view-rules
-  '(("\\.te?xt$\\|\\.doc$\\|read.*me\\|\\.c?$\\|\\.h$\\|\\.bat$\\|\\.asm$\\|makefile" "cat %s | sed s/\r//g")
-    ("\\.pas$" "cat %s | sed s/\r//g")
+  '(("\\.te?xt$\\|\\.doc$\\|read.*me\\|\\.c?$\\|\\.h$\\|\\.bat$\\|\\.asm$\\|makefile" "cat %s | sed 's/\r$//'")
+    ("\\.pas$" "cat %s | sed 's/\r$//'")
     ("\\.[1-9]$" "groff -mandoc -Tascii %s | sed s/\b.//g")
     ("\\.\\(jpe?g\\|gif\\|tiff?\\|p[pgb]m\\|xwd\\|xbm\\|pcx\\)$" "xv")
     ("\\.tga$" "tgatoppm %s | xv -")
index 116ad40..64a39fe 100644 (file)
@@ -250,11 +250,11 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "6.5.0"
+(defconst gnus-version-number "6.7.3"
   "Version number for this version of gnus.")
 
 (defconst gnus-version
-  (format "Semi-gnus %s (based on Gnus 5.6.11; for SEMI 1.7)"
+  (format "Semi-gnus %s (based on Gnus 5.6.15; for SEMI 1.8)"
           gnus-version-number)
   "Version string for this version of gnus.")
 
@@ -2477,7 +2477,10 @@ If SCORE is nil, add 1 to the score of GROUP."
   "Collapse GROUP name LEVELS.
 Select methods are stripped and any remote host name is stripped down to
 just the host name."
-  (let* ((name "") (foreign "") (depth -1) (skip 1)
+  (let* ((name "")
+        (foreign "")
+        (depth 0)
+        (skip 1)
         (levels (or levels
                     (progn
                       (while (string-match "\\." group skip)
index 08fac7d..2b63157 100644 (file)
@@ -251,7 +251,7 @@ nil means let mailer mail back a message to report errors."
   :type 'boolean)
 
 (defcustom message-generate-new-buffers t
-  "*Non-nil means that a new message buffer will be created whenever `mail-setup' is called.
+  "*Non-nil means that a new message buffer will be created whenever `message-setup' is called.
 If this is a function, call that function with three parameters:  The type,
 the to address and the group name.  (Any of these may be nil.)  The function
 should return the new buffer name."
@@ -927,7 +927,7 @@ The cdr of ech entry is a function for applying the face to a region.")
     (Lines)
     (Expires)
     (Message-ID)
-    (References . message-fill-references)
+    (References . message-shorten-references)
     (X-Mailer)
     (X-Newsreader))
   "Alist used for formatting headers.")
@@ -1062,7 +1062,7 @@ If REGEXP, HEADER is a regular expression.
 If FIRST, only remove the first instance of the header.
 Return the number of headers removed."
   (goto-char (point-min))
-  (let ((regexp (if is-regexp header (concat "^" header ":")))
+  (let ((regexp (if is-regexp header (concat "^" (regexp-quote header) ":")))
        (number 0)
        (case-fold-search t)
        last)
@@ -3183,6 +3183,24 @@ Headers already prepared in the buffer are not modified."
        (replace-match " " t t))
       (goto-char (point-max)))))
 
+(defun message-shorten-references (header references)
+  "Limit REFERENCES to be shorter than 988 characters."
+  (let ((max 988)
+       (cut 4)
+       refs)
+    (nnheader-temp-write nil
+      (insert references)
+      (goto-char (point-min))
+      (while (re-search-forward "<[^>]+>" nil t)
+       (push (match-string 0) refs))
+      (setq refs (nreverse refs))
+      (while (> (length (mapconcat 'identity refs " ")) max)
+       (when (< (length refs) (1+ cut))
+         (decf cut))
+       (setcdr (nthcdr cut refs) (cddr (nthcdr cut refs)))))
+    (insert (capitalize (symbol-name header)) ": "
+           (mapconcat 'identity refs " ") "\n")))
+
 (defun message-position-point ()
   "Move point to where the user probably wants to find it."
   (message-narrow-to-headers)
@@ -3370,7 +3388,7 @@ Headers already prepared in the buffer are not modified."
                     (Subject . ,(or subject ""))))))
 
 ;;;###autoload
-(defun message-reply (&optional to-address wide ignore-reply-to)
+(defun message-reply (&optional to-address wide)
   "Start editing a reply to the article in the current buffer."
   (interactive)
   (let ((cur (current-buffer))
@@ -3397,7 +3415,7 @@ Headers already prepared in the buffer are not modified."
            to (message-fetch-field "to")
            cc (message-fetch-field "cc")
            mct (message-fetch-field "mail-copies-to")
-           reply-to (unless ignore-reply-to (message-fetch-field "reply-to"))
+           reply-to (message-fetch-field "reply-to")
            references (message-fetch-field "references")
            message-id (message-fetch-field "message-id" t))
       ;; Remove any (buggy) Re:'s that are present and make a
@@ -3477,10 +3495,10 @@ Headers already prepared in the buffer are not modified."
      cur)))
 
 ;;;###autoload
-(defun message-wide-reply (&optional to-address ignore-reply-to)
+(defun message-wide-reply (&optional to-address)
   "Make a \"wide\" reply to the message in the current buffer."
   (interactive)
-  (message-reply to-address t ignore-reply-to))
+  (message-reply to-address t))
 
 ;;;###autoload
 (defun message-followup (&optional to-newsgroups)
@@ -3847,7 +3865,8 @@ you."
        (same-window-buffer-names nil)
        (same-window-regexps nil))
     (message-pop-to-buffer (message-buffer-name "mail" to)))
-  (message-setup `((To . ,(or to "")) (Subject . ,(or subject "")))))
+  (let ((message-this-is-mail t))
+    (message-setup `((To . ,(or to "")) (Subject . ,(or subject ""))))))
 
 ;;;###autoload
 (defun message-mail-other-frame (&optional to subject)
@@ -3859,7 +3878,8 @@ you."
        (same-window-buffer-names nil)
        (same-window-regexps nil))
     (message-pop-to-buffer (message-buffer-name "mail" to)))
-  (message-setup `((To . ,(or to "")) (Subject . ,(or subject "")))))
+  (let ((message-this-is-mail t))
+    (message-setup `((To . ,(or to "")) (Subject . ,(or subject ""))))))
 
 ;;;###autoload
 (defun message-news-other-window (&optional newsgroups subject)
@@ -3871,8 +3891,9 @@ you."
        (same-window-buffer-names nil)
        (same-window-regexps nil))
     (message-pop-to-buffer (message-buffer-name "news" nil newsgroups)))
-  (message-setup `((Newsgroups . ,(or newsgroups ""))
-                  (Subject . ,(or subject "")))))
+  (let ((message-this-is-news t))
+    (message-setup `((Newsgroups . ,(or newsgroups ""))
+                    (Subject . ,(or subject ""))))))
 
 ;;;###autoload
 (defun message-news-other-frame (&optional newsgroups subject)
@@ -3884,8 +3905,9 @@ you."
        (same-window-buffer-names nil)
        (same-window-regexps nil))
     (message-pop-to-buffer (message-buffer-name "news" nil newsgroups)))
-  (message-setup `((Newsgroups . ,(or newsgroups ""))
-                  (Subject . ,(or subject "")))))
+  (let ((message-this-is-news t))
+    (message-setup `((Newsgroups . ,(or newsgroups ""))
+                    (Subject . ,(or subject ""))))))
 
 ;;; underline.el
 
index 90667cb..b42ddf9 100644 (file)
@@ -27,7 +27,7 @@
 
 (require 'nnheader)
 (require 'nnoo)
-(require 'cl)
+(eval-when-compile (require 'cl))
 (require 'gnus-agent)
 (require 'nnml)
 
index 334b2b6..5f399d8 100644 (file)
@@ -31,7 +31,7 @@
 (require 'message)
 (require 'nnmail)
 (require 'nnoo)
-(require 'cl)
+(eval-when-compile (require 'cl))
 (require 'gnus-util)
 
 (nnoo-declare nnfolder)
@@ -397,14 +397,16 @@ time saver for large mailboxes.")
   (save-excursion
     (set-buffer buffer)
     (goto-char (point-min))
-    (when (looking-at "X-From-Line: ")
-      (replace-match "From "))
+    (if (looking-at "X-From-Line: ")
+       (replace-match "From ")
+      (unless (looking-at message-unix-mail-delimiter)
+       (insert "From nobody " (current-time-string) "\n")))
     (nnfolder-normalize-buffer)
     (set-buffer nnfolder-current-buffer)
     (goto-char (point-min))
     (if (not (nnfolder-goto-article article))
        nil
-      (nnfolder-delete-mail t)
+      (nnfolder-delete-mail)
       (insert-buffer-substring buffer)
       (nnfolder-save-buffer)
       t)))
index 909e4f8..6b59be5 100644 (file)
@@ -62,7 +62,8 @@ parameter -- the gateway address.")
        (insert mail-header-separator "\n")
        (widen)
        (let (message-required-mail-headers)
-         (funcall message-send-mail-function))))))
+         (funcall message-send-mail-function))
+       t))))
 
 ;;; Internal functions
 
@@ -75,6 +76,13 @@ parameter -- the gateway address.")
     (insert "To: " (nnheader-replace-chars-in-string newsgroups ?. ?-)
            "@" gateway "\n")))
 
+(defun nngateway-mail2news-header-transformation (gateway)
+  "Transform the headers for sending to a mail2news gateway."
+  (message-remove-header "to")
+  (message-remove-header "cc")
+  (goto-char (point-min))
+  (insert "To: mail2news@" gateway "\n"))
+
 (nnoo-define-skeleton nngateway)
 
 (provide 'nngateway)
index cffbedb..e0de0a4 100644 (file)
@@ -773,7 +773,9 @@ find-file-hooks, etc.
   (let ((format-alist nil)
        (auto-mode-alist (nnheader-auto-mode-alist))
        (default-major-mode 'fundamental-mode)
+       (enable-local-variables nil)
         (after-insert-file-functions nil)
+       (find-file-hooks nil)
        (coding-system-for-read nnheader-file-coding-system))
     (insert-file-contents filename visit beg end replace)))
 
index 0df788d..b122d3e 100644 (file)
      (let ((files (nconc
                   (nnkiboze-score-file group)
                   (list (nnkiboze-nov-file-name)
-                        (concat nnkiboze-directory
-                                (nnheader-translate-file-chars
-                                 (concat group ".newsrc")))))))
+                        (nnkiboze-nov-file-name ".newsrc")))))
        (while files
         (and (file-exists-p (car files))
              (file-writable-p (car files))
@@ -358,10 +356,11 @@ Finds out what articles are to be part of the nnkiboze groups."
        (goto-char (1+ (match-beginning 0)))
        (insert prefix)))))
 
-(defun nnkiboze-nov-file-name ()
+(defun nnkiboze-nov-file-name (&optional suffix)
   (concat (file-name-as-directory nnkiboze-directory)
          (nnheader-translate-file-chars
-          (concat (nnkiboze-prefixed-name nnkiboze-current-group) ".nov"))))
+          (concat (nnkiboze-prefixed-name nnkiboze-current-group)
+                  (or suffix ".nov")))))
 
 (provide 'nnkiboze)
 
index 516e8b1..5ae4d74 100644 (file)
@@ -25,7 +25,7 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'cl))
+(require 'cl)
 
 (require 'nnheader)
 (require 'timezone)
@@ -722,7 +722,7 @@ is a spool.  If not using procmail, return GROUP."
                                      (file-name-as-directory
                                       nnmail-procmail-directory)))
                                "\\([^/]*\\)"
-                               (regexp-quote nnmail-procmail-suffix) "$")
+                               nnmail-procmail-suffix "$")
                        (expand-file-name file))
          (let ((procmail-group (substring (expand-file-name file)
                                           (match-beginning 1)
@@ -1069,7 +1069,18 @@ FUNC will be called with the group name to determine the article number."
        (goto-char (point-min))
        (while (re-search-forward "\\(\r?\n[ \t]+\\)+" nil t)
          (replace-match " " t t))
+       ;; Nuke pathologically long headers.  Since Gnus applies
+       ;; pathologically complex regexps to the buffer, lines
+       ;; that are looong will take longer than the Universe's
+       ;; existence to process.
+       (goto-char (point-min))
+       (while (not (eobp))
+         (end-of-line)
+         (if (> (current-column) 1024)
+             (gnus-delete-line)
+           (forward-line 1)))
        ;; Allow washing.
+       (goto-char (point-min))
        (run-hooks 'nnmail-split-hook)
        (if (and (symbolp nnmail-split-methods)
                 (fboundp nnmail-split-methods))
index 1d8cfd1..67eafb7 100644 (file)
@@ -211,7 +211,8 @@ server there that you can connect to.  See also
 (defvoo nntp-server-list-active-group 'try)
 
 (eval-and-compile
-  (autoload 'nnmail-read-passwd "nnmail"))
+  (autoload 'nnmail-read-passwd "nnmail")
+  (autoload 'open-ssl-stream "ssl"))
 
 \f
 
@@ -845,6 +846,16 @@ password contained in '~/.nntp-authinfo'."
 (defun nntp-open-network-stream (buffer)
   (open-network-stream "nntpd" buffer nntp-address nntp-port-number))
 
+(defun nntp-open-ssl-stream (buffer)
+  (let* ((ssl-program-arguments '("-connect" (concat host ":" service)))
+        (proc (open-ssl-stream "nntpd" buffer nntp-address nntp-port-number)))
+    (save-excursion
+      (set-buffer buffer)
+      (nntp-wait-for-string "^\r*20[01]")
+      (beginning-of-line)
+      (delete-region (point-min) (point))
+      proc)))
+
 (defun nntp-read-server-type ()
   "Find out what the name of the server we have connected to is."
   ;; Wait for the status string to arrive.
index df61450..d83356d 100644 (file)
@@ -399,7 +399,7 @@ to virtual article number.")
       (replace-match "" t t))
     (goto-char (point-min))
     (when (re-search-forward
-          (concat (gnus-group-real-name group) ":[0-9]+")
+          (concat (regexp-quote (gnus-group-real-name group)) ":[0-9]+")
           nil t)
       (replace-match "" t t))
     (unless (= (point) (point-max))
diff --git a/readme b/readme
index a232075..e3064ef 100644 (file)
--- a/readme
+++ b/readme
@@ -9,7 +9,7 @@ You should definitely byte-compile the source files. To do that, you
 can simply say "./configure; make" in this directory.  If you are
 using XEmacs, you *must* say "make EMACS=xemacs".  In that case you
 may also want to pull down the package of nice glyphs from
-<URL:http://www.gnus.org/~larsi/etc.tar.gz>.  It should be installed
+<URL:http://www.gnus.org/etc.tar.gz>.  It should be installed
 into the "gnus-5.4.53/etc" directory.
 
 Then you have to tell Emacs where Gnus is. You might put something
index 1e7d48d..ac91f20 100644 (file)
@@ -1,3 +1,13 @@
+Thu Jun 25 11:24:14 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.texi (Summary Score Commands): Deletia.
+
+Wed Jun 24 00:37:32 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.texi (Auto Save): Addition.
+       (Mail-To-News Gateways): Addition.
+       (NNTP): Addition.
+
 Wed Jun  3 03:30:47 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * message.texi (Message Headers): Addition.
index 811c94e..d06b99c 100644 (file)
@@ -7718,14 +7718,14 @@ Gnus \e$B$O%X%C%@!<$NJB$YBX$(\e(B(sort)\e$B$b9T$$$^$9!J$3$l$O%G%#%U%)%k%H$G9T$o$l$^
 \e$B3J9%$N5-;v$GKd$a9~$`$3$H$5$(2DG=$K$7$^$9!#\e(B
 
 @vindex gnus-show-mime
-@vindex gnus-show-mime-method
+@vindex gnus-article-display-method-for-mime
 @vindex gnus-strict-mime
-@findex metamail-buffer
-Gnus \e$B$O\e(B @code{gnus-show-mime-method} \e$B$K5-;v$r2!$7IU$1$k$3$H$G\e(B @sc{mime} \e$B$r\e(B
-\e$B07$$$^$9!#$3$l$O%G%#%U%)%k%H$G$O\e(B @code{gnus-show-mime-method} \e$B$G$9!#$3$N4X\e(B
-\e$B?t$O\e(B SEMI MIME-View \e$B%W%m%0%i%`$r8F$S=P$7$F<B:]$N=hM}$r9T$$$^$9!#\e(BSEMI
-MIME-View \e$B$K4X$9$k>\$7$$>pJs$O!"%^%K%e%"%k$r;2>H$7$F$/$@$5$$!J$^$@$J$$$1$I\e(B
-(;_;)\e$B!K!#\e(B
+@findex gnus-article-display-mime-message
+Gnus \e$B$O\e(B @code{gnus-article-display-method-for-mime} \e$B$K5-;v$r2!$7IU$1$k$3\e(B
+\e$B$H$G\e(B @sc{mime} \e$B$r07$$$^$9!#$3$N=i4|CM$O\e(B
+@code{gnus-article-display-mime-message} \e$B$G$9!#$3$N4X?t$O\e(B SEMI MIME-View 
+\e$B%W%m%0%i%`$r8F$S=P$7$F<B:]$N=hM}$r9T$$$^$9!#\e(BSEMI MIME-View \e$B$K4X$9$k>\$7\e(B
+\e$B$$>pJs$O!"%^%K%e%"%k$r;2>H$7$F$/$@$5$$!J$^$@$J$$$1$I\e(B(;_;)\e$B!K!#\e(B
 
 @sc{mime} \e$B$r>o$K;HMQ$7$?$1$l$P!"\e(B@code{gnus-show-mime} \e$B$r\e(B 
 @code{t} \e$B$K@_Dj$7$F$/$@$5$$!#$7$+$7!"\e(B@code{gnus-strict-mime} \e$B$,\e(B 
index 1c66d0d..d5c5e7e 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Semi-gnus 6.4.0 Manual
+@settitle Semi-gnus 6.7.2 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -316,7 +316,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Semi-gnus 6.4.0 Manual
+@title Semi-gnus 6.7.2 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -359,7 +359,7 @@ internationalization/localization and multiscript features based on MULE
 API.  So Semi-gnus does not discriminate various language communities.
 Oh, if you are a Klingon, please wait Unicode Next Generation.
 
-This manual corresponds to Semi-gnus 6.4.0.
+This manual corresponds to Semi-gnus 6.7.2.
 
 @end ifinfo
 
@@ -941,6 +941,10 @@ into the directory where the @file{.newsrc} file is located.  (This is
 normally the user's home directory.)  The dribble file will get the same
 file permissions as the @code{.newsrc} file.
 
+@vindex gnus-always-read-dribble-file
+If @code{gnus-always-read-dribble-file} is non-@code{nil}, Gnus will
+read the dribble file on startup without querying the user.
+
 
 @node The Active File
 @section The Active File
@@ -1945,10 +1949,12 @@ Add the current group to an @code{nnvirtual} group
 methods.
 
 @vindex gnus-activate-foreign-newsgroups
-If @code{gnus-activate-foreign-newsgroups} is a positive number, gnus
-will check all foreign groups with this level or lower at startup.  This
-might take quite a while, especially if you subscribe to lots of groups
-from different @sc{nntp} servers.
+If @code{gnus-activate-foreign-newsgroups} is a positive number,
+gnus will check all foreign groups with this level or lower at startup.
+This might take quite a while, especially if you subscribe to lots of
+groups from different @sc{nntp} servers.  Also @pxref{Group Levels};
+@code{gnus-activate-level} also affects activation of foreign
+newsgroups. 
 
 
 @node Group Parameters
@@ -7817,14 +7823,15 @@ of the characters, and it also makes it possible to embed pictures and
 other naughty stuff in innocent-looking articles.
 
 @vindex gnus-show-mime
-@vindex gnus-show-mime-method
+@vindex gnus-article-display-method-for-mime
 @vindex gnus-strict-mime
-@findex metamail-buffer
+@findex gnus-article-display-mime-message
 Gnus handles @sc{mime} by pushing the articles through
-@code{gnus-show-mime-method}, which is @code{gnus-show-mime-method} by
-default.  This function calls the SEMI MIME-View program to actually do
-the work.  For more information on SEMI MIME-View, see its manual page
-(however it is not existed yet, sorry).
+@code{gnus-article-display-method-for-mime}, which is
+@code{gnus-article-display-mime-message} by default.  This function
+calls the SEMI MIME-View program to actually do the work.  For more
+information on SEMI MIME-View, see its manual page (however it is not
+existed yet, sorry).
 
 Set @code{gnus-show-mime} to @code{t} if you want to use
 @sc{mime} all the time.  However, if @code{gnus-strict-mime} is
@@ -9029,14 +9036,18 @@ server.
 @findex nntp-open-network-stream
 @item nntp-open-connection-function
 @vindex nntp-open-connection-function
-This function is used to connect to the remote system.  Three pre-made
-functions are @code{nntp-open-network-stream}, which is the default, and
-simply connects to some port or other on the remote system.  The other
-two are @code{nntp-open-rlogin}, which does an @samp{rlogin} on the
+This function is used to connect to the remote system.  Four pre-made
+functions are supplied:
+
+@table @code
+@item nntp-open-network-stream
+This is the default, and simply connects to some port or other on the
+remote system.
+
+@item nntp-open-rlogin
+Does an @samp{rlogin} on the
 remote system, and then does a @samp{telnet} to the @sc{nntp} server
-available there, and @code{nntp-open-telnet}, which does a @samp{telnet}
-to the remote system and then another @samp{telnet} to get to the
-@sc{nntp} server.
+available there.
 
 @code{nntp-open-rlogin}-related variables:
 
@@ -9057,6 +9068,10 @@ User name on the remote system.
 
 @end table
 
+@item nntp-open-telnet
+Does a @samp{telnet} to the remote system and then another @samp{telnet}
+to get to the @sc{nntp} server.
+
 @code{nntp-open-telnet}-related variables:
 
 @table @code
@@ -9094,6 +9109,27 @@ This works for Solaris @code{telnet}, for instance.
 
 @end table
 
+@findex nntp-open-ssl-stream
+@item nntp-open-ssl-stream
+Opens a connection to a server over a @dfn{secure} channel.  To use this
+you must have SSLay installed
+(@file{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL}, and you also need
+@file{ssl.el} (from the W3 distributeion, for instance).  You then
+define a server as follows:
+
+@lisp
+;; Type `C-c C-c' after you've finished editing.
+;;
+;; "snews" is port 563 and is predefined in our /etc/services
+;;
+(nntp "snews.bar.com"
+      (nntp-open-connection-function nntp-open-ssl-stream)
+      (nntp-port-number "snews")
+      (nntp-address "snews.bar.com"))
+@end lisp
+
+@end table
+
 @item nntp-end-of-line
 @vindex nntp-end-of-line
 String to use as end-of-line marker when talking to the @sc{nntp}
@@ -11019,6 +11055,24 @@ will get this @code{From} header inserted:
 To: alt-religion-emacs@@GATEWAY
 @end example
 
+The following pre-defined functions exist:
+
+@findex nngateway-simple-header-transformation
+@table @code
+
+@item nngateway-simple-header-transformation
+Creates a @code{To} header that looks like
+@var{newsgroup}@@@code{nngateway-address}.
+
+@findex nngateway-mail2news-header-transformation
+
+@item nngateway-mail2news-header-transformation
+Creates a @code{To} header that looks like
+@samp{mail2news}@@@code{nngateway-address}.
+
+@end table
+
+
 @end table
 
 So, to use this, simply say something like:
@@ -11821,12 +11875,6 @@ Run the current summary through the scoring process
 around with your score files behind Gnus' back and want to see the
 effect you're having.
 
-@item V a
-@kindex V a (Summary)
-@findex gnus-summary-score-entry
-Add a new score entry, and allow specifying all elements
-(@code{gnus-summary-score-entry}).
-
 @item V c
 @kindex V c (Summary)
 @findex gnus-score-change-score-file
@@ -15728,7 +15776,7 @@ actually are people who are using Gnus.  Who'd'a thunk it!
 * ding Gnus::          New things in Gnus 5.0/5.1, the first new Gnus.
 * September Gnus::     The Thing Formally Known As Gnus 5.3/5.3.
 * Red Gnus::           Third time best---Gnus 5.4/5.5.
-* Quassia Gnus::       Two times two is four, or Gnus 5.6.11.
+* Quassia Gnus::       Two times two is four, or Gnus 5.6.15.
 @end menu
 
 These lists are, of course, just @emph{short} overviews of the
@@ -16263,7 +16311,7 @@ Emphasized text can be properly fontisized:
 @node Quassia Gnus
 @subsubsection Quassia Gnus
 
-New features in Gnus 5.6.11:
+New features in Gnus 5.6.15:
 
 @itemize @bullet
 
@@ -17559,6 +17607,15 @@ New spec: %~(tab 56) to put point on column 56
 Allow Gnus Agent scoring to use normal score files.
 
 @item
+Rething the Agent active file thing.  `M-g' doesn't update the active
+file, for instance.
+
+@item
+With dummy roots, `^' and then selecing the first article
+in any other dummy thread will make gnus highlight the
+dummy root instead of the first article.
+
+@item
 Solve the halting problem.
 
 @c TODO
index cdb63f4..069ee96 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Message 5.6.11 Manual
+@settitle Message 5.6.15 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Message 5.6.11 Manual
+@title Message 5.6.15 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -83,7 +83,7 @@ Message mode buffers.
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Message 5.6.11.  Message is distributed with
+This manual corresponds to Message 5.6.15.  Message is distributed with
 the Gnus distribution bearing the same version number as this manual
 has.