Synch with Oort Gnus.
authoryamaoka <yamaoka>
Thu, 5 Jul 2001 06:17:12 +0000 (06:17 +0000)
committeryamaoka <yamaoka>
Thu, 5 Jul 2001 06:17:12 +0000 (06:17 +0000)
Note that nntp.el has major changed.  See info carefully if you are
using rlogin, telnet, rsh or ssh to connect to the NNTP server.

* gnus-vers.el (gnus-revision-number): Increment to 03.

ChangeLog
lisp/ChangeLog
lisp/gnus-vers.el
lisp/nnimap.el
lisp/nntp.el
texi/ChangeLog
texi/gnus-ja.texi
texi/gnus.texi

index 9ea079e..b1d6dce 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2001-07-05  Katsumi Yamaoka <yamaoka@jpl.org>
+
+       * lisp/gnus-vers.el (gnus-revision-number): Increment to 03.
+
 2001-06-28  Akitada Koyama  <cx2@kh.rim.or.jp>
 
        * texi/gnus-ja.texi (Web Newspaper): Add a description how to show
index 0b0823c..634daf3 100644 (file)
@@ -1,8 +1,41 @@
+2001-07-04  Simon Josefsson  <jas@extundo.com>
+
+       * nnimap.el (nnimap-importantize-dormant): New variable.
+       (nnimap-request-update-info-internal): Use it.
+       (nnimap-request-set-mark): Ditto.
+
+2001-07-04  Didier Verna  <didier@lrde.epita.fr>
+
+       * nntp.el (nntp-send-command): don't pass a buffer argument to
+       `point'. Only XEmacs accepts this.
+       * nntp.el (nntp-send-command-nodelete): ditto.
+       * nntp.el (nntp-send-command-and-decode): ditto.
+
+2001-07-04  Didier Verna  <didier@lrde.epita.fr>
+
+       * nntp.el (nntp-open-connection-function): doc update.
+       * nntp.el (nntp-pre-command): New.
+       * nntp.el (nntp-via-rlogin-command): New.
+       * nntp.el (nntp-via-telnet-command): New.
+       * nntp.el (nntp-via-telnet-switches): New.
+       * nntp.el (nntp-via-user-name): New.
+       * nntp.el (nntp-via-user-password): New.
+       * nntp.el (nntp-via-address): New.
+       * nntp.el (nntp-via-envuser): New.
+       * nntp.el (nntp-via-shell-prompt): New.
+       * nntp.el (nntp-open-telnet-stream): New.
+       * nntp.el (nntp-open-via-rlogin-and-telnet): New.
+       * nntp.el (nntp-open-via-telnet-and-telnet): New.
+       * nntp.el (nntp-wait-for): check for possibly echo'ed commands.
+       * nntp.el (nntp-send-command): ditto.
+       * nntp.el (nntp-send-command-nodelete): ditto.
+       * nntp.el (nntp-send-command-and-decode): ditto.
+
 2001-06-30  YAGI Tatsuya  <yagi@is.titech.ac.jp>
 
        * gnus-start.el (gnus-check-first-time-used): Use `if' instead of
        `when'.
-       
+
 2001-07-03  Simon Josefsson  <jas@extundo.com>
        From Nuutti Kotivuori <nuutti.kotivuori@smarttrust.com>
 
@@ -22,7 +55,7 @@
        * mml2015.el (mml2015-format-error): New function.
        (mml2015-mailcrypt-decrypt, mml2015-mailcrypt-clear-decrypt)
        (mml2015-mailcrypt-verify, mml2015-gpg-clear-verify)
-       (mml2015-mailcrypt-clear-verify, mml2015-gpg-verify): Use it. 
+       (mml2015-mailcrypt-clear-verify, mml2015-gpg-verify): Use it.
 
 2001-06-26 22:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
@@ -38,7 +71,7 @@
 
        * nnrss.el (nnrss-save-server-data): Bind print-level and print-length.
        (nnrss-save-group-data): Ditto.
-       
+
        * gnus-agent.el (gnus-agent-save-alist): Ditto.
 
 2001-06-25  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 2001-06-21 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
-       * message.el (message-make-date): Add week day. 
+       * message.el (message-make-date): Add week day.
        Suggested by Jason R. Mastaler <jason@mastaler.com>.
 
 2001-06-19  Simon Josefsson  <jas@extundo.com>
 
        * gnus.el (gnus-define-group-parameter): Don't quote the defcustom
        specs.
-       
+
 2001-06-13 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * gnus.el (gnus-email-address): Move it here.
 
 2001-06-12 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
-       * gnus-art.el (gnus-plain-save-name): Use file-relative-name. 
+       * gnus-art.el (gnus-plain-save-name): Use file-relative-name.
        From Marc Lefranc <Marc.Lefranc@univ-lille1.fr>.
-       
+
        * nnrss.el (nnrss-node-text): Node might be nil.
 
 2001-06-11 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * gnus-uu.el (gnus-uu-save-article): Use mml tag instead of
        part. From Katsumi Yamaoka <yamaoka@jpl.org>.
-       
+
        * nnrss.el (nnrss-group-alist): More items.
 
 2001-06-09 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
        * nnrss.el (nnrss-node-text): Use cddr instead xml-node-children.
 
 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
 
 2001-06-02  Simon Josefsson  <simon@josefsson.org>
 
-       * imap.el (imap-kerberos4-open): 
+       * imap.el (imap-kerberos4-open):
        (imap-gssapi-open):
        (imap-ssl-open):
        (imap-network-open):
 2001-05-28  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        From Jaap-Henk Hoepman (jhh@xs4all.nl).
-       
+
        * mm-decode.el (mm-keep-viewer-alive-types): New variable.
        (mm-keep-viewer-alive-p, mm-handle-set-external-undisplayer,
        mm-destroy-postponed-undisplay-list): New functions.
index 22a7e58..9f5f453 100644 (file)
@@ -34,7 +34,7 @@
 (require 'product)
 (provide 'gnus-vers)
 
-(defconst gnus-revision-number "02"
+(defconst gnus-revision-number "03"
   "Revision number for this version of gnus.")
 
 ;; Product information of this gnus.
index 912c04e..4c969a8 100644 (file)
@@ -262,6 +262,12 @@ be `UID %s NOT SENTSINCE %s' to make nnimap use the Date: header
 instead of the internal date of messages.  See section 6.4.4 of RFC
 2060 for more information on valid strings.")
 
+(defvoo nnimap-importantize-dormant t
+  "*If non-nil, mark \"dormant\" articles as \"ticked\" for other IMAP clients.
+Note that within Gnus, dormant articles will still (only) be
+marked as ticked.  This is to make \"dormant\" articles stand out,
+just like \"ticked\" articles, in other IMAP clients.")
+
 (defvoo nnimap-server-address nil
   "Obsolete.  Use `nnimap-address'.")
 
@@ -905,17 +911,18 @@ function is generally only called when Gnus is shutting down."
                     t)))
                gnus-article-mark-lists)
 
-       ;; nnimap mark dormant article as ticked too (for other clients)
-       ;; so we remove that mark for gnus since we support dormant
-       (gnus-info-set-marks
-        info 
-        (nnimap-update-alist-soft
-         'tick
-         (gnus-remove-from-range
-          (cdr-safe (assoc 'tick (gnus-info-marks info)))
-          (cdr-safe (assoc 'dormant (gnus-info-marks info))))
-         (gnus-info-marks info))
-        t)
+       (when nnimap-importantize-dormant
+         ;; nnimap mark dormant article as ticked too (for other clients)
+         ;; so we remove that mark for gnus since we support dormant
+         (gnus-info-set-marks
+          info 
+          (nnimap-update-alist-soft
+           'tick
+           (gnus-remove-from-range
+            (cdr-safe (assoc 'tick (gnus-info-marks info)))
+            (cdr-safe (assoc 'dormant (gnus-info-marks info))))
+           (gnus-info-marks info))
+          t))
        
        (gnus-message 5 "nnimap: Updating info for %s...done"
                      (gnus-info-group info))
@@ -939,9 +946,10 @@ function is generally only called when Gnus is shutting down."
                marks)
            ;; cache flags are pointless on the server
            (setq cmdmarks (delq 'cache cmdmarks))
-           ;; flag dormant articles as ticked
-           (if (memq 'dormant cmdmarks)
-               (setq cmdmarks (cons 'tick cmdmarks)))
+           (when nnimap-importantize-dormant
+             ;; flag dormant articles as ticked
+             (if (memq 'dormant cmdmarks)
+                 (setq cmdmarks (cons 'tick cmdmarks))))
            ;; remove stuff we are forbidden to store
            (mapcar (lambda (mark)
                      (if (imap-message-flag-permanent-p
index 092e8a2..7b03ed3 100644 (file)
@@ -101,57 +101,70 @@ You probably don't want to do that, though.")
 
 (defvoo nntp-open-connection-function 'nntp-open-network-stream
   "*Function used for connecting to a remote system.
-It will be called with the buffer to output in.
+It will be called with the buffer to output in as argument.
 
-Two pre-made functions are `nntp-open-network-stream', which is the
-default, and simply connects to some port or other on the remote
-system (see nntp-port-number).  The other are `nntp-open-rlogin',
-which does an rlogin on the remote system, and then does a telnet to
-the NNTP server available there (see nntp-rlogin-parameters) and
-`nntp-open-telnet' which telnets to a remote system, logs in and does
-the same.")
+Currently, five such functions are provided (please refer to their
+respective doc string for more information), three of them establishing
+direct connections to the nntp server, and two of them using an indirect
+host.
 
-(defvoo nntp-rlogin-program "rsh"
-  "*Program used to log in on remote machines.
-The default is \"rsh\", but \"ssh\" is a popular alternative.")
+Direct connections:
+- `nntp-open-network-stream' (the default),
+- `nntp-open-ssl-stream',
+- `nntp-open-telnet-stream'.
 
-(defvoo nntp-rlogin-parameters '("telnet" "-8" "${NNTPSERVER:=news}" "nntp")
-  "*Parameters to `nntp-open-rlogin'.
-That function may be used as `nntp-open-connection-function'.  In that
-case, this list will be used as the parameter list given to rsh.")
+Indirect connections:
+- `nntp-open-via-rlogin-and-telnet',
+- `nntp-open-via-telnet-and-telnet'.")
 
-(defvoo nntp-rlogin-user-name nil
-  "*User name on remote system when using the rlogin connect method.")
+(defvoo nntp-pre-command nil
+  "*Pre-command to use with the various nntp-open-via-* methods.
+This is where you would put \"runsocks\" or stuff like that.")
 
-(defvoo nntp-telnet-parameters
-    '("exec" "telnet" "-8" "${NNTPSERVER:=news}" "nntp")
-  "*Parameters to `nntp-open-telnet'.
-That function may be used as `nntp-open-connection-function'.  In that
-case, this list will be executed as a command after logging in
-via telnet.")
+(defvoo nntp-telnet-command "telnet"
+  "*Telnet command used to connect to the nntp server.
+This command is used by the various nntp-open-via-* methods.")
 
-(defvoo nntp-telnet-user-name nil
-  "User name to log in via telnet with.")
+(defvoo nntp-telnet-switches '("-8")
+  "*Switches given to the telnet command `nntp-telnet-command'.")
 
-(defvoo nntp-telnet-passwd nil
-  "Password to use to log in via telnet with.")
+(defvoo nntp-end-of-line "\r\n"
+  "*String to use on the end of lines when talking to the NNTP server.
+This is \"\\r\\n\" by default, but should be \"\\n\" when
+using and indirect connection method (nntp-open-via-*).")
 
-(defvoo nntp-open-telnet-envuser nil
-  "*If non-nil, telnet session (client and server both) will support the ENVIRON option and not prompt for login name.")
+(defvoo nntp-via-rlogin-command "rsh"
+  "*Rlogin command used to connect to an intermediate host.
+This command is used by the `nntp-open-via-rlogin-and-telnet' method.
+The default is \"rsh\", but \"ssh\" is a popular alternative.")
 
-(defvoo nntp-telnet-shell-prompt "bash\\|\$ *\r?$\\|> *\r?"
-  "*Regular expression to match the shell prompt on the remote machine.")
+(defvoo nntp-via-telnet-command "telnet"
+  "*Telnet command used to connect to an intermediate host.
+This command is used by the `nntp-open-via-telnet-and-telnet' method.")
 
-(defvoo nntp-telnet-command "telnet"
-  "Command used to start telnet.")
+(defvoo nntp-via-telnet-switches '("-8")
+  "*Switches given to the telnet command `nntp-via-telnet-command'.")
 
-(defvoo nntp-telnet-switches '("-8")
-  "Switches given to the telnet command.")
+(defvoo nntp-via-user-name nil
+  "*User name to log in on an intermediate host with.
+This variable is used by the `nntp-open-via-telnet-and-telnet' method.")
 
-(defvoo nntp-end-of-line "\r\n"
-  "String to use on the end of lines when talking to the NNTP server.
-This is \"\\r\\n\" by default, but should be \"\\n\" when
-using rlogin or telnet to communicate with the server.")
+(defvoo nntp-via-user-password nil
+  "*Password to use to log in on an intermediate host with.
+This variable is used by the `nntp-open-via-telnet-and-telnet' method.")
+
+(defvoo nntp-via-address nil
+  "*Address of an intermediate host to connect to.
+This variable is used by the `nntp-open-via-rlogin-and-telnet' and
+`nntp-open-via-telnet-and-telnet' methods.")
+
+(defvoo nntp-via-envuser nil
+  "*Whether both telnet client and server support the ENVIRON option.
+If non-nil, there will be no prompt for a login name.")
+
+(defvoo nntp-via-shell-prompt "bash\\|\$ *\r?$\\|> *\r?"
+  "*Regular expression to match the shell prompt on an intermediate host.
+This variable is used by the `nntp-open-via-telnet-and-telnet' method.")
 
 (defvoo nntp-large-newsgroup 50
   "*The number of the articles which indicates a large newsgroup.
@@ -296,6 +309,8 @@ noticing asynchronous data.")
                (memq (process-status process) '(open run)))
       (when (looking-at "480")
        (nntp-handle-authinfo process))
+      (when (looking-at "^.*\n")
+       (delete-region (point) (progn (forward-line 1) (point))))
       (nntp-accept-process-output process)
       (goto-char (point-min)))
     (prog1
@@ -404,17 +419,43 @@ noticing asynchronous data.")
     (save-excursion
       (set-buffer nntp-server-buffer)
       (erase-buffer)))
-  (nntp-retrieve-data
-   (mapconcat 'identity strings " ")
-   nntp-address nntp-port-number nntp-server-buffer
-   wait-for nnheader-callback-function))
+  (let* ((command (mapconcat 'identity strings " "))
+        (buffer (process-buffer (nntp-find-connection nntp-server-buffer)))
+        (pos (with-current-buffer buffer (point))))
+    (prog1
+       (nntp-retrieve-data command
+                           nntp-address nntp-port-number nntp-server-buffer
+                           wait-for nnheader-callback-function)
+      ;; If nothing to wait for, still remove possibly echo'ed commands
+      (unless wait-for
+       (nntp-accept-response)
+       (save-excursion
+         (set-buffer buffer)
+         (goto-char pos)
+         (if (looking-at (regexp-quote command))
+             (delete-region pos (progn (forward-line 1) (point-at-bol))))
+         )))
+    ))
 
 (defun nntp-send-command-nodelete (wait-for &rest strings)
   "Send STRINGS to server and wait until WAIT-FOR returns."
-  (nntp-retrieve-data
-   (mapconcat 'identity strings " ")
-   nntp-address nntp-port-number nntp-server-buffer
-   wait-for nnheader-callback-function))
+  (let* ((command (mapconcat 'identity strings " "))
+        (buffer (process-buffer (nntp-find-connection nntp-server-buffer)))
+        (pos (with-current-buffer buffer (point))))
+    (prog1
+       (nntp-retrieve-data command
+                           nntp-address nntp-port-number nntp-server-buffer
+                           wait-for nnheader-callback-function)
+      ;; If nothing to wait for, still remove possibly echo'ed commands
+      (unless wait-for
+       (nntp-accept-response)
+       (save-excursion
+         (set-buffer buffer)
+         (goto-char pos)
+         (if (looking-at (regexp-quote command))
+             (delete-region pos (progn (forward-line 1) (point-at-bol))))
+         )))
+    ))
 
 (defun nntp-send-command-and-decode (wait-for &rest strings)
   "Send STRINGS to server and wait until WAIT-FOR returns."
@@ -423,10 +464,24 @@ noticing asynchronous data.")
     (save-excursion
       (set-buffer nntp-server-buffer)
       (erase-buffer)))
-  (nntp-retrieve-data
-   (mapconcat 'identity strings " ")
-   nntp-address nntp-port-number nntp-server-buffer
-   wait-for nnheader-callback-function t))
+  (let* ((command (mapconcat 'identity strings " "))
+        (buffer (process-buffer (nntp-find-connection nntp-server-buffer)))
+        (pos (with-current-buffer buffer (point))))
+    (prog1
+       (nntp-retrieve-data command
+                           nntp-address nntp-port-number nntp-server-buffer
+                           wait-for nnheader-callback-function t)
+      ;; If nothing to wait for, still remove possibly echo'ed commands
+      (unless wait-for
+       (nntp-accept-response)
+       (save-excursion
+         (set-buffer buffer)
+         (goto-char pos)
+         (if (looking-at (regexp-quote command))
+             (delete-region pos (progn (forward-line 1) (point-at-bol))))
+         )))
+    ))
+
 
 (defun nntp-send-buffer (wait-for)
   "Send the current buffer to server and wait until WAIT-FOR returns."
@@ -570,7 +625,7 @@ noticing asynchronous data.")
                            (setq last-point (point))
                            (< received count)))
                (nntp-accept-response))))
-         
+
          ;; Wait for the reply from the final command.
          (unless (gnus-buffer-live-p buf)
            (nnheader-report 'nntp "Connection to %s is closed." server)
@@ -588,7 +643,7 @@ noticing asynchronous data.")
                            (not (re-search-backward "^\\.\r?\n"
                                                     (- (point) 4) t)))))
              (nntp-accept-response)))
-         
+
          ;; Now all replies are received.  We remove CRs.
          (unless (gnus-buffer-live-p buf)
            (nnheader-report 'nntp "Connection to %s is closed." server)
@@ -597,7 +652,7 @@ noticing asynchronous data.")
          (goto-char (point-min))
          (while (search-forward "\r" nil t)
            (replace-match "" t t))
-         
+
          (if (not nntp-server-list-active-group)
              (progn
                (copy-to-buffer nntp-server-buffer (point-min) (point-max))
@@ -610,7 +665,7 @@ noticing asynchronous data.")
                             (progn (forward-line 1) (point))))
            (copy-to-buffer nntp-server-buffer (point-min) (point-max))
            'active))))))
-  
+
 (deffoo nntp-retrieve-articles (articles &optional group server)
   (nntp-possibly-change-group group server)
   (save-excursion
@@ -1264,11 +1319,11 @@ password contained in '~/.nntp-authinfo'."
        (while (and (cdr articles)
                    (< (- (nth 1 articles) (car articles)) nntp-nov-gap))
          (setq articles (cdr articles)))
-       
+
        (setq in-process-buffer-p (stringp nntp-server-xover))
        (nntp-send-xover-command first (car articles))
        (setq articles (cdr articles))
-       
+
        (when (and nntp-server-xover in-process-buffer-p)
          ;; Don't count tried request.
          (setq count (1+ count))
@@ -1365,7 +1420,44 @@ password contained in '~/.nntp-authinfo'."
            (setq nntp-server-xover nil)))
        nntp-server-xover))))
 
-;;; Alternative connection methods.
+(defun nntp-find-group-and-number ()
+  (save-excursion
+    (save-restriction
+      (set-buffer nntp-server-buffer)
+      (narrow-to-region (goto-char (point-min))
+                       (or (search-forward "\n\n" nil t) (point-max)))
+      (goto-char (point-min))
+      ;; We first find the number by looking at the status line.
+      (let ((number (and (looking-at "2[0-9][0-9] +\\([0-9]+\\) ")
+                        (string-to-int
+                         (buffer-substring (match-beginning 1)
+                                           (match-end 1)))))
+           group newsgroups xref)
+       (and number (zerop number) (setq number nil))
+       ;; Then we find the group name.
+       (setq group
+             (cond
+              ;; If there is only one group in the Newsgroups header,
+              ;; then it seems quite likely that this article comes
+              ;; from that group, I'd say.
+              ((and (setq newsgroups (mail-fetch-field "newsgroups"))
+                    (not (string-match "," newsgroups)))
+               newsgroups)
+              ;; If there is more than one group in the Newsgroups
+              ;; header, then the Xref header should be filled out.
+              ;; We hazard a guess that the group that has this
+              ;; article number in the Xref header is the one we are
+              ;; looking for.  This might very well be wrong if this
+              ;; article happens to have the same number in several
+              ;; groups, but that's life.
+              ((and (setq xref (mail-fetch-field "xref"))
+                    number
+                    (string-match (format "\\([^ :]+\\):%d" number) xref))
+               (substring xref (match-beginning 1) (match-end 1)))
+              (t "")))
+       (when (string-match "\r" group)
+         (setq group (substring group 0 (match-beginning 0))))
+       (cons group number)))))
 
 (defun nntp-wait-for-string (regexp)
   "Wait until string arrives in the buffer."
@@ -1376,6 +1468,42 @@ password contained in '~/.nntp-authinfo'."
       (set-buffer buf)
       (goto-char (point-min)))))
 
+
+;; ==========================================================================
+;; Obsolete nntp-open-* connection methods -- drv
+;; ==========================================================================
+
+(defvoo nntp-open-telnet-envuser nil
+  "*If non-nil, telnet session (client and server both) will support the ENVIRON option and not prompt for login name.")
+
+(defvoo nntp-telnet-shell-prompt "bash\\|\$ *\r?$\\|> *\r?"
+  "*Regular expression to match the shell prompt on the remote machine.")
+
+(defvoo nntp-rlogin-program "rsh"
+  "*Program used to log in on remote machines.
+The default is \"rsh\", but \"ssh\" is a popular alternative.")
+
+(defvoo nntp-rlogin-parameters '("telnet" "-8" "${NNTPSERVER:=news}" "nntp")
+  "*Parameters to `nntp-open-rlogin'.
+That function may be used as `nntp-open-connection-function'.  In that
+case, this list will be used as the parameter list given to rsh.")
+
+(defvoo nntp-rlogin-user-name nil
+  "*User name on remote system when using the rlogin connect method.")
+
+(defvoo nntp-telnet-parameters
+    '("exec" "telnet" "-8" "${NNTPSERVER:=news}" "nntp")
+  "*Parameters to `nntp-open-telnet'.
+That function may be used as `nntp-open-connection-function'.  In that
+case, this list will be executed as a command after logging in
+via telnet.")
+
+(defvoo nntp-telnet-user-name nil
+  "User name to log in via telnet with.")
+
+(defvoo nntp-telnet-passwd nil
+  "Password to use to log in via telnet with.")
+
 (defun nntp-open-telnet (buffer)
   (save-excursion
     (set-buffer buffer)
@@ -1444,44 +1572,143 @@ password contained in '~/.nntp-authinfo'."
       (delete-region (point-min) (point))
       proc)))
 
-(defun nntp-find-group-and-number ()
+
+;; ==========================================================================
+;; Replacements for the nntp-open-* functions -- drv
+;; ==========================================================================
+
+(defun nntp-open-telnet-stream (buffer)
+  "Open a nntp connection by telnet'ing the news server.
+
+Please refer to the following variables to customize the connection:
+- `nntp-pre-command',
+- `nntp-telnet-command',
+- `nntp-telnet-switches',
+- `nntp-address',
+- `nntp-port-number',
+- `nntp-end-of-line'."
+  (let ((command `(,nntp-telnet-command
+                  ,@nntp-telnet-switches
+                  ,nntp-address ,nntp-port-number))
+       proc)
+    (and nntp-pre-command
+        (push nntp-pre-command command))
+    (setq proc (apply 'start-process "nntpd" buffer command))
+    (save-excursion
+      (set-buffer buffer)
+      (nntp-wait-for-string "^\r*20[01]")
+      (beginning-of-line)
+      (delete-region (point-min) (point))
+      proc)))
+
+(defun nntp-open-via-rlogin-and-telnet (buffer)
+  "Open a connection to an nntp server through an intermediate host.
+First rlogin to the remote host, and then telnet the real news server
+from there.
+
+Please refer to the following variables to customize the connection:
+- `nntp-pre-command',
+- `nntp-via-rlogin-command',
+- `nntp-via-user-name',
+- `nntp-via-address',
+- `nntp-telnet-command',
+- `nntp-telnet-switches',
+- `nntp-address',
+- `nntp-port-number',
+- `nntp-end-of-line'."
+  (let ((command `(,nntp-via-address
+                  ,nntp-telnet-command
+                  ,@nntp-telnet-switches
+                  ,nntp-address ,nntp-port-number))
+       proc)
+    (and nntp-via-user-name
+        (setq command `("-l" ,nntp-via-user-name ,@command)))
+    (push nntp-via-rlogin-command command)
+    (and nntp-pre-command
+        (push nntp-pre-command command))
+    (setq proc (apply 'start-process "nntpd" buffer command))
+    (save-excursion
+      (set-buffer buffer)
+      (nntp-wait-for-string "^\r*20[01]")
+      (beginning-of-line)
+      (delete-region (point-min) (point))
+      proc)))
+
+(defun nntp-open-via-telnet-and-telnet (buffer)
+  "Open a connection to an nntp server through an intermediate host.
+First telnet the remote host, and then telnet the real news server
+from there.
+
+Please refer to the following variables to customize the connection:
+- `nntp-pre-command',
+- `nntp-via-telnet-command',
+- `nntp-via-telnet-switches',
+- `nntp-via-address',
+- `nntp-via-envuser',
+- `nntp-via-user-name',
+- `nntp-via-user-password',
+- `nntp-via-shell-prompt',
+- `nntp-telnet-command',
+- `nntp-telnet-switches',
+- `nntp-address',
+- `nntp-port-number',
+- `nntp-end-of-line'."
   (save-excursion
-    (save-restriction
-      (set-buffer nntp-server-buffer)
-      (narrow-to-region (goto-char (point-min))
-                       (or (search-forward "\n\n" nil t) (point-max)))
-      (goto-char (point-min))
-      ;; We first find the number by looking at the status line.
-      (let ((number (and (looking-at "2[0-9][0-9] +\\([0-9]+\\) ")
-                        (string-to-int
-                         (buffer-substring (match-beginning 1)
-                                           (match-end 1)))))
-           group newsgroups xref)
-       (and number (zerop number) (setq number nil))
-       ;; Then we find the group name.
-       (setq group
-             (cond
-              ;; If there is only one group in the Newsgroups header,
-              ;; then it seems quite likely that this article comes
-              ;; from that group, I'd say.
-              ((and (setq newsgroups (mail-fetch-field "newsgroups"))
-                    (not (string-match "," newsgroups)))
-               newsgroups)
-              ;; If there is more than one group in the Newsgroups
-              ;; header, then the Xref header should be filled out.
-              ;; We hazard a guess that the group that has this
-              ;; article number in the Xref header is the one we are
-              ;; looking for.  This might very well be wrong if this
-              ;; article happens to have the same number in several
-              ;; groups, but that's life.
-              ((and (setq xref (mail-fetch-field "xref"))
-                    number
-                    (string-match (format "\\([^ :]+\\):%d" number) xref))
-               (substring xref (match-beginning 1) (match-end 1)))
-              (t "")))
-       (when (string-match "\r" group)
-         (setq group (substring group 0 (match-beginning 0))))
-       (cons group number)))))
+    (set-buffer buffer)
+    (erase-buffer)
+    (let ((command `(,nntp-via-telnet-command ,@nntp-via-telnet-switches))
+         (case-fold-search t)
+         proc)
+      (and nntp-pre-command (push nntp-pre-command command))
+      (setq proc (apply 'start-process "nntpd" buffer command))
+      (when (memq (process-status proc) '(open run))
+       (nntp-wait-for-string "^r?telnet")
+       (process-send-string proc "set escape \^X\n")
+       (cond
+        ((and nntp-via-envuser nntp-via-user-name)
+         (process-send-string proc (concat "open " "-l" nntp-via-user-name
+                                           nntp-via-address "\n")))
+        (t
+         (process-send-string proc (concat "open " nntp-via-address
+                                           "\n"))))
+       (when (not nntp-via-envuser)
+         (nntp-wait-for-string "^\r*.?login:")
+         (process-send-string proc
+                              (concat
+                               (or nntp-via-user-name
+                                   (setq nntp-via-user-name
+                                         (read-string "login: ")))
+                               "\n")))
+       (nntp-wait-for-string "^\r*.?password:")
+       (process-send-string proc
+                            (concat
+                             (or nntp-via-user-password
+                                 (setq nntp-via-user-password
+                                       (mail-source-read-passwd
+                                        "Password: ")))
+                             "\n"))
+       (nntp-wait-for-string nntp-via-shell-prompt)
+       (let ((real-telnet-command `("exec"
+                                    ,nntp-telnet-command
+                                    ,@nntp-telnet-switches
+                                    ,nntp-address
+                                    ,nntp-port-number)))
+         (process-send-string proc
+                              (concat (mapconcat 'identity
+                                                 real-telnet-command " ")
+                                      "\n")))
+       (nntp-wait-for-string "^\r*20[01]")
+       (beginning-of-line)
+       (delete-region (point-min) (point))
+       (process-send-string proc "\^]")
+       (nntp-wait-for-string "^r?telnet")
+       (process-send-string proc "mode character\n")
+       (accept-process-output proc 1)
+       (sit-for 1)
+       (goto-char (point-min))
+       (forward-line 1)
+       (delete-region (point) (point-max)))
+      proc)))
 
 (provide 'nntp)
 
index ca8c3ae..368ab13 100644 (file)
@@ -1,3 +1,16 @@
+2001-07-04  Simon Josefsson  <jas@extundo.com>
+
+       * gnus.texi (IMAP): Add.
+
+2001-07-04  Didier Verna  <didier@lrde.epita.fr>
+
+       * gnus.texi (Example Methods): use the new nntp-open-connection
+       methods in the examples.
+       * gnus.texi (NNTP): update for the new nntp-open-connection methods.
+       * gnus.texi (Direct Functions): new node.
+       * gnus.texi (Indirect Functions): new node.
+       * gnus.texi (Common Variables): new node.
+
 2001-06-27  Simon Josefsson  <jas@extundo.com>
        From Ralph Schleicher <rs@nunatak.allgaeu.org>
 
 2001-03-11  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * message.texi (Message Headers): Update doc for
-       `message-generate-headers-first'. 
+       `message-generate-headers-first'.
 
 2001-03-14 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
        From Nevin Kapur <nevin@jhu.edu>
 
        * gnus.texi (Posting Server): Fix, due to change of default value
        of `gnus-post-method' to `current'.
-       
+
 2001-02-23 08:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * gnus.texi: Remove double words. From Gerd Moellmann.
 
        * infohack.el (batch-makeinfo): New.
-       
+
        * Makefile.in (EMACSINFO): Use it.
 
 2001-02-17 13:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 2001-02-06 19:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * gnus.texi (Using GPG): Key binding.
-       
+
        * message.texi (Security): Ditto.
 
 2001-02-06 18:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * message.texi (message-ignored-news-headers): Add "X-Draft-From:".
        (message-ignored-mail-headers): Ditto.
-       
+
 2001-01-21  Raymond Scholz <ray-2001@zonix.de>
 
        * message.texi: Rename X-Mailer and X-Newsreader to User-Agent.
 
 2001-01-10 15:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
-       * gnus.texi (Article Washing): makeinfo 1.69 doesn't grok `anchor'. 
+       * gnus.texi (Article Washing): makeinfo 1.69 doesn't grok `anchor'.
 
 2001-01-07 18:18:53  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
 2001-01-03  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
        * gnus.texi (Article Washing): Mention `C-u g' as a sort of
-       anti-washing. 
+       anti-washing.
 
 2001-01-01 11:40:34  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
 
        * gnus.texi (Archived Messages): Explain what happens when group
        names mentioned in `gnus-message-archive-group' contain a select
-       method. 
+       method.
 
 2000-10-28  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 
 
 2000-07-03 00:24:55  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
-       * gnus.texi (Splitting Mail): Mention gnus-summary-respool-trace. 
+       * gnus.texi (Splitting Mail): Mention gnus-summary-respool-trace.
        (Searching for Articles): Fix.
        (Newest Features): Fix.
 
 
 2000-04-26 02:30:06  Shenghuo ZHU  <zsh@cs.rochester.edu>
 
-       * gnus.texi (Posting Styles): Addition. 
+       * gnus.texi (Posting Styles): Addition.
 
 2000-04-24 17:09:17  Felix Natter  <f.natter@ndh.net>
 
@@ -1303,7 +1316,7 @@ Thu Feb 25 00:28:49 1999  Shenghuo ZHU  <zsh@cs.rochester.edu>
 1998-08-27 07:29:17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus.texi (Mail Folders): Addition.
-       
+
 ;; Local Variables:
 ;; coding: iso-2022-7bit
 ;; End:
index 7e278cd..3bec0d4 100644 (file)
@@ -1238,7 +1238,6 @@ Gnus \e$B$O!"IaDL$O%0%k!<%W$,?7$7$$$+$I$&$+$r!"9XFI$7$F$$$k%0%k!<%W$H:o=|$5\e(B
 \e$B$$$/$D$+$N<j7Z$J%W%l%O%V4X?t$O!"0J2<$N$h$&$K$J$C$F$$$^$9!#\e(B
 
 @table @code
-
 @item gnus-subscribe-zombies
 @vindex gnus-subscribe-zombies
 \e$B$9$Y$F$N?7$7$$%0%k!<%W$r%>%s%S\e(B (zombie) \e$B$K$7$^$9!#$3$l$,=i4|@_Dj\e(B \e$B$K$J$C\e(B
@@ -1288,7 +1287,6 @@ Gnus \e$B$O!"IaDL$O%0%k!<%W$,?7$7$$$+$I$&$+$r!"9XFI$7$F$$$k%0%k!<%W$H:o=|$5\e(B
 
 \e$B%0%k!<%W$K9gCW$9$k%H%T%C%/$,L5$$>l9g!"%0%k!<%W$O:G>e0L$N%H%T%C%/$G9XFI$5\e(B
 \e$B$l$^$9!#\e(B
-
 @end table
 
 @vindex gnus-subscribe-hierarchical-interactive
@@ -1582,7 +1580,6 @@ Gnus \e$B$N5/F0$K$"$^$j$K;~4V$,$+$+$k$H;W$C$?$J$i!"$3$NJQ?t$K$3$l$i$N;0$D$N\e(B
 @section \e$B5/F0JQ?t\e(B
 
 @table @code
-
 @item gnus-load-hook
 @vindex gnus-load-hook
 Gnus \e$B$,FI$_9~$^$l$F$$$k$H$-$K<B9T$5$l$k%U%C%/$G$9!#2?EY\e(B gnus \e$B$r5/F0$7$F\e(B
@@ -1636,7 +1633,6 @@ Gnus \e$B$N5/F0$K@.8y$7$?8e$K!"0lHV:G8e$K<B9T$5$l$k%U%C%/$G$9!#\e(B
 @vindex gnus-startup-jingle
 \e$B>e$NJQ?t$,\e(B @code{nil} \e$B$G$J$$$H$-$K1iAU$5$l$kC;$$6J$G$9!#=i4|CM\e(B
 \e$B$O\e(B @samp{Tuxdemoon.Jingle4.au} \e$B$G$9!#\e(B
-
 @end table
 
 @node Group Buffer
@@ -1731,7 +1727,6 @@ Gnus \e$B$N5/F0$K@.8y$7$?8e$K!"0lHV:G8e$K<B9T$5$l$k%U%C%/$G$9!#\e(B
 \e$B0J2<$,;HMQ$G$-$k%U%)!<%^%C%HJ8;z$N%j%9%H$G$9!#\e(B
 
 @table @samp
-
 @item M
 \e$B$=$N%0%k!<%W$,0u$N$D$$$?5-;v$@$1$N$H$-$O!"%"%9%?%j%9%/J8;z!#\e(B
 
@@ -1932,7 +1927,6 @@ Gnus \e$B$O\e(B @code{gnus-user-format-function-}@samp{X} \e$B4X?t$r8F$S=P$7$^$9!#$
 \e$B$9!#$?$V$s$M!#\e(B
 
 @table @kbd
-
 @item n
 @kindex n (Group)
 @findex gnus-group-next-unread-group
@@ -1973,7 +1967,6 @@ Gnus \e$B$O\e(B @code{gnus-user-format-function-}@samp{X} \e$B4X?t$r8F$S=P$7$^$9!#$
 \e$B<!$N;0$D$NL?Na$O%0%k!<%W$K%8%c%s%W$9$k$?$a$N$b$N$G$9\e(B:
 
 @table @kbd
-
 @item j
 @kindex j (Group)
 @findex gnus-group-jump-to-group
@@ -2005,7 +1998,6 @@ Gnus \e$B$O\e(B @code{gnus-user-format-function-}@samp{X} \e$B4X?t$r8F$S=P$7$^$9!#$
 @cindex group selection
 
 @table @kbd
-
 @item SPACE
 @kindex SPACE (Group)
 @findex gnus-group-read-group
@@ -2058,7 +2050,6 @@ Gnus \e$B$O\e(B @code{gnus-user-format-function-}@samp{X} \e$B4X?t$r8F$S=P$7$^$9!#$
 \e$B$9\e(B (@code{gnus-group-select-group-ephemerally})\e$B!#%9%l%C%II=<($5$($b9T$o\e(B
 \e$B$l$^$;$s!#$3$NJ}K!$GA*Br$7$?8e$K$3$N%0%k!<%W$KBP$7$F9T$C$?$3$H$OA4$F!"$=\e(B
 \e$B$N8e$K1F6A$rM?$($k$3$H$O$"$j$^$;$s!#\e(B
-
 @end table
 
 @vindex gnus-large-newsgroup
@@ -2076,7 +2067,6 @@ Gnus \e$B$O\e(B @code{gnus-user-format-function-}@samp{X} \e$B4X?t$r8F$S=P$7$^$9!#$
 \e$B$H$-$K!"<+F0E*$K5-;v$rA*Br$9$k$+$I$&$+$r@)8f$7$^$9!#\e(B
 
 @table @code
-
 @item nil
 \e$B%0%k!<%W$KF~$C$?$H$-$K$I$N5-;v$bA*Br$7$J$$!#$?$@35N,%P%C%U%!$rI=<($9$k$@\e(B
 \e$B$1!#\e(B
@@ -2113,7 +2103,6 @@ Gnus \e$B$O\e(B @code{gnus-user-format-function-}@samp{X} \e$B4X?t$r8F$S=P$7$^$9!#$
 @cindex subscription
 
 @table @kbd
-
 @item S t
 @itemx u
 @kindex S t (Group)
@@ -2175,7 +2164,6 @@ kill \e$B$7$?8e!"$3$l$i$N%0%k!<%W$r\e(B yank \e$B$GLa$9$3$H$O$G$-$J$$$N$G!"$3$N%3%^
 @file{.newsrc} \e$B$K<N$F$A$c$$$?$$L$9XFI$N%0%k!<%W$,$?$/$5$s$"$k$H$-$@$1$G\e(B
 \e$B$9!#%l%Y%k\e(B 7 \e$B$G\e(B @kbd{S C-k} \e$B$r9T$&$H!"\e(B@file{.newsrc} \e$B%U%!%$%kCf$K%a%C%;!<\e(B
 \e$B%8HV9f$,$J$$L$9XFI%0%k!<%W$rA4$F\e(B kill \e$B$7$^$9!#\e(B
-
 @end table
 
 @ref{Group Levels} \e$B$b;2>H$7$F$/$/$@$5$$!#\e(B
@@ -2184,7 +2172,6 @@ kill \e$B$7$?8e!"$3$l$i$N%0%k!<%W$r\e(B yank \e$B$GLa$9$3$H$O$G$-$J$$$N$G!"$3$N%3%^
 @section \e$B%0%k!<%W%G!<%?\e(B
 
 @table @kbd
-
 @item c
 @kindex c (Group)
 @findex gnus-group-catchup-current
@@ -2212,7 +2199,6 @@ kill \e$B$7$?8e!"$3$l$i$N%0%k!<%W$r\e(B yank \e$B$GLa$9$3$H$O$G$-$J$$$N$G!"$3$N%3%^
 \e$B$b$7\e(B @sc{nntp} \e$B%5!<%P$rJL$N$b$N$K@Z$jBX$($?$H$9$k$H!"A4$F$N%^!<%/$H4{FI\e(B
 \e$B>pJs$O$b$&Lr$K$ON)$A$^$;$s!#$3$N%3%^%s%I$r;H$C$F4pK\%0%k!<%W$NA4$F$N%G!<\e(B
 \e$B%?$r%/%j%"$9$k$3$H$,$G$-$^$9!#Cm0U$7$F;H$C$F$M!#\e(B
-
 @end table
 
 @node Group Levels
@@ -2230,14 +2216,12 @@ kill \e$B$7$?8e!"$3$l$i$N%0%k!<%W$r\e(B yank \e$B$GLa$9$3$H$O$G$-$J$$$N$G!"$3$N%3%^
 \e$BK:$l$J$$$G\e(B: \e$B%0%k!<%W$N%l%Y%k$,Bg$-$$$[$I!"=EMWEY$ODc$/$J$k$H$$$&$3$H!#\e(B
 
 @table @kbd
-
 @item S l
 @kindex S l (Group)
 @findex gnus-group-set-current-level
 \e$B8=:_$N%0%k!<%W$N%l%Y%k$r@_Dj$9$k!#?t;z%W%l%U%#%C%/%9$,M?$($i$l$k$H!"$=$3\e(B
 \e$B$+$i\e(B @var{n} \e$B8D$N%0%k!<%W$N%l%Y%k$,@_Dj$5$l$^$9!#%l%Y%k$rF~NO$9$k$?$a$N\e(B
 \e$B%W%m%s%W%H$,=P$^$9!#\e(B
-
 @end table
 
 @vindex gnus-level-killed
@@ -2364,7 +2348,6 @@ Gnus \e$B$ODL>o!"\e(B@code{gnus-activate-level} \e$B$+$=$l$h$j>.$5$$%l%Y%k$N%0%k!<%
 \e$B0u$r$D$1$F$*$-!"$=$7$FL?Na$r<B9T$9$k$@$1$G$9!#\e(B
 
 @table @kbd
-
 @item #
 @kindex # (Group)
 @itemx M m
@@ -2419,7 +2402,6 @@ Gnus \e$B$ODL>o!"\e(B@code{gnus-activate-level} \e$B$+$=$l$h$j>.$5$$%l%Y%k$N%0%k!<%
 \e$B$9!=!=\e(B@code{gnus-subscribe-newsgroup-method} \e$B$O;2>H$5$l$^$;$s!#\e(B
 
 @table @kbd
-
 @item G m
 @kindex G m (Group)
 @findex gnus-group-make-group
@@ -2568,7 +2550,6 @@ kiboze \e$B%0%k!<%W$r:n@.$7$^$9!#%W%m%s%W%H$GL>A0$H!"\e(Bkiboze \e$B%0%k!<%W$K!V4^$
 \e$B8=:_$N%0%k!<%W$r\e(B @code{nnvirtual} \e$B%0%k!<%W$KDI2C$7$^\e(B
 \e$B$9\e(B (@code{gnus-group-add-to-virtual})\e$B!#$3$l$O%W%m%;%90u\e(B/\e$B@\F,0z?t$N=,47$K\e(B
 \e$B=>$$$^$9!#\e(B
-
 @end table
 
 \e$B$5$^$6$^$JA*BrJ}K!$K4X$9$k$5$i$J$k>pJs$O\e(B @xref{Select Methods} \e$B$r;2>H$7\e(B
@@ -2797,7 +2778,6 @@ form \e$B$N\e(B @code{nil} \e$B$O$=$3$GI>2A$5$l$^$9!#\e(B
 \e$B%?$K\e(B @code{(dummy-variable (ding))} \e$B$_$?$$$J$b$N$r=q$$$F$*$/$3$H$b$G$-$^\e(B
 \e$B$9!#\e(B@code{dummy-variable} \e$B$H$$$&JQ?t$K\e(B @code{(ding)} \e$B$NI>2A7k2L$,@_Dj$5\e(B
 \e$B$l$^$9$,!"$^$"!"C/$b5$$K$7$J$$$G$7$g\e(B?
-
 @end table
 
 \e$B%0%k!<%W%Q%i%a!<%?$N=$@5$K$O\e(B @kbd{G p} \e$B$+\e(B @kbd{G c} \e$BL?Na$r;H$C$F$/$@$5\e(B
@@ -2812,7 +2792,6 @@ form \e$B$N\e(B @code{nil} \e$B$O$=$3$GI>2A$5$l$^$9!#\e(B
 \e$B$3$l$i$N%3%^%s%I$O!"MxMQ$G$-$k%0%k!<%W$r$$$m$$$m$K@Z$jJ,$1$FI=<($7$^$9!#\e(B
 
 @table @kbd
-
 @item l
 @itemx A s
 @kindex A s (Group)
@@ -2915,7 +2894,6 @@ kill \e$B$5$l$?%0%k!<%W$rA4$FI=<($7$^$9\e(B (@code{gnus-group-list-killed})\e$B!#@\
 @findex gnus-group-list-plus
 \e$B8=:_$NA*Br$5$l$?%0%k!<%W$r2C$($?%0%k!<%W$rI=<($9\e(B
 \e$B$k\e(B (@code{gnus-group-list-plus})\e$B!#\e(B
-
 @end table
 
 @vindex gnus-permanently-visible-groups
@@ -2944,7 +2922,6 @@ kill \e$B$5$l$?%0%k!<%W$rA4$FI=<($7$^$9\e(B (@code{gnus-group-list-killed})\e$B!#@\
 \e$B$9\e(B:
 
 @table @code
-
 @item gnus-group-sort-by-alphabet
 @findex gnus-group-sort-by-alphabet
 \e$B%0%k!<%WL>$G%"%k%U%!%Y%C%H=g$KJB$YBX$($^$9!#$3$l$,=i4|@_Dj$G$9!#\e(B
@@ -2978,7 +2955,6 @@ kill \e$B$5$l$?%0%k!<%W$rA4$FI=<($7$^$9\e(B (@code{gnus-group-list-killed})\e$B!#@\
 @item gnus-group-sort-by-server
 @findex gnus-group-sort-by-server
 \e$B%5!<%P!<L>$N%"%k%U%!%Y%C%H=g$GJB$YBX$($^$9!#\e(B
-
 @end table
 
 @code{gnus-group-sort-function} \e$B$OJB$YBX$(4X?t$N%j%9%H$G$"$C$F$b9=$$$^$;\e(B
@@ -3023,7 +2999,6 @@ kill \e$B$5$l$?%0%k!<%W$rA4$FI=<($7$^$9\e(B (@code{gnus-group-list-killed})\e$B!#@\
 @findex gnus-group-sort-groups-by-method
 \e$B%0%k!<%W%P%C%U%!$r%P%C%/%(%s%I$NL>A0$G%"%k%U%!%Y%C%H=g$KJB$YBX$($^\e(B
 \e$B$9\e(B (@code{gnus-group-sort-groups-by-method})\e$B!#\e(B
-
 @end table
 
 \e$B0J2<$NA4$F$NL?Na$O%W%m%;%9\e(B/\e$B@\F,<-$N=,47$K=>$$$^\e(B
@@ -3071,7 +3046,6 @@ kill \e$B$5$l$?%0%k!<%W$rA4$FI=<($7$^$9\e(B (@code{gnus-group-list-killed})\e$B!#@\
 @findex gnus-group-sort-selected-groups-by-method
 \e$B%0%k!<%W$r!"%P%C%/%(%s%I$NL>A0$G%"%k%U%!%Y%C%H=g$KJB$YBX$($^\e(B
 \e$B$9\e(B (@code{gnus-group-sort-selected-groups-by-method})\e$B!#\e(B
-
 @end table
 
 \e$B:G8e$K!"\e(B@kbd{C-k} \e$B$H\e(B @kbd{C-y} \e$B$r;H$C$F!"<jF0$G%0%k!<%W$r$"$A$3$A$K0\F0\e(B
@@ -3111,7 +3085,6 @@ kill \e$B$5$l$?%0%k!<%W$rA4$FI=<($7$^$9\e(B (@code{gnus-group-list-killed})\e$B!#@\
 @findex gnus-group-expire-all-groups
 \e$BA4$F$N%0%k!<%W$NA4$F$N4|8B@Z$l:o=|2DG=$J5-;v$KBP$7$F!"%(%/%9%Q%$%"=hM}$r\e(B
 \e$B9T$$$^$9!#\e(B(@code{gnus-group-expire-all-groups})\e$B!#\e(B
-
 @end table
 
 @node Browse Foreign Server
@@ -3337,7 +3310,6 @@ Gnus
 \e$B>/$7$"$j$^$9!#\e(B
 
 @table @kbd
-
 @item T n
 @kindex T n (Topic)
 @findex gnus-topic-create-topic
@@ -3488,7 +3460,6 @@ Gnus \e$B$,CN$C$F$$$k%H%T%C%/2=$5$l$?%0%k!<%W$rA4$FI=<($7$^\e(B
 @cindex parameters
 \e$B%H%T%C%/%Q%i%a!<%?$r=$@5$7$^$9\e(B (@code{gnus-topic-edit-parameters})\e$B!#\e(B
 @xref{Topic Parameters}.
-
 @end table
 
 @node Topic Sorting
@@ -3533,7 +3504,6 @@ Gnus \e$B$,CN$C$F$$$k%H%T%C%/2=$5$l$?%0%k!<%W$rA4$FI=<($7$^\e(B
 @findex gnus-topic-sort-groups-by-method
 \e$B8=:_$N%H%T%C%/$r%P%C%/%(%s%I$NL>A0$G%"%k%U%!%Y%C%H=g$KJB$YBX$($^\e(B
 \e$B$9\e(B (@code{gnus-topic-sort-groups-by-method})\e$B!#\e(B
-
 @end table
 
 \e$B%0%k!<%W$N%=!<%H$K$D$$$F$N$5$i$J$k>pJs$O\e(B @xref{Sorting Groups} \e$B$r;2>H$7\e(B
@@ -3598,7 +3568,6 @@ Gnus
 \e$B9g\e(B (@pxref{Subscription Methods}), @code{subscribe} \e$B%H%T%C%/%Q%i%a!<%?$O\e(B
 \e$B$I$N%0%k!<%W$,$I$N%H%T%C%/$K9T$/$+$r;XDj$7$^$9!#CM$O$=$N%H%T%C%/$K9T$/%0\e(B
 \e$B%k!<%W$K9gCW$9$k@55,I=8=$G$"$kI,MW$,$"$j$^$9!#\e(B
-
 @end table
 
 \e$B%0%k!<%W%Q%i%a!<%?$O\e(B (\e$B$b$A$m$s\e(B) \e$B%H%T%C%/%Q%i%a!<%?$h$j$bM%@h$5$l!"I{%H%T%C\e(B
@@ -3659,7 +3628,6 @@ Gnus
 @end menu
 
 @table @kbd
-
 @item ^
 @kindex ^ (Group)
 @findex gnus-group-enter-server-mode
@@ -3676,13 +3644,11 @@ Gnus
 @kindex m (Group)
 @findex gnus-group-mail
 \e$B%a!<%k$r$I$3$+$KAw$k\e(B (@code{gnus-group-mail})\e$B!#\e(B
-
 @end table
 
 \e$B0J2<$O%0%k!<%W%P%C%U%!$N$?$a$NJQ?t$G$9\e(B:
 
 @table @code
-
 @item gnus-group-mode-hook
 @vindex gnus-group-mode-hook
 \e$B%0%k!<%W%P%C%U%!$,:n@.$5$l$?;~$K8F$S=P$5$l$^$9!#\e(B
@@ -3723,7 +3689,6 @@ Gnus
 (setq gnus-group-name-charset-group-alist
     '(("\\.com\\.cn:" . cn-gb-2312)))
 @end lisp
-
 @end table
 
 @node Scanning New Messages
@@ -3732,7 +3697,6 @@ Gnus
 @cindex scanning new news
 
 @table @kbd
-
 @item g
 @kindex g (Group)
 @findex gnus-group-get-new-news
@@ -3766,7 +3730,6 @@ Gnus
 Gnus \e$B$r%j%9%?!<%H$7$^$9\e(B (@code{gnus-group-restart})\e$B!#$3$l\e(B
 \e$B$O\e(B @file{.newsrc} \e$B%U%!%$%k$r%;!<%V$7!"A4$F$N%5!<%P$N@\B3$rJD$8!"A4$F\e(B
 \e$B$N\e(B gnus \e$B%i%s%?%$%`JQ?t$r%/%j%"$7$?8e!"\e(Bgnus \e$B$r$b$&0lEY:G=i$+$i3+;O$7$^$9!#\e(B
-
 @end table
 
 @vindex gnus-get-new-news-hook
@@ -3783,7 +3746,6 @@ Gnus \e$B$r%j%9%?!<%H$7$^$9\e(B (@code{gnus-group-restart})\e$B!#$3$l\e(B
 @cindex information on groups
 
 @table @kbd
-
 @item H f
 @kindex H f (Group)
 @findex gnus-group-fetch-faq
@@ -3839,7 +3801,6 @@ gnus \e$B$O\e(B @code{gnus-group-faq-directory} \e$B$NCM$rA4$F!"0l$D0l$D%*!<%W%s$7$
 @cindex manual
 @findex gnus-info-find-node
 Gnus \e$B$N\e(B info \e$B%N!<%I$K0\F0$7$^$9\e(B (@code{gnus-info-find-node})\e$B!#\e(B
-
 @end table
 
 @node Group Timestamp
@@ -3887,7 +3848,6 @@ Gnus \e$B$K!"$"$J$?$,:G8e$K$$$D%0%k!<%W$rFI$s$@$+$r5-O?$5$;$k$HJXMx$+$b$7$l\e(B
 @cindex file commands
 
 @table @kbd
-
 @item r
 @kindex r (Group)
 @findex gnus-group-read-init-file
@@ -3908,7 +3868,6 @@ Gnus \e$B$K!"$"$J$?$,:G8e$K$$$D%0%k!<%W$rFI$s$@$+$r5-O?$5$;$k$HJXMx$+$b$7$l\e(B
 @c @findex gnus-group-clear-dribble
 @c \e$B%I%j%V%k%U%!%$%k$r%/%j%"$9$k\e(B
 @c (@code{gnus-group-clear-dribble})\e$B!#\e(B
-
 @end table
 
 @node Summary Buffer
@@ -4247,7 +4206,6 @@ Gnus \e$B%P!<%8%g%s!#\e(B
 @subsection \e$B35N,$N%O%$%i%$%H\e(B
 
 @table @code
-
 @item gnus-visual-mark-article-hook
 @vindex gnus-visual-mark-article-hook
 \e$B$3$N%U%C%/$O5-;v$rA*Br$7$?8e$K<B9T$5$l$^$9!#$3$l$O2?$i$+$NJ}K!$G5-;v$r%O\e(B
@@ -4319,7 +4277,6 @@ Gnus \e$B$,<!$N%0%k!<%W$K0\F0$9$k$3$H$r3NG'$r$9$k$?$a$K!"%-!<$r2!$9$3$H$rMW\e(B
 \e$B35N,$N0\F0$K4XO"$7$?JQ?t\e(B:
 
 @table @code
-
 @vindex gnus-auto-select-next
 @item gnus-auto-select-next
 \e$B$b$70\F0L?Na$N0l$D\e(B (@kbd{n} \e$B$N$h$&$J\e(B) \e$B$r=P$7!"8=:_$N5-;v$N8e$KL$FI$,L5$1\e(B
@@ -4356,7 +4313,6 @@ Gnus \e$B$,<!$N%0%k!<%W$K0\F0$9$k$3$H$r3NG'$r$9$k$?$a$K!"%-!<$r2!$9$3$H$rMW\e(B
 \e$B%9%/%m!<%k$K$9$k$?$a$K!"$3$NJQ?t$r\e(B @code{nil} \e$B$K$9$k$3$H$,$G$-$^$9!#$3$l\e(B
 \e$B$O35N,%P%C%U%!$N?eJ?J}8~$N??Cf$X$N:F0\F0$b6X;_$7$^$9$N$G!"Hs>o$KD9$$%9%l%C\e(B
 \e$B%I$rFI$`$H$-$OITJX$+$b$7$l$^$;$s!#\e(B
-
 @end table
 
 @node Choosing Articles
@@ -4495,7 +4451,6 @@ Summary Buffer} \e$B$r;2>H$7$F2<$5$$!#\e(B
 \e$B$K\e(B @code{gnus-summary-mark-unread-as-read} \e$B$r;H$&$3$H$,$G$-$^$9!#$=$l$O!"\e(B
 @code{gnus-low-score-mark} \e$B$d\e(B @code{gnus-del-mark} (\e$B$J$I$J$I\e(B) \e$B$N0u$r$=$N\e(B
 \e$B$^$^;D$7$^$9!#\e(B
-
 @end table
 
 @node Paging the Article
@@ -4503,7 +4458,6 @@ Summary Buffer} \e$B$r;2>H$7$F2<$5$$!#\e(B
 @cindex article scrolling
 
 @table @kbd
-
 @item SPACE
 @kindex SPACE (\e$B35N,\e(B)
 @findex gnus-summary-next-page
@@ -4573,7 +4527,6 @@ Summary Buffer} \e$B$r;2>H$7$F2<$5$$!#\e(B
 @kindex h (\e$B35N,\e(B)
 @findex gnus-summary-select-article-buffer
 \e$B5-;v%P%C%U%!$rA*Br$7$^$9\e(B (@code{gnus-summary-select-article-buffer})\e$B!#\e(B
-
 @end table
 
 @node Reply Followup and Post
@@ -4594,7 +4547,6 @@ Summary Buffer} \e$B$r;2>H$7$F2<$5$$!#\e(B
 \e$B%a!<%k%a%C%;!<%8$r:n@.$9$k$?$a$NL?Na\e(B:
 
 @table @kbd
-
 @item S r
 @item r
 @kindex S r (\e$B35N,\e(B)
@@ -4716,7 +4668,6 @@ gnus \e$B$O$=$N%a!<%k$r<hF@$7$F!"$=$l$N%X%C%@!<$N@:L)D4::$,$G$-$k$h$&$K2hLL\e(B
 \e$B?t\e(B @code{gnus-crosspost-complaint} \e$B$r=xJ8$K$7$F!"JVEz$r:n@.$7$^$9!#$3$N\e(B
 \e$BL?Na$O%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47\e(B (@pxref{Process/Prefix}) \e$B$K=>$$!"$=$l$>$l\e(B
 \e$B$N%a!<%k$rAw$kA0$KAw?.$9$k$+$I$&$+$N3NG'$r$7$^$9!#\e(B
-
 @end table
 
 \e$B$^$?\e(B @pxref{(message)Header Commands} \e$B$K$5$i$J$k>pJs$,$"$j$^$9!#\e(B
@@ -4809,7 +4760,6 @@ gnus \e$B$O$=$N%a!<%k$r<hF@$7$F!"$=$l$N%X%C%@!<$N@:L)D4::$,$G$-$k$h$&$K2hLL\e(B
 \e$B$9\e(B (@code{gnus-summaryyank-message})\e$B!#$3$NL?Na$OE=$jIU$1$?$$%a%C%;!<%8%P%C\e(B
 \e$B%U%!$NF~NO$rB%$7!"%W%m%;%9\e(B/\e$B@\F,<-$N=,47$rM}2r$7$^\e(B
 \e$B$9\e(B (@pxref{Process/Prefix})\e$B!#\e(B
-
 @end table
 
 @node Canceling and Superseding
@@ -4936,7 +4886,6 @@ gnus \e$B<+BN$O2D;k5-;v$r4|8B@Z$l>C5n$7$^$;$s\e(B) \e$B$N$G!"1J1s$K5-;v$rJ]B8$7$F$*
 \e$B0J2<$N$9$Y$F$N0u$O5-;v$K4{FI$N0u$rIU$1$^$9!#\e(B
 
 @table @samp
-
 @item r
 @vindex gnus-del-mark
 \e$BMxMQ<T$,<jF0$d$=$N$h$&$J$b$N$GL?Na\e(B @kbd{d} \e$B$K$h$C$F4{FI$N0u$rIU$1$?5-;v\e(B
@@ -4986,7 +4935,6 @@ gnus \e$B<+BN$O2D;k5-;v$r4|8B@Z$l>C5n$7$^$;$s\e(B) \e$B$N$G!"1J1s$K5-;v$rJ]B8$7$F$*
 @vindex gnus-duplicate-mark
 \e$B=EJ#M^@)$K$h$j4{FI$N0u$N$D$$$?5-;v\e(B (@code{gnus-duplicated-mark})\e$B!#\e(B
 @xref{Duplicate Suppression}.
-
 @end table
 
 \e$B$3$l$i$N$9$Y$F$N0u$O!"K\Ev$O$?$@5-;v$,4{FI$H$7$F0u$,$D$$$F$$$k$3$H$r0UL#\e(B
@@ -5243,7 +5191,6 @@ gnus \e$B<+BN$O2D;k5-;v$r4|8B@Z$l>C5n$7$^$;$s\e(B) \e$B$N$G!"1J1s$K5-;v$rJ]B8$7$F$*
 @cindex setting process marks
 
 @table @kbd
-
 @item M P p
 @itemx #
 @kindex # (\e$B35N,\e(B)
@@ -5349,7 +5296,6 @@ gnus \e$B<+BN$O2D;k5-;v$r4|8B@Z$l>C5n$7$^$;$s\e(B) \e$B$N$G!"1J1s$K5-;v$rJ]B8$7$F$*
 @findex gnus-summary-save-process-mark
 \e$B8=:_$N%W%m%;%90u$r%9%?%C%/$K@Q$_$^\e(B
 \e$B$9\e(B (@code{gnus-summary-save-process-mark})\e$B!#\e(B
-
 @end table
 
 \e$B$=$7$F!"$I$&$d$C$F5-;v$NK\J8\e(B (body) \e$B$NFbMF$r4p$K%W%m%;%90u$rIU$1$k$+$O!"\e(B
@@ -5367,7 +5313,6 @@ gnus \e$B<+BN$O2D;k5-;v$r4|8B@Z$l>C5n$7$^$;$s\e(B) \e$B$N$G!"1J1s$K5-;v$rJ]B8$7$F$*
 \e$B$l$i$NL?Na$O$I$l$b%5!<%P!<$KDI2C$N5-;v$rMW5a$7$^$;$s!#\e(B
 
 @table @kbd
-
 @item / /
 @itemx / s
 @kindex / / (\e$B35N,\e(B)
@@ -5477,7 +5422,6 @@ gnus \e$B<+BN$O2D;k5-;v$r4|8B@Z$l>C5n$7$^$;$s\e(B) \e$B$N$G!"1J1s$K5-;v$rJ]B8$7$F$*
 \e$B$9$Y$F$NL$FI$N$_$N0u$N5-;v$r4{FI$H$7$F0u$rIU$1$^\e(B
 \e$B$9\e(B (@code{gnus-summary-limit-mark-excluded-as-read})\e$B!#$b$7@\F,0z?t$,M?$(\e(B
 \e$B$i$l$l$P!"2D;k$HJ]N1$N$_$N0u$N5-;v$b4{FI$H$7$F0u$rIU$1$^$9!#\e(B
-
 @end table
 
 @node Threading
@@ -5520,7 +5464,6 @@ Gnus \e$B$O=i4|@_Dj$G5-;v$r%9%l%C%I$K$7$^$9!#\e(B@dfn{\e$B%9%l%C%I$K$9$k\e(B} \e$B$H$
 
 @item \e$B$^$P$i%9%l%C%I\e(B (sparse threads)
 \e$BL5$$5-;v$,!X?dB,$5$l$?!Y%9%l%C%I$G!"35N,%P%C%U%!$K6u9T$GI=<($5$l$^$9!#\e(B
-
 @end table
 
 @menu
@@ -5573,7 +5516,6 @@ Gnus \e$B$O=i4|@_Dj$G5-;v$r%9%l%C%I$K$7$^$9!#\e(B@dfn{\e$B%9%l%C%I$K$9$k\e(B} \e$B$H$
 @cindex adopting articles
 
 @table @code
-
 @item \e$BM\;R\e(B (adopt)
 Gnus \e$B$O:G=i$N8I;y$r?F$K$7$^$9!#$3$N?F$O$9$Y$F$NB>$N5-;v$rM\;R$K$7$^$9!#\e(B
 \e$B$3$NM\;R5-;v$O!"I8=`$N3Q3g8L\e(B (@samp{[]}) \e$B$NBe$o$j$K!"@h$N@m$C$?3g\e(B
@@ -5713,7 +5655,6 @@ Gnus \e$B$O\e(B @code{Subject} \e$BMs$r8+$k$3$H$K$h$C$F%9%l%C%I$r=8$a$^$9!#$3$l$O!"
 (setq gnus-summary-thread-gathering-function
       'gnus-gather-threads-by-references)
 @end lisp
-
 @end table
 
 @node Filling In Threads
@@ -5808,14 +5749,12 @@ gnus \e$B$OA4$F$N5-;v$N40A4$J\e(B @code{References} \e$BMs$r8+$F!"F1$8%9%l%C%I$KB0$
 \e$B%?$dE,@Z$J%U%C%/\e(B (\e$BNc$($P\e(B @code{gnus-summary-generate-hook}) \e$B$G$3$NJQ?t$r\e(B
 \e$BBe$o$j$NCM\e(B (\e$BNc$($P!"\e(B@code{gnus-thread-sort-by-date}) \e$B$K@_Dj$9$k$3$H$G!"\e(B
 \e$B$=$N$h$&$J>l9g$K!"$h$jO@M}E*$JI{%9%l%C%I$N=gHV$r@8@.$9$k$3$H$,$G$-$^$9!#\e(B
-
 @end table
 
 @node Low-Level Threading
 @subsubsection \e$BDc%l%Y%k$K$*$1$k%9%l%C%I:n@.\e(B
 
 @table @code
-
 @item gnus-parse-headers-hook
 @vindex gnus-parse-headers-hook
 \e$B$9$Y$F$N%X%C%@!<$r2r@O$9$kA0$K<B9T$5$l$k%U%C%/$G$9!#%G%#%U%)%k%H$NCM\e(B
@@ -5844,7 +5783,6 @@ gnus \e$B$OA4$F$N5-;v$N40A4$J\e(B @code{References} \e$BMs$r8+$F!"F1$8%9%l%C%I$KB0$
        (concat (match-string 1 id) "@@" (match-string 2 id))
        header))))
 @end lisp
-
 @end table
 
 @node Thread Commands
@@ -5852,7 +5790,6 @@ gnus \e$B$OA4$F$N5-;v$N40A4$J\e(B @code{References} \e$BMs$r8+$F!"F1$8%9%l%C%I$KB0$
 @cindex thread commands
 
 @table @kbd
-
 @item T k
 @itemx M-C-k
 @kindex T k (\e$B35N,\e(B)
@@ -5928,14 +5865,12 @@ gnus \e$B$OA4$F$N5-;v$N40A4$J\e(B @code{References} \e$BMs$r8+$F!"F1$8%9%l%C%I$KB0$
 @findex gnus-summary-reparent-thread
 \e$B8=:_$N5-;v$r0uIU$-\e(B (\e$B$b$7$/$OA0$N\e(B) \e$B5-;v$N;R5-;v$K$7$^\e(B
 \e$B$9\e(B (@code{gnus-summary-reparent-thread})\e$B!#\e(B
-
 @end table
 
 \e$B0J2<$NL?Na$O%9%l%C%I0\F0L?Na$G$9!#$3$l$i$O$9$Y$F?tCM@\F,0z?t$r<u$1IU$1$^\e(B
 \e$B$9!#\e(B
 
 @table @kbd
-
 @item T n
 @kindex T n (\e$B35N,\e(B)
 @itemx M-C-n
@@ -6240,7 +6175,6 @@ gnus \e$B$OJ*;v$r@5$7$/$9$k$?$a$KFs$D$N4X?t$r$*4+$a$7$^$9!#\e(B
 \e$BL?Na$r;H$$$^$9\e(B:
 
 @table @kbd
-
 @item *
 @kindex * (\e$B35N,\e(B)
 @findex gnus-cache-enter-article
@@ -6305,7 +6239,6 @@ Gnus \e$B$O$?$/$5$s$NJ}K!$G5-;v$rJ]B8$9$k;v$,$G$-$^$9!#0J2<$N$b$N$OHs>o$KN(\e(B
 \e$B$b$N$OJ]B8$9$kA0$K:o=|$5$l$^$9!#\e(B
 
 @table @kbd
-
 @item O o
 @itemx o
 @kindex O o (\e$B35N,\e(B)
@@ -6385,7 +6318,6 @@ Gnus \e$B$,$"$J$?$NK>$`$H$*$j$K$J$k$h$&$K!"JQ\e(B
 \e$B$NO;$D$N4{@=4X?t$r;H$&;v$,$G$-$^$9$7!"<+J,<+?H$N4X?t$r:n$k;v$b$G$-$^$9!#\e(B
 
 @table @code
-
 @item gnus-summary-save-in-rmail
 @findex gnus-summary-save-in-rmail
 @vindex gnus-rmail-save-name
@@ -6448,7 +6380,6 @@ MH \e$B%i%$%V%i%j!<$N\e(B @code{rcvstore} \e$B$rMQ$$$k;v$K$h$C$F5-;v$r\e(B MH \e$B%U%
 \e$B%9%H$G$9\e(B:
 
 @table @code
-
 @item gnus-Numeric-save-name
 @findex gnus-Numeric-save-name
 @file{~/News/Alt.andera-dworkin/45} \e$B$N$h$&$J%U%!%$%kL>!#\e(B
@@ -6588,7 +6519,6 @@ Gnus \e$B$O0J2<$N4JC1$J5,B'$KB'$C$F$I$N5-;v$,72$KB0$9$k$N$+$r?dB,$7$^$9\e(B: \e$BI=
 @cindex uuencoded articles
 
 @table @kbd
-
 @item X u
 @kindex X u (\e$B35N,\e(B)
 @findex gnus-uu-decode-uu
@@ -6610,7 +6540,6 @@ Gnus \e$B$O0J2<$N4JC1$J5,B'$KB'$C$F$I$N5-;v$,72$KB0$9$k$N$+$r?dB,$7$^$9\e(B: \e$BI=
 @findex gnus-uu-decode-uu-and-save-view
 \e$B8=:_$N5-;v$r\e(B uudecode \e$B$7$F!"I=<($7$FJ]B8$7$^\e(B
 \e$B$9\e(B (@code{gnus-uu-decode-uu-and-save-view})\e$B!#\e(B
-
 @end table
 
 \e$B$3$l$i$9$Y$F$O%W%m%;%90u$K$h$C$F0uIU$1$i$l$?5-;v$NB8:_$KBP$7$FH?1~$9$k$H\e(B
@@ -6642,7 +6571,6 @@ Gnus \e$B$O0J2<$N4JC1$J5,B'$KB'$C$F$I$N5-;v$,72$KB0$9$k$N$+$r?dB,$7$^$9\e(B: \e$BI=
 \e$B$NL?Na$,$"$j$^$9\e(B:
 
 @table @kbd
-
 @item X s
 @kindex X s (\e$B35N,\e(B)
 @findex gnus-uu-decode-unshar
@@ -6670,7 +6598,6 @@ Gnus \e$B$O0J2<$N4JC1$J5,B'$KB'$C$F$I$N5-;v$,72$KB0$9$k$N$+$r?dB,$7$^$9\e(B: \e$BI=
 @cindex PostScript
 
 @table @kbd
-
 @item X p
 @kindex X p (\e$B35N,\e(B)
 @findex gnus-uu-decode-postscript
@@ -6736,7 +6663,6 @@ Gnus \e$B$O%U%!%$%k$r1\Mw$9$k$N$r7hDj$9$k$N$K\e(B@dfn{\e$B5,B'JQ?t\e(B}\e$B$rMQ$$$^$9
 @end lisp
 
 @table @code
-
 @item gnus-uu-user-view-rules
 @vindex gnus-uu-user-view-rules
 @cindex sox
@@ -6773,7 +6699,6 @@ Gnus \e$B$O%U%!%$%k$r1\Mw$9$k$N$r7hDj$9$k$N$K\e(B@dfn{\e$B5,B'JQ?t\e(B}\e$B$rMQ$$$^$9
 \e$B%j%9%H$KF~$l$k;v$N$G$-$k4{@=4X?t$O\e(B:
 
 @table @code
-
 @item gnus-uu-grab-view
 @findex gnus-uu-grab-view
 \e$B%U%!%$%k$r1\Mw$7$^$9!#\e(B
@@ -6858,14 +6783,12 @@ Gnus \e$B$O%U%!%$%k$r1\Mw$9$k$N$r7hDj$9$k$N$K\e(B@dfn{\e$B5,B'JQ?t\e(B}\e$B$rMQ$$$^$9
 \e$B$H!"\e(B@code{gnus-uu} \e$B$O\e(B \e$B2?$b>~$j$r$7$J$$$GA4$F$r%U%!%$%k$KJ]B8$7$^$9!#MWLs\e(B
 \e$B$O\e(B RFC1153 \e$B=`$8$F$$$^$9!=!=0UL#$N$"$kNL$r;XDj$7$F!"HV9f$rH/9T$9$k4JC1$J\e(B
 \e$BJ}K!$,8+$D$+$i$J$+$C$?$N$G!"C1=c$K$=$l$i$O@Z$jMn$H$7$F$$$^$9!#\e(B
-
 @end table
 
 @node Uuencoding and Posting
 @subsubsection uuencode \e$B$HEj9F\e(B
 
 @table @code
-
 @item gnus-uu-post-include-before-composing
 @vindex gnus-uu-post-include-before-composing
 @code{nil} \e$B$G$J$$$N$O!"\e(B@code{gnus-uu} \e$B$,5-;v$r:n@.$9$kA0$KId9f2=$9$k%U%!\e(B
@@ -6894,7 +6817,6 @@ Gnus \e$B$O%U%!%$%k$r1\Mw$9$k$N$r7hDj$9$k$N$K\e(B@dfn{\e$B5,B'JQ?t\e(B}\e$B$rMQ$$$^$9
 \e$B;v$OIaDL$O\e(B (0/x) \e$B$N$h$&$KHV9f$,IU$1$i$l$^$9!#$b$7$3$NJQ?t\e(B
 \e$B$,\e(B @code{nil} \e$B$G$"$k$H!"MxMQ<T$N=q$$$?5-=R$O:G=i$N%U%!%$%k$N;O$a$K<h$j9~\e(B
 \e$B$^$l!"\e(B(1/x) \e$B$NHV9f$,IU$1$i$l$^$9!#%G%#%U%)%k%H$O\e(B @code{t} \e$B$G$9!#\e(B
-
 @end table
 
 @node Viewing Files
@@ -6967,7 +6889,6 @@ Gnus \e$B$O%U%!%$%k$r1\Mw$9$k$N$r7hDj$9$k$N$K\e(B@dfn{\e$B5,B'JQ?t\e(B}\e$B$rMQ$$$^$9
 \e$B$&$K8+$($k$h$&$K$7$?$$$G$7$g$&!#\e(B
 
 @table @kbd
-
 @item W H a
 @kindex W H a (\e$B35N,\e(B)
 @findex gnus-article-highlight
@@ -7038,7 +6959,6 @@ Fonts})\e$B!#F1$8%a%C%;!<%8$NCf$KJ#?t$N5-;v$+$i$N0zMQ$,$"$k$H!"\e(Bgnus \e$B$O$=$l$
 @vindex gnus-cite-attribution-face
 \e$BB0@-9T$K;H$o$l$k%U%'%$%9$G$9!#$=$NB0@-$KB0$9$kJ8$N$?$a$N%U%'%$%9$HM;9g$5\e(B
 \e$B$l$^$9!#\e(B
-
 @end table
 
 @item W H s
@@ -7123,7 +7043,6 @@ Fonts})\e$B!#F1$8%a%C%;!<%8$NCf$KJ#?t$N5-;v$+$i$N0zMQ$,$"$k$H!"\e(Bgnus \e$B$O$=$l$
 \e$B5-;v$K$OIaDL$O$"$j$9$.$k$/$i$$:n$j$+$($k$b$N$,$"$j$^$9!#\e(B
 
 @table @kbd
-
 @item W W a
 @kindex W W a (\e$B35N,\e(B)
 @findex gnus-article-hide
@@ -7160,12 +7079,10 @@ Fonts})\e$B!#F1$8%a%C%;!<%8$NCf$KJ#?t$N5-;v$+$i$N0zMQ$,$"$k$H!"\e(Bgnus \e$B$O$=$l$
 \e$B$O$$$1$^$;$s!#\e(B
 
 @table @code
-
 @item gnus-list-identifiers
 @vindex gnus-list-identifiers
 \e$BI=Bj$+$i:o=|$5$l$k$Y$-I8<1$N%j%9%H$K9gCW$9$k@55,I=8=$G$9!#$3$l$O@55,I=8=\e(B
 \e$B$N%j%9%H$G$"$k$3$H$b$G$-$^$9!#\e(B
-
 @end table
 
 @item W W p
@@ -7246,7 +7163,6 @@ Gnus \e$B$O$I$3$N0zMQJ8$,1#$5$l$F$$$k$+$r<($9$?$a$K%\%?%s$rIU$12C$(!"J8>O$N\e(B
 @item gnus-cited-lines-visible
 @vindex gnus-cited-lines-visible
 \e$B0zMQJ8$N:G=i$+$i$NI=<($5$l$k9T?t$G$9!#\e(B
-
 @end table
 
 @item W W C
@@ -7274,7 +7190,6 @@ Gnus \e$B$O$I$3$N0zMQJ8$,1#$5$l$F$$$k$+$r<($9$?$a$K%\%?%s$rIU$12C$(!"J8>O$N\e(B
 @vindex gnus-cite-hide-absolute
 \e$B1#$5$l$k0zMQJ8$O>/$J$/$H$b$3$ND9$5\e(B (\e$B=i4|CM\e(B 10) \e$B$G$J$1$l$P$J$j$^$;$s!#\e(B
 @end table
-
 @end table
 
 \e$B$3$l$i$NA4$F$N!X1#JC!YL?Na$O@Z$jBX$(L?Na$G$9$,!"$3$l$i$NL?Na$KIi$N@\F,0z\e(B
@@ -7304,7 +7219,6 @@ gnus \e$B$,5-;v$rI=<($9$k4{Dj$N$d$jJ}$rJQ$($?$$$H$-\e(B
 \e$B$O\e(B @xref{Customizing Articles} \e$B$r;2>H$7$F2<$5$$!#\e(B
 
 @table @kbd
-
 @item C-u g
 \e$B$3$l$O5-;v@vBu$G$O$J$/$F!"$=$N5U$G$9!#$3$l$r%?%$%W$9$k$H!"%G%#%9%/$d%5!<\e(B
 \e$B%P!<$K$"$k$,$^$^$N5-;v$,8+$($^$9!#\e(B
@@ -7536,7 +7450,6 @@ HZ \e$B$^$?$O\e(B HZP \e$B$r=hM}$7$^$9!#\e(BHZ (\e$B$^$?$O\e(B HZP) \e$B$OCf9q8l$N5-;v$
 @findex gnus-article-strip-trailing-space
 \e$B5-;v$NK\J8$NA4$F$N9T$N:G8e$+$i6uGr$r>C5n$7$^\e(B
 \e$B$9\e(B (@code{gnus-article-strip-trailing-space})\e$B!#\e(B
-
 @end table
 
 \e$B5-;v$N@vBu$r<+F0E*$K$9$k$?$a$NJ}K!$O\e(B @xref{Customizing Articles} \e$B$r;2>H\e(B
@@ -7554,8 +7467,8 @@ Gnus \e$B$O%G%#%U%)%k%H$GFCDj$NI8=`$N;2>H$K\e(B@dfn{\e$B%\%?%s\e(B}\e$B$rIU$1$^$9\e(B:
 \e$B$7$?\e(B URL\e$B!"%a!<%k%"%I%l%9!"\e(BMessage-ID \e$B$G$9!#$3$l$OFs$D$NJQ?t$K$h$C$F@)8f\e(B
 \e$B$5$l$F$$$F!"$=$N0l$D$O5-;v$NK\BN$r07$$!"$b$&0l$D$O5-;v$N%X%C%@!<$r07$$$^\e(B
 \e$B$9!#\e(B
-@table @code
 
+@table @code
 @item gnus-button-alist
 @vindex gnus-button-alist
 \e$B$=$l$>$l$NF~NOMWAG$,<!$N$h$&$JMM<0$NO"A[%j%9%H$G$9\e(B:
@@ -7565,7 +7478,6 @@ Gnus \e$B$O%G%#%U%)%k%H$GFCDj$NI8=`$N;2>H$K\e(B@dfn{\e$B%\%?%s\e(B}\e$B$rIU$1$^$9\e(B:
 @end lisp
 
 @table @var
-
 @item regexp
 \e$B$3$N@55,I=8=\e(B (regexp) \e$B$K9gCW$9$k$9$Y$F$NJ8$O30It;2>H$G$"$k$H$_$J$5$l$^$9!#\e(B
 \e$B$3$l$OKd$a9~$^$l$?\e(B URL \e$B$K9gCW$9$kE57?E*$J@55,I=8=$G\e(B
@@ -7587,7 +7499,6 @@ Gnus \e$B$O9gCW$7$?$b$N$N$I$NItJ,$,%O%$%i%$%H$5$l$k$N$+$rCN$i$J$1$l$P$J$j$^\e(B
 @item data-par
 @var{button-par} \e$B$N$h$&$K!"$3$l$OItJ,I=8=$NHV9f$G$9$,!"$3$l$O9gCW$N$I$N\e(B
 \e$BItJ,$,\e(B @var{function} \e$B$K%G!<%?$H$7$FAw$i$l$k$+$r;XDj$7$^$9!#\e(B
-
 @end table
 
 \e$B$G$9$+$i!"\e(BURL \e$B$r%\%?%s$K$9$k40A4$JF~NOMWAG$O\e(B
@@ -7620,7 +7531,6 @@ Gnus \e$B$O9gCW$7$?$b$N$N$I$NItJ,$,%O%$%i%$%H$5$l$k$N$+$rCN$i$J$1$l$P$J$j$^\e(B
 @item gnus-article-mouse-face
 @vindex gnus-article-mouse-face
 \e$B%^%&%9$N%+!<%=%k$,%\%?%s$N>e$K$"$k$H$-$K;H$o$l$k%U%'%$%9$G$9!#\e(B
-
 @end table
 
 \e$B5-;v$r<+F0E*$K%\%?%s2=$9$kJ}K!$O\e(B @xref{Customizing Articles} \e$B$r;2>H$7$F\e(B
@@ -7634,7 +7544,6 @@ Gnus \e$B$O9gCW$7$?$b$N$N$I$NItJ,$,%O%$%i%$%H$5$l$k$N$+$rCN$i$J$1$l$P$J$j$^\e(B
 \e$B$$;v$G$7$g$&!#\e(B
 
 @table @kbd
-
 @item W T u
 @kindex W T u (\e$B35N,\e(B)
 @findex gnus-article-date-ut
@@ -7704,7 +7613,6 @@ gnus \e$B$G%a!<%k$rFI$`$3$H$NM-Mx$JE@$O!"C1=c$J%P%0$rAG@2$i$7$$IT>rM}$KCV$-\e(B
 \e$B$J$$$+$H?4G[$7$F$$$k$H$-$KLr$KN)$A$^$9!#Nc$($P!"5-;v$,\e(B 1854\e$BG/$KEj9F$5$l\e(B
 \e$B$?$H$J$C$F$$$k$H$7$^$7$g$&!#$7$+$7!"$=$N$h$&$J;v$O\e(B @emph{\e$B40A4$K\e(B }\e$BIT2DG=\e(B
 \e$B$G$9!#;d$,?.MQ$G$-$^$;$s$+\e(B? *\e$B$/$9$/$9\e(B(\e$B>P\e(B)*
-
 @end table
 
 \e$B<+F0E*$K9%$`=q<0$GF|IU$rI=<($9$kJ}K!$O\e(B @xref{Customizing Articles} \e$B$r;2\e(B
@@ -7776,7 +7684,6 @@ gnus \e$B$G%a!<%k$rFI$`$3$H$NM-Mx$JE@$O!"C1=c$J%P%0$rAG@2$i$7$$IT>rM}$KCV$-\e(B
 @findex gnus-article-babel
 \e$B5-;v$r$"$k8@8l$+$iJL$N$b$N$XJQ49$7$^\e(B
 \e$B$9\e(B (@code{gnus-article-babel})\e$B!#\e(B
-
 @end table
 
 @c node `MIME Commands' and node `Charsets' is stripped, which is
@@ -7786,7 +7693,6 @@ gnus \e$B$G%a!<%k$rFI$`$3$H$NM-Mx$JE@$O!"C1=c$J%P%0$rAG@2$i$7$$IT>rM}$KCV$-\e(B
 @section \e$B5-;vL?Na\e(B
 
 @table @kbd
-
 @item A P
 @cindex PostScript
 @cindex printing
@@ -7796,7 +7702,6 @@ gnus \e$B$G%a!<%k$rFI$`$3$H$NM-Mx$JE@$O!"C1=c$J%P%0$rAG@2$i$7$$IT>rM}$KCV$-\e(B
 \e$B5-;v%P%C%U%!$N%]%9%H%9%/%j%W%H\e(B (PostScript) \e$B%$%a!<%8$r:n@.$7$F0u:~$7$^\e(B
 \e$B$9\e(B (@code{gnus-summary-print-article})\e$B!#\e(B@code{gnus-ps-print-hook} \e$B$,%P%C\e(B
 \e$B%U%!$r0u:~$9$kD>A0$K<B9T$5$l$k$G$7$g$&!#\e(B
-
 @end table
 
 @node Summary Sorting
@@ -7807,7 +7712,6 @@ gnus \e$B$G%a!<%k$rFI$`$3$H$NM-Mx$JE@$O!"C1=c$J%P%0$rAG@2$i$7$$IT>rM}$KCV$-\e(B
 \e$B$?$/$5$s$NJ}K!$G35N,%P%C%U%!$rJB$SBX$($k;v$,$G$-$^$9!#\e(B
 
 @table @kbd
-
 @item C-c C-s C-n
 @kindex C-c C-s C-n (\e$B35N,\e(B)
 @findex gnus-summary-sort-by-number
@@ -8014,7 +7918,6 @@ Gnus \e$B$O$3$l$r$9$k$?$a$N35N,%P%C%U%!%^%$%J!<%b!<%I$rDs6!$7$^$9!=!=\e(B
 \e$B$rM?$($i$l$l$P!"$^$:$9$Y$F$NL$A*Br5-;v$K4{FI$N0u$rIU$1$^$9!#\e(B
 @code{gnus-pick-display-summary} \e$B$,\e(B @code{nil} \e$B$G$J$$$H!"35N,%P%C%U%!$O\e(B
 \e$BFI$s$G$$$k4V$bI=<($5$l$^$9!#\e(B
-
 @end table
 
 \e$BA4$F$NIaDL$N35N,%b!<%IL?Na$OA*Br%b!<%I\e(B (pick-mode)\e$B$G$b;HMQ2DG=$G$9$,!"\e(B
@@ -8130,7 +8033,6 @@ Line Formatting})\e$B!#%G%#%U%)%k%H$O\e(B @samp{Gnus: %%b %S %Z} \e$B$G$9!#;HMQ2DG=
 @vindex gnus-tree-parent-child-edges
 \e$B$3$l$O?F$N@a$r;R$K@\B3$9$k$?$a$K;H$o$l$kJ8;z$r4^$s$@%j%9%H$G$9!#%G%#%U%)\e(B
 \e$B%k%H$O\e(B @code{(?- ?\\ ?|)} \e$B$G$9!#\e(B
-
 @end table
 
 @item gnus-tree-minimize-window
@@ -8150,7 +8052,6 @@ Line Formatting})\e$B!#%G%#%U%)%k%H$O\e(B @samp{Gnus: %%b %S %Z} \e$B$G$9!#;HMQ2DG=
 \e$B<B:]$K%9%l%C%I$NLZ$r:n@.$9$k4X?t$G$9!#Fs$D$N4{Dj5A$N;HMQ2DG=$J4X?t\e(B
 \e$B$O\e(B: @code{gnus-generate-horizontal-tree} \e$B$H\e(B @code{gnus-generate-vertical-tree} (\e$B$3\e(B
 \e$B$l$,%G%#%U%)%k%H$G$9\e(B) \e$B$G$9!#\e(B
-
 @end table
 
 \e$B?eJ?LZ%P%C%U%!\e(B (horizontal tree buffer) \e$B$NNc$G$9\e(B:
@@ -8210,7 +8111,6 @@ Line Formatting})\e$B!#%G%#%U%)%k%H$O\e(B @samp{Gnus: %%b %S %Z} \e$B$G$9!#;HMQ2DG=
 \e$B47$r;H$$$^$9\e(B (@pxref{Process/Prefix})\e$B!#\e(B
 
 @table @kbd
-
 @item B e
 @kindex B e (\e$B35N,\e(B)
 @findex gnus-summary-expire-articles
@@ -8392,14 +8292,12 @@ Gnus \e$B$,F1$8\e(B @code{Message-ID} \e$B$r;}$DFs$D$N5-;v$rH/8+$7$?$H$-$O!"2?$+;W$
       (append gnus-newsgroup-cached articles)
     articles))
 @end lisp
-
 @end table
 
 @node Summary Group Information
 @subsection \e$B35N,%0%k!<%W>pJs\e(B
 
 @table @kbd
-
 @item H f
 @kindex H f (\e$B35N,\e(B)
 @findex gnus-summary-fetch-faq
@@ -8435,7 +8333,6 @@ Gnus \e$B$N\e(B info \e$B$N@a\e(B (node) \e$B$K0\F0$7$^$9\e(B (@code{gnus-info-find-no
 @subsection \e$B5-;v$rC5$9\e(B
 
 @table @kbd
-
 @item M-s
 @kindex M-s (\e$B35N,\e(B)
 @findex gnus-summary-search-article-forward
@@ -8470,7 +8367,6 @@ Gnus \e$B$N\e(B info \e$B$N@a\e(B (node) \e$B$K0\F0$7$^$9\e(B (@code{gnus-info-find-no
 @subsection \e$B35N,@8@.L?Na\e(B
 
 @table @kbd
-
 @item Y g
 @kindex Y g (\e$B35N,\e(B)
 @findex gnus-summary-prepare
@@ -8481,14 +8377,12 @@ Gnus \e$B$N\e(B info \e$B$N@a\e(B (node) \e$B$K0\F0$7$^$9\e(B (@code{gnus-info-find-no
 @findex gnus-summary-insert-cached-articles
 \e$BA4$F$N\e(B (\e$B8=:_$N%0%k!<%W$K\e(B) \e$B%-%c%C%7%e$5$l$?5-;v\e(B \e$B$r35N,%P%C%U%!$KA^F~$7$^\e(B
 \e$B$9\e(B (@code{gnus-summary-insert-cached-articles})\e$B!#\e(B
-
 @end table
 
 @node Really Various Summary Commands
 @subsection \e$BK\Ev$K$$$m$$$m$J35N,L?Na\e(B
 
 @table @kbd
-
 @item A D
 @itemx C-d
 @kindex C-d (\e$B35N,\e(B)
@@ -8537,7 +8431,6 @@ Parameters}) \e$B$rJT=8$7$^$9\e(B (@code{gnus-summary-edit-parameters})\e$B!#\e(B
 @findex gnus-summary-customize-parameters
 \e$B8=:_$N%0%k!<%W$N%0%k!<%W%Q%i%a!<%?\e(B (@pxref{Group Parameters}) \e$B$r%+%9%?%^\e(B
 \e$B%$%:$7$^$9\e(B (@code{gnus-summary-customize-parameters})\e$B!#\e(B
-
 @end table
 
 @node Exiting the Summary Buffer
@@ -8549,7 +8442,6 @@ Parameters}) \e$B$rJT=8$7$^$9\e(B (@code{gnus-summary-edit-parameters})\e$B!#\e(B
 \e$B%U%!$KLa$j$^$9!#\e(B
 
 @table @kbd
-
 @item Z Z
 @itemx q
 @kindex Z Z (Summary)
@@ -8814,7 +8706,6 @@ protocols. Otherwise, ask user.
 Option of decrypting encrypted parts.  @code{never}, no decryption;
 @code{always}, always decrypt @code{known}, only decrypt known
 protocols. Otherwise, ask user.
-
 @end table
 @end ignore
 
@@ -8854,7 +8745,6 @@ protocols. Otherwise, ask user.
 Gnus \e$B$O%X%C%@!<$rA*$jJ,$1$k$?$a$KFs$D$NJQ?t$rMQ0U$7$F$$$^$9!#\e(B
 
 @table @code
-
 @item gnus-visible-headers
 @vindex gnus-visible-headers
 \e$B$3$NJQ?t$,\e(B @code{nil} \e$B0J30$G$"$l$P!"$I$N%X%C%@!<$r5-;v%P%C%U%!$K;D$7$?$$\e(B
@@ -8889,7 +8779,6 @@ Gnus \e$B$O%X%C%@!<$rA*$jJ,$1$k$?$a$KFs$D$NJQ?t$rMQ0U$7$F$$$^$9!#\e(B
 
 \e$B$J$*!"\e(B@code{gnus-visible-headers} \e$B$,\e(B @code{nil} \e$B0J30$N>l9g$O!"$3\e(B
 \e$B$NJQ?t$K$O8z2L$,L5$$$3$H$KCm0U$7$F$/$@$5$$!#\e(B
-
 @end table
 
 @vindex gnus-sorted-header-list
@@ -8919,6 +8808,7 @@ Gnus \e$B$O%X%C%@!<$NJB$YBX$(\e(B(sort)\e$B$b9T$$$^$9\e(B (\e$B$3$l$O%G%#%U%)%k%H$G9T
 @dfn{boring conditions} \e$B$N%j%9%H$r;XDj$7$^$9!#\e(B
 
 \e$B$3$N>r7o$K$O0J2<$N$h$&$J$b$N$,$"$j$^$9!#\e(B
+
 @table @code
 @item empty
 \e$B6u$N%X%C%@!<$rA4$F>C5n$7$^$9!#\e(B
@@ -9130,7 +9020,6 @@ GNUS \e$B$d\e(B Gnus \e$B$G$O!"$3$N$?$A$N0-$$LdBj$G6C$+$5$l$J$$$h$&$K$9$k$K$O!"35N,
 \e$B$=$l$i$K2C$($F$$$/$D$+$N%-!<A`:n$,MxMQ$G$-$^$9!#\e(B
 
 @table @kbd
-
 @item SPACE
 @kindex SPACE (Article)
 @findex gnus-article-next-page
@@ -9178,14 +9067,12 @@ GNUS \e$B$d\e(B Gnus \e$B$G$O!"$3$N$?$A$N0-$$LdBj$G6C$+$5$l$J$$$h$&$K$9$k$K$O!"35N,
 @kindex M-TAB (Article)
 @findex gnus-article-prev-button
 \e$B0l$DA0$N%\%?%s$,$"$l$P$=$3$K0\F0$7$^$9\e(B (@code{gnus-article-prev-button})\e$B!#\e(B
-
 @end table
 
 @node Misc Article
 @section \e$B5-;v$N$=$NB>\e(B
 
 @table @code
-
 @item gnus-single-article-buffer
 @vindex gnus-single-article-buffer
 @code{nil} \e$B0J30$G$"$l$P!"A4$F$N%0%k!<%W$KBP$7$FF1$85-;v%P%C%U%!$r;HMQ$7\e(B
@@ -9287,7 +9174,6 @@ Superseding} \e$B$r;2>H$7$F$/$@$5$$!#\e(B
 @vindex gnus-add-to-list
 @code{nil} \e$B$G$J$1$l$P!"\e(B@kbd{a} \e$B$r$7$?$H$-$K!"\e(B@code{to-list} \e$B%0%k!<%W%Q%i\e(B
 \e$B%a!<%?$r$=$l$N$J$$%a!<%k%0%k!<%W$KIU$12C$($^$9!#\e(B
-
 @end table
 
 @node Posting Server
@@ -9346,7 +9232,6 @@ gnus \e$B$O>o$KEj9F$K$I$NJ}K!$r;H$&$+$r$"$J$?$K?R$M$^$9!#\e(B
 \e$B$J$/$H$b!"%a!<%j%s%0%j%9%H$X$N%U%)%m!<%"%C%W$O$?$$$F$$$N$H$-$KF0:n$7$^$9!#\e(B
 \e$B$3$l$i$N%0%k!<%W$KEj9F$9$k;v$O\e(B (@kbd{a}) \e$B$=$l$G$b6lDK$r0z$-5/$3$9$G$7$g\e(B
 \e$B$&$1$I!#\e(B
-
 @end table
 
 \e$B$"$J$?$O<+J,$,Aw$k%a%C%;!<%8$NDV$j$rD4$Y$?$$$H;W$&$+$bCN$l$^$;$s!#$b$7$/\e(B
@@ -9518,7 +9403,6 @@ Gnus \e$B$O30$X=P$F9T$/A4$F$N%a%C%;!<%8$K!"0l$D$+$=$l0J>e$N$=$N%5!<%P!<$N%0\e(B
 @item gnus-inews-mark-gcc-as-read
 @vindex gnus-inews-mark-gcc-as-read
 \e$B$b$7Hs\e(B@code{nil}\e$B$J$i!"\e(B@code{Gcc} \e$B$N5-;v$K4{FI$N0u$rIU$1$^$9!#\e(B
-
 @end table
 
 @node Posting Styles
@@ -9848,7 +9732,6 @@ you've typed it correctly.
 \e$B$G!"$9$3$7C1=c$J3HD%$,$J$5$l$F$$$^$9\e(B:
 
 @table @samp
-
 @item h
 \e$B$I$N$h$&$K%K%e!<%9$,<hF@$5$l$k$+\e(B---\e$B%P%C%/%(%s%I$NL>A0!#\e(B
 
@@ -9882,7 +9765,6 @@ you've typed it correctly.
 @cindex server commands
 
 @table @kbd
-
 @item a
 @kindex a (\e$B%5!<%P!<\e(B)
 @findex gnus-server-add-server
@@ -9937,7 +9819,6 @@ you've typed it correctly.
 \e$B%5!<%P!<$,A4$F$N%G!<%?9=B$$r:F:n@.$9$k$h$&$K5a$a$^\e(B
 \e$B$9\e(B (@code{gnus-server-regenerate-server})\e$B!#$3$l$OF14|$+$i$O$:$l$F$7$^$C\e(B
 \e$B$?%a!<%k%P%C%/%(%s%I$,$"$k$H$-$KLr$KN)$A$^$9!#\e(B
-
 @end table
 
 @node Example Methods
@@ -10003,25 +9884,30 @@ you've typed it correctly.
 
 @lisp
 (nntp "firewall"
-      (nntp-address "the.firewall.machine")
-      (nntp-open-connection-function nntp-open-rlogin)
-      (nntp-end-of-line "\n")
-      (nntp-rlogin-parameters
-       ("telnet" "the.real.nntp.host" "nntp")))
+      (nntp-open-connection-function nntp-open-via-rlogin-and-telnet)
+      (nntp-via-address "the.firewall.machine")
+      (nntp-address "the.real.nntp.host")
+      (nntp-end-of-line "\n"))
 @end lisp
 
 \e$B$b$7!"$9$P$i$7$$\e(B @code{ssh} \e$B%W%m%0%i%`$r!"%b%G%`@~$+$i$N05=L$5$l$?@\B3$r\e(B
-\e$BDs6!$9$k$?$a$K;H$$$?$$$N$G$"$l$P!"$3$N$h$&$J46$8$N;v<B>e$N%5!<%P!<$r:n$k\e(B
-\e$B;v$,$G$-$^$9\e(B:
+\e$BDs6!$9$k$?$a$K;H$$$?$$$N$G$"$l$P!">e5-$NNc$K0J2<$N@_Dj$r2C$($k$3$H$,$G$-\e(B
+\e$B$^$9!#\e(B
 
 @lisp
-(nntp "news"
-      (nntp-address "copper.uio.no")
-      (nntp-rlogin-program "ssh")
-      (nntp-open-connection-function nntp-open-rlogin)
-      (nntp-end-of-line "\n")
-      (nntp-rlogin-parameters
-       ("telnet" "news.uio.no" "nntp")))
+      (nntp-via-rlogin-command "ssh")
+@end lisp
+
+\e$B$b$7$"$J$?$,KIJI$NCf$K$$$?$H$7$F$b!"\e(B"runsocks" \e$B$N$h$&$J%i%C%Q!<%3%^%s%I\e(B
+\e$B$rDL$7$F30$N@$3&$rD>@\%"%/%;%9$G$-$k$N$J$i$P!"0J2<$N$h$&$K\e(B socks \e$B$rDL$7\e(B
+\e$B$F%K%e!<%9%5!<%P!<$H\e(B telnet \e$B@\B3$9$k$3$H$,$G$-$^$9\e(B:
+
+@lisp
+(nntp "outside"
+      (nntp-pre-command "runsocks")
+      (nntp-open-connection-function nntp-open-via-telnet)
+      (nntp-address "the.news.server")
+      (nntp-end-of-line "\n"))
 @end lisp
 
 \e$B$3$l$O$b$A$m$s!"<+F0G'>Z$rDs6!$9$k$?$a$K\e(B @code{ssh-agent} \e$B$rE,@Z$K@_Dj$7\e(B
@@ -10123,7 +10009,6 @@ you've typed it correctly.
 \e$B$@$1$G$G$-$^$9\e(B:
 
 @table @kbd
-
 @item O
 @kindex O (\e$B%5!<%P!<\e(B)
 @findex gnus-server-open-server
@@ -10188,7 +10073,6 @@ Gnus \e$B$,$I$l$+$N%5!<%P!<$+$i@\B35qH]$r<u$1$?$+$I$&$+$NA4$F$N0u$r>C5n$7$^\e(B
 \e$B0J2<$NJQ?t$O;v<B>e$N\e(B @code{nntp} \e$B%5!<%P!<$r:n$k$?$a$K;H$o$l$^$9\e(B:
 
 @table @code
-
 @item nntp-server-opened-hook
 @vindex gnus-server-opend-hook
 @cindex @sc{mode reader}
@@ -10331,122 +10215,59 @@ default force yes
 @vindex nntp-server-hook
 \e$B$3$N%U%C%/$O\e(B @sc{nntp} \e$B%5!<%P!<$K@\B3$9$k:G8e$N0lJb$H$7$F<B9T$5$l$^$9!#\e(B
 
-@findex nntp-open-rlogin
-@findex nntp-open-telnet
-@findex nntp-open-network-stream
-@item nntp-open-connection-function
-@vindex nntp-open-connection-function
-\e$B$3$N4X?t$O1s3V%7%9%F%`$K@\B3$9$k$?$a$K;H$o$l$^$9!#;M$D$N4{@=4X?t$,Ds6!$5\e(B
-\e$B$l$F$$$^$9\e(B:
-
-@table @code
-@item nntp-open-network-stream
-\e$B$3$l$O=i4|@_Dj$G!"C1=c$K1s3V%7%9%F%`$N2?$i$+$N%]!<%H$+B>$N$b$K@\B3$7$^$9!#\e(B
-
-@item nntp-open-rlogin
-@samp{rlogin} \e$B$r1s3V%7%9%F%`$K9T$C$F!"$=$3$+$i;HMQ2DG=$J\e(B @sc{nntp} \e$B%5!<\e(B
-\e$B%P!<$K\e(B @samp{telnet} \e$B$r$7$^$9!#\e(B
-
-@code{nntp-open-rlogin} \e$B$K4XO"$7$?JQ?t$G$9\e(B:
-
-@table @code
-
-@item nntp-rlogin-program
-@vindex nntp-rlogin-program
-\e$B1s3V%^%7%s$K%m%0%$%s$r$9$k$?$a$K;H$o$l$k%W%m%0%i%`$G$9!#%G%#%U%)%k%H\e(B
-\e$B$O\e(B @samp{rsh} \e$B$G$9$,!"\e(B@samp{ssh} \e$B$,?M5$$N$"$kBeBX<jCJ$G$9!#\e(B
-
-@item nntp-rlogin-parameters
-@vindex nntp-rlogin-parameters
-\e$B$3$N%j%9%H$O\e(B @code{rsh} \e$B$KM?$($i$l$k%Q%i%a!<%?$N%j%9%H$H$7$F;H$o$l$^$9!#\e(B
-
-@item nntp-rlogin-user-name
-@vindex nntp-rlogin-user-name
-\e$B1s3V%7%9%F%`$G$NMxMQ<TL>$G$9!#\e(B
-
-@end table
-
-@item nntp-open-telnet
-\e$B1s3V%7%9%F%`$K\e(B @samp{telnet} \e$B$r$7$F!"\e(B@sc{nntp} \e$B%5!<%P!<$K$?$I$jCe$/$?$a\e(B
-\e$B$K$b$&0lEY\e(B @code{telnet} \e$B$r$7$^$9!#\e(B
-
-@code{nntp-open-telnet} \e$B$K4XO"$7$?JQ?t$G$9\e(B:
-
-@table @code
-@item nntp-telnet-command
-@vindex nntp-telnet-command
-@code{telnet} \e$B$r;O$a$k$N$K;H$o$l$kL?Na$G$9!#\e(B
-
-@item nntp-telnet-switches
-@vindex nntp-telnet-switches
-
-\e$BL?Na\e(B @code{telnet} \e$B$N%9%$%C%A\e(B (switch) \e$B$H$7$F;H$o$l$kJ8;zNs$N%j%9%H$G$9!#\e(B
-
-@item nntp-telnet-user-name
-@vindex nntp-telnet-user-name
-\e$B1s3V%7%9%F%`$K%m%0%$%s$9$k$?$a$NMxMQ<TL>$G$9!#\e(B
-
-@item nntp-telnet-passwd
-@vindex nntp-telnet-passwd
-\e$B%m%0%$%s$9$k$H$-$K;H$o$l$k%Q%9%o!<%I$G$9!#\e(B
-
-@item nntp-telnet-parameters
-@vindex nntp-telnet-parameters
-@code{telnet} \e$B$G%m%0%$%s$r$7$?8e$KL?Na$H$7$F<B9T$5$l$kJ8;zNs$N%j%9%H$G$9!#\e(B
-
-@item nntp-telnet-shell-prompt
-@vindex nntp-telnet-shell-prompt
-\e$B1s3V%^%7%s$G$N%7%'%k$N%W%m%s%W%H$K9gCW$9$k@55,I=8=$G$9!#%G%#%U%)%k%H\e(B
-\e$B$O\e(B @samp{bash\\|\$ *\r?$\\|> *\r?} \e$B$G$9!#\e(B
-
-@item nntp-open-telnet-envuser
-@vindex nntp-open-telnet-envuser
-@code{nil} \e$B$G$J$$$J$i!"\e(B@code{telnet} \e$B%;%C%7%g%s$O\e(B (\e$B%/%i%$%"%s%H$H%5!<%P!<\e(B
-\e$B$NN>J}$G\e(B) @code{ENVIRON} \e$B%*%W%7%g%s$r;HMQ$9$k;v$,$G$-!"%m%0%$%sL>F~NO$r\e(B
-\e$BB%?J$7$^$;$s!#$3$l$O$?$H$($P\e(B Solaris \e$B$N\e(B @code{telnet} \e$B$KBP$7$FF0:n$7$^$9!#\e(B
-
-@end table
+@item nntp-buggy-select
+@vindex nntp-buggy-select
+\e$B$"$J$?$NA*Br$N0lO"$N:n6H$,8N>c$,$A$G$"$k$H$-$K$3$l$r\e(B @code{nil} \e$B$G$J$$CM\e(B
+\e$B$K@_Dj$7$F$/$@$5$$!#\e(B
 
-@findex nntp-open-ssl-stream
-@item nntp-open-ssl-stream
-\e$B%5!<%P!<$K\e(B @dfn{\e$B0BA4$J\e(B} \e$B%A%c%s%M%k$r;H$C$F%5!<%P!<$K@\B3$7$^$9!#$3$l$r;H\e(B
-\e$B$&$?$a$K$O!"\e(BSSLay \e$B$,%$%s%9%H!<%k$5$l$F$$$J$1$l$P$J$j$^$;\e(B
-\e$B$s\e(B (@uref{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL} \e$B$H!"\e(B@file{ssl.el} (\e$BNc$(\e(B
-\e$B$P!"\e(BW3 \e$B$NG[I[$+$i\e(B) \e$B$,I,MW$K$J$j$^$9\e(B)\e$B!#$=$l$+$i%5!<%P!<$r<!$N$h$&$KDj5A$7\e(B
-\e$B$^$9\e(B:
+@item nntp-nov-is-evil
+@vindex nntp-nov-is-evil
+@sc{nntp} \e$B%5!<%P!<$,\e(B @sc{nov} \e$B5!G=$rDs6!$7$F$$$J$1$l$P$3$NJQ?t\e(B
+\e$B$r\e(B @code{t} \e$B$K@_Dj$9$k;v$,$G$-$^$9$,!"\e(B@code{nntp} \e$B$OIaDL$O\e(B @sc{nov} \e$B$,;H\e(B
+\e$B$o$l$k$+$I$&$+$r<+F0E*$KD4$Y$^$9!#\e(B
 
-@lisp
-;; Type `C-c C-c after you'ver 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
+@item nntp-xover-commands
+@vindex nntp-xover-commands
+@cindex nov
+@cindex XOVER
+\e$B%5!<%P!<$+$i\e(B @sc{nov} \e$B9T$r<hF@$9$k$?$a$NL?Na$H$7$F;H$o$l$kJ8;zNs$N%j%9%H\e(B
+\e$B$G$9!#$3$NJQ?t$N%G%#%U%)%k%H$NCM$O\e(B @code{("XOVER" "XOVERVIEW")} \e$B$G$9!#\e(B
 
-@end table
+@item nntp-nov-gap
+@vindex nntp-nov-gap
+@code{nntp} \e$B$OIaDL$O%5!<%P!<$K\e(B @sc{nov} \e$B9T$N$?$a$N0l$D$NBg$-$JMW5a$rAw$j\e(B
+\e$B$^$9!#%5!<%P!<$O0l$D$N5pBg$J!"9T$N%j%9%H$G1~Ez$7$^$9!#$7$+$7!"$b$7%0%k!<\e(B
+\e$B%W$N\e(B 2-5000 \e$B$N5-;v$rFI$s$G!"\e(B1 \e$B$H\e(B 5001 \e$B$rFI$_$?$$$@$1$J$i!"\e(B@code{nntp} \e$B$O\e(B
+\e$BI,MWL5$$\e(B 4999 \e$B$N\e(B @sc{nov} \e$B9T$r<hF@$9$k;v$K$J$j$^$9!#$3$NJQ?t\e(B
+\e$B$O\e(B @code{XOVER} \e$BMW5a$,$I$l$/$i$$Bg$-$JFs$D$NO"B3$7$?5-;v72$N4V$N$X$@$?\e(B
+\e$B$j\e(B (gap) \e$B$^$GJ,3d$5$l$J$$$GAw$i$l$k$+$r7hDj$7$^$9!#%M%C%H%o!<%/$,B.$$>l\e(B
+\e$B9g$O!"$3$NJQ?t$rK\Ev$K>.$5$J?t;z$K@_Dj$9$k$H$*$=$i$/<hF@$,CY$/$J$k$H$$$&\e(B
+\e$B;v$KCm0U$7$F$/$@$5$$!#$3$NJQ?t$,\e(B @code{nil} \e$B$G$"$k$H!"\e(B@code{nntp} \e$B$OMW5a\e(B
+\e$B$rJ,3d$7$^$;$s!#%G%#%U%)%k%H$O\e(B 5 \e$B$G$9!#\e(B
 
-@item nntp-end-of-line
-@sc{nntp} \e$B%5!<%P!<$H$*OC$r$7$F$$$k$H$-$K9T$N=*$o$j\e(B (end-of-line) \e$B$H$7$F\e(B
-\e$B;H$o$l$k0u$G$9!#$3$l$O%G%#%U%)%k%H$G\e(B @samp{\r\n} \e$B$G$9$,!"%5!<%P!<$H$*C}\e(B
-\e$B$j$r$9$k$?$a$K\e(B @code{rlogin} \e$B$r;H$C$F$$$k$H$-$O\e(B @samp{\n} \e$B$G$"$k$Y$-$G$9!#\e(B
+@item nntp-prepare-server-hook
+@vindex nntp-prepare-server-hook
+@sc{nntp} \e$B%5!<%P!<$K@\B3$r;n$_$kA0$K<B9T$5$l$k%U%C%/$G$9!#\e(B
 
-@item nntp-rlogin-user-name
-@vindex nntp-rlogin-user-name
-@code{rlogin} \e$B@\B34X?t$r;H$C$F$$$k$H$-$N1s3V%7%9%F%`$G$NMxMQ<TL>$G$9!#\e(B
+@item nntp-warn-about-losing-connection
+@vindex nntp-warn-about-losing-connection
+\e$B$3$NJQ?t$,\e(B @code{nil} \e$B$G$J$$$H!"%5!<%P!<$,@\B3$rJD$8$?$H$-$K>/$7;(2;$,$?\e(B
+\e$B$F$i$l$^$9!#\e(B
 
-@item nntp-address
-@vindex nntp-address
-@sc{nntp} \e$B%5!<%P!<$,F0$$$F$$$k1s3V%7%9%F%`$N%"%I%l%9$G$9!#\e(B
+@item nntp-record-commands
+@vindex nntp-record-commands
+\e$B$b$7\e(B @code{nil} \e$B$G$J$$$H!"\e(B@code{nntp} \e$B$O\e(B @sc{nntp} \e$B%5!<%P!<$KAw$C$?A4$F\e(B
+\e$B$NL?Na$r\e(B (\e$B;~9o$H6&$K\e(B) @samp{*nntp-log*} \e$B%P%C%U%!$K5-O?$7$^$9!#$3$l$OF0:n\e(B
+\e$B$7$F$$$J$$$H;W$o$l$k\e(B gnus/@sc{nntp} \e$B@\B3$r%G%#%P%C%0$7$F$$$k$H$-$KLr$KN)\e(B
+\e$B$A$^$9!#\e(B
 
-@item nntp-port-number
-@vindex nntp-port-number
-@code{nntp-open-network-stream} \e$B@\B34X?t$r;H$C$F$$$k$H$-$N@\B3$9$k%]!<%H\e(B
-\e$BHV9f$G$9!#\e(B
+@item nntp-open-connection-function
+@vindex nntp-open-connection-function
+\e$B$I$N$h$&$K\e(B nntp \e$B%5!<%P!<$H@\B3$9$k$+$r%+%9%?%^%$%:$9$k$3$H$,$G$-$^$9!#%Q\e(B
+\e$B%i%a!<%?\e(B @code{nntp-open-connection-function} \e$B$r@_Dj$9$k$H!"\e(Bgnus \e$B$O@\B3\e(B
+\e$B$r3NN)$9$k$?$a$K$=$N4X?t$r;H$$$^$9!#$=$N$?$a$K8^$D$N4X?t$,$"$i$+$8$aMQ0U\e(B
+\e$B$5$l$F$$$^$9!#$=$l$i$OFs<oN`$KJ,N`$9$k$3$H$,$G$-!"D>@\@\B3$9$k$?$a$N4X?t\e(B
+\e$B72\e(B (\e$B;0$D\e(B) \e$B$H4V@\E*$K@\B3$9$k$?$a$N$b$N\e(B (\e$BFs$D\e(B) \e$B$,$"$j$^$9!#\e(B
 
 @item nntp-list-options
 @vindex nntp-list-options
@@ -10490,53 +10311,179 @@ LIST \e$B%3%^%s%I$N%*%W%7%g%s$K;H$C$F!"\e(B(\e$B%5!<%P!<$N\e(B) \e$B%j%9%H=PNO$r@_Dj$
       '(nntp "news.somewhere.edu"
             (nntp-options-not-subscribe "\\.binaries\\.")))
 @end lisp
+@end table
 
-@item nntp-buggy-select
-@vindex nntp-buggy-select
-\e$B$"$J$?$NA*Br$N0lO"$N:n6H$,8N>c$,$A$G$"$k$H$-$K$3$l$r\e(B @code{nil} \e$B$G$J$$CM\e(B
-\e$B$K@_Dj$7$F$/$@$5$$!#\e(B
+@menu
+* Direct Functions::   \e$B%5!<%P!<$KD>@\@\B3$9$k\e(B
+* Indirect Functions:: \e$B%5!<%P!<$K4V@\E*$K@\B3$9$k\e(B
+* Common Variables::   \e$B@\B3$N$?$a$N4X?t$,;2>H$9$kJQ?t\e(B
+@end menu
 
-@item nntp-nov-is-evil
-@vindex nntp-nov-is-evil
-@sc{nntp} \e$B%5!<%P!<$,\e(B @sc{nov} \e$B5!G=$rDs6!$7$F$$$J$1$l$P$3$NJQ?t\e(B
-\e$B$r\e(B @code{t} \e$B$K@_Dj$9$k;v$,$G$-$^$9$,!"\e(B@code{nntp} \e$B$OIaDL$O\e(B @sc{nov} \e$B$,;H\e(B
-\e$B$o$l$k$+$I$&$+$r<+F0E*$KD4$Y$^$9!#\e(B
+@node Direct Functions
+@subsubsection \e$BD>@\@\B3$9$k$?$a$N4X?t\e(B
+@cindex direct connection functions
 
-@item nntp-xover-commands
-@vindex nntp-xover-commands
-@cindex nov
-@cindex XOVER
-\e$B%5!<%P!<$+$i\e(B @sc{nov} \e$B9T$r<hF@$9$k$?$a$NL?Na$H$7$F;H$o$l$kJ8;zNs$N%j%9%H\e(B
-\e$B$G$9!#$3$NJQ?t$N%G%#%U%)%k%H$NCM$O\e(B @code{("XOVER" "XOVERVIEW")} \e$B$G$9!#\e(B
+\e$B$3$l$i$N4X?t$O!"$"$J$?$N%^%7%s$H\e(B @sc{nntp} \e$B$r@\B3$9$k$?$a$KD>@\8F$P$l$^\e(B
+\e$B$9!#$^$?!"$=$l$i$NF0:n$O$=$l$i$,6&DL$K;2>H$9$kJQ?t$K1F6A$5$l$^\e(B
+\e$B$9\e(B (@pxref{Common Variables})\e$B!#\e(B
 
-@item nntp-nov-gap
-@vindex nntp-nov-gap
-@code{nntp} \e$B$OIaDL$O%5!<%P!<$K\e(B @sc{nov} \e$B9T$N$?$a$N0l$D$NBg$-$JMW5a$rAw$j\e(B
-\e$B$^$9!#%5!<%P!<$O0l$D$N5pBg$J!"9T$N%j%9%H$G1~Ez$7$^$9!#$7$+$7!"$b$7%0%k!<\e(B
-\e$B%W$N\e(B 2-5000 \e$B$N5-;v$rFI$s$G!"\e(B1 \e$B$H\e(B 5001 \e$B$rFI$_$?$$$@$1$J$i!"\e(B@code{nntp} \e$B$O\e(B
-\e$BI,MWL5$$\e(B 4999 \e$B$N\e(B @sc{nov} \e$B9T$r<hF@$9$k;v$K$J$j$^$9!#$3$NJQ?t\e(B
-\e$B$O\e(B @code{XOVER} \e$BMW5a$,$I$l$/$i$$Bg$-$JFs$D$NO"B3$7$?5-;v72$N4V$N$X$@$?\e(B
-\e$B$j\e(B (gap) \e$B$^$GJ,3d$5$l$J$$$GAw$i$l$k$+$r7hDj$7$^$9!#%M%C%H%o!<%/$,B.$$>l\e(B
-\e$B9g$O!"$3$NJQ?t$rK\Ev$K>.$5$J?t;z$K@_Dj$9$k$H$*$=$i$/<hF@$,CY$/$J$k$H$$$&\e(B
-\e$B;v$KCm0U$7$F$/$@$5$$!#$3$NJQ?t$,\e(B @code{nil} \e$B$G$"$k$H!"\e(B@code{nntp} \e$B$OMW5a\e(B
-\e$B$rJ,3d$7$^$;$s!#%G%#%U%)%k%H$O\e(B 5 \e$B$G$9!#\e(B
+@table @code
+@findex nntp-open-network-stream
+@item nntp-open-network-stream
+\e$B$3$l$O%G%#%U%)%k%H$G!"C1=c$K1s3V%7%9%F%`$N%]!<%H$J$I$K@\B3$7$^$9!#\e(B
 
-@item nntp-prepare-server-hook
-@vindex nntp-prepare-server-hook
-@sc{nntp} \e$B%5!<%P!<$K@\B3$r;n$_$kA0$K<B9T$5$l$k%U%C%/$G$9!#\e(B
+@findex nntp-open-ssl-stream
+@item nntp-open-ssl-stream
+@dfn{\e$B0BA4$J\e(B} \e$B%A%c%s%M%k$r;H$C$F%5!<%P!<$K@\B3$7$^$9!#$3$l$r;H$&$?$a$K$O!"\e(B
+SSLeay \e$B$,%$%s%9%H!<%k$5$l$F$$$J$1$l$P$J$j$^$;\e(B
+\e$B$s\e(B (@uref{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL} \e$B$H!"\e(B@file{ssl.el} (\e$BNc$(\e(B
+\e$B$P!"\e(BW3 \e$B$NG[I[$+$i\e(B) \e$B$,I,MW$K$J$j$^$9\e(B)\e$B!#$=$l$+$i%5!<%P!<$r<!$N$h$&$KDj5A$7\e(B
+\e$B$^$9\e(B:
 
-@item nntp-warn-about-losing-connection
-@vindex nntp-warn-about-losing-connection
-\e$B$3$NJQ?t$,\e(B @code{nil} \e$B$G$J$$$H!"%5!<%P!<$,@\B3$rJD$8$?$H$-$K>/$7;(2;$,$?\e(B
-\e$B$F$i$l$^$9!#\e(B
+@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
 
-@item nntp-record-commands
-@vindex nntp-record-commands
-\e$B$b$7\e(B @code{nil} \e$B$G$J$$$H!"\e(B@code{nntp} \e$B$O\e(B @sc{nntp} \e$B%5!<%P!<$KAw$C$?A4$F\e(B
-\e$B$NL?Na$r\e(B (\e$B;~9o$H6&$K\e(B) @samp{*nntp-log*} \e$B%P%C%U%!$K5-O?$7$^$9!#$3$l$OF0:n\e(B
-\e$B$7$F$$$J$$$H;W$o$l$k\e(B gnus/@sc{nntp} \e$B@\B3$r%G%#%P%C%0$7$F$$$k$H$-$KLr$KN)\e(B
-\e$B$A$^$9!#\e(B
+@findex nntp-open-telnet-stream
+@item nntp-open-telnet-stream
+\e$BC1$K\e(B @samp{telnet} \e$B$7$F\e(B @sc{nntp} \e$B%5!<%P!<$K@\B3$7$^$9!#$"$J$?$O!"%G%U%)\e(B
+\e$B%k%H$N\e(B @code{nntp-open-network-stream} \e$B$,$=$l$r$9$k$N$K$b$+$+$o$i$:!"$J\e(B
+\e$B$<$3$N4X?t$,$"$k$N$+IT;W5D$K;W$&$+$b$7$l$^$;$s!#$=$NM}M3\e(B (\e$B$N0l$D\e(B) \e$B$O!"$b\e(B
+\e$B$7$"$J$?$,KIJI$NCf$K$$$?$H$7$F$b\e(B @code{runsocks} \e$B$N$h$&$J%3%^%s%I%i%C%Q!<\e(B
+\e$B$N$*$+$2$G30$N@$3&$rD>@\%"%/%;%9$G$-$k$J$i$P!"$"$J$?$O$=$l$r$3$N$h$&$K;H\e(B
+\e$B$&$3$H$,$G$-$k$N$G$9\e(B:
 
+@lisp
+(nntp "socksified"
+      (nntp-pre-command "runsocks")
+      (nntp-open-connection-function nntp-open-telnet-stream)
+      (nntp-address "the.news.server"))
+@end lisp
+
+Emacs \e$B$N%;%C%7%g%sA4BN$r%i%C%W$7$F!"%G%#%U%)%k%H$N%a%=%C%I$r;H$&$H$$$&$N\e(B
+\e$B$O!"NI$$0F$G$O$"$j$^$;$s!#\e(B
+@end table
+
+@node Indirect Functions
+@subsubsection \e$B4V@\E*$K@\B3$9$k$?$a$N4X?t\e(B
+@cindex indirect connection functions
+
+\e$B$3$l$i$N4X?t$O!"<B:]$K\e(B @sc{nntp} \e$B%5!<%P!<$K@\B3$9$kA0$KCf4V$N%[%9%H$K@\\e(B
+\e$BB3$9$k$?$a$K4V@\E*$K8F$P$l$^$9!#$9$Y$F$N$3$l$i$N4X?t$H4XO"$9$kJQ?t\e(B
+\e$B$O\e(B "via" \e$B@\B3$NCg4V$KB0$7$F$$$k$H$b8@$($k$N$G!"$=$l$rL@3N$K$9$k$?$a$K$9\e(B
+\e$B$Y$F\e(B "via" \e$B$H$$$&@\F,<-$,IU$1$i$l$^$9!#$^$?!"$=$l$i$NF0:n$O$=$l$i$,6&DL\e(B
+\e$B$K;2>H$9$kJQ?t$K1F6A$5$l$^$9\e(B (@pxref{Common Variables})\e$B!#\e(B
+
+@table @code
+@item nntp-open-via-rlogin-and-telnet
+@findex nntp-open-via-rlogin-and-telnet
+\e$B1s3V%7%9%F%`$K\e(B @samp{rlogin} \e$B$7$F!"$=$3$+$iK\Ev\e(B
+\e$B$N\e(B @sc{nntp} \e$B%5!<%P!<$K\e(B @samp{telnet} \e$B$7$^$9!#$3$l$O!"Nc$($P$"$J$?$,;O$a\e(B
+\e$B$KKIJI%^%7%s$K@\B3$7$J$1$l$P$J$i$J$$>l9g$KJXMx$G$9!#\e(B
+
+@code{nntp-open-via-rlogin-and-telnet}-\e$BMQ$NJQ?t\e(B:
+
+@table @code
+@item nntp-via-rlogin-command
+@vindex nntp-via-rlogin-command
+\e$BCf4V$N%[%9%H$K%m%0%$%s$9$k$?$a$K;H$o$l$k%3%^%s%I$G$9!#%G%#%U%)%k%H\e(B
+\e$B$O\e(B @samp{rsh} \e$B$G$9$,!"\e(B@samp{ssh} \e$B$,?M5$$N$"$kBeBX<jCJ$G$9!#\e(B
+@end table
+
+@item nntp-open-via-telnet-and-telnet
+@findex nntp-open-via-telnet-and-telnet
+\e$BK\<AE*$K$OF1$8$3$H$J$N$G$9$,!"Cf4V$N%[%9%H$K@\B3$9$k$?$a\e(B
+\e$B$K\e(B @samp{rlogin} \e$B$NBe$o$j$K\e(B @samp{telnet} \e$B$r;H$$$^$9!#\e(B
+
+@code{nntp-open-via-telnet-and-telnet}-\e$BMQ$NJQ?t\e(B:
+
+@table @code
+@item nntp-via-telnet-command
+@vindex nntp-via-telnet-command
+\e$BCf4V$N%[%9%H$K\e(B @code{telnet} \e$B$9$k$?$a$K;H$o$l$k%3%^%s%I$G$9!#%G%#%U%)%k\e(B
+\e$B%H$O\e(B @samp{telnet} \e$B$G$9!#\e(B
+
+@item nntp-via-telnet-switches
+@vindex nntp-via-telnet-switches
+@code{nntp-via-telnet-command} \e$B$N%3%^%s%I$N%9%$%C%A$H$7$F;H$o$l$kJ8;zNs\e(B
+\e$B$N%j%9%H$G$9!#%G%#%U%)%k%H$O\e(B @samp{("-8")} \e$B$G$9!#\e(B
+
+@item nntp-via-user-password
+@vindex nntp-via-user-password
+\e$BCf4V$N%[%9%H$K%m%0%$%s$9$k$H$-$K;H$o$l$k%Q%9%o!<%I$G$9!#\e(B
+
+@item nntp-via-envuser
+@vindex nntp-via-envuser
+\e$B$b$7Hs\e(B-@code{nil}\e$B$J$i!"Cf4V$N\e(B @code{telnet} \e$B$N%;%C%7%g%s\e(B (\e$B%/%i%$%"%s%H$H\e(B
+\e$B%5!<%P!<$NN>J}\e(B) \e$B$G\e(B @code{ENVIRON} \e$B%*%W%7%g%s$r%5%]!<%H$7!"%m%0%$%sL>$NF~\e(B
+\e$BNO$rMW5a$7$^$;$s!#$3$l$ONc$($P\e(B Solaris \e$B$N\e(B @code{telnet} \e$B$GF0:n$7$^$9!#\e(B
+
+@item nntp-via-shell-prompt
+@vindex nntp-via-shell-prompt
+\e$BCf4V$N%[%9%H$G$N%7%'%k$N%W%m%s%W%H$K9gCW$9$k@55,I=8=$G$9!#%G%#%U%)%k%H\e(B
+\e$B$O\e(B @samp{bash\\|\$ *\r?$\\|> *\r?} \e$B$G$9!#\e(B
+@end table
+@end table
+
+\e$B$3$l$i$O>e5-$N4X?t$,;2>H$9$kIU2CE*$JJQ?t$G$9\e(B:
+
+@table @code
+@item nntp-via-user-name
+@vindex nntp-via-user-name
+\e$BCf4V$N%[%9%H$K@\B3$9$k$H$-$K;H$&MxMQ<TL>$G$9!#\e(B
+
+@item nntp-via-address
+@vindex nntp-via-address
+\e$B@\B3$9$kCf4V$N%[%9%H$N%"%I%l%9$G$9!#\e(B
+@end table
+
+@node Common Variables
+@subsubsection \e$B6&DL$NJQ?t\e(B
+
+\e$B0J2<$NJQ?t$O!"$9$Y$F$N!"$^$?$O$$$/$D$+$N$"$i$+$8$aMQ0U$5$l$F$$$k4X?t$NF0\e(B
+\e$B:n$K1F6A$r5Z$\$7$^$9!#@_Dj$5$l$F$$$J$1$l$P!"$9$Y$F$N4X?t$,1F6A$5$l$^$9!#\e(B
+
+@table @code
+@item nntp-pre-command
+@vindex nntp-pre-command
+\e$BAG$N@\B3MQ$N4X\e(B
+\e$B?t\e(B (@code{nntp-open-network-stream} \e$B$H\e(B @code{nntp-open-ssl-stream} \e$B$@$1\e(B
+\e$B$@$H;W$&\e(B) \e$B$G$O$J$$$b$N$rDL$7$F@\B3$9$k$H$-$K;H$&%3%^%s%I%i%C%Q!<$G$9!#Nc\e(B
+\e$B$($P$"$J$?$O\e(B @samp{SOCKS} \e$B%i%C%Q!<$r3d$jEv$F$k$G$7$g$&!#\e(B
+
+@item nntp-address
+@vindex nntp-address
+@sc{nntp} \e$B%5!<%P!<$N%"%I%l%9$G$9!#\e(B
+
+@item nntp-port-number
+@vindex nntp-port-number
+\e$B@\B3$9$k\e(B @sc{nntp} \e$B%5!<%P!<$N%]!<%HHV9f$G$9!#%G%#%U%)%k%H\e(B
+\e$B$O\e(B @samp{nntp} \e$B$G$9!#\e(B
+
+@item nntp-end-of-line
+@vindex nntp-end-of-line
+@sc{nntp} \e$B%5!<%P!<$H$*OC$r$7$F$$$k$H$-$K9T$N=*$o$j$N0u$H$7$F;H$o$l$kJ8;z\e(B
+\e$BNs$G$9!#$3$l$O%G%#%U%)%k%H$G\e(B @samp{\r\n} \e$B$G$9$,!"AG$G$O$J$$@\B3MQ$N4X?t\e(B
+\e$B$r;H$C$F$$$k$H$-$O\e(B @samp{\n} \e$B$G$"$k$Y$-$G$9!#\e(B
+
+@item nntp-telnet-command
+@vindex nntp-telnet-command
+@samp{telnet} \e$B$rDL$7$F\e(B @sc{nntp} \e$B%5!<%P!<$H@\B3$9$k$H$-$K;H$&%3%^%s%I$G\e(B
+\e$B$9!#$3$l$OCf4V$N%[%9%H$H@\B3$9$k$?$a$N$b$N$G$O\e(B \e$B!v$"$j$^$;$s!v!#$3$l$OC1\e(B
+\e$B$KK\Ev$N\e(B @sc{nntp} \e$B%5!<%P!<$H@\B3$9$k$?$a$N$b$N$G$9!#%G%#%U%)%k%H\e(B
+\e$B$O\e(B @samp{telnet} \e$B$G$9!#\e(B
+
+@item nntp-telnet-switches
+@vindex nntp-telnet-switches
+@code{nntp-telnet-command} \e$B$KEO$9%9%$%C%A$N%j%9%H$G$9!#%G%#%U%)%k%H\e(B
+\e$B$O\e(B @samp{("-8")} \e$B$G$9!#\e(B
 @end table
 
 @node News Spool
@@ -10558,7 +10505,6 @@ LIST \e$B%3%^%s%I$N%*%W%7%g%s$K;H$C$F!"\e(B(\e$B%5!<%P!<$N\e(B) \e$B%j%9%H=PNO$r@_Dj$
 \e$B$m$H;n$7$F$_$J$1$l$P$J$j$^$;$s!#\e(B
 
 @table @code
-
 @item nnspool-inews-program
 @vindex nnspool-inews-program
 \e$B5-;v$rEj9F$9$k$?$a$K;H$o$l$k%W%m%0%i%`$G$9!#\e(B
@@ -10608,7 +10554,6 @@ LIST \e$B%3%^%s%I$N%*%W%7%g%s$K;H$C$F!"\e(B(\e$B%5!<%P!<$N\e(B) \e$B%j%9%H=PNO$r@_Dj$
 @code{nil} \e$B$G$J$$$H!"$3$l$,%G%#%U%)%k%H$G$9$,!"354Q%U%!%$%k\e(B (overview)
 \e$B$+$i4XO"$9$kItJ,$rF@$k$?$a$K\e(B @code{sed} \e$B$r;H$$$^$9!#$b$7\e(B @code{nil} \e$B$@$H!"\e(B
 @code{nnspool} \e$B$O%U%!%$%kA4BN$r%P%C%U%!$KFI$_9~$s$G!"$=$3$G<B9T$7$^$9!#\e(B
-
 @end table
 
 @node Getting Mail
@@ -10933,7 +10878,6 @@ rm -f $TMP; $MOVEMAIL $MAIL $TMP >/dev/null && cat $TMP
 @item :prescript
 @itemx :postscript
 \e$B%a!<%k$N<hF@$NA0\e(B/\e$B8e$K<B9T$5$l$k%9%/%j%W%H$G$9!#\e(B
-
 @end table
 
 \e$B%G%#%l%/%H%j!<%a!<%k%=!<%9$NNc$G$9\e(B:
@@ -11012,7 +10956,6 @@ POP \e$B%5!<%P!<$+$i%a!<%k$r<hF@$9$k$?$a$K;H$&4X?t$G$9!#$=$N4X?t$O0l$D$N%Q%i\e(B
 @item :authentication
 \e$B$3$l$O\e(B @code{password} \e$B$+%7%s%\%k\e(B @code{apop} \e$B$G!"$I$NG'>ZJ}<0$r;H$&$+$r\e(B
 \e$B7h$a$k$b$N$N$I$A$i$+$G$9!#=i4|@_Dj$O\e(B @code{password} \e$B$G$9!#\e(B
-
 @end table
 
 @code{:program} \e$B$H\e(B @code{:function} \e$B%-!<%o!<%I$,;XDj$5$l$F$$$J$$$H!"\e(B
@@ -11058,7 +11001,6 @@ Maildir \e$B$N%5%V%G%#%l%/%H%j$G$9!#=i4|CM$O\e(B @samp{("new" "cur")} \e$B$G$9!#\e(B
 
 \e$B%j%b!<%H%^%7%s$+$i%a!<%k$r<h$j4s$;$k$3$H$b=PMh$^$9!#\e(B
 (\e$B$H$$$&$N$b!"\e(Bmaildir \e$B$O%m%C%/$NLdBj$r5$$K$;$:$K:Q$`$+$i!#\e(B)
-
 @end table
 
 Maildir \e$B%a!<%k%=!<%9$NNc$r$U$?$D\e(B:
@@ -11152,7 +11094,6 @@ UNDELETED} \e$B$O$*$=$i$/$?$$$F$$$N?M$K$O:GNI$NA*Br$G$7$g$&$,!"$H$-$I\e(B
 @item :dontexpunge
 @code{nil} \e$B$G$J$+$C$?$i!"5-;v$r<hF@$7$?8e$G!"$=$l$i$K>C5n$N0u$,IU$$$F$$\e(B
 \e$B$F$b:o=|$7$^$;$s!#\e(B
-
 @end table
 
 IMAP \e$B%a!<%k%=!<%9$NNc\e(B:
@@ -11192,7 +11133,6 @@ www.my-deja.com \e$B$J$I$N%&%'%V%a!<%k%5!<%P!<$+$i%a!<%k$r<hF@$7$^$9!#\e(B
 @item :dontexpunge
 @code{nil} \e$B$G$J$+$C$?$i!"L$FI$N5-;v$@$1$r<hF@$7$F!"$=$l$i$r$4$_H"$N%U%)\e(B
 \e$B%k%@!<$K0\F0$7$^$;$s!#\e(B
-
 @end table
 
 \e$B%&%'%V%a!<%k$N%=!<%9$NNc$G$9\e(B:
@@ -11226,7 +11166,6 @@ www.my-deja.com \e$B$J$I$N%&%'%V%a!<%k%5!<%P!<$+$i%a!<%k$r<hF@$7$^$9!#\e(B
 
 \e$B$"$J$?$,\e(B @dfn{unplugged} \e$B$G$"$C$F$b\e(B gnus \e$B$O%a!<%k$r<hF@$7$^$9!#$3$l$O!"\e(B
 \e$B%m!<%+%k$N%a!<%k$H%K%e!<%9$r;H$&>l9g$KJXMx$G$9!#\e(B
-
 @end table
 @end table
 
@@ -11285,7 +11224,6 @@ www.my-deja.com \e$B$J$I$N%&%'%V%a!<%k%5!<%P!<$+$i%a!<%k$r<hF@$7$^$9!#\e(B
 @vindex mail-source-default-file-modes
 \e$BA4$F$N?7$7$$%a!<%k%U%!%$%k$O$3$N%U%!%$%k%b!<%I$K$J$j$^$9!#=i4|CM\e(B
 \e$B$O\e(B 384 \e$B$G$9!#\e(B
-
 @end table
 
 @node Fetching Mail
@@ -11388,7 +11326,6 @@ www.my-deja.com \e$B$J$I$N%&%'%V%a!<%k%5!<%P!<$+$i%a!<%k$r<hF@$7$^$9!#\e(B
 @code{nil} \e$B$G$J$$$H!"%P%C%/%(%s%I$KF~$C$FMh$?5-;v\e(B (\e$BNc$($P!"\e(B@code{Gcc} \e$B$K\e(B
 \e$B$h$C$F\e(B) \e$B$N\e(B @code{Message-ID} \e$B$r%a!<%k=EJ#H/8+%U%!%$%k$KF~$l$^$9!#%G%#%U%)\e(B
 \e$B%k%H$O\e(B @code{nil} \e$B$G$9!#\e(B
-
 @end table
 
 @node Fancy Mail Splitting
@@ -11917,7 +11854,6 @@ Gnus \e$B$O5-;v$rI=<($9$k$H$-$K$=$l$r@vBu$9$k$?$a$K2aEY$N4X?t$rDs6!$7$F$$$^\e(B
 @findex nnheader-ms-strip-cr
 \e$B$=$l$>$l$N9T$+$i!":G8e$K$"$k%-%c%j%C%8%j%?!<%s\e(B (carriage return) \e$B$r<h$j\e(B
 \e$B=|$-$^$9!#$3$l$O\e(B MS \e$B$N%^%7%s>e$GF0:n$7$F$$$k\e(B Emacs \e$B$N%G%#%U%)%k%H$G$9!#\e(B
-
 @end table
 
 @item nnmail-prepare-incoming-header-hook
@@ -11960,7 +11896,6 @@ Gnus \e$B$O5-;v$rI=<($9$k$H$-$K$=$l$r@vBu$9$k$?$a$K2aEY$N4X?t$rDs6!$7$F$$$^\e(B
 Eudora \e$B$O2u$l$?\e(B @code{References} \e$B%X%C%@!<$r:n@.$7$^$9$,!"\e(B
 @code{In-Reply-To} \e$B%X%C%@!<$K$O$A$c$s$H$7$?$b$N$rF~$l$^$9!#$3$N4X?t\e(B
 \e$B$O\e(B @code{References} \e$B%X%C%@!<$r<h$j=|$-$^$9!#\e(B
-
 @end table
 
 @item nnmail-prepare-incoming-message-hook
@@ -11972,7 +11907,6 @@ Eudora \e$B$O2u$l$?\e(B @code{References} \e$B%X%C%@!<$r:n@.$7$^$9$,!"\e(B
 @item article-de-quoted-unreadable
 @findex article-de-quoted-unreadable
 Quoted Readable \e$BId9f2=$rI|9f2=$7$^$9!#\e(B
-
 @end table
 @end table
 
@@ -12204,7 +12138,6 @@ rmail box \e$B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#4{DjCM\e(B
 @item nnml-prepare-save-mail-hook
 @vindex nnml-prepare-save-mail-hook
 \e$BJ]B8$9$kA0$K5-;v$KHO0O$r69$a$F<B9T$9$k%U%C%/$G$9!#\e(B
-
 @end table
 
 @findex nnml-generate-nov-databases
@@ -12308,7 +12241,6 @@ rmail box \e$B$N$?$a$N%"%/%F%#%V%U%!%$%k$NL>A0!#4{DjCM\e(B
 @vindex nnfolder-nov-is-evil
 \e$B$b$7Hs\e(B@code{nil}\e$B$J$i!"$3$N%P%C%/%(%s%I$O\e(B @sc{nov} \e$B%U%!%$%k$rL5;k$7$^$9!#\e(B
 \e$B4{DjCM$O\e(B @code{nil} \e$B$G$9!#\e(B
-
 @end table
 
 @findex nnfolder-generate-active-file
@@ -12427,7 +12359,6 @@ Rand MH \e$B%a!<%k1\Mw%7%9%F%`$O\e(B UNIX \e$B%7%9%F%`$K$+$J$jD9$$4VB8:_$7$F$$$^$9!
 @code{nnfolder} \e$B$O:GA1$NA*Br$G$O$"$j$^$;$s$,!"$=$l$J$j$NNL$N%a!<%k$7$+<u\e(B
 \e$B$1<h$i$J$$$J$i!"$*$=$i$/\e(B @code{nnfolder} \e$B$OA4$F$NCf$G0lHVE,$7$?%P%C%/%(\e(B
 \e$B%s%I$G$7$g$&!#\e(B
-
 @end table
 
 @node Browsing the Web
@@ -12560,7 +12491,6 @@ Gnus \e$B$O$3$l$i$N%=!<%9$X$N3&LL$rDs6!$9$k%P%C%/%(%s%I72$r>/$7Hw$($D$D$"$j\e(B
 @item id
 @code{Message-ID} \e$B$r$b$H$K5-;v$r<hF@$9$k$?$a$N\e(B URL \e$B7A<0J8;zNs!#\e(B
 @end table
-
 @end table
 
 @node Slashdot
@@ -12624,7 +12554,7 @@ Slashdot (@uref{http://slashdot.org/}) \e$B$O?M5$$N$"$k%K%e!<%9%5%$%H$G!"%K%e!<\e(
 @item nnslashdot-active-url
 @vindex nnslashdot-active-url
 \e$B%K%e!<%95-;v$H%3%a%s%H$r<hF@$9$k$?$a$K;H$o$l$k\e(B @sc{url} \e$B$NJ8;zNs$G$9!#=i\e(B
-\e$B4|CM\e(B: @samp{http://slashdot.org/search.pl?section=&min=%d}\e$B!#\e(B
+\e$B4|CM$O\e(B @samp{http://slashdot.org/search.pl?section=&min=%d} \e$B$G$9!#\e(B
 
 @item nnslashdot-comments-url
 @vindex nnslashdot-comments-url
@@ -12644,7 +12574,6 @@ Slashdot (@uref{http://slashdot.org/}) \e$B$O?M5$$N$"$k%K%e!<%9%5%$%H$G!"%K%e!<\e(
 @item nnslashdot-group-number
 @vindex nnslashdot-group-number
 \e$B:G?7$N\e(B 10 \e$B$K2C$($F99?7$rB3$1$k8E$$%0%k!<%W$N?t$G$9!#=i4|CM$O\e(B 0 \e$B$G$9!#\e(B
-
 @end table
 
 @node Ultimate
@@ -13286,7 +13215,6 @@ MIME \e$BB>ItJ,%a%C%;!<%8\e(B (multipart) \e$B$G$9!#\e(B
 @item file-end
 \e$B$3$l$,$"$k>l9g!"$3$l$O%U%!%$%k$N:G8e$K%^%C%A$7$J$/$F$O$J$j$^$;$s!#$3$N@5\e(B
 \e$B5,I=8=$N8e$m$N%F%-%9%H$OA4$F!"40A4$KL5;k$5$l$^$9!#\e(B
-
 @end table
 
 \e$B$3$N$h$&$K!"$3$l$i$NJQ?t$r;H$C$F\e(B @code{nndoc} \e$B$OJ8=q%U%!%$%k$r!"$=$l$>$l\e(B
@@ -13311,7 +13239,6 @@ MIME \e$BB>ItJ,%a%C%;!<%8\e(B (multipart) \e$B$G$9!#\e(B
 \e$B$5$l$^$9!#$3$l$O5-;vHV9f$r%Q%i%a!<%?$H$7$F8F$S=P$5$l!"LdBj$N5-;v$N$-$l$$\e(B
 \e$B$J%X%C%@!<$r@8@.$9$k$3$H$r5a$a$i$l$^$9!#$3$l$OA4$F$N5-;v$N%X%C%@!<$,MW5a\e(B
 \e$B$5$l$k$H$-$K8F$S=P$5$l$^$9!#\e(B
-
 @end table
 
 \e$B;d$,:n$C$?Cf$G:G$bJ#;($JNc\e(B --- \e$BI8=`$^$H$aAw$j7A<0$r8+$F$_$^$7$g$&!#\e(B
@@ -13370,7 +13297,6 @@ PC \e$B$N@$3&$N?M!9$O$h$/!"\e(B``\e$B%*%U%i%$%s\e(B'' \e$B%K%e!<%9%j!<%@$K$D$$$FOC$r$
 \e$B$O$8$a$K$$$/$D$+MQ8l$r!#\e(B
 
 @table @dfn
-
 @item server
 \e$B$3$l$O30$N@$3&$K7R$,$C$F$$$F!"$"$J$?$,%K%e!<%9$H%a!<%k$rAw<u?.$9$k%^%7%s\e(B
 \e$B$G$9!#\e(B
@@ -13392,9 +13318,7 @@ PC \e$B$N@$3&$N?M!9$O$h$/!"\e(B``\e$B%*%U%i%$%s\e(B'' \e$B%K%e!<%9%j!<%@$K$D$$$FOC$r$
 (\e$BJV?.%Q%1%C%H\e(B) \e$B$3$N%Q%1%C%H$O<+Bp%^%7%s$G:n$i$l$k%Q%1%C%H$G!"IaDL$O$"$J\e(B
 \e$B$?$N=q$$$?JV;v$,4^$^$l$F$$$^$9!#$3$l$i$O=i4|@_Dj$G\e(B
 \e$B$O\e(B @file{SoupinX.tgz} \e$B$H$$$&L>A0$G$9!#$3$3$G\e(B @var{x} \e$B$O?t;z$G$9!#\e(B
-
 @end table
-
 @end table
 
 @enumerate
@@ -13488,14 +13412,12 @@ Gnus \e$B$+$i\e(B @kbd{G s s} \e$BL?Na$r;H$C$F$3$N%Q%1%C%H$+$i%a!<%k$r=P$7$^$9!#\e(B
 \e$B$3$N35N,%b!<%IL?Na$O!"8=:_$N5-;v$r\e(B @sc{soup} \e$B%Q%1%C%H$KDI2C$7$^\e(B
 \e$B$9\e(B (@code{gnus-soup-add-article})\e$B!#$3$l$O%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47$K=>$$$^\e(B
 \e$B$9\e(B (@pxref{Process/Prefix})\e$B!#\e(B
-
 @end table
 
 gnus \e$B$,$3$l$i$N<BBN$r$I$3$KCV$/$+$r%+%9%?%^%$%:$9$k$$$/$D$+$NJQ?t$,$"$j\e(B
 \e$B$^$9!#\e(B
 
 @table @code
-
 @item gnus-soup-directory
 @vindex gnus-soup-directory
 @sc{soup} \e$B%Q%1%C%H$r:n@.Cf$K\e(B gnus \e$B$,Cf4V%U%!%$%k$rJ]B8$9$k%G%#%l%/%H%j!<!#\e(B
@@ -13529,7 +13451,6 @@ gnus \e$B$,JV?.%Q%1%C%H$rC5$7$K9T$/>l=j!#=i4|@_DjCM$O\e(B @file{~/}\e$B!#\e(B
 @vindex gnus-soup-packet-regexp
 @code{gnus-soup-packet-directory} \e$BFb$N\e(B @sc{soup} \e$B%Q%1%C%H$K%^%C%A$9$k@5\e(B
 \e$B5,I=8=!#\e(B
-
 @end table
 
 @node SOUP Groups
@@ -13543,7 +13464,6 @@ gnus \e$B$,JV?.%Q%1%C%H$rC5$7$K9T$/>l=j!#=i4|@_DjCM$O\e(B @file{~/}\e$B!#\e(B
 \e$B$3$l$i$O$3$N?6$kIq$$$r%+%9%?%^%$%:$G$-$kJQ?t$G$9!#\e(B
 
 @table @code
-
 @item nnsoup-tmp-directory
 @vindex nnsoup-tmp-directory
 @code{nnsoup} \e$B$,\e(B @sc{soup} \e$B%Q%1%C%H$r<h$j=P$9$H$-!"$3$N%G%#%l%/%H%jFb$G\e(B
@@ -13599,7 +13519,6 @@ gnus \e$B$,JV?.%Q%1%C%H$rC5$7$K9T$/>l=j!#=i4|@_DjCM$O\e(B @file{~/}\e$B!#\e(B
 @item nnsoup-always-save
 @vindex nnsoup-always-save
 @code{nil} \e$B0J30$G$"$l$P!"%a%C%;!<%8$rEj9F$7$?8e$KJV?.%P%C%U%!$rJ]B8$9$k!#\e(B
-
 @end table
 
 @node SOUP Replies
@@ -13670,8 +13589,8 @@ To: alt-religion-emacs@@GATEWAY
 \e$B0J2<$N4{@=4X?t$,B8:_$7$^$9\e(B:
 
 @findex nngateway-simple-header-transformation
-@table @code
 
+@table @code
 @item nngateway-simple-header-transformaton
 @var{newsgroup}@@@code{nngateway-address} \e$B$N$h$&$J\e(B @code{To} \e$B%X%C%@!<$r\e(B
 \e$B$D$/$j$^$9!#\e(B
@@ -13690,9 +13609,7 @@ To: alt-religion-emacs@@GATEWAY
         (nngateway-header-transformation
          nngateway-mail2news-header-transformation)))
 @end lisp
-
 @end table
-
 @end table
 
 \e$B$D$^$j!"$3$l$r;H$&$K$O!"$3$s$JIw$K$9$k$@$1$G$9!#\e(B
@@ -13759,7 +13676,6 @@ gnus-secondary-select-methods \e$B$K\e(B nnimap \e$B$rEPO?$7$F2<$5$$!#$3$l$K$h$C\e(B
 \e$B$9!#\e(B
 
 @table @code
-
 @item nnimap-address
 @vindex nnimap-address
 
@@ -13916,7 +13832,6 @@ nnimap \e$B$O$=$l$b%5%]!<%H$7$^$9!#$7$+$7!"\e(BSSLeay \e$B$N:G?7HG$G$"$k\e(B 0.9.x \e
 \e$BA*Br;h$O\e(B:
 
 @table @code
-
 @item always
 \e$B=i4|@_Dj$N?6Iq$$!"%a!<%k%\%C%/%9$rJD$8$k$H$-$K\e(B @code{Deleted} \e$B$H0u$NIU$$\e(B
 \e$B$?5-;v$r>C5n$7$^$9!#\e(B
@@ -13927,9 +13842,30 @@ nnimap \e$B$O$=$l$b%5%]!<%H$7$^$9!#$7$+$7!"\e(BSSLeay \e$B$N:G?7HG$G$"$k\e(B 0.9.x \e
 @item ask
 \e$B%a!<%k%\%C%/%9$rJD$8$k$H$-$K!"\e(Bnnimap \e$B$,>C5n$5$l$?5-;v$r:o=|$9$k$+$I$&$+\e(B
 \e$B$r?R$M$^$9!#\e(B
-
 @end table
 
+@item nnimap-importantize-dormant
+@vindex nnimap-importantize-dormant
+
+\e$BHs\e(B-nil \e$B$@$C$?$i!"B>$N\e(B IMAP \e$B%/%i%$%"%s%H$N$?$a$KJ]N15-;v$r0uIU$-$H$7$F$b\e(B
+\e$B0u$rIU$1$^$9!#\e(Bgnus \e$B$NFbIt$G$O!"J]N15-;v$O85!9$9$G$K0uIU$-$H$7$F$N$_0u$,\e(B
+\e$BIU$1$i$l$F$$$^$9!#$3$l$O!"B>$N\e(B IMAP \e$B%/%i%$%"%s%H$K$*$1$kJ]N15-;v$r!"$"$?\e(B
+\e$B$+$b0uIU$-$N$h$&$K$-$oN)$?$;$^$9!#\e(B(\e$BJL$N8@$$J}$r$9$k$H!"\e(Bgnus \e$B$OFs$D$N0u$r\e(B
+\e$BIU$1!"\e(BIMAP \e$B$O$?$C$?0l$D$@$H$$$&$3$H$G$9!#\e(B)
+
+\e$B$?$V$s$3$l$r$$$8$j$^$o$9$N$O!"$"$J$?$,%f!<%6C10L$NJ]N1%U%i%0$rIU$1$h$&$H\e(B
+\e$B$9$k$@$1$NM}M3$K$h$k$G$7$g$&!#$3$s$J46$8$G\e(B:
+
+@lisp
+(setcdr (assq 'dormant nnimap-mark-to-flag-alist)
+        (format "gnus-dormant-%s" (user-login-name)))
+(setcdr (assq 'dormant nnimap-mark-to-predicate-alist)
+        (format "KEYWORD gnus-dormant-%s" (user-login-name)))
+@end lisp
+
+\e$B$3$N>l9g!"$"$J$?$O%f!<%6C10L$NJ]N1%U%i%0$r!"B>$N%f!<%6$K0uIU$-$H$7$F8+$i\e(B
+\e$B$l$?$/$J$$$H;W$C$F$$$^$9!#\e(B
+
 @item nnimap-expunge-search-string
 @cindex Expunging
 @vindex nnimap-expunge-search-string
@@ -13951,7 +13887,6 @@ nnimap \e$B$K5-;v$NFbItE*$JF|IU$NBe$o$j$K\e(B Date: \e$B$r;H$&$h$&$K$5$;$^$9!#$5$i$
 \e$B$N7A<0$O\e(B (\e$B$[$H$s$I\e(B) @code{ftp} \e$B$N\e(B @file{~/.netrc} \e$B%U%!%$%k$HF1$8$G$9!#87\e(B
 \e$BL)$JDj5A$O!"JQ?t\e(B @code{nntp-authinfo-file} \e$B$r8+$F2<$5$$!#$=$7\e(B
 \e$B$F\e(B @ref{NNTP} \e$B$b8+$F2<$5$$!#\e(B
-
 @end table
 
 @menu
@@ -13975,7 +13910,6 @@ nnimap \e$B$K5-;v$NFbItE*$JF|IU$NBe$o$j$K\e(B Date: \e$B$r;H$&$h$&$K$5$;$^$9!#$5$i$
 \e$B4XO"$9$kJQ?t$O;0$D$G$9\e(B:
 
 @table @code
-
 @item nnimap-split-crosspost
 @cindex splitting, crosspost
 @cindex crosspost
@@ -14107,7 +14041,6 @@ nnimap \e$BFCM-$NFC5iJ,3dJ}<0$r\e(B @code{nnimap-split-fancy} \e$B$KDj5A$7$F2<$5$$!
 @end lisp
 
 Nnmail \e$B$GBP1~$9$k$b$N\e(B: @code{nnmail-split-fancy}.
-
 @end table
 
 @node Editing IMAP ACLs
@@ -14800,7 +14733,6 @@ file
 @item gnus-agent-high-score
 @vindex gnus-agent-high-score
 \e$B$3$NCM$h$jBg$-$$%9%3%"$r;}$D5-;v$O9b%9%3%"$G$"$k!#=i4|@_DjCM$O\e(B 0\e$B!#\e(B
-
 @end table
 
 @node Agent Commands
@@ -14868,7 +14800,6 @@ $ emacs -batch -l ~/.gnus.el -f gnus-agent-batch-fetch
 @findex gnus-agent-synchronize-flags
 \e$B%j%b!<%H%5!<%P!<$,\e(B @dfn{unplugged} \e$B$N$H$-$KJQ99$5$l$?%U%i%0$,$"$l$PF14|\e(B
 \e$B$5$;$^$9!#\e(B
-
 @end table
 
 @node Summary Agent Commands
@@ -14895,7 +14826,6 @@ $ emacs -batch -l ~/.gnus.el -f gnus-agent-batch-fetch
 @kindex J c (Agent Summary)
 @findex gnus-agent-catchup
 \e$B%@%&%s%m!<%I0u$NL5$$5-;v$rA4$F4{FI$K$9$k\e(B (@code{gnus-agent-catchup})\e$B!#\e(B
-
 @end table
 
 @node Server Agent Commands
@@ -14913,7 +14843,6 @@ $ emacs -batch -l ~/.gnus.el -f gnus-agent-batch-fetch
 @findex gnus-agent-remove-server
 \e$B8=:_$N%5!<%P!<$r!"\e(Bgnus \e$B%(!<%8%'%s%H$G07$o$l$k%5!<%P!<$N0lMw$+$i:o=|$9\e(B
 \e$B$k\e(B (@code{gnus-agent-remove-server})\e$B!#\e(B
-
 @end table
 
 @node Agent Expiry
@@ -15029,7 +14958,6 @@ Gnus \e$B%(!<%8%'%s%H$,%U%!%$%k$r3JG<$9$k>l=j!#=i4|@_DjCM\e(B
 @item gnus-agent-unplugged-hook
 @vindex gnus-agent-unplugged-hook
 \e$B%M%C%H%o!<%/$+$i@ZCG$5$l$?$H$-$K<B9T$5$l$k%U%C%/!#\e(B
-
 @end table
 
 @node Example Setup
@@ -15190,7 +15118,6 @@ Gnus Agent \e$B$O$h$/$"$kB>$N%*%U%i%$%s%K%e!<%9%j!<%@!<$N$h$&$K$OF0:n$7$^$;\e(B
 \e$B$b$&0l2s%@%&%s%m!<%I$5$l$k$N$G$9$+\e(B?
 
 @strong{\e$B$O$$!#\e(B}
-
 @end table
 
 \e$BMWLs$9$k$H!"\e(Bgnus \e$B$,@Z$jN%$5$l$F$$$k$H$-$O!"%m!<%+%k$KJ]B8$5$l$?5-;v$r8+\e(B
@@ -15262,7 +15189,6 @@ Gnus \e$B$O35N,%P%C%U%!$r:n@.$9$kA0$K!"8=:_$N%0%k!<%W$KE,MQ$5$l$k$I$s\e(B
 \e$B0lHLE*$J%9%3%"L?Na$O<B:]$K$O%9%3%"%U%!%$%k$rJQ99$7$^$;$s\e(B:
 
 @table @kbd
-
 @item V s
 @kindex V s (\e$B35N,\e(B)
 @findex gnus-summary-set-score
@@ -15316,13 +15242,11 @@ File Editing})\e$B!#\e(B
 @findex gnus-score-customize
 \e$B;k3PE*$G4r$7$$J}K!$G%9%3%"%U%!%$%k$r%+%9%?%^%$%:$7$^\e(B
 \e$B$9\e(B (@code{gnus-score-customize})\e$B!#\e(B
-
 @end table
 
 \e$B$3$l$i$NL?Na$N;D$j$O%m!<%+%k%9%3%"%U%!%$%k$r=$@5$7$^$9!#\e(B
 
 @table @kbd
-
 @item V m
 @kindex V m (\e$B35N,\e(B)
 @findex gnus-score-set-mark-below
@@ -15350,8 +15274,8 @@ File Editing})\e$B!#\e(B
 @item
 \e$BFsHVL\$N%-!<$O$I$N%X%C%@!<$K%9%3%"$r$7$?$$$+$rI=$7$^$9!#0J2<$N%-!<$,;HMQ\e(B
 \e$B2DG=$G$9\e(B:
-@table @kbd
 
+@table @kbd
 @item a
 \e$BCx<T\e(B (author) \e$B$NL>A0$K%9%3%"$rIU$1$^$9!#\e(B
 
@@ -15387,7 +15311,6 @@ File Editing})\e$B!#\e(B
 @item t
 \e$B%9%l%C%I$K%9%3%"$rIU$1$^$9!#\e(B(\e$B$3$N%-!<$r;H$&$3$H$K$h$C$F\e(B @file{ADAPT} \e$B%U%!\e(B
 \e$B%$%k$,@8@.$5$l$^$9!#\e(B)
-
 @end table
 
 @item
@@ -15395,11 +15318,9 @@ File Editing})\e$B!#\e(B
 \e$B$rIU$1$h$&$H$7$F$$$k$+$K0M$j$^$9!#\e(B
 
 @table @code
-
 @item \e$BJ8;zNs\e(B (strings)
 
 @table @kbd
-
 @item e
 \e$B@53N$J\e(B (exact) \e$B9gCW$G$9!#\e(B
 
@@ -15414,8 +15335,8 @@ File Editing})\e$B!#\e(B
 @end table
 
 @item \e$BF|IU\e(B (date)
-@table @kbd
 
+@table @kbd
 @item b
 \e$BF|IU$NA0\e(B (before) \e$B$G$9!#\e(B
 
@@ -15427,8 +15348,8 @@ File Editing})\e$B!#\e(B
 @end table
 
 @item \e$B?t;z\e(B (number)
-@table @kbd
 
+@table @kbd
 @item <
 \e$B?t;z$h$j>.$5$$$b$N$G$9!#\e(B
 
@@ -15445,8 +15366,8 @@ File Editing})\e$B!#\e(B
 \e$B$+!"1JB3E*$J\e(B (\e$B$9$J$o$A!"4|8B@Z$l>C5n$G$J$$\e(B) \e$B%9%3%"EPO?$G$"$k$+$H$$$&$3$H!"\e(B
 \e$B$b$7$/$O$9$0$K$J$5$l$k$Y$-$+!"%9%3%"%U%!%$%k$KDI2C$9$k;v$O$7$J$$$+$H$$$&\e(B
 \e$B;v$r;XDj$7$^$9!#\e(B
-@table @kbd
 
+@table @kbd
 @item t
 \e$B0l;~E*$J\e(B (temporary) \e$B%9%3%"EPO?$G$9!#\e(B
 
@@ -15487,14 +15408,12 @@ File Editing})\e$B!#\e(B
 \e$B;DG0$J$,$i!"$^$@$?$/$5$s$O$"$j$^$;$s!#\e(B
 
 @table @kbd
-
 @item W f
 @kindex W f (\e$B%0%k!<%W\e(B)
 @findex gnus-score-flush-cache
 Gnus \e$B$O2?EY$b%9%3%"O"A[%j%9%H$rFI$_9~$`$N$rHr$1$k$?$a$K!"$=$l$N%-%c%C%7%e\e(B
 \e$B$rJ];}$7$F$$$^$9!#$3$NL?Na$O%-%c%C%7%e$r=q$-=P$7$^\e(B
 \e$B$9\e(B (@code{gnus-score-flush-cache})\e$B!#\e(B
-
 @end table
 
 \e$B0J2<$N$h$&$J;v$r$9$k;v$K$h$C$F!"%3%^%s%I9T$+$i%9%3%"IU$1$r$9$k;v$,$G\e(B
@@ -15511,7 +15430,6 @@ Gnus \e$B$O2?EY$b%9%3%"O"A[%j%9%H$rFI$_9~$`$N$rHr$1$k$?$a$K!"$=$l$N%-%c%C%7%e\e(B
 @cindex score variables
 
 @table @code
-
 @item gnus-use-scoring
 @vindex gnus-use-scoring
 @code{nil} \e$B$G$"$l$P!"\e(Bgnus \e$B$O%9%3%"%U%!%$%k$rD4$Y$:!"0lHLE*$K!"%9%3%"4XO"\e(B
@@ -15592,8 +15510,8 @@ Gnus \e$B$O2?EY$b%9%3%"O"A[%j%9%H$rFI$_9~$`$N$rHr$1$k$?$a$K!"$=$l$N%-%c%C%7%e\e(B
 \e$B$O%0%k!<%WL>$r0z?t$H$7$F8F$P$l$^$9!#\e(B
 
 \e$B;HMQ2DG=$J4{Dj4X?t$O\e(B:
-@table @code
 
+@table @code
 @item gnus-score-find-single
 @findex gnus-score-find-single
 \e$B%0%k!<%W<+?H$N%9%3%"%U%!%$%k$@$1$rE,MQ$7$^$9!#\e(B
@@ -15621,8 +15539,8 @@ Gnus \e$B$O0lHLE*$J%9%3%"%U%!%$%k$rFCDj$N%9%3%"%U%!%$%k8~$1$N$b$N$h$jA0$KE,\e(B
 \e$B$O\e(B @file{all.SCORE} \e$B$N$h$&$J%9%3%"%U%!%$%k$r;}$D;v$O$G$-$J$$$1$l$I!"\e(B
 @file{SCORE}, @file{comp.SCORE} \e$B$H\e(B @file{comp.emacs.SCORE} \e$B$r!"$=$l$>$l\e(B
 \e$B$N%5!<%P!<$KBP$7$F;}$D;v$,$G$-$k$H$$$&;v$G$9!#\e(B
-
 @end table
+
 \e$B$3$NJQ?t$O4X?t$N%j%9%H$G$"$k;v$b$G$-$^$9!#$=$N>l9g$O!"$3$l$i$NA4$F$N4X?t\e(B
 \e$B$,%0%k!<%WL>$r0z?t$H$7$F8F$P$l!"%9%3%"%U%!%$%k$NJV$5$l$?A4$F$N%j%9%H$,E,\e(B
 \e$BMQ$5$l$^$9!#$3$l$i$N4X?t$OD>@\%9%3%"O"A[%j%9%H$N%j%9%H$rJV$9;v$b$G$-$^$9!#\e(B
@@ -15661,7 +15579,6 @@ Gnus \e$B$O0lHLE*$J%9%3%"%U%!%$%k$rFCDj$N%9%3%"%U%!%$%k8~$1$N$b$N$h$jA0$KE,\e(B
 \e$B$N$?$a$KC1=c2=$5$l$^$9\e(B---\e$B8=:_$N\e(B gnus-simplify-subject-functions \e$B$NCM$K$h$C\e(B
 \e$B$F!#%9%3%"EPO?$,\e(B @code{\e$BJ8;zNsItJ,\e(B} \e$B$+\e(B @code{\e$B@53N$J\e(B} \e$B9gCW$r;H$C$F$$$k$H!"\e(B
 \e$B9gCW$b$3$NJ}K!$GC1=c2=$5$l$^$9!#\e(B
-
 @end table
 
 @node Score File Format
@@ -15708,7 +15625,6 @@ Gnus \e$B$O0lHLE*$J%9%3%"%U%!%$%k$rFCDj$N%9%3%"%U%!%$%k8~$1$N$b$N$h$jA0$KE,\e(B
 \e$B$3$NO"A[%j%9%H$G$OO;$D$N%-!<$r;H$&;v$,$G$-$^$9!#\e(B
 
 @table @code
-
 @item \e$BJ8;zNs\e(B (STRING)
 \e$B$b$7%-!<$,J8;zNs$G$"$k$H!"$=$l$O9gCW$,<B9T$5$l$k%X%C%@!<$NL>A0$G$9!#%9%3\e(B
 \e$B%"$O$3$l$i$NH,$D$N%X%C%@!<$@$1$K<B9T$5$l$^$9\e(B: @code{From}, @code{Subject}, @code{References}, @code{Message-ID}, @code{Xref}, @code{Lines}, @code{Chars}@code{Date} \e$B$G\e(B
@@ -15751,7 +15667,6 @@ Gnus \e$B$O0lHLE*$J%9%3%"%U%!%$%k$rFCDj$N%9%3%"%U%!%$%k8~$1$N$b$N$h$jA0$KE,\e(B
 \e$B$rD4$Y$k$N$K$I$N4X?t$,;H$o$l$k$Y$-$G$"$k$+$r;XDj$7$^$9!#\e(B
 
 @table @dfn
-
 @item From, Subject, References, Xref, Message-ID
 \e$B$?$$$F$$$N%X%C%@!<$N7?$KBP$7$F!"\e(B@code{r} \e$B$H\e(B @code{R} (\e$B@55,I=\e(B
 \e$B8=\e(B) (regexp) \e$B$d!"\e(B@code{s} \e$B$H\e(B @code{S} (\e$BJ8;zNs$N0lIt\e(B) (substring) \e$B7?!"\e(B
@@ -15942,7 +15857,6 @@ ignore)} \e$B$rE,1~%9%3%"$r$7$?$/$J$$%0%k!<%W$KA^F~$9$k$G$7$g$&!#>/$7$N%0%k!<\e(B
 \e$B2C$NL?Na$,B8:_$7$^$9\e(B:
 
 @table @kbd
-
 @item C-c C-c
 @kindex C-c C-c (\e$B%9%3%"\e(B)
 @findex gnus-score-edit-done
@@ -15963,7 +15877,6 @@ ignore)} \e$B$rE,1~%9%3%"$r$7$?$/$J$$%0%k!<%W$KA^F~$9$k$G$7$g$&!#>/$7$N%0%k!<\e(B
 \e$B%$%k$NFb$N0l$D$rFI$_$?$$$H;W$C$F$$$k$N$G$"$l$P!"$^$:\e(B @dfn{\e$BAGE($JI=<(\e(B} \e$B$r\e(B
 \e$B$7$?$$$G$7$g$&!#$3$NL?Na\e(B (@code{gnus-score-pretty-print}) \e$B$,$"$J$?$N$?$a\e(B
 \e$B$K$=$l$r$7$^$9!#\e(B
-
 @end table
 
 \e$B$3$N%b!<%I$r;H$&$?$a$K$O\e(B @kbd{M-x gnus-score-mode} \e$B$HBG$C$F$/$@$5$$!#\e(B
@@ -16203,7 +16116,6 @@ gnus \e$B$O%0%k!<%WL>$NA4$F$N8l$K$D$$$F!"C18lE,1~@-%9%3%"$r$7$^$;$s!#$[$H$s\e(B
 @findex gnus-current-home-score-file
 ``\e$B8=:_$N\e(B'' \e$BI8=`%9%3%"%U%!%$%k$rJV$7$^$9!#$3$l$O%9%3%"L?Na$K%9%3%"%U%!%$\e(B
 \e$B%k$N\e(B ``\e$B:GFbIt\e(B'' \e$B9gCW$X$NEPO?$r2C$($k$h$&$K$7$^$9!#\e(B
-
 @end table
 
 \e$B$b$7\e(B @samp{emacs} \e$B%0%k!<%WMQ$N%9%3%"%U%!%$%k$H!"$=$l$H$OJL\e(B
@@ -16241,7 +16153,6 @@ Gnus \e$B$O8=:_$N%P%C%U%!!<$+$i\e(B @code{Message-ID} \e$B%X%C%@!<$r8+$D$1=P$9$?$a$
 \e$B$-$K$H$F$bJXMx$G$9$M!#\e(B
 
 @table @code
-
 @item gnus-score-followup-article
 @findex gnus-score-followup-article
 \e$B$3$l$O$"$J$?<+?H$N5-;v$KD>@\%U%)%m!<%"%C%W$7$?5-;v$K%9%3%"$r2C;;$7$^$9!#\e(B
@@ -16285,7 +16196,6 @@ Gnus \e$B$O8=:_$N%P%C%U%!!<$+$i\e(B @code{Message-ID} \e$B%X%C%@!<$r8+$D$1=P$9$?$a$
 @cindex scoring tips
 
 @table @dfn
-
 @item \e$B%/%m%9%]%9%H\e(B
 @cindex crossposts
 @cindex scoring crossposts
@@ -16358,13 +16268,13 @@ Gnus \e$B$O8=:_$N%P%C%U%!!<$+$i\e(B @code{Message-ID} \e$B%X%C%@!<$r8+$D$1=P$9$?$a$
 
 \e$B4V0c$$$J$/!"B>$N%K%e!<%9%j!<%@!<$O\e(B ``\e$B%0%m!<%P%k:o=|%U%!%$\e(B
 \e$B%k\e(B (global kill file)'' \e$B$r;}$C$F$$$^$9!#$3$l$OIaDL!"A4$F$N%0%k!<%W$KE,MQ\e(B
-\e$B$5$l$k!"%f!<%6!<$N%[!<%`%G%#%l%/%H%j!<$K3JG<$5$l$F$$$k0l$D$N:o=|%U%!%$%k\e(B
-\e$B0J>e$N2?J*$G$b$"$j$^$;$s!#$O$s\e(B! \e$B$A$C$]$1$J%K%e!<%9%j!<%@!<$@$M!#<e$9$.!#\e(B
+\e$B$5$l$k!"%f!<%6$N%[!<%`%G%#%l%/%H%j!<$K3JG<$5$l$F$$$k0l$D$N:o=|%U%!%$%k0J\e(B
+\e$B>e$N2?J*$G$b$"$j$^$;$s!#$O$s\e(B! \e$B$A$C$]$1$J%K%e!<%9%j!<%@!<$@$M!#<e$9$.!#\e(B
 
 \e$BKM$,$3$3$GOC$7$F$$$k$N$O%0%m!<%P%k%9%3%"%U%!%$%k$G$9!#A4@$3&Cf$+$i$N!";j\e(B
-\e$B$k=j$+$i$N%f!<%6!<$K$h$k%9%3%"%U%!%$%k!"@$3&$N9q!9$rA4$F!"5pBg$J0l$D$N9,\e(B
-\e$B$;$J%9%3%"%U%!%$%kF1LA$KCD7k$5$;$k%9%3%"%U%!%$%k\e(B !Ange-score! \e$B?7$7$/$F%F\e(B
-\e$B%9%H$7$F$$$J$$\e(B!
+\e$B$k=j$+$i$N%f!<%6$K$h$k%9%3%"%U%!%$%k!"@$3&$N9q!9$rA4$F!"5pBg$J0l$D$N9,$;\e(B
+\e$B$J%9%3%"%U%!%$%kF1LA$KCD7k$5$;$k%9%3%"%U%!%$%k\e(B !Ange-score! \e$B?7$7$/$F%F%9\e(B
+\e$B%H$7$F$$$J$$\e(B!
 
 @vindex gnus-global-score-files
 \e$BB>$N?M$N%9%3%"%U%!%$%k$r;H$&$?$a$K$7$J$1$l$P$J$i$J$$$3$H$O!"\e(B
@@ -16464,7 +16374,6 @@ Gnus \e$B$O$^$@!"$"$N$&$6$C$?$$8E$$>C5n%U%!%$%k$r%5%]!<%H$7$F$$$^$9!#<B:]>C\e(B
 GNUS \e$B>C5n%U%!%$%k$rJT=8$9$k$?$a$NFs$D$N35N,%P%C%U%!4X?t$,$"$j$^$9!#\e(B
 
 @table @kbd
-
 @item M-k
 @kindex M-k (Summary)
 @findex gnus-summary-edit-local-kill
@@ -16480,7 +16389,6 @@ GNUS \e$B>C5n%U%!%$%k$rJT=8$9$k$?$a$NFs$D$N35N,%P%C%U%!4X?t$,$"$j$^$9!#\e(B
 \e$B>C5n%U%!%$%k$rJT=8$9$kFs$D$N%0%k!<%W%b!<%I4X?t$,$"$j$^$9!#\e(B
 
 @table @kbd
-
 @item M-k
 @kindex M-k (Group)
 @findex gnus-group-edit-local-kill
@@ -16521,7 +16429,6 @@ GNUS \e$B>C5n%U%!%$%k$rJT=8$9$k$?$a$NFs$D$N35N,%P%C%U%!4X?t$,$"$j$^$9!#\e(B
 @item gnus-kill-file-mode-hook
 @vindex gnus-kill-file-mode-hook
 \e$B>C5n%U%!%$%k%b!<%I%P%C%U%!Fb$G8F$S=P$5$l$k%U%C%/!#\e(B
-
 @end table
 
 @node Converting Kill Files
@@ -16579,7 +16486,6 @@ GroupLens \e$B$r;H$&$?$a$K$O!"%m!<%+%k$N\e(B Better Bit Berau (BBB) \e$B$KI.\e(B
 \e$BEPO?$7$?8e$G!"$$$/$D$+$NJQ?t$r@_Dj$9$kI,MW$,$"$j$^$9!#\e(B
 
 @table @code
-
 @item gnus-use-grouplens
 @vindex gnus-use-grouplens
 \e$B$3$NJQ?t$r\e(B @code{nil} \e$B$G$J$$CM$K@_Dj$9$k$H!"\e(BGnus \e$B$,A4$F$N\e(B GroupLens \e$B4XO"\e(B
@@ -16593,7 +16499,6 @@ GroupLens \e$B$r;H$&$?$a$K$O!"%m!<%+%k$N\e(B Better Bit Berau (BBB) \e$B$KI.\e(B
 @item grouplens-newsgroups
 @vindex grouplens-newsgroups
 GroupLens \e$B$NM=8@$rF@$?$$$H;W$&%0%k!<%W$N%j%9%H$G$9!#\e(B
-
 @end table
 
 \e$B$3$l$,5/$->e$,$C$F\e(B GroupLens \e$B$r<B9T$9$k$?$a$KI,MW$J:GDc8B$N@_Dj$G$9!#0l\e(B
@@ -16615,7 +16520,6 @@ GroupLens \e$B$G$O!"5-;v$O\e(B 1 \e$B$+$i\e(B 5 \e$B$^$G$G$=$l$r4^$s$@HO0O$GCM$rIU$1$
 GroupLens \e$B$G!"5-;v$NCM$rEPO?$9$k$?$a$N;M$D$NJ}K!$,$"$j$^$9!#\e(B
 
 @table @kbd
-
 @item r
 @kindex r (GroupLens)
 @findex bbb-summary-rate-article
@@ -16627,14 +16531,12 @@ GroupLens \e$B$G!"5-;v$NCM$rEPO?$9$k$?$a$N;M$D$NJ}K!$,$"$j$^$9!#\e(B
 \e$B$3$N4X?t$OCMIU$1$NF~NO$rB%?J$7!"%9%l%C%I$NA4$F$N5-;v$rCMIU$1$^$9!#$3$l\e(B
 \e$B$O\e(B rec.humor \e$B$K$"$k$h$&$J$"$ND9$$4VB3$/%9%l%C%I$KBP$7$FHs>o$KLr$KN)$A$^\e(B
 \e$B$9!#\e(B
-
 @end table
 
 \e$B<!$NFs$D$NL?Na!"\e(B@kbd{n} \e$B$H\e(B @kbd{,} \e$B$O!"$"$J$?$,FI$s$G$$$k5-;v$N%9%3%"$K\e(B
 \e$B$J$k?tCM@\F,0z?t$r$H$j$^$9!#\e(B
 
 @table @kbd
-
 @item 1-5 n
 @kindex n (GroupLens)
 @findex grouplens-next-unread-article
@@ -16644,7 +16546,6 @@ GroupLens \e$B$G!"5-;v$NCM$rEPO?$9$k$?$a$N;M$D$NJ}K!$,$"$j$^$9!#\e(B
 @kindex , (GroupLens)
 @findex grouplens-best-unread-article
 \e$B5-;v$NCM$rIU$1$F<!$N0lHV9b$$%9%3%"$NL$FI5-;v$K0\F0$7$^$9!#\e(B
-
 @end table
 
 \e$B$b$78=:_$N5-;v$K%9%3%"\e(B 4 \e$B$rIU$1!"<!$N5-;v$K0\F0$7$?$$$N$G$"$l$P!"\e(B
@@ -16699,14 +16600,12 @@ grouplens \e$B$GM=8@$rI=<($9$k$?$a$K;0$D$NJ}K!$,$"$j$^$9!#\e(BGroupLens \e$B$N%9%3%
 
 @item confidence-plus-minus
 \e$BM=8@$N\e(B +/- \e$B3N?.$G$9!#\e(B
-
 @end table
 
 @node GroupLens Variables
 @subsection GroupLens \e$BJQ?t\e(B
 
 @table @code
-
 @item gnus-summary-grouplens-line-format
 GropuLens \e$B3HD%$N35N,%P%C%U%!$G;H$o$l$k35N,9TMM<0$G$9!#IaDL$N35N,9TMM<0$,\e(B
 \e$B<u$1IU$1$k$b$N$HF1$8;XDj$r<u$1IU$1$^$9\e(B (@pxref{Summary Buffer Lines})\e$B!#\e(B
@@ -16726,7 +16625,6 @@ bbbd \e$B%5!<%P!<$,<B9T$5$l$F$$$k%[%9%H$N%]!<%H$G$9!#=i4|CM$O\e(B 9000 \e$B$G$9!#\e(
 @item grouplens-score-scale-factor
 \e$BMxMQ<T$O$3$NJQ?t$r;H$C$F\e(B GroupLens \e$B$N%9%3%"$r3HBg$9$k;v$,$G$-$^$9!#3]$1\e(B
 \e$B;;$NMWAG$O:9$70z$-$N8e$KE,MQ$5$l$^$9!#=i4|CM$O\e(B 1 \e$B$G$9!#\e(B
-
 @end table
 
 @node Advanced Scoring
@@ -16777,7 +16675,6 @@ bbbd \e$B%5!<%P!<$,<B9T$5$l$F$$$k%[%9%H$N%]!<%H$G$9!#=i4|CM$O\e(B 9000 \e$B$G$9!#\e(
 @itemx \e,A,\e(B
 \e$B$3$NO@M}:nMQ;R$OC10l$N0z?t$N$_$r$H$j$^$9!#$=$l$O$=$N0z?t$NCM$NO@M}H]Dj$r\e(B
 \e$BJV$7$^$9!#\e(B
-
 @end table
 
 \e$B0z?t$r%9%3%"IU$1$5$l$F$$$k8=:_$N5-;v$NAD@h$KE,MQ$9$k\e(B @dfn{\e$B4V@\:nMQ;R\e(B} \e$B$,\e(B
@@ -17019,7 +16916,6 @@ Gnus \e$B$O0lF|$K0l2s%9%3%"$rIeGT$5$;$h$&$H$7$^$9!#Nc$($P!"$b$7\e(B gnus \e$B$r;MF|
 @cindex interaction
 
 @table @code
-
 @item gnus-novice-user
 @vindex gnus-novice-user
 \e$B$b$7$3$NJQ?t$,\e(B @code{nil} \e$B$G$J$$$H!"$"$J$?$O\e(B Usenet \e$B$N@$3&$K?7$7$/F~$C$F\e(B
@@ -17697,13 +17593,11 @@ The GNU Emacs Lisp Reference Manual}. XEmacs \e$B$G$O!"%U%l!<%`%W%m%Q%F%#%j\e(B
 \e$B$3$l$O\e(B gnus \e$B$G%^%&%9$N%O%$%i%$%H$K;H$o$l$k%U%'%$%9\e(B (\e$B$9$J$o$A!"%U%)%s\e(B
 \e$B%H\e(B) \e$B$G$9!#\e(B@code{gnus-visual} \e$B$,\e(B @code{nil} \e$B$G$"$k$H!"%^%&%9%O%$%i%$%H$O\e(B
 \e$B$J$5$l$^$;$s!#\e(B
-
 @end table
 
 \e$BA4$/0c$C$?%a%K%e!<$r:n@.$9$k$?$a$K4XO"$9$k%U%C%/$,$"$j$^$9\e(B:
 
 @table @code
-
 @item gnus-article-menu-hook
 @vindex gnus-article-menu-hook
 \e$B5-;v%b!<%I\e(B (article mode) \e$B%a%K%e!<$r:n@.$7$?8e$K8F$P$l$k%U%C%/$G$9!#\e(B
@@ -17727,7 +17621,6 @@ The GNU Emacs Lisp Reference Manual}. XEmacs \e$B$G$O!"%U%l!<%`%W%m%Q%F%#%j\e(B
 @item gnus-score-menu-hook
 @vindex gnus-score-menu-hook
 \e$B%9%3%"%b!<%I\e(B (score mode) \e$B%a%K%e!<$r:n@.$7$?8e$K8F$P$l$k%U%C%/$G$9!#\e(B
-
 @end table
 
 @node Buttons
@@ -17751,7 +17644,6 @@ The GNU Emacs Lisp Reference Manual}. XEmacs \e$B$G$O!"%U%l!<%`%W%m%Q%F%#%j\e(B
 \e$BCm\e(B: carpal \e$B$H$O<j<s$N9|$N$3$H\e(B)
 
 @table @code
-
 @item gnus-carpal-mode-hook
 @vindex gnus-carpal-mode-hook
 \e$BA4$F$N<j<s%b!<%I%P%C%U%!$G<B9T$9$k%U%C%/!#\e(B
@@ -17990,7 +17882,6 @@ NoCeM \e$B%a%C%;!<%8$rH/9T$9$k?M$O$?$/$5$s$$$^$9!#$3$N%j%9%H$G$O!"C/$N8@$&$3\e(B
 \e$BHs\e(B@code{nil} \e$B$G!"A4$F$N\e(B NoCeM \e$B%0%k!<%W$K$*$1$k%A%'%C%/$9$k5-;v$N:GBg?t$r\e(B
 \e$B;XDj$7$^$9!#\e(BNoCeM \e$B%0%k!<%W$O5pBg$K$J$k$3$H$,$"$j!"$=$&$J$k$H=hM}$,$H$F$b\e(B
 \e$BCY$/$J$j$^$9!#\e(B
-
 @end table
 
 NoCeM \e$B$r;H$&$H!"$b$7$+$9$k$H%a%b%j6t$$$K$J$k$+$b$7$l$^$;$s!#$"$J$?$,$?$/\e(B
@@ -18201,7 +18092,6 @@ Gnus \e$B$O!"%0%k!<%W$d5-;v$KF~$C$?$j=P$?$j$9$k$N$K=>$C$F\e(B picon \e$B$rI=<($9$k$
 \e$B$"$j$^$9!#\e(B
 
 @table @code
-
 @item gnus-picons-database
 @vindex gnus-picons-database
 picon \e$B%G!<%?%Y!<%9$N>l=j!#\e(B@file{news}, @file{domains}, @file{users} (\e$B$J\e(B
@@ -18230,7 +18120,6 @@ picon \e$B2hA|$,I=<($5$l$k>l=j!#$3$l$O=i4|@_Dj$G$O\e(B @code{picons} \e$B$G$9\e(B (\e
 @item gnus-picons-group-excluded-groups
 @vindex gnus-picons-group-excluded-groups
 \e$B$3$N@55,I=8=$K%^%C%A$9$k%0%k!<%W$G$O$=$N%0%k!<%W%"%$%3%s$rI=<($5$;$^$;$s!#\e(B
-
 @end table
 
 \e$BCm0U\e(B: \e$B$b$7\e(B @code{gnus-use-picons} \e$B$r\e(B @code{t} \e$B$K@_Dj$9$k$H!"AkG[CV\e(B
@@ -18240,6 +18129,7 @@ picon \e$B2hA|$,I=<($5$l$k>l=j!#$3$l$O=i4|@_Dj$G$O\e(B @code{picons} \e$B$G$9\e(B (\e
 \e$B2<$N4X?t$rE,@Z$J%U%C%/$KDI2C$9$kI,MW$,$"$j$^$9!#\e(B
 
 @vindex gnus-picons-display-where
+
 @table @code
 @item gnus-article-display-picons
 @findex gnus-article-display-picons
@@ -18249,7 +18139,6 @@ picon \e$B2hA|$,I=<($5$l$k>l=j!#$3$l$O=i4|@_Dj$G$O\e(B @code{picons} \e$B$G$9\e(B (\e
 @item gnus-picons-article-display-x-face
 @findex gnus-article-display-picons
 X-Face \e$B%X%C%@!<$,$"$l$P$=$l$rI|9f2=$7I=<($7$^$9!#\e(B
-
 @end table
 
 @node Picon Useless Configuration
@@ -18265,7 +18154,6 @@ X-Face \e$B%X%C%@!<$,$"$l$P$=$l$rI|9f2=$7I=<($7$^$9!#\e(B
 \e$B$bN)$?$J$$$I$&$G$b$h$$$3$H$r@)8f$G$-$k$h$&$K$7$^$9!#\e(B
 
 @table @code
-
 @item gnus-picons-news-directories
 @vindex gnus-picons-news-directories
 @code{gnus-picons-database} \e$B$+$i%K%e!<%9%0%k!<%W%U%'%$%9$rC5$9$?$a$N%5%V\e(B
@@ -18348,7 +18236,6 @@ Gnus \e$B$r=*N;$9$k$H$-$K\e(B picon \e$B%-%c%C%7%e$r>C$75n$k$+$I$&$+!#\e(BGnus \e$B$O
 \margindex{}
 @end iflatex
 @end iftex
-
 @end table
 
 @node Smileys
@@ -18395,7 +18282,6 @@ Gnus \e$B$r=*N;$9$k$H$-$K\e(B picon \e$B%-%c%C%7%e$r>C$75n$k$+$I$&$+!#\e(BGnus \e$B$O
 \e$B$&$+$H!"$=$NB>$N$b$N$r%+%9%?%^%$%:$7$^$9!#\e(B
 
 @table @code
-
 @item smiley-data-directory
 @vindex smiley-data-directory
 \e$B%9%^%$%j!<$,4i%U%!%$%k$rC5$9>l=j!#\e(B
@@ -18419,14 +18305,12 @@ Gnus \e$B$r=*N;$9$k$H$-$K\e(B picon \e$B%-%c%C%7%e$r>C$75n$k$+$I$&$+!#\e(BGnus \e$B$O
 @item smiley-mouse-face
 @vindex smiley-mouse-face
 \e$B%^%&%9$G6/D4I=<($7$?$H$-$N4i!#\e(B
-
 @end table
 
 @node Toolbar
 @subsection \e$B%D!<%k%P!<\e(B
 
 @table @code
-
 @iftex
 @iflatex
 \margindex{}
@@ -18450,7 +18334,6 @@ Gnus \e$B$r=*N;$9$k$H$-$K\e(B picon \e$B%-%c%C%7%e$r>C$75n$k$+$I$&$+!#\e(BGnus \e$B$O
 @item gnus-summary-mail-toolbar
 @vindex gnus-summary-mail-toolbar
 \e$B%a!<%k%0%k!<%W$N35N,%P%C%U%!Fb$N%D!<%k%P!<!#\e(B
-
 @end table
 
 @node XVarious
@@ -18484,7 +18367,6 @@ Gnus \e$B$r=*N;$9$k$H$-$K\e(B picon \e$B%-%c%C%7%e$r>C$75n$k$+$I$&$+!#\e(BGnus \e$B$O
 \margindex{}
 @end iflatex
 @end iftex
-
 @end table
 
 @node Fuzzy Matching
@@ -18604,7 +18486,6 @@ Gnus \e$B$O!"%9%3%"IU$1!"%9%l%C%I$N7A@.!"%9%l%C%IHf3S$J$I$r9T$&$H$-$K!"\e(B
 @cindex highlights
 
 @table @code
-
 @item gnus-home-directory
 \e$BA4$F$N\e(B gnus \e$B$N%Q%9JQ?t$O$3$NJQ?t$K$h$C$F=i4|2=$5$l$^$9!#$=$N=i4|@_DjCM\e(B
 \e$B$O\e(B @file{~/} \e$B$G$9!#\e(B
@@ -18703,7 +18584,6 @@ Gnus \e$B$O!"%9%3%"IU$1!"%9%l%C%I$N7A@.!"%9%l%C%IHf3S$J$I$r9T$&$H$-$K!"\e(B
 \e$B$D$+$N\e(B @strong{\e$BK\Ev$K\e(B} \e$B;H$($J$$%0%k!<%WL>$rJa$^$($^$9!#\e(B
 
 @sc{imap} \e$B%f!<%6$O%0%k!<%WL>$K\e(B @samp{/} \e$B$r;H$$$?$$$H;W$&$G$7$g$&$1$l$I!#\e(B
-
 @end table
 
 @node The End
@@ -18960,7 +18840,6 @@ Gnus \e$B$OA4$F$N\e(B @sc{gnus} \e$B5/F0%U%!%$%k$rM}2r$7$^$9!#\e(B
 \e$B$^$9$,!#\e(B
 
 @table @strong
-
 @item RFC 822
 @cindex RFC 822
 \e$B$3$NI8=`$X$NCN$i$l$F$$$k0cH?$O$"$j$^$;$s!#\e(B
@@ -18974,7 +18853,6 @@ Gnus \e$B$OA4$F$N\e(B @sc{gnus} \e$B5/F0%U%!%$%k$rM}2r$7$^$9!#\e(B
 \e$B$3$l$K$O$$$/$D$+$N0cH?$,$"$j$^$9!#\e(B
 
 @table @emph
-
 @item X-Newsreader
 @item User-Agent
 \e$B$3$l$O\e(B ``\e$B$D$^$i$J$$%X%C%@!<\e(B'' \e$B$H9M$($i$l$F$$$^$9$,!";d$O>CHq<T$N>pJs$G$"\e(B
@@ -18991,7 +18869,6 @@ RFC 1036 \e$B$N8e7Q$H$7$F=q$$$F$$$k$b$N$G$9!#%K%e!<%95-;v$NMM<0$KBP$7$F!"$$\e(B
 \e$B$m$$$m$JJQ99$rDs0F$7$?\e(B draft \e$B$r:n@.$7$^$7$?!#\e(BGnus \e$B%?%o!<\e(B
 \e$B$O\e(B draft \e$B$,\e(B RFC \e$B$H$7$FG'$a$i$l$?$H$-$KJQ99$N<BAu$rD4$Y$k$3$H$K$J$k$G$7$g\e(B
 \e$B$&!#\e(B
-
 @end table
 
 \e$B>e$K=q$+$l$F$$$kJ8>O$K4X$9$k;v$G!"\e(BGnus \e$B$,$=$l$rK~$?$7$F$$$J$$$h$&$JF0:n\e(B
@@ -20182,8 +20059,8 @@ nnweb \e$B$O:F$S2~:n$5$l!">o$KJQ2=$9$k9=@.$rB3$1$^$9!#\e(B
 @section \e$BMQ8l\e(B
 
 @cindex terminology
-@table @dfn
 
+@table @dfn
 @item \e$B%K%e!<%9\e(B (news)
 @cindex news
 \e$B$3$l$O$"$J$?$,$=$N$?$a$K$3$N$b$N$r;H$$$?$$$H;W$C$F$$$k$b$N$G$9\e(B---\e$B%K%e!<\e(B
@@ -20358,7 +20235,6 @@ Gnus \e$B$,%0%k!<%W$KF~$k$H!"%0%k!<%W$NA4$F$NL$FI5-;v$N%X%C%@!<$r%P%C%/%(%s\e(B
 @cindex digest
 \e$BJ#?t$N%a%C%;!<%8$r0l$D$N%U%!%$%k$K=8$a$?$b$N$G$9!#$b$C$H$bIaDL$N=8G[MM<0\e(B
 \e$B$O\e(B RFC1153 \e$B$G;XDj$5$l$F$$$^$9!#\e(B
-
 @end table
 
 @page
@@ -20386,7 +20262,6 @@ Gnus \e$B$,%0%k!<%W$KF~$k$H!"%0%k!<%W$NA4$F$NL$FI5-;v$N%X%C%@!<$r%P%C%/%(%s\e(B
 \e$BF@$9$k%G!<%?$NAmNL$r8:$i$7$?$$$H;W$&$G$7$g$&!#\e(B
 
 @table @code
-
 @item gnus-read-activie-file
 \e$B$3$l$r\e(B @code{nil} \e$B$K$7$F2<$5$$!#$=$&$9$l$P!"\e(Bgnus \e$B$K%5!<%P!<$+$i%"%/%F%#\e(B
 \e$B%V%U%!%$%kA4BN$rMW5a$9$k;v$r6X;_$G$-$^$9!#$3$N%U%!%$%k$O$7$P$7$PHs>o$KBg\e(B
@@ -20411,7 +20286,6 @@ Gnus \e$B$,%0%k!<%W$KF~$k$H!"%0%k!<%W$NA4$F$NL$FI5-;v$N%X%C%@!<$r%P%C%/%(%s\e(B
 \e$B$G$7$g$&!#\e(B
 
 @table @code
-
 @item gnus-auto-center-summary
 Gnus \e$B$,>o$K35N,%P%C%U%!$rCf?4:F@_Dj$r$9$k$3$H$r6X;_$9$k$?$a$K$3$l\e(B
 \e$B$r\e(B @code{nil} \e$B$K@_Dj$7$F2<$5$$!#$3$l$,\e(B @code{vertical} \e$B$G$"$k$H!"?bD>J}\e(B
@@ -20454,7 +20328,6 @@ Gnus \e$B$,>o$K35N,%P%C%U%!$rCf?4:F@_Dj$r$9$k$3$H$r6X;_$9$k$?$a$K$3$l\e(B
 \e$B$-$O$=$NBg$-$5$r>/$7>.$5$/$7$?$$$H;W$&$G$7$g$&!#\e(B
 
 @table @code
-
 @item gnus-save-newsrc-file
 \e$B$3$l$,\e(B @code{nil} \e$B$G$"$k$H!"\e(Bgnus \e$B$O7h$7$F\e(B @file{.newsrc} \e$B$rJ]B8$7$^$;\e(B
 \e$B$s\e(B---\e$B$=$l$O\e(B @file{.newsrc.eld} \e$B$N$_$rJ]B8$7$^$9!#$3$l$O!"\e(Bgnus \e$B$NB>$N%K%e!<\e(B
@@ -20471,7 +20344,6 @@ Gnus \e$B$,>o$K35N,%P%C%U%!$rCf?4:F@_Dj$r$9$k$3$H$r6X;_$9$k$?$a$K$3$l\e(B
 @code{gnus-check-new-newsgroups} \e$B$r\e(B @code{ask-server} \e$B$K!"\e(B
 @code{gnus-check-bogus-newsgroups} \e$B$r\e(B @code{nil} \e$B$K@_Dj$9$k$Y$-$G$7$g$&!#\e(B
 \e$B$3$NJQ?t$O=i4|@_Dj$G\e(B @code{t} \e$B$G$9!#\e(B
-
 @end table
 
 @node Slow Machine
@@ -20605,7 +20477,6 @@ gnus \e$B$H$=$N%P%C%/%(%s%I4V$N%$%s%?!<%U%'!<%9\e(B (\e$B$3$l$O40A4$K5-=R$5$l$F$$\e(
 \e$B$N$N0lMw$G$9!#\e(B
 
 @table @code
-
 @item gnus-newsgroup-name
 @vindex gnus-newsgroup-name
 \e$B$3$NJQ?t$O8=:_$N%K%e!<%9%0%k!<%W$NL>A0$rJ];}$7$F$$$^$9!#\e(B
@@ -20709,7 +20580,6 @@ Gnus \e$B=*N;;~$K>C5n$9$k%P%C%U%!$N0lMw$K8=:_$N%P%C%U%!$rDI2C$7$^$9!#\e(B
 @item gnus-read-method
 @findex gnus-read-method
 \e$BMxMQ<T$KA*BrJ}K!$r%W%m%s%W%HF~NO$7$F$b$i$$$^$9!#\e(B
-
 @end table
 
 @node Backend Interface
@@ -20781,7 +20651,6 @@ Gnus \e$B$,%P%C%/%(%s%I\e(B --- \e$BNc$($P\e(B @code{nntp} --- \e$B$K2?$+$N>pJs$rMW5a
 @subsubsection \e$BI,?\%P%C%/%(%s%I4X?t\e(B
 
 @table @code
-
 @item (nnchoke-retrieve-headers ARTICLES &optional GROUP SERVER FETCH-OLD)
 
 @var{articles} \e$B$O5-;vHV9f$NHO0O$+$"$k$$$O\e(B @code{Message-ID} \e$B$N%j%9%H$G$9!#\e(B
@@ -20979,14 +20848,12 @@ flags       = "n" / "y" / "m" / "x" / "j" / "=" name
 \e$B$KCN$i$;$k8+D%$j4X?t$N$h$&$J$b$N$r@_Dj$9$k$Y$-$G$7$g$&!#\e(B
 
 \e$B$3$N4X?t$+$iJV$5$l$k7k2L$N%G!<%?$O$"$j$^$;$s!#\e(B
-
 @end table
 
 @node Optional Backend Functions
 @subsubsection \e$BG$0U%P%C%/%(%s%I4X?t\e(B
 
 @table @code
-
 @item (nnchoke-retrieve-groups GROUPS &optional SERVER)
 
 @var{groups} \e$B$O%0%k!<%W$N%j%9%H$G$"$j!"$3$N4X?t$O$=$l$iA4It$N%0\e(B
@@ -21192,7 +21059,6 @@ description-buffer = *description-line
 @var{group} \e$BFb$K$"$k5-;v$OA4$F\e(B @var{new-name} \e$B$K0\F0$7$^$9!#\e(B
 
 \e$BJV$5$l$k7k2L$N%G!<%?$O$"$j$^$;$s!#\e(B
-
 @end table
 
 @node Error Messaging
@@ -21244,7 +21110,6 @@ description-buffer = *description-line
 \e$B$l$P$J$j$^$;$s!#\e(B
 
 @table @code
-
 @item nnoo-declare
 \e$B$3$N%^%/%m$O!":G=i$N0z?t$r!"$=$N8e$KB3$/0z?t$N;R6!$G$"$k$3$H$r@k8@$7$^$9!#\e(B
 \e$BNc$($P!"\e(B
@@ -21319,7 +21184,6 @@ description-buffer = *description-line
 \e$B$3$l$O!"\e(B@code{nndir-request-list} \e$B$X$N8F$S=P$7$OC1\e(B
 \e$B$K\e(B @code{nnmh-request-list} \e$B$K0z$-EO$5$l!"0lJ}!"\e(B@code{nnml} \e$B$N8x3+4X?t$G\e(B
 \e$B$^$@\e(B @code{nndir} \e$B$GDj5A$5$l$F$$$J$$$b$N$r$3$3$GDj5A$7$^$9!#\e(B
-
 @end table
 
 \e$B0J2<$O\e(B @code{nndir} \e$B%P%C%/%(%s%I$N$A$g$C$HC;=L$7$?HG$G$9!#\e(B
index c9bee35..420f8f3 100644 (file)
 
 \thispagestyle{empty}
 
-Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000 
+Copyright \copyright{} 1995, 1996, 1997, 1998, 1999, 2000
 Free Software Foundation, Inc.
 
 
@@ -639,7 +639,7 @@ Getting News
 
 Getting Mail
 
-* Mail in a Newsreader::         Important introductory notes.  
+* Mail in a Newsreader::         Important introductory notes.
 * Getting Started Reading Mail:: A simple cookbook example.
 * Splitting Mail::               How to create mail groups.
 * Mail Sources::                 How to tell Gnus where to get mail from.
@@ -1202,7 +1202,7 @@ Kill all new groups.
 
 @item gnus-subscribe-topics
 @vindex gnus-subscribe-topics
-Put the groups into the topic that has a matching @code{subscribe} topic 
+Put the groups into the topic that has a matching @code{subscribe} topic
 parameter (@pxref{Topic Parameters}).  For instance, a @code{subscribe}
 topic parameter that looks like
 
@@ -1210,7 +1210,7 @@ topic parameter that looks like
 "nnslashdot"
 @end example
 
-will mean that all groups that match that regex will be subscribed under 
+will mean that all groups that match that regex will be subscribed under
 that topic.
 
 If no topics match the groups, the groups will be subscribed in the
@@ -3574,10 +3574,10 @@ parameters:
 
 @table @code
 @item subscribe
-When subscribing new groups by topic (@pxref{Subscription Methods}), the 
-@code{subscribe} topic parameter says what groups go in what topic.  Its 
+When subscribing new groups by topic (@pxref{Subscription Methods}), the
+@code{subscribe} topic parameter says what groups go in what topic.  Its
 value should be a regexp to match the groups that should go in that
-topic. 
+topic.
 
 @end table
 
@@ -3693,7 +3693,7 @@ For example:
 
 @item gnus-group-name-charset-group-alist
 @vindex gnus-group-name-charset-group-alist
-An alist of regexp of group name and the charset for group names. 
+An alist of regexp of group name and the charset for group names.
 It is used to show non-ASCII group names.
 
 For example:
@@ -3990,7 +3990,7 @@ lines as a normal @code{format} string, with some extensions
 (@pxref{Formatting Variables}).
 
 There should always be a colon on the line; the cursor always moves to
-the colon after performing an operation. 
+the colon after performing an operation.
 
 The default string is @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n}.
 
@@ -4557,8 +4557,8 @@ If given a numerical prefix, you can do semi-manual charset stuff.
 encoded in the @code{cn-gb-2312} charset.  If you have
 
 @lisp
-(setq gnus-summary-show-article-charset-alist 
-      '((1 . cn-gb-2312) 
+(setq gnus-summary-show-article-charset-alist
+      '((1 . cn-gb-2312)
         (2 . big5)))
 @end lisp
 
@@ -6646,7 +6646,7 @@ a spool, you could
 
 @lisp
 (setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy
-(setq gnus-default-article-saver 
+(setq gnus-default-article-saver
       'gnus-summary-save-in-file) ; no encoding
 @end lisp
 
@@ -7525,7 +7525,7 @@ when filling.
 
 @item W Q
 @kindex W Q (Summary)
-@findex gnus-article-fill-long-lines 
+@findex gnus-article-fill-long-lines
 Fill long lines (@code{gnus-article-fill-long-lines}).
 
 @item W C
@@ -7563,7 +7563,7 @@ makes strings look like @samp{~@{<:Ky2;S@{#,NpJ)l6HK!#~@}}.
 @item W h
 @kindex W h (Summary)
 @findex gnus-article-wash-html
-Treat HTML (@code{gnus-article-wash-html}).  
+Treat HTML (@code{gnus-article-wash-html}).
 Note that the this is usually done automatically by Gnus if the message
 in question has a @code{Content-Type} header that says that this type
 has been done.
@@ -7620,8 +7620,8 @@ Add clickable buttons to the article headers
 @kindex W p (Summary)
 @findex gnus-article-verify-x-pgp-sig
 Verify a signed control message (@code{gnus-article-verify-x-pgp-sig}).
-Control messages such as @code{newgroup} and @code{checkgroups} are 
-usually signed by the hierarchy maintainer.  You need to add the PGP 
+Control messages such as @code{newgroup} and @code{checkgroups} are
+usually signed by the hierarchy maintainer.  You need to add the PGP
 public key of the maintainer to your keyring to verify the
 message.@footnote{PGP keys for many hierarchies are available at
 @uref{ftp://ftp.isc.org/pub/pgpcontrol/README.html}}
@@ -8666,7 +8666,7 @@ disk forever and ever, never to return again.'' Use with caution.
 @vindex gnus-preserve-marks
 Move the article from one mail group to another
 (@code{gnus-summary-move-article}).  Marks will be preserved if
-@var{gnus-preserve-marks} is non-@code{nil} (which is the default). 
+@var{gnus-preserve-marks} is non-@code{nil} (which is the default).
 
 @item B c
 @kindex B c (Summary)
@@ -9236,7 +9236,7 @@ Gnus is able to verify PGP or S/MIME signed messages or decrypt PGP
 encrypted messages.
 
 @enumerate
-@item 
+@item
 To verify or decrypt PGP messages, you have to install mailcrypt or
 gpg.el.
 
@@ -9566,7 +9566,7 @@ You can, of course, write your own functions to be called from
 @code{gnus-part-display-hook}.  The functions are called narrowed to the
 part, and you can do anything you like, pretty much.  There is no
 information that you have to keep in the buffer---you can change
-everything.  
+everything.
 
 
 @node Article Keymap
@@ -10471,25 +10471,30 @@ should probably look something like this:
 
 @lisp
 (nntp "firewall"
-      (nntp-address "the.firewall.machine")
-      (nntp-open-connection-function nntp-open-rlogin)
-      (nntp-end-of-line "\n")
-      (nntp-rlogin-parameters
-       ("telnet" "the.real.nntp.host" "nntp")))
+      (nntp-open-connection-function nntp-open-via-rlogin-and-telnet)
+      (nntp-via-address "the.firewall.machine")
+      (nntp-address "the.real.nntp.host")
+      (nntp-end-of-line "\n"))
 @end lisp
 
 If you want to use the wonderful @code{ssh} program to provide a
-compressed connection over the modem line, you could create a virtual
-server that would look something like this:
+compressed connection over the modem line, you could add the following
+configuration to the example above:
+
+@lisp
+      (nntp-via-rlogin-command "ssh")
+@end lisp
+
+If you're behind a firewall, but have direct access to the outside world
+through a wrapper command like "runsocks", you could open a socksified
+telnet connection to the news server as follows:
 
 @lisp
-(nntp "news"
-       (nntp-address "copper.uio.no")
-       (nntp-rlogin-program "ssh")
-       (nntp-open-connection-function nntp-open-rlogin)
-       (nntp-end-of-line "\n")
-       (nntp-rlogin-parameters
-        ("telnet" "news.uio.no" "nntp")))
+(nntp "outside"
+      (nntp-pre-command "runsocks")
+      (nntp-open-connection-function nntp-open-via-telnet)
+      (nntp-address "the.news.server")
+      (nntp-end-of-line "\n"))
 @end lisp
 
 This means that you have to have set up @code{ssh-agent} correctly to
@@ -10704,7 +10709,7 @@ manual page, but here are the salient facts:
 The file contains one or more line, each of which define one server.
 
 @item
-Each line may contain an arbitrary number of token/value pairs.  
+Each line may contain an arbitrary number of token/value pairs.
 
 The valid tokens include @samp{machine}, @samp{login}, @samp{password},
 @samp{default}.  In addition Gnus introduces two new tokens, not present
@@ -10763,7 +10768,7 @@ The default value is
 
 @lisp
 '(("nntpd 1\\.5\\.11t"
-   (remove-hook 'nntp-server-opened-hook 
+   (remove-hook 'nntp-server-opened-hook
                 'nntp-send-mode-reader)))
 @end lisp
 
@@ -10815,126 +10820,61 @@ no timeouts are done.
 This hook is run as the last step when connecting to an @sc{nntp}
 server.
 
-@findex nntp-open-rlogin
-@findex nntp-open-telnet
-@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.  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.
-
-@code{nntp-open-rlogin}-related variables:
-
-@table @code
-
-@item nntp-rlogin-program
-@vindex nntp-rlogin-program
-Program used to log in on remote machines.  The default is @samp{rsh},
-but @samp{ssh} is a popular alternative.
-
-@item nntp-rlogin-parameters
-@vindex nntp-rlogin-parameters
-This list will be used as the parameter list given to @code{rsh}.
-
-@item nntp-rlogin-user-name
-@vindex nntp-rlogin-user-name
-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
-@item nntp-telnet-command
-@vindex nntp-telnet-command
-Command used to start @code{telnet}.
-
-@item nntp-telnet-switches
-@vindex nntp-telnet-switches
-List of strings to be used as the switches to the @code{telnet} command.
-
-@item nntp-telnet-user-name
-@vindex nntp-telnet-user-name
-User name for log in on the remote system.
-
-@item nntp-telnet-passwd
-@vindex nntp-telnet-passwd
-Password to use when logging in.
-
-@item nntp-telnet-parameters
-@vindex nntp-telnet-parameters
-A list of strings executed as a command after logging in
-via @code{telnet}.
-
-@item nntp-telnet-shell-prompt
-@vindex nntp-telnet-shell-prompt
-Regexp matching the shell prompt on the remote machine.  The default is
-@samp{bash\\|\$ *\r?$\\|> *\r?}.
-
-@item nntp-open-telnet-envuser
-@vindex nntp-open-telnet-envuser
-If non-@code{nil}, the @code{telnet} session (client and server both)
-will support the @code{ENVIRON} option and not prompt for login name.
-This works for Solaris @code{telnet}, for instance.
-
-@end table
+@item nntp-buggy-select
+@vindex nntp-buggy-select
+Set this to non-@code{nil} if your select routine is buggy.
 
-@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
-(@uref{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL}, and you also need
-@file{ssl.el} (from the W3 distribution, for instance).  You then
-define a server as follows:
+@item nntp-nov-is-evil
+@vindex nntp-nov-is-evil
+If the @sc{nntp} server does not support @sc{nov}, you could set this
+variable to @code{t}, but @code{nntp} usually checks automatically whether @sc{nov}
+can be used.
 
-@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
+@item nntp-xover-commands
+@vindex nntp-xover-commands
+@cindex nov
+@cindex XOVER
+List of strings used as commands to fetch @sc{nov} lines from a
+server.  The default value of this variable is @code{("XOVER"
+"XOVERVIEW")}.
 
-@end table
+@item nntp-nov-gap
+@vindex nntp-nov-gap
+@code{nntp} normally sends just one big request for @sc{nov} lines to
+the server.  The server responds with one huge list of lines.  However,
+if you have read articles 2-5000 in the group, and only want to read
+article 1 and 5001, that means that @code{nntp} will fetch 4999 @sc{nov}
+lines that you will not need.  This variable says how
+big a gap between two consecutive articles is allowed to be before the
+@code{XOVER} request is split into several request.  Note that if your
+network is fast, setting this variable to a really small number means
+that fetching will probably be slower.  If this variable is @code{nil},
+@code{nntp} will never split requests.  The default is 5.
 
-@item nntp-end-of-line
-@vindex nntp-end-of-line
-String to use as end-of-line marker when talking to the @sc{nntp}
-server.  This is @samp{\r\n} by default, but should be @samp{\n} when
-using @code{rlogin} to talk to the server.
+@item nntp-prepare-server-hook
+@vindex nntp-prepare-server-hook
+A hook run before attempting to connect to an @sc{nntp} server.
 
-@item nntp-rlogin-user-name
-@vindex nntp-rlogin-user-name
-User name on the remote system when using the @code{rlogin} connect
-function.
+@item nntp-warn-about-losing-connection
+@vindex nntp-warn-about-losing-connection
+If this variable is non-@code{nil}, some noise will be made when a
+server closes connection.
 
-@item nntp-address
-@vindex nntp-address
-The address of the remote system running the @sc{nntp} server.
+@item nntp-record-commands
+@vindex nntp-record-commands
+If non-@code{nil}, @code{nntp} will log all commands it sends to the
+@sc{nntp} server (along with a timestamp) in the @samp{*nntp-log*}
+buffer.  This is useful if you are debugging a Gnus/@sc{nntp} connection
+that doesn't seem to work.
 
-@item nntp-port-number
-@vindex nntp-port-number
-Port number to connect to when using the @code{nntp-open-network-stream}
-connect function.
+@item nntp-open-connection-function
+@vindex nntp-open-connection-function
+It is possible to customize how the connection to the nntp server will
+be opened.  If you specify an @code{nntp-open-connection-function}
+parameter, Gnus will use that function to establish the connection.
+Five pre-made functions are supplied.  These functions can be grouped in
+two categories: direct connection functions (three pre-made), and
+indirect ones (two pre-made).
 
 @item nntp-list-options
 @vindex nntp-list-options
@@ -10978,53 +10918,191 @@ command.  You may use it as a server variable as follows:
       '(nntp "news.somewhere.edu"
             (nntp-options-not-subscribe "\\.binaries\\.")))
 @end lisp
+@end table
 
-@item nntp-buggy-select
-@vindex nntp-buggy-select
-Set this to non-@code{nil} if your select routine is buggy.
+@menu
+* Direct Functions::   Connecting directly to the server.
+* Indirect Functions:: Connecting indirectly to the server.
+* Common Variables::   Understood by several connection functions.
+@end menu
 
-@item nntp-nov-is-evil
-@vindex nntp-nov-is-evil
-If the @sc{nntp} server does not support @sc{nov}, you could set this
-variable to @code{t}, but @code{nntp} usually checks automatically whether @sc{nov}
-can be used.
 
-@item nntp-xover-commands
-@vindex nntp-xover-commands
-@cindex nov
-@cindex XOVER
-List of strings used as commands to fetch @sc{nov} lines from a
-server.  The default value of this variable is @code{("XOVER"
-"XOVERVIEW")}.
+@node Direct Functions
+@subsubsection Direct Functions
+@cindex direct connection functions
 
-@item nntp-nov-gap
-@vindex nntp-nov-gap
-@code{nntp} normally sends just one big request for @sc{nov} lines to
-the server.  The server responds with one huge list of lines.  However,
-if you have read articles 2-5000 in the group, and only want to read
-article 1 and 5001, that means that @code{nntp} will fetch 4999 @sc{nov}
-lines that you will not need.  This variable says how
-big a gap between two consecutive articles is allowed to be before the
-@code{XOVER} request is split into several request.  Note that if your
-network is fast, setting this variable to a really small number means
-that fetching will probably be slower.  If this variable is @code{nil},
-@code{nntp} will never split requests.  The default is 5.
+These functions are called direct because they open a direct connection
+between your machine and the @sc{nntp} server.  The behavior of these
+functions is also affected by commonly understood variables
+(@pxref{Common Variables}).
 
-@item nntp-prepare-server-hook
-@vindex nntp-prepare-server-hook
-A hook run before attempting to connect to an @sc{nntp} server.
+@table @code
+@findex nntp-open-network-stream
+@item nntp-open-network-stream
+This is the default, and simply connects to some port or other on the
+remote system.
 
-@item nntp-warn-about-losing-connection
-@vindex nntp-warn-about-losing-connection
-If this variable is non-@code{nil}, some noise will be made when a
-server closes connection.
+@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
+(@uref{ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL}, and you also need
+@file{ssl.el} (from the W3 distribution, for instance).  You then
+define a server as follows:
 
-@item nntp-record-commands
-@vindex nntp-record-commands
-If non-@code{nil}, @code{nntp} will log all commands it sends to the
-@sc{nntp} server (along with a timestamp) in the @samp{*nntp-log*}
-buffer.  This is useful if you are debugging a Gnus/@sc{nntp} connection
-that doesn't seem to work.
+@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
+
+@findex nntp-open-telnet-stream
+@item nntp-open-telnet-stream
+Opens a connection to an @sc{nntp} server by simply @samp{telnet}'ing
+it.  You might wonder why this function exists, since we have the
+default @code{nntp-open-network-stream} which would do the job.  (One
+of) the reason(s) is that if you are behind a firewall but have direct
+connections to the outside world thanks to a command wrapper like
+@code{runsocks}, you can use it like this:
+
+@lisp
+(nntp "socksified"
+      (nntp-pre-command "runsocks")
+      (nntp-open-connection-function nntp-open-telnet-stream)
+      (nntp-address "the.news.server"))
+@end lisp
+
+With the default method, you would need to wrap your whole Emacs
+session, which is not a good idea.
+@end table
+
+
+@node Indirect Functions
+@subsubsection Indirect Functions
+@cindex indirect connection functions
+
+These functions are called indirect because they connect to an
+intermediate host before actually connecting to the @sc{nntp} server.
+All of these functions and related variables are also said to belong to
+the "via" family of connection: they're all prefixed with "via" to make
+things cleaner.  The behavior of these functions is also affected by
+commonly understood variables (@pxref{Common Variables}).
+
+@table @code
+@item nntp-open-via-rlogin-and-telnet
+@findex nntp-open-via-rlogin-and-telnet
+Does an @samp{rlogin} on a remote system, and then does a @samp{telnet}
+to the real @sc{nntp} server from there.  This is useful for instance if
+you need to connect to a firewall machine first.
+
+@code{nntp-open-via-rlogin-and-telnet}-specific variables:
+
+@table @code
+@item nntp-via-rlogin-command
+@vindex nntp-via-rlogin-command
+Command used to log in on the intermediate host.  The default is
+@samp{rsh}, but @samp{ssh} is a popular alternative.
+@end table
+
+@item nntp-open-via-telnet-and-telnet
+@findex nntp-open-via-telnet-and-telnet
+Does essentially the same, but uses @samp{telnet} instead of
+@samp{rlogin} to connect to the intermediate host.
+
+@code{nntp-open-via-telnet-and-telnet}-specific variables:
+
+@table @code
+@item nntp-via-telnet-command
+@vindex nntp-via-telnet-command
+Command used to @code{telnet} the intermediate host.  The default is
+@samp{telnet}.
+
+@item nntp-via-telnet-switches
+@vindex nntp-via-telnet-switches
+List of strings to be used as the switches to the
+@code{nntp-via-telnet-command} command.  The default is @samp{("-8")}.
+
+@item nntp-via-user-password
+@vindex nntp-via-user-password
+Password to use when logging in on the intermediate host.
+
+@item nntp-via-envuser
+@vindex nntp-via-envuser
+If non-@code{nil}, the intermediate @code{telnet} session (client and
+server both) will support the @code{ENVIRON} option and not prompt for
+login name. This works for Solaris @code{telnet}, for instance.
+
+@item nntp-via-shell-prompt
+@vindex nntp-via-shell-prompt
+Regexp matching the shell prompt on the intermediate host.  The default
+is @samp{bash\\|\$ *\r?$\\|> *\r?}.
+
+@end table
+
+@end table
+
+
+Here are some additional variables that are understood by all the above
+functions:
+
+@table @code
+
+@item nntp-via-user-name
+@vindex nntp-via-user-name
+User name to use when connecting to the intermediate host.
+
+@item nntp-via-address
+@vindex nntp-via-address
+Address of the intermediate host to connect to.
+
+@end table
+
+
+@node Common Variables
+@subsubsection Common Variables
+
+The following variables affect the behavior of all, or several of the
+pre-made connection functions. When not specified, all functions are
+affected.
+
+@table @code
+
+@item nntp-pre-command
+@vindex nntp-pre-command
+A command wrapper to use when connecting through a non native connection
+function (all except @code{nntp-open-network-stream} and
+@code{nntp-open-ssl-stream}.  This is where you would put a @samp{SOCKS}
+wrapper for instance.
+
+@item nntp-address
+@vindex nntp-address
+The address of the @sc{nntp} server.
+
+@item nntp-port-number
+@vindex nntp-port-number
+Port number to connect to the @sc{nntp} server.  The default is @samp{nntp}.
+
+@item nntp-end-of-line
+@vindex nntp-end-of-line
+String to use as end-of-line marker when talking to the @sc{nntp}
+server.  This is @samp{\r\n} by default, but should be @samp{\n} when
+using a non native connection function.
+
+@item nntp-telnet-command
+@vindex nntp-telnet-command
+Command to use when connecting to the @sc{nntp} server through
+@samp{telnet}.  This is NOT for an intermediate host.  This is just for
+the real @sc{nntp} server.  The default is @samp{telnet}.
+
+@item nntp-telnet-switches
+@vindex nntp-telnet-switches
+A list of switches to pass to @code{nntp-telnet-command}.  The default
+is @samp{("-8")}.
 
 @end table
 
@@ -11111,7 +11189,7 @@ Reading mail with a newsreader---isn't that just plain WeIrD? But of
 course.
 
 @menu
-* Mail in a Newsreader::         Important introductory notes. 
+* Mail in a Newsreader::         Important introductory notes.
 * Getting Started Reading Mail:: A simple cookbook example.
 * Splitting Mail::               How to create mail groups.
 * Mail Sources::                 How to tell Gnus where to get mail from.
@@ -11304,7 +11382,7 @@ If you wish to see where the previous mail split put the messages, you
 can use the @kbd{M-x nnmail-split-history} command.  If you wish to see
 where re-spooling messages would put the messages, you can use
 @code{gnus-summary-respool-trace} and related commands (@pxref{Mail
-Group Commands}). 
+Group Commands}).
 
 Gnus gives you all the opportunity you could possibly want for shooting
 yourself in the foot.  Let's say you create a group that will contain
@@ -11379,8 +11457,8 @@ Or using the default path:
 (file)
 @end lisp
 
-If the mail spool file is not located on the local machine, it's best to 
-use POP or @sc{imap} or the like to fetch the mail.  You can not use ange-ftp 
+If the mail spool file is not located on the local machine, it's best to
+use POP or @sc{imap} or the like to fetch the mail.  You can not use ange-ftp
 file names here---it has no way to lock the mail spool while moving the
 mail.
 
@@ -11571,12 +11649,12 @@ from locking problems).
 Two example maildir mail sources:
 
 @lisp
-(maildir :path "/home/user-name/Maildir/" 
+(maildir :path "/home/user-name/Maildir/"
          :subdirs ("cur" "new"))
 @end lisp
 
 @lisp
-(maildir :path "/user@@remotehost.org:~/Maildir/" 
+(maildir :path "/user@@remotehost.org:~/Maildir/"
          :subdirs ("new"))
 @end lisp
 
@@ -11669,8 +11747,8 @@ after finishing the fetch.
 An example @sc{imap} mail source:
 
 @lisp
-(imap :server "mail.mycorp.com" 
-      :stream kerberos4 
+(imap :server "mail.mycorp.com"
+      :stream kerberos4
       :fetchflag "\\Seen")
 @end lisp
 
@@ -11710,8 +11788,8 @@ folder after finishing the fetch.
 An example webmail source:
 
 @lisp
-(webmail :subtype 'hotmail 
-         :user "user-name" 
+(webmail :subtype 'hotmail
+         :user "user-name"
          :password "secret")
 @end lisp
 @end table
@@ -11729,7 +11807,7 @@ directory source to get mail, you can specify it as in this example:
 
 @lisp
 (setq mail-sources
-      '((directory :path "/home/pavel/.Spool/" 
+      '((directory :path "/home/pavel/.Spool/"
                    :suffix ""
                    :plugged t)))
 @end lisp
@@ -12644,7 +12722,7 @@ The name of the mail box in the user's home directory.  Default is
 @item nnmbox-active-file
 @vindex nnmbox-active-file
 The name of the active file for the mail box.  Default is
-@file{~/.mbox-active}. 
+@file{~/.mbox-active}.
 
 @item nnmbox-get-new-mail
 @vindex nnmbox-get-new-mail
@@ -13005,13 +13083,13 @@ and click, and there's the discussion.  With mailing lists, you have to
 go through a cumbersome subscription procedure, and most people don't
 even know what a news group is.
 
-The problem with this scenario is that web browsers are not very good at 
-being newsreaders.  They do not keep track of what articles you've read; 
-they do not allow you to score on subjects you're interested in; they do 
+The problem with this scenario is that web browsers are not very good at
+being newsreaders.  They do not keep track of what articles you've read;
+they do not allow you to score on subjects you're interested in; they do
 not allow off-line browsing; they require you to click around and drive
 you mad in the end.
 
-So---if web browsers suck at reading discussion forums, why not use Gnus 
+So---if web browsers suck at reading discussion forums, why not use Gnus
 to do it instead?
 
 Gnus has been getting a bit of a collection of backends for providing
@@ -13029,7 +13107,7 @@ interfaces to these sources.
 All the web sources require Emacs/w3 and the url library to work.
 
 The main caveat with all these web sources is that they probably won't
-work for a very long time.  Gleaning information from the @sc{html} data 
+work for a very long time.  Gleaning information from the @sc{html} data
 is guesswork at best, and when the layout is altered, the Gnus backend
 will fail.  If you have reasonably new versions of these backends,
 though, you should be ok.
@@ -13192,7 +13270,7 @@ Where @code{nnslashdot} will store its files.  The default is
 @item nnslashdot-active-url
 @vindex nnslashdot-active-url
 The @sc{url} format string that will be used to fetch the information on
-news articles and comments.  Default:
+news articles and comments.  The default is
 @samp{http://slashdot.org/search.pl?section=&min=%d}.
 
 @item nnslashdot-comments-url
@@ -13231,7 +13309,7 @@ quite regular and nice interface, and it's possible to get the
 information Gnus needs to keep groups updated.
 
 The easiest way to get started with @code{nnultimate} is to say
-something like the following in the group buffer:  @kbd{B nnultimate RET 
+something like the following in the group buffer:  @kbd{B nnultimate RET
 http://www.tcj.com/messboard/ubbcgi/ RET}.  (Substitute the @sc{url}
 (not including @samp{Ultimate.cgi} or the like at the end) for a forum
 you're interested in; there's quite a list of them on the Ultimate web
@@ -13328,12 +13406,12 @@ the summary buffer.
 @cindex url
 @cindex Netscape
 
-Gnus uses the url library to fetch web pages and Emacs/w3 to display web 
+Gnus uses the url library to fetch web pages and Emacs/w3 to display web
 pages.  Emacs/w3 is documented in its own manual, but there are some
 things that may be more relevant for Gnus users.
 
 For instance, a common question is how to make Emacs/w3 follow links
-using the @code{browse-url} functions (which will call some external web 
+using the @code{browse-url} functions (which will call some external web
 browser like Netscape).  Here's one way:
 
 @lisp
@@ -14018,7 +14096,7 @@ Here's an example:
 
 @lisp
 (setq gnus-post-method
-      '(nngateway 
+      '(nngateway
         "mail2news@@replay.com"
         (nngateway-header-transformation
          nngateway-mail2news-header-transformation)))
@@ -14067,7 +14145,7 @@ A server configuration in @code{~/.gnus} with a few @sc{imap} servers
 might look something like this:
 
 @lisp
-(setq gnus-secondary-select-methods 
+(setq gnus-secondary-select-methods
       '((nnimap "simpleserver") ; no special configuration
         ; perhaps a ssh port forwarded server:
         (nnimap "dolk"
@@ -14129,7 +14207,7 @@ Example server specification:
 
 @lisp
 (nnimap "mail.server.com"
-        (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*" 
+        (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*"
                                ("~friend/Mail/" . "list/*"))))
 @end lisp
 
@@ -14177,7 +14255,7 @@ with @samp{imtest}.  You will then suffer from a line length
 restrictions on IMAP commands, which might make Gnus seem to hang
 indefinitely if you have many articles in a mailbox.  The variable
 @code{imap-kerberos4-program} contain parameters to pass to the imtest
-program. 
+program.
 
 @vindex imap-ssl-program
 For SSL connections, the OpenSSL program is available from
@@ -14262,6 +14340,28 @@ articles or not.
 
 @end table
 
+@item nnimap-importantize-dormant
+@vindex nnimap-importantize-dormant
+
+If non-nil, marks dormant articles as ticked (as well), for other IMAP
+clients. Within Gnus, dormant articles will naturally still (only) be
+marked as ticked.  This is to make dormant articles stand out, just
+like ticked articles, in other IMAP clients. (In other words, Gnus has
+two ``Tick'' marks and IMAP has only one.)
+
+Probably the only reason for frobing this would be if you're trying
+enable per-user persistant dormant flags, using something like:
+
+@lisp
+(setcdr (assq 'dormant nnimap-mark-to-flag-alist)
+        (format "gnus-dormant-%s" (user-login-name)))
+(setcdr (assq 'dormant nnimap-mark-to-predicate-alist)
+        (format "KEYWORD gnus-dormant-%s" (user-login-name)))
+@end lisp
+
+In this case, you would not want the per-user dormant flag showing up
+as ticked for other users.
+
 @item nnimap-expunge-search-string
 @cindex Expunging
 @vindex nnimap-expunge-search-string
@@ -14350,7 +14450,7 @@ Neither did I, we need examples.
 
 @lisp
 (setq nnimap-split-rule
-      '(("INBOX.nnimap"  
+      '(("INBOX.nnimap"
          "^Sender: owner-nnimap@@vic20.globalcom.se")
         ("INBOX.junk"    "^Subject:.*MAKE MONEY")
         ("INBOX.private" "")))
@@ -15929,7 +16029,7 @@ returned is the local score file.  Phu.
 For example, to do hierarchical scoring but use a non-server-specific
 overall score file, you could use the value
 @example
-(list (lambda (group) ("all.SCORE")) 
+(list (lambda (group) ("all.SCORE"))
       'gnus-score-find-hierarchical)
 @end example
 
@@ -16614,7 +16714,7 @@ the @code{Xref} header.
 If you want to lower the score of articles that have been crossposted to
 more than, say, 3 groups:
 @lisp
-("xref" 
+("xref"
   ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+"
    -1000 nil r))
 @end lisp
@@ -17851,7 +17951,7 @@ for composing mail and news while leaving the original frame intact.  To
 accomplish that, something like the following can be done:
 
 @lisp
-(message 
+(message
   (frame 1.0
          (if (not (buffer-live-p gnus-summary-buffer))
              (car (cdr (assoc 'group gnus-buffer-configuration)))
@@ -17893,7 +17993,7 @@ windows resized.
 @subsection Example Window Configurations
 
 @itemize @bullet
-@item 
+@item
 Narrow left hand side occupied by group buffer.  Right hand side split
 between summary buffer (top one-sixth) and article buffer (bottom).
 
@@ -18416,7 +18516,7 @@ never be totally undoable.
 @findex gnus-undo
 The undoability is provided by the @code{gnus-undo-mode} minor mode.  It
 is used if @code{gnus-use-undo} is non-@code{nil}, which is the
-default.  The @kbd{M-C-_} key performs the @code{gnus-undo} 
+default.  The @kbd{M-C-_} key performs the @code{gnus-undo}
 command, which should feel kinda like the normal Emacs @code{undo}
 command.
 
@@ -20435,7 +20535,7 @@ updated by the @code{gnus-start-date-timer} command.
 @subsubsection Pterodactyl Gnus
 
 New features in Gnus 5.8:
-  
+
 @itemize @bullet
 
 @item The mail-fetching functions have changed.  See the manual for the
@@ -20450,7 +20550,7 @@ If you used procmail like in
 (setq nnmail-procmail-suffix "\\.in")
 @end lisp
 
-this now has changed to 
+this now has changed to
 
 @lisp
 (setq mail-sources
@@ -20479,7 +20579,7 @@ of variables starting with @code{gnus-treat-} have been added.
 @item The Gnus posting styles have been redone again and now works in a
 subtly different manner.
 
-@item New web-based backends have been added: @code{nnslashdot}, 
+@item New web-based backends have been added: @code{nnslashdot},
 @code{nnwarchive} and @code{nnultimate}.  nnweb has been revamped,
 again, to keep up with ever-changing layouts.
 
@@ -20558,16 +20658,16 @@ I guess most manuals are written after-the-fact; documenting a program
 that's already there.  This is not how this manual is written.  When
 implementing something, I write the manual entry for that something
 straight away.  I then see that it's difficult to explain the
-functionality, so I write how it's supposed to be, and then I change the 
+functionality, so I write how it's supposed to be, and then I change the
 implementation.  Writing the documentation and writing the code goes
 hand in hand.
 
 This, of course, means that this manual has no, or little, flow.  It
 documents absolutely everything in Gnus, but often not where you're
-looking for it.  It is a reference manual, and not a guide to how to get 
+looking for it.  It is a reference manual, and not a guide to how to get
 started with Gnus.
 
-That would be a totally different book, that should be written using the 
+That would be a totally different book, that should be written using the
 reference manual as source material.  It would look quite differently.
 
 
@@ -21789,8 +21889,8 @@ Below is a slightly shortened version of the @code{nndir} backend.
   "*Non-nil means that nndir will never retrieve NOV headers."
   nnml-nov-is-evil)
 
-(defvoo nndir-current-group "" 
-  nil 
+(defvoo nndir-current-group ""
+  nil
   nnml-current-group nnmh-current-group)
 (defvoo nndir-top-directory nil nil nnml-directory nnmh-directory)
 (defvoo nndir-get-new-mail nil nil nnml-get-new-mail nnmh-get-new-mail)
@@ -21809,7 +21909,7 @@ Below is a slightly shortened version of the @code{nndir} backend.
   (unless (assq 'nndir-directory defs)
     (push `(nndir-directory ,server) defs))
   (push `(nndir-current-group
-          ,(file-name-nondirectory 
+          ,(file-name-nondirectory
             (directory-file-name nndir-directory)))
         defs)
   (push `(nndir-top-directory