Sync up with Pterodactyl Gnus v0.91, etc. See ChangeLog for more details. et-gnus-6_11_05-00
authoryamaoka <yamaoka>
Mon, 5 Jul 1999 08:01:04 +0000 (08:01 +0000)
committeryamaoka <yamaoka>
Mon, 5 Jul 1999 08:01:04 +0000 (08:01 +0000)
36 files changed:
ChangeLog
GNUS-NEWS
README.T-gnus
lisp/ChangeLog
lisp/base64.el
lisp/gnus-agent.el
lisp/gnus-art.el
lisp/gnus-cache.el
lisp/gnus-mailcap.el
lisp/gnus-msg.el
lisp/gnus-srvr.el
lisp/gnus-start.el
lisp/gnus-sum.el
lisp/gnus-util.el
lisp/gnus.el
lisp/lpath.el
lisp/message.el
lisp/mm-decode.el
lisp/mm-encode.el
lisp/mm-util.el
lisp/mm-uu.el
lisp/mm-view.el
lisp/mml.el
lisp/nnfolder.el
lisp/nnmail.el
lisp/nnmbox.el
lisp/nnml.el
lisp/qp.el
lisp/rfc2047.el
lisp/smiley.el
texi/ChangeLog
texi/emacs-mime.texi
texi/gnus-ja.texi
texi/gnus.texi
texi/gnusref-ja.tex
texi/refcard-ja.tex

index 28def76..3881f6c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,51 @@
+1999-07-05  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.11.05.
+       (gnus-revision-number): Fresh start from 00.
+
+       * texi/gnus-ja.texi (Mail in a Newsreader): Translate into Japanese.
+
+       * README.T-gnus: Update for T-gnus 6.11.05.
+
+       * lisp/nnmbox.el (nnmbox-save-buffer): Bind `output-coding-system'
+       instead of `coding-system-for-write' Under Mule 2.
+
+       * lisp/nnmbox.el (nnmbox-active-file-coding-system,
+       nnmbox-file-coding-system): Default to `raw-text-dos' or 'raw-text'.
+       * lisp/nnfolder.el (nnfolder-file-coding-system,
+       nnfolder-active-file-coding-system): Ditto.
+
+       * lisp/mm-view.el (TopLevel): Don't bind vars `w3-meta-*'.
+
+       * lisp/gnus-util.el (gnus-write-active-file): Abolish function.
+       (gnus-write-active-file-as-coding-system): New function.
+
+       * lisp/gnus-cache.el (gnus-cache-write-active): Use
+       `gnus-write-active-file-as-coding-system' instead of
+       `gnus-write-active-file'.
+       * lisp/gnus-agent.el (gnus-agent-expire, gnus-agent-write-active):
+       Ditto.
+
+       * lisp/gnus-agent.el (gnus-agent-expire, gnus-agent-write-active,
+       gnus-agent-save-active-1): Use
+       `insert-file-contents-as-coding-system' instead of
+       `insert-file-contents-literally' or `insert-file-contents'.
+
+1999-07-05  Katsumi Yamaoka   <yamaoka@jpl.org>
+
+       * texi/{emacs-mime.texi,ChangeLog}: Sync up with Pterodactyl Gnus
+       v0.91.
+       * lisp/{smiley.el,rfc2047.el,qp.el,nnml.el,nnmbox.el,nnmail.el,
+       nnheader.el,nnfolder.el,mml.el,mm-view.el,mm-uu.el,mm-util.el,
+       mm-encode.el,mm-decode.el,message.el,lpath.el,gnus-util.el,
+       gnus-sum.el,gnus-start.el,gnus-srvr.el,gnus-msg.el,gnus-mailcap.el,
+       gnus-cache.el,gnus-art.el,gnus-agent.el,base64.el}: Ditto.
+       * GNUS-NEWS: Ditto.
+
+1999-07-04  Yoshiki Hayashi   <t90553@mail.ecc.u-tokyo.ac.jp>
+
+       * texi/{gnusref-ja.tex,refcard-ja.tex}: Update to the version 5.5.
+
 1999-07-04  Katsumi Yamaoka   <yamaoka@jpl.org>
 
        * lisp/gnus.el (gnus-revision-number): Increment to 03.
index ee7fbc6..a725d82 100644 (file)
--- a/GNUS-NEWS
+++ b/GNUS-NEWS
@@ -1,9 +1,17 @@
 ** Gnus changes.
 
+The Gnus NEWS entries are short, but they reflect sweeping changes in
+four areas: Article display treatment, MIME treatment,
+internationalization and mail-fetching.
+
 *** The mail-fetching functions have changed.  See the manual for the
 many details.  In particular, all procmail fetching variables are gone.
 
-*** Gnus is now a MIME-capable reader.  See the manual for details. 
+*** Gnus is now a MIME-capable reader.  This affects many parts of
+Gnus, and adds a slew of new commands.  See the manual for details.
+
+*** Gnus has also been multilingualized.  This also affects too
+many parts of Gnus to summarize here, and adds many new variables.
 
 *** gnus-auto-select-first can now be a function to be
 called to position point.
@@ -12,5 +20,8 @@ called to position point.
 summary buffers and NOV files.
 
 *** `gnus-article-display-hook' has been removed.  Instead, a number
-of variables starting with `gnus-treat-'.
+of variables starting with `gnus-treat-' have been added.
+
+*** The Gnus posting styles have been redone again and now works in a
+subtly different manner.
 
index 35f5a46..3b9a650 100644 (file)
@@ -27,6 +27,6 @@ NEWS:
 
 * T-gnus 6.11 - this is based on Pterodactyl Gnus.
 
-  The latest T-gnus is T-gnus 6.11.04 (Based on pgnus-0.89).
+  The latest T-gnus is T-gnus 6.11.05 (Based on pgnus-0.91).
   It requires SEMI/WEMI-1.13, the latest FLIM-1.13, and the latest
   APEL (9.20 or later).
index b807b2d..9ce3a5b 100644 (file)
@@ -1,3 +1,183 @@
+Sun Jul  4 06:31:01 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Pterodactyl Gnus v0.91 is released.
+
+1999-07-04 04:35:28  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-agent.el (gnus-agent-save-active-1): New function.
+       (gnus-agent-save-active): use it.
+       (gnus-agent-save-groups): Ditto.
+
+       * gnus-cache.el (gnus-cache-write-active): Use it.
+
+       * gnus-agent.el (gnus-agent-write-active): Use it.
+
+       * gnus-util.el (gnus-write-active-file): New function.
+
+       * gnus-agent.el (gnus-agent-write-active): New function to keep
+       lower boundaries and canceled groups.
+       (gnus-agent-save-groups): Use it.
+       (gnus-agent-save-active): Use it.
+       (gnus-agent-save-group-info): Only write active files.
+       (gnus-agent-expire): Update active file.
+
+       * mm-decode.el (mm-inlinable-part-p): Removed.
+       (mm-user-display-methods): Default to nil.
+       (mm-user-display-methods): Removed.
+       (add-mime-display-method): Removed.
+       (mm-automatic-display): Renamed.
+       (mm-automatic-display-p): Use it.
+       (mm-inlined-types): New variable.
+       (mm-inlined-p): New function.
+
+       * message.el (message-reply): Bind message-this-is-mail.
+
+1999-07-03 13:16:31  Michael Klingbeil  <mklingbeil@knuut.de>
+
+       * smiley.el (smiley-buffer): Fix for NT.
+
+1999-07-03 11:26:47  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mm-encode.el (mm-encode-buffer): Check whether we have 7bit.
+
+       * message.el (message-check-news-header-syntax): Protect against
+       nil froms.
+
+       * mm-util.el (mm-auto-mode-alist): New.
+
+       * mml.el (mml-generate-mime-1): Ditto.
+
+       * gnus.el: Use mm-insert-file-contents throughout instead of
+       nnheader. 
+
+       * mm-util.el (mm-insert-file-contents): New function.
+
+Sat Jul  3 07:35:35 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+       * gnus.el: Pterodactyl Gnus v0.90 is released.
+
+1999-07-03 09:31:10  Sven Fischer  <herpes@kawo2.rwth-aachen.de>
+
+       * mailcap.el (mailcap-possible-viewers): Use string=.
+
+1999-07-01  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * mm-uu.el (mm-uu-forward-begin-line): New variable.
+       (mm-uu-forward-end-line): New variable.
+       (mm-uu-begin-line): Handle forwarded message.
+       (mm-uu-identifier-alist): Ditto.
+       (mm-uu-dissect): Ditto.
+
+1999-06-29  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * lpath.el: Two free variables.
+
+1999-07-02  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * nnheader.el (nnheader-file-coding-system): Use raw-text.
+       * gnus-agent.el (gnus-agent-file-coding-system): Ditto.
+       * gnus-cache.el (gnus-cache-coding-system): Ditto.
+
+       * nnfolder.el (nnfolder-file-coding-system): Use mm-text-coding-system.
+       (nnfolder-file-coding-system-for-write): New variable.
+       (nnfolder-active-file-coding-system): New variable.
+       (nnfolder-active-file-coding-system-for-write): New variable.
+       (nnfolder-save-active): New function.
+       (nnfolder-save-buffer): Use them.
+       (nnfolder-possibly-change-group): Ditto.
+       (nnfolder-request-list-newsgroups): Ditto.
+       (nnfolder-request-create-group): Ditto.
+       (nnfolder-request-expire-articles): Ditto.
+       (nnfolder-request-move-article): Ditto.
+       (nnfolder-request-accept-article): Ditto.
+       (nnfolder-request-delete-group): Ditto.
+       (nnfolder-request-rename-group): Ditto.
+       (nnfolder-possibly-change-folder): Ditto.
+       (nnfolder-read-folder): Ditto.
+       (nnfolder-request-list): Remove pathname-coding-system.
+       (nnfolder-possibly-change-group): Use nnmail-pathname-coding-system.
+
+       * nnmail.el (nnmail-file-coding-system): Use raw-text.
+       (nnmail-file-coding-system-1): Removed.
+       (nnmail-find-file): Use nnmail-pathname-coding-system.
+       (nnmail-write-region): Ditto.
+
+       * nnmbox.el (nnmbox-file-coding-system): New variable.
+       (nnmbox-file-coding-system-for-write): New variable.
+       (nnmbox-active-file-coding-system): New variable.
+       (nnmbox-active-file-coding-system-for-write): New variable.
+       (nnmbox-save-buffer): New function.
+       (nnmbox-save-active): New function.
+       (nnmbox-request-scan): Use them.
+       (nnmbox-request-expire-articles): Ditto.
+       (nnmbox-request-move-article): Ditto.
+       (nnmbox-request-accept-article): Ditto.
+       (nnmbox-request-replace-article): Ditto.
+       (nnmbox-request-delete-group): Ditto.
+       (nnmbox-request-rename-group): Ditto.
+       (nnmbox-request-create-group): Ditto.
+
+       * mm-util.el (mm-text-coding-system): raw-text or -dos.
+       (mm-running-ntemacs): Removed.
+
+       * nnml.el (nnml-file-coding-system): Use nnmail-file-coding-system.
+
+1999-07-02  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * nnfolder.el (nnfolder-read-folder): Use nnheader-file-coding-system.
+
+1999-07-01  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * qp.el (quoted-printable-encoding-characters): Support lower case.
+
+1999-07-01  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * rfc2047.el (rfc2047-encode): Fold before B-encoding.
+       (rfc2047-b-encode-region): Encode line by line.
+
+1999-07-03 09:20:16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * mm-util.el (mm-find-mime-charset-region): Fix.
+
+1999-06-30  KOSEKI Yoshinori  <kose@yk.NetLaputa.ne.jp>
+
+       * mm-util.el (mm-mime-mule-charset-alist): Fix iso-2022-jp(-2) bug.
+       (mm-find-mime-charset-region): Ditto.
+
+1999-07-03 09:15:35  Simon Josefsson  <jas@pdc.kth.se>
+
+       * gnus-sum.el (gnus-summary-move-article): Fix something or
+       other. 
+
+1999-06-29  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-sum.el (gnus-newsgroup-ephemeral-charset): New variable.
+       (gnus-newsgroup-ephemeral-ignored-charsets): New variable.
+       (gnus-summary-enter-digest-group): Use them.
+       (gnus-summary-setup-default-charset): Ditto.
+
+1999-06-15  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * base64.el (base64-run-command-on-region): Use unibyte buffer.
+
+1999-06-15  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-msg.el (gnus-configure-posting-styles): Fix bug when
+          gnus-newsgroup-name is nil.
+
+1999-06-15  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * rfc2047.el (rfc2047-encode): Chop the tail newline.
+
+1999-06-15  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-art.el (article-emphasize): Use correct
+       gnus-article-emphasis-alist.
+
+1999-06-15  Shenghuo ZHU  <zsh@cs.rochester.edu>
+
+       * mm-view.el (mm-inline-text): Fix text/html bug.
+
 Mon Jun 28 17:54:01 1999  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Pterodactyl Gnus v0.89 is released.
index 12b4ca9..a30d292 100644 (file)
@@ -75,9 +75,13 @@ base64-encoder-program.")
       (setq p (cdr p)))
     v))
 
+(defvar base64-binary-coding-system 'binary)
+
 (defun base64-run-command-on-region (start end output-buffer command
                                           &rest arg-list)
-  (let ((tempfile nil) status errstring default-process-coding-system)
+  (let ((tempfile nil) status errstring default-process-coding-system 
+       (coding-system-for-write base64-binary-coding-system)
+       (coding-system-for-read base64-binary-coding-system))
     (unwind-protect
        (progn
          (setq tempfile (make-temp-name "base64"))
@@ -105,7 +109,8 @@ base64-encoder-program.")
     (if (or (null buffer) (eq buffer (current-buffer)))
        (insert-char char count)
       (with-current-buffer buffer
-       (insert-char char count)))))
+       (insert-char char count))))
+  (setq base64-binary-coding-system 'raw-text))
 
 (defun-maybe base64-decode-region (start end)
   (interactive "r")
index 045243b..5c3d759 100644 (file)
@@ -93,7 +93,7 @@ If nil, only read articles will be expired."
 (defvar gnus-agent-spam-hashtb nil)
 (defvar gnus-agent-file-name nil)
 (defvar gnus-agent-send-mail-function nil)
-(defvar gnus-agent-file-coding-system 'binary)
+(defvar gnus-agent-file-coding-system 'raw-text)
 
 (defconst gnus-agent-scoreable-headers
   '("subject" "from" "date" "message-id" "references" "chars" "lines" "xref")
@@ -545,46 +545,56 @@ the actual number of articles toggled is returned."
 ;;;
 
 (defun gnus-agent-save-active (method)
+  (gnus-agent-save-active-1 method 'gnus-active-to-gnus-format))
+
+(defun gnus-agent-save-active-1 (method function)
   (when (gnus-agent-method-p method)
     (let* ((gnus-command-method method)
+          (new (gnus-make-hashtable (count-lines (point-min) (point-max))))
           (file (gnus-agent-lib-file "active")))
-      (gnus-make-directory (file-name-directory file))
-      (write-region-as-coding-system
-       gnus-agent-file-coding-system (point-min) (point-max) file nil 'silent)
-      (when (file-exists-p (gnus-agent-lib-file "groups"))
-       (delete-file (gnus-agent-lib-file "groups"))))))
+      (funcall function nil new)
+      (gnus-agent-write-active file new)
+      (erase-buffer)
+      (insert-file-contents-as-coding-system gnus-agent-file-coding-system
+                                            file))))
+
+(defun gnus-agent-write-active (file new)
+  (let ((orig (gnus-make-hashtable (count-lines (point-min) (point-max))))
+       (file (gnus-agent-lib-file "active"))
+       elem)
+    (when (file-exists-p file)
+      (with-temp-buffer
+       (insert-file-contents-as-coding-system gnus-agent-file-coding-system
+                                              file)
+       (gnus-active-to-gnus-format nil orig))
+      (mapatoms
+       (lambda (sym)
+        (when (and sym (boundp sym))
+          (if (setq elem (symbol-value (intern (symbol-name sym) orig)))
+              (setcdr elem (cdr (symbol-value sym)))
+            (set (intern (symbol-name sym) orig) (symbol-value sym)))))
+       new))
+    (gnus-make-directory (file-name-directory file))
+    (gnus-write-active-file-as-coding-system gnus-agent-file-coding-system
+                                            file orig)))
 
 (defun gnus-agent-save-groups (method)
-  (let* ((gnus-command-method method)
-        (file (gnus-agent-lib-file "groups")))
-    (gnus-make-directory (file-name-directory file))
-    (write-region-as-coding-system
-     gnus-agent-file-coding-system (point-min) (point-max) file nil 'silent)
-    (when (file-exists-p (gnus-agent-lib-file "active"))
-      (delete-file (gnus-agent-lib-file "active")))))
+  (gnus-agent-save-active-1 method 'gnus-groups-to-gnus-format))
 
 (defun gnus-agent-save-group-info (method group active)
   (when (gnus-agent-method-p method)
     (let* ((gnus-command-method method)
-          (file (if nntp-server-list-active-group
-                    (gnus-agent-lib-file "active")
-                  (gnus-agent-lib-file "groups"))))
+          (file (gnus-agent-lib-file "active")))
       (gnus-make-directory (file-name-directory file))
       (with-temp-file file
        (when (file-exists-p file)
          (nnheader-insert-file-contents file))
        (goto-char (point-min))
-       (if nntp-server-list-active-group
-           (progn
-             (when (re-search-forward
-                    (concat "^" (regexp-quote group) " ") nil t)
-               (gnus-delete-line))
-             (insert group " " (number-to-string (cdr active)) " "
-                     (number-to-string (car active)) " y\n"))
-         (when (re-search-forward
-                (concat (regexp-quote group) "\\($\\| \\)") nil t)
-           (gnus-delete-line))
-         (insert-buffer-substring nntp-server-buffer))))))
+       (when (re-search-forward
+              (concat "^" (regexp-quote group) " ") nil t)
+         (gnus-delete-line))
+       (insert group " " (number-to-string (cdr active)) " "
+               (number-to-string (car active)) " y\n")))))
 
 (defun gnus-agent-group-path (group)
   "Translate GROUP into a path."
@@ -1351,8 +1361,14 @@ The following commands are available:
        (day (- (time-to-days (current-time)) gnus-agent-expire-days))
        gnus-command-method sym group articles
        history overview file histories elem art nov-file low info
-       unreads marked article)
+       unreads marked article orig lowest highest)
     (save-excursion
+      (with-temp-buffer
+       (insert-file-contents-as-coding-system gnus-agent-file-coding-system
+                                              file)
+       (gnus-active-to-gnus-format
+        nil (setq orig (gnus-make-hashtable
+                        (count-lines (point-min) (point-max))))))
       (setq overview (gnus-get-buffer-create " *expire overview*"))
       (while (setq gnus-command-method (pop methods))
        (let ((expiry-hashtb (gnus-make-hashtable 1023)))
@@ -1391,7 +1407,9 @@ The following commands are available:
                                 (gnus-uncompress-range
                                  (cdr (assq 'dormant
                                             (gnus-info-marks info)))))
-                  nov-file (gnus-agent-article-name ".overview" group))
+                  nov-file (gnus-agent-article-name ".overview" group)
+                  lowest nil
+                  highest nil)
             (gnus-agent-load-alist group)
             (gnus-message 5 "Expiring articles in %s" group)
             (set-buffer overview)
@@ -1415,7 +1433,11 @@ The following commands are available:
                   (if (file-exists-p
                        (gnus-agent-article-name
                         (number-to-string art) group))
-                      (forward-line 1)
+                      (progn
+                        (unless lowest
+                          (setq lowest art))
+                        (setq highest art)
+                        (forward-line 1))
                     ;; Remove old NOV lines that have no articles.
                     (gnus-delete-line)))
                 (if (or (eobp)
@@ -1465,19 +1487,23 @@ The following commands are available:
               ;; Maybe everything has been expired from `gnus-article-alist'
               ;; and so the above marking as read could not be conducted,
               ;; or there are expired article within the range of the alist.
-              (when (and info
-                         expired
-                         (or (not (caar gnus-agent-article-alist))
-                             (> (car expired)
-                                (caar gnus-agent-article-alist))))
-                (setcar (nthcdr 2 info)
-                        (gnus-add-to-range
-                         (nth 2 info)
-                         (nreverse expired))))
+              (when (and info
+                         expired
+                         (or (not (caar gnus-agent-article-alist))
+                             (> (car expired)
+                                (caar gnus-agent-article-alist))))
+                (setcar (nthcdr 2 info)
+                        (gnus-add-to-range
+                         (nth 2 info)
+                         (nreverse expired))))
               (gnus-dribble-enter
                (concat "(gnus-group-set-info '"
                        (gnus-prin1-to-string info)
-                       ")"))))
+                       ")")))
+            (when lowest
+              (if (gnus-gethash group orig)
+                  (setcar (gnus-gethash group orig) lowest)
+                (gnus-sethash group (cons lowest highest) orig))))
           expiry-hashtb)
          (set-buffer history)
          (setq histories (nreverse (sort histories '<)))
@@ -1485,7 +1511,10 @@ The following commands are available:
            (goto-char (pop histories))
            (gnus-delete-line))
          (gnus-agent-save-history)
-         (gnus-agent-close-history))
+         (gnus-agent-close-history)
+         (gnus-write-active-file-as-coding-system
+          gnus-agent-file-coding-system
+          (gnus-agent-lib-file "active") orig))
        (gnus-message 4 "Expiry...done"))))))
 
 ;;;###autoload
index a58e9eb..39a339e 100644 (file)
@@ -2145,7 +2145,9 @@ This format is defined by the `gnus-article-time-format' variable."
   (interactive (gnus-article-hidden-arg))
   (unless (gnus-article-check-hidden-text 'emphasis arg)
     (save-excursion
-      (let ((alist (or gnus-article-emphasis-alist gnus-emphasis-alist))
+      (let ((alist (or (with-current-buffer gnus-summary-buffer 
+                        gnus-article-emphasis-alist) 
+                      gnus-emphasis-alist))
            (buffer-read-only nil)
            (props (append '(article-type emphasis)
                           gnus-hidden-properties))
@@ -3417,7 +3419,7 @@ value of the variable `gnus-show-mime' is non-nil."
                                  "inline")
                           (mm-attachment-override-p type)))
                 (mm-automatic-display-p type)
-                (or (mm-inlinable-part-p type)
+                (or (mm-inlined-p type)
                     (mm-automatic-external-display-p type)))
            (setq display t)
          (when (equal (car (split-string type "/"))
index 99bc5d9..cadedf6 100644 (file)
@@ -79,7 +79,7 @@ it's not cached."
 (defvar gnus-cache-overview-coding-system 'raw-text
   "Coding system used on Gnus cache files.")
 
-(defvar gnus-cache-coding-system 'binary
+(defvar gnus-cache-coding-system 'raw-text
   "Coding system used on Gnus cache files.")
 
 \f
@@ -685,14 +685,9 @@ $ emacs -batch -l ~/.emacs -l gnus -f gnus-jog-cache"
   (when (or force
            (and gnus-cache-active-hashtb
                 gnus-cache-active-altered))
-    (with-temp-file gnus-cache-active-file
-      (mapatoms
-       (lambda (sym)
-        (when (and sym (boundp sym))
-          (insert (format "%s %d %d y\n"
-                          (symbol-name sym) (cdr (symbol-value sym))
-                          (car (symbol-value sym))))))
-       gnus-cache-active-hashtb))
+    (gnus-write-active-file-as-coding-system
+     gnus-cache-write-file-coding-system
+     gnus-cache-active-file gnus-cache-active-hashtb)
     ;; Mark the active hashtb as unaltered.
     (setq gnus-cache-active-altered nil)))
 
index cbb0c18..b206be7 100644 (file)
@@ -486,7 +486,7 @@ If FORCE, re-parse even if already parsed."
       (cond
        ((equal (car (car major)) minor)
        (setq exact (cons (cdr (car major)) exact)))
-       ((and minor (string-match (car (car major)) minor))
+       ((and minor (string= (car (car major)) minor))
        (setq wildcard (cons (cdr (car major)) wildcard))))
       (setq major (cdr major)))
     (nconc (nreverse exact) (nreverse wildcard))))
index 9f870a2..63ea229 100644 (file)
@@ -1212,7 +1212,7 @@ this is a reply."
        (when (cond
               ((stringp match)
                ;; Regexp string match on the group name.
-               (string-match match gnus-newsgroup-name))
+               (string-match match group))
               ((or (symbolp match)
                    (gnus-functionp match))
                (cond
@@ -1262,8 +1262,7 @@ this is a reply."
                        (insert-file-contents v)
                        (buffer-string))))
            (setq results (delq (assoc element results) results))
-           (push (cons element
-                       v) results))))
+           (push (cons element v) results))))
       ;; Now we have all the styles, so we insert them.
       (setq name (assq 'name results)
            address (assq 'address results))
index 4c65009..0ae565a 100644 (file)
@@ -135,6 +135,9 @@ The following specs are understood:
     "D" gnus-server-deny-server
     "R" gnus-server-remove-denials
 
+    "n" next-line
+    "p" previous-line
+    
     "g" gnus-server-regenerate-server
 
     "\C-c\C-i" gnus-info-find-node
index 8902ab3..69ce8dc 100644 (file)
@@ -1832,39 +1832,41 @@ newsgroup."
                     (gnus-group-prefixed-name "" method))))
 
     ;; Let the Gnus agent save the active file.
-    (when (and gnus-agent real-active)
-      (gnus-agent-save-groups method))
+    (if (and gnus-agent real-active)
+       (progn
+         (gnus-agent-save-groups method)
+         (gnus-active-to-gnus-format method hashtb nil real-active))
 
-    (goto-char (point-min))
-    ;; We split this into to separate loops, one with the prefix
-    ;; and one without to speed the reading up somewhat.
-    (if prefix
-       (let (min max opoint group)
+      (goto-char (point-min))
+      ;; We split this into to separate loops, one with the prefix
+      ;; and one without to speed the reading up somewhat.
+      (if prefix
+         (let (min max opoint group)
+           (while (not (eobp))
+             (condition-case ()
+                 (progn
+                   (read cur) (read cur)
+                   (setq min (read cur)
+                         max (read cur)
+                         opoint (point))
+                   (skip-chars-forward " \t")
+                   (insert prefix)
+                   (goto-char opoint)
+                   (set (let ((obarray hashtb)) (read cur))
+                        (cons min max)))
+               (error (and group (symbolp group) (set group nil))))
+             (forward-line 1)))
+       (let (min max group)
          (while (not (eobp))
            (condition-case ()
-               (progn
+               (when (eq (char-after) ?2)
                  (read cur) (read cur)
                  (setq min (read cur)
-                       max (read cur)
-                       opoint (point))
-                 (skip-chars-forward " \t")
-                 (insert prefix)
-                 (goto-char opoint)
-                 (set (let ((obarray hashtb)) (read cur))
+                       max (read cur))
+                 (set (setq group (let ((obarray hashtb)) (read cur)))
                       (cons min max)))
              (error (and group (symbolp group) (set group nil))))
-           (forward-line 1)))
-      (let (min max group)
-       (while (not (eobp))
-         (condition-case ()
-             (when (eq (char-after) ?2)
-               (read cur) (read cur)
-               (setq min (read cur)
-                     max (read cur))
-               (set (setq group (let ((obarray hashtb)) (read cur)))
-                    (cons min max)))
-           (error (and group (symbolp group) (set group nil))))
-         (forward-line 1))))))
+           (forward-line 1)))))))
 
 (defun gnus-read-newsrc-file (&optional force)
   "Read startup file.
index 1ba0ca1..cae07eb 100644 (file)
@@ -1053,6 +1053,8 @@ variable (string, integer, character, etc).")
 (defvar gnus-last-article nil)
 (defvar gnus-newsgroup-history nil)
 (defvar gnus-newsgroup-charset nil)
+(defvar gnus-newsgroup-ephemeral-charset nil)
+(defvar gnus-newsgroup-ephemeral-ignored-charsets nil)
 
 (defconst gnus-summary-local-variables
   '(gnus-newsgroup-name
@@ -6757,11 +6759,14 @@ to guess what the document format is."
        (delete-matching-lines "^\\(Path\\):\\|^From ")
        (widen))
       (unwind-protect
-          (if (gnus-group-read-ephemeral-group
-               name `(nndoc ,name (nndoc-address ,(get-buffer dig))
-                            (nndoc-article-type
-                             ,(if force 'digest 'guess))) t)
-              ;; Make all postings to this group go to the parent group.
+          (if (let ((gnus-newsgroup-ephemeral-charset gnus-newsgroup-charset)
+                   (gnus-newsgroup-ephemeral-ignored-charsets
+                    gnus-newsgroup-ignored-charsets))
+               (gnus-group-read-ephemeral-group
+                name `(nndoc ,name (nndoc-address ,(get-buffer dig))
+                             (nndoc-article-type
+                              ,(if force 'digest 'guess))) t))
+             ;; Make all postings to this group go to the parent group.
               (nconc (gnus-info-params (gnus-get-info name))
                      params)
             ;; Couldn't select this doc group.
@@ -7288,7 +7293,8 @@ and `request-accept' functions."
               (entry
                (gnus-gethash pto-group gnus-newsrc-hashtb))
               (info (nth 2 entry))
-              (to-group (gnus-info-group info)))
+               (to-group (gnus-info-group info))
+              to-marks)
          ;; Update the group that has been moved to.
          (when (and info
                     (memq action '(move copy)))
@@ -7296,6 +7302,7 @@ and `request-accept' functions."
              (push to-group to-groups))
 
            (unless (memq article gnus-newsgroup-unreads)
+             (push 'read to-marks)
              (gnus-info-set-read
               info (gnus-add-to-range (gnus-info-read info)
                                       (list (cdr art-group)))))
@@ -7329,6 +7336,7 @@ and `request-accept' functions."
                (when (memq article (symbol-value
                                     (intern (format "gnus-newsgroup-%s"
                                                     (caar marks)))))
+                  (push (cdar marks) to-marks)
                  ;; If the other group is the same as this group,
                  ;; then we have to add the mark to the list.
                  (when (equal to-group gnus-newsgroup-name)
@@ -7342,6 +7350,10 @@ and `request-accept' functions."
                   to-group (cdar marks) (list to-article) info))
                (setq marks (cdr marks)))
 
+              (gnus-request-set-mark to-group (list (list (list to-article)
+                                                          'set
+                                                          to-marks)))
+
              (gnus-dribble-enter
               (concat "(gnus-group-set-info '"
                       (gnus-prin1-to-string (gnus-get-info to-group))
@@ -9424,21 +9436,23 @@ If REVERSE, save parts that do not match TYPE."
   (let* ((name (and gnus-newsgroup-name
                   (gnus-group-real-name gnus-newsgroup-name)))
         (ignored-charsets 
-         (append
-          (and gnus-newsgroup-name
-               (or (gnus-group-find-parameter gnus-newsgroup-name
-                                              'ignored-charsets t)
-                   (let ((alist gnus-group-ignored-charsets-alist)
-                         elem (charsets nil))
-                     (while (setq elem (pop alist))
-                       (when (and name
-                                  (string-match (car elem) name))
-                        (setq alist nil
-                              charsets (cdr elem))))
-                     charsets)))
-          gnus-newsgroup-ignored-charsets)))
+         (or gnus-newsgroup-ephemeral-ignored-charsets
+             (append
+              (and gnus-newsgroup-name
+                   (or (gnus-group-find-parameter gnus-newsgroup-name
+                                                  'ignored-charsets t)
+                       (let ((alist gnus-group-ignored-charsets-alist)
+                          elem (charsets nil))
+                         (while (setq elem (pop alist))
+                           (when (and name
+                                      (string-match (car elem) name))
+                             (setq alist nil
+                                   charsets (cdr elem))))
+                         charsets))))
+             gnus-newsgroup-ignored-charsets)))
     (setq gnus-newsgroup-charset
-         (or (and gnus-newsgroup-name
+         (or gnus-newsgroup-ephemeral-charset
+             (and gnus-newsgroup-name
                   (or (gnus-group-find-parameter gnus-newsgroup-name
                                                  'charset)
                       (let ((alist gnus-group-charset-alist)
index f11b824..e524daa 100644 (file)
@@ -1005,6 +1005,29 @@ ARG is passed to the first function."
        (throw 'found nil)))
     t))
 
+(static-if (boundp 'MULE)
+    (defun gnus-write-active-file-as-coding-system (coding-system file hashtb)
+      (let ((output-coding-system coding-system))
+       (with-temp-file file
+         (mapatoms
+          (lambda (sym)
+            (when (and sym (boundp sym))
+              (insert (format "%s %d %d y\n"
+                              (symbol-name sym) (cdr (symbol-value sym))
+                              (car (symbol-value sym))))))
+          hashtb))))
+  (defun gnus-write-active-file-as-coding-system (coding-system file hashtb)
+    (let ((coding-system-for-write coding-system))
+      (with-temp-file file
+       (mapatoms
+        (lambda (sym)
+          (when (and sym (boundp sym))
+            (insert (format "%s %d %d y\n"
+                            (symbol-name sym) (cdr (symbol-value sym))
+                            (car (symbol-value sym))))))
+        hashtb))))
+  )
+
 (provide 'gnus-util)
 
 ;;; gnus-util.el ends here
index 8c75d14..f1748c6 100644 (file)
@@ -266,13 +266,13 @@ is restarted, and sometimes reloaded."
 (defconst gnus-product-name "ET-gnus"
   "Product name of this version of gnus.")
 
-(defconst gnus-version-number "6.11.04"
+(defconst gnus-version-number "6.11.05"
   "Version number for this version of gnus.")
 
-(defconst gnus-revision-number "03"
+(defconst gnus-revision-number "00"
   "Revision number for this version of gnus.")
 
-(defconst gnus-original-version-number "0.89"
+(defconst gnus-original-version-number "0.91"
     "Version number for this version of Gnus.")
 
 (provide 'running-pterodactyl-gnus-0_73-or-later)
index 4ea3da9..d2a5db0 100644 (file)
@@ -66,6 +66,8 @@
                enable-multibyte-characters browse-url-browser-function
                adaptive-fill-first-line-regexp adaptive-fill-regexp
                url-current-mime-headers help-echo-owns-message
+               w3-meta-content-type-charset-regexp
+               w3-meta-charset-content-type-regexp
                babel-translations babel-history))
   (maybe-fbind '(color-instance-rgb-components temp-directory
                 glyph-width annotation-glyph window-pixel-width glyph-height
@@ -86,7 +88,7 @@
                 url-view-url w3-prepare-buffer
                 char-int
                 annotationp delete-annotation make-image-specifier
-                make-annotation
+                make-annotation events-to-keys
                 w3-do-setup w3-region
                 w3-coding-system-for-mime-charset
                 rmail-summary-exists rmail-select-summary rmail-update-summary
index 9139edf..d0db66a 100644 (file)
@@ -2969,12 +2969,15 @@ This sub function is for exclusive use of `message-send-news'."
    (message-check 'from
      (let* ((case-fold-search t)
            (from (message-fetch-field "from"))
-           (ad (nth 1 (std11-extract-address-components from))))
+           ad)
        (cond
        ((not from)
         (message "There is no From line.  Posting is denied.")
         nil)
-       ((or (not (string-match "@[^\\.]*\\." ad)) ;larsi@ifi
+       ((or (not (string-match
+                  "@[^\\.]*\\."
+                  (setq ad (nth 1 (mail-extract-address-components
+                                   from))))) ;larsi@ifi
             (string-match "\\.\\." ad) ;larsi@ifi..uio
             (string-match "@\\." ad)   ;larsi@.ifi.uio
             (string-match "\\.$" ad)   ;larsi@ifi.uio.
@@ -3956,6 +3959,7 @@ OTHER-HEADERS is an alist of header/value pairs."
        from subject date to cc
        references message-id follow-to
        (inhibit-point-motion-hooks t)
+       (message-this-is-mail t)
        mct never-mct mft mrt gnus-warning in-reply-to)
     (save-restriction
       (message-narrow-to-head)
index 00ab939..2c44713 100644 (file)
     ("multipart/related" ignore t))
   "Alist of media types/test that say whether the media types can be displayed inline.")
 
-(defvar mm-user-display-methods
-  '(("image/.*" . inline)
-    ("text/.*" . inline)
-    ("message/delivery-status" . inline)
-    ("message/rfc822" . inline)))
-
-(defvar mm-user-automatic-display
+(defvar mm-inlined-types
+  '("image/.*" "text/.*" "message/delivery-status" "message/rfc822")
+  "List of media types that are to be displayed inline.")
+  
+(defvar mm-automatic-display
   '("text/plain" "text/enriched" "text/richtext" "text/html"
     "text/x-vcard" "image/.*" "message/delivery-status" "multipart/.*"
-    "message/rfc822"))
+    "message/rfc822")
+  "A list of MIME types to be displayed automatically.")
 
 (defvar mm-attachment-override-types
   '("text/plain" "text/x-vcard")
   "Types that should have \"attachment\" ignored if they can be displayed inline.")
 
-(defvar mm-user-automatic-external-display nil
+(defvar mm-automatic-external-display nil
   "List of MIME type regexps that will be displayed externally automatically.")
 
 (defvar mm-discouraged-alternatives nil
-  "List of MIME types that are discouraged when viewing multiapart/alternative.
+  "List of MIME types that are discouraged when viewing multipart/alternative.
 Viewing agents are supposed to view the last possible part of a message,
 as that is supposed to be the richest.  However, users may prefer other
 types instead, and this list says what types are most unwanted.  If,
@@ -226,10 +225,6 @@ to:
       (insert-buffer-substring obuf beg)
       (current-buffer))))
 
-(defun mm-inlinable-part-p (type)
-  "Say whether TYPE can be displayed inline."
-  (eq (mm-user-method type) 'inline))
-
 (defun mm-display-part (handle &optional no-default)
   "Display the MIME part represented by HANDLE.
 Returns nil if the part is removed; inline if displayed inline;
@@ -239,26 +234,22 @@ external if displayed external."
     (if (mm-handle-displayed-p handle)
        (mm-remove-part handle)
       (let* ((type (car (mm-handle-type handle)))
-            (method (mailcap-mime-info type))
-            (user-method (mm-user-method type)))
-       (if (eq user-method 'inline)
+            (method (mailcap-mime-info type)))
+       (if (mm-inlined-p type)
            (progn
              (forward-line 1)
              (mm-display-inline handle)
              'inline)
-         (when (or user-method
-                   method
+         (when (or method
                    (not no-default))
-           (if (and (not user-method)
-                    (not method)
+           (if (and (not method)
                     (equal "text" (car (split-string type))))
                (progn
                  (forward-line 1)
                  (mm-insert-inline handle (mm-get-part handle))
                  'inline)
              (mm-display-external
-              handle (or user-method method
-                         'mailcap-save-binary-file))
+              handle (or method 'mailcap-save-binary-file))
              'external)))))))
 
 (defun mm-display-external (handle method)
@@ -397,21 +388,20 @@ external if displayed external."
       (pop alist))
     test))
 
-(defun mm-user-method (type)
-  "Return the user-defined method for TYPE."
-  (let ((methods mm-user-display-methods)
+(defun mm-automatic-display-p (type)
+  "Say whether the user wants TYPE to be displayed automatically."
+  (let ((methods mm-automatic-display)
        method result)
     (while (setq method (pop methods))
-      (when (string-match (car method) type)
-       (when (or (not (eq (cdr method) 'inline))
-                 (mm-inlinable-p type))
-         (setq result (cdr method)
-               methods nil))))
+      (when (and (string-match method type)
+                (mm-inlinable-p type))
+       (setq result t
+             methods nil)))
     result))
 
-(defun mm-automatic-display-p (type)
-  "Return the user-defined method for TYPE."
-  (let ((methods mm-user-automatic-display)
+(defun mm-inlined-p (type)
+  "Say whether the user wants TYPE to be displayed automatically."
+  (let ((methods mm-inlined-types)
        method result)
     (while (setq method (pop methods))
       (when (and (string-match method type)
@@ -432,7 +422,7 @@ external if displayed external."
 
 (defun mm-automatic-external-display-p (type)
   "Return the user-defined method for TYPE."
-  (let ((methods mm-user-automatic-external-display)
+  (let ((methods mm-automatic-external-display)
        method result)
     (while (setq method (pop methods))
       (when (string-match method type)
@@ -440,11 +430,6 @@ external if displayed external."
              methods nil)))
     result))
 
-(defun add-mime-display-method (type method)
-  "Make parts of TYPE be displayed with METHOD.
-This overrides entries in the mailcap file."
-  (push (cons type method) mm-user-display-methods))
-
 (defun mm-destroy-part (handle)
   "Destroy the data structures connected to HANDLE."
   (when (listp handle)
index 13f3c25..9cdc36d 100644 (file)
@@ -87,7 +87,12 @@ The encoding used is returned."
         (encoding
          (or (and (listp type)
                   (cadr (assq 'encoding type)))
-             (mm-content-transfer-encoding mime-type))))
+             (mm-content-transfer-encoding mime-type)))
+        (bits (mm-body-7-or-8)))
+    ;; We force buffers that are 7bit to be unencoded, no matter
+    ;; what the preferred encoding is.
+    (when (eq bits '7bit)
+      (setq encoding bits))
     (mm-encode-content-transfer-encoding encoding mime-type)
     encoding))
 
index 966cb91..774e3b0 100644 (file)
 
 ;;; Code:
 
-(defvar mm-running-xemacs (string-match "XEmacs" emacs-version))
+(defconst mm-running-xemacs (string-match "XEmacs" emacs-version))
 
-(defvar mm-running-ntemacs
-  (and (not mm-running-xemacs)
-       (string-match "nt\\|windows" system-configuration)))
-
-(defvar mm-binary-coding-system
+(defconst mm-binary-coding-system
   (if mm-running-xemacs
       'binary 'no-conversion)
   "100% binary coding system.")
 
-(defvar mm-text-coding-system
-  (cond
-   ((not (fboundp 'coding-system-p)) nil)
-   (mm-running-xemacs  ;; XEmacs
-    'no-conversion)
-   (mm-running-ntemacs ;; NTEmacs
-    (and (coding-system-p 'raw-text-dos) 'raw-text-dos))
-   ((coding-system-p 'raw-text) 'raw-text) ;; Emacs
-   (t nil))
-  "100% text coding system, for removing ^M.")
+(defconst mm-text-coding-system
+  (and (fboundp 'coding-system-list)
+   (if (memq system-type '(windows-nt ms-dos ms-windows))
+       'raw-text-dos 'raw-text))
+  "Text-safe coding system (For removing ^M).")
 
 (defvar mm-mime-mule-charset-alist
   '((us-ascii ascii)
@@ -59,9 +50,7 @@
     (iso-8859-8 hebrew-iso8859-8)
     (iso-8859-9 latin-iso8859-9)
     (viscii vietnamese-viscii-lower)
-    (iso-2022-jp-2 japanese-jisx0208)
-    (iso-2022-jp latin-jisx0201
-                japanese-jisx0208-1978)
+    (iso-2022-jp latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978)
     (euc-kr korean-ksc5601)
     (cn-gb-2312 chinese-gb2312)
     (cn-big5 chinese-big5-1 chinese-big5-2)
@@ -215,6 +204,8 @@ used as the line break code type of the coding system."
         (mapcar 'mm-mime-charset
                 (delq 'ascii
                       (mm-find-charset-region b e)))))
+    (when (memq 'iso-2022-jp-2 charsets)
+      (setq charsets (delq 'iso-2022-jp charsets)))
     (delete-duplicates charsets)))
 
 (defsubst mm-multibyte-p ()
@@ -299,6 +290,31 @@ See also `with-temp-file' and `with-output-to-string'."
         arg
       (apply 'concat (nconc (nreverse accum) (list (substring arg pos)))))))
 
+(defun mm-auto-mode-alist ()
+  "Return an `auto-mode-alist' with only the .gz (etc) thingies."
+  (let ((alist auto-mode-alist)
+       out)
+    (while alist
+      (when (listp (cdar alist))
+       (push (car alist) out))
+      (pop alist))
+    (nreverse out)))
+
+(defun mm-insert-file-contents (filename &optional visit beg end replace)
+  "Like `insert-file-contents', q.v., but only reads in the file.
+A buffer may be modified in several ways after reading into the buffer due
+to advanced Emacs features, such as file-name-handlers, format decoding,
+find-file-hooks, etc.
+  This function ensures that none of these modifications will take place."
+  (let ((format-alist nil)
+       (auto-mode-alist (mm-auto-mode-alist))
+       (default-major-mode 'fundamental-mode)
+       (enable-local-variables nil)
+        (after-insert-file-functions nil)
+       (enable-local-eval nil)
+       (find-file-hooks nil))
+    (insert-file-contents filename visit beg end replace)))
+
 (provide 'mm-util)
 
 ;;; mm-util.el ends here
index 4121aa1..e360071 100644 (file)
@@ -1,13 +1,11 @@
 ;;; mm-uu.el -- Return uu stuffs as mm handles
-;; Copyright (c) 1998 by Shenghuo Zhu <zsh@cs.rochester.edu>
+;; Copyright (c) 1998,99 by Shenghuo Zhu
 
 ;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
-;; $Revision: 1.1.2.11 $
-;; Keywords: news postscript uudecode binhex shar
+;; Keywords: postscript uudecode binhex shar forward
+
+;; This file is part of pgnus.
 
-;; This file is not part of GNU Emacs, but the same permissions
-;; apply.
-;;
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation; either version 2, or (at your option)
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
-;;
+
 ;; You should have received a copy of the GNU General Public License
 ;; along with GNU Emacs; see the file COPYING.  If not, write to the
 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 ;; Boston, MA 02111-1307, USA.
 
 ;;; Commentary:
-;;
+
 
 ;;; Code:
 
+(require 'mail-parse)
+(require 'message)
+(require 'nnheader)
+(require 'mm-decode)
 (require 'gnus-mailcap)
 
 (eval-and-compile
 (defconst mm-uu-shar-begin-line "^#! */bin/sh")
 (defconst mm-uu-shar-end-line "^exit 0")
 
-(defvar mm-uu-begin-line
+;;; Thanks to Edward J. Sabol <sabol@alderaan.gsfc.nasa.gov> and 
+;;; Peter von der Ah\'e <pahe@daimi.au.dk>
+(defconst mm-uu-forward-begin-line "^-+ \\(Start of \\)?Forwarded message")
+(defconst mm-uu-forward-end-line "^-+ End of forwarded message")
+
+(defconst mm-uu-begin-line
   (concat mm-uu-postscript-begin-line "\\|"
          mm-uu-uu-begin-line "\\|"
          mm-uu-binhex-begin-line "\\|"
-         mm-uu-shar-begin-line))
+         mm-uu-shar-begin-line "\\|"
+         mm-uu-forward-begin-line))
 
-(defvar mm-uu-identifier-alist
-  '((?% . postscript) (?b . uu) (?: . binhex) (?# . shar)))
+(defconst mm-uu-identifier-alist
+  '((?% . postscript) (?b . uu) (?: . binhex) (?# . shar)
+    (?- . forward)))
 
 (defvar mm-dissect-disposition "inline"
   "The default disposition of uu parts.
@@ -79,7 +88,9 @@ This can be either \"inline\" or \"attachment\".")
 (defun mm-uu-dissect ()
   "Dissect the current buffer and return a list of uu handles."
   (let (ct ctl cte charset text-start start-char end-char
-          type file-name end-line result text-plain-type)
+          type file-name end-line result text-plain-type 
+          start-char-1 end-char-1
+          (case-fold-search t))
     (save-excursion
       (save-restriction
        (mail-narrow-to-head)
@@ -99,9 +110,9 @@ This can be either \"inline\" or \"attachment\".")
                                  (if charset
                                      (list (cons 'charset charset)))))
       (while (re-search-forward mm-uu-begin-line nil t)
-       (beginning-of-line)
-       (setq start-char (point))
+       (setq start-char (match-beginning 0))
        (forward-line) ;; in case of failure
+       (setq start-char-1 (point))
        (setq type (cdr (assq (aref (match-string 0) 0)
                              mm-uu-identifier-alist)))
        (setq file-name
@@ -114,6 +125,7 @@ This can be either \"inline\" or \"attachment\".")
                        (intern (concat "mm-uu-" (symbol-name type)
                                        "-end-line"))))
        (when (re-search-forward end-line nil t)
+         (setq end-char-1 (match-beginning 0))
          (forward-line)
          (setq end-char (point))
          (when (or (not (eq type 'binhex))
@@ -130,6 +142,9 @@ This can be either \"inline\" or \"attachment\".")
              ((eq type 'postscript)
               (mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
                     '("application/postscript")))
+             ((eq type 'forward)
+              (mm-make-handle (mm-uu-copy-to-buffer start-char-1 end-char-1)
+                    '("message/rfc822")))
              ((eq type 'uu)
               (mm-make-handle (mm-uu-copy-to-buffer start-char end-char)
                     (list (or (and file-name
@@ -174,7 +189,8 @@ This can be either \"inline\" or \"attachment\".")
       (mail-narrow-to-head)
       (goto-char (point-max)))
     (forward-line)
-    (let (type end-line result)
+    (let (type end-line result
+              (case-fold-search t))
       (while (and (not result) (re-search-forward mm-uu-begin-line nil t))
        (forward-line)
        (setq type (cdr (assq (aref (match-string 0) 0)
index 9e48939..808c066 100644 (file)
@@ -33,9 +33,6 @@
   (autoload 'vcard-parse-string "vcard")
   (autoload 'vcard-format-string "vcard"))
 
-;; Avoid byte compile warnings for the use of old W3.
-(defvar w3-meta-content-type-charset-regexp)
-(defvar w3-meta-charset-content-type-regexp)
 ;; Avoid byte compile warning.
 (defvar gnus-article-mime-handles)
 
@@ -95,7 +92,8 @@
                               (buffer-substring-no-properties 
                                (match-beginning 2) 
                                (match-end 2)))))
-           (mm-decode-body charset)
+           (delete-region (point-min) (point-max))
+           (insert (mm-decode-string text charset))
            (save-window-excursion
              (save-restriction
                (let ((w3-strict-width width)
index 16c7341..a77c615 100644 (file)
             ((cdr (assq 'buffer cont))
              (insert-buffer-substring (cdr (assq 'buffer cont))))
             ((setq filename (cdr (assq 'filename cont)))
-             (insert-file-contents filename))
+             (mm-insert-file-contents filename))
             (t
              (save-restriction
                (narrow-to-region (point) (point))
           ((cdr (assq 'buffer cont))
            (insert-buffer-substring (cdr (assq 'buffer cont))))
           ((setq filename (cdr (assq 'filename cont)))
-           (insert-file-contents filename))
+           (mm-insert-file-contents filename))
           (t
            (insert (cdr (assq 'contents cont)))))
          (setq encoding (mm-encode-buffer type)
         ((cdr (assq 'buffer cont))
          (insert-buffer-substring (cdr (assq 'buffer cont))))
         ((setq filename (cdr (assq 'filename cont)))
-         (insert-file-contents filename))
+         (mm-insert-file-contents filename))
         (t
          (insert (cdr (assq 'contents cont)))))
        (goto-char (point-min))
index 2c30f2d..1a5bcf8 100644 (file)
@@ -90,7 +90,15 @@ time saver for large mailboxes.")
 (defvoo nnfolder-buffer-alist nil)
 (defvoo nnfolder-scantime-alist nil)
 (defvoo nnfolder-active-timestamp nil)
-(defvoo nnfolder-file-coding-system nnmail-file-coding-system-1)
+(defvoo nnfolder-active-file-coding-system
+    (if (memq system-type '(windows-nt ms-dos ms-windows))
+       'raw-text-dos 'raw-text))
+(defvoo nnfolder-active-file-coding-system-for-write 
+    nnmail-active-file-coding-system)
+(defvoo nnfolder-file-coding-system nnfolder-active-file-coding-system)
+(defvoo nnfolder-file-coding-system-for-write nnheader-file-coding-system
+  "Coding system for save nnfolder file.
+If NIL, NNFOLDER-FILE-CODING-SYSTEM is used.")
 
 \f
 
@@ -267,15 +275,14 @@ time saver for large mailboxes.")
   (when group
     (unless (assoc group nnfolder-group-alist)
       (push (list group (cons 1 0)) nnfolder-group-alist)
-      (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+      (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
       (nnfolder-read-folder group)))
   t)
 
 (deffoo nnfolder-request-list (&optional server)
   (nnfolder-possibly-change-group nil server)
   (save-excursion
-    (let ((nnmail-file-coding-system nnmail-active-file-coding-system)
-         (pathname-coding-system 'binary))
+    (let ((nnmail-file-coding-system nnfolder-active-file-coding-system))
       (nnmail-find-file nnfolder-active-file)
       (setq nnfolder-group-alist (nnmail-get-active)))
     t))
@@ -287,7 +294,8 @@ time saver for large mailboxes.")
 (deffoo nnfolder-request-list-newsgroups (&optional server)
   (nnfolder-possibly-change-group nil server)
   (save-excursion
-    (nnmail-find-file nnfolder-newsgroups-file)))
+    (let ((nnmail-file-coding-system nnfolder-file-coding-system))
+      (nnmail-find-file nnfolder-newsgroups-file))))
 
 (deffoo nnfolder-request-expire-articles
   (articles newsgroup &optional server force)
@@ -320,7 +328,7 @@ time saver for large mailboxes.")
        (nnheader-message 5 "Deleting articles...done"))
       (nnfolder-save-buffer)
       (nnfolder-adjust-min-active newsgroup)
-      (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+      (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
       (nconc rest articles))))
 
 (deffoo nnfolder-request-move-article (article group server
@@ -352,7 +360,7 @@ time saver for large mailboxes.")
         (when last
           (nnfolder-save-buffer)
           (nnfolder-adjust-min-active group)
-          (nnmail-save-active nnfolder-group-alist nnfolder-active-file))))
+          (nnfolder-save-active nnfolder-group-alist nnfolder-active-file))))
       result)))
 
 (deffoo nnfolder-request-accept-article (group &optional server last)
@@ -390,7 +398,7 @@ time saver for large mailboxes.")
           (nnfolder-save-buffer)
           (when nnmail-cache-accepted-message-ids
             (nnmail-cache-close)))))
-      (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+      (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
       (unless result
        (nnheader-report 'nnfolder "Couldn't store article"))
       result)))
@@ -433,7 +441,7 @@ time saver for large mailboxes.")
        nnfolder-current-group nil
        nnfolder-current-buffer nil)
   ;; Save the active file.
-  (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+  (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
   t)
 
 (deffoo nnfolder-request-rename-group (group new-name &optional server)
@@ -452,7 +460,7 @@ time saver for large mailboxes.")
           (setq nnfolder-current-buffer nil
                 nnfolder-current-group nil)
           ;; Save the new group alist.
-          (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+          (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
           ;; We kill the buffer instead of renaming it and stuff.
           (kill-buffer (current-buffer))
           t))))
@@ -541,14 +549,14 @@ deleted.  Point is left where the deleted region was."
   ;; Change group.
   (when (and group
             (not (equal group nnfolder-current-group)))
-    (let ((pathname-coding-system 'binary))
+    (let ((pathname-coding-system nnmail-pathname-coding-system))
       (nnmail-activate 'nnfolder)
       (when (and (not (assoc group nnfolder-group-alist))
                 (not (file-exists-p
                       (nnfolder-group-pathname group))))
        ;; The group doesn't exist, so we create a new entry for it.
        (push (list group (cons 1 0)) nnfolder-group-alist)
-       (nnmail-save-active nnfolder-group-alist nnfolder-active-file))
+       (nnfolder-save-active nnfolder-group-alist nnfolder-active-file))
 
       (if dont-check
          (setq nnfolder-current-group group
@@ -578,7 +586,10 @@ deleted.  Point is left where the deleted region was."
              ;; See whether we need to create the new file.
              (unless (file-exists-p file)
                (gnus-make-directory (file-name-directory file))
-               (nnmail-write-region 1 1 file t 'nomesg))
+               (let ((nnmail-file-coding-system 
+                      (or nnfolder-file-coding-system-for-write
+                          nnfolder-file-coding-system)))
+                 (nnmail-write-region 1 1 file t 'nomesg)))
              (when (setq nnfolder-current-buffer (nnfolder-read-folder group))
                (set-buffer nnfolder-current-buffer)
                (push (list group nnfolder-current-buffer)
@@ -666,7 +677,7 @@ deleted.  Point is left where the deleted region was."
       (when inf
        (setq nnfolder-buffer-alist (delq inf nnfolder-buffer-alist)))
       (when nnfolder-group-alist
-       (nnmail-save-active nnfolder-group-alist nnfolder-active-file))
+       (nnfolder-save-active nnfolder-group-alist nnfolder-active-file))
       (push (list group (nnfolder-read-folder group))
            nnfolder-buffer-alist))))
 
@@ -688,7 +699,7 @@ deleted.  Point is left where the deleted region was."
 (defun nnfolder-read-folder (group)
   (let* ((file (nnfolder-group-pathname group))
         (buffer (set-buffer
-                 (let ((nnmail-file-coding-system
+                 (let ((nnheader-file-coding-system 
                         nnfolder-file-coding-system))
                    (nnheader-find-file-noselect file)))))
     (if (equal (cadr (assoc group nnfolder-scantime-alist))
@@ -772,7 +783,7 @@ deleted.  Point is left where the deleted region was."
 
          (set-marker end nil)
          ;; Make absolutely sure that the active list reflects reality!
-         (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
+         (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
          ;; Set the scantime for this group.
          (setq newscantime (visited-file-modtime))
          (if scantime
@@ -823,7 +834,16 @@ This command does not work if you use short group names."
   (when (buffer-modified-p)
     (run-hooks 'nnfolder-save-buffer-hook)
     (gnus-make-directory (file-name-directory (buffer-file-name)))
-    (save-buffer)))
+    (let ((coding-system-for-write 
+          (or nnfolder-file-coding-system-for-write
+              nnfolder-file-coding-system)))
+      (save-buffer))))
+
+(defun nnfolder-save-active (group-alist active-file)
+  (let ((nnmail-active-file-coding-system
+        (or nnfolder-active-file-coding-system-for-write
+            nnfolder-active-file-coding-system)))
+    (nnmail-save-active group-alist active-file)))
 
 (provide 'nnfolder)
 
index 9d67fb9..9f1bfc6 100644 (file)
@@ -419,17 +419,15 @@ parameter.  It should return nil, `warn' or `delete'."
 (defun nnmail-request-post (&optional server)
   (mail-send-and-exit nil))
 
-(defvar nnmail-file-coding-system 'binary
+(defvar nnmail-file-coding-system 'raw-text
   "Coding system used in nnmail.")
 
-(defvar nnmail-file-coding-system-1
-  (if (string-match "nt\\|windows" system-configuration)
-      'raw-text-dos 'binary)
-  "Another coding system used in nnmail.")
-
 (defvar nnmail-incoming-coding-system 'raw-text
   "Coding system used in reading inbox")
 
+(defvar nnmail-pathname-coding-system 'binary
+  "*Coding system for pathname.")
+
 (defun nnmail-find-file (file)
   "Insert FILE in server buffer safely."
   (set-buffer nntp-server-buffer)
@@ -438,15 +436,12 @@ parameter.  It should return nil, `warn' or `delete'."
         (after-insert-file-functions nil))
     (condition-case ()
        (let ((auto-mode-alist (nnheader-auto-mode-alist))
-             (pathname-coding-system nnmail-file-coding-system))
+             (pathname-coding-system nnmail-pathname-coding-system))
          (insert-file-contents-as-coding-system
           nnmail-file-coding-system file)
          t)
       (file-error nil))))
 
-(defvar nnmail-pathname-coding-system 'binary
-  "*Coding system for pathname.")
-
 (defun nnmail-group-pathname (group dir &optional file)
   "Make pathname for GROUP."
   (concat
@@ -481,7 +476,7 @@ nn*-request-list should have been called before calling this function."
              group-assoc)))
     group-assoc))
 
-(defvar nnmail-active-file-coding-system 'binary
+(defvar nnmail-active-file-coding-system 'raw-text
   "*Coding system for active file.")
 
 (defun nnmail-save-active (group-assoc file-name)
@@ -1459,7 +1454,8 @@ See the documentation for the variable `nnmail-split-fancy' for documentation."
 
 (defun nnmail-write-region (start end filename &optional append visit lockname)
   "Do a `write-region', and then set the file modes."
-  (let ((pathname-coding-system 'binary))
+  (let ((pathname-coding-system nnmail-pathname-coding-system))
+    
     (write-region-as-coding-system
      nnmail-file-coding-system start end filename append visit lockname)
     (set-file-modes filename nnmail-default-file-modes)))
index 9abbe48..d2d9abe 100644 (file)
@@ -29,6 +29,7 @@
 (require 'nnmail)
 (require 'nnoo)
 (eval-when-compile (require 'cl))
+(eval-when-compile (require 'static))
 
 (nnoo-declare nnmbox)
 
 (defvoo nnmbox-group-alist nil)
 (defvoo nnmbox-active-timestamp nil)
 
+(defvoo nnmbox-file-coding-system
+    (if (memq system-type '(windows-nt ms-dos ms-windows))
+       'raw-text-dos 'raw-text))
+(defvoo nnmbox-file-coding-system-for-write nil)
+(defvoo nnmbox-active-file-coding-system nnmbox-file-coding-system)
+(defvoo nnmbox-active-file-coding-system-for-write nil)
+
 \f
 
 ;;; Interface functions
                       (1+ (- (cdr active) (car active)))
                       (car active) (cdr active) group)))))
 
+(static-if (boundp 'MULE)
+    (defun nnmbox-save-buffer ()
+      (let ((output-coding-system
+            (or nnmbox-file-coding-system-for-write
+                nnmbox-file-coding-system)))
+       (save-buffer)))
+  (defun nnmbox-save-buffer ()
+    (let ((coding-system-for-write
+          (or nnmbox-file-coding-system-for-write
+              nnmbox-file-coding-system)))
+      (save-buffer)))
+  )
+
+(defun nnmbox-save-active (group-alist active-file)
+  (let ((nnmail-active-file-coding-system
+        (or nnmbox-active-file-coding-system-for-write
+            nnmbox-active-file-coding-system)))
+    (nnmail-save-active group-alist active-file)))
+
 (deffoo nnmbox-request-scan (&optional group server)
   (nnmbox-possibly-change-newsgroup group server)
   (nnmbox-read-mbox)
    (lambda ()
      (save-excursion
        (set-buffer nnmbox-mbox-buffer)
-       (save-buffer)))
+       (nnmbox-save-buffer)))
    (file-name-directory nnmbox-mbox-file)
    group
    (lambda ()
         (set-buffer nnmbox-mbox-buffer)
         (goto-char (point-max))
         (insert-buffer-substring in-buf)))
-     (nnmail-save-active nnmbox-group-alist nnmbox-active-file))))
+     (nnmbox-save-active nnmbox-group-alist nnmbox-active-file))))
 
 (deffoo nnmbox-close-group (group &optional server)
   t)
   (unless (assoc group nnmbox-group-alist)
     (push (list group (cons 1 0))
          nnmbox-group-alist)
-    (nnmail-save-active nnmbox-group-alist nnmbox-active-file))
+    (nnmbox-save-active nnmbox-group-alist nnmbox-active-file))
   t)
 
 (deffoo nnmbox-request-list (&optional server)
   (save-excursion
-    (nnmail-find-file nnmbox-active-file)
+    (let ((nnmail-file-coding-system
+          nnmbox-active-file-coding-system))
+      (nnmail-find-file nnmbox-active-file))
     (setq nnmbox-group-alist (nnmail-get-active))
     t))
 
                (nnmbox-delete-mail))
            (push (car articles) rest)))
        (setq articles (cdr articles)))
-      (save-buffer)
+      (nnmbox-save-buffer)
       ;; Find the lowest active article in this group.
       (let ((active (nth 1 (assoc newsgroup nnmbox-group-alist))))
        (goto-char (point-min))
                    (<= (car active) (cdr active)))
          (setcar active (1+ (car active)))
          (goto-char (point-min))))
-      (nnmail-save-active nnmbox-group-alist nnmbox-active-file)
+      (nnmbox-save-active nnmbox-group-alist nnmbox-active-file)
       (nconc rest articles))))
 
 (deffoo nnmbox-request-move-article
        (goto-char (point-min))
        (when (search-forward (nnmbox-article-string article) nil t)
         (nnmbox-delete-mail))
-       (and last (save-buffer))))
+       (and last (nnmbox-save-buffer))))
     result))
 
 (deffoo nnmbox-request-accept-article (group &optional server last)
        (when last
         (when nnmail-cache-accepted-message-ids
           (nnmail-cache-close))
-        (nnmail-save-active nnmbox-group-alist nnmbox-active-file)
-        (save-buffer))))
+        (nnmbox-save-active nnmbox-group-alist nnmbox-active-file)
+        (nnmbox-save-buffer))))
     result))
 
 (deffoo nnmbox-request-replace-article (article group buffer)
        nil
       (nnmbox-delete-mail t t)
       (insert-buffer-substring buffer)
-      (save-buffer)
+      (nnmbox-save-buffer)
       t)))
 
 (deffoo nnmbox-request-delete-group (group &optional force server)
          (setq found t)
          (nnmbox-delete-mail))
        (when found
-         (save-buffer)))))
+         (nnmbox-save-buffer)))))
   ;; Remove the group from all structures.
   (setq nnmbox-group-alist
        (delq (assoc group nnmbox-group-alist) nnmbox-group-alist)
        nnmbox-current-group nil)
   ;; Save the active file.
-  (nnmail-save-active nnmbox-group-alist nnmbox-active-file)
+  (nnmbox-save-active nnmbox-group-alist nnmbox-active-file)
   t)
 
 (deffoo nnmbox-request-rename-group (group new-name &optional server)
        (replace-match new-ident t t)
        (setq found t))
       (when found
-       (save-buffer))))
+       (nnmbox-save-buffer))))
   (let ((entry (assoc group nnmbox-group-alist)))
     (when entry
       (setcar entry new-name))
     (setq nnmbox-current-group nil)
     ;; Save the new group alist.
-    (nnmail-save-active nnmbox-group-alist nnmbox-active-file)
+    (nnmbox-save-active nnmbox-group-alist nnmbox-active-file)
     t))
 
 \f
            (not (buffer-name nnmbox-mbox-buffer)))
     (save-excursion
       (set-buffer (setq nnmbox-mbox-buffer
-                       (nnheader-find-file-noselect
-                        nnmbox-mbox-file nil t)))
+                       (let ((nnheader-file-coding-system
+                              nnmbox-file-coding-system))
+                         (nnheader-find-file-noselect
+                          nnmbox-mbox-file nil t))))
       (buffer-disable-undo)))
   (when (not nnmbox-group-alist)
     (nnmail-activate 'nnmbox))
 
 (defun nnmbox-create-mbox ()
   (when (not (file-exists-p nnmbox-mbox-file))
-    (nnmail-write-region 1 1 nnmbox-mbox-file t 'nomesg)))
+    (let ((nnmail-file-coding-system
+          nnmbox-file-coding-system-for-write))
+      (nnmail-write-region 1 1 nnmbox-mbox-file t 'nomesg))))
 
 (defun nnmbox-read-mbox ()
   (nnmail-activate 'nnmbox)
            (alist nnmbox-group-alist)
            start end number)
        (set-buffer (setq nnmbox-mbox-buffer
-                         (nnheader-find-file-noselect
-                          nnmbox-mbox-file nil t)))
+                         (let ((nnheader-file-coding-system
+                                nnmbox-file-coding-system))
+                           (nnheader-find-file-noselect
+                            nnmbox-mbox-file nil t))))
        (buffer-disable-undo)
 
        ;; Go through the group alist and compare against
index e47448c..b9b2661 100644 (file)
@@ -86,7 +86,7 @@ all.  This may very well take some time.")
 
 (defvar nnml-nov-buffer-file-name nil)
 
-(defvoo nnml-file-coding-system nnmail-file-coding-system-1)
+(defvoo nnml-file-coding-system nnmail-file-coding-system)
 
 \f
 
index e50a5a4..50fd046 100644 (file)
@@ -24,7 +24,7 @@
 ;;; Code:
 
 (defvar quoted-printable-encoding-characters
-  (mapcar 'identity "0123456789ABCDEF"))
+  (mapcar 'identity "0123456789ABCDEFabcdef"))
 
 (defun quoted-printable-decode-region (from to)
   "Decode quoted-printable in the region between FROM and TO."
index a389d36..6e7512c 100644 (file)
@@ -195,7 +195,14 @@ Should be called narrowed to the head of the message."
         (first t))
     (save-restriction
       (narrow-to-region b e)
-      (mm-encode-coding-region b e mime-charset)
+      (when (eq encoding 'B)
+       ;; break into lines before encoding
+       (goto-char (point-min))
+       (while (not (eobp))
+         (goto-char (min (point-max) (+ 15 (point))))
+         (unless (eobp)
+           (insert "\n"))))
+      (mm-encode-coding-region (point-min) (point-max) mime-charset)
       (funcall (cdr (assq encoding rfc2047-encoding-function-alist))
               (point-min) (point-max))
       (goto-char (point-min))
@@ -231,12 +238,13 @@ Should be called narrowed to the head of the message."
 
 (defun rfc2047-b-encode-region (b e)
   "Encode the header contained in REGION with the B encoding."
-  (base64-encode-region b e t)
-  (goto-char (point-min))
-  (while (not (eobp))
-    (goto-char (min (point-max) (+ 64 (point))))
-    (unless (eobp)
-      (insert "\n"))))
+  (save-restriction
+    (narrow-to-region (goto-char b) e)
+    (while (not (eobp))
+      (base64-encode-region (point) (progn (end-of-line) (point)) t)
+      (if (and (bolp) (eolp))
+         (delete-backward-char 1))
+      (forward-line))))
 
 (defun rfc2047-q-encode-region (b e)
   "Encode the header contained in REGION with the Q encoding."
index 842a037..34b416e 100644 (file)
@@ -180,6 +180,8 @@ above them."
           (glyph (make-glyph
                   (list
                    (cons 'x (expand-file-name pixmap smiley-data-directory))
+                   (cons 'mswindows
+                         (expand-file-name pixmap smiley-data-directory))
                    (cons 'tty smiley)))))
       (setq smiley-glyph-cache (cons (cons pixmap glyph) smiley-glyph-cache))
       (set-glyph-face glyph 'default)
@@ -228,7 +230,7 @@ above them."
 ;;;###autoload
 (defun smiley-buffer (&optional buffer st nd)
   (interactive)
-  (when (featurep 'x)
+  (when (featurep '(or x mswindows))
     (save-excursion
       (when buffer
        (set-buffer buffer))
index 2d6386b..83731fa 100644 (file)
@@ -1,3 +1,8 @@
+1999-07-04 04:33:50  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus.texi (Posting Styles): Fix.
+       (Mail in a Newsreader): New.
+
 1999-06-13 02:29:22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus.texi (MIME Commands): Addition.
index e40194a..5e805fa 100644 (file)
@@ -742,9 +742,10 @@ other programs to do things based on the list of @dfn{handles} that are
 returned as a result of this analysis.
 
 @menu
-* Dissection::  Analyzing a @sc{mime} message.
-* Handles::     Handle manipulations.
-* Display::     Displaying handles.
+* Dissection::     Analyzing a @sc{mime} message.
+* Handles::        Handle manipulations.
+* Display::        Displaying handles.
+* Customization::  Variables that affect display.
 @end menu
 
 
@@ -843,6 +844,58 @@ Prompt for a mailcap method to use to view the part.
 @end table
 
 
+@node Customization
+@section Customization
+
+@table @code
+
+@item mm-inline-media-tests
+This is an alist where the key is a @sc{mime} type, the second element
+is a function to display the part @dfn{inline} (i.e., inside Emacs), and 
+the third element is a form to be @code{eval}ed to say whether the part
+can be displayed inline.
+
+This variable specifies whether a part @emph{can} be displayed inline,
+and, if so, how to do it.  It does not say whether parts are
+@emph{actually} displayed inline.
+
+@item mm-inlines-types
+This, on the other hand, says what types are to be displayed inline, if
+they satisfy the conditions set by the variable above.  It's a list of
+@sc{mime} media types.
+
+@item mm-automatic-display
+This is a list of types that are to be displayed ``automatically'', but
+only if the above variable allows it.  That is, only inlinable parts are 
+usually displayed automatically, but in the end, this is up to the
+display agent that's using the @sc{mime} library.
+
+@item mm-attachment-override-types
+Some @sc{mime} agents create parts that have a content-disposition of
+@samp{attachment}.  This variable allows overriding that disposition and 
+displaying the part inline.
+
+@item mm-discouraged-alternatives
+List of @sc{mime} types that are discouraged when viewing
+@samp{multipart/alternative}.  Viewing agents are supposed to view the
+last possible part of a message, as that is supposed to be the richest.
+However, users may prefer other types instead, and this list says what
+types are most unwanted.  If, for instance, @samp{text/html} parts are
+very unwanted, and @samp{text/richtech} parts are somewhat unwanted,
+then the value of this variable should be set to:
+
+@lisp
+("text/html" "text/richtext")
+@end lisp
+
+@item mm-all-images-fit
+If non-@code{nil}, all images will be deemed to fit into the buffer,
+even when they don't.
+
+@end table
+
+
+
 @node Composing
 @chapter Composing
 @cindex Composing
index 452915b..27bb6dd 100644 (file)
@@ -8307,12 +8307,11 @@ Gnus \e$B$O30$X=P$F9T$/A4$F$N%a%C%;!<%8$K!"0l$D$+$=$l0J>e$N$=$N%5!<%P!<$N%0%k!<\e(
 \e$B$G$"$k;v$,$G$-$^$9!#\e(B
 
 \e$B$b$7!":n@.$7$h$&$H$7$F$$$k%a%C%;!<%8$,%K%e!<%95-;v$+%a!<%k%a%C%;!<%8$G$"\e(B
-\e$B$k$+$rD4$Y$?$$$H$-$O!"\e(B2\e$B$D$NF0E*$KB+G{$5$l$kJQ?t\e(B 
-@code{message-this-is-news} \e$B$H\e(B @code{message-thiss-is-mail} \e$B$rD4$Y$k;v$,\e(B
-\e$B$G$-$^$9!#\e(B
+\e$B$k$+$rD4$Y$?$$$H$-$O!"\e(B2\e$B$D$N4X?t\e(B @code{message-news-p} \e$B$H\e(B 
+@code{message-mail-p} \e$B$r;H$&$3$H$K$h$C$FCN$k;v$,$G$-$^$9!#\e(B
 
-@vindex message-this-is-mail
-@vindex message-this-is-news
+@findex message-mail-p
+@findex message-news-p
 
 \e$B$=$7$F!"$3$l$ONc$G$9\e(B:
 
@@ -8327,9 +8326,9 @@ Gnus \e$B$O30$X=P$F9T$/A4$F$N%a%C%;!<%8$K!"0l$D$+$=$l0J>e$N$=$N%5!<%P!<$N%0%k!<\e(
          (signature my-funny-signature-randomizer))
         ((equal (system-name) "gnarly")
          (signature my-quote-randomizer))
-        (message-this-is-news
+        ((message-news-p)
          (signature my-news-signature))
-        (posting-from-work-p
+        ((posting-from-work-p)
          (signature-file "~/.work-signature")
          (address "user@@bar.foo")
          (body "You are fired.\n\nSincerely, your boss.")
@@ -9226,6 +9225,7 @@ W3 \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$&$KDj5
 \e$B$+!)\e(B \e$B$$$d!"$b$A$m$s$G$-$^$9!#\e(B
 
 @menu
+* Mail in a Newsreader:: \e$B%K%e!<%9%j!<%@$G%a!<%k\e(B (\e$BBg;v$JA0CV$-\e(B)\e$B!#\e(B
 * Getting Started Reading Mail:: \e$B4JC1$JNAM}K\$N$h$&$JNc!#\e(B
 * Splitting Mail::               \e$B$I$N$h$&$K%a!<%k%0%k!<%W$r:n@.$9$k$+!#\e(B
 * Mail Backend Variables::       \e$B%a!<%k$N07$$$r%+%9%?%^%$%:$9$k$?$a$NJQ?t!#\e(B
@@ -9240,6 +9240,58 @@ W3 \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$&$KDj5
 @end menu
 
 
+@node Mail in a Newsreader
+@subsection \e$B%K%e!<%9%j!<%@$G%a!<%k\e(B (\e$BBg;v$JA0CV$-\e(B)
+
+\e$B$"$J$?$,EAE}E*$J%a!<%k%j!<%@$+$i\e(B gnus \e$B$K>h$j49$($k$3$H$r7hCG$7$?$J$i$P!"\e(B
+\e$B$"$J$?$O$$$m$$$m$J%+%k%A%c!<%7%g%C%/$r<u$1$k$3$H$G$7$g$&!#\e(B
+
+gnus \e$B$OEAE}E*$J%a!<%k%j!<%@$N$h$&$J$U$k$^$$$r$7$^$;$s!#$"$J$?$,K>$`$J\e(B
+\e$B$i$=$N$h$&$K$b$G$-$^$9$,!"$=$l$O9|@^$jB;$N$/$?$S$lLY$1$G$9!#\e(B
+
+gnus \e$B$O$U$D$&F1$8<jK!$G$9$Y$F$N%0%k!<%W$r07$$$^$9!#$"$J$?$O$"$k%0%k!<\e(B
+\e$B%W$rA*$s$G?7$7$$\e(B/\e$BL$FI$N5-;v$rFI$`!"$=$7$FFI$s$@5-;v$O4{FI$H$7$F%^!<%/\e(B
+\e$B$5$l$k!#$"$J$?$,L\$K$9$k$N$O\e(B (\e$B$"$J$?$,0U?^E*$K?R$M$J$1$l$P\e(B) \e$B$=$l$@$1$G\e(B
+\e$B$9!#$3$l$C$F$H$F$b%K%e!<%9%j!<%@E*$G$7$g!#\e(B
+
+\e$B$"$J$?$O5-;v$r>C$9$?$a$KFCJL$JA`:n$O$7$^$;$s!#\e(B
+
+\e$B$3$N$3$H$O4{FI$N5-;v$O$9$Y$F>C$5$l$F$7$^$&$3$H$r0UL#$9$k$N$+$C$F\e(B? \e$B$=$j$c\e(B
+\e$B$"$s$^$j$G$9$h$M\e(B!
+
+\e$B$=$&$G$O$"$j$^$;$s!#8E$$5-;v$O$$$m$s$J;EAH$_$K$h$C$F\e(B @dfn{expire} \e$B$5$l\e(B
+\e$B$k$N$G$9!#%K%e!<%95-;v$O%K%e!<%9$N4IM}?M\e(B (\e$B$,4IM}$7$F$$$k%5!<%P\e(B) \e$B$K$h$C\e(B
+\e$B$F\e(B expire \e$B$N=hM}$,@)8f$5$l!"%a!<%k$N\e(B expire \e$B$N=hM}$O$"$J$?$,@)8f$7$^$9!#\e(B
+\e$B%a!<%k$N\e(B expire \e$B$K$D$$$F$O\e(B @pxref{Expiring Mail} \e$B$r;2>H$7$F2<$5$$!#\e(B
+
+\e$B$7$P$i$/%a!<%k$H%K%e!<%9$NN>J}$r;H$C$F$_$l$P!"G[Aw$N;EAH$_$N0c$$$,=EMW\e(B
+\e$B$G$O$J$$$3$H$K5$$,IU$-$^$9!#Bg;v$J$N$O5-;v$r<u$1<h$k4Q=0$N?t$J$N$G$9!#\e(B
+
+\e$BB?$/$N?M$?$A$OJ#?t$N%a!<%j%s%0%j%9%H$r9VFI$7$F$$$^$9!#$=$l$i$O\e(B SMTP \e$B$G\e(B
+\e$BG[Aw$5$l$k!"%a!<%k!"$G$9!#$"$k?M$?$A$O>.?M?t$KMxMQ$5$l$F$$$k%m!<%+%k\e(B
+\e$B%K%e!<%9%0%k!<%W$r9VFI$7$F$$$^$9!#$=$l$i$O\e(B NNTP \e$B$GG[Aw$5$l$k!"%K%e!<%9!"\e(B
+\e$B$G$9!#\e(B
+
+\e$BG[Aw$N;EAH$_$N0c$$$O$I$&$G$b$h$$$3$H$G!"Bg;v$J$N$O5-;v$,\e(B @dfn{personal}
\e$B$J$b$N$+\e(B @dfn{public} \e$B$J$b$N$+$H$$$&$3$H$G$9!#$3$l$iFs$D$N<oN`$K1~$8\e(B
+\e$B$F!"B?$/$N%f!<%6$O\e(B gnus \e$B$NF0:n$rHyL/$K@Z$jBX$($^$9!#\e(B
+
+\e$B$"$k?M$?$A$O\e(B gnus (\e$B$($C$X$s\e(B) \e$B$N$d$j$+$?$KK~B-$G$-$J$/$F!"\e(Bgnus \e$B$,%a!<%k\e(B
+\e$B%j!<%@$K$J$k$3$H$rM_$7$^$9!#\e(Bgnus \e$B$r$b$C$H%a!<%k%j!<%@E*$J$b$N$K$9$k$?\e(B
+\e$B$a$KJ\BG$D$3$H$O2DG=$G$O$"$k$N$G$9$,!"A0$K$b8@$C$?$h$&$K4JC1$G$O$"$j$^\e(B
+\e$B$;$s!#$$$o$f$k%a!<%k%j!<%@$,9%$_$J$i$P\e(B @sc{vm} \e$B$r;H$$$^$7$g$&!#$3$l$O\e(B
+\e$BM%=($J!"87L)$J0UL#$G$N%a!<%k%j!<%@$G$9!#\e(B
+
+\e$B6<$+$9$o$1$G$O$J$$$N$G$9$,!"$O$C$-$j$5$;$F$*$-$?$$$N$O!"$"$J$?$K5-;v$K\e(B
+\e$B$D$$$F$N?7$7$$$d$jJ}$r=$F@$7$FM_$7$$$H$$$&$3$H$G$9!#$"$J$?$,\e(B gnus \e$B$N$d\e(B
+\e$B$jJ}$r<u$1F~$l$F$/$l$?6G$K$O!"$-$C$H$"$J$?$O\e(B gnus \e$B$,9%$-$K$J$k$3$H@A$1\e(B
+\e$B9g$$$G$9!#\e(B
+
+(At least the guy who sold me the Emacs Subliminal Brain-Washing
+Functions that I've put into Gnus did guarantee it.  You Will Be
+Assimilated.  You Love Gnus.  You Love The Gnus Mail Way.  You Do.)
+
+
 @node Getting Started Reading Mail
 @subsection \e$B%a!<%k$rFI$`;v$r;O$a$k\e(B
 
@@ -16870,8 +16922,6 @@ are in the cache.
 @item
  AUTHINFO GENERIC
 @item
- support qmail maildir spools
-@item
  `run-with-idle-timer' in gnus-demon.
 @item
  stop using invisible text properties and start using overlays instead
index 3b7c795..7b520f2 100644 (file)
@@ -8940,11 +8940,10 @@ list (it will be @code{eval}ed and the return value will be used).
 
 If you wish to check whether the message you are about to compose is
 meant to be a news article or a mail message, you can check the values
-of the two dynamically bound variables @code{message-this-is-news} and
-@code{message-this-is-mail}.
+of the @code{message-news-p} and @code{message-mail-p} functions.
 
-@vindex message-this-is-mail
-@vindex message-this-is-news
+@findex message-mail-p
+@findex message-news-p
 
 So here's a new example:
 
@@ -8959,9 +8958,9 @@ So here's a new example:
          (signature my-funny-signature-randomizer))
         ((equal (system-name) "gnarly")
          (signature my-quote-randomizer))
-        (message-this-is-news
+        ((message-news-p)
          (signature my-news-signature))
-        (posting-from-work-p
+        ((posting-from-work-p)
          (signature-file "~/.work-signature")
          (address "user@@bar.foo")
          (body "You are fired.\n\nSincerely, your boss.")
@@ -9899,6 +9898,7 @@ Reading mail with a newsreader---isn't that just plain WeIrD? But of
 course.
 
 @menu
+* 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.
@@ -9913,6 +9913,61 @@ course.
 @end menu
 
 
+@node Mail in a Newsreader
+@subsection Mail in a Newsreader
+
+If you are used to traditional mail readers, but have decided to switch 
+to reading mail with Gnus, you may find yourself experiencing something
+of a culture shock.
+
+Gnus does not behave like traditional mail readers.  If you want to make 
+it behave that way, you can, but it's an uphill battle.
+
+Gnus, by default, handles all its group using the same approach.  This
+approach is very newsreaderly---you enter a group, see the new/unread
+messages, and when you read the messages, they get marked as read, and
+you don't see them any more.  (Unless you explicitly ask for them.)
+
+In particular, you do not do anything explicitly to delete messages.
+
+Does this mean that all the messages that have been marked as read are
+deleted?  How awful!
+
+But, no, it means that old messages are @dfn{expired} according to some
+scheme or other.  For news messages, the expire process is controlled by 
+the news administrator; for mail, the expire process is controlled by
+you.  The expire process for mail is covered in depth in @pxref{Expiring
+Mail}.
+
+What many Gnus users find, after using it a while for both news and
+mail, is that the transport becomes more and more irrelevant.  What
+becomes important is the size of the receiving audience.
+
+Many people subscribe to several mailing lists.  These are transported
+via SMTP, and are therefore mail.  Some people have local news groups
+which have only a handful of readers.  These are transported via NNTP,
+and are therefore news.
+
+The important distinction turns out to be not the transport mechanism,
+but whether the messages are @dfn{personal} or @dfn{public}.  Many users
+then subtly alter the behavior of Gnus according to these two
+categories.
+
+Some users never get comfortable using the Gnus (ahem) paradigm and wish
+that Gnus should grow up and be a male, er, mail reader.  It is possible
+to whip Gnus into a more mailreaderly being, but, as said before, it's
+not easy.  People who prefer proper mail readers should try @sc{vm}
+instead, which is an excellent, and proper, mail reader.
+
+I don't mean to scare anybody off, but I want to make it clear that you
+may be required to learn a new way of thinking about messages.  After
+you've been subjected to The Gnus Way, you will come to love it.  I can
+guarantee it.  (At least the guy who sold me the Emacs Subliminal
+Brain-Washing Functions that I've put into Gnus did guarantee it.  You
+Will Be Assimilated.  You Love Gnus.  You Love The Gnus Mail Way.
+You Do.)
+
+
 @node Getting Started Reading Mail
 @subsection Getting Started Reading Mail
 
@@ -17978,8 +18033,6 @@ are in the cache.
 @item
  AUTHINFO GENERIC
 @item
- support qmail maildir spools
-@item
  `run-with-idle-timer' in gnus-demon.
 @item
  stop using invisible text properties and start using overlays instead
@@ -19007,6 +19060,9 @@ Under the subject "foo1", you wrote on 01.01.1999:
 @end example
 
 @item
+Allow "orphan" scores in the Agent scoring.
+
+@item
 Solve the halting problem.
 
 @c TODO
index b7f45ab..576c224 100644 (file)
@@ -1,6 +1,7 @@
+% -*- mode:LaTeX; eval:(set (make-local-variable 'LaTeX-version) "2"); truncate-lines:t; -*-
 % include file for the Gnus refcard and booklet
-\def\progver{5.0}\def\refver{5.0} % program and refcard versions
-\def\date{16 September 1995}
+\def\version{5.5}
+\def\date{2 May 1998}
 \def\author{Vladimir Alexiev $<$vladimir@cs.ualberta.ca$>$}
 \raggedbottom\raggedright
 \newlength{\logowidth}\setlength{\logowidth}{6.861in}
    \begin{tabular}{@{}l@{\hspace{\tabcolsep}}p{-\keycolwidth}@{}}}%
   {\end{tabular}\\}
 \catcode`\^=12 % allow ^ to be typed literally
+\catcode`\~=12 % allow ~ to be typed literally
 \newcommand{\B}[1]{{\bf#1})}    % bold l)etter
 
 \def\Title{
 \begin{center}
-{\bf\LARGE Gnus \progver\ Reference \Guide\\}
+{\bf\LARGE Gnus \version\ Reference \Guide\\}
 %{\normalsize \Guide\ version \refver}
 \end{center}
 }
@@ -30,8 +32,8 @@
 \def\CopyRight{
 \begin{center}
 Copyright \copyright\ 1995 Free Software Foundation, Inc.\\*
-Copyright \copyright\ 1995 \author.\\*
-Created from the Gnus manual Copyright \copyright\ 1994 Lars Magne
+Copyright \copyright\ 1995-97 \author.\\*
+Created from the Gnus manual Copyright \copyright\ 1994-97 Lars Magne
 Ingebrigtsen.\\*
 and the Emacs Help Bindings feature (C-h b).\\*
 Gnus logo copyright \copyright\ 1995 Luis Fernandes.\\*
@@ -46,49 +48,50 @@ above email address. \Guide{} last edited on \date.
 \def\Notes{
 \subsec{Notes}
 {\samepage
-Gnus \e$B$OJ#;($G$9\e(B. \e$B8=:_$O\e(B 346 \e$B$b$NBPOCE*\e(B (\e$BMxMQ<T$N;HMQ$G$-$k\e(B) \e$B4X?t$,$"$j\e(B
-\e$B$^$9\e(B. \e$B$3$l$i$N\e(B 279 \e$B$O\e(B 2 \e$B$D$N<g%b!<%I\e(B (\e$B%0%k!<%W$H35N,\e(B/\e$B5-;v\e(B) \e$B$N$b$N$G$9\e(B. 
-\e$B$3$l$i$N4X?t$NB?$/$O0l$D$rD6$($k%-!<B+G{$,$"$j\e(B, \e$BCf$K$O\e(B 3, \e$B$5$i$K$O\e(B 4
-\e$BB+G{$N$b$N$5$($"$j$^$9\e(B. \e$B%-!<B+G{$NAm?t$O\e(B 389 \e$B$G$9\e(B. \e$B$G$9$+$i\e(B,  40 \% \e$B$N\e(B
-\e$B>l=j$N@aLs$N$?$a$K\e(B, \e$B$3$N\e(B \guide \e$B$G$OA4$F$N4X?t$O\e(B ``\e$B$h$jO@M}E*\e(B'' \e$B$JB+G{\e(B
-\e$B$G0lEY$@$1I=<($5$l$F$$$^$9\e(B. \e$BB>$NB+G{$O5-=R$N:G=i$K3g8L$NCf$GM?$($i$l$F\e(B
-\e$B$$$^$9\e(B. 
-
-\e$BB?$/$N\e(B gnus \e$B$NL?Na$O?tCM0z?t$K1F6A$5$l$^$9\e(B. \e$BIaDL$O%a%?%-!<$r2!$7$F$$$k\e(B
+Gnus \e$B$O5pBg$G$9\e(B. \e$B8=:_$O\e(B 633 \e$B$b$NBPOCE*\e(B (\e$BMxMQ<T$N;HMQ$G$-$k\e(B) \e$BL?Na$,$"$j\e(B
+\e$B$^$9\e(B.  \e$B$3$l$i$NL?Na$NB?$/$O0l$D$rD6$($k%-!<B+G{$,$"$j$^$9\e(B. 40 \% \e$B$N>l\e(B
+\e$B=j$N@aLs$N$?$a$K\e(B, \e$B$3$N\e(B \guide \e$B$G$OA4$F$N4X?t$O\e(B ``\e$B$h$jO@M}E*\e(B'' \e$B$JB+G{$G\e(B
+\e$B0lEY$@$1I=<($5$l$F$$$^$9\e(B. \e$BB>$NB+G{$O5-=R$N:G=i$K3g8L$NCf$GM?$($i$l$F$$\e(B
+\e$B$^$9\e(B. \e$B$3$N\e(B \guide{} \e$B$O%-!<B+G{$@$1$r@bL@$7$F$$$^$9$N$G\e(B, \e$BB?$/$N$9$P$i$7\e(B
+\e$B$$5!G=$r8+$D$1$k$?$a$K$O\e(B, \e$B>/$/$H$b$r$6$C$HD/$a$k\e(B {\em \e$BI,MW\e(B\/} \e$B$,$"$j$^\e(B
+\e$B$9\e(B.
+
+\e$BB?$/$N\e(B gnus \e$B$NL?Na$O?tCM0z?t$r;H$$$^$9\e(B. \e$BIaDL$O%a%?%-!<$r2!$7$F$$$k\e(B
 \e$B4V$K@\F,0z?t$rF~NO$7$^$9$,\e(B, \e$B$?$$$F$$$N\e(B gnus \e$B$N%b!<%I$G$O\e(B, \e$B?t;z$,<+J,<+\e(B
 \e$B?H$rA^F~$7$J$$$?$a\e(B, \e$B%a%?$r;H$&I,MW$O$"$j$^$;$s\e(B. \e$B@\F,0z?t$NIU$$$?$H$-$N\e(B
 \e$B?6$kIq$$$O\e(B [\e$B3Q3g8L\e(B] \e$B$G=q$+$l$F$$$^$9\e(B. \e$B@\F,0z?t$O$7$P$7$P$3$l$i$r;XDj$9\e(B
 \e$B$k$N$KMQ$$$i$l$^$9\e(B:
 
-\quad [\e$B5wN%\e(B] \e$B%]%$%s%H$,$I$N$/$i$$$N%*%V%8%'%/%H$rHt$P$9$+\e(B. 
+\quad [\e$B5wN%\e(B] \e$B%]%$%s%H$,$I$N$/$i$$$N%*%V%8%'%/%H$rHt$P$9$+\e(B.
 
-\quad [\e$BHO0O\e(B] \e$B$I$N$/$i$$$N%*%V%8%'%/%H$,:nMQ$5$l$k$+\e(B (\e$B8=:_$NJ*$r4^$`\e(B). 
+\quad [\e$BHO0O\e(B] \e$B$I$N$/$i$$$N%*%V%8%'%/%H$,:nMQ$5$l$k$+\e(B (\e$B8=:_$NJ*$r4^$`\e(B).
 
 \quad [p/p] ``\e$B%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47\e(B'': \e$B@\F,0z?t$,M?$($i$l$k$H\e(B, \e$B:nMQ\e(B
-\e$B$9$kBP>]$N?t$r7hDj$7$^$9\e(B. \e$B%W%m%;%90u\e(B \# \e$B$G0u$NIU$$$?BP>]$,$"$l$P\e(B, \e$B$=$l\e(B
-\e$B$i$,:nMQ$5$l$^$9\e(B. \e$B$=$&$G$J$1$l$P\e(B, \e$B8=:_$NBP>]$@$1$,1F6A$r<u$1$^$9\e(B. 
+\e$B$9$kBP>]$N?t$r7hDj$7$^$9\e(B (\e$BIi$O5U8~$-$H$$$&0UL#$G$9\e(B).
+transient-mark-mode \e$B$+\e(B zmacs-region \e$B$,@_Dj$5$l$F$$$F%j!<%8%g%s$,\e(Bactive
+\e$B$G$"$k$H\e(B, \e$B$=$N%j!<%8%g%s$rA`:n$7$^$9\e(B. \e$B%W%m%;%90u\e(B \# \e$B$G0u$NIU$$$?BP>]$,\e(B
+\e$B$"$l$P\e(B, \e$B$=$l$i$rA`:n$7$^$9\e(B. \e$B$=$&$G$J$1$l$P\e(B, \e$B8=:_$NBP>]$@$1$rA`:n$7$^$9\e(B.
 
 \quad [\e$B%l%Y%k\e(B] \e$B%0%k!<%W9VFIEY%l%Y%k$G$9\e(B. \e$BF1Ey$+$=$l$h$jDc$$%0%k!<%W$N\e(B
-\e$B$_$,:nMQ$N1F6A$r<u$1$^$9\e(B. \e$B@\F,0z?t$,M?$($i$l$J$$$H\e(B, 
-`gnus-group-default-list-level' \e$B$,;H$o$l$^$9\e(B. 
+\e$B$_$,:nMQ$N1F6A$r<u$1$^$9\e(B. \e$B@\F,0z?t$,M?$($i$l$J$$$H\e(B,
+`gnus-group-default-list-level' \e$B$,;H$o$l$^$9\e(B.
 `gnus-group-use-permanent-levels' \e$B$,??$G$"$k$H\e(B, `g' \e$B$H\e(B `l' \e$BL?Na$X$N@\\e(B
-\e$BF,0z?t$O=i4|%l%Y%k$b@_Dj$7$^$9\e(B. 
+\e$BF,0z?t$O=i4|%l%Y%k$b@_Dj$7$^$9\e(B.
+
+\quad [score] \e$B5-;v$N%9%3%"$G$9\e(B. \e$B@\F,0z?t$,M?$($i$l$J$$$H\e(B,
+`gnus-summary-default-score' \e$B$,;H$o$l$^$9\e(B.
+
+\quad [GL \e$BEY?t\e(B] GroupLens \e$B$NEY?t\e(B (1-5) \e$B$r\e(B, \e$BJL$N5-;v$K0\F0$9$kA0$K8=:_\e(B
+\e$B$N5-;v$KM?$($^$9\e(B.
 
-\quad [score] \e$B5-;v$N%9%3%"$G$9\e(B. \e$B@\F,0z?t$,M?$($i$l$J$$$H\e(B, 
-`gnus-summary-default-score' \e$B$,;H$o$l$^$9\e(B. 
 %Some functions were not yet documented at the time of creating this
 %\guide and are clearly indicated as such.
-\\*[\baselineskip]
-\begin{keys}{C-c C-i}
-C-c C-i & Gnus \e$B$N%*%s%i%$%s\e(B {\bf info} \e$B$K0\F0$7$^$9\e(B.\\
-C-c C-b & Gnus \e$B$N\e(B {\bf bug} \e$BJs9p$rAw$j$^$9\e(B.\\
-\end{keys}
 }}
 
 \def\GroupLevels{
-\subsec{\e$B%0%k!<%W9VFIEY%l%Y%k\e(B}
+\subsec{\e$B%0%k!<%W9VFIEY%l%Y%k\e(B}{\samepage
 \e$B2<$NI=$O=i4|\e(B gnus \e$B%l%Y%k$r;H$C$F$$$k$3$H$r2>Dj$7$F$$$^$9\e(B. \e$BMxMQ<TMQ%l%Y\e(B
-\e$B%k$r6u$NMs$K=q$$$F$/$@$5$$\e(B. \\[1\baselineskip]
+\e$B%k$r6u$NMs$K=q$$$F$/$@$5$$\e(B. \\*
 
 \begin{tabular}{|c|l|l|}
 \hline
@@ -96,23 +99,22 @@ C-c C-b & Gnus \e$B$N\e(B {\bf bug} \e$BJs9p$rAw$j$^$9\e(B.\\
 \hline
 1 & \e$B%a!<%k%0%k!<%W\e(B &             \\
 2 & \e$B%a!<%k%0%k!<%W\e(B &             \\
-3 &               & \e$B9VFI\e(B         \\
-4 &               &              \\
+3 & \e$B=i4|9VFI%l%Y%k\e(B & \e$B9VFI\e(B        \\
+4 &                &             \\
 5 & \e$B=i4|0lMw%l%Y%k\e(B &             \\
 \hline
-6 &               & \e$BHs9VFI\e(B       \\
-7 &               &              \\
+6 & \e$B=i4|Hs9VFI%l%Y%k\e(B & \e$BHs9VFI\e(B    \\
+7 &                  &           \\
 \hline
-8 &               & \e$B%>%s%S\e(B       \\
+8 &                  & \e$B%>%s%S\e(B    \\
 \hline
-9 &               & \e$B:o=|\e(B         \\
+9 &                  & \e$B:o=|\e(B      \\
 \hline
 \end{tabular}
-}
+}}
 
-\def\Marks{
-\subsec{\e$B0u;X<(J8;z\e(B}
-{\samepage \e$BL?Na$,D>@\0u$rIU$1$k>l9g$O\e(B, \e$B3g8L$GI=<($5$l$F$$$^$9\e(B. \\*
+\def\Marks{\subsec{\e$B0u;X<(J8;z\e(B}{\samepage
+\e$BL?Na$,D>@\0u$rIU$1$k>l9g$O\e(B, \e$B3g8L$GI=<($5$l$F$$$^$9\e(B. \\*
 \newlength{\markcolwidth}
 \settowidth{\markcolwidth}{` '}% widest character
 \addtolength{\markcolwidth}{4\tabcolsep}
@@ -122,48 +124,76 @@ C-c C-b & Gnus \e$B$N\e(B {\bf bug} \e$BJs9p$rAw$j$^$9\e(B.\\
 \addtolength{\markdblcolwidth}{-2\tabcolsep}
 \begin{tabular}{|c|p{-\markcolwidth}|}
 \hline
-\multicolumn{2}{|p{\markdblcolwidth}|}{{\bf ``\e$B4{FI\e(B'' \e$B0u\e(B.}
+\multicolumn{2}{|p{\markdblcolwidth}|}
+{{\bf ``\e$B4{FI\e(B'' \e$B0u\e(B.}
   \e$B$3$l$i$N0u$NA4$F$O35N,9T$N:G=i$N7e$K8=$l$^$9$N$G\e(B, \e$B6&B8$9$k$3$H$O$G$-\e(B
   \e$B$^$;$s\e(B.}\\
 \hline
 ` ' & (M-u, M SPC, M c) \e$BL$FI\e(B.\\
-!   & (!, M !, M t) \e$B2D;k\e(B (\e$B6=L#?<$$\e(B).\\
+!   & (!, M t) \e$B2D;k\e(B (\e$B6=L#?<$$\e(B).\\ %(M !)
 ?   & (?, M ?) \e$BJ]N1\e(B (\e$B%U%)%m!<%"%C%W$N$_$K6=L#$,$"$k\e(B).\\
-C   & (C, S c) {\bf \e$B%-%c%s%;%k:Q$_\e(B} (\e$B<+J,<+?H$N5-;v$N$_\e(B.\\
+E   & (E, M e) {\bf \e$B;~8B>C5n2DG=\e(B}. \e$B%a!<%k%0%k!<%W$G$N$_0UL#$,$"$k\e(B.\\ %(M x)
 \hline\hline
-\multicolumn{2}{|p{\markdblcolwidth}|}{\e$B2<$N0u$O5-;v$,4{FI\e(B (\e$B@Z$i$l$?\e(B, 
+\multicolumn{2}{|p{\markdblcolwidth}|}{\e$B2<$N0u$O5-;v$,4{FI\e(B (\e$B@Z$i$l$?\e(B,
   \e$B6=L#$N$J$$\e(B) \e$B$H$$$&$3$H$r0UL#$7\e(B, \e$BBgBNF1MM$J8z2L$r;}$A$^$9\e(B. \e$B$7$+$7L?Na\e(B
-  \e$B$K$O$=$l$i$GL@$i$+$J0c$$$,$"$k$b$N$b$"$j$^$9\e(B (\e$BNc\e(B. \ M M-C-r, \e$BE,1~%9\e(B
-  \e$B%3%"\e(B).}\\
+  \e$B$K$O$=$l$i$GL@$i$+$J0c$$$,$"$k$b$N$b$"$j$^$9\e(B (\e$BNc\e(B.{} M M-C-r, \e$BE,1~%9%3\e(B
+  \e$B%"\e(B).}\\
 \hline
 r   & (d, M d, M r) \e$B>C5n\e(B (\e$B4{FI\e(B ({\bf read}) \e$B$H$7$F0uIU$1$i$l$?\e(B).\\
 C   & (M C; M C-c; M H; c, Z c; Z n; Z C) {\bf catch-up} \e$B$G@Z$i$l$?\e(B.\\
+F   & (O s; G s b) SOUP \e$B$5$l$F$$$k\e(B.\\
+G   & (S C, C) \e$B<h$j>C$7:Q$_\e(B (\e$B<+J,<+?H$N5-;v$N$_\e(B).\\
 O   & \e$B8E$$\e(B ({\bf old}) (\e$BA02s$N%;%C%7%g%s$G4{FI$N0u$,IU$$$?\e(B).\\
 K   & (k, M k; C-k, M K) \e$B@Z$i$l$?\e(B ({\bf Killed}).\\
+M   & \e$B=EJ#>C5n$K$h$C$F0u$,IU$$$?\e(B.\\
+Q   & \e$B$^$P$i%9%l%C%I$N:n@.Cf$KJ,$1$i$l$?\e(B.\\
 R   & \e$B4{FI\e(B ({\bf read}) (\e$B<B:]$K1\Mw$5$l$?\e(B).\\
 X   & \e$B%-%k%U%!%$%k$G@Z$i$l$?\e(B.\\
 Y   & \e$BDc%9%3%"$K$h$C$F@Z$i$l$?\e(B.\\
-\hline\multicolumn{2}{c}{\vspace{1ex}}\\\hline
-\multicolumn{2}{|p{\markdblcolwidth}|}{\e$BB>$N0u\e(B ({\bf Other marks})}\\
+\hline\hline
+\multicolumn{2}{|p{\markdblcolwidth}|}
+{{\bf \e$BB>$N0u\e(B}}\\
 \hline
-\#  & (\#, M \#, M P p) \e$B<B9T2DG=\e(B (\e$B<!$N:nMQ$G1F6A$r<u$1$k\e(B).\\
+\#  & (\#, M \#, M P p) \e$B<B9T2DG=\e(B (\e$B<!$N:nMQ$G1F6A$r<u$1$k\e(B).\\ %(M \#)
+*   & (*) \e$B1JB3\e(B (\e$B$b$7$/$OB>$NM}M3$G%-%c%C%7%e$5$l$F$$$k\e(B).\\
 A   & \e$B1~Ez:Q$_\e(B ({\bf answered}) (\e$B%U%)%m!<%"%C%W$b$7$/$OJVEz$r$7$?\e(B).\\
+S   & (O {\bf x}) \e$BJ]B8:Q$_\e(B {\bf Saved}.\\
 +   & \e$B=i4|%9%3%"$h$j>e\e(B.\\
 $-$ & \e$B=i4|%9%3%"$h$j2<\e(B.\\
 =   & \e$B;R$r;}$D\e(B (\e$B$=$N2<$K%9%l%C%I$r\e(B). `\%e' `gnus-summary-line-format'
 \e$B$r2C$($^$9\e(B.\\
-
 \hline
 \end{tabular}
 }}
 
-\def\GroupMode{
-\sec{\e$B%0%k!<%W%b!<%I\e(B}
+
+\def\General{\sec{(H) \e$B0lHLE*$J%3%^%s%I$H%X%k%W%3%^%s%I\e(B}{\samepage
+\e$B$3$l$i$NL?Na$O$I$3$G$bF0:n$7$^$9\e(B.
+\begin{keys}{C-c C-i}
+C-c C-i & Gnus \e$B$N%*%s%i%$%s\e(B {\bf info} \e$B$K0\F0$7$^$9\e(B.\\
+C-c C-b & Gnus \e$B$N\e(B {\bf bug} \e$BJs9p$rAw$j$^$9\e(B.\\
+\end{keys}
+
+\e$B$3$l$i$NL?Na$O35N,%b!<%I$GF0:n$7\e(B, \e$B$[$H$s$I$O%0%k!<%W%b!<%I$G$bF0:n$7$^\e(B
+\e$B$9\e(B.\\*
+\begin{keys}{H d}
+H d     & (C-c C-d) \e$B$3$N%0%k!<%W$N@bL@\e(B ({\bf Describe}) \e$B$r$7$^$9\e(B. [\e$B@\\e(B
\e$BF,<-\e(B: \e$B%5!<%P!<$+$i@bL@$r:FEYFI$_9~$_$^$9\e(B.]\\
+H f     & ange-ftp \e$B$r;H$C$F\e(B, \e$B$3$N%0%k!<%W$N\e(B {\bf FAQ} \e$B$r<hF@$7$h$&$H$7\e(B
\e$B$^$9\e(B.\\
+H h     & \e$BHs>o$KC;$$%X%k%W\e(B ({\bf help}) \e$B%a%C%;!<%8$rI=<($7$^$9\e(B.\\
+
+H i     & (C-c C-i) Gnus \e$B$N%*%s%i%$%s\e(B {\bf info} \e$B$K0\F0$7$^$9\e(B.\\
+H v     & Gnus \e$B$N%P!<%8%g%s\e(B ({\bf version}) \e$BHV9f$rI=<($7$^$9\e(B.\\
+\end{keys}}}
+
+\def\GroupMode{\sec{\e$B%0%k!<%W%b!<%I\e(B}
 \begin{keys}{C-c M-C-x}
-RET     & (=) \e$B$3$N%0%k!<%W$rA*Br$7$^$9\e(B. [\e$B@\F,0z?t\e(B: \e$B$I$l$/$i$$$N\e(B (\e$B4{FI\e(B)
-\e$B5-;v$r<hF@$9$k$+\e(B. \e$B@5\e(B: \e$B:G?7$N5-;v\e(B, \e$BIi\e(B: \e$B:G8E$N$b$N\e(B.]\\
+RET     & (=) \e$B$3$N%0%k!<%W$rA*Br$7$^$9\e(B [\e$B@\F,0z?t\e(B: \e$B$I$l$/$i$$$N\e(B (\e$B4{FI\e(B)
+          \e$B5-;v$r<hF@$9$k$+\e(B. \e$B@5\e(B: \e$B:G?7$N5-;v\e(B, \e$BIi\e(B: \e$B:G8E$N$b$N\e(B, C-u: \e$BHV9f\e(B
+          \e$B$r?R$M$^$9\e(B]. \e$B2C$($F\e(B: \e$B%H%T%C%/$N@^$jJV$7$r@Z$j49$($^$9\e(B.\\
 SPC     & \e$B$3$N%0%k!<%W$rA*Br$7$F\e(B, \e$B:G=i$NL$FI5-;v$rI=<($7$^$9\e(B. [\e$B@\F,0z\e(B
-\e$B?t$O>e$HF1$8$G$9\e(B.]\\ 
+\e$B?t$O>e$HF1$8$G$9\e(B.]\\
 ?       & \e$BHs>o$KC;$$%X%k%W%a%C%;!<%8$rM?$($^$9\e(B.\\
 $<$     & \e$B%0%k!<%W%P%C%U%!$N:G=i$K0\F0$7$^$9\e(B.\\
 $>$     & \e$B%0%k!<%W%P%C%U%!$N:G8e$K0\F0$7$^$9\e(B.\\
@@ -174,264 +204,336 @@ a       & \e$B5-;v\e(B ({\bf article}) \e$B$r%0%k!<%W$KEj9F$7$^$9\e(B.\\
 b       & \e$B56\e(B ({\bf bogus}) \e$B%0%k!<%W$r8+$D$1$F>C5n$7$^$9\e(B.\\
 c       & \e$BA4$F$NL$0u5-;v$K4{FI$N0u$rIU$1$^$9\e(B ({\bf catch-up}). [p/p]\\
 g       & \e$B?7$7$$5-;v$,$"$k$+\e(B, \e$B%5!<%P!<$rD4$Y$^$9\e(B ({\bf get}). [\e$B%l%Y%k\e(B]\\
-j       & \e$B%0%k!<%W$KHt$S$^$9\e(B ({\bf jump}).\\
+j       & \e$B;XDj$5$l$?%0%k!<%W$KHt$S$^$9\e(B ({\bf jump}) (\e$B$b$7$+$7$?$i@Z$i\e(B
+          \e$B$l$F$$$k$+$b$7$l$^$;$s\e(B).\\
 m       & \e$BC/$+$K%a!<%k\e(B ({\bf mail}) \e$B$rAw$j$^$9\e(B.\\
 n       & \e$BL$FI5-;v$N$"$k<!\e(B ({\bf next}) \e$B$N%0%k!<%W$K0\F0$7$^$9\e(B.
 [\e$B5wN%\e(B]\\
 p       & (DEL) \e$BL$FI5-;v$N$"$kA0\e(B ({\bf previous}) \e$B$N%0%k!<%W$K0\F0$7$^\e(B
 \e$B$9\e(B.
-[\e$B5wN%\e(B]\\ 
-q       & Gnus \e$B$r=*N;\e(B ({\bf Quit}) \e$B$7$^$9\e(B.\\
-r       & \e$B=i4|2=%U%!%$%k$rFI$_9~$_$^$9\e(B (\e$B:F@_Dj\e(B ({\bf reset})).\\
-s       & `.newsrc.eld' \e$B%U%!%$%k$rJ]B8\e(B ({\bf save}) \e$B$7$^$9\e(B (\e$B$=$l$H\e(B, 
-`gnus-save-newsrc-file' \e$B$,??$G$"$l$P\e(B `.newsrc' \e$B$bJ]B8$7$^$9\e(B.)\\ 
-z       & Gnus \e$B$r0l;~Dd;_$7$^$9\e(B (\e$B%P%C%U%!$r@Z$j$^$9\e(B).\\
-B       & \e$B30It%5!<%P!<$r354Q\e(B ({\bf browse}) \e$B$7$^$9\e(B.\\
+[\e$B5wN%\e(B]\\
+q       & Gnus \e$B$r=*N;\e(B ({\bf Quit}) \e$B$7$^$9\e(B. \e$B%a%b%j!<$+$i>C5n$9$k$K$O\e(B
+          M-x gnus-unload \e$B$r<B9T$7$F$/$@$5$$\e(B.\\
+r       & \e$B=i4|2=%U%!%$%k\e(B `.gnus' \e$B$r:FEYFI$_9~$_$^$9\e(B ({\bf Re-read}).\\
+s       & `.newsrc.eld' \e$B%U%!%$%k$rJ]B8\e(B ({\bf save}) \e$B$7$^$9\e(B (\e$B$=$l$H\e(B,
+`gnus-save-newsrc-file' \e$B$,??$G$"$l$P\e(B `.newsrc' \e$B$bJ]B8$7$^$9\e(B.)\\
+t       & {\bf Topic} \e$B%b!<%I$r@Z$j49$($^$9\e(B. \e$B%H%T%C%/$O%0%k!<%W$N3,AX9=\e(B
+          \e$BB$$G$9\e(B.\\
+z       & Gnus \e$B$r0l;~Dd;_$7$^$9\e(B (\e$B%0%k!<%W%P%C%U%!0J30$N%P%C%U%!$r@Z$j\e(B
+          \e$B$^$9\e(B).\\
+B       & \e$B30It%5!<%P!<$r354Q\e(B ({\bf browse}) \e$B$7$^$9\e(B (\e$BJ}K!$HL>A0$r;XDj$7\e(B
+          \e$B$^$9\e(B).\\
 C       & \e$B$3$N%0%k!<%W$NA4$F$N5-;v$r4{FI$H$7$F0uIU$1$^$9\e(B ({\bf
-Catch-up}). [p/p]\\
-F       & \e$B?7$7$$%0%k!<%W$r8+$D$1\e(B ({\bf find}) \e$B$=$l$i$K:n6H$r<B9T$7$^$9\e(B.\\ 
+          Catch-up}). [p/p]\\
+F       & \e$B?7$7$$%0%k!<%W$r8+$D$1\e(B ({\bf find}) \e$B$=$l$i$K:n6H$r<B9T$7$^$9\e(B.
+          [\e$B@\F,<-\e(B: \e$B%5!<%P!<$K?R$M$^$9\e(B]\\
 N       & \e$B<!\e(B ({\bf next}) \e$B$N%0%k!<%W$K0\F0$7$^$9\e(B. [\e$B5wN%\e(B]\\
 P       & \e$BA0\e(B ({\bf previous}) \e$B$N%0%k!<%W$K0\F0$7$^$9\e(B. [\e$B5wN%\e(B]\\
-Q       & \e$B5/F0\e(B (.newsrc) \e$B%U%!%$%k$rJ]B8$;$:$K\e(B Gnus \e$B$r=*N;\e(B ({\bf Quit})
-\e$B$7$^$9\e(B.\\
+Q       & .newsrc \e$B%U%!%$%k$rJ]B8$;$:$K\e(B Gnus \e$B$r=*N;\e(B ({\bf Quit})\e$B$7$^$9\e(B.\\
 R       & Gnus \e$B$r:F5/F0\e(B ({\bf Restart}) \e$B$7$^$9\e(B.\\
 V       & Gnus \e$B%P!<%8%g%s\e(B ({\bf version}) \e$BHV9f$rI=<($7$^$9\e(B.\\
+W f     & \e$BA4$F$N%0%k!<%W$N%9%3%"%-%c%C%7%e$r=q$-9~$_$^$9\e(B ({\bf Flush}).\\
 Z       & \e$B%I%j%V%k%P%C%U%!$r>C5n$7$^$9\e(B.\\
-C-c C-d & \e$B$3$N%0%k!<%W$N@bL@\e(B ({\bf description}) \e$B$rI=<($7$^$9\e(B. [\e$B@\F,0z\e(B
-\e$B?t\e(B: \e$B%5!<%P!<$+$i:FFI$_9~$_$r$7$^$9\e(B.]\\ 
-C-c C-s & \e$B%0%k!<%W$rL>A0\e(B, \e$B%0%k!<%WL>\e(B, \e$B%l%Y%k\e(B
-(`gnus-group-sort-function' \e$B$K0MB8$7$^$9\e(B) \e$B$GL$FI5-;v$N?t$GJB$S49$(\e(B
-({\bf Sort}) \e$B$^$9\e(B.   .\\
+C-c C-s & `gnus-group-sort-function'. \e$B$K=>$C$FJB$S49$(\e(B({\bf Sort}) \e$B$^$9\e(B.\\
 C-c C-x & \e$B$3$N%0%k!<%W$NA4$F$N;~8B>C5n2DG=5-;v$r;~8B>C5n\e(B ({\bf
 expiry}) \e$B$N2aDx$K$+$1$^$9\e(B.\\
 C-c M-C-x & \e$B$3$N%0%k!<%W$NA4$F$N5-;v$r;~8B>C5n\e(B ({\bf expiry}) \e$B$N2aDx$K\e(B
 \e$B$+$1$^$9\e(B.\\
+C-c M-g & \e$B40A4$KA4$F$N%0%k!<%W$r3hF02=$7$^$9\e(B.\\
 C-x C-t & 2\e$B$D$N%0%k!<%W$N0LCV$rJQ99$7$^$9\e(B ({\bf transpose}).\\
-M-d     & \e$BA4$F$N%0%k!<%W$N@bL@\e(B ({\bf describe}) \e$B$r$7$^$9\e(B. [\e$B@\F,0z?t\e(B:
-\e$B%5!<%P!<$+$i@bL@$r:FFI$_9~$_$7$^$9\e(B.]\\
+M-\&    & \e$B<B9T0u$NIU$$$?A4$F$N%0%k!<%W$KL?Na$r<B9T$7$^$9\e(B.\\
+M-c     & \e$B$3$N%0%k!<%W$N%G!<%?$r>C5n\e(B ({\bf clear}) \e$B$7$^$9\e(B (\e$B4{FI$dB>$N\e(B
+          \e$B0u\e(B). [p/p] \e$B%5!<%P!<$rJQ99$7$F\e(B, \e$B5-;vHV9f$,9gCW$7$J$$$H$-$O\e(B
+          M-x gnus-group-clear-data-on-native-groups \e$B$r;H$C$F$/$@$5$$\e(B.
+          \e$B$b$7$/$O\e(B, \e$B5-;v$K:FHV9fIU$1$r$9$k$?$a$K\e(B M-x gnus-chage-server
+          \e$B$r;H$C$F$/$@$5$$\e(B. \e$B$G$b\e(B, \e$B$3$l$OCY$$$G$9\e(B.\\
+\end{keys}
+\begin{keys}{C-c M-C-x}
+\newlength{\keywidth}\settowidth{\keywidth}{C-c M-C-x}%
+\makebox[\keywidth][l]%
+{M-d}   & {\em \e$BA4$F\e(B\/} \e$B$N%0%k!<%W$N@bL@\e(B ({\bf describe}) \e$B$r$7$^$9\e(B. [\e$B@\F,0z?t\e(B:
+\e$B%5!<%P!<$+$i@bL@$r:FFI$_9~$_$7$^$9\e(B]\\
 M-f     & \e$B$3$N%0%k!<%W$N\e(B {\bf FAQ} \e$B$r\e(B (ange-ftp \e$B$r;H$C$F\e(B) \e$B<hF@$7$^$9\e(B.\\
 M-g     & \e$B$3$N%0%k!<%W$K?7$7$$5-;v$,$"$k$+$I$&$+\e(B, \e$B%5!<%P!<$rD4$Y$^$9\e(B.
 ({\bf get}). [p/p]\\
 M-n     & \e$BA0\e(B ({\bf previous}) \e$B$NF1$8$+Dc$$%l%Y%k$NL$FI%0%k!<%W$X0\F0$7\e(B
-\e$B$^$9\e(B. [\e$B5wN%\e(B]\\ 
+\e$B$^$9\e(B. [\e$B5wN%\e(B]\\
 M-p     & \e$B<!\e(B ({\bf next}) \e$B$NF1$8$+Dc$$%l%Y%k$NL$FI%0%k!<%W$X0\F0$7$^$9\e(B.
-[\e$B5wN%\e(B]\\ 
-\end{keys}
-}
+[\e$B5wN%\e(B]\\
+\end{keys}}
 
-\def\GroupCommands{
-\subsec{\e$B%0%k!<%W$N0lMwI=<(\e(B}
+\def\ListGroups{\subsec{(A) \e$B%0%k!<%W$N0lMwI=<(\e(B}{\samepage
 {\samepage
 \begin{keys}{A m}
 A a     & (C-c C-a) \e$B@55,I=8=$K9g$&A4$F$N%0%k!<%W$r0lMwI=<($7$^$9\e(B ({\bf
-apropos}).\\ 
+apropos}).\\
 A d     & \e$BL>A0$+@bL@\e(B ({\bf descriptions}) \e$B$,@55,I=8=$K9g$&A4$F$N%0%k!<\e(B
-\e$B%W$r0lMwI=<($7$^$9\e(B.\\ 
-A k     & (C-c C-l) \e$BA4$F$N:o=|$5$l$?\e(B ({\bf killed}) \e$B%0%k!<%W$r0lMwI=<(\e(B
-\e$B$7$^$9\e(B.\\
+\e$B%W$r0lMwI=<($7$^$9\e(B.\\
+A k     & \e$BA4$F$N:o=|$5$l$?\e(B ({\bf killed}) \e$B%0%k!<%W$r0lMwI=<($7$^$9\e(B.
+[\e$B@\F,<-\e(B: [\e$BHs\e(B]\e$B9XFI$r=|$/A4$F$N%0%k!<%W\e(B]\\
+A l     & \e$B;XDj$5$l$?%l%Y%k\e(B {\bf level} \e$B$NL$FI%0%k!<%W$r0lMwI=<($7$^$9\e(B.
+[\e$B@\F,<-\e(B: \e$B4{FI%0%k!<%W$b\e(B]\\
 A m     & \e$B@55,I=8=$K9g$$\e(B ({\bf match}), \e$BL$FI5-;v$r;}$D%0%k!<%W$r0lMwI=\e(B
-\e$B<($7$^$9\e(B. [\e$B%l%Y%k\e(B]\\ 
+\e$B<($7$^$9\e(B. [\e$B%l%Y%k\e(B]\\
 A s     & (l) \e$BL$FI5-;v$N$"$k9VFI%0%k!<%W\e(B {\bf subscribed} \e$B$r0lMwI=<($7\e(B
 \e$B$^$9\e(B. [\e$B%l%Y%k\e(B]\\
 A u     & (L) \e$BA4$F$N%0%k!<%W\e(B (\e$BHs9VFI\e(B ({\bf unsubscribed}) \e$B$r4^$`\e(B) \e$B$r0l\e(B
-\e$BMwI=<($7$^$9\e(B. [\e$B@\F,<-$,M?$($i$l$J$$$H\e(B, \e$B=i4|CM$O%l%Y%k\e(B7\e$B$G$9\e(B]\\ 
+\e$BMwI=<($7$^$9\e(B. [\e$B%l%Y%k\e(B, \e$B=i4|CM$O\e(B7]\\
 A z     & \e$B%>%s%S\e(B ({\bf zombie}) \e$B%0%k!<%W$r0lMwI=<($7$^$9\e(B.\\
+A A     & \e$BA4$F$N%5!<%P!<$NA4$F$N2DG=$J3hF0\e(B ({\bf active}) \e$B%0%k!<%W$r0l\e(B
+\e$BMwI=<($7$^$9\e(B (\e$BCY$$$+$b$7$l$^$;$s\e(B).\\
 A M     & \e$B@55,I=8=$K9g$&\e(B ({\bf match}) \e$BA4$F$N%0%k!<%W$r0lMwI=<($7$^$9\e(B.\\
-\end{keys}
-}
+A T     & \e$B%H%T%C%/\e(B ({\bf topic}) \e$B$GJT;<$5$l$F$$$kA4$F$N3hF0%0%k!<%W$r\e(B
+\e$B0lMwI=<($7$^$9\e(B.\\
+\end{keys}}}}
 
-\subsec{\e$B30It%0%k!<%W$N:n@.\e(B/\e$BJT=8\e(B}
-{\samepage
+\def\CreateGroups{\subsec{(G) \e$B30It%0%k!<%W$N:n@.\e(B/\e$BJT=8\e(B}{\samepage
 \e$BA*BrJ}K!$O3g8L$NCf$K<($5$l$F$$$^$9\e(B.\\*
-\begin{keys}{G m}
+\begin{keys}{G DEL}
+G DEL   & \e$B$3$N%0%k!<%W$r>C5n\e(B ({\bf Delete}) \e$B$7$^$9\e(B. [\e$B@\F,<-\e(B: \e$B5-;v$b\e(B
+          {\bf \e$BA4$F\e(B} \e$B>C5n$7$^$9\e(B]\\
 G a     & Gnus \e$B%j%9%H\e(B {\bf archive} \e$B%0%k!<%W$r:n$j$^$9\e(B. (ange-ftp \e$B$rDL\e(B
-\e$B$8$F$N\e(B nndir)\\
+          \e$B$8$F$N\e(B nndir)\\
+G c     & \e$B$3$N%0%k!<%W$N%Q%i%a!<%?$r\e(B {\bf customize} \e$B$7$^$9\e(B.\\
 G d     & \e$B%G%#%l%/%H%j!<\e(B ({\bf directory}) \e$B%0%k!<%W\e(B \e$B$r:n$j$^$9\e(B (\e$BA4$F$N\e(B
-\e$B%U%!%$%k$OEj9F5-;v$G\e(B, \e$B%U%!%$%k$O?t;z$NL>A0$G$J$/$F$O$J$^$;$s\e(B).
-(nndir)\\
-G e     & (M-e) \e$B$3$N%0%k!<%W$NA*BrJ}K!$rJT=8\e(B ({\bf edit}) \e$B$7$^$9\e(B.\\
+          \e$B%U%!%$%k$O?t;z$NL>A0$NEj9F$G$9\e(B). (nndir)\\
+G e     & \e$B$3$N%0%k!<%W$NA*BrJ}K!$rJT=8\e(B ({\bf edit}) \e$B$7$^$9\e(B.\\
 G f     & \e$B%U%!%$%k\e(B ({\bf file}) \e$B$K4p$E$$$?%0%k!<%W$r:n$j$^$9\e(B.
-(nndoc)\\
-G h     & Gnus \e$B$N%X%k%W\e(B ({\bf help}) (\e$B@bL@\e(B) \e$B%0%k!<%W$r:n@.$7$^$9\e(B.
-(nndoc)\\
-G k     & {\bf kiboze} \e$B%0%k!<%W$r:n@.$7$^$9\e(B. (nnkiboze)\\
-G m     & \e$B?7$7$$%0%k!<%W$r:n@.\e(B ({\bf make}) \e$B$7$^$9\e(B.\\
-G p     & \e$B$3$N%0%k!<%W$N%Q%i%a!<%?\e(B ({\bf parameters}) \e$B$rJT=8$7$^$9\e(B.\\
-G v     & \e$B$3$N%0%k!<%W$r2>A[\e(B ({\bf virtual}) \e$B%0%k!<%W$KDI2C$7$^$9\e(B.
-[p/p]\\
+          (nndoc: mbox, babyl, digest, mmdf, news, rnews,
+          clari-briefs, rfc934,rfc822, forward) [\e$B@\F,<-\e(B: \e$B$I$N7A<0$+$r\e(B
+          \e$B?dB,$7$^$;$s\e(B]\\
+G h     & Gnus \e$B$N%X%k%W\e(B ({\bf help}) (\e$B@bL@\e(B/\e$B%A%e!<%H%j%"%k\e(B) \e$B%0%k!<%W$r\e(B
+          \e$B:n@.$7$^$9\e(B. (nndoc)\\
+G k     & {\bf kiboze} \e$B%0%k!<%W$r:n@.$7$^$9\e(B. (\e$BL>A0\e(B, \e$B%0%k!<%W\e(B, \e$B@55,I=8=\e(B
+          \e$B$r;XDj$7$^$9\e(B). (nnkiboze)\\
+G m     & \e$B?7$7$$%0%k!<%W$r:n@.\e(B ({\bf make}) \e$B$7$^$9\e(B (\e$BL>A0\e(B, \e$BJ}K!\e(B, \e$B%"%I%l\e(B
+          \e$B%9$r;XDj$7$^$9\e(B).\\
+G p     & \e$B$3$N%0%k!<%W\e(B/\e$B%H%T%C%/$N%Q%i%a!<%?\e(B ({\bf parameters}) \e$B$rJT=8\e(B
+          \e$B$7$^$9\e(B.\\
+G r     & \e$B$3$N%0%k!<%W$r2~L>\e(B ({\bf rename}) \e$B$7$^$9\e(B (\e$B%a!<%k%0%k!<%W$N$_\e(B).\\
+G v     & \e$B$3$N%0%k!<%W$r2>A[\e(B ({\bf virtual}) \e$B%0%k!<%W$KDI2C$7$^$9\e(B. [p/p]\\
+G w     & {\bf web} \e$B$K4p$$$?%0%k!<%W$r:n@.$7$^$9\e(B. (nnweb: dejanews,
+          altavista, reference) [\e$B@\F,<-\e(B: \e$B%0%k!<%W$r1JB3$K\e(B]\\
 G D     & \e$B%G%#%l%/%H%j!<\e(B ({\bf directory}) \e$B$K\e(B (\e$B0l;~\e(B) \e$B%0%k!<%W$H$7$FF~\e(B
-\e$B$j$^$9\e(B. (\e$B5-;v$N4{FI$r5-O?$7$J$$\e(B nneething.)\\
+\e$B$j$^$9\e(B. (\e$B4{FI0u$r5-O?$7$J$$\e(B nneething.)\\
 G E     & \e$B$3$N%0%k!<%W$N>pJs\e(B (\e$BA*BrJ}K!\e(B, \e$B5-;v$N4{FI\e(B, \e$B$J$I$J$I\e(B) \e$B$rJT=8\e(B
 ({\bf edit}) \e$B$7$^$9\e(B.\\
-G V     & \e$B?7$7$$6u$N2>A[\e(B ({\bf virtual}) \e$B%0%k!<%W$r:n@.$7$^$9\e(B.
+G V     & \e$B6u$N2>A[\e(B ({\bf virtual}) \e$B%0%k!<%W$r:n@.$7$^$9\e(B.
 (nnvirtual)\\
 \end{keys}
 \e$B%a!<%k%0%k!<%W$r:n@.$7$F%a!<%k$r\e(B nnmbox, nnbabyl, nnml, nnmh, nnfolder
 \e$B$N\e(B1\e$B$D$NJ}K!$r;H$C$F\e(BGnus \e$B$GFI$`$3$H$b$G$-$^$9\e(B (\e$B%a!<%j%0%j%9%H$r9VFI$7$F\e(B
 \e$B$$$k$HHs>o$KLr$KN)$A$^$9\e(B). \e$B%*%s%i%$%s\e(B info \e$B$GFI$s$G$/$@$5$$\e(B (C-c C-i g
 Reading Mail RET).
-}
+}}
 
-%\subsubsec{Soup Commands}
-%\begin{keys}{G s w}
-%G s b   & gnus-group-brew-soup: not documented.\\
-%G s p   & gnus-soup-pack-packet: not documented.\\
-%G s r   & nnsoup-pack-replies: not documented.\\
-%G s s   & gnus-soup-send-replies: not documented.\\
-%G s w   & gnus-soup-save-areas: not documented.\\
-%\end{keys}
+\def\SortGroups{\subsubsec{(G S) \e$B%0%k!<%W$NJB$S49$(\e(B}{\samepage
+\e$BJ#?t$N4p=`$GJB$S49$($r$9$k$?$a$K$O\e(B, \e$B$^$:$"$^$j=EMW$G$J$$$b$N$rE,MQ$7\e(B,
+\e$B:G8e$K0lHV=EMW$J$b$N$rE,MQ$7$^$9\e(B.\\*
+\begin{keys}{G P \bf x}
+G S a     & \e$B%0%k!<%WL>$r%"%k%U%!%C%Y%H=g\e(B ({\bf Alphabetically}) \e$B$KJB$S\e(B
+\e$B49$($^$9\e(B. [\e$B@\F,<-\e(B: \e$B5U$N=gHV\e(B]\\
+G S l     & \e$B%l%Y%k$G\e(B ({\bf level}) \e$BJB$S49$($^$9\e(B. [\e$B@\F,<-\e(B: \e$B5U$N=gHV\e(B]\\
+G S m     & \e$BJ}K!\e(B ({\bf method}) \e$BL>$GJB$S49$($^$9\e(B. [\e$B@\F,<-\e(B: \e$B5U$N=gHV\e(B]\\
+G S r     & \e$B3,5i\e(B (\e$B%l%Y%k$H%9%3%"\e(B) \e$B$GJB$S49$($^$9\e(B. [\e$B@\F,<-\e(B: \e$B5U$N=gHV\e(B]\\
+G S u     & \e$BL$FI\e(B ({\bf unread}) \e$B5-;v$N?t$GJB$S49$($^$9\e(B. [\e$B@\F,<-\e(B: \e$B5U$N\e(B
+\e$B=gHV\e(B]\\
+G S v     & \e$B%0%k!<%W%9%3%"\e(B (\e$BCM\e(B ({\bf value})) \e$B$GJB$S49$($^$9\e(B. [\e$B@\F,<-\e(B:
+\e$B5U$N=gHV\e(B]\\
+\end{keys}
+\e$B$3$3$G\e(B, {\bf x} \e$B$O\e(B a,l,m,r,u,v \e$B$N$I$l$+$G$9\e(B:\\*
+\begin{keys}{G P \bf x}
+G P \bf x & [p/p] \e$B$GA*Br$5$l$?%0%k!<%W$N$_$rJB$S49$($^$9\e(B.\\
+T S \bf x & \e$B8=:_$N%H%T%C%/$N$_$GJB$S49$($^$9\e(B.\\
+\end{keys}
+}}
 
-\subsec{\e$B%0%k!<%W$N0uIU$1\e(B}
+\def\SOUP{\subsubsec{(G s) SOUP \e$B%3%^%s%I\e(B}{\samepage
+SOUP \e$B$OB?$/$N5-;v\e(B/\e$BJVEz$r%Q%1%C%H$KF~$l$F\e(B, \e$B0lEY$KE>Aw$7\e(B, \e$B$=$l$i$r%*%U%i\e(B
+\e$B%$%s$GFI$_9~$_\e(B/\e$B:n@.$9$k%W%m%H%3%k$G$9\e(B. \e$B%Q%1%C%H$NA`:n$K$O0J2<$NL?Na$r\e(B
+\e$B;H$$\e(B, \e$BFI$`$?$a$K$O\e(B nnsoup \e$BJ}K!$r;HMQ$7$F$/$@$5$$\e(B.\\*
+\begin{keys}{G s w}
+G s b   & \e$BA4$F$N5-;v$r:-Jq$7$^$9\e(B (soup \e$B$r:n$j$^$9\e(B ({\bf
+brew})). [p/p]\\
+G s p   & \e$BA4$F$N\e(B SOUP \e$B%G!<%?$r\e(B SOUP \e$B%Q%1%C%H$K:-Jq\e(B ({\bf pack}) \e$B$7$^$9\e(B.\\
+G s r   & \e$BA4$F$NJVEz\e(B ({\bf replies}) \e$B$rJVEz%Q%1%C%H$K:-Jq$7$^$9\e(B.\\
+G s s   & \e$BJVEz%Q%1%C%H$KF~$l$?A4$F$NJVEz$rAw?.\e(B ({\bf send}) \e$B$7$^$9\e(B.\\
+G s w   & \e$BA4$F$N\e(B SOUP \e$B%G!<%?%U%!%$%k$r=q$-$^$9\e(B ({\bf Write}).\\
+\end{keys}}}
+
+\def\MarkGroups{\subsec{(M) \e$B%0%k!<%W$N0uIU$1\e(B}{\samepage
 \begin{keys}{M m}
-M m     & (\#) \e$B$3$N%0%k!<%W$K%W%m%;%90u\e(B {\bf mark} \e$B$rIU$1$^$9\e(B. [\e$BHO0O\e(B]\\
-M u     & (M-\#) \e$B$3$N%0%k!<%W$+$i%W%m%;%90u$r<h$j=|$-$^$9\e(B (\e$B0u>C5n\e(B {\bf
-unmark}).
-[\e$BHO0O\e(B]\\ 
+M b     & \e$B%P%C%U%!\e(B ({\bf buffer}) \e$B$NA4$F$N%0%k!<%W$K%W%m%;%90u$rIU$1$^\e(B
+\e$B$9\e(B.\\
+M r     & \e$B@55,I=8=\e(B ({\bf regexp}) \e$B$K9gCW$9$kA4$F$N%0%k!<%W$K0u$rIU$1$^\e(B
+\e$B$9\e(B.\\
+M m     & (\#) \e$B$3$N%0%k!<%W$K0u\e(B {\bf mark} \e$B$rIU$1$^$9\e(B. [\e$BHO0O\e(B]\\
+M u     & (M-\#) \e$B$3$N%0%k!<%W$+$i0u$r<h$j=|$-$^$9\e(B ({\bf unmark}). [\e$BHO0O\e(B]\\
 M w     & \e$B8=:_$N%j!<%8%g%s$NA4$F$N%0%k!<%W$K0u$rIU$1$^$9\e(B.\\
-\end{keys}
-
-\subsec{\e$BHs9VFI\e(B, \e$B%0%k!<%W$r@Z$jE=$j$9$k\e(B}
-\begin{keys}{S w}
-S k     & (C-k) \e$B$3$N%0%k!<%W$r@Z$j$^$9\e(B ({\bf kill}).\\
+M U     & \e$B%P%C%U%!$NA4$F$N%0%k!<%W$N0u$r<h$j=|$-$^$9\e(B ({\bf Unmark}).\\
+\end{keys}}}
+
+\def\Unsubscribe{\subsec{(S) (\e$BHs\e(B)\e$B9VFI\e(B, \e$B%0%k!<%W$r@Z$jE=$j$9$k\e(B}{\samepage
+\begin{keys}{S C-k}
+S C-k   & \e$BFCDj$N%l%Y%k$NA4$F$N%0%k!<%W$r@Z$j$^$9\e(B ({\kill}).\\
+S k     & (C-k) \e$B$3$N%0%k!<%W\e(B/\e$B%H%T%C%/\e(B (\e$B$H$=$l$NA4$F$N%0%k!<%W\e(B)\e$B$r@Z$j$^\e(B
+\e$B$9\e(B ({\bf kill}).\\
 S l     & \e$B$3$N%0%k!<%W$N%l%Y%k\e(B ({\bf level}) \e$B$r@_Dj$7$^$9\e(B. [p/p]\\
 S s     & (U) \e$B%0%k!<%W$NF~NO$rB%?J$7$F$=$N9VFI\e(B ({\bf subscription}) \e$B$r\e(B
 \e$B@Z$jBX$($^$9\e(B.\\
 S t     & (u) \e$B$3$N%0%k!<%W$N9VFI$r@Z$jBX$(\e(B ({\bf toggle}) \e$B$^$9\e(B.
 [p/p]\\
 S w     & (C-w) \e$B%j!<%8%g%s$NA4$F$N%0%k!<%W$r@Z$j$^$9\e(B.\\
-S y     & (C-y) \e$B:G8e$K\e(B kill \e$B$5$l$?%0%k!<%W$rE=$j$^$9\e(B ({\bf yank}) .\\
+S y     & (C-y) \e$B:G8e$K\e(B kill \e$B$5$l$?%0%k!<%W\e(B/\e$B%H%T%C%/$rE=$j$^$9\e(B ({\bf yank}) .\\
 S z     & \e$BA4$F$N%>%s%S\e(B ({\bf zombie}) \e$B%0%k!<%W$r@Z$j$^$9\e(B.\\
-\end{keys}
-}
-
-\def\SummaryMode{
-\sec{\e$B35N,%b!<%I\e(B}  %{Summary and Article Modes}
-\begin{keys}{SPC}
-SPC     & (A SPC, A n) \e$B5-;v$NA*Br\e(B, 1\e$B%Z!<%8%9%/%m!<%k\e(B, \e$B<!$N5-;v$X$N0\F0\e(B, 
-\e$B$G$9\e(B.\\ 
-DEL     & (A DEL, A p, b) \e$B$3$N5-;v$r\e(B1\e$B%Z!<%8%9%/%m!<%k$7$FLa$7$^$9\e(B. [\e$B5w\e(B
-\e$BN%\e(B]\\
+\end{keys}}}
+
+\def\GroupTopics{\subsec{(T) \e$B%0%k!<%W%H%T%C%/\e(B}{\samepage
+\e$B%H%T%C%/$OFI$s$@$j4IM}$7$?$j$9$k$N$r4JC1$K$9$k$?$a$N%0%k!<%W$N3,AXE*$J\e(B
+\e$BAH9g$;$G$9\e(B.
+\begin{keys}{T TAB}
+T TAB   & \e$B$3$N%H%T%C%/$r0JA0$N$b$N$NI{%H%T%C%/$K$J$k$h$&$K;z2<$2$r$7$^\e(B
+          \e$B$9\e(B. [\e$B@\F,<-\e(B: \e$B;z2<$2$rLa$7$$$^$9\e(B]\\
+T DEL   & \e$B6u$N%H%T%C%/$r>C5n\e(B ({\bf delete}) \e$B$7$^$9\e(B.\\
+T \#    & \e$B$3$N%H%T%C%/$NA4$F$N%0%k!<%W$K<B9T0u$rIU$1$^$9\e(B.\\
+T M-\#  & \e$B$3$N%H%T%C%/$N<B9T0u$NIU$$$F$$$kA4$F$N%0%k!<%W$+$i0u$r<h$j=|\e(B
+          \e$B$-$^$9\e(B.\\
+T c     & \e$B$3$N%0%k!<%W$rB>$N%H%T%C%/$KJ#@=\e(B ({\bf copy}) \e$B$7$^$9\e(B.
+          [p/p]\\
+T h     & \e$B6u$N%H%T%C%/$r1#$9\e(B ({\bf hiding}) \e$B$+$r@Z$j49$($^$9\e(B.\\
+T m     & \e$B$3$N%0%k!<%W$rB>$N%H%T%C%/$K0\F0\e(B ({\bf move}) \e$B$7$^$9\e(B.
+          [p/p]\\
+T n     & \e$B?7$7$$\e(B ({\bf new}) \e$B%H%T%C%/$r:n@.$7$^$9\e(B.\\
+T r     & \e$B%H%T%C%/$r2~L>\e(B ({\bf rename}) \e$B$7$^$9\e(B.\\
+T C     & \e$B@55,I=8=$K9gCW$9$kA4$F$N%0%k!<%W$r%H%T%C%/$KJ#@=\e(B ({\bf
+          copy}) \e$B$7$^$9\e(B.\\
+T D     & \e$B$3$N%H%T%C%/$r$3$N%0%k!<%W$+$i>C5n\e(B ({\bf delete}) \e$B$7$^$9\e(B. [p/p]\\
+T M     & \e$B@55,I=8=$K9gCW$9$kA4$F$N%0%k!<%W$r%H%T%C%/$K0\F0\e(B ({\bf
+          move}) \e$B$7$^$9\e(B.\\
+\end{keys}}}
+
+\def\SummaryMode{\sec{\e$B35N,%b!<%I\e(B}{\samepage
+\begin{keys}{M-C-d}
+SPC     & \e$B5-;v$NA*Br\e(B, 1\e$B%Z!<%8%9%/%m!<%k\e(B, \e$B<!$N5-;v$X$N0\F0\e(B,
+\e$B$G$9\e(B.\\
+% (A SPC, A n)
+DEL     & (b) \e$B$3$N5-;v$r\e(B1\e$B%Z!<%8%9%/%m!<%k$7$FLa$7$^$9\e(B. [\e$B5w\e(B
+\e$BN%\e(B]\\ %(A DEL, A p)
 RET     & \e$B$3$N5-;v$r0l9T@h$K%9%/%m!<%k$7$^$9\e(B. [\e$B5wN%\e(B]\\
 =       & \e$B35N,$N%&%#%s%I%&$r3HD%$7$^$9\e(B. [\e$B@\F,<-\e(B: \e$B5-;v%&%#%s%I%&$rI=<(\e(B
 \e$B$9$k$h$&$K=L$a$^$9\e(B]\\
-$<$     & (A $<$, A b) \e$B$3$N5-;v$N:G=i$K%9%/%m!<%k$7$^$9\e(B.\\
-$>$     & (A $>$, A e) \e$B$3$N5-;v$N:G8e$K%9%/%m!<%k$7$^$9\e(B.\\
+$<$     & (A $<$) \e$B$3$N5-;v$N:G=i$K%9%/%m!<%k$7$^$9\e(B.\\ %(A b)
+$>$     & (A $>$) \e$B$3$N5-;v$N:G8e$K%9%/%m!<%k$7$^$9\e(B.\\ %(A e)
 \&      & \e$B@55,I=8=$K9g$&A4$F$N5-;v$KL?Na$r<B9T$7$^$9\e(B. [\e$B@\F,<-\e(B: \e$B8e$m$K\e(B
 \e$B0\F0$7$^$9\e(B.]\\
-j       & (G g) \e$B5-;vHV9f$r?R$M$F\e(B, \e$B$=$N35N,9T$KHt$S\e(B ({\bf jump}) \e$B$^$9\e(B.\\
+k       & \e$B$3$N%9%l%C%I$K\e(B GroupLens \e$B$N3,5i\e(B (rating) (1-5) \e$B$rM?$($^$9\e(B.\\
+r       & \e$B$3$N5-;v$K\e(B GroupLens \e$B$N3,5i\e(B (rating) (1-5) \e$B$rM?$($^$9\e(B.\\
+Y g     & \e$B35N,%P%C%U%!$r:F:n@.\e(B (re{\bf generate}) \e$B$7$^$9\e(B.\\
+Y c     & \e$BA4$F$N%-%c%C%7%e$7$F$$$k\e(B ({\bf cached}) \e$B5-;v$r$r$r35N,$KF~$l\e(B
+\e$B$^$9\e(B.\\
 C-t     & \e$B35N,9T$N@Z$j<h$j\e(B ({\bf truncation}) \e$B$r@Z$j49$($^$9\e(B.\\
-M-\&    & \e$B%W%m%;%90u$NIU$$$F$$$kA4$F$N5-;v$KL?Na$r<B9T$7$^$9\e(B.\\
+C-d     & \e$B$3$l$rJL$N%0%k!<%W$K%@%$%8%'%9%H$NE83+\e(B (un-{\bf digestify})
+\e$B$7$^$9\e(B.\\
+M-C-d   & \e$BA4$F$NA*Br$7$F$$$k5-;v$r0l$D$N%0%k!<%W$K%@%$%8%'%9%H$rE83+$7\e(B
+\e$B$^$9\e(B (un-{\bf digestify}).\\
 M-k     & \e$B$3$N%0%k!<%W$N\e(B {\bf kill} \e$B%U%!%$%k$rJT=8$7$^$9\e(B.\\
-M-n     & (G M-n) \e$B<!$N\e(B ({\bf next}) \e$BL$FI5-;v$N35N,9T$K0\F0$7$^$9\e(B. [\e$B5w\e(B
-\e$BN%\e(B]\\ 
-M-p     & (G M-p) \e$BA0$N\e(B ({\bf previous}) \e$BL$FI5-;v$N35N,9T$K0\F0$7$^$9\e(B.
-[\e$B5wN%\e(B]\\ 
-M-r     & \e$B@55,I=8=$GA0$NA4$F$N5-;v$r8!:w$7$^$9\e(B.\\
-M-s     & \e$B@55,I=8=$GB3$/A4$F$N5-;v$r8!:w\e(B ({\bf earch}) \e$B$7$^$9\e(B.\\
+M-r     & \e$B@55,I=8=$GA0$N5-;v$r8!:w$7$^$9\e(B.\\
+M-s     & \e$B@55,I=8=$GB3$/5-;v$r8!:w\e(B ({\bf search}) \e$B$7$^$9\e(B.\\
 M-K     & \e$BAm9g\e(B {\bf kill} \e$B%U%!%$%k$rJT=8$7$^$9\e(B.\\
-\end{keys}
-}
+\end{keys}}}
 
-\def\SortSummary{
-\subsec{\e$B35N,%P%C%U%!$NJB$S49$(\e(B}
+\def\SortSummary{\subsec{(C-c C-s) \e$B35N,%P%C%U%!$NJB$S49$(\e(B}{\samepage
+\e$B%9%l%C%I%b!<%I$G$O\e(B, \e$B$3$l$i$NL?Na$O%9%l%C%I$N:,$@$1$rJB$S49$($^$9\e(B.\\*
 \begin{keys}{C-c C-s C-a}
 C-c C-s C-a & \e$BCx<T\e(B ({\bf author}) \e$B$G35N,$rJB$S49$($^$9\e(B.\\
 C-c C-s C-d & \e$BF|IU$1\e(B ({\bf date}) \e$B$G35N,$rJB$S49$($^$9\e(B.\\
 C-c C-s C-i & \e$B5-;v$N%9%3%"$G35N,$rJB$S49$($^$9\e(B.\\
+C-c C-s C-l & \e$B9T?t\e(B ({\bf line}) \e$B$GJB$S49$($^$9\e(B.\\
 C-c C-s C-n & \e$B5-;v$NHV9f\e(B ({\bf number}) \e$B$G35N,$rJB$S49$($^$9\e(B.\\
 C-c C-s C-s & \e$BI=Bj\e(B ({\bf subject}) \e$B$G35N,$rJB$S49$($^$9\e(B.\\
-\end{keys}
-}
+\end{keys}}}
 
-\def\Asubmap{
-\subsec{\e$B5-;v%P%C%U%!L?Na\e(B}
+\def\Article{\subsec{(A) \e$B5-;vL?Na\e(B}{\samepage
 \begin{keys}{A m}
-A g     & (g) \e$B$3$N5-;v$r\e(B(\e$B:F\e(B)\e$B<hF@$7$^$9\e(B ({\bf get}). [\e$B@\F,<-\e(B: \e$B5-;v$rI=\e(B
-\e$B<($9$k$@$1$G$9\e(B.]\\ 
-A r     & (^, A ^) \e$B$3$N5-;v$N?F$K0\F0$7$^$9\e(B ({\bf References} \e$B%X%C%@!<\e(B
-\e$B$G$9\e(B).\\ 
-M-^     & \e$BM?$($i$l$?\e(B Message-ID \e$B$N5-;v$r<hF@$7$^$9\e(B.\\
+A g     & (g) \e$B$3$N5-;v$r\e(B(\e$B:F\e(B)\e$B<hF@$7$^$9\e(B ({\bf get}). [\e$B@\F,<-\e(B: \e$B2?$b<B9T\e(B
+\e$B$7$^$;$s\e(B.]\\
+A r     & (^) \e$B$3$N5-;v$N?F$K0\F0$7$^$9\e(B ({\bf References} \e$B%X%C%@!<\e(B
+\e$B$G$9\e(B.) [\e$B@\F,<-\e(B: \e$B$I$N$/$i$$@h$KLa$k$+\e(B; \e$BIi\e(B: $n$ \e$BHVL\$NAD@h$@$1\e(B].\\  %(A ^)
+M-^     & \e$BM?$($i$l$?\e(B Message-ID \e$B$N5-;v$K0\F0$7$^$9\e(B. [\e$B@\F,<-\e(B: \e$BJ}K!$b;X\e(B
+\e$BDj$7$^$9\e(B.]\\
 A s     & (s) \e$B5-;v%P%C%U%!$G\e(B i{\bf search} \e$B$r<B9T$7$^$9\e(B.\\
-A D     & (C-d) \e$BJL$N%0%k!<%W$K=8G[G[Aw%a%C%;!<%8$r:FG[Aw\e(B ({\bf
-digestify}) \e$B$7$^$9\e(B.\\
-\end{keys}
-}
+A P     & \e$B5-;v$r%]%9%H%9%/%j%W%H$H$7$F0u:~\e(B ({\bf print}) \e$B$7$^$9\e(B.\\
+A R     & \e$B$3$N5-;v$NA4$F$NAD@h\e(B ({\bf References}) \e$B$r<hF@$7$^$9\e(B.\\
+\end{keys}}}
 
-\def\Bsubmap{
-\subsec{\e$B%a!<%k%0%k!<%WL?Na\e(B}
-{\samepage
+\def\MailGroup{\subsec{(B) \e$B%a!<%k%0%k!<%WL?Na\e(B}{\samepage
 \e$B$3$l$i$NL?Na\e(B (`B c' \e$B$r=|$/\e(B) \e$B$O%a!<%k%0%k!<%W$G$N$_M-8z$G$9\e(B.\\*
 \begin{keys}{B M-C-e}
-B DEL   & {\e$B%a!<%k5-;v$r%G%#%9%/$+$i>C5n\e(B (\bf delete}) \e$B$7$^$9\e(B (!). [p/p]\\
+B DEL   & {\e$B%a!<%k5-;v$r%G%#%9%/$+$i>C5n\e(B (\bf delete}) \e$B$7$^$9\e(B. [p/p]\\
 B c     & \e$B$3$N5-;v$r$I$3$+$N%0%k!<%W$+$i%a!<%k%0%k!<%W$KJ#@=\e(B ({\bf
 copy}) \e$B$7$^$9\e(B. [p/p]\\
 B e     & \e$B$3$N%0%k!<%W$NA4$F$N;~8B>C5n2DG=5-;v$r;~8B>C5n\e(B ({\bf
 expire}) \e$B$7$^$9\e(B. [p/p]\\
-B i     & \e$B%i%s%@%`$J%U%!%$%k$r$3$N%0%k!<%W$N<h$j9~$_\e(B ({\bf import}) \e$B$^\e(B
-\e$B$9\e(B.\\
+B i     & \e$BG$0U$N%U%!%$%k$r$3$N%a!<%k%0%k!<%W$N<h$j9~$_\e(B ({\bf import}) \e$B$^\e(B
+\e$B$9\e(B (From \e$B$H\e(B Subject \e$B$rM?$($^$9\e(B).\\
 B m     & \e$B$"$k%a!<%k%0%k!<%W$+$iJL$N%0%k!<%W$X5-;v$r0\F0\e(B ({\bf move})
 \e$B$7$^$9\e(B. [p/p]\\
-B q     & \e$BFC5iJ,3d$G5-;v$,$I$3$K9T$/$+$r?R$M$^$9\e(B ({\bf query}).\\
+B p     & \e$B$I$3$K%a%C%;!<%8$N9%0U$NJ#@=$bEj9F$5$l$?\e(B ({\bf posted}) \e$B$+$I\e(B
+\e$B$&$+$rD4$Y$^$9\e(B.\\
+B q     & \e$B:F%9%W!<%k$5$l$?$H$-$K\e(B, \e$B5-;v$,$I$3$K9T$/$+$r?R$M$^$9\e(B ({\bf
+query}).\\
 B r     & \e$B$3$N%a!<%k5-;v$r:F%9%W!<%k\e(B ({\bf respool}) \e$B$7$^$9\e(B. [p/p]\\
-B w     & (e) \e$B$3$N5-;v$rJT=8$7$^$9\e(B.\\
+B w     & (e) \e$B$3$N%a!<%k5-;v$rJT=8$7$^$9\e(B.\\
 B M-C-e & \e$B$3$N%0%k!<%W$NA4$F$N;~8B>C5n2DG=5-;v$r:o=|\e(B ({\bf expunge})
-(\e$B%G%#%9%/$+$i>C$7$^$9\e(B) (!). [p/p]\\ 
-\end{keys}
-}}
+(\e$B%G%#%9%/$+$i>C$7$^$9\e(B). [p/p]\\
+B C     & \e$B$3$N5-;v$rJL$N%0%k!<%W$KAj8_Ej9F\e(B ({\bf crosspost}) \e$B$7$^$9\e(B.\\
+\end{keys}}}
 
-\def\Gsubmap{
-\subsec{\e$B5-;vA*Br\e(B}
-{\samepage
+\def\GotoArticle{\subsec{(G) \e$B5-;v$X$N0\F0\e(B}{\samepage
 \e$B$3$l$i$NL?Na$OBP>]5-;v$rA*Br$7$^$9\e(B. \e$B@\F,0z?t$OM}2r$7$^$;$s\e(B. \\*
 \begin{keys}{G C-n}
 G b     & (,) \e$B:G9b\e(B ({\bf best}) \e$B$N5-;v$K0\F0$7$^$9\e(B (\e$B:G9b%9%3%"$N$b$N$G\e(B
-\e$B$9\e(B).\\
+\e$B$9\e(B). [GL rating]\\
 G f     & (.) \e$B:G=i\e(B ({\bf first}) \e$B$NL$FI5-;v$K0\F0$7$^$9\e(B.\\
+G g     & \e$B5-;vHV9f$r?V$$$F$+$i$=$N35N,9T$X0\F0\e(B ({\bf go to}) \e$B$7$^$9\e(B.\\
+G j     & (j) \e$B5-;vHV9f$r?V$$$F$+$i$=$N5-;v$XHt$S$^$9\e(B ({\bf jump}).\\
 G l     & (l) \e$B:G8e\e(B ({\bf last}) \e$B$N4{FI5-;v$K0\F0$7$^$9\e(B.\\
+G o     & \e$B35N,$NMzNr$+$i5-;v$r<h$j=P$7\e(B, \e$B$=$l$K0\F0$7$^$9\e(B.\\
 G n     & (n) \e$B<!\e(B ({\bf next}) \e$B$NL$FI5-;v$K0\F0$7$^$9\e(B.\\
-p       & \e$BA0\e(B ({\bf previous}) \e$B$NL$FI5-;v$K0\F0$7$^$9\e(B.\\
-G p     & \e$B35N,$NMzNr$+$i5-;v$r<h$j=P$7\e(B ({\bf pop}) \e$B$=$l$K0\F0$7$^$9\e(B.\\
+G p     & (p) \e$BA0\e(B ({\bf previous}) \e$B$NL$FI5-;v$K0\F0$7$^$9\e(B.\\
 G N     & (N) \e$B<!\e(B ({\bf next}) \e$B$N5-;v$K0\F0$7$^$9\e(B\\
 G P     & (P) \e$BA0\e(B ({\bf previous}) \e$B$N5-;v$K0\F0$7$^$9\e(B.\\
 G C-n   & (M-C-n) \e$BF1$8I=Bj$N<!\e(B ({\bf next}) \e$B$N5-;v$K0\F0$7$^$9\e(B.\\
 G C-p   & (M-C-p) \e$BF1$8I=Bj$NA0\e(B ({\bf previous}) \e$B$N5-;v$K0\F0$7$^$9\e(B.\\
-\end{keys}
-}}
-
-\def\Hsubmap{
-\subsec{\e$B%X%k%WL?Na\e(B}
-\begin{keys}{H d}
-H d     & (C-c C-d) \e$B$3$N%0%k!<%W$N5-=R\e(B ({\bf describe}) \e$B$r$7$^$9\e(B. [\e$B@\\e(B
-\e$BF,<-\e(B: \e$B%5!<%P!<$+$i@bL@$r:FFI$_9~$_$7$^$9\e(B.]\\
-H f     & ange-ftp \e$B$r;H$C$F$3$N%0%k!<%W$N\e(B {\bf FAQ} \e$B$r<hF@$7$h$&$H$7$^\e(B
-\e$B$9\e(B.\\
-H h     & \e$BHs>o$KC;$$%X%k%W\e(B ({\bf help}) \e$B%a%C%;!<%8$rI=<($7$^$9\e(B.\\
-H i     & (C-c C-i) Gnus \e$B$N%*%s%i%$%s\e(B {\bf info} \e$B$K0\F0$7$^$9\e(B.\\
-H v     & Gnus \e$B$N%P!<%8%g%s\e(B ({\bf version}) \e$BHV9f$rI=<($7$^$9\e(B.\\
-\end{keys}
-}
+G M-n   & (M-n) \e$B35N,9T$G<!\e(B ({\bf next}) \e$B$NL$FI5-;v$K0\F0$7$^$9\e(B. [\e$B5wN%\e(B]\\
+G M-p   & (M-p) \e$B35N,9T$GA0\e(B ({\bf previous}) \e$B$NL$FI5-;v$K0\F0$7$^$9\e(B.
+[\e$B5wN%\e(B]\\
+\end{keys}}}
 
-\def\Msubmap{
-\subsec{\e$B5-;v$K0u$rIU$1$k\e(B}
+\def\MarkArticles{\subsec{(M) \e$B5-;v$K0u$rIU$1$k\e(B}{\samepage
 \begin{keys}{M M-C-r}
-d       & (M d, M r) \e$B$3$N5-;v$K4{FI$N0u$rIU$1$F\e(B, \e$B<!$N$b$N$K0\F0$7$^$9\e(B.
-[\e$BHO0O\e(B]\\ 
+d       & (M d, M r) \e$B$3$N5-;v$K4{FI\e(B ({\bf read}) (\e$B$=$l$N>C5n\e(B ({\bf
+delete})) \e$B$N0u$rIU$1$F\e(B, \e$B<!$N$b$N$K0\F0$7$^$9\e(B. [\e$BHO0O\e(B]\\
 D       & \e$B$3$N5-;v$K4{FI$N0u$rIU$1$F\e(B, \e$BA0$N$b$N$K0\F0$7$^$9\e(B. [\e$BHO0O\e(B]\\
-u       & (!, M !, M t) \e$B$3$N5-;v$K2D;k0u\e(B (\e$B6=L#?<$$$H$7$F0u$rIU$1\e(B) \e$B<!$N\e(B
-\e$B$b$N$K0\F0$7$^$9\e(B. [\e$BHO0O\e(B]\\
-U       & \e$B$3$N5-;v$K2D;k0u$rIU$1\e(B, \e$BA0$N$b$N$K0\F0$7$^$9\e(B. [\e$BHO0O\e(B]\\ 
-M-u     & (M SPC, M c) \e$B$3$N5-;v$NA4$F$N0u$r>C5n$7\e(B, \e$B<!$N5-;v$K0\F0$7$^\e(B
-\e$B$9\e(B. [\e$BHO0O\e(B]\\ 
-M-U     & \e$B$3$N5-;v$NA4$F$N0u$r>C5n$7\e(B, \e$BA0$N5-;v$K0\F0$7$^$9\e(B. [\e$BHO0O\e(B]\\ 
+u       & (!, M t) \e$B$3$N5-;v$K2D;k0u\e(B ({\bf Tick}) (\e$B6=L#?<$$$H$7$F0u$rIU\e(B
+\e$B$1\e(B) \e$B<!$N$b$N$K0\F0$7$^$9\e(B. [\e$BHO0O\e(B]\\ %(M !)
+U       & \e$B$3$N5-;v$K2D;k0u$rIU$1\e(B, \e$BA0$N$b$N$K0\F0$7$^$9\e(B. [\e$BHO0O\e(B]\\
+M-u     & (M SPC, M c) \e$B$3$N5-;v$NA4$F$N0u$r>C5n$7\e(B ({\bf Clear}), \e$B<!$N\e(B
+\e$B5-;v$K0\F0$7$^$9\e(B. [\e$BHO0O\e(B]\\
+M-U     & \e$B$3$N5-;v$NA4$F$N0u$r>C5n$7\e(B, \e$BA0$N5-;v$K0\F0$7$^$9\e(B. [\e$BHO0O\e(B]\\
 M ?     & (?) \e$B$3$N5-;v$KJ]N1$N0u$rIU$1$^$9\e(B (\e$B%U%)%m!<%"%C%W$K$@$16=L#$,\e(B
-\e$B$"$k\e(B). [\e$BHO0O\e(B]\\ 
+\e$B$"$k\e(B). [\e$BHO0O\e(B]\\
+*       & \e$B%-%c%C%7%e$K5-;v$rF~$l$^$9\e(B (\e$B1JB3$K$7$^$9\e(B). [p/p]\\
+M-*     & \e$B$3$N5-;v$r%-%c%C%7%e$+$i<h$j=|$-$^$9\e(B (\e$B1JB3$GL5$/$7$^$9\e(B).
+[p/p]\\
 M b     & \e$B$3$N5-;v$K$7$*$j\e(B ({\bf bookmark}) \e$B$r@_Dj$7$^$9\e(B.\\
-M e     & (E, M x) \e$B$3$N5-;v$r;~8B>C5n2DG=\e(B ({\bf expirable}) \e$B$H$7$F0u$r\e(B
-\e$BIU$1$^$9\e(B. [\e$BHO0O\e(B]\\
+M e     & (E) \e$B$3$N5-;v$r;~8B>C5n2DG=\e(B ({\bf expirable}) \e$B$H$7$F0u$rIU$1\e(B
+\e$B$^$9\e(B. [\e$BHO0O\e(B]\\ %(M x)
 M k     & (k) \e$BF1$8I=Bj$NA4$F$N5-;v$r@Z$j\e(B ({\bf kill}), \e$B<!$N5-;v$rA*Br\e(B
 \e$B$7$^$9\e(B.\\
 M B     & \e$B$3$N5-;v$+$i$7$*$j\e(B ({\bf bookmark}) \e$B$r<h$j=|$-$^$9\e(B.\\
-M C     & \e$B2D;k0u$G$J$$5-;v$r%-%c%C%A%"%C%W\e(B ({\bf catch-up}) \e$B$7$^$9\e(B.\\
+M C     & \e$B2D;k0u$G$J$$5-;v$r%-%c%C%A%"%C%W\e(B ({\bf catch-up}) (\e$B4{FI$N0u\e(B
+\e$B$rIU$1$k\e(B) \e$B$7$^$9\e(B.\\
 M D     & \e$BA4$F$NJ]N1\e(B ({\bf dormant}) \e$B5-;v$rI=<($7$^$9\e(B (\e$BIaDL$O%U%)%m!<\e(B
 \e$B%"%C%W$,$J$$8B$j1#$5$l$F$$$^$9\e(B).\\
 M H     & \e$B$3$N%0%k!<%W$G$3$3\e(B ({\bf here}) \e$B$^$G%-%c%C%A%"%C%W\e(B (\e$B4{FI$N0u\e(B
@@ -444,9 +546,9 @@ M C-c   & \e$B$3$N%0%k!<%W$NA4$F$N5-;v$r%-%c%C%A%"%C%W\e(B ({\bf catch-up}) \e$B$7\e
 M M-r   & (x) \e$B$3$N%0%k!<%W$NA4$F$N4{FI\e(B ({\bf read}) \e$B5-;v$r>C5n$7$^$9\e(B.\\
 M M-D   & \e$BA4$F$NJ]N1\e(B ({\bf dormant}) \e$B5-;v$r1#$7$^$9\e(B.\\
 M M-C-r & \e$BM?$($i$l$?0u$NA4$F$N5-;v$r>C5n$7$^$9\e(B.\\
-\end{keys}
+\end{keys}}}
 
-\subsubsec{\e$B%9%3%"$K4p$E$$$?0u\e(B}
+\def\MarkScore{\subsubsec{(M V) \e$B%9%3%"\e(B (\e$BCM\e(B) \e$B$K4p$E$$$?0u\e(B}{\samepage
 \begin{keys}{M s m}
 M V c   & \e$BA4$F$N9b%9%3%"$N5-;v$+$iA4$F$N0u$r>C5n\e(B ({\bf clear}) \e$B$7$^$9\e(B.
 [score]\\
@@ -455,149 +557,188 @@ M V m   & \e$BA4$F$N9b%9%3%"$N5-;v$KM?$($i$($l$?0u\e(B ({\bf mark}) \e$B$rIU$1$^$9\e
 [score]\\
 M V u   & \e$BA4$F$N9b%9%3%"$N5-;v$r$*$b$7$m$$$H$7$F0u$rIU$1$^$9\e(B (\e$B2D;k0u$r\e(B
 \e$BIU$1$^$9\e(B). [score]\\
-\end{keys}
+\end{keys}}}
 
-\subsubsec{\e$B%W%m%;%90u\e(B}
-{\samepage 
+\def\ProcessMark{\subsubsec{(M P) \e$B%W%m%;%90u\e(B}{\samepage
 \e$B$3$l$i$NL?Na$O%W%m%;%90u\e(B \# \e$B$rIU$1$?$j>C5n$7$?$j$7$^$9\e(B. \e$BA`:n$7$?$$5-;v\e(B
 \e$B$,O"B3$7$F$$$J$$$H$-$@$1$=$l$r;H$&I,MW$,$"$k$G$7$g$&\e(B. \e$B$=$&$G$J$1$l$P?t\e(B
 \e$BCM0z?t$r;H$$$^$9\e(B.\\*
 \begin{keys}{M P R}
 M P a   & \e$BA4$F\e(B ({\bf all}) \e$B$N5-;v$K0u$rIU$1$^$9\e(B (\e$B=gHV$K\e(B).\\
-M P p   & (\#, M \#) \e$B$3$N5-;v$K0u$rIU$1$^$9\e(B.\\
+M P b   & \e$B%P%C%U%!\e(B ({\bf buffer}) \e$B$K8=$l$?=g$KA4$F$N5-;v$K0u$rIU$1$^$9\e(B.\\
+M P i   & \e$BA4$F$N<B9T0u$r5U$K$7$^$9\e(B ({\bf invert}).\\
+M P k   & \e$BA4$F$N0u$r%9%?%C%/$K@Q$s$G\e(B, \e$B$=$l$+$i@Z$j$^$9\e(B ({\bf kill}).\\
+M P p   & (\#) \e$B$3$N5-;v$K0u$rIU$1$^$9\e(B.\\ %(M \#)
 M P r   & \e$B6h0h\e(B ({\bf region}) \e$B$NA4$F$N5-;v$K0u$rIU$1$^$9\e(B.\\
 M P s   & \e$B8=:_$NO"B3J*\e(B ({\bf series}) \e$B$NA4$F$K0u$rIU$1$^$9\e(B.\\
 M P t   & \e$B$3$N\e(B (\e$BI{\e(B)\e$B%9%l%C%I\e(B ({\bf thread}) \e$B$NA4$F$N5-;v$K0u$rIU$1$^$9\e(B.\\
-M P u   & (M-\#, M M-\#) \e$B$3$N5-;v$+$i0u$r>C$7$^$9\e(B ({\bf unmark}).\\
+M P u   & (M-\#) \e$B$3$N5-;v$+$i0u$r>C$7$^$9\e(B ({\bf unmark}).\\ %(M M-\#)
+M P v   & \e$BA4$F$N9b$$%9%3%"$N5-;v\e(B (\e$BCM\e(B ({\bf value})) \e$B$K0u$rIU$1$^$9\e(B.
+[score]\\
+M P w   & \e$BA4$F$N0u$r%9%?%C%/$K@Q$_$^$9\e(B.\\
+M P y   & `M P y', `M P w' \e$B$d0u$r>C5n$9$kA`:n$N8e$G%9%?%C%/$+$i0u$rE=\e(B
+\e$B$j\e(B ({\bf yank}), \e$BI|85$7$^$9\e(B.\\
 M P R   & \e$B@55,I=8=\e(B ({\bf regexp}) \e$B$K9g$&A4$F$N5-;v$K0u$rIU$1$^$9\e(B.\\
 M P S   & \e$B0uIU$-$N5-;v$r4^$`A4$F$NO"B3$7$?5-;v\e(B ({\bf series}) \e$B$K0u$rIU\e(B
 \e$B$1$^$9\e(B.\\
+M P T   & \e$B$3$N\e(B (\e$BI{\e(B)\e$B%9%l%C%I\e(B ({\bf thread}) \e$B$K$"$kA4$F$N5-;v$N0u$r<h$j\e(B
+\e$B=|$-$^$9\e(B.\\
 M P U   & \e$BA4$F$N5-;v$+$i0u$r>C$7$^$9\e(B ({\bf unmark}).\\
-\end{keys}
-}}
+\end{keys}}}
 
-\def\Osubmap{
-\subsec{\e$B5-;v$N=PNO\e(B}
+\def\OutputArticles{\subsec{(O) \e$B5-;v$N=PNO\e(B}{\samepage
 \begin{keys}{O m}
+O b     & \e$B5-;v$NK\BN\e(B ({bf body} \e$B$r%W%l%$%s%U%!%$%k7A<0$GJ]B8$7$^$9\e(B.
+[p/p]\\
 O f     & \e$B$3$N5-;v$r%W%l%$%s%U%!%$%k\e(B ({\bf file}) \e$B7A<0$GJ]B8$7$^$9\e(B.
 [p/p]\\
 O h     & \e$B$3$N5-;v$r\e(B {\bf mh} \e$B%U%)%k%@!<$N7A<0$GJ]B8$7$^$9\e(B. [p/p]\\
 O m     & \e$B$3$N5-;v$r%a!<%k\e(B ({\bf mail}) \e$B7A<0$GJ]B8$7$^$9\e(B. [p/p]\\
-O o     & (o, C-o) \e$B$3$N5-;v$r=i4|5-;vJ]B84o$r;H$C$FJ]B8$7$^$9\e(B. [p/p]\\
+O o     & (o, C-o) \e$B$3$N5-;v$r\e(B gnus-default-article-saver \e$B$r;H$C$FJ]B8\e(B
+\e$B$7$^$9\e(B. [p/p]\\
 O p     & ($\mid$) \e$B$3$N5-;v$r%7%'%k%3%^%s%I$K%Q%$%W$GAw$j$^$9\e(B. [p/p]\\
-O r     & \e$B$3$N5-;v$r\e(B {\bf rmail} \e$B7A<0$GJ]B8$7$^$9\e(B. [p/p]\\
+O r     & \e$B$3$N5-;v$r\e(B {\bf RMAIL} \e$B7A<0$GJ]B8$7$^$9\e(B. [p/p]\\
+O s     & \e$B$3$N5-;v$r\e(B {\bf SOUP} \e$B%Q%1%C%H$r5-;v$KDI2C$7$^$9\e(B. [p/p]\\
 O v     & \e$B$3$N5-;v$r\e(B {\bf vm} \e$B$N7A<0$GJ]B8$7$^$9\e(B. [p/p]\\
-\end{keys}
-}
+O F     & \e$B$3$N5-;v$r\e(B, \e$BB8:_$9$k%U%!%$%k$r>e=q$-$7$F\e(B, \e$B%W%l%$%s%U%!%$%k\e(B
+({\bf file}) \e$B$KJ]B8$7$^$9\e(B. [p/p]\\
+\end{keys}}}
 
-\def\Ssubmap{
-\subsec{\e$BEj9F\e(B, \e$B%U%)%m!<%"%C%W\e(B, \e$BJVEz\e(B, \e$BE>Aw\e(B, \e$B<h$j>C$7\e(B}
-{\samepage
-\e$B$3$l$i$NL?Na$OJL$NEj9F$+%a!<%k%P%C%U%!$K9T$-$^$9\e(B. \e$B5-;v$rJT=8$7$?8e\e(B,
+\def\Send{\subsec{(S) \e$BEj9F\e(B, \e$B%U%)%m!<%"%C%W\e(B, \e$BJVEz\e(B, \e$BE>Aw\e(B, \e$B<h$j>C$7\e(B}{\samepage
+\e$B$3$l$i$NL?Na$OJL$N\e(B Message \e$B%P%C%U%!$K9T$-$^$9\e(B. \e$B5-;v$rJT=8$7$?8e\e(B,
 C-c C-c \e$B$r2!$7$FAw?.$7$^$9\e(B. \e$B30It%0%k!<%W$K$$$F\e(B, \e$B30It%5!<%P!<$r;H$C$F5-\e(B
-\e$B;v$rEj9F$7$?$$$J$i\e(B, C-c C-c \e$B$K@\F,<-$rM?$($F$/$@$5$$\e(B.\\*
+\e$B;v$rEj9F$7$?$$$J$i\e(B, C-c C-c \e$B$K@\F,<-$rM?$($F$/$@$5$$\e(B. [\e$B0l;~E*\e(B] \e$B$K%5!<\e(B
+\e$B%P!<$,Ej9F$G$-$J$$$J$/$F\e(B, \e$B%a!<%k$+$i%K%e!<%9$X$N%2!<%H%&%'%$$r;H$C$FEj\e(B
+\e$B9F$7$?$$$H$-$K$O\e(B, `gnus-post-method' \e$B$r\e(B `nngateway' \e$B$K@_Dj$7$F$/$@$5$$\e(B.
+\\*
 \begin{keys}{S O m}
-S b     & \e$B$3$N5-;v$X$N%U%)%m!<%"%C%W$NEj9F$H\e(B, \e$BJVEz$NAw?.$NN>J}\e(B ({\bf
-both}) \e$B$r$7$^$9\e(B.\\
+%S b     & \e$B$3$N5-;v$X$N%U%)%m!<%"%C%W$NEj9F$H\e(B, \e$BJVEz$NAw?.$NN>J}\e(B ({\bf
+%both}) \e$B$r$7$^$9\e(B.\\
 S c     & (C) \e$B$3$N5-;v$r<h$j>C$7$^$9\e(B ({\bf cancel}) (\e$B<+J,<+?H$N$b$N$K\e(B
 \e$B$N$_F0:n$7$^$9\e(B).\\
-S f     & (f) \e$B$3$N5-;v$X$N%U%)%m!<%"%C%W\e(B ({\bf followup}) \e$B$rEj9F$7$^$9\e(B.\\
-S m     & (m) \e$BC/$+JL$N?M$K%a!<%k\e(B {\bf mail} \e$B$rAw$j$^$9\e(B.\\
+S f     & (f) \e$B$3$N5-;v$X$N%U%)%m!<%"%C%W\e(B ({\bf followup}) \e$B$rEj9F$7$^$9\e(B.
+[\e$B@\F,<-\e(B: \e$B855-;v$r4^$a$^$9\e(B]\\
+S m     & (m) \e$BC/$+$K%a!<%k\e(B {\bf mail} \e$B$rAw$j$^$9\e(B.\\
+S n     & \e$B%a!<%k$G<u$1<h$C$?%a%C%;!<%8$K\e(B, \e$B%K%e!<%9%0%k!<%W\e(B ({\bf
+newsgroup}) \e$B$G%U%)%m!<%"%C%W$7$^$9\e(B.\\
 S o m   & (C-c C-f) \e$B$3$N5-;v$r0l$K%a!<%k$rAw$k\e(B ({\bf mail}) \e$B$3$H$GE>Aw\e(B
-\e$B$7$^$9\e(B.\\
+\e$B$7$^$9\e(B. [\e$B@\F,<-\e(B: \e$B40A4$J%X%C%@!<$r4^$a$^$9\e(B]\\
 S o p   & \e$B$3$N5-;v$r%K%e!<%9%0%k!<%W$X$NEj9F\e(B ({\bf post}) \e$B$H$7$FE>Aw$7\e(B
 \e$B$^$9\e(B.\\
 S p     & (a) \e$B$3$N%0%k!<%W$K5-;v$rEj9F\e(B ({\bf post}) \e$B$7$^$9\e(B.\\
-S r     & (r) \e$B$3$N5-;v$NCx<T$K%a!<%k$GJVEz\e(B ({\bf reply}) \e$B$7$^$9\e(B.\\
+S r     & (r) \e$B$3$N5-;v$NCx<T$K%a!<%k$GJVEz\e(B ({\bf reply}) \e$B$7$^$9\e(B. [\e$B@\F,\e(B
+\e$B<-\e(B: \e$B855-;v$r4^$_$^$9\e(B]\\
 S s     & \e$B$3$N5-;v$r?7$7$$5-;v$GBeBX$7$^$9\e(B ({\bf supersede}) (\e$B<+J,$N5-\e(B
-\e$B;v$N$_\e(B).\\ 
-S u     & \e$B%U%!%$%k$r\e(B {\bf uuencode} \e$B$7$FO"B3$H$7$FEj9F$7$^$9\e(B.\\
+\e$B;v$N$_\e(B).\\
+S u     & \e$B%U%!%$%k$r\e(B {\bf uuencode} \e$B$7\e(B, \e$BO"B3J*$KJ,3d$7$FEj9F$7$^$9\e(B.\\
+S w     & \e$B5-;v$N:n<T$H<u$1<h$j<j$K9-$$\e(B ({\bf wide}) \e$BJVEz$r%a!<%k$GAw$j\e(B
+\e$B$^$9\e(B. [\e$B@\F,<-\e(B: \e$B855-;v$r4^$_$^$9\e(B]\\
 S B     & \e$B855-;v$r0zMQ$7$F%U%)%m!<%"%C%W$NEj9F\e(B, \e$BJVEz$NAw?.$NN>J}\e(B ({\bf
-both}) \e$B$r$7$^$9\e(B. [p/p]\\ 
+both}) \e$B$r$7$^$9\e(B. [p/p]\\
+S D b   & \e$B<:GT$7$?\e(B ({\bf bounced}) \e$B%a!<%k$r<u$1<h$j<j$N%"%I%l%9$r=$@5\e(B
+\e$B$7$?8e$G:FAw$7$^$9\e(B.  [\e$B@\F,<-\e(B:  \e$B$3$l$,JVEz$K$J$C$F$$$k%a%C%;!<%8$N%X%C\e(B
+\e$B%@!<$rI=<($7$^$9\e(B]\\
+S D r   & \e$BC/$+$K$3$N%a%C%;!<%8$r:FAw\e(B ({\bf Resend}) \e$B$7$^$9\e(B. [p/p]\\
 S F     & (F) \e$B855-;v$r0zMQ$7$F%U%)%m!<%"%C%W\e(B ({\bf followup}) \e$B$rEj9F$7\e(B
 \e$B$^$9\e(B. [p/p]\\
+S N     & \e$B%K%e!<%9%0%k!<%W\e(B ({\bf newsgroup}) \e$B$N%U%)%m!<%"%C%W$r%a!<%k\e(B
+\e$B%a%C%;!<%8$G$7\e(B, \e$B855-;v$r4^$_$^$9\e(B.  [p/p]\\
 S O m   & \e$B$3$l$i$NO"B3$r=8G[7A<0$K$7$F%a!<%k\e(B ({\bf mail}) \e$B$GE>Aw$7$^$9\e(B.
 [p/p]\\
 S O p   & \e$B$3$l$i$NO"B3$r=8G[7A<0$K$7$F%K%e!<%9%0%k!<%W$KEj9F\e(B ({\bf
-post}) \e$B$7$^$9\e(B. [p/p]\\ 
+post}) \e$B$7$^$9\e(B. [p/p]\\
 S R     & (R) \e$B855-;v$r0zMQ$7$F%a!<%k$GJVEz\e(B ({\bf reply}) \e$B$7$^$9\e(B.
 [p/p]\\
+S W     & \e$B855-;v$r0zMQ$7$F9-$$\e(B ({\bf wide}) \e$BJVEz$r%a!<%k$GAw$j$^$9\e(B.
+[p/p]\\
+S W-c   & \e$B2a>jAj8_Ej9F\e(B ({\bf crossposting}) \e$B$X$NJ86g\e(B ({\bf complaint})
+\e$B$rAw?.$7$^$9\e(B. [p/p]\\
 \end{keys}
-\e$B$?$C$?:#Ej9F$7$?5-;v$r<h$j>C$7$?$jBeBX$7$?$1$l$P\e(B (\e$B%5!<%P!<$K8=$l$kA0$K\e(B), 
-*post-news* \e$B%P%C%U%!$K0\F0$7$F\e(B, `Message-ID' \e$B$r\e(B `Cancel' \e$B$+\e(B
-`Supersedes' \e$B$K49$($F\e(B C-c C-c \e$B$G$b$&0lEYAw?.$7$F$/$@$5$$\e(B. 
+\e$B$?$C$?:#Ej9F$7$?5-;v$r<h$j>C$7$?$jBeBX$7$?$1$l$P\e(B (\e$B%5!<%P!<$K8=$l$kA0$K\e(B),
+*sent \ldots* \e$B%P%C%U%!$K0\F0$7$F\e(B, `Message-ID' \e$B$r\e(B `Cancel' \e$B$+\e(B
+`Supersedes' \e$B$K49$($F\e(B C-c C-c \e$B$G$b$&0lEYAw?.$7$F$/$@$5$$\e(B.
 }}
 
-\def\Tsubmap{
-\subsec{\e$B%9%l%C%IL?Na\e(B}
-\begin{keys}{T \#}
-T \#    & \e$B$3$N%9%l%C%I$K%W%m%;%90u$rIU$1$^$9\e(B.\\
-T d     & \e$B$3$N%9%l%C%I$N<!$N5-;v$K0\F0$7$^$9\e(B ({\bf down}). [\e$B5wN%\e(B]\\
+\def\Thread{\subsec{(T) \e$B%9%l%C%IL?Na\e(B}{\samepage
+\begin{keys}{T M-\#}
+T ^     & \e$B$3$N5-;v$rA0$N$b$N$+<B9T0u$NIU$$$?$b$N$N;R6!$K$7$^$9\e(B. \\
+T \#    & \e$B$3$N\e(B(\e$BI{\e(B)\e$B%9%l%C%I$K%W%m%;%90u$rIU$1$^$9\e(B.\\
+T M-\#  & \e$B$3$N\e(B(\e$BI{\e(B)\e$B%9%C%I$+$i<B9T0u$r>C5n$7$^$9\e(B.\\
+T d     & \e$B$3$N%9%l%C%I$r2<$,$j$^$9\e(B ({\bf down}). [\e$B5wN%\e(B]\\
 T h     & \e$B$3$N\e(B (\e$BI{\e(B)\e$B%9%l%C%I$r1#$7$^$9\e(B ({\bf hide}).\\
-T i     & \e$B$3$N%9%l%C%I$N%9%3%"$r>e$2$^$9\e(B ({\bf increase}).\\
-T k     & (M-C-k) \e$B8=:_$N\e(B (\e$BI{\e(B)\e$B%9%l%C%I$r@Z$j$^$9\e(B ({\bf kill}). [\e$BIi$N0z\e(B
-\e$B?t\e(B: \e$B2D;k0u\e(B, \e$B@5$N0z?t\e(B: \e$B0u$r>C$9\e(B.]\\
-T l     & (M-C-l) \e$B$3$N%9%l%C%I$N%9%3%"$r2<$2$^$9\e(B ({\bf lower}).\\
+T i     & \e$B$3$N%9%l%C%I$N%9%3%"$r>e$2$^$9\e(B ({\bf increase}).  [\e$B%9%3%"\e(B]\\
+T k     & (M-C-k) \e$B8=:_$N\e(B (\e$BI{\e(B)\e$B%9%l%C%I$r@Z$j$^$9\e(B ({\bf kill}). [\e$B0z?t\e(B:
+\e$BIi\e(B--\e$B2D;k0u\e(B, \e$B@5\e(B: \e$B0u$r>C$9\e(B.]\\
+T l     & (M-C-l) \e$B$3$N%9%l%C%I$N%9%3%"$r2<$2$^$9\e(B ({\bf lower}). [\e$B%9%3\e(B
+\e$B%"\e(B]\\
 T n     & (M-C-f) \e$B<!\e(B ({\bf next}) \e$B$N%9%l%C%I$K0\F0$7$^$9\e(B. [\e$B5wN%\e(B]\\
+T o     & \e$B$3$N%9%l%C%I$N@hF,\e(B ({\bf top}) \e$B$K0\F0$7$^$9\e(B.\\
 T p     & (M-C-b) \e$BA0\e(B ({\bf previous}) \e$B$N%9%l%C%I$K0\F0$7$^$9\e(B. [\e$B5wN%\e(B]\\
 T s     & \e$B$3$N5-;v$G1#$l$F$$$k%9%l%C%I$rI=<(\e(B ({\bf show}) \e$B$7$^$9\e(B.\\
-T u     & \e$B$3$N%9%l%C%I$NA0$N5-;v$K0\F0$7$^$9\e(B ({\bf up}). [\e$B5wN%\e(B]\\
+T t     & \e$B$3$N%9%l%C%I$r:F%9%l%C%I\e(B ({\bf thread}) \e$B$7$^$9\e(B.\\
+T u     & \e$B$3$N%9%l%C%I$N>e$,$j$^$9\e(B ({\bf up}). [\e$B5wN%\e(B]\\
 T H     & \e$BA4$F$N%9%l%C%I$r1#$7$^$9\e(B ({\bf hide}).\\
 T S     & \e$BA4$F$N1#$5$l$?%9%l%C%I$rI=<(\e(B ({\bf show}) \e$B$7$^$9\e(B.\\
 T T     & (M-C-t) \e$B%9%l%C%II=<($r@Z$jBX$($^$9\e(B ({\bf toggle}).\\
-\end{keys}
-}
+\end{keys}}}
 
-\def\Vsubmap{
-\subsec{\e$B%9%3%"\e(B (\e$BCM\e(B) \e$BL?Na\e(B}
-{\samepage
+\def\Score{\subsec{(V) \e$B%9%3%"\e(B (\e$BCM\e(B) \e$BL?Na\e(B}{\samepage
 \e$B%*%s%i%$%s\e(B info \e$B$GE,1~%9%3%"$rFI$s$G$/$@$5$$\e(B.\\*
 \begin{keys}{\bf A p m l}
 V a     & \e$BA4$F$NMWAG$r;XDj$7$F?7$7$$%9%3%"EPO?$r2C$(\e(B ({\bf add}) \e$B$^$9\e(B.\\
-V c     & \e$B?7$7$$%9%3%"%U%!%$%k$r8=:_$N$b$N\e(B ({\bf current}) \e$B$H$7$F;XDj\e(B
+V c     & \e$B?7$7$$%9%3%"%U%!%$%k$r8=:_$N$b$N\e(B ({\bf current}) \e$B$H$7$FA*Br\e(B
 \e$B$7$^$9\e(B.\\
-V e     & \e$B8=:_$N%9%3%"$NO"A[%j%9%H$rJT=8\e(B ({\bf edit}) \e$B$7$^$9\e(B.\\
+V e     & \e$B8=:_$N%9%3%"%U%!%$%k$rJT=8\e(B ({\bf edit}) \e$B$7$^$9\e(B.\\
 V f     & \e$B%9%3%"%U%!%$%k\e(B ({\bf file}) \e$B$rJT=8$7$F8=:_$N$b$N$H$7$^$9\e(B.\\
 V m     & \e$BM?$($i$l$?%9%3%"$h$j2<$N5-;v$K4{FI$K0u\e(B ({\bf mark}) \e$B$rIU$1$^\e(B
-\e$B$9\e(B.\\
-V s     & \e$B$3$N5-;v$N%9%3%"\e(B ({\bf score}) \e$B$r@_Dj$7$^$9\e(B.\\
-V t     & \e$B$3$N5-;v$KE,MQ$5$l$?A4$F$N%9%3%"5,B'$rI=<($7$^$9\e(B ({\bf track}).\\
+\e$B$9\e(B. [\e$B%9%3%"\e(B]\\
+V s     & \e$B$3$N5-;v$N%9%3%"$r@_Dj\e(B ({\bf set}) \e$B$7$^$9\e(B.\\
+V t     & \e$B$3$N5-;v$KE,MQ$5$l$?A4$F$N%9%3%"5,B'$rDI@W\e(B ({\bf trace}) \e$B$7\e(B
+\e$B$^$9\e(B.\\
 V x     & \e$BA4$F$NDc%9%3%"$N5-;v$r>C5n\e(B ({\bf expunge}) \e$B$7$^$9\e(B. [score]\\
-V C     & \e$B8=:_$N%9%3%"%U%!%$%k$rMxMQ<T$KJ,$+$j$d$9$$%$%s%?!<%U%'!<%9$G\e(B
-\e$B%+%9%?%^%$%:\e(B ({\bf customize}) \e$B$7$^$9\e(B.\\ 
-V S     & \e$B$3$N5-;v$N%9%3%"\e(B ({\bf score}) \e$B$rI=<($7$^$9\e(B.\\
+V C     & \e$B8=:_$N%9%3%"%U%!%$%k$rMxMQ<T$KJ,$+$j$d$9$$%$%s%?!<%U%'!<%9$r\e(B
+\e$B;H$C$F%+%9%?%^%$%:\e(B ({\bf customize}) \e$B$7$^$9\e(B.\\
+V F     & \e$B%U%!%$%k$HF14|$r<h$k$?$a$K%9%3%"%-%c%C%7%e$r=q$-=P$7$^$9\e(B
+({\bf Flush}).\\
+V R     & \e$B%<%m$+$i$3$N35N,%P%C%U%!$r:F$S%9%3%"IU$1$7$^$9\e(B ({\bf
+re-score}).\\
+V S     & \e$B$3$N5-;v$N%9%3%"$rI=<(\e(B ({\bf show}) \e$B$7$^$9\e(B.\\
+I C-i   & \e$B$3$N5-;v$N%9%3%"$rA}2C\e(B ({\bf increase}) \e$B$7$^$9\e(B.\\
+L C-i   & \e$B$3$N5-;v$N%9%3%"$r2<$2\e(B ({\bf lower}) \e$B$^$9\e(B.\\
 \bf A p m l& \e$B$3$N5-;v$K4p$E$$$?%9%3%"EPO?$r:n$j$^$9\e(B.\\
 \end{keys}
 
 4\e$B$D$NJ8;z$O0J2<$N0UL#$G$9\e(B:\\*
 \quad \B{A}ction: I)ncrease, L)ower;\\*
-\quad \B{p}art: a)utor (from), s)ubject, x)refs (cross-posting), d)ate, l)ines,
-message-i)d, t)references (parent), f)ollowup, b)ody, h)ead (\e$BA4$F$N%X%C\e(B
-\e$B%@!<\e(B);\\*
+\quad \B{p}art: a)uthor (from), b)ody, d)ate, f)ollowups, h)ead (\e$BA4$F$N%X%C%@!<\e(B),
+message-i)d, l)ines, s)ubject, t)hread (references), x)refs (cross-posting);\\*
 \quad \B{m}atch type:\\*
-\qquad string: s)ubstring, e)xact, r)egexp, f)uzzy,\\*
-\qquad date: b)efore, a)t, n)this,\\*
+\qquad string: e)xact, f)uzzy, r)egexp, s)ubstring\\*
+\qquad date: a)t, b)efore, n)this,\\*
 \qquad number: $<$, =, $>$;\\*
 \quad \B{l}ifetime: t)emporary, p)ermanent, i)mmediate.
 
-2\e$BHVL\$NJ8;z$rBgJ8;z$GF~NO$9$k$H\e(B, \e$B;D$j$N\e(B2\e$B$D$O\e(B s)ubstring \e$B$H\e(B t)emporary
+2/3\e$BHVL\$NJ8;z$rBgJ8;z$GF~NO$9$k$H\e(B, \e$B;D$j$NJ8;z$O\e(B s)ubstring \e$B$H\e(B t)emporary
 \e$B$G$"$k$H$_$J$5$l$^$9\e(B. 3\e$BHVL\$NJ8;z$rBgJ8;z$GF~NO$9$k$H\e(B, \e$B:G8e$N$b$N$O\e(B
-t)emporary \e$B$G$"$k$H$_$J$5$l$^$9\e(B. 
+t)emporary \e$B$G$"$k$H$_$J$5$l$^$9\e(B.
 
 \quad \e$B%9%3%"%U%!%$%k$N<j$G$NJT=8$N$?$a$NDI2C$N%-!<\e(B:\\*
 \begin{keys}{C-c C-c}
 C-c C-c & \e$B%9%3%"%U%!%$%k$NJT=8$r=*$($^$9\e(B.\\
 C-c C-d & \e$B8=:_$NF|IU$1\e(B ({\bf date}) \e$B$rF|?t$H$7$FA^F~$7$^$9\e(B.\\
-\end{keys}
-}}
+C-c C-p & [\e$BE,1~\e(B] \e$B%9%3%"%U%!%$%k$r$-$l$$$K0u;z\e(B ({\bf pretty-print}) \e$B$7\e(B
+\e$B$^$9\e(B.\\
+\end{keys}}}
 
-\def\Wsubmap{
-\subsec{\e$B5-;v%P%C%U%!$N@vBu\e(B}
+\def\Wash{\subsec{(W) \e$B5-;v%P%C%U%!$N@vBu\e(B}{\samepage
 \begin{keys}{W C-c}
-W b     & \e$B5-;v$NCf$N\e(B Message-ID \e$B$H\e(B URL \e$B$r%^%&%9$G%/%j%C%/2DG=$K$7$^$9\e(B {\bf
-  buttons}.\\  
-W c     & \e$B5-;v$+$iM>J,$J\e(B {\bf CRs} (^M) \e$B$r<h$j=|$-$^$9\e(B.\\
-W f     & X-{\bf Face} \e$B%X%C%@!<$rC5$7$FI=<($7$^$9\e(B.\\
+W b     & \e$B5-;v$NCf$N\e(B Message-ID \e$B$H\e(B URL \e$B$H0zMQ$H=pL>$r%^%&%9$G%/%j%C%/\e(B
+\e$B2DG=$J%\%?%s$K\e(B ({\bf buttons}) \e$B$7$^$9\e(B.\\
+W c     & \e$BM>J,$J\e(B {\bf CR} (^M) \e$B$r<h$j=|$-$^$9\e(B.\\
+W e     & \e$B6/D4$5$l$?\e(B ({\bf emphasized}) \e$B%F%-%9%H\e(B, \e$B$?$H$($P\e(B, *this* \e$B$d\e(B
+\_that\_). \e$B$r$-$l$$$K8+$;$^$9\e(B.\\
+W f     & X-{\bf Face} \e$B%X%C%@!<$rI=<($7$^$9\e(B.\\
+W h     & HTML \e$B$r%F%-%9%H$H$7$FI=<($7$^$9\e(B.\\
 W l     & (w) \e$B5-;v$+$i%Z!<%8$N6h@Z$j\e(B ({\bf^L}) \e$B$r<h$j=|$-$^$9\e(B.\\
 W m     & {\bf MIME} \e$B$N<B9T$r@Z$j49$($^$9\e(B.\\
 W o     & \e$B5-;v$N\e(B {\bf overstrike} \e$B$+\e(B \e$B2<@~\e(B(^H\_) \e$B$r07$$$^$9\e(B.\\
@@ -610,42 +751,41 @@ W T e   & \e$B5-;v$N;~9o$rAw$i$l$?;~$+$i7P2a$7$?\e(B ({\bf elapsed}) \e$B;~4V$KJQ\e(
   \e$B49$7$^$9\e(B.\\
 W T l   & \e$B5-;v$N;~9o$r%m!<%+%k\e(B ({\bf local}) \e$BI8=`;~9oBS$KJQ49$7$^$9\e(B.\\
 W T u   & (W T z) \e$B5-;v$N;~9o$r\e(B {\bf UTC} ({\bf Zulu}, GMT) \e$B$KJQ49$7$^\e(B
-  \e$B$9\e(B.\\ 
-\end{keys}
+  \e$B$9\e(B.\\
+\end{keys}}}
 
-\subsubsec{\e$B5-;v$NItJ,$r1#$9\e(B/\e$B%O%$%i%$%H$9$k\e(B}
+\def\Hide{\subsubsec{(W W) \e$B5-;v$NItJ,$r1#$9\e(B/\e$B%O%$%i%$%H$9$k\e(B}{\samepage
+\e$B@\F,<-$,L5$$$H!"$3$l$i$NL?Na$O1#$9$+$I$&$+$r@Z$j49$($^$9!#@5$N0z?t$O1#\e(B
+\e$B$7!"Ii$N0z?t$OI=<($7$^$9\e(B.\\*
 \begin{keys}{W W C-c}
-W W a   & \e$BA4$F$N\e(B ({\bf all}) \e$BK>$^$7$/$J$$ItJ,$r1#$7$^$9\e(B. W W h, W W s,
-W W C-c \e$B$r<B9T$7$^$9\e(B.\\
-W W c   & \e$B5-;v$N0zMQ\e(B ({\bf citation}) \e$B$r1#$7$^$9\e(B.\\
-W W h   & \e$B5-;v$N%X%C%@!<\e(B ({\bf headers}) \e$B$r1#$7$^$9\e(B.\\
-W W s   & \e$B5-;v$N=pL>\e(B ({\bf signature}) \e$B$r1#$7$^$9\e(B.\\
-W W C-c & \e$B5-;v$N0zMQ\e(B ({\bf citation}) \e$B$r$h$j@vN}$5$l$?%"%k%4%j%:%`$r;H$C\e(B
-\e$B$F1#$7$^$9\e(B.\\
-%\end{keys}
-%
-%\subsubsec{Highlight Parts of the Article}
-%\begin{keys}{W H A}
-W H a   & \e$BA4$F\e(B ({\bf all}) \e$B$NItJ,$r1#$7$^$9\e(B. W b, W H c, W H h, W H
-s. \e$B$r<B9T$7$^$9\e(B\\
-W H c   & \e$B5-;v$N0zMQ\e(B ({\bf citation}) \e$B$r%O%$%i%$%H$7$^$9\e(B.\\
-W H h   & \e$B5-;v$N%X%C%@!<\e(B ({\bf headers}) \e$B$r%O%$%i%$%H$7$^$9\e(B.\\
-W H s   & \e$B5-;v$N=pL>\e(B ({\bf signature}) \e$B$r%O%$%i%$%H$7$^$9\e(B.\\
-\end{keys}
-}
-
-\def\Xsubmap{
-\subsec{\e$BO"B3$NE83+\e(B (Uudecode \e$B$J$I\e(B)}
-{\samepage
+W W C-c & \e$BB0@-9T$r;}$D0zMQ$5$l$?\e(B  ({\bf cited}) \e$B%F%-%9%H$r1#$7$^$9\e(B.\\
+W W a   & \e$BA4$F$N\e(B ({\bf all}) \e$BK>$^$7$/$J$$ItJ,$r1#$7$^$9\e(B.\\
+W W b   & \e$BB`6~$J\e(B ({\bf boring}) \e$B%X%C%@!<$r1#$7$^$9\e(B.\\
+W W c   & \e$B0zMQ$5$l$?\e(B ({\bf cited}) \e$B%F%-%9%H$r1#$7$^$9\e(B.\\
+W W h   & (t, W t) \e$BK>$^$7$/$J$$%X%C%@!<\e(B ({\bf headers}) \e$B$r1#$7$^$9\e(B.\\
+W W p   & {\bf PGP} \e$B$N%X%C%@!<$H=pL>$r1#$7$^$9\e(B.\\
+W W s   & \e$B=pL>\e(B ({\bf signature}) \e$B$r1#$7$^$9\e(B.\\
+W W P   & {\bf PEM} \e$B%X%C%@!<$H=pL>$r1#$7$^$9\e(B.
+\end{keys}}}
+
+\def\Highlight{\subsubsec{(W H) \e$B5-;v$N0lItJ,$r%O%$%i%$%H$9$k\e(B}{\samepage
+\begin{keys}{W H A}
+W H a   & \e$BA4$F\e(B ({\bf all}) \e$B$NItJ,$r1#$7$^$9\e(B.\\
+W H c   & \e$B0zMQ$5$l$?\e(B ({\bf cited}) \e$B%F%-%9%H$r%O%$%i%$%H$7$^$9\e(B.\\
+W H h   & \e$B%X%C%@!<\e(B ({\bf headers}) \e$B$r%O%$%i%$%H$7$^$9\e(B.\\
+W H s   & \e$B=pL>\e(B ({\bf signature}) \e$B$r%O%$%i%$%H$7$^$9\e(B.\\
+\end{keys}}}
+
+\def\Extract{\subsec{(X) \e$BO"B3$NE83+\e(B (Uudecode \e$B$J$I\e(B)}{\samepage
 Gnus \e$B$O8=:_$N5-;v$,O"B3J*\e(B (\e$B$=$l$>$l$NItJ,$,I=Bj$K$*$$$F\e(B, \e$BNc$($P\e(B
-{}1/10\dots10/10 \e$B$N$h$&$K\e(B, \e$B?t;z$GF1Dj$5$l$kJ#?t$NEj9F\e(B) \e$B$N0lIt$G$"$k$H\e(B, 
-\e$B$=$l$rG'<1$7$F$=$NO"B3J*$r$=$l$>$l<B9T2aDx$K$+$1$^$9\e(B. 1\e$B$D0J>e$NO"B3J*\e(B
-\e$B$K0u$rIU$1$F<B9T$9$k$3$H$,$G$-$^$9\e(B. \e$BEj9F$,%"!<%+%$%V$r4^$s$G$$$l$P\e(B, \e$B?7\e(B
-\e$B$7$$%0%k!<%W$GE83+$5$l\e(B, \e$B=8$a$i$l$^$9\e(B.\\*
+{}1/10\dots10/10 \e$B$N$h$&$K\e(B, \e$B?t;z$GF1Dj$5$l$kJ#?t$NEj9F\e(B) \e$B$N0lIt$G$"$k$H\e(B,
+\e$B$=$l$rG'<1$7$^$9\e(B. 1\e$B$D0J>e$NO"B3J*$K0u$rIU$1$F<B9T$9$k$3$H$,$G$-$^\e(B
+\e$B$9\e(B. \e$BEj9F$,%"!<%+%$%V$r4^$s$G$$$l$P\e(B, \e$B?7$7$$%0%k!<%W$GE83+$5$l\e(B, \e$B=8$a$i$l\e(B
+\e$B$^$9\e(B.\\*
 \begin{keys}{X p}
 X b     & \e$BO"B3J*$r\e(B {\bf binhex} \e$B$GE83+$7$^$9\e(B. [p/p]\\
 X o     & \e$BC1$KO"B3J*$r=PNO\e(B ({\bf output}) \e$B$7$^$9\e(B (\e$BI|9f2=$O$7$^$;$s\e(B).
-[p/p]\\ 
+[p/p]\\
 X p     & \e$B%]%9%H%9%/%j%W%H\e(B ({\bf postscript}) \e$B$NO"B3J*$rE83+$7$^$9\e(B.
 [p/p]\\
 X s     & \e$BO"B3J*$r\e(B {\bf shar} \e$B$GE83+$7$^$9\e(B. [p/p]\\
@@ -665,64 +805,113 @@ X v \bf Z & \e$BO"B3J*$rI|9f2=$7\e(B, \e$BJ]B8$7\e(B, \e$B1\Mw$7$^$9\e(B. [p/p]\\
 \begin{keys}{C-c C-v C-v}
 C-c C-v C-v & (X v u) \e$BO"B3J*$r\e(B uudecode \e$B$71\Mw$7$^$9\e(B. [p/p]\\
 \end{keys}
+\e$BI|9f2=$r<+F0E*$K9T$J$&$K$O\e(B, `M-x gnus-binary-mode' \e$B$r;H$C$F$/$@$5$$\e(B
+(\e$B$=$l$+$i5-;v$N85$N%F%-%9%H$r8+$k$?$a$K\e(B `g' \e$B$r;H$C$F$/$@$5$$\e(B).
 }}
 
-\def\Zsubmap{
-\subsec{\e$B8=:_$N%0%k!<%W$r=P$k\e(B}
+\def\Exit{\subsec{(Z) \e$B8=:_$N%0%k!<%W$r=P$k\e(B}{\samepage
 \begin{keys}{Z G}
 Z c     & (c) \e$BA4$F$N2D;k0uIU$-$G$J$$5-;v$K4{FI$N0u$rIU$1\e(B ({\bf
 catch-up}, \e$B%-%c%C%A%"%C%W\e(B) \e$B=*N;$7$^$9\e(B.\\
 Z n     & \e$BA4$F$N5-;v$K4{FI$N0u$rIU$1\e(B, \e$B<!\e(B ({\bf next}) \e$B$N%0%k!<%W$K0\F0\e(B
 \e$B$7$^$9\e(B.\\
+Z s     & (\e$B$3$N%0%k!<%W$N>pJs$r%I%j%V%k%U%!%$%k$KJ]B8\e(B {\bf save}) \e$B$7$^\e(B
+\e$B$9\e(B. [\e$B@\F,<-\e(B: .newsrc \e$B$bJ]B8$7$^$9\e(B]\\
 Z C     & \e$BA4$F$N5-;v$K4{FI$N0u$rIU$1\e(B ({\bf catch-up}, \e$B%-%c%C%A%"%C%W\e(B)
 \e$B=*N;$7$^$9\e(B.\\
 Z E     & (Q) \e$B%0%k!<%W>pJs$r99?7$;$:$K=*N;\e(B ({\bf Exit}) \e$B$7$^$9\e(B.\\
 Z G     & (M-g) \e$B%0%k!<%W$N?7$7$$5-;v$rD4$Y$^$9\e(B ({\bf get}, \e$B<hF@\e(B).\\
 Z N     & \e$B=*N;$7$F<!$N\e(B ({\bf next}) \e$B%0%k!<%W$X0\F0$7$^$9\e(B.\\
 Z P     & \e$B=*N;$7$FA0$N\e(B ( {\bf previous}) \e$B%0%k!<%W$K0\F0$7$^$9\e(B.\\
-Z R     & \e$B%0%k!<%W$r=*N;$7$F\e(B, \e$B:F$SF~$j$^$9\e(B ({\bf reenter}, \e$B:F<B9T\e(B).
+Z R     & \e$B%0%k!<%W$r=*N;$7$F\e(B, \e$B:F$SF~$j$^$9\e(B ({\bf reenter}).
 [\e$B@\F,0z?t\e(B: \e$BL$FI$b4{FI$bA4$F$N5-;v$rA*Br$7$^$9\e(B.]\\
 Z Z     & (q, Z Q) \e$B%0%k!<%W$r=*N;$7$^$9\e(B.\\
-\end{keys}
-}
-
-\def\ArticleMode{
-\sec{\e$B5-;v%b!<%I\e(B}
-{\samepage
-% \e$B35N,%b!<%I$NA4$F$N%-!<$O5-;v%b!<%I$G$bF0:n$7$^$9\e(B.
-\e$BIaDL$NA`:n%-!<$O5-;v%b!<%I$GF0:n$7$^$9\e(B.
+\end{keys}}}
+
+\def\Limit{\subsec{(/) \e$B35N,$N@)8B\e(B}{\samepage
+\begin{keys}{/ D}
+/ a  & \e$BM?$($i$l$?Cx<T\e(B ({\bf author}) \e$B$N@55,I=8=$K@)8B$7$^$9\e(B.\\
+/ c  & \e$B$3$I$b\e(B ({\bf children}) (follow-up) \e$B$r;}$?$J$$J]N15-;v$r1#$7$^$9\e(B.\\
+/ d  & \e$BA4$F$NJ]N1\e(B ({\bf dormant}) \e$B5-;v$r1#$7$^$9\e(B.\\
+/ m  & \e$BM?$($i$l$?0u\e(B ({\bf mark}) \e$B$r;}$D5-;v$K@)8B$7$^$9\e(B. [\e$B@\F,<-\e(B: \e$B0u$r\e(B
+\e$B;}$?$J$$$N$b$N$K$7$^$9\e(B]\\
+/ n  & \e$B8=:_$N5-;v$K@)8B$7$^$9\e(B.[p/p]\\
+/ s  & (/ /) \e$BM?$($i$l$?I=Bj\e(B ({\bf subject}) \e$B$N@55,I=8=$K@)8B$7$^$9\e(B.\\
+/ t  & \e$B;~4V\e(B ({\bf time}) (\e$BM?$($i$l$?F|IU$h$j$b8E$$$b$N\e(B).
+[\e$B@\F,<-\e(B: \e$B?7$7$$$b$N\e(B]\\
+/ u  & (x) \e$BL$FI\e(B ({\bf unread}) \e$B5-;v$K@)8B$7$^$9\e(B. [\e$B@\F,<-\e(B: ! \e$B$H\e(B ? \e$B5-;v\e(B
+\e$B$b>C5n$7$^$9\e(B]\\
+/ v  & \e$B%9%3%"$N9b$$5-;v$K@)8B$7$^$9\e(B(\e$BCM\e(B ({\bf value})). [\e$B%9%3%"\e(B]\\
+/ w  & \e$BA0$N@)8B$r%9%?%C%/$+$i<h$j=P$7$FI|85$7$^$9\e(B. [\e$B@\F,<-\e(B: \e$BA4$F$N@)8B\e(B
+\e$B$r<h$j=P$7$^$9\e(B]\\
+/ C  & \e$B@)8B$N30$NA4$F$NL$FI5-;v$r4{FI$K$7$^$9\e(B ({\bf catch-up}). [\e$B@\F,\e(B
+\e$B<-\e(B: ! \e$B$H\e(B ? \e$B5-;v$b\e(B]\\
+/ D  & \e$BA4$F$NJ]N1\e(B ({\bf dormant}) \e$B5-;v$rI=<($7$^$9\e(B.\\
+/ E  & (M S, C-c M-C-s) \e$BA4$F$N:o=|$5$l$?5-;v$rI=<(\e(B ({\bf show}) \e$B$7$^$9\e(B.\\
+\end{keys}}}
+
+\def\PickAndRead{\subsec{\e$BA*Br\e(B-\e$BFI=q%b!<%I\e(B}{\samepage
+\e$B$^$:9%$-$J5-;v$r$rA*Br$7$F\e(B, \e$B8e$K$N$_FI$`$H$-$@$1\e(B `M-x gnus-pick-mode'
+\e$B$r;H$C$F$/$@$5$$\e(B.\\*
+\begin{keys}{SPC}
+SPC  & \e$BFI$_;O$a$k:G8e$J$i35N,$r%9%/%m!<%k$7$^$9\e(B.\\
+RET  & \e$BFI$_;O$a$^$9\e(B. [\e$B@\F,<-\e(B: \e$BA*Br$5$l$?$F$$$J$$A4$F$N5-;v$r4{FI$K$7$^\e(B
+\e$B$9\e(B]\\
+.    & \e$B$3$N5-;v$rA*Br$7$^$9\e(B. [\e$B@\F,<-\e(B: \e$B$=$NHV9f$N5-;v$rA*Br$7$^$9\e(B]\\
+r    & \e$B%j!<%8%g%s\e(B ({\bf region}) \e$B$NA4$F$N5-;v$rA*Br$7$^$9\e(B.\\
+R    & \e$B%j!<%8%g%s\e(B ({\bf region}) \e$B$NA4$F$N5-;v$rL$A*Br$K$7$^$9\e(B.\\
+t    & \e$B$3$N%9%l%C%I\e(B ({\bf thread}) \e$B$rA*Br$7$^$9\e(B.\\
+u    & \e$B$3$N5-;v$rL$A*Br\e(B ({\bf unpick}) \e$B$K$7$^$9\e(B.\\
+T    & \e$B$3$N%9%l%C%I$r\e(B ({\bf thread}) \e$BL$A*Br$K$7$^$9\e(B.\\
+U    & \e$BA4$F$N5-;v$rL$A*Br\e(B ({\bf unpick}) \e$B$K$7$^$9\e(B.\\
+e    & \e$B@55,I=8=$K9gCW$9$k5-;v$rA*Br$7$^$9\e(B.\\
+b    & \e$B%P%C%U%!\e(B ({\bf buffer}) \e$B$NA4$F$N5-;v$rA*Br$7$^$9\e(B.\\
+B    & \e$B%P%C%U%!\e(B ({\bf buffer}) \e$B$NA4$F$N5-;v$rL$A*Br$K$7$^$9\e(B.\\
+\end{keys}}}
+
+\def\ArticleMode{\sec{\e$B5-;v%b!<%I\e(B}{\samepage
+\e$B35N,%b!<%I$NA4$F$N%-!<$O5-;v%b!<%I$G$bF0:n$7$^$9\e(B.(\e$B$b$A$m$s\e(B,
+\e$BIaDL$NA`:n%-!<$O5-;v%P%C%U%!$rA`:n$7$^$9\e(B.)
 \e$BDI2C$N%-!<$O\e(B:\\*
 \begin{keys}{C-c C-m}
 RET     & (\e$B??Cf$N%^%&%9%\%?%s\e(B) \e$B%]%$%s%H$N$"$k%\%?%s$r3hF02=$7$F\e(B, URL
-\e$B$d\e(B Message-ID \e$B$K0\F0$7$^$9\e(B.\\
+\e$B$d\e(B Message-ID \e$B$K0\F0$7$?$j\e(B, \e$B0zMQ\e(B/\e$B=pL>\e(B, \e$B$J$I$r1#$7$?$j$7$^$9\e(B.\\
 TAB     & \e$B%]%$%s%H$r<!$N%\%?%s$K0\F0$7$^$9\e(B.\\
+M-TAB   & \e$B%]%$%s%H$rA0$N%\%?%s$K0\F0$7$^$9\e(B.\\
+?       & \e$BC;$$%X%k%W%a%C%;!<%8$rI=<($7$^$9\e(B.\\
 h       & (s) {\bf \e$B35N,\e(B} \e$B%P%C%U%!$N5-;v$N%X%C%@!<\e(B ({\bf header}) \e$B9T$K\e(B
-\e$B0\F0$7$^$9\e(B.\\ 
-C-c ^   & \e$B%]%$%s%H$N6a$/$N\e(B Message-ID \e$B$N5-;v$r<hF@$7$^$9\e(B.\\
+\e$B0\F0$7$^$9\e(B.\\
+C-c ^   & (r) \e$B%]%$%s%H$N6a$/$N\e(B Message-ID \e$B$N5-;v$r<hF@$7$^$9\e(B. (\e$B;2>H\e(B
+({\bf refer}))\\
 C-c C-m & \e$B%]%$%s%H$N6a$/$N%"%I%l%9$K%a!<%k\e(B ({\bf mail}) \e$B$GJVEz$7$^$9\e(B
-(\e$B@\F,0z?t\e(B: \e$B85$N5-;v$r4^$a$k\e(B).\\ 
-\end{keys}
-}}
+(\e$B@\F,0z?t\e(B: \e$B5-;v$r0zMQ$7$^$9\e(B).\\
+\end{keys}}}
 
-\def\ServerMode{
-\sec{\e$B%5!<%P!<%b!<%I\e(B}
-{\samepage
+\def\ServerMode{\sec{\e$B%5!<%P!<%b!<%I\e(B}{\samepage
 \e$B$3$N%b!<%I$KF~$k$?$a$K$O\e(B, \e$B%0%k!<%W%b!<%I$G\e(B `^' \e$B$r2!$7$F$/$@$5$$\e(B.\\*
 \begin{keys}{SPC}
 SPC     & (RET) \e$B$3$N%5!<%P!<$r354Q$7$^$9\e(B.\\
 a       & \e$B?7$7$$%5!<%P!<$rDI2C\e(B {\bf add} \e$B$7$^$9\e(B.\\
 c       & \e$B$3$N%5!<%P!<$rJ#<L\e(B {\bf copy} \e$B$7$^$9\e(B.\\
 e       & \e$B%5!<%P!<$rJT=8\e(B {\bf edit} \e$B$7$^$9\e(B.\\
+g       & \e$BA4$F$N%G!<%?9=B$$r:F:n@.\e(B ({\bf generate}) \e$B$9$k$h$&$K%5!<%P!<\e(B
+\e$B$K?R$M$^$9\e(B.\\
 k       & \e$B$3$N%5!<%P!<$r@Z$j$^$9\e(B {\bf kill}. [\e$BHO0O\e(B]\\
 l       & \e$BA4$F$N%5!<%P!<$r0lMwI=<(\e(B {\bf list} \e$B$7$^$9\e(B.\\
 q       & \e$B%0%k!<%W%P%C%U%!$KLa$j$^$9\e(B (\e$B=*N;\e(B {\bf quit}).\\
+s       & \e$B?7$7$$%a%C%;!<%8$rD4$Y$k\e(B ({\bf scan}) \e$B$h$&$K%5!<%P!<$K?R$M$^\e(B
+\e$B$9\e(B.\\
 y       & \e$B0JA0$K@Z$C$?%5!<%P!<$rE=$jIU$1\e(B {\bf yank} \e$B$^$9\e(B.\\
-\end{keys}
-}}
-
-\def\BrowseServer{
-\sec{\e$B%5!<%P!<354Q%b!<%I\e(B}
-{\samepage
+c       & \e$B$3$N%5!<%P!<$X$N@\B3$rJD$8$^$9\e(B ({\bf close}).\\
+O       & \e$B$3$N%5!<%P!<$X$N@\B3$r\e(B(\e$B:F$S\e(B)\e$B3+$-$^$9\e(B ({\bf open}).\\
+D       & \e$B$3$N%5!<%P!<$r;HMQIT2DG=$H$7$F0u$rIU$1$^$9\e(B (\e$B5qH]$7$^$9\e(B ({\bf
+deny})).\\
+R       & \e$BA4$F$N;HMQIT2DG=\e(B (\e$B5qH]\e(B) \e$B0u$r:F@_Dj$7$^$9\e(B ({\bf reset}).\\
+M-c     & \e$BA4$F$N%5!<%P!<$X$N@\B3$rJD$8$^$9\e(B ({\bf close}).\\
+M-o     & \e$BA4$F$N%5!<%P$X$N@\B3$r\e(B(\e$B:F$S\e(B)\e$B3+$-$^$9\e(B ({\bf open}).\\
+\end{keys}}}
+
+\def\BrowseServer{\sec{\e$B%5!<%P!<354Q%b!<%I\e(B}{\samepage
 \e$B$3$N%b!<%I$KF~$k$?$a$K$O\e(B, \e$B%0%k!<%W%b!<%I$G\e(B `B' \e$B$r2!$7$F$/$@$5$$\e(B.\\*
 \begin{keys}{RET}
 RET     & \e$B8=:_$N%0%k!<%W$KF~$j$^$9\e(B.\\
@@ -731,6 +920,5 @@ SPC     & \e$B8=:_$N%0%k!<%W$KF~$C$F:G=i$N5-;v$rI=<($7$^$9\e(B.\\
 n       & {\bf \e$B<!\e(B} \e$B$N%0%k!<%W$K0\F0$7$^$9\e(B. [\e$B5wN%\e(B]\\
 p       & {\bf \e$BA0\e(B} \e$B$N%0%k!<%W$K0\F0$7$^$9\e(B. [\e$B5wN%\e(B]\\
 q       & (l) \e$B354Q%b!<%I$r\e(B {\bf \e$B=*N;\e(B} \e$B$7$^$9\e(B.\\
-u       & \e$B8=:_$N%0%k!<%W$r9VFI$7$^$9\e(B. [\e$BHO0O\e(B]\\
-\end{keys}
-}}
+u       & \e$B8=:_$N%0%k!<%W$r\e(B[\e$BHs\e(B]\e$B9VFI\e(B ({\bf [Un]subscribe})\e$B$7$^$9\e(B. [\e$BHO0O\e(B]\\
+\end{keys}}}
index 28f4759..fdd8d6e 100644 (file)
@@ -6,60 +6,78 @@
 \def\subsec{\subsection*}
 \def\subsubsec{\subsubsection*}
 \documentstyle{article}
-\textwidth 7.26in \textheight 10in \topmargin -1.0in
+\textwidth 7.26in \textheight 10.3in \topmargin -1.2in
 % the same settings work for A4, although there is a bit of space at the
-% top and bottom of the page. 
+% top and bottom of the page.
 \oddsidemargin -0.5in \evensidemargin -0.5in
 \begin{document}
-\twocolumn\scriptsize\pagestyle{empty}
+\twocolumn\footnotesize\pagestyle{empty}
 \input{gnusref-ja}
 
-% page 1, left column
+\vspace*{\fill}
 \Title
-\par
-\vspace{0.5\baselineskip}
+\vspace*{2ex}
 \Logo{refcard}
 \vspace*{\fill}
+\Marks
 \GroupLevels
-\GroupMode
 \pagebreak
 
-% page 1, right column
 \Notes
+\General
+\ArticleMode
 \vspace*{\fill}
-\GroupCommands
+\CopyRight
 \pagebreak
 
-% page 2, left column
-\SummaryMode
-\Asubmap
-\Bsubmap
-\Gsubmap
-\Hsubmap
-\Tsubmap
+\GroupMode
+\SOUP
 \pagebreak
 
-% page 2, right column
-\Msubmap
-\Marks
+\ListGroups
+\CreateGroups
+\SortGroups
+\MarkGroups
 \pagebreak
 
-% page 3
-\Osubmap
-\Ssubmap
-\Xsubmap
-\Vsubmap
+\Unsubscribe
+\GroupTopics
+\vspace*{\fill}
+\SummaryMode
 \SortSummary
-\Wsubmap
-\Zsubmap
-\ArticleMode
-\ServerMode
+\Article
+\pagebreak
 
-% page 4
-\BrowseServer
+\MailGroup
+\GotoArticle
+\Score
 \pagebreak
-\onecolumn
-\vspace*{\fill}
-\CopyRight
+
+\MarkArticles
+%\vspace*{-0.5ex}
+\MarkScore
+%\vspace*{-0.5ex}
+\ProcessMark
+%\vspace*{-0.5ex}
+\OutputArticles
+\pagebreak
+
+\Send
+%\vspace*{-1.1ex}
+\Thread
+%\vspace*{-1.1ex}
+\Exit
+\pagebreak
+
+\Wash
+\Hide
+\Highlight
+\Extract
+\pagebreak
+
+\Limit
+\PickAndRead
+\ServerMode
+\BrowseServer
 
 \end{document}