This commit was generated by cvs2svn to compensate for changes in r493,
authorshuhei-k <shuhei-k>
Wed, 3 Jun 1998 10:00:17 +0000 (10:00 +0000)
committershuhei-k <shuhei-k>
Wed, 3 Jun 1998 10:00:17 +0000 (10:00 +0000)
which included commits to RCS files with non-trunk default branches.

35 files changed:
ChangeLog
Makefile [deleted file]
README.semi [new file with mode: 0644]
lisp/ChangeLog
lisp/Makefile [deleted file]
lisp/gnus-agent.el
lisp/gnus-art.el
lisp/gnus-cache.el
lisp/gnus-draft.el
lisp/gnus-ems.el
lisp/gnus-group.el
lisp/gnus-i18n.el [new file with mode: 0644]
lisp/gnus-msg.el
lisp/gnus-nocem.el
lisp/gnus-score.el
lisp/gnus-sum.el
lisp/gnus-topic.el
lisp/gnus-util.el
lisp/gnus-uu.el
lisp/gnus.el
lisp/lpath.el
lisp/message.el
lisp/nnfolder.el
lisp/nnkiboze.el
lisp/nnmail.el
lisp/pop3.el
lisp/smtp.el [new file with mode: 0644]
lisp/smtpmail.el [new file with mode: 0644]
texi/ChangeLog
texi/Makefile [deleted file]
texi/custom.texi [deleted file]
texi/gnus-ja.texi [new file with mode: 0644]
texi/gnus.texi
texi/message.texi
texi/widget.texi [deleted file]

index db57397..11261ac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,480 @@
+1998-06-03  Keisuke Mori   <ksk@ntts.com>
+
+       * texi/gnus-ja.texi: Add "The Article Buffer".
+
+1998-06-03  Yoshiki Hayashi   <g740685@komaba.ecc.u-tokyo.ac.jp>
+
+       * texi/gnus-ja.texi: Add "The Summary Buffer".
+
+1998-06-02  Tatsuya Ichikawa  <t-ichi@po.shiojiri.ne.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.3.2.
+
+       * Sync up with Gnus 5.6.10.
+
+1998-05-30  Shuhei KOBAYASHI  <shuhei-k@jaist.ac.jp>
+
+       * README.semi: Add description of `shuhei-k' branch.
+
+1998-05-17  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.3.1.
+
+1998-05-17  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus-util.el (gnus-output-to-rmail): Guard as binary.
+
+       * lisp/gnus-util.el (gnus-output-to-mail): Guard as binary.
+
+1998-04-24  Yoshiki Hayashi   <g740685@komaba.ecc.u-tokyo.ac.jp>
+
+       * texi/gnus-ja.texi: Add "The Active File".
+
+1998-05-04  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.3.0.
+       (gnus-version): Modify for SEMI 1.4.
+
+       * lisp/gnus-sum.el: Use 'mime-add-condition to set up
+       acting-condition.
+
+1998-05-04  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/lpath.el: Must add "flim" instead of "mel" to load-path.
+
+1998-05-03  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.2.5.
+
+       * texi/gnus.texi, lisp/ChangeLog: Sync up with Gnus v5.6.9.
+
+       * lisp/gnus.el, lisp/message.el, lisp/gnus-sum.el,
+       lisp/gnus-msg.el, lisp/gnus-draft.el, lisp/gnus-agent.el: Sync up
+       with Gnus v5.6.9.
+
+1998-04-30  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.2.4.
+
+       * texi/gnus.texi, lisp/ChangeLog: Sync up with Gnus 5.6.7.
+
+       * lisp/gnus.el, lisp/message.el, lisp/gnus-sum.el,
+       lisp/gnus-msg.el, lisp/gnus-cache.el, lisp/gnus-art.el: Sync up
+       with Gnus 5.6.7.
+
+1998-04-28  Shuhei KOBAYASHI  <shuhei-k@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.2.3.
+
+       * Sync up with Gnus 5.6.6.
+
+1998-04-27  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/nnheader.el: Sync up with Gnus 5.6.5.
+
+1998-04-26  Shuhei KOBAYASHI  <shuhei-k@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.2.2.
+
+       * Sync up with Gnus 5.6.5.
+
+       * texi/custom.texi, texi/widget.texi: Removed from Semi-gnus.
+
+1998-04-25  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * README.semi (How to get? (via CVS)): Modify descriptions about
+       TAG.
+
+1998-04-23  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.2.1.
+
+1998-04-23  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/message.el (message-make-forward-subject): Use
+       `eword-decode-unstructured-field-body' for subject.
+
+       * lisp/gnus-msg.el (gnus-summary-mail-forward): Make local
+       variable `default-mime-charset' of `gnus-original-article-buffer'
+       and set up by `default-mime-charset' of `gnus-summary-buffer'.
+
+1998-04-23  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * texi/gnus-ja.texi: Fix typos.
+
+       * texi/gnus.texi: Modify for Semi-gnus.
+
+1998-04-23  Yoshiki Hayashi   <g740685@komaba.ecc.u-tokyo.ac.jp>
+
+       * texi/gnus-ja.texi: Add "Auto Save".
+
+1998-04-22  Yoshiki Hayashi   <g740685@komaba.ecc.u-tokyo.ac.jp>
+
+       * texi/gnus-ja.texi: Add "Startup Files".
+
+1998-04-21  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.2.0.
+       (gnus-version): Modify for SEMI 1.3.
+
+       * lisp/gnus-sum.el: Use 'ctree-set-calist-strictly instead of
+       'set-atype to set up for 'mime-acting-condition.
+
+1998-04-21  Yoshiki Hayashi   <g740685@komaba.ecc.u-tokyo.ac.jp>
+
+       * texi/gnus-ja.texi: Add "Changing Servers".
+
+1998-04-20  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * texi/gnus-ja.texi: Modify styles.
+
+       * texi/gnus.texi: Modify for Semi-gnus (sync up with
+       gnus-ja.texi).
+
+1998-04-20  Yoshiki Hayashi   <g740685@komaba.ecc.u-tokyo.ac.jp>
+
+       * texi/gnus-ja.texi: Add "New Groups".
+
+1998-04-20  Yoshiki Hayashi   <penny@tb3.so-net.ne.jp>
+
+       * texi/gnus-ja.texi: Modify styles.
+
+1998-04-18  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * texi/gnus-ja.texi: Check and modify for Semi-gnus.
+
+1998-04-18  Yoshiki Hayashi   <g740685@komaba.ecc.u-tokyo.ac.jp>
+
+       * texi/gnus-ja.texi: New file.
+
+1998-04-19  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.1.3.
+
+1998-04-19  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus-art.el (gnus-following-method): New function; set up
+       for 'mime-view-following-method-alist.
+
+1998-04-18  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * texi/gnus.texi: Add and modify description for Semi-gnus.
+
+1998-04-16  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * texi/gnus.texi: "Gnus 5.6.4" -> "Semi-gnus 6.1.2".
+       (Top): "Gnus" -> "gnus".
+       (Starting Up): "Gnus" -> "gnus".
+
+1998-04-10  Shuhei KOBAYASHI  <shuhei-k@jaist.ac.jp>
+
+       * lisp/ChangeLog, lisp/gnus-agent.el: Sync up with Gnus 5.6.4.
+
+1998-04-08  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.1.2.
+       (gnus-version): Include corresponding SEMI version.
+
+       * lisp/gnus.el, lisp/nnkiboze.el, lisp/message.el,
+       lisp/gnus-sum.el, lisp/gnus-agent.el: Sync up with Gnus 5.6.4.
+
+1998-03-27  Shuhei KOBAYASHI  <shuhei-k@jaist.ac.jp>
+
+       * README.semi: Change descriptions of sending bug report.
+
+1998-03-20  Shuhei KOBAYASHI  <shuhei-k@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.1.1.
+       (gnus-version): Include corresponding SEMI version.
+
+       * Sync up with Gnus 5.6.3.
+
+1998-03-15  Shuhei KOBAYASHI  <shuhei-k@jaist.ac.jp>
+
+       * lisp/gnus-agent.el (gnus-agent-crosspost): Use
+       `nnheader-insert-file-contents'.
+       (gnus-agent-braid-nov): Ditto.
+       (gnus-agent-expire): Ditto.
+       
+       * lisp/gnus-cache.el (gnus-cache-request-article): Ditto.
+       (gnus-cache-retrieve-headers): Ditto.
+       (gnus-cache-change-buffer): Ditto.
+       (gnus-cache-braid-nov): Ditto.
+       
+       * lisp/gnus-sum.el (gnus-summary-import-article): Ditto.
+       
+       * lisp/nnkiboze.el (nnkiboze-retrieve-headers): Ditto.
+
+       * lisp/message.el (message-generate-headers): Fix regexp.
+       (cf. [semi-gnus-ja:107])
+
+1998-03-14  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus-art.el: Add setting for
+       `mime-raw-buffer-coding-system-alist'.
+
+1998-03-13  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus-art.el: Rename `mime-view-quitting-method-for-gnus' ->
+       `mime-preview-quitting-method-for-gnus'.
+
+       * lisp/gnus-art.el: Rename `mime-view-quitting-method-alist' ->
+       `mime-preview-quitting-method-alist'.
+
+       * lisp/gnus-art.el: Rename `mime-view-kill-buffer' ->
+       `mime-preview-kill-buffer'.
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.0.10.
+
+       * lisp/gnus-sum.el: Add code to check latest SEMI.
+       (mime-acting-condition): Separate type and subtype; rename
+       `mime-combine-message/partials-automatically' ->
+       `mime-method-to-combine-message/partial-pieces'.
+
+1998-03-08  Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.0.9.
+
+       * README.semi (How to get?): Add description of daily snapshot.
+       (How to join development): Change mailing list command address.
+
+       * Sync up with Gnus 5.6.2.
+
+1998-03-01  Tatsuya Ichikawa  <t-ichi@po.shiojiri.ne.jp>
+
+       * lisp/gnus-ems.el: Change variable name
+         gnus-bdf-image-file to gnus-mule-bitmap-image-file.
+
+1998-02-28  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.0.8.
+
+       * lisp/gnus.el: Sync up with qgnus-0.34.
+
+1998-02-28  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/message.el: Sync up with qgnus-0.33.
+
+       * lisp/gnus-ems.el (gnus-bdf-image-file): New variable; moved from
+       gnus.el.
+       (gnus-mule-group-startup-message): New function; moved and renamed
+       from `gnus-group-startup-message' of gnus.el.
+
+       * lisp/gnus.el, lisp/gnus-sum.el, lisp/gnus-art.el,
+       lisp/gnus-agent.el: Sync up with qgnus-0.33.
+
+1998-02-28  Tatsuya Ichikawa  <t-ichi@niagara.shiojiri.ne.jp>
+
+       * lisp/gnus.el (gnus-bdf-image-file): New variable.
+       (gnus-mule-group-startup-message): Display bitmap image using
+       bitmap.el running with Emacs 20.
+       
+       * lisp/gnus-agent.el (gnus-agent-fetch-headers): Fix problem when
+       Xref field is not exist.
+
+1998-02-26  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * README.semi (How to join development): Modify for Semi-gnus
+       mailing list.
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.0.7.
+
+       * lisp/gnus.el (gnus-article-display-hook): Delete
+       `gnus-article-de-quoted-unreadable' from options.
+
+       * lisp/gnus-sum.el (gnus-article-make-menu-bar): Delete key for
+       `gnus-article-de-quoted-unreadable'.
+       (gnus-summary-make-menu-bar): Delete menu for
+       `gnus-article-de-quoted-unreadable'.
+
+       * lisp/gnus-art.el (gnus-article-make-menu-bar): Delete menu for
+       `gnus-article-de-quoted-unreadable'.
+
+1998-02-24  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el, lisp/message.el: Sync up with qgnus-0.32.
+
+1998-02-23  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.0.6.
+
+       * lisp/message.el (message-fill-references): Abolish unused local
+       variables.
+
+       * lisp/pop3.el, lisp/message.el, lisp/gnus.el, lisp/gnus-sum.el,
+       lisp/gnus-art.el: Sync up with qgnus-0.31.
+
+       * lisp/gnus.el, lisp/message.el, lisp/gnus-sum.el,
+       lisp/gnus-art.el: Sync up with qgnus-0.30.
+
+1998-02-20  Christophe Broult <christophe.broult@info.unicaen.fr>
+
+       * README.semi (How to get?): The command `update' must come before
+       `-r semi-gnus'. (cf. [tm-en:1559])
+
+1998-02-17  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el: Sync up with qgnus-0.29.
+
+       * lisp/gnus.el, lisp/message.el: Sync up with qgnus-0.28.
+
+       * lisp/message.el: Abolish variable
+       `message-references-generator'.  Abolish function
+       `message-generate-filled-references',
+       `message-generate-folded-references' and
+       `message-generate-unfolded-references'.
+       (message-reply): Don't use `message-references-generator'.
+       (message-followup): Don't use `message-references-generator'.
+
+       (message-fill-references): New function.
+       (message-header-format-alist): Use `message-fill-references' for
+       References.
+
+1998-02-17  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.0.5.
+
+1998-02-17  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus-sum.el: Check SEMI-0.118.2 (Otomaru) or later.
+       (gnus-structured-field-decoder): Use
+       `eword-decode-and-unfold-structured-field'.
+
+       * lisp/gnus-art.el (gnus-article-decode-rfc1522): Use charset
+       conversion option of `eword-decode-header'.
+       (gnus-article-decode-encoded-word): Use charset conversion option
+       of `eword-decode-header'; use `gnus-run-hooks'.
+       (gnus-content-header-filter): Use charset conversion option of
+       `eword-decode-header'.
+
+       * README.semi (How to get?): Should specify "-r semi-gnus".
+
+1998-02-16  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus-art.el (gnus-article-decode-rfc1522): Decode header by
+       localized code.
+
+1998-02-16  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus-msg.el: Delete commented-out function
+       `gnus-inews-insert-mime-headers'.
+
+       * lisp/gnus.el, lisp/message.el, lisp/gnus-sum.el,
+       lisp/gnus-art.el: Sync up with qgnus-0.27.
+
+1998-02-16  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/nnheader.el: Use original.
+
+       * lisp/gnus.el, lisp/pop3.el, lisp/message.el, lisp/gnus-sum.el,
+       lisp/gnus-msg.el, lisp/gnus-draft.el, lisp/gnus-art.el: Sync up
+       with qgnus-0.26.
+
+1998-02-15  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/nnmail.el, lisp/nnmh.el: Use original.
+
+       * lisp/gnus.el, lisp/gnus-draft.el, lisp/gnus-sum.el,
+       lisp/message.el, lisp/gnus-art.el: Sync up with qgnus-0.25.
+
+1998-02-11  Shuhei Kobayashi  <shuhei-k@jaist.ac.jp>
+
+       * texi/message.texi, texi/gnus.texi, texi/ChangeLog,
+       lisp/message.el, lisp/gnus.el, lisp/gnus-uu.el,
+       lisp/gnus-topic.el, lisp/gnus-sum.el, lisp/gnus-start.el,
+       lisp/gnus-score.el, lisp/gnus-group.el, lisp/gnus-art.el,
+       lisp/gnus-agent.el, lisp/ChangeLog: Importing qgnus-0.24
+
+1998-02-10  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus-art.el (gnus-article-prepare): Don't bind coding
+       systems.
+
+       * lisp/gnus.el (gnus-version-number): Update to 6.0.4.
+       (gnus-version): Sync with qgnus-0.23.
+
+       * lisp/pop3.el, lisp/nnmh.el, lisp/nnheader.el, lisp/message.el,
+       lisp/gnus-sum.el, lisp/gnus-msg.el, lisp/gnus-draft.el,
+       lisp/gnus-art.el: Merge qgnus-0.23.
+
+1998-02-09  Shuhei Kobayashi  <shuhei-k@jaist.ac.jp>
+
+       * texi/message.texi, texi/gnus.texi, texi/ChangeLog, lisp/nntp.el,
+       lisp/nnheader.el, lisp/message.el, lisp/gnus.el,
+       lisp/gnus-xmas.el, lisp/gnus-sum.el, lisp/gnus-start.el,
+       lisp/gnus-msg.el, lisp/gnus-group.el, lisp/gnus-draft.el,
+       lisp/gnus-art.el, lisp/gnus-agent.el, lisp/ChangeLog: Importing
+       qgnus-0.23
+
+1998-02-04  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/message.el (message-references-generator): New variable.
+       (message-generate-filled-references): New function.
+       (message-generate-folded-references): New function.
+       (message-generate-unfolded-references): New function.
+       (message-reply): Refer `message-references-generator'.
+       (message-followup): Refer `message-references-generator'.
+
+1998-01-17  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/message.el (message-send-mail-with-sendmail): Guard
+       `coding-system-for-write' by binary.
+       (message-send-mail-with-qmail): Likewise.
+
+1998-01-16  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/lpath.el: Require path-util; add load-path of APEL, MEL and
+       SEMI.
+
+1998-01-12  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/message.el: Require smtp.el when compile.
+
+       * lisp/message.el (message-send-mail-with-smtp): Use
+       `(current-buffer)' instead of `tembuf'; rename
+       `smtp-recipient-address-list' -> `recipient-address-list'.
+
+1998-01-12  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/smtp.el (smtp-deduce-address-list): Don't use
+       `smtp-recipient-address-list' as global variable.
+
+       * lisp/message.el (message-send-mail-with-smtp): Don't use
+       `smtp-recipient-address-list' as global variable.
+
+       * lisp/smtpmail.el (smtpmail-recipient-address-list): New
+       variable; renamed from `smtp-recipient-address-list'.
+       (smtpmail-send-it): Remove `(not (null ...))'.
+       (smtpmail-send-queued-mail): Likewise.
+
+1998-01-12  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/message.el (message-send-mail-with-smtp): Don't generate
+       temporary buffer for message; don't generate and kill
+       `smtp-address-buffer' for `smtp-deduce-address-list'.
+
+       * lisp/smtpmail.el (smtpmail-send-it): Don't generate and kill
+       `smtp-address-buffer' for `smtp-deduce-address-list'.
+
+       * lisp/smtp.el (smtp-deduce-address-list): Bind and generate
+       `smtp-address-buffer' in itself.
+
+1998-01-12  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/gnus.el (gnus-version-number): Update to version 6.0.3.
+
+1998-01-11  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
+
+       * lisp/smtp.el: New file.
+
+       * lisp/smtpmail.el: Split basic features into smtp.el.
+
+       * lisp/message.el (message-send-mail-function): Add
+       `message-send-mail-with-smtp' as an item.
+       (message-send-mail-with-smtp): New function.
+
+       * ChangeLog: New file.
+
 1998-01-08  MORIOKA Tomohiko  <morioka@jaist.ac.jp>
 
        * lisp/smtpmail.el (smtpmail-via-smtp): Bind
diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index 05503f4..0000000
--- a/Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
-EMACS=emacs
-XEMACS=xemacs
-
-all: lick info
-
-lick:
-       cd lisp; $(MAKE) EMACS=$(EMACS) all
-
-# Rule for Lars and nobody else.
-some:
-       cd lisp; $(MAKE) EMACS=$(EMACS) some
-l:
-       cd lisp; $(MAKE) EMACS=$(EMACS) clever
-
-info:
-       cd texi; $(MAKE) EMACS=$(EMACS) all
-
-clean:
-       rm -f */*.orig */*.rej *.orig *.rej
-
-xsome: 
-       cd lisp; $(MAKE) EMACS=$(XEMACS) some
-
-elclean:
-       rm lisp/*.elc
-
-x:
-       make EMACS=xemacs
-
-distclean:
-       make clean
-       rm -r *~
-       for i in lisp texi; do (cd $$i; make distclean); done
-
-osome:
-       make EMACS=emacs-19.34 some
diff --git a/README.semi b/README.semi
new file mode 100644 (file)
index 0000000..b297fe7
--- /dev/null
@@ -0,0 +1,95 @@
+This package contains Semi-gnus.
+
+What is Semi-gnus?
+==================
+
+  Semi-gnus is a replacement of Gnus with gnus-mime for SEMI.  It has
+all features of Gnus and gnus-mime, so there are no need to install
+Gnus to use it, and you must not use gnus-mime for SEMI.
+
+  It requires SEMI package, so please get and install SEMI package
+before to install it.
+
+
+How to get? (via CVS)
+=====================
+
+(0) cvs login
+
+    % cvs -d :pserver:anonymous@chamonix.jaist.ac.jp:/hare/cvs/root \
+       login
+
+    CVS password: [CR] # NULL string
+
+(1) checkout
+
+    % cvs -d :pserver:anonymous@chamonix.jaist.ac.jp:/hare/cvs/root \
+       checkout [-r TAG] gnus
+
+(2) compile
+
+    % cd gnus
+    % make EMACS=<file name of your emacs>
+
+(3) update
+
+    % cvs update [-r TAG]
+
+Major tags are following:
+
+    semi-gnus          assigned to the latest stable version.  It is
+                       very conservative.
+
+    for-semi-N1_N2     assigned to the latest stable version for SEMI 
+                       API N1.N2 (N1 and N2 are natural number).
+                       (e.g. `for-semi-1_3' is for SEMI API 1.3)
+
+    gnus-N1_N2_N3      assigned to gnus(Gnus) N1.N2.N3
+                       (e.g. `gnus-6_2_1' means gnus 6.2.1).
+
+    larsi              Original Gnus
+
+    himi               himi branch
+
+    ichikawa           ichikawa branch
+
+    akr                        akr branch
+
+    shuhei-k           shuhei-k branch
+                       Mail-Followup-To/Mail-Reply-To, gnus-cache fix.
+
+
+How to get? (via ftp)
+=====================
+
+  Semi-daily snapshots are also available from
+
+    ftp://ftp.jaist.ac.jp/pub/GNU/elisp/semi-gnus/
+
+  NOTE: These snapshots are automatically created from our repository
+if something was changed within a day, and will usually not be tested.
+
+
+How to join development
+=======================
+
+  If you have found a bug in Gnus proper, please do `M-x gnus-bug' and
+send a bug report to the Gnus maintainers.
+
+  If you have found a bug in Semi-gnus, or if you're not sure whether it
+is a Gnus proper, please send a bug report to the Semi-gnus mailing list:
+
+    semi-gnus-en@meadow.scphys.kyoto-u.ac.jp   (English)
+    semi-gnus-ja@meadow.scphys.kyoto-u.ac.jp   (Japanese)
+
+Suggestions for Semi-gnus improvements are also welcome.
+
+  Via the Semi-gnus ML, you can report Semi-gnus related bugs, obtain
+the latest release of Semi-gnus, and discuss future enhancements to
+Semi-gnus.  To join the Semi-gnus ML, send an empty e-mail to
+
+    semi-gnus-en-help@meadow.scphys.kyoto-u.ac.jp      (English)
+    semi-gnus-ja-help@meadow.scphys.kyoto-u.ac.jp      (Japanese)
+
+  In addition, we need developers.  If you would like to develop it,
+please send mail to cvs@chamonix.jaist.ac.jp.
index 7054db5..6f797b6 100644 (file)
@@ -1,63 +1,3 @@
-Wed Jun  3 04:03:37 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
-
-       * gnus.el: Gnus v5.6.11 is released.
-
-Wed Jun  3 03:33:50 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus.el: Checked doc string syntax throughout.
-
-       * message.el (message-subject-re-regexp): Renamed.
-
-Wed Jun  3 03:33:05 1998  Simon Josefsson  <jas@pdc.kth.se>
-
-       * message.el (message-ignored-subject-re): New variable.
-
-Wed Jun  3 03:25:13 1998  Sam Steingold  <sds@usa.net>
-
-       * gnus-msg.el (gnus-bug-create-help-buffer): New variable.
-       (gnus-bug): Use it.
-
-1998-05-07  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * nnmail.el: (nnmail-get-split-group): Use `regexp-quote'
-       when file name is a part of pattern.
-
-       * nnmail.el (nnmail-crosspost-link-function): Ditto.
-
-       * gnus-ems.el: Use `symbol-name' instead of `(format "%s" ...)'.
-
-       * gnus-score.el (gnus-score-load-file): Use `regexp-quote'
-       when file name is a part of pattern.
-
-1998-05-06  Hrvoje Niksic  <hniksic@srce.hr>
-
-       * gnus-cache.el (gnus-cache-generate-active): Use `regexp-quote'
-       when file name is a part of pattern.
-
-Wed Jun  3 03:13:34 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * nnfolder.el (nnfolder-delete-mail): Changed parameters.
-       (nnfolder-request-replace-article): Rename X-From-Line.
-
-Wed Jun  3 03:10:04 1998  Dan Christensen  <jdc@chow.mat.jhu.edu>
-
-       * nnfolder.el (nnfolder-adjust-min-active): Work.
-
-Mon Jun  1 05:27:28 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * gnus-sum.el (gnus-summary-limit-to-age): Reversed time and
-       almost collapsed space!
-
-       * nnmail.el (nnmail-days-to-time): Computed wrong time.
-
-Mon Jun  1 05:19:46 1998  Kim-Minh Kaplan  <KimMinh.Kaplan@utopia.eunet.fr>
-
-       * gnus-sum.el (gnus-dependencies-add-header): Break loops.
-
-Mon Jun  1 05:13:34 1998  Fabrice POPINEAU  <popineau@esemetz.ese-metz.fr>
-
-       * gnus-cache.el (gnus-cache-generate-active): Regexp-quote.
-
 Mon Jun  1 04:31:23 1998  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
 
        * gnus.el: Gnus v5.6.10 is released.
diff --git a/lisp/Makefile b/lisp/Makefile
deleted file mode 100644 (file)
index b949400..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-SHELL = /bin/sh
-EMACS=emacs
-FLAGS=-batch -q -no-site-file -l ./dgnushack.el
-
-total:
-       rm -f *.elc ; $(EMACS) $(FLAGS) -f dgnushack-compile
-
-all:
-       rm -f *.elc ; $(EMACS) $(FLAGS) -f dgnushack-compile
-
-clever:
-       $(EMACS) $(FLAGS) -f dgnushack-compile
-
-some:
-       $(EMACS) $(FLAGS) -f dgnushack-compile
-
-tags:
-       etags *.el
-
-separately:
-       rm -f *.elc ; for i in *.el; do $(EMACS) $(FLAGS) -f batch-byte-compile $$i; done
-
-pot:
-       xpot -drgnus -r`cat ./version` *.el > rgnus.pot
-
-gnus-load.el: 
-       echo ";;; gnus-load.el --- automatically extracted custom dependencies" > gnus-load.el
-       echo ";;" >> gnus-load.el
-       echo ";;; Code:" >> gnus-load.el
-       echo >> gnus-load.el
-       $(EMACS)  $(FLAGS) -l ./dgnushack.el -l cus-edit.el *.el \
-               -f custom-make-dependencies >> gnus-load.el
-       echo >> gnus-load.el
-       echo "(provide 'gnus-load)" >> gnus-load.el
-       echo >> gnus-load.el
-       echo ";;; gnus-load.el ends here" >> gnus-load.el
-
-distclean:
-       rm -f *.orig *.rej *.elc *~
-
index aaeb1cb..7d40b82 100644 (file)
@@ -1,4 +1,4 @@
-;;; gnus-agent.el --- unplugged support for Gnus
+;;; gnus-agent.el --- unplugged support for Semi-gnus
 ;; Copyright (C) 1997,98 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -719,7 +719,7 @@ the actual number of articles toggled is returned."
        (when (= (point-max) (point-min))
          (push (cons group (current-buffer)) gnus-agent-buffer-alist)
          (ignore-errors
-           (insert-file-contents
+           (nnheader-insert-file-contents
             (gnus-agent-article-name ".overview" group))))
        (nnheader-find-nov-line (string-to-number (cdar crosses)))
        (insert (string-to-number (cdar crosses)))
@@ -760,6 +760,17 @@ the actual number of articles toggled is returned."
        (set-buffer nntp-server-buffer)
        (unless (eq 'nov (gnus-retrieve-headers articles group))
          (nnvirtual-convert-headers))
+       ;;
+       ;; To gnus-agent-expire work fine with no Xref field in .overview 
+       ;; Tatsuya Ichikawa <ichikawa@hv.epson.co.jp>
+       (goto-char (point-min))
+       (while (not (eobp))
+         (goto-char (point-at-eol))
+         (insert "\t")
+         (forward-line 1))
+       ;; Tatsuya Ichikawa <ichikawa@hv.epson.co.jp>
+       ;; To gnus-agent-expire work fine with no Xref field in .overview 
+       ;;
        ;; Save these headers for later processing.
        (copy-to-buffer gnus-agent-overview-buffer (point-min) (point-max))
        (let (file)
@@ -788,7 +799,7 @@ the actual number of articles toggled is returned."
     (goto-char (point-min))
     (set-buffer nntp-server-buffer)
     (erase-buffer)
-    (insert-file-contents file)
+    (nnheader-insert-file-contents file)
     (goto-char (point-min))
     (if (or (= (point-min) (point-max))
            (progn
@@ -1297,14 +1308,14 @@ The following commands are available:
                                  (cdr (assq 'dormant
                                             (gnus-info-marks info)))))
                   nov-file (gnus-agent-article-name ".overview" group))
-            (gnus-agent-load-alist group)
+            (gnus-agent-load-alist group)
             (gnus-message 5 "Expiring articles in %s" group)
             (set-buffer overview)
             (erase-buffer)
             (when (file-exists-p nov-file)
-              (insert-file-contents nov-file))
+              (nnheader-insert-file-contents nov-file))
             (goto-char (point-min))
-            (setq article 0)
+            (setq article 0)
             (while (setq elem (pop articles))
               (setq article (car elem))
               (when (or (null low)
index dd29db6..d2c3e0d 100644 (file)
@@ -1,8 +1,9 @@
-;;; gnus-art.el --- article mode commands for Gnus
+;;; gnus-art.el --- article mode commands for Semi-gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
-;; Keywords: news
+;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Keywords: mail, news, MIME
 
 ;; This file is part of GNU Emacs.
 
@@ -33,6 +34,8 @@
 (require 'gnus-spec)
 (require 'gnus-int)
 (require 'browse-url)
+(require 'alist)
+(require 'mime-view)
 
 (defgroup gnus-article nil
   "Article display."
@@ -365,13 +368,13 @@ be used as possible file names."
   :group 'gnus-article-mime
   :type 'boolean)
 
-(defcustom gnus-show-mime-method 'metamail-buffer
+(defcustom gnus-show-mime-method 'gnus-article-preview-mime-message
   "Function to process a MIME message.
 The function is called from the article buffer."
   :group 'gnus-article-mime
   :type 'function)
 
-(defcustom gnus-decode-encoded-word-method 'gnus-article-de-quoted-unreadable
+(defcustom gnus-decode-encoded-word-method 'gnus-article-decode-encoded-word
   "*Function to decode MIME encoded words.
 The function is called from the article buffer."
   :group 'gnus-article-mime
@@ -924,84 +927,14 @@ characters to translate to."
                  (process-send-region "article-x-face" beg end)
                  (process-send-eof "article-x-face"))))))))))
 
-(defun gnus-hack-decode-rfc1522 ()
-  "Emergency hack function for avoiding problems when decoding."
-  (let ((buffer-read-only nil))
-    (goto-char (point-min))
-    ;; Remove encoded TABs.
-    (while (search-forward "=09" nil t)
-      (replace-match " " t t))
-    ;; Remove encoded newlines.
-    (goto-char (point-min))
-    (while (search-forward "=10" nil t)
-      (replace-match " " t t))))
-
-(defalias 'gnus-decode-rfc1522 'article-decode-rfc1522)
-(defalias 'gnus-article-decode-rfc1522 'article-decode-rfc1522)
-(defun article-decode-rfc1522 ()
-  "Hack to remove QP encoding from headers."
-  (let ((case-fold-search t)
-       (inhibit-point-motion-hooks t)
-       (buffer-read-only nil)
-       string)
-    (save-restriction
-      (narrow-to-region
-       (goto-char (point-min))
-       (or (search-forward "\n\n" nil t) (point-max)))
-      (goto-char (point-min))
-      (while (re-search-forward
-             "=\\?iso-8859-1\\?q\\?\\([^?\t\n]*\\)\\?=" nil t)
-       (setq string (match-string 1))
-       (save-restriction
-         (narrow-to-region (match-beginning 0) (match-end 0))
-         (delete-region (point-min) (point-max))
-         (insert string)
-         (article-mime-decode-quoted-printable
-          (goto-char (point-min)) (point-max))
-         (subst-char-in-region (point-min) (point-max) ?_ ? )
-         (goto-char (point-max)))
-       (goto-char (point-min))))))
-
-(defun article-de-quoted-unreadable (&optional force)
-  "Do a naive translation of a quoted-printable-encoded article.
-This is in no way, shape or form meant as a replacement for real MIME
-processing, but is simply a stop-gap measure until MIME support is
-written.
-If FORCE, decode the article whether it is marked as quoted-printable
-or not."
-  (interactive (list 'force))
-  (save-excursion
-    (let ((case-fold-search t)
-         (buffer-read-only nil)
-         (type (gnus-fetch-field "content-transfer-encoding")))
-      (gnus-article-decode-rfc1522)
-      (when (or force
-               (and type (string-match "quoted-printable" (downcase type))))
-       (goto-char (point-min))
-       (search-forward "\n\n" nil 'move)
-       (article-mime-decode-quoted-printable (point) (point-max))))))
-
-(defun article-mime-decode-quoted-printable-buffer ()
-  "Decode Quoted-Printable in the current buffer."
-  (article-mime-decode-quoted-printable (point-min) (point-max)))
-
-(defun article-mime-decode-quoted-printable (from to)
-  "Decode Quoted-Printable in the region between FROM and TO."
-  (interactive "r")
-  (goto-char from)
-  (while (search-forward "=" to t)
-    (cond ((eq (following-char) ?\n)
-          (delete-char -1)
-          (delete-char 1))
-         ((looking-at "[0-9A-F][0-9A-F]")
-          (subst-char-in-region
-           (1- (point)) (point) ?=
-           (hexl-hex-string-to-integer
-            (buffer-substring (point) (+ 2 (point)))))
-          (delete-char 2))
-         ((looking-at "=")
-          (delete-char 1))
-         ((gnus-message 3 "Malformed MIME quoted-printable message")))))
+(defun gnus-article-decode-rfc1522 ()
+  "Decode MIME encoded-words in header fields."
+  (let (buffer-read-only)
+    (let ((charset (save-excursion
+                    (set-buffer gnus-summary-buffer)
+                    default-mime-charset)))
+      (eword-decode-header charset)
+      )))
 
 (defun article-hide-pgp (&optional arg)
   "Toggle hiding of any PGP headers and signatures in the current article.
@@ -1913,7 +1846,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is
        ["Hide citation" gnus-article-hide-citation t]
        ["Treat overstrike" gnus-article-treat-overstrike t]
        ["Remove carriage return" gnus-article-remove-cr t]
-       ["Remove quoted-unreadable" gnus-article-de-quoted-unreadable t]))
+       ))
 
     ;; Note "Commands" menu is defined in gnus-sum.el for consistency
 
@@ -2014,6 +1947,41 @@ commands:
        (forward-line line)
        (point)))))
 
+;;; @@ article filters
+;;;
+
+(defun gnus-article-preview-mime-message ()
+  (make-local-variable 'mime-button-mother-dispatcher)
+  (setq mime-button-mother-dispatcher
+       (function gnus-article-push-button))
+  (let ((default-mime-charset
+         (save-excursion
+           (set-buffer gnus-summary-buffer)
+           default-mime-charset))
+       )
+    (save-excursion
+      (mime-view-mode nil nil nil gnus-original-article-buffer
+                     gnus-article-buffer
+                     gnus-article-mode-map)
+      ))
+  (run-hooks 'gnus-mime-article-prepare-hook)
+  )
+
+(defun gnus-article-decode-encoded-word ()
+  "Header filter for gnus-article-mode.
+It is registered to variable `mime-view-content-header-filter-alist'."
+  (let ((charset (save-excursion
+                  (set-buffer gnus-summary-buffer)
+                  default-mime-charset)))
+    (eword-decode-header charset)
+    (goto-char (point-min))
+    (if (search-forward "\n\n" nil t)
+       (decode-mime-charset-region (match-end 0) (point-max) charset))
+    (mime-maybe-hide-echo-buffer)
+    )
+  (gnus-run-hooks 'gnus-mime-article-prepare-hook)
+  )
+
 (defun gnus-article-prepare (article &optional all-headers header)
   "Prepare ARTICLE in article mode buffer.
 ARTICLE should either be an article number or a Message-ID.
@@ -2115,9 +2083,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
                (when gnus-show-mime
                  (if (or (not gnus-strict-mime)
                          (gnus-fetch-field "Mime-Version"))
-                     (let ((coding-system-for-write 'binary)
-                           (coding-system-for-read 'binary))
-                       (funcall gnus-show-mime-method))
+                     (funcall gnus-show-mime-method)
                    (funcall gnus-decode-encoded-word-method)))
                ;; Perform the article display hooks.
                (gnus-run-hooks 'gnus-article-display-hook))
@@ -3269,6 +3235,61 @@ forbidden in URL encoding."
     (gnus-article-prev-page)
     (select-window win)))
 
+
+;;; @ for mime-view
+;;;
+
+(defun gnus-content-header-filter ()
+  "Header filter for mime-view.
+It is registered to variable `mime-view-content-header-filter-alist'."
+  (eword-decode-header default-mime-charset))
+
+(defun mime-preview-quitting-method-for-gnus ()
+  (if (not gnus-show-mime)
+      (mime-preview-kill-buffer))
+  (delete-other-windows)
+  (gnus-article-show-summary)
+  (if (or (not gnus-show-mime)
+         (null gnus-have-all-headers))
+      (gnus-summary-select-article nil t)
+    ))
+
+(set-alist 'mime-raw-buffer-coding-system-alist
+          'gnus-original-article-mode
+          'raw-text)
+
+(set-alist 'mime-view-content-header-filter-alist
+          'gnus-original-article-mode
+          #'gnus-content-header-filter)
+
+(set-alist 'mime-text-decoder-alist
+          'gnus-original-article-mode
+          #'mime-text-decode-buffer)
+
+(set-alist 'mime-preview-quitting-method-alist
+          'gnus-original-article-mode
+          #'mime-preview-quitting-method-for-gnus)
+
+(set-alist 'mime-view-show-summary-method
+          'gnus-original-article-mode
+          #'mime-preview-quitting-method-for-gnus)
+
+(defun gnus-following-method (buf)
+  (set-buffer buf)
+  (message-followup)
+  (message-yank-original)
+  (kill-buffer buf)
+  (goto-char (point-min))
+  )
+
+(set-alist 'mime-view-following-method-alist
+          'gnus-original-article-mode
+          #'gnus-following-method)
+
+
+;;; @ end
+;;;
+
 (gnus-ems-redefine)
 
 (provide 'gnus-art)
index c4cc5d4..a725a9a 100644 (file)
@@ -242,7 +242,7 @@ variable to \"^nnml\"."
     (when (file-exists-p file)
       (erase-buffer)
       (gnus-kill-all-overlays)
-      (insert-file-contents file)
+      (nnheader-insert-file-contents file)
       t)))
 
 (defun gnus-cache-possibly-alter-active (group active)
@@ -288,7 +288,7 @@ variable to \"^nnml\"."
            ;; unsuccessful), so we use the cached headers exclusively.
            (set-buffer nntp-server-buffer)
            (erase-buffer)
-           (insert-file-contents cache-file)
+           (nnheader-insert-file-contents cache-file)
            'nov)
           ((eq type 'nov)
            ;; We have both cached and uncached NOV headers, so we
@@ -465,7 +465,7 @@ Returns the list of articles removed."
       (set-buffer cache-buf)
       (buffer-disable-undo (current-buffer))
       (erase-buffer)
-      (insert-file-contents (or file (gnus-cache-file-name group ".overview")))
+      (nnheader-insert-file-contents (or file (gnus-cache-file-name group ".overview")))
       (goto-char (point-min))
       (insert "\n")
       (goto-char (point-min)))
@@ -508,7 +508,7 @@ Returns the list of articles removed."
       (save-excursion
        (set-buffer cache-buf)
        (erase-buffer)
-       (insert-file-contents (gnus-cache-file-name group (car cached)))
+       (nnheader-insert-file-contents (gnus-cache-file-name group (car cached)))
        (goto-char (point-min))
        (insert "220 ")
        (princ (car cached) (current-buffer))
@@ -559,7 +559,7 @@ $ emacs -batch -l ~/.emacs -l gnus -f gnus-jog-cache"
     ;; We simply read the active file.
     (save-excursion
       (gnus-set-work-buffer)
-      (insert-file-contents gnus-cache-active-file)
+      (nnheader-insert-file-contents gnus-cache-active-file)
       (gnus-active-to-gnus-format
        nil (setq gnus-cache-active-hashtb
                 (gnus-make-hashtable
@@ -607,9 +607,8 @@ If LOW, update the lower bound instead."
          (if top
              ""
            (string-match
-            (concat "^" (regexp-quote
-                         (file-name-as-directory
-                          (expand-file-name gnus-cache-directory))))
+            (concat "^" (file-name-as-directory
+                         (expand-file-name gnus-cache-directory)))
             (directory-file-name directory))
            (nnheader-replace-chars-in-string
             (substring (directory-file-name directory) (match-end 0))
index bf9ecbe..fce8744 100644 (file)
@@ -1,8 +1,9 @@
-;;; gnus-draft.el --- draft message support for Gnus
+;;; gnus-draft.el --- draft message support for Semi-gnus
 ;; Copyright (C) 1997,98 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
-;; Keywords: news
+;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Keywords: mail, news, MIME, offline
 
 ;; This file is part of GNU Emacs.
 
 
 ;;; Utility functions
 
+(defcustom gnus-draft-decoding-function
+  (function
+   (lambda ()
+     (mime-edit-decode-buffer nil)
+     (eword-decode-header)
+     ))
+  "*Function called to decode the message from network representation."
+  :group 'gnus-agent
+  :type 'function)
+
 ;;;!!!If this is byte-compiled, it fails miserably.
 ;;;!!!This is because `gnus-setup-message' uses uninterned symbols.
 ;;;!!!This has been fixed in recent versions of Emacs and XEmacs,
       (if (not (gnus-request-restore-buffer article group))
          (error "Couldn't restore the article")
        ;; Insert the separator.
+       (funcall gnus-draft-decoding-function)
        (goto-char (point-min))
        (search-forward "\n\n")
        (forward-char -1)
index baca8ab..1404cad 100644 (file)
@@ -1,7 +1,8 @@
-;;; gnus-ems.el --- functions for making Gnus work under different Emacsen
+;;; gnus-ems.el --- functions for making Semi-gnus work under different Emacsen
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;         Tatsuya Ichikawa <t-ichi@niagara.shiojiri.ne.jp>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
           (truncate-string valstr (, max-width))
         valstr))))
 
+(defvar gnus-mule-bitmap-image-file nil)
+(defun gnus-mule-group-startup-message (&optional x y)
+  "Insert startup message in current buffer."
+  ;; Insert the message.
+  (erase-buffer)
+  (insert
+   (if (featurep 'bitmap)
+     (format "              %s
+
+"
+            "" (if (and (stringp gnus-mule-bitmap-image-file)
+                        (file-exists-p gnus-mule-bitmap-image-file))
+                   (insert-file gnus-mule-bitmap-image-file)))
+     (format "              %s
+          _    ___ _             _
+          _ ___ __ ___  __    _ ___
+          __   _     ___    __  ___
+              _           ___     _
+             _  _ __             _
+             ___   __            _
+                   __           _
+                    _      _   _
+                   _      _    _
+                      _  _    _
+                  __  ___
+                 _   _ _     _
+                _   _
+              _    _
+             _    _
+            _
+          __
+
+"
+            "")))
+  ;; And then hack it.
+  (gnus-indent-rigidly (point-min) (point-max)
+                      (/ (max (- (window-width) (or x 46)) 0) 2))
+  (goto-char (point-min))
+  (forward-line 1)
+  (let* ((pheight (count-lines (point-min) (point-max)))
+        (wheight (window-height))
+        (rest (- wheight pheight)))
+    (insert (make-string (max 0 (* 2 (/ rest 3))) ?\n)))
+  ;; Fontify some.
+  (put-text-property (point-min) (point-max) 'face 'gnus-splash-face)
+  (goto-char (point-min))
+  (setq mode-line-buffer-identification (concat " " gnus-version))
+  (setq gnus-simple-splash t)
+  (set-buffer-modified-p t))
+
 (defun gnus-encode-coding-string (string system)
   string)
 
 (eval-and-compile
   (let ((case-fold-search t))
     (cond
-     ((string-match "windows-nt\\|os/2\\|emx" (symbol-name system-type))
+     ((string-match "windows-nt\\|os/2\\|emx" (format "%s" system-type))
       (setq nnheader-file-name-translation-alist
            (append nnheader-file-name-translation-alist
                    '((?: . ?_)
     (fset 'gnus-summary-set-display-table (lambda ()))
     (fset 'gnus-encode-coding-string 'encode-coding-string)
     (fset 'gnus-decode-coding-string 'decode-coding-string)
-    
+
+    (and window-system
+        (module-installed-p 'bitmap)
+        (fset 'gnus-group-startup-message 'gnus-mule-group-startup-message))
+
     (when (boundp 'gnus-check-before-posting)
       (setq gnus-check-before-posting
            (delq 'long-lines
index d4bfd54..96c28a8 100644 (file)
@@ -2736,10 +2736,11 @@ of groups killed."
     (if (< (length out) 2) (car out) (nreverse out))))
 
 (defun gnus-group-yank-group (&optional arg)
-  "Yank the last newsgroups killed with \\[gnus-group-kill-group], inserting it before the current newsgroup.
-The numeric ARG specifies how many newsgroups are to be yanked.  The
-name of the newsgroup yanked is returned, or (if several groups are
-yanked) a list of yanked groups is returned."
+  "Yank the last newsgroups killed with \\[gnus-group-kill-group],
+inserting it before the current newsgroup.  The numeric ARG specifies
+how many newsgroups are to be yanked.  The name of the newsgroup yanked
+is returned, or (if several groups are yanked) a list of yanked groups
+is returned."
   (interactive "p")
   (setq arg (or arg 1))
   (let (info group prev out)
diff --git a/lisp/gnus-i18n.el b/lisp/gnus-i18n.el
new file mode 100644 (file)
index 0000000..3737fb9
--- /dev/null
@@ -0,0 +1,95 @@
+;;; gnus-i18n.el --- Internationalization for Gnus
+
+;; Copyright (C) 1996,1997 Free Software Foundation, Inc.
+
+;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Created: 1997/11/27
+;; Keywords: internationalization, news, mail
+
+;; This file is not part of GNU Emacs yet.
+
+;; This program 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) any later version.
+
+;; This program is distributed in the hope that it will be useful, 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.
+
+;;; Code:
+
+;;; @ newsgroup default charset
+;;;
+
+(defvar gnus-newsgroup-default-charset-alist
+  '(("^\\(fj\\|tnn\\|japan\\)\\."      . iso-2022-jp-2)
+    ("^han\\."                         . euc-kr)
+    ("^relcom\\."                      . koi8-r)
+    ("^alt\\.chinese\\.text\\.big5"    . cn-big5)
+    ("^hk\\(star\\)?\\."               . cn-big5)
+    ("^tw\\."                          . cn-big5)
+    ("^alt\\.chinese"                  . hz-gb-2312)
+    )
+  "Alist of newsgroup patterns vs. corresponding default MIME charset.
+Each element looks like (REGEXP . SYMBOL).  REGEXP is pattern for
+newsgroup name.  SYMBOL is MIME charset or coding-system.")
+
+(defun gnus-set-newsgroup-default-charset (newsgroup charset)
+  "Set CHARSET for the NEWSGROUP as default MIME charset."
+  (let* ((ng-regexp (concat "^" (regexp-quote newsgroup) "\\($\\|\\.\\)"))
+        (pair (assoc ng-regexp gnus-newsgroup-default-charset-alist))
+        )
+    (if pair
+       (setcdr pair charset)
+      (setq gnus-newsgroup-default-charset-alist
+           (cons (cons ng-regexp charset)
+                 gnus-newsgroup-default-charset-alist))
+      )))
+
+
+;;; @ localization
+;;;
+
+(defun gnus-set-summary-default-charset ()
+  "Set up `default-mime-charset' of summary buffer.
+It is specified by variable `gnus-newsgroup-default-charset-alist'
+\(cf. function `gnus-set-newsgroup-default-charset')."
+  (if (buffer-live-p gnus-summary-buffer)
+      (let ((charset
+            (catch 'found
+              (let ((group
+                     (save-excursion
+                       (set-buffer gnus-summary-buffer)
+                       gnus-newsgroup-name))
+                    (alist gnus-newsgroup-default-charset-alist))
+                (while alist
+                  (let ((pair (car alist)))
+                    (if (string-match (car pair) group)
+                        (throw 'found (cdr pair))
+                      ))
+                  (setq alist (cdr alist)))
+                ))))
+       (when charset
+         (save-excursion
+           (set-buffer gnus-summary-buffer)
+           (make-local-variable 'default-mime-charset)
+           (setq default-mime-charset charset)
+           )
+         (make-local-variable 'default-mime-charset)
+         (setq default-mime-charset charset)
+         ))))
+
+
+;;; @ end
+;;;
+
+(provide 'gnus-i18n)
+
+;;; gnus-i18n.el ends here
index ec6a4bf..ecca916 100644 (file)
@@ -1,9 +1,10 @@
-;;; gnus-msg.el --- mail and post interface for Gnus
+;;; gnus-msg.el --- mail and post interface for Semi-gnus
 ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
 ;; Author: Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
-;;     Lars Magne Ingebrigtsen <larsi@gnus.org>
-;; Keywords: news
+;;        Lars Magne Ingebrigtsen <larsi@gnus.org>
+;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Keywords: mail, news, MIME
 
 ;; This file is part of GNU Emacs.
 
@@ -94,9 +95,6 @@ the second with the current group name.")
 (defvar gnus-message-setup-hook nil
   "Hook run after setting up a message buffer.")
 
-(defvar gnus-bug-create-help-buffer t
-  "*Should we create the *Gnus Help Bug* buffer?")
-
 ;;; Internal variables.
 
 (defvar gnus-message-buffer "*Mail Gnus*")
@@ -302,8 +300,10 @@ post using the current select method."
        article)
     (while (setq article (pop articles))
       (when (gnus-summary-select-article t nil nil article)
-       (when (gnus-eval-in-buffer-window gnus-original-article-buffer
-               (message-cancel-news))
+       (when (gnus-eval-in-buffer-window gnus-article-buffer
+               (save-excursion
+                 (set-buffer gnus-original-article-buffer)
+                 (message-cancel-news)))
          (gnus-summary-mark-as-read article gnus-canceled-mark)
          (gnus-cache-remove-article 1))
        (gnus-article-hide-headers-if-wanted))
@@ -505,60 +505,9 @@ If SILENT, don't prompt the user."
 ;;; as well include the Emacs version as well.
 ;;; The following function works with later GNU Emacs, and XEmacs.
 (defun gnus-extended-version ()
-  "Stringified Gnus version and Emacs version."
+  "Stringified Gnus version"
   (interactive)
-  (concat
-   gnus-version
-   "/"
-   (cond
-    ((string-match "^\\([0-9]+\\.[0-9]+\\)\\.[.0-9]+$" emacs-version)
-     (concat "Emacs " (substring emacs-version
-                                (match-beginning 1)
-                                (match-end 1))))
-    ((string-match "\\([A-Z]*[Mm][Aa][Cc][Ss]\\)[^(]*\\(\\((beta.*)\\|'\\)\\)?"
-                  emacs-version)
-     (concat (substring emacs-version
-                       (match-beginning 1)
-                       (match-end 1))
-            (format " %d.%d" emacs-major-version emacs-minor-version)
-            (if (match-beginning 3)
-                (substring emacs-version
-                           (match-beginning 3)
-                           (match-end 3))
-              "")
-            (if (boundp 'xemacs-codename)
-                (concat " - \"" xemacs-codename "\""))))
-    (t emacs-version))))
-
-;; Written by "Mr. Per Persson" <pp@gnu.ai.mit.edu>.
-(defun gnus-inews-insert-mime-headers ()
-  "Insert MIME headers.
-Assumes ISO-Latin-1 is used iff 8-bit characters are present."
-  (goto-char (point-min))
-  (let ((mail-header-separator
-        (progn
-          (goto-char (point-min))
-          (if (and (search-forward (concat "\n" mail-header-separator "\n")
-                                   nil t)
-                   (not (search-backward "\n\n" nil t)))
-              mail-header-separator
-            ""))))
-    (or (mail-position-on-field "Mime-Version")
-       (insert "1.0")
-       (cond ((save-restriction
-                (widen)
-                (goto-char (point-min))
-                (re-search-forward "[^\000-\177]" nil t))
-              (or (mail-position-on-field "Content-Type")
-                  (insert "text/plain; charset=ISO-8859-1"))
-              (or (mail-position-on-field "Content-Transfer-Encoding")
-                  (insert "8bit")))
-             (t (or (mail-position-on-field "Content-Type")
-                    (insert "text/plain; charset=US-ASCII"))
-                (or (mail-position-on-field "Content-Transfer-Encoding")
-                    (insert "7bit")))))))
-
-(custom-add-option 'message-header-hook 'gnus-inews-insert-mime-headers)
+  gnus-version)
 
 \f
 ;;;
@@ -613,7 +562,11 @@ If FULL-HEADERS (the prefix), include full headers when forwarding."
   (interactive "P")
   (gnus-setup-message 'forward
     (gnus-summary-select-article)
-    (set-buffer gnus-original-article-buffer)
+    (let ((charset default-mime-charset))
+      (set-buffer gnus-original-article-buffer)
+      (make-local-variable 'default-mime-charset)
+      (setq default-mime-charset charset)
+      )
     (let ((message-included-forward-headers
           (if full-headers "" message-included-forward-headers)))
       (message-forward post))))
@@ -787,20 +740,18 @@ If YANK is non-nil, include the original article."
     (error "Gnus has been shut down"))
   (gnus-setup-message 'bug
     (delete-other-windows)
-    (when gnus-bug-create-help-buffer
-      (switch-to-buffer "*Gnus Help Bug*")
-      (erase-buffer)
-      (insert gnus-bug-message)
-      (goto-char (point-min)))
+    (switch-to-buffer (get-buffer-create "*Gnus Help Bug*"))
+    (erase-buffer)
+    (insert gnus-bug-message)
+    (goto-char (point-min))
     (message-pop-to-buffer "*Gnus Bug*")
     (message-setup `((To . ,gnus-maintainer) (Subject . "")))
-    (when gnus-bug-create-help-buffer
-      (push `(gnus-bug-kill-buffer) message-send-actions))
+    (push `(gnus-bug-kill-buffer) message-send-actions)
     (goto-char (point-min))
     (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$"))
     (forward-line 1)
-    (insert (gnus-version) "\n"
-           (emacs-version) "\n")
+    (insert (gnus-version) "\n")
+    (insert (emacs-version) "\n")
     (when (and (boundp 'nntp-server-type)
               (stringp nntp-server-type))
       (insert nntp-server-type))
@@ -907,7 +858,7 @@ this is a reply."
       (save-restriction
        (message-narrow-to-headers)
        (let ((gcc (or gcc (mail-fetch-field "gcc" nil t)))
-             (cur (current-buffer))
+             (coding-system-for-write 'raw-text)
              groups group method)
          (when gcc
            (message-remove-header "gcc")
@@ -935,7 +886,8 @@ this is a reply."
                (gnus-request-create-group group method))
              (save-excursion
                (nnheader-set-temp-buffer " *acc*")
-               (insert-buffer-substring cur)
+               (insert-buffer-substring message-encoding-buffer)
+               (gnus-run-hooks 'gnus-before-do-gcc-hook)
                (goto-char (point-min))
                (when (re-search-forward
                       (concat "^" (regexp-quote mail-header-separator) "$")
index d678531..c7dc5be 100644 (file)
@@ -108,7 +108,8 @@ matches an previously scanned and verified nocem message."
   "Real-name mappings of subscribed groups.")
 
 (defun gnus-fill-real-hashtb ()
-  "Fill up a hash table with the real-name mappings from the user's active file."
+  "Fill up a hash table with the real-name mappings from the user's
+active file."
   (setq gnus-nocem-real-group-hashtb (gnus-make-hashtable
                                      (length gnus-newsrc-alist)))
   (mapcar (lambda (group)
index f324be2..0628fd5 100644 (file)
@@ -1075,9 +1075,8 @@ SCORE is the score to add."
   ;; Load score file FILE.  Returns a list a retrieved score-alists.
   (let* ((file (expand-file-name
                (or (and (string-match
-                         (concat "^" (regexp-quote
-                                      (expand-file-name
-                                       gnus-kill-files-directory)))
+                         (concat "^" (expand-file-name
+                                      gnus-kill-files-directory))
                          (expand-file-name file))
                         file)
                    (concat (file-name-as-directory gnus-kill-files-directory)
@@ -2740,7 +2739,6 @@ The list is determined from the variable gnus-score-file-alist."
   (interactive (list gnus-global-score-files))
   (let (out)
     (while files
-      ;; #### /$ Unix-specific?
       (if (string-match "/$" (car files))
          (setq out (nconc (directory-files
                            (car files) t
index 52eeb55..89ea8aa 100644 (file)
@@ -1,8 +1,9 @@
-;;; gnus-sum.el --- summary mode commands for Gnus
+;;; gnus-sum.el --- summary mode commands for Semi-gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
-;; Keywords: news
+;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Keywords: mail, news, MIME
 
 ;; This file is part of GNU Emacs.
 
 (require 'gnus-range)
 (require 'gnus-int)
 (require 'gnus-undo)
+(require 'std11)
+(require 'mime-view)
+
 (autoload 'gnus-summary-limit-include-cached "gnus-cache" nil t)
+(autoload 'gnus-set-summary-default-charset "gnus-i18n" nil t)
 
 (defcustom gnus-kill-summary-on-exit t
   "*If non-nil, kill the summary buffer when you exit from it.
@@ -325,7 +330,7 @@ variable."
   :group 'gnus-article-various
   :type 'boolean)
 
-(defcustom gnus-show-mime nil
+(defcustom gnus-show-mime t
   "*If non-nil, do mime processing of articles.
 The articles will simply be fed to the function given by
 `gnus-show-mime-method'."
@@ -659,18 +664,24 @@ is not run if `gnus-visual' is nil."
   :group 'gnus-summary-visual
   :type 'hook)
 
-(defcustom gnus-structured-field-decoder 'identity
+(defcustom gnus-structured-field-decoder
+  #'eword-decode-and-unfold-structured-field
   "Function to decode non-ASCII characters in structured field for summary."
   :group 'gnus-various
   :type 'function)
 
-(defcustom gnus-unstructured-field-decoder 'identity
+(defcustom gnus-unstructured-field-decoder
+  (function
+   (lambda (string)
+     (eword-decode-unstructured-field-body
+      (std11-unfold-string string) 'must-unfold)
+     ))
   "Function to decode non-ASCII characters in unstructured field for summary."
   :group 'gnus-various
   :type 'function)
 
 (defcustom gnus-parse-headers-hook
-  (list 'gnus-hack-decode-rfc1522 'gnus-decode-rfc1522)
+  '(gnus-set-summary-default-charset)
   "*A hook called before parsing the headers."
   :group 'gnus-various
   :type 'hook)
@@ -1137,6 +1148,7 @@ increase the score of each group you read."
     [delete] gnus-summary-prev-page
     [backspace] gnus-summary-prev-page
     "\r" gnus-summary-scroll-up
+    "\e\r" gnus-summary-scroll-down
     "n" gnus-summary-next-unread-article
     "p" gnus-summary-prev-unread-article
     "N" gnus-summary-next-article
@@ -1218,6 +1230,7 @@ increase the score of each group you read."
     "t" gnus-article-hide-headers
     "g" gnus-summary-show-article
     "l" gnus-summary-goto-last-article
+    "v" gnus-summary-preview-mime-message
     "\C-c\C-v\C-v" gnus-uu-decode-uu-view
     "\C-d" gnus-summary-enter-digest-group
     "\M-\C-d" gnus-summary-read-document
@@ -1361,7 +1374,6 @@ increase the score of each group you read."
     "e" gnus-article-emphasize
     "w" gnus-article-fill-cited-article
     "c" gnus-article-remove-cr
-    "q" gnus-article-de-quoted-unreadable
     "f" gnus-article-display-x-face
     "l" gnus-summary-stop-page-breaking
     "r" gnus-summary-caesar-message
@@ -1506,7 +1518,6 @@ increase the score of each group you read."
               ["Word wrap" gnus-article-fill-cited-article t]
               ["CR" gnus-article-remove-cr t]
               ["Show X-Face" gnus-article-display-x-face t]
-              ["Quoted-Printable" gnus-article-de-quoted-unreadable t]
               ["UnHTMLize" gnus-article-treat-html t]
               ["Rot 13" gnus-summary-caesar-message t]
               ["Unix pipe" gnus-summary-pipe-message t]
@@ -2856,90 +2867,11 @@ If NO-DISPLAY, don't generate a summary buffer."
              gnus-newsgroup-dependencies)))
     threads))
 
-;; Build the thread tree.
-(defun gnus-dependencies-add-header (header dependencies force-new)
-  "Enter HEADER into the DEPENDENCIES table if it is not already there.
-
-If FORCE-NEW is not NIL, enter HEADER into the DEPENDENCIES table even
-if it was already present.
-
-If `gnus-summary-ignore-duplicates' is NIL then duplicate Message-IDs
-will not be entered in the DEPENDENCIES table.  Otherwise duplicate
-Message-IDs will be renamed be renamed to a unique Message-ID before
-being entered.
-
-Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
-
-  (let* ((id (mail-header-id header))
-        (id-dep (and id (intern id dependencies)))
-        ref ref-dep ref-header)
-    ;; Enter this `header' in the `dependencies' table
-    (cond
-     ((not id-dep)
-      (setq header nil))
-     ;; The first two cases do the normal part : enter a new `header'
-     ;; in the `dependencies' table,
-     ((not (boundp id-dep))
-      (set id-dep (list header)))
-     ((null (car (symbol-value id-dep)))
-      (setcar (symbol-value id-dep) header))
-
-     ;; From here the `header' was already present in the
-     ;; `dependencies' table.
-
-     (force-new
-      ;; Overrides an existing entry,
-      ;; Just set the header part of the entry.
-      (setcar (symbol-value id-dep) header))
-
-     ;; Renames the existing `header' to a unique Message-ID.
-     ((not gnus-summary-ignore-duplicates)
-      ;; An article with this Message-ID has already been seen.
-      ;; We rename the Message-ID.
-      (set (setq id-dep (intern (setq id (nnmail-message-id)) dependencies))
-          (list header))
-      (mail-header-set-id header id))
-
-     ;;   - The last case ignores an existing entry, except it adds
-     ;;     any additional Xrefs (in case the two articles came from
-     ;;     different servers.
-     ;;     Also sets `header' to `nil' meaning that the
-     ;;     `dependencies' table was *not* modified.
-     (t
-      (mail-header-set-xref
-       (car (symbol-value id-dep))
-       (concat (or (mail-header-xref (car (symbol-value id-dep)))
-                  "")
-              (or (mail-header-xref header) "")))
-      (setq header nil)))
-
-    (when header
-      ;; First check if that we are not creating a References loop.
-      (setq ref (gnus-parent-id (mail-header-references header)))
-      (while (and ref
-                 (setq ref-dep (intern-soft ref dependencies))
-                 (boundp ref-dep)
-                 (setq ref-header (car (symbol-value ref-dep))))
-       (if (string= id ref)
-           ;; Yuk !  This is a reference loop.  Make the article be a
-           ;; root article.
-           (progn
-             (mail-header-set-references (car (symbol-value id-dep)) "none")
-             (setq ref nil))
-         (setq ref (gnus-parent-id (mail-header-references ref-header)))))
-      (setq ref (gnus-parent-id (mail-header-references header)))
-      (setq ref-dep (intern (or ref "none") dependencies))
-      (if (boundp ref-dep)
-         (setcdr (symbol-value ref-dep)
-                 (nconc (cdr (symbol-value ref-dep))
-                        (list (symbol-value id-dep))))
-       (set ref-dep (list nil (symbol-value id-dep)))))
-    header))
-
 (defun gnus-build-sparse-threads ()
   (let ((headers gnus-newsgroup-headers)
+       (deps gnus-newsgroup-dependencies)
        header references generation relations
-       cthread subject child end pthread relation new-child)
+       cthread subject child end pthread relation new-child children)
     ;; First we create an alist of generations/relations, where
     ;; generations is how much we trust the relation, and the relation
     ;; is parent/child.
@@ -2955,28 +2887,51 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
          (setq generation 0)
          (while (search-backward ">" nil t)
            (setq end (1+ (point)))
-           (if (search-backward "<" nil t)
+           (when (search-backward "<" nil t)
+             ;; This is a rather weak for of loop-checking, but if
+             ;; an article contains the same Message-ID twice in
+             ;; the References header, this will catch it.  I haven't
+             ;; considered other forms of thread loop preventions,
+             ;; though -- I think one should probably go through
+             ;; the entire thread after building it and break
+             ;; any loops that are found.
+             (unless (member (setq new-child (buffer-substring (point) end))
+                              children)
                (push (list (incf generation)
                            child (setq child new-child)
                            subject)
-                     relations)))
+                     relations)
+               (push child children))))
          (push (list (1+ generation) child nil subject) relations)
          (erase-buffer)))
       (kill-buffer (current-buffer)))
     ;; Sort over trustworthiness.
-    (mapc #'(lambda (relation)
-             (when (gnus-dependencies-add-header
-                    (make-full-mail-header gnus-reffed-article-number
-                                           (cadddr relation)
-                                           "" "" (cadr relation)
-                                           (or (caddr relation) "") 0 0 "")
-                    gnus-newsgroup-dependencies nil)
-               (push gnus-reffed-article-number gnus-newsgroup-limit)
-               (push gnus-reffed-article-number gnus-newsgroup-sparse)
-               (push (cons gnus-reffed-article-number gnus-sparse-mark)
-                     gnus-newsgroup-reads)
-               (decf gnus-reffed-article-number)))
-         (sort relations 'car-less-than-car))
+    (setq relations (sort relations 'car-less-than-car))
+    (while (setq relation (pop relations))
+      (when (if (boundp (setq cthread (intern (cadr relation) deps)))
+               (unless (car (symbol-value cthread))
+                 ;; Make this article the parent of these threads.
+                 (setcar (symbol-value cthread)
+                         (vector gnus-reffed-article-number
+                                 (cadddr relation)
+                                 "" ""
+                                 (cadr relation)
+                                 (or (caddr relation) "") 0 0 "")))
+             (set cthread (list (vector gnus-reffed-article-number
+                                        (cadddr relation)
+                                        "" "" (cadr relation)
+                                        (or (caddr relation) "") 0 0 ""))))
+       (push gnus-reffed-article-number gnus-newsgroup-limit)
+       (push gnus-reffed-article-number gnus-newsgroup-sparse)
+       (push (cons gnus-reffed-article-number gnus-sparse-mark)
+             gnus-newsgroup-reads)
+       (decf gnus-reffed-article-number)
+       ;; Make this new thread the child of its parent.
+       (if (boundp (setq pthread (intern (or (caddr relation) "none") deps)))
+           (setcdr (symbol-value pthread)
+                   (nconc (cdr (symbol-value pthread))
+                          (list (symbol-value cthread))))
+         (set pthread (list nil (symbol-value cthread))))))
     (gnus-message 7 "Making sparse threads...done")))
 
 (defun gnus-build-old-threads ()
@@ -2995,7 +2950,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
               (setq heads (cdr heads))
             (setq id (symbol-name refs))
             (while (and (setq id (gnus-build-get-header id))
-                        (not (car (gnus-id-to-thread id)))))
+                        (not (car (gnus-gethash
+                                   id gnus-newsgroup-dependencies)))))
             (setq heads nil)))))
      gnus-newsgroup-dependencies)))
 
@@ -3003,7 +2959,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
   ;; Look through the buffer of NOV lines and find the header to
   ;; ID.  Enter this line into the dependencies hash table, and return
   ;; the id of the parent article (if any).
-  (let (found header)
+  (let ((deps gnus-newsgroup-dependencies)
+       found header)
     (prog1
        (save-excursion
          (set-buffer nntp-server-buffer)
@@ -3019,8 +2976,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
            (when found
              (beginning-of-line)
              (and
-              (setq header (gnus-nov-parse-line (read (current-buffer))
-                                                gnus-newsgroup-dependencies))
+              (setq header (gnus-nov-parse-line
+                            (read (current-buffer)) deps))
               (gnus-parent-id (mail-header-references header))))))
       (when header
        (let ((number (mail-header-number header)))
@@ -3035,7 +2992,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
 
 (defun gnus-build-all-threads ()
   "Read all the headers."
-  (let ((gnus-summary-ignore-duplicates t)
+  (let ((deps gnus-newsgroup-dependencies)
+       (gnus-summary-ignore-duplicates t)
        found header article)
     (save-excursion
       (set-buffer nntp-server-buffer)
@@ -3044,8 +3002,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
        (while (not (eobp))
          (ignore-errors
            (setq article (read (current-buffer)))
-           (setq header (gnus-nov-parse-line article
-                                             gnus-newsgroup-dependencies)))
+           (setq header (gnus-nov-parse-line article deps)))
          (when header
            (push header gnus-newsgroup-headers)
            (if (memq (setq article (mail-header-number header))
@@ -3231,7 +3188,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
 (defun gnus-root-id (id)
   "Return the id of the root of the thread where ID appears."
   (let (last-id prev)
-    (while (and id (setq prev (car (gnus-id-to-thread id))))
+    (while (and id (setq prev (car (gnus-gethash
+                                   id gnus-newsgroup-dependencies))))
       (setq last-id id
            id (gnus-parent-id (mail-header-references prev))))
     last-id))
@@ -3243,7 +3201,8 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
 
 (defun gnus-remove-thread (id &optional dont-remove)
   "Remove the thread that has ID in it."
-  (let (headers thread last-id)
+  (let ((dep gnus-newsgroup-dependencies)
+       headers thread last-id)
     ;; First go up in this thread until we find the root.
     (setq last-id (gnus-root-id id))
     (setq headers (list (car (gnus-id-to-thread last-id))
@@ -3276,7 +3235,7 @@ Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
       (if thread
          (unless dont-remove
            (setq gnus-newsgroup-threads (delq thread gnus-newsgroup-threads)))
-       (setq thread (gnus-id-to-thread last-id)))
+       (setq thread (gnus-gethash last-id dep)))
       (when thread
        (prog1
            thread                      ; We return this thread.
@@ -3441,7 +3400,8 @@ Unscored articles will be counted as having a score of zero."
   (apply gnus-thread-score-function
         (or (append
              (mapcar 'gnus-thread-total-score
-                     (cdr (gnus-id-to-thread (mail-header-id root))))
+                     (cdr (gnus-gethash (mail-header-id root)
+                                        gnus-newsgroup-dependencies)))
              (when (> (mail-header-number root) 0)
                (list (or (cdr (assq (mail-header-number root)
                                     gnus-newsgroup-scored))
@@ -4390,11 +4350,43 @@ The resulting hash table is returned, or nil if no Xrefs were found."
            (funcall gnus-alter-header-function header)
            (setq id (mail-header-id header)
                  ref (gnus-parent-id (mail-header-references header))))
-
-         (setq header
-               (gnus-dependencies-add-header header dependencies force-new))
-         (if header
-             (push header headers))
+    
+         ;; We do the threading while we read the headers.  The
+         ;; message-id and the last reference are both entered into
+         ;; the same hash table.  Some tippy-toeing around has to be
+         ;; done in case an article has arrived before the article
+         ;; which it refers to.
+         (if (boundp (setq id-dep (intern id dependencies)))
+             (if (and (car (symbol-value id-dep))
+                      (not force-new))
+                 ;; An article with this Message-ID has already been seen.
+                 (if gnus-summary-ignore-duplicates
+                     ;; We ignore this one, except we add
+                     ;; any additional Xrefs (in case the two articles
+                     ;; came from different servers).
+                     (progn
+                       (mail-header-set-xref
+                        (car (symbol-value id-dep))
+                        (concat (or (mail-header-xref
+                                     (car (symbol-value id-dep)))
+                                    "")
+                                (or (mail-header-xref header) "")))
+                       (setq header nil))
+                   ;; We rename the Message-ID.
+                   (set
+                    (setq id-dep (intern (setq id (nnmail-message-id))
+                                         dependencies))
+                    (list header))
+                   (mail-header-set-id header id))
+               (setcar (symbol-value id-dep) header))
+           (set id-dep (list header)))
+         (when header
+           (if (boundp (setq ref-dep (intern (or ref "none") dependencies)))
+               (setcdr (symbol-value ref-dep)
+                       (nconc (cdr (symbol-value ref-dep))
+                              (list (symbol-value id-dep))))
+             (set ref-dep (list nil (symbol-value id-dep))))
+           (push header headers))
          (goto-char (point-max))
          (widen))
        (nreverse headers)))))
@@ -4434,31 +4426,73 @@ The resulting hash table is returned, or nil if no Xrefs were found."
            (forward-char))
 
          (setq header
-               (make-full-mail-header
+               (vector
                 number                 ; number
                 (funcall
                  gnus-unstructured-field-decoder (gnus-nov-field)) ; subject
                 (funcall
                  gnus-structured-field-decoder (gnus-nov-field)) ; from
                 (gnus-nov-field)       ; date
-                (or (gnus-nov-field)
-                    (nnheader-generate-fake-message-id)) ; id
-                (gnus-nov-field)       ; refs
+                (setq id (or (gnus-nov-field)
+                             (nnheader-generate-fake-message-id))) ; id
+                (progn
+                  (let ((beg (point)))
+                    (search-forward "\t" eol)
+                    (if (search-backward ">" beg t)
+                        (setq ref
+                              (buffer-substring
+                               (1+ (point))
+                               (or (search-backward "<" beg t) beg)))
+                      (setq ref nil))
+                    (goto-char beg))
+                  (gnus-nov-field))    ; refs
                 (gnus-nov-read-integer) ; chars
                 (gnus-nov-read-integer) ; lines
-                (unless (= (following-char) ?\n)
+                (if (= (following-char) ?\n)
+                    nil
                   (gnus-nov-field))))) ; misc
 
       (widen))
 
     (when gnus-alter-header-function
-      (funcall gnus-alter-header-function header))
-
-    (setq id (mail-header-id header)
-         ref (gnus-parent-id (mail-header-references header)))
-
-    (gnus-dependencies-add-header header dependencies force-new)
-
+      (funcall gnus-alter-header-function header)
+      (setq id (mail-header-id header)
+           ref (gnus-parent-id (mail-header-references header))))
+    
+    ;; We build the thread tree.
+    (when (equal id ref)
+      ;; This article refers back to itself.  Naughty, naughty.
+      (setq ref nil))
+    (if (boundp (setq id-dep (intern id dependencies)))
+       (if (and (car (symbol-value id-dep))
+                (not force-new))
+           ;; An article with this Message-ID has already been seen.
+           (if gnus-summary-ignore-duplicates
+               ;; We ignore this one, except we add any additional
+               ;; Xrefs (in case the two articles came from different
+               ;; servers.
+               (progn
+                 (mail-header-set-xref
+                  (car (symbol-value id-dep))
+                  (concat (or (mail-header-xref
+                               (car (symbol-value id-dep)))
+                              "")
+                          (or (mail-header-xref header) "")))
+                 (setq header nil))
+             ;; We rename the Message-ID.
+             (set
+              (setq id-dep (intern (setq id (nnmail-message-id))
+                                   dependencies))
+              (list header))
+             (mail-header-set-id header id))
+         (setcar (symbol-value id-dep) header))
+      (set id-dep (list header)))
+    (when header
+      (if (boundp (setq ref-dep (intern (or ref "none") dependencies)))
+         (setcdr (symbol-value ref-dep)
+                 (nconc (cdr (symbol-value ref-dep))
+                        (list (symbol-value id-dep))))
+       (set ref-dep (list nil (symbol-value id-dep)))))
     header))
 
 ;; Goes through the xover lines and returns a list of vectors
@@ -4588,9 +4622,9 @@ This is meant to be called in `gnus-article-internal-prepare-hook'."
 ;;; Process/prefix in the summary buffer
 
 (defun gnus-summary-work-articles (n)
-  "Return a list of articles to be worked upon.
-The prefix argument, the list of process marked articles, and the
-current article will be taken into consideration."
+  "Return a list of articles to be worked upon.         The prefix argument,
+the list of process marked articles, and the current article will be
+taken into consideration."
   (save-excursion
     (set-buffer gnus-summary-buffer)
     (cond
@@ -4616,7 +4650,7 @@ current article will be taken into consideration."
       (let ((max (max (point) (mark)))
            articles article)
        (save-excursion
-         (goto-char (min (min (point) (mark))))
+         (goto-char (min (point) (mark)))
          (while
              (and
               (push (setq article (gnus-summary-article-number)) articles)
@@ -5106,8 +5140,8 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil."
         (gnus-handle-ephemeral-exit quit-config)))))
 
 (defun gnus-handle-ephemeral-exit (quit-config)
-  "Handle movement when leaving an ephemeral group.
-The state which existed when entering the ephemeral is reset."
+  "Handle movement when leaving an ephemeral group.  The state
+which existed when entering the ephemeral is reset."
   (if (not (buffer-name (car quit-config)))
       (gnus-configure-windows 'group 'force)
     (set-buffer (car quit-config))
@@ -5137,6 +5171,28 @@ The state which existed when entering the ephemeral is reset."
       (gnus-summary-recenter)
       (gnus-summary-position-point))))
 
+(defun gnus-summary-preview-mime-message (arg)
+  "MIME decode and play this message."
+  (interactive "P")
+  (let ((gnus-break-pages nil))
+    (gnus-summary-select-article t t)
+    )
+  (pop-to-buffer gnus-original-article-buffer t)
+  (let (buffer-read-only)
+    (if (text-property-any (point-min) (point-max) 'invisible t)
+       (remove-text-properties (point-min) (point-max)
+                               gnus-hidden-properties)
+      ))
+  (mime-view-mode nil nil nil gnus-original-article-buffer
+                 gnus-article-buffer)
+  )
+
+(defun gnus-summary-scroll-down ()
+  "Scroll down one line current article."
+  (interactive)
+  (gnus-summary-scroll-up -1)
+  )
+
 ;;; Dead summaries.
 
 (defvar gnus-dead-summary-mode-map nil)
@@ -5872,9 +5928,7 @@ articles that are younger than AGE days."
            (setq is-younger (nnmail-time-less
                              (nnmail-time-since (nnmail-date-to-time date))
                              cutoff))
-           (when (if younger-p
-                     (not is-younger)
-                   is-younger)
+           (when (if younger-p is-younger (not is-younger))
              (push (gnus-data-number d) articles))))
        (gnus-summary-limit (nreverse articles)))
     (gnus-summary-position-point)))
@@ -7091,7 +7145,7 @@ latter case, they will be copied into the relevant groups."
       (set-buffer (get-buffer-create " *import file*"))
       (buffer-disable-undo (current-buffer))
       (erase-buffer)
-      (insert-file-contents file)
+      (nnheader-insert-file-contents file)
       (goto-char (point-min))
       (unless (nnheader-article-p)
        ;; This doesn't look like an article, so we fudge some headers.
@@ -8693,7 +8747,9 @@ save those articles instead."
       (when (and header
                 (gnus-summary-article-sparse-p (mail-header-number header)))
        (let* ((parent (gnus-parent-id (mail-header-references header)))
-              (thread (and parent (gnus-id-to-thread parent))))
+              (thread
+               (and parent
+                    (gnus-gethash parent gnus-newsgroup-dependencies))))
          (when thread
            (delq (assq header thread) thread))))
       ;; We have to really fetch the header to this article.
@@ -8886,6 +8942,33 @@ save those articles instead."
           (gnus-summary-exit))
         buffers)))))
 
+
+;;; @ for mime-partial
+;;;
+
+(defun gnus-mime-partial-preview-function ()
+  (gnus-summary-preview-mime-message (gnus-summary-article-number))
+  )
+
+(autoload 'mime-method-to-combine-message/partial-pieces
+  "mime-partial"
+  "Internal method to combine message/partial messages automatically.")
+
+(mime-add-condition
+ 'action '((type . message)(subtype . partial)
+          (method . mime-method-to-combine-message/partial-pieces)
+          (major-mode . gnus-original-article-mode)
+          (summary-buffer-exp . gnus-summary-buffer)
+          ))
+
+(set-alist 'mime-view-partial-message-method-alist
+          'gnus-original-article-mode
+          'gnus-mime-partial-preview-function)
+
+
+;;; @ end
+;;;
+
 (gnus-ems-redefine)
 
 (provide 'gnus-sum)
index 249367d..a3d239e 100644 (file)
@@ -355,8 +355,8 @@ with some simple extensions.
 ;;; Generating group buffers
 
 (defun gnus-group-prepare-topics (level &optional all lowest regexp list-topic topic-level)
-  "List all newsgroups with unread articles of level LEVEL or lower.
-Use the `gnus-group-topics' to sort the groups.
+  "List all newsgroups with unread articles of level LEVEL or lower, and
+use the `gnus-group-topics' to sort the groups.
 If ALL is non-nil, list groups that have no unread articles.
 If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
   (set-buffer gnus-group-buffer)
index 42fc017..e375f42 100644 (file)
@@ -1,8 +1,8 @@
-;;; gnus-util.el --- utility functions for Gnus
+;;; gnus-util.el --- utility functions for Semi-gnus
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
-;; Keywords: news
+;; Keywords: mail, news, MIME
 
 ;; This file is part of GNU Emacs.
 
     (message "")))
 
 (defun gnus-dd-mmm (messy-date)
-  "Return a string like DD-MMM from a big messy string."
+  "Return a string like DD-MMM from a big messy string"
   (let ((datevec (ignore-errors (timezone-parse-date messy-date))))
     (if (or (not datevec)
            (string-equal "0" (aref datevec 1)))
@@ -376,7 +376,7 @@ Cache the result as a text property stored in DATE."
   (format-time-string "%Y%m%dT%H%M%S" time))
 
 (defun gnus-date-iso8601 (date)
-  "Convert the DATE to YYMMDDTHHMMSS."
+  "Convert the DATE to YYMMDDTHHMMSS"
   (condition-case ()
       (gnus-time-iso8601 (gnus-date-get-time date))
     (error "")))
@@ -718,7 +718,8 @@ with potentially long computations."
   (setq filename (expand-file-name filename))
   (setq rmail-default-rmail-file filename)
   (let ((artbuf (current-buffer))
-       (tmpbuf (get-buffer-create " *Gnus-output*")))
+       (tmpbuf (get-buffer-create " *Gnus-output*"))
+       (coding-system-for-write 'binary))
     (save-excursion
       (or (get-file-buffer filename)
          (file-exists-p filename)
@@ -777,7 +778,8 @@ with potentially long computations."
            (let ((file-buffer (create-file-buffer filename)))
              (save-excursion
                (set-buffer file-buffer)
-               (let ((require-final-newline nil))
+               (let ((require-final-newline nil)
+                     (coding-system-for-write 'binary))
                  (gnus-write-buffer filename)))
              (kill-buffer file-buffer))
          (error "Output file does not exist")))
@@ -795,7 +797,8 @@ with potentially long computations."
       ;; Decide whether to append to a file or to an Emacs buffer.
       (let ((outbuf (get-file-buffer filename)))
        (if (not outbuf)
-           (let ((buffer-read-only nil))
+           (let ((buffer-read-only nil)
+                 (coding-system-for-write 'binary))
              (save-excursion
                (goto-char (point-max))
                (forward-char -2)
index 7b28e53..b341583 100644 (file)
@@ -648,7 +648,7 @@ didn't work, and overwrite existing files.  Otherwise, ask each time."
   (gnus-summary-position-point))
 
 (defun gnus-uu-mark-over (&optional score)
-  "Mark all articles with a score over SCORE (the prefix)."
+  "Mark all articles with a score over SCORE (the prefix.)"
   (interactive "P")
   (let ((score (gnus-score-default score))
        (data gnus-newsgroup-data))
@@ -1901,10 +1901,8 @@ If no file has been included, the user will be asked for a file."
     (goto-char (point-max))
     (insert (format "\n%s\n" gnus-uu-post-binary-separator))
 
-    ;; #### Unix-specific?
     (when (string-match "^~/" file-path)
       (setq file-path (concat "$HOME" (substring file-path 1))))
-    ;; #### Unix-specific?
     (if (string-match "/[^/]*$" file-path)
        (setq file-name (substring file-path (1+ (match-beginning 0))))
       (setq file-name file-path))
index 17aaaae..8064a47 100644 (file)
@@ -250,11 +250,13 @@ is restarted, and sometimes reloaded."
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "5.6.11"
-  "Version number for this version of Gnus.")
+(defconst gnus-version-number "6.3.2"
+  "Version number for this version of gnus.")
 
-(defconst gnus-version (format "Gnus v%s" gnus-version-number)
-  "Version string for this version of Gnus.")
+(defconst gnus-version
+  (format "Semi-gnus %s (based on Gnus 5.6.10; for SEMI 1.4)"
+          gnus-version-number)
+  "Version string for this version of gnus.")
 
 (defcustom gnus-inhibit-startup-message nil
   "If non-nil, the startup message will not be displayed.
@@ -1340,7 +1342,6 @@ want."
             gnus-article-emphasize
             gnus-article-fill-cited-article
             gnus-article-remove-cr
-            gnus-article-de-quoted-unreadable
             gnus-summary-stop-page-breaking
             ;; gnus-summary-caesar-message
             ;; gnus-summary-verbose-headers
@@ -1541,8 +1542,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
        (if (eq (nth 1 package) ':interactive)
            (cdddr package)
          (cdr package)))))
-   '(("metamail" metamail-buffer)
-     ("info" Info-goto-node)
+   '(("info" Info-goto-node)
      ("hexl" hexl-hex-string-to-integer)
      ("pp" pp pp-to-string pp-eval-expression)
      ("ps-print" ps-print-preprint)
@@ -1667,7 +1667,7 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.")
       gnus-article-hide-headers gnus-article-hide-boring-headers
       gnus-article-treat-overstrike gnus-article-word-wrap
       gnus-article-remove-cr gnus-article-remove-trailing-blank-lines
-      gnus-article-display-x-face gnus-article-de-quoted-unreadable
+      gnus-article-display-x-face
       gnus-article-mime-decode-quoted-printable gnus-article-hide-pgp
       gnus-article-hide-pem gnus-article-hide-signature
       gnus-article-strip-leading-blank-lines gnus-article-date-local
@@ -2696,7 +2696,7 @@ Allow completion over sensible values."
 
 ;;;###autoload
 (defun gnus-slave-no-server (&optional arg)
-  "Read network news as a slave, without connecting to local server."
+  "Read network news as a slave, without connecting to local server"
   (interactive "P")
   (gnus-no-server arg t))
 
index 10bab6b..b4b458c 100644 (file)
@@ -2,6 +2,12 @@
 
 (defvar byte-compile-default-warnings)
 
+(or (featurep 'path-util)
+    (load "apel/path-util"))
+(add-path "apel")
+(add-path "flim")
+(add-path "semi")
+
 (defun maybe-fbind (args)
   (while args
     (or (fboundp (car args))
index e64ad70..3b6d098 100644 (file)
@@ -2,7 +2,8 @@
 ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
-;; Keywords: mail, news
+;;         MORIOKA Tomohiko <morioka@jaist.ac.jp>
+;; Keywords: mail, news, MIME
 
 ;; This file is part of GNU Emacs.
 
 
 ;;; Code:
 
-(eval-when-compile (require 'cl))
+(eval-when-compile
+  (require 'cl)
+  (require 'smtp)
+  )
 
 (require 'mailheader)
 (require 'nnheader)
@@ -39,6 +43,7 @@
 (if (string-match "XEmacs\\|Lucid" emacs-version)
     (require 'mail-abbrevs)
   (require 'mailabbrev))
+(require 'mime-edit)
 
 (defgroup message '((user-mail-address custom-variable)
                    (user-full-name custom-variable))
@@ -122,6 +127,11 @@ mailbox format."
                (function :tag "Other"))
   :group 'message-sending)
 
+(defcustom message-encode-function 'message-maybe-encode
+  "*A function called to encode messages."
+  :group 'message-sending
+  :type 'function)
+
 (defcustom message-courtesy-message
   "The following message is a courtesy copy of an article\nthat has been posted to %s as well.\n\n"
   "*This is inserted at the start of a mailed copy of a posted message.
@@ -217,11 +227,6 @@ any confusion."
   :group 'message-interface
   :type 'regexp)
 
-(defcustom message-subject-re-regexp "^[ \t]*\\([Rr][Ee]:[ \t]*\\)*[ \t]*"
-  "*Regexp matching \"Re: \" in the subject line."
-  :group 'message-various
-  :type 'regexp)
-
 ;;;###autoload
 (defcustom message-signature-separator "^-- *$"
   "Regexp matching the signature separator."
@@ -275,13 +280,13 @@ If t, use `message-user-organization-file'."
   :group 'message-headers)
 
 (defcustom message-forward-start-separator
-  "------- Start of forwarded message -------\n"
+  (concat (mime-make-tag "message" "rfc822") "\n")
   "*Delimiter inserted before forwarded messages."
   :group 'message-forwarding
   :type 'string)
 
 (defcustom message-forward-end-separator
-  "------- End of forwarded message -------\n"
+  ""
   "*Delimiter inserted after forwarded messages."
   :group 'message-forwarding
   :type 'string)
@@ -321,16 +326,17 @@ variable `mail-header-separator'.
 
 Legal values include `message-send-mail-with-sendmail' (the default),
 `message-send-mail-with-mh', `message-send-mail-with-qmail' and
-`smtpmail-send-it'."
+`message-send-mail-with-smtp'."
   :type '(radio (function-item message-send-mail-with-sendmail)
                (function-item message-send-mail-with-mh)
                (function-item message-send-mail-with-qmail)
-               (function-item smtpmail-send-it)
+               (function-item message-send-mail-with-smtp)
                (function :tag "Other"))
   :group 'message-sending
   :group 'message-mail)
 
-(defcustom message-send-news-function 'message-send-news
+;; 1997-09-29 by MORIOKA Tomohiko
+(defcustom message-send-news-function 'message-send-news-with-gnus
   "Function to call to send the current buffer as news.
 The headers should be delimited by a line whose contents match the
 variable `mail-header-separator'."
@@ -416,7 +422,8 @@ variable isn't used."
   :group 'message-headers
   :type 'boolean)
 
-(defcustom message-setup-hook nil
+(defcustom message-setup-hook
+  '(message-maybe-setup-default-charset turn-on-mime-edit)
   "Normal hook, run each time a new outgoing message is initialized.
 The function `message-setup' runs this hook."
   :group 'message-various
@@ -434,7 +441,7 @@ the signature is inserted."
   :group 'message-various
   :type 'hook)
 
-(defcustom message-header-hook nil
+(defcustom message-header-hook '(eword-encode-header)
   "Hook run in a message mode buffer narrowed to the headers."
   :group 'message-various
   :type 'hook)
@@ -915,7 +922,7 @@ The cdr of ech entry is a function for applying the face to a region.")
     (Lines)
     (Expires)
     (Message-ID)
-    (References . message-fill-header)
+    (References . message-fill-references)
     (X-Mailer)
     (X-Newsreader))
   "Alist used for formatting headers.")
@@ -1040,7 +1047,7 @@ The cdr of ech entry is a function for applying the face to a region.")
 
 (defun message-strip-subject-re (subject)
   "Remove \"Re:\" from subject lines."
-  (if (string-match message-subject-re-regexp subject)
+  (if (string-match "^[Rr][Ee]: *" subject)
       (substring subject (match-end 0))
     subject))
 
@@ -1880,20 +1887,29 @@ the user from the mailer."
     (message-fix-before-sending)
     (run-hooks 'message-send-hook)
     (message "Sending...")
-    (let ((alist message-send-method-alist)
+    (let ((message-encoding-buffer
+          (message-generate-new-buffer-clone-locals " message encoding"))
+         (message-edit-buffer (current-buffer))
+         (message-mime-mode mime-edit-mode-flag)
+         (alist message-send-method-alist)
          (success t)
          elem sent)
-      (while (and success
-                 (setq elem (pop alist)))
-       (when (and (or (not (funcall (cadr elem)))
-                      (and (or (not (memq (car elem)
-                                          message-sent-message-via))
-                               (y-or-n-p
-                                (format
-                                 "Already sent message via %s; resend? "
-                                 (car elem))))
-                           (setq success (funcall (caddr elem) arg)))))
-         (setq sent t)))
+      (save-excursion
+       (set-buffer message-encoding-buffer)
+       (erase-buffer)
+       (insert-buffer message-edit-buffer)
+       (funcall message-encode-function)
+       (while (and success
+                   (setq elem (pop alist)))
+         (when (and (or (not (funcall (cadr elem)))
+                        (and (or (not (memq (car elem)
+                                            message-sent-message-via))
+                                 (y-or-n-p
+                                  (format
+                                   "Already sent message via %s; resend? "
+                                   (car elem))))
+                             (setq success (funcall (caddr elem) arg)))))
+           (setq sent t))))
       (when (and success sent)
        (message-do-fcc)
        ;;(when (fboundp 'mail-hist-put-headers-into-history)
@@ -1911,12 +1927,12 @@ the user from the mailer."
        t))))
 
 (defun message-send-via-mail (arg)
-  "Send the current message via mail."
+  "Send the current message via mail."  
   (message-send-mail arg))
 
 (defun message-send-via-news (arg)
   "Send the current message via news."
-  (funcall message-send-news-function arg))
+  (message-send-news arg))
 
 (defun message-fix-before-sending ()
   "Do various things to make the message nice before sending it."
@@ -1950,8 +1966,7 @@ the user from the mailer."
   (require 'mail-utils)
   (let ((tembuf (message-generate-new-buffer-clone-locals " message temp"))
        (case-fold-search nil)
-       (news (message-news-p))
-       (mailbuf (current-buffer)))
+       (news (message-news-p)))
     (save-restriction
       (message-narrow-to-headers)
       ;; Insert some headers.
@@ -1964,11 +1979,7 @@ the user from the mailer."
        (save-excursion
          (set-buffer tembuf)
          (erase-buffer)
-         ;; Avoid copying text props.
-         (insert (format
-                  "%s" (save-excursion
-                         (set-buffer mailbuf)
-                         (buffer-string))))
+         (insert-buffer message-encoding-buffer)
          ;; Remove some headers.
          (save-restriction
            (message-narrow-to-headers)
@@ -1982,9 +1993,15 @@ the user from the mailer."
                     (or (message-fetch-field "cc")
                         (message-fetch-field "to")))
            (message-insert-courtesy-copy))
+         (mime-edit-maybe-split-and-send
+          (function
+           (lambda ()
+             (interactive)
+             (funcall message-send-mail-function)
+             )))
          (funcall message-send-mail-function))
       (kill-buffer tembuf))
-    (set-buffer mailbuf)
+    (set-buffer message-edit-buffer)
     (push 'mail message-sent-message-via)))
 
 (defun message-send-mail-with-sendmail ()
@@ -2111,13 +2128,151 @@ to find out how to use this."
     ;; Pass it on to mh.
     (mh-send-letter)))
 
+(defun message-send-mail-with-smtp ()
+  "Send the prepared message buffer with SMTP."
+  (require 'smtp)
+  (let ((errbuf (if mail-interactive
+                   (generate-new-buffer " smtp errors")
+                 0))
+       (case-fold-search nil)
+       resend-to-addresses
+       delimline)
+    (unwind-protect
+       (save-excursion
+         (goto-char (point-max))
+         ;; require one newline at the end.
+         (or (= (preceding-char) ?\n)
+             (insert ?\n))
+         ;; Change header-delimiter to be what sendmail expects.
+         (goto-char (point-min))
+         (re-search-forward
+          (concat "^" (regexp-quote mail-header-separator) "\n"))
+         (replace-match "\n")
+         (backward-char 1)
+         (setq delimline (point-marker))
+         (run-hooks 'message-send-mail-hook)
+         ;; (sendmail-synch-aliases)
+          ;; (if mail-aliases
+          ;;     (expand-mail-aliases (point-min) delimline))
+         (goto-char (point-min))
+         ;; ignore any blank lines in the header
+         (while (and (re-search-forward "\n\n\n*" delimline t)
+                     (< (point) delimline))
+           (replace-match "\n"))
+         (let ((case-fold-search t))
+           (goto-char (point-min))
+           (goto-char (point-min))
+           (while (re-search-forward "^Resent-to:" delimline t)
+             (setq resend-to-addresses
+                   (save-restriction
+                     (narrow-to-region (point)
+                                       (save-excursion
+                                         (end-of-line)
+                                         (point)))
+                     (append (mail-parse-comma-list)
+                             resend-to-addresses))))
+;;; Apparently this causes a duplicate Sender.
+;;;        ;; If the From is different than current user, insert Sender.
+;;;        (goto-char (point-min))
+;;;        (and (re-search-forward "^From:"  delimline t)
+;;;             (progn
+;;;               (require 'mail-utils)
+;;;               (not (string-equal
+;;;                     (mail-strip-quoted-names
+;;;                      (save-restriction
+;;;                        (narrow-to-region (point-min) delimline)
+;;;                        (mail-fetch-field "From")))
+;;;                     (user-login-name))))
+;;;             (progn
+;;;               (forward-line 1)
+;;;               (insert "Sender: " (user-login-name) "\n")))
+           ;; Don't send out a blank subject line
+           (goto-char (point-min))
+           (if (re-search-forward "^Subject:[ \t]*\n" delimline t)
+               (replace-match ""))
+           ;; Put the "From:" field in unless for some odd reason
+           ;; they put one in themselves.
+           (goto-char (point-min))
+           (if (not (re-search-forward "^From:" delimline t))
+               (let* ((login user-mail-address)
+                      (fullname (user-full-name)))
+                 (cond ((eq mail-from-style 'angles)
+                        (insert "From: " fullname)
+                        (let ((fullname-start (+ (point-min) 6))
+                              (fullname-end (point-marker)))
+                          (goto-char fullname-start)
+                          ;; Look for a character that cannot appear unquoted
+                          ;; according to RFC 822.
+                          (if (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]"
+                                                 fullname-end 1)
+                              (progn
+                                ;; Quote fullname, escaping specials.
+                                (goto-char fullname-start)
+                                (insert "\"")
+                                (while (re-search-forward "[\"\\]"
+                                                          fullname-end 1)
+                                  (replace-match "\\\\\\&" t))
+                                (insert "\""))))
+                        (insert " <" login ">\n"))
+                       ((eq mail-from-style 'parens)
+                        (insert "From: " login " (")
+                        (let ((fullname-start (point)))
+                          (insert fullname)
+                          (let ((fullname-end (point-marker)))
+                            (goto-char fullname-start)
+                            ;; RFC 822 says \ and nonmatching parentheses
+                            ;; must be escaped in comments.
+                            ;; Escape every instance of ()\ ...
+                            (while (re-search-forward "[()\\]" fullname-end 1)
+                              (replace-match "\\\\\\&" t))
+                            ;; ... then undo escaping of matching parentheses,
+                            ;; including matching nested parentheses.
+                            (goto-char fullname-start)
+                            (while (re-search-forward 
+                                    "\\(\\=\\|[^\\]\\(\\\\\\\\\\)*\\)\\\\(\\(\\([^\\]\\|\\\\\\\\\\)*\\)\\\\)"
+                                    fullname-end 1)
+                              (replace-match "\\1(\\3)" t)
+                              (goto-char fullname-start))))
+                        (insert ")\n"))
+                       ((null mail-from-style)
+                        (insert "From: " login "\n")))))
+           ;; Insert an extra newline if we need it to work around
+           ;; Sun's bug that swallows newlines.
+           (goto-char (1+ delimline))
+           (if (eval mail-mailer-swallows-blank-line)
+               (newline))
+           ;; Find and handle any FCC fields.
+           (goto-char (point-min))
+           (if (re-search-forward "^FCC:" delimline t)
+               (mail-do-fcc delimline))
+           (if mail-interactive
+               (save-excursion
+                 (set-buffer errbuf)
+                 (erase-buffer))))
+         ;;
+         ;;
+         ;;
+         (let ((recipient-address-list
+                (or resend-to-addresses
+                    (smtp-deduce-address-list (current-buffer)
+                                              (point-min) delimline))))
+           (smtp-do-bcc delimline)
+           
+           (if recipient-address-list
+               (if (not (smtp-via-smtp recipient-address-list
+                                       (current-buffer)))
+                   (error "Sending failed; SMTP protocol error"))
+             (error "Sending failed; no recipients"))
+           ))
+      (if (bufferp errbuf)
+         (kill-buffer errbuf)))))
+
 (defun message-send-news (&optional arg)
   (let ((tembuf (message-generate-new-buffer-clone-locals " *message temp*"))
        (case-fold-search nil)
        (method (if (message-functionp message-post-method)
                    (funcall message-post-method arg)
                  message-post-method))
-       (messbuf (current-buffer))
        (message-syntax-checks
         (if arg
             (cons '(existing-newsgroups . disabled)
@@ -2140,11 +2295,7 @@ to find out how to use this."
            (set-buffer tembuf)
            (buffer-disable-undo (current-buffer))
            (erase-buffer)
-           ;; Avoid copying text props.
-           (insert (format
-                    "%s" (save-excursion
-                           (set-buffer messbuf)
-                           (buffer-string))))
+           (insert-buffer message-encoding-buffer)
            ;; Remove some headers.
            (save-restriction
              (message-narrow-to-headers)
@@ -2154,30 +2305,48 @@ to find out how to use this."
            ;; require one newline at the end.
            (or (= (preceding-char) ?\n)
                (insert ?\n))
-           (let ((case-fold-search t))
-             ;; Remove the delimiter.
-             (goto-char (point-min))
-             (re-search-forward
-              (concat "^" (regexp-quote mail-header-separator) "\n"))
-             (replace-match "\n")
-             (backward-char 1))
-           (run-hooks 'message-send-news-hook)
-           ;;(require (car method))
-           ;;(funcall (intern (format "%s-open-server" (car method)))
-           ;;(cadr method) (cddr method))
-           ;;(setq result
-           ;;    (funcall (intern (format "%s-request-post" (car method)))
-           ;;             (cadr method)))
-           (gnus-open-server method)
-           (setq result (gnus-request-post method)))
+           (mime-edit-maybe-split-and-send
+            (function
+             (lambda ()
+               (interactive)
+               (save-restriction
+                 (std11-narrow-to-header mail-header-separator)
+                 (goto-char (point-min))
+                 (when (re-search-forward "^Message-Id:" nil t)
+                   (delete-region (match-end 0)(std11-field-end))
+                   (insert (concat " " (message-make-message-id)))
+                   ))
+               (funcall message-send-news-function method)
+               )))
+           (setq result (funcall message-send-news-function method)))
        (kill-buffer tembuf))
-      (set-buffer messbuf)
+      (set-buffer message-edit-buffer)
       (if result
          (push 'news message-sent-message-via)
        (message "Couldn't send message via news: %s"
                 (nnheader-get-report (car method)))
        nil))))
 
+;; 1997-09-29 by MORIOKA Tomohiko
+(defun message-send-news-with-gnus (method)
+  (let ((case-fold-search t))
+    ;; Remove the delimiter.
+    (goto-char (point-min))
+    (re-search-forward
+     (concat "^" (regexp-quote mail-header-separator) "\n"))
+    (replace-match "\n")
+    (backward-char 1)
+    (run-hooks 'message-send-news-hook)
+    ;;(require (car method))
+    ;;(funcall (intern (format "%s-open-server" (car method)))
+    ;;(cadr method) (cddr method))
+    ;;(setq result
+    ;;   (funcall (intern (format "%s-request-post" (car method)))
+    ;;            (cadr method)))
+    (gnus-open-server method)
+    (gnus-request-post method)
+    ))
+
 ;;;
 ;;; Header generation & syntax checking.
 ;;;
@@ -2211,7 +2380,9 @@ to find out how to use this."
           (message-narrow-to-headers)
           (message-check-news-header-syntax)))
        ;; Check the body.
-       (message-check-news-body-syntax)))))
+       (save-excursion
+        (set-buffer message-edit-buffer)
+        (message-check-news-body-syntax))))))
 
 (defun message-check-news-header-syntax ()
   (and
@@ -2472,18 +2643,19 @@ to find out how to use this."
 (defun message-do-fcc ()
   "Process Fcc headers in the current buffer."
   (let ((case-fold-search t)
-       (buf (current-buffer))
+       (coding-system-for-write 'raw-text)
        list file)
     (save-excursion
       (set-buffer (get-buffer-create " *message temp*"))
       (buffer-disable-undo (current-buffer))
       (erase-buffer)
-      (insert-buffer-substring buf)
+      (insert-buffer-substring message-encoding-buffer)
       (save-restriction
        (message-narrow-to-headers)
        (while (setq file (message-fetch-field "fcc"))
          (push file list)
          (message-remove-header "fcc" nil t)))
+      (run-hooks 'message-header-hook 'message-before-do-fcc-hook)
       (goto-char (point-min))
       (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$"))
       (replace-match "" t t)
@@ -2978,6 +3150,13 @@ Headers already prepared in the buffer are not modified."
     (widen)
     (forward-line 1)))
 
+(defun message-fill-references (header value)
+  (insert (capitalize (symbol-name header))
+         ": "
+         (std11-fill-msg-id-list-string
+          (if (consp value) (car value) value))
+         "\n"))
+
 (defun message-fill-header (header value)
   (let ((begin (point))
        (fill-column 990)
@@ -3218,7 +3397,7 @@ Headers already prepared in the buffer are not modified."
            message-id (message-fetch-field "message-id" t))
       ;; Remove any (buggy) Re:'s that are present and make a
       ;; proper one.
-      (when (string-match message-subject-re-regexp subject)
+      (when (string-match "^[ \t]*[Rr][Ee]:[ \t]*" subject)
        (setq subject (substring subject (match-end 0))))
       (setq subject (concat "Re: " subject))
 
@@ -3339,7 +3518,7 @@ If TO-NEWSGROUPS, use that as the new Newsgroups line."
        (setq distribution nil))
       ;; Remove any (buggy) Re:'s that are present and make a
       ;; proper one.
-      (when (string-match message-subject-re-regexp subject)
+      (when (string-match "^[ \t]*[Rr][Ee]:[ \t]*" subject)
        (setq subject (substring subject (match-end 0))))
       (setq subject (concat "Re: " subject))
       (widen))
@@ -3427,14 +3606,14 @@ responses here are directed to other newsgroups."))
                message-id (message-fetch-field "message-id" t)
                distribution (message-fetch-field "distribution")))
        ;; Make sure that this article was written by the user.
-       (unless (or (and sender
-                        (string-equal
-                         (downcase sender)
-                         (downcase (message-make-sender))))
-                   (string-equal
-                    (downcase (cadr (mail-extract-address-components from)))
-                    (downcase (cadr (mail-extract-address-components
-                                     (message-make-from))))))
+       (unless (or (and sender
+                        (string-equal
+                         (downcase sender)
+                         (downcase (message-make-sender))))
+                   (string-equal
+                    (downcase (cadr (mail-extract-address-components from)))
+                    (downcase (cadr (mail-extract-address-components
+                                     (message-make-from))))))
          (error "This article is not yours"))
        ;; Make control message.
        (setq buf (set-buffer (get-buffer-create " *message cancel*")))
@@ -3451,8 +3630,10 @@ responses here are directed to other newsgroups."))
                message-cancel-message)
        (message "Canceling your article...")
        (if (let ((message-syntax-checks
-                  'dont-check-for-anything-just-trust-me))
-             (funcall message-send-news-function))
+                  'dont-check-for-anything-just-trust-me)
+                 (message-encoding-buffer (current-buffer))
+                 (message-edit-buffer (current-buffer)))
+             (message-send-news))
            (message "Canceling your article...done"))
        (kill-buffer buf)))))
 
@@ -3515,7 +3696,8 @@ header line with the old Message-ID."
       (concat "[" (or (message-fetch-field
                       (if (message-news-p) "newsgroups" "from"))
                      "(nowhere)")
-             "] " (or (message-fetch-field "Subject") "")))))
+             "] " (or (eword-decode-unstructured-field-body
+                       (message-fetch-field "Subject") ""))))))
 
 ;;;###autoload
 (defun message-forward (&optional news)
@@ -3565,7 +3747,10 @@ Optional NEWS will use news to forward instead of mail."
       (set-buffer (get-buffer-create " *message resend*"))
       (buffer-disable-undo (current-buffer))
       (erase-buffer)
-      (message-setup `((To . ,address)))
+      ;; avoid to turn-on-mime-edit
+      (let (message-setup-hook)
+       (message-setup `((To . ,address)))
+       )
       ;; Insert our usual headers.
       (message-generate-headers '(From Date To))
       (message-narrow-to-headers)
@@ -3596,7 +3781,9 @@ Optional NEWS will use news to forward instead of mail."
       (when (looking-at "From ")
        (replace-match "X-From-Line: "))
       ;; Send it.
-      (message-send-mail)
+      (let ((message-encoding-buffer (current-buffer))
+           (message-edit-buffer (current-buffer)))
+       (message-send-mail))
       (kill-buffer (current-buffer)))
     (message "Resending message to %s...done" address)))
 
@@ -3848,6 +4035,47 @@ regexp varstr."
                (cdr local)))))
      locals)))
 
+
+;;; @ for MIME Edit mode
+;;;
+
+(defun message-maybe-setup-default-charset ()
+  (let ((charset
+        (and (boundp 'gnus-summary-buffer)
+              (buffer-live-p gnus-summary-buffer)
+             (save-excursion
+               (set-buffer gnus-summary-buffer)
+               default-mime-charset))))
+    (if charset
+       (progn
+         (make-local-variable 'default-mime-charset)
+         (setq default-mime-charset charset)
+         ))))
+
+(defun message-maybe-encode ()
+  (when message-mime-mode
+    (run-hooks 'mime-edit-translate-hook)
+    (if (catch 'mime-edit-error
+         (save-excursion
+           (mime-edit-translate-body)
+           ))
+       (error "Translation error!")
+      )
+    (end-of-invisible)
+    (run-hooks 'mime-edit-exit-hook)
+    ))
+
+(defun message-mime-insert-article (&optional message)
+  (interactive)
+  (let ((message-cite-function 'mime-edit-inserted-message-filter)
+        (message-reply-buffer gnus-original-article-buffer)
+       )
+    (message-yank-original nil)
+    ))
+
+(set-alist 'mime-edit-message-inserter-alist
+          'message-mode (function message-mime-insert-article))
+
 ;;; Miscellaneous functions
 
 ;; stolen (and renamed) from nnheader.el
index 334b2b6..11cfcd4 100644 (file)
@@ -396,15 +396,12 @@ time saver for large mailboxes.")
   (nnfolder-possibly-change-group group)
   (save-excursion
     (set-buffer buffer)
-    (goto-char (point-min))
-    (when (looking-at "X-From-Line: ")
-      (replace-match "From "))
     (nnfolder-normalize-buffer)
     (set-buffer nnfolder-current-buffer)
     (goto-char (point-min))
     (if (not (nnfolder-goto-article article))
        nil
-      (nnfolder-delete-mail t)
+      (nnfolder-delete-mail t t)
       (insert-buffer-substring buffer)
       (nnfolder-save-buffer)
       t)))
@@ -466,9 +463,10 @@ time saver for large mailboxes.")
       (goto-char (point-min))
       (while (and (search-forward marker nil t)
                  (re-search-forward number nil t))
-       (let ((newnum (string-to-number (match-string 0))))
-         (if (nnmail-within-headers-p)
-             (setq activemin (min activemin newnum)))))
+       (setq activemin (min activemin
+                            (string-to-number (buffer-substring
+                                               (match-beginning 0)
+                                               (match-end 0))))))
       (setcar active activemin))))
 
 (defun nnfolder-article-string (article)
@@ -500,21 +498,19 @@ Returns t if successful, nil otherwise."
     (when found
       (nnmail-search-unix-mail-delim-backward))))
 
-(defun nnfolder-delete-mail (&optional leave-delim)
-  "Delete the message that point is in.
-If optional argument LEAVE-DELIM is t, then mailbox delimiter is not
-deleted.  Point is left where the deleted region was."
-  (delete-region
-   (save-excursion
-     (forward-line 1) ; in case point is at beginning of message already
-     (nnmail-search-unix-mail-delim-backward)
-     (if leave-delim (progn (forward-line 1) (point))
-       (point)))
-   (progn
-     (forward-line 1)
-     (if (nnmail-search-unix-mail-delim)
-        (point)
-       (point-max)))))
+(defun nnfolder-delete-mail (&optional force leave-delim)
+  "Delete the message that point is in."
+  (save-excursion
+    (delete-region
+     (save-excursion
+       (nnmail-search-unix-mail-delim-backward)
+       (if leave-delim (progn (forward-line 1) (point))
+        (point)))
+     (progn
+       (forward-line 1)
+       (if (nnmail-search-unix-mail-delim)
+          (point)
+        (point-max))))))
 
 (defun nnfolder-possibly-change-group (group &optional server dont-check)
   ;; Change servers.
index ccb00f7..062806d 100644 (file)
 
 ;;;###autoload
 (defun nnkiboze-generate-groups ()
-  "\"Usage: emacs -batch -l nnkiboze -f nnkiboze-generate-groups\".
+  "Usage: emacs -batch -l nnkiboze -f nnkiboze-generate-groups
 Finds out what articles are to be part of the nnkiboze groups."
   (interactive)
   (let ((nnmail-spool-file nil)
@@ -234,7 +234,7 @@ Finds out what articles are to be part of the nnkiboze groups."
       (load newsrc-file))
     (nnheader-temp-write nov-file
       (when (file-exists-p nov-file)
-       (insert-file-contents nov-file))
+       (nnheader-insert-file-contents nov-file))
       (setq nov-buffer (current-buffer))
       ;; Go through the active hashtb and add new all groups that match the
       ;; kiboze regexp.
index 516e8b1..7af5f34 100644 (file)
@@ -218,7 +218,7 @@ several files - eg. \".spool[0-9]*\"."
   :type 'function)
 
 (defcustom nnmail-crosspost-link-function
-  (if (string-match "windows-nt\\|emx" (symbol-name system-type))
+  (if (string-match "windows-nt\\|emx" (format "%s" system-type))
       'copy-file
     'add-name-to-file)
   "*Function called to create a copy of a file.
@@ -541,7 +541,7 @@ parameter.  It should return nil, `warn' or `delete'."
   "Convert DAYS into time."
   (let* ((seconds (* 1.0 days 60 60 24))
         (rest (expt 2 16))
-        (ms (condition-case nil (floor (/ seconds rest))
+        (ms (condition-case nil (round (/ seconds rest))
               (range-error (expt 2 16)))))
     (list ms (condition-case nil (round (- seconds (* ms rest)))
               (range-error (expt 2 16))))))
@@ -717,12 +717,10 @@ return nil if FILE is a spool file or the procmail group for which it
 is a spool.  If not using procmail, return GROUP."
   (if (or (eq nnmail-spool-file 'procmail)
          nnmail-use-procmail)
-      (if (string-match (concat "^" (regexp-quote
-                                    (expand-file-name
-                                     (file-name-as-directory
-                                      nnmail-procmail-directory)))
-                               "\\([^/]*\\)"
-                               (regexp-quote nnmail-procmail-suffix) "$")
+      (if (string-match (concat "^" (expand-file-name
+                                    (file-name-as-directory
+                                     nnmail-procmail-directory))
+                               "\\([^/]*\\)" nnmail-procmail-suffix "$")
                        (expand-file-name file))
          (let ((procmail-group (substring (expand-file-name file)
                                           (match-beginning 1)
index 3362ed5..1bfd8ec 100644 (file)
@@ -1,10 +1,10 @@
 ;;; pop3.el --- Post Office Protocol (RFC 1460) interface
 
-;; Copyright (C) 1996,1997 Free Software Foundation, Inc.
+;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
 
 ;; Author: Richard L. Pieri <ratinox@peorth.gweep.net>
 ;; Keywords: mail, pop3
-;; Version: 1.3l
+;; Version: 1.3l+
 
 ;; This file is part of GNU Emacs.
 
@@ -37,7 +37,7 @@
 (require 'mail-utils)
 (provide 'pop3)
 
-(defconst pop3-version "1.3l")
+(defconst pop3-version "1.3l+")
 
 (defvar pop3-maildrop (or (user-login-name) (getenv "LOGNAME") (getenv "USER") nil)
   "*POP3 maildrop.")
@@ -60,6 +60,9 @@ values are 'apop.")
   "Timestamp returned when initially connected to the POP server.
 Used for APOP authentication.")
 
+(defvar pop3-movemail-file-coding-system 'binary
+  "Crashbox made by pop3-movemail with this coding system.")
+
 (defvar pop3-read-point nil)
 (defvar pop3-debug nil)
 
@@ -91,7 +94,8 @@ Used for APOP authentication.")
       (pop3-retr process n crashbuf)
       (save-excursion
        (set-buffer crashbuf)
-       (append-to-file (point-min) (point-max) crashbox)
+       (let ((coding-system-for-write pop3-movemail-file-coding-system))
+         (append-to-file (point-min) (point-max) crashbox))
        (set-buffer (process-buffer process))
        (while (> (buffer-size) 5000)
          (goto-char (point-min))
@@ -111,7 +115,8 @@ Used for APOP authentication.")
 Returns the process associated with the connection."
   (let ((process-buffer
         (get-buffer-create (format "trace of POP session to %s" mailhost)))
-       (process))
+       (process)
+       (coding-system-for-read 'binary))
     (save-excursion
       (set-buffer process-buffer)
       (erase-buffer)
@@ -123,8 +128,7 @@ Returns the process associated with the connection."
       (setq pop3-timestamp
            (substring response (or (string-match "<" response) 0)
                       (+ 1 (or (string-match ">" response) -1)))))
-    process
-    ))
+    process))
 
 ;; Support functions
 
diff --git a/lisp/smtp.el b/lisp/smtp.el
new file mode 100644 (file)
index 0000000..7dde447
--- /dev/null
@@ -0,0 +1,457 @@
+;;; smtp.el --- basic functions to send mail with SMTP server
+
+;; Copyright (C) 1995, 1996, 1998 Free Software Foundation, Inc.
+
+;; Author: Tomoji Kagatani <kagatani@rbc.ncl.omron.co.jp>
+;; ESMTP support: Simon Leinen <simon@switch.ch>
+;; Keywords: SMTP, mail
+
+;; This file is part of GNU Emacs.
+
+;; 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)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; 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.
+
+;;; Code:
+
+(defgroup smtp nil
+  "SMTP protocol for sending mail."
+  :group 'mail)
+
+(defcustom smtp-default-server nil
+  "*Specify default SMTP server."
+  :type '(choice (const nil) string)
+  :group 'smtp)
+
+(defcustom smtp-server 
+  (or (getenv "SMTPSERVER") smtp-default-server)
+  "*The name of the host running SMTP server."
+  :type '(choice (const nil) string)
+  :group 'smtp)
+
+(defcustom smtp-service 25
+  "*SMTP service port number. smtp or 25 ."
+  :type 'integer
+  :group 'smtp)
+
+(defcustom smtp-local-domain nil
+  "*Local domain name without a host name.
+If the function (system-name) returns the full internet address,
+don't define this value."
+  :type '(choice (const nil) string)
+  :group 'smtp)
+
+(defcustom smtp-debug-info nil
+  "*smtp debug info printout. messages and process buffer."
+  :type 'boolean
+  :group 'smtp)
+
+(defcustom smtp-coding-system 'binary
+  "*Coding-system for SMTP output."
+  :type 'coding-system
+  :group 'smtp)
+
+
+(defun smtp-fqdn ()
+  (if smtp-local-domain
+      (concat (system-name) "." smtp-local-domain)
+    (system-name)))
+
+(defun smtp-via-smtp (recipient smtp-text-buffer)
+  (let ((process nil)
+       (host smtp-server)
+       (port smtp-service)
+       response-code
+       greeting
+       process-buffer
+       (supported-extensions '())
+       (coding-system-for-read smtp-coding-system)
+       (coding-system-for-write smtp-coding-system))
+    (unwind-protect
+       (catch 'done
+         ;; get or create the trace buffer
+         (setq process-buffer
+               (get-buffer-create
+                (format "*trace of SMTP session to %s*" host)))
+
+         ;; clear the trace buffer of old output
+         (save-excursion
+           (set-buffer process-buffer)
+           (erase-buffer))
+
+         ;; open the connection to the server
+         (setq process (open-network-stream "SMTP" process-buffer host port))
+         (and (null process) (throw 'done nil))
+
+         ;; set the send-filter
+         (set-process-filter process 'smtp-process-filter)
+
+         (save-excursion
+           (set-buffer process-buffer)
+           (make-local-variable 'smtp-read-point)
+           (setq smtp-read-point (point-min))
+
+           (if (or (null (car (setq greeting (smtp-read-response process))))
+                   (not (integerp (car greeting)))
+                   (>= (car greeting) 400))
+               (throw 'done nil)
+             )
+
+           ;; EHLO
+           (smtp-send-command process (format "EHLO %s" (smtp-fqdn)))
+
+           (if (or (null (car (setq response-code (smtp-read-response process))))
+                   (not (integerp (car response-code)))
+                   (>= (car response-code) 400))
+               (progn
+                 ;; HELO
+                 (smtp-send-command process (format "HELO %s" (smtp-fqdn)))
+
+                 (if (or (null (car (setq response-code (smtp-read-response process))))
+                         (not (integerp (car response-code)))
+                         (>= (car response-code) 400))
+                     (throw 'done nil)))
+             (let ((extension-lines (cdr (cdr response-code))))
+               (while extension-lines
+                 (let ((name (intern (downcase (substring (car extension-lines) 4)))))
+                   (and name
+                        (cond ((memq name '(verb xvrb 8bitmime onex xone
+                                                 expn size dsn etrn
+                                                 help xusr))
+                               (setq supported-extensions
+                                     (cons name supported-extensions)))
+                              (t (message "unknown extension %s"
+                                          name)))))
+                 (setq extension-lines (cdr extension-lines)))))
+
+           (if (or (member 'onex supported-extensions)
+                   (member 'xone supported-extensions))
+               (progn
+                 (smtp-send-command process (format "ONEX"))
+                 (if (or (null (car (setq response-code (smtp-read-response process))))
+                         (not (integerp (car response-code)))
+                         (>= (car response-code) 400))
+                     (throw 'done nil))))
+
+           (if (and smtp-debug-info
+                    (or (member 'verb supported-extensions)
+                        (member 'xvrb supported-extensions)))
+               (progn
+                 (smtp-send-command process (format "VERB"))
+                 (if (or (null (car (setq response-code (smtp-read-response process))))
+                         (not (integerp (car response-code)))
+                         (>= (car response-code) 400))
+                     (throw 'done nil))))
+
+           (if (member 'xusr supported-extensions)
+               (progn
+                 (smtp-send-command process (format "XUSR"))
+                 (if (or (null (car (setq response-code (smtp-read-response process))))
+                         (not (integerp (car response-code)))
+                         (>= (car response-code) 400))
+                     (throw 'done nil))))
+
+           ;; MAIL FROM: <sender>
+           (let ((size-part
+                  (if (member 'size supported-extensions)
+                      (format " SIZE=%d"
+                              (save-excursion
+                                (set-buffer smtp-text-buffer)
+                                ;; size estimate:
+                                (+ (- (point-max) (point-min))
+                                   ;; Add one byte for each change-of-line
+                                   ;; because or CR-LF representation:
+                                   (count-lines (point-min) (point-max))
+                                   ;; For some reason, an empty line is
+                                   ;; added to the message.  Maybe this
+                                   ;; is a bug, but it can't hurt to add
+                                   ;; those two bytes anyway:
+                                   2)))
+                    ""))
+                 (body-part
+                  (if (member '8bitmime supported-extensions)
+                      ;; FIXME:
+                      ;; Code should be added here that transforms
+                      ;; the contents of the message buffer into
+                      ;; something the receiving SMTP can handle.
+                      ;; For a receiver that supports 8BITMIME, this
+                      ;; may mean converting BINARY to BASE64, or
+                      ;; adding Content-Transfer-Encoding and the
+                      ;; other MIME headers.  The code should also
+                      ;; return an indication of what encoding the
+                      ;; message buffer is now, i.e. ASCII or
+                      ;; 8BITMIME.
+                      (if nil
+                          " BODY=8BITMIME"
+                        "")
+                    "")))
+;            (smtp-send-command process (format "MAIL FROM:%s@%s" (user-login-name) (smtp-fqdn)))
+             (smtp-send-command process (format "MAIL FROM: <%s>%s%s"
+                                                    user-mail-address
+                                                    size-part
+                                                    body-part))
+
+             (if (or (null (car (setq response-code (smtp-read-response process))))
+                     (not (integerp (car response-code)))
+                     (>= (car response-code) 400))
+                 (throw 'done nil)
+               ))
+           
+           ;; RCPT TO: <recipient>
+           (let ((n 0))
+             (while (not (null (nth n recipient)))
+               (smtp-send-command process (format "RCPT TO: <%s>" (nth n recipient)))
+               (setq n (1+ n))
+
+               (setq response-code (smtp-read-response process))
+               (if (or (null (car response-code))
+                       (not (integerp (car response-code)))
+                       (>= (car response-code) 400))
+                   (throw 'done nil)
+                 )
+               ))
+           
+           ;; DATA
+           (smtp-send-command process "DATA")
+
+           (if (or (null (car (setq response-code (smtp-read-response process))))
+                   (not (integerp (car response-code)))
+                   (>= (car response-code) 400))
+               (throw 'done nil)
+             )
+
+           ;; Mail contents
+           (smtp-send-data process smtp-text-buffer)
+
+           ;;DATA end "."
+           (smtp-send-command process ".")
+
+           (if (or (null (car (setq response-code (smtp-read-response process))))
+                   (not (integerp (car response-code)))
+                   (>= (car response-code) 400))
+               (throw 'done nil)
+             )
+
+           ;;QUIT
+;          (smtp-send-command process "QUIT")
+;          (and (null (car (smtp-read-response process)))
+;               (throw 'done nil))
+           t ))
+      (if process
+         (save-excursion
+           (set-buffer (process-buffer process))
+           (smtp-send-command process "QUIT")
+           (smtp-read-response process)
+
+;          (if (or (null (car (setq response-code (smtp-read-response process))))
+;                  (not (integerp (car response-code)))
+;                  (>= (car response-code) 400))
+;              (throw 'done nil)
+;            )
+           (delete-process process))))))
+
+(defun smtp-process-filter (process output)
+  (save-excursion
+    (set-buffer (process-buffer process))
+    (goto-char (point-max))
+    (insert output)))
+
+(defun smtp-read-response (process)
+  (let ((case-fold-search nil)
+       (response-strings nil)
+       (response-continue t)
+       (return-value '(nil ()))
+       match-end)
+
+    (while response-continue
+      (goto-char smtp-read-point)
+      (while (not (search-forward "\r\n" nil t))
+       (accept-process-output process)
+       (goto-char smtp-read-point))
+
+      (setq match-end (point))
+      (setq response-strings
+           (cons (buffer-substring smtp-read-point (- match-end 2))
+                 response-strings))
+       
+      (goto-char smtp-read-point)
+      (if (looking-at "[0-9]+ ")
+         (let ((begin (match-beginning 0))
+               (end (match-end 0)))
+           (if smtp-debug-info
+               (message "%s" (car response-strings)))
+
+           (setq smtp-read-point match-end)
+
+           ;; ignore lines that start with "0"
+           (if (looking-at "0[0-9]+ ")
+               nil
+             (setq response-continue nil)
+             (setq return-value
+                   (cons (string-to-int 
+                          (buffer-substring begin end)) 
+                         (nreverse response-strings)))))
+       
+       (if (looking-at "[0-9]+-")
+           (progn (if smtp-debug-info
+                    (message "%s" (car response-strings)))
+                  (setq smtp-read-point match-end)
+                  (setq response-continue t))
+         (progn
+           (setq smtp-read-point match-end)
+           (setq response-continue nil)
+           (setq return-value 
+                 (cons nil (nreverse response-strings)))
+           )
+         )))
+    (setq smtp-read-point match-end)
+    return-value))
+
+(defun smtp-send-command (process command)
+  (goto-char (point-max))
+  (if (= (aref command 0) ?P)
+      (insert "PASS <omitted>\r\n")
+    (insert command "\r\n"))
+  (setq smtp-read-point (point))
+  (process-send-string process command)
+  (process-send-string process "\r\n"))
+
+(defun smtp-send-data-1 (process data)
+  (goto-char (point-max))
+
+  (if smtp-debug-info
+      (insert data "\r\n"))
+
+  (setq smtp-read-point (point))
+  ;; Escape "." at start of a line
+  (if (eq (string-to-char data) ?.)
+      (process-send-string process "."))
+  (process-send-string process data)
+  (process-send-string process "\r\n")
+  )
+
+(defun smtp-send-data (process buffer)
+  (let
+      ((data-continue t)
+       (sending-data nil)
+       this-line
+       this-line-end)
+
+    (save-excursion
+      (set-buffer buffer)
+      (goto-char (point-min)))
+
+    (while data-continue
+      (save-excursion
+       (set-buffer buffer)
+       (beginning-of-line)
+       (setq this-line (point))
+       (end-of-line)
+       (setq this-line-end (point))
+       (setq sending-data nil)
+       (setq sending-data (buffer-substring this-line this-line-end))
+       (if (/= (forward-line 1) 0)
+           (setq data-continue nil)))
+
+      (smtp-send-data-1 process sending-data)
+      )
+    )
+  )
+
+(defun smtp-deduce-address-list (smtp-text-buffer header-start header-end)
+  "Get address list suitable for smtp RCPT TO: <address>."
+  (require 'mail-utils)  ;; pick up mail-strip-quoted-names
+  (let ((case-fold-search t)
+       (simple-address-list "")
+       this-line
+       this-line-end
+       addr-regexp
+       (smtp-address-buffer (generate-new-buffer " *smtp-mail*")))
+    (unwind-protect
+       (save-excursion
+         ;;
+         (set-buffer smtp-address-buffer)
+         (erase-buffer)
+         (insert-buffer-substring smtp-text-buffer
+                                  header-start header-end)
+         (goto-char (point-min))
+         ;; RESENT-* fields should stop processing of regular fields.
+         (save-excursion
+           (if (re-search-forward "^RESENT-TO:" header-end t)
+               (setq addr-regexp
+                     "^\\(RESENT-TO:\\|RESENT-CC:\\|RESENT-BCC:\\)")
+             (setq addr-regexp  "^\\(TO:\\|CC:\\|BCC:\\)")))
+
+         (while (re-search-forward addr-regexp header-end t)
+           (replace-match "")
+           (setq this-line (match-beginning 0))
+           (forward-line 1)
+           ;; get any continuation lines
+           (while (and (looking-at "^[ \t]+") (< (point) header-end))
+             (forward-line 1))
+           (setq this-line-end (point-marker))
+           (setq simple-address-list
+                 (concat simple-address-list " "
+                         (mail-strip-quoted-names
+                          (buffer-substring this-line this-line-end))))
+           )
+         (erase-buffer)
+         (insert-string " ")
+         (insert-string simple-address-list)
+         (insert-string "\n")
+         ;; newline --> blank
+         (subst-char-in-region (point-min) (point-max) 10 ?  t)
+         ;; comma   --> blank
+         (subst-char-in-region (point-min) (point-max) ?, ?  t)
+         ;; tab     --> blank
+         (subst-char-in-region (point-min) (point-max)  9 ?  t)
+
+         (goto-char (point-min))
+         ;; tidyness in case hook is not robust when it looks at this
+         (while (re-search-forward "[ \t]+" header-end t) (replace-match " "))
+
+         (goto-char (point-min))
+         (let (recipient-address-list)
+           (while (re-search-forward " \\([^ ]+\\) " (point-max) t)
+             (backward-char 1)
+             (setq recipient-address-list
+                   (cons (buffer-substring (match-beginning 1) (match-end 1))
+                         recipient-address-list))
+             )
+           recipient-address-list)
+         )
+      (kill-buffer smtp-address-buffer))
+    ))
+
+(defun smtp-do-bcc (header-end)
+  "Delete BCC: and their continuation lines from the header area.
+There may be multiple BCC: lines, and each may have arbitrarily
+many continuation lines."
+  (let ((case-fold-search t))
+    (save-excursion
+      (goto-char (point-min))
+      ;; iterate over all BCC: lines
+      (while (re-search-forward "^BCC:" header-end t)
+       (delete-region (match-beginning 0) (progn (forward-line 1) (point)))
+       ;; get rid of any continuation lines
+       (while (and (looking-at "^[ \t].*\n") (< (point) header-end))
+         (replace-match ""))
+       )
+      ) ;; save-excursion
+    ) ;; let
+  )
+
+(provide 'smtp)
+
+;;; smtp.el ends here
diff --git a/lisp/smtpmail.el b/lisp/smtpmail.el
new file mode 100644 (file)
index 0000000..77a5947
--- /dev/null
@@ -0,0 +1,285 @@
+;;; smtpmail.el --- simple SMTP protocol (RFC 821) for sending mail
+
+;; Copyright (C) 1995, 1996 Free Software Foundation, Inc.
+
+;; Author: Tomoji Kagatani <kagatani@rbc.ncl.omron.co.jp>
+;; Maintainer: Brian D. Carlstrom <bdc@ai.mit.edu>
+;; ESMTP support: Simon Leinen <simon@switch.ch>
+;; Keywords: mail
+
+;; This file is part of GNU Emacs.
+
+;; 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)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; 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:
+
+;; Send Mail to smtp host from smtpmail temp buffer.
+
+;; Please add these lines in your .emacs(_emacs).
+;;
+;;(setq send-mail-function 'smtpmail-send-it)
+;;(setq smtp-default-server "YOUR SMTP HOST")
+;;(setq smtp-service "smtp")
+;;(setq smtp-local-domain "YOUR DOMAIN NAME")
+;;(setq smtp-debug-info t)
+;;(autoload 'smtpmail-send-it "smtpmail")
+;;(setq user-full-name "YOUR NAME HERE")
+
+;; To queue mail, set smtpmail-queue-mail to t and use 
+;; smtpmail-send-queued-mail to send.
+
+
+;;; Code:
+
+(require 'smtp)
+(require 'sendmail)
+(require 'time-stamp)
+
+;;;
+
+(defcustom smtpmail-queue-mail nil 
+  "*Specify if mail is queued (if t) or sent immediately (if nil).
+If queued, it is stored in the directory `smtpmail-queue-dir'
+and sent with `smtpmail-send-queued-mail'."
+  :type 'boolean
+  :group 'smtp)
+
+(defcustom smtpmail-queue-dir "~/Mail/queued-mail/"
+  "*Directory where `smtpmail.el' stores queued mail."
+  :type 'directory
+  :group 'smtp)
+
+(defvar smtpmail-queue-index-file "index"
+  "File name of queued mail index,
+This is relative to `smtpmail-queue-dir'.")
+
+(defvar smtpmail-queue-index (concat smtpmail-queue-dir
+                                    smtpmail-queue-index-file))
+
+(defvar smtpmail-recipient-address-list nil)
+
+
+;;;
+;;;
+;;;
+
+(defun smtpmail-send-it ()
+  (require 'mail-utils)
+  (let ((errbuf (if mail-interactive
+                   (generate-new-buffer " smtpmail errors")
+                 0))
+       (tembuf (generate-new-buffer " smtpmail temp"))
+       (case-fold-search nil)
+       resend-to-addresses
+       delimline
+       (mailbuf (current-buffer)))
+    (unwind-protect
+       (save-excursion
+         (set-buffer tembuf)
+         (erase-buffer)
+         (insert-buffer-substring mailbuf)
+         (goto-char (point-max))
+         ;; require one newline at the end.
+         (or (= (preceding-char) ?\n)
+             (insert ?\n))
+         ;; Change header-delimiter to be what sendmail expects.
+         (goto-char (point-min))
+         (re-search-forward
+           (concat "^" (regexp-quote mail-header-separator) "\n"))
+         (replace-match "\n")
+         (backward-char 1)
+         (setq delimline (point-marker))
+;;       (sendmail-synch-aliases)
+         (if mail-aliases
+             (expand-mail-aliases (point-min) delimline))
+         (goto-char (point-min))
+         ;; ignore any blank lines in the header
+         (while (and (re-search-forward "\n\n\n*" delimline t)
+                     (< (point) delimline))
+           (replace-match "\n"))
+         (let ((case-fold-search t))
+           (goto-char (point-min))
+           (goto-char (point-min))
+           (while (re-search-forward "^Resent-to:" delimline t)
+             (setq resend-to-addresses
+                   (save-restriction
+                     (narrow-to-region (point)
+                                       (save-excursion
+                                         (end-of-line)
+                                         (point)))
+                     (append (mail-parse-comma-list)
+                             resend-to-addresses))))
+;;; Apparently this causes a duplicate Sender.
+;;;        ;; If the From is different than current user, insert Sender.
+;;;        (goto-char (point-min))
+;;;        (and (re-search-forward "^From:"  delimline t)
+;;;             (progn
+;;;               (require 'mail-utils)
+;;;               (not (string-equal
+;;;                     (mail-strip-quoted-names
+;;;                      (save-restriction
+;;;                        (narrow-to-region (point-min) delimline)
+;;;                        (mail-fetch-field "From")))
+;;;                     (user-login-name))))
+;;;             (progn
+;;;               (forward-line 1)
+;;;               (insert "Sender: " (user-login-name) "\n")))
+           ;; Don't send out a blank subject line
+           (goto-char (point-min))
+           (if (re-search-forward "^Subject:[ \t]*\n" delimline t)
+               (replace-match ""))
+           ;; Put the "From:" field in unless for some odd reason
+           ;; they put one in themselves.
+           (goto-char (point-min))
+           (if (not (re-search-forward "^From:" delimline t))
+               (let* ((login user-mail-address)
+                      (fullname (user-full-name)))
+                 (cond ((eq mail-from-style 'angles)
+                        (insert "From: " fullname)
+                        (let ((fullname-start (+ (point-min) 6))
+                              (fullname-end (point-marker)))
+                          (goto-char fullname-start)
+                          ;; Look for a character that cannot appear unquoted
+                          ;; according to RFC 822.
+                          (if (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]"
+                                                 fullname-end 1)
+                              (progn
+                                ;; Quote fullname, escaping specials.
+                                (goto-char fullname-start)
+                                (insert "\"")
+                                (while (re-search-forward "[\"\\]"
+                                                          fullname-end 1)
+                                  (replace-match "\\\\\\&" t))
+                                (insert "\""))))
+                        (insert " <" login ">\n"))
+                       ((eq mail-from-style 'parens)
+                        (insert "From: " login " (")
+                        (let ((fullname-start (point)))
+                          (insert fullname)
+                          (let ((fullname-end (point-marker)))
+                            (goto-char fullname-start)
+                            ;; RFC 822 says \ and nonmatching parentheses
+                            ;; must be escaped in comments.
+                            ;; Escape every instance of ()\ ...
+                            (while (re-search-forward "[()\\]" fullname-end 1)
+                              (replace-match "\\\\\\&" t))
+                            ;; ... then undo escaping of matching parentheses,
+                            ;; including matching nested parentheses.
+                            (goto-char fullname-start)
+                            (while (re-search-forward 
+                                    "\\(\\=\\|[^\\]\\(\\\\\\\\\\)*\\)\\\\(\\(\\([^\\]\\|\\\\\\\\\\)*\\)\\\\)"
+                                    fullname-end 1)
+                              (replace-match "\\1(\\3)" t)
+                              (goto-char fullname-start))))
+                        (insert ")\n"))
+                       ((null mail-from-style)
+                        (insert "From: " login "\n")))))
+           ;; Insert an extra newline if we need it to work around
+           ;; Sun's bug that swallows newlines.
+           (goto-char (1+ delimline))
+           (if (eval mail-mailer-swallows-blank-line)
+               (newline))
+           ;; Find and handle any FCC fields.
+           (goto-char (point-min))
+           (if (re-search-forward "^FCC:" delimline t)
+               (mail-do-fcc delimline))
+           (if mail-interactive
+               (save-excursion
+                 (set-buffer errbuf)
+                 (erase-buffer))))
+         ;;
+         ;;
+         ;;
+         (setq smtpmail-recipient-address-list
+               (or resend-to-addresses
+                   (smtp-deduce-address-list tembuf (point-min) delimline)))
+
+         (smtp-do-bcc delimline)
+         ; Send or queue
+         (if (not smtpmail-queue-mail)
+             (if smtpmail-recipient-address-list
+                 (if (not (smtp-via-smtp
+                           smtpmail-recipient-address-list tembuf))
+                     (error "Sending failed; SMTP protocol error"))
+               (error "Sending failed; no recipients"))
+           (let* ((file-data (concat 
+                              smtpmail-queue-dir
+                              (time-stamp-strftime 
+                               "%02y%02m%02d-%02H%02M%02S")))
+                  (file-elisp (concat file-data ".el"))
+                  (buffer-data (create-file-buffer file-data))
+                  (buffer-elisp (create-file-buffer file-elisp))
+                  (buffer-scratch "*queue-mail*"))
+             (save-excursion
+               (set-buffer buffer-data)
+               (erase-buffer)
+               (insert-buffer tembuf)
+               (write-file file-data)
+               (set-buffer buffer-elisp)
+               (erase-buffer)
+               (insert (concat
+                        "(setq smtpmail-recipient-address-list '"
+                        (prin1-to-string smtpmail-recipient-address-list)
+                        ")\n"))                    
+               (write-file file-elisp)
+               (set-buffer (generate-new-buffer buffer-scratch))
+               (insert (concat file-data "\n"))
+               (append-to-file (point-min) 
+                               (point-max) 
+                               smtpmail-queue-index)
+               )
+             (kill-buffer buffer-scratch)
+             (kill-buffer buffer-data)
+             (kill-buffer buffer-elisp))))
+      (kill-buffer tembuf)
+      (if (bufferp errbuf)
+         (kill-buffer errbuf)))))
+
+(defun smtpmail-send-queued-mail ()
+  "Send mail that was queued as a result of setting `smtpmail-queue-mail'."
+  (interactive)
+  ;;; Get index, get first mail, send it, get second mail, etc...
+  (let ((buffer-index (find-file-noselect smtpmail-queue-index))
+       (file-msg "")
+       (tembuf nil))
+    (save-excursion
+      (set-buffer buffer-index)
+      (beginning-of-buffer)
+      (while (not (eobp))
+       (setq file-msg (buffer-substring (point) (save-excursion
+                                                  (end-of-line)
+                                                  (point))))
+       (load file-msg)
+       (setq tembuf (find-file-noselect file-msg))
+       (if smtpmail-recipient-address-list
+           (if (not (smtp-via-smtp smtpmail-recipient-address-list tembuf))
+               (error "Sending failed; SMTP protocol error"))
+         (error "Sending failed; no recipients"))  
+       (delete-file file-msg)
+       (delete-file (concat file-msg ".el"))
+       (kill-buffer tembuf)
+       (kill-line 1))      
+      (set-buffer buffer-index)
+      (save-buffer smtpmail-queue-index)
+      (kill-buffer buffer-index)
+      )))
+
+
+;;;
+
+(provide 'smtpmail)
+
+;;; smtpmail.el ends here
index 1e7d48d..43c1736 100644 (file)
@@ -1,9 +1,3 @@
-Wed Jun  3 03:30:47 1998  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
-
-       * message.texi (Message Headers): Addition.
-
-       * gnus.texi (Compatibility): Addition.
-
 Tue May 19 02:44:31 1998  Mike Pullen  <mpullen@midwest.net>
 
        * gnus.texi.orig: Typo fixes.
diff --git a/texi/Makefile b/texi/Makefile
deleted file mode 100644 (file)
index ea5ef8f..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-TEXI2DVI=texi2dvi
-EMACS=emacs
-MAKEINFO=$(EMACS) -batch -q -no-site-file
-INFOSWI=-l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
-XINFOSWI=-l texinfmt -f texinfo-every-node-update -f texinfo-format-buffer -f save-buffer
-LATEX=latex
-DVIPS=dvips
-PERL=perl
-INFODIR=/usr/local/info
-
-all: gnus message
-
-most: texi2latex.elc latex latexps
-
-.SUFFIXES: .texi .dvi .ps
-
-.texi:
-       $(MAKEINFO) -eval '(find-file "$<")' $(XINFOSWI)
-
-dvi: gnus.dvi message.dvi
-
-.texi.dvi :
-       $(PERL) -n -e 'print unless (/\@iflatex/ .. /\@end iflatex/)' $< > gnustmp.texi
-       $(TEXI2DVI) gnustmp.texi
-       cp gnustmp.dvi $*.dvi
-       rm gnustmp.*
-
-refcard.dvi: refcard.tex gnuslogo.refcard gnusref.tex
-       $(LATEX) refcard.tex
-
-clean:
-       rm -f gnus.*.bak *.ky *.cp *.fn *.cps *.kys *.log *.aux *.dvi *.vr \
-       *.tp *.toc *.pg gnus.latexi *.aux *.[cgk]idx \
-       gnus.ilg gnus.ind gnus.[cgk]ind gnus.idx \
-       gnus.tmptexi *.tmplatexi gnus.tmplatexi1 texput.log *.orig *.rej \
-       gnus.latexi*~* tmp/*.ps xface.tex picons.tex smiley.tex *.latexi
-
-makeinfo: 
-       makeinfo -o gnus gnus.texi      
-       makeinfo -o message message.texi        
-
-texi2latex.elc: texi2latex.el
-       $(EMACS) -batch -l bytecomp --eval '(byte-compile-file "texi2latex.el")'
-
-latex: gnus.texi texi2latex.elc
-       $(EMACS) -batch -q -no-site-file gnus.texi -l ./texi2latex.elc -f latexi-translate
-
-latexps: 
-       make texi2latex.elc
-       rm -f gnus.aux
-       egrep -v "label.*Index|chapter.*Index" gnus.latexi > gnus.tmplatexi1
-       $(LATEX) gnus.tmplatexi1
-       ./splitindex
-       makeindex -o gnus.kind gnus.kidx
-       makeindex -o gnus.cind gnus.cidx
-       makeindex -o gnus.gind gnus.gidx
-       sed 's/\\char 5E\\relax {}/\\symbol{"5E}/' < gnus.kind > gnus.tmpkind
-       mv gnus.tmpkind gnus.kind
-       egrep -v "end{document}" gnus.tmplatexi1 > gnus.tmplatexi
-       cat postamble.tex >> gnus.tmplatexi
-       $(LATEX) gnus.tmplatexi 
-       $(LATEX) gnus.tmplatexi 
-       $(DVIPS) -f gnus.dvi > gnus.ps
-
-pss:   
-       make latex
-       make latexps
-
-psout:
-       make latex
-       make latexboth
-       make out
-
-latexboth: 
-       rm -f gnus-manual-a4.ps.gz gnus-manual-standard.ps.gz 
-       make latexps
-       mv /local/tmp/larsi/gnus.ps /local/tmp/larsi/gnus-manual-a4.ps
-       gzip /local/tmp/larsi/gnus-manual-a4.ps 
-       sed 's/,a4paper//' gnus.latexi > gnus-standard.latexi 
-       mv gnus-standard.latexi gnus.latexi
-       make latexps
-       mv /local/tmp/larsi/gnus.ps /local/tmp/larsi/gnus-manual-standard.ps 
-       gzip /local/tmp/larsi/gnus-manual-standard.ps 
-
-out:
-       cp /local/tmp/larsi/gnus-manual-standard.ps.gz \
-       /local/tmp/larsi/gnus-manual-a4.ps.gz \
-       /local/ftp/pub/emacs/gnus/manual
-       mv /local/tmp/larsi/gnus-manual-standard.ps.gz \
-       /local/tmp/larsi/gnus-manual-a4.ps.gz \
-       /hom/larsi/www_docs/www.gnus.org/documents
-
-veryclean:
-       make clean
-       rm -f gnus.dvi gnus.ps
-
-distclean:
-       make clean
-       rm -f *.orig *.rej *.elc *~ gnus gnus-[0-9] gnus-[0-9][0-9]
-       rm -f message message-[0-9]
-
-install:
-       cp gnus gnus-[0-9] gnus-[0-9][0-9] $(INFODIR)
-       cp message $(INFODIR)
-
-
-tmps:
-       if [ ! -e tmp ]; then mkdir tmp; fi
-       make screens
-       make herdss
-       make etcs
-       make piconss
-       make xfaces
-       make smiley
-       make miscs
-
-herdss:
-       cd herds ; for i in new-herd-[0-9]*.gif; do echo $$i; giftopnm $$i | pnmcrop -white | pnmmargin -white 9 | pnmscale 2 | pnmconvol convol5.pnm  | ppmtopgm | pnmdepth 255 | pnmtops -width 100 -height 100 -noturn > ../tmp/`basename $$i .gif`.ps; done
-       cd herds ; giftopnm new-herd-section.gif | pnmscale 4 | pnmconvol convol11.pnm | ppmtopgm | pnmdepth 255 | pnmtops -noturn -width 100 -height 100 > ../tmp/new-herd-section.ps
-
-
-screens:
-       cd screen ; for i in *.gif; do echo $$i; giftopnm $$i | pnmmargin -black 1 | ppmtopgm | pnmtops -width 100 -height 100 -noturn > ../tmp/`basename $$i .gif`.ps; done    
-
-miscs:
-       giftopnm misc/larsi.gif | ppmtopgm | pnmtops -noturn > tmp/larsi.ps
-       tifftopnm misc/eseptember.tif | pnmscale 4 | ppmtopgm | pnmtops -noturn  -width 100 -height 100 > tmp/september.ps
-       tifftopnm misc/fseptember.tif | pnmscale 2 | ppmtopgm | pnmtops -noturn  -width 100 -height 100 > tmp/fseptember.ps
-       tifftopnm misc/fred.tif | pnmscale 2 | ppmtopgm | pnmtops -noturn  -width 100 -height 100 > tmp/fred.ps
-       tifftopnm misc/ered.tif | pnmscale 2 | ppmtopgm | pnmtops -noturn  -width 100 -height 100 > tmp/red.ps
-
-etcs:
-       cd etc; for i in gnus-*.xpm; do echo $$i; xpmtoppm $$i | ppmtopgm | pnmdepth 255 | pnmtops -noturn > ../tmp/`basename $$i .xpm`.ps; done
-
-piconss:
-       cd picons; for i in *.xbm; do echo $$i; xbmtopbm $$i | pnmtops -noturn > ../tmp/picons-`basename $$i .xbm`.ps; done
-       cd picons; for i in *.gif; do echo $$i; giftopnm $$i | ppmtopgm | pnmtops -noturn > ../tmp/picons-`basename $$i .gif`.ps; done
-       for i in tmp/picons-*.ps; do echo "\\gnuspicon{$$i}"; done > picons.tex
-
-xfaces:
-       cd xface; for i in *.gif; do echo $$i; giftopnm $$i | ppmtopgm | pnmtops -noturn > ../tmp/xface-`basename $$i .gif`.ps; done
-       for i in tmp/xface-*.ps; do \
-               if [ -n "$$a" ]; then a=""; echo "{$$i}"; else \
-               a="h"; echo -n "\\gnusxface{$$i}"; fi done > xface.tex; \
-               if [ -n "$$a" ]; then echo "{$$i}" >> xface.tex; fi
-
-smiley:
-       cd smilies; tifftopnm BigFace.tif | ppmtopgm | pnmtops > ../tmp/BigFace.ps
-       cd smilies; for i in *.xpm; do echo $$i; sed "s/none/#FFFFFF/" $$i | xpmtoppm | ppmtopgm | pnmdepth 255 | pnmtops > ../tmp/smiley-`basename $$i .xpm`.ps; done
-       for i in tmp/smiley-*.ps; do \
-               if [ -n "$$a" ]; then a=""; echo "{$$i}"; else \
-               a="h"; echo -n "\\gnussmiley{$$i}"; fi done > smiley.tex; \
-               if [ -n "$$a" ]; then echo "{$$i}" >> smiley.tex; fi
-
-pspackage:
-       tar czvf pspackage.tar.gz gnus-faq.texi gnus.texi herds misc pagestyle.sty picons pixidx.sty postamble.tex ps screen smilies splitindex texi2latex.el xface Makefile README etc
-
-complete:
-       make texi2latex.elc
-       make tmps
-       make pss
diff --git a/texi/custom.texi b/texi/custom.texi
deleted file mode 100644 (file)
index 5b6fe4a..0000000
+++ /dev/null
@@ -1,695 +0,0 @@
-\input texinfo.tex
-
-@c %**start of header
-@setfilename custom
-@settitle The Customization Library
-@iftex
-@afourpaper
-@headings double
-@end iftex
-@c %**end of header
-
-@node Top, Introduction, (dir), (dir)
-@comment  node-name,  next,  previous,  up
-@top The Customization Library
-
-Version: 1.82
-
-@menu
-* Introduction::                
-* User Commands::               
-* The Customization Buffer::    
-* Declarations::                
-* Utilities::                   
-* The Init File::               
-* Wishlist::                    
-@end menu
-
-@node   Introduction, User Commands, Top, Top
-@comment  node-name,  next,  previous,  up
-@section Introduction
-
-This library allows customization of @dfn{user options}.  Currently two
-types of user options are supported, namely @dfn{variables} and
-@dfn{faces}.  Each user option can have four different values
-simultaneously:
-@table @dfn
-@item factory setting
-The value specified by the programmer.
-@item saved value
-The value saved by the user as the default for this variable.  This
-overwrites the factory setting when starting a new emacs.
-@item current value
-The value used by Emacs.  This will not be remembered next time you
-run Emacs.
-@item widget value
-The value entered by the user in a customization buffer, but not yet
-applied.
-@end table
-
-Variables also have a @dfn{type}, which specifies what kind of values
-the variable can hold, and how the value is presented in a customization
-buffer.  By default a variable can hold any valid expression, but the
-programmer can specify a more limited type when declaring the variable.
-
-The user options are organized in a number of @dfn{groups}.  Each group
-can contain a number user options, as well as other groups.  The groups
-allows the user to concentrate on a specific part of emacs.
-
-@node  User Commands, The Customization Buffer, Introduction, Top
-@comment  node-name,  next,  previous,  up
-@section User Commands
-
-The following commands will create a customization buffer:
-
-@table @code
-@item customize
-Create a customization buffer containing a specific group, by default
-the @code{emacs} group.
-
-@item customize-variable
-Create a customization buffer containing a single variable.  
-
-@item customize-face
-Create a customization buffer containing a single face.
-
-@item customize-apropos
-Create a customization buffer containing all variables, faces, and
-groups that match a user specified regular expression.
-@end table
-
-@node The Customization Buffer, Declarations, User Commands, Top
-@comment  node-name,  next,  previous,  up
-@section The Customization Buffer.
-
-The customization buffer allows the user to make temporary or permanent
-changes to how specific aspects of emacs works, by setting and editing
-user options.  
-
-The customization buffer contains three types of text:
-
-@table @dfn
-@item informative text
-where the normal editing commands are disabled.
-
-@item editable fields
-where you can edit with the usual emacs commands.  Editable fields are
-usually displayed with a grey background if your terminal supports
-colors, or an italic font otherwise.
-
-@item buttons
-which can be activated by either pressing the @kbd{@key{ret}} while
-point is located on the text, or pushing @kbd{mouse-2} while the mouse
-pointer is above the tex.  Buttons are usually displayed in a bold
-font. 
-@end table
-
-You can move to the next the next editable field or button by pressing
-@kbd{@key{tab}} or the previous with @kbd{M-@key{tab}}.  Some buttons
-have a small helpful message about their purpose, which will be
-displayed when you move to it with the @key{tab} key.  
-
-The buffer is divided into three part, an introductory text, a list of
-customization options, and a line of customization buttons.  Each part
-will be described in the following. 
-
-@menu
-* The Introductory Text::       
-* The Customization Options::   
-* The Variable Options::        
-* The Face Options::            
-* The Group Options::           
-* The State Button::            
-* The Customization Buttons::   
-@end menu
-
-@node  The Introductory Text, The Customization Options, The Customization Buffer, The Customization Buffer
-@comment  node-name,  next,  previous,  up
-@subsection  The Introductory Text
-
-The start of the buffer contains a short explanation of what it is, and
-how to get help.  It will typically look like this:
-
-@example
-This is a customization buffer.
-Push RET or click mouse-2 on the word _help_ for more information.
-@end example
-
-Rather boring.  It is mostly just informative text, but the word
-@samp{help} is a button that will bring up this document when
-activated.  
-
-@node  The Customization Options, The Variable Options, The Introductory Text, The Customization Buffer
-@comment  node-name,  next,  previous,  up
-@subsection The Customization Options
-
-Each customization option looks similar to the following text:
-
-@example
- *** custom-background-mode: default 
- State: this item is unchanged from its factory setting.
- [ ] [?] The brightness of the background.
-@end example
-
-The option contains the parts described below.
-
-@table @samp
-@item ***
-The Level Button.  The customization options in the buffer are organized
-in a hierarchy, which is indicated by the number of stars in the level
-button.  The top level options will be shown as @samp{*}.  When they are
-expanded, the suboptions will be shown as @samp{**}.  The example option
-is thus a subsuboption.
-
-Activating the level buttons will toggle between hiding and exposing the
-content of that option.  The content can either be the value of the
-option, as in this example, or a list of suboptions.
-
-@item custom-background-mode
-This is the tag of the the option.  The tag is a name of a variable, a
-face, or customization group.  Activating the tag has an effect that
-depends on the exact type of the option.  In this particular case,
-activating the tag will bring up a menu that will allow you to choose
-from the three possible values of the `custom-background-mode'
-variable. 
-
-@item default
-After the tag, the options value is shown.  Depending on its type, you
-may be able to edit the value directly.  If an option should contain a
-file name, it is displayed in an editable field, i.e. you can edit it
-using the standard emacs editing commands.
-
-@item State: this item is unchanged from its factory setting.
-The state line.  This line will explain the state of the option,
-e.g. whether it is currently hidden, or whether it has been modified or
-not.  Activating the button will allow you to change the state, e.g. set
-or reset the changes you have made.  This is explained in detail in the
-following sections.
-
-@item [ ]
-The magic button.  This is an abbreviated version of the state line. 
-
-@item [?] 
-The documentation button.  If the documentation is more than one line,
-this button will be present.  Activating the button will toggle whether
-the complete documentation is shown, or only the first line.
-
-@item The brightness of the background.
-This is a documentation string explaining the purpose of this particular
-customization option.
-
-@end table
-
-@node  The Variable Options, The Face Options, The Customization Options, The Customization Buffer
-@comment  node-name,  next,  previous,  up
-@subsection The Variable Options
-
-The most common customization options are emacs lisp variables.  The
-actual editing of these variables depend on what type values the
-variable is expected to contain.  For example, a lisp variable whose
-value should be a string will typically be represented with an editable
-text field in the buffer, where you can change the string directly.  If
-the value is a list, each item in the list will be presented in the
-buffer buffer on a separate line, with buttons to insert new items in
-the list, or delete existing items from the list.  You may want to see 
-@ref{User Interface,,, widget, The Widget Library}, where some examples
-of editing are discussed.  
-
-You can either choose to edit the value directly, or edit the lisp
-value for that variable.  The lisp value is a lisp expression that
-will be evaluated when you start emacs.  The result of the evaluation
-will be used as the initial value for that variable.  Editing the
-lisp value is for experts only, but if the current value of the
-variable is of a wrong type (i.e. a symbol where a string is expected),
-the `edit lisp' mode will always be selected.
-
-You can see what mode is currently selected by looking at the state
-button.  If it uses parenthesises (like @samp{( )}) it is in edit lisp
-mode, with square brackets (like @samp{[ ]}) it is normal edit mode.
-You can switch mode by activating the state button, and select either
-@samp{Edit} or @samp{Edit lisp} from the menu.
-
-You can change the state of the variable with the other menu items:
-
-@table @samp
-@item Set
-When you have made your modifications in the buffer, you need to
-activate this item to make the modifications take effect.  The
-modifications will be forgotten next time you run emacs.
-
-@item Save
-Unless you activate this item instead!  This will mark the modification
-as permanent, i.e. the changes will be remembered in the next emacs
-session.
-
-@item Reset
-If you have made some modifications and not yet applied them, you can
-undo the modification by activating this item.
-
-@item Reset to Saved
-Activating this item will reset the value of the variable to the last
-value you marked as permanent with `Save'.
-
-@item Reset to Factory Settings
-Activating this item will undo all modifications you have made, and
-reset the value to the initial value specified by the program itself. 
-@end table
-
-By default, the value of large or complicated variables are hidden.   You
-can show the value by clicking on the level button.
-
-@node  The Face Options, The Group Options, The Variable Options, The Customization Buffer
-@comment  node-name,  next,  previous,  up
-@subsection The Face Options
-
-A face is an object that controls the appearance of some buffer text.
-The face has a number of possible attributes, such as boldness,
-foreground color, and more.  For each attribute you can specify whether
-this attribute is controlled by the face, and if so, what the value is.
-For example, if the attribute bold is not controlled by a face, using
-that face on some buffer text will not affect its boldness.  If the bold
-attribute is controlled by the face, it can be turned either on or of.
-
-It is possible to specify that a face should have different attributes
-on different device types.  For example, a face may make text red on a
-color device, and bold on a monochrome device.  You do this by
-activating `Edit All' in the state menu.
-
-The way this is presented in the customization buffer is to have a list
-of display specifications, and for each display specification a list of
-face attributes.  For each face attribute, there is a checkbox
-specifying whether this attribute has effect and what the value is.
-Here is an example:
-
-@example
- *** custom-invalid-face: (sample)
- State: this item is unchanged from its factory setting.
- [ ] Face used when the customize item is invalid.
- [INS] [DEL] Display: [ ] Type: [ ] X [ ] PM [ ] Win32 [ ] DOS [ ] TTY
-                      [X] Class: [X] Color [ ] Grayscale [ ] Monochrome
-                      [ ] Background: [ ] Light [ ] Dark
-             Attributes: [ ] Bold: off 
-                         [ ] Italic: off 
-                         [ ] Underline: off 
-                         [X] Foreground: yellow (sample)
-                         [X] Background: red (sample)
-                         [ ] Stipple:  
- [INS] [DEL] Display: all
-             Attributes: [X] Bold: on 
-                         [X] Italic: on 
-                         [X] Underline: on 
-                         [ ] Foreground: default (sample)
-                         [ ] Background: default (sample)
-                         [ ] Stipple:  
- [INS]
-@end example
-
-This has two display specifications.  The first will match all color
-displays, independently on what window system the device belongs to, and
-whether background color is dark or light.  For devices matching this
-specification, @samp{custom-invalid-face} will force text to be
-displayed in yellow on red, but leave all other attributes alone.
-
-The second display will simply match everything.  Since the list is
-prioritised, this means that it will match all non-color displays.  For
-these, the face will not affect the foreground or background color, but
-force the font to be both bold, italic, and underline.
-
-You can add or delete display specifications by activating the
-@samp{[INS]} and @samp{[DEL]} buttons, and modify them by clicking on
-the check boxes.  The first checkbox in each line in the display
-specification is special.  It specify whether this particular property
-will even be relevant.  By not checking the box in the first display, we
-match all device types, also device types other than those listed.
-
-After modifying the face, you can activate the state button to make the
-changes take effect.  The menu items in the state button menu is similar
-to the state menu items for variables described in the previous section.
-
-@node  The Group Options, The State Button, The Face Options, The Customization Buffer
-@comment  node-name,  next,  previous,  up
-@subsection The Group Options
-
-Since Emacs has approximately a zillion configuration options, they have
-been organized in groups.  Each group can contain other groups, thus
-creating a customization hierarchy.  The nesting of the customization
-within the visible part of this hierarchy is indicated by the number of
-stars in the level button.
-
-Since there is really no customization needed for the group itself, the
-menu items in the groups state button will affect all modified group
-members recursively.  Thus, if you activate the @samp{Set} menu item,
-all variables and faces that have been modified and belong to that group
-will be applied.  For those members that themselves are groups, it will
-work as if you had activated the @samp{Set} menu item on them as well.
-
-@node  The State Button, The Customization Buttons, The Group Options, The Customization Buffer
-@comment  node-name,  next,  previous,  up
-@subsection The State Line and The Magic Button
-
-The state line has two purposes.  The first is to hold the state menu,
-as described in the previous sections.  The second is to indicate the
-state of each customization item.  
-
-For the magic button, this is done by the character inside the brackets.
-The following states have been defined, the first that applies to the
-current item will be used:
-
-@table @samp
-@item -
-The option is currently hidden.  For group options that means the
-members are not shown, for variables and faces that the value is not
-shown.  You cannot perform any of the state change operations on a
-hidden customization option.
-
-@item *
-The value if this option has been modified in the buffer, but not yet
-applied.  
-
-@item +
-The item has has been set by the user.
-
-@item :
-The current value of this option is different from the saved value.   
-
-@item !
-The saved value of this option is different from the factory setting.
-
-@item @@
-The factory setting of this option is not known.  This occurs when you
-try to customize variables or faces that have not been explicitly
-declared as customizable.
-
-@item SPC
-The factory setting is still in effect.
-
-@end table
-
-For non-hidden group options, the state shown is the most severe state
-of its members, where more severe means that it appears earlier in the
-list above (except hidden members, which are ignored).
-
-@node  The Customization Buttons,  , The State Button, The Customization Buffer
-@comment  node-name,  next,  previous,  up
-@subsection The Customization Buttons
-
-The last part of the customization buffer looks like this:
-
-@example
-[Set] [Save] [Reset] [Done]
-@end example
-
-Activating the @samp{[Set]}, @samp{[Save]}, or @samp{[Reset]}
-button will affect all modified customization items that are visible in
-the buffer.  @samp{[Done]} will bury the buffer.
-
-@node   Declarations, Utilities, The Customization Buffer, Top
-@comment  node-name,  next,  previous,  up
-@section Declarations
-
-This section describes how to declare customization groups, variables,
-and faces.  It doesn't contain any examples, but please look at the file
-@file{cus-edit.el} which contains many declarations you can learn from.
-
-@menu
-* Declaring Groups::            
-* Declaring Variables::         
-* Declaring Faces::             
-* Usage for Package Authors::   
-@end menu
-
-All the customization declarations can be changes by keyword arguments.
-Groups, variables, and faces all share these common keywords:
-
-@table @code
-@item :group
-@var{value} should be a customization group. 
-Add @var{symbol} to that group. 
-@item :link
-@var{value} should be a widget type. 
-Add @var{value} to the extrenal links for this customization option.
-Useful widget types include @code{custom-manual}, @code{info-link}, and
-@code{url-link}. 
-@item :load
-Add @var{value} to the files that should be loaded nefore displaying
-this customization option.  The value should be iether a string, which
-should be a string which will be loaded with @code{load-library} unless
-present in @code{load-history}, or a symbol which will be loaded with
-@code{require}. 
-@item :tag
-@var{Value} should be a short string used for identifying the option in
-customization menus and buffers.  By default the tag will be
-automatically created from the options name.
-@end table
-
-@node  Declaring Groups, Declaring Variables, Declarations, Declarations
-@comment  node-name,  next,  previous,  up
-@subsection Declaring Groups
-
-Use @code{defgroup} to declare new customization groups. 
-
-@defun defgroup symbol members doc [keyword value]...
-Declare @var{symbol} as a customization group containing @var{members}. 
-@var{symbol} does not need to be quoted.
-
-@var{doc} is the group documentation.
-
-@var{members} should be an alist of the form ((@var{name}
-@var{widget})...) where @var{name} is a symbol and @var{widget} is a
-widget for editing that symbol.  Useful widgets are
-@code{custom-variable} for editing variables, @code{custom-face} for
-editing faces, and @code{custom-group} for editing groups.@refill
-
-Internally, custom uses the symbol property @code{custom-group} to keep
-track of the group members, and @code{group-documentation} for the
-documentation string. 
-
-The following additional @var{keyword}'s are defined:
-
-@table @code
-@item :prefix
-@var{value} should be a string.  If the string is a prefix for the name
-of a member of the group, that prefix will be ignored when creating a
-tag for that member.
-@end table
-@end defun
-
-@node  Declaring Variables, Declaring Faces, Declaring Groups, Declarations
-@comment  node-name,  next,  previous,  up
-@subsection Declaring Variables
-
-Use @code{defcustom} to declare user editable variables.
-
-@defun defcustom symbol value doc [keyword value]...
-Declare @var{symbol} as a customizable variable that defaults to @var{value}.
-Neither @var{symbol} nor @var{value} needs to be quoted.
-If @var{symbol} is not already bound, initialize it to @var{value}.
-
-@var{doc} is the variable documentation.
-
-The following additional @var{keyword}'s are defined:
-
-@table @code
-@item :type    
-@var{value} should be a widget type.
-@item :options
-@var{value} should be a list of possible members of the specified type.
-For hooks, this is a list of function names.
-@end table
-
-@xref{Sexp Types,,,widget,The Widget Library}, for information about
-widgets to use together with the @code{:type} keyword.
-@end defun
-
-Internally, custom uses the symbol property @code{custom-type} to keep
-track of the variables type, @code{factory-value} for the program
-specified default value, @code{saved-value} for a value saved by the
-user, and @code{variable-documentation} for the documentation string.
-
-Use @code{custom-add-option} to specify that a specific function is
-useful as an meber of a hook.
-
-@defun custom-add-option symbol option
-To the variable @var{symbol} add @var{option}.
-
-If @var{symbol} is a hook variable, @var{option} should be a hook
-member.  For other types variables, the effect is undefined."
-@end defun
-
-@node  Declaring Faces, Usage for Package Authors, Declaring Variables, Declarations
-@comment  node-name,  next,  previous,  up
-@subsection Declaring Faces
-
-Faces are declared with @code{defface}.
-
-@defun defface face spec doc [keyword value]... 
-
-Declare @var{face} as a customizable face that defaults to @var{spec}.
-@var{face} does not need to be quoted.
-
-If @var{face} has been set with `custom-set-face', set the face attributes
-as specified by that function, otherwise set the face attributes
-according to @var{spec}.
-
-@var{doc} is the face documentation.
-
-@var{spec} should be an alist of the form @samp{((@var{display} @var{atts})...)}.
-
-@var{atts} is a list of face attributes and their values.  The possible
-attributes are defined in the variable `custom-face-attributes'.
-Alternatively, @var{atts} can be a face in which case the attributes of
-that face is used.
-
-The @var{atts} of the first entry in @var{spec} where the @var{display}
-matches the frame should take effect in that frame.  @var{display} can
-either be the symbol `t', which will match all frames, or an alist of
-the form @samp{((@var{req} @var{item}...)...)}@refill
-
-For the @var{display} to match a FRAME, the @var{req} property of the
-frame must match one of the @var{item}.  The following @var{req} are
-defined:@refill
-
-@table @code
-@item type
-(the value of (window-system))@*
-Should be one of @code{x} or @code{tty}.
-
-@item class
-(the frame's color support)@*
-Should be one of @code{color}, @code{grayscale}, or @code{mono}.
-
-@item background
-(what color is used for the background text)@*
-Should be one of @code{light} or @code{dark}.
-@end table
-  
-Internally, custom uses the symbol property @code{factory-face} for the
-program specified default face properties, @code{saved-face} for
-properties saved by the user, and @code{face-doc-string} for the
-documentation string.@refill
-
-@end defun
-
-@node Usage for Package Authors,  , Declaring Faces, Declarations
-@comment  node-name,  next,  previous,  up
-@subsection Usage for Package Authors
-
-The recommended usage for the author of a typical emacs lisp package is
-to create one group identifying the package, and make all user options
-and faces members of that group.  If the package has more than around 20
-such options, they should be divided into a number of subgroups, with
-each subgroup being member of the top level group.
-
-The top level group for the package should itself be member of one or
-more of the standard customization groups.  There exists a group for
-each @emph{finder} keyword.  Press @kbd{C-c p} to see a list of finder
-keywords, and add you group to each of them, using the @code{:group}
-keyword. 
-
-@node  Utilities, The Init File, Declarations, Top
-@comment  node-name,  next,  previous,  up
-@section Utilities
-
-These utilities can come in handy when adding customization support. 
-
-@deffn Widget custom-manual
-Widget type for specifying the info manual entry for a customization
-option.  It takes one argument, an info address.
-@end deffn
-
-@defun custom-add-to-group group member widget
-To existing @var{group} add a new @var{member} of type @var{widget},
-If there already is an entry for that member, overwrite it.
-@end defun
-
-@defun custom-add-link symbol widget
-To the custom option @var{symbol} add the link @var{widget}.
-@end defun
-
-@defun custom-add-load symbol load
-To the custom option @var{symbol} add the dependency @var{load}.
-@var{load} should be either a library file name, or a feature name.
-@end defun
-
-@defun custom-menu-create symbol &optional name
-Create menu for customization group @var{symbol}.
-If optional @var{name} is given, use that as the name of the menu. 
-Otherwise make up a name from @var{symbol}.
-The menu is in a format applicable to @code{easy-menu-define}.
-@end defun
-
-@node  The Init File, Wishlist, Utilities, Top
-@comment  node-name,  next,  previous,  up
-@section The Init File
-
-When you save the customizations, call to @code{custom-set-variables},
-@code{custom-set-faces} are inserted into the file specified by
-@code{custom-file}.  By default @code{custom-file} is your @file{.emacs}
-file.  If you use another file, you must explicitly load it yourself.
-The two functions will initialize variables and faces as you have
-specified.
-
-@node  Wishlist,  , The Init File, Top
-@comment  node-name,  next,  previous,  up
-@section Wishlist
-
-@itemize @bullet
-@item
-The menu items should be grayed out when the information is
-missing.  I.e. if a variable doesn't have a factory setting, the user
-should not be allowed to select the @samp{Factory} menu item.
-
-@item 
-Better support for keyboard operations in the customize buffer.
-
-@item
-Integrate with @file{w3} so you can customization buffers with much
-better formatting.  I'm thinking about adding a <custom>name</custom>
-tag.  The latest w3 have some support for this, so come up with a
-convincing example.
-
-@item
-Add an `examples' section, with explained examples of custom type
-definitions. 
-
-@item
-Support selectable color themes.  I.e., change many faces by setting one
-variable.
-
-@item
-Support undo using lmi's @file{gnus-undo.el}.
-
-@item
-Make it possible to append to `choice', `radio', and `set' options.
-
-@item
-Make it possible to customize code, for example to enable or disable a
-global minor mode.
-
-@item
-Ask whether set or modified variables should be saved in
-@code{kill-buffer-hook}. 
-
-Ditto for @code{kill-emacs-query-functions}.
-
-@item
-Command to check if there are any customization options that
-does not belong to an existing group. 
-
-@item
-Optionally disable the point-cursor and instead highlight the selected
-item in XEmacs.  This is like the *Completions* buffer in XEmacs.
-Suggested by Jens Lautenbacher
-@samp{<jens@@lemming0.lem.uni-karlsruhe.de>}.@refill
-
-@item
-Empty customization groups should start open (harder than it looks).
-
-@item
-Make it possible to include a comment/remark/annotation when saving an
-option.
-
-@end itemize
-
-@contents
-@bye
diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi
new file mode 100644 (file)
index 0000000..d9a9cda
--- /dev/null
@@ -0,0 +1,7951 @@
+\input texinfo                  @c -*-texinfo-*-
+
+@setfilename gnus-ja
+@settitle Semi-gnus 6.3.2 Manual
+@synindex fn cp
+@synindex vr cp
+@synindex pg cp
+@c @direntry
+@c * Gnus-ja: (gnus-ja).   The news reader gnus (\e$BF|K\8lHG\e(B).
+@c @end direntry
+@iftex
+@finalout
+@end iftex
+@setchapternewpage odd
+
+@iftex
+@iflatex
+\documentclass[twoside,a4paper,openright,11pt]{book}
+\usepackage[latin1]{inputenc}
+\usepackage{pagestyle}
+\usepackage{epsfig}
+\usepackage{bembo}
+\usepackage{pixidx}
+
+\makeindex
+\begin{document}
+
+\newcommand{\gnuschaptername}{}
+\newcommand{\gnussectionname}{}
+
+\newcommand{\gnusbackslash}{/}
+
+\newcommand{\gnusxref}[1]{See ``#1'' on page \pageref{#1}}
+\newcommand{\gnuspxref}[1]{see ``#1'' on page \pageref{#1}}
+
+\newcommand{\gnuskindex}[1]{\index{#1}}
+\newcommand{\gnusindex}[1]{\index{#1}}
+
+\newcommand{\gnustt}[1]{{\fontfamily{pfu}\fontsize{10pt}{10}\selectfont #1}}
+\newcommand{\gnuscode}[1]{\gnustt{#1}}
+\newcommand{\gnussamp}[1]{``{\fontencoding{OT1}\fontfamily{pfu}\fontsize{10pt}{10}\selectfont #1}''}
+\newcommand{\gnuslisp}[1]{\gnustt{#1}}
+\newcommand{\gnuskbd}[1]{`\gnustt{#1}'}
+\newcommand{\gnusfile}[1]{`\gnustt{#1}'}
+\newcommand{\gnusdfn}[1]{\textit{#1}}
+\newcommand{\gnusi}[1]{\textit{#1}}
+\newcommand{\gnusstrong}[1]{\textbf{#1}}
+\newcommand{\gnusemph}[1]{\textit{#1}}
+\newcommand{\gnusvar}[1]{{\fontsize{10pt}{10}\selectfont\textsl{\textsf{#1}}}}
+\newcommand{\gnussc}[1]{\textsc{#1}}
+\newcommand{\gnustitle}[1]{{\huge\textbf{#1}}}
+\newcommand{\gnusauthor}[1]{{\large\textbf{#1}}}
+
+\newcommand{\gnusbullet}{{${\bullet}$}}
+\newcommand{\gnusdollar}{\$}
+\newcommand{\gnusampersand}{\&}
+\newcommand{\gnuspercent}{\%}
+\newcommand{\gnushash}{\#}
+\newcommand{\gnushat}{\symbol{"5E}}
+\newcommand{\gnusunderline}{\symbol{"5F}}
+\newcommand{\gnusnot}{$\neg$}
+\newcommand{\gnustilde}{\symbol{"7E}}
+\newcommand{\gnusless}{{$<$}}
+\newcommand{\gnusgreater}{{$>$}}
+
+\newcommand{\gnushead}{\raisebox{-1cm}{\epsfig{figure=ps/gnus-head.eps,height=1cm}}}
+\newcommand{\gnusinteresting}{
+\marginpar[\mbox{}\hfill\gnushead]{\gnushead}
+}
+
+\newcommand{\gnuscleardoublepage}{\ifodd\count0\mbox{}\clearpage\thispagestyle{empty}\mbox{}\clearpage\else\clearpage\fi}
+
+\newcommand{\gnuspagechapter}[1]{
+{\mbox{}}
+}
+
+\newdimen{\gnusdimen}
+\gnusdimen 0pt
+
+\newcommand{\gnuschapter}[2]{
+\gnuscleardoublepage
+\ifdim \gnusdimen = 0pt\setcounter{page}{1}\pagestyle{gnus}\pagenumbering{arabic} \gnusdimen 1pt\fi
+\chapter{#2}
+\renewcommand{\gnussectionname}{}
+\renewcommand{\gnuschaptername}{#2}
+\thispagestyle{empty}
+\hspace*{-2cm}
+\begin{picture}(500,500)(0,0)
+\put(480,350){\makebox(0,0)[tr]{#1}}
+\put(40,300){\makebox(500,50)[bl]{{\Huge\bf{#2}}}}
+\end{picture}
+\clearpage
+}
+
+\newcommand{\gnusfigure}[3]{
+\begin{figure}
+\mbox{}\ifodd\count0\hspace*{-0.8cm}\else\hspace*{-3cm}\fi\begin{picture}(440,#2)
+#3
+\end{picture}
+\caption{#1}
+\end{figure}
+}
+
+\newcommand{\gnusicon}[1]{
+\marginpar[\mbox{}\hfill\raisebox{-1.5cm}{\epsfig{figure=tmp/#1-up.ps,height=1.5cm}}]{\raisebox{-1cm}{\epsfig{figure=tmp/#1-up.ps,height=1cm}}}
+}
+
+\newcommand{\gnuspicon}[1]{
+\margindex{\epsfig{figure=#1,width=2cm}}
+}
+
+\newcommand{\gnusxface}[2]{
+\margindex{\epsfig{figure=#1,width=1cm}\epsfig{figure=#2,width=1cm}}
+}
+
+\newcommand{\gnussmiley}[2]{
+\margindex{\makebox[2cm]{\hfill\epsfig{figure=#1,width=0.5cm}\hfill\epsfig{figure=#2,width=0.5cm}\hfill}}
+}
+
+\newcommand{\gnusitemx}[1]{\mbox{}\vspace*{-\itemsep}\vspace*{-\parsep}\item#1}
+
+\newcommand{\gnussection}[1]{
+\renewcommand{\gnussectionname}{#1}
+\section{#1}
+}
+
+\newenvironment{codelist}%
+{\begin{list}{}{
+}
+}{\end{list}}
+
+\newenvironment{kbdlist}%
+{\begin{list}{}{
+\labelwidth=0cm
+}
+}{\end{list}}
+
+\newenvironment{dfnlist}%
+{\begin{list}{}{
+}
+}{\end{list}}
+
+\newenvironment{stronglist}%
+{\begin{list}{}{
+}
+}{\end{list}}
+
+\newenvironment{samplist}%
+{\begin{list}{}{
+}
+}{\end{list}}
+
+\newenvironment{varlist}%
+{\begin{list}{}{
+}
+}{\end{list}}
+
+\newenvironment{emphlist}%
+{\begin{list}{}{
+}
+}{\end{list}}
+
+\newlength\gnusheadtextwidth
+\setlength{\gnusheadtextwidth}{\headtextwidth}
+\addtolength{\gnusheadtextwidth}{1cm}
+
+\newpagestyle{gnuspreamble}%
+{
+{
+\ifodd\count0
+{
+\hspace*{-0.23cm}\underline{\makebox[\gnusheadtextwidth]{\mbox{}}\textbf{\hfill\roman{page}}}
+}
+\else
+{
+\hspace*{-3.25cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\roman{page}\hfill\mbox{}}}
+}
+}
+\fi
+}
+}
+{
+\ifodd\count0
+\mbox{} \hfill
+\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
+\else
+\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
+\hfill \mbox{}
+\fi
+}
+
+\newpagestyle{gnusindex}%
+{
+{
+\ifodd\count0
+{
+\hspace*{-0.23cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\gnuschaptername\hfill\arabic{page}}}}
+}
+\else
+{
+\hspace*{-3.25cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\arabic{page}\hfill\gnuschaptername}}}
+}
+\fi
+}
+}
+{
+\ifodd\count0
+\mbox{} \hfill
+\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
+\else
+\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
+\hfill \mbox{}
+\fi
+}
+
+\newpagestyle{gnus}%
+{
+{
+\ifodd\count0
+{
+\makebox[12cm]{\hspace*{3.1cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\arabic{chapter}.\arabic{section}} \textbf{\gnussectionname\hfill\arabic{page}}}}}
+}
+\else
+{
+\makebox[12cm]{\hspace*{-2.95cm}\underline{\makebox[\gnusheadtextwidth]{\textbf{\arabic{page}\hfill\gnuschaptername}}}}
+}
+\fi
+}
+}
+{
+\ifodd\count0
+\mbox{} \hfill
+\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
+\else
+\raisebox{-0.5cm}{\epsfig{figure=ps/gnus-big-logo.eps,height=1cm}}
+\hfill \mbox{}
+\fi
+}
+
+\pagenumbering{roman}
+\pagestyle{gnuspreamble}
+
+@end iflatex
+@end iftex
+
+@iftex
+@iflatex
+\begin{titlepage}
+{
+
+%\addtolength{\oddsidemargin}{-5cm}
+%\addtolength{\evensidemargin}{-5cm}
+\parindent=0cm
+\addtolength{\textheight}{2cm}
+
+\gnustitle{\gnustitlename}\\
+\rule{15cm}{1mm}\\
+\vfill
+\hspace*{0cm}\epsfig{figure=ps/gnus-big-logo.eps,height=15cm}
+\vfill
+\rule{15cm}{1mm}\\
+\gnusauthor{by Lars Magne Ingebrigtsen}
+\newpage
+}
+
+\mbox{}
+\vfill
+
+\thispagestyle{empty}
+
+Copyright \copyright{} 1995,96,97 Free Software Foundation, Inc.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+\e$BCx:n8"I=<($H$3$N5v2DJ8$,$9$Y$F$NJ#@=$KB8:_$9$k8B$j!"$3$N@bL@=q$N$^$C$?$/\e(B
+\e$BF10l$NJ#@=$r:n$j!"G[I[$9$k$3$H$r5v2D$9$k!#\e(B
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+\e$BF10lJ#@=$N>r7o$N2<$G!"$=$l$K$h$C$FF@$i$l$?7k2L$r$3$N5v2DJ8$NI=<($HF10l$N\e(B
+\e$B>r7o$N$b$H$GG[I[$9$k8B$j!"$3$N@bL@=q$N=$@5HG$NJ#@=$r$7!"G[I[$9$k$3$H$r5v\e(B
+\e$B2D$9$k!#\e(B
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+
+\e$B>e5-$N=$@5HG$K4X$9$k>r7o$N2<$G!"$3$N@bL@=q$NK]Lu$NJ#@=$r:n$j!"G[I[$9$k$3\e(B
+\e$B$H$r5v2D$9$k!#\e(B
+
+\newpage
+\end{titlepage}
+@end iflatex
+@end iftex
+
+@ifinfo
+
+This file documents gnus, the GNU Emacs newsreader.
+
+\e$B$3$N%U%!%$%k$O\e(B GNU Emacs \e$B$N%K%e!<%9%j!<%@$G$"$k\e(B gnus \e$B$K4X$9$k@bL@=q$G$9!#\e(B
+
+Copyright (C) 1995,96 Free Software Foundation, Inc.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+\e$BCx:n8"I=<($H$3$N5v2DJ8$,$9$Y$F$NJ#@=$KB8:_$9$k8B$j!"$3$N@bL@=q$N$^$C$?$/\e(B
+\e$BF10l$NJ#@=$r:n$j!"G[I[$9$k$3$H$r5v2D$9$k!#\e(B
+
+@ignore
+Permission is granted to process this file through Tex and print the
+results, provided the printed document carries copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+
+\e$B$3$NCJMn$,<h$j=|$+$l$F$$$k$N$r=|$-!"$3$l$HF1$8J#@=$K4X$9$k5v2DJ8$,I=<($5$l\e(B
+\e$B$F$$$k8B$j!"$3$N%U%!%$%k$r\e(B Tex \e$B$K$+$1$F!"$=$N7k2L$r0u:~$9$k$3$H$r5v2D$9$k!#\e(B
+
+@end ignore
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+\e$BF10lJ#@=$N>r7o$N2<$G!"$=$l$K$h$C$FF@$i$l$?7k2L$b$3$N5v2DJ8$NI=<($HF10l$N\e(B
+\e$B>r7o$N$b$H$GG[I[$9$k8B$j!"$3$N@bL@=q$N=$@5HG$NJ#@=$r$7!"G[I[$9$k$3$H$r5v\e(B
+\e$B2D$9$k!#\e(B
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+
+\e$B>e5-$N=$@5HG$K4X$9$k>r7o$N2<$G!"$3$N@bL@=q$NK]Lu$NJ#@=$r:n$j!"G[I[$9$k$3\e(B
+\e$B$H$r5v2D$9$k!#\e(B
+
+@end ifinfo
+
+@tex
+
+@titlepage
+@title Semi-gnus 6.3.2 Manual
+
+@author by Lars Magne Ingebrigtsen
+@author by members of Semi-gnus mailing-list
+@page
+
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1995,96,97 Free Software Foundation, Inc.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+\e$BCx:n8"I=<($H$3$N5v2DJ8$,$9$Y$F$NJ#@=$KB8:_$9$k8B$j!"$3$N@bL@=q$N$^$C$?$/\e(B
+\e$BF10l$NJ#@=$r:n$j!"G[I[$9$k$3$H$r5v2D$9$k!#\e(B
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+\e$BF10lJ#@=$N>r7o$N2<$G!"$=$l$K$h$C$FF@$i$l$?7k2L$r$3$N5v2DJ8$NI=<($HF10l$N\e(B
+\e$B>r7o$N$b$H$GG[I[$9$k8B$j!"$3$N@bL@=q$N=$@5HG$NJ#@=$r$7!"G[I[$9$k$3$H$r5v\e(B
+\e$B2D$9$k!#\e(B
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+
+\e$B>e5-$N=$@5HG$K4X$9$k>r7o$N2<$G!"$3$N@bL@=q$NK]Lu$NJ#@=$r:n$j!"G[I[$9$k$3\e(B
+\e$B$H$r5v2D$9$k!#\e(B
+
+@end titlepage
+@page
+
+@end tex
+
+
+@node Top
+@top The gnus Newsreader
+
+@ifinfo
+
+Gnus \e$B$r;H$&$3$H$K$h$C$F\e(B Emacs \e$B$G%K%e!<%9\e(B (news) \e$B$r!J$=$l$K%a!<%k\e(B (mail) 
+\e$B$b!KFI$`$3$H$,$G$-$^$9!#%K%e!<%9$O\e(B @sc{nntp}\e$B!"%m!<%+%k%9%W!<%k!"\e(Bmbox \e$B%U%!\e(B
+\e$B%$%k$J$I$N$"$i$f$k6K0-$J<jCJ$r6n;H$7$F<j$KF~$l$k$3$H$,$G$-$^$9!#1?;n$7$r\e(B
+\e$B$7$F$_$h$&$H;W$&$J$i$P!"A4$F$rF1;~$KMQ$$$k$3$H$b$G$-$^$9!#\e(B
+
+Semi-gnus \e$B$O\e(B SEMI API \e$B$K4p$E$/\e(B MIME \e$B5!G=$rDs6!$7$^$9!#$=$&$$$&Lu$G!"\e(B
+Semi-gnus \e$B$O!"Bg$-$J3($,F~$C$F$$$?$j$5$^$6$^$J7A<0$rMQ$$$?$j$7$F$$$k$A$g$C\e(B
+\e$B$HJQ$o$C$?5-;v$rFI$`8"Mx$rMJ8n$7$^$9!#\e(BSemi-gnus \e$B$O\e(B MULE API \e$B$K4p$E$/9q:]\e(B
+\e$B2=!&CO0h2=!"$*$h$S!"B?;z2=5!G=$rDs6!$7$^$9!#$h$C$F!"\e(BSemi-gnus \e$B$O$5$^$6$^\e(B
+\e$B$J8@8l7w$r:9JL$7$^$;$s!#$"$"!"%/%j%s%4%s$NJ}$O\e(B Unicode Next Generation\e$B$r\e(B
+\e$B$*BT$A$/$@$5$$!#\e(B
+
+\e$B$3$N@bL@=q$O\e(B Semi-gnus 6.3.2 \e$B$KBP1~$7$^$9!#\e(B
+
+@end ifinfo
+
+@iftex
+
+@iflatex
+\tableofcontents
+\gnuscleardoublepage
+@end iflatex
+
+Gnus \e$B$O\e(B GNU Emacs \e$B$N@h?JE*$G!"@bL@$N$"$k!"%+%9%?%^%$%:2DG=$G!"3HD%2DG=$J!"\e(B
+\e$B%j%"%k%?%$%`$G$J$$%K%e!<%9%j!<%@$G$9!#\e(B
+
+\e$B$*$*$C$H!#IT;W5D$J$3$H$K0JA0$K$b;w$?$h$&$J$3$H$rJ9$$$?$3$H$,$"$k$h$&$J5$\e(B
+\e$B$,$7$^$9!#??;w$r$7$?$HHsFq$5$l$J$$$&$A$K@bL@$r;O$a$^$7$g$&!'\e(B
+
+Gnus \e$B$O%a%C%;!<%8$rFI$`$3$H$K4X$9$k<B83>l$G$9!#\e(BGnus \e$B$O$9$Y$F$r%K%e!<%9%0\e(B
+\e$B%k!<%W$N$h$&$KI=<($7$^$9!#\e(BGnus \e$B$G%a!<%k$rFI$_!"%G%#%l%/%H%j!<$r%V%i%&%:\e(B
+\e$B$7!"\e(B@code{ftp} \e$B$r$9$k$3$H$,$G$-$^$9!#$"$"!"$=$l$K!"%K%e!<%9$rFI$`$3$H$5\e(B
+\e$B$($G$-$^$9!*\e(B
+
+Emacs \e$B$,J8>O$rJT=8$9$k?M$KNO$rM?$($k$h$&$K!"\e(Bgnus \e$B$O%K%e!<%9$rFI$`?M$KNO\e(B
+\e$B$rM?$($h$&$H$7$F$$$^$9!#\e(BGnus \e$B$OMxMQ<T$,<B9T2DG=$J$3$H$K@)8B$r@_$1$^$;$s!#\e(B
+\e$BMxMQ<T$,<+J,$GK>$`F0:n$r$9$k$h$&$K\e(B gnus \e$B$r3HD%$9$k$3$H$r>)Ne$7$F$$$^$9!#\e(B
+\e$B%W%m%0%i%`$,?M$rA`:n$9$k$Y$-$G$O$"$j$^$;$s!#?M$,%W%m%0%i%`$r;H$&!J$b$7$/\e(B
+\e$B$OMtMQ$9$k!K$3$H$K$h$C$F!"$d$j$?$$$3$H$r$G$-$k$h$&$K$J$C$F$$$k$Y$-$G$9!#\e(B
+
+@end iftex
+
+
+@menu
+* Starting Up::           \e$B%K%e!<%9$r8+$D$1$k$N$K$O6lO+$,H<$&$+$bCN$l$J$$\e(B
+* The Group Buffer::      \e$B%0%k!<%W$rA*Br$7!"9VFI$7!":o=|$9$k\e(B
+* The Summary Buffer::    \e$B5-;v$rFI$_!"J]B8$7!"Ej9F$9$k\e(B
+* The Article Buffer::    \e$B5-;v$rI=<($7!"07$&\e(B
+* Composing Messages::    \e$B%a!<%k$H%K%e!<%9$rAw$k$?$a$N>pJs\e(B
+* Select Methods::        Gnus \e$B$OA4$F$N%a%C%;!<%8$r$$$m$$$m$JA*BrJ}K!$GFI$`\e(B
+* Scoring::               \e$B5-;v$KCM$r$D$1$k\e(B
+* Various::               \e$B0lHLE*$J@_Dj\e(B
+* The End::               \e$B$5$i$P!"$=$7$F$5$h$&$J$i\e(B
+* Appendices::            \e$BMQ8l!"\e(BEmacs \e$BF~Lg!"\e(BFAQ\e$B!"Nr;K!"FbIt9=B$\e(B
+* Index::                 \e$BJQ?t!"4X?t!"35G0$N:w0z\e(B
+* Key Index::             \e$B%-!<:w0z\e(B
+@end menu
+
+@node Starting Up
+@chapter Starting gnus
+@cindex starting up
+
+@kindex M-x gnus
+@findex gnus
+\e$B%7%9%F%`4IM}<T$,E,@Z$J@_Dj$r$7$F$$$?$J$i$P!"\e(Bgnus \e$B$r5/F0$7$F%K%e!<%9$rFI\e(B
+\e$B$`$N$OHs>o$K4JC1$G$9!#$=$&!"\e(BEmacs \e$B$G\e(B @kbd{M-x gnus} \e$B$HBG$D$@$1$G$9!#\e(B
+
+@findex gnus-other-frame
+@kindex M-x gnus-other-frame
+\e$BJL$N%U%l!<%`$G\e(B gnus \e$B$r5/F0$7$?$$$H$-$O!"%3%^%s%I\e(B @kbd{M-x
+gnus-other-frame} \e$B$r;H$&$3$H$,$G$-$^$9!#\e(B
+
+\e$B3+;O;~$K2?$+$,$&$^$/$$$+$J$$$H$-$O\e(B @file{~/.gnus} \e$B%U%!%$%k$NCf$GJQ?t$r$$\e(B
+\e$B$/$D$+$$$8$/$j$^$o$5$J$1$l$P$J$i$J$$$G$7$g$&!#$3$N%U%!%$%k$O\e(B 
+@file{~/.emacs} \e$B$H;w$F$$$^$9$,!"$3$l$O\e(B gnus \e$B$,5/F0$9$k$H$-$KFI$_9~$^$l$^\e(B
+\e$B$9!#\e(B
+
+\e$B$3$N@bL@=q$G$h$/$o$+$i$J$$MQ8l$,$G$F$-$?$H$-$O!"MQ8l$N9`\e(B 
+(@pxref{Terminology}) \e$B$r;2>H$7$F$/$@$5$$!#\e(B
+
+@menu
+* Finding the News::    \e$B%K%e!<%9$r<hF@$9$kJ}K!$rA*$V\e(B
+* The First Time::      \e$B:G=i$K5/F0$7$?$H$-$K\e(B gnus \e$B$O2?$r$9$k$+\e(B
+* The Server is Down::  \e$B$I$&$9$l$P$=$N$h$&$J$H$-$K%a!<%k$r<j$KF~$l$k$3$H$,$G$-$k$+\e(B
+* Slave Gnusae::        \e$BF1;~$K0l$D0J>e$N\e(B gnus \e$B$r:nF0$5$;$k$3$H$,$G$-$k\e(B
+* Fetching a Group::    \e$B%0%k!<%W$rFI$`$?$a$@$1$K\e(B gnus \e$B$r5/F0$9$k\e(B
+* New Groups::          Gnus \e$B$,?7$7$$%0%k!<%W$KBP$7$F2?$r$9$k$+\e(B
+* Startup Files::       \e$B$d$C$+$$$J%9%?!<%H%"%C%W%U%!%$%k\e(B--@file{.newsrc}
+* Auto Save::           \e$B%/%i%C%7%e$+$i$N2sI|\e(B
+* The Active File::     \e$BCY$$2s@~$+$i$N%U%!%$%k$N<hF@$K$O;~4V$,$+$+$k\e(B
+* Changing Servers::    \e$B$"$k%5!<%P$+$iJL$N%5!<%P$X0\$j$?$$$+$b$7$l$J$$\e(B
+* Startup Variables::   \e$BJQ99$7$?$$$H;W$&$+$b$7$l$J$$JQ?t\e(B
+@end menu
+
+
+@node Finding the News
+@section Finding the News
+@cindex finding news
+
+@vindex gnus-select-method
+@c @head
+\e$BJQ?t\e(B @code{gnus-select-method} \e$B$O\e(B gnus \e$B$,$I$3$G%K%e!<%9$rC5$9$Y$-$+$r<(\e(B
+\e$B$7$F$$$^$9!#$3$NJQ?t$O$O$8$a$NMWAG$,\e(B@dfn{\e$B$I$N$h$&$K$7$F\e(B}\e$B!"#2HVL\$NMWAG$,\e(B
+@dfn{\e$B$I$3$G\e(B}\e$B$rI=$9%j%9%H$G$"$kI,MW$,$"$j$^$9!#$3$NJ}K!$O$"$J$?$N4pK\J}K!\e(B 
+(native method) \e$B$K$J$j$^$9!#$3$NJ}K!$G<h$C$F$3$J$$%0%k!<%W$OA4$F30$N\e(B
+(foreign) \e$B%0%k!<%W$G$9!#\e(B
+
+\e$B$?$H$($P!"\e(B@sc{nntp} \e$B%5!<%P\e(B @samp{news.somewhere.edu} \e$B$+$iKhF|0lDj$NNL$N\e(B
+\e$B%K%e!<%9!JLt$N$h$&$K!K$r@]<h$7$?$$$N$G$"$l$P!"\e(B
+
+@lisp
+(setq gnus-select-method '(nntp "news.somewhere.edu"))
+@end lisp
+
+\e$B$N$h$&$K$9$k$3$H$,$G$-$^$9!#\e(B
+
+\e$B%m!<%+%k!&%9%W!<%k$N%G%#%l%/%H%j$rFI$_9~$_$?$$>l9g$O!"\e(B
+
+@lisp
+(setq gnus-select-method '(nnspool ""))
+@end lisp
+
+\e$B$N$h$&$K$G$-$^$9!#\e(B
+
+\e$B%m!<%+%k$N%9%W!<%k$r;H$($k$N$G$"$l$P!"$+$J$j$N3NN($G$=$NJ}$,$:$C$HB.$$$G\e(B
+\e$B$7$g$&$7!"$=$l$r;H$&$Y$-$G$7$g$&!#\e(B
+
+@vindex gnus-nntpserver-file
+@cindex NNTPSERVER
+@cindex @sc{nntp} server
+\e$B$b$7$3$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"\e(Bgnus \e$B$O\e(B @code{NNTPSERVER} \e$B4D6-JQ?t$r\e(B
+\e$BFI$_$K$$$-$^$9!#$b$7$=$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"\e(Bgnus \e$B$O\e(B
+@code{gnus-nntpserver-file}\e$B!J@_Dj$5$l$F$$$J$$>l9g$O\e(B 
+@file{/etc/nntpserver}\e$B!K$,$3$N7o$K4X$7$F2?$+$r8@$C$F$$$J$$$+$rD4$Y$^$9!#\e(B
+\e$B$b$7$=$l$b<:GT$7$?$J$i!"\e(Bgnus\e$B$O\e(B Emacs \e$B$,F0:n$7$F$$$k%5!<%P!<$r\e(B @sc{nntp} 
+\e$B%5!<%P!<$H$7$F;H$*$&$H$7$^$9!#?oJ,$JEv$F?dNL$G$9$1$I$M!#\e(B
+
+@vindex gnus-nntp-server
+@code{gnus-nntp-server} \e$B$,@_Dj$5$l$F$$$k$H!"$3$NJQ?t$O\e(B
+@code{gnus-select-method} \e$B$r>e=q$-$7$^$9!#$G$9$+$i!"\e(B
+@code{gnus-nntp-server} \e$B$O\e(B @code{nil} \e$B$K@_Dj$9$k$Y$-$G!"I8=`@_Dj$G$b$=$N\e(B
+\e$B$h$&$K$J$C$F$$$^$9!#\e(B
+
+@vindex gnus-secondary-servers
+Gnus \e$B$K\e(B @sc{nntp} \e$B%5!<%P!<$NL>A0$NF~NO$rBPOCE*$K;XDj$9$k$3$H$b$G$-$^$9!#\e(B
+@code{gnus} \e$B$K?tCM$G$J$$@\F,0z?t$rEO$9$H!JNc!'\e(B@kbd{C-u M-x gnus}\e$B!K!"\e(Bgnus 
+\e$B$O\e(B @code{gnus-secondary-servers} \e$B%j%9%H!J$b$7B8:_$9$k$J$i$P!K$+$i%5!<%P!<\e(B
+\e$B$rA*$V$3$H$,$G$-$k$h$&$K$7$^$9!#$?$@C1$K@\B3$7$?$$$H;W$C$?%5!<%P!<$NL>A0\e(B
+\e$B$rBG$D$3$H$b$G$-$^$9!#\e(B
+
+@findex gnus-group-browse-foreign-server
+@kindex B (Group)
+\e$B$7$+$7!"IaCJF|>oE*$K$O0l$D$N\e(B @sc{nntp} \e$B%5!<%P$r;H$$!"0c$C$?%5!<%P!<$K$O6=\e(B
+\e$BL#$N$"$k%0%k!<%W$,>/$7$7$+$J$$>l9g!"%0%k!<%W%P%C%U%!$G\e(B @kbd{B} \e$BL?Na$r;H$&\e(B
+\e$B$3$H$NJ}$,NI$$$G$7$g$&!#$=$l$O!"A*Br2DG=$J%0%k!<%W$rI=<($7!"$=$NCf$+$i$I$l\e(B
+\e$B$G$b9%$-$J$b$N$r9XFI$9$k$3$H$,$G$-$^$9!#$3$l$O!"\e(B@file{.newsrc} \e$B$NJ];}$r$:$C\e(B
+\e$B$H$d$j$d$9$/$7$^$9!#\e(B@xref{Foreign Groups}.
+
+@vindex gnus-secondary-select-methods
+@c @head
+\e$B30$N%0%k!<%W$KBP$9$k>/$70c$C$?$d$jJ}$O!"JQ?t\e(B
+@code{gnus-secondary-select-methods} \e$B$r@_Dj$9$k$3$H$G$9!#$3$NJQ?t$KI=$5\e(B
+\e$B$l$F$$$kA*BrJ}K!$O!"B?$/$NE@$G\e(B @code{gnus-select-method} \e$B%5!<%P!<$H$NA*\e(B
+\e$BBrJ}K!$HF1$8$h$&$K07$o$l$^$9!#5/F0Cf$K%"%/%F%#%V%U%!%$%k$rC5$7$K$$$-$^$9$7\e(B
+\e$B!J$b$7MW5a$5$l$F$$$l$P!K!"$3$l$i$N%5!<%P!<>e$K$G$-$??7$7$$%K%e!<%9%0%k!<\e(B
+\e$B%W$O85!9$N%0%k!<%W$HF1$8$h$&$K9XFI!J$b$7$/$OIT9XFI!K$5$l$^$9!#\e(B
+
+\e$B$?$H$($P!"%a!<%k$rFI$`$?$a$K\e(B @code{nnmbox} \e$B%P%C%/%(%s%I\e(B (backend) \e$B$r;H$$\e(B
+\e$B$?$$$H$-$O!"IaDL!"$3$NJQ?t$r!"\e(B
+
+@lisp
+(setq gnus-secondary-select-methods '((nnmbox "")))
+@end lisp
+
+\e$B$H@_Dj$7$^$9!#\e(B
+
+@node The First Time
+@section The First Time
+@cindex first time usage
+
+\e$B5/F0MQ%U%!%$%k$,B8:_$7$J$$$H$-$O!"\e(Bgnus \e$B$O%G%#%U%)%k%H$G$I$N%0%k!<%W$,9X\e(B
+\e$BFI$5$l$F$$$k$Y$-$+$r7hDj$7$h$&$H$7$^$9!#\e(B
+
+@vindex gnus-default-subscribed-newsgroups
+\e$BJQ?t\e(B @code{gnus-default-sebscribed-newsgroups} \e$B$,@_Dj$5$l$F$$$k$H!"\e(Bgnus
+\e$B$O$=$N%j%9%H$NCf$N%0%k!<%W$r9XFI$7!";D$j$r:o=|$7$^$9!#%7%9%F%`4IM}<T$O$3\e(B
+\e$B$NJQ?t$r2?$+Lr$KN)$D$b$N$K@_Dj$7$F$*$/$Y$-$G$9!#\e(B
+
+\e$B$=$&$G$J$$$H$-$O!"\e(Bgnus \e$B$O>/$7$NG$0U$N%0%k!<%W$r9XFI$7$^$9!JNc!'\e(B
+@samp{*.newusers}\e$B!K!#!J\e(B@dfn{\e$BG$0U\e(B}\e$B$O$3$3$G$O!"\e(B@dfn{Lars \e$B$5$s$,FI$`$Y$-$G\e(B
+\e$B$"$k$H9M$($k$b$N\e(B}\e$B$H$$$&$h$&$KDj5A$5$l$F$$$^$9!K\e(B
+
+\e$B$^$?!"$?$$$F$$$N6&DL$NLdBj$N2r7h$N<j=u$1$K$J$k$h$&!"\e(Bgnus \e$B$K4X$9$kJ8=q$N\e(B
+\e$B%0%k!<%W$b9XFI$9$k$3$H$K$J$k$G$7$g$&!#\e(B
+
+@code{gnus-default-subscribed-newsgroups} \e$B$,\e(B @code{t} \e$B$N$H$-$O!"\e(Bgnus \e$B$O?7\e(B
+\e$B$7$$%0%k!<%W$r07$&$N$KIaDL$N4X?t$r;H$$!"FCJL$J$3$H$O2?$b$7$^$;$s!#\e(B
+
+
+@node The Server is Down
+@section The Server is Down
+@cindex server errors
+
+\e$BI8=`\e(B (default) \e$B$N%5!<%P!<$,Mn$A$F$$$k$H$-$O!"EvA3\e(B gnus \e$B$N5/F0$K$$$/$D$+\e(B
+\e$B$NLdBj$,H/@8$7$^$9!#$7$+$7!"%K%e!<%9%0%k!<%W$NB>$K$$$/$D$+%a!<%k$N%0%k!<\e(B
+\e$B%W$,$"$l$P!"$=$l$K$b$+$+$o$i$:\e(B gnus \e$B$r5/F0$7$?$$$H;W$&$+$b$7$l$^$;$s!#\e(B
+
+Gnus \e$B$O!"?.Mj$G$-$k%W%m%0%i%`$N0l$D$H$7$F!"%5!<%P!<$H@\B3$G$-$J$$$H$-$O\e(B
+\e$B4pK\A*BrJ}K!$J$7$GB3$1$k$+$I$&$+$r?R$M$^$9!#$3$l$O<B:]$K$O%5!<%P!<$,B8:_\e(B
+\e$B$7$J$$$H$-!JNc$($P!"%"%I%l%9$r4V0c$($?>l9g!K$d%5!<%P!<$,2?$i$+$NM}M3$G0l\e(B
+\e$B;~E*$KD4;R$,$*$+$7$/$J$C$F$$$k$H$-$K5/$3$j$^$9!#$b$7$=$N$^$^B39T$9$k$3$H\e(B
+\e$B$K$7$F!"30$N%0%k!<%W$,0l$D$bL5$$>l9g!"<B$O%0%k!<%W%P%C%U%!$G$O$[$H$s$I2?\e(B
+\e$B$b$G$-$J$$$H$$$&$3$H$K5$$,$D$/$G$7$g$&!#$G$b!"$M$'!"$=$l$O$"$J$?$NLdBj$G\e(B
+\e$B$9!#%O%O%O%C!#\e(B
+
+@findex gnus-no-server
+@kindex M-x gnus-no-server
+@c @head
+\e$B%5!<%P!<$,40A4$KMn$A$F$$$k$N$rCN$C$F$$$k$+!"%5!<%P!<$G$o$:$i$&$3$H$J$/%a!<\e(B
+\e$B%k$@$1$rFI$_$?$$$H$-$O!"\e(Bgnus \e$B$r5/F0$9$k$N$K!"\e(B@code{gnus-no-server} \e$BL?Na$r\e(B
+\e$B;H$&$3$H$,$G$-$^$9!#5^$$$G$$$k$H$-$K$b$T$C$?$j$G$7$g$&!#$3$NL?Na$OK\Mh$N%5!<\e(B
+\e$B%P!<$K$O@\B3$7$^$;$s!=!=$=$NBe$o$j$K!"%l%Y%k#1$H#2$K$"$k$9$Y$F$N%0%k!<%W$r\e(B
+\e$B3hF0>uBV$K$7$^$9!J4pK\%0%k!<%W$G$J$$%0%k!<%W$O$=$N#2$D$N%l%Y%k$K$7$F$*$/$N\e(B
+\e$B$,K>$^$7$$$G$7$g$&!K!#\e(B
+
+
+@node Slave Gnusae
+@section Slave Gnusae
+@cindex slave
+
+\e$B$"$J$?$O#2$D0J>e$N\e(B Emacs \e$B$H!"#2$D0J>e$N\e(B gnus \e$B$rF1;~$KF0$+$7$?$$$H;W$&$+\e(B
+\e$B$b$7$l$^$;$s!#0c$C$?\e(B @file{.newsrc} \e$B%U%!%$%k$r;H$C$F$$$k$J$i!JNc$($P!"#2\e(B
+\e$B$D$N0c$C$?%5!<%P!<$+$iFI$_9~$`$?$a$K!"#2$D$N0c$C$?\e(B gnus \e$B$rF0:n$5$;$F$$$k\e(B
+\e$B>l9g!K!"$^$C$?$/LdBj$O$"$j$^$;$s!#$=$l$r9T$($PNI$$$@$1$G$9!#\e(B
+
+\e$BLdBj$O!"F1$8\e(B @code{.newsrc} \e$B%U%!%$%k$r;H$&#2$D$N\e(B gnus \e$B$rF0$+$=$&$H$7$?$H\e(B
+\e$B$-$K5/$3$j$^$9!#\e(B
+
+\e$B$3$NLdBj$KBP=h$9$k$?$a$K!"\e(Bgnus \e$B%?%o!<$N%7%s%/%?%s%/$K$$$k2f!9$O?7$7$$35\e(B
+\e$BG0$K$?$I$j$D$-$^$7$?!#\e(B@dfn{\e$B%^%9%?!<\e(B} \e$B$H\e(B @dfn{\e$B%9%l!<%V\e(B} \e$B$G$9!#!J2f!9$O$3\e(B
+\e$B$N35G0$KFC5v$r?=@A$7$^$7$?!#$=$7$F!"$=$N8@MU$NCx:n8"$rF@$^$7$?!#$*8_$$$K\e(B
+\e$B4XO"$7$F$3$l$i$N8@MU$r;H$$$?$$$J$i!"#12s;H$&Kh$K!";d$K\e(B $1 \e$B$rAw$i$J$1$l$P\e(B
+\e$B$J$j$^$;$s!#$b$A$m$s!"\e(B@dfn{\e$B%3%s%T%e!<%?!<%"%W%j%1!<%7%g%s$N%^%9%?!<!?%9\e(B
+\e$B%l!<%V4X78\e(B}\e$B$N;HMQNA$O$b$C$H9b$/$J$j$^$9!#!K\e(B
+
+\e$B$H$K$+$/!"\e(B@kbd{M-x gnus}\e$B!J$b$7$/$O!"IaCJ$d$C$F$$$kJ}K!!K$G\e(B gnus \e$B$rIaDL$K\e(B
+\e$B5/F0$7$^$9!#$=$N8e$N%9%l!<%V\e(B gnus \e$B$O$=$l$>$l\e(B @kbd{M-x gnus-slave} \e$B$G5/F0\e(B
+\e$B$7$^$9!#%9%l!<%V$OIaDL$N\e(B @file{.newsrc} \e$B$OJ]B8$7$^$;$s$,!"Be$o$j$K\e(B 
+@dfn{\e$B%9%l!<%V%U%!%$%k\e(B} \e$B$K%9%l!<%V$N5/F0Cf$K$I$N$h$&$J%0%k!<%W$,FI$^$l$?\e(B
+\e$B$+$H$$$&>pJs$@$1$rJ]B8$7$^$9!#%^%9%?!<\e(B gnus \e$B$,5/F0$9$k$H$-!"$=$l$O$=$l$i\e(B
+\e$B$N%9%l!<%V%U%!%$%k$rFI$_9~$_!J$=$7$F>C$7!K!"$=$l$i$+$i$9$Y$F$N>pJs$r<h$j\e(B
+\e$B9~$_$^$9!#!J%9%l!<%V%U%!%$%k$O!":G=*E*$JJQ99$,M%@h$5$l$k$h$&$K$=$l$i$,:n\e(B
+\e$B$i$l$?0lO"$NF0:n$NCf$GFI$^$l$^$9!#!K\e(B 
+
+\e$B$b$A$m$s!"%9%l!<%V%U%!%$%k$+$i$N>pJs$OIaDL$N!JNc$($P!"%^%9%?!<$N!K%U%!%$\e(B
+\e$B%k$h$j$bM%@h$5$l$^$9!#\e(B
+
+
+@node Fetching a Group
+@section Fetching a Group
+@cindex fetching a group
+
+@findex gnus-fetch-group
+\e$B;~!9!"!H$3$N%0%k!<%W$rFI$_$?$$$N$G$"$C$F!"\e(Bgnus \e$B$,5/F0$7$F$$$k$+$I$&$+$r\e(B
+\e$B5$$K$7$?$/$J$$!#!I$H$$$&$3$H$,$G$-$l$PJXMx$J$3$H$,$"$j$^$9!#$3$l$O!"MxMQ\e(B
+\e$B<T$h$j$b%W%m%0%i%`$N%3!<%I$r=q$/?M$KJXMx$J5!G=$G$9$,!"$I$A$i$K$7$m!"%3%^\e(B
+\e$B%s%I\e(B @code{gnus-fetch-group} \e$B$O$3$N5!G=$rDs6!$7$^$9!#$=$N%3%^%s%I$O!"%0\e(B
+\e$B%k!<%W$NL>A0$r0z?t$H$7$F$H$j$^$9!#\e(B
+
+
+@node New Groups
+@section New Groups
+@cindex new groups
+@cindex subscription
+
+@vindex gnus-check-new-newsgroups
+\e$B?7$7$$%K%e!<%9%0%k!<%W$rA4$/8+$J$$$GK~B-$G$"$k$J$i$P!"\e(B
+@code{gnus-check-new-newsgroups} \e$B$r\e(B @code{nil} \e$B$K@_Dj$9$k$3$H$,$G$-$^$9!#\e(B
+\e$B$3$l$r@_Dj$7$?>l9g!"5/F0$K$+$+$k;~4V$,C;$/$J$j$^$9!#$3$NJQ?t$,\e(B nil \e$B$K@_\e(B
+\e$BDj$5$l$F$$$F$b!"%0%k!<%W%P%C%U%!$G\e(B @kbd{U} \e$B$r2!$;$P$$$D$G$b?7$7$$%0%k!<\e(B
+\e$B%W$r9XFI$9$k$3$H$,$G$-$^$9\e(B (@pxref{Group Maintenance})\e$B!#@_Dj$5$l$F$$$J$$\e(B
+\e$B>l9g\e(B (default) \e$B$G$O$3$NJQ?t$O\e(B @code{ask-server} \e$B$G$9!#$3$NJQ?t$,\e(B 
+@code{always} \e$B$K@_Dj$5$l$F$$$k$H!"L?Na\e(B @kbd{g} \e$B$r<B9T$7$?$H$-$G$b\e(B gnus 
+\e$B$O%P%C%/%(%s%I$K?7$7$$%0%k!<%W$rC5$9$3$H$r5a$a$^$9\e(B (@pxref{Scanning New
+Messages})\e$B!#\e(B
+
+@menu
+* Checking New Groups::      \e$B$I$N%0%k!<%W$,?7$7$$$+$r7hDj$9$k!#\e(B
+* Subscription Methods::     \e$B?7$7$$%0%k!<%W$KBP$7$F\e(B gnus \e$B$O2?$r$9$Y$-$+\e(B
+* Filtering New Groups::     Gnus \e$B$KFCDj$N?7$7$$%0%k!<%W$rL5;k$5$;$k\e(B
+@end menu
+
+
+@node Checking New Groups
+@subsection Checking New Groups
+
+Gnus \e$B$O!"IaDL$O%0%k!<%W$,?7$7$$$+$I$&$+$r!"9XFI$7$F$$$k%0%k!<%W$H:o=|$5$l\e(B
+\e$B$F$$$k%0%k!<%W$N%j%9%H$H8=>u%U%!%$%k\e(B (active file) \e$B$rHf3S$9$k$3$H$K$h$j7h\e(B
+\e$BDj$7$F$$$^$9!#$3$NJ}K!$OFC$KB.$$$H$$$&$o$1$G$O$"$j$^$;$s!#\e(B
+@code{gnus-check-new-newsgroups} \e$B$,\e(B @code{ask-server} \e$B$G$"$k$H!"\e(Bgnus \e$B$O%5!<\e(B
+\e$B%P!<$K!":G8e$K@\B3$7$F$+$i?7$7$$%0%k!<%W$,$G$-$F$$$k$+$I$&$+$r?R$M$^$9!#$3\e(B
+\e$B$NJ}K!$OB.$$$7!"0B>e$,$j$G$9!#$3$l$K$h$j!":o=|$5$l$?%0%k!<%W$N%j%9%H$rJ];}\e(B
+\e$B$7$F$*$/$3$H$+$i$+$i40A4$K3+J|$5$l$^$9!#$G$9$+$i!"\e(B
+@code{gnus-save-killed-list} \e$B$r\e(B @code{nil} \e$B$K$9$k$3$H$,$G$-$k$G$7$g$&!#$=\e(B
+\e$B$&$9$l$P!"5/F0!"=*N;$NN>J}!"$=$7$FA4BN$K$o$?$C$F;~4V$r@aLs$G$-$^$9!#%G%#%9\e(B
+\e$B%/>CHqNL$b>/$J$/$J$j$^$9!#$=$l$J$i!"$I$&$7$F$3$l$,I8=`\e(B (default) \e$B$G$O$J$$\e(B
+\e$B$N$G$7$g$&!);DG0$J$,$i!"$9$Y$F$N%5!<%P!<$,$3$NL?Na$rM}2r$9$k$o$1$G$O$J$$$N\e(B
+\e$B$G$9!#\e(B
+
+\e$B;d$O:#$"$J$?$,2?$r9M$($F$$$k$+$rEv$F$i$l$^$9!#$I$&$9$l$P%5!<%P!<$,\e(B
+@code{ask-server} \e$B$rM}2r$9$k$+$,$o$+$k$N$G$7$g$&!)$(!"0c$&$N$G$9$+!)$"$!!"\e(B
+\e$BNI$+$C$?!#$H$$$&$N$O!"3N<B$JEz$OB8:_$7$J$$$N$G$9!#;d$K8@$($k$3$H$O!"$3$NJQ\e(B
+\e$B?t$r\e(B @code{ask-server} \e$B$K@_Dj$7$F!"?tF|4V?7$7$$%0%k!<%W$,8=$l$k$+$I$&$+$r\e(B
+\e$BD4$Y$F$/$@$5$$!"$H$$$&$3$H$@$1$G$9!#$b$7$$$/$D$+$N%0%k!<%W$,8=$l$?$J$i!"$=\e(B
+\e$B$l$GF0:n$7$F$$$^$9!#0l$D$b8=$l$J$1$l$P!"$=$l$OF0:n$7$^$;$s!#;d$O!"\e(Bgnus \e$B$K\e(B
+\e$B%5!<%P!<$,\e(B @code{ask-server} \e$B$rM}2r$9$k$+$I$&$+$r?dNL$5$;$k4X?t$r=q$/$3$H\e(B
+\e$B$b$G$-$^$9$,!"$=$l$OC1$K?dNL$7$F$$$k$K$9$.$^$;$s!#$G$9$+$i!"$=$N4X?t$r=q$/\e(B
+\e$B$3$H$O$J$$$G$7$g$&!#B>$NJ}K!$H$7$F$O!"%5!<%P!<$K\e(B @code{telnet} \e$B$r$7$F!"\e(B
+@code{HELP} \e$B$HBG$A!"%5!<%P!<$,M}2r$9$k%3%^%s%I$NCf$K\e(B @samp{NEWGROUPS} \e$B$,$"\e(B
+\e$B$k$+$I$&$+$rD4$Y$k$3$H$b$G$-$^$9!#$b$7$"$l$P!"$*$=$i$/F0:n$9$k$G$7$g$&!J$7\e(B
+\e$B$+$7!"E,@Z$K5!G=$rDs6!$9$k$3$H$J$/\e(B @samp{NEGROUPS} \e$B$r%j%9%H$K4^$a$k%5!<%P!<\e(B
+\e$B$b$"$j$^$9!K!#\e(B
+
+\e$B$3$NJQ?t$O!"A*BrJ}K!$N%j%9%H$G$"$k$3$H$b$G$-$^$9!#$=$N$H$-$O!"\e(Bgnus \e$B$OL?\e(B
+\e$BNa\e(B @code{ask-server} \e$B$r$=$l$>$l$NA*BrJ}K!$KBP$7$F<B9T$7!"IaDL$NJ}K!$G9X\e(B
+\e$BFI!J$b$7$/$O!"IT9XFI!K$7$^$9!#$3$l$NI{:nMQ$O!"5/F0$K$+$J$j;~4V$,$+$+$k$N\e(B
+\e$B$G!"BT$C$F$$$k4V$KbTA[$G$-$k$3$H$G$9!#1J5W$N9,J!$rC#@.$9$k$?$a$K!"%^%s%H\e(B
+\e$B%i\e(B ``dingnusdingnusdingnus'' \e$B$r;H$C$F$/$@$5$$!#\e(B
+
+
+@node Subscription Methods
+@subsection Subscription Methods
+
+@vindex gnus-subscribe-newsgroup-method
+\e$B?7$7$$%0%k!<%W$KAx6x$7$?$H$-$K\e(B gnus \e$B$,2?$r$9$k$+$O!"JQ?t\e(B
+@code{gnus-subscribe-nesgroup-method} \e$B$K$h$C$F7hDj$5$l$^$9!#\e(B
+
+\e$B$3$NJQ?t$O4X?t$r4^$s$G$$$kI,MW$,$"$j$^$9!#$3$N4X?t$O?7$7$$%0%k!<%W$NL>A0\e(B
+\e$B$rM#0l$N0z?t$H$7$F8F$P$l$^$9!#\e(B
+
+\e$B$$$/$D$+$N<j7Z$J%W%l%O%V4X?t$O!"0J2<$N$h$&$K$J$C$F$$$^$9!#\e(B
+
+@table @code
+
+@item gnus-subscribe-zombies
+@vindex gnus-subscribe-zombies
+\e$B$9$Y$F$N?7$7$$%0%k!<%W$r%>%s%S\e(B (zombie) \e$B$K$7$^$9!#$3$l$,I8=`\e(B (default) \e$B$K\e(B
+\e$B$J$C$F$$$^$9!#8e$G%>%s%S$r\e(B (@kbd{A z} \e$B$K$h$C$F\e(B) \e$B354Q$7$?$j!"!J\e(B@kbd{S z} \e$B$K\e(B
+\e$B$h$C$F!KE,@Z$KA4$F$r:o=|$7$?$j!"!J\e(B@kbd{u} \e$B$K$h$C$F!K9XFI$7$?$j$G$-$^$9!#\e(B
+
+@item gnus-subscribe-randomly
+@vindex gnus-subscribe-randomly
+\e$BG$0U$N=gHV$G$9$Y$F$N?7$7$$%0%k!<%W$r9XFI$7$^$9!#<B:]$K$O!"$9$Y$F$N?7$7$$\e(B
+\e$B%0%k!<%W$O%0%k!<%W%P%C%U%!$N!X0lHV>e!Y$K2C$($i$l$^$9!#\e(B
+
+@item gnus-subscribe-alphabetically
+@vindex gnus-subscribe-alphabetically
+\e$B$9$Y$F$N?7$7$$%0%k!<%W$r%"%k%U%!%Y%C%H=g$K9XFI$7$^$9!#\e(B
+
+@item gnus-subscribe-hierarchically
+@vindex gnus-subscribe-hierarchically
+\e$B$9$Y$F$N?7$7$$%0%k!<%W$r3,AXE*$K9XFI$7$^$9!#$3$N4X?t$H\e(B
+@code{gnus-subscribe-alphabetically} \e$B$N0c$$$O>/$7$7$+$"$j$^$;$s!#\e(B
+@code{gnus-subscribe-alphabetically} \e$B$O?7$7$$%0%k!<%W$r87L)$K%"%k%U%!%Y%C\e(B
+\e$B%H=g$K$J$i$Y$^$9$,!"$3$N4X?t$O%0%k!<%W$r$=$N3,AX$NCf$KF~$l$^$9!#$G$9$+$i!"\e(B
+@samp{rec} \e$B$N3,AX$r\e(B @samp{comp} \e$B$N3,AX$NA0$K;}$C$F$-$?$$>l9g!"$3$N4X?t$O\e(B
+\e$B$=$NG[CV$r$0$A$c$0$A$c$K$O$7$^$;$s!#$b$7$/$O!"$=$N$h$&$J$b$N$G$9!#\e(B
+
+@item gnus-subscribe-interactively
+@vindex gnus-subscribe-interactively
+\e$B?7$7$$%0%k!<%W$rBPOCE*$K9XFI$7$^$9!#$3$l$O\e(B gnus \e$B$,\e(B @strong{\e$BA4$F\e(B} \e$B$N%0%k!<\e(B
+\e$B%W$KBP$7$F?R$M$k$3$H$r0UL#$7$F$$$^$9!#9XFI$9$k%0%k!<%W$O3,AXE*$K9XFI$5$l\e(B
+\e$B$^$9!#\e(B
+
+@item gnus-subscribe-killed
+@vindex gnus-subscribe-killed
+\e$B$9$Y$F$N?7$7$$%0%k!<%W$r:o=|$7$^$9!#\e(B
+
+@end table
+
+@vindex gnus-subscribe-hierarchical-interactive
+\e$B>e$NJQ?t$HNI$/4X78$7$?JQ?t$O!"\e(B
+@code{gnus-subscribe-hierarchical-interactive} \e$B$G$9!#$3$NJQ?t$,\e(B
+@code{nil} \e$B$G$J$$$H!"\e(Bgnus \e$B$O3,AXE*$JJ}K!$G?7$7$$%0%k!<%W$r9XFI$9$k$+$I$&$+\e(B
+\e$B$r?R$M$^$9!#\e(Bgnus \e$B$O$=$l$>$l$N3,AX$G!"$=$l$r2<$K9_$j$k$+$I$&$+$r?R$M$^$9!#\e(B
+
+\e$BNI$/$"$k4V0c$$$O!"?tCJMnA0$NJQ?t\e(B (@code{gnus-subscribe-newsgroup-method}
+) \e$B$r\e(B @code{gnus-subscribe-herarchical-interactive} \e$B$K@_Dj$9$k$3$H$G$9!#\e(B
+\e$B$3$l$O8m$j$G$9!#$3$l$OF0:n$7$^$;$s!#$3$l$O$*$a$G$?$$?M$N$9$k$3$H$G$9!#$G\e(B
+\e$B$9$+$i!"@dBP$K$7$J$$$G$/$@$5$$!#\e(B
+
+
+@node Filtering New Groups
+@subsection Filtering New Groups
+
+\e$B$I$N?7$7$$%0%k!<%W$,9XFI!J$b$7$/$O!"L5;k!K$5$l$k$Y$-$+$r4IM}$9$k2wE,$G<j\e(B
+\e$B7Z$JJ}K!$O!"%U%!%$%k\e(B @file{.newsrc} \e$B$N@hF,$K\e(B @dfn{options} \e$B9T$rA^F~$9$k\e(B
+\e$B$3$H$G$9!#<!$O!"Nc$G$9!#\e(B
+
+@example
+options -n !alt.all !rec.all sci.all
+@end example
+
+@vindex gnus-subscribe-options-newsgroup-method
+\e$B$3$N9T$O!"L@$i$+$K$^$8$a$GM}CNE*$G2J3XE*$J?M4V!J$b$7$/$OC1$J$k8E$/B`6~$J\e(B
+\e$B?M4V!K$,=q$$$?$b$N$G$9!#$J$<$J$i!"$3$l$O\e(B @samp{alt} \e$B$H\e(B @samp{rec} \e$B$G;O$^\e(B
+\e$B$kL>A0$r;}$D%0%k!<%W$OA4$FL5;k$5$l!"\e(B@samp{sci} \e$B$G;O$^$kL>A0$r;}$D%0%k!<\e(B
+\e$B%W$OA4$F9XFI$9$k!"$H$$$&$3$H$rI=$7$F$$$k$+$i$G$9!#\e(BGnus \e$B$O$3$l$i$N%0%k!<\e(B
+\e$B%W$r9XFI$9$k$N$K!"IaDL$N9XFIJ}K!$rMQ$$$^$;$s!#Be$o$j$K!"\e(B
+@code{gnus-subscribe-options-newsgroup-method} \e$B$,MQ$$$i$l$^$9!#$3$NJQ?t\e(B
+\e$B$OI8=`\e(B (default) \e$B$G$O\e(B @code{gnus-subscribe-alphabetically} \e$B$G$9!#\e(B
+
+@vindex gnus-options-not-subscribe
+@vindex gnus-options-subscribe
+\e$B%U%!%$%k\e(B @file{.newrc} \e$B$r$$$8$j$?$/$J$$>l9g$O!"\e(B
+@code{gnus-options-subscribe} \e$B$H\e(B @code{gnus-options-not-subscribe} \e$B$N#2\e(B
+\e$B$D$NJQ?t$@$1$r@_Dj$9$k$3$H$b$G$-$^$9!#$3$N#2$D$NJQ?t$O%U%!%$%k\e(B 
+@file{.newrc} \e$B$N\e(B @samp{optinos -n} \e$B9T$HA4$/F1$8$3$H$r$7$^$9!#$I$A$i$NJQ\e(B
+\e$B?t$b@55,I=8=$G!"?7$7$$%0%k!<%W$OA0<T$K9gCW$9$l$PL5>r7o$K9XFI$5$l!"8e<T$K\e(B
+\e$B9gCW$9$k$HL5;k$5$l$^$9!#\e(B
+
+@vindex gnus-auto-subscribed-groups
+\e$B$5$i$K$3$3$G$*$;$C$+$$$r$9$kJQ?t$O!"\e(B@code{gnus-auto-subscribed-groups} 
+\e$B$G$9!#$=$l$O\e(B @code{gnus-options-subscribe} \e$B$HA4$/F1$8$h$&$KF0:n$7$^$9$N\e(B
+\e$B$G!"K\Ev$OM>J,$J$b$N$G$9!#$7$+$7!";d$O$3$NFs$D$,$"$C$?J}$,NI$$$H;W$$$^$7\e(B
+\e$B$?!#$b$&0lJ}$NJQ?t$O%f!<%6$,$$$8$/$k$N$K;H$o$l$k$N$KBP$7$F!"$3$NJQ?t$O$$\e(B
+\e$B$/$D$+$N4pK\E*$J5,B'$r@_Dj$9$k$?$a$N$b$N$G$9!#%G%#%U%)%k%H$G$O$3$NJQ?t$O\e(B
+\e$B%a!<%k%P%C%/%(%s%I\e(B (@code{nnml} \e$B!"\e(B@code{nnbabyl} \e$B!"\e(B@code{nnfolder} \e$B!"\e(B
+@code{nnmbox} \e$B$H\e(B@code{nnmh}) \e$B$+$i$G$-$kA4$F$N?7$7$$%0%k!<%W$r9XFI$9$k$h\e(B
+\e$B$&$K$J$C$F$$$^$9!#$=$l$,7y$G$"$l$P!"$3$NJQ?t$r\e(B @code{nil} \e$B$K@_Dj$7$F$/$@\e(B
+\e$B$5$$!#\e(B
+
+\e$B$3$N@55,I=8=$K9gCW$9$k?7$7$$%0%k!<%W$O\e(B 
+@code{gnus-subscribe-options-newsgroup-method} \e$B$r;H$C$F9XFI$5$l$^$9!#\e(B
+
+
+@node Changing Servers
+@section Changing Servers
+@cindex changing servers
+
+\e$B$H$-$I$-!"$"$k\e(B @sc{nntp} \e$B%5!<%P!<$+$iJL$N%5!<%P!<$X0\F0$7$J$1$l$P$J$i$J\e(B
+\e$B$$$3$H$,$"$j$^$9!#$3$N$h$&$J$3$H$O$a$C$?$K$*$-$^$;$s$,!"$*$=$i$/$"$J$?$,\e(B
+\e$B;E;v$rJQ$($?$j!";H$C$F$$$k%5!<%P!<$,$H$F$bIT0BDj$G!"JL$N$b$N$K>h$j49$($?\e(B
+\e$B$$$H$$$&$H$-$KI,MW$K$J$k$G$7$g$&!#\e(B
+
+\e$B%5!<%P!<$rJQ99$9$k$N$O$H$F$b4JC1$G$9$h$M!)\e(B
+@code{gnus-select-method} \e$B$r?7$7$$%5!<%P!<$r;X$7<($9$h$&$KJQ99$9$l$P$$$$\e(B
+\e$B$@$1$G$9$M!)\e(B
+
+@emph{\e$B0c$$$^$9!*\e(B}
+
+\e$B5-;v$NHV9f$O0c$C$?\e(B @sc{nntp} \e$B%5!<%P!<$G$b\e(B (\e$B$I$&$K$+$7$F\e(B) \e$BF1$8$K$7$F$"$k!"\e(B
+\e$B$H$$$&$3$H$O$"$j$^$;$s!#$=$7$F!"\e(B guns \e$B$,$I$N5-;v$rFI$s$@$+$r5-O?$9$kM#0l\e(B
+\e$B$NJ}K!$O!"5-;vHV9f$r5-O?$9$k$3$H$G$9!#$G$9$+$i!"\e(B
+@code{gnus-select-method} \e$B$rJQ99$7$?$H$-$O!"%U%!%$%k\e(B @file{.newsrc} \e$B$O0U\e(B
+\e$BL#$,$J$/$J$j$^$9!#\e(B
+
+Gnus\e$B$O%U%!%$%k\e(B @file{.newsrc} \e$B$r$"$k%5!<%P!<MQ$+$iJL$N%5!<%P!<MQ$KJQ49$9\e(B
+\e$B$k4X?t$r\e(B2\e$B!"\e(B3\e$BMQ0U$7$F$$$^$9!#$=$l$i$K$O0l$D6&DLE@$,$"$j$^$9\e(B---\e$B<B9T$K$J$,!<!<\e(B
+\e$B$$;~4V$,$+$+$k$3$H$G$9!#$*$=$i$/!"$I$&$7$F$bI,MW$K$J$C$?$H$-0J30$K$3$N4X\e(B
+\e$B?t$r;H$*$&$H$O;W$o$J$$$G$7$g$&!#\e(B
+
+@kindex M-x gnus-change-server
+@findex gnus-change-server
+\e$B$b$7N>J}$N%5!<%P!<$K@\B3$G$-$k$J$i!"\e(Bgnus\e$B$O$"$J$?$,FI$s$@5-;vA4$F$KBP$7$F\e(B
+\e$B%X%C%@!<\e(B (headers) \e$B$rMW5a$7$F!"\e(B@code{Message-ID} \e$B$rHf3S$7!"FI$s$@5-;v$H\e(B
+\e$B5-;v$N0u$r?7$7$/5-O?$7$^$9!#%3%^%s%I\e(B @kbd{M-x gnus-change-server} \e$B$O$3$l\e(B
+\e$B$r$9$Y$F$N4pK\%0%k!<%W$KBP$7$F9T$$$^$9!#$=$N%3%^%s%I$O0\F0@h$NJ}K!$NF~NO\e(B
+\e$B$rB%$7$^$9!#\e(B
+
+@kindex M-x gnus-group-move-group-to-server
+@findex gnus-group-move-group-to-server
+\e$B8D!9$N%0%k!<%W$rL?Na\e(B @kbd{M-x gnus-group-move-group-to-server} \e$B$G0\\e(B
+\e$BF0$9$k$3$H$b$G$-$^$9!#$3$l$O$"$k%5!<%P!<$+$iJL$N%5!<%P!<$X0l$D$N\e(B (\e$B30$N\e(B) 
+\e$B%0%k!<%W$r0\F0$7$?$$$H$-$KLr$KN)$A$^$9!#\e(B
+
+@kindex M-x gnus-group-clear-data-on-native-groups
+@findex gnus-group-clear-data-on-native-groups
+\e$B8E$$%5!<%P!<$H?7$7$$%5!<%P!<$NN>J}$K@\B3$9$k$3$H$,$G$-$J$$$H$-!"0u$HFI$s\e(B
+\e$B$@HO0O$O$9$Y$F0UL#$,L5$/$J$j$^$9!#$=$N$h$&$J$H$-$O!"%3%^%s%I\e(B @kbd{M-x
+gnus-group-clear-data-on-native-groups} \e$B$r;H$C$F!"4pK\%0%k!<%W$K4X$9$k%G!<\e(B
+\e$B%?$r$9$Y$F>C5n$9$k$3$H$,$G$-$^$9!#$3$N%3%^%s%I$OCm0U$7$F;H$C$F$/$@$5$$!#\e(B 
+
+
+@node Startup Files
+@section Startup Files
+@cindex startup files
+@cindex .newsrc
+@cindex .newsrc.el
+@cindex .newsrc.eld
+
+\e$B:#$d!"$"$J$?$O%U%!%$%k\e(B @file{.newrc} \e$B$K$D$$$F$9$Y$FCN$C$F$$$^$9!#$9$Y$F\e(B
+\e$B$N9XFI>pJs$OEAE}E*$K$3$N%U%!%$%k$KC_@Q$5$l$^$9!#\e(B
+
+@sc{GNUS} \e$B$G$OJ*;v$,>/!9J#;($K$J$C$F$$$^$9!#%U%!%$%k\e(B @file{.newsrc} \e$B$r:G\e(B
+\e$B?7$N$b$N$K$9$k$@$1$G$O$J$/!"%U%!%$%k\e(B @file{.newsrc} \e$B$K$O9g$o$J$$>pJs$rJ]\e(B
+\e$BB8$7$F$*$/$?$a$K\e(B @file{.newsrc.el} \e$B$H8F$P$l$k%U%!%$%k$r;H$$$^$9!#\e(B (\e$B<B:]\e(B
+\e$B$O!"%U%!%$%k\e(B @file{.newsrc} \e$B$NA4$F$N>pJs$rJ#@=$7$FJ];}$7$F$$$^$9!#\e(B)
+@sc{gnus}\e$B$O$3$l$i$NCf$G0lHV:G8e$KJ]B8$5$l$?$b$N$r;H$$$^$9!#$3$l$r$9$k$3\e(B
+\e$B$H$K$h$j!"\e(B@sc{GNUS} \e$B$HB>$N%K%e!<%9%j!<%@!<$r@Z$jBX$($F;H$&$3$H$,$G$-$^$9!#\e(B
+
+\e$B$3$l$O$A$g$C$H$P$+$JJ}K!$J$N$G!"\e(Bgnus \e$B$O$b$C$HNI$$J}K!$rJT$_=P$7$^$7$?!#\e(B
+@file{.newsrc} \e$B$H\e(B @file{.newsrc.el} \e$B%U%!%$%k$K2C$($F!"\e(B Gnus \e$B$O\e(B
+@file{.newsrc.eld} \e$B$H8F$P$l$k%U%!%$%k$b;}$C$F$$$^$9!#\e(BGnus \e$B$O$3$l$i$NCf$G\e(B
+\e$B0lHV?7$7$$%U%!%$%k$rFI$_$^$9$,!"%U%!%$%k\e(B @file{.newsrc.el} \e$B$K=q$-9~$`$3\e(B
+\e$B$H$O$"$j$^$;$s!#%U%!%$%k\e(B @file{.newsrc.eld} \e$B$O@dBP$K>C$9$Y$-$G$O$"$j$^$;\e(B
+\e$B$s!#\e(B---\e$B$=$l$O%U%!%$%k\e(B @file{.newsrc} \e$B$K$O$J$$$?$/$5$s$N>pJs$rJ];}$7$F$$\e(B
+\e$B$^$9!#\e(B 
+
+@vindex gnus-save-newsrc-file
+@code{gnus-save-newsrc-file} \e$B$r\e(B @code{nil} \e$B$K$9$k$3$H$K$h$C$F%U%!%$%k\e(B
+@file{.newsrc} \e$B$K=q$-9~$`$N$r;_$a$k$3$H$,$G$-$^$9!#$=$&$9$l$P!"$=$N%U%!\e(B
+\e$B%$%k$r:o=|$9$k$3$H$,$G$-!"%G%#%9%/MFNL$r@aLs$9$k$3$H$,$G$-!"\e(Bgnus \e$B$N=*N;\e(B
+\e$B$,B.$/$J$j$^$9!#$7$+$7!"$=$&$9$k$HB>$N%K%e!<%9%j!<%@!<$r;H$($J$/$J$j$^$9!#\e(B
+\e$B$G$b!"$A$g$C$H!"C/$+$=$&$7$?$$?M$,$$$k$G$7$g$&$+!#\e(B 
+
+@vindex gnus-save-killed-list
+@code{gnus-save-killed-list} (\e$B%G%#%U%)%k%H\e(B \e$B$G$O\e(B @code{t}) \e$B$,\e(B @code{nil} 
+\e$B$G$"$k$H!"\e(Bgnus \e$B$O:o=|$5$l$?%0%k!<%W$r5/F0%U%!%$%k$KJ]B8$7$^$;$s!#$3$l$O!"\e(B
+(\e$B5/F0;~$H=*N;;~$N\e(B) \e$B;~4V$H!"\e(B(\e$B%G%#%9%/$N\e(B) \e$BMFNL$r@aLs$7$^$9!#$3$&$9$k$H!"\e(B
+gnus\e$B$,$I$N%0%k!<%W$,?7$7$$$+$N5-O?$r;}$C$F$$$J$$$3$H$K$J$j$^$9$N$G!"?7$7\e(B
+\e$B$$%0%k!<%W$N<+F09XFIJ}K!$O0UL#$,L5$/$J$j$^$9!#$3$NJQ?t$r\e(B @code{nil} \e$B$K$7\e(B
+\e$B$?$H$-$O!"\e(B@code{gnus-check-new-newsgroups} \e$B$r>o$K\e(B @code{nil} \e$B$+\e(B 
+@code{ask-server} \e$B$K$7$F$*$/$Y$-$G$7$g$&\e(B (@pxref{New Groups})\e$B!#$3$NJQ?t\e(B
+\e$B$O@55,I=8=$G$"$k$3$H$b$G$-$^$9!#$=$N$h$&$J>l9g$O!"%U%!%$%k$rJ]B8$9$kD>A0\e(B
+\e$B$K$=$N@55,I=8=$K9gCW$7$J$$$9$Y$F$N%0%k!<%W$r>C5n$7$^$9!#$3$l$O!"$9$Y$F$N\e(B
+\e$B%5!<%P!<$,\e(B @code{ask-server} \e$B$rM}2r$9$k$o$1$G$O$J$$!"$H$$$C$?$h$&$J!"FC\e(B
+\e$BDj$N$"$$$^$$$J>u67$N$H$-$KLr$KN)$D$G$7$g$&!#\e(B 
+
+@vindex gnus-startup-file
+\e$BJQ?t\e(B @code{gnus-startup-file} \e$B$O5/F0%U%!%$%k$,$I$3$K$"$k$+$r;XDj$7$^$9!#\e(B
+\e$B%G%#%U%)%k%H$NCM$O\e(B @file{~/.newsrc} \e$B$G!"$=$l$,$I$N$h$&$J$b$N$G$"$l!"\e(B
+\e$BKvHx$K\e(B @samp{.eld} \e$B$r$D$1$?$b$N$,\e(B gnus (El Dingo) \e$B$N5/F0%U%!%$%k$K$J$j$^\e(B
+\e$B$9!#\e(B 
+
+@vindex gnus-save-newsrc-hook
+@vindex gnus-save-quick-newsrc-hook
+@vindex gnus-save-standard-newsrc-hook
+@code{gnus-save-newsrc-hook} \e$B$O\e(B newsrc \e$B%U%!%$%k$NCf$N$I$l$+$rJ]B8$9$kA0$K<B\e(B
+\e$B9T$5$l$k$N$KBP$7!"\e(B@code{gnus-save-quick-newsrc-hook} \e$B$O%U%!%$%k\e(B
+@file{.newsrc.eld} \e$B$rJ]B8$9$kA0$K<B9T$5$l!"\e(B
+@code{gnus-save-standard-newsrc-hook} \e$B$O%U%!%$%k\e(B @file{.newsrc.eld} \e$B$rJ]\e(B
+\e$BB8$9$kA0$K<B9T$5$l$^$9!#8e$NFs$D$OIaDL$OHG4IM}$rF~$l$?$j@Z$C$?$j$9$k$N$K\e(B
+\e$B;H$o$l$^$9!#%G%#%U%)%k%H$G$O!"5/F0%U%!%$%k$rJ]B8$9$k$H$-$KHG4IM}$KF~$j$^\e(B
+\e$B$9!#%P%C%/%"%C%W%U%!%$%k$N:n@.$r;_$a$?$$$H$-$O!"<!$N$h$&$K$7$F$/$@$5$$!#\e(B 
+
+@lisp
+(defun turn-off-backup ()
+  (set (make-local-variable 'backup-inhibited) t))
+
+(add-hook 'gnus-save-quick-newsrc-hook 'turn-off-backup)
+(add-hook 'gnus-save-standard-newsrc-hook 'turn-off-backup)
+@end lisp
+
+@vindex gnus-init-file
+Gnus \e$B$,5/F0$9$k$H!"\e(B@code{gnus-site-init-file} (\e$B%G%#%U%)%k%H$G$O\e(B
+@file{.../site-lisp/gnus}) \e$B$H\e(B @code{gnus-init-file} (\e$B%G%#%U%)%k%H$G$O\e(B
+@file{~/.gnus}) \e$B$N%U%!%$%k$rFI$_9~$_$^$9!#$3$l$i$OIaDL$N\e(B Emacs Lisp \e$B%U%!\e(B
+\e$B%$%k$G!"\e(B@file{~/.emacs} \e$B$d\e(B @file{site-init} \e$B%U%!%$%k$r\e(B gnus \e$B4X78$N$b$N$G\e(B
+\e$BMp;($K$7$J$$$h$&$K$9$k$?$a$K;H$&$3$H$,$G$-$^$9!#\e(BGnus \e$B$O$3$l$i$HF1$8L>A0\e(B
+\e$B$N%U%!%$%k$rD4$Y$^$9$,!"@\Hx8l\e(B @file{.elc} \e$B$H\e(B @file{.el} \e$B$,$D$$$F$$$k$b\e(B
+\e$B$N$bD4$Y$^$9!#8@$$49$($l$P!"\e(B@code{gnus-init-file} \e$B$r\e(B @file{~/.gnus} \e$B$K@_\e(B
+\e$BDj$9$k$H!"\e(Bgnus \e$B$O\e(B (\e$B$3$N=gHV$K\e(B) @file{~/.gnus.elc} \e$B!"\e(B@file{~/.gnus.el} \e$B$r\e(B
+\e$BC5$7!":G8e$K\e(B @file{~/.gnus} \e$B$rC5$7$^$9!#\e(B
+
+
+
+@node Auto Save
+@section Auto Save
+@cindex dribble file
+@cindex auto-save
+
+\e$B2?$+\e(B gnus \e$B$N%G!<%?$rJQ99$9$k$3$H\e(B (\e$B5-;v$rFI$`!"0u$rIU$1$k!"%0%k!<%W$r:o=|\e(B
+\e$B$^$?$O9XFI$9$k\e(B) \e$B$r$7$?$H$-!"JQ99$OFCJL$J\e(B@dfn{\e$B%I%j%V%k%P%C%U%!\e(B (dribble
+buffer)} \e$B$K=q$-9~$^$l$^$9!#$3$N%P%C%U%!$O\e(BEmacs \e$B$,IaDL$9$k$h$&$K<+F0J]B8\e(B
+\e$B$5$l$^$9!#%U%!%$%k\e(B @file{.newsrc} \e$B$rJ]B8$9$kA0$K\e(B Emacs\e$B$,Mn$A$?$H$-$O!"$9\e(B
+\e$B$Y$F$NJQ99$r$3$N%U%!%$%k$+$i2sI|$9$k$3$H$,$G$-$k$G$7$g$&!#\e(B
+
+\e$B5/F0;~$K\e(B gnus \e$B$,$3$N%U%!%$%k$NB8:_$rH/8+$9$k$H!"\e(Bgnus \e$B$O$=$l$rFI$_9~$`$+\e(B
+\e$B$I$&$+$rMxMQ<T$K?R$M$^$9!#K\Ev$N5/F0%U%!%$%k$,J]B8$5$l$l$P!"<+F0J]B8%U%!\e(B
+\e$B%$%k$O:o=|$5$l$^$9!#\e(B 
+
+@vindex gnus-use-dribble-file
+@code{gnus-use-dribble-file} \e$B$,\e(B @code{nil} \e$B$G$"$k$H!"\e(Bgnus \e$B$O%I%j%V%k%P%C\e(B
+\e$B%U%!$r$D$/$C$?$j!"0];}$7$?$j$7$^$;$s!#%G%#%U%)%k%H$O\e(B @code{t} \e$B$G$9!#\e(B
+
+@vindex gnus-dribble-directory
+Gnus \e$B$O%I%j%V%k%U%!%$%k$r\e(B @code{gnus-dribble-directory} \e$B$KCV$-$^$9!#%G%#\e(B
+\e$B%U%)%k%H$G$O$=$N$h$&$K$J$C$F$$$^$9$,!"$3$NJQ?t$,\e(B @code{nil} \e$B$G$"$k$H!"\e(B
+gnus \e$B$O%U%!%$%k\e(B@file{.newsrc} \e$B$NCV$+$l$F$$$k%G%#%l%/%H%j\e(B (\e$B$3$l$OIaDL$OMx\e(B
+\e$BMQ<T$N%[!<%`%G%#%l%/%H%j$G$9\e(B) \e$B$KF~$C$F$$$C$F%I%j%V%k%U%!%$%k$r:n$j$^$9!#\e(B
+\e$B%I%j%V%k%U%!%$%k$O\e(B @code{.newsrc} \e$B$HF1$85v2DB0@-$rM?$($i$l$^$9!#\e(B 
+
+
+@node The Active File
+@section The Active File
+@cindex active file
+@cindex ignored groups
+
+Gnus \e$B$O5/F0$7$?$H$-$d!"<B:]$K?7$7$$5-;v$,E~Ce$7$F$$$k$+$r7hDj$7$h$&$H$9\e(B
+\e$B$k$H$-$K!"8=>u%U%!%$%k$rFI$_9~$_$^$9!#$3$l$O$H$F$bBg$-$J%U%!%$%k$G!"$=$N\e(B
+\e$B%5!<%P!<$N3hF0Cf$N%0%k!<%W$H5-;v$N$9$Y$F$N%j%9%H$,F~$C$F$$$^$9!#\e(B
+
+@vindex gnus-ignored-newsgroups
+\e$B8=>u%U%!%$%k$r8!::$9$kA0$K!"\e(Bgnus \e$B$O@55,I=8=\e(B 
+@code{gnus-ignored-newsgroups} \e$B$K9g$&$9$Y$F$N9T$r:o=|$7$^$9!#$3$l$O<g$K\e(B
+\e$B56$NL>A0$r;}$D%0%k!<%W$rGS=|$9$k$?$a$K;H$o$l$F$-$^$7$?$,!"6=L#$NL5$$%0%k!<\e(B
+\e$B%W$N3,AX$rL5;k$9$k$?$a$K;H$&$3$H$b$G$-$^$9!#$7$+$7!"$3$l$O$*4+$a$G$-$^$;\e(B
+\e$B$s!#K\Ev$N$3$H$r8@$&$H!"A4$/;?@.$G$-$^$;$s!#Be$o$j$K!"$=$N$h$&$JMQES$KMQ\e(B
+\e$B$$$i$l$kJQ?t$N35N,$rCN$k$?$a$K!"\e(B@pxref{New Groups} \e$B$r;2>H$7$F$/$@$5$$!#\e(B
+
+@c This variable is
+@c @code{nil} by default, and will slow down active file handling somewhat
+@c if you set it to anything else.
+
+@vindex gnus-read-active-file
+@c @head
+\e$B8=>u%U%!%$%k$OHf3SE*Bg$-$/$J$k798~$,$"$k$N$G!"CY$$2s@~$r;H$C$F$$$k$H$-$O!"\e(B
+\e$B8=>u%U%!%$%k$rFI$_9~$^$J$$$h$&$K\e(B @code{gnus-read-active-file} \e$B$r\e(B 
+@code{nil} \e$B$K@_Dj$9$k$3$H$,$G$-$^$9!#$3$NJQ?t$O%G%#%U%)%k%H$G$O\e(B
+@code{some} \e$B$G$9!#\e(B
+
+\e$B$=$N$h$&$J;~$O!"\e(Bgnus \e$B$O<B:]$K9XFI$5$l$F$$$k%0%k!<%W$K4X$9$k>pJs$@$1$rF@\e(B
+\e$B$F$d$C$F$$$3$&$H$7$^$9!#\e(B
+
+\e$B5$$rIU$1$F$[$7$$$N$O!"$"$J$?$,;3$[$I$N$?$/$5$s$N%0%k!<%W$r9XFI$7$F$$$k$H\e(B
+\e$B$-$K$3$NJQ?t$r\e(B @code{nil} \e$B@_Dj$9$k$H!"\e(Bgnus \e$B$OB.$/$J$k$I$3$m$+!"CY$/$J$C\e(B
+\e$B$F$7$^$&$H$$$&$3$H$G$9!#8=>u$G$O!"%K%e!<%:$r\e(B 2400bps \e$B0J>e$N%b%G%`$rDL$7\e(B
+\e$B$FFI$s$G$$$k$N$G$J$$8B$j!"\e(Bgnus \e$B$NB.EY$O$+$J$jCY$/$J$k$G$7$g$&!#\e(B
+
+\e$B$3$NJQ?t$O\e(B @code{some} \e$B$H$$$&CM$b<h$k$3$H$,$G$-$^$9!#$=$N;~$O!"\e(Bgnus \e$B$O8=\e(B
+\e$B>u$N>pJs$r9XFI$5$l$F$$$k%0%k!<%W$N$b$N$@$1$rF@$h$&$H$7$^$9!#$$$/$D$+$N%5!<\e(B
+\e$B%P!<\e(B (\e$BL?Na\e(B@code{LIST ACTIVE group} \e$B$r;H$&$3$H$N$G$-$k!":G?71T$N\e(B INN \e$B%5!<\e(B
+\e$B%P!<\e(B) \e$B$G$O!"Hs>o$KAa$/$J$k$G$7$g$&$,!"B>$N%5!<%P!<$G$OB.$/$O$"$j$^$;$s!#\e(B
+\e$B$I$N$h$&$K$;$h!"CY$$2s@~$G$O\e(B @code{some} \e$B$O\e(B @code{nil} \e$B$h$j$bB.$/!"$=$l\e(B
+\e$B$O$b$A$m$s\e(B@code{t} \e$B$h$j$bB.$/$J$j$^$9!#\e(B
+
+\e$B$b$7$3$NJQ?t$,\e(B @code{nil} \e$B$G$"$k$H!"\e(Bgnus \e$B$O40A4$K$,$s$8$,$i$a$NJ}K!$G%0\e(B
+\e$B%k!<%W$N>pJs$rF@$h$&$H$7$^$9!#$=$7$F!"$3$l$O$"$^$jB.$/$"$j$^$;$s!#$b$7$=\e(B
+\e$B$l$,\e(B @code{some} \e$B$G\e(B @sc{nntp} \e$B%5!<%P!<$r;H$C$F$$$k$H$-$O!"\e(Bgnus \e$B$O$G$-$k\e(B
+\e$B$@$1B.$/L?Na$r=P$7!"0l7b$G$9$Y$F$NJVEz$rFI$_9~$_$^$9!#$3$NJ}$,IaDL$O$h$j\e(B
+\e$BNI$$7k2L$r$b$?$i$7$^$9$,!"%5!<%P!<$,L?Na\e(B @code{LIST ACTIVE group} \e$B$rM}2r\e(B
+\e$B$7$J$$$J$i!"%5!<%P!<$K$H$C$F$O$"$^$jNI$$$H$O8@$($^$;$s!#\e(B
+
+@code{some} \e$B$+\e(B @code{nil} \e$B$r;H$&$N$G$"$l$P!"$I$A$i$K$7$mB.EY$r>e$2$k$?$a\e(B
+\e$B$K$9$Y$F$N6=L#$NL5$$%0%k!<%W$rI,$::o=|$9$k$Y$-$G$7$g$&!#\e(B
+
+\e$B$3$NJQ?t$O\e(B2\e$BHVL\$N\e(B (secondary) \e$BJ}K!$N8=>u%U%!%$%k<hF@$K$b1F6A$9$k$3$H$K5$\e(B
+\e$B$rIU$1$F$/$@$5$$!#\e(B
+
+
+@node Startup Variables
+@section Startup Variables
+
+@table @code
+
+@item gnus-load-hook
+@vindex gnus-load-hook
+Gnus \e$B$,FI$_9~$^$l$F$$$k$H$-$K<B9T$5$l$k%U%C%/$G$9!#2?EY\e(B gnus \e$B$r5/F0$7$F\e(B
+\e$B$b!"\e(BEmacs\e$B$,5/F0$7$F$+$i=*N;$9$k$^$G$KIaDL$O$3$N%U%C%/$O0l2s$7$+<B9T$5$l\e(B
+\e$B$J$$$3$H$KCm0U$7$F$/$@$5$$!#\e(B
+
+@item gnus-before-startup-hook
+@vindex gnus-before-startup-hook
+Gnus \e$B$N5/F0$K@.8y$7$?8e$K<B9T$5$l$k%U%C%/$G$9!#\e(B
+
+@item gnus-startup-hook
+@vindex gnus-startup-hook
+Gnus \e$B$,5/F0$5$l$?8e$K!"0lHV:G8e$K<B9T$5$l$k%U%C%/$G$9!#\e(B
+
+@item gnus-started-hook
+@vindex gnus-started-hook
+Gnus \e$B$N5/F0$K@.8y$7$?8e$K!"0lHV:G8e$K<B9T$5$l$k%U%C%/$G$9!#\e(B
+
+@item gnus-started-hook
+@vindex gnus-started-hook
+
+\e$B%U%!%$%k\e(B @file{.newsrc} \e$B$rFI$_9~$s$@8e$G!"%0%k!<%W%P%C%U%!$r:n@.$9$kA0$K\e(B
+\e$B<B9T$5$l$k%U%C%/$G$9!#\e(B
+
+@item gnus-check-bogus-newsgroups
+@vindex gnus-check-bogus-newsgroups
+\e$B$b$7\e(B @code{nil} \e$B$G$J$$$H!"\e(Bgnus \e$B$O5/F0;~$KD4$Y$F$9$Y$F$N56%0%k!<%W$r:o=|\e(B
+\e$B$7$^$9!#\e(B@dfn{\e$B56%0%k!<%W\e(B (bogus group)} \e$B$O$"$J$?$N\e(B @file{.newsrc} \e$B%U%!%$\e(B
+\e$B%k$K$OB8:_$9$k$1$l$I!"%K%e!<%:%5!<%P!<$K$O<B:]$K$OB8:_$7$J$$!"$H$$$&%0%k!<\e(B
+\e$B%W$N$3$H$G$9!#56%0%k!<%W$rD4$Y$k$N$K$O$+$J$j;~4V$,$+$+$j$^$9$N$G!";~4V$H\e(B
+\e$B;q8;$r@aLs$9$k$?$a$K!"$3$N5!G=$O;H$o$J$$$[$&$,$$$$$G$7$g$&!#$=$7$F!"Be$o\e(B
+\e$B$j$K%0%k!<%W%P%C%U%!$G;~!956%0%k!<%W$rD4$Y$k$N$,NI$$$G$7$g$&\e(B
+(@pxref{Group Maintenance} \e$B$r;2>H$7$F$/$@$5$$\e(B)\e$B!#\e(B
+
+@item gnus-inhibit-startup-message
+@vindex gnus-inhibit-startup-message
+\e$B$b$7\e(B @code{nil} \e$B$G$J$$$H!"5/F0;~$N%a%C%;!<%8$OI=<($5$l$^$;$s!#$=$N$h$&$K\e(B
+\e$B$9$l$P!";E;v$NBe$o$j$K%K%e!<%:$rFI$s$G$$$k$N$r>e;J$K5$IU$+$l$K$/$/$J$k$G\e(B
+\e$B$7$g$&!#$3$NJQ?t$O\e(B @file{.gnus.el} \e$B$,%m!<%I$5$l$kA0$K;H$o$l$^$9$N$G!"\e(B
+@code{.emacs} \e$B$K@_Dj$9$k$Y$-$G$"$kE@$rCm0U$7$F$/$@$5$$!#\e(B
+
+@item gnus-no-groups-message
+@vindex gnus-no-groups-message
+\e$B%0%k!<%W$,0l$D$bB8:_$7$J$$$H$-$K\e(B gnus \e$B$,I=<($9$k%a%C%;!<%8$G$9!#\e(B
+
+@item gnus-play-startup-jingle
+@vindex gnus-play-startup-jingle
+\e$B$b$7\e(B @code{nil} \e$B$G$J$$$H!"5/F0;~$K\e(B gnus \e$B$NC;$$6J$r1iAU$7$^$9!#\e(B
+
+@item gnus-startup-jingle
+@vindex gnus-startup-jingle
+\e$B>e$NJQ?t$,\e(B @code{nil} \e$B$G$J$$$H$-$K1iAU$5$l$kC;$$6J$G$9!#%G%#%U%)%k%H$O\e(B
+@samp{Tuxdemoon.Jingle4.au} \e$B$G$9!#\e(B
+
+@end table
+
+
+@node The Group Buffer
+@chapter \e$B%0%k!<%W%P%C%U%!\e(B
+@cindex group buffer
+
+\e$B%0%k!<%W%P%C%U%!\e(B @dfn{group buffer} \e$B$OM-8z$J%0%k!<%W$rA4It\e(B(\e$B$"$k\e(B
+\e$B$$$O0lIt$r\e(B)\e$B0lMwI=<($7$^$9!#$3$l$O\e(B Gnus \e$B$r5/F0$7$?$H$-$K:G=i$KI=\e(B
+\e$B<($5$l$k%P%C%U%!$G!"\e(BGnus \e$B$,@8$-$F$$$k8B$j7h$7$F>C$5$l$k$3$H$O$"\e(B
+\e$B$j$^$;$s!#\e(B
+
+
+@iftex
+@iflatex
+\gnusfigure{The Group Buffer}{320}{
+\put(75,50){\epsfig{figure=tmp/group.ps,height=9cm}}
+\put(120,37){\makebox(0,0)[t]{Buffer name}}
+\put(120,38){\vector(1,2){10}}
+\put(40,60){\makebox(0,0)[r]{Mode line}}
+\put(40,58){\vector(1,0){30}}
+\put(200,28){\makebox(0,0)[t]{Native select method}}
+\put(200,26){\vector(-1,2){15}}
+}
+@end iflatex
+@end iftex
+
+@menu
+* Group Buffer Format::    \e$BI=<($5$l$F$$$k>pJs$HJQ99$NJ}K!!#\e(B
+* Group Maneuvering::      \e$B%0%k!<%W%P%C%U%!$r0\F0$9$k%3%^%s%I!#\e(B
+* Selecting a Group::      \e$B<B:]$K%K%e!<%9$rFI$`!#\e(B
+* Group Data::             \e$B%0%k!<%W$N>pJs$rJQ99$9$k!#\e(B
+* Subscription Commands::  \e$B9XFI!"9XFICf;_!">C5n!#\e(B
+* Group Levels::           \e$B%l%Y%k\e(B? \e$B$=$l$C$F2?\e(B?
+* Group Score::            \e$B$"$J$?$N9%$-$J%0%k!<%W$r8+$D$1=P$9J}K!!#\e(B
+* Marking Groups::         \e$B%0%k!<%W$K0u$r$D$1$F$*$$$F!"8e$G=hM}$G$-$^$9!#\e(B
+* Foreign Groups::         \e$B%0%k!<%W$N:n@.$H=$@5!#\e(B
+* Group Parameters::       \e$B%0%k!<%WKh$K0c$C$?%Q%i%a!<%?$r;}$?$;$i$l$^$9!#\e(B
+* Listing Groups::         Gnus \e$B$O%0%k!<%W$r$$$m$$$m$JJ,$1J}$GI=<($G$-$^$9!#\e(B
+* Sorting Groups::         \e$B%0%k!<%W$N=gHV$NG[CVBX$(!#\e(B
+* Group Maintenance::      \e$B$-$l$$$J\e(B @file{.newsrc} \e$B$NJ]$AJ}!#\e(B
+* Browse Foreign Server::  \e$B%5!<%P$r%V%i%&%:$G$-$^$9!#2?$,FI$a$k$N$+8+$F$_$h$&!#\e(B
+* Exiting Gnus::           \e$B%K%e!<%9FI$`$N$r$d$a$F!";E;v$r$7$h$&!#\e(B
+* Group Topics::           \e$B%0%k!<%W$r@Z$j:.$<$F!"%H%T%C%/$4$H$KJ,3d$9$k!#\e(B
+* Misc Group Stuff::       \e$BB>$K$G$-$k$3$H!#\e(B
+@end menu
+
+
+@node Group Buffer Format
+@section \e$B%0%k!<%W%P%C%U%!$N7A<0\e(B
+
+@menu
+* Group Line Specification::       \e$B%0%k!<%W%P%C%U%!$N8+$(J}$r7h$a$k!#\e(B
+* Group Modeline Specification::   \e$B%0%k!<%W%P%C%U%!$N%b!<%I9T!#\e(B
+* Group Highlighting::             \e$B%0%k!<%W%P%C%U%!$K$-$l$$$K?'$r$D$1$k!#\e(B
+@end menu
+
+
+@node Group Line Specification
+@subsection \e$B%0%k!<%W9T$N;EMM\e(B
+@cindex group buffer format
+
+\e$B%0%k!<%W%P%C%U%!$N%G%U%)%k%H$G$N7A<0$O$-$l$$$G$D$^$s$J$$$1$I!"$3\e(B
+\e$B$l$O7/$N9%$-$J$h$&$K!"%5%$%3!<$K%@%5$/$9$k$3$H$b$G$-$^$9!#\e(B
+
+\e$B$3$l$,%0%k!<%W9T$NNc$G$9!#\e(B
+
+@example
+     25: news.announce.newusers
+ *    0: alt.fan.andrea-dworkin
+@end example
+
+\e$B$H$C$F$b4JC1$G$7$g\e(B?
+
+@samp{news.announce.newusers} \e$B$K$O\e(B 25 \e$B$NL$FI5-;v$,$"$k$N$,$o$+$j\e(B
+\e$B$^$9!#\e(B@samp{alt.fan.andrea-dworkin} \e$B$K$OL$FI5-;v$O$J$$$1$l$I$b!"\e(B
+\e$B0u$r$D$1$?5-;v$,$$$/$D$+$"$j$^$9\e(B(\e$B9TF,$N$A$C$A$c$J%"%9%?%j%9%/$,\e(B
+\e$B8+$($k\e(B?)\e$B!#\e(B
+
+@vindex gnus-group-line-format
+\e$B$3$N7A<0$O\e(B @code{gnus-group-line-format} \e$BJQ?t$r$$$8$k$3$H$G!"$I\e(B
+\e$B$s$JIw$K$G$bJQ$($i$l$^$9!#$3$NJQ?t$O\e(B @code{format} \e$B$N;EMMIw$K\e(B
+\e$BF0:n$7$^$9!#$D$^$j\e(B(\e$B$"$N%/%=\e(B)C\e$B8@8l$r;H$&?M$?$A$N$?$a!"\e(B printf \e$B$N\e(B
+\e$B;EMM$H$[$\F1$8$G$9!#\e(B@xref{Formatting Variables}
+
+@samp{%M%S%5y: %(%g%)\n} \e$B$H$$$&CM$G>e5-$N9T$r@8@.$7$^$9!#\e(B
+
+\e$B%3%m%s$O!"$3$N9T$NCf$KI,$:L5$/$F$O$$$1$^$;$s!#%+!<%=%k$O!"2?$+$N\e(B
+\e$BA`:n$r$7$?8e$O>o$K%3%m%s$N$H$3$m$K0\F0$9$k$+$i$G$9!#B>$K$O2?$bI,\e(B
+\e$BMW$G$O$"$j$^$;$s\e(B -- \e$B%0%k!<%WL>$5$($b$G$9!#I=<($5$l$F$$$kJ8;z$OA4\e(B
+\e$B$F$?$@$N2hLL$N>~$j$G$"$j!"\e(BGnus \e$B$,$=$l$rD4$Y$k$3$H$O$"$j$^$;$s!#\e(B
+Gnus \e$B$OI,MW$H$9$kA4$F$N<B>pJs$r!"%F%-%9%HB0@-$r;H$C$F21$($F$$$^\e(B
+\e$B$9!#\e(B
+
+
+(\e$B$b$77/$,!"$9$4$/%X%s$J!"AG@2$i$7$$!"I=7W;;Iw$N%l%$%"%&%H$r:n$C\e(B
+\e$B$?$H$7$?$i!"$_$s$J!"7/$O2q7W$N;E;v$,K;$7$/$C$F!"%K%e!<%9$rFI$s$G\e(B
+\e$B;~4V$rL5BL;H$$$7$?$j$J$s$+$7$F$J$$!"$C$F?.$8$F$/$l$k$h!#\e(B)
+
+\e$B0J2<$,;HMQ$G$-$k%U%)!<%^%C%HJ8;z$N%j%9%H$G$9!#\e(B
+
+@table @samp
+
+@item M
+\e$B$=$N%0%k!<%W$,0u$N$D$$$?5-;v$@$1$N$H$-$O!"%"%9%?%j%9%/J8;z!#\e(B
+
+@item S
+\e$B$=$N%0%k!<%W$,9XFI$5$l$F$$$k$+$I$&$+!#\e(B
+
+@item L
+\e$B9XFIEY$N%l%Y%k!#\e(B
+
+@item N
+\e$BL$FI5-;v$N?t!#\e(B
+
+@item I
+\e$BJ]N15-;v$N?t!#\e(B
+
+@item T
+\e$B0uIU$-5-;v$N?t!#\e(B
+
+@item R
+\e$B4{FI5-;v$N?t!#\e(B
+
+@item t
+\e$B?dDjA45-;v?t!#\e(B(\e$B$3$l$O<B:]$O\e(B @var{max-number} - @var{min-number}
++ 1\e$B!#\e(B)
+
+@item y
+\e$BL$FI$G$b!"0uIU$-$G$b!"J]N1$G$b$J$$5-;v$N?t!#\e(B
+
+@item i
+\e$B0uIU$-5-;v$HJ]N15-;v$N?t!#\e(B
+
+@item g
+\e$B%0%k!<%WL>$N%U%k%M!<%`!#\e(B
+
+@item G
+\e$B%0%k!<%WL>!#\e(B
+
+@item D
+\e$B%K%e!<%:%0%k!<%W$N@bL@!#\e(B
+
+@item o
+\e$B%b%G%l!<%F%C%I$N>l9g\e(B @samp{m} \e$B!#\e(B
+
+@item O
+\e$B%b%G%l!<%F%C%I$N>l9g\e(B @samp{(m)} \e$B!#\e(B
+
+@item s
+\e$BA*Br%a%=%C%I!#\e(B
+
+@item n
+\e$B$I$3$+$i$NA*Br$+!#\e(B
+
+@item z
+\e$B30ItA*Br%a%=%C%I$,;H$o$l$F$$$k>l9g!"\e(B@samp{<%s:%n>} \e$B$HF1$8J8;zNs!#\e(B
+
+@item P
+\e$B%H%T%C%/\e(B(@pxref{Group Topics})\e$B$N%l%Y%k$K1~$8$?;z2<$2!#\e(B
+
+@item c
+@vindex gnus-group-uncollapsed-levels
+\e$BC;$$\e(B(\e$B>JN,$7$?\e(B)\e$B%0%k!<%WL>!#\e(B@code{gnus-group-uncollapsed-levels}
+\e$BJQ?t$O!"$I$N%l%Y%k$^$G%0%k!<%WL>$rA4It;D$9$+$r<($7$^$9!#%G\e(B
+\e$B%U%)%k%H$O\e(B 1 \e$B$G$9\e(B -- \e$B$3$N0UL#$O!"\e(B@samp{gnu.emacs.gnus} \e$B$N$h$&$J\e(B
+\e$B%0%k!<%WL>$r\e(B @samp{g.emacs.gnus} \e$B$KC;=L$9$k$H$$$&$3$H$G$9!#\e(B
+
+@item m
+@vindex gnus-new-mail-mark
+@cindex %
+\e$B$=$N%0%k!<%W$K:G6a?7Ce%a!<%k$,FO$$$F$$$k>l9g$O\e(B @samp{%}
+(@code{gnus-new-mail-mark})\e$B!#\e(B
+
+@item d
+\e$B:G8e$K$$$D$3$N%0%k!<%W$rFI$s$@$+$r<($9J8;zNs\e(B(@pxref{Group
+Timestamp})\e$B!#\e(B
+
+
+@item u
+\e$B%f!<%6Dj5A;XDj!#%U%)!<%^%C%HJ8;zNsCf$G!"$3$N<!$NJ8;z$O%"%k%U%!%Y%C\e(B
+\e$B%HJ8;z$G$J$1$l$P$$$1$^$;$s!#\e(BGnus \e$B$O\e(B
+@code{gnus-user-format-function-}@samp{X} \e$B4X?t$r8F$S=P$7$^$9!#$3\e(B
+\e$B$3$G\e(B @samp{X} \e$B$O\e(B @samp{%u} \e$B$KB3$$$F$$$kJ8;z$G$9!#$3$N4X?t$O0z?t\e(B
+\e$B$K!"0l$D$N%@%_!<%Q%i%a!<%?$rEO$5$l$^$9!#$3$N4X?t$O!"B>$N3F;XDjJ8\e(B
+\e$B;z$N>pJs$HF1MM$K!"%P%C%U%!$KA^F~$5$l$kJ8;zNs$rJV$5$J$1$l$P$J$j$^\e(B
+\e$B$;$s!#\e(B
+@end table
+
+@cindex *
+\e$BA4$F$N!V!A$N?t!W$N;XDj$G!"$b$7$=$N>pJs$,MxMQ$G$-$J$$>l9g$K$O%"%9%?%j\e(B
+\e$B%9%/\e(B(@samp{*}) \e$B$,Kd$a$i$l$^$9\e(B -- \e$BNc$($P!"5/F0$5$l$F$$$J$$30It%0\e(B
+\e$B%k!<%W$d!"IT@5$J%M%$%F%#%V%0%k!<%W$N>l9g$G$9!#\e(B
+
+
+@node Group Modeline Specification
+@subsection \e$B%0%k!<%W%b!<%I9T$N;EMM\e(B
+@cindex group modeline
+
+@vindex gnus-group-mode-line-format
+\e$B%b!<%I9T$O\e(B @code{gnus-group-mode-line-format} (@pxref{Formatting
+Variables}) \e$B$r@_Dj$9$k$3$H$GJQ99$G$-$^$9!#$3$$$D$O;XDjJ8;z$r$"$s\e(B
+\e$B$^$j$?$/$5$sCN$C$F$^$;$s!#\e(B
+
+@table @samp
+@item S
+\e$B%M%$%F%#%V$N%K%e!<%9%5!<%P!#\e(B
+@item M
+\e$B%M%$%F%#%V$NA*Br%a%=%C%I!#\e(B
+@end table
+
+
+@node Group Highlighting
+@subsection \e$B%0%k!<%W$N%O%$%i%$%H\e(B
+@cindex highlighting
+@cindex group highlighting
+
+@vindex gnus-group-highlight
+\e$B%0%k!<%W%P%C%U%!$N%O%$%i%$%H$O\e(B @code{gnus-group-highlight} \e$BJQ?t\e(B
+\e$B$K$h$C$F@)8f$5$l$F$$$^$9!#$3$l$O\e(B @var{(form . face)} \e$B$N$h$&$J$b\e(B
+\e$B$N$rMWAG$K;}$DO"A[%j%9%H$G$9!#\e(B@var{form} \e$B$,2?$+\e(B @code{nil} \e$B0J30\e(B
+\e$B$KI>2A$5$l$k$b$N$J$i!"$=$N9T$KBP$7$F\e(B @var{face} \e$B$,;HMQ$5$l$^$9!#\e(B
+
+\e$B0J2<$,$3$NJQ?t$NCM$NNc$G$9!#$3$l$OGX7J$,0E$$@_Dj$G$O$-$l$$$K8+$(\e(B
+\e$B$k$+$bCN$l$^$;$s!#\e(B
+
+@lisp
+(face-spec-set 'my-group-face-1 '((t (:foreground "Red" :bold t))))
+(face-spec-set 'my-group-face-2 '((t (:foreground "SeaGreen" :bold t))))
+(face-spec-set 'my-group-face-3 '((t (:foreground "SpringGreen" :bold t))))
+(face-spec-set 'my-group-face-4 '((t (:foreground "SteelBlue" :bold t))))
+(face-spec-set 'my-group-face-5 '((t (:foreground "SkyBlue" :bold t))))
+
+(setq gnus-group-highlight
+      '(((> unread 200) . my-group-face-1)
+       ((and (< level 3) (zerop unread)) . my-group-face-2)
+       ((< level 3) . my-group-face-3)
+       ((zerop unread) . my-group-face-4)
+       (t . my-group-face-5)))
+@end lisp
+
+@pxref{Faces and Fonts} \e$B$b;2>H$7$F$/$@$5$$!#\e(B
+
+\e$B$3$N\e(B form \e$B$,I>2A$5$l$k$H$-$KF0E*$KB+G{$5$l$F$$$kJQ?t$K$O0J2<$N$b\e(B
+\e$B$N$,$"$j$^$9!#\e(B
+
+
+@table @code
+@item group
+\e$B%0%k!<%WL>!#\e(B
+@item unread
+\e$B$=$N%0%k!<%W$NL$FI5-;v$N?t!#\e(B
+@item method
+\e$BA*Br%a%=%C%I!#\e(B
+@item mailp
+\e$B$=$N%0%k!<%W$,%a!<%k$N%0%k!<%W$+$I$&$+!#\e(B
+@item level
+\e$B$=$N%0%k!<%W$N%l%Y%k!#\e(B
+@item score
+\e$B$=$N%0%k!<%W$N%9%3%"!#\e(B
+@item ticked
+\e$B$=$N%0%k!<%WCf$N0u$NIU$$$?5-;v$N?t!#\e(B
+@item total
+\e$B$=$N%0%k!<%WCf$NA45-;v?t!#$b$C$H@53N$K8@$&$H!"\e(BMAX-NUMBER -
+MIN_NUMBER + 1\e$B!#\e(B
+@item topic
+\e$B%H%T%C%/%^%$%J!<%b!<%I$r;HMQ$7$F$$$k;~!"$3$NJQ?t$OA^F~$5$l$F$$\e(B
+\e$B$k8=:_$N%H%T%C%/$KB+G{$5$l$^$9!#\e(B 
+@end table
+
+\e$B$3$N\e(B form \e$B$,\e(B @code{eval} \e$B$5$l$k$H$-$O!"%]%$%s%H$OLdBj$N%0%k!<%W\e(B
+\e$B$N9TF,$K$"$j$^$9!#=>$C$F!"DL>o$N\e(B Gnus \e$B$N4X?t$N$[$H$s$I$r;H$C$F$=\e(B
+\e$B$N%0%k!<%W$N>pJs$r<h$C$F$/$k$3$H$,$G$-$^$9!#\e(B
+
+@vindex gnus-group-update-hook
+@findex gnus-group-highlight-line
+@code{gnus-group-update-hook} \e$B$O%0%k!<%W9T$,JQ99$5$l$?$H$-$K8F$S\e(B
+\e$B=P$5$l$^$9!#$3$l$O\e(B @code{gnus-visual} \e$B$,\e(B @code{nil} \e$B$N$H$-$O8F$S\e(B
+\e$B=P$5$l$^$;$s!#$3$N%U%C%/$O%G%U%)%k%H$G$O\e(B
+@code{gnus-group-highlight-line} \e$B$r8F$S=P$7$^$9!#\e(B
+
+@node Group Maneuvering
+@section \e$B%0%k!<%WA`:n\e(B
+@cindex group movement
+
+\e$BA4$F$N0\F0%3%^%s%I$O?t;z%W%l%U%#%C%/%9$rM}2r$9$k$N$G!"4|BT$9$kDL\e(B
+\e$B$j$NF0:n$r$7$^$9!#$?$V$s$M!#\e(B
+
+@table @kbd
+
+@item n
+@kindex n (Group)
+@findex gnus-group-next-unread-group
+\e$B<!$NL$FI5-;v$N$"$k%0%k!<%W$K0\F0$7$^$9\e(B
+(@code{gnus-group-next-unread-group})\e$B!#\e(B
+
+@item p
+@itemx DEL
+@kindex DEL (Group)
+@kindex p (Group)
+@findex gnus-group-prev-unread-group
+\e$B0l$DA0$NL$FI5-;v$N$"$k%0%k!<%W$K0\F0$7$^$9\e(B
+(@code{gnus-group-prev-unread-group})\e$B!#\e(B
+
+@item N
+@kindex N (Group)
+@findex gnus-group-next-group
+\e$B<!$N%0%k!<%W$K0\F0$7$^$9\e(B (@code{gnus-group-next-group})\e$B!#\e(B
+
+@item P
+@kindex P (Group)
+@findex gnus-group-prev-group
+\e$B0l$DA0$N%0%k!<%W$K0\F0$7$^$9\e(B (@code{gnus-group-prev-group})\e$B!#\e(B
+
+@item M-p
+@kindex M-p (Group)
+@findex gnus-group-next-unread-group-same-level
+\e$B<!$NF1$8%l%Y%k\e(B(\e$B$b$7$/$O$=$l$h$j>.$5$$%l%Y%k\e(B)\e$B$NL$FI%0%k!<%W$K0\F0$7$^$9\e(B
+(@code{gnus-group-next-unread-group-same-level})\e$B!#\e(B
+
+@item M-n
+@kindex M-n (Group)
+@findex gnus-group-prev-unread-group-same-level
+\e$B0l$DA0$NF1$8%l%Y%k\e(B(\e$B$b$7$/$O$=$l$h$j>.$5$$%l%Y%k\e(B)\e$B$NL$FI%0%k!<%W$K0\F0$7$^$9\e(B
+(@code{gnus-group-prev-unread-group-same-level})\e$B!#\e(B
+@end table
+
+\e$B%0%k!<%W$K%8%c%s%W$9$k\e(B 3 \e$B$D$N%3%^%s%I$G$9!#\e(B
+
+@table @kbd
+
+@item j
+@kindex j (Group)
+@findex gnus-group-jump-to-group
+\e$B%0%k!<%W$K%8%c%s%W$7$^$9\e(B(\e$B$=$l$,8+$($k$h$&$K$J$C$F$$$J$+$C$?$i8+\e(B
+\e$B$($k$h$&$K$7$^$9\e(B) (@code{gnus-group-jump-to-group})\e$B!#\e(Bkill \e$B$5$l$F\e(B
+\e$B$$$k%0%k!<%W$b!"@8$-$F$k%0%k!<%W$HF1MM$K%8%c%s%W$G$-$^$9!#\e(B
+
+@item ,
+@kindex , (Group)
+@findex gnus-group-best-unread-group
+\e$B:G$b>.$5$$%l%Y%k$NL$FI%0%k!<%W$K%8%c%s%W$7$^$9\e(B
+(@code{gnus-group-best-unread-group})\e$B!#\e(B
+
+@item .
+@kindex . (Group)
+@findex gnus-group-first-unread-group
+\e$B:G=i$NL$FI5-;v$N$"$k%0%k!<%W$K%8%c%s%W$7$^$9\e(B
+(@code{gnus-group-first-unread-group})\e$B!#\e(B
+@end table
+
+@vindex gnus-group-goto-unread
+@code{gnus-group-goto-unread} \e$B$,\e(B @code{nil} \e$B$K$9$k$H!"A4$F$N0\F0\e(B
+\e$B%3%^%s%I$O!"<!$NL$FI%0%k!<%W$G$O$J$/<!$N%0%k!<%W$K0\F0$9$k$h$&$K\e(B
+\e$B$J$j$^$9!#$=$N%3%^%s%I$,<!$NL$FI%0%k!<%W$K0\F0$9$k!"$H8@$$D%$C$F\e(B
+\e$B$$$F$b!"$G$9!#%G%U%)%k%H$O\e(B @code{t} \e$B$G$9!#\e(B
+
+
+@node Selecting a Group
+@section \e$B%0%k!<%W$NA*Br\e(B
+@cindex group selection
+
+@table @kbd
+
+@item SPACE
+@kindex SPACE (Group)
+@findex gnus-group-read-group
+\e$B8=:_$N%0%k!<%W$rA*Br$7!"%5%^%j%P%C%U%!$K@Z$jBX$($F:G=i$NL$FI5-;v\e(B
+\e$B$rI=<($7$^$9\e(B (@code{gnus-group-read-group})\e$B!#$b$7$=$N%0%k!<%W$K\e(B
+\e$BL$FI5-;v$,L5$$!"$b$7$/$O$3$N%3%^%s%I$K?t;z0J30$N%W%l%U%#%C%/%9$r\e(B
+\e$BM?$($k$H!"\e(BGnus \e$B$O%5!<%P$+$i$3$N%0%k!<%W$NA4$F$N8E$$5-;v$r<hF@$7\e(B
+\e$B$h$&$H$7$^$9!#\e(B@var{N} \e$B$N?t;z%W%l%U%#%C%/%9$rM?$($k$H!"\e(BGnus \e$B$N<h\e(B
+\e$BF@$9$k5-;v?t$O\e(B @var{N} \e$B$K$J$j$^$9!#\e(B@var{N} \e$B$,@5$N?t$G$"$l$P\e(B Gnus
+\e$B$O?7$7$$J}$+$i\e(B @var{N} \e$B8D$N5-;v$r<hF@$7!"\e(B @var{N} \e$B$,Ii$N?t$G$"$l\e(B
+\e$B$P\e(BGnus \e$B$O8E$$J}$+$i\e(B @var{N} \e$B8D$N5-;v$r<hF@$7$^$9!#\e(B
+
+
+@item RET
+@kindex RET (Group)
+@findex gnus-group-select-group
+\e$B8=:_$N%0%k!<%W$rA*Br$7!"%5%^%j%P%C%U%!$K@Z$jBX$($^$9\e(B
+(@code{gnus-group-select-group})\e$B!#\e(B@code{gnus-group-read-group}
+\e$B$HF1$80z?t$r<h$j$^$9\e(B -- \e$BM#0l$N0c$$$O!"%0%k!<%W$KF~$C$?$H$-$K:G=i\e(B
+\e$B$NL$FI5-;v$rI=<($7$J$$!"$H$$$&$3$H$G$9!#\e(B
+
+@item M-RET
+@kindex M-RET (Group)
+@findex gnus-group-quick-select-group
+\e$B$3$l$O>e5-$N%3%^%s%I$HF1$8F0:n$r$7$^$9$,!"!V%4%?%4%?!W$O:GDc8B$K\e(B
+\e$B$7$h$&$H$7$^$9\e(B (@code{gnus-group-quick-select-group})\e$B!#%9%3%"!&\e(B
+kill \e$B$N=hM}$O9T$o$l$:!"%O%$%i%$%H$b5-;v>C5n$b$7$^$;$s!#$3$l$O!"\e(B
+\e$B$"$J$?$,K\Ev$K5^$$$G$$$F!"$I$C$+$N$d$?$i$G$C$+$$%0%k!<%W$KF~$i$J\e(B
+\e$B$1$l$P$$$1$J$$$H$-$KLr$KN)$D$+$b$7$l$^$;$s!#$^$?!"%W%l%U%#%C%/%9\e(B
+\e$B$K\e(B 0 \e$B$rM?$($l$P\e(B(\e$B$9$J$o$A\e(B @kbd{0 M-RET})\e$B!"\e(BGnus \e$B$O%5%^%j%P%C%U%!$r\e(B
+\e$B:n$m$&$H$5$($7$^$;$s!#$3$l$O%5%^%j%P%C%U%!$r:n$kA0$K%9%l%C%II=<(\e(B
+\e$B$r@Z$jBX$($?$$$H$-Lr$KN)$A$^$9\e(B 
+(@pxref{Summary Generation Commands})\e$B!#\e(B
+
+@item M-SPACE
+@kindex M-SPACE (Group)
+@findex gnus-group-visible-select-group
+\e$B$3$l$O\e(B @kbd{RET} \e$B%3%^%s%I$HF1$8F0:n$r$9$k$5$i$K$b$&0l$D$N%3%^%s\e(B
+\e$B%I$G$9$,!"$3$N%3%^%s%I$O5-;v>C5n$HJ]N15-;v$r1#$9=hM}$r9T$$$^$;$s\e(B
+(@code{gnus-group-visible-select-group})\e$B!#\e(B
+
+@item M-C-RET
+@kindex M-C-RET (Group)
+@findex gnus-group-select-group-ephemerally
+\e$B:G8e$K$3$N%3%^%s%I$O!"8=:_$N%0%k!<%W$r0lEY8B$j!"$=$NFbMF$K0l@Z$N\e(B
+\e$B=hM}$r$9$k$3$H$N$J$$$h$&$KA*Br$7$^$9\e(B
+(@code{gnus-group-select-group-ephemerally})\e$B!#\e(B \e$B%9%l%C%II=<($5\e(B
+\e$B$($b9T$o$l$^$;$s!#$3$NJ}K!$GA*Br$7$?8e$K$3$N%0%k!<%W$KBP$7$F9T$C\e(B
+\e$B$?$3$H$OA4$F!"$=$N8e$K1F6A$rM?$($k$3$H$O$"$j$^$;$s!#\e(B
+
+@end table
+
+@vindex gnus-large-newsgroup
+@code{gnus-large-newsgroup} \e$BJQ?t$O!"2?$rBg$-$J%0%k!<%W$H9M$($k$Y\e(B
+\e$B$-$+!"$r\e(B Gnus \e$B$KM?$($^$9!#$3$l$O\e(B \e$B%G%U%)%k%H$G$O\e(B 200 \e$B$G$9!#%0%k!<\e(B
+\e$B%W$K\e(B(\e$BL$FI$H0uIU$-$N\e(B)\e$B5-;v$,$3$N?t0J>e$"$l$P!"\e(BGnus \e$B$O$=$N%0%k!<%W\e(B
+\e$B$KF~$kA0$K%f!<%6$K3NG'$r5a$a$^$9!#%f!<%6$O%5!<%P$+$i$$$/$D$N5-;v\e(B
+\e$B$r<hF@$9$k$+$r;XDj$G$-$^$9!#$b$7%f!<%6$,Ii$N?t\e(B (@code{-n})\e$B$r;XDj\e(B
+\e$B$9$l$P!"8E$$J}$+$i\e(B @code{n} \e$B8D$N5-;v$r<hF@$7$^$9!#@5$N?t$G$"$l$P!"\e(B
+\e$B?7$7$/E~Ce$7$?J}$+$i\e(B @code{n} \e$B8D$N5-;v$r<hF@$7$^$9!#\e(B
+
+@vindex gnus-select-group-hook
+@vindex gnus-auto-select-first
+@code{gnus-auto-select-first} \e$B$O!"\e(B@kbd{SPACE} \e$B%3%^%s%I$G%0%k!<%W\e(B
+\e$B$KF~$C$?$H$-$K!"<+F0E*$K5-;v$rA*Br$9$k$+$I$&$+$r@)8f$7$^$9!#\e(B
+
+@table @code
+
+@item nil
+\e$B%0%k!<%W$KF~$C$?$H$-$K$I$N5-;v$bA*Br$7$J$$!#$?$@%5%^%j%P%C%U%!$r\e(B
+\e$BI=<($9$k$@$1!#\e(B
+
+@item t
+\e$B%0%k!<%W$KF~$C$?$H$-$K!":G=i$NL$FI5-;v$rA*Br$9$k!#\e(B
+
+@item best
+\e$B%0%k!<%W$KF~$C$?$H$-$K!"$=$N%0%k!<%W$G:G$b9b$$%9%3%"$N5-;v$rA*Br\e(B
+\e$B$9$k!#\e(B 
+@end table
+
+\e$B$b$7$"$k%0%k!<%W$G<+F05-;vA*Br$r$d$a$?$$$N$G$"$l$P\e(B(\e$BNc$($P$G$C$+\e(B
+\e$B$$5-;v$N$"$k%P%$%J%j%0%k!<%W$G$O!"$H$+\e(B)\e$B!"%0%k!<%W$,A*Br$5$l$?$H\e(B
+\e$B$-$K8F$S=P$5$l$k\e(B@code{gnus-select-group-hook} \e$B$NCf$G$3$NJQ?t$r\e(B 
+@code{nil} \e$B$K@_Dj$9$k$3$H$,$G$-$^$9!#\e(B
+
+@node Subscription Commands
+@section \e$B9XFI@)8f%3%^%s%I\e(B
+@cindex subscription
+
+@table @kbd
+
+@item S t
+@itemx u
+@kindex S t (Group)
+@kindex u (Group)
+@findex gnus-group-unsubscribe-current-group
+@c @icon{gnus-group-unsubscribe}
+\e$B8=:_$N%0%k!<%W$N9XFI$r@Z$jBX$($^$9\e(B
+(@code{gnus-group-unsubscribe-current-group})\e$B!#\e(B
+
+@item S s
+@itemx U
+@kindex S s (Group)
+@kindex U (Group)
+@findex gnus-group-unsubscribe-group
+\e$B%0%k!<%W$r9XFI$9$k$+$I$&$+$r3NG'$7!"9XFI$7$^$9!#$9$G$K9XFI$9$k$h\e(B
+\e$B$&$K$J$C$F$$$k>l9g$K$O!"9XFI$r;_$a$^$9\e(B
+(@code{gnus-group-unsubscribe-group})\e$B!#\e(B
+
+@item S k
+@itemx C-k
+@kindex S k (Group)
+@kindex C-k (Group)
+@findex gnus-group-kill-group
+@c @icon{gnus-group-kill-group}
+\e$B8=:_$N%0%k!<%W$r\e(B kill \e$B$7$^$9\e(B (@code{gnus-group-kill-group})\e$B!#\e(B
+
+@item S y
+@itemx C-y
+@kindex S y (Group)
+@kindex C-y (Group)
+@findex gnus-group-yank-group
+\e$B:G8e$K\e(B kill \e$B$7$?%0%k!<%W$r\e(B yank \e$B$7$^$9\e(B
+(@code{gnus-group-yank-group})\e$B!#\e(B
+
+@item C-x C-t
+@kindex C-x C-t (Group)
+@findex gnus-group-transpose-groups
+\e$BFs$D$N%0%k!<%W$N=g=x$rCV$-49$($^$9\e(B
+(@code{gnus-group-transpose-groups})\e$B!#\e(B \e$B$3$l$O%[%s%H$O9XFI%3%^%s\e(B
+\e$B%I$G$O$"$j$^$;$s$,!"\e(Bkill \e$B$H\e(B yank \e$B$r2?EY$+B3$1$kBe$o$j$K$3$N%3%^\e(B
+\e$B%s%I$,;H$($^$9!#\e(B
+
+@item S w
+@itemx C-w
+@kindex S w (Group)
+@kindex C-w (Group)
+@findex gnus-group-kill-region
+\e$B%j!<%8%g%sFb$NA4$F$N%0%k!<%W$r\e(B kill \e$B$7$^$9\e(B
+(@code{gnus-group-kill-region})\e$B!#\e(B
+
+@item S z
+@kindex S z (Group)
+@findex gnus-group-kill-all-zombies
+\e$BA4$F$N%>%s%S%0%k!<%W$r\e(B kill \e$B$7$^$9\e(B
+(@code{gnus-group-kill-all-zombies})\e$B!#\e(B
+
+@item S C-k
+@kindex S C-k (Group)
+@findex gnus-group-kill-level
+\e$B$"$k%l%Y%k$N%0%k!<%W$rA4$F\e(B kill \e$B$7$^$9\e(B
+(@code{gnus-group-kill-level})\e$B!#\e(B kill \e$B$7$?8e!"$3$l$i$N%0%k!<%W$r\e(B
+yank \e$B$GLa$9$3$H$O$G$-$J$$$N$G!"$3$N%3%^%s%I$O$$$/$i$+Cm0U$7$F;H$C\e(B
+\e$B$F$/$@$5$$!#$3$N%3%^%s%I$,K\Ev$KJXMx$K$J$k$N$O!"\e(B@file{.newsrc} 
+\e$B$K<N$F$A$c$$$?$$L$9XFI$N%0%k!<%W$,$?$/$5$s$"$k$H$-$@$1$G$9!#%l%Y\e(B
+\e$B%k\e(B 7\e$B$G\e(B @kbd{S C-k} \e$B$r9T$&$H!"\e(B@file{.newsrc} \e$B%U%!%$%kCf$K%a%C%;!<\e(B
+\e$B%8HV9f$,$J$$L$9XFI%0%k!<%W$rA4$F\e(B kill \e$B$7$^$9!#\e(B
+
+@end table
+
+@pxref{Group Levels} \e$B$b;2>H$7$F$/$/$@$5$$!#\e(B
+
+
+@node Group Data
+@section \e$B%0%k!<%W%G!<%?\e(B
+
+@table @kbd
+
+@item c
+@kindex c (Group)
+@findex gnus-group-catchup-current
+@vindex gnus-group-catchup-group-hook
+@c @icon{gnus-group-catchup-current}
+\e$B$=$N%0%k!<%WFb$NA4$F$NL50u$N5-;v$r4{FI$K$9$k\e(B
+(@code{gnus-group-catchup-current})\e$B!#\e(B
+\e$B%0%k!<%W%P%C%U%!$+$i4{FI$K$7$?>l9g$O\e(B
+@code{gnus-group-catchup-group-hook}  \e$B$,8F$S=P$5$l$^$9!#\e(B
+
+@item C
+@kindex C (Group)
+@findex gnus-group-catchup-current-all
+\e$B$=$N%0%k!<%W$NA45-;v$r!"0uIU$-$N5-;v$b4^$a$F4{FI$K$7$^$9\e(B
+(@code{gnus-group-catchup-current-all})\e$B!#\e(B
+
+@item M-c
+@kindex M-c (Group)
+@findex gnus-group-clear-data
+\e$B8=:_$N%0%k!<%W$NA4$F$N%G!<%?$r%/%j%"$7$^$9\e(B -- \e$B%^!<%/$H4{FI5-;v$N\e(B
+\e$B%j%9%H$r>C$75n$j$^$9\e(B (@code{gnus-group-clear-data})\e$B!#\e(B
+
+@item M-x gnus-group-clear-data-on-native-groups
+@kindex M-x gnus-group-clear-data-on-native-groups
+@findex gnus-group-clear-data-on-native-groups
+\e$B$b$7\e(B nntp \e$B%5!<%P$rJL$N$b$N$K@Z$jBX$($?$H$9$k$H!"A4$F$N%^!<%/$H4{\e(B
+\e$BFI>pJs$O$b$&Lr$K$ON)$A$^$;$s!#$3$N%3%^%s%I$r;H$C$F%M%$%F%#%V%0%k!<\e(B
+\e$B%W$NA4$F$N%G!<%?$r%/%j%"$9$k$3$H$,$G$-$^$9!#Cm0U$7$F;H$C$F$M!#\e(B
+
+@end table
+
+
+@node Group Levels
+@section \e$B%0%k!<%W%l%Y%k\e(B
+@cindex group level
+@cindex level
+
+\e$BA4$F$N%0%k!<%W$O9XFIEY\e(B @dfn{subscribedness} \e$B$N%l%Y%k$r;}$A$^$9!#\e(B
+\e$BNc$($P!"$"$k%0%k!<%W$,%l%Y%k\e(B 2 \e$B$@$H$9$l$P!"$=$l$O%l%Y%k\e(B 5 \e$B$N%0%k!<\e(B
+\e$B%W$h$j$b!V$h$j9XFI$7$F$$$k!W$H$$$&$3$H$G$9!#\e(BGnus \e$B$KBP$7$F!"$"$k\e(B
+\e$B%l%Y%k$+$=$l$h$j>.$5$$%l%Y%k$N%0%k!<%W$N$_0lMwI=<($9$k$h$&$KMj$`\e(B
+\e$B$3$H$b$G$-$k$7\e(B (@pxref{Listing Groups})\e$B!"$"$k%l%Y%k$+$=$l$h$j>.\e(B
+\e$B$5$$%l%Y%k$N%0%k!<%W$N?7Ce5-;v$N$_$r3NG'$9$k$3$H$b$G$-$^$9\e(B
+(@pxref{Scanning New Messages})\e$B!#\e(B
+
+\e$BK:$l$J$$$G\e(B: \e$B%0%k!<%W$N%l%Y%k$,Bg$-$$$[$I!"=EMWEY$ODc$/$J$k$H$$$&$3$H!#\e(B
+
+@table @kbd
+
+@item S l
+@kindex S l (Group)
+@findex gnus-group-set-current-level
+\e$B8=:_$N%0%k!<%W$N%l%Y%k$r@_Dj$9$k!#?t;z%W%l%U%#%C%/%9$,M?$($i$l$k\e(B
+\e$B$H!"$=$3$+$i\e(B @var{n} \e$B8D$N%0%k!<%W$N%l%Y%k$,@_Dj$5$l$^$9!#%l%Y%k\e(B
+\e$B$rF~NO$9$k$?$a$N%W%m%s%W%H$,=P$^$9!#\e(B
+
+@end table
+
+@vindex gnus-level-killed
+@vindex gnus-level-zombie
+@vindex gnus-level-unsubscribed
+@vindex gnus-level-subscribed
+Gnus \e$B$O%l%Y%k\e(B 1 \e$B$+$i\e(B @code{gnus-level-subscribed} (\e$B$3$NCM$r4^$`\e(B)
+(\e$B%G%U%)%k%H$O\e(B 5) \e$B$^$G$N%0%k!<%W$r9XFI!"\e(B
+@code{gnus-level-subscribed} (\e$B$3$NCM$r4^$^$J$$\e(B) \e$B$+$i\e(B
+@code{gnus-level-unsubscribed} (\e$B$3$NCM$r4^$`\e(B) (\e$B%G%U%)%k%H$O\e(B 7)\e$B$^\e(B
+\e$B$G$N%0%k!<%W$rHs9XFI!"\e(B@code{gnus-level-zombie} \e$B$r%>%s%S\e(B(\e$BJb$/;S\e(B)
+(\e$B%G%U%)%k%H$O\e(B8)\e$B!"\e(B@code{gnus-level-killed} \e$B$r\e(B kill \e$B$5$l$F$$$k\e(B(\e$B40\e(B
+\e$BA4$K;`$s$G$k\e(B)(\e$B%G%U%)%k%H$O\e(B9)\e$B$HH=CG$7$^$9!#\e(BGnus \e$B$O9XFI$HHs9XFI$N\e(B
+\e$B%0%k!<%W$OA4$/F1MM$K07$$$^$9$,!"%>%s%S$H\e(B kill \e$B%0%k!<%W$O!"$I$N5-\e(B
+\e$B;v$rFI$s$@$+!"B8:_$9$k$+$J$I$N>pJs$r0l@Z;}$A$^$;$s!#$3$N;`$s$G$k\e(B
+\e$B%0%k!<%W$H@8$-$F$k%0%k!<%W$N6hJL$O!"JL$K$=$l$,$-$l$$$@$+$i$H$+8-\e(B
+\e$B$$$+$i$H$$$&$o$1$G$O$J$/!"=c?h$K8zN(E*$JM}M3$N$?$a$G$9!#\e(B
+
+\e$B%a!<%kMQ$N%0%k!<%W$O\e(B(\e$B$b$7$"$l$P\e(B)\e$BHs>o$K>.$5$$%l%Y%k\e(B(\e$BNc$($P\e(B 1 \e$B$+\e(B 
+2)\e$B$K$7$F$*$/$3$H$r$*4+$a$7$^$9!#\e(B
+
+\e$B$b$7%l%Y%kJQ?t$GM7$S$?$$$N$G$"$l$P!"B?>/Cm0U$r$7$F$^$o$kI,MW$,$"\e(B
+\e$B$j$^$9!#0lC6$=$l$r@_Dj$7$?$i!"FsEY$H$=$l$K?($i$J$$$G$/$@$5$$!#$5\e(B
+\e$B$i$K8@$($P!"<+J,$G2?$r$d$C$F$$$k$+$r@53N$KM}2r$7$F$$$J$$8B$j!"0l\e(B
+\e$B@Z?($i$J$$$G$/$@$5$$!#\e(B
+
+@vindex gnus-level-default-unsubscribed
+@vindex gnus-level-default-subscribed
+\e$B?H6a$K4X78$9$k\e(B2\e$B$D$NJQ?t$O\e(B @code{gnus-level-default-subscribed}
+(\e$B%G%U%)%k%H$O\e(B 3) \e$B$H\e(B @code{gnus-level-default-unsubscribed} (\e$B%G%U%)\e(B
+\e$B%k%H$O\e(B 6)\e$B$G$9!#$3$l$i$O?7$7$$%0%k!<%W$,9XFI\e(B(\e$B$"$k$$$OHs9XFI\e(B)\e$B$5$l\e(B
+\e$B$?$H$-$N%l%Y%k$G$9!#$b$A$m$s!"$3$l$i\e(B2\e$B$D$NJQ?t$NCM$O!"0UL#$N$"$k\e(B
+\e$B@5$7$$HO0O$G$J$/$F$O$J$j$^$;$s!#\e(B
+
+@vindex gnus-keep-same-level
+@code{gnus-keep-same-level} \e$B$,\e(B @code{nil} \e$B0J30$G$"$l$P!"0\F0%3%^\e(B
+\e$B%s%I$N$$$/$D$+$OF10l\e(B(\e$B$"$k$$$O$=$l$h$j>.$5$$\e(B)\e$B%l%Y%k$N%0%k!<%W$N$_\e(B
+\e$B$N0\F0$K$J$j$^$9!#FC$K!"$"$k%0%k!<%W$N:G8e$N5-;v$+$i<!$N%0%k!<%W\e(B
+\e$B$K0\$k$H$-!"<!$NF10l\e(B(\e$B$"$k$$$O$=$l$h$j>.$5$$\e(B)\e$B%l%Y%k$N%0%k!<%W$K0\\e(B
+\e$BF0$7$^$9!#$3$l$O;D$j$N%0%k!<%W$rFI$`$h$j@h$K!"$h$j=EMW$J%0%k!<%W\e(B
+\e$B$rFI$s$G$*$-$?$$$H$-$K$OJXMx$+$b$7$l$^$;$s!#\e(B
+
+@vindex gnus-group-default-list-level
+\e$B%G%U%)%k%H$G$O\e(B @code{gnus-group-default-list-level} \e$B$HF1$8$+$=$l\e(B
+\e$B$h$j>.$5$$%l%Y%k$N%0%k!<%W$,!"%0%k!<%W%P%C%U%!$K0lMwI=<($5$l$^$9!#\e(B
+
+@vindex gnus-group-list-inactive-groups
+@code{gnus-group-list-inactive-groups} \e$B$,\e(B @code{nil} \e$B0J30$G$"$l\e(B
+\e$B$P!"L$FI$N%0%k!<%W$K0l=o$K%"%/%F%#%V$G$J$$%0%k!<%W$bI=<($7$^$9!#\e(B
+\e$B$3$NJQ?t$O%G%U%)%k%H$G\e(B @code{t} \e$B$G$9!#$b$7$3$l$,\e(B @code{nil} \e$B$G$"\e(B
+\e$B$l$P!"%"%/%F%#%V$G$J$$%0%k!<%W$OI=<($5$l$^$;$s!#\e(B
+
+@vindex gnus-group-use-permanent-levels
+@code{gnus-group-use-permanent-levels} \e$B$,\e(B @code{nil} \e$B0J30$G$"$l\e(B
+\e$B$P!"0lC6%l%Y%k$r\e(B @kbd{g} \e$B$d\e(B @kbd{l} \e$B$N%W%l%U%#%C%/%9$KM?$($k$H!"\e(B
+\e$B$=$N8e$NA4$F$N%3%^%s%I$K$*$$$F$=$N%l%Y%k$,!V:nMQ$9$k!W%l%Y%k$K$J\e(B
+\e$B$j$^$9!#\e(B
+
+
+@vindex gnus-activate-level
+Gnus \e$B$ODL>o!"\e(B@code{gnus-activate-level} \e$B$+$=$l$h$j>.$5$$%l%Y%k$N\e(B
+\e$B%0%k!<%W$N$_$r5/F0$7$^$9\e(B(\e$B$D$^$j%5!<%P$KLd$$9g$o$;$r$9$k\e(B)\e$B!#9XFI$7\e(B
+\e$B$F$$$J$$%0%k!<%W$r5/F0$7$?$/$J$1$l$P!"$3$NJQ?t$rNc$($P\e(B 5 \e$B$K@_Dj\e(B
+\e$B$9$k$H$h$$$+$b$7$l$^$;$s!#%G%U%)%k%H$O\e(B 6 \e$B$G$9!#\e(B
+
+@node Group Score
+@section \e$B%0%k!<%W$N%9%3%"\e(B
+@cindex group score
+@cindex group rank
+@cindex rank
+
+\e$BIaDL$O=EMW$J%0%k!<%W$O9b%l%Y%k$K$7$F$*$/$G$7$g$&$1$l$I$b!"$3$NJ}\e(B
+\e$BK!$G$O>/!9@)8B$,$-$D$$$G$9$h$M!#$R$g$C$H$7$?$i!"%0%k!<%W$r$I$l$/\e(B
+\e$B$i$$IQHK$KFI$`$+$K$h$C$F%0%k!<%W%P%C%U%!$r%=!<%H$7$?$$$J$"!"$J$s\e(B
+\e$B$F;W$o$J$$\e(B? \e$BM}$K$+$J$C$F$k$G$7$g\e(B?
+
+\e$B%0%k!<%W%9%3%"\e(B @dfn{group score} \e$B$O$=$N$?$a$N$b$N$G$9!#$=$l$>$l\e(B
+\e$B$N%0%k!<%W$KBP$7$F%9%3%"$r;XDj$9$k$3$H$,$G$-$^$9!#$=$7$F%0%k!<%W\e(B
+\e$B%P%C%U%!$r$3$N%9%3%"$r4p$K%=!<%H$9$k$3$H$,$G$-$^$9!#$"$k$$$O!"%9\e(B
+\e$B%3%"=g$G%=!<%H$7$F$=$N8e%l%Y%k$G%=!<%H$9$k$3$H$b$G$-$^$9!#\e(B(\e$B%l%Y\e(B
+\e$B%k$H%9%3%"$r$R$H$^$H$a$K$7$F!"%0%k!<%W$N%i%s%/\e(B @dfn{rank} \e$B$H8F$S\e(B
+\e$B$^$9!#%l%Y%k$,\e(B4\e$B$G%9%3%"$,\e(B1\e$B$N%0%k!<%W$O!"%l%Y%k$,\e(B5\e$B$G%9%3%"$,\e(B300\e$B$N\e(B
+\e$B%0%k!<%W$h$j$b9b$$%i%s%/$H$J$j$^$9!#\e(B(\e$B%l%Y%k$NJ}$,=EMWEY$,9b$/!"\e(B
+\e$B%9%3%"$NJ}$O=EMWEY$,Dc$/$J$j$^$9!#\e(B))
+
+@findex gnus-summary-bubble-group
+\e$BIQHK$KFI$`%0%k!<%W$K!"$a$C$?$KFI$^$J$$%0%k!<%W$h$j$b9b$$%9%3%"$r\e(B
+\e$BM?$($?$$$H$-$O!"\e(B @code{gnus-summary-exit-hook} \e$B%U%C%/$K\e(B
+@code{gnus-summary-bubble-group} \e$B4X?t$rDI2C$9$k$3$H$,$G$-$^$9!#\e(B
+\e$B$3$l$G%P%V%k%=!<%H$N<B9T7k2L$,\e(B(\e$B%=!<%H$N8e$G\e(B)\e$BF@$i$l$k$G$7$g$&!#%5\e(B
+\e$B%^%j%b!<%I$r=*N;$9$k$?$S$K$3$N3hF0$r$5$;$?$$$N$G$"$l$P!"F1$8%U%C\e(B
+\e$B%/$K\e(B @code{gnus-group-sort-groups-by-rank} \e$B$+\e(B
+@code{gnus-group-sort-groups-by-score} \e$B$rDI2C$G$-$^$9$,!"$$$/$i\e(B
+\e$B$+CY$/$J$k$G$7$g$&!#\e(B
+
+@node Marking Groups
+@section \e$B%0%k!<%W$X$N%^!<%/\e(B
+@cindex marking groups
+
+\e$B$b$7$$$/$D$+$N%0%k!<%W$KBP$7$F2?$i$+$N%3%^%s%I$r<B9T$7$?$$>l9g$G!"\e(B
+\e$B$=$l$i$,%0%k!<%W%P%C%U%!$KO"B3$7$F$"$k>l9g$K$O!"DL>oDL$j%3%^%s%I\e(B
+\e$B$KBP$7$F?t;z%W%l%U%#%C%/%9$rM?$($k$@$1$G$9!#$=$&$9$l$P$[$H$s$I$N\e(B
+\e$B%0%k!<%W%3%^%s%I$O!"$3$l$i$N%0%k!<%W$KBP$7$F$"$J$?$NL?Na$K=>$$$^\e(B
+\e$B$9!#\e(B
+
+\e$B$7$+$7$=$l$i$N%0%k!<%W$,=gHV$KJB$s$G$$$J$$>l9g$K$*$$$F$b!"$$$/$D\e(B
+\e$B$+$N%0%k!<%W$KBP$7$F%3%^%s%I$r<B9T$9$k$3$H$,$G$-$^$9!#C1$K;O$a$K\e(B
+\e$B%W%m%;%9%^!<%/$G%0%k!<%W$K%^!<%/$r$D$1$F$*$-!"$=$7$F%3%^%s%I$r<B\e(B
+\e$B9T$9$k$@$1$G$9!#\e(B
+
+@table @kbd
+
+@item #
+@kindex # (Group)
+@itemx M m
+@kindex M m (Group)
+@findex gnus-group-mark-group
+\e$B8=:_$N%0%k!<%W$K%^!<%/$r$D$1$k\e(B (@code{gnus-group-mark-group})\e$B!#\e(B
+
+@item M-#
+@kindex M-# (Group)
+@itemx M u
+@kindex M u (Group)
+@findex gnus-group-unmark-group
+\e$B8=:_$N%0%k!<%W$+$i%^!<%/$r:o=|$9$k\e(B (@code{gnus-group-unmark-group})\e$B!#\e(B
+
+@item M U
+@kindex M U (Group)
+@findex gnus-group-unmark-all-groups
+\e$BA4$F$N%0%k!<%W$+$i%^!<%/$r:o=|$9$k\e(B (@code{gnus-group-unmark-all-groups})\e$B!#\e(B
+
+@item M w
+@kindex M w (Group)
+@findex gnus-group-mark-region
+\e$B%]%$%s%H$H%^!<%/$K4V$NA4$F$N%0%k!<%W$K%^!<%/$r$D$1$k\e(B
+(@code{gnus-group-mark-region})\e$B!#\e(B
+
+@item M b
+@kindex M b (Group)
+@findex gnus-group-mark-buffer
+\e$B%P%C%U%!Fb$NA4$F$N%0%k!<%W$K%^!<%/$r$D$1$k\e(B
+(@code{gnus-group-mark-buffer})\e$B!#\e(B
+
+@item M r
+@kindex M r (Group)
+@findex gnus-group-mark-regexp
+\e$B$"$k@55,I=8=$K%^%C%A$9$kA4$F$N%0%k!<%W$K%^!<%/$r$D$1$k\e(B
+(@code{gnus-group-mark-regexp})\e$B!#\e(B
+@end table
+
+@pxref{Process/Prefix} \e$B$b;2>H$7$F$/$@$5$$!#\e(B
+
+@findex gnus-group-universal-argument
+\e$B%W%m%;%9%^!<%/$,IU$1$i$l$F$$$kA4$F$N%0%k!<%W$KBP$7$F2?$+$N%3%^%s\e(B
+\e$B%I$r<B9T$7$?$$$H$-$O!"\e(B @kbd{M-&} 
+(@code{gnus-group-universal-argument}) \e$B%3%^%s%I$r;H$&$3$H$,$G$-\e(B
+\e$B$^$9!#%W%m%s%W%H$+$i<B9T$7$?$$%3%^%s%I$rF~NO$7$^$9!#\e(B
+
+@node Foreign Groups
+@section \e$B30It%0%k!<%W\e(B
+@cindex foreign groups
+
+\e$B0J2<$G$O!"0lHLE*$J30It%0%k!<%W$N:n@.!"JQ99$r9T$&%0%k!<%W%b!<%I$N%3%^%s%I\e(B
+\e$B$r$$$/$D$+!"$*$h$SFCJL$JL\E*$N%0%k!<%W$N4JC1$K:n@.$9$k%3%^%s%I$r>R2p$7$^\e(B
+\e$B$9!#$3$l$i$N%3%^%s%I$OA4$F!"?75,$K:n@.$7$?%0%k!<%W$r%]%$%s%H0LCV$KA^F~$7\e(B
+\e$B$^$9\e(B --- @code{gnus-subscribe-newsgroup-method} \e$B$O;2>H$5$l$^$;$s!#\e(B
+
+@table @kbd
+
+@item G m
+@kindex G m (Group)
+@findex gnus-group-make-group
+@cindex making groups
+\e$B?7$7$$%0%k!<%W$r:n@.$7$^$9\e(B (@code{gnus-group-make-group})\e$B!#\e(BGnus \e$B$O%W%m%s\e(B
+\e$B%W%H$rI=<($7$F!"L>A0$H%a%=%C%I$H!">l9g$K$h$C$F$O\e(B @dfn{address} \e$B$NF~NO$r\e(B
+\e$B5a$a$F$-$^$9!#$h$j4JC1$K\e(B @sc{nntp} \e$B%0%k!<%W$r9XFI$9$kJ}K!$O!"\e(B 
+@pxref{Browse Foreign Server} \e$B$r;2>H$7$F$/$@$5$$!#\e(B
+
+@item G r
+@kindex G r (Group)
+@findex gnus-group-rename-group
+@cindex renaming groups
+\e$B8=:_$N%0%k!<%W$NL>A0$r!"2?$+JL$N$b$N$KJQ99$7$^$9\e(B
+(@code{gnus-group-rename-group})\e$B!#$3$l$O$"$k<o$N%0%k!<%W\e(B --- \e$B<g$K%a!<%k\e(B
+\e$B%0%k!<%W$KBP$7$F$N$_M-8z$G$9!#$3$N%3%^%s%I$O%P%C%/%(%s%I$K$h$C$F$OHs>o$K\e(B
+\e$BCY$$$3$H$bM-$jF@$^$9!#\e(B
+
+@item G c
+@kindex G c (Group)
+@cindex customizing
+@findex gnus-group-customize
+\e$B%0%k!<%W%Q%i%a!<%?$r%+%9%?%^%$%:$9$k\e(B (@code{gnus-group-customize})\e$B!#\e(B
+
+@item G e
+@kindex G e (Group)
+@findex gnus-group-edit-group-method
+@cindex renaming groups
+\e$B8=:_$N%0%k!<%W$NA*Br%a%=%C%I$r=$@5$9$k$?$a$N%P%C%U%!$K0\F0$7$^$9\e(B
+(@code{gnus-group-edit-group-method})\e$B!#\e(B
+
+@item G p
+@kindex G p (Group)
+@findex gnus-group-edit-group-parameters
+\e$B%0%k!<%W%Q%i%a!<%?$r=$@5$9$k$?$a$N%P%C%U%!$K0\F0$7$^$9\e(B
+(@code{gnus-group-edit-group-parameters})\e$B!#\e(B
+
+@item G E
+@kindex G E (Group)
+@findex gnus-group-edit-group
+\e$B%0%k!<%W>pJs$r=$@5$9$k$?$a$N%P%C%U%!$K0\F0$7$^$9\e(B
+(@code{gnus-group-edit-group})\e$B!#\e(B
+
+@item G d
+@kindex G d (Group)
+@findex gnus-group-make-directory-group
+@cindex nndir
+\e$B%G%#%l%/%H%j%0%k!<%W$r:n@.$7$^$9\e(B  (@pxref{Directory Groups})\e$B!#%G%#%l%/%H\e(B
+\e$B%jL>$r%W%m%s%W%HF~NO$7$^$9\e(B (@code{gnus-group-make-directory-group})\e$B!#\e(B
+
+@item G h
+@kindex G h (Group)
+@cindex help group
+@findex gnus-group-make-help-group
+
+Gnus \e$B%X%k%W%0%k!<%W$r:n@.$7$^$9\e(B (@code{gnus-group-make-help-group})\e$B!#\e(B
+
+@item G a
+@kindex G a (Group)
+@cindex (ding) archive
+@cindex archive group
+@findex gnus-group-make-archive-group
+@vindex gnus-group-archive-directory
+@vindex gnus-group-recent-archive-directory
+Gnus \e$B%"!<%+%$%V%0%k!<%W$r:n@.$7$^$9\e(B
+(@code{gnus-group-make-archive-group})\e$B!#%G%U%)%k%H$G$O:G$b:G6a$N5-;v$r;X\e(B
+\e$B$7$F$$$k%0%k!<%W$,:n@.$5$l$^$9$,\e(B
+(@code{gnus-group-recent-archive-directory})\e$B!"%W%l%U%#%C%/%9$rM?$($k$HA4\e(B
+\e$B$F$N5-;v$r4^$`%0%k!<%W$,\e(B @code{gnus-group-archive-directory} \e$B$r4p$K:n@.\e(B
+\e$B$5$l$^$9!#\e(B
+
+@item G k
+@kindex G k (Group)
+@findex gnus-group-make-kiboze-group
+@cindex nnkiboze
+kiboze \e$B%0%k!<%W$r:n@.$7$^$9!#%W%m%s%W%H$GL>A0$H!"\e(Bkiboze \e$B%0%k!<%W$K!V4^$a$?\e(B
+\e$B$$!W%0%k!<%W$K%^%C%A$9$k@55,I=8=$H!"%X%C%@$H%^%C%A$9$kJ8;zNs$NAH$rF~NO$7\e(B
+\e$B$^$9\e(B (@code{gnus-group-make-kiboze-group})\e$B!#\e(B@xref{Kibozed Groups}\e$B!#\e(B
+
+@item G D
+@kindex G D (Group)
+@findex gnus-group-enter-directory
+@cindex nneething
+\e$BG$0U$N%G%#%l%/%H%j$r\e(B @code{nneething} \e$B%P%C%/%(%s%I%K%e!<%:%0%k!<%W$G$"$k\e(B
+\e$B$+$N$h$&$KFI$_9~$_$^$9\e(B (@code{gnus-group-enter-directory})\e$B!#\e(B
+@xref{Anything Groups}.
+
+@item G f
+@kindex G f (Group)
+@findex gnus-group-make-doc-group
+@cindex ClariNet Briefs
+@cindex nndoc
+\e$B%U%!%$%k$J$I$r$b$H$K%0%k!<%W$r:n@.$7$^$9\e(B
+(@code{gnus-group-make-doc-group})\e$B!#\e(B \e$B$3$N%3%^%s%I$K%W%l%U%#%C%/%9$rM?$(\e(B
+\e$B$?>l9g!"%U%!%$%kL>$H%U%!%$%k%?%$%W$r%W%m%s%W%H$GF~NO$7$^$9!#8=:_%5%]!<%H\e(B
+\e$B$5$l$F$$$k%U%!%$%k%?%$%W$O!"\e(B @code{babyl}\e$B!"\e(B @code{mbox}\e$B!"\e(B @code{digest}\e$B!"\e(B
+@code{mmdf}\e$B!"\e(B @code{news}\e$B!"\e(B @code{rnews}\e$B!"\e(B @code{clari-briefs}\e$B!"\e(B
+@code{rfc934}\e$B!"\e(B @code{rfc822-forward}\e$B!"\e(B@code{forward} \e$B$G$9!#%W%l%U%#%C%/\e(B
+\e$B%9$J$7$G$3$N%3%^%s%I$r<B9T$9$k$H!"\e(BGnus \e$B$O%U%!%$%k%?%$%W$r?dB,$7$^$9!#\e(B
+@xref{Document Groups}\e$B!#\e(B
+
+@item G w
+@kindex G w (Group)
+@findex gnus-group-make-web-group
+@cindex DejaNews
+@cindex Alta Vista
+@cindex InReference
+@cindex nnweb
+\e$B%&%'%V8!:w7k2L$r$b$H$K0l;~E*$J%0%k!<%W$r:n@.$7$^$9\e(B
+(@code{gnus-group-make-web-group})\e$B!#$3$N%3%^%s%I$K%W%l%U%#%C%/%9$rM?$($k\e(B
+\e$B$H!"0l;~E*$G$O$J$/8GDj$7$?%0%k!<%W$r:n@.$7$^$9!#%W%m%s%W%H$G%5!<%A%(%s%8\e(B
+\e$B%s$N%?%$%W$H8!:wJ8;zNs$rF~NO$7$^$9!#M-8z$J%5!<%A%(%s%8%s%?%$%W$K$O\e(B
+@code{dejanews}\e$B!"\e(B @code{altavista}\e$B!"\e(B@code{reference} \e$B$,$"$j$^$9!#\e(B
+@xref{Web Searches}\e$B!#\e(B
+
+
+@item G DEL
+@kindex G DEL (Group)
+@findex gnus-group-delete-group
+\e$B$3$N4X?t$O8=:_$N%0%k!<%W$r:o=|$7$^$9\e(B (@code{gnus-group-delete-group})\e$B!#\e(B
+\e$B%W%l%U%#%C%/%9$,M?$($i$l$k$H!"$3$N4X?t$O$=$N%0%k!<%WFb$NA45-;v$rK\Ev$K:o\e(B
+\e$B=|$7!"%0%k!<%W<+?H$r$3$N@$$+$i6/@)E*$KKu;&$7$F$7$^$$$^$9!#%W%l%U%#%C%/%9\e(B
+\e$B$O!"$"$J$?$,2?$r$d$m$&$H$7$F$$$k$+!"K\Ev$K<+?.$,$"$k$H$-$K$N$_;H$C$F$/$@\e(B
+\e$B$5$$!#$^$"!"$3$N%3%^%s%I$O\e(B( @code{nntp} \e$B%0%k!<%W$N$h$&$J\e(B)\e$BFI$_=P$7@lMQ%0\e(B
+\e$B%k!<%W$K$O;H$($^$;$s$1$I!#\e(B
+
+@item G V
+@kindex G V (Group)
+@findex gnus-group-make-empty-virtual
+\e$B?7$7$$!"?7A/$J!"6u$N\e(B @code{nnvirtual} \e$B%0%k!<%W$r:n@.$7$^$9\e(B
+(@code{gnus-group-make-empty-virtual})\e$B!#\e(B@xref{Virtual Groups}\e$B!#\e(B
+
+@item G v
+@kindex G v (Group)
+@findex gnus-group-add-to-virtual
+\e$B8=:_$N%0%k!<%W$r\e(B @code{nnvirtual} \e$B%0%k!<%W$KDI2C$7$^$9\e(B
+(@code{gnus-group-add-to-virtual})\e$B!#\e(B \e$B$3$l$O%W%m%;%9%^!<%/!&%W%l\e(B
+\e$B%U%#%C%/%9%k!<%k$K=>$$$^$9!#\e(B
+
+@end table
+
+
+
+\e$B$5$^$6$^$JA*Br%a%=%C%I$K4X$9$k$5$i$J$k>pJs$O\e(B @xref{Select Methods} \e$B$r;2\e(B
+\e$B>H$7$F$/$@$5$$!#\e(B
+
+@vindex gnus-activate-foreign-newsgroups
+\e$B$b$7\e(B @code{gnus-activate-foreign-newsgroups} \e$B$,@5$N?t$G$"$l$P!"\e(BGnus \e$B$O5/\e(B
+\e$BF0;~$K!"$3$N?t$+$=$l$h$j$b>.$5$$%l%Y%k$N30It%0%k!<%W$rA4$F%A%'%C%/$7$^$9!#\e(B
+\e$B$3$l$OFC$K0c$C$?\e(B @sc{nntp} \e$B%5!<%P$+$i$?$/$5$s$N%0%k!<%W$r9XFI$7$F$$$k>l\e(B
+\e$B9g$J$I!"$7$P$i$/;~4V$,$+$+$k$+$b$7$l$^$;$s!#\e(B
+
+@node Group Parameters
+@section \e$B%0%k!<%W%Q%i%a!<%?\e(B
+@cindex group parameters
+
+\e$B%0%k!<%W%Q%i%a!<%?$O!"$"$kFCDj$N%0%k!<%W%m!<%+%k$J>pJs$r3JG<$7$^$9!#\e(B
+\e$B$3$l$,%0%k!<%W%Q%i%a!<%?%j%9%H$NNc$G$9!#\e(B
+
+@example
+((to-address . "ding@@gnus.org")
+ (auto-expire . t))
+@end example
+
+\e$B$=$l$>$l$NMWAG$O!V%I%C%H%Z%"!W\e(B --- \e$B$D$^$j%I%C%H$NA0$K%-!<!"%I%C%H$N8e\e(B
+\e$B$m$KCM$,$"$k$b$N!"$G9=@.$5$l$^$9!#A4$F$N%Q%i%a!<%?$O$3$N7A<0$r<h$j$^$9$,!"\e(B
+@emph{\e$BNc30\e(B} \e$B$H$7$F%m!<%+%kJQ?t$N;XDj$O%I%C%H%Z%"$G$O$J$/DL>o$N%j%9%H$K$J\e(B
+\e$B$j$^$9!#\e(B
+
+\e$B0J2<$N%0%k!<%W%Q%i%a!<%?$,;HMQ$5$l$^$9!#\e(B
+
+@table @code
+@item to-address
+@cindex to-address
+\e$B%U%)%m!<%"%C%W$H%K%e!<%:$X$NEj9F$r$9$k$H$-$K;HMQ$5$l$k%"%I%l%9!#\e(B
+
+@example
+(to-address .  "some@@where.com")
+@end example
+
+\e$B$3$l$O<g$K!"%/%m!<%:%I$J%a!<%j%s%0%j%9%H$rI=$o$9%a!<%k%0%k!<%W$K$*$$$FJX\e(B
+\e$BMx$J$b$N$G$9\e(B --- \e$B$9$J$o$A%a!<%j%s%0%j%9%H$KEj9F$9$k?M$OA4$F$=$l$r9XFI$7\e(B
+\e$B$F$$$k$O$:!"$H$$$&%a!<%j%s%0%j%9%H$N$3$H$G$9!#$3$N%Q%i%a!<%?$r;HMQ$9$k$H!"\e(B
+\e$B%a!<%k$O$=$N%a!<%j%s%0%j%9%H$K$7$+Ej9F$5$l$J$$$3$H$,J]>Z$5$l$k$N$G!"%a%s\e(B
+\e$B%P!<$O$"$J$?$N%U%)%m!<%"%C%W5-;v$r\e(B2\e$BDL<u$1<h$k$3$H$O$"$j$^$;$s!#\e(B
+
+@code{to-address} \e$B$r;XDj$9$k$H!"$=$N%0%k!<%W$,30It%0%k!<%W$G$"$k$+$I$&$+\e(B
+\e$B$K4X$o$i$:M-8z$K$J$j$^$9!#Nc$($P\e(B @samp{fa.4ad-l} \e$B$H$$$&%0%k!<%W$,%5!<%P\e(B
+\e$B>e$K$"$C$?$H$7$^$7$g$&!#$3$l$OK\Ev$N%K%e!<%:%0%k!<%W$G$9$,!"%5!<%P$O%a!<\e(B
+\e$B%k%K%e!<%:%2!<%H%&%'%$$rDL$7$F5-;v$r<u$1IU$1$^$9!#$D$^$j$3$N%0%k!<%W$KBP\e(B
+\e$B$7$FD>@\Ej9F$9$k$3$H$OIT2DG=$G!"Be$o$j$K$=$N%a!<%j%s%0%j%9%H$K%a!<%k$rAw\e(B
+\e$B?.$7$J$1$l$P$J$j$^$;$s!#\e(B
+
+@item to-list
+@cindex to-list
+\e$B$=$N%0%k!<%W$G\e(B @kbd{a} \e$B$r2!$7$?$H$-$K;HMQ$5$l$k%"%I%l%9!#\e(B
+
+@example
+(to-list . "some@@where.com")
+@end example
+
+\e$B$3$l$O%U%)%m!<%"%C%W$r$7$?$H$-$O40A4$KL5;k$5$l$^$9\e(B --- \e$BNc30$O$=$l$,%K%e!<\e(B
+\e$B%:%0%k!<%W$rI=$o$7$F$$$k$H$-$O!"\e(B@kbd{f} \e$B$r2!$7$?$H$-$K%a!<%k%0%k!<%W$N%k!<\e(B
+\e$B%k$,E,MQ$5$l$k$H$$$&$3$H$G$9!#\e(B
+
+\e$B$b$7\e(B @kbd{a} \e$B%3%^%s%I$r%a!<%k%0%k!<%W$G<B9T$7$?$H$-$K!"\e(B@code{to-list} \e$B%0\e(B
+\e$B%k!<%W%Q%i%a!<%?$b\e(B @code{to-address} \e$B$b%0%k!<%W%Q%i%a!<%?$bL5$1$l$P!"\e(B
+@code{to-list} \e$B%0%k!<%W%Q%i%a!<%?$O!"\e(B@code{gnus-add-to-list} \e$B$,\e(B @code{t}
+\e$B$K@_Dj$5$l$F$$$l$P%a%C%;!<%8Aw?.;~$K<+F0E*$KIU2C$5$l$^$9!#\e(B
+@vindex gnus-add-to-list
+
+\e$B$b$7\e(B @kbd{a} \e$B%3%^%s%I$r%a!<%k%0%k!<%W$G<B9T$7$?$H$-!"\e(B@code{to-list} \e$B%0%k!<\e(B
+\e$B%W%Q%i%a!<%?$,$J$1$l$P!"Aw?.;~$K<+F0E*$KIU2C$5$l$^$9!#\e(B
+
+
+@item visible
+@cindex visible
+\e$B%0%k!<%W%Q%i%a!<%?$N%j%9%HCf$K\e(B @code{(visible . t)} \e$B$H$$$&MWAG$,$"$l$P!"\e(B
+\e$B$=$N%0%k!<%W$O%0%k!<%W%P%C%U%!$K$*$$$F!"L$FI5-;v$,$"$k$+$I$&$+$K4X$o$i$:!"\e(B
+\e$B>o$KI=<($5$l$^$9!#\e(B
+
+@item broken-reply-to
+@cindex broken-reply-to
+@code{(broken-reply-to . t)} \e$B$H$$$&MWAG$,$"$l$P!"$=$N%0%k!<%W$G\e(B
+\e$B$O\e(B@code{Reply-To} \e$B$OL5;k$5$l$k!"$H$$$&0UL#$G$9!#$3$l$O$"$k\e(B 
+listserv \e$B$K$h$k%a!<%j%s%0%j%9%H$r9XFI$7$F$$$F!"$=$l$,\e(B 
+@code{Reply-To} \e$B%X%C%@$r\e(B listserv \e$B<+?H$KJV$9$h$&$K$D$1$i$l$F$$$k\e(B
+\e$B>l9g$KM-8z$G$7$g$&!#$3$l$O$*$+$7$J?6$kIq$$$G$9!#$@$+$i$3$l$,MW$k\e(B
+\e$B$s$G$9\e(B!
+
+@item to-group
+@cindex to-group
+@code{(to-group . "some.group.name")} \e$B$H$$$&MWAG$O!"$=$N%0%k!<%W$X$NEj9F\e(B
+\e$B$OA4$F\e(B @code{some.group.name} \e$B$KAw$i$l$k!"$H$$$&0UL#$G$9!#\e(B
+
+@item newsgroup
+@cindex newsgroup
+\e$B%0%k!<%W%Q%i%a!<%?%j%9%H$K\e(B @code{(newsgroup . t)} \e$B$,$"$l$P!"\e(BGnus \e$B$OA4$F\e(B
+\e$B$N%l%9%]%s%9$r%K%e!<%:5-;v$KBP$9$k%l%9%]%s%9$G$"$k$+$N$h$&$K07$$$^$9!#$3\e(B
+\e$B$l$O<B:]$K$O%K%e!<%:%0%k!<%W$N%_%i!<$G$"$k%a!<%k%0%k!<%W$KBP$7$FM-8z$G$9!#\e(B
+
+@item gcc-self
+@cindex gcc-self
+\e$B%0%k!<%W%Q%i%a!<%?%j%9%H$K\e(B @code{(gcc-self . t)} \e$B$,$"$l$P!"?7$7$/:n@.$9\e(B
+\e$B$k%a%C%;!<%8$O8=:_$N%0%k!<%W$K\e(B @code{Gcc} \e$B$5$l$^$9!#$b$7\e(B @code{(gcc-self
+. none)} \e$B$,$"$l$P!"\e(B@code{Gcc:} \e$B%X%C%@$O@8@.$5$l$:!"\e(B
+@code{(gcc-self . "string")} \e$B$,$"$l$P$3$N\e(B string \e$B$O$=$N$^$^\e(B @code{gcc}
+\e$B%X%C%@$KA^F~$5$l$^$9!#$3$N%Q%i%a!<%?$O0J2<$G@bL@$9$kA4$F$N\e(B @code{Gcc} \e$B$N\e(B
+\e$B%G%U%)%k%H%k!<%k$h$j$bM%@h$5$l$^$9\e(B (@pxref{Archived Messages})\e$B!#\e(B
+
+@item auto-expire
+@cindex auto-expire
+\e$B%0%k!<%W%Q%i%a!<%?$K\e(B @code{(auto-expire . t)} \e$B$N$h$&$JMWAG$,$"$l$P!"A4$F\e(B
+\e$B$N4{FI5-;v$O%(%/%9%Q%$%"$5$l$k$h$&$K%^!<%/$5$l$^$9!#B>$NJ}K!$K$D$$$F$O\e(B
+@pxref{Expiring Mail} \e$B$r;2>H$7$F$/$@$5$$!#\e(B
+
+@item total-expire
+@cindex total-expire
+\e$B%0%k!<%W%Q%i%a!<%?$K\e(B @code{(total-expire . t)} \e$B$N$h$&$JMWAG$,$"$l$P!"4{\e(B
+\e$BFI5-;v$O!"%(%/%9%Q%$%"$N%^!<%/$,$D$$$F$$$J$/$H$bA4$F%(%/%9%Q%$%"=hM}$r;\\e(B
+\e$B$5$l$^$9!#Cm0U$7$F;HMQ$7$F$/$@$5$$!#L$FI5-;v!"0uIU$-5-;v!"J]N15-;v$O%(%/\e(B
+\e$B%9%Q%$%"$5$l$^$;$s!#\e(B
+
+@item expiry-wait
+@cindex expiry-wait
+@vindex nnmail-expiry-wait-function
+\e$B%0%k!<%W%Q%i%a!<%?$K\e(B @code{(expiry-wait . 10)} \e$B$N$h$&$JMWAG$,$"$l$P!"$3\e(B
+\e$B$NCM$O5-;v$r%(%/%9%Q%$%"$9$k$H$-$K\e(B @code{nnmail-expiry-wait} \e$B$H\e(B
+@code{nnmail-expiry-wait-function} \e$B$N@_Dj$h$j$bM%@h$5$l$^$9!#$3$NCM$O%(\e(B
+\e$B%/%9%Q%$%"$NF|?t\e(B(\e$B@0?t$G$"$kI,MW$O$J$$\e(B)\e$B$+$b$7$/$O\e(B @code{never} \e$B$+\e(B
+@code{immediate} \e$B$N%7%s%\%k$r;XDj$G$-$^$9!#\e(B
+
+@item score-file
+@cindex score file group parameter
+@code{(score-file . "file")} \e$B$N$h$&$JMWAG$O!"\e(B @file{file} \e$B$r8=:_$N%0%k!<\e(B
+\e$B%W$KE,MQ$5$l$k%9%3%"%U%!%$%k$K$7$^$9!#E,MQ$5$l$k%9%3%"%(%s%H%j$OA4$F$3$N\e(B
+\e$B%U%!%$%k$KF~$j$^$9!#\e(B
+
+@item adapt-file
+@cindex adapt file group parameter
+@code{(adapt-file . "file")} \e$B$N$h$&$JMWAG$O!"\e(B@file{file}\e$B$r8=:_$N%0%k!<%W\e(B
+\e$B$NE,MQ%U%!%$%k$K$7$^$9!#A4$F$NE,MQ%9%3%"%(%s%H%j$O$3$N%U%!%$%k$KF~$j$^$9!#\e(B
+
+@item admin-address
+\e$B%a!<%j%s%0%j%9%H$+$iC&2q$9$k$H$-$O!"C&2qDLCN%a!<%k$r$=$N%a!<%j%s%0%j%9%H\e(B
+\e$B<+?H$KAw?.$7$F$O$$$1$^$;$s!#Be$o$j$K4IM}MQ%"%I%l%9$K%a%C%;!<%8$rAw?.$7$^\e(B
+\e$B$9!#$3$N%Q%i%a!<%?$K$O$I$3$+JXMx$J4IM}MQ%"%I%l%9$r=q$$$F$*$/$3$H$,$G$-$^$9!#\e(B
+
+@item display
+ @code{(display . MODE)} \e$B$N$h$&$JMWAG$O!"%0%k!<%W$KF~$k$H$-$K$I$N5-;v$r\e(B
+\e$BI=<($9$k$+$r;XDj$7$^$9!#M-8z$JCM$O!"\e(B
+
+@table @code
+@item all
+\e$BL$FI!"4{FI5-;v$NN>J}$rA4$FI=<($7$^$9!#\e(B
+
+@item default
+\e$B%G%U%)%k%H$NI=<(5-;v$rI=<($7$^$9!#$3$l$ODL>o$OL$FI5-;v$H0uIU$-5-;v$G$9!#\e(B
+@end table
+
+@item comment
+@code{(comment . "This is a comment")} \e$B$N$h$&$JMWAG$O!"$=$N%0%k!<%W$KBP\e(B
+\e$B$9$kG$0U$N%3%a%s%H$G$9!#$3$l$O8=:_$O\e(B Gnus \e$B$K$OL5;k$5$l$^$9$,!"FCDj$N%0%k!<\e(B
+\e$B%W$KBP$9$k>pJs$r3JG<$9$k>l=j$rDs6!$7$^$9!#\e(B
+
+@item @var{(variable form)}
+\e$B%0%k!<%W$KF~$k$H$-$K!"$=$N%0%k!<%W%m!<%+%k$NJQ?t$r@_Dj$9$k%0%k!<%W%Q%i%a!<\e(B
+\e$B%?$r;HMQ$9$k$3$H$,$G$-$^$9!#\e(B@samp{news.answers} \e$B$K$*$$$F%9%l%C%II=<($r9T\e(B
+\e$B$$$?$/$J$$$H$-$O!"$=$N%0%k!<%W$K%0%k!<%W%Q%i%a!<%?$K\e(B 
+@code{(gnus-show-threads nil)} \e$B$H=q$1$^$9!#\e(B @code{gnus-show-threads} \e$B$O!"\e(B
+\e$B$=$N%5%^%j%P%C%U%!$NCf$N%m!<%+%kJQ?t$K$J$j!"\e(Bform \e$B$N\e(B @code{nil} \e$B$O$=$3$G\e(B
+\e$BI>2A$5$l$^$9!#\e(B
+
+\e$B$3$l$O$b$7I,MW$G$"$l$P!"%0%k!<%WKh$N%U%C%/4X?t$H$7$F$b;HMQ$G$-$^$9!#$b$7\e(B
+\e$B$"$k%0%k!<%W$KF~$C$?$H$-$K%S!<%W2;$rLD$i$7$?$1$l$P!"$=$N%0%k!<%W$N%Q%i%a!<\e(B
+\e$B%?$K\e(B @code{(dummy-variable (ding))} \e$B$_$?$$$J$b$N$r=q$$$F$*$/$3$H$b$G$-$^\e(B
+\e$B$9!#\e(B@code{dummy-variable} \e$B$H$$$&JQ?t$K\e(B @code{(ding)} \e$B$NI>2A7k2L$,@_Dj$5\e(B
+\e$B$l$^$9$,!"$^$"!"C/$b5$$K$7$J$$$G$7$g\e(B?
+
+@end table
+
+\e$B%0%k!<%W%Q%i%a!<%?$N=$@5$K$O\e(B  @kbd{G p} \e$B%3%^%s%I$r;H$C$F$/$@$5$$!#%H%T%C\e(B
+\e$B%/%Q%i%a!<%?$K$D$$$FFI$s$G$_$k$3$H$bLLGr$$$G$7$g$&\e(B 
+(@pxref{Topic Parameters})\e$B!#\e(B
+
+@node Listing Groups
+@section \e$B%0%k!<%W$N0lMwI=<(\e(B
+@cindex group listing
+
+\e$B$3$l$i$N%3%^%s%I$O!"MxMQ$G$-$k%0%k!<%W$r$$$m$$$m$K@Z$jJ,$1$FI=<($7$^$9!#\e(B
+
+@table @kbd
+
+@item l
+@itemx A s
+@kindex A s (Group)
+@kindex l (Group)
+@findex gnus-group-list-groups
+\e$BL$FI5-;v$r;}$DA4$F$N%0%k!<%W$rI=<($7$^$9\e(B (@code{gnus-group-list-groups})\e$B!#\e(B
+\e$B?t;z%W%l%U%#%C%/%9$r;H$&$H!"$3$N%3%^%s%I$O0z?t$N?t$+$=$l$h$j$b>.$5$$%l%Y\e(B
+\e$B%k$N%0%k!<%W$N$_$rI=<($7$^$9!#%G%U%)%k%H$G$O!"$3$l$O%l%Y%k\e(B 5 (\e$B$D$^$j\e(B
+@code{gnus-group-default-list-level}) \e$B$+$=$l$h$j>.$5$$%l%Y%k\e(B(\e$B$9$J$o$A9X\e(B
+\e$BFI$7$F$$$k%0%k!<%W$N$_\e(B)\e$B$rI=<($7$^$9!#\e(B
+
+@item L
+@itemx A u
+@kindex A u (Group)
+@kindex L (Group)
+@findex gnus-group-list-all-groups
+\e$BL$FI5-;v$N$"$k$J$7$K4X$o$i$:!"A4$F$N%0%k!<%W$rI=<($7$^$9\e(B
+(@code{gnus-group-list-all-groups})\e$B!#?t;z%W%l%U%#%C%/%9$r;HMQ$9$k$H!"$3\e(B
+\e$B$N%3%^%s%I$O0z?t$N?t$+$=$l$h$j$b>.$5$$%l%Y%k$N%0%k!<%W$N$_$rI=<($7$^$9!#\e(B
+\e$B%G%U%)%k%H$G$O\e(B 7 \e$B$+$=$l$h$j$b>.$5$$%l%Y%k$N%0%k!<%W\e(B(\e$B$9$J$o$A9XFI!"Hs9XFI\e(B
+\e$B$N%0%k!<%W$N$_\e(B)\e$B$,I=<($5$l$^$9!#\e(B
+
+@item A l
+@kindex A l (Group)
+@findex gnus-group-list-level
+\e$B$"$kFCDj$N%l%Y%k$NL$FI5-;v$N$"$k%0%k!<%W$rI=<($7$^$9\e(B
+(@code{gnus-group-list-level})\e$B!#%W%l%U%#%C%/%9$rM?$($k$H!"L$FI5-;v$N$J$$\e(B
+\e$B%0%k!<%W$b4^$a$FI=<($7$^$9!#\e(B
+
+@item A k
+@kindex A k (Group)
+@findex gnus-group-list-killed
+kill \e$B$5$l$?%0%k!<%W$rA4$FI=<($7$^$9\e(B (@code{gnus-group-list-killed})\e$B!#%W\e(B
+\e$B%l%U%#%C%/%90z?t$rM?$($k$H!"8=:_9XFI!"Hs9XFI$H$J$C$F$$$J$$A4$F$NMxMQ2DG=\e(B
+\e$B$J%0%k!<%W$rI=<($7$^$9!#$3$l$O%5!<%P$+$i%"%/%F%#%V%U%!%$%k$rFI$`$3$H$K$J\e(B
+\e$B$k$G$7$g$&!#\e(B
+
+@item A z
+@kindex A z (Group)
+@findex gnus-group-list-zombies
+\e$BA4$F$N%>%s%S%0%k!<%W$rI=<($7$^$9\e(B (@code{gnus-group-list-zombies})\e$B!#\e(B
+
+@item A m
+@kindex A m (Group)
+@findex gnus-group-list-matching
+\e$B@55,I=8=$K%^%C%A$9$kL>A0$r;}$D%0%k!<%W$G!"L$FI5-;v$N$"$k9XFI%0%k!<%W$rA4\e(B
+\e$B$FI=<($7$^$9\e(B (@code{gnus-group-list-matching})\e$B!#\e(B
+
+@item A M
+@kindex A M (Group)
+@findex gnus-group-list-all-matching
+\e$B@55,I=8=$K%^%C%A$9$k%0%k!<%W$rI=<($9$k\e(B
+(@code{gnus-group-list-all-matching})\e$B!#\e(B
+
+@item A A
+@kindex A A (Group)
+@findex gnus-group-list-active
+\e$B:#@\B3$7$F$$$k%5!<%P$N%"%/%F%#%V%U%!%$%k$K$"$k%0%k!<%W$r!"K\Ev$KA4ItI=<($7\e(B
+\e$B$^$9\e(B (@code{gnus-group-list-active})\e$B!#$3$l$O$7$P$i$/;~4V$,$+$+$k$3$H$bM-\e(B
+\e$B$jF@$^$9!#$?$V$s\e(B @kbd{A M} \e$B$r<B9T$7$F!"%^%C%A$5$;$?$$ItJ,$r\e(B @samp{.} \e$B$H\e(B
+\e$B$7$FA4$F$N%^%C%A$9$k%j%9%H$rI=<($5$;$?J}$,NI$$$G$7$g$&!#$^$?!"$3$N%3%^%s\e(B
+\e$B%I$O\e(B(\e$B$^$@\e(B)\e$BB8:_$7$J$$%0%k!<%W$bI=<($9$k$+$bCN$l$^$;$s\e(B --- \e$B$3$l$O\e(B kill \e$B$5\e(B
+\e$B$l$?%0%k!<%W$G$"$k$+$N$h$&$KI=<($5$l$^$9!#=PNO$OB?>/3d$j0z$$$F<u$1<h$C$F\e(B
+\e$B$M!#\e(B
+
+@item A a
+@kindex A a (Group)
+@findex gnus-group-apropos
+\e$B@55,I=8=$K%^%C%A$9$kL>A0$r;}$D%0%k!<%W$rA4$FI=<($9$k\e(B
+(@code{gnus-group-apropos})\e$B!#\e(B
+
+@item A d
+@kindex A d (Group)
+@findex gnus-group-description-apropos
+\e$B@55,I=8=$K%^%C%A$9$kL>A0$+@bL@J8$r;}$D%0%k!<%W$rA4$FI=<($9$k\e(B
+(@code{gnus-group-description-apropos})\e$B!#\e(B
+
+@end table
+
+@vindex gnus-permanently-visible-groups
+@cindex visible group parameter
+@code{gnus-permanently-visible-groups} \e$B@55,I=8=$K%^%C%A$9$k%0%k!<%W$O!"\e(B
+\e$BL$FI5-;v$,$"$k$+$J$$$+$K4X$o$i$:>o$KI=<($5$l$^$9!#$"$k$$$O%0%k!<%W%Q%i%a!<\e(B
+\e$B%?$K$*$$$F\e(B @code{visible} \e$BMWAG$rDI2C$9$k$3$H$G$bF1MM$N8z2L$rF@$k$3$H$,$G\e(B
+\e$B$-$^$9!#\e(B
+
+@vindex gnus-list-groups-with-ticked-articles
+\e$B0uIU$-$N5-;v$N$_$r;}$D%0%k!<%W$ODL>o%0%k!<%W%P%C%U%!$KI=<($5$l$^$9!#$b$7\e(B
+@code{gnus-list-groups-with-ticked-articles} \e$B$,\e(B @code{nil} \e$B$G$"$l$P!"$=\e(B
+\e$B$N%0%k!<%W$O40A4$K6u$N%0%k!<%W$G$"$k$+$N$h$&$K07$o$l$^$9!#%G%U%)%k%H$O\e(B
+@code{t} \e$B$G$9!#\e(B
+
+@node Sorting Groups
+@section \e$B%0%k!<%W$N%=!<%H\e(B
+@cindex sorting groups
+
+@kindex C-c C-s (Group)
+@findex gnus-group-sort-groups
+@vindex gnus-group-sort-function
+@kbd{C-c C-s} (@code{gnus-group-sort-groups}) \e$B%3%^%s%I$O!"%0%k!<%W%P%C%U%!$r\e(B
+@code{gnus-group-sort-function} \e$BJQ?t$GM?$($i$l$k4X?t$K=>$C$F%=!<%H$7$^$9!#\e(B
+\e$BMxMQ2DG=$J%=!<%H4X?t$K$O0J2<$N$b$N$,$"$j$^$9!#\e(B
+
+@table @code
+
+@item gnus-group-sort-by-alphabet
+@findex gnus-group-sort-by-alphabet
+\e$B%0%k!<%WL>$G%"%k%U%!%Y%C%H=g$K%=!<%H$7$^$9!#$3$l$O%G%U%)%k%H$G$9!#\e(B
+
+@item gnus-group-sort-by-real-name
+@findex gnus-group-sort-by-real-name
+\e$B%0%k!<%W$rK\Ev$N\e(B(\e$BA0$K2?$b$D$$$F$$$J$$\e(B)\e$B%0%k!<%WL>$G%"%k%U%!%Y%C%H=g$K%=!<\e(B
+\e$B%H$7$^$9!#\e(B
+
+@item gnus-group-sort-by-level
+@findex gnus-group-sort-by-level
+\e$B%0%k!<%W%l%Y%k$G%=!<%H$7$^$9!#\e(B
+
+@item gnus-group-sort-by-score
+@findex gnus-group-sort-by-score
+\e$B%0%k!<%W$N%9%3%"$G%=!<%H$7$^$9\e(B @xref{Group Score}\e$B!#\e(B
+
+@item gnus-group-sort-by-rank
+@findex gnus-group-sort-by-rank
+\e$B%0%k!<%W$N%9%3%"$G%=!<%H$7!"<!$K%0%k!<%W%l%Y%k$G%=!<%H$7$^$9!#%l%Y%k$H%9\e(B
+\e$B%3%"$O!"$R$H$^$H$a$K$7$F\e(B @dfn{\e$B%i%s%/\e(B} \e$B$H8F$P$l$^$9\e(B @xref{Group Score}\e$B!#\e(B
+
+@item gnus-group-sort-by-unread
+@findex gnus-group-sort-by-unread
+\e$BL$FI5-;v$N?t$G%=!<%H$7$^$9!#\e(B
+
+@item gnus-group-sort-by-method
+@findex gnus-group-sort-by-method
+\e$BA*Br%a%=%C%I$N%"%k%U%!%Y%C%H=g$G%=!<%H$7$^$9!#\e(B
+
+@end table
+
+@code{gnus-group-sort-function} \e$B$O%=!<%H4X?t$N%j%9%H$G$"$C$F$b9=$$$^$;$s!#\e(B
+\e$B$3$N>l9g!"$b$C$H$b=EMW$J%=!<%H%-!<$r;}$D4X?t$O:G8e$G$J$/$F$O$J$j$^$;$s!#\e(B
+
+\e$B$"$k<o$N%=!<%HMQ$K$O!"D>@\%=!<%H$9$k%3%^%s%I$b$$$/$D$+$"$j$^$9!#\e(B
+
+@table @kbd
+@item G S a
+@kindex G S a (Group)
+@findex gnus-group-sort-groups-by-alphabet
+\e$B%0%k!<%W%P%C%U%!$r%0%k!<%WL>$N%"%k%U%!%Y%C%H=g$G%=!<%H$7$^$9\e(B
+(@code{gnus-group-sort-groups-by-alphabet})\e$B!#\e(B
+
+@item G S u
+@kindex G S u (Group)
+@findex gnus-group-sort-groups-by-unread
+\e$B%0%k!<%W%P%C%U%!$rL$FI5-;v$N?t$G%=!<%H$7$^$9\e(B
+(@code{gnus-group-sort-groups-by-unread})\e$B!#\e(B
+
+@item G S l
+@kindex G S l (Group)
+@findex gnus-group-sort-groups-by-level
+\e$B%0%k!<%W%P%C%U%!$r%0%k!<%W%l%Y%k$G%=!<%H$7$^$9\e(B
+(@code{gnus-group-sort-groups-by-level})\e$B!#\e(B
+
+@item G S v
+@kindex G S v (Group)
+@findex gnus-group-sort-groups-by-score
+\e$B%0%k!<%W%P%C%U%!$r%0%k!<%W$N%9%3%"$G%=!<%H$7$^$9\e(B
+(@code{gnus-group-sort-groups-by-score})\e$B!#\e(B @xref{Group Score}\e$B!#\e(B
+
+@item G S r
+@kindex G S r (Group)
+@findex gnus-group-sort-groups-by-rank
+\e$B%0%k!<%W%P%C%U%!$r%0%k!<%W$N%i%s%/$G%=!<%H$7$^$9\e(B
+(@code{gnus-group-sort-groups-by-rank})\e$B!#\e(B @xref{Group Score}\e$B!#\e(B
+
+@item G S m
+@kindex G S m (Group)
+@findex gnus-group-sort-groups-by-method
+\e$B%0%k!<%W%P%C%U%!$r%P%C%/%(%s%I$NL>A0$G%"%k%U%!%Y%C%H=g$K%=!<%H$7$^$9\e(B
+(@code{gnus-group-sort-groups-by-method})\e$B!#\e(B
+
+@end table
+
+\e$B%W%l%U%#%C%/%9$rM?$($?$H$-$O!"$3$l$i$N%3%^%s%I$OA4$F5U=g$K%=!<%H$7$^$9!#\e(B
+
+\e$B$^$?!"%0%k!<%W$N0lIt$KBP$7$F%=!<%H$9$k$3$H$b$G$-$^$9!#\e(B
+
+@table @kbd
+@item G P a
+@kindex G P a (Group)
+@findex gnus-group-sort-selected-groups-by-alphabet
+\e$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"\e(B
+\e$B%0%k!<%WL>$N%"%k%U%!%Y%C%H=g$G%=!<%H$7$^$9\e(B
+(@code{gnus-group-sort-selected-groups-by-alphabet})\e$B!#\e(B
+
+@item G P u
+@kindex G P u (Group)
+@findex gnus-group-sort-selected-groups-by-unread
+\e$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"\e(B
+\e$BL$FI5-;v$N?t$G%=!<%H$7$^$9\e(B
+(@code{gnus-group-sort-selected-groups-by-unread})\e$B!#\e(B
+
+@item G P l
+@kindex G P l (Group)
+@findex gnus-group-sort-selected-groups-by-level
+\e$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"\e(B
+\e$B%0%k!<%W%l%Y%k$G%=!<%H$7$^$9\e(B (@code{gnus-group-sort-selected-groups-by-level})\e$B!#\e(B
+
+@item G P v
+@kindex G P v (Group)
+@findex gnus-group-sort-selected-groups-by-score
+\e$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"\e(B
+\e$B%0%k!<%W$N%9%3%"$G%=!<%H$7$^$9\e(B
+(@code{gnus-group-sort-selected-groups-by-score})\e$B!#\e(B  @xref{Group Score}\e$B!#\e(B
+
+@item G P r
+@kindex G P r (Group)
+@findex gnus-group-sort-selected-groups-by-rank
+\e$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"\e(B
+\e$B%0%k!<%W$N%i%s%/$G%=!<%H$7$^$9\e(B
+(@code{gnus-group-sort-selected-groups-by-rank})\e$B!#\e(B  @xref{Group Score}\e$B!#\e(B
+
+@item G P m
+@kindex G P m (Group)
+@findex gnus-group-sort-selected-groups-by-method
+\e$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"\e(B
+\e$B%P%C%/%(%s%I$NL>A0$G%"%k%U%!%Y%C%H=g$K%=!<%H$7$^$9\e(B
+(@code{gnus-group-sort-selected-groups-by-method})\e$B!#\e(B
+
+@end table
+
+
+
+@node Group Maintenance
+@section \e$B%0%k!<%W$N@0M}\e(B
+@cindex bogus groups
+
+@table @kbd
+@item b
+@kindex b (Group)
+@findex gnus-group-check-bogus-groups
+\e$BIT@5$J%0%k!<%W$r8+$D$1$F!":o=|$7$^$9\e(B
+(@code{gnus-group-check-bogus-groups})\e$B!#\e(B
+
+@item F
+@kindex F (Group)
+@findex gnus-group-find-new-groups
+\e$B?7$7$$%0%k!<%W$r8+$D$1$F!"$=$l$i$r=hM}$7$^$9\e(B
+(@code{gnus-group-find-new-groups})\e$B!#%W%l%U%#%C%/%9$rM?$($k$H!"%5!<%P$K\e(B
+\e$B?75,%0%k!<%W$rLd$$9g$o$;$k$N$K\e(B @code{ask-server} \e$B$NJ}K!$r;HMQ$7$^$9!#\e(B
+
+@item C-c C-x
+@kindex C-c C-x (Group)
+@findex gnus-group-expire-articles
+\e$B8=:_$N%0%k!<%W$N%(%/%9%Q%$%"5-;v$KBP$7$F\e(B(\e$B$b$7$"$l$P\e(B)\e$BA4$F%(%/%9%Q%$%"=hM}$r9T$$\e(B
+\e$B$^$9\e(B (@code{gnus-group-expire-articles})\e$B!#\e(B
+
+@item C-c M-C-x
+@kindex C-c M-C-x (Group)
+@findex gnus-group-expire-all-groups
+\e$BA4$F$N%0%k!<%W$NA4$F$N5-;v$KBP$7$F!"%(%/%9%Q%$%"=hM}$r9T$$$^$9\e(B
+(@code{gnus-group-expire-all-groups})\e$B!#\e(B
+
+@end table
+
+
+@node Browse Foreign Server
+@section \e$B30It%5!<%P$N%V%i%&%:\e(B
+@cindex foreign servers
+@cindex browsing servers
+
+@table @kbd
+@item B
+@kindex B (Group)
+@findex gnus-group-browse-foreign-server
+\e$BA*Br%a%=%C%I$H%5!<%PL>$rJ9$+$l$^$9!#\e(BGnus \e$B$O$3$N%5!<%P$K@\B3$7!"$=$3$K$"\e(B
+\e$B$k%0%k!<%W$r%V%i%&%:$7$h$&$H$7$^$9\e(B (@code{gnus-group-browse-foreign-server})\e$B!#\e(B
+
+@end table
+
+@findex gnus-browse-mode
+\e$BMxMQ2DG=$J%0%k!<%W$N%j%9%H$r;}$C$??7$7$$%P%C%U%!$,8=$l$^$9!#$3$N%P%C%U%!\e(B
+\e$B$O\e(B @code{gnus-browse-mode} \e$B$r;HMQ$7$^$9!#$3$N%P%C%U%!$ODL>o$N%0%k!<%W%P%C\e(B
+\e$B%U%!$K$A$g$C$H\e(B(\e$B$H$$$&$+!"$H$C$F$b\e(B)\e$B;w$F$$$^$9!#\e(B
+
+\e$B$3$l$,%V%i%&%:%b!<%I$G;HMQ$G$-$k%-!<A`:n$N%j%9%H$G$9!#\e(B
+
+@table @kbd
+@item n
+@kindex n (Browse)
+@findex gnus-group-next-group
+\e$B<!$N%0%k!<%W$K0\F0$7$^$9\e(B (@code{gnus-group-next-group})\e$B!#\e(B
+
+@item p
+@kindex p (Browse)
+@findex gnus-group-prev-group
+\e$B0l$DA0$N%0%k!<%W$K0\F0$7$^$9\e(B (@code{gnus-group-prev-group})\e$B!#\e(B
+
+@item SPACE
+@kindex SPACE (Browse)
+@findex gnus-browse-read-group
+\e$B8=:_$N%0%k!<%W$KF~$j!":G=i$K5-;v$rI=<($7$^$9\e(B
+(@code{gnus-browse-read-group})\e$B!#\e(B
+
+@item RET
+@kindex RET (Browse)
+@findex gnus-browse-select-group
+\e$B8=:_$N%0%k!<%W$KF~$j$^$9\e(B (@code{gnus-browse-select-group})\e$B!#\e(B
+
+@item u
+@kindex u (Browse)
+@findex gnus-browse-unsubscribe-current-group
+\e$B8=:_$N%0%k!<%W$rHs9XFI$K$9$k!"$D$^$j$3$N>l9g$O9XFI$9$k$3$H$K$J$k$N$@$1$l\e(B
+\e$B$I\e(B (@code{gnus-browse-unsubscribe-current-group})\e$B!#\e(B
+
+@item l
+@itemx q
+@kindex q (Browse)
+@kindex l (Browse)
+@findex gnus-browse-exit
+\e$B%V%i%&%:%b!<%I$r=*N;$7$^$9\e(B (@code{gnus-browse-exit})\e$B!#\e(B
+
+@item ?
+@kindex ? (Browse)
+@findex gnus-browse-describe-briefly
+\e$B%V%i%&%:%b!<%I$r4JC1$K@bL@$7$^$9\e(B(\e$B$^$"!"Bg$7$F@bL@$9$k$3$H$b$J$$$s$@$1$I$5\e(B)
+(@code{gnus-browse-describe-briefly})\e$B!#\e(B
+
+@end table
+
+
+@node Exiting Gnus
+@section Gnus \e$B$N=*N;\e(B
+@cindex exiting Gnus
+
+\e$B$=$&!"\e(BGnus \e$B$O:G8e\e(B(\e$B%5%$%3!<\e(B)\e$B$G$9\e(B(\e$BLuCm\e(B: \e$B$/!"6l$7$$!#86J8$O\e(B "Yes,
+Gnus is ex(c)iting.")\e$B!#\e(B
+
+@table @kbd
+@item z
+@kindex z (Group)
+@findex gnus-group-suspend
+Gnus \e$B$rCfCG$7$^$9\e(B (@code{gnus-group-suspend})\e$B!#$3$l$O\e(B Gnus \e$B$OK\\e(B
+\e$BEv$K$O=*N;$;$:!"%0%k!<%W%P%C%U%!0J30$NA4$F$N%P%C%U%!$r>C$9$@$1$G\e(B
+\e$B$9!#KM$O$3$l$G2?$,F@$9$k$N$+$h$/$o$+$s$J$$$s$@$1$I!"C/$+J,$+$k?M\e(B
+\e$B$$$k\e(B?
+
+@item q
+@kindex q (Group)
+@findex gnus-group-exit
+@c @icon{gnus-group-exit}
+Gnus \e$B$r=*N;$7$^$9\e(B(@code{gnus-group-exit})\e$B!#\e(B
+
+@item Q
+@kindex Q (Group)
+@findex gnus-group-quit
+@file{.newsrc} \e$B%U%!%$%k$r%;!<%V$;$:$K\e(B Gnus \e$B$r=*N;$7$^$9\e(B
+(@code{gnus-group-quit})\e$B!#%I%j%V%k%U%!%$%k$O%;!<%V$5$l$^$9$1$I\e(B
+(@pxref{Auto Save})\e$B!#\e(B
+@end table
+
+@vindex gnus-exit-gnus-hook
+@vindex gnus-suspend-gnus-hook
+Gnus \e$B$rCfCG$9$k$H$-$O\e(B @code{gnus-suspend-gnus-hook} \e$B$,8F$S=P$5$l$^$9!#\e(BGnus
+\e$B$r=*N;$9$k$H$-$O\e(B @code{gnus-exit-gnus-hook} \e$B$,8F$S=P$5$l!"$5$i$K\e(B Gnus \e$B$r\e(B
+\e$B=*N;$9$k$H$-$N:G8e$H$7$F\e(B @code{gnus-after-exiting-gnus-hook} \e$B$,8F$S=P$5\e(B
+\e$B$l$^$9!#\e(B
+
+@findex gnus-unload
+@cindex unloading
+\e$B$b$7\e(B Gnus \e$B$H$=$l$K4XO"$9$k$b$N$r40A4$K=hJ,$7$?$$$N$G$"$l$P!"\e(B
+@code{gnus-unload} \e$B%3%^%s%I$,;H$($^$9!#$3$N%3%^%s%I$O!"%a%?JQ?t$r%+%9%?\e(B
+\e$B%^%$%:$7$h$&$H$7$F$$$k$H$-$K$bJXMx$G$9!#\e(B
+
+Note:  
+
+@quotation
+\e$B%_%9\e(B Lisa Cannifax \e$B$O1Q8l$N<x6HCf!"8e$m$K:B$C$F$$$k>/G/$,H`=w$N\e(B
+\e$B%W%i%9%F%#%C%/$N0X;R$NGX1[$7$K!"1tI.$G7+$jJV$7@~$rIA$/$N$K$D$i$l\e(B
+\e$B$F!"B-$,$7$S$l$F=E$/$J$j!"0U<1$,[/[0$H$7$F$-$^$7$?!#\e(B
+@end quotation
+
+
+@node Group Topics
+@section Group Topics
+@cindex topics
+
+\e$B$b$7$"$J$?$,$?!<$/$5$s$N%0%k!<%W$rFI$s$G$$$k$N$G$"$l$P!"%0%k!<%W$r%H%T%C\e(B
+\e$B%/Kh$K3,AXJ,$1$G$-$k$HJXMx$G$7$g$&!#\e(BEmacs \e$B$N%0%k!<%W$r$3$C$A$X!"%;%C%/%9\e(B
+\e$B$N%0%k!<%W$r$"$C$A$X!"$G!";D$j$r\e(B(\e$B$(\e(B? \e$B%0%k!<%W$,\e(B2\e$B$D$/$i$$$7$+$J$$$N\e(B?)\e$B<YKb\e(B
+\e$B$K$J$i$J$$$h$&$K$=$NB>$N%;%/%7%g%s$KF~$l$^$7$g$&!#$"$k$$$O\e(B Emacs \e$B%;%C%/\e(B
+\e$B%9$N%0%k!<%W$r\e(B Emacs \e$B%0%k!<%W!"%;%C%/%9%0%k!<%W$N$I$A$i$+$NI{%H%T%C%/$H\e(B
+\e$B$9$k$3$H$5$($b$G$-$^$9\e(B --- \e$B$"$k$$$ON>J}$K\e(B! \e$B$9$s$4$$$G$7$g$&\e(B!
+
+@iftex
+@iflatex
+\gnusfigure{Group Topics}{400}{
+\put(75,50){\epsfig{figure=tmp/group-topic.ps,height=9cm}}
+}
+@end iflatex
+@end iftex
+
+\e$B$3$l$,Nc$G$9!#\e(B
+
+@example
+Gnus
+  Emacs -- \e$B$3$$$D$O$9$2!<$<\e(B!
+     3: comp.emacs
+     2: alt.religion.emacs
+    \e$B$($C$A$J\e(B Emacs
+     452: alt.sex.emacs
+       0: comp.talk.emacs.recovery
+  \e$B$=$NB>\e(B
+     8: comp.binaries.fractals
+    13: comp.sources.unix
+@end example
+
+@findex gnus-topic-mode
+@kindex t (Group)
+\e$B$3$N\e(B @emph{\e$BAG@2$i$7$$\e(B}\e$B5!G=$r;H$&$K$O!"\e(B@code{gnus-topic} \e$B%^%$%J!<%b!<\e(B
+\e$B%I$r\e(B(\e$B2?$H\e(B!)\e$BC1$K%9%$%C%A%*%s$9$k$@$1\e(B --- \e$B%0%k!<%W%P%C%U%!$G!"\e(B @kbd{t} \e$B$r\e(B
+\e$B2!$7$F$/$@$5$$\e(B(\e$B$3$l$O%H%0%k%3%^%s%I$G$9\e(B)\e$B!#\e(B
+
+\e$B$5$"$d$C$F$_$h$&!#$H$K$+$/;n$7$F$_$F!#\e(B \e$B7/$,La$C$F$/$k$^$G!"KM$O$3$3$GBT$C\e(B
+\e$B$F$k$+$i$5!#%i%i!"%?%i%i%s!D$s!"$$$$6J$@$M!"$3$l!D%i!"%i!"%i!D$(\e(B? \e$BLa$C$F\e(B
+\e$B$-$?\e(B? \e$B$h$7!"$8$c<!$O\e(B @kbd{l} \e$B$r2!$7$F$_$F!#$[$i!#$3$l$GA4$F$N%0%k!<\e(B
+\e$B%W$,\e(B @samp{misc} \e$B$N2<$KI=<($5$l$^$7$?!#6=J3$7$F%/%i%/%i$7$F$3$J$$\e(B? \e$B%"%D\e(B
+\e$B$/$C$F!"$$$^$$$^$7$$$/$i$$$G$7$g\e(B?
+
+\e$B$3$l$r$:$C$HM-8z$K$7$?$1$l$P!"%0%k!<%W%b!<%I$N%U%C%/$K$3$N%^%$%J!<%b!<%I\e(B
+\e$B$rDI2C$7$F$/$@$5$$!#\e(B
+
+@lisp
+(add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
+@end lisp
+
+@menu
+* Topic Variables::    Lisp \e$B$G%H%T%C%/$r%+%9%?%^%$%:$9$kJ}K!!#\e(B
+* Topic Commands::     \e$BD64JC1BPOC7?%3%^%s%I\e(B
+* Topic Sorting::      \e$B%H%T%C%/KhJL!9$K%=!<%H$9$k!#\e(B
+* Topic Topology::     \e$BA4@$3&$NCO?^!#\e(B
+* Topic Parameters::   \e$B$"$k%H%T%C%/$NA4$F$N%0%k!<%W$KE,MQ$5$l$k%Q%i%a!<%?!#\e(B
+@end menu
+
+
+@node Topic Variables
+@subsection \e$B%H%T%C%/JQ?t\e(B
+@cindex topic variables
+
+\e$B$5$F!"%H%T%C%/$rA*$V$H!"%H%T%C%/$O@^$j>v$^$l$^$9!#$3$l!"$H$C$F$b\e(B
+\e$B%9%F%-$@$H;W$&$s$@$1$I!#\e(B
+
+@vindex gnus-topic-line-format
+\e$B%H%T%C%/9T$O!"\e(B@code{gnus-topic-line-format} \e$BJQ?t$NCM$K=>$C$F:n@.$5$l$^$9\e(B
+(@pxref{Formatting Variables})\e$B!#M-8z$JMWAG$O!"\e(B
+
+@table @samp
+@item i
+\e$B;z2<$2!#\e(B
+@item n
+\e$B%H%T%C%/L>!#\e(B
+@item v
+\e$B8+$($k$+$I$&$+!#\e(B
+@item l
+\e$B%l%Y%k!#\e(B
+@item g
+\e$B%H%T%C%/Cf$N%0%k!<%W$N?t!#\e(B
+@item a
+\e$B%H%T%C%/Cf$NL$FI5-;v$N?t!#\e(B
+@item A
+\e$B%H%T%C%/$HA4$F$NI{%H%T%C%/$NL$FI5-;v$N?t!#\e(B
+@end table
+
+@vindex gnus-topic-indent-level
+\e$B3FI{%H%T%C%/\e(B(\e$B$HI{%H%T%C%/Fb$N%0%k!<%W\e(B)\e$B$O!"%H%T%C%/%l%Y%k?t$N\e(B
+@code{gnus-topic-indent-level} \e$BG\$N6uGrJ,$N;z2<$2$,9T$o$l$^$9!#%G%U%)%k\e(B
+\e$B%H$O\e(B 2 \e$B$G$9!#\e(B
+
+@vindex gnus-topic-mode-hook
+@code{gnus-topic-mode-hook} \e$B$O%H%T%C%/%^%$%J!<%b!<%I%P%C%U%!$G8F$S=P$5$l\e(B
+\e$B$^$9!#\e(B
+
+@vindex gnus-topic-display-empty-topics
+@code{gnus-topic-display-empty-topics} \e$B$O%H%T%C%/$NCf$KL$FI5-;v\e(B
+\e$B$,L5$$>l9g$G$b$=$N%H%T%C%/$rI=<($9$k$h$&$K$7$^$9!#%G%U%)%k%H$O\e(B
+@code{t} \e$B$G$9!#\e(B
+
+@node Topic Commands
+@subsection \e$B%H%T%C%/%3%^%s%I\e(B
+@cindex topic commands
+
+\e$B%H%T%C%/%^%$%J!<%b!<%I$,M-8z$G$"$k$H$-$O!"\e(B@kbd{T} \e$B%5%V%^%C%W$,?7\e(B
+\e$B$7$/MxMQ$G$-$k$h$&$K$J$j$^$9!#$5$i$KI8=`%-!<$NCf$G$b!"Dj5A$,$A$g$C\e(B
+\e$B$HJQ$o$k$b$N$,>/$7$"$j$^$9!#\e(B
+
+@table @kbd
+
+@item T n
+@kindex T n (Topic)
+@findex gnus-topic-create-topic
+\e$B?7$7$$%H%T%C%/$NL>A0$r%W%m%s%W%HF~NO$7!"$=$l$r:n@.$7$^$9\e(B
+(@code{gnus-topic-create-topic})\e$B!#\e(B
+
+@item T m
+@kindex T m (Topic)
+@findex gnus-topic-move-group
+\e$B8=:_$N%0%k!<%W$r!"$I$3$+B>$N%H%T%C%/$K0\F0$5$;$^$9\e(B
+(@code{gnus-topic-move-group})\e$B!#$3$N%3%^%s%I$O%W%m%;%9%^!<%/!&%W\e(B
+\e$B%l%U%#%C%/%9%k!<%k$K=>$$$^$9\e(B (@pxref{Process/Prefix})\e$B!#\e(B
+
+@item T c
+@kindex T c (Topic)
+@findex gnus-topic-copy-group
+\e$B8=:_$N%0%k!<%W$r!"$I$3$+B>$N%H%T%C%/$K%3%T!<$7$^$9\e(B
+(@code{gnus-topic-copy-group})\e$B!#$3$N%3%^%s%I$O%W%m%;%9%^!<%/!&%W\e(B
+\e$B%l%U%#%C%/%9%k!<%k$K=>$$$^$9\e(B (@pxref{Process/Prefix})\e$B!#\e(B
+
+@item T D
+@kindex T D (Topic)
+@findex gnus-topic-remove-group
+\e$B%0%k!<%W$r8=:_$N%H%T%C%/$+$i:o=|$7$^$9\e(B
+(@code{gnus-topic-remove-group})\e$B!#$3$N%3%^%s%I$O%W%m%;%9%^!<%/!&\e(B
+\e$B%W%l%U%#%C%/%9%k!<%k$K=>$$$^$9\e(B (@pxref{Process/Prefix})\e$B!#\e(B
+
+@item T M
+@kindex T M (Topic)
+@findex gnus-topic-move-matching
+\e$B@55,I=8=$K%^%C%A$9$kA4$F$N%0%k!<%W$r!"$"$k%H%T%C%/$K0\F0$5$;$^$9\e(B
+(@code{gnus-topic-move-matching})\e$B!#\e(B 
+
+@item T C
+@kindex T C (Topic)
+@findex gnus-topic-copy-matching
+\e$B@55,I=8=$K%^%C%A$9$kA4$F$N%0%k!<%W$r!"$"$k%H%T%C%/$K%3%T!<$7$^$9\e(B
+(@code{gnus-topic-copy-matching})\e$B!#\e(B
+
+@item T h
+@kindex T h (Topic)
+@findex gnus-topic-toggle-display-empty-topics
+\e$B6u$N%H%T%C%/$NI=<(!&HsI=<($r@Z$jBX$($^$9\e(B
+(@code{gnus-topic-toggle-display-empty-topics})\e$B!#\e(B
+
+@item T #
+@kindex T # (Topic)
+@findex gnus-topic-mark-topic
+\e$B8=:_$N%H%T%C%/$K$"$k%0%k!<%WA4$F$K%W%m%;%9%^!<%/$r$D$1$^$9\e(B
+(@code{gnus-topic-mark-topic})\e$B!#\e(B
+
+@item T M-#
+@kindex T M-# (Topic)
+@findex gnus-topic-unmark-topic
+\e$B8=:_$N%H%T%C%/$K$"$kA4$F$N%0%k!<%W$+$i%W%m%;%9%^!<%/$r>C$7$^$9\e(B
+(@code{gnus-topic-unmark-topic})\e$B!#\e(B
+
+@item RET
+@kindex RET (Topic)
+@findex gnus-topic-select-group
+@itemx SPACE
+\e$B%0%k!<%W$rA*Br$9$k$+!"$"$k$$$O%H%T%C%/$r@^$j$?$?$_$^$9\e(B
+(@code{gnus-topic-select-group})\e$B!#%0%k!<%W$N>e$G$3$N%3%^%s%I$r<B\e(B
+\e$B9T$9$k$H!"DL>oDL$j$=$N%0%k!<%W$KF~$j$^$9!#%H%T%C%/9T$N>e$G9T$&$H!"\e(B
+\e$B$=$N%H%T%C%/$O\e(B(\e$B4{$KI=<($5$l$F$$$k$H$-$O\e(B)\e$B@^$j$?$?$^$l$k$+!"\e(B(\e$B4{$K\e(B
+\e$B@^$j$?$?$^$l$F$$$k$H$-$O\e(B)\e$BE83+$5$l$^$9!#$D$^$j%H%T%C%/$KBP$7$F$O\e(B
+\e$B$3$l$O%H%0%k%3%^%s%I$G$9!#$5$i$K!"?t;z%W%l%U%#%C%/%9$rM?$($k$H!"\e(B
+\e$B$=$N%l%Y%k\e(B(\e$B$H$=$l$h$j$b>.$5$$%l%Y%k\e(B)\e$B$N%0%k!<%W$,I=<($5$l$^$9!#\e(B
+
+@item T TAB
+@kindex T TAB (Topic)
+@findex gnus-topic-indent
+\e$B8=:_$N%H%T%C%/$N!V;z2<$2!W$r9T$$!"$=$NA0$N%H%T%C%/$NI{%H%T%C%/$K\e(B
+\e$B$7$^$9\e(B (@code{gnus-topic-indent})\e$B!#%W%l%U%#%C%/%9$rM?$($k$H!"H?\e(B
+\e$BBP$K$=$N%H%T%C%/$N;z2<$2$rLa$7$^$9!#\e(B
+
+@item C-k
+@kindex C-k (Topic)
+@findex gnus-topic-kill-group
+\e$B%0%k!<%W$"$k$$$O%H%T%C%/$r\e(B kill \e$B$7$^$9\e(B
+(@code{gnus-topic-kill-group})\e$B!#%H%T%C%/Fb$K$"$C$?%0%k!<%W$bA4$F!"\e(B
+\e$B%H%T%C%/$H0l=o$K:o=|$5$l$^$9!#\e(B
+
+@item C-y
+@kindex C-y (Topic)
+@findex gnus-topic-yank-group
+\e$BD>A0$N\e(B kill \e$B$5$l$?%0%k!<%W$"$k$$$O%H%T%C%/$r\e(B yank \e$B$7$^$9\e(B
+(@code{gnus-topic-yank-group})\e$B!#A4$F$N%H%T%C%/$O!"A4$F$N%0%k!<%W\e(B
+\e$B$NA0$K\e(B yank \e$B$5$l$k$3$H$K5$$r$D$1$F$/$@$5$$!#\e(B
+
+@item T r
+@kindex T r (Topic)
+@findex gnus-topic-rename
+\e$B%H%T%C%/$NL>A0$rJQ99$9$k\e(B (@code{gnus-topic-rename})\e$B!#\e(B
+
+@item T DEL
+@kindex T DEL (Topic)
+@findex gnus-topic-delete
+\e$B6u$N%H%T%C%/$r:o=|$9$k\e(B (@code{gnus-topic-delete})\e$B!#\e(B
+
+@item A T
+@kindex A T (Topic)
+@findex gnus-topic-list-active
+Gnus \e$B$,CN$C$F$$$k%H%T%C%/2=$5$l$?%0%k!<%W$rA4$FI=<($7$^$9\e(B
+(@code{gnus-topic-list-active})\e$B!#\e(B
+
+@item G p
+@kindex G p (Topic)
+@findex gnus-topic-edit-parameters
+@cindex group parameters
+@cindex topic parameters
+@cindex parameters
+\e$B%H%T%C%/%Q%i%a!<%?$r=$@5$7$^$9\e(B (@code{gnus-topic-edit-parameters})\e$B!#\e(B
+@xref{Topic Parameters}\e$B!#\e(B
+
+@end table
+
+
+@node Topic Sorting
+@subsection \e$B%H%T%C%/$N%=!<%H\e(B
+@cindex topic sorting
+
+\e$B0J2<$K<($9%3%^%s%I$G!"3F%H%T%C%/Kh$KJL!9$K%0%k!<%W$r%=!<%H$G$-$^$9!#\e(B
+
+
+@table @kbd
+@item T S a
+@kindex T S a (Topic)
+@findex gnus-topic-sort-groups-by-alphabet
+\e$B8=:_$N%H%T%C%/$r%0%k!<%WL>$N%"%k%U%!%Y%C%H=g$G%=!<%H$7$^$9\e(B
+(@code{gnus-topic-sort-groups-by-alphabet})\e$B!#\e(B 
+
+@item T S u
+@kindex T S u (Topic)
+@findex gnus-topic-sort-groups-by-unread
+\e$B8=:_$N%H%T%C%/$rL$FI5-;v$N?t$G%=!<%H$7$^$9\e(B
+(@code{gnus-topic-sort-groups-by-unread})\e$B!#\e(B
+
+@item T S l
+@kindex T S l (Topic)
+@findex gnus-topic-sort-groups-by-level
+\e$B8=:_$N%H%T%C%/$r%0%k!<%W$N%l%Y%k$G%=!<%H$7$^$9\e(B
+(@code{gnus-topic-sort-groups-by-level})\e$B!#\e(B
+
+@item T S v
+@kindex T S v (Topic)
+@findex gnus-topic-sort-groups-by-score
+\e$B8=:_$N%H%T%C%/$r%0%k!<%W$N%9%3%"$G%=!<%H$7$^$9\e(B
+(@code{gnus-topic-sort-groups-by-score})\e$B!#\e(B @xref{Group Score}\e$B!#\e(B
+
+@item T S r
+@kindex T S r (Topic)
+@findex gnus-topic-sort-groups-by-rank
+\e$B8=:_$N%H%T%C%/$r%0%k!<%W$N%i%s%/$G%=!<%H$7$^$9\e(B
+(@code{gnus-topic-sort-groups-by-rank})\e$B!#\e(B @xref{Group Score}\e$B!#\e(B
+
+@item T S m
+@kindex T S m (Topic)
+@findex gnus-topic-sort-groups-by-method
+\e$B8=:_$N%H%T%C%/$r%P%C%/%(%s%I$NL>A0$G%"%k%U%!%Y%C%H=g$K%=!<%H$7$^\e(B
+\e$B$9\e(B (@code{gnus-topic-sort-groups-by-method})\e$B!#\e(B
+
+@end table
+
+\e$B%0%k!<%W$N%=!<%H$K$D$$$F$N$5$i$J$k>pJs$O!"\e(B@xref{Sorting Groups}
+\e$B$r;2>H$7$F$/$@$5$$!#\e(B
+
+@node Topic Topology
+@subsection \e$B%H%T%C%/$N0LAj9=B$\e(B
+@cindex topic topology
+@cindex topology
+
+\e$B$=$l$G$O!"%0%k!<%W%P%C%U%!$NNc$r8+$F$$$-$^$7$g$&!#\e(B
+
+@example
+Gnus
+  Emacs -- \e$B$3$$$D$O$9$2!<$<\e(B!
+     3: comp.emacs
+     2: alt.religion.emacs
+    \e$B$($C$A$J\e(B Emacs
+     452: alt.sex.emacs
+       0: comp.talk.emacs.recovery
+  \e$B$=$NB>\e(B
+     8: comp.binaries.fractals
+    13: comp.sources.unix
+@end example
+
+\e$B$D$^$j!"$3$3$G$O0l$D$N%H%C%W%l%Y%k$N%H%T%C%/\e(B (@samp{Gnus}) \e$B$,$"\e(B
+\e$B$j!"$=$N2<$K\e(B2\e$B$D$N%H%T%C%/$,$"$j!"$=$N$&$A$N0lJ}$NI{%H%T%C%/Cf$K\e(B
+\e$B0l$DI{%H%T%C%/$,$"$j$^$9\e(B(\e$B%H%C%W%l%Y%k%H%T%C%/$O>o$K0l$D$7$+$"$j\e(B
+\e$B$^$;$s\e(B)\e$B!#$3$N9=B$$O!"0J2<$N$h$&$KI=8=$G$-$^$9!#\e(B
+
+@lisp
+(("Gnus" visible)
+ (("Emacs -- \e$B$3$$$D$O$9$2!<$<\e(B!" visible)
+  (("\e$B$($C$A$J\e(B Emacs" visible)))
+ (("\e$B$=$NB>\e(B" visible)))
+@end lisp
+
+@vindex gnus-topic-topology
+\e$B$3$l$O<B$K!">e5-$NI=<($r9T$&$?$a$N!"JQ?t\e(B
+@code{gnus-topic-topology} \e$B$NCM$=$N$b$N$J$N$G$9!#$3$NJQ?t$O\e(B
+@file{.newsrc.eld} \e$B%U%!%$%k$KJ]B8$5$l!"<j$G$$$8$/$j2s$7$F$O$$$1\e(B
+\e$B$^$;$s\e(B --- \e$BK\Ev$K$d$j$?$$$H$-$OJL$G$9$,!#$3$NJQ?t$O\e(B
+@file{.newsrc.eld} \e$B%U%!%$%k$+$iFI$_9~$^$l$k$N$G!"$=$NB>$N%9%?!<\e(B
+\e$B%H%"%C%W%U%!%$%k$N@_Dj$K$OA4$/1F6A$rM?$($^$;$s!#\e(B
+
+\e$B$3$N9=B$$O!"$I$N%H%T%C%/$,$I$N%H%T%C%/$NI{%H%T%C%/$G$"$k$+$H!"$I\e(B
+\e$B$N%H%T%C%/$,I=<($5$l$F$$$k$+$r<($7$F$$$^$9!#8=:_$OFs$D$N@_DjCM\e(B
+--- @code{visible} \e$B$H\e(B @code{invisible} \e$B$,5v$5$l$F$$$^$9!#\e(B
+
+
+@node Topic Parameters
+@subsection \e$B%H%T%C%/%Q%i%a!<%?\e(B
+@cindex topic parameters
+
+\e$B%H%T%C%/Fb$NA4$F$N%0%k!<%W$O%0%k!<%W%Q%i%a!<%?$r!"$=$N?F\e(B(\e$B$H@hAD\e(B)
+\e$B$N%H%T%C%/%Q%i%a!<%?$+$i7Q>5$7$^$9!#%0%k!<%W%Q%i%a!<%?$H$7$F@5$7\e(B
+\e$B$$$b$N$OA4$F!"%H%T%C%/%Q%i%a!<%?$H$7$F$b@5$7$$$b$N$G$9\e(B
+(@pxref{Group Parameters})\e$B!#\e(B
+
+\e$B%0%k!<%W%Q%i%a!<%?$O\e(B(\e$B$b$A$m$s\e(B)\e$B%H%T%C%/%Q%i%a!<%?$h$j$bM%@h$5$l!"\e(B
+\e$BI{%H%T%C%/$N%H%T%C%/%Q%i%a!<%?$O?F%H%T%C%/$N%H%T%C%/%Q%i%a!<%?$h\e(B
+\e$B$j$bM%@h$5$l$^$9!#J,$+$k$h$M!#$4$/IaDL$N7Q>5%k!<%k$G$9\e(B(\e$B%k!<%k\e(B 
+@dfn{Rules} \e$B$O$3$3$G$OL>;l$G$"$C$F!"F0;l$N!V@~$r0z$/!W$G$O$"$j$^\e(B
+\e$B$;$s!#$3$N%k!<%k$K$OH?BP$7$?$/$J$k$+$bCN$l$J$$$1$I!"$=$l$O$4<+M3\e(B
+\e$B$K\e(B)\e$B!#\e(B
+
+@example
+Gnus
+  Emacs
+     3: comp.emacs
+     2: alt.religion.emacs
+   452: alt.sex.emacs
+    \e$BB)H4$-\e(B
+     452: alt.sex.emacs
+       0: comp.talk.emacs.recovery
+  \e$B$=$NB>\e(B
+     8: comp.binaries.fractals
+    13: comp.sources.unix
+   452: alt.sex.emacs
+@end example
+
+@samp{Emacs} \e$B%H%T%C%/$O%H%T%C%/%Q%i%a!<%?\e(B @code{(score-file
+. "emacs.SCORE")} \e$B$r;}$C$F$$$^$9!#\e(B@samp{\e$BB)H4$-\e(B} \e$B%H%T%C%/$O%H%T%C\e(B
+\e$B%/%Q%i%a!<%?\e(B @code{(score-file . "relief.SCORE")} \e$B$r;}$A!"\e(B
+@samp{\e$B$=$NB>\e(B} \e$B%H%T%C%/$O%H%T%C%/%Q%i%a!<%?\e(B @code{(score-file
+. "emacs.SCORE")} \e$B$r;}$C$F$$$^$9!#$5$i$K!"\e(B
+@samp{alt.religion.emacs} \e$B$O%0%k!<%W%Q%i%a!<%?\e(B @code{(score-file
+. "religion.SCORE")} \e$B$r;}$C$F$$$^$9!#\e(B
+
+\e$B$5$F!"$3$3$G\e(B @samp{\e$BB)H4$-\e(B} \e$B%H%T%C%/$N\e(B @samp{alt.sex.emacs} \e$B%0%k!<\e(B
+\e$B%W$KF~$C$?$H$-!"\e(B@file{relief.SCORE} \e$B$,4pK\%9%3%"%U%!%$%k$H$J$j$^\e(B
+\e$B$9!#$b$7\e(B @samp{Emacs} \e$B%H%T%C%/$NF1$8%0%k!<%W$KF~$k$H!"\e(B
+@file{emacs.SCORE} \e$B$,4pK\%9%3%"%U%!%$%k$K$J$k$G$7$g$&!#\e(B
+@samp{alt.religion.emacs} \e$B%0%k!<%W$KF~$l$P!"\e(B
+@file{religion.SCORE} \e$B$,4pK\%9%3%"%U%!%$%k$K$J$k$G$7$g$&!#\e(B
+
+\e$B$3$l$C$F$H$C$F$b4JC1$G<+L@$N$3$H$N$h$&$K8+$($k$G$7$g\e(B? \e$B$^$"!"$=$N\e(B
+\e$BDL$j$G$9!#$G$9$,LdBj$,$"$k>l9g$b$"$j$^$9!#FC$K\e(B
+@code{total-expiry} \e$B%Q%i%a!<%?$K4X$7$F$G$9!#Nc$($P$"$k%a!<%k%0%k!<\e(B
+\e$B%W$rFs$D$N%H%T%C%/$NCf$K!"0lJ}$O\e(B @code{total-expiry} \e$B$"$j$G!"$b\e(B
+\e$B$&0lJ}$O$=$l$J$7$G;}$C$F$$$k$H$7$^$7$g$&!#$3$3$G\e(B @kbd{M-x
+gnus-expire-all-expirable-groups} \e$B$r<B9T$9$k$H!"2?$,5/$3$k$G$7$g\e(B
+\e$B$&$+\e(B? Gnus \e$B$O!"$"$J$?$,$I$A$i$N%H%T%C%/$+$i5-;v$r%(%/%9%Q%$%"$7\e(B
+\e$B$?$$$N$+$rCN$kJ}K!$,$J$$$?$a!":G0-$N;vBV$,H/@8$9$k$+$b$7$l$^$;$s!#\e(B
+\e$B<B:]!";d$O$3$N$H$-2?$,5/$3$k$N$+$O!VL$Dj5A\e(B @dfn{undefined}\e$B!W$G$"\e(B
+\e$B$k!"$H$3$3$K@k8@$7$^$9!#$3$N<j$N$3$H$r$d$j$?$$>l9g$K$O==J,Cm0U$7\e(B
+\e$B$J$1$l$P$J$j$^$;$s!#\e(B
+
+
+@node Misc Group Stuff
+@section \e$B$=$NB>$N%0%k!<%W4XO"\e(B
+
+@menu
+* Scanning New Messages:: Gnus \e$B$K?7$7$$%a%C%;!<%8$,E~Ce$7$?$+$I$&$+$rJ9$/!#\e(B
+* Group Information::     \e$B%0%k!<%W$H\e(B Gnus \e$B$K4X$9$k>pJs$H%X%k%W!#\e(B
+* Group Timestamp::       Gnus \e$B$K:G8e$K$$$D%0%k!<%W$rFI$s$@$+$r5-O?$5$;$k!#\e(B
+* File Commands::         Gnus \e$B$N%U%!%$%k$NFI$_=q$-!#\e(B
+@end menu
+
+@table @kbd
+
+@item ^
+@kindex ^ (Group)
+@findex gnus-group-enter-server-mode
+\e$B%5!<%P%P%C%U%!%b!<%I$KF~$k\e(B (@code{gnus-group-enter-server-mode})\e$B!#\e(B
+@xref{The Server Buffer}\e$B!#\e(B
+
+@item a
+@kindex a (Group)
+@findex gnus-group-post-news
+\e$B$"$k%0%k!<%W$K5-;v$rEj9F$9$k\e(B (@code{gnus-group-post-news})\e$B!#%W%l\e(B
+\e$B%U%#%C%/%9$rM?$($k$H!"8=:_$N%0%k!<%WL>$,%G%U%)%k%H$H$7$F;HMQ$5$l$^$9!#\e(B
+
+@item m
+@kindex m (Group)
+@findex gnus-group-mail
+\e$B%a!<%k$r$I$3$+$KAw$k\e(B (@code{gnus-group-mail})\e$B!#\e(B
+
+@end table
+
+\e$B0J2<!"%0%k!<%W%P%C%U%!$N$?$a$NJQ?t$G$9!#\e(B
+
+@table @code
+
+@item gnus-group-mode-hook
+@vindex gnus-group-mode-hook
+\e$B%0%k!<%W%P%C%U%!$,:n@.$5$l$?;~$K8F$S=P$5$l$^$9!#\e(B
+
+
+@item gnus-group-prepare-hook
+@vindex gnus-group-prepare-hook
+
+
+\e$B%0%k!<%W%P%C%U%!$,@8@.$5$l$?$"$H$K8F$S=P$5$l$^$9!#$3$l$O%P%C%U%!\e(B
+\e$B$r2?$+JQ$J!"<+A3$8$c$J$$J}K!$G=$@5$7$?$$$H$-$K;H$o$l$k$+$b$7$l$^$;$s!#\e(B
+
+@item gnus-group-prepared-hook
+@vindex gnus-group-prepare-hook
+\e$B%0%k!<%W%P%C%U%!$,@8@.$5$l$?8e$N0lHV:G8e$K8F$S=P$5$l$^$9!#Nc$($P\e(B
+\e$B%]%$%s%H$r$I$3$+$K0\F0$5$;$?$$$H$-$J$I$K;H$($^$9!#\e(B
+
+@item gnus-permanently-visible-groups
+@vindex gnus-permanently-visible-groups
+\e$B$3$N@55,I=8=$K%^%C%A$9$k%0%k!<%W$O!"$=$l$,6u$G$"$k$+$I$&$+$K4X$o\e(B
+\e$B$i$:!">o$K%0%k!<%W%P%C%U%!$KI=<($5$l$^$9!#\e(B
+
+@end table
+
+
+@node Scanning New Messages
+@subsection \e$B?7Ce%a%C%;!<%8$rC5$9\e(B
+@cindex new messages
+@cindex scanning new news
+
+@table @kbd
+
+@item g
+@kindex g (Group)
+@findex gnus-group-get-new-news
+@c @icon{gnus-group-get-new-news}
+\e$B%5!<%P$N?7Ce5-;v$r%A%'%C%/$7$^$9!#?t;z%W%l%U%#%C%/%9$r;HMQ$9$k$H!"\e(B
+\e$B$3$N%3%^%s%I$O0z?t\e(B @var{arg} \e$B$+$=$l$h$j>.$5$$%l%Y%k$N%0%k!<%W$N\e(B
+\e$B$_$r%A%'%C%/$7$^$9\e(B (@code{gnus-group-get-new-news})\e$B!#?t;z0J30$N\e(B
+\e$B%W%l%U%#%C%/%9$rM?$($k$H!"$3$N%3%^%s%I$O$=$N%P%C%/%(%s%I$+$i%"%/\e(B
+\e$B%F%#%V%U%!%$%k$r6/@)E*$KA4ItFI$_D>$7$^$9!#\e(B
+
+@item M-g
+@kindex M-g (Group)
+@findex gnus-group-get-new-news-this-group
+@vindex gnus-goto-next-group-when-activating
+@c @icon{gnus-group-get-new-news-this-group}
+\e$B8=:_$N%0%k!<%W$K?7Ce5-;v$,$"$k$+$I$&$+$r%A%'%C%/$7$^$9\e(B
+(@code{gnus-group-get-new-news-this-group})\e$B!#\e(B
+@code{gnus-goto-next-group-when-activating} \e$B$O$3$N%3%^%s%I$,<!$N\e(B
+\e$B%0%k!<%W0LCV$X0\F0$9$k$+$I$&$+$r7h$a$^$9!#%G%U%)%k%H$O\e(B @code{t} \e$B$G$9!#\e(B
+
+@findex gnus-activate-all-groups
+@cindex activating groups
+@item C-c M-g
+@kindex C-c M-g (Group)
+\e$BL5>r7o$KA4$F$N%0%k!<%W$r5/F0$7$^$9\e(B (@code{gnus-activate-all-groups})\e$B!#\e(B
+
+@item R
+@kindex R (Group)
+@cindex restarting
+@findex gnus-group-restart
+Gnus \e$B$r%j%9%?!<%H$7$^$9\e(B  (@code{gnus-group-restart})\e$B!#$3$l$O\e(B
+@file{.newsrc} \e$B%U%!%$%k$r%;!<%V$7!"A4$F$N%5!<%P$N@\B3$rJD$8!"A4\e(B
+\e$B$F$N\e(B Gnus \e$B%i%s%?%$%`JQ?t$r%/%j%"$7$?8e!"\e(BGnus \e$B$r$b$&0lEY:G=i$+$i\e(B
+\e$B3+;O$7$^$9!#\e(B
+
+@end table
+
+@vindex gnus-get-new-news-hook
+@code{gnus-get-new-news-hook} \e$B$O?7Ce%K%e!<%:$r%A%'%C%/$9$kD>A0$K\e(B
+\e$B<B9T$5$l$^$9!#\e(B
+
+@vindex gnus-after-getting-new-news-hook
+@code{gnus-after-getting-new-news-hook} \e$B?7Ce%K%e!<%:$r%A%'%C%/$7\e(B
+\e$B$?8e$K<B9T$5$l$^$9!#\e(B
+
+
+@node Group Information
+@subsection \e$B%0%k!<%W>pJs\e(B
+@cindex group information
+@cindex information on groups
+
+@table @kbd
+
+
+@item H f
+@kindex H f (Group)
+@findex gnus-group-fetch-faq
+@vindex gnus-group-faq-directory
+@cindex FAQ
+@cindex ange-ftp
+\e$B8=:_$N%0%k!<%W$N\e(B FAQ \e$B$r<hF@$7$h$&$H$7$^$9\e(B
+(@code{gnus-group-fetch-faq})\e$B!#\e(BGnus \e$B$O\e(B FAQ \e$B$r\e(B
+@code{gnus-group-faq-directory} \e$B$+$i<hF@$7$h$&$H$7$^$9!#$3$l$ODL\e(B
+\e$B>o%j%b!<%H%^%7%s>e$N%G%#%l%/%H%j$G$9!#$3$NJQ?t$O%G%#%l%/%H%j$N%j\e(B
+\e$B%9%H$G$"$C$F$b9=$$$^$;$s!#$3$N>l9g!"$3$N%3%^%s%I$K%W%l%U%#%C%/%9\e(B
+\e$B$rM?$($k$3$H$G$$$/$D$+$N%5%$%H$NCf$+$iA*$V$3$H$,$G$-$^$9!#\e(B
+\e$B%U%!%$%k$N<hF@$K$O\e(B @code{ange-ftp} (\e$B$^$?$O\e(B @code{efs}) \e$B$,;HMQ$5\e(B
+\e$B$l$^$9!#\e(B
+
+\e$B$b$7:G=i$N%5%$%H$+$i$N<hF@$,<:GT$7$?>l9g!"\e(BGnus \e$B$O\e(B
+@code{gnus-group-faq-directory} \e$B$NCM$rA4$F!"0l$D0l$D%*!<%W%s$7$F\e(B
+\e$B$_$h$&$H$7$^$9!#\e(B
+
+@item H d
+@itemx C-c C-d
+@c @icon{gnus-group-describe-group}
+@kindex H d (Group)
+@kindex C-c C-d (Group)
+@cindex describing groups
+@cindex group description
+@findex gnus-group-describe-group
+\e$B8=:_$N%0%k!<%W$N@bL@$rI=<($9$k\e(B
+(@code{gnus-group-describe-group})\e$B!#%W%l%U%#%C%/%9$rM?$($k$H!"@b\e(B
+\e$BL@J8$r%5!<%P$+$i6/@)E*$K:FFI$_9~$_$7$^$9!#\e(B
+
+@item M-d
+@kindex M-d (Group)
+@findex gnus-group-describe-all-groups
+\e$BA4$F$N%0%k!<%W$N@bL@$rI=<($7$^$9\e(B
+(@code{gnus-group-describe-all-groups})\e$B!#%W%l%U%#%C%/%9$rM?$($k\e(B
+\e$B$H!"@bL@J8%U%!%$%k$r%5!<%P$+$i6/@)E*$K:FFI$_9~$_$7$^$9!#\e(B
+
+@item H v
+@itemx V
+@kindex V (Group)
+@kindex H v (Group)
+@cindex version
+@findex gnus-version
+\e$B8=:_$N\e(B Gnus \e$B$N%P!<%8%g%sHV9f$rI=<($7$^$9\e(B (@code{gnus-version})\e$B!#\e(B
+
+@item ?
+@kindex ? (Group)
+@findex gnus-group-describe-briefly
+\e$B$H$F$bC;$$%X%k%W%a%C%;!<%8$rM?$($^$9\e(B (@code{gnus-group-describe-briefly})\e$B!#\e(B
+
+@item C-c C-i
+@kindex C-c C-i (Group)
+@cindex info
+@cindex manual
+@findex gnus-info-find-node
+Gnus \e$B$N\e(B info \e$B%N!<%I$K0\F0$7$^$9\e(B (@code{gnus-info-find-node}).\e$B!#\e(B
+
+@end table
+
+
+@node Group Timestamp
+@subsection \e$B%0%k!<%W$NF|IU\e(B
+@cindex timestamps
+@cindex group timestamps
+
+Gnus \e$B$K!"$"$J$?$,:G8e$K$$$D%0%k!<%W$rFI$s$@$+$r5-O?$5$;$k$HJXMx\e(B
+\e$B$+$b$7$l$^$;$s!#$3$N3hF0$r;O$a$5$;$k$K$O!"\e(B
+@code{gnus-group-set-timestamp}\e$B$r\e(B @code{gnus-select-group-hook}
+\e$B$KDI2C$7$F$/$@$5$$!#\e(B
+
+@lisp
+(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
+@end lisp
+
+\e$B$3$l$r9T$C$?8e!"$"$J$?$,%0%k!<%W$KF~$k$?$S$K$=$l$,5-O?$5$l$^$9!#\e(B
+
+\e$B$3$N>pJs$O$5$^$6$^$JJ}K!$GI=<($G$-$^$9\e(B --- \e$B$b$C$H$b4JC1$J$N$O!"\e(B
+\e$B%0%k!<%W9T%U%)!<%^%C%H$G\e(B @samp{%d} \e$B;XDj$r;H$&J}K!$G$9!#\e(B
+
+@lisp
+(setq gnus-group-line-format
+      "%M\%S\%p\%P\%5y: %(%-40,40g%) %d\n")
+@end lisp
+
+\e$B$3$N7k2L$H$7$F!"3F9T$O0J2<$N$h$&$KI=<($5$l$^$9!#\e(B
+
+@example
+*        0: mail.ding                                19961002T012943
+         0: custom                                   19961002T012713
+@end example
+
+\e$B8+$FJ,$+$k$H$*$j!"F|IU$O%3%s%Q%/%H$J\e(B ISO 8601 \e$B7A<0$GI=<($5$l$^$9!#\e(B
+\e$B$3$l$G$O$A$g$C$H$"$s$^$j$J$N$G!"0J2<$N$h$&$J46$8$K$9$k$HF|IU$@$1\e(B
+\e$B$rI=<($G$-$^$9!#\e(B
+
+@lisp
+(setq gnus-group-line-format
+      "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")
+@end lisp
+
+
+@node File Commands
+@subsection \e$B%U%!%$%k%3%^%s%I\e(B
+@cindex file commands
+
+@table @kbd
+
+@item r
+@kindex r (Group)
+@findex gnus-group-read-init-file
+@vindex gnus-init-file
+@cindex reading init file
+\e$B=i4|2=%U%!%$%k$N:FFI$_9~$_$r9T$&\e(B (@code{gnus-init-file}\e$B!"$3$N%G\e(B
+\e$B%U%)%k%H$O\e(B @file{~/.gnus}) (@code{gnus-group-read-init-file})\e$B!#\e(B
+
+@item s
+@kindex s (Group)
+@findex gnus-group-save-newsrc
+@cindex saving .newsrc
+Save the @file{.newsrc.eld} file (and @file{.newsrc} if wanted)
+(@code{gnus-group-save-newsrc}).  If given a prefix, force saving the
+file(s) whether Gnus thinks it is necessary or not.
+
+ @file{.newsrc.eld}\e$B%U%!%$%k\e(B(\e$B$H!"$b$7$=$&$7$?$1$l$P\e(B
+@file{.newsrc} \e$B%U%!%$%k\e(B)\e$B$r%;!<%V$9$k\e(B
+(@code{gnus-group-save-newsrc})\e$B!#\e(B
+
+@c @item Z
+@c @kindex Z (Group)
+@c @findex gnus-group-clear-dribble
+@c \e$B%I%j%V%k%U%!%$%k$r%/%j%"$9$k\e(B
+@c (@code{gnus-group-clear-dribble})\e$B!#\e(B
+
+@end table
+
+
+@node The Summary Buffer
+@chapter \e$B35N,%P%C%U%!\e(B
+@cindex summary buffer
+
+\e$B35N,%P%C%U%!\e(B (summary buffer) \e$B$G$O$=$l$>$l$N5-;v$,0l9T$GI=<($5$l$^$9!#$=\e(B
+\e$B$NCf$rF0$-2s$j!"5-;v$rFI$_!"Ej9F$7!"JVEz$r$9$k$3$H$,$G$-$^$9!#\e(B
+
+\e$B35N,%P%C%U%!$K0\$k0lHVIaDL$NJ}K!$O!"%0%k!<%W%P%C%U%!$G%0%k!<%W$rA*Br$9$k\e(B
+\e$B$3$H$G$9\e(B (@pxref{Selecting a Group})\e$B!#\e(B
+
+\e$B35N,%P%C%U%!$OK>$`$@$1$?$/$5$s3+$$$?>uBV$K$7$F$*$/$3$H$,$G$-$^$9!#\e(B
+
+@menu
+* Summary Buffer Format::       \e$B35N,%P%C%U%!$N304Q$r7hDj$9$k!#\e(B
+* Summary Maneuvering::         \e$B35N,%P%C%U%!$rF0$-2s$k!#\e(B
+* Choosing Articles::           \e$B5-;v$rFI$`!#\e(B
+* Paging the Article::          \e$BFI$s$G$$$k5-;v$r%9%/%m!<%k$9$k!#\e(B
+* Reply Followup and Post::     \e$B5-;v$rEj9F$9$k!#\e(B
+* Canceling and Superseding::   ``\e$B$"$!!"$"$s$J$U$&$K8@$&$s$8$c$J$+$C$?!#\e(B''
+* Marking Articles::            \e$B5-;v$K4{FI$d4|8B@Z$l:o=|2DG=Ey$N0u$rIU$1$k!#\e(B
+* Limiting::                    \e$B35N,%P%C%U%!$K@)8B$r2C$($k$3$H$,$G$-$k!#\e(B
+* Threading::                   \e$B%9%l%C%I$,$I$N$h$&$K:n$i$l$k$+!#\e(B
+* Sorting::                     \e$B%9%l%C%I$H5-;v$,$I$N$h$&$KJB$S$+$($i$l$k$+!#\e(B
+* Asynchronous Fetching::       Gnus \e$B$O5-;v$r@h$K<hF@$9$k$3$H$,$G$-$k!#\e(B
+* Article Caching::             \e$B%-%c%C%7%e$K5-;v$rCy$a$F$*$1$k!#\e(B
+* Persistent Articles::         \e$B5-;v$r4|8B@Z$l>C5n$7$J$/$5$;$k!#\e(B
+* Article Backlog::             \e$B4{$KFI$s$@5-;v$r;D$7$F$*$/!#\e(B
+* Saving Articles::             \e$B5-;v$NJ]B8$r%+%9%?%^%$%:$9$kJ}K!!#\e(B
+* Decoding Articles::           Gnus \e$B$O0lO"$N\e(B (uu) \e$B%(%s%3!<%I$5$l$?5-;v$r07$($k!#\e(B
+* Article Treatment::           \e$B5-;v%P%C%U%!$O$*K>$_$I$*$j$KL\Cc6lCc$K$G$-$k!#\e(B
+* Article Commands::            \e$B5-;v%P%C%U%!$G$$$m$$$m$J$3$H$r$9$k!#\e(B
+* Summary Sorting::             \e$B$$$m$$$m$JJ}K!$G35N,%P%C%U%!$rJB$YBX$($k!#\e(B
+* Finding the Parent::          \e$B;R5-;v$K1g=u$,L5$$$C$F\e(B? \e$B?F5-;v$r<hF@$7$J$5$$!#\e(B
+* Alternative Approaches::      \e$B%G%#%U%)%k%H$G$J$$35N,$r;H$C$FFI$`!#\e(B
+* Tree Display::                \e$B$b$C$H;k3PE*$J%9%l%C%I$NI=<(!#\e(B
+* Mail Group Commands::         \e$B$$$/$D$+$NL?Na$O%a!<%k%0%k!<%W$@$1$G;H$&$3$H$,$G$-$k!#\e(B
+* Various Summary Stuff::       \e$BB>$N$I$N>l=j$K$b9g$o$J$+$C$?$b$N!#\e(B
+* Exiting the Summary Buffer::  \e$B%0%k!<%W%P%C%U%!$KLa$k!#\e(B
+* Crosspost Handling::          \e$B%/%m%9%]%9%H$5$l$?5-;v$,$I$N$h$&$K07$o$l$k$+!#\e(B
+* Duplicate Suppression::       \e$B%/%m%9%]%9%H$N07$$$K<:GT$7$?$H$-$NBeBX<jCJ!#\e(B
+@end menu
+
+
+@node Summary Buffer Format
+@section \e$B35N,%P%C%U%!$NMM<0\e(B
+@cindex summary buffer format
+
+@iftex
+@iflatex
+\gnusfigure{The Summary Buffer}{180}{
+\put(0,0){\epsfig{figure=tmp/summary.ps,width=7.5cm}}
+\put(445,0){\makebox(0,0)[br]{\epsfig{figure=tmp/summary-article.ps,width=7.5cm}}}
+}
+@end iflatex
+@end iftex
+
+@menu
+* Summary Buffer Lines::     \e$B35N,%P%C%U%!$,$I$N$h$&$K8+$($k$Y$-$+$r;XDj$G$-$k!#\e(B
+* Summary Buffer Mode Line:: \e$B%b!<%I9T$N8+$(J}$r7h$a$i$l$k!#\e(B
+* Summary Highlighting::     \e$B35N,%P%C%U%!$r$-$l$$$GAGE($K$9$k!#\e(B
+@end menu
+
+@findex mail-extract-address-components
+@findex gnus-extract-address-components
+@vindex gnus-extract-address-components
+Gnus \e$B$OJQ?t\e(B @code{gnus-extract-address-components} \e$B$NCM$r\e(B @code{From} \e$B%X%C\e(B
+\e$B%@!<$NL>A0$H%"%I%l%9$NItJ,$r<j$KF~$l$k$?$a$N4X?t$H$7$F;H$$$^$9!#$9$G$KDj\e(B
+\e$B5A$5$l$F$$$k4X?t$,\e(B2\e$B$DB8:_$7$^$9\e(B: 
+@code{gnus-extract-address-components} \e$B$O%G%#%U%)%k%H$G$9$,!"$H$F$b4JC1\e(B
+\e$B$K3d$j@Z$C$?2r7hK!$G!"Hs>o$KB.$/F0:n$7$^$9!#$=$7$F!"\e(B 
+@code{mail-extract-address-components} \e$B$O$H$F$bNI$/F0:n$7$^$9$,!"CY$/$J\e(B
+\e$B$j$^$9!#%G%#%U%)%k%H$N4X?t$O\e(B 5% \e$B$N3d9g$G4V0c$C$FEz$($^$9!#$b$7$3$l$K2fK}\e(B
+\e$B$J$i$J$$$N$G$"$l$P!"B>$N4X?t$rBe$o$j$K;H$&$3$H$,$G$-$^$9!#\e(B
+
+@vindex gnus-summary-same-subject
+@code{gnus-summary-same-subject} \e$B$O:#FI$s$G$$$k5-;v$,!"$=$NA0$N5-;v$HF1\e(B
+\e$B$8I=Bj\e(B (subject) \e$B$G$"$k$3$H$r<($9J8;zNs$G$9!#$3$NJ8;zNs$O;EMM$,$3$l$rMW\e(B
+\e$B5a$9$k$H$-$K;H$o$l$^$9!#%G%#%U%)%k%H$G$O\e(B @code{""} \e$B$G$9!#\e(B
+
+
+@node Summary Buffer Lines
+@subsection \e$B35N,%P%C%U%!$N9T\e(B
+
+@vindex gnus-summary-line-format
+\e$BJQ?t\e(B @code{gnus-summary-line-format} \e$B$NCM$rJQ$($k$3$H$K$h$C$F!"35N,%P%C\e(B
+\e$B%U%!$G$N9T$NMM<0\e(B (format) \e$B$rJQ99$9$k$3$H$,$G$-$^$9!#$$$/$D$+$N3HD%\e(B 
+(@pxref{Formatting Variables}) \e$B$r=|$$$F!"IaDL$N\e(B @code{format} \e$BJ8;zNs$HF1\e(B
+\e$B$8$h$&$KF0:n$7$^$9!#\e(B
+
+\e$B%G%#%U%)%k%H$NJ8;zNs$O\e(B @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n} \e$B$G$9!#\e(B
+
+\e$B0J2<$NMM<0;X<(J8;z$r;H$&$3$H$,$G$-$^$9\e(B:
+
+@table @samp
+@item N
+\e$B5-;v?t!#\e(B
+@item S
+\e$BI=Bj$NJ8;zNs!#\e(B
+@item s
+\e$B%9%l%C%I\e(B (thread) \e$B$N4p5-;v$G$"$k$H$-$+D>A0$N5-;v$,0c$&I=Bj$N$H$-$O$=$NBj\e(B
+\e$BL>$G!"$=$l0J30$O\e(B @code{gnus-summary-same-subject}\e$B!#\e(B
+(@code{gnus-summary-same-subject} \e$B$N%G%#%U%)%k%H$NCM$O\e(B @code{""}\e$B!#\e(B)
+@item F
+\e$B40A4$J\e(B @code{From} \e$B%X%C%@!<!#\e(B
+@item n
+\e$BL>A0\e(B (@code{From} \e$B%X%C%@!<$h$j\e(B)\e$B!#\e(B
+@item a
+\e$BL>A0\e(B (@code{From} \e$B%X%C%@!<$h$j\e(B)\e$B!#$3$l$H\e(B @code{n} \e$B$H$N0c$$$O!"$3$l$OJQ?t\e(B
+@code{gnus-extract-address-components} \e$B$G;XDj$5$l$F$$$k4X?t$r;H$C$FL>A0\e(B
+\e$B$r<hF@$9$k$3$H$G$9!#$3$NJ}$,CY$$$G$9$,!"$*$=$i$/$h$j40A4$K6a$$$G$7$g$&!#\e(B
+@item A
+\e$BL>A0\e(B (@code{From} \e$B%X%C%@!<$h$j\e(B)\e$B!#$3$l$O\e(B @code{a} \e$B$HF1$8$h$&$KF0:n$7$^\e(B
+\e$B$9!#\e(B
+@item L
+\e$B5-;v$N9T?t!#\e(B
+@item c
+\e$B5-;v$NJ8;z?t!#\e(B
+@item I
+\e$B%9%l%C%I$N%l%Y%k$K$h$k;z2<$2\e(B (@pxref{Customizing Threading})\e$B!#\e(B
+@item T
+\e$B5-;v$,K\5-;v$G$"$l$P2?$bI=<($;$:!"$=$&$G$J$$>l9g$O$?$/$5$s$N6uGr$G$9\e(B (\e$B8e\e(B
+\e$B$N$b$N$r$9$Y$F2hLL$N30$KDI$$=P$7$F$7$^$$$^$9\e(B)\e$B!#\e(B
+@item [
+\e$B3+$-3g8L!#IaDL$O\e(B @samp{[} \e$B$G$9$,!"M\;R5-;v$K$O\e(B @samp{<} \e$B$K$9$k$3$H$,$G$-\e(B
+\e$B$^$9\e(B (@pxref{Customizing Threading})\e$B!#\e(B
+@item ]
+\e$BJD$83g8L!#IaDL$O\e(B @samp{[} \e$B$G$9$,!"M\;R5-;v$K$O\e(B @samp{<} \e$B$K$9$k$3$H$,$G$-\e(B
+\e$B$^$9!#\e(B
+@item >
+\e$B$=$l$>$l$N%9%l%C%I$N%l%Y%k$KBP$7$F0l$D$N6uGr!#\e(B
+@item <
+\e$BFs==0z$/%9%l%C%I%l%Y%k$N6uGr!#\e(B
+@item U
+\e$BL$FI!#\e(B
+@item R
+\e$BJVEz:Q$_!#\e(B
+@item i
+\e$B?t;z$H$7$F$N%9%3%"\e(B (@pxref{Scoring})\e$B!#\e(B
+@item z
+@vindex gnus-summary-zcore-fuzz
+\e$B$3$l$O!"\e(Bzcore \e$B$G%G%#%U%)%k%H$N%l%Y%k$h$j$b>e$G$"$l$P\e(B @samp{+} \e$B$G!"%G%#%U%)\e(B
+\e$B%k%H$N%l%Y%k$h$j$b2<$G$"$l$P\e(B @samp{-} \e$B$G$9!#\e(B
+@code{gnus-summary-default-zcore}\e$B$H$N:9$,\e(B@code{gnus-summary-zcore-fuzz}
+\e$B$h$j$b>.$5$$$H!"$3$N;EMM$O;H$o$l$^$;$s!#\e(B
+@item V
+\e$B%9%l%C%IA4BN$N%9%3%"!#\e(B
+@item x
+@code{Xref}\e$B!#\e(B
+@item D
+@code{\e$BF|IU\e(B} (@code{Date})\e$B!#\e(B
+@item d
+@code{DD-MM}\e$BMM<0$K$h$k\e(B@code{\e$BF|IU\e(B}\e$B!#\e(B
+@item o
+@var{YYYYMMDD}@code{T}@var{HHMMSS}\e$BMM<0$K$h$k\e(B@code{\e$BF|IU\e(B}\e$B!#\e(B
+@item M
+@code{Message-ID}\e$B!#\e(B
+@item r
+@code{References}\e$B!#\e(B
+@item t
+\e$B8=:_$NI{%9%l%C%I$N5-;v$N?t!#$3$N;EMM$r;H$&$H35N,%P%C%U%!$N@8@.$,4vJ,CY$/\e(B
+\e$B$J$j$^$9!#\e(B
+@item e
+\e$B5-;v$K;R5-;v$,$"$k$H!"\e(B@samp{=} (@code{gnus-not-empty-thread-mark}) \e$B$,I=\e(B
+\e$B<($5$l$^$9!#\e(B
+@item P
+\e$B9T?t!#\e(B
+@item O
+\e$B%@%&%s%m!<%I$N0u!#\e(B
+@item u
+\e$BMxMQ<T$NDj5A$N;XDj!#%U%)!<%^%C%HJ8;zNs$NCf$N<!$NJ8;z$,1Q;z$G$"$kI,MW$,$"\e(B
+\e$B$j$^$9!#$3$l$K$h$j\e(B gnus \e$B$O4X?t\e(B @code{gnus-user-format-function-}@samp{X}
+\e$B$r8F$S=P$7$^$9$,!"$3$3$G\e(B @samp{X} \e$B$O\e(B @samp{%U} \e$B$N<!$NJ8;z$G$9!#4X?t$K$O\e(B
+\e$B8=:_$N5-;v$N%X%C%@!<$,0z?t$H$7$FEO$5$l$^$9!#4X?t$OJ8;zNs$rJV$7!"B>$N35N,\e(B
+\e$B;XDj$HF1MM$K35N,$KA^F~$5$l$^$9!#\e(B
+@end table
+
+@samp{%U} (\e$B>uBV\e(B)\e$B!"\e(B@samp{%R} (\e$BJVEz:Q$_\e(B)\e$B!"\e(B@samp{%z} (zcore) \e$B$N07$$$K$O5$$r\e(B
+\e$BIU$1$kI,MW$,$"$j$^$9!#8zN($N$?$a$K!"\e(Bgnus \e$B$O$3$l$i$NJ8;z$,$I$N7e$K8=$l$k\e(B
+\e$B$+$r7W;;$7!"\e(B''\e$B%O!<%I!&%3!<%I\e(B'' \e$B$7$^$9!#$3$l$O!"2DJQD9$N;EMM$N8e$G$O!"$3\e(B
+\e$B$l$i$O0UL#$r;}$?$J$$$H$$$&$3$H$G$9!#$^$!!"$5$9$,$KBaJa$O$5$l$J$$$G$7$g$&\e(B
+\e$B$,!"35N,%P%C%U%!$OJQ$K$J$j$^$9!#$=$l$G$b==J,Ha$7$$$G$7$g$&$1$I!#\e(B
+
+\e$B8-$$A*Br$O$3$l$i$N;XDj$r$G$-$k$@$1:8$K;}$C$F$/$k$3$H$G$9!#\e(B (\e$B$G$b!"$=$&$$\e(B
+\e$B$&$3$H$O$9$Y$F$KEv$F$O$^$k$N$G$O$J$$$G$7$g$&$+!#4WOC5YBj!#\e(B)
+
+\e$B$3$N@)8B$O8e$N%P!<%8%g%s$G$OL5$/$J$k$+$bCN$l$^$;$s!#\e(B
+
+
+@node Summary Buffer Mode Line
+@subsection \e$B35N,%P%C%U%!$N%b!<%I9T\e(B
+
+@vindex gnus-summary-mode-line-format
+\e$B35N,$N%b!<%I9T$NMM<0$bJQ99$9$k$3$H$,$G$-$^$9!#\e(B
+@code{gnus-summary-mode-line-format} \e$B$r2?$G$b9%$-$J$b$N$KJQ99$7$F$/$@$5\e(B
+\e$B$$!#%G%#%U%)%k%H$O\e(B @samp{Gnus: %%b [%A] %Z} \e$B$G$9!#\e(B
+
+\e$B0J2<$,$"$J$?$,M7$V$3$H$N$G$-$k$=$l$>$l$NMWAG$G$9!#\e(B
+
+@table @samp
+@item G
+\e$B%0%k!<%WL>!#\e(B
+@item p
+\e$B@\F,8l$r<h$j=|$$$?L>A0!#\e(B
+@item A
+\e$B8=:_$N5-;vHV9f!#\e(B
+@item V
+Gnus \e$B%P!<%8%g%s!#\e(B
+@item U
+\e$B$=$N%0%k!<%W$G$NL$FI5-;v$N?t!#\e(B
+@item e
+\e$B35N,%P%C%U%!$KI=<($5$l$F$$$J$$L$FI5-;v$N?t!#\e(B
+@item Z
+\e$BL$FI$HL$A*Br$N5-;v$N?t$H$H$b$KI=$5$l$kJ8;zNs$G!"L$FI$+$DL$A*Br$N5-;v$,$"\e(B
+\e$B$k>l9g$O\e(B @samp{<%U(+%e) more>} \e$B$G!"L$FI5-;v$N$_$N>l9g$O\e(B @samp{<%U more>}
+\e$B$G$9!#\e(B
+@item g
+\e$BC;=L%0%k!<%WL>!#Nc$($P!"\e(B@samp{rec.arts.anime} \e$B$O\e(B @samp{r.a.anime} \e$B$KC;=L\e(B
+\e$B$5$l$^$9!#\e(B
+@item S
+\e$B8=:_$N5-;v$NI=Bj!#\e(B
+@item u
+\e$BMxMQ<TDj5A$N;EMM\e(B (@pxref{User-Defined Specs})\e$B!#\e(B
+@item s
+\e$B8=:_$N%9%3%"%U%!%$%k$NL>A0\e(B (@pxref{Scoring})\e$B!#\e(B
+@item d
+\e$BJ]N15-;v$N?t\e(B (@pxref{Unread Articles})\e$B!#\e(B
+@item t
+\e$B2D;k0uIU$-5-;v$N?t\e(B (@pxref{Unread Articles})\e$B!#\e(B
+@item r
+\e$B$=$N0lO"$NF0:n$N4V$K4{FI$H$7$F0u$,$D$$$?5-;v$N?t!#\e(B
+@item E
+\e$B%9%3%"%U%!%$%k$K$h$C$FKu>C$5$l$?5-;v$N?t!#\e(B
+@end table
+
+
+@node Summary Highlighting
+@subsection \e$B35N,$N%O%$%i%$%H\e(B
+
+@table @code
+
+@item gnus-visual-mark-article-hook
+@vindex gnus-visual-mark-article-hook
+\e$B$3$N%U%C%/$O5-;v$rA*Br$7$?8e$K<B9T$5$l$^$9!#$3$l$O2?$i$+$NJ}K!$G5-;v$r%O\e(B
+\e$B%$%i%$%H$9$k$h$&$K0U?^$5$l$F$$$^$9!#$b$7\e(B @code{gnus-visual} \e$B$,\e(B
+@code{nil} \e$B$G$"$k>l9g$O<B9T$5$l$^$;$s!#\e(B
+
+@item gnus-summary-update-hook
+@vindex gnus-summary-update-hook
+\e$B$3$N%U%C%/$O35N,9T$,JQ99$5$l$?$H$-$K8F$P$l$^$9!#$b$7\e(B @code{gnus-visual} \e$B$,\e(B
+@code{nil} \e$B$G$"$k>l9g$O<B9T$5$l$^$;$s!#\e(B
+
+@item gnus-summary-selected-face
+@vindex gnus-summary-selected-face
+\e$B$3$l$O35N,%P%C%U%!$G$N8=:_$N5-;v$r%O%$%i%$%H$9$k$?$a$K;H$o$l$k%U%'%$%9\e(B 
+(face) (\e$B$b$7$/$O!"$$$/$i$+$N?M!9$,\e(B @dfn{\e$B%U%)%s%H\e(B} (font) \e$B$H8F$V$h\e(B
+\e$B$&$J$b$N\e(B) \e$B$G$9!#\e(B
+
+@item gnus-summary-highlight
+@vindex gnus-summary-highlight
+\e$B35N,9T$O$3$NJQ?t$K$7$?$,$C$F%O%$%i%$%H$5$l$^$9!#$3$NJQ?t$OMWAG$,\e(B
+@var{(FORM . FACE)} \e$B$N7A<0$N%j%9%H$G$9!#Nc$($P!"$b$70uIU$-$N5-;v$r%$%?%j%C\e(B
+\e$B%/!"9b$$%9%3%"$N5-;v$r%\!<%k%I$K$7$?$1$l$P!"$3$NJQ?t$r<!$N$h$&$K$G$-$^$9!#\e(B
+@lisp
+(((eq mark gnus-ticked-mark) . italic)
+ ((> score default) . bold))
+@end lisp
+\e$B$4A[A|$N$H$*$j!"$b$7\e(B @var{FORM} \e$B$,\e(B @code{nil} \e$B$G$J$$CM$rJV$9$H!"\e(B
+@var{FACE} \e$B$,$=$N9T$KE,MQ$5$l$^$9!#\e(B
+@end table
+
+
+@node Summary Maneuvering
+@section \e$B35N,4V$N0\F0\e(B
+@cindex summary movement
+
+\e$B$9$Y$F$ND>@\0\F0L?Na$O?tCM@\F,0z?t$r<u$1IU$1!"$"$J$?$N4|BT$K$h$/$7$?$,$C\e(B
+\e$B$FF0:n$9$k$G$7$g$&!#\e(B
+
+\e$B$3$l$i$NL?Na$O$I$l$b5-;v$rA*Br$7$^$;$s!#\e(B
+
+
+@table @kbd
+@item G M-n
+@item M-n
+@kindex M-n (\e$B35N,\e(B)
+@kindex G M-n (\e$B35N,\e(B)
+@findex gnus-summary-next-unread-subject
+\e$B35N,9T$N<!$NL$FI5-;v$K0\$k\e(B
+(@code{gnus-summary-next-unread-subject})\e$B!#\e(B
+
+@item G M-p
+@itemx M-p
+@kindex M-p (\e$B35N,\e(B)
+@kindex G M-p (\e$B35N,\e(B)
+@findex gnus-summary-prev-unread-subject
+\e$B35N,9T$NA0$NL$FI5-;v$K0\$k\e(B
+(@code{gnus-summary-prev-unread-subject})\e$B!#\e(B
+
+@item G j
+@item j
+@kindex j (\e$B35N,\e(B)
+@kindex G j (\e$B35N,\e(B)
+@findex gnus-summary-goto-article
+\e$B5-;vHV9f$+\e(B @code{Message-ID} \e$B$r?R$M!"$=$l$+$i$=$N5-;v$K9T$/!#\e(B
+(@code{gnus-summary-goto-article})\e$B!#\e(B
+
+@item G g
+@kindex G g (\e$B35N,\e(B)
+@findex gnus-summary-goto-subject
+\e$B5-;vHV9f$+\e(B @code{Message-ID} \e$B$r?R$M!"$=$l$+$i$=$N5-;v$rI=<($9$k$3$HL5$/!"\e(B
+\e$B35N,9T$K9T$/\e(B (@code{gnus-summary-goto-subject})\e$B!#\e(B
+@end table
+
+Gnus\e$B$,<!$N%0%k!<%W$K0\F0$9$k$3$H$r3NG'$r$9$k$?$a$K!"%-!<$r2!$9$3$H$rMW5a\e(B
+\e$B$9$k$H$-$,$"$j$^$9!#$=$N;~$O!"\e(B@kbd{C-n} \e$B$H\e(B @kbd{C-p} \e$B$r;H$C$F!"%0%k!<%W\e(B
+\e$B%P%C%U%!$KLa$k$3$HL5$/<!$KFI$`%0%k!<%W$rC5$9$3$H$,$G$-$^$9!#\e(B
+
+\e$B35N,$N0\F0$K4XO"$7$?JQ?t\e(B:
+
+@table @code
+
+@vindex gnus-auto-select-next
+@item gnus-auto-select-next
+\e$B$b$70\F0L?Na$N0l$D\e(B (@kbd{n} \e$B$N$h$&$J\e(B) \e$B$r=P$7!"8=:_$N5-;v$N8e$KL$FI$,L5$1\e(B
+\e$B$l$P!"\e(Bgnus \e$B$O<!$N%0%k!<%W$K0\F0$9$k$3$H$r>)$a$^$9!#$3$NJQ?t$,\e(B @code{t}
+\e$B$G<!$N%0%k!<%W$,6u$G$"$k$H!"\e(Bgnus \e$B$O35N,%b!<%I$r=*N;$7$F!"%0%k!<%W%P%C%U%!\e(B
+\e$B$KLa$j$^$9!#$3$NJQ?t$,\e(B @code{t} \e$B$d\e(B @code{nil} \e$B$G$J$$$H!"<!$N%0%k!<%W$K5-\e(B
+\e$B;v$,$"$m$&$,L5$+$m$&$,!"\e(Bgnus \e$B$O$=$l$rA*Br$7$^$9!#FCJL$J>l9g$H$7$F!"$3$N\e(B
+\e$BJQ?t$,\e(B @code{quietly} \e$B$G$"$k$H!"\e(Bgnus \e$B$O3NG'$r$;$:$K!"<!$N%0%k!<%W$rA*Br\e(B
+\e$B$7$^$9!#$3$NJQ?t$,\e(B @code{almost-quietly} \e$B$G$"$k$H!"%0%k!<%W$N0lHV:G8e$N\e(B
+\e$B5-;v$rFI$s$G$$$?$H$-$K8B$jF1$8$3$H$,5/$3$j$^$9!#:G8e$K!"$b$7$3$NJQ?t$,\e(B
+@code{slightly-quietly} \e$B$G$"$k$H!"L?Na\e(B @kbd{Z n} \e$B$O3NG'$r$;$:$K<!$N%0%k!<\e(B
+\e$B%W$K0\$j$^$9!#\e(B@pxref{Group Levels} \e$B$b;2>H$7$F$/$@$5$$!#\e(B
+
+@item gnus-auto-select-same
+@vindex gnus-auto-select-same
+@code{nil} \e$B$G$J$$$H!"$9$Y$F$N0\F0L?Na$O8=:_$N5-;v$HF1$8I=Bj$N5-;v$K0\F0\e(B
+\e$B$7$h$&$H$7$^$9!#\e(B (@dfn{\e$BF1$8\e(B} \e$B$O$3$3$G$O\e(B @dfn{\e$BBgBNF1$8\e(B} \e$B$H$$$&0UL#$+$bCN\e(B
+\e$B$l$^$;$s!#>\:Y$O\e(B @code{gnus-summary-gather-subject-limit} \e$B$r8+$F$/$@$5$$\e(B
+(@pxref{Customizing Threading} \e$B$b;2>H$7$F$/$@$5$$\e(B)\e$B!#\e(B) \e$B$3$NJQ?t$O!"%9%l%C\e(B
+\e$B%II=<($r9T$C$F$$$k$H$-$O$"$^$jLr$KN)$?$J$$$G$7$g$&!#\e(B
+
+@item gnus-summary-check-current
+@vindex gnus-summary-check-current
+@code{nil} \e$B$G$J$$$H!"$9$Y$F$N\e(B ``\e$BL$FI\e(B'' \e$B0\F0L?Na$O!"<!\e(B (\e$B$b$7$/$OA0\e(B) \e$B$N5-\e(B
+\e$B;v$K0\F0$7$^$;$s!#$=$NBe$o$j$K!"$=$l$i$O8=:_$N5-;v$rA*$S$^$9!#\e(B
+
+@item gnus-auto-center-summary
+@vindex gnus-auto-center-summary
+@code{nil} \e$B$G$J$$$H!"\e(Bgnus \e$B$O35N,%P%C%U%!$G$N%]%$%s%H$r>o$K??Cf$KJ]$A$^$9!#\e(B
+\e$B$3$l$r$9$k$H!"$H$F$b$3$.$l$$$K$J$j$^$9$,!"CY$$%M%C%H%o!<%/@\B3$G$"$C$?$j!"\e(B
+\e$BC1$K$3$N\e(B Emacsism \e$B$G$J$$9T0Y$r9%$-$K$J$l$J$$$N$G$"$l$P!"IaDL$N\e(B Emacs \e$B$N\e(B
+\e$B%9%/%m!<%k$K$9$k$?$a$K!"$3$NJQ?t$r\e(B @code{nil} \e$B$K$9$k$3$H$,$G$-$^$9!#$3$l\e(B
+\e$B$O35N,%P%C%U%!$N?eJ?J}8~$N??Cf$X$N:F0\F0$b6X;_$7$^$9$N$G!"Hs>o$KD9$$%9%l%C\e(B
+\e$B%I$rFI$`$H$-$OITJX$+$b$7$l$^$;$s!#\e(B
+
+@end table
+
+
+@node Choosing Articles
+@section \e$B5-;v$NA*Br\e(B
+@cindex selecting articles
+
+@menu
+* Choosing Commands::        \e$B5-;v$rA*Br$9$k$?$a$NL?Na!#\e(B
+* Choosing Variables::       \e$B$3$l$i$NL?Na$K1F6A$r5Z$\$9JQ?t!#\e(B
+@end menu
+
+
+@node Choosing Commands
+@subsection \e$BL?Na$NA*Br\e(B
+
+\e$B0J2<$N0\F0%3%^%s%I$O$I$l$b?tCM@\F,0z?t$r<u$1IU$1$:!"5-;v$rA*Br$7!"I=<($7$^\e(B
+\e$B$9!#\e(B
+
+
+@table @kbd
+@item SPACE
+@kindex SPACE (\e$B35N,\e(B)
+@findex gnus-summary-next-page
+\e$B8=:_$N5-;v$+!"$=$l$,4{$KFI$^$l$F$$$k>l9g$O<!$NL$FI5-;v$rA*Br$7$^$9\e(B
+(@code{gnus-summary-next-page}\e$B!#\e(B
+
+@item G n
+@itemx n
+@kindex n (\e$B35N,\e(B)
+@kindex G n (\e$B35N,\e(B)
+@findex gnus-summary-next-unread-article
+@c @icon{gnus-summary-prev-unread}
+\e$BA0$NL$FI5-;v$K0\F0$7$^$9\e(B (@code{gnus-summary-prev-unread-article})\e$B!#\e(B
+
+@item G N
+@itemx N
+@kindex N (\e$B35N,\e(B)
+@kindex G N (\e$B35N,\e(B)
+@findex gnus-summary-next-article
+\e$B<!$N5-;v$K0\F0$7$^$9\e(B (@code{gnus-summary-next-article})\e$B!#\e(B
+
+@item G P
+@itemx P
+@kindex P (\e$B35N,\e(B)
+@kindex G P (\e$B35N,\e(B)
+@findex gnus-summary-prev-article
+\e$BA0$N5-;v$K0\F0$7$^$9\e(B (@code{gnus-summary-prev-article})\e$B!#\e(B
+
+@item G C-n
+@kindex G C-n (\e$B35N,\e(B)
+@findex gnus-summary-next-same-subject
+\e$BF1$8I=Bj$N<!$N5-;v$K0\F0$7$^$9\e(B (@code{gnus-summary-next-same-subject})\e$B!#\e(B
+
+@item G f
+@itemx .
+@kindex G f (\e$B35N,\e(B)
+@kindex . (\e$B35N,\e(B)
+@findex gnus-summary-first-unread-article
+\e$B:G=i$NL$FI5-;v$K0\F0$7$^$9\e(B (@code{gnus-summary-first-unread-article})\e$B!#\e(B
+
+@item G b
+@item ,
+@kindex G b (\e$B35N,\e(B)
+@kindex , (\e$B35N,\e(B)
+@findex gnus-summary-best-unread-article
+\e$B:G9b%9%3%"$N5-;v$K0\F0$7$^$9\e(B (@code{gnus-summary-best-unread-article})\e$B!#\e(B
+
+@item G l
+@itemx l
+@kindex l (\e$B35N,\e(B)
+@kindex G l (\e$B35N,\e(B)
+@findex gnus-summary-goto-last-article
+\e$BD>A0$N5-;v$K0\F0$7$^$9\e(B (@code{gnus-summary-goto-last-article})\e$B!#\e(B
+
+@item G o
+@kindex G o (\e$B35N,\e(B)
+@findex gnus-summary-pop-article
+\e$B35N,$NMzNr\e(B (history) \e$B$+$i:G8e$N5-;v$r0l$D<h$j=P$7$FA*Br$7$^$9!#\e(B
+(@code{gnus-summary-pop-article})\e$B!#$3$NL?Na$,>e$NL?Na$H0c$&$N$O!"\e(B@kbd{l} 
+\e$B$,:G=*\e(B2\e$B$D$N5-;v$N4V$r0\F0$9$k$N$KBP$7$F!"$3$l$O9%$-$J$@$1A0$N5-;v$rMzNr\e(B
+\e$B$+$iA*$S=P$9$3$H$,$G$-$kE@$G$9!#2?$i$+$N$3$l$K4X78$7$?$3$H$O\e(B (\e$B$b$7$3$l\e(B
+\e$B$i$NL?Na$r$?$/$5$s;H$&$N$G$"$l$P\e(B)\e$B!"\e(B@pxref{Article Backlog} \e$B$r;2>H$7$F$/\e(B
+\e$B$@$5$$!#\e(B
+@end table
+
+
+@node Choosing Variables
+@subsection \e$BA*$V$?$a$NJQ?t\e(B
+
+\e$B5-;v$r0\F0$7!"A*Br$9$k$N$K4XO"$7$?$$$/$D$+$NJQ?t\e(B:
+
+@table @code
+@item gnus-auto-extended-newsgroup
+@vindex gnus-auto-extend-newsgroup
+\e$B$3$NJQ?t$,\e(B @code{nil} \e$B$G$J$$$H!"$9$Y$F$N0\F0L?Na$O!"$b$7$=$N5-;v$,35N,%P%C\e(B
+\e$B%U%!$KI=<($5$l$F$$$J$$>l9g$G$b!"A0\e(B (\e$B$b$7$/$O<!\e(B) \e$B$N5-;v$K0\F0$7$h$&$H$7$^\e(B
+\e$B$9!#$=$NL?Na$N8e$G!"\e(Bgnus \e$B$O%5!<%P!<$+$i5-;v$r<hF@$7$F!"5-;v%P%C%U%!$KI=\e(B
+\e$B<($7$^$9!#\e(B
+
+@item gnus-select-article-hook
+@vindex gnus-select-article-hook
+\e$B$3$N%U%C%/$O5-;v$,A*Br$5$l$?$H$-$K>o$K8F$P$l$^$9!#%G%#%U%)%k%H$G$O!"A*Br\e(B
+\e$B$5$l$?5-;v$N2<$K1#$l$F$$$k%9%l%C%I$r8+$;$k$h$&$K$J$C$F$$$^$9!#\e(B
+
+@item gnus-mark-article-hook
+@vindex gnus-mark-article-hook
+@findex gnus-summary-mark-unread-as-read
+@findex gnus-summary-mark-read-and-unread-as-read
+@findex gnus-unread-mark
+\e$B$3$N%U%C%/$O5-;v$,A*Br$5$l$?$H$-$K>o$K8F$P$l$^$9!#$=$l$O5-;v$K4{FI$N0u$r\e(B
+\e$BIU$1$k$?$a$K$"$j$^$9!#%G%#%U%)%k%H$NCM$O\e(B
+@code{gnus-summary-mark-read-and-unread-as-read} \e$B$G!"$[$H$s$I$9$Y$F$NFI\e(B
+\e$B$s$@5-;v$N0u$r\e(B @code{gnus-read-mark} \e$B$KJQ99$7$^$9!#$3$N4X?t$K1F6A$5$l$J\e(B
+\e$B$$5-;v$O!"2D;k!"J]N1!"4|8B@Z$l:o=|2DG=5-;v$@$1$G$9!#$b$7!"L$FI$K4{FI$N\e(B
+\e$B0u$rIU$1$?$$$@$1$G$"$l$P!"Be$o$j$K\e(B
+@code{gnus-summary-mark-unread-as-read} \e$B$r;H$&$3$H$,$G$-$^$9!#$=$l$O!"\e(B
+@code{gnus-low-score-mark} \e$B$d\e(B @code{gnus-del-mark} (\e$B$J$I$J$I\e(B) \e$B$N0u$r$=$N\e(B
+\e$B$^$^;D$7$^$9!#\e(B
+
+@end table
+
+
+@node Paging the Article
+@section \e$B5-;v$N%9%/%m!<%k\e(B
+@cindex article scrolling
+
+@table @kbd
+
+@item SPACE
+@kindex SPACE (\e$B35N,\e(B)
+@findex gnus-summary-next-page
+@kbd{SPACE} \e$B$O5-;v$r0l%Z!<%8@h$K%9%/%m!<%k$7$^$9!#5-;v$N:G8e$K$$$k>l9g$O\e(B
+\e$B<!$N5-;v$rA*Br$7$^$9\e(B (@code{gnus-summary-prev-page})\e$B!#\e(B
+
+@item DEL
+@kindex DEL (\e$B35N,\e(B)
+@findex gnus-summary-prev-page
+\e$B8=:_$N5-;v$r0l%Z!<%8A0$K%9%/%m!<%k$7$^$9\e(B (code{gnus-summary-prev-page})\e$B!#\e(B
+
+@item RET
+@kindex RET (\e$B35N,\e(B)
+@findex gnus-summary-scroll-up
+\e$B8=:_$N5-;v$r0l9T@h$K%9%/%m!<%k$7$^$9!#\e(B (@code{gnus-summary-scroll-up})\e$B!#\e(B
+
+@item A g
+@itemx g
+@kindex A g (\e$B35N,\e(B)
+@kindex g (\e$B35N,\e(B)
+@findex gnus-summary-show-article
+\e$B8=:_$N5-;v$r\e(B (\e$B:F\e(B) \e$B<hF@$7$^$9!#$b$7@\F,0z?t$,M?$($i$l$k$H!"8=:_$N5-;v$r<h\e(B
+\e$BF@$7$^$9$,!"5-;v$r07$&4X?t$O<B9T$7$^$;$s!#$3$l$O!"%5!<%P!<$+$i$-$?$^$^$N!"\e(B 
+``\e$B@8$N\e(B'' \e$B5-;v$rM?$($^$9!#\e(B
+
+@item A <
+@itemx <
+@kindex < (\e$B35N,\e(B)
+@kindex A < (\e$B35N,\e(B)
+@findex gnus-summary-beginning-of-article
+\e$B5-;v$N:G=i$^$G%9%/%m!<%k$7$^$9!#\e(B
+(@code{gnus-summary-beginning-of-article})\e$B!#\e(B
+
+@item A >
+@itemx >
+@kindex > (\e$B35N,\e(B)
+@kindex A > (\e$B35N,\e(B)
+@findex gnus-summary-end-of-article
+\e$B5-;v$N:G8e$^$G%9%/%m!<%k$7$^$9!#\e(B (@code{gnus-summary-end-of-article})\e$B!#\e(B
+
+@item A s
+@itemx s
+@kindex A s (\e$B35N,\e(B)
+@kindex s (\e$B35N,\e(B)
+@findex gnus-summary-isearch-article
+\e$B5-;v%P%C%U%!$G%$%s%/%j%a%s%?%k%5!<%A\e(B (isearch) \e$B$r9T$$$^$9!#\e(B
+(@code{gnus-summary-isearch-article})\e$B!#\e(B
+
+@item h
+@kindex h (\e$B35N,\e(B)
+@findex gnus-summary-select-article-buffer
+\e$B5-;v%P%C%U%!$rA*Br$7$^$9\e(B (@code{gnus-summary-select-article-buffer})\e$B!#\e(B
+
+@end table
+
+
+@node Reply Followup and Post
+@section \e$BJVEz!"%U%)%m!<%"%C%W!"Ej9F\e(B
+
+@menu
+* Summary Mail Commands::            \e$B%a!<%k$rAw$k!#\e(B
+* Summary Post Commands::            \e$B%K%e!<%:$rAw$k!#\e(B
+@end menu
+
+
+@node Summary Mail Commands
+@subsection \e$B35N,$G$N%a!<%k$NL?Na\e(B
+@cindex mail
+@cindex composing mail
+
+\e$B%a!<%k%a%C%;!<%8$r:n@.$9$k$?$a$NL?Na\e(B:
+
+@table @kbd
+
+@item S r
+@item r
+@kindex S r (\e$B35N,\e(B)
+@kindex r (\e$B35N,\e(B)
+@findex gnus-summary-reply
+@c @icon{gnus-summary-mail-reply}
+@c @icon{gnus-summary-reply}
+\e$B8=:_$N5-;v$r=q$$$??M$KJVEz$N%a!<%k$rAw$j$^$9\e(B (@code{gnus-summary-reply})\e$B!#\e(B
+
+@item S R
+@itemx R
+@kindex R (\e$B35N,\e(B)
+@kindex S R (\e$B35N,\e(B)
+@findex gnus-summary-reply-with-original
+@c @icon{gnus-summary-reply-with-original}
+\e$B8=:_$N5-;v$r=q$$$??M$K!"K\5-;v$r4^$s$@JVEz$N%a!<%k$r=P$7$^$9\e(B
+(@code{gnus-summary-reply-with-original})\e$B!#\e(B \e$B$3$NL?Na$O%W%m%;%9\e(B/\e$B@\F,0z?t\e(B
+\e$B$N=,47$r;H$$$^$9!#\e(B
+
+@item S w
+@kindex S w (\e$B35N,\e(B)
+@findex gnus-summary-wide-reply
+\e$B8=:_$N5-;v$r=q$$$??M$KBP$7$F!"9-$$JVEz\e(B (wide reply) \e$B$r$7$^$9\e(B
+(@code{gnus-summary-wide-reply})\e$B!#\e(B@dfn{\e$B9-$$JVEz\e(B} \e$B$H$O%X%C%@!<$N\e(B
+@code{To}\e$B!"\e(B@code{From}\e$B!"\e(B(\e$B$b$7$/$O\e(B @code{Reply-to}) \e$B$H!"\e(B@code{Cc} \e$B$N\e(B
+\e$B$9$Y$F$N?M$KJVEz$r$9$k$3$H$G$9!#\e(B
+
+@item S W
+@kindex S W (\e$B35N,\e(B)
+@findex gnus-summary-wide-reply-with-original
+\e$B8=:_$N5-;v$KK\5-;v$r4^$s$@9-$$JVEz$N%a!<%k$rAw$j$^$9\e(B
+(@code{gnus-summary-reply-with-original})\e$B!#$3$NL?Na$O%W%m%;%9\e(B/\e$B@\F,0z?t$N\e(B
+\e$B=,47$r;H$$$^$9!#\e(B
+
+@item S o m
+@kindex S o m (\e$B35N,\e(B)
+@findex gnus-summary-mail-forward
+@c @icon{gnus-summary-mail-forward}
+\e$BC/$+B>$N?M$K8=:_$N5-;v$rE>Aw$7$^$9\e(B (@code{gnus-summary-mail-forward})\e$B!#\e(B
+\e$B@\F,0z?t$,$"$k$H!"E>Aw5-;v$N40A4$J%X%C%@!<$r<h$j9~$_$^$9!#\e(B
+
+@item S m
+@itemx m
+@kindex m (\e$B35N,\e(B)
+@kindex S m (\e$B35N,\e(B)
+@findex gnus-summary-mail-other-window
+@c @icon{gnus-summary-mail-originate}
+\e$BC/$+B>$N?M$K%a!<%k$rAw$j$^$9\e(B (@code{gnus-summary-mail-other-window})\e$B!#\e(B
+
+@item S D b
+@kindex S D b (\e$B35N,\e(B)
+@findex gnus-summary-resend-bounced-mail
+@cindex bouncing mail
+\e$B%a!<%k$rAw$C$?$N$K!"2?$i$+$NM}M3\e(B (\e$B4V0c$C$?%"%I%l%9!"0l;~E*$J<:GT\e(B) \e$B$GLa$C\e(B
+\e$B$F$-$?$H$-$K!"$3$NL?Na$r;H$C$FLa$C$F$-$?%a!<%k$r$b$&0l2sAw$k$3$H$,$G$-$^\e(B
+\e$B$9\e(B (@code{gnus-summary-resend-bonced-mail})\e$B!#\e(B \e$B$b$&0lEY%a!<%k$rAw$kA0$K%X%C\e(B
+\e$B%@!<$rJT=8$G$-$k$h$&$K!"%a!<%k%P%C%U%!$K$=$N%a!<%k$,8=$l$k$G$7$g$&!#$3$N\e(B
+\e$BL?Na$K@\F,0z?t$rM?$($F!"La$C$F$-$?%a!<%k$,C/$+$X$NJVEz$G$"$C$?>l9g!"\e(Bgnus
+\e$B$O$=$N%a!<%k$r<hF@$7$F!"$=$l$N%X%C%@!<$N@:L)D4::$,$G$-$k$h$&$K2hLL$KI=<(\e(B
+\e$B$7$^$9!#$^!"$3$l$O$H$F$b$h$/<:GT$7$^$9$1$I!#\e(B
+
+@item S D r
+@kindex S D r (\e$B35N,\e(B)
+@findex gnus-summary-resend-message
+\e$B>e$NL?Na$H:.F1$7$J$$$h$&$K!"\e(B@code{gnus-summary-resend-message} \e$B$O8=:_$N\e(B
+\e$B%a%C%;!<%8$rAw$k@h$N%"%I%l%9$NF~NO$rB%$7!"$=$l$+$i$=$N>l=j$K%a!<%k$rAw$j\e(B
+\e$B$^$9!#%a%C%;!<%8$N%X%C%@!<$OJQ99$5$l$^$;$s\e(B---\e$B$7$+$7!"\e(B@code{Resent-To}\e$B!"\e(B
+@code{Resent-From} \e$BEy$N%X%C%@!<$,IU$12C$($i$l$^$9!#$3$l$O!"\e(B(\e$B$*$=$i$/\e(B) \e$B$"\e(B
+\e$B$J$?<+?H$r\e(B @code{To} \e$B%X%C%@!<$K=q$$$?K\?M$K$b%a!<%k$rAw$C$F$7$^$&$H$$$&\e(B
+\e$B$3$H$G$9!#$3$l$O:.Mp$r>7$/$G$7$g$&!#$G$9$+$i!"$b$A$m$s!"K\Ev$K\e(B \e$B<Y0-\e(B \e$B$J5$\e(B
+\e$BJ,$N$H$-$K$@$1$3$l$r;H$&$G$7$g$&!#\e(B
+
+\e$B$3$NL?Na$O<g$K!"$"$J$?$,$$$/$D$+$N%a!<%k%"%+%&%s%H\e(B (account) \e$B$r;}$C$F$$\e(B
+\e$B$F!"<+J,<+?H$N0c$C$?%"%+%&%s%H$K%a!<%k$rE>Aw$7$?$$$H$-$KMQ$$$i$l$^$9!#\e(B
+(\e$B$b$7$"$J$?$,!"\e(B@code{\e$B%k!<%H\e(B} (root) \e$B$G$"$j!"\e(B@code{\e$B%]%9%H%^%9%?!<\e(B}
+(postmaster) \e$B$G$b$"$j!"\e(B@code{\e$B%k!<%H\e(B} \e$B$K\e(B @code{\e$B%]%9%H%^%9%?!<\e(B} \e$B$X$N%a!<%k\e(B
+\e$B$r<u$1<h$C$?>l9g$O!"$=$l$r\e(B @code{\e$B%]%9%H%^%9%?!<\e(B} \e$B$K$b:FAw$7$?$$$H;W$&$G\e(B
+\e$B$7$g$&!#\e(BOrdnung mu\e(I_\e(B sein!)
+
+\e$B$3$NL?Na$O%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47$K=>$$$^$9\e(B (@pxref{Process/Prefix})\e$B!#\e(B
+
+@item S O m
+@kindex S O m (\e$B35N,\e(B)
+@findex gnus-uu-digest-mail-forward
+\e$B8=:_$N0lO"$N5-;v\e(B (@pxref{Decoding Articles}) \e$B$NMWLs$r:n$j!"%a!<%k$G$=$N\e(B
+\e$B7k2L$rAw$j$^$9\e(B (@code{gnus-uu-digest-mail-forward})\e$B!#\e(B \e$B$3$NL?Na$O%W%m%;%9\e(B
+/\e$B@\F,0z?t$N=,47$K=>$$$^$9\e(B (@pxref{Process/Prefix})\e$B!#\e(B
+
+@item S M-c
+@kindex S M-c (\e$B35N,\e(B)
+@findex gnus-summary-mail-crosspost-complaint
+@cindex crossposting
+@cindex excessive crossposting
+\e$B8=:_$N5-;v$N=q$-<j$K!"2a>j%/%m%9%]%9%H$X$N6l>p$N%a!<%k$rAw$j$^$9\e(B
+(@code{gnus-summary-mail-crosspost-complaint})\e$B!#\e(B
+
+@findex gnus-crosspost-complaint
+\e$B$3$NL?Na$O!"8=:_\e(B Usenet \e$B$K2#9T$7$F$$$k!"%/%m%9%]%9%H$N@$3&E*N.9T$KBP$7$F\e(B
+\e$BH?7b$r9T$&<jCJ$H$7$FDs6!$5$l$F$$$^$9!#$3$l$OJQ?t\e(B
+@code{gnus-crosspost-complaint} \e$B$r=xJ8$K$7$F!"JVEz$r:n@.$7$^$9!#$3$NL?Na\e(B
+\e$B$O%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47\e(B (@pxref{Process/Prefix}) \e$B$K=>$$!"$=$l$>$l$N%a!<\e(B
+\e$B%k$rAw$kA0$KAw?.$9$k$+$I$&$+$N3NG'$r$7$^$9!#\e(B
+
+@end table
+
+
+@node Summary Post Commands
+@subsection \e$B35N,$NEj9FL?Na\e(B
+@cindex post
+@cindex composing news
+
+\e$B%K%e!<%:$N5-;v$rEj9F$9$k$?$a$NL?Na\e(B:
+
+@table @kbd
+@item S p
+@itemx a
+@kindex a (\e$B35N,\e(B)
+@kindex S p (\e$B35N,\e(B)
+@findex gnus-summary-post-news
+@c @icon{gnus-summary-post-news}
+\e$B8=:_$N%0%k!<%W$K5-;v$rEj9F$7$^$9\e(B (@code{gnus-summary-post-news})\e$B!#\e(B
+
+@item S f
+@itemx f
+@kindex f (\e$B35N,\e(B)
+@kindex S f (\e$B35N,\e(B)
+@findex gnus-summary-followup
+@c @icon{gnus-summary-followup}
+\e$B8=:_$N5-;v$N%U%)%m!<%"%C%W$rEj9F$7$^$9\e(B (@code{gnus-summary-followup})\e$B!#\e(B
+
+@item S F
+@itemx F
+@kindex S F (\e$B35N,\e(B)
+@kindex F (\e$B35N,\e(B)
+@c @icon{gnus-summary-followup-with-original}
+@findex gnus-summary-followup-with-original
+\e$BK\5-;v$r<h$j9~$s$G!"8=:_$N5-;v$K%U%)%m!<%"%C%W$r$7$^$9\e(B
+(@code{ggnus-summary-followup-with-original})\e$B!#\e(B \e$B$3$NL?Na$O%W%m%;%9\e(B/\e$B@\F,\e(B
+\e$B0z?t$N=,47$rMQ$$$^$9!#\e(B
+
+@item S n
+@kindex S n (\e$B35N,\e(B)
+@findex gnus-summary-followup-to-mail
+\e$B%a!<%k$N%a%C%;!<%8$r<u$1<h$C$F$$$?$H$7$F$b!"K\5-;v$r0zMQ$7$F!"8=:_$N5-;v\e(B
+\e$B$N%U%)%m!<%"%C%W$r%K%e!<%:$KEj9F$7$^$9\e(B
+(@code{gnus-summary-followup-to-mail-with-original})\e$B!#\e(B
+\e$B$3$NL?Na$O%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47$rMQ$$$^$9!#\e(B
+
+@item S o p
+@kindex S o p (\e$B35N,\e(B)
+@findex gnus-summary-post-forward
+\e$B8=:_$N5-;v$r%K%e!<%:%0%k!<%W$KE>Aw$7$^$9\e(B
+(@code{gnus-summary-post-forward})\e$B!#@\F,0z?t$,M?$($i$l$?$H$-$O!"E>Aw5-;v\e(B
+\e$B$N%X%C%@!<$r40A4$K<h$j9~$_$^$9!#\e(B
+
+@item S O p
+@kindex S O p (\e$B35N,\e(B)
+@findex gnus-uu-digest-summary-post-forward
+@cindex digests
+@cindex making digests
+\e$B8=:_$N0lO"$N5-;v$rMWLs$7$F!"$=$N7k2L$r%K%e!<%:%0%k!<%W$KAw$j$^$9\e(B
+(@code{gnus-uu-digest-mail-forward})\e$B!#$3$NL?Na$O%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47\e(B
+\e$B$rMQ$$$^$9!#\e(B
+
+@item S u
+@kindex S u (\e$B35N,\e(B)
+@findex gnus-uu-post-news
+@c @icon{gnus-uu-post-news}
+\e$B%U%!%$%k$r\e(B Uuencode \e$B$7!"J,3d$7$F!"AH$K$7$FEj9F$7$^$9\e(B
+(@code{gnus-uu-post-news})\e$B!#\e(B(@pxref{Uuencoding and Posting})\e$B!#\e(B
+@end table
+
+
+@node Canceling and Superseding
+@section \e$B5-;v$r<h$j>C$9\e(B
+@cindex canceling articles
+@cindex superseding articles
+
+\e$B2?$+$r=q$$$?8e$G!"K\Ev$K!"K\Ev$K!"$[\e(B \e$B$s\e(B \e$B$H\e(B \e$B$&\e(B \e$B$K$=$l$rEj9F$7$F$$$J$1$l$P\e(B
+\e$B$J$!$H;W$C$?$3$H$O$"$j$^$;$s$+!#\e(B
+
+\e$B$(!<$H!"%a!<%k$O<h$j>C$9$3$H$O$G$-$J$$$N$G$9$,!"%K%e!<%:$NEj9F$O<h$j>C$9\e(B
+\e$B$3$H$,$G$-$^$9!#\e(B
+
+@findex gnus-summary-cancel-article
+@kindex C (\e$B35N,\e(B)
+@c @icon{gnus-summary-cancel-article}
+\e$B<h$j>C$7$?$$5-;v$r8+$D$1$F$/$@$5$$\e(B (\e$B<h$j>C$9$3$H$,$G$-$k$N$O<+J,$N5-;v$@\e(B
+\e$B$1$G$9!#JQ$J$3$H$O;n$5$J$$$G$/$@$5$$\e(B)\e$B!#$=$l$+$i!"\e(B @kbd{C} \e$B$+\e(B @kbd{S c}
+\e$B$r2!$7$F$/$@$5$$\e(B (@code{gnus-summary-cancel-article})\e$B!#\e(B \e$B$"$J$?$N5-;v$,<h\e(B
+\e$B$j>C$5$l$^$9\e(B---\e$B@$3&Cf$N5!3#$,$"$J$?$N5-;v$r<h$j>C$7$^$9!#$3$NL?Na$O%W%m\e(B
+\e$B%;%9\e(B/\e$B@\F,0z?t$N=,47$rMQ$$$^$9\e(B (@pxref{Process/Prefix})\e$B!#\e(B
+
+\e$B$7$+$7!"Cm0U$7$F$[$7$$$N$O$9$Y$F$N%5%$%H\e(B (site) \e$B$,<h$j>C$7$r07$C$F$$$k$o\e(B
+\e$B$1$G$O$J$$$3$H$G$9!#$G$9$+$i!"$?$$$F$$$N%5%$%H$,LdBj$N5-;v$r<h$j>C$7$F$b!"\e(B
+\e$B$"$A$3$A$G$"$J$?$N5-;v$O@8$-;D$k$+$b$7$l$^$;$s!#\e(B
+
+Gnus \e$B$O!"<h$j>C$9$H$-$K\e(B ``\e$B8=:_\e(B'' \e$B$NA*BrJ}K!$r;H$$$^$9!#I8=`$NEj9FJ}K!$r\e(B
+\e$B;H$$$?$$$N$G$"$l$P!"J8;z@\F,0z?t\e(B @samp{a} \e$B$r;H$C$F$/$@$5$$\e(B
+(@pxref{Symbolic Prefixes})\e$B!#\e(B
+
+\e$B$b$72?$+4V0c$$$r$7$?$N$K5$IU$$$F!"D{@5$r$7$?$$$N$G$"$l$P!"\e(B@dfn{\e$BBeBX\e(B} \e$B5-\e(B
+\e$B;v$rEj9F$7$FK\5-;v$rCV$-49$($k$3$H$,$G$-$^$9!#\e(B
+
+@findex gnus-summary-supersede-article
+@kindex S (\e$B35N,\e(B)
+\e$BK\5-;v$N$H$3$m$X0\F0$7$F!"\e(B@kbd{S s} \e$B$r2!$7$F$/$@$5$$\e(B
+(@code{gnus-summary-supersede-article})\e$B!#IaDL$NJ}K!$G$=$l$rAw$kA0$K!"5-\e(B
+\e$B;v$r9%$-$J$h$&$KJT=8$9$k$3$H$,$G$-$^$9!#BeBX$K4X$7$F$b!"<h$j>C$7$HF1$8$3\e(B
+\e$B$H$,Ev$F$O$^$j$^$9!#$3$A$i$NJ}$,$b$C$H$h$/Ev$F$O$^$k$+$b$7$l$^$;$s\e(B: \e$B$$$/\e(B
+\e$B$D$+$N%5%$%H$OBeBX$r<u$1IU$1$^$;$s!#$3$l$i$N%5%$%H$G$O!"$"$J$?$,$[$H$s$I\e(B
+\e$BF1$85-;v$r\e(B2\e$B2sEj9F$7$?$h$&$K$J$j$^$9!#\e(B
+
+\e$B$b$7$5$C$-5-;v$rEj9F$7$?$P$+$j$G$9$0$KJQ99$7$?$/$J$?>l9g!"5-;v$,:G=i$K$"\e(B
+\e$B$J$?$N%5%$%H$K8=$l$kA0$K<h$j>C$7\e(B/\e$BBeBX$r$9$k$?$a$N9*L/$J<jCJ$,$"$j$^$9!#\e(B
+\e$B$^$:!"Ej9F%P%C%U%!\e(B (@code{*sent ... *} \e$B$N$h$&$K$J$C$F$$$^$9\e(B) \e$B$KLa$j$^$9!#\e(B
+\e$B$=$3$K$O$"$J$?$,$A$g$&$IEj9F$7$?5-;v$,$"$j!"$9$Y$F$N%X%C%@!<$,$=$N$^$^$"\e(B
+\e$B$j$^$9!#$=$l$i$NCf$N\e(B @code{Message-ID} \e$B$H$$$&8l$N$H$3$m$rJQ99$9$k$3$H$K\e(B
+\e$B$h$C$F\e(B @code{Message-ID} \e$B%X%C%@!<$r\e(B @code{Cancel} \e$B$b$7$/$O\e(B
+@code{Supersedes} \e$B$KJQ99$7$F$/$@$5$$!#\e(B
+
+\e$B$A$g$C$H3P$($F$*$$$F$/$@$5$$\e(B: 'supersede' (\e$BBeBX\e(B) \e$B$H$$$&8l$NCf$K\e(B 'c' \e$B$OL5\e(B
+\e$B$$$H$$$&$3$H$r!#\e(B
+
+
+@node Marking Articles
+@section \e$B5-;v$K0u$rIU$1$k\e(B
+@cindex article marking
+@cindex article ticking
+@cindex marks
+
+\e$B5-;v$KIU$1$i$l$k0u$O$$$/$D$+$"$j$^$9!#\e(B
+
+\e$B5-;v$N\e(B @dfn{\e$B9XFIEY\e(B} (\e$B$*$)!"%K!<%H!&%-!<%N?78l6g$@\e(B!) \e$B$r7hDj$9$k0u$,$"$j$^\e(B
+\e$B$9!#1Q;z$N0u$O0lHLE*$K$O\e(B @dfn{\e$B4{FI\e(B} \e$B$r0UL#$7!"1Q;z$G$J$$J8;z$O0lHLE*$K\e(B
+@dfn{\e$BL$FI\e(B} \e$B$r0UL#$7$^$9!#\e(B
+
+\e$B2C$($F!"9XFIEY$K1F6A$7$J$$0u$b$"$j$^$9!#\e(B
+
+@menu
+* Unread Articles::      \e$BL$FI5-;v$X$N0u\e(B
+* Read Articles::        \e$B4{FI5-;v$X$N0u\e(B
+* Other Marks::          \e$B9XFIEY$K1F6A$7$J$$0u\e(B
+@end menu
+
+@ifinfo
+\e$B$3$l$i$N0u$rA`:n$9$k2a>j$J$/$i$$$NL?Na$,$"$j$^$9\e(B:
+@end ifinfo
+
+@menu
+* Setting Marks::           \e$B0u$NIU$1J}$H>C$7J}\e(B
+* Setting Process Marks::   \e$B8e$N<B9T$N$?$a$N5-;v$N0u$NIU$1J}\e(B
+@end menu
+
+
+@node Unread Articles
+@subsection \e$BL$FI5-;v\e(B
+
+\e$B0J2<$N0u$O$$$m$$$m$JJ}K!$G5-;v$KL$FI$N\e(B (\e$B$h$&$J\e(B) \e$B0u$rIU$1$^$9!#\e(B
+
+@table @samp
+@item !
+@vindex gnus-ticked-mark
+\e$B2D;k5-;v\e(B (Ticked article} \e$B$H$7$F0u$r$D$1$^$9\e(B (@code{gnus-ticked-mark})\e$B!#\e(B
+
+@dfn{\e$B2D;k5-;v\e(B} \e$B$H$O!">o$K2D;k>uBV$G$"$k5-;v$N$3$H$G$9!#$*$b$7$m$$$H;W\e(B
+\e$B$&5-;v$,$"$C$?>l9g$d!"C1$KFI$`$N$r@h$K1d$P$7$?$$$H$-$d!"8e$GJVEz$r$7$?$$\e(B
+\e$B$H$-$K!"IaDL$O2D;k0u$rIU$1$^$9!#$7$+$7!"5-;v$O4|8B@Z$l>C5n$5$l$k$3$H$b$"\e(B
+\e$B$j$^$9$N$G!"1J1s$K5-;v$rJ]B8$7$F$*$-$?$$>l9g$O!"$=$N5-;v$r1JB3$K$9$kI,MW\e(B
+\e$B$,$"$j$^$9\e(B (@pxref{Persistent Articles})\e$B!#\e(B
+
+@item ?
+@vindex gnus-dormant-mark
+\e$BJ]N1$H$7$F0u$rIU$1$^$9\e(B (@code{gnus-dormant-mark})\e$B!#\e(B
+
+@dfn{\e$BJ]N15-;v\e(B} \e$B$O%U%)%m!<%"%C%W$,$"$C$?$H$-$K$@$135N,%P%C%U%!$K8=$l$^$9!#\e(B
+\e$B%U%)%m!<%"%C%W$,L5$$$H$-$bI=<($5$;$?$$$H$-$O!"L?Na\e(B @kbd{/ D} \e$B$r;H$&$3$H\e(B
+\e$B$,$G$-$^$9!#\e(B
+
+@item SPACE
+@vindex gnus-unread-mark
+\e$BL$FI$H$7$F0u$rIU$1$^$9\e(B (@code{gnus-unread-mark})\e$B!#\e(B
+
+@dfn{\e$BL$FI5-;v\e(B} \e$B$O:#$^$GA4$/FI$^$l$F$$$J$$5-;v$N$3$H$G$9!#\e(B
+@end table
+
+
+@node Read Articles
+@subsection \e$B4{FI5-;v\e(B
+@cindex expirable mark
+
+\e$B0J2<$N$9$Y$F$N0u$O5-;v$K4{FI$N0u$rIU$1$^$9!#\e(B
+
+@table @samp
+
+@item r
+@vindex gnus-del-mark
+\e$BMxMQ<T$,<jF0$d$=$N$h$&$J$b$N$GL?Na\e(B @kbd{d} \e$B$K$h$C$F4{FI$N0u$rIU$1$?5-;v\e(B
+\e$B$G$9\e(B (@code{gnus-del-mark})\e$B!#\e(B
+
+@item R
+@vindex gnus-read-mark
+\e$B<B:]$KFI$^$l$?5-;v\e(B (@code{gnus-read-mark})\e$B!#\e(B
+
+@item O
+@vindex gnus-ancient-mark
+\e$BA02s$N%;%C%7%g%s$G4{FI$N0u$rIU$1$F!":#$O\e(B @dfn{\e$B8E$/\e(B} \e$B$J$C$F$7$^$C$?5-;v!#\e(B
+
+@item K
+@vindex gnus-killed-mark
+\e$B:o=|$N0u\e(B (@code{gnus-killed-mark})\e$B!#\e(B
+
+@item X
+@vindex gnus-kill-file-mark
+\e$B:o=|%U%!%$%k$K$h$C$F:o=|$N0u$,$D$$$?5-;v\e(B
+(@code{gnus-kill-file-mark})\e$B!#\e(B
+
+@item Y
+@vindex gnus-low-score-mark
+\e$BDc$9$.$k%9%3%"$N$?$a$K4{FI$N0u$,$D$$$?5-;v\e(B
+(@code{gnus-low-score-mark})\e$B!#\e(B
+
+@item C
+@vindex gnus-catchup-mark
+\e$B%-%c%C%A%"%C%W$K$h$C$F4{FI$N0u$,$D$$$?5-;v\e(B
+(@code{gnus-catchup-mark})\e$B!#\e(B
+
+@item G
+@vindex gnus-canceled-mark
+\e$B<h$j>C$5$l$?5-;v\e(B (@code{gnus-canceled-mark})\e$B!#\e(B
+
+@item F
+@vindex gnus-souped-mark
+@sc{SOUP} \e$B$5$l$F$$$k5-;v\e(B (@code{gnus-souped-mark})\e$B!#\e(B @xref{SOUP}\e$B!#\e(B
+
+@item Q
+@vindex gnus-sparse-mark
+\e$B$^$P$i$K;2>H$5$l$?5-;v\e(B (@code{gnus-sparse-mark})\e$B!#\e(B
+@xref{Customizing Threading}\e$B!#\e(B
+
+@item M
+@vindex gnus-duplicate-mark
+\e$B=EJ#M^@)$K$h$j4{FI$N0u$N$D$$$?5-;v\e(B (@code{gnus-duplicated-mark})\e$B!#\e(B
+@xref{Duplicate Suppression}\e$B!#\e(B
+
+@end table
+
+\e$B$3$l$i$N$9$Y$F$N0u$O!"K\Ev$O$?$@5-;v$,4{FI$H$7$F0u$,$D$$$F$$$k$3$H$r0UL#\e(B
+\e$B$9$k$@$1$G$9!#E,1~%9%3%"%j%s%0$r$7$?$H$-$K$O0c$C$?$h$&$K2r<a$5$l$^$9$1$l\e(B
+\e$B$I!#\e(B
+
+\e$B$b$&0l$D!"FCJL$J0u$,$"$j$^$9\e(B:
+
+@table @samp
+@item E
+@vindex gnus-expirable-mark
+\e$B4|8B@Z$l:o=|2DG=$H$7$F0u$N$D$$$?5-;v\e(B (@code{gnus-expirable-mark})\e$B!#\e(B
+
+\e$B5-;v$r\e(B @dfn{\e$B4|8B@Z$l:o=|2DG=\e(B} \e$B$H$7$F0u$rIU$1$k\e(B (\e$B$b$7$/$O!"<+F0E*$K$=$N$h\e(B
+\e$B$&$K0u$rIU$1$k\e(B) \e$B$3$H$O!"IaDL$N%0%k!<%W$G$O$"$^$j0UL#$,$"$j$^$;$s\e(B---\e$BMxMQ\e(B
+\e$B<T$O%K%e!<%:5-;v$N4|8B$K$h$k:o=|$r@)8f$7$F$$$^$;$s!#$7$+$7!"Nc$($P%a!<%k\e(B
+\e$B%0%k!<%W$G$O!"\e(B@dfn{\e$B4|8B@Z$l:o=|2DG=\e(B} \e$B$H$7$F0u$N$D$$$?5-;v$O!"$$$D$G$b\e(B
+gnus \e$B$K$h$C$F:o=|$5$l$k$3$H$,$"$j$^$9!#\e(B
+@end table
+
+
+@node Other Marks
+@subsection \e$BB>$N0u\e(B
+@cindex process mark
+@cindex bookmarks
+
+\e$B5-;v$,FI$^$l$?$+$I$&$+$K$O4X78$7$J$$0u$,$$$/$D$+$"$j$^$9!#\e(B
+
+@itemize @bullet
+
+@item
+\e$B8=:_$N5-;v$K$7$*$j$r64$`$3$H$,$G$-$^$9!#$"$J$?$OG-$NG"$N=,47$K4X$9$kD9$$\e(B
+\e$BO@J8$rFI$s$G$$$F!"$=$l$rFI$_=*$o$kA0$KM<?)$r?)$Y$k$?$a$K2H$K5"$i$J$1$l$P\e(B
+\e$B$J$i$J$+$C$?$H$7$^$7$g$&!#$=$N$H$-$K!"5-;v$K$7$*$j$r64$`$3$H$,$G$-!"<!$K\e(B
+\e$B$=$N5-;v$K=P$/$o$7$?$H$-$K!"\e(Bgnus \e$B$O$=$N$7$*$j$N$H$3$m$X0\F0$9$k$G$7$g$&!#\e(B
+@xref{Setting Marks}
+
+@item
+@vindex gnus-replied-mark
+\e$BJVEz$r$7$?$+!"%U%)%m!<%"%C%W$r$7$?\e(B (\e$BNc$($P!"Ez$($?\e(B) \e$B5-;v$O$9$Y$F\e(B2\e$B7eL\$K\e(B
+@samp{A} \e$B$N0u$,$D$-$^$9\e(B (@code{gnus-replied-mark})\e$B!#\e(B
+
+@item
+@vindex gnus-cached-mark
+\e$B5-;v%-%c%C%7%e$KCy$a$i$l$F$$$k5-;v$O\e(B2\e$B7eL\$K\e(B @samp{*} \e$B$N0u$,$D$-$^$9\e(B
+(@code{gnus-replied-mark})\e$B!#\e(B @xref{Article Caching}
+
+@item
+@vindex gnus-saved-mark
+(\e$B2?$i$+$NJ}K!$K$h$C$F\e(B; \e$BI,$:$7$b=!65E*$H$$$&$o$1$G$O$J$/\e(B) ``\e$BJ]B8$5$l$?\e(B'' 
+\e$B5-;v$O\e(B2\e$B7eL\$K\e(B @samp{S} \e$B$N0u$,$D$-$^$9\e(B (@code{gnus-saved-mark})\e$B!#\e(B
+
+@item
+@vindex gnus-not-empty-thread-mark
+@vindex gnus-empty-thread-mark
+\e$B$b$7\e(B @samp{%e} \e$B$N;EMM$,;H$o$l$k$H!"%9%l%C%I$,$"$k$+$I$&$+$O!"\e(B3\e$B7eL\$K\e(B
+@code{gnus-not-empty-thread-mark} \e$B$H\e(B @code{gnus-empty-thread-mark} \e$B$N$=\e(B
+\e$B$l$>$l$K$h$C$F0u$,$D$-$^$9!#\e(B
+
+@item
+@vindex gnus-process-mark
+\e$B:G8e$K\e(B @dfn{\e$B%W%m%;%90u\e(B} \e$B$,$"$j$^$9!#\e(B(@code{gnus-process-mark})\e$B!#\e(B \e$B$$$m$$\e(B
+\e$B$m$J<oN`$NL?Na$,%W%m%;%90u$,$"$k$H$=$l$KBP$7$F<B9T$5$l$^$9!#Nc$($P!"\e(B
+@kbd{X u} (@code{gnus-uu-decode-uu}) \e$B$O%W%m%;%90u$NIU$$$?$9$Y$F$N5-;v$r\e(B
+uudecode \e$B$7$F!"I=<($7$^$9!#%W%m%;%90u$NIU$$$?5-;v$O\e(B2\e$B7eL\$K\e(B @samp{#} \e$B$,$"\e(B
+\e$B$j$^$9!#\e(B
+
+@end itemize
+
+\e$B$3$l$i$N\e(B ``\e$BHs9XFIEY\e(B'' \e$B$N0u$O%G%#%U%)%k%H$G$O$?$$$F$$\e(B2\e$B7eL\$K8=$l$k$H$$$&\e(B
+\e$B$3$H$K5$IU$$$?$+$b$7$l$^$;$s!#$G$9$+$i!"%-%c%C%7%e$5$l$F$$$F!"J]B8$5$l$F\e(B
+\e$B$$$F!"JVEz$r$7$?5-;v$K%W%m%;%90u$,IU$$$F$$$k>l9g!"$I$N$h$&$K$J$k$N$G$7$g\e(B
+\e$B$&\e(B?
+
+\e$B$?$$$7$?$3$H$O$"$j$^$;$s!#M%@h=g0L$O<!$N$h$&$K$J$C$F$$$^$9\e(B: \e$B%W%m%;%9\e(B ->
+\e$B%-%c%C%7%e\e(B -> \e$BJVEz:Q$_\e(B -> \e$BJ]B8!#$G$9$+$i!"$"$k5-;v$,%-%c%C%7%e$KF~$C$F$$\e(B
+\e$B$F!"JVEz$5$l$F$$$?>l9g!"%-%c%C%7%e0u$,$"$k$@$1$G!"JVEz:Q$_0u$O$"$j$^$;$s!#\e(B
+
+
+@node Setting Marks
+@subsection \e$B0u$rIU$1$k\e(B
+@cindex setting marks
+
+\e$B$9$Y$F$N0u$D$1L?Na$O?tCM@\F,0z?t$r<u$1IU$1$^$9!#\e(B
+
+@table @kbd
+@item M c
+@itemx M-u
+@kindex M c (\e$B35N,\e(B)
+@kindex M-u (\e$B35N,\e(B)
+@findex gnus-summary-clear-mark-forward
+@cindex mark as read
+\e$B8=:_$N5-;v$+$i!"$9$Y$F$N9XFIEY0u$r>C5n$7$^$9\e(B
+(@code{gnus-summary-clear-mark-forward})\e$B!#MW$9$k$K!"5-;v$KL$FI$N0u$rIU$1\e(B
+\e$B$^$9!#\e(B
+
+@item M t
+@itemx !
+@kindex ! (\e$B35N,\e(B)
+@kindex M t (\e$B35N,\e(B)
+@findex gnus-summary-tick-article-forward
+\e$B8=:_$N5-;v$K2D;k5-;v0u$rIU$1$^$9\e(B
+(@code{gnus-summary-tick-article-forward})\e$B!#\e(B @xref{Article Caching}
+
+@item M ?
+@item ?
+@kindex ? (\e$B35N,\e(B)
+@kindex M ? (\e$B35N,\e(B)
+@findex gnus-summary-mark-as-dormant
+\e$B8=:_$N5-;v$KJ]N15-;v0u$rIU$1$^$9\e(B
+(@code{gnus-summary-mark-as-read-forward})\e$B!#\e(B
+
+@item D
+@kindex D (\e$B35N,\e(B)
+@findex gnus-summary-mark-as-read-backward
+\e$B8=:_$N5-;v$K4{FI$N0u$rIU$1!"A0$N9T$K%]%$%s%H$r0\F0$7$^$9\e(B
+(@code{gnus-summary-mark-as-read-backward})\e$B!#\e(B
+
+@item M k
+@itemx k
+@kindex k (\e$B35N,\e(B)
+@kindex M k (\e$B35N,\e(B)
+@findex gnus-summary-kill-same-subject-and-select
+\e$B8=:_$N5-;v$HF1$8I=Bj$r;}$D$9$Y$F$N5-;v$r4{FI$H$7$F0u$rIU$1!"<!$NL$FI5-;v\e(B
+\e$B$rA*Br$7$^$9\e(B (@code{gnus-summary-kill-same-subject-and-select})\e$B!#\e(B
+
+@item M K
+@itemx C-k
+@kindex M K (\e$B35N,\e(B)
+@kindex C-k (\e$B35N,\e(B)
+@findex gnus-summary-kill-same-subject
+\e$B8=:_$N5-;v$HF1$8I=Bj$r;}$D$9$Y$F$N5-;v$r4{FI$H$7$F0u$rIU$1$^$9\e(B
+(@code{gnus-summary-kill-same-subject})\e$B!#\e(B
+
+@item M C
+@kindex M C (\e$B35N,\e(B)
+@findex gnus-summary-catchup
+@c @icon{gnus-summary-catchup}
+\e$B$9$Y$F$NL$FI5-;v$K4{FI$N0u$rIU$1$^$9\e(B (@code{gnus-summary-catchup})\e$B!#\e(B
+
+@item M C-c
+@kindex M C-c (\e$B35N,\e(B)
+@findex gnus-summary-catchup-all
+\e$B%0%k!<%W$N$9$Y$F$N5-;v$K\e(B---\e$B2D;k5-;v$dJ]N15-;v$G$5$($b!"4{FI$N0u$rIU$1$^\e(B
+\e$B$9\e(B (@code{gnus-summary-catchup-all})\e$B!#\e(B
+
+@item M H
+@kindex M H (\e$B35N,\e(B)
+@findex gnus-summary-catchup-to-here
+\e$B8=:_$N%0%k!<%W$N%]%$%s%H$^$G$r4{FI$H$7$F0u$rIU$1$^$9\e(B
+(@code{gnus-summary-catchup-to-here})\e$B!#\e(B
+
+@item C-w
+@kindex C-w (\e$B35N,\e(B)
+@findex gnus-summary-mark-region-as-read
+\e$B%]%$%s%H$H%^!<%/$N4V$N5-;v$K4{FI$N0u$rIU$1$^$9\e(B
+(@code{gnus-summary-mark-region-as-read})\e$B!#\e(B
+
+@item M V k
+@kindex M V k (\e$B35N,\e(B)
+@findex gnus-summary-kill-below
+\e$B%G%#%U%)%k%H$N%9%3%"\e(B (\e$B$b$7$/$O?tCM@\F,0z?t\e(B) \e$B$h$j$bDc$$%9%3%"$N5-;v$r:o=|\e(B
+\e$B$7$^$9!#\e(B
+
+@item M e
+@itemx E
+@kindex M e (\e$B35N,\e(B)
+@kindex E (\e$B35N,\e(B)
+@findex gnus-summary-mark-as-expirable
+\e$B8=:_$N5-;v$r4|8B@Z$l:o=|2DG=$H$7$F0u$rIU$1$^$9\e(B
+(@code{gnus-summary-mark-as-expirable})\e$B!#\e(B
+
+@item M b
+@kindex M b (\e$B35N,\e(B)
+@findex gnus-summary-set-bookmark
+\e$B8=:_$N5-;v$K$7$*$j$r@_Dj$7$^$9\e(B (@code{gnus-summary-set-bookmark})\e$B!#\e(B
+
+@item M B
+@kindex M B (\e$B35N,\e(B)
+@findex gnus-summary-remove-bookmark
+\e$B8=:_$N5-;v$N$7$*$j$r:o=|$7$^$9\e(B (@code{gnus-summary-remobe-bookmark})\e$B!#\e(B
+
+@item M V c
+@kindex M V c (\e$B35N,\e(B)
+@findex gnus-summary-clear-above
+\e$B%G%#%U%)%k%H$N%9%3%"\e(B (\e$B$b$7$/$O?tCM@\F,0z?t\e(B) \e$B$h$j$bBg$-$$%9%3%"$r;}$D5-;v\e(B
+\e$B$N$9$Y$F$N0u$r>C5n$7$^$9\e(B (@code{gnus-summary-clar-above})\e$B!#\e(B
+
+@item M V u
+@kindex M V u (\e$B35N,\e(B)
+@findex gnus-summary-tick-above
+\e$B%G%#%U%)%k%H$N%9%3%"\e(B (\e$B$b$7$/$O?tCM@\F,0z?t\e(B) \e$B$h$j$bBg$-$$%9%3%"$r;}$D$9$Y\e(B
+\e$B$F$N5-;v$K2D;k0u$rIU$1$^$9\e(B (@code{gnus-summary-tick-above})\e$B!#\e(B
+
+@item M V m
+@kindex M V m (\e$B35N,\e(B)
+@findex gnus-summary-mark-above
+\e$B0u$NF~NO$rB%$7!"%G%#%U%)%k%H$N%9%3%"\e(B (\e$B$b$7$/$O?tCM@\F,0z?t\e(B) \e$B$h$j$bBg$-$J\e(B
+\e$B%9%3%"$r;}$D$9$Y$F$N5-;v$K$=$N0u$rIU$1$^$9\e(B
+(@code{gnus-summary-mark-above})\e$B!#\e(B
+@end table
+
+@vindex gnus-summary-goto-unread
+\e$BJQ?t\e(B @code{gnus-summary-goto-unread} \e$B$O0u$,IU$1$i$l$?8e$K$I$N$h$&$JF0:n\e(B
+\e$B$,$J$5$l$k$+$r7hDj$7$^$9!#$b$7\e(B @code{nil} \e$B$G$J$$$H!"%]%$%s%H$O<!\e(B/\e$BA0$NL$\e(B
+\e$BFI5-;v$K0\F0$7$^$9!#$b$7\e(B @code{nil} \e$B$G$"$k$H!"%]%$%s%H$O0l9T>e$+2<$K9T$/\e(B
+\e$B$@$1$G$9!#FCJL$J>l9g$H$7$F!"$3$NJQ?t$,\e(B @code{never} \e$B$G$"$k$H!"$9$Y$F$N0u\e(B
+\e$B$rIU$1$kL?Na$H\e(B (@kbd{SPACE} \e$B$N$h$&$J\e(B) \e$BB>$NL?Na$O<!$N5-;v$,L$FI$G$"$m$&$,\e(B
+\e$BL5$+$m$&$,$=$N5-;v$K0\F0$7$^$9!#%G%#%U%)%k%H$O\e(B @code{t} \e$B$G$9!#\e(B
+
+
+@node Setting Process Marks
+@subsection \e$B%W%m%;%90u$rIU$1$k\e(B
+@cindex setting process marks
+
+@table @kbd
+
+@item M P p
+@itemx #
+@kindex # (\e$B35N,\e(B)
+@kindex M P p (\e$B35N,\e(B)
+@findex gnus-symmary-mark-as-processable
+\e$B8=:_$N5-;v$K%W%m%;%90u$rIU$1$^$9\e(B
+(@code{gnus-summary-mark-as-processable})\e$B!#\e(B
+@findex gnus-summary-unmark-as-processable
+
+@item M P u
+@itemx M-#
+@kindex M P u (\e$B35N,\e(B)
+@kindex M-# (\e$B35N,\e(B)
+\e$B$b$78=:_$N5-;v$K%W%m%;%90u$,$"$l$P<h$j=|$-$^$9\e(B
+(@code{gnus-summary-unmark-as-processable})\e$B!#\e(B
+
+@item M P U
+@kindex M P U (\e$B35N,\e(B)
+@findex gnus-summary-unmark-all-processable
+\e$B$9$Y$F$N5-;v$+$i%W%m%;%90u$r<h$j=|$-$^$9\e(B
+(@code{gnus-summary-unmark-all-processable})\e$B!#\e(B
+
+@item M P i
+@kindex M P i (\e$B35N,\e(B)
+@findex gnus-uu-invert-processable
+\e$B%W%m%;%90u$NIU$$$F$$$k5-;v$H$=$&$G$J$$5-;v$r5U$K$7$^$9\e(B
+(@code{gnus-uu-mark-by-regexp})\e$B!#\e(B
+
+@item M P R
+@kindex M P R (\e$B35N,\e(B)
+@findex gnus-uu-mark-by-regexp
+\e$B@55,I=8=$K$h$C$F5-;v$K0u$rIU$1$^$9\e(B (@code{gnus-uu-mark-by-regexp})\e$B!#\e(B
+
+@item M P r
+@kindex M P r (\e$B35N,\e(B)
+@findex gnus-uu-mark-region
+\e$B%j!<%8%g%s$N5-;v$K0u$rIU$1$^$9\e(B (@code{gnus-uu-mark-region})\e$B!#\e(B
+
+@item M P t
+@kindex M P t (\e$B35N,\e(B)
+@findex gnus-uu-mark-thread
+\e$B8=:_$N\e(B (\e$BI{\e(B) \e$B%9%l%C%I$N$9$Y$F$N5-;v$K0u$rIU$1$^$9\e(B
+(@code{gnus-uu-mark-thread})\e$B!#\e(B
+
+@item M P T
+@kindex M P T (\e$B35N,\e(B)
+@findex gnus-uu-unmark-thread
+\e$B8=:_$N\e(B (\e$BI{\e(B) \e$B%9%l%C%I$N$9$Y$F$N5-;v$+$i0u$r<h$j=|$-$^$9\e(B
+(@code{gnus-uu-unamrk-thread})\e$B!#\e(B
+
+@item M P v
+@kindex M P v (\e$B35N,\e(B)
+@findex gnus-uu-mark-over
+\e$B@\F,0z?t$h$j$bBg$-$J%9%3%"$r;}$D$9$Y$F$N5-;v$K0u$rIU$1$^$9\e(B
+(@code{gnus-uu-mark-over})\e$B!#\e(B
+
+@item M P s
+@kindex M P s (\e$B35N,\e(B)
+@findex gnus-uu-mark-series
+\e$B8=:_$N0lO"$N5-;v$K0u$rIU$1$^$9\e(B (@code{gnus-uu-mark-series})\e$B!#\e(B
+
+@item M P S
+@kindex M P S (\e$B35N,\e(B)
+@findex gnus-uu-mark-sparse
+\e$B4{$K$$$/$D$+0u$NIU$$$?5-;v$r;}$D0lO"$N5-;v72A4$F$K0u$rIU$1$^$9\e(B
+(@code{gnus-uu-mark-sparse})\e$B!#\e(B
+
+@item M P a
+@kindex M P a (\e$B35N,\e(B)
+@findex gnus-uu-mark-all
+\e$B0lO"$N5-;v$,=P$F$/$k=gHV$K$=$l$KB0$9$k$9$Y$F$N5-;v$K0u$rIU$1$^$9\e(B
+(@code{gnus-uu-mark-all})\e$B!#\e(B
+
+@item M P b
+@kindex M P b (\e$B35N,\e(B)
+@findex gnus-uu-mark-buffer
+\e$B%P%C%U%!$N$9$Y$F$N5-;v$r8=$l$F$$$k=gHV$K0u$rIU$1$^$9\e(B
+(@code{gnus-uu-mark-buffer})\e$B!#\e(B
+
+@item M P k
+@kindex M P k (\e$B35N,\e(B)
+@findex gnus-summary-kill-process-mark
+\e$B8=:_$N%W%m%;%90u$r%9%?%C%/$K@Q$s$G!"$9$Y$F$N5-;v$rL50u$K$7$^$9\e(B
+(@code{gnus-summary-kill-process-mark})\e$B!#\e(B
+
+@item M P y
+@kindex M P y (\e$B35N,\e(B)
+@findex gnus-summary-yank-process-mark
+\e$B%9%?%C%/$+$iA02s$N%W%m%;%90u$r<h$j=P$7$F!"$=$l$rI|85$7$^$9\e(B
+(@code{gnus-summary-yank-process-mark})\e$B!#\e(B
+
+@item M P w
+@kindex M P w (\e$B35N,\e(B)
+@findex gnus-summary-save-process-mark
+\e$B8=:_$N%W%m%;%90u$r%9%?%C%/$K@Q$_$^$9\e(B
+(@code{gnus-summary-save-process-mark})\e$B!#\e(B
+
+@end table
+
+
+@node Limiting
+@section \e$B@)8B$r$9$k\e(B
+@cindex  limiting
+
+\e$B35N,%P%C%U%!$,8=:_%0%k!<%W$K$"$k5-;v$N0lIt$@$1$rI=<($9$k$h$&$K@)8B$G$-$l\e(B
+\e$B$PJXMx$J$3$H$,$"$j$^$9!#B?$/$N@)8BL?Na$,;}$D8z2L$O35N,%P%C%U%!$+$i>/$7\e(B 
+(\e$B$b$7$/$OB?$/\e(B) \e$B$N5-;v$r35N,%P%C%U%!$+$i:o=|$9$k$3$H$G$9!#\e(B
+
+\e$B$9$Y$F$N@)8BL?Na$O%5!<%P!<$+$i4{$K<hF@$5$l$?5-;v$N0lItJ,$K:nMQ$7$^$9!#$3\e(B
+\e$B$l$i$NL?Na$O$I$l$b%5!<%P!<$KDI2C$N5-;v$rMW5a$7$^$;$s!#\e(B
+
+@table @kbd
+
+@item / /
+@itemx / s
+@kindex / / (\e$B35N,\e(B)
+@findex gnus-summary-limit-to-subject
+\e$B35N,%P%C%U%!$r$$$/$D$+$NI=Bj$H9gCW$9$k$b$N$@$1$K@)8B$7$^$9\e(B
+(@code{gnus-summary-limit-to-subject})\e$B!#\e(B
+
+@item / a
+@kindex / a (\e$B35N,\e(B)
+@findex gnus-summary-limit-to-author
+\e$B35N,%P%C%U%!$r2??M$+$NCx<T$K9gCW$9$k$b$N$@$1$K@)8B$7$^$9\e(B
+(@code{gnus-summary-limit-to-author})\e$B!#\e(B
+
+@item / u
+@itemx x
+@kindex / u (\e$B35N,\e(B)
+@kindex x (\e$B35N,\e(B)
+@findex gnus-summary-limit-to-unread
+\e$B35N,%P%C%U%!$r4{FI$N0u$,IU$$$F$$$J$$5-;v$K@)8B$7$^$9\e(B
+(@code{gnus-summary-limit-to-unread})\e$B!#$b$7@\F,0z?t$,M?$($i$l$l$P!"%P%C\e(B
+\e$B%U%!$r87L)$KL$FI5-;v$N$_$K@)8B$7$^$9!#$3$l$O!"2D;k$HJ]N1$N5-;v$O4^$^$l$J\e(B
+\e$B$$$H$$$&$3$H$G$9!#\e(B
+
+@item / m
+@kindex / m (\e$B35N,\e(B)
+@findex gnus-summary-limit-to-marks
+\e$B0u$r?R$M$F!"$=$N0u$,IU$$$F$$$J$$5-;v$K@)8B$7$^$9\e(B
+(@code{gnus-summary-limit-to-marks})\e$B!#\e(B
+
+@item / t
+@kindex / t (\e$B35N,\e(B)
+@findex gnus-summary-limit-to-age
+\e$B?t;z$r?R$M$F!"35N,%P%C%U%!$r$=$N?t;z$NF|$h$j8E$$\e(B (\e$B$b$7$/$OF1$8\e(B) \e$B5-;v$K@)\e(B
+\e$B8B$7$^$9\e(B (@code{gnus-summary-limit-to-marks})\e$B!#$b$7@\F,0z?t$,M?$($i$l$l\e(B
+\e$B$P!"$=$N?t;z$NF|$h$j$b?7$7$$5-;v$K@)8B$7$^$9!#\e(B
+
+@item / n
+@kindex / n (\e$B35N,\e(B)
+@findex gnus-summary-limit-to-articles
+\e$B35N,%P%C%U%!$r8=:_$N5-;v$K@)8B$7$^$9\e(B
+(@code{gnus-summary-limit-to-articles})\e$B!#%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47$r;H$$$^\e(B
+\e$B$9\e(B (@pxref{Process/Prefix})\e$B!#\e(B
+
+@item / w
+@kindex / w (\e$B35N,\e(B)
+@findex gnus-summary-pop-limit
+\e$BA0$N@)8B$r%9%?%C%/$+$i<h$j=P$7$F!"I|85$7$^$9\e(B
+(@code{gnus-summary-pop-limit})\e$B!#$b$7@\F,0z?t$rM?$($i$l$l$P!"$9$Y$F$N@)\e(B
+\e$B8B$r%9%?%C%/$+$i<h$j=P$7$^$9!#\e(B
+
+@item / v
+@kindex / v (\e$B35N,\e(B)
+@findex gnus-summary-limit-to-score
+\e$B35N,%P%C%U%!$r$"$k%9%3%"$HF1$8$+!"$=$l$h$jBg$-$J%9%3%"$r;}$D5-;v$K@)8B$7\e(B
+\e$B$^$9\e(B (@code{gnus-summary-limit-to-score})\e$B!#\e(B
+
+@item / E
+@itemx M S
+@kindex M S (\e$B35N,\e(B)
+@kindex / E (\e$B35N,\e(B)
+@findex gnus-summary-limit-include-expunged
+\e$B$9$Y$F$N>C5n$5$l$?5-;v$rI=<($7$^$9\e(B
+(@code{gnus-summary-limit-include-expunged})\e$B!#\e(B
+
+@item / D
+@kindex / D (\e$B35N,\e(B)
+@findex gnus-summary-limit-include-dormant
+\e$B$9$Y$F$NJ]N15-;v$rI=<($7$^$9\e(B (@code{gnus-summary-limit-include-dormant})\e$B!#\e(B
+
+@item / *
+@kindex / * (\e$B35N,\e(B)
+@findex gnus-summary-limit-include-cached
+\e$B$9$Y$F$N%-%c%C%7%e$KF~$C$F$$$k5-;v$rI=<($7$^$9\e(B
+(@code{gnus-summary-limit-include-cached})\e$B!#\e(B
+
+@item / d
+@kindex / d (\e$B35N,\e(B)
+@findex gnus-summary-limit-exclude-dormant
+\e$B$9$Y$F$NJ]N15-;v$r1#$7$^$9\e(B (@code{gnus-summary-limit-exclude-dormant})\e$B!#\e(B
+
+@item / T
+@kindex / T (\e$B35N,\e(B)
+@findex gnus-summary-limit-include-thread
+\e$B8=:_$N%9%l%C%I$N$9$Y$F$N5-;v$rI=<($7$^$9\e(B
+(@code{gnus-summary-limit-include-thread})\e$B!#\e(B
+
+@item / c
+@kindex / c (\e$B35N,\e(B)
+@findex gnus-summary-limit-exclude-childless-dormant
+\e$B;R5-;v$NL5$$$9$Y$F$NJ]N15-;v$r1#$7$^$9\e(B
+(@code{gnus-summary-limit-exclude-childless-dormant})\e$B!#\e(B
+
+
+@item / C
+@kindex / C (\e$B35N,\e(B)
+@findex gnus-summary-limit-mark-excluded-as-read
+\e$B$9$Y$F$NL$FI$N$_$N0u$N5-;v$r4{FI$H$7$F0u$rIU$1$^$9\e(B
+(@code{gnus-summary-limit-mark-excluded-as-read})\e$B!#$b$7@\F,0z?t$,M?$($i\e(B
+\e$B$l$l$P!"2D;k$HJ]N1$N$_$N0u$N5-;v$b4{FI$H$7$F0u$rIU$1$^$9!#\e(B
+
+@end table
+
+
+@node Threading
+@section \e$B%9%l%C%I\e(B
+@cindex threading
+@cindex article threading
+
+Gnus \e$B$O%G%#%U%)%k%H$G5-;v$r%9%l%C%I$K$7$^$9!#\e(B@dfn{\e$B%9%l%C%I$K$9$k\e(B} \e$B$H$O!"\e(B
+\e$B$"$k5-;v$X$N1~Ez$r1~Ez$7$?5-;v$ND>8e$KCV$/\e(B---\e$B3,AXE*N.57$G\e(B \e$B$H$$$&$3$H$G$9!#\e(B
+
+\e$B%9%l%C%I$O5-;v$N\e(B @code{References} \e$B%X%C%@!<$rD4$Y$k$3$H$K$h$C$F9T$o$l$^\e(B
+\e$B$9!#40A4$J@$3&$G$O!"$3$l$@$1$GNI$$LZ$r:n$j>e$2$k$N$K==J,$J$N$G$9$,!"IT1?\e(B
+\e$B$J$3$H$K!"\e(B@code{References} \e$B%X%C%@!<$O$7$P$7$P2u$l$F$$$k$+!";~$K$OC1$K$J\e(B
+\e$B$$$H$$$&$3$H$,$"$j$^$9!#IT;W5D$J%K%e!<%:$NA}?#$,LdBj$rA}$d$7$^$9$N$G!"4n\e(B
+\e$B$P$7$$7k2L$rF@$k$?$a$K$OB>$NH/8+K!$r:NMQ$7$J$1$l$P$J$j$^$;$s!#2a>j$JBP:v\e(B
+\e$BK!$OB8:_$7$F$$$F!"$=$N62$k$Y$->\:Y$O\e(B @pxref{Customizing Threading} \e$B$K>\\e(B
+\e$B$7$/=q$$$F$"$j$^$9!#\e(B
+
+\e$B$^$:!"35G0$N354Q$G$9\e(B:
+
+@table @dfn
+@item \e$B%k!<%H\e(B (root)
+\e$B%9%l%C%I$G0lHVD:E@$K$"$k5-;v$G$9\e(B; \e$B%9%l%C%I$N:G=i$N5-;v$G$9!#\e(B
+
+@item \e$B%9%l%C%I\e(B (thread)
+\e$BLZ$N$h$&$J5-;v$N9=@.$G$9!#\e(B
+
+@item \e$BI{%9%l%C%I\e(B (sub-thread)
+\e$BLZ$N$h$&$J9=B$$N\e(B (\e$B$h$j\e(B) \e$B>.$5$JItJ,$G$9!#\e(B
+
+@item \e$BL5B+G{%9%l%C%I\e(B (loose threads)
+\e$B5-;v$N4|8B@Z$l:o=|$d!"%k!<%H$,4{$KA02s$N%;%C%7%g%s$GFI$^$l$?$3$H$K$h$j35\e(B
+\e$BN,%P%C%U%!$KI=<($5$l$J$$!"Ey$NM}M3$K$h$j!"%9%l%C%I$O$7$P$7$P%k!<%H$r<:$$\e(B
+\e$B$^$9!#$=$N$h$&$J$H$-$K$O!"IaDL$OB?$/$NI{%9%l%C%I$,$"$C$F!"K\Ev$O\e(B1\e$B$D$N%9\e(B
+\e$B%l%C%I$KB0$7$F$$$k$N$G$9$,!"%k!<%H$K$O$D$J$,$C$F$$$J$$!"$H$$$&$3$H$K$J$j\e(B
+\e$B$^$9!#$3$&$$$&%9%l%C%I$,L5B+G{%9%l%C%I$H8F$P$l$F$$$^$9!#\e(B
+
+@item \e$B%9%l%C%I=8$a\e(B (thread gathering)
+\e$B$^$P$i%9%l%C%I$rBg$-$J%9%l%C%I$K=8$a$h$&$H$9$k;n$_$G$9!#\e(B
+
+@item \e$B$^$P$i%9%l%C%I\e(B (sparse threads)
+\e$BL5$$5-;v$,\e(B ''\e$B?dB,$5$l$?\e(B'' \e$B%9%l%C%I$G!"35N,%P%C%U%!$K6u9T$GI=<($5$l$^$9!#\e(B
+
+@end table
+
+
+@menu
+* Customizing Threading::     \e$BJQ992DG=$J%9%l%C%I$K1F6A$9$kJQ?t\e(B
+* Thread Commands::           \e$B35N,%P%C%U%!$G$N%9%l%C%I$K4p$E$$$?L?Na\e(B
+@end menu
+
+
+@node Customizing Threading
+@subsection \e$B%9%l%C%I$r%+%9%?%^%$%:$9$k\e(B
+@cindex customizing threading
+
+@menu
+* Loose Threads::        Gnus \e$B$,L5B+G{%9%l%C%I$r=8$a$FBg$-$J%9%l%C%I$K$9$kJ}K!\e(B
+* Filling In Threads::   \e$B%9%l%C%I$rKd$a$k\e(B
+* More Threading::       \e$B%9%l%C%I$r$$$8$/$k$5$i$KB?$/$NJQ?t\e(B
+* Low-Level Threading::  \e$B$3$l$G=*$o$C$?$H;W$C$?$G$7$g$&\e(B... \e$B$G$b$"$J$?$O4V0c$C$F$$$?\e(B!
+@end menu
+
+
+@node Loose Threads
+@subsection \e$BL5B+G{%9%l%C%I\e(B
+@cindex <
+@cindex >
+@cindex loose threads
+
+@table @code
+@item gnus-summary-make-false-root
+@vindex gnus-summary-make-false-root
+\e$B$b$7\e(B @code{nil} \e$B$G$J$$$H!"\e(Bgnus \e$B$OA4$F$N$D$J$,$C$F$$$J$$I{LZ$r\e(B1\e$B$D$NBg$-$J\e(B
+\e$BLZ$K$7$F!"D:>e$K$_$;$+$1$N%k!<%H$r:n$j$^$9!#\e(B (\e$B$A$g$C$HBT$C$F$/$@$5$$!#D:\e(B
+\e$B>e$K:,85\e(B (root) \e$B$G$9$C$F\e(B? \e$B$($(!"$=$&$J$N$G$9!#\e(B) \e$B$D$J$,$C$F$$$J$$I{LZ$OK\\e(B
+\e$BEv$N%k!<%H$,4|8B@Z$l:o=|$5$l$?$+!"A02s$N%;%C%7%g%s$G%k!<%H$rFI$s$@$j:o=|\e(B
+\e$B$7$?$H$-$K$G$-$^$9!#\e(B
+
+\e$BK\Ev$N%9%l%C%I$,L5$$$H$-$O!"\e(Bgnus \e$B$O2?$+$G$C$A>e$2$r$9$kI,MW$,$"$j$^$9!#\e(B
+\e$B$3$NJQ?t$O\e(B gnus \e$B$,;H$&$Y$-$4$^$+$7$NJ}K!$r<($7$F$$$^$9!#CM$H$7$F$H$k$3$H\e(B
+\e$B$,$G$-$k\e(B4\e$B$D$N8uJd$,$"$j$^$9!#\e(B
+
+@iftex
+@iflatex
+\gnusfigure{The Summary Buffer}{390}{
+\put(0,0){\epsfig{figure=tmp/summary-adopt.ps,width=7.5cm}}
+\put(445,0){\makebox(0,0)[br]{\epsfig{figure=tmp/summary-empty.ps,width=7.5cm}}}
+\put(0,400){\makebox(0,0)[tl]{\epsfig{figure=tmp/summary-none.ps,width=7.5cm}}}
+\put(445,400){\makebox(0,0)[tr]{\epsfig{figure=tmp/summary-dummy.ps,width=7.5cm}}}
+}
+@end iflatex
+@end iftex
+
+@cindex adopting articles
+
+@table @code
+
+@item \e$BM\;R\e(B (adopt)
+Gnus \e$B$O:G=i$N8I;y$r?F$K$7$^$9!#$3$N?F$O$9$Y$F$NB>$N5-;v$rM\;R$K$7$^$9!#\e(B
+\e$B$3$NM\;R5-;v$O!"I8=`$N3Q3g8L\e(B (@samp{[]}) \e$B$NBe$o$j$K!"@h$N@m$C$?3g8L\e(B
+(@samp{<>}) \e$B$G0uIU$1$i$l$^$9!#$3$l$,%G%#%U%)%k%H$NJ}K!$G$9!#\e(B
+
+@item \e$B$_$;$+$1\e(B (dummy)
+@vindex gnus-summary-dummy-line-format
+Gnus \e$B$O?F$N$U$j$r$9$k$_$;$+$1$N35N,9T$r$D$/$j$^$9!#$_$;$+$1$N9T$O$I$NK\\e(B
+\e$BEv$N5-;v$K$bBP1~$7$^$;$s$N$G!"$=$l$rA*Br$9$k$3$H$O!"$_$;$+$1$N5-;v$N8e$N\e(B
+\e$B:G=i$NK\Ev$N5-;v$rA*Br$r$9$k$@$1$K$J$j$^$9!#$_$;$+$1$N%k!<%H$NMM<0$r;XDj\e(B
+\e$B$9$k$?$a$K!"\e(B @code{gnus-summary-dummy-line-format} \e$B$,;H$o$l$^$9!#$3$l$O\e(B
+\e$B$?$C$?0l$D$@$1$N%U%)!<%^%C%H$N;EMM$r<u$1IU$1$^$9\e(B: @samp{S} \e$B$G!"$3$l$O5-\e(B
+\e$B;v$NI=Bj$G$9!#\e(B @xref{Formatting Variables}\e$B!#\e(B
+
+@item \e$B6u\e(B (empty)
+Gnus \e$B$O<B:]$K$O$I$N5-;v$b?F$K$O$;$:!"C1$K:G=i$N8I;y$r=|$$$F$9$Y$F$N8I;y\e(B
+\e$B$NI=BjMs$r6u$N$^$^$K$7$^$9!#\e(B (\e$B<B:]$O!"\e(B @code{gnus-summary-same-subject} 
+\e$B$rI=Bj$H$7$F;H$$$^$9!#\e(B (@pxref{Summary Buffer Format})\e$B!#\e(B)
+
+@item none
+\e$BA4$/$I$N5-;v$b?F$K$7$^$;$s!#%9%l%C%I$r=8$a$F!"0l$D$N5-;v$N8e$KB>$N5-;v$r\e(B
+\e$BI=<($9$k$@$1$G$9!#\e(B
+
+@item nil
+\e$BL5B+G{%9%l%C%I$r=8$a$^$;$s!#\e(B
+@end table
+
+@item gnus-summary-gather-subject-limit
+@vindex gnus-summary-gather-subject-limit
+\e$BL5B+G{%9%l%C%I$O5-;v$NI=Bj$rHf3S$9$k$3$H$K$h$C$F=8$a$i$l$^$9!#$b$7$3$NJQ\e(B
+\e$B?t$,\e(B @code{nil} \e$B$G$"$k$H!"\e(Bgnus \e$B$OL5B+G{%9%l%C%I$r0l$D$NBg$-$JD6%9%l%C%I\e(B
+\e$B$K=8$a$kA0$K!"L5B+G{%9%l%C%I$NI=Bj$,40A4$K0lCW$9$k$3$H$rMW5a$7$^$9!#$3$l\e(B
+\e$B$O!"D9$$I=Bj$N9T$r@Z$jMn$H$7$F$7$^$&4VH4$1$J%K%e!<%:%j!<%@!<$,B8:_$9$k8=\e(B
+\e$B:_$G$O!"$"$^$j$K87$7$$MW5a$+$bCN$l$^$;$s!#$b$7$=$&;W$&$N$J$i!"$3$NJQ?t$r\e(B
+\e$BNc$($P\e(B20\e$B$K@_Dj$7$F!"I=Bj$N:G=i$N\e(B20\e$BJ8;z$@$1$,0lCW$9$k$3$H$rMW5a$9$k$h$&$K\e(B
+\e$B$9$k$3$H$,$G$-$^$9!#$3$NJQ?t$rK\Ev$KDc$$?t;z$K@_Dj$9$k$H!"\e(Bgnus \e$B$,L\$KF~\e(B
+\e$B$kA4$F$r0l$D$N%9%l%C%I$K=8$a$k$N$r8+$k$3$H$,$G$-$k$G$7$g$&!#$=$7$F!"$=$l\e(B
+\e$B$O$"$^$jM-MQ$G$O$"$j$^$;$s!#\e(B
+
+@cindex fuzzy article gathering
+\e$B$3$NJQ?t$rFCJL$JCM\e(B @code{fuzzy} \e$B$K@_Dj$9$l$P!"\e(Bgnus \e$B$OI=Bj$K$"$$$^$$$JJ8\e(B
+\e$B;zNsHf3S%"%k%4%j%:%`$r;H$$$^$9\e(B (@pxref{Fuzzy Matching})\e$B!#\e(B
+
+@item gnus-sumplify-subject-fuzzy-regexp
+@vindex gnus-simplify-subject-fuzzy-regexp
+\e$B$3$l$O@55,I=8=$+!"$"$$$^$$I=Bj;XDj$,;H$o$l$F$$$k$H$-$KI=Bj$+$i9gCW$7$?$b\e(B
+\e$B$N$,<h$j=|$+$l$k!"@55,I=8=$N%j%9%H$G$"$k$3$H$,$G$-$^$9!#\e(B
+
+@item gnus-simplify-ignored-prefixes
+@vindex gnus-simplify-igonored-prefixes
+\e$B$b$7\e(B @code{gnus-summary-gather-subject-limit} \e$B$r\e(B10\e$B$/$i$$$KDc$/@_Dj$7$?$J\e(B
+\e$B$i$P!"$3$NJQ?t$r2?$+0UL#$N$"$k$b$N$K@_Dj$9$k$3$H$r9M$($k$G$7$g$&\e(B:
+
+@c Written by Michael Ernst <mernst@cs.rice.edu>
+@lisp
+(setq gnus-simplify-ignored-prefixes
+      (concat
+       "\\`\\[?\\("
+       (mapconcat
+        'identity
+        '("looking"
+          "wanted" "followup" "summary\\( of\\)?"
+          "help" "query" "problem" "question"
+          "answer" "reference" "announce"
+          "How can I" "How to" "Comparison of"
+          ;; ...
+          )
+        "\\|")
+       "\\)\\s *\\("
+       (mapconcat 'identity
+                  '("for" "for reference" "with" "about")
+                  "\\|")
+       "\\)?\\]?:?[ \t]*"))
+@end lisp
+
+\e$B$3$N@55,I=8=$K9gCW$9$k$9$Y$F$N8l$O!"\e(B2\e$B$D$NI=Bj$rHf3S$9$kA0$K<h$j=|$+$l$^$9!#\e(B
+
+@item gnus-simplify-subject-functions
+@vindex gnus-simplify-subject-functions
+@code{nil} \e$B$G$J$$$H!"$3$NJQ?t$O\e(B @code{gnus-summary-gather-subject-limit} 
+\e$B$r>e=q$-$7$^$9!#$3$NJQ?t$OJ8;zNs\e(B @code{Subject} \e$B$rH?I|$7$F4JC1$J7A$K$?$I\e(B
+\e$B$jCe$/$?$a$KE,MQ$9$k4X?t$N%j%9%H$G$"$kI,MW$,$"$j$^$9!#\e(B
+
+\e$B$3$N%j%9%H$KF~$l$FLr$KN)$D$h$&$J4X?t$O<!$N$h$&$J$b$N$G$9\e(B:
+
+@table @code
+@item gnus-simplify-subject-re
+@findex gnus-simplify-subject-re
+\e$BA0$NJ}$K$"$k\e(B @samp{Re:} \e$B$r<h$j=|$-$^$9!#\e(B
+
+@item gnus-simplify-subject-fuzzy
+@findex gnus-simplify-subject-fuzzy
+\e$B$"$$$^$$$K4JC1$K$7$^$9!#\e(B
+
+@item gnus-simplify-whitespace
+@findex gnus-simplify-whitespace
+\e$BM>J,$J6uGr\e(B (whitespace) \e$B$r<h$j=|$-$^$9!#\e(B
+@end table
+
+\e$B$b$A$m$s!"$"$J$?<+?H$N4X?t$r=q$/$3$H$b$G$-$^$9!#\e(B
+
+
+@item gnus-summary-gather-exclude-subject
+@vindex gnus-summary-gather-exclude-subject
+\e$BL5B+G{%9%l%C%I=8$a$OI=Bj$N$_$K9T$o$l$^$9$N$G!"FC$K\e(B @samp{} \e$B$d\e(B 
+@samp{(none)}\e$B$N$h$&$JNI$/$"$kI=Bj$N$H$-$O!"B?$/$N4V0c$$$r5/$3$92DG=@-$,\e(B
+\e$B$"$j$^$9!#$3$N>u67$r>/$7$h$/$9$k$?$a$K!"$I$NI=Bj$,=8$a$k2aDx$+$i=|$+$l$k\e(B
+\e$B$+$r7h$a$k@55,I=8=\e(B @code{gnus-summary-gather-exclude-subject} \e$B$r;H$&$3$H\e(B
+\e$B$,$G$-$^$9!#%G%#%U%)%k%H$O\e(B @samp{^ *$\\|^(none)$} \e$B$G$9!#\e(B
+
+
+@item gnus-summary-thread-gathering-funcion
+@vindex gnus-summmary-thread-gathering-function
+Gnus \e$B$O\e(B @code{Subject} \e$B%X%C%@!<$r8+$k$3$H$K$h$C$F%9%l%C%I$r=8$a$^$9!#$3\e(B
+\e$B$l$O!"7k2LE*$KA4$/4X78$NL5$$5-;v$,F1$8\e(B ``\e$B%9%l%C%I\e(B'' \e$B$K4^$^$l$k$3$H$,$"$k\e(B
+\e$B$H$$$&$3$H$G!"$3$l$O:.Mp$N85$G$9!#BeBX<jCJ$O!"9gCW$9$k$b$N$r8+$D$1$k$?$a\e(B
+\e$B$K\e(B @code{References} \e$B%X%C%@!<$K$"$k\e(B @code{Message-ID} \e$B$r$9$Y$FC5$9$3$H$G\e(B
+\e$B$9!#$3$l$O4X78$NL5$$5-;v$,=8$a$i$l$?%9%l%C%I$K4^$^$l$k$3$H$OA4$/L5$$$3$H\e(B
+\e$B$rJ]>Z$7$^$9$,!"$3$o$l$?%K%e!<%:%j!<%@!<$GEj9F$7$?5-;v$OE,@Z$K=8$a$i$l$J\e(B
+\e$B$$$H$$$&$3$H$G$b$"$j$^$9!#A*Br8"$O$"$J$?$K$"$j$^$9\e(B---\e$B1VIB$+%3%l%i$+!#\e(B
+
+@table @code
+@item gnus-gather-threads-by-subject
+@findex gnus-gather-threads-by-subject
+\e$B$3$N4X?t$O%G%#%U%)%k%H$N<}=84X?t$G!"GSB>E*$K\e(B @code{Subject} \e$B$r8+$^$9!#\e(B
+
+@item gnus-gather-threads-by-references
+\e$B$3$N4X?t$OGSB>E*$K\e(B @code{References} \e$B%X%C%@!<$r8+$^$9!#\e(B
+@end table
+
+@code{References} \e$B$K$h$C$F=8$a$k$3$H$r;n$7$F$_$?$$$N$G$"$l$P!"<!$N$h$&$K\e(B
+\e$B$9$k$3$H$,$G$-$^$9\e(B:
+
+@lisp
+(setq gnus-summary-thread-gathering-function
+      'gnus-gather-threads-by-references)
+@end lisp
+
+@end table
+
+
+@node Filling In Threads
+@subsubsection \e$B%9%l%C%I$rKd$a$k\e(B
+
+@table @code
+@item gnus-fetch-old-headers
+@vindex gnus-fetch-old-headers
+\e$B$b$7\e(B @code{nil} \e$B$G$J$$$H!"\e(Bgnus \e$B$O8E$$%9%l%C%I$r$b$C$H8E$$%X%C%@!<\e(B---\e$B4{FI\e(B
+\e$B0u$NIU$$$F$$$k5-;v$N%X%C%@!<\e(B \e$B$r<hF@$9$k$3$H$GBg$-$/$7$h$&$H$7$^$9!#$b$7\e(B
+\e$B$G$-$k$@$1>/$J$$35N,9T$rI=<($7$?$$$1$l$I!"$G$-$k$@$1$?$/$5$s$NHsL)%9%l%C\e(B
+\e$B%I$K@\B3$7$F$*$-$?$$$H$-$O!"$3$NJQ?t$r\e(B @code{some} \e$B$+?t;z$K@_Dj$9$k$3$H\e(B
+\e$B$,$G$-$^$9!#$b$7?t;z$K@_Dj$7$?$H$-$O!"$=$l$h$jB?$$DI2C$N%X%C%@!<$O<hF@$5\e(B
+\e$B$l$^$;$s!#$I$A$i$N>l9g$G$b!"8E$$%X%C%@!<$N<hF@$,F0:n$9$k$N$O!";H$C$F$$$k\e(B
+\e$B%P%C%/%(%s%I\e(B (backend) \e$B$,\e(B overview \e$B%U%!%$%k$r;H$C$F$$$k$+$I$&$+$G$9\e(B---\e$B$3\e(B
+\e$B$l$OIaDL$O\e(B @code{nntp}\e$B!"\e(B@code{nnspool} \e$B$H\e(B @code{nnml} \e$B$G$9!#%9%l%C%I$N%k!<\e(B
+\e$B%H$,%5!<%P!<$K$h$C$F4|8B@Z$l:o=|$5$l$?$H$-$O!"\e(Bgnus \e$B$O$I$&$7$h$&$b$J$$$3\e(B
+\e$B$H$r3P$($F$*$$$F$/$@$5$$!#\e(B
+
+\e$B$3$NJQ?t$O\e(B @code{invisible} \e$B$K@_Dj$9$k$3$H$b$G$-$^$9!#$3$l$O;k3PE*$J8z2L\e(B
+\e$B$O2?$b$"$j$^$;$s$,!"L?Na\e(B @kbd{A T} \e$B$r$h$/;H$&$N$G$"$l$PLr$KN)$D$G$7$g$&\e(B
+(@pxref{Finding the Parent})\e$B!#\e(B
+
+@item gnus-build-sparse-threads
+@vindex gnus-build-sparse-threads
+\e$B8E$$%X%C%@!<$r<hF@$9$k$HCY$/$J$k$3$H$,$"$j$^$9!#F1$8$h$&$JDcDB6b$N8z2L$r\e(B
+\e$BF@$k$?$a$K!"$3$NJQ?t$r\e(B @code{some} \e$B$K@_Dj$9$k$3$H$,$G$-$^$9!#$=$&$9$k$H!"\e(B
+gnus \e$B$OA4$F$N5-;v$N40A4$J\e(B @code{References} \e$B%X%C%@!<$r8+$F!"F1$8%9%l%C%I\e(B
+\e$B$KB0$9$k5-;v$r$D$J$4$&$H$7$^$9!#$3$l$O\e(B gnus \e$B$,5-;v$,%9%l%C%I$+$i<:$o$l$F\e(B
+\e$B$$$k$H?dB,$7$?$H$3$m$N%9%l%C%II=<($K\e(B @dfn{\e$B$:$l\e(B} \e$B$r;D$9$G$7$g$&!#\e(B (\e$B$3$l$i\e(B
+\e$B$N$:$l$OIaDL$N35N,9T$N$h$&$K8=$l$^$9!#$b$7$:$l$rA*Br$7$?$H$-$O!"\e(B gnus \e$B$O\e(B
+\e$B$=$NEv$N5-;v$r<hF@$7$h$&$H$7$^$9!#\e(B) \e$B$3$NJQ?t$,\e(B @code{t} \e$B$G$"$k$H!"\e(Bgnus
+\e$B$OA4$F$N\e(B ``\e$B$:$l\e(B'' \e$B$r%9%l%C%I$rJd40$9$k$N$KLr$KN)$D$+$r9MN8$;$:$KI=<($7$^\e(B
+\e$B$9!#:G8e$K!"$3$NJQ?t$,\e(B @code{more} \e$B$G$"$k$H!"\e(B gnus \e$B$O$I$3$K$b$D$J$,$C$F\e(B
+\e$B$$$J$$;^MU$N$^$P$i$J@a$r@Z$jMn$H$7$^$;$s!#$3$NJQ?t$O%G%#%U%)%k%H$G$O\e(B
+@code{nil} \e$B$G$9!#\e(B
+
+@end table
+
+
+@node More Threading
+@subsection \e$B$b$C$H%9%l%C%I$r\e(B
+
+@table @code
+@item gnus-show-threads
+@vindex gnus-show-threads
+\e$B$3$NJQ?t$,\e(B @code{nil} \e$B$G$"$k$H!"%9%l%C%I$O:n$i$l$:!"$3$3$K$"$k;D$j$N$9$Y\e(B
+\e$B$F$NJQ?t$OA4$/8z2L$,L5$/$J$j$^$9!#%9%l%C%I:n$j$r;_$a$k$H%0%k!<%W$NA*Br$,\e(B
+\e$B>/$7B.$/$J$j$^$9$,!"5-;v$rFI$`$N$,$b$C$HCY$/!"ITJX$K$J$k$3$H$O3N<B$G$9!#\e(B
+
+@item gnus-thread-hide-subtree
+@vindex gnus-thread-hide-subtree
+\e$B$3$l$,\e(B @code{nil} \e$B$G$J$$$H!"$9$Y$F$N%9%l%C%I$O35N,%P%C%U%!$,@8@.$5$l$?$H\e(B
+\e$B$-$K1#$l$^$9!#\e(B
+
+@item gnus-thread-expunge-below
+@vindex gnus-thread-expunge-below
+\e$B$3$N?t;z$h$j>/$J$$Am9gE*%9%3%"\e(B (@code{gnus-thread-score-function}) \e$B$r;}\e(B
+\e$B$D$9$Y$F$N%9%l%C%I$O>C5n$5$l$^$9!#$3$NJQ?t$O%G%#%U%)%k%H$G$O\e(B @code{nil}
+\e$B$G!"$3$l$O$I$N%9%l%C%I$b>C5n$5$l$J$$$H$$$&$3$H$G$9!#\e(B
+
+@item gnus-thread-hide-killed
+@vindex gnus-thread-hide-killed
+\e$B$b$7%9%l%C%I$r:o=|$7$F!"$3$NJQ?t$,\e(B @code{nil} \e$B$G$J$$$H!"I{LZ$O1#$5$l$^$9!#\e(B
+
+@item gnus-thread-ignore-subject
+@vindex gnus-thread-ignore-subject
+\e$B;~!9!"C/$+$,%9%l%C%I$N??Cf$GI=Bj$rJQ99$9$k$3$H$,$"$j$^$9!#$b$7$3$NJQ?t$,\e(B
+@code{nil} \e$B$G$J$$$H!"I=Bj$NJQ99$OL5;k$5$l$^$9!#$b$7\e(B @code{nil} \e$B$@$H!"$3\e(B
+\e$B$l$,%G%#%U%)%k%H$G$9$,!"I=Bj$NJQ99$r$9$k$HJL$N%9%l%C%I$K$J$j$^$9!#\e(B
+
+@item gnus-thread-indent-level
+@vindex gnus-thread-indent-level
+\e$B$3$N?t;z$OI{%9%l%C%I$,$I$l$/$i$$;z2<$2\e(B (indent) \e$B$5$l$k$Y$-$+$r7h$a$^$9!#\e(B
+\e$B%G%#%U%)%k%H$O\e(B4\e$B$G$9!#\e(B
+
+@end table
+
+
+@node Low-Level Threading
+@subsection \e$BDc%l%Y%k$K$*$1$k%9%l%C%I:n@.\e(B
+
+@table @code
+
+@item gnus-parse-headers-hook
+@vindex gnus-parse-headers-hook
+\e$B$9$Y$F$N%X%C%@!<$r2r@O$9$kA0$K<B9T$5$l$k%U%C%/$G$9!#%G%#%U%)%k%H$NCM$O\e(B
+@code{(gnus-set-summary-default-charset)} \e$B$G$9!#$3$l$OJQ?t\e(B 
+@code{gnus-newsgroup-default-charset-alist} \e$B$G;XDj$5$l$F$$$kCM$+$i35N,%P%C\e(B
+\e$B%U%!$N\e(B @code{default-mime-charset} \e$B$r@_Dj$7$^$9!#\e(B
+
+@item gnus-alter-header-function
+@vindex gnus-alter-header-function
+\e$B$3$l$,\e(B @code{nil} \e$B$G$J$$$H!"%X%C%@!<9=B$$N8r49$r2DG=$K$9$k$h$&$K$3$N4X?t\e(B
+\e$B$,8F$P$l$^$9!#4X?t$O0l$D$N0z?t!"5-;v%X%C%@!<$N%Y%/%H%k!"$H$H$b$K8F$P$l!"\e(B
+\e$B$=$l$,2?$i$+$NJ}K!$G8r49$5$l$^$9!#Nc$($P!"\e(B(\e$B@\F,8l$d$=$NB>$N$b$N$rIU$12C\e(B
+\e$B$($k$3$H$K$h$k\e(B) \e$BBN7OE*$JJ}K!$G\e(B @code{Message-ID} \e$B$r8r49$9$k%a!<%k$+$i%K%e!<\e(B
+\e$B%:$X$N%2!<%H%&%'%$$,$"$k>l9g!"\e(B@code{Message-ID} \e$B$,$b$C$H0UL#$N$"$k$b$N$K\e(B
+\e$B$9$k$?$a$K!"$3$NJQ?t$r@_Dj$7$F85$KLa$9$3$H$,$G$-$^$9!#$3$l$O0l$D$NNc$G$9\e(B:
+
+@lisp
+(setq gnus-alter-header-function 'my-alter-message-id)
+
+(defun my-alter-message-id (header)
+  (let ((id (mail-header-id header)))
+    (when (string-match
+           "\\(<[^<>@@]*\\)\\.?cygnus\\..*@@\\([^<>@@]*>\\)" id)
+      (mail-header-set-id
+       (concat (match-string 1 id) "@@" (match-string 2 id))
+       header))))
+@end lisp
+
+@end table
+
+
+@node Thread Commands
+@subsection \e$B%9%l%C%I$NL?Na\e(B
+@cindex thread commands
+
+@table @kbd
+
+@item T k
+@itemx M-C-k
+@kindex T k (\e$B35N,\e(B)
+@kindex M-C-k (\e$B35N,\e(B)
+@findex gnus-summary-kill-thread
+\e$B8=:_$N\e(B (\e$BI{\e(B) \e$B%9%l%C%I$K4{FI$N0u$rIU$1$^$9\e(B
+(@code{gnus-summary-kill-thread})\e$B!#$b$7@\F,0z?t$,@5$G$"$k$H!"Be$o$j$K$9\e(B
+\e$B$Y$F$N0u$r<h$j=|$-$^$9!#@\F,0z?t$,Ii$G$"$k$H!"Be$o$j$K5-;v$r2D;k$K$7$^$9!#\e(B
+
+@item T l
+@itemx M-C-l
+@kindex T l (\e$B35N,\e(B)
+@kindex M-C-l (\e$B35N,\e(B)
+@findex gnus-summary-lower-thread
+\e$B8=:_$N\e(B (\e$BI{\e(B) \e$B%9%l%C%I$N%9%3%"$r2<$2$^$9\e(B
+(@code{gnus-summary-lower-thread})\e$B!#\e(B
+
+@item T i
+@kindex T i (\e$B35N,\e(B)
+@kindex gnus-summary-raise-thread
+\e$B8=:_$N\e(B (\e$BI{\e(B) \e$B%9%l%C%I$N%9%3%"$r>e$2$^$9\e(B
+(@code{gnus-summary-raise-thread})\e$B!#\e(B
+
+@item T #
+@kindex T # (\e$B35N,\e(B)
+@findex gnus-uu-mark-thread
+\e$B%W%m%;%90u$r8=:_$N\e(B (\e$BI{\e(B) \e$B%9%l%C%I$KIU$1$^$9\e(B (@code{gnus-uu-mark-thread})\e$B!#\e(B
+
+@item T M-#
+@kindex T M-# (\e$B35N,\e(B)
+@findex gnus-uu-unmark-thread
+\e$B8=:_$N\e(B (\e$BI{\e(B) \e$B%9%l%C%I$+$i%W%m%;%90u$r<h$j=|$-$^$9\e(B
+(@code{gnus-uu-unmark-thread})\e$B!#\e(B
+
+@item T T
+@kindex T T (\e$B35N,\e(B)
+@findex gnus-summary-toggle-threads
+\e$B%9%l%C%II=<($r@Z$jBX$($^$9\e(B (@code{gnus-summary-toggle-threads})\e$B!#\e(B
+
+@item T s
+@kindex T s (\e$B35N,\e(B)
+@findex gnus-summary-show-thread
+\e$B$b$7$"$l$P!"8=:_$N5-;v$N2<$K1#$l$F$$$k%9%l%C%I$rI=<($7$^$9\e(B
+(@code{gnus-summary-show-thread})\e$B!#\e(B
+
+@item T h
+@kindex T h (\e$B35N,\e(B)
+@findex gnus-summary-hide-thread
+\e$B8=:_$N\e(B (\e$BI{\e(B) \e$B%9%l%C%I$r1#$7$^$9\e(B (@code{gnus-summary-hide-thread})\e$B!#\e(B
+
+@item T S
+@kindex T S (\e$B35N,\e(B)
+@findex gnus-summary-show-all-threads
+\e$B$9$Y$F$N1#$5$l$F$$$k%9%l%C%I$rI=<($7$^$9\e(B
+(@code{gnus-summary-show-all-threads})\e$B!#\e(B
+
+@item T H
+@kindex T H (\e$B35N,\e(B)
+@findex gnus-summary-hide-all-threads
+\e$B$9$Y$F$N%9%l%C%I$r1#$7$^$9\e(B (@code{gnus-summary-hide-all-threads})\e$B!#\e(B
+
+@item T t
+@kindex T t (\e$B35N,\e(B)
+@findex gnus-summary-rethread-current
+\e$B8=:_$N5-;v$N%9%l%C%I$r$b$&0lEY:n$jD>$7$^$9\e(B
+(@code{gnus-summary-rethread-current})\e$B!#\e(B \e$B$3$l$O35N,%P%C%U%!$,%9%l%C%II=\e(B
+\e$B<($5$l$F$$$J$$$H$-$G$bF0:n$7$^$9!#\e(B
+
+@item T ^
+@kindex T ^ (\e$B35N,\e(B)
+@findex gnus-summary-reparent-thread
+\e$B8=:_$N5-;v$r0uIU$-\e(B (\e$B$b$7$/$OA0$N\e(B) \e$B5-;v$N;R5-;v$K$7$^$9\e(B
+(@code{gnus-summary-reparent-thread})\e$B!#\e(B
+
+@end table
+
+\e$B0J2<$NL?Na$O%9%l%C%I0\F0L?Na$G$9!#$3$l$i$O$9$Y$F?tCM@\F,0z?t$r<u$1IU$1$^\e(B
+\e$B$9!#\e(B
+
+@table @kbd
+
+@item T n
+@kindex T n (\e$B35N,\e(B)
+@findex gnus-summary-next-thread
+\e$B<!$N%9%l%C%I$K0\F0$7$^$9\e(B (@code{gnus-summary-next-thread})\e$B!#\e(B
+
+@item T p
+@kindex T p (\e$B35N,\e(B)
+@findex gnus-summary-prev-thread
+\e$BA0$N%9%l%C%I$K0\F0$7$^$9\e(B (@code{gnus-summary-prev-thread})\e$B!#\e(B
+
+@item T d
+@kindex T d (\e$B35N,\e(B)
+@findex gnus-summary-down-thread
+\e$B%9%l%C%I$r9_2<$7$^$9\e(B (@code{gnus-summary-down-thread})\e$B!#\e(B
+
+@item T u
+@kindex T u (\e$B35N,\e(B)
+@findex gnus-summary-up-thread
+\e$B%9%l%C%I$r>e>:$7$^$9\e(B (@code{gnus-summary-up-thread})\e$B!#\e(B
+
+@item T o
+@kindex T o (\e$B35N,\e(B)
+@findex gnus-summary-top-thread
+\e$B%9%l%C%I$ND:>e$K0\F0$7$^$9\e(B (@code{gnus-summary-top-thread})\e$B!#\e(B
+@end table
+
+@vindex gnus-thread-operation-ignore-subject
+\e$B%9%l%C%I$r:n@.$9$k$H$-$KI=Bj$rL5;k$9$k$H!"<+A3$K%9%l%C%I$K$O$$$/$D$+$N0c$C\e(B
+\e$B$?I=Bj$,$"$k$3$H$K$J$j$^$9!#$=$l$+$i\e(B `T k'
+(@code{gnus-summary-kill-thread}) \e$B$N$h$&$JL?Na$rH/$9$k$H$-$K!"A4BN$N%9%l%C\e(B
+\e$B%I$r:o=|$9$k$N$G$O$J$/!"8=:_$N5-;v$HF1$8I=Bj$r;}$DItJ,$@$1$r:o=|$7$?$$$H\e(B
+\e$B$-$,$"$k$+$b$7$l$^$;$s!#$b$7$3$NH/A[$,NI$$$H;W$&$N$G$"$l$P!"\e(B
+@code{gnus-thread-operation-ignore-subject} \e$B$r$$$8$/$k$3$H$,$G$-$^$9!#$3\e(B
+\e$B$l$,\e(B @code{nil} \e$B$G$J$$$H\e(B (\e$B$3$l$,%G%#%U%)%k%H$G$9$,\e(B) \e$B!"%9%l%C%I$NL?Na$r<B\e(B
+\e$B9T$7$F$$$k$H$-$KI=Bj$OL5;k$5$l$^$9!#$3$NJQ?t$,\e(B @code{fuzzy} \e$B$G$"$k$H!"$"\e(B
+\e$B$$$^$$$KEy$7$$I=Bj$r;}$D5-;v$@$1$,4^$^$l$^$9\e(B (@pxref{Fuzzy Matching})\e$B!#\e(B
+
+
+@node Sorting
+@section \e$BJB$SBX$(\e(B
+
+@findex gnus-thread-sort-by-total-score
+@findex gnus-thread-sort-by-date
+@findex gnus-thread-sort-by-score
+@findex gnus-thread-sort-by-subject
+@findex gnus-thread-sort-by-author
+@findex gnus-thread-sort-by-number
+@vindex gnus-thread-sort-functions
+\e$B$b$7%9%l%C%I$N35N,I=<($r;H$C$F$$$k$N$G$"$l$P!"4X?t$N%j%9%H$G$"$k\e(B
+@code{gnus-thread-sort-functions} \e$B$r@_Dj$9$k$3$H$G%9%l%C%I$rJB$SBX$($k$3\e(B
+\e$B$H$,$G$-$^$9!#%G%#%U%)%k%H$G$O!"JB$SBX$($O5-;vHV9f$K$h$C$F$J$5$l$^$9!#4{\e(B
+\e$B$K:n$i$l$F$$$kJB$SBX$(=R8l4X?t$O\e(B @code{gnus-thread-sort-by-number}\e$B!"\e(B
+@code{gnus-thread-sort-by-author}\e$B!"\e(B @code{gnus-thread-sort-by-subject}\e$B!"\e(B
+@code{gnus-thread-sort-by-date}\e$B!"\e(B @code{gnus-thread-sort-by-score}\e$B!"$H\e(B 
+@code{gnus-thread-sort-by-total-score} \e$B$G$9!#\e(B
+
+
+\e$B$=$l$>$l$N4X?t$O\e(B2\e$B$D$N%9%l%C%I$r$H$j!":G=i$N%9%l%C%I$,B>$N%9%l%C%I$h$j@h\e(B
+\e$B$KJB$SBX$($i$l$k$Y$-$G$"$l$P!"\e(B@code{nil} \e$B$G$J$$CM$r$+$($7$^$9!#IaDL!"JB\e(B
+\e$B$SBX$($OK\Ev$O$=$l$>$l$N%9%l%C%I$N%k!<%H$r8+$k$@$1$K$h$j$J$5$l$k$3$H$K5$\e(B
+\e$B$rIU$1$F$/$@$5$$!#$b$7\e(B2\e$B$D0J>e$N4X?t$r;H$&>l9g!"M%@hE*JB$SBX$(%-!<$O%j%9\e(B
+\e$B%H$N:G8e$N4X?t$G$9!#$*$=$i$/$$$D$b\e(B @code{gnus-thread-sort-by-number} \e$B$r\e(B
+\e$BJB$SBX$(4X?t$N%j%9%H\e(B---\e$B:G=i$,9%$^$7$$\e(B \e$B$KF~$l$F$*$/$Y$-$G$7$g$&!#$3$l$OB>\e(B
+\e$B$NJB$SBX$(4p=`$K4X$7$FEy$7$$%9%l%C%I$O5-;v$,>e$,$C$F$$$/=gHV$KI=<($5$l$k\e(B
+\e$B$3$H$rJ]>Z$7$^$9!#\e(B
+
+\e$B%9%3%"!"I=Bj!"$=$7$F:G8e$KHV9f!"$N=g$KJB$SBX$($?$$$N$G$"$l$P!"<!$N$h$&$K\e(B
+\e$B$G$-$^$9\e(B:
+
+@lisp
+(setq gnus-thread-sort-functions
+      '(gnus-thread-sort-by-number
+        gnus-thread-sort-by-subject
+        gnus-thread-sort-by-total-score))
+@end lisp
+
+\e$B:G9b%9%3%"$N%9%l%C%I$,35N,%P%C%U%!$N:G=i$KI=<($5$l$^$9!#%9%l%C%I$,F1$8%9\e(B
+\e$B%3%"$N>l9g$O!"1Q;z=g$KJB$S$+$($i$l$^$9!#%9%3%"$HI=Bj$,F1$8%9%l%C%I$OHV9f\e(B
+\e$B$GJB$SBX$($i$l!"\e(B(\e$BIaDL$O\e(B) \e$B5-;v$,E~Ce$7$?=gHV$K$J$j$^$9!#\e(B
+
+\e$B%9%3%"!"E~Ce$N5U=g$KJB$SBX$($?$$$N$G$"$l$P!"<!$N$h$&$K$G$-$^$9\e(B:
+
+@lisp
+(setq gnus-thread-sort-functions
+      '((lambda (t1 t2)
+          (not (gnus-thread-sort-by-number t1 t2)))
+        gnus-thread-sort-by-score))
+@end lisp
+
+@vindex gnus-thread-score-function
+\e$BJQ?t\e(B @code{gnus-thread-score-function} (\e$B%G%#%U%)%k%H$O\e(B @code{+}) \e$B$KF~$C\e(B
+\e$B$F$$$k4X?t$O%9%l%C%I$NAm9g$N%9%3%"$r7W;;$9$k$?$a$KMQ$$$i$l$^$9!#Lr$KN)$D\e(B
+\e$B4X?t$O!"\e(B@code{max}\e$B!"\e(B @code{min}\e$B!"$b$7$/$O\e(B2\e$B>h!"$b$7$/$O$"$J$?$N9%4q?4$r$/\e(B
+\e$B$9$0$k$h$&$J2?$+$G$7$g$&!#\e(B
+
+@findex gnus-article-sort-functions
+@findex gnus-article-sort-by-date
+@findex gnus-article-sort-by-score
+@findex gnus-article-sort-by-subject
+@findex gnus-article-sort-by-author
+@findex gnus-article-sort-by-number
+\e$B2?$+4qL/$JM}M3$J$I$G%9%l%C%II=<($r;H$C$F$$$J$$$N$J$i!"JQ?t\e(B
+@code{gnus-article-sort-functions} \e$B$r$$$8$/$kI,MW$,$"$j$^$9!#$3$l$O\e(B
+@code{gnus-thread-sort-functions} \e$B$HHs>o$K;w$F$$$^$9$,!"5-;v$NHf3S$K$O>/!9\e(B
+\e$B0c$C$?4X?t$r;H$$$^$9!#;HMQ2DG=$JJB$SBX$(=R8l4X?t$O\e(B
+@code{gnus-article-sort-by-number}\e$B!"\e(B @code{gnus-article-sort-by-author}\e$B!"\e(B
+@code{gnus-article-sort-by-subject}\e$B!"\e(B @code{gnus-article-sort-by-date}\e$B!"\e(B
+\e$B$=$7$F\e(B @code{gnus-article-sort-by-score} \e$B$G$9!#\e(B
+
+\e$B%9%l%C%I$r;H$C$F$$$J$$I=Bj$N35N,I=<($rJB$SBX$($?$$$N$G$"$l$P!"<!$N$h$&$J\e(B
+\e$B$3$H$r$9$k$3$H$,$G$-$^$9\e(B:
+
+@lisp
+(setq gnus-article-sort-functions
+      '(gnus-article-sort-by-number
+        gnus-article-sort-by-subject))
+@end lisp
+
+
+
+@node Asynchronous Fetching
+@section \e$BHsF14|5-;v<hF@\e(B
+@cindex asynchronous article fetching
+@cindex article pre-fetch
+@cindex pre-fetch
+
+\e$B$b$7%K%e!<%:$r1s$/$N\e(B @sc{nntp} \e$B%5!<%P!<$+$i<hF@$7$F$$$k$N$G$"$l$P!"%M%C\e(B
+\e$B%H%o!<%/$NBT$A;~4V$,5-;v$rFI$`$3$H$O9|$N@^$l$k$3$H$K$7$F$7$^$&$+$b$7$l$^\e(B
+\e$B$;$s!#\e(B@kbd{n} \e$B$r2!$7$F<!$N5-;v$,8=$l$k$^$G!"$7$P$i$/BT$?$J$1$l$P$J$j$^$;\e(B
+\e$B$s!#$I$&$7$FA0$N5-;v$rFI$s$G$$$k4V$K\e(B gnus \e$B$,@h$K9T$C$F5-;v$r<hF@$7$J$$$N\e(B
+\e$B$G$7$g$&\e(B? \e$BK\Ev$K!"$=$&$7$?J}$,NI$$$N$G$O$J$$$N$G$7$g$&$+!#\e(B
+
+\e$B$^$:!"$$$/$D$+$N7Y9p$G$9!#HsF14|5-;v<hF@!"FC$K\e(B gnus \e$B$,$=$l$r9T$C$F$$$kJ}\e(B
+\e$BK!$K$O$$$/$D$+$NMn$H$77j$,$"$j$^$9!#\e(B
+
+\e$BNc$($P!"$"$J$?$OC;$$5-;v\e(B1\e$B$rFI$s$G$$$F!"5-;v\e(B2\e$B$O$H$F$bD9$/$"$J$?$O$=$l$rFI\e(B
+\e$B$`$3$H$K$O6=L#$,L5$$$H$7$^$7$g$&!#\e(BGnus \e$B$O$3$N$3$H$O$o$+$i$J$$$N$G!"@h$K\e(B
+\e$B9T$C$F5-;v\e(B2\e$B$r<hF@$7$^$9!#$"$J$?$O5-;v\e(B3\e$B$rFI$`$3$H$K$7$^$9$,!"\e(Bgnus \e$B$O5-;v\e(B2
+\e$B$r<hF@$7$F$$$k:GCf$J$N$G!"@\B3$OIu:?$5$l$F$$$^$9!#\e(B
+
+\e$B$3$N>u67$rHr$1$k$?$a$K!"\e(Bgnus \e$B$O%5!<%P!<$K\e(B2\e$B$D$N\e(B (\e$B$=$l$O\e(B2\e$B$H?t$($F$/$@$5$$\e(B)
+\e$B@\B3$rD%$k$3$H$,$G$-$^$9!#$3$l$O$"$^$j$7$FNI$$$3$H$G$O$J$$$H9M$($k?M$b$$\e(B
+\e$B$k$G$7$g$&$,!";d$K$O<B:]$NBeBX<jCJ$,8+$D$+$i$J$$$N$G$9!#M>J,$J@\B3$r$9$k\e(B
+\e$B$?$a$K$O2?$i$+$N;~4V$,$+$+$j$^$9$N$G!"\e(Bgnus \e$B$N5/F0$OCY$/$J$j$^$9!#\e(B
+
+Gnus \e$B$O$"$J$?$,FI$`$G$"$m$&5-;v$h$j$b$?$/$5$s$N5-;v$r<hF@$7$^$9!#$3$l$O\e(B
+\e$B5-;v$N@h\e(B-\e$B<hF@$r;H$o$J$$$H$-$h$j$b!"$"$J$?$N%^%7%s$H\e(B @sc{nntp} \e$B%5!<%P!<4V\e(B
+\e$B$K$b$C$HIi2Y$,$+$+$k$H$$$&$3$H$K$J$k$G$7$g$&!#%5!<%P!<<+?H$b$b$C$HIi2Y$,\e(B
+\e$B$+$+$k$h$&$K$J$j$^$9\e(B---\e$BM>J,$J5-;v$NMW5a$H!"M>J,$J@\B3$G!#\e(B
+
+\e$B$O$$!"$3$l$GK\Ev$O$3$N$h$&$J$3$H$r$9$Y$-$GL5$$;v$,J,$+$C$?$G$7$g$&\e(B... \e$BK\\e(B
+\e$BEv$K$=$&$7$?$$$H;W$o$J$$8B$j$O!#\e(B
+
+@vindex gnus-asynchronous
+\e$B$3$l$,J}K!$G$9\e(B:  @code{gnus-asynchronous} \e$B$r\e(B @code{t} \e$B$K@_Dj$7$F$/$@$5$$!#\e(B
+\e$B;D$j$N$3$H$O<+F0E*$K5/$3$j$^$9!#\e(B
+
+@vindex gnus-use-article-prefetch
+@code{gnus-use-article-prefetch} \e$B$r@_Dj$9$k$3$H$K$h$j!"$I$l$/$i$$$N5-;v\e(B
+\e$B$,@h$K<hF@$5$l$k$Y$-$+$rA`:n$9$k$3$H$,$G$-$^$9!#$3$l$O%G%#%U%)%k%H$G$O\e(B30
+\e$B$G!"%0%k!<%W$N5-;v$rFI$s$G$$$k$H$-$K!"%P%C%/%(%s%I$,<!$N\e(B30\e$B5-;v$r@h\e(B-\e$B<hF@\e(B
+\e$B$9$k$H$$$&$3$H$G$9!#$3$NJQ?t$,\e(B @code{t} \e$B$G$"$k$H!"%P%C%/%(%s%I$O@)8BL5$/\e(B
+\e$B<hF@$G$-$k$9$Y$F$N5-;v$r@h\e(B-\e$B<hF@$7$h$&$H$7$^$9!#$3$l$,\e(B @code{nil} \e$B$G$"$k\e(B
+\e$B$H!"@h\e(B-\e$B<hF@$O9T$o$l$^$;$s!#\e(B
+
+@vindex gnus-async-prefetch-article-p
+@findex gnus-async-read-p
+\e$B$*$=$i$/!"@h\e(B-\e$B<hF@$r$7$?$/$J$$5-;v$,$$$/$D$+$"$k$G$7$g$&\e(B---\e$BNc$($P!"4{FI5-\e(B
+\e$B;v!#JQ?t\e(B @code{gnus-async-prefetch-article-p} \e$B$O5-;v$,@h$K<hF@$5$l$k$Y$-\e(B
+\e$B$+$I$&$+$r@)8f$7$^$9!#$3$N4X?t$OLdBj$N5-;v$,@h\e(B-\e$B<hF@$5$l$k$Y$-$G$"$l$P\e(B
+@code{nil} \e$B$G$J$$CM$r$+$($9$Y$-$G$9!#%G%#%U%)%k%H$O\e(B
+@code{gnus-async-read-p} \e$B$G!"$=$l$O4{FI5-;v$K$O\e(B @code{nil} \e$B$r$+$($7$^$9!#\e(B
+\e$B$3$N4X?t$O5-;v$N%G!<%?9=B$$rM#0l$N0z?t$H$7$F8F$P$l$^$9!#\e(B
+
+\e$BNc$($P!"$b$7\e(B100\e$B9T$h$j$bC;$$L$FI5-;v$N$_$r@h$K<hF@$7$?$$$N$G$"$l$P!"<!$N\e(B
+\e$B$h$&$K$G$-$^$9\e(B:
+
+@lisp
+(defun my-async-short-unread-p (data)
+  "Return non-nil for short, unread articles."
+  (and (gnus-data-unread-p data)
+       (< (mail-header-lines (gnus-data-header data))
+          100)))
+
+(setq gnus-async-prefetch-article-p 'my-async-short-unread-p)
+@end lisp
+
+\e$B$3$l$i$N4X?t$O2?EY$b2?EY$b8F$P$l$^$9$N$G!"\e(Bgnus \e$B$rCY$/$7$9$.$J$$$h$&$K!"\e(B
+\e$BC;$/4EH~$G$"$k$N$,9%$^$7$$$G$9!#$*$=$i$/!"$3$N$h$&$J$b$N$r%P%$%H%3%s%Q%$\e(B
+\e$B%k\e(B(byte-compile) \e$B$9$k$N$ONI$$CeA[$G$7$g$&!#\e(B
+
+@vindex gnus-prefetched-article-deletion-strategy
+\e$B5-;v$OHsF14|%P%C%U%!$+$iCY$+$lAa$+$l:o=|$5$l$J$1$l$P$J$j$^$;$s!#\e(B
+@code{gnus-prefetched-article-deletion-strategy} \e$B$O$$$D5-;v$r:o=|$9$k$+\e(B
+\e$B$r;XDj$7$F$$$^$9!#$3$l$O0J2<$NMWAG$r4^$`$h$&$J%j%9%H$G$9\e(B:
+
+@table @code
+@item read
+\e$B5-;v$,FI$^$l$?$H$-$K:o=|$7$^$9!#\e(B
+
+@item exit
+\e$B%0%k!<%W$rH4$1$?$H$-$K5-;v$r:o=|$7$^$9!#\e(B
+@end table
+
+\e$B%G%#%U%)%k%H$NCM$O\e(B @code{(read exit)} \e$B$G$9!#\e(B
+
+@vindex gnus-use-header-prefetch
+@code{gnus-use-header-prefetch} \e$B$,\e(B @code{nil} \e$B$G$J$$$H!"<!$N%0%k!<%W$+$i\e(B
+\e$B5-;v$r@h$K<hF@$7$^$9!#\e(B
+
+
+@node Article Caching
+@section \e$B5-;v$N%-%c%C%7%e\e(B
+@cindex article caching
+@cindex caching
+
+\e$B$b$7\e(B @emph{\e$BHs>o$K\e(B} \e$BCY$$\e(B @sc{nntp} \e$B@\B3$G$"$k$J$i$P!"5-;v%-%c%C%7%e$r$9$k\e(B
+\e$B$3$H$r9M$($k$+$b$7$l$^$;$s!#$=$&$9$k$H!"$=$l$>$l$N5-;v$O$"$J$?$N%[!<%`%G%#\e(B
+\e$B%l%/%H%j$N2<$K%m!<%+%k$KN/$a$i$^$9!#4{$K?dB,$5$l$F$$$k$+$bCN$l$^$;$s$,!"\e(B
+\e$B$3$l$O\e(B @emph{\e$B5pBg$J\e(B} \e$B%G%#%9%/%9%Z!<%9$r?)$$!"\e(Bi\e$B%N!<%I$bHs>o$KB.$/?)$$$D$V\e(B
+\e$B$92DG=@-$,$"$k$?$a!"$=$l$O$"$J$?$NF,$r1K$,$;$k;v$K$J$k$+$b$7$l$^$;$s!#\e(B
+\e$B%&%)%C%+$NCf$G!#\e(B
+
+\e$B$G$bCm0U?<$/;H$o$l$l$P!"$=$l$O5-;v$rJ]B8$9$k4JC1$JJ}K!$K$J$jF@$^$9!#\e(B
+
+@vindex gnus-use-long-file-name
+@vindex gnus-cache-directory
+@vindex gnus-use-cache
+\e$B%-%c%C%7%e$r<B9T$9$k$?$a$K$O!"\e(B@code{gnus-use-cache} \e$B$r\e(B @code{t} \e$B$K@_Dj$7\e(B
+\e$B$^$9!#%G%#%U%)%k%H$G$O!"$9$Y$F$N2D;k$^$?$OJ]N1$H$7$F0u$NIU$$$F$$$k5-;v$O\e(B
+\e$B%m!<%+%k$N%-%c%C%7%e$KJ#<L$5$l$^$9!#$3$N%-%c%C%7%e$,J?$i$J9=B$$+3,AXE*$G\e(B
+\e$B$"$k$+$O!"$$$D$b$I$*$j!"JQ?t\e(B @code{gnus-use-long-file-name} \e$B$G@)8f$5$l$^\e(B
+\e$B$9!#\e(B
+
+\e$B2D;k$+J]N15-;v$r:FA*Br$7$?>l9g$O!"%5!<%P!<$NBe$o$j$K%-%c%C%7%e$+$i<hF@$5\e(B
+\e$B$l$^$9!#%-%c%C%7%e$K$"$k5-;v$O4|8B@Z$l:o=|$5$l$^$;$s$N$G!"5-;v$,B0$7$F$$\e(B
+\e$B$k$H$3$m$K;D$7$?$^$^$G5-;v$rJ]B8$9$kJ}K!$H$7$F;H$&;v$,$G$-$k$+$b$7$l$^$;\e(B
+\e$B$s!#J]B8$7$?$$5-;v$r$9$Y$FJ]N1$N0u$rIU$1$F!"8e$O?4G[$OMW$j$^$;$s!#\e(B
+
+\e$B5-;v$K4{FI$N0u$,IU$$$?$H$-$K!"$=$l$O%-%c%C%7%e$+$i:o=|$5$l$k$N$G$7$g$&$+!#\e(B
+
+@vindex gnus-cache-remove-articles
+@vindex gnus-cache-enter-articles
+\e$B%-%c%C%7%e\e(B \e$B$XF~$k\e(B/\e$B$+$i:o=|$5$l$k\e(B \e$B$OJQ?t\e(B @code{gnus-cache-enter-articles}
+\e$B$H\e(B @code{gnus-cache-remove-articles} \e$B$K$h$C$F@)8f$5$l$^$9!#$3$l$i$ON>J}\e(B
+\e$B$H$b%7%s%\%k$N%j%9%H$G$9!#A0<T$O%G%#%U%)%k%H$G$O\e(B @code{(ticked dormant)}
+\e$B$G!"2D;k$HJ]N15-;v$O%-%c%C%7%e$KF~$l$i$l$k$H$$$&;v$G$9!#8e<T$O%G%#%U%)%k\e(B
+\e$B%H$G$O\e(B @code{(read)} \e$B$G!"4{FI$N0u$,IU$$$?5-;v$O%-%c%C%7%e$+$i:o=|$5$l$k\e(B
+\e$B$H$$$&;v$G$9!#$*$=$i$/$3$l$i$N\e(B2\e$B$D$N%j%9%H$O\e(B @code{ticked}\e$B!"\e(B
+@code{dormant}\e$B!"\e(B@code{unread} \e$B$H\e(B @code{read} \e$B$+$i$J$k$G$7$g$&!#\e(B
+
+@findex gnus-jog-cache
+\e$B$=$l$G!"$I$&$d$C$FBgNL$N5-;v<hF@$HCyC_<B8=$5$l$k$N$G$7$g$&$+!#L?Na\e(B
+@code{gnus-jog-cache} \e$B$OA4$F$N9XFI%0%k!<%W$KBP$7$F!"$9$Y$F$NL$FI5-;v$rMW\e(B
+\e$B5a$7!"%9%3%"$rIU$1!"%-%c%C%7%e$KJ]B8$7$^$9!#$3$NL?Na$r<B:]$K!"<B:]$K<B:]\e(B
+\e$B$K<B:]$K!";H$&$N$O!"\e(B 1) @sc{nntp} \e$B%5!<%P!<$H$N@\B3$,K\Ev$K!"K\Ev$K!"K\Ev\e(B
+\e$B$KCY$/\e(B 2)\e$BK\Ev$K!"K\Ev$K!"K\Ev$K5pBg$J%G%#%9%/$r;}$C$F$$$k$H$-$@$1$K$9$k\e(B
+\e$B$Y$-$G$9!#$3$l$O??LLL\$K$$$C$F$$$^$9!#%@%&%s%m!<%I$5$l$k5-;v$N?t$r>/$J$/\e(B
+\e$B$9$k0l$D$NJ}K!$O!"M_$7$/$J$$5-;v$N%9%3%"$rDc$/$7!"4{FI$N0u$rIU$1$k;v$G$9!#\e(B
+\e$B$=$&$7$?>l9g!"$=$l$i$O$3$NL?Na$G$O%@%&%s%m!<%I$5$l$^$;$s!#\e(B
+
+@vindex gnus-uncacheable-groups
+\e$B$$$/$D$+$N%0%k!<%W$G$O%-%c%C%7%e$r$7$?$/$J$$$H$$$&$N$ONI$/$"$k;v$G$9!#Nc\e(B
+\e$B$($P!"\e(B@code{nnml} \e$B%a!<%k%G%#%l%/%H%j!<$,%[!<%`%G%#%l%/%H%j!<$N2<$K$"$l$P!"\e(B
+\e$B$=$l$r$"$J$?$N%[!<%`%G%#%l%/%H%j!<$N2<$NJL$N>l=j$K%-%c%C%7%e$9$k$N$O0UL#\e(B
+\e$B$NL5$$;v$G$9!#$"$J$?$,\e(B2\e$BG\$NMFNL$r;H$&;v$,NI$$$H46$8$J$$8B$j$O!#%-%c%C%7%e\e(B
+\e$B$r@)8B$9$k$?$a$K!"@55,I=8=\e(B @code{gnus-uncacheable-groups} \e$B$rNc$($P\e(B
+@samp{^nnml} \e$B$H@_Dj$7$F$/$@$5$$!#$3$NJQ?t$O%G%#%U%)%k%H$G$O\e(B @code{nil} 
+\e$B$G$9!#\e(B
+
+@findex gnus-cache-generate-nov-databases
+@findex gnus-cache-generate-active
+@vindex gnus-cache-active-file
+\e$B%-%c%C%7%e$O$I$N5-;v$,4^$^$l$F$$$k$+$N>pJs$r8=>u%U%!%$%k\e(B (active file) 
+(@code{gnus-cache-active-file}) \e$B$KN/$a$^$9!#$3$N%U%!%$%k\e(B (\e$B$b$7$/$O%-%c%C\e(B
+\e$B%7%e$NB>$NItJ,\e(B) \e$B$,2?$i$+$NM}M3$G$0$A$c$0$A$c$K$J$C$F$7$^$C$?>l9g!"\e(Bgnus
+\e$B$OJ*;v$r@5$7$/$9$k$?$a$K\e(B2\e$B$D$N4X?t$r$*4+$a$7$^$9!#\e(B @kbd{M-x
+gnus-cache-generate-nov-databases} \e$B$O$9$Y$F$N\e(B @sc{nov} \e$B%U%!%$%k$r\e(B (\e$B:F\e(B)
+\e$B:n@.$7!"\e(B@kbd{gnus-cache-generate-active} \e$B$O\e(B \e$B8=>u%U%!%$%k$r\e(B (\e$B:F\e(B) \e$B:n@.$7$^\e(B
+\e$B$9!#\e(B
+
+
+@node Persistent Articles
+@section \e$B1JB35-;v\e(B
+@cindex persistent articles
+\e$B5-;v$N%-%c%C%7%e$H6a$$4X78$K$"$k$b$K!"\e(B@dfn{\e$B1JB35-;v\e(B} \e$B$,$"$j$^$9!#<B:]!"\e(B
+\e$B$=$l$O%-%c%C%7%e$NJL$N8+J}$G!";d$N0U8+$G$O$=$NJ}$,$b$C$HLr$KN)$A$^$9!#\e(B
+
+\e$BNc$($P!"%K%e!<%:%0%k!<%W$rFI$s$G$$$F!"$=$N$^$^1J1s$KJ]B8$7$FHkB"$7$?$$!"\e(B
+\e$B$$$/$D$+$N2ACM$"$kJu@P$K=P2q$C$?$H$7$^$7$g$&!#IaDL$O$=$l$r%U%!%$%k$KJ]B8\e(B
+\e$B$7$^$9\e(B (\e$BB?$/$NJ]B8L?Na$N0l$D$r;H$C$F\e(B)\e$B!#$=$l$NLdBj$O!"C1$K$"$N!"7y$J$@$1\e(B
+\e$B$G$9!#M}A[E*$K$O!"5-;v$O%0%k!<%W$G$"$J$?$,8+$D$1$?>l=j$K1J1s$K;D$C$F$$$k\e(B
+\e$B$Y$-$G$7$g$&!#%K%e!<%:%5!<%P!<$K$*$1$k4|8B:o=|$K$O1F6A$5$l$J$$$G!#\e(B
+
+\e$B$3$l$,\e(B @dfn{\e$B1JB35-;v\e(B} \e$B$G$9\e(B---\e$B5-;v$O:o=|$5$l$^$;$s!#$=$l$OIaDL$N%-%c%C%7%e\e(B
+\e$BL?Na$r;H$C$F<BAu$5$l$F$$$^$9$,!"1JB35-;v$N4IM}$r$9$k$?$a$K\e(B2\e$B$D$NL@<(E*$J\e(B
+\e$BL?Na$r;H$$$^$9!#\e(B
+
+@table @kbd
+
+@item *
+@kindex * (\e$B35N,\e(B)
+@findex gnus-cache-enter-article
+\e$B8=:_$N5-;v$r1JB3$K$7$^$9\e(B (@code{gnus-cache-enter-article})\e$B!#\e(B
+
+@item M-*
+@kindex M-* (\e$B35N,\e(B)
+@findex gnus-cache-remove-article
+\e$B8=:_$N5-;v$r1JB35-;v$+$i<h$j=|$-$^$9\e(B (@code{gnus-cache-remove-articles})\e$B!#\e(B
+\e$B$3$l$OIaDL$O5-;v$r:o=|$7$^$9!#\e(B
+@end table
+
+\e$B$3$NL?Na$ON>J}$H$b%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47$rM}2r$7$^$9!#\e(B
+
+\e$B$b$71JB35-;v$K$@$16=L#$,$"$k$N$G$7$?$i!"2D;k5-;v\e(B (\e$B$d$=$NB>$N$b$N\e(B) \e$B$,%-%c%C\e(B
+\e$B%7%e$KF~$k$N$rHr$1$k$?$a$K!"\e(B@code{gnus-use-cache} \e$B$r\e(B @code{passive} \e$B$K@_\e(B
+\e$BDj$9$k$N$,NI$$$G$7$g$&\e(B:
+
+@lisp
+(setq gnus-use-cache 'passive)
+@end lisp
+
+
+@node Article Backlog
+@section \e$B5-;v$N%P%C%/%m%0\e(B
+@cindex backlog
+@cindex article backlog
+\e$B$b$7CY$$@\B3$7$+$J$$>l9g$G!"%-%c%C%7%e$r;H$&$H$$$&H/A[$O$"$^$jL%NOE*$G$O\e(B
+\e$B$J$$$H$-\e(B (\e$B<B:]$=$&$J$N$G$9$,\e(B)\e$B!"\e(B@dfn{\e$B%P%C%/%m%0\e(B} \e$B$K@Z$jBX$($k;v$K$h$C$F>u\e(B
+\e$B67$r2?$H$+$9$k$3$H$,$G$-$^$9!#$3$l$O4{$KFI$s$@5-;v$r:F<hF@$7$J$/$FNI$$$h\e(B
+\e$B$&$K!"\e(Bgnus \e$B$,4{$KFI$s$@5-;v$r0l;~J]B8$7$F$*$/$H$3$m$G$9!#$3$l$O$b$A$m$s!"\e(B
+\e$B$"$J$?$K:G6aFI$s$@5-;v$r:F$SA*Br$9$kJJ$,$"$k$H$-$@$1$KLrN)$A$^$9!#$b$7@d\e(B
+\e$BBP$K$=$l$r$7$J$$$N$G$"$l$P!"%P%C%/%m%0$r$9$k$3$H$O\e(B gnus \e$B$r>/$7CY$/$7!"%a\e(B
+\e$B%b%j!<$N;HMQNL$r$$$/$i$+A}$d$7$^$9!#\e(B
+
+@vindex gnus-keep-backlog
+\e$B$b$7\e(B @code{gnus-keep-backlog} \e$B$r?t;z\e(B @var{n} \e$B$K@_Dj$9$k$H!"\e(Bgnus \e$B$O:GBg$G\e(B 
+@var{n} \e$B$N8E$$5-;v$r8e$N:F<hF@$N$?$a$K%P%C%U%!$KN/$a$F$*$-$^$9!#$3$NJQ?t\e(B
+\e$B$,\e(B @code{nil} \e$B$G$O$J$/!"?t;z$G$b$J$$>l9g!"\e(Bgnus \e$B$O\e(B @emph{\e$BA4$F\e(B} \e$B$N4{FI5-;v\e(B
+\e$B$r$?$/$o$($^$9!#$3$l$O$"$J$?$N\e(B Emacs \e$B$,!"K=H/$7$F$"$J$?$N%^%7%s$,Mn$A$k\e(B
+\e$B$^$G@)8B$J$/KD$l>e$,$k$H$$$&$3$H$G$9!#;d$O$"$J$?J}A4$F$,855$$G$$$i$l$k$h\e(B
+\e$B$&$K$3$3$K=q$-2C$($^$7$?!#\e(B
+
+\e$B$3$NJQ?t$O%G%#%U%)%k%H$G$O\e(B @code{nil} \e$B$G$9!#\e(B
+
+@node Saving Articles
+@section \e$B5-;v$NJ]B8\e(B
+@cindex saving articles
+
+Gnus \e$B$O$?$/$5$s$NJ}K!$G5-;v$rJ]B8$9$k;v$,$G$-$^$9!#0J2<$N$b$N$OHs>o$KN(\e(B
+\e$BD>$JJ}K!\e(B (\e$BNc$($P!"5-;v$,J]B8$9$kA0$K$[$H$s$I2?$b$J$5$l$J$$\e(B) \e$B$G5-;v$rJ]B8\e(B
+\e$B$9$k$?$a$N@bL@$G$9!#0c$C$?<jCJ\e(B (uudecode\e$B$9$k!"\e(Bshar \e$B%U%!%$%k$rE83+$9$k\e(B)
+\e$B$K$D$$$F$O\e(B@code{gnus-uu} \e$B$r;H$&$N$,NI$$$G$7$g$&\e(B (@pxref{Decoding
+Articles})\e$B!#\e(B
+
+@vindex gnus-save-all-headers
+@code{gnus-save-all-headers} \e$B$,\e(B @code{nil} \e$B$G$J$$$H!"\e(Bgnus \e$B$O5-;v$rJ]B8$9\e(B
+\e$B$kA0$KK>$^$7$/$J$$%X%C%@!<$r>C5n$7$^$;$s!#\e(B
+
+@vindex gnus-saved-headers
+\e$B$b$7>e$NJQ?t$,\e(B @code{nil} \e$B$G$"$k$H!"@55,I=8=\e(B @code{gnus-saved-headers}
+\e$B$K9gCW$9$k$9$Y$F$N%X%C%@!<$O;D$5$l!";D$j$N$b$N$OJ]B8$9$kA0$K:o=|$5$l$^$9!#\e(B
+
+@table @kbd
+
+@item O o
+@itemx o
+@kindex O o (\e$B35N,\e(B)
+@kindex o (\e$B35N,\e(B)
+@findex gnus-summary-save-article
+@c @icon{gnus-summary-save-article}
+\e$B%G%#%U%)%k%H$N5-;vJ]B8$rMQ$$$F8=:_$N5-;v$rJ]B8$7$^$9\e(B
+(@code{gnus-summary-save-article})\e$B!#\e(B
+
+@item O m
+@kindex O m (\e$B35N,\e(B)
+@findex gnus-summary-save-article-mail
+\e$B8=:_$N5-;v$r%a!<%k$NMM<0$GJ]B8$7$^$9\e(B
+(@code{gnus-summary-save-article-mail})\e$B!#\e(B
+
+@item O r
+@kindex O r (\e$B35N,\e(B)
+@findex gnus-summary-save-article-rmail
+\e$B8=:_$N5-;v$r\e(B rmail \e$B$NMM<0$GJ]B8$7$^$9\e(B
+(@code{gnus-summary-save-article-rmail})\e$B!#\e(B
+
+@item O f
+@kindex O f (\e$B35N,\e(B)
+@findex gnus-summary-save-article-file
+@c @icon{gnus-summary-save-article-file}
+\e$B8=:_$N5-;v$rIaDL$N%U%!%$%k\e(B (plain file) \e$BMM<0$GJ]B8$7$^$9\e(B
+(@code{gnus-summary-save-article-file})\e$B!#\e(B
+
+@item O F
+@kindex O F (\e$B35N,\e(B)
+@findex gnus-summary-write-article-file
+\e$B8=:_$N5-;v$rIaDL$N%U%!%$%kMM<0$GJ]B8$7!"0JA0$N%U%!%$%k$NFbMF$r>e=q$-$7$^\e(B
+\e$B$9\e(B (@code{gnus-summary-write-article-file})\e$B!#\e(B
+
+@item O b
+@kindex O b (\e$B35N,\e(B)
+@findex gnus-summary-save-article-body-file
+\e$B8=:_$N5-;v$NK\J8\e(B (body) \e$B$rIaDL$N%U%!%$%kMM<0$GJ]B8$7$^$9\e(B
+(@code{gnus-summary-save-article-body-file})\e$B!#\e(B
+
+@item O h
+@kindex O h (\e$B35N,\e(B)
+@findex gnus-summary-save-article-folder
+\e$B8=:_$N5-;v$r\e(B mh \e$B$N%U%)%k%@!<$NMM<0$GJ]B8$7$^$9\e(B
+(@code{gnus-summary-save-article-folder})\e$B!#\e(B
+
+@item O v
+@kindex O v (\e$B35N,\e(B)
+@findex gnus-summary-save-article-vm
+\e$B8=:_$N5-;v$r\e(B VM \e$B%U%)%k%@!<$KJ]B8$7$^$9\e(B
+(@code{gnus-summary-save-article-vm})\e$B!#\e(B
+
+@item O p
+@kindex O p (\e$B35N,\e(B)
+@findex gnus-summary-pipe-output
+\e$B8=:_$N5-;v$r%Q%$%W$KJ]B8$7$^$9!#$&!<$s$H!"$"$N$)!";d$,8@$*$&$H$7$F$$$k;v\e(B
+\e$B$O\e(B---\e$B8=:_$N5-;v$r%W%m%;%9$K%Q%$%W$9$k$H$$$&$3$H$G$9\e(B
+(@code{gnus-summary-pipe-output})\e$B!#\e(B
+@end table
+
+@vindex gnus-prompt-before-saving
+\e$B$9$Y$F$N$3$l$i$NL?Na$O%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47$r;H$$$^$9\e(B
+(@pxref{Process/Prefix})\e$B!#$b$7$3$l$i$N4X?t$r;H$C$F$?$/$5$s$N5-;v$rJ]B8$7\e(B
+\e$B$?>l9g!"$=$l$>$l$N$9$Y$F$N5-;v$KBP$7$F%U%!%$%kL>$NF~NO$rMW5a$5$l$k;v$KK0\e(B
+\e$B$-K0$-$9$k$G$7$g$&!#F~NOB%?JF0:n$OJQ?t\e(B @code{gnus-prompt-before-saving} 
+\e$B$K$h$C$F@)8f$5$l$^$9!#$3$l$O%G%#%U%)%k%H$G$O\e(B @code{always} \e$B$G!"$"$J$?$,\e(B
+\e$BCN$C$F$$$F7y$,$C$F$$$k!"2a>j$JB%?JF0:n$r$7$^$9!#Be$o$j$K$3$NJQ?t$r\e(B
+@code{t} \e$B$K@_Dj$9$k$H!"$"$J$?$,J]B8$9$k$=$l$>$l$N0lO"$N5-;v$KBP$7$F0l2s\e(B
+\e$B$@$1B%$5$l$^$9!#K\Ev$K\e(B gnus \e$B$K$9$Y$F$N;W9M$r$5$;$?$$$N$G$"$l$P!"$3$NJQ?t\e(B
+\e$B$r\e(B@code{nil} \e$B$K$9$k$3$H$5$($G$-$^$9!#$=$7$F!"5-;v$rJ]B8$9$k$?$a$N%U%!%$\e(B
+\e$B%k$rB%$5$l$k;v$O$"$j$^$;$s!#\e(BGnus \e$B$OC1=c$K$9$Y$F$N5-;v$r%G%#%U%)%k%H$N%U%!\e(B
+\e$B%$%k$KJ]B8$7$^$9!#\e(B
+
+
+@vindex gnus-default-article-saver
+Gnus \e$B$,$"$J$?$NK>$`$H$*$j$K$J$k$h$&$K!"JQ?t\e(B 
+@code{gnus-default-article-saver} \e$B$r%+%9%?%^%$%:$9$k;v$,$G$-$^$9!#2<$N\e(B4
+\e$B$D$N4{@=4X?t$r;H$&;v$,$G$-$^$9$7!"<+J,<+?H$N4X?t$r:n$k;v$b$G$-$^$9!#\e(B
+
+@table @code
+
+@item gnus-summary-save-in-rmail
+@findex gnus-summary-save-in-rmail
+@vindex gnus-rmail-save-name
+@findex gnus-plain-save-name
+\e$B$3$l$O%G%#%U%)%k%H$NMM<0!"\e(B@dfn{babyl} \e$B$G$9!#JQ?t\e(B
+@code{gnus-ramil-save-name} \e$B$KF~$C$F$$$k4X?t$r!"5-;v$rJ]B8$9$k$?$a$N%U%!\e(B
+\e$B%$%kL>$r<hF@$9$k$?$a$K;HMQ$7$^$9!#%G%#%U%)%k%H$O\e(B 
+@code{gnus-plain-save-name} \e$B$G$9!#\e(B
+
+
+@item gnus-summary-save-in-mail
+@findex gnus-summary-save-in-mail
+@vindex gnus-mail-save-name
+Unix \e$B%a!<%k\e(B (mbox) \e$B%U%!%$%k$KJ]B8$7$^$9!#JQ?t\e(B @code{gnus-mail-save-name}
+\e$B$KF~$C$F$$$k4X?t$r!"5-;v$rJ]B8$9$k$?$a$N%U%!%$%kL>$r<hF@$9$k$?$a$K;HMQ$7\e(B
+\e$B$^$9!#%G%#%U%)%k%H$O\e(B @code{gnus-plain-save-name} \e$B$G$9!#\e(B
+
+@item gnus-summary-save-in-file
+@findex gnus-summary-save-in-file
+@vindex gnus-file-save-name
+@findex gnus-numeric-save-name
+\e$B5-;v$rDL>o$N%U%!%$%k$N8e$KDI2C$7$^$9!#JQ?t\e(B @code{gnus-file-save-name} \e$B$K\e(B
+\e$BF~$C$F$$$k4X?t$r!"5-;v$rJ]B8$9$k$?$a$N%U%!%$%kL>$r<hF@$9$k$?$a$K;HMQ$7$^\e(B
+\e$B$9!#%G%#%U%)%k%H$O\e(B @code{gnus-numeric-save-name} \e$B$G$9!#\e(B
+
+@item gnus-summary-save-body-in-file
+@findex gnus-summary-save-body-in-file
+\e$B5-;v$NK\BN$rDL>o$N%U%!%$%k$N8e$KDI2C$7$^$9!#JQ?t\e(B
+@code{gnus-file-save-name} \e$B$KF~$C$F$$$k4X?t$r!"5-;v$rJ]B8$9$k$?$a$N%U%!\e(B
+\e$B%$%kL>$r<hF@$9$k$?$a$K;HMQ$7$^$9!#%G%#%U%)%k%H$O\e(B 
+@code{gnus-numeric-save-name} \e$B$G$9!#\e(B
+
+
+@item gnus-summary-save-in-folder
+@findex gnus-summary-save-in-folder
+@findex gnus-folder-save-name
+@findex gnus-Folder-save-name
+@vindex gnus-folder-save-name
+@cindex rcvstore
+@cindex MH folders
+MH \e$B%i%$%V%i%j!<$N\e(B @code{rcvstore} \e$B$rMQ$$$k;v$K$h$C$F5-;v$r\e(B MH \e$B%U%)%k%@!<\e(B
+\e$B$KJ]B8$7$^$9!#JQ?t\e(B @code{gnus-folder-save-name} \e$B$KF~$C$F$$$k4X?t$r!"5-;v\e(B
+\e$B$rJ]B8$9$k%U%!%$%kL>$r<hF@$9$k$?$a$K;HMQ$7$^$9!#%G%#%U%)%k%H$O\e(B
+@code{gnus-folder-save-name} \e$B$G$9$,!"\e(B@code{gnus-Folder-save-name} \e$B$b;H$&\e(B
+\e$B;v$,$G$-$F!"$3$A$i$O@hF,$,BgJ8;z!";D$j$,>.J8;z$K$J$C$?L>A0$r$D$/$j$^$9!#\e(B
+
+@item gnus-summary-save-in-vm
+@findex gnus-summary-save-in-vm
+\e$B5-;v$r\e(B VM \e$B%U%)%k%@!<$KJ]B8$7$^$9!#$3$N@_Dj$r;H$&$?$a$K$O\e(B VM \e$B%a!<%k%j!<%@!<\e(B
+\e$B$,I,MW$G$9!#\e(B
+@end table
+
+@vindex gnus-article-save-directory
+\e$B$3$l$i$NA4$F$N4X?t$O:G8e$N0l$D$r=|$$$F!"4D6-JQ?t\e(B @code{SAVEDIR} \e$B$K$h$C$F\e(B
+\e$B=i4|2=$5$l$k\e(B @code{gnus-article-save-directory} \e$B$K5-;v$rJ]B8$7$^$9!#$3$l\e(B
+\e$B$O%G%#%U%)%k%H$G$O\e(B @file{~/News/} \e$B$G$9!#\e(B
+
+\e$B>e$K$"$k$h$&$K!"5-;v$rJ]B8$9$k$?$a$N%U%!%$%k$NE,@Z$JL>A0$r8+$D$1$k$?$a$K!"\e(B
+\e$B4X?t$O0c$C$?4X?t$rMQ$$$^$9!#0J2<$OL>A0$r@8@.$9$k$?$a$K;HMQ2DG=$J4X?t$N%j\e(B
+\e$B%9%H$G$9\e(B:
+
+@table @code
+
+@item gnus-Numeric-save-name
+@findex gnus-Numeric-save-name
+@file{~/News/Alt.andera-dworkin/45} \e$B$N$h$&$J%U%!%$%kL>!#\e(B
+
+@item gnus-numeric-save-name
+@findex gnus-numeric-save-name
+@file{~/News/alt.andera-dworkin/45} \e$B$N$h$&$J%U%!%$%kL>!#\e(B
+
+@item gnus-Plain-save-name
+@findex gnus-Plain-save-name
+@file{~/News/Alt.andera-dworkin} \e$B$N$h$&$J%U%!%$%kL>!#\e(B
+
+@item gnus-plain-save-name
+@findex gnus-plain-save-name
+@file{~/News/alt.andera-dworkin} \e$B$N$h$&$J%U%!%$%kL>!#\e(B
+@end table
+
+@vindex gnus-split-methods
+\e$BO"A[%j%9%H\e(B @code{gnus-split-methods} \e$B$K@55,I=8=$rJ|$j9~$`;v$K$h$C$F!"\e(B
+gnus \e$B$K5-;v$rJ]B8$9$k>l=j$rDs0F$9$k;v$,$G$-$^$9!#Nc$($P!"\e(Bgnus \e$B$K4XO"$7$?\e(B
+\e$B5-;v$r%U%!%$%k\e(B @file{gnus-stuff} \e$B$K!"\e(BVM \e$B$K4XO"$7$?5-;v$r\e(B @code{vm-stuff}
+\e$BJ]B8$7$?$1$l$P!"$3$NJQ?t$r0J2<$N$h$&$K$9$k;v$,$G$-$^$9\e(B:
+
+@lisp
+(("^Subject:.*gnus\\|^Newsgroups:.*gnus" "gnus-stuff")
+ ("^Subject:.*vm\\|^Xref:.*vm" "vm-stuff")
+ (my-choosing-function "../other-dir/my-stuff")
+ ((equal gnus-newsgroup-name "mail.misc") "mail-stuff"))
+@end lisp
+
+\e$B$3$l$O$=$l$>$l$NMWAG$,!"\e(B2\e$B$D$NMWAG\e(B---@dfn{\e$B9gCW\e(B} \e$B$H\e(B @dfn{\e$B%U%!%$%k\e(B} \e$B$r;}$D\e(B
+\e$B%j%9%H$G$"$k%j%9%H$G$"$k$H$$$&;v$,$o$+$j$^$9!#9gCW$OJ8;zNs\e(B (\e$B$3$N>l9g$O5-\e(B
+\e$B;v$N%X%C%@!<$K9gCW$9$k@55,I=8=$H$7$F;H$o$l$^$9\e(B) \e$B$*$h$S!"%7%s%\%k\e(B (\e$B%0%k!<\e(B
+\e$B%WL>$r0z?t$H$7$F!"4X?t$H$7$F8F$P$l$^$9\e(B) \e$B$*$h$S!"%j%9%H\e(B (\e$B$3$l$O\e(B@code{\e$BI>2A\e(B} 
+\e$B$5$l$^$9\e(B) \e$B$G$"$k$3$H$,$G$-$^$9!#$b$7$3$l$i$NF0:n$N0l$D$G$b\e(B @code{nil} \e$B$G\e(B
+\e$B$J$$7k2L$rJV$9$H!"\e(B@dfn{\e$B%U%!%$%k\e(B}\e$B$,%G%#%U%)%k%H$NB%?J$H$7$F;H$o$l$^$9!#2C\e(Bn
+\e$B$($F!"8F$P$l$?4X?t$+<0$,J8;zNs$+J8;zNs$N%j%9%H$rJV$7$?$H$-$O!"1i;;$N7k2L\e(B
+\e$B<+BN$,;H$o$l$^$9!#\e(B
+
+\e$B4pK\E*$K$O!"8=:_$N5-;v$rJ]B8$9$k$N$K;H$o$l$k2DG=@-$N$"$k%U%!%$%kL>$N%j%9\e(B
+\e$B%H$r<j$KF~$l$k;v$K$J$j$^$9!#\e(B (\e$B$9$Y$F$N\e(B ``\e$B9gCW\e(B'' \e$B$,;H$o$l$^$9!#\e(B) \e$B$=$l$+$i\e(B
+\e$BK\Ev$KL>A0$H$7$F;H$$$?$$$b$N$rB%$5$l!"$3$NJQ?t$rE,MQ$9$k;v$K$h$jF@$i$l$?\e(B
+\e$B7k2L$+$i%U%!%$%kL>Jd40$r$7$FF~NO$7$^$9!#\e(B
+
+\e$B$3$NJQ?t$O%G%#%U%)%k%H$G$O\e(B @code{((gnus-article-archive-name))} \e$B$G!"\e(Bgnus
+\e$BJ]B8$9$k5-;v$N\e(B @code{Archive-name} \e$B9T$rD4$Y$F!"$=$l$r%U%!%$%kL>$NDs0F$H\e(B
+\e$B$7$F;H$&$H$$$&;v$G$9!#\e(B
+
+\e$B$3$l$O%U%!%$%kL>$r>/$7$-$l$$$K$9$k4X?t$NNc$G$9!#\e(B
+@samp{nnml:mail.whatever} \e$B$N$h$&$J%a!<%k%0%k!<%W$,$?$/$5$s$"$k$N$G$"$l$P!"\e(B
+\e$BJ]B8$9$k$?$a$N%U%!%$%kL>$r:n$kA0$K$3$l$i$N%0%k!<%WL>$N:G=i$r@Z$jMn$H$7$?\e(B
+\e$B$$$+$b$7$l$^$;$s!#<!$NJ*$O$A$g$&$I$=$l$r$7$^$9\e(B:
+
+@lisp
+(defun my-save-name (group)
+  (when (string-match "^nnml:mail." group)
+    (substring group (match-end 0))))
+
+(setq gnus-split-methods
+      '((gnus-article-archive-name)
+        (my-save-name)))
+@end lisp
+
+
+@vindex gnus-use-long-file-name
+\e$B:G8e$K\e(B @code{gnus-use-long-file-name} \e$B$H$$$&JQ?t$,$"$j$^$9!#$3$l$,\e(B
+@code{nil} \e$B$G$"$k$H!"$9$Y$F$N>e5-$N4X?t$O%0%k!<%WL>$N$9$Y$F$N%T%j%*%I\e(B
+(@samp{.}) \e$B$r%9%i%C%7%e\e(B (@samp{/}) \e$B$GCV$-49$($^$9\e(B---\e$B$3$l$O4X?t$O$9$Y$F$N\e(B
+\e$B%U%!%$%k$r0lHV>e$N%G%#%l%/%H%j!<$KCV$/$N$G$O$J$/!"3,AXE*$J%G%#%l%/%H%j!<\e(B
+\e$B$r:n$k$H$$$&;v$G$9\e(B (@file{~/News/alt.andrea-dworkin} \e$B$NBe$o$j$K\e(B
+@file{~/News/alt/andrea-dworkin}\e$B!#\e(B)\e$B$3$NJQ?t$O$?$$$F$$$N%7%9%F%`$K$*$$$F\e(B
+\e$B%G%#%U%)%k%H$G\e(B @code{t} \e$B$G$9!#$7$+$7!"Nr;KE*$JM}M3$+$i\e(B Xenix \e$B$H\e(B
+usg-unix-v \e$B%^%7%s$G$O%G%#%U%)%k%H$G\e(B @code{nil} \e$B$G$9!#\e(B
+
+\e$B$3$N4X?t$O:o=|$H%9%3%"$N%U%!%$%kL>$K1F6A$7$^$9!#$3$NJQ?t$,%j%9%H$G!"%j%9\e(B
+\e$B%H$KMWAG\e(B @code{not-score} \e$B$,$"$k$H!"D9$$%U%!%$%kL>$O%9%3%"%U%!%$%k$K$O;H\e(B
+\e$B$o$l$:!"%j%9%H$KMWAG\e(B @code{not-save} \e$B$,$"$k$H!"D9$$%U%!%$%kL>$OJ]B8$K$O\e(B
+\e$B;H$o$l$:!"MWAG\e(B @code{not-kill} \e$B$,$"$k$H!"D9$$%U%!%$%kL>$O:o=|%U%!%$%k$K\e(B
+\e$B$O;H$o$l$^$;$s!#\e(B
+
+\e$B$b$75-;v$r%9%W!<%k$N$h$&$J3,AX$KJ]B8$7$?$$$N$G$"$l$P!"<!$N$h$&$K$G$-$^$9\e(B
+
+@lisp
+(setq gnus-use-long-file-name '(not-save)) ; to get a hierarchy
+(setq gnus-default-article-saver 'gnus-summary-save-in-file) ; no encoding
+@end lisp
+
+\e$B$=$l$+$i\e(B @kbd{o} \e$B$K$h$C$F5-;v$rJ]B8$9$k$@$1$G$9!#$=$l$+$i$3$N3,AX$rC;L?\e(B
+\e$B$J\e(B @code{nneething} \e$B%0%k!<%W$K$h$C$FFI$`;v$,$G$-$^$9\e(B---\e$B%0%k!<%W%P%C%U%!\e(B
+\e$B$G\e(B @kbd{G D} \e$B$H$7!"0lHV>e$N%G%#%l%/%H%j!<$r0z?t\e(B (@file{~/News/}) \e$B$H$7$F\e(B
+\e$BEO$7$^$9!#\e(B
+
+
+@node Decoding Articles
+@section \e$B5-;v$NI|9f2=\e(B
+@cindex decoding articles
+
+\e$B$H$-$I$-MxMQ<T$O2?$i$+$NJ}K!$GId9f2=$5$l$?5-;v\e(B (\e$B$b$7$/$O5-;v72\e(B) \e$B$rEj9F$7\e(B
+\e$B$^$9!#\e(BGnus \e$B$O$"$J$?$N$?$a$K$=$l$i$rI|9f2=$9$k;v$,$G$-$^$9!#\e(B
+
+@menu
+* Uuencoded Articles::    \e$B5-;v$r\e(B uuencode \e$B$9$k!#\e(B
+* Shell Archives::        shar \e$B5-;v$r2rE`$9$k!#\e(B
+* PostScript Files::      \e$B%]%9%H%9%/%j%W%H$rJ,3d$9$k!#\e(B
+* Other Files::           \e$BIaDL$NJ]B8$H\e(B binhex\e$B!#\e(B
+* Decoding Variables::    \e$B9,$;$JI|9f2=$N$?$a$NJQ?t!#\e(B
+* Viewing Files::         \e$BI|9f2=$N7k2L$r8+$?$$\e(B?
+@end menu
+
+@cindex series
+@cindex article series
+\e$B$3$l$i$9$Y$F$N4X?t$O%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47\e(B (@pxref{Process/Prefix}) \e$B$r!"\e(B 
+``\e$B0l$D$N5-;v\e(B'' \e$B$r\e(B ``\e$B0l$D$N72\e(B'' \e$B$H2r<a$9$k3HD%$r$7$F!"$I$N5-;v$KA`:n$r$9\e(B
+\e$B$k$+$r8+$D$1$k$?$a$K;H$$$^$9!#\e(BGnus \e$B$O<+J,<+?H$G$I$N5-;v$,$=$N72$KB0$7$F\e(B
+\e$B$$$k$+$rH=CG$7!"$9$Y$F$N5-;v$rI|9f2=$7$F!"$=$N7k2L$N%U%!%$%k$r\e(B \e$BE83+\e(B/\e$B1\Mw\e(B
+/\e$BJ]B8\e(B \e$B$9$k$3$H$,$G$-$^$9!#\e(B
+
+Gnus \e$B$O0J2<$N4JC1$J5,B'$KB'$C$F$I$N5-;v$,72$KB0$9$k$N$+$r?dB,$7$^$9\e(B: \e$BI=\e(B
+\e$BBj$O9T$N:G8e$N\e(B2\e$B$D$N?t;z$r=|$$$F\e(B (\e$B$[$H$s$I\e(B) \e$BF1$8$G$"$kI,MW$,$"$j$^$9!#\e(B
+(\e$B6uGr$OBgBNL5;k$5$l$^$9$,!#\e(B)
+
+\e$BNc$($P\e(B: @samp{cat.gif (2/3)} \e$B$H$$$&$h$&$JI=Bj$rA*$V$H!"\e(Bgnus \e$B$O@55,I=8=\e(B
+@samp{^cat.gif ([0-9]+/[0-9]+).*$} \e$B$K9gCW$9$k$9$Y$F$N5-;v$r8+$D$1$h$&$H\e(B
+\e$B$7$^$9!#\e(B
+
+@samp{cat.gif (2/3) Part 6 of a series} \e$B$N$h$&$JI8=`$G$J$$I=Bj$O$I$N<+F0\e(B
+\e$B1\MwL?Na$K$h$C$F$bE,@Z$KG'<1$5$l$J$$$?$a!"<j$G5-;v$K\e(B @kbd{#} \e$B$N0u$rIU$1\e(B
+\e$B$J$1$l$P$J$j$^$;$s!#\e(B
+
+
+@node Uuencoded Articles
+@subsection uuencode \e$B$5$l$?5-;v\e(B
+@cindex uudecode
+@cindex uuendoded articles
+
+@table @kbd
+
+@item X u
+@kindex X u (\e$B35N,\e(B)
+@findex gnus-uu-decode-uu
+@c @icon{gnus-uu-decode-uu}
+\e$B8=:_$N72$r\e(B uudecode \e$B$7$^$9\e(B (@code{gnus-uu-decode-uu})\e$B!#\e(B
+
+@item X U
+@kindex X U (\e$B35N,\e(B)
+@findex gnus-uu-decode-uu-and-save
+\e$B8=:_$N72$r\e(B uudecode \e$B$7$FJ]B8$7$^$9\e(B (@code{gnus-uu-decode-uu-and-save})\e$B!#\e(B
+
+@item X v u
+@kindex X v u (\e$B35N,\e(B)
+@findex gnus-uu-decode-uu-view
+\e$B8=:_$N72$r\e(B uudecode \e$B$7$F!"1\Mw$7$^$9\e(B (@code{gnus-uu-decode-uu-view})\e$B!#\e(B
+
+@item X v U
+@kindex X v U (\e$B35N,\e(B)
+@findex gnus-uu-decode-uu-and-save-view
+\e$B8=:_$N5-;v$r\e(B uudecode \e$B$7$F!"1\Mw$7$FJ]B8$7$^$9\e(B
+(@code{gnus-uu-decode-uu-and-save-view})\e$B!#\e(B
+
+@end table
+
+\e$B$3$l$i$9$Y$F$O%W%m%;%90u$K$h$C$F0uIU$1$i$l$?5-;v$NB8:_$KBP$7$FH?1~$9$k$H\e(B
+\e$B$$$&$3$H$r3P$($F$*$$$F$/$@$5$$!#Nc$($P!"$b$7%K%e!<%:%0%k!<%WA4BN$rI|9f2=\e(B
+\e$B$7$FJ]B8$7$?$$$N$G$"$l$P!"IaDL$O\e(B @kbd{M P a} (@code{gnus-uu-mark-all})
+\e$B$H$7!"$=$l$+$i\e(B @kbd{X U} (@code{gnus-uu-decode-uu-and-save}) \e$B$H$7$^$9!#\e(B
+
+\e$B$3$NA4$F$O!"GrF|$N2<$KL@Gr$K%-!<$rBG$C$F$$$?\e(B @sc{gnus 4.1} \e$B$N$H$-$H$O\e(B
+@code{gnus-uu} \e$B$NF0:n$,A4$/0c$C$F$$$^$9!#$3$NHG$N\e(B @code{gnus-uu} \e$B$OIaDL\e(B
+\e$B$O2?$+$NJ}K!\e(B (@pxref{Setting Process Marks}) \e$B$G5-;v$K0u$rIU$1$F!"$=$l$+\e(B
+\e$B$i\e(B @kbd{X u} \e$B$r2!$9;v$rA0Ds$H$7$F$$$^$9!#\e(B
+
+@vindex gnus-uu-notify-files
+\e$BCm0U\e(B: @code{gnus-uu-notify-files} \e$B$K9gCW$9$kL>A0!"\e(B
+@samp{[Cc][Ii][Nn][Dd][Yy][0-9]+.\\(gif\\|jpg\\)} \e$B$K%O!<%I%3!<%I$5$l$k!"\e(B
+\e$B$r;}$D5-;v$rI|9f2=$7$h$&$H$7$?$H$-$O!"\e(B@code{gnus-uu} \e$B$OLdBj$N5-;v$r$A$g\e(B
+\e$B$&$I1\Mw$7$?;v$rCN$i$;$k$?$a$K!"<+F0E*$K\e(B @samp{comp.unix.wizards} \e$B$K5-;v\e(B
+\e$B$rEj9F$7$^$9!#$3$N5!G=$r;H$o$J$$$h$&$K$9$k;v$O$G$-$^$;$s!#\e(B
+
+
+@node Shell Archives
+@subsection \e$B%7%'%k%"!<%+%$%V\e(B
+@cindex unshar
+@cindex shell archives
+@cindex shared articles
+
+\e$B%7%'%k%"!<%+%$%V\e(B (``shar \e$B%U%!%$%k\e(B'') \e$B$O%=!<%9$rG[I[$9$k$?$a$N?M5$$N$"$k\e(B
+\e$BJ}K!$G$7$?$,!":#F|$G$O$=$s$J$K;H$o$l$F$$$^$;$s!#$H$K$+$/$3$l$i$r07$&$?$a\e(B
+\e$B$NL?Na$,$"$j$^$9\e(B:
+
+@table @kbd
+
+@item X s
+@kindex X s (\e$B35N,\e(B)
+@findex gnus-uu-decode-unshar
+\e$B8=:_$N72$r2rE`$7$^$9\e(B (@code{gnus-uu-decode-unshar})\e$B!#\e(B
+
+@item X S
+@kindex X S (\e$B35N,\e(B)
+@findex gnus-uu-decode-unshar-and-save
+\e$B8=:_$N72$r2rE`$7J]B8$7$^$9\e(B (@code{gnus-uu-decode-unshar-and-save})\e$B!#\e(B
+
+@item X v s
+@kindex X v s (\e$B35N,\e(B)
+@findex gnus-uu-decode-unshar-view
+\e$B8=:_$N72$r2rE`$71\Mw$7$^$9\e(B (@code{gnus-uu-decode-unshar-view})\e$B!#\e(B
+
+@item X v S
+@kindex X v S (\e$B35N,\e(B)
+@findex gnus-uu-decode-unshar-and-save-view
+\e$B8=:_$N72$r2rE`$7!"1\Mw$7$FJ]B8$7$^$9\e(B
+(@code{gnus-uu-decode-unshar-and-save-view})\e$B!#\e(B
+@end table
+
+
+@node PostScript Files
+@subsection \e$B%]%9%H%9%/%j%W%H%U%!%$%k\e(B
+@cindex PostScript
+
+@table @kbd
+
+@item X p
+@kindex X p (\e$B35N,\e(B)
+@findex gnus-uu-decode-postscript
+\e$B8=:_$N%]%9%H%9%/%j%W%H72$rE83+$7$^$9\e(B (@code{gnus-uu-decode-postscript})\e$B!#\e(B
+
+@item X P
+@kindex X P (\e$B35N,\e(B)
+@findex gnus-uu-decode-postscript-and-save
+\e$B8=:_$N%]%9%H%9%/%j%W%H72$rE83+$7$FJ]B8$7$^$9\e(B
+(@code{gnus-uu-decode-postscript-and-save})\e$B!#\e(B
+
+@item X v p
+@kindex X v p (\e$B35N,\e(B)
+@findex gnus-uu-decode-postscript-view
+\e$B8=:_$N%]%9%H%9%/%j%W%H72$r1\Mw$7$^$9\e(B
+(@code{gnus-uu-decode-postscript-view})\e$B!#\e(B
+
+@item X v P
+@kindex X v P (\e$B35N,\e(B)
+@findex gnus-uu-decode-ostscript-and-save-view
+\e$B8=:_$N%]%9%H%9%/%j%W%H72$r1\Mw$7J]B8$7$^$9\e(B
+(@code{gnus-uu-decode-postscript-and-save-view})\e$B!#\e(B
+@end table
+
+
+@node Other Files
+@subsection \e$BB>$N%U%!%$%k\e(B
+
+@table @kbd
+@item X o
+@kindex X o (\e$B35N,\e(B)
+@findex gnus-uu-decode-save
+\e$B8=:_$N72$rJ]B8$7$^$9\e(B (@code{gnus-uu-decode-save})\e$B!#\e(B
+
+@item X b
+@kindex X b (\e$B35N,\e(B)
+@findex gnus-uu-decode-binhex
+\e$B8=:_$N5-;v$r\e(B binhex \e$B2rE`$7$^$9\e(B (@code{gnus-uu-decode-binhex})\e$B!#$3$l$OK\\e(B
+\e$BEv$OF0:n$7$^$;$s!#\e(B
+@end table
+
+
+@node Decoding Variables
+@subsection \e$BI|9f2=$N$?$a$NJQ?t\e(B
+
+\e$B7AMF;l$G$9!#F0;l$G$O$"$j$^$;$s!#\e(B
+
+@menu
+* Rule Variables::          \e$B%U%!%$%k$,$I$N$h$&$K1\Mw$5$l$k$+$r7h$a$kJQ?t!#\e(B
+* Other Decode Variables::  \e$BB>$NI|9f2=$NJQ?t!#\e(B
+* Uuencoding and Posting::  uuencode \e$B$9$k$N$r%+%9%?%^%$%:$9$kJQ?t!#\e(B
+@end menu
+
+
+@node Rule Variables
+@subsubsection \e$B5,B'JQ?t\e(B
+@cindex rule variables
+
+Gnus \e$B$O%U%!%$%k$r1\Mw$9$k$N$r7hDj$9$k$N$K\e(B @dfn{\e$B5,B'JQ?t\e(B} \e$B$rMQ$$$^$9!#$3\e(B
+\e$B$l$i$NJQ?t$O$9$Y$F0J2<$N$h$&$JMM<0$G$9\e(B
+
+@lisp
+      (list '(regexp1 command2)
+            '(regexp2 command2)
+            ...)
+@end lisp
+
+@table @code
+
+@item gnus-uu-user-view-rules
+@vindex gnus-uu-user-view-rules
+@cindex sox
+\e$B$3$NJQ?t$O%U%!%$%k$r1\Mw$9$k$H$-$K:G=i$KD4$Y$i$l$^$9!#Nc$($P!"$b$7\e(B
+@samp{.au} \e$B2;%U%!%$%k$rJQ49$9$k$?$a$K\e(B @code{sox} \e$B$r;H$$$?$$$H$-$O!"<!$N\e(B
+\e$B$h$&$K$G$-$^$9\e(B:
+@lisp
+(setq gnus-uu-user-view-rules
+      (list '(\"\\\\.au$\" \"sox %s -t .aiff > /dev/audio\")))
+@end lisp
+
+@item gnus-uu-user-view-rules-end
+@vindex gnus-uu-user-view-rules-end
+\e$B$3$NJQ?t$O\e(B gnus \e$B$,MxMQ<T$H%G%#%U%)%k%H$N1\Mw5,B'$+$i9gCW$9$k$b$N$r8+$D$1\e(B
+\e$B$i$l$J$+$C$?$H$-$KD4$Y$i$l$^$9!#\e(B
+
+@item gnus-uu-user-archive-rules
+@vindex gnus-uu-user-archive-rules
+\e$B$3$NJQ?t$O%"!<%+%$%V$rE83+$9$k$H$-$K$I$NL?Na$,;H$o$l$k$Y$-$+$r7h$a$k$?$a\e(B
+\e$B$K;H$&;v$,$G$-$^$9!#\e(B
+@end table
+
+
+@node Other Decode Variables
+@subsection \e$BB>$NI|9f2=$NJQ?t\e(B
+
+@table @code
+@vindex gnus-uu-grabbled-file-functions
+
+@item gnus-uu-grabbled-file-functions
+\e$B$3$N%j%9%H$N$9$Y$F$N4X?t$O$=$l$>$l$N%U%!%$%k$,>e<j$/I|9f2=$5$l$?D>8e$K8F\e(B
+\e$B$P$l$^$9\e(B---\e$B$G$9$+$i!"$9$0$K%U%!%$%k$r0\F0$d1\Mw$7$?$j$9$k$3$H$,$G$-!"2?\e(B
+\e$B$+$r$9$kA0$K$9$Y$F$N%U%!%$%k$,I|9f2=$5$l$k$N$rBT$DI,MW$O$"$j$^$;$s!#$3$N\e(B
+\e$B%j%9%H$KF~$l$k;v$N$G$-$k4{@=4X?t$O\e(B:
+
+@table @code
+
+@item gnus-uu-grab-view
+@findex gnus-uu-grab-view
+\e$B%U%!%$%k$r1\Mw$7$^$9!#\e(B
+
+@item gnus-uu-grab-move
+@findex gnus-uu-grab-move
+\e$B%U%!%$%k$r0\F0$7$^$9\e(B (\e$B$b$7J]B84X?t$r;H$C$F$$$k$N$G$"$l$P\e(B)\e$B!#\e(B
+@end table
+
+@item gnus-uu-be-dangerous
+@vindex gnus-uu-be-dangerous
+\e$BI|9f2=$N:GCf$KJQ$J>u67$,5/$3$C$?$H$-$K2?$r$9$k$+$r;XDj$7$^$9!#$b$7\e(B
+@code{nil} \e$B$G$"$k$H!"$G$-$k$@$1J]<iE*$K$J$j$^$9!#$b$7\e(B @code{t} \e$B$G$"$k$H!"\e(B
+\e$BF0:n$7$J$$$b$N$OL5;k$7$F!"8=B8$9$k%U%!%$%k$r>e=q$-$7$^$9!#$=$NB>$N>l9g$O!"\e(B
+\e$B$=$l$>$l$N$H$-$K?R$M$^$9!#\e(B
+
+@item gnus-uu-ignore-files-by-name
+@vindex gnus-uu-ignore-files-by-name
+\e$B$3$N@55,I=8=$K9gCW$9$kL>A0$N%U%!%$%k$O1\Mw$5$l$^$;$s!#\e(B
+
+@item gnus-uu-igonore-files-by-type
+@vindex gnus-uu-ignore-files-by-type
+\e$B$3$NJQ?t$K9gCW$9$k\e(B @sc{mime} \e$B$N7?$r;}$D%U%!%$%k$O1\Mw$5$l$^$;$s!#\e(BGnus \e$B$O\e(B
+\e$B%U%!%$%kL>$K4p$E$$$F7?$r?dB,$7$F$$$k;v$KCm0U$7$F$/$@$5$$!#\e(B
+@code{gnus-uu} \e$B$O\e(B (\e$B$^$@\e(B) @sc{mime} \e$B%Q%C%1!<%8$G$O$"$j$^$;$s$N$G!"$3$l$O\e(B
+\e$B>/$7JQ$G$9!#\e(B
+
+@item gnus-uu-tmp-dir
+@vindex gnus-uu-tmp-dir
+@code{gnus-uu} \e$B$,$=$N;E;v$r$9$k>l=j$G$9!#\e(B
+
+@item gnus-uu-do-not-unpack-archives
+@vindex gnus-uu-do-not-unpack-archives
+@code{nil} \e$B$G$J$$$N$O!"\e(B@code{gnus-uu} \e$B$OI=<($9$k$?$a$N%U%!%$%k$rC5$9$?$a\e(B
+\e$B$K%"!<%+%$%V$NCf$^$G$OF~$C$F$$$+$J$$$H$$$&;v$G$9!#\e(B
+
+@item gnus-uu-view-and-save
+@vindex gnus-uu-view-and-save
+@code{nil} \e$B$G$J$$$N$O!"MxMQ<T$O%U%!%$%k$r1\Mw$7$?8e$K>o$KJ]B8$9$k$+$I$&\e(B
+\e$B$+$r?R$M$i$l$k$H$$$&;v$G$9!#\e(B
+
+@item gnus-uu-ignore-default-view-rules
+@vindex gnus-uu-ignore-default-view-rules
+@code{nil} \e$B$G$J$$$N$O!"\e(B@code{gnus-uu} \e$B$O%G%#%U%)%k%H$N1\Mw5,B'$rL5;k$9$k\e(B
+\e$B$H$$$&;v$G$9!#\e(B
+
+@item gnus-uu-ignore-default-archive-rules
+@vindex gnus-uu-ignore-default-archive-rules
+@code{nil} \e$B$G$J$$$N$O!"\e(B@code{gnus-uu} \e$B$O%G%#%U%)%k%H$N%"!<%+%$%VE83+L?Na\e(B
+\e$B$rL5;k$9$k$H$$$&;v$G$9!#\e(B
+
+@item gnus-uu-kill-carriage-return
+@vindex gnus-uu-kill-carriage-return
+@code{nil} \e$B$G$J$$$N$O!"\e(B@code{gnus-uu} \e$B$O5-;v$+$i$9$Y$F$N%-%c%j%C%8%j%?!<\e(B
+\e$B%s\e(B (carriage return) \e$B$r<h$j5n$k$H$$$&;v$G$9!#\e(B
+
+@item gnus-uu-unmark-articles-not-decoded
+@vindex gnus-uu-unmark-articles-not-decoded
+@code{nil} \e$B$G$J$$$N$O!"\e(B@code{gnus-uu} \e$B$OI|9f2=$K<:GT$7$?5-;v$KL$FI$N0u$r\e(B
+\e$BIU$1$k$H$$$&;v$G$9!#\e(B
+
+@item gnus-uu-correct-stripped-uucode
+@vindex gnus-uu-correct-stripped-uucode
+@code{nil} \e$B$G$J$$$H$$$&$N$O!"\e(B@code{gnus-uu} \e$B$OB3$/6uGr$,:o=|$5$l$F$7$^$C\e(B
+\e$B$F$$$k\e(B uuencode \e$B$5$l$?%U%!%$%k$r=$I|$7$h$&$H\e(B @emph{\e$B;n$9\e(B} \e$B$H$$$&;v$G$9!#\e(B
+
+@item gnus-uu-pre-uudecode-hook
+@vindex gnus-uu-pre-uudecode-hook
+@code{uudecode} \e$B$K%a%C%;!<%8$rAw$kA0$K<B9T$5$l$k%U%C%/$G$9!#\e(B
+
+@item gnus-uu-view-with-metamail
+@vindex gnus-uu-view-with-metamail
+@cindex metamail
+@code{nil} \e$B$G$J$$$N$O!"\e(B@code{gnus-uu} \e$B$O5,B'JQ?t$GDj5A$5$l$?1\MwL?Na$rL5\e(B
+\e$B;k$7$F!"%U%!%$%kL>$K4p$E$$$?\e(B @sc{mime} \e$BFbMF$N7?$K<h$jBX$($k$H$$$&;v$G$9!#\e(B
+\e$B$=$N7k2L$O1\Mw$N$?$a$K\e(B @code{metamail} \e$B$K$+$1$i$l$^$9!#\e(B
+
+@item gnus-uu-save-in-digest
+@vindex gnus-uu-save-in-digest
+@code{nil} \e$B$G$J$$$N$O!"\e(B@code{gnus-uu} \e$B$,I|9f2=$r$7$J$$$GJ]B8$r$9$k$h$&$K\e(B
+\e$B8@$o$l$?$H$-$K!"MWLs$rJ]B8$9$k$H$$$&;v$G$9!#$3$NJQ?t$,\e(B @code{nil} \e$B$G$"$k\e(B
+\e$B$H!"\e(B@code{gnus-uu} \e$B$O\e(B \e$B2?$b>~$j$r$7$J$$$GA4$F$r%U%!%$%k$KJ]B8$7$^$9!#MWLs\e(B
+\e$B$O\e(B RFC1153 \e$B=`$8$F$$$^$9\e(B---\e$B0UL#$N$"$kNL$r;XDj$7$F!"HV9f$rH/9T$9$k4JC1$JJ}\e(B
+\e$BK!$,8+$D$+$i$J$+$C$?$N$G!"C1=c$K$=$l$i$O@Z$jMn$H$7$F$$$^$9!#\e(B
+
+@end table
+
+
+@node Uuencoding and Posting
+@subsection uuencode \e$B$HEj9F\e(B
+
+@table @code
+
+@item gnus-uu-post-include-before-composing
+@vindex gnus-uu-post-include-before-composing
+@code{nil} \e$B$G$J$$$N$O!"\e(B@code{gnus-uu} \e$B$,5-;v$r:n@.$9$kA0$KId9f2=$9$k%U%!\e(B
+\e$B%$%k$r?R$M$k$H$$$&;v$G$9!#$3$NJQ?t$,\e(B @code{t} \e$B$G$"$k$H!"\e(B@kbd{C-c C-i} \e$B$K\e(B
+\e$B$h$C$FId9f2=$5$l$?%U%!%$%k$r<h$j9~$`$+!"5-;v$rEj9F$9$k$H$-$K<h$j9~$`$+!"\e(B
+\e$B$I$A$i$+$r$9$k;v$,$G$-$^$9!#\e(B
+
+@item gnus-uu-post-length
+@vindex gnus-uu-post-length
+\e$B5-;v$N:GBg$ND9$5$G$9!#Id9f2=$5$l$?%U%!%$%k$OA4BN$N%U%!%$%k$rEj9F$9$k$N$K\e(B
+\e$BI,MW$JNL$N%U%!%$%k$KJ,3d$5$l$^$9!#\e(B
+
+@item gnus-uu-post-threaded
+@vindex gnus-uu-post-threaded
+@code{nil} \e$B$G$J$$$N$O!"\e(B@code{gnus-uu} \e$B$,Id9f2=$5$l$?%U%!%$%k$r%9%l%C%I$G\e(B
+\e$BEj9F$9$k$H$$$&;v$G$9!#$3$l$O$"$^$j8-$$J}K!$G$O$J$$$+$bCN$l$^$;$s!#$H$$$&\e(B
+\e$B$N$O!":#$^$G;d$,8+$?Cf$G\e(B uuencode \e$B$5$l$?5-;v$r=8$a$k$N$K!"%9%l%C%I$rDI$C\e(B
+\e$B$F$$$/;v$N$G$-$kB>$NI|9fAuCV$,B8:_$7$J$$$+$i$G$9!#\e(B (\e$B$(!<$H!";d$O$=$l$r$9\e(B
+\e$B$k0l$D$N%Q%C%1!<%8$r8+$?;v$,$"$j$^$9\e(B---@code{gnus-uu} \e$B$G$9!#$7$+$7$J$<$+!"\e(B
+\e$B$=$l$,?t$N$&$A$KF~$k$H$O;W$($J$$$N$G$9\e(B...) \e$B%G%#%U%)%k%H$O\e(B @code{nil} \e$B$G\e(B
+\e$B$9!#\e(B
+
+@item gnus-uu-post-separate-description
+@vindex gnus-uu-post-separate-description
+@code{nil} \e$B$G$J$$$N$O!"5-=R$OJL$N5-;v$GEj9F$5$l$k$H$$$&;v$G$9!#:G=i$N5-\e(B
+\e$B;v$OIaDL$O\e(B (0/x) \e$B$N$h$&$KHV9f$,IU$1$i$l$^$9!#$b$7$3$NJQ?t$,\e(B @code{nil}
+\e$B$G$"$k$H!"MxMQ<T$N=q$$$?5-=R$O:G=i$N%U%!%$%k$N;O$a$K<h$j9~$^$l!"\e(B(1/x) \e$B$N\e(B
+\e$BHV9f$,IU$1$i$l$^$9!#%G%#%U%)%k%H$O\e(B @code{t} \e$B$G$9!#\e(B
+
+@end table
+
+
+@node Viewing Files
+@subsection \e$B%U%!%$%k$N1\Mw\e(B
+@cindex viewing files
+@cindex pseudo-articles
+
+\e$BI|9f2=$7$?8e$G%U%!%$%k$,2?$i$+$N%"!<%+%$%V$G$"$k>l9g!"\e(Bgnus \e$B$O%"!<%+%$%V\e(B
+\e$B$rE83+$7$h$&$H;n$_!"%"!<%+%$%V$NCf$K1\Mw$G$-$k%U%!%$%k$,$"$k$+$rD4$Y$^$9!#\e(B
+\e$BNc$($P!"\e(Bgzip \e$B$5$l$?\e(B tar \e$B%U%!%$%k\e(B @file{pics.tar.gz} \e$B$,$"$C$F!"%U%!%$%k\e(B 
+@file{pic1.jpg} \e$B$H\e(B @file{pic2.gif} \e$B$r4^$s$G$$$k>l9g!"\e(Bgnus \e$B$O<g%U%!%$%k$r\e(B
+\e$B2rE`$7$F\e(B tar \e$B$rE83+$7!"$=$l$+$i\e(B2\e$B$D$N3($r1\Mw$7$^$9!#$3$NE83+$N2aDx$O:F5"\e(B
+\e$BE*$J$N$G!"%"!<%+%$%V$K%"!<%+%$%V$N%"!<%+%$%V$,$"$k$H!"$=$l$O$9$Y$FE83+$5\e(B
+\e$B$l$^$9!#\e(B
+
+\e$B:G8e$K!"\e(Bgnus \e$B$OIaDL$O$=$l$>$l$NCj=P$5$l$?5-;v$4$H$K\e(B @dfn{\e$B5?;w5-;v\e(B} \e$B$r35\e(B
+\e$BN,%P%C%U%!$KA^F~$7$^$9!#$3$l$i$N\e(B ``\e$B5-;v\e(B'' \e$B$K0\F0$7$?>l9g$O!"<B9T$9$kL?Na\e(B 
+(\e$BIaDL$O\e(B gnus \e$B$,Ds0F$r$7$^$9\e(B) \e$B$rF~NO$9$k$h$&$KB%?J$5$l!"$=$l$+$iL?Na$,<B\e(B
+\e$B9T$5$l$^$9!#\e(B
+
+@vindex gnus-view-pseudo-asynchronously
+@code{gnus-view-pseudo-asynchronously} \e$B$,\e(B @code{nil} \e$B$G$"$k$H!"\e(BEmacs \e$B$O\e(B
+\e$B@h$X?J$`A0$K1\Mw$,=*$o$k$^$GBT$A$^$9!#\e(B
+
+@vindex gnus-view-pseudos
+@code{gnus-view-pseudos} \e$B$,\e(B @code{automatic} \e$B$G$"$k$H!"\e(Bgnus \e$B$O35N,%P%C%U%!\e(B
+\e$B$K5?;w5-;v$rA^F~$7$^$;$s$,!"$=$l$i$r$9$0$K1\Mw$7$^$9!#$3$NJQ?t$,\e(B
+@code{not-confirm} \e$B$G$"$k$H!"MxMQ<T$O1\Mw$,:Q$`A0$K3NG'$5$($b5a$a$i$l$^\e(B
+\e$B$;$s!#\e(B
+
+@vindex gnus-view-pseudos-separately
+@code{gnus-view-pseudos-separately} \e$B$,\e(B @code{nil} \e$B$G$J$$$H!"0l$D$N5?;w5-\e(B
+\e$B;v$,1\Mw$5$l$k$=$l$>$l$N%U%!%$%k$KBP$7$F:n@.$5$l$^$9!#\e(B@code{nil} \e$B$G$"$k\e(B
+\e$B$H!"F1$81\MwL?Na$r;H$&$9$Y$F$NL?Na$,$=$NL?Na$N0z?t$N%j%9%H$H$7$FEO$5$l$^\e(B
+\e$B$9!#\e(B
+
+@vindex gnus-insert-pseudo-articles
+@code{gnus-insert-pseudo-articles} \e$B$,\e(B @code{nil} \e$B$G$J$$$H!"I|9f2=$N$H$-\e(B
+\e$B$K5?;w5-;v$rA^F~$7$^$9!#%G%#%U%)%k%H$G$O\e(B @code{t}\e$B$G$9!#\e(B
+
+\e$B$=$l$G!"$=$N$h$&$J46$8$G$9!#\e(B@emph{\e$B<B<A%5!<%P!<\e(B} \e$B$+$i$N\e(B  @emph{\e$B<B<A%0%k!<\e(B
+\e$B%W\e(B} \e$B$N\e(B @emph{\e$B5?;w5-;v\e(B} \e$BFI$s$G$$$^$9!#$=$7$F9M$($^$9\e(B: \e$B$I$&$7$FA4$F$,8=<B\e(B
+\e$B$G$O$J$/$J$C$F$7$^$C$?$N$@$m$&$+\e(B? \e$B$I$&$7$F$3$3$KMh$F$7$^$C$?$N$@$m$&$+\e(B?
+
+
+@node Article Treatment
+@section \e$B5-;v$N07$$\e(B
+
+\e$B$3$N5pBg$J@bL@J8=q$rFI$s$G$-$F!"?M!9$,=q$$$?;v$rFI$`!"$H$$$C$?$h$&$J%K%e!<\e(B
+\e$B%:%j!<%@!<$NK\Ev$NL\E*$r40A4$KK:$l$F$7$^$C$?$+$bCN$l$^$;$s!#5-;v$rFI$`;v\e(B
+\e$B$G$9!#;DG0$J;v$K!"?M!9$O=q$/;v$OHs>o$K6l<j$H$7$F$$$^$9$N$G!"5-;v$rFI$_$d\e(B
+\e$B$9$/$9$k$?$a$N4X?t$HJQ?t$,;3$N$h$&$K$"$j$^$9!#\e(B
+
+@menu
+* Article Highlighting::    \e$B5-;v$r2LJ*%5%i%@$N$h$&$K8+$($k$h$&$K$7$?$$!#\e(B
+* Article Fontisizing::     \e$B6/D4$5$l$?J8$rAGE($K$9$k!#\e(B
+* Article Hiding::          \e$BFCDj$N>pJs$O>C$75n$j$?$$$H$b;W$&!#\e(B
+* Article Washing::         \e$B?M@8$r$b$C$H$h$/$9$k$?$/$5$s$N5$$NMx$$$?4X?t!#\e(B
+* Article Buttons::         URL \e$B$d\e(B Message-ID \e$B$d\e(B \e$B%"%I%l%9$J$I$r%/%j%C%/$9$k!#\e(B
+* Article Date::            \e$B$0$:$0$:8@$&$J!"I8=`;~$@\e(B!
+* Article Signature::       \e$B=pL>$C$F2?\e(B?
+@end menu
+
+
+@node Article Highlighting
+@subsection \e$B5-;v$N%O%$%i%$%H\e(B
+@cindex highlight
+
+\e$B5-;v%P%C%U%!$r2LJ*%5%i%@$N$h$&$K$7$?$$$@$1$G$J$/!"2Z$d$+$J2LJ*%5%i%@$N$h\e(B
+\e$B$&$K8+$($k$h$&$K$7$?$$$G$7$g$&!#\e(B
+
+@table @kbd
+
+@item W H a
+@kindex W H a (\e$B35N,\e(B)
+@findex gnus-article-highlight
+\e$B8=:_$N5-;v$r%O%$%i%$%H\e(B (highlight) \e$B$7$^$9\e(B
+(@code{gnus-article-highlight})\e$B!#\e(B
+
+@item W H h
+@kindex W H h (\e$B35N,\e(B)
+@findex gnus-article-highlight-headers
+@vindex gnus-header-face-alist
+\e$B%X%C%@!<$r%O%$%i%$%H$7$^$9\e(B (@code{gnus-article-highlight-headers})\e$B!#%O%$\e(B
+\e$B%i%$%H$OJQ?t\e(B @code{gnus-header-face-alist} \e$B$K$7$?$,$C$F$J$5$l!"$=$l$O$=\e(B
+\e$B$l$>$l$NMWAG$,\e(B @var{(\e$B@55,I=8=\e(B \e$BL>A0\e(B \e$BFbMF\e(B)} \e$B$H$$$&MM<0$N%j%9%H$G$9!#\e(B 
+@var{\e$B@55,I=8=\e(B} \e$B$O%X%C%@!<$K9gCW$9$k@55,I=8=!"\e(B@var{\e$BL>A0\e(B} \e$B$O%X%C%@!<$NL>A0\e(B
+\e$B$r%O%$%i%$%H$9$k$N$K;H$o$l$k%U%'%$%9\e(B (face) (@pxref{FacesandFonts})\e$B!"\e(B
+@var{\e$BFbMF\e(B} \e$B$O%X%C%@!<$NCM$r%O%$%i%$%H$9$k%U%'%$%9$G$9!#:G=i$K9gCW$7$?$b\e(B
+\e$B$N$,;H$o$l$^$9!#\e(B@var{\e$B@55,I=8=\e(B} \e$B$O\e(B @samp{^} \e$B$,IU$1$i$l$k$Y$-$G$O$J$$;v$K\e(B
+\e$BCm0U$7$F$/$@$5$$\e(B---gnus \e$B$,$=$l$rIU$12C$($^$9!#\e(B
+
+@item W H c
+@kindex W H c (\e$B35N,\e(B)
+@findex gnus-article-highlight-citation
+\e$B0zMQ$5$l$?J8$r%O%$%i%$%H$7$^$9\e(B (@code{gnus-article-highlight-citation})\e$B!#\e(B
+
+\e$B0zMQ%O%$%i%$%H$r%+%9%?%^%$%:$9$k$$$/$D$+$NJQ?t$O\e(B:
+
+@table @code
+@vindex gnus-cite-parse-max-size
+
+@item gnus-cite-parse-max-size
+\e$B5-;v$NBg$-$5$,$3$NJQ?t\e(B (\e$B%G%#%U%)%k%H$G$O\e(B25000) \e$B$h$jBg$-$$5-;v$O!"0zMQ%O\e(B
+\e$B%$%i%$%H$O9T$o$l$^$;$s!#\e(B
+
+@item gnus-cite-prefix-regexp
+@vindex gnus-cite-prefix-regexp
+\e$B$"$k9T$,<h$jF@$k:GBg$N0zMQ@\F,8l$K9gCW$9$k@55,I=8=$G$9!#\e(B
+
+@item gnus-cite-max-prefix
+@vindex gnus-cite-max-prefix
+\e$B0zMQ@\F,8l$N:GBg$ND9$5$G$9\e(B (\e$B%G%#%U%)%k%H$G$O\e(B20\e$B$G$9\e(B)\e$B!#\e(B
+
+@item gnus-cite-face-list
+@vindex gnus-cite-face-list
+\e$B0zMQ$r%O%$%i%$%H$9$k$?$a$K;H$o$l$k%U%'%$%9$N%j%9%H$G$9\e(B (@pxref{Faces and
+Fonts})\e$B!#F1$8%a%C%;!<%8$NCf$KJ#?t$N5-;v$+$i$N0zMQ$,$"$k$H!"\e(Bgnus \e$B$O$=$l$>\e(B
+\e$B$l$N5-;v$+$i$N0zMQ$r$=$lMQ$N%U%'%$%9$GI=<($7$h$&$H$7$^$9!#$3$l$K$h$j!"C/\e(B
+\e$B$,2?$r=q$$$?$+$,J,$+$j$d$9$/$J$k$G$7$g$&!#\e(B
+
+@item gnus-supercite-regexp
+@vindex gnus-supercite-regexp
+\e$BIaDL$N\e(B Supercite \e$BB0@-9T$K9gCW$9$k@55,I=8=$G$9!#\e(B
+
+@item gnus-supercite-secondary-regexp
+@vindex gnus-supercite-secondary-regexp
+\e$B0z$-Nv$+$l$?\e(B Supercite \e$BB0@-9T$K9gCW$9$k@55,I=8=$G$9!#\e(B
+
+@item gnus-cite-minimum-match-count
+@vindex gnus-cite-minimum-match-count
+\e$B$=$l$,0zMQ$G$"$k$H7hDj$9$kA0$KD4$Y$J$1$l$P$J$i$J$$:G>.$NF10l@\F,8l$G$9!#\e(B
+
+@item gnus-cite-attribution-prefix
+@vindex gnus-cite-attribution-prefix
+\e$BB0@-9T$N;O$^$j$K9gCW$9$k@55,I=8=$G$9!#\e(B
+
+@item gnus-cite-attribution-suffix
+@vindex gnus-cite-attribution-suffix
+\e$BB0@-9T$N:G8e$K9gCW$9$k@55,I=8=$G$9!#\e(B
+
+@item gnus-cite-attribution-face
+@vindex gnus-cite-attribution-face
+\e$BB0@-9T$K;H$o$l$k%U%'%$%9$G$9!#$=$NB0@-$KB0$9$kJ8$N$?$a$N%U%'%$%9$HM;9g$5\e(B
+\e$B$l$^$9!#\e(B
+
+@end table
+
+
+@item W H s
+@kindex W H s (\e$B35N,\e(B)
+@vindex gnus-signature-separator
+@vindex gnus-signature-face
+@findex gnus-article-highlight-signature
+\e$B=pL>\e(B (signature) \e$B$r%O%$%i%$%H$7$^$9\e(B
+(@code{gnus-article-highlight-signature})\e$B!#\e(B
+@code{gnus-signature-separator} (@pxref{Article Signature}) \e$B$N8e$NA4$F$N\e(B
+\e$B$b$N$O=pL>$H9M$($i$l!"\e(B@code{gnus-signature-face} \e$B$G%O%$%i%$%H$5$l$^$9!#\e(B
+\e$B$=$l$O%G%#%U%)%k%H$G$O\e(B @code{italic} \e$B$G$9!#\e(B
+
+@end table
+
+
+@node Article Fontisizing
+@subsection \e$B5-;v$N%U%)%s%HJQ99\e(B
+@cindex emphasis
+@cindex article emphasis
+
+@cindex gnus-article-emphasize
+@kindex W e (\e$B35N,\e(B)
+\e$B?M!9$O$h$/%K%e!<%:$N5-;v$G\e(B @samp{_\e$B$3$l\e(B_} \e$B$d\e(B @samp{*\e$B$3$l\e(B*} \e$B$N$h$&$J$b$N$r\e(B
+\e$B;H$C$FC18l$r6/D4$7$^$9!#\e(BGnus \e$B$O\e(B \e$B5-;v$rL?Na\e(B @kbd{W e}
+(@code{gnus-article-emphasize}) \e$B$K$+$1$k;v$K$h$C$FAGE($K8+$($k$h$&$K$G$-\e(B
+\e$B$^$9!#\e(B
+
+@vindex gnus-article-emphasis
+\e$B6/D4$,$I$N$h$&$K1i;;$5$l$k$+$OJQ?t\e(B @code{gnus-article-emphasis} \e$B$K$h$C$F\e(B
+\e$B@)8f$5$l$^$9!#$3$l$O:G=i$NMWAG$,9gCW$9$k$Y$-@55,I=8=$G$"$kO"A[%j%9%H$G$9!#\e(B
+2\e$BHVL\$NMWAG$O$I$N@55,I=8=$N%0%k!<%W$,6/D48lA4BN$r8+$D$1$k$?$a$K;H$o$l$k\e(B
+\e$B$+$r<($9?t;z$G$9!#\e(B3\e$BHVL\$O$I$N@55,I=8=$N%0%k!<%W$,I=<($5$l%O%$%i%$%H$5$l\e(B
+\e$B$k$+$r7h$a$k?t;z$G$9!#\e(B (\e$B$3$N\e(B2\e$B$D$N%0%k!<%W$N4V$N5-;v$O1#$5$l$^$9!#\e(B) 4\e$BHVL\\e(B
+\e$B$O%O%$%i%$%H$N%U%'%$%9$G$9!#\e(B
+
+@lisp
+(setq gnus-article-emphasis
+      '(("_\\(\\w+\\)_" 0 1 gnus-emphasis-underline)
+        ("\\*\\(\\w+\\)\\*" 0 1 gnus-emphasis-bold)))
+@end lisp
+
+@vindex gnus-emphasis-underline
+@vindex gnus-emphasis-bold
+@vindex gnus-emphasis-italic
+@vindex gnus-emphasis-underline-bold
+@vindex gnus-emphasis-underline-italic
+@vindex gnus-emphasis-bold-italic
+@vindex gnus-emphasis-underline-bold-italic
+\e$B%G%#%U%)%k%H$G$O\e(B7\e$B$D$N5,B'$,$"$j!"$=$l$i$O0J2<$N%U%'%$%9$rMQ$$$^$9\e(B:
+@code{gnus-emphasis-bold}, @code{gnus-emphasis-italic},
+@code{gnus-emphasis-underline}, @code{gnus-emphasis-bold-italic},
+@code{gnus-emphasis-underline-italic},
+@code{gnus-emphasis-underline-bold},
+@code{gnus-emphasis-underline-bold-italic}.
+
+\e$B$3$l$i$N%U%'%$%9$rJQ99$7$?$$$N$G$"$l$P!"\e(B@kbd{M-x customize} \e$B$+\e(B
+@code{copy-face} \e$B$r;H$&;v$,$G$-$^$9!#Nc$($P!"\e(B@code{gnus-emphasis-italic} \e$B$KBe$o$j$K@V$N%U%'%$%9$r;H$&$h$&$K$7$?$$$H$-$O!"<!$N$h$&$K$G$-$^$9\e(B:
+@lisp
+(copy-face 'red 'gnus-emphasis-italic)
+@end lisp
+
+
+@node Article Hiding
+@subsection \e$B5-;v$r1#$9\e(B
+@cindex article hiding
+
+\e$B$b$7$/$O!"$=$l$>$l$N5-;v$NFCDj$N$b$N$r1#$7$?$$$+$b$7$l$^$;$s!#$?$$$F$$$N\e(B
+\e$B5-;v$K$OIaDL$O$"$j$9$.$k$/$i$$:n$j$+$($k$b$N$,$"$j$^$9!#\e(B
+
+@table @kbd
+
+@item W W a
+@kindex W W a (\e$B35N,\e(B)
+@findex gnus-article-hide
+\e$B35N,%P%C%U%!$G:GBg8B1#$7$^$9\e(B (@kbd{gnus-article-hide})\e$B!#\e(B
+
+@item W W h
+@kindex W W h (\e$B35N,\e(B)
+@findex gnus-article-hide-headers
+\e$B%X%C%@!<$r1#$7$^$9\e(B (@code{gnus-article-hide-headers})\e$B!#\e(B @xref{Hiding
+Headers}\e$B!#\e(B
+
+@item W W b
+@kindex W W b (\e$B35N,\e(B)
+@findex gnus-article-hide-boring-headers
+\e$B$"$^$j6=L#$N$b$F$J$$%X%C%@!<$r1#$7$^$9\e(B
+(@code{gnus-article-hide-boring-headers})\e$B!#\e(B @xref{Hiding Headers}\e$B!#\e(B
+
+@item W W s
+@kindex W W s (\e$B35N,\e(B)
+@findex gnus-article-hide-signature
+\e$B=pL>$r1#$7$^$9\e(B (@code{gnus-article-hide-signature})\e$B!#\e(B @xref{Article
+Signature}\e$B!#\e(B
+
+@item W W p
+@kindex W W p (\e$B35N,\e(B)
+@findex gnus-article-hide-pgp
+@vindex gnus-article-hide-pgp-hook
+@sc{pgp} \e$B=pL>$r1#$7$^$9\e(B (@code{gnus-article-hide-pgp})\e$B!#\e(B @sc{pgp} \e$B=pL>$,\e(B
+\e$B1#$5$l$?8e$K%U%C%/\e(B @code{gnus-article-hide-pgp-hook} \e$B$,<B9T$5$l$^$9!#\e(B
+
+@item W W P
+@kindex W W P (\e$B35N,\e(B)
+@findex gnus-article-hide-pem
+@sc{pem} (privacy enhanced messages) (\e$B%W%i%$%P%7!<3HD%%a%C%;!<%8\e(B) \e$BItJ,$r\e(B
+\e$B1#$7$^$9\e(B (@code{gnus-article-hide-pem})\e$B!#\e(B
+
+@item W W c
+@kindex W W c (\e$B35N,\e(B)
+@findex gnus-article-hide-citation
+\e$B0zMQ$r1#$7$^$9\e(B (@code{gnus-article-hide-citation})\e$B!#\e(B \e$B1#JC$r%+%9%?%^%$%:\e(B
+\e$B$9$k$$$/$D$+$NJQ?t$O\e(B:
+
+@table @code
+
+@item gnus-cite-hide-percentage
+@vindex gnus-cite-hide-percentage
+\e$B0zMQ$5$l$?J8$,$3$NJQ?t\e(B (\e$B%G%#%U%)%k%H$G$O\e(B50) \e$B$h$jBg$-$$3d9g$N$H$-$O!"0zMQ\e(B
+\e$B$5$l$?J,$r1#$7$^$9!#\e(B
+
+@item gnus-cite-hide-absolute
+@vindex gnus-cite-hide-absolute
+\e$B0zMQ$5$l$?J8$O>/$J$/$H$b$3$ND9$5\e(B (\e$B%G%#%U%)%k%H$G$O\e(B10) \e$B$G$J$1$l$P1#$5$l$^\e(B
+\e$B$;$s!#\e(B
+
+@item gnus-cited-text-button-line-format
+@vindex gnus-cited-text-button-line-format
+Gnus \e$B$O$I$3$N0zMQJ8$,1#$5$l$F$$$k$+$r<($9$?$a$K%\%?%s$rIU$12C$(!"J8>O$N\e(B
+\e$B1#JC$r@Z$jBX$($i$l$k$h$&$K$7$^$9!#$3$NJQ?t$NMM<0$O$3$l$i$N%U%)!<%^%C%H$N\e(B
+\e$B$h$&$JJQ?t$K$h$C$F;XDj$5$l$^$9\e(B (@pxref{Formatting Variables})\e$B!#<!$N;XDj\e(B
+\e$B$OM-8z$G$9\e(B:
+
+@table @samp
+@item b
+\e$B1#$5$l$?J8$N:G=i$N%]%$%s%H$G$9!#\e(B
+@item e
+\e$B1#$5$l$?J8$N:G8e$N%]%$%s%H$G$9!#\e(B
+@item l
+\e$B1#$5$l$?J8$ND9$5$G$9!#\e(B
+@end table
+
+@item gnus-cited-lines-visible
+@vindex gnus-cited-lines-visible
+\e$B0zMQJ8$N:G=i$+$i$NI=<($5$l$k9T?t$G$9!#\e(B
+
+@end table
+
+@item W W C
+@kindex W W C (\e$B35N,\e(B)
+@findex gnus-article-hide-citation-in-followups
+\e$B%k!<%H$G$J$$5-;v$N0zMQJ8$r1#$7$^$9\e(B
+(@code{gnus-article-hide-citation-in-followups})\e$B!#$3$l$OBPOCE*L?Na$H$7$F\e(B
+\e$B$O$"$^$jLr$KN)$?$J$$$+$b$7$l$^$;$s$,!"\e(B@code{gnus-article-display-hook}
+\e$B$KF~$l$k;v$N$G$-$k<j7Z$J4X?t$G$"$k$G$7$g$&\e(B (@pxref{Customizing
+Articles})\e$B!#\e(B
+
+@end table
+
+\e$B$3$l$i$NA4$F$N\e(B ``\e$B1#JC\e(B'' \e$BL?Na$O@Z$jBX$(L?Na$G$9$,!"$3$l$i$NL?Na$KIi$N@\F,\e(B
+\e$B0z?t$rM?$($k$H!"$=$l$i$OA0$K1#$5$l$F$$$?$b$N$rI=<($7$^$9!#@5$N@\F,0z?t$r\e(B
+\e$BM?$($l$P!"$=$l$i$O>o$K1#$7$^$9!#\e(B
+
+\e$B0zMQ%+%9%?%^%$%:$N$?$a$NB>$NJQ?t$N>pJs$N$?$a$K\e(B @pxref{Article
+Highlighting} \e$B$b;2>H$7$F$/$@$5$$!#\e(B
+
+
+@node Article Washing
+@subsection \e$B5-;v@vBu\e(B
+@cindex washing
+@cindex article washing
+
+\e$B;d$?$A$O$3$l$r$b$C$H$b$JM}M3$N2<$G\e(B ``\e$B5-;v@vBu\e(B'' (article washing} \e$B$H8F$s\e(B
+\e$B$G$$$^$9!#$9$J$o$A!"%-!<\e(B @kbd{A} \e$B$O;H$o$l$F$$$k$N$G!"Be$o$j$K%-!<\e(B
+@kbd{W} \e$B$r;H$&I,MW$,$"$k$N$G$9!#\e(B
+
+\e$B;d$?$A$O\e(B @dfn{\e$B@vBu\e(B} \e$B$r\e(B``\e$B2?$+$N2?$+$r2?$+JL$N$b$N$KJQ49$9$k\e(B'' \e$B$HDj5A$7$F\e(B
+\e$B$$$^$9$,!"IaDL$O$b$C$HNI$/8+$($k2?$+$KMn$ACe$-$^$9!#$=$l$K$b$C$H$-$l$$$G\e(B
+\e$B$9!"$?$V$s!#\e(B
+
+@table @kbd
+
+@item W l
+@kindex W l (\e$B35N,\e(B)
+@findex gnus-summary-stop-page-breaking
+\e$B%Z!<%8$N6h@Z$j$r8=:_$N5-;v$+$i<h$j=|$-$^$9\e(B
+(@code{gnus-summary-stop-page-breaking})\e$B!#\e(B
+
+@item W r
+@kindex W r (\e$B35N,\e(B)
+@findex gnus-summary-caesar-message
+@c @icon{gnus-summary-caesar-message}
+\e$B5-;v%P%C%U%!$G%7!<%6!<JQ49\e(B (Caesar rotate) (rot13) \e$B$r$7$^$9\e(B
+(@code{gnus-summary-caesar-message})\e$B!#%7!<%6!<JQ49$+\e(B rot13 \e$B$rMQ$$$FFI$`\e(B
+\e$B;v$N$G$-$k!"H=FIIT2DG=$J5-;v$G$9\e(B (\e$BE57?E*$K$O!"967bE*$J>iCL$J$I$G$9!#\e(B)
+
+\e$BIaDL$O\e(B ``rot13'' \e$B$H8F$P$l$F$$$^$9!#$=$l$O%"%k%U%!%Y%C%H$N0LCV$,\e(B13\e$B8D2sE>\e(B
+\e$B$9$k$+$i$G$9!#Nc$($P!"\e(B@samp{B} (2\e$BHVL\$NJ8;z\e(B) -> @samp{O} (15\e$BHVL\$NJ8;z\e(B)\e$B!#\e(B
+\e$B$3$l$O;~!9%7!<%6!<JQ49$H8F$P$l$k;v$b$"$j$^$9!#$H$$$&$N$O!"%7!<%6!<$,$3$N\e(B
+\e$B7A<0$N!"$(!<$H!"$A$g$C$H4JC1$J0E9f2=$r:NMQ$7$?$H$$$&1=$,$"$k$+$i$G$9!#\e(B
+
+@item W t
+@kindex W t (\e$B35N,\e(B)
+@findex gnus-summary-toggle-header
+\e$B5-;v%P%C%U%!$K$9$Y$F$N%X%C%@!<$rI=<($9$k$+$I$&$+$r@Z$jBX$($^$9\e(B
+(@code{gnus-summary-toggle-header})\e$B!#\e(B
+
+@item W v
+@kindex W v (\e$B35N,\e(B)
+@findex gnus-summary-verbose-header
+\e$B5-;v%P%C%U%!$K$9$Y$F$N%X%C%@!<$r1J1s$KI=<($9$k$+$I$&$+$r@Z$jBX$($^$9\e(B
+(@code{gnus-summary-verbose-header})\e$B!#\e(B
+
+@item W m
+@kindex W m (\e$B35N,\e(B)
+@findex gnus-summary-toggle-mime
+\e$B5-;v$rI=<($9$kA0$K\e(B @sc{mime} \e$B$r<B9T$9$k$+$I$&$+$r@Z$jBX$($^$9\e(B
+(@code{gnus-summary-toggle-mime})\e$B!#\e(B
+
+@item W o
+@kindex W o (\e$B35N,\e(B)
+@findex gnus-article-treat-overstrike
+\e$B%*!<%P!<%9%H%i%$%/$r=hM}$7$^$9\e(B (@code{gnus-article-treat-overstrike})\e$B!#\e(B
+
+@item W d
+@kindex W d (\e$B35N,\e(B)
+@findex gnus-article-treat-dumbquotes
+M******** sm*rtq**t*s \e$B$r=hM}$7$^$9\e(B
+(@code{gnus-article-treat-dumbquotes})\e$B!#\e(B
+
+@item W w
+@kindex W w (\e$B35N,\e(B)
+@findex gnus-article-fill-cited-article
+\e$B8l$N@^$jJV$7$r$7$^$9\e(B (@code{gnus-article-fill-cited-articles})\e$B!#$b$7$3$N\e(B
+\e$B4X?t$r\e(B @code{gnus-article-display-hook} \e$B$NCf$G;H$C$?>l9g!"$=$l$O$+$J$j8e\e(B
+\e$B$NJ}$G<B9T$5$l$k$Y$-$G!"EvA3$9$Y$F$N%O%$%i%$%H$N8e$K$J$j$^$9!#\e(B
+
+\e$B@^$jJV$7$r$9$k$H$-$K!"I}$r;XDj$9$k$?$a$KL?Na$K?tCM@\F,0z?t$rM?$($k;v$,$G\e(B
+\e$B$-$^$9!#\e(B
+
+@item W c
+@kindex W c (\e$B35N,\e(B)
+@findex gnus-article-remove-cr
+\e$B%-%c%j%C%8%j%?!<%s\e(B (CR) (\e$B$9$J$o$A!"9T$N:G8e$N\e(B @samp{^M}) \e$B$r<h$j=|$-$^$9\e(B
+(@code{gnus-article-remove-cr})\e$B!#\e(B
+
+@item W q
+@kindex W q (\e$B35N,\e(B)
+@findex gnus-article-de-quoted-unreadable
+quoted-printable \e$B$N=hM}$r$7$^$9\e(B
+(@code{gnus-article-de-quoted-unreadable})\e$B!#\e(BQuoted-Printable \e$B$O\e(B ASCII \e$B$G\e(B
+\e$B$J$$\e(B (\e$B$9$J$o$A!"\e(B8-bit\e$B$N\e(B) \e$B5-;v$rAw$k$H$-$KNI$/:NMQ$5$l$k\e(B @sc{mime} \e$BId9f2=\e(B
+\e$B$G$9!#$=$l$OIaDL\e(B  @samp{d\351j\340 vu} \e$B$N$h$&$JJ8;zNs$r\e(B 
+@samp{d=E9j=E0 vu} \e$B$N$h$&$K$7!"$=$l$O;d$K$O$"$^$jFI$a$k$b$N$H$O;W$($^$;\e(B
+\e$B$s!#\e(B
+
+@item W f
+@kindex W f (\e$B35N,\e(B)
+@cindex x-face
+@findex gnus-article-display-x-face
+@findex gnus-article-x-face-command
+@vindex gnus-article-x-face-command
+@vindex gnus-article-x-face-too-ugly
+@iftex
+@iflatex
+\include{xface}
+@end iflatex
+@end iftex
+\e$B$9$Y$F$N\e(B X-Face \e$B%X%C%@!<$rC5$7$FI=<($7$^$9\e(B
+(@code{gnus-article-display-x-face})\e$B!#$3$NL?Na$OJQ?t\e(B
+@code{gnus-article-x-face-command} \e$B$K$h$C$FM?$($i$l$?4X?t$K$h$C$F<B9T$5\e(B
+\e$B$l$^$9!#$3$NJQ?t$,J8;zNs$J$i$P!"$3$NJ8;zNs$,%5%V%7%'%k$G<B9T$5$l$^$9!#4X\e(B
+\e$B?t$J$i$P!"$3$N4X?t$,4i$r0z?t$H$7$F8F$P$l$^$9!#$b$7\e(B
+@code{gnus-article-x-face-too-ugly} (\e$B$3$l$O@55,I=8=$G$9\e(B) \e$B$,\e(B @code{From}
+\e$B%X%C%@!<$K9gCW$9$l$P!"4i$OI=<($5$l$^$;$s!#\e(BEmacs \e$B$G$N%G%#%U%)%k%H$NF0:n$O\e(B
+@code{xv} \e$B$r%U%)!<%/$7$F8+$h$&$H$7$^$9!#\e(BXEmacs \e$B$G$N%G%#%U%)%k%H$NF0:n$O\e(B
+@code{From} \e$B%X%C%@!<$NA0$K4i$rI=<($7$^$9!#\e(B(XEmacs \e$B$,\e(B X-Face \e$B5!G=IU$-$G%3\e(B
+\e$B%s%Q%$%k$5$l$F$$$k$HNI$$$G$7$g$&\e(B---\e$B$=$l$OI=<($r>/$7Aa$/$7$^$9!#$b$7:,K\\e(B
+\e$BE*\e(B X-Face \e$B5!G=$,$J$$$N$G$"$l$P!"\e(Bgnus \e$B$O\e(B @code{pbmplus} \e$B$d$=$NCg4V$N30It\e(B
+\e$B%W%m%0%i%`$r;H$C$F\e(B  @code{X-Face} \e$B%X%C%@!<$rJQ49$7$h$&$H;n$_$^$9!#\e(B) \e$B$3$N\e(B
+\e$B4X?t$rI=<(%U%C%/$KF~$l$?$$$N$G$"$l$P!"$*$=$i$/$=$l$":G8e$K$J$k$Y$-$G$7$g\e(B
+\e$B$&!#\e(B
+
+@item W b
+@kindex W b (\e$B35N,\e(B)
+@findex gnus-article-add-buttons
+\e$B%/%j%C%/$G$-$k%\%?%s$r5-;v$K2C$($^$9\e(B (@code{gnus-article-add-buttons})\e$B!#\e(B
+@xref{Article Buttons}
+
+@item W B
+@kindex W B (\e$B35N,\e(B)
+@findex gnus-article-add-buttons-to-head
+\e$B%/%j%C%/$G$-$k%\%?%s$r5-;v$N%X%C%@!<$K2C$($^$9\e(B
+(@code{gnus-article-add-buttons-to-head})\e$B!#\e(B
+
+@item W E l
+@kindex W E l (\e$B35N,\e(B)
+@findex gnus-article-strip-leading-blank-lines
+\e$B5-;v$N;O$a$+$i$N$9$Y$F$N6uGr9T$r<h$j=|$-$^$9\e(B
+(@code{gnus-article-strip-leading-blank-lines})\e$B!#\e(B
+
+@item W E m
+@kindex W E m (\e$B35N,\e(B)
+@findex gnus-article-strip-multiple-blank-lines
+\e$B$9$Y$F$N6uGr9T$r6u9T$GCV$-49$(!"$9$Y$F$NJ#?t$N6u9T$r0l$D$N6u9T$GCV$-49$(\e(B
+\e$B$^$9\e(B (@code{gnus-article-strip-multiple-blank-lines})\e$B!#\e(B
+
+@item W E t
+@kindex W E t (\e$B35N,\e(B)
+@findex gnus-article-remove-trailing-blank-lines
+\e$B5-;v$N:G8e$N$9$Y$F$N6uGr9T$r<h$j=|$-$^$9\e(B
+(@code{gnus-article-remove-trailing-blank-lines})\e$B!#\e(B
+
+@item W E a
+@kindex W E a (\e$B35N,\e(B)
+@findex gnus-article-strip-blank-lines
+\e$B>e$N\e(B3\e$B$D$NL?Na$r$9$Y$F9T$$$^$9\e(B (@code{gnus-article-strip-blank-lines})\e$B!#\e(B
+
+@item W E A
+@kindex W E A (\e$B35N,\e(B)
+@findex gnus-article-strip-all-blank-lines
+\e$B$9$Y$F$N6uGr9T$r<h$j=|$-$^$9\e(B (@code{gnus-article-strip-all-blank-lines})\e$B!#\e(B
+
+@item W E s
+@kindex W E s (\e$B35N,\e(B)
+@findex gnus-article-strip-leading-space
+\e$B5-;v$NK\BN$N$9$Y$F$N9T$N;O$a$+$i$N$9$Y$F$N6uGr$r<h$j=|$-$^$9\e(B
+(@code{gnus-article-strip-leading-space})\e$B!#\e(B
+
+@end table
+
+
+@node Article Buttons
+@subsection \e$B5-;v$N%\%?%s\e(B
+@cindex buttons
+
+\e$B$h$/5-;v$NCf$KB>$N$b$N$X$N;2>H$,F~$l$i$l$k;v$,$"$j$^$9!#$=$7$F!"\e(Bgnus \e$B$,\e(B
+\e$B$=$l$K4X$9$k;v$r!"$=$l$i$N;2>H$N>e$G\e(B @kbd{RET} \e$B$rBG$D$+!"%^%&%9$N??Cf$N\e(B
+\e$B%\%?%s$r;H$&;v$K$h$C$F!":G>.8B$NEXNO$G<hF@$9$k;v$,$G$-$l$PAGE($G$7$g$&!#\e(B
+
+Gnus \e$B$O%G%#%U%)%k%H$GFCDj$NI8=`$N;2>H$K\e(B @dfn{\e$B%\%?%s\e(B} \e$B$rIU$1$^$9\e(B: \e$B$A$c$s\e(B
+\e$B$H$7$?\e(B URL\e$B!"%a!<%k%"%I%l%9!"\e(BMessage-ID \e$B$G$9!#$3$l$O\e(B2\e$B$D$NJQ?t$K$h$C$F@)8f\e(B
+\e$B$5$l$F$$$F!"$=$N0l$D$O5-;v$NK\BN$r07$$!"$b$&0l$D$O5-;v$N%X%C%@!<$r07$$$^\e(B
+\e$B$9!#\e(B
+
+@table @code
+
+@item gnus-button-alist
+@vindex gnus-button-alist
+\e$B$=$l$>$l$NF~NOMWAG$,<!$N$h$&$JMM<0$NO"A[%j%9%H$G$9\e(B:
+
+@lisp
+(REGEXP BUTTON-PAR USE-P FUNCTION DATA-PAR)
+@end lisp
+
+@table @var
+
+@item regexp
+\e$B$3$N@55,I=8=\e(B (regexp) \e$B$K9gCW$9$k$9$Y$F$NJ8$O30It;2>H$G$"$k$H$_$J$5$l$^$9!#\e(B
+\e$B$3$l$OKd$a9~$^$l$?\e(B URL \e$B$K9gCW$9$kE57?E*$J@55,I=8=$G$9\e(B
+@samp{<URL:\\([^\n\r>]*\\)>}\e$B!#\e(B
+
+@item button-par
+Gnus \e$B$O9gCW$7$?$b$N$N$I$NItJ,$,%O%$%i%$%H$5$l$k$N$+$rCN$i$J$1$l$P$J$j$^\e(B
+\e$B$;$s!#$3$l$O@55,I=8=$N$I$NI{I=8=$,%O%$%i%$%H$5$l$k$+$r;XDj$9$kHV9f$G$9!#\e(B
+\e$BA4$F$r%O%$%i%$%H$7$?$$$N$J$i!"$3$3$G\e(B0\e$B$r;H$C$F$/$@$5$$!#\e(B
+
+@item use-p
+\e$B$3$N<0$O\e(B @code{\e$BI>2A\e(B} \e$B$5$l!"7k2L$,\e(B @code{nil} \e$B$G$J$1$l$P!"$3$l$O9gCW$G$"\e(B
+\e$B$k$H$_$J$5$l$^$9!#$3$l$O4V0c$C$?9gCW$rHr$1$k$?$a$KFCJL$JA*JL$r$7$?$$$H$-\e(B
+\e$B$KLr$KN)$A$^$9!#\e(B
+
+@item function
+\e$B$3$N4X?t\e(B (function) \e$B$O$3$N%\%?%s$r%/%j%C%/$7$?$H$-$K8F$P$l$^$9!#\e(B
+
+@item data-par
+@var{button-par} \e$B$N$h$&$K!"$3$l$OI{I=8=$NHV9f$G$9$,!"$3$l$O9gCW$N$I$NIt\e(B
+\e$BJ,$,\e(B @var{function} \e$B$K%G!<%?$H$7$FAw$i$l$k$+$r;XDj$7$^$9!#\e(B
+
+@end table
+
+\e$B$G$9$+$i!"\e(BURL \e$B$r%\%?%s$K$9$k40A4$JF~NOMWAG$O\e(B
+
+@lisp
+("<URL:\\([^\n\r>]*\\)>" 0 t gnus-button-url 1)
+@end lisp
+
+@item gnus-header-button-alist
+@vindex gnus-header-button-alist
+\e$B$=$l$,5-;v$N%X%C%@!<$@$1$KE,MQ$5$l!"$=$l$>$l$NF~NOMWAG$,$I$N%X%C%@!<$K%\\e(B
+\e$B%?%s2=$rE,MQ$9$k$+$r<($9DI2C$NMWAG$,$"$k;v$r=|$-!"$3$l$OB>$NO"A[%j%9%H$H\e(B
+\e$BF1$8$h$&$J$b$N$G$9\e(B:
+
+@lisp
+(HEADER REGEXP BUTTON-PAR USE-P FUNCTION DATA-PAR)
+@end lisp
+
+@var{HEADER} \e$B$O@55,I=8=$G$9!#\e(B
+
+@item gnus-button-url-regexp
+@vindex gnus-button-url-regexp
+\e$BKd$a9~$^$l$?\e(B URL \e$B$K9gCW$9$k@55,I=8=$G$9!#$=$l$O>e$NJQ?t$N%G%#%U%)%k%H$N\e(B
+\e$BCM$G;H$o$l$^$9!#\e(B
+
+@item gnus-article-button-face
+@vindex gnus-article-button-face
+\e$B%\%?%s$K;H$o$l$k%U%'%$%9$G$9!#\e(B
+
+@item gnus-article-mouse-face
+@vindex gnus-article-mouse-face
+\e$B%^%&%9$N%+!<%=%k$,%\%?%s$N>e$K$"$k$H$-$K;H$o$l$k%U%'%$%9$G$9!#\e(B
+
+@end table
+
+
+@node Article Date
+@subsection \e$B5-;v$NF|IU\e(B
+
+\e$BF|IU$OJ9$$$?;v$NL5$$2?$+L5L>$JI8=`;~$G:n@.$5$l$F$$$k;v$,NI$/$"$k$N$G!"5-\e(B
+\e$B;v$,Aw$i$l$?$H$-$K2?;~$G$"$C$?$+$rCN$k;v$,$G$-$k$N$OHs>o$KNI$$;v$G$7$g$&!#\e(B
+
+@table @kbd
+
+@item W T u
+@kindex W T u (\e$B35N,\e(B)
+@findex gnus-article-date-ut
+UT (\e$BJLL>\e(B GMT, ZULU) \e$B$GF|IU$rI=<($7$^$9\e(B (@code{gnus-article-date-ut})\e$B!#\e(B
+
+@item W T i
+@kindex W T i (\e$B35N,\e(B)
+@findex gnus-article-date-iso-8601
+@cindex ISO 8601
+\e$BF|IU$r9q:]E*$J7A<0!"\e(BISO 8601 \e$B$GI=<($7$^$9\e(B
+(@code{gnus-article-date-iso8601})\e$B!#\e(B
+
+@item W T l
+@kindex W T l (\e$B35N,\e(B)
+@findex gnus-article-date-local
+\e$BF|IU$r$=$NCO0h$NI8=`;~$GI=<($7$^$9\e(B (@code{gnus-article-date-local})\e$B!#\e(B
+
+@item W T s
+@kindex W T s (\e$B35N,\e(B)
+@vindex gnus-article-time-format
+@findex gnus-article-date-user
+@findex format-time-string
+\e$BF|IU$rMxMQ<TDj5A$NMM<0$r;H$C$FI=<($7$^$9\e(B (@code{gnus-article-date-user})\e$B!#\e(B
+\e$B$=$NMM<0$OJQ?t\e(B @code{gnus-article-time-format} \e$B$G;XDj$5$l!"\e(B
+@code{format-time-string} \e$B$KEO$5$l$kJ8;zNs$G$9!#MM<0;XDj$r$9$k;v$,$G$-$k\e(B
+\e$B0lMw$OJQ?t$N@bL@J8$r8+$F$/$@$5$$!#\e(B
+
+@item W T e
+@kindex W T e (\e$B35N,\e(B)
+@findex gnus-article-date-lapsed
+@findex gnus-start-date-timer
+@findex gnus-stop-date-timer
+\e$B5-;v$,Ej9F$5$l$F$+$i:#$^$G$I$l$/$i$$$N;~4V$,7P2a$7$?$+$rI=<($7$^$9\e(B
+(@code{gnus-article-date-lapsed})\e$B!#$3$N9T$,O"B3$7$F99?7$5$l$k$h$&$K$7$?\e(B
+\e$B$$$N$G$"$l$P!"\e(B
+
+@lisp
+(gnus-start-date-timer)
+@end lisp
+
+\e$B$r$"$J$?$N\e(B @file{.gnus.el} \e$B%U%!%$%k$KF~$l$k$+!"2?$+$N%U%C%/$G<B9T$9$k$h\e(B
+\e$B$&$K$9$k;v$,$G$-$^$9!#%?%$%^!<$r;_$a$?$$$N$G$"$l$P!"L?Na\e(B
+@code{gnus-stop-date-timer} \e$B$r;H$&;v$,$G$-$^$9!#\e(B
+
+@item W T o
+@kindex W T o (\e$B35N,\e(B)
+@findex gnus-article-date-original
+\e$BK\Mh$NF|IU$rI=<($7$^$9\e(B (@code{gnus-article-date-original})\e$B!#$3$l$O$"$J$?\e(B
+\e$B$,IaDL$OB>$NJQ494X?t$r;H$C$F$$$F!"$=$l$,40A4$K4V0c$C$?;v$r$7$F$$$k$N$G$O\e(B
+\e$B$J$$$+$H?4G[$7$F$$$k$H$-$KLr$KN)$A$^$9!#Nc$($P!"5-;v$,\e(B1854\e$BG/$KEj9F$5$l$?\e(B
+\e$B$H$J$C$F$$$k$H$7$^$7$g$&!#$7$+$7!"$=$N$h$&$J;v$O\e(B @emph{\e$B40A4$K\e(B} \e$BIT2DG=$G\e(B
+\e$B$9!#;d$,?.MQ$G$-$^$;$s$+\e(B? *\e$B$/$9$/$9\e(B(\e$B>P\e(B)*
+
+@end table
+
+
+@node Article Signature
+@subsection \e$B5-;v$N=pL>\e(B
+@cindex signatures
+@cindex article signature
+
+@vindex gnus-signature-separator
+\e$B$=$l$>$l$N5-;v$O\e(B2\e$B$D$NItJ,$KJ,$1$i$l$^$9\e(B---\e$B%X%C%@!<$HK\BN$G$9!#K\BN$O=pL>\e(B
+\e$BItJ,$HJ8>OItJ,$KJ,$1$i$l$^$9!#$I$l$,=pL>$H$_$J$5$l$k$+$r7h$a$kJQ?t$O\e(B
+@code{gnus-signature-separator} \e$B$G$9!#$3$l$OIaDL$O\e(B RFC-1036 \e$B$N8e7Q$G;X<(\e(B
+\e$B$5$l$F$$$kI8=`$N\e(B @samp{^-- $} \e$B$G$9!#$7$+$7!"B?$/$N?M$,I8=`$G$J$$=pL>J,N%\e(B
+\e$B$rMQ$$$^$9$N$G!"$3$NJQ?t$O0l$D0l$D;n$5$l$k!"@55,I=8=$N%j%9%H$G$"$k$3$H$b\e(B
+\e$B$G$-$^$9!#\e(B(\e$BC5:w$OK\BN$N:G8e$+$i;O$a$X$H$J$5$l$^$9!#\e(B) \e$B$h$/$"$j$=$&$JCM$O\e(B:
+
+@lisp
+(setq gnus-signature-separator
+      '("^-- $"         ; \e$BI8=`\e(B
+        "^-- *$"        ; \e$BIaDL$N2u$7J}\e(B
+        "^-------*$"    ; \e$BB?$/$N?M$OD9!<!<$$2#K@$N\e(B
+                        ; \e$B9T$r;H$$$^$9!#$"$!\e(B!
+        "^ *--------*$" ; 2\e$BG\$N$"$!$!\e(B!
+        "^________*$"   ; \e$B2<@~$b?M5$$,$"$j$^$9\e(B
+        "^========*$")) ; \e$B<YF;\e(B!
+@end lisp
+
+\e$B$"$J$?$,5vMFE*$G$"$l$P$"$k$[$I!"4V0c$C$?7k2L$rF@$k;v$K$J$k$G$7$g$&!#\e(B
+
+@vindex gnus-signature-limit
+@code{gnus-signature-limit} \e$B$O$I$l$,=pL>$H$_$J$5$l$k$+$X$N@)8B$rDs6!$7$^\e(B
+\e$B$9!#\e(B
+
+@enumerate
+@item
+\e$B$3$l$,@0?t$G$"$l$P!"=pL>$O$3$N@0?t$h$j\e(B (\e$BJ8;z$G\e(B) \e$BD9$/$J$C$F$$$F$O$$$1$^$;\e(B
+\e$B$s!#\e(B
+@item
+\e$B$3$l$,IbF0>.?tE@?t$G$"$l$P!"=pL>$O$=$N?t;z$h$j\e(B (\e$B9T$G\e(B) \e$BD9$/$J$C$F$$$F$O$$\e(B
+\e$B$1$^$;$s!#\e(B
+@item
+\e$B$3$l$,4X?t$G$"$l$P!"$=$N4X?t$O0z?t$J$7$G8F$P$l!"$=$l$,\e(B @code{nil} \e$B$rJV$;\e(B
+\e$B$P!"%P%C%U%!$K$O=pL>$,$"$j$^$;$s!#\e(B
+@item
+\e$B$3$l$,J8;zNs$G$"$l$P!"$=$l$O@55,I=8=$H$7$F;H$o$l$^$9!#$b$7$=$l$,9gCW$9$l\e(B
+\e$B$P!"$=$NEv$NJ8;zNs$O=pL>$G$O$"$j$^$;$s!#\e(B
+@end enumerate
+
+\e$B$3$NJQ?t$OMWAG$,>e$K5s$2$i$l$?7?$N%j%9%H$G$"$k;v$b$G$-$^$9!#$3$l$ONc$G$9\e(B:
+
+@lisp
+(setq gnus-signature-limit
+      '(200.0 "^---*Forwarded article"))
+@end lisp
+
+\e$B$3$l$O=pL>J,N%J*$N8e$K\e(B200\e$B$rD6$($k9T$+!"=pL>J,N%J*$N8e$NJ8>O$,@55,I=8=\e(B
+@samp{^---*Forwarded article} \e$B$K9gCW$9$l$P!"7k6I$=$l$O=pL>$G$O$J$$$H$$$&\e(B
+\e$B;v$G$9!#\e(B
+
+
+@node Article Commands
+@section \e$B5-;vL?Na\e(B
+
+@table @kbd
+
+@item A P
+@cindex PostScript
+@cindex printing
+@kindex A P (\e$B35N,\e(B)
+@vindex gnus-ps-print-article
+@findex gnus-summary-print-article
+\e$B5-;v%P%C%U%!$N%]%9%H%9%/%j%W%H\e(B (PostScript) \e$B%$%a!<%8$r:n@.$7$F0u:~$7$^$9\e(B 
+(@code{gnus-summary-print-article})\e$B!#\e(B @code{gnus-ps-print-hook} \e$B$,%P%C%U%!\e(B
+\e$B$r0u:~$9$kD>A0$K<B9T$5$l$k$G$7$g$&!#\e(B
+
+@end table
+
+
+@node Summary Sorting
+@section \e$B35N,$NJB$SBX$(\e(B
+@cindex summary sorting
+
+\e$B;d$O$I$&$7$F$"$J$?$,$=$&$7$?$$$N$+$O$o$+$i$J$$$N$G$9$,!"$=$l$G$b$"$J$?$O\e(B
+\e$B$?$/$5$s$NJ}K!$G35N,%P%C%U%!$rJB$SBX$($k;v$,$G$-$^$9!#\e(B
+
+@table @kbd
+
+@item C-c C-s C-n
+@kindex C-c C-s C-n (\e$B35N,\e(B)
+@findex gnus-summary-sort-by-number
+\e$B5-;vHV9f$K$h$C$FJB$SBX$($^$9\e(B (@code{gnus-summary-sort-by-number})\e$B!#\e(B
+
+@item C-c C-s C-a
+@kindex C-c C-s C-a (\e$B35N,\e(B)
+@findex gnus-summary-sort-by-author
+\e$BCx<T$K$h$C$FJB$SBX$($^$9\e(B (@code{gnus-summary-sort-by-author})\e$B!#\e(B
+
+@item C-c C-s C-s
+@kindex C-c C-s C-s (\e$B35N,\e(B)
+@findex gnus-summary-sort-by-subject
+\e$BI=Bj$K$h$C$FJB$SBX$($^$9\e(B (@code{gnus-summary-sort-by-subject})\e$B!#\e(B
+
+@item C-c C-s C-d
+@kindex C-c C-s C-d (\e$B35N,\e(B)
+@findex gnus-summary-sort-by-date
+\e$BF|IU$K$h$C$FJB$SBX$($^$9\e(B (@code{gnus-summary-sort-by-date})\e$B!#\e(B
+
+@item C-c C-s C-l
+@kindex C-c C-s C-l (\e$B35N,\e(B)
+@findex gnus-summary-sort-by-lines
+\e$B9T$K$h$C$FJB$SBX$($^$9\e(B (@code{gnus-summary-sort-by-lines})\e$B!#\e(B
+
+@item C-c C-s C-i
+@kindex C-c C-s C-i (\e$B35N,\e(B)
+@findex gnus-summary-sort-by-score
+\e$B%9%3%"$K$h$C$FJB$SBX$($^$9\e(B (@code{gnus-summary-sort-by-score})\e$B!#\e(B
+@end table
+
+\e$B$3$l$i$N4X?t$O%9%l%C%I$r;H$C$F$$$k$H$-$H;H$C$F$$$J$$$H$-$NN>J}$GF0:n$7$^\e(B
+\e$B$9!#8e<T$N>l9g$O!"$9$Y$F$N35N,9T$,0l9T0l9TJB$SBX$($i$l$^$9!#A0<T$N>l9g$O!"\e(B
+\e$B%k!<%H$H%k!<%H$r4pK\$H$7$FJB$SBX$($i$l!"$=$l$O$"$J$?$,5a$a$F$$$k;v$H$O0[\e(B
+\e$B$J$C$F$$$k$+$b$7$l$^$;$s!#%9%l%C%I$r;H$&;v$r@Z$jBX$($k$K$O\e(B @kbd{T T} \e$B$r\e(B
+\e$BBG$C$F$/$@$5$$\e(B (@pxref{Thread Commands})\e$B!#\e(B
+
+
+@node Finding the Parent
+@section \e$B?F5-;v$rC5$9\e(B
+@cindex parent articles
+@cindex referring articles
+
+@table @kbd
+@item ^
+@kindex ^ (\e$B35N,\e(B)
+@findex gnus-summary-refer-parent-article
+\e$B8=:_$N5-;v$N?F5-;v$rFI$_$?$/$F!"$=$l$,35N,%P%C%U%!$KI=<($5$l$F$$$J$$$/$F\e(B
+\e$B$b!"$*$=$i$/$=$l$O2DG=$G$7$g$&!#$H$$$&$N$O!"8=:_$N%0%k!<%W$,\e(B @sc{nntp}
+\e$B$G<hF@$5$l$F$$$F!"?F$,$^$@4|8B>C5n$5$l$F$$$J$$>e!"8=:_$N5-;v$N\e(B
+@code{References} \e$B$,$V$A2u$5$l$F$$$J$1$l$P!"$?$@!"\e(B@kbd{^} \e$B$+\e(B @kbd{A r}
+\e$B$r2!$;$PNI$$$@$1$G$9\e(B (@code{gnus-summary-refer-parent-article})\e$B!#$b$7A4\e(B
+\e$B$F$,>e<j$/9T$1$P!"?F5-;v$r<hF@$G$-$k$G$7$g$&!#$b$7?F5-;v$,4{$K35N,%P%C%U%!\e(B
+\e$B$KI=<($5$l$F$$$k$N$G$"$l$P!"%]%$%s%H$,$=$N5-;v$K0\F0$9$k$G$7$g$&!#\e(B
+
+\e$B@5$N?tCM@\F,0z?t$rM?$($i$l$l$P!"AD@h$^$GB?$/$N5-;v$rLa$C$F<hF@$7$^$9!#Ii\e(B
+\e$B$N?t;z@\F,0z?t$,M?$($i$l$l$P!"$=$NAD@h$N5-;v$@$1$r<hF@$7$^$9!#$G$9$+$i!"\e(B
+@kbd{3 ^} \e$B$H$9$l$P!"\e(Bgnus \e$B$O8=:_$N5-;v$N?F$H!"ADIcJl$H!"A=ADIcJl$r<hF@$7\e(B
+\e$B$^$9!#\e(B @kbd{-3 ^} \e$B$H$9$l$P!"\e(Bgnus \e$B$O8=:_$N5-;v$NA=ADIcJl$@$1$r<hF@$7$^$9!#\e(B
+
+@item A R (\e$B35N,\e(B)
+@findex gnus-summary-refer-references
+@kindex A R (\e$B35N,\e(B)
+\e$B5-;v$N\e(B @code{References} \e$B%X%C%@!<$K$"$kA4$F$N5-;v$r<hF@$7$^$9\e(B
+(@code{gnus-summary-refer-references})\e$B!#\e(B
+
+@item A T (\e$B35N,\e(B)
+@findex gnus-summary-refer-thread
+@kindex A T (\e$B35N,\e(B)
+\e$B8=:_$N5-;v$,=P$F$-$F$$$k%9%l%C%I$N!"40A4$J%9%l%C%I$rI=<($7$^$9\e(B
+(@code{gnus-summary-refer-thread})\e$B!#$3$NL?Na$OF0:n$9$k$?$a$K8=:_$N%0%k!<\e(B
+\e$B%W$N$9$Y$F$N%X%C%@!<$r<hF@$7$J$1$l$P$J$j$^$;$s$N$G!"IaDL$O>/$7;~4V$,$+$+\e(B
+\e$B$j$^$9!#$b$7!"$3$l$r$7$P$7$P9T$&$N$G$"$l$P!"\e(B
+@code{gnus-fetch-old-headers} \e$B$r\e(B @code{invisible} \e$B$K@_Dj$9$k$3$H$r9M$($?\e(B
+\e$B$[$&$,NI$$$G$7$g$&\e(B (@pxref{Filling In Threads})\e$B!#$3$l$OIaDL$O;k3PE*$J8z\e(B
+\e$B2L$O$"$j$^$;$s$,!"$3$NL?Na$NF0:n$r$+$J$jB.$/$9$k$G$7$g$&!#$b$A$m$s!"%0%k!<\e(B
+\e$B%W$KF~$k$N$O>/$7CY$/$J$j$^$9!#\e(B
+
+@vindex gnus-refer-thread-limit
+\e$BJQ?t\e(B @code{gnus-refer-thread-limit} \e$B$O$3$NL?Na$r<B9T$9$k$H$-$K$I$N$/$i$$\e(B
+\e$B8E$$\e(B (\e$B$9$J$o$A!"8=:_$N5-;v$G:G=i$KI=<($5$l$?$h$j$bA0$N5-;v\e(B) \e$B%X%C%@!<$r<h\e(B
+\e$BF@$9$k$+$r;XDj$7$^$9!#%G%#%U%)%k%H$O\e(B200\e$B$G$9!#$b$7\e(B @code{t} \e$B$G$"$l$P!"<h\e(B
+\e$BF@2DG=$J$9$Y$F$N%X%C%@!<$r<hF@$7$^$9!#$3$NJQ?t$OL?Na\e(B @code{A T} \e$B$K?tCM@\\e(B
+\e$BF,0z?t$rM?$($k;v$K$h$j>e=q$-$9$k;v$,$G$-$^$9!#\e(B
+
+@item M-^ (\e$B35N,\e(B)
+@findex gnus-summary-refer-article
+@kindex M-^ (\e$B35N,\e(B)
+@cindex Message-ID
+@cindex fetching by Message-ID
+\e$B$I$N%0%k!<%W$KB0$7$F$$$k$+$K4X$o$i$:!"G$0U$N5-;v$r\e(B @sc{nntp} \e$B%5!<%P!<$K\e(B
+\e$B?R$M$k;v$,$G$-$^$9!#\e(B@kbd{M-^} (@code{gnus-summary-refer-article}) \e$B$O\e(B
+@code{Message-ID}\e$B!"$=$l$O$"$ND9$/!"$J$+$J$+FI$`;v$N$G$-$J$$\e(B
+@samp{<38o6up$6f2@@hymir.ifi.uio.no>} \e$B$N$h$&$J;2>H$r$"$J$?$K?R$M$^$9!#\e(B
+\e$B$"$J$?$O$9$Y$F$r@53N$KBG$A9~$^$J$1$l$P$J$j$^$;$s!#;DG0$J$,$i!"$"$$$^$$$J\e(B
+\e$B8!:w$O$G$-$J$$$N$G$9!#\e(B
+@end table
+
+\e$B%K%e!<%:$G$J$$A*BrJ}K!$+$i\e(B @code{Message-ID} \e$B$G<hF@$9$k$H$-$K$O8=:_$NA*\e(B
+\e$BBrJ}K!$,;H$o$l$^$9$,!"$3$NL?Na$K@\F,0z?t$rM?$($k;v$G$3$l$r>e=q$-$9$k;v$,\e(B
+\e$B$G$-$^$9!#\e(B
+
+@vindex gnus-refer-article-method
+\e$B$b$7$"$J$?$NFI$s$G$$$k%0%k!<%W$,\e(B @code{Message-ID} \e$B$G$N<hF@$,$"$^$jNI$/\e(B
+\e$B$G$-$J$$$h$&$J%0%k!<%W\e(B (@code{nnspool} \e$B$J$I\e(B) \e$B$G$"$k>l9g!"\e(B
+@code{gnus-refer-article-method} \e$B$r\e(B @sc{nntp} \e$B$K@_Dj$9$k;v$,$G$-$^$9!#$*\e(B
+\e$B$=$i$/!"$"$J$?$,2qOC$7$F$$$k\e(B @sc{nntp} \e$B%5!<%P!<$,$"$J$?$NFI$s$G$$$k%9%W!<\e(B
+\e$B%k$r99?7$7$F$$$k$HHs>o$KNI$$$G$7$g$&!#$7$+$7!"$=$l$O$I$&$7$F$bI,MW$J$o$1\e(B
+\e$B$G$O$"$j$^$;$s!#\e(B
+
+\e$B$[$H$s$I$N%a!<%k%P%C%/%(%s%I$O\e(B @code{Message-ID} \e$B$G$N<hF@$,2DG=$G$9$,!"\e(B
+\e$B$"$^$jM%2m$JJ}K!$G$d$C$F$$$k$o$1$G$O$"$j$^$;$s!#\e(B@code{nnmbox} \e$B$H\e(B
+@code{nnbabyl} \e$B$O$I$N%0%k!<%W$+$i$N5-;v$b0LCV$rF@$k$3$H$,$G$-$^$9$,!"\e(B
+@code{nnml} \e$B$H\e(B @code{nnfolder} \e$B$O8=:_$N%0%k!<%W$KEj9F$7$?5-;v$N0LCV$7$+\e(B
+\e$BF@$k;v$,$G$-$^$;$s!#\e(B (\e$B$=$NB>$N$b$N$O;~4V$,$+$+$j$9$.$^$9!#\e(B) @code{nnmh}
+\e$B$G$OA4$/IT2DG=$G$9!#\e(B
+
+@node Alternative Approaches
+@section \e$BBeBX<jCJ\e(B
+
+\e$B0c$C$??M$O0c$C$?J}K!$r;H$C$F%K%e!<%:$rFI$b$&$H$7$^$9!#$3$l$O\e(B gnus \e$B$G$b$=\e(B
+\e$B$&$G$"$k$N$G!"2f!9$O35N,%P%C%U%!!<$N$?$a$N%^%$%J!<%b!<%I\e(B (minor mode) \e$B$K\e(B
+\e$B>/$7$NA*Br;h$rM?$($F$"$j$^$9!#\e(B
+
+@menu
+* Pick and Read::               \e$B$^$:!"5-;v$K0u$rIU$1$F!"$=$l$+$iFI$`\e(B
+* Binary Groups::               \e$B$9$Y$F$N5-;v$r<+F0\e(B-\e$BI|9f2=$9$k\e(B
+@end menu
+
+
+@node Pick and Read
+@subsection \e$BA*$s$GFI$`\e(B
+@cindex pick and read
+
+\e$B$$$/$D$+$N%K%e!<%:%j!<%@!<\e(B (@code{nn} \e$B$d!"$"$N$)!"\e(BVM/CMS \e$B$G$N\e(B
+@code{Netnews} \e$B$J$I\e(B) \e$B$O\e(B2\e$BAj$NFI$`LL$r;H$$$^$9!#MxMQ<T$O$^$:35N,%P%C%U%!$G\e(B
+\e$BFI$_$?$$5-;v$K0u$rIU$1$^$9!#$=$l$+$i!"5-;v%P%C%U%!$@$1$rI=<($7$F5-;v$rFI\e(B
+\e$B$_$^$9!#\e(B
+
+@vindex gnus-pick-mode
+@kindex M-x gnus-pick-mode
+Gnus \e$B$O$3$l$r$9$k$?$a$N35N,%P%C%U%!%^%$%J!<%b!<%I$rDs6!$7$^$9\e(B---
+@code{gnus-pick-mode} \e$B$G$9!#$3$l$O4pK\E*$K$O4JC1$K0u$rIU$1$i$l$k$h$&$K>/\e(B
+\e$B$7$N%W%m%;%90uL?Na$,\e(B1\e$BBG80L?Na$K$J$j!"35N,%P%C%U%!$X@Z$jBX$($k$?$a$NDI2C\e(B
+\e$BL?Na$r\e(B1\e$B$DDs6!$7$^$9!#\e(B
+
+\e$B$3$l$,\e(B pick mode \e$B$r;H$C$?$H$-$K;HMQ2DG=$J%-!<$G$9\e(B:
+
+@table @kbd
+@item .
+@kindex . (\e$BA*Br\e(B)
+@findex gnus-summary-mark-as-processable
+\e$B8=:_$N9T$N5-;v$rA*Br$7$^$9\e(B (@code{gnus-summary-mark-as-processable})\e$B!#?t\e(B
+\e$BCM@\F,0z?t$rM?$($i$l$l$P!"$=$N9T$K0\F0$7$FA*Br$7$^$9!#\e(B (\e$B9T?t$OIaDL$O35N,\e(B
+\e$BA*Br9T$N:G=i$KI=<($5$l$F$$$^$9!#\e(B)
+
+@item SPACE
+@kindex SPCE (\e$BA*Br\e(B)
+@findex gnus-pick-next-page
+\e$B35N,%P%C%U%!$r0l%Z!<%8<!$K%9%/%m!<%k$7$^$9\e(B (@code{gnus-pick-next-page})\e$B!#\e(B
+\e$B$b$7%P%C%U%!$N:G8e$G$"$l$P!"A*Br5-;v$rFI$_;O$a$^$9!#\e(B
+
+@item u
+@kindex u (\e$BA*Br\e(B)
+@findex gnus-summary-unmark-as-processable
+\e$B5-;v$rL$A*Br$K$7$^$9\e(B (@code{gnus-summary-unmark-as-processable})\e$B!#\e(B
+
+@item U
+@kindex U (\e$BA*Br\e(B)
+@findex gnus-summary-unmark-all-processable
+\e$B$9$Y$F$N5-;v$rL$A*Br$K$7$^$9\e(B
+(@code{gnus-summary-unmark-all-processable})\e$B!#\e(B
+
+@item t
+@kindex t (\e$BA*Br\e(B)
+@findex gnus-uu-mark-thread
+\e$B%9%l%C%I$rA*Br$7$^$9\e(B (@code{gnus-uu-mark-thread})\e$B!#\e(B
+
+@item T
+@kindex T (\e$BA*Br\e(B)
+@findex gnus-uu-unmark-thread
+\e$B%9%l%C%I$rL$A*Br$K$7$^$9\e(B (@code{gnus-uu-unmark-thread})\e$B!#\e(B
+
+@item r
+@kindex r (\e$BA*Br\e(B)
+@findex gnus-uu-mark-region
+\e$B%j!<%8%g%s$rA*Br$7$^$9\e(B (@code{gnus-uu-mark-region})\e$B!#\e(B
+
+@item R
+@kindex R (\e$BA*Br\e(B)
+@findex gnus-uu-unmark-region
+\e$B%j!<%8%g%s$rL$A*Br$K$7$^$9\e(B (@code{gnus-uu-unmark-region})\e$B!#\e(B
+
+@item e
+@kindex e (\e$BA*Br\e(B)
+@findex gnus-uu-mark-by-regexp
+\e$B@55,I=8=$K9gCW$9$k5-;v$rA*Br$7$^$9\e(B (@code{gnus-uu-mark-by-regexp})\e$B!#\e(B
+
+@item E
+@kindex E (\e$BA*Br\e(B)
+@findex gnus-uu-unmrak-by-regexp
+\e$B@55,I=8=$K9gCW$9$k5-;v$rL$A*Br$K$7$^$9\e(B (@code{gnus-uu-unmark-by-regexp})\e$B!#\e(B
+
+@item b
+@kindex b (\e$BA*Br\e(B)
+@findex gnus-uu-mark-buffer
+\e$B%P%C%U%!$rA*Br$7$^$9\e(B (@code{gnus-uu-mark-buffer})\e$B!#\e(B
+
+@item B
+@kindex B (\e$BA*Br\e(B)
+@findex gnus-uu-unmark-buffer
+\e$B%P%C%U%!$rL$A*Br$K$7$^$9\e(B (@code{gnus-uu-unmark-buffer})\e$B!#\e(B
+
+@item RET
+@kindex RET (\e$BA*Br\e(B)
+@findex gnus-pick-start-reading
+@vindex gnus-pick-display-summary
+\e$BA*Br$5$l$?5-;v$rFI$_;O$a$^$9\e(B (@code{gnus-pick-start-reading})\e$B!#@\F,0z?t\e(B
+\e$B$rM?$($i$l$l$P!"$^$:$9$Y$F$NL$A*Br5-;v$K4{FI$N0u$rIU$1$^$9!#\e(B
+@code{gnus-pick-display-summary} \e$B$,\e(B @code{nil} \e$B$G$J$$$H!"35N,%P%C%U%!$O\e(B
+\e$BFI$s$G$$$k4V$bI=<($5$l$^$9!#\e(B
+
+@end table
+
+\e$B$3$l$,NI$$9M$($@$H;W$&$N$G$"$l$P!"<!$N$h$&$K$9$k;v$,$G$-$^$9\e(B:
+
+@lisp
+(add-hook 'gnus-summary-mode-hook 'gnus-pick-mode)
+@end lisp
+
+@vindex gnus-pick-mode-hook
+@code{gnus-pick-minor-mode-hook} \e$B$O\e(B pick \e$B%^%$%J!<%b!<%I%P%C%U%!$G<B9T$5\e(B
+\e$B$l$^$9!#\e(B
+
+@vindex gnus-summary-pick-line-format
+pick \e$B%b!<%I$G$N35N,9T$NMM<0$OI8=`$NMM<0$H$O>/$70c$$$^$9!#$=$l$>$l$N9T$N\e(B
+\e$B:G=i$K9T?t$,I=<($5$l$^$9!#\e(B Pick \e$B%b!<%I$N9T$NMM<0$OJQ?t\e(B
+@code{gnus-summary-pick-line-format} \e$B$G@)8f$5$l$^$9\e(B (@pxref{Formatting
+Variables})\e$B!#$3$l$O\e(B @code{gnus-summary-line-format} \e$B$HF1$8MM<0;XDj$r<u$1\e(B
+\e$BIU$1$^$9\e(B (@pxref{Summary Buffer Lines})\e$B!#\e(B
+
+
+@node Binary Groups
+@subsection \e$B%P%$%J%j!<%0%k!<%W\e(B
+@cindex binary groups
+
+@findex gnus-binary-mode
+@kindex M-x gnus-binary-mode
+\e$B$b$7B?$/$N;~4V$r%P%$%J%j!<%0%k!<%W\e(B (binary group) \e$B$G2a$4$7$F$$$k$N$J$i!"\e(B
+\e$B$$$D$b\e(B @kbd{X u}\e$B!"\e(B@kbd{n}\e$B!"\e(B@kbd{RET} \e$B$rC!$/$N$,7y$K$J$C$F$$$k$G$7$g$&!#\e(B
+@kbd{M-x gnus-binary-mode} \e$B$O5-;v$rIaDL$NJ}K!$GI=<($9$kBe$o$j$K!"IaDL$N\e(B
+gnus \e$B$N5-;vA*Br4X?t$r5-;v72$r\e(B uudecode \e$B$7$=$N7k2L$rI=<($9$k$h$&$KJQ99$9\e(B
+\e$B$k!"35N,%P%C%U%!$N$?$a$N%^%$%J!<%b!<%I$G$9!#\e(B
+
+@kindex g (\e$B%P%$%J%j!<\e(B)
+@findex gnus-binary-show-article
+\e$B<B:]$O!"$3$N%b!<%I$K$7$?$H$-$K!"8=<B$N5-;v$r8+$k$?$a$NM#0l$NL?Na$,\e(B 
+@kbd{g} \e$B$G$9\e(B (@code{gnus-binary-show-article})\e$B!#\e(B
+
+@vindex gnus-binary-mode-hook
+@code{gnus-binary-mode-hook} \e$B$,%P%$%J%j!<%^%$%J!<%b!<%I%P%C%U%!$G8F$P$l\e(B
+\e$B$^$9!#\e(B
+
+
+@node Tree Display
+@section \e$BLZI=<(\e(B
+@cindex trees
+
+@vindex gnus-use-trees
+\e$B$b$7IaDL$N\e(B gnus \e$B$N35N,I=<($r9%$-$G$J$$$J$i$P!"\e(B@code{gnus-use-trees} \e$B$r\e(B
+@code{t} \e$B$K@_Dj$7$F$_$k$HNI$$$+$b$7$l$^$;$s!#$3$l$O\e(B (\e$B%G%#%U%)%k%H$G\e(B) \e$BDI\e(B
+\e$B2C$N\e(B @dfn{\e$BLZ%P%C%U%!\e(B} (tree buffer) \e$B$r:n@.$7$^$9!#LZ%P%C%U%!$G$O$9$Y$F$N\e(B
+\e$B35N,%b!<%IL?Na$r<B9T$9$k;v$,$G$-$^$9!#\e(B
+
+\e$B$b$A$m$s!"LZI=<($r%+%9%?%^%$%:$9$kJQ?t$,>/$7$"$j$^$9\e(B:
+
+@table @code
+@item gnus-tree-mode-hook
+@vindex gnus-tree-mode-hook
+\e$B$9$Y$F$NLZ%b!<%I%P%C%U%!$G<B9T$5$l$k%U%C%/$G$9!#\e(B
+
+@item gnus-tree-mode-line-format
+@vindex gnus-tree-mode-line-format
+\e$BLZ%b!<%I%P%C%U%!$G$N%b!<%I9T$N$?$a$N%U%)!<%^%C%HJ8;zNs$G$9!#%G%#%U%)%k%H\e(B
+\e$B$O\e(B @samp{Gnus: %%b %S %Z} \e$B$G$9!#;HMQ2DG=$J;XDj$O\e(B 
+@pxref{Summary Buffer ModeLine} \e$B$r;2>H$7$F$/$@$5$$!#\e(B
+
+@item gnus-selected-tree-face
+@vindex gnus-selected-tree-face
+\e$BLZ%P%C%U%!$GA*Br$5$l$?5-;v$r%O%$%i%$%H$9$k$?$a$K;H$o$l$k%U%'%$%9$G$9!#%G%#\e(B
+\e$B%U%)%k%H$G$O\e(B @code{modeline} \e$B$G$9!#\e(B
+
+@item gnus-tree-line-format
+@vindex gnus-tree-line-format
+\e$BLZ$N@a$N$?$a$N%U%)!<%^%C%HJ8;zNs$G$9!#$G$b$3$NL>A0$O>/$78m$C$?L>>N$G$9\e(B---
+\e$B$=$l$O9T$G$O$J$/!"$?$@@a$rDj5A$9$k$@$1$G$9!#%G%#%U%)%k%H$NCM$O\e(B
+@samp{%(%[%3,3n%]%)} \e$B$G!"$=$l$OEj9F<T$NL>A0$N:G=i$N\e(B3\e$BJ8;z$rI=<($7$^$9!#$9\e(B
+\e$B$Y$F$N@a$,F1$8D9$5$G$"$k$N$O=EMW$G$9$N$G!"\e(B@samp{%4,4n} \e$B$N$h$&$J;XDj$r\e(B 
+@emph{\e$B;H$o$J$1$l$P$J$i$J$$\e(B} \e$B$N$G$9!#\e(B
+
+\e$BM-8z$J;XDj$O\e(B:
+
+@table @samp
+@item n
+\e$BEj9F<T$NL>A0!#\e(B
+@item f
+@code{From} \e$B%X%C%@!<!#\e(B
+@item N
+\e$B5-;v$NHV9f!#\e(B
+@item [
+\e$B3+$-3g8L!#\e(B
+@item ]
+\e$BJD$83g8L!#\e(B
+@item s
+\e$BI=Bj!#\e(B
+@end table
+
+@xref{Formatting Variables}\e$B!#\e(B
+
+\e$BI=<($K4XO"$7$?JQ?t$O\e(B:
+
+@table @code
+@item gnus-tree-brackets
+@vindex gnus-tree-brackets
+\e$B$3$l$O\e(B ``\e$BK\Ev$N\e(B'' \e$B5-;v$H\e(B ``\e$B$^$P$i5-;v\e(B'' \e$B$K0c$$$rIU$1$k$?$a$K;H$o$l$^$9!#\e(B
+\e$BMM<0$O\e(B 
+@var{((\e$BK\Ev$N3+\e(B . \e$BK\Ev$NJD\e(B) (\e$B$^$P$i3+\e(B . \e$B$^$P$iJD\e(B) (\e$B56$N3+\e(B . \e$B56$NJD\e(B))}
+\e$B$H$J$C$F$$$F!"%G%#%U%)%k%H$O\e(B 
+@code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))} \e$B$G$9!#\e(B
+
+@item gnus-tree-parent-child-cdges
+@vindex gnus-tree-parent-chlid-edges
+\e$B$3$l$O?F$N@a$r;R$K@\B3$9$k$?$a$K;H$o$l$kJ8;z$r4^$s$@%j%9%H$G$9!#%G%#%U%)\e(B
+\e$B%k%H$O\e(B @code{(?- ?\\ ?|)} \e$B$G$9!#\e(B
+
+@end table
+
+@item gnus-tree-minimize-window
+@vindex gnus-tree-minimize-winodw
+\e$B$b$7$3$NJQ?t$,\e(B @code{nil} \e$B$G$J$$$H!"B>$N\e(B gnus \e$B%&%#%s%I%&$,$b$C$H>l=j$r<h\e(B
+\e$B$l$k$h$&$K\e(B gnus \e$B$OLZ%P%C%U%!$r$G$-$k$@$1>.$5$/$7$^$9!#$b$7$3$NJQ?t$,?t;z\e(B
+\e$B$G$"$k$H!"LZ%P%C%U%!$O$=$N?t;z$h$jBg$-$/$J$k;v$O$"$j$^$;$s!#%G%#%U%)%k%H\e(B
+\e$B$O\e(B @code{t} \e$B$G$9!#%U%l!<%`$G$$$/$D$+$N%&%#%s%I%&$,2#$KJB$s$GI=<($5$l$F$$\e(B
+\e$B$F!"LZ%P%C%U%!$,$=$N$&$A$N0l$D$G$"$k>l9g!"LZ%&%#%s%I%&$r:G>.2=$9$k$3$H$O\e(B
+\e$B$=$NNY$KI=<($5$l$F$$$k$9$Y$F$N%&%#%s%I%&$NBg$-$5$rJQ99$9$k;v$KCm0U$7$F$/\e(B
+\e$B$@$5$$!#\e(B
+
+@item gnus-generate-tree-function
+@vindex gnus-generate-tree-function
+@findex gnus-generate-horizontal-tree
+@findex gnus-generate-vertical-tree
+\e$B<B:]$K%9%l%C%I$NLZ$r:n@.$9$k4X?t$G$9!#\e(B2\e$B$D$N4{Dj5A$N;HMQ2DG=$J4X?t$O\e(B:
+@code{gnus-generate-horizontal-tree} \e$B$H\e(B
+@code{gnus-generate-vertical-tree} (\e$B$3$l$,%G%#%U%)%k%H$G$9\e(B) \e$B$G$9!#\e(B
+
+@end table
+
+\e$B?eJ?LZ%P%C%U%!\e(B (horizontal tree buffer) \e$B$NNc$G$9\e(B:
+
+@example
+@{***@}-(***)-[odd]-[Gun]
+     |      \[Jan]
+     |      \[odd]-[Eri]
+     |      \(***)-[Eri]
+     |            \[odd]-[Paa]
+     \[Bjo]
+     \[Gun]
+     \[Gun]-[Jor]
+@end example
+
+\e$BF1$8%9%l%C%I$,?bD>LZ%P%C%U%!\e(B (vertical tree buffer) \e$B$GI=<($5$l$?$b$N$G$9\e(B:
+
+@example
+@{***@}
+  |--------------------------\-----\-----\
+(***)                         [Bjo] [Gun] [Gun]
+  |--\-----\-----\                          |
+[odd] [Jan] [odd] (***)                   [Jor]
+  |           |     |--\
+[Gun]       [Eri] [Eri] [odd]
+                          |
+                        [Paa]
+@end example
+
+\e$B$b$7?eJ?LZ$r;H$C$F$$$k$N$J$i!"35N,%P%C%U%!$GLZ$rNY$j9g$o$;$GI=<($G$-$l$P\e(B
+\e$B4r$7$$$G$7$g$&!#<!$N$h$&$J$b$N$r%U%!%$%k\e(B @file{.gnus.el} \e$B$K2C$($k;v$,$G\e(B
+\e$B$-$^$9\e(B:
+
+@lisp
+(setq gnus-use-trees t
+      gnus-generate-tree-function 'gnus-generate-horizontal-tree
+      gnus-tree-minimize-window nil)
+(gnus-add-configuration
+ '(article
+   (vertical 1.0
+             (horizontal 0.25
+                         (summary 0.75 point)
+                         (tree 1.0))
+             (article 1.0))))
+@end lisp
+
+@xref{Windows Configuration}\e$B!#\e(B
+
+
+@node Mail Group Commands
+@section \e$B%a!<%k%0%k!<%WL?Na\e(B
+@cindex mail group commands
+
+\e$B$$$/$D$+$NL?Na$O%a!<%k%0%k!<%W$N$_$G0UL#$r;}$A$^$9!#$3$l$i$NL?Na$,8=:_$N\e(B
+\e$B%0%k!<%W$GM-8z$G$J$$$J$i!"$=$l$i$OBgA{$.$r$7$F$"$J$?$KCN$i$;$k$G$7$g$&!#\e(B
+
+\e$B$9$Y$F$N$3$l$i$NL?Na$O\e(B (\e$B4|8B:o=|$HJT=8L?Na$O=|$/\e(B) \e$B%W%m%;%9\e(B/\e$B@\F,0z?t$N=,\e(B
+\e$B47$r;H$$$^$9\e(B (@pxref{Process/Prefix})\e$B!#\e(B
+
+@table @kbd
+
+@item B e
+@kindex B e (\e$B35N,\e(B)
+@findex gnus-summay-expire-articles
+\e$B%0%k!<%W$N$9$Y$F$N4|8B:o=|2DG=$J5-;v$r4|8B@Z$l:o=|$7$^$9\e(B
+(@code{gnus-summary-expire-articles})\e$B!#\e(B
+
+@item B M-C-e
+@kindex B M-C-e (\e$B35N,\e(B)
+@findex gnus-summary-expire-article-now
+\e$B%0%k!<%W$N$9$Y$F$N4|8B:o=|2DG=$J5-;v:o=|$7$^$9\e(B
+(@code{gnus-summay-expire-articles-now})\e$B!#$3$l$O8=:_$N%0%k!<%W$N3:Ev$9$k\e(B
+@strong{\e$BA4$F\e(B} \e$B$N4|8B:o=|5-;v$O1J1s$K6u$NBg$-$J\e(B @file{/dev/null} \e$B$X>C$(5n\e(B
+\e$B$k$H$$$&;v$G$9!#\e(B
+
+@item B DEL
+@kindex B DEL (\e$B35N,\e(B)
+@findex gnus-summary-delete-article
+@c @icon{gnus-summary-mail-delete}
+\e$B%a!<%k5-;v$r:o=|$7$^$9!#$3$l$O\e(B ''\e$B$"$J$?$N%G%#%9%/$+$i:#$+$i1J1s$K:o=|$7\e(B
+\e$B$F!"FsEY$HLa$i$J$$\e(B'' \e$B$N\e(B``\e$B:o=|\e(B'' \e$B$G$9!#Cm0U$7$F;H$C$F$/$@$5$$\e(B 
+(@code{gnus-summary-delete-article})\e$B!#\e(B
+
+@item B m
+@kindex B m (\e$B35N,\e(B)
+@cindex move mail
+@findex gnus-summary-move-article
+\e$B$"$k%a!<%k%0%k!<%W$+$iJL$N$H$3$m$X5-;v$r0\F0$7$^$9\e(B
+(@code{gnus-summary-move-article})\e$B!#\e(B
+
+@item B c
+@kindex B c (\e$B35N,\e(B)
+@cindex copy mail
+@findex gnus-summary-copy-article
+@c @icon{gnus-summary-mail-copy}
+\e$B$"$k%0%k!<%W\e(B (\e$B%a!<%k%0%k!<%W$dB>$N$b$N\e(B) \e$B$+$i%a!<%k%0%k!<%W$K5-;v$rJ#@=$7\e(B
+\e$B$^$9\e(B (@code{gnus-summary-copy-article})\e$B!#\e(B
+
+@item B B
+@kindex B B (\e$B35N,\e(B)
+@cindex crosspost mail
+@findex gnus-summary-crosspost-article
+\e$B8=:_$N5-;v$rB>$N%0%k!<%W$K%/%m%9%]%9%H$7$^$9\e(B
+(@code{gnus-summary-crosspost-article})\e$B!#$3$l$OB>$N%0%k!<%W5-;v$N?7$7$$\e(B
+\e$BJ#@=$r:n@.$7!"5-;v$N\e(B Xref \e$B%X%C%@!<$bE,@Z$K99?7$5$l$^$9!#\e(B
+
+@item B i
+@kindex B i (\e$B35N,\e(B)
+@findex gnus-summary-import-article
+\e$BG$0U$N%U%!%$%k$r8=:_$N%a!<%k%0%k!<%W$K<h$j9~$_$^$9\e(B
+(@code{gnus-summary-import-article})\e$B!#$"$J$?$O%U%!%$%kL>$H!"\e(B@code{From}
+\e$B%X%C%@!<$H\e(B @code{Subject} \e$B%X%C%@!<\e(B \e$B$NF~NO$rB%?J$5$l$^$9!#\e(B
+
+@item B r
+@kindex B r (\e$B35N,\e(B)
+@findex gnus-summary-respool-article
+\e$B%a!<%k5-;v$r%9%W!<%k$7D>$7$^$9\e(B (@code{gnus-summary-move-article})\e$B!#\e(B
+@code{gnus-summary-respool-default-method} \e$B$,:F%9%W!<%k$9$k$H$-$N%G%#%U%)\e(B
+\e$B%k%H$NA*BrJ}K!$H$7$F;HMQ$5$l$^$9!#$3$NJQ?t$O%G%#%U%)%k%H$G\e(B @code{nil} \e$B$G!"\e(B
+\e$B$3$l$O8=:_$N%0%k!<%W$NA*BrJ}K!$,Be$o$j$K;H$o$l$k$H$$$&;v$G$9!#\e(B
+
+@item B w
+@itemx e
+@kindex B w (\e$B35N,\e(B)
+@kindex e (\e$B35N,\e(B)
+@findex gnus-summary-edit-article
+@kindex C-c C-c (\e$B5-;v\e(B)
+\e$B8=:_$N5-;v$rJT=8$7$^$9\e(B (@code{gnus-summary-edit-article})\e$B!#JT=8$r=*N;$7\e(B
+\e$B$FJQ99$r1J1s$K$9$k$?$a$K!"\e(B@kbd{C-c C-c} \e$B$rBG$A$^$9!#$b$7L?Na\e(B 
+@kbd{C-c C-c} \e$B$K?tCM@\F,0z?t$rM?$($k$H!"\e(Bgnus \e$B$O5-;v$r:F%O%$%i%$%H$7$^$;\e(B
+\e$B$s!#\e(B
+
+@item B q
+@kindex B q (\e$B35N,\e(B)
+@findex gnus-summary-respool-query
+\e$B$b$75-;v$r:F%9%W!<%k$7$?$$$H$-$O!":F%9%W!<%k$r$9$kA0$K$I$N%0%k!<%W$K5-;v\e(B
+\e$B$,0\$k$+$K6=L#$,$"$k$G$7$g$&!#$3$NL?Na$G$=$l$,$o$+$j$^$9\e(B
+(@code{gnus-summary-respool-query})\e$B!#\e(B
+
+@item B p
+@kindex B p (\e$B35N,\e(B)
+@findex gnus-summary-article-posted-p
+\e$B0lIt$N?M$O$"$J$?$NEj9F$X$N%U%)%m!<%"%C%W$r$9$k$H$-$K!"\e(B``\e$B?F@Z$J\e(B'' \e$BJ#@=$r\e(B
+\e$BAw$k798~$,$"$j$^$9!#$3$l$i$OIaDL$O$=$3$K\e(B @code{Newsgroups} \e$B%X%C%@!<$,IU\e(B
+\e$B$$$F$$$k$N$G$9$,!"$$$D$bAj$G$"$k$H$O8B$j$^$;$s!#$3$NL?Na\e(B
+(@code{gnus-summary-article-posted-p}) \e$B$O8=:_$N5-;v$r$"$J$?$N%K%e!<%:%5!<\e(B
+\e$B%P!<$+$i\e(B (\e$B$H$$$&$h$j$O!"$`$7$m\e(B @code{gnus-refer-article-method} \e$B$d\e(B
+@code{gnus-select-method} \e$B$+$i\e(B) \e$B<hF@$7$h$&$H$7!"5-;v$rH/8+$G$-$?$+$I$&$+\e(B
+\e$B$rJs9p$7$^$9!#$=$l$,5-;v$rH/8+$7$J$+$C$?$H$7$F$b!"$=$l$O$H$K$+$/Ej9F$5$l\e(B
+\e$B$F$$$k$+$b$7$l$^$;$s\e(B---\e$B%a!<%k$NEAC#$O%K%e!<%:$NEAC#$h$j$b$:$C$HB.$/!"%K%e!<\e(B
+\e$B%:$NJ#@=$,$^$@E~Ce$7$F$$$J$$$@$1$+$b$7$l$J$$$N$G$9!#\e(B
+
+@end table
+
+@vindex gnus-move-split-methods
+@cindex moving articles
+\e$B$b$7!"5,B'E*$K5-;v$r0\F0\e(B (\e$B$b$7$/$OJ#@=\e(B) \e$B$9$k$N$G$"$l$P!"\e(Bgnus \e$B$K5-;v$r$I\e(B
+\e$B$3$KF~$l$l$PNI$$$+Ds0F$5$;$?$$$H;W$&$G$7$g$&!#\e(B
+@code{gnus-move-split-methods} \e$B$O\e(B @code{gnus-split-methods} \e$B$HF1$89=J8\e(B
+\e$B$r;H$&JQ?t$G$9\e(B (@pxref{Saving Articles})\e$B!#$"$J$?$,BEEv$@$H;W$&$h$&$JDs0F\e(B
+\e$B$r$9$k$h$&$K$=$NJQ?t$r%+%9%?%^%$%:$9$k;v$,$G$-$^$9!#\e(B
+
+@lisp
+(setq gnus-move-split-methods
+      '(("^From:.*Lars Magne" "nnml:junk")
+        ("^Subject:.*gnus" "nnfolder:important")
+        (".*" "nnml:misc")))
+@end lisp
+
+
+@node Various Summary Stuff
+@section \e$B$$$m$$$m$J35N,$NJ*7o\e(B
+
+@menu
+* Summary Group Information::         \e$B>pJs;X8~$NL?Na!#\e(B
+* Searching for Articles::            \e$BJ#?t5-;vL?Na!#\e(B
+* Summary Generation Commands::       \e$B35N,%P%C%U%!$N\e(B (\e$B:F\e(B) \e$B:n@.!#\e(B
+* Really Various Summary Commands::   \e$B$"$N$d$C$+$$$JB>$KE,9g$7$J$$L?Na!#\e(B
+@end menu
+
+@table @code
+@vindex gnus-summary-mode-hook
+@item gnus-summary-mode-hook
+\e$B35N,%b!<%I%P%C%U%!$r:n@.$9$k$H$-$K$3$N%U%C%/$,8F$P$l$^$9!#\e(B
+
+@vindex gnus-summary-generate-hook
+@item gnus-summary-generate-hook
+\e$B$3$l$O%9%l%C%I:n@.$H35N,%P%C%U%!:n@.$NA0$K<B9T$9$k:G8e$N$b$N$H$7$F8F$P$l\e(B
+\e$B$^$9!#$3$l$O%K%e!<%:%0%k!<%W$N;}$C$F$$$k%G!<%?$K4p$E$$$F%9%l%C%I$NJQ?t$r\e(B
+\e$B%+%9%?%^%$%:$9$k$?$a$KHs>o$KJXMx$G$9!#$3$N%U%C%/$O$[$H$s$I$N35N,%P%C%U%!\e(B
+\e$BJQ?t$,@_Dj$5$l$?8e$K8F$P$l$^$9!#\e(B
+
+@vindex gnus-summary-prepare-hook
+@item gnus-summary-prepare-hook
+\e$B$=$l$O35N,%P%C%U%!$,:n@.$5$l$?8e$K8F$P$l$^$9!#Nc$($P!"$=$l$O2?$+B>$N<Y0-\e(B
+\e$B$JJ}K!$G9T$r%O%$%i%$%H$7$?$j!"%P%C%U%!$N8+$(J}$r=$@5$7$?$j$9$k$N$K;H$C$?\e(B
+\e$B$j$9$k$+$bCN$l$^$;$s!#\e(B
+
+@vindex gnus-summary-ignore-cuplicates
+@item gnus-summary-ignore-duplicates
+Gnus \e$B$,F1$8\e(B @code{Message-ID} \e$B$r;}$D\e(B2\e$B$D$N5-;v$rH/8+$7$?$H$-$O!"2?$+;W$$\e(B
+\e$B@Z$C$?;v$r$7$J$1$l$P$J$j$^$;$s!#JL$N5-;v$,F1$8\e(B @code{Message-ID} \e$B$r;}$D\e(B
+\e$B;v$O5v$5$l$F$$$^$;$s$,!"$=$l$O2?$i$+$N=P=j$+$i%a!<%k$rFI$s$G$$$k$H$-$K5/\e(B
+\e$B$3$k$+$b$7$l$^$;$s!#\e(BGnus \e$B$O$3$NJQ?t$K$h$C$F2?$,5/$3$k$+$r%+%9%?%^%$%:$G\e(B
+\e$B$-$k$h$&$K$J$C$F$$$^$9!#$b$7$=$l$,\e(B @code{nil} (\e$B$3$l$,%G%#%U%)%k%H$G$9\e(B)
+\e$B$G$"$l$P!"\e(Bgnus \e$B$O\e(B @code{Message-ID} \e$B$rIU$1BX$($F\e(B (\e$BI=<($N$?$a$@$1$K\e(B) \e$B5-;v\e(B
+\e$B$rB>$N5-;v$HF1$8$h$&$KI=<($7$^$9!#$3$NJQ?t$,\e(B @code{t} \e$B$G$"$k$H!"$=$l$O5-\e(B
+\e$B;v$rI=<($7$^$;$s\e(B---\e$B:G=i$+$iB8:_$7$J$+$C$?$+$N$h$&$K!#\e(B
+
+@end table
+
+
+@node Summary Group Information
+@subsection \e$B35N,%0%k!<%W>pJs\e(B
+
+@table @kbd
+
+@item H f
+@kindex H f (\e$B35N,\e(B)
+@findex gnus-summary-fetch-faq
+@vindex gnus-grou-faq-directory
+\e$B8=:_$N%0%k!<%W$N\e(B FAQ (frequently asked questions (\e$BIQHK$K$5$l$k<ALd\e(B) \e$B$N%j\e(B
+\e$B%9%H\e(B) \e$B$r<hF@$7$h$&$H$7$^$9\e(B (@code{gnus-summary-fetch-faq})\e$B!#\e(BGnus \e$B$OIaDL\e(B
+\e$B$O1s3V%^%7%s$N%G%#%l%/%H%j$G$"$k\e(B @code{gnus-group-faq-directory} \e$B$+$i\e(B 
+FAQ \e$B$r<hF@$7$h$&$H$7$^$9!#$3$NJQ?t$O%G%#%l%/%H%j!<$N%j%9%H$G$"$k;v$b$G$-\e(B
+\e$B$^$9!#$=$N>l9g$O!"$3$NL?Na$K@\F,0z?t$rM?$($k;v$G$$$m$$$m$J%5%$%H\e(B (site) 
+\e$B$+$iA*$V;v$,$G$-$^$9!#$*$=$i$/\e(B @code{ange-ftp} \e$B$b$7$/$O\e(B @code{efs} \e$B$,%U%!\e(B
+\e$B%$%k$N<hF@$K;H$o$l$k$G$7$g$&!#\e(B
+
+@item H d
+@kindex H d (\e$B35N,\e(B)
+@findex gnus-summary-describe-group
+\e$B8=:_$N%0%k!<%W$K4X$9$kC;$$5-=R$rM?$($^$9\e(B
+(@code{gnus-summary-describe-group})\e$B!#\e(B \e$B@\F,0z?t$,M?$($i$l$k$H!"%5!<%P!<\e(B
+\e$B$+$i6/@)E*$K5-=R$N:FFI$_9~$_$r$7$^$9!#\e(B
+
+@item H h
+@kindex H h (\e$B35N,\e(B)
+@findex gnus-summary-describe-briefly
+\e$B:G=EMW35N,BG80$NHs>o$KC;$$5-=R$rM?$($^$9\e(B
+(@code{gnus-summary-describe-briefly})\e$B!#\e(B
+
+@item H i
+@kindex H i (\e$B35N,\e(B)
+@findex gnus-info-find-node
+Gnus \e$B$N\e(B info \e$B$N@a\e(B (node) \e$B$K0\F0$7$^$9\e(B (@code{gnus-info-find-node})\e$B!#\e(B
+@end table
+
+@node Searching for Articles
+@subsection \e$B5-;v$rC5$9\e(B
+
+@table @kbd
+
+@item M-s
+@kindex M-s (\e$B35N,\e(B)
+@findex gnus-summary-search-article-forward
+\e$BD>8e$K$"$kA4$F$N5-;v$r@55,I=8=$G8!:w$7$^$9\e(B
+(@code{gnus-summary-search-article-forward})\e$B!#\e(B
+
+@item M-r
+@kindex M-r (\e$B35N,\e(B)
+@findex gnus-summary-search-article-backward
+\e$BA0$K$"$kA4$F$N5-;v$r@55,I=8=$G8!:w$7$^$9\e(B
+(@code{gnus-summary-search-article-backward})\e$B!#\e(B
+
+@item &
+@kindex & (\e$B35N,\e(B)
+@findex gnus-summary-execute-command
+\e$B$3$NL?Na$O$"$J$?$K%X%C%@!<ItJ,$H$=$NItJ,$K9gCW$9$k@55,I=8=!"9gCW$7$?>l9g\e(B
+\e$B$K<B9T$5$l$kL?Na$NF~NO$rB%?J$7$^$9\e(B (@code{gnus-summary-execute-command})\e$B!#\e(B
+\e$B$b$7@\F,0z?t$rM?$($i$l$l$P!"Be$o$j$K8e$m8~$-$KC5$7$^$9!#\e(B
+
+@item M-&
+@kindex M-& (\e$B35N,\e(B)
+@findex gnus-summary-universal-argument
+\e$B%W%m%;%90u$K$h$C$F0uIU$1$i$l$?A4$F$N5-;v$NA`:n$r<B9T$7$^$9\e(B
+(@code{gnus-summary-universal-argument})\e$B!#\e(B
+@end table
+
+@node Summary Generation Commands
+@subsection \e$B35N,@8@.L?Na\e(B
+
+@table @kbd
+
+@item Y g
+@kindex Y g (\e$B35N,\e(B)
+@findex gnus-summary-prepare
+\e$B8=:_$N35N,%P%C%U%!$r:F:n@.$7$^$9\e(B (@code{gnus-summary-prepare})\e$B!#\e(B
+
+@item Y c
+@kindex Y c (\e$B35N,\e(B)
+@findex gnus-summary-insert-cached-articles
+\e$BA4$F$N\e(B (\e$B8=:_$N%0%k!<%W$K\e(B) \e$B%-%c%C%7%e$5$l$?5-;v\e(B \e$B$r35N,%P%C%U%!$KA^F~$7$^\e(B
+\e$B$9\e(B (@code{gnus-summary-insert-cached-articles})\e$B!#\e(B
+
+@end table
+
+
+@node Reallly various Summary Commands
+@subsection \e$BK\Ev$K$$$m$$$m$J35N,L?Na\e(B
+
+@table @kbd
+
+@item C-d
+@kindex C-d (\e$B35N,\e(B)
+@findex gnus-summary-enter-digest-group
+\e$B$b$78=:_$N%0%k!<%W$,B>$N5-;v$N=8$^$j$G$"$k$J$i$P\e(B (\e$BNc$($P!"E&MW\e(B (digest))\e$B!"\e(B
+\e$B$=$N$h$&$J5-;v$G$G$-$F$$$k%0%k!<%W$KF~$k$?$a$K$3$NL?Na$r;H$&$+$b$7$l$^$;\e(B
+\e$B$s\e(B (@code{gnus-summary-enter-digest-group})\e$B!#\e(BGnus \e$B$O$3$NL?Na$K@\F,0z?t$r\e(B
+\e$BM?$($J$$8B$j!"$I$N$h$&$J7?$N5-;v$,8=:_I=<($5$l$F$$$k$+$r?dB,$7$h$&$H$7!"\e(B
+\e$B$=$l$O6/@)E*$K\e(B ``\e$BE&MW\e(B'' \e$B$H$$$&2r<a$K$J$j$^$9!#4pK\E*$K!"B>$NMM<0$+$i$J$k\e(B
+\e$BB>$N%a%C%;!<%8$N=89g$G$"$C$?$H$-$O!"\e(B@kbd{C-d} \e$B$H$9$k$3$H$K$h$j$b$C$HJXMx\e(B
+\e$B$JJ}K!$G$=$l$i$N%a%C%;!<%8$rFI$`;v$,$G$-$k$h$&$K$J$j$^$9!#\e(B
+
+@item M-C-d
+@kindex M-C-d (\e$B35N,\e(B)
+@findex gnus-summary-read-document
+\e$B$3$NL?Na$O>e$N$b$N$KHs>o$K;w$F$$$^$9$,!"$$$/$D$+$NJ8=q$r0l$D$NBg!<$-$$%0\e(B
+\e$B%k!<%W$K=8$a$^$9\e(B (@code{gnus-summary-read-read-document})\e$B!#$=$l$O$$$/$D\e(B
+\e$B$+$N\e(B @code{nndoc} \e$B%0%k!<%W$r$=$l$>$l$NJ8=q$N$?$a$K\e(B \e$B3+$-!"$=$l$+$i$3$l$i\e(B
+\e$B$N\e(B @code{nndoc} \e$B%0%k!<%W$N>e$K\e(B @code{nnvirtual} \e$B%0%k!<%W$r3+$/;v$K$h$C$F\e(B
+\e$B$3$N;v$r2DG=$K$7$F$$$^$9!#$3$NL?Na$O%W%m%;%9\e(B/\e$B@\F,0z?t$N=,47$rM}2r$7$^$9\e(B
+(@pxref{Process/Prefix})\e$B!#\e(B
+
+@item C-t
+@kindex C-t (\e$B35N,\e(B)
+@findex gnus-summary-togle-truncation
+\e$B35N,9T$N@ZCG$r@Z$jBX$($^$9\e(B (@code{gnus-summary-toggle-truncation})\e$B!#$3$l\e(B
+\e$B$O$*$=$i$/35N,%P%C%U%!$N9TCf1{I=<(4X?t$r:.Mp$5$;$^$9$N$G!"5-;v$rFI$s$G$$\e(B
+\e$B$k4V$K@ZCG$r@Z$C$F$$$k$N$ONI$$9M$($G$O$J$$$G$7$g$&!#\e(B
+
+@item =
+@kindex = (\e$B35N,\e(B)
+@findex gnus-summary-expand-window
+\e$B35N,%P%C%U%!$N%&%#%s%I%&$r3HBg$7$^$9\e(B
+(@code{gnus-summary-expand-window})\e$B!#@\F,0z?t$rM?$($i$l$l$P!"\e(B@code{\e$B5-;v\e(B} 
+\e$B%&%#%s%I%&$r3HBg$7$^$9!#\e(B
+
+@item M-C-e
+@kindex M-C-e (\e$B35N,\e(B)
+@findex gnus-summary-edit-parameters
+\e$B8=:_$N%0%k!<%W$N%0%k!<%W$NG^2pJQ?t\e(B (parameter) (@pxref{Group
+Parameters}) \e$B$rJT=8$7$^$9\e(B (@code{gnus-summary-edit-parameters})\e$B!#\e(B
+
+@end table
+
+
+@node Exiting the Summary Buffer
+@section \e$B35N,%P%C%U%!$rH4$1$k\e(B
+@cindex summary exit
+@cindex exiting groups
+
+\e$BIaDL$O35N,%P%C%U%!$+$iH4$1$k$H!"%0%k!<%W$NA4$F$N>pJs$r99?7$7$F%0%k!<%W%P%C\e(B
+\e$B%U%!$KLa$j$^$9!#\e(B
+
+@table @kbd
+
+@item Z Z
+@itemx q
+@kindex z z (\e$B35N,\e(B)
+@findex q (\e$B35N,\e(B)
+@findex gnus-summary-exit
+@vindex gnus-summary-exit-hook
+@vindex gnus-summary-prepare-exit-hook
+@c @icon{gnus-summary-exit}
+\e$B8=:_$N%0%k!<%W$r=P$F!"%0%k!<%W$NA4$F$N>pJs$r99?7$7$^$9\e(B
+(@code{gnus-summary-exit})\e$B!#H4$1=P$k$?$a$N$?$$$F$$$N;v$r$9$kA0$K\e(B 
+@code{gnus-summary-prepare-exit-hook} \e$B$,8F$P$l!"$=$l$O%G%#%U%)%k%H$G\e(B 
+@code{gnus-summary-expire-articles} \e$B$r8F$S$^$9!#H4$1=P$k2aDx$rDI$($?8e$K\e(B 
+@code{gnus-summary-exit-hook} \e$B$,8F$P$l$^$9!#\e(B(\e$BL$FI$N\e(B) \e$B%0%k!<%W$,;D$C$F$$\e(B
+\e$B$J$$$H$-$K%0%k!<%W%b!<%I$KLa$k$H$-$K\e(B 
+@code{gnus-group-no-more-groups-hook} \e$B$,<B9T$5$l$^$9!#\e(B
+
+@item Z E
+@itemx Q 
+@kindex Z E (\e$B35N,\e(B)
+@findex Q (\e$B35N,\e(B)
+@findex gnus-summary-exit-no-update
+\e$B%0%k!<%W$N$I$N>pJs$b99?7$;$:$K8=:_$N%0%k!<%W$rH4$1=P$^$9\e(B
+(@code{gnus-summary-exit-no-update})\e$B!#\e(B
+
+@item Z c
+@itemx c
+@kindex Z c (\e$B35N,\e(B)
+@kindex c (\e$B35N,\e(B)
+@findex gnus-summary-catchup-and-exit
+@c @icon{gnus-summary-catchup-and-exit}
+\e$B%0%k!<%W$NA4$F$NJ]N1$G$J$$5-;v\e(B (unticked article) \e$B$K4{FI$N0u$rIU$1$F!"$=\e(B
+\e$B$l$+$iH4$1$^$9\e(B (@code{gnus-summary-catchup-and-exit})\e$B!#\e(B
+
+@item Z C
+@kindex Z C (\e$B35N,\e(B)
+@findex gnus-summary-catchup-all-and-exit
+\e$BJ]N15-;v$b4^$a$F!"A4$F$N5-;v$K4{FI$N0u$rIU$1$F!"$=$l$+$iH4$1$^$9\e(B 
+(@code{gnus-summary-catchup-all-and-exit})\e$B!#\e(B
+
+@item Z n
+@kindex Z n (\e$B35N,\e(B)
+@findex gnus-summary-catchup-and-goto-next-group
+\e$BA4$F$N5-;v$K4{FI$N0u$rIU$1$F<!$N%0%k!<%W$X0\F0$7$^$9\e(B 
+(@code{gnus-summary-catchup-and-goto-next-group})\e$B!#\e(B
+
+@item Z R
+@kindex Z R (\e$B35N,\e(B)
+@findex gnus-summary-reselect-current-group
+\e$B8=:_$N%0%k!<%W$r=P$F!"$=$l$+$iF~$jD>$7$^$9\e(B 
+(@code{gnus-summary-reselect-current-group})\e$B!#\e(B \e$B$b$7@\F,0z?t$rM?$($i$l$l\e(B
+\e$B$P!"4{FI$HL$FI$NN>J}$NA4$F$N5-;v$rA*Br$7$^$9!#\e(B
+
+@item Z G
+@itemx M-g
+@kindex Z G (\e$B35N,\e(B)
+@kindex M-g (\e$B35N,\e(B)
+@findex gnus-summary-rescan-group
+@c @icon{gnus-summary-mail-get}
+\e$B%0%k!<%W$rH4$1!"%0%k!<%W$N?7$7$$5-;v$rD4$Y!"%0%k!<%W$rA*Br$7$^$9\e(B 
+(@code{gnus-summary-rescan-group})\e$B!#$b$7@\F,0z?t$rM?$($i$l$l$P!"4{FI$HL$\e(B
+\e$BFI$NN>J}$NA4$F$N5-;v$rA*Br$7$^$9!#\e(B
+
+@item Z N
+@kindex Z N (\e$B35N,\e(B)
+@findex gnus-summary-next-group
+\e$B%0%k!<%W$rH4$1$F!"<!$N%0%k!<%W$X0\F0$7$^$9\e(B 
+(@code{gnus-summary-next-group})\e$B!#\e(B
+
+@item Z P
+@kindex Z P (\e$B35N,\e(B)
+@findex gnus-summary-prev-group
+\e$B%0%k!<%W$rH4$1$F!"A0$N%0%k!<%W$X0\F0$7$^$9\e(B 
+(@code{gnus-summary-prev-group})\e$B!#\e(B
+
+@item Z s
+@kindex Z s (\e$B35N,\e(B)
+@findex gnus-summary-save-newsrc
+\e$B8=:_$N4{FI\e(B/\e$B0uIU$-5-;v$N?t$r%I%j%V%k%P%C%U%!\e(B (dribble buffer) \e$B$KJ]B8$7!"\e(B
+\e$B$=$l$+$i%I%j%V%k%P%C%U%!$rJ]B8$7$^$9\e(B (@code{gnus-summary-save-newrc})\e$B!#\e(B
+\e$B$b$7@\F,0z?t$rM?$($i$l$l$P!"%U%!%$%k\e(B @file{.newsrc} \e$B$bJ]B8$7$^$9!#$3$NL?\e(B
+\e$BNa$r;H$&$H!"99?7$J$7$GH4$1=P$k;v\e(B (@kbd{Q} \e$BL?Na\e(B) \e$B$O0UL#$,L5$/$J$j$^$9!#\e(B
+@end table
+
+@vindex gnus-exit-group-hook
+\e$B8=:_$N%0%k!<%W$rH4$1$k$H$-$K\e(B @code{gnus-exit-group-hook} \e$B$,8F$P$l$^$9!#\e(B
+
+@findex gnus-summary-wake-up-the-dead
+@findex gnus-dead-summary-mode
+@vindex gnus-kill-summary-on-exit
+\e$B$"$J$?$K%0%k!<%W$rH4$1$F!"$=$l$+$i9M$($rJQ$($kJJ$,$"$k$N$G$"$l$P!"\e(B 
+@code{gnus-kill-summary-on-exit} \e$B$r\e(B @code{nil} \e$B$K@_Dj$9$k$N$,NI$$$+$b$7\e(B
+\e$B$l$^$;$s!#$b$7$=$&$9$l$P!"\e(Bgnus \e$B$O$=$l$+$iH4$1=P$k$H$-$K35N,%P%C%U%!$r:o\e(B
+\e$B=|$7$^$;$s!#\e(B (\e$B2?$H$$$&6C$-\e(B!) \e$B$=$NBe$o$j$K!"$=$l$O%P%C%U%!$NL>A0$r\e(B 
+@samp{*Dead Summary ... *} \e$B$N$h$&$J$b$N$KJQ99$7!"\e(B
+@code{gnus-dead-summary-mode} \e$B$H8F$P$l$k%^%$%J!<%b!<%I$rF3F~$7$^$9!#:#$d!"\e(B
+\e$B$=$N%P%C%U%!$K@Z$jBX$($l$P!"A4$F$N%-!<$,4X?t\e(B 
+@code{gnus-summary-wake-up-the-dead} \e$B$K3d$jEv$F$i$l$F$$$k$3$H$K5$IU$/$G\e(B
+\e$B$7$g$&!#;`$s$@35N,%P%C%U%!\e(B (dead summary buffer) \e$B$G$I$l$+$N%-!<$rC!$/;v\e(B
+\e$B$H!"@8$-$?IaDL$N35N,%P%C%U%!$K$J$k$G$7$g$&!#\e(B
+
+\e$B;`$s$@35N,%P%C%U%!$OF1;~$K0l$D$7$+B8:_$9$k;v$O$G$-$^$;$s!#\e(B
+
+@vindex gnus-use-cross-reference
+\e$B35N,%P%C%U%!$rH4$1=P$k$H!"8=:_$N%0%k!<%W$N%G!<%?$O99?7$5$l$^$9\e(B (\e$B$I$N5-;v\e(B
+\e$B$rFI$s$G!"$I$N5-;v$KJVEz$7$?$+!"$J$I$J$I!#\e(B) \e$B$b$7JQ?t\e(B 
+@code{gnus-use-cross-reference} \e$B$,\e(B @code{t} \e$B$G$"$k$H\e(B (\e$B$=$l$,%G%#%U%)%k%H\e(B
+\e$B$G$9\e(B)\e$B!"$=$N%0%k!<%W$KAj8_;2>H$5$l$?\e(B (cross referenced) \e$B5-;v$O4{FI$N0u$,\e(B
+\e$BIU$-!"$=$l$,Aj8_Ej9F\e(B (cross post) \e$B$5$l$?B>$N9XFI$7$F$$$k%0%k!<%W$G$b4{FI\e(B
+\e$B$N0u$,IU$-$^$9!#$3$NJQ?t$,\e(B @code{nil} \e$B$G$b\e(B @code{t} \e$B$G$J$1$l$P!"5-;v$O9X\e(B
+\e$BFI$HL$9XFI$NN>J}$N%0%k!<%W$G4{FI$N0u$,IU$-$^$9\e(B (@pxref{Crosspost
+Handling})\e$B!#\e(B
+
+
+@node Crosspost Handling
+@section \e$BAj8_Ej9F$N07$$\e(B
+
+@cindex velveeta
+@cindex spamming
+\e$BAj8_Ej9F\e(B (cross post) \e$B$5$l$?5-;v$K4{FI$N0u$rIU$1$k;v$O!"F1$85-;v$r\e(B2\e$B2s0J\e(B
+\e$B>eFI$^$J$$$G$9$`$H$$$&;v$rJ]>Z$7$^$9!#$b$A$m$s!"$@$l$+$,$=$l$r$$$/$D$+$N\e(B
+\e$B%0%k!<%W$KJL!9$KEj9F$7$J$$8B$j$O!#F1$85-;v$r$$$/$D$+$N%0%k!<%W$KEj9F$9$k\e(B
+\e$B;v\e(B (\e$BAj8_Ej9F$G$J$/$F\e(B) \e$B$O\e(B @dfn{spamming} (\e$B%9%Q%_%s%0\e(B) \e$B$H8F$P$l!"$"$J$?$O\e(B
+\e$B$=$N$h$&$JA~$`$Y$-HH:a$r9T$&$b$N$K$KBP$7$F!"K!N'$K$h$C$FIT2w$J5-;v$rAw$k\e(B
+\e$B$3$H$,5AL3$E$1$i$l$F$$$^$9!#\e(Bspam (\e$B%9%Q%`\e(B) \e$B$rA*JL$9$k$?$a$K!"\e(BNoCeM \e$B<h07$r\e(B
+\e$B;n$7$?$$$H;W$&$+$b$7$l$^$;$s\e(B (@pxref{NoCeM})\e$B!#\e(B
+
+\e$B3P$($F$/$@$5$$\e(B: \e$BAj8_Ej9F$O9=$$$^$;$s$,!"F1$85-;v$rJL!9$K$$$/$D$+$N%0%k!<\e(B
+\e$B%W$KEj9F$9$k$N$O5v$5$l$^$;$s!#BgNL$NAj8_Ej9F\e(B (@dfn{velveeta} (\e$B%Y%k%Y!<%?\e(B))
+\e$B$O$I$&$7$F$bHr$1$i$l$k$Y$-$G!"2a>jAj8_Ej9F$KBP$7$FITK~$r8@$&$?$a$KL?Na\e(B 
+@code{gnus-summary-mail-crosspost-complaint} \e$B$r;H$&$3$H$5$($G$-$^$9!#\e(B
+
+@cindex cross-posting
+@cindex Xref
+@cindex @sc{nov}
+\e$BAj8_Ej9F$r\e(B gnus \e$B$,@5$7$/07$($J$$$h$&$K$J$k860x$N0l$D$O!"\e(B@sc{nov} \e$B9T$K\e(B 
+@code{Xref} \e$B%X%C%@!<$r4^$^$J$$!"\e(B@sc{xover} (\e$B$3$l$OHs>o$KNI$$$G$9!"$H$$$&\e(B
+\e$B$N$O$=$l$OB.EY$r$H$F$bB.$/$9$k$+$i$G$9\e(B) \e$B$N;HMQ2DG=$J\e(B @sc{nntp} \e$B%5!<%P!<\e(B
+\e$B$r;H$C$F$$$k$3$H$G$9!#$3$l$O320-$J$N$G$9$,!"$"$!!"Ha$7$$$+$J!"Hs>o$KNI$/\e(B
+\e$B$"$k;v$G$9!#\e(BGnus \e$B$O$"$J$?$,FI$s$@A4$F$N5-;v$K\e(B @code{Xref} \e$B9T$rEPO?$9$k;v\e(B
+\e$B$G!"@5$7$$;v$r$7$h$&\e(B \e$B$H$7$^$9$,!"5-;v$r:o=|$9$k$+!"FI$^$J$$$G4{FI$N0u$r\e(B
+\e$BIU$1$k$H!"\e(Bgnus \e$B$O$3$l$i$N5-;v$K\e(B @code{Xref} \e$B$N9T$r$N$>$-$^$o$k5!2q$rF@$k\e(B
+\e$B;v$,L5$/!"Aj8_;2>H5!9=$rMQ$$$k;v$,$G$-$^$;$s!#\e(B
+
+@cindex LIST overview.fmt
+@cindex overview.fmt
+\e$B$"$J$?$N\e(B @sc{nntp} \e$B%5!<%P!<$,$=$N354Q%U%!%$%k\e(B (overview file) \e$B$K\e(B
+@code{Xref} \e$B%X%C%@!<$r4^$s$G$$$k$+$rD4$Y$k$K$O!"\e(B
+@samp{telnet your.nntp.server nntp} \e$B$H$7$F!"\e(B@code{inn} \e$B%5!<%P!<$G\e(B 
+@samp{More READER} \e$B$H$7!"$=$l$+$i\e(B @samp{LIST overview.fmt} \e$B$H$9$k;v$r;n\e(B
+\e$B$7$F$/$@$5$$!#$3$l$OF0:n$7$J$$$G$7$g$&$,!"$b$7F0:n$7$F!"<hF@$7$?:G8e$N9T\e(B
+\e$B$,\e(B @samp{Xref:full} \e$B$G$J$$$J$i$P!"%K%e!<%:$N4IM}<T$,354Q%U%!%$%k$K\e(B 
+@code{Xref} \e$B%X%C%@!<$r4^$`$h$&$K$9$k$^$G!"%K%e!<%:$N4IM}<T$K6+$S!"5c$-IU\e(B
+\e$B$/;v$rB3$1$k$Y$-$G$7$g$&!#\e(B
+
+@vindex gnus-nov-is-evil
+Gnus \e$B$K$$$D$G$b@5$7$$\e(B @code{Xref} \e$B$r<hF@$9$k$h$&$K$5$;$?$$$N$G$"$l$P!"\e(B
+@code{gnus-nov-is-evil} \e$B$r\e(B @code{t} \e$B$K$9$kI,MW$,$"$j!"$=$l$OHs>o$KB.EY$r\e(B
+\e$BCY$/$7$^$9!#\e(B
+
+\e$B$^!"?M@8$O$=$N$h$&$J$b$N$G$9!#\e(B
+
+\e$BBeBX<jCJ$KIU$$$F$O\e(B @pxref{Duplicate Suppression} \e$B$r;2>H$7$F$/$@$5$$!#\e(B
+
+
+@node Duplicate Suppression
+@section \e$B=EJ#$NM^@)\e(B
+
+\e$B%G%#%U%)%k%H$G$O\e(B gnus \e$B$OAj8_Ej9F5!9=$rMxMQ$9$k;v$K$h$C$F!"F1$85-;v$r\e(B2\e$B2s\e(B
+\e$B0J>eFI$^$J$$$h$&$K$7$h$&$H$7$^$9\e(B (@pxref{Crosspost Handling})\e$B!#$7$+$7!"\e(B
+\e$B$=$NC1=c$G8z2LE*$JJ}K!$O!"$$$m$$$m$JM}M3$K$h$j!"K~B-$9$k7k2L$r$b$?$i$5$J\e(B
+\e$B$$$+$bCN$l$^$;$s!#\e(B
+
+@enumerate
+@item
+@sc{nntp} \e$B%5!<%P!<$O\e(B @code{Xref} \e$B%X%C%@!<$N@8@.$K<:GT$9$k$+$bCN$l$^$;$s!#\e(B
+\e$B$3$l$O0-$$;v$G!"$"$^$j5/$3$j$^$;$s!#\e(B
+
+@item
+@sc{nntp} \e$B%5!<%P!<$O\e(B @file{.overview} \e$B%G!<%?%Y!<%9$K\e(B @code{Xref} \e$B%X%C%@!<\e(B
+\e$B$r4^$a$k$N$K<:GT$9$k$+$bCN$l$^$;$s!#$3$l$O0-$$;v$G!"Hs>o$KNI$/$"$k;v$G$9!"\e(B
+\e$B$"$!Ha$7$$!#\e(B
+
+@item
+\e$BF1$8%0%k!<%W\e(B (\e$B$b$7$/$O$$$/$D$+$N4XO"$7$?%0%k!<%W\e(B) \e$B$r0c$C$?\e(B @sc{nntp} \e$B%5!<\e(B
+\e$B%P!<$+$iFI$s$G$$$k$+$b$7$l$^$;$s!#\e(B
+
+@item
+\e$B%0%k!<%W$KEj9F$5$l$?5-;v$H=EJ#$9$k%a!<%k$r<u$1<h$C$?$+$b$7$l$^$;$s!#\e(B
+@end enumerate
+
+@code{Xref} \e$B$N07$$$K<:GT$9$k>u67$OB>$K$b$"$j$^$9$,!"$3$l$i\e(B4\e$B$D$,$H$F$bNI\e(B
+\e$B$/$"$k>u67$G$9!#\e(B
+
+\e$B$b$7!"K\Ev$K$b$7$b\e(B @code{Xref} \e$B$N07$$$K<:GT$7$?$i!"\e(B@dfn{\e$B=EJ#M^@)\e(B} \e$B$K@Z$j\e(B
+\e$BBX$($k;v$r9M$($k$+$b$7$l$^$;$s!#$=$&$9$l$P!"\e(Bgnus \e$B$O$"$J$?$,FI$s$@A4$F$N\e(B
+\e$B5-;v$+$=$&$G$J$1$l$P!"4{FI$N0u$,IU$$$?A4$F$N5-;v$N\e(B @code{Message-ID} \e$B$r\e(B
+\e$B5-21$7!"$=$l$+$i!"KbK!$N$h$&$K!"$=$N8e$N$=$l$i$H=P2q$C$?A4$F$N>l9g$K!"4{\e(B
+\e$BFI$N0u$rIU$1$^$9\e(B---@emph{\e$BA4$F\e(B} \e$B$N%0%k!<%W$G!#$3$N5!9=$r;H$&$N$OHs>o$KHs\e(B
+\e$B8zN(E*$G$9$,!"2aEY$KHs8zN($J$o$1$G$O$"$j$^$;$s!#$b$A$m$sF1$85-;v$r0l2s0J\e(B
+\e$B>eFI$`$[$&$,9%$^$7$$$G$9!#\e(B
+
+\e$B=EJ#M^@)$O$"$^$jA!:Y$J$b$N$G$O$"$j$^$;$s!#$I$A$i$+$H$$$&$H!"BgDH$N$h$&$J\e(B
+\e$B$b$N$G$9!#$=$l$OHs>o$KC1=c$JJ}K!$GF0:n$7$F$$$^$9\e(B---\e$B$b$75-;v$K4{FI$N0u$r\e(B
+\e$BIU$1$l$P!"$=$l$O$3$N\e(B Message-ID \e$B$r\e(B \e$B%-%c%C%7%e$K2C$($^$9!#<!$K$3$N\e(B
+Message-ID \e$B$K$G$"$C$?$H$-$O!"\e(B@samp{M} \e$B0u$K$h$C$F5-;v$K4{FI$N0u$rIU$1$^$9!#\e(B
+\e$B$=$l$O$=$N5-;v$,$I$N%0%k!<%W$K$"$k$+$O5$$K$7$^$;$s!#\e(B
+
+@table @code
+@item gnus-suppress-duplicates
+@vindex gnus-suppress-duplicates
+@code{nil} \e$B$G$J$1$l$P!"=EJ#M^@)$r$7$^$9!#\e(B
+
+@item gnus-save-duplicate-list
+@vindex gnus-save-duplicate-list
+@code{nil} \e$B$G$J$1$l$P!"=EJ#$N%j%9%H$r%U%!%$%k$KJ]B8$7$^$9!#$3$l$O5/F0$H\e(B
+\e$B=*N;$N;~4V$rD9$/$7$^$9$N$G!"$G$)%U%)%k%H$G$O\e(B @code{nil} \e$B$G$9!#$7$+$7!"$3\e(B
+\e$B$l$OC10l$N\e(B gnus \e$B$N<B9T4|$GFI$^$l$?=EJ#5-;v$@$1$,M^@)$5$l$k$H$$$&;v$G$9!#\e(B
+
+@item gnus-duplicate-list-length
+@vindex gnus-duplicate-list-length
+\e$B$3$NJQ?t$O$I$N$/$i$$B?$/$N\e(B @code{Message-ID} \e$B$r=EJ#M^@)%j%9%H$KJ]$C$F$*\e(B
+\e$B$/$+$b7hDj$7$^$9!#%G%#%U%)%k%H$O\e(B10000\e$B$G$9!#\e(B
+
+@item gnus-duplicate-file
+@vindex gnus-duplicate-file
+\e$B=EJ#M^@)$N%j%9%H$rC_@Q$7$F$*$/%U%!%$%k$NL>A0$G$9!#%G%#%U%)%k%H$O\e(B 
+@file{~/News/suppression} \e$B$G$9!#\e(B
+@end table
+
+\e$B2?EY$b\e(B gnus \e$B$r=*N;$7$F5/F0$9$k798~$,$"$k$N$G$"$l$P!"$*$=$i$/\e(B 
+@code{gnus-save-duplicate-list} \e$B$r\e(B @code{t} \e$B$K$9$k$N$ONI$$9M$($G$7$g$&!#\e(B
+\e$B$b$7\e(B gnus \e$B$rB3$1$F2?=54V$bAv$i$;$F$*$/$N$G$"$l$P!"$=$l$r\e(B @code{nil} \e$B$K$9\e(B
+\e$B$k$+$b$7$l$^$;$s!#0lJ}$G!"%j%9%H$rJ]B8$9$k;v$O5/F0$H=*N;$r$:$C$HCY$/$7$^\e(B
+\e$B$9$N$G!"$h$/\e(B gnus \e$B$r=*N;$7$F5/F0$9$k$N$G$"$l$P!"\e(B
+@code{gnus-save-duplicate-list} \e$B$r\e(B @code{nil} \e$B$K@_Dj$9$k$Y$-$G$"$k$H$$$&\e(B
+\e$B;v$K$J$j$^$9!#$&!<$`!#;d$O$"$J$?$,$I$&$9$k$+$KG$$;$?$$!"$H;W$$$^$9!#\e(B
+
+
+@node The Article Buffer
+@chapter \e$B5-;v%P%C%U%!\e(B
+@cindex article buffer
+
+\e$B5-;v$O0l$D$7$+$J$$5-;v%P%C%U%!$KI=<($5$l$^$9!#A4$F$N35N,%P%C%U%!\e(B
+\e$B$O\e(B(gnus \e$B$K6&M-$7$J$$$h$&$K;X<($7$J$$8B$j\e(B)\e$BF1$85-;v%P%C%U%!$r6&M-\e(B
+\e$B$7$^$9!#\e(B
+
+@menu
+* Hiding Headers::        \e$B$I$N%X%C%@!<$rI=<($9$k$+$r7h$a$k!#\e(B
+* Using MIME::            \e$B5-;v$rFI$`A0$K\e(B @sc{mime} \e$B=hM}$r$9$k!#\e(B
+* Customizing Articles::  \e$B5-;v$N8+1I$($r;EN)$F$k!#\e(B
+* Article Keymap::        \e$B5-;v%P%C%U%!$G;H$($k%-!<A`:n!#\e(B
+* Misc Article::          \e$B$=$NB>!#\e(B
+@end menu
+
+
+@node Hiding Headers
+@section \e$BM>J,$J%X%C%@!<$r1#$9\e(B
+@cindex hiding headers
+@cindex deleting headers
+
+\e$B3F5-;v$NF,$NItJ,$O%X%C%@!<\e(B(@dfn{head})\e$B$H8F$P$l$^$9\e(B(\e$B;D$j$NItJ,$O\e(B
+\e$B%\%G%#\e(B(@dfn{body})\e$B$G$9!#$9$G$K$*5$$E$-$G$7$g$&$,\e(B)\e$B!#\e(B
+
+@vindex gnus-show-all-headers
+\e$B%X%C%@!<$K$O$?$/$5$s$NJXMx$J>pJs$,4^$^$l$F$$$^$9!#5-;v$r=q$$$??M\e(B
+\e$B$NL>A0!"$=$l$,=q$+$l$?F|IU!"5-;v$NI=Bj$J$I$G$9!#$3$l$O$H$F$bNI$$\e(B
+\e$B$s$G$9$,!"%X%C%@!<$K$OBgItJ,$N?M$K$O8+$?$/$b$J$$>pJs\e(B --- \e$B5-;v$,\e(B
+\e$B$"$J$?$N$H$3$m$KCe$/$^$G$I$s$J%7%9%F%`$r7PM3$7$F$-$?$+!"\e(B
+@code{Message-ID}\e$B!"\e(B@code{References} \e$B$J$I$J$I!D$b$&$d$s$J$C$A$c$&\e(B
+\e$B$/$i$$\e(B --- \e$B$b$?$/$5$s4^$^$l$F$$$^$9!#$?$V$s$"$J$?$O$3$l$i$N9T$O\e(B
+\e$B$$$/$D$+<h$j=|$$$F$7$^$$$?$$$H;W$&$G$7$g$&!#$b$7$3$l$i$N9T$rA4$F\e(B
+\e$B5-;v%P%C%U%!Fb$K;D$7$F$*$-$?$1$l$P!"\e(B@code{gnus-show-all-headers}
+\e$B$r\e(B @code{t} \e$B$K@_Dj$7$F$/$@$5$$!#\e(B
+
+Gnus \e$B$O%X%C%@!<$rA*$jJ,$1$k$?$a$K\e(B 2 \e$B$D$NJQ?t$rMQ0U$7$F$$$^$9!#\e(B
+
+@table @code
+
+@item gnus-visible-headers
+@vindex gnus-visible-headers
+\e$B$3$NJQ?t$,\e(B @code{nil} \e$B0J30$G$"$l$P!"$I$N%X%C%@!<$r5-;v%P%C%U%!$K\e(B
+\e$B;D$7$?$$$+$r;XDj$9$k@55,I=8=$G$"$k$H$_$J$5$l$^$9!#$3$NJQ?t$K%^%C\e(B
+\e$B%A$7$J$$%X%C%@!<$OA4$F1#$5$l$^$9!#\e(B
+
+\e$BNc$($P!"5-;v$r=q$$$??M$NL>A0$HI=Bj$N$_$r8+$?$1$l$P!"$3$&;XDj$7$^$9!#\e(B
+
+@lisp
+(setq gnus-visible-headers "^From:\\|^Subject:")
+@end lisp
+
+\e$B$3$NJQ?t$O!"I=<($5$;$?$$%X%C%@!<$K%^%C%A$9$k@55,I=8=$r%j%9%H$G;X\e(B
+\e$BDj$9$k$3$H$b$G$-$^$9!#\e(B
+
+@item gnus-ignored-headers
+@vindex gnus-ignored-headers
+\e$B$3$NJQ?t$O\e(B @code{gnus-visible-headers} \e$B$NH?BP$G$9!#$3$NJQ?t$,@_\e(B
+\e$BDj$5$l$F$$$l$P\e(B(\e$B$+$D\e(B @code{gnus-visible-headers} \e$B$,\e(B @code{nil} \e$B$G\e(B
+\e$B$"$l$P\e(B)\e$B!"$3$l$O1#$7$?$$%X%C%@!<9TA4$F$K%^%C%A$9$k@55,I=8=$G$"$k\e(B
+\e$B$H$_$J$5$l$^$9!#$3$NJQ?t$K%^%C%A$7$J$$A4$F$N%X%C%@!<9T$OI=<($5$l\e(B
+\e$B$^$9!#\e(B
+
+\e$BNc$($P!"C1$K\e(B @code{References} \e$B9T$H\e(B @code{Xref} \e$B9T$N$_$r>C$75n$j\e(B
+\e$B$?$1$l$P!"$3$N$h$&$K$7$^$9!#\e(B
+
+@lisp
+(setq gnus-ignored-headers "^References:\\|^Xref:")
+@end lisp
+
+\e$B$3$NJQ?t$O>C$7$?$$%X%C%@!<$K%^%C%A$9$k@55,I=8=$N%j%9%H$G$b9=$$$^\e(B
+\e$B$;$s!#\e(B
+
+\e$B$J$*!"\e(B@code{gnus-visible-headers} \e$B$,\e(B @code{nil} \e$B0J30$N>l9g$O!"$3\e(B
+\e$B$NJQ?t$K$O8z2L$,L5$$$3$H$KCm0U$7$F$/$@$5$$!#\e(B
+
+@end table
+
+@vindex gnus-sorted-header-list
+Gnus \e$B$O%X%C%@!<$NJB$YBX$(\e(B(\e$B%=!<%H\e(B)\e$B$b9T$$$^$9\e(B(\e$B$3$l$O%G%#%U%)%k%H$G\e(B
+\e$B9T$o$l$^$9\e(B)\e$B!#$3$NJB$YBX$($O\e(B @code{gnus-sorted-header-list} \e$BJQ?t\e(B
+\e$B$r@_Dj$9$k$3$H$G@)8f$9$k$3$H$,$G$-$^$9!#$3$l$O%X%C%@!<$r$I$&$$$&\e(B
+\e$B=g=x$GI=<($9$k$+$r;XDj$9$k@55,I=8=$N%j%9%H$G$9!#\e(B
+
+\e$BNc$($P!"5-;v$NCx<TL>$r:G=i$K!"<!$KI=Bj$rI=<($7$?$1$l$P!"$3$s$JIw\e(B
+\e$B$K$J$k$G$7$g$&!#\e(B
+
+@lisp
+(setq gnus-sorted-header-list '("^From:" "^Subject:"))
+@end lisp
+
+\e$BI=<($9$k$h$&$K$J$C$F$$$k%X%C%@!<$G$3$NJQ?t$K;XDj$5$l$F$$$J$$$b$N\e(B
+\e$B$O!"$3$NJQ?t$K;XDj$5$l$F$$$kA4$F$N%X%C%@!<$N8e$K!"E,Ev$J=g=x$GI=\e(B
+\e$B<($5$l$k$G$7$g$&!#\e(B
+
+@findex gnus-article-hide-boring-headers
+@vindex gnus-article-display-hook
+@vindex gnus-boring-article-headers
+@code{gnus-article-hide-boring-headers} \e$B$r\e(B
+@code{gnus-article-display-hook} \e$B$KF~$l$k$3$H$K$h$C$F!"$b$C$H$D\e(B
+\e$B$^$i$J$$%X%C%@!<$r1#$9$3$H$,$G$-$^$9!#$3$N4X?t$,2?$r$9$k$+$O\e(B
+@code{gnus-boring-article-headers} \e$BJQ?t$K0MB8$7$^$9!#$3$NJQ?t$O\e(B
+\e$B%j%9%H$G$9$,!"$3$N%j%9%H$K$O<B:]$N%X%C%@!<$NL>A0$,F~$k$N$G$O$"$j\e(B
+\e$B$^$;$s!#Be$o$j$K\e(B gnus \e$B$,%A%'%C%/$7$F;k3&$+$i>C$75n$k$?$a$N$5$^$6\e(B
+\e$B$^$J!V$D$^$i$J$$>r7o!W\e(B@dfn{boring conditions} \e$B$N%j%9%H$r;XDj$7$^\e(B
+\e$B$9!#\e(B
+
+\e$B$3$N>r7o$K$O0J2<$N$h$&$J$b$N$,$"$j$^$9!#\e(B
+@table @code
+@item empty
+\e$B6u$N%X%C%@!<$rA4$F>C5n$7$^$9!#\e(B
+@item newsgroups
+@code{Newsgroups} \e$B%X%C%@!<$,8=:_$N%0%k!<%WL>$7$+4^$s$G$$$J$$>l9g\e(B
+\e$B$K$O>C5n$7$^$9!#\e(B
+@item followup-to
+@code{Followup-To} \e$B%X%C%@!<$,\e(B @code{Newsgroups} \e$B%X%C%@!<$HF10l$G\e(B
+\e$B$"$k>l9g$K$O>C5n$7$^$9!#\e(B
+@item reply-to
+@code{Reply-To} \e$B%X%C%@!<$,\e(B @code{From} \e$B%X%C%@!<$HF1$8%"%I%l%9$r\e(B
+\e$B<($7$F$$$k>l9g$K$O>C5n$7$^$9!#\e(B
+@item date
+\e$B$=$N5-;v$,2a5n\e(B 3 \e$BF|0JFb$N$b$N$G$"$l$P!"\e(B@code{Date} \e$B%X%C%@!<$r>C\e(B
+\e$B5n$7$^$9!#\e(B
+@item long-to
+@code{To} \e$B%X%C%@!<$,$"$^$j$K$bD9$$>l9g$K$O>C5n$7$^$9!#\e(B
+@item many-to
+@code{To} \e$B%X%C%@!<$,0l$D$h$j$bB?$1$l$P!"$=$l$i$rA4$F>C5n$7$^$9!#\e(B
+@end table
+
+\e$B>e5-$N:G=i$N\e(B 4 \e$B$D$NMWAG$rF~$l$?$1$l$P!"$3$s$JIw$K$J$j$^$9!#\e(B
+
+@lisp
+(setq gnus-boring-article-headers
+      '(empty newsgroups followup-to reply-to))
+@end lisp
+
+\e$B$3$l$O$3$NJQ?t$N%G%#%U%)%k%HCM$G$b$"$j$^$9!#\e(B
+
+
+@node Using MIME
+@section @sc{mime} \e$B$r;H$&\e(B
+@cindex @sc{mime}
+
+\e$B%Q%s%H%^%$%`\e(B (mime) \e$B$H$O!"0UL#$bL5$/6uCf$G<j$r?6$k$b$N$H$7$F9-$/\e(B
+\e$BCN$i$l$F$*$j!"$=$N4V4Q5R$O$"$/$S$r$7$J$,$i$\$s$d$j$H$7$F$^$9!#\e(B
+
+\e$B0lJ}!"\e(B@sc{mime} \e$B$H$O!"0UL#$bL5$/5-;v$rId9f2=$9$kI8=`$G$"$j!"$=$N\e(B
+\e$B$?$a$KA4$F$N%K%e!<%:%j!<%@$,62I]$G;`$s$G$7$^$&$b$N$G$9!#\e(B
+
+@sc{mime} \e$B$O$=$N5-;v$,$I$s$JJ8;z=89g$r;HMQ$7$F$$$k$+!"$=$NJ8;z$r\e(B
+\e$B$I$&Id9f2=$7$F$$$k$+$r;XDj$9$k$3$H$,$G$-!"$5$i$K$O3($d$=$NB>$N<Y\e(B
+\e$B0-$J$b$N$rL5<Y5$$J3J9%$N5-;v$GKd$a9~$`$3$H$5$(2DG=$K$7$^$9!#\e(B
+
+@vindex gnus-show-mime
+@vindex gnus-show-mime-method
+@vindex gnus-strict-mime
+@findex metamail-buffer
+Gnus \e$B$O\e(B @code{gnus-show-mime-method} \e$B$K5-;v$r2!$7IU$1$k$3$H$G\e(B 
+@sc{mime} \e$B$r07$$$^$9!#$3$l$O%G%#%U%)%k%H$G$O\e(B 
+@code{metamail-buffer} \e$B$G$9!#$3$N4X?t$O30It\e(B @code{metamail} \e$B%W%m\e(B
+\e$B%0%i%`$r8F$S=P$7$F<B:]$N=hM}$r9T$$$^$9!#$3$N%W%m%0%i%`$K4X$9$k$"\e(B
+\e$B$j$,$A$JLdBj$O!"$3$N%W%m%0%i%`$O\e(B Emacs \e$B$N%P%C%U%!$,\e(B 8\e$B%S%C%H$N$b\e(B
+\e$B$N$rI=<($G$-$J$$!"$H;W$C$F$$$k$3$H$G$9!#??<B$r65$($F$"$2$k$K$O!"\e(B
+@file{.bash_profile} \e$B%U%!%$%k$K0J2<$N$h$&$J$b$N$r=q$$$F$/$@$5$$\e(B
+(\e$B$"$J$?!"\e(B@code{bash} \e$B;H$C$F$k$h$M$(\e(B?)\e$B!#\e(B
+
+@example
+export MM_CHARSET="iso-8859-1"
+@end example
+
+@code{metamail} \e$B$K4X$9$k>\$7$$>pJs$O!"%^%K%e%"%k$r;2>H$7$F$/$@$5\e(B
+\e$B$$!#\e(B
+
+@sc{mime} \e$B$r>o$K;HMQ$7$?$1$l$P!"\e(B@code{gnus-show-mime} \e$B$r\e(B 
+@code{t} \e$B$K@_Dj$7$F$/$@$5$$!#$7$+$7!"\e(B@code{gnus-strict-mime} \e$B$,\e(B 
+@code{nil} \e$B0J30$G$"$l$P!"\e(B@sc{mime} \e$B=hM}$O5-;vCf$K\e(B @sc{mime} \e$B%X%C\e(B
+\e$B%@!<$,$"$k$H$-$N$_;HMQ$5$l$^$9!#\e(B@code{gnus-show-mime} \e$B$r@_Dj$7$F\e(B
+\e$B$$$k$H!"1?$,0-$$$H5-;v%P%C%U%!$K$O8N>c$7$?$h$&$J2hLL$,8+$($k$3$H\e(B
+\e$B$b$"$k$G$7$g$&!#$3$l$OHr$1$h$&$,$"$j$^$;$s!#\e(B
+
+\e$B$3$N$?$A$N0-$$LdBj$G6C$+$5$l$J$$$h$&$K$9$k$K$O!"35N,%P%C%U%!$K$*\e(B
+\e$B$$$F@Z$jBX$(5!G=$r;H$&$H$$$&$N$,:GA1$+$bCN$l$^$;$s\e(B(\e$BNc$($P!"\e(B
+@samp{alt.sing-a-long} \e$B%0%k!<%W$KF~$k$H!"$"$J$?$N5$$E$+$J$$$&$A\e(B
+\e$B$K\e(B@sc{mime} \e$B$O5-;vCf$N%5%&%s%I%U%!%$%k$rI|9f$7$F!"2?$d$i2x$7$2$J\e(B
+\e$BD9$$D9$$2N$,$"$J$?$N%9%T!<%+!<$+$iBg2;6A$GN.$l=P$7!"$"$J$?$O%\\e(B
+\e$B%j%e!<%`%\%?%s$r8+$D$1$i$l$:!"$H$$$&$N$O$=$s$J$b$N$O$b$H$b$H$D$$\e(B
+\e$B$F$J$$$+$i$G!"$_$s$J$O$"$J$?$NJ}$rbK$_$O$8$a!"$"$J$?$O%W%m%0%i%`\e(B
+\e$B$r;_$a$h$&$H$9$k$1$I$G$-$J$/$F!"%\%j%e!<%`$r@)8f$9$k%W%m%0%i%`$b\e(B
+\e$B8+$D$1$i$l$J$/$F!"$=$7$FIt20Cf$NA40w$OFMA3$"$J$?$N$3$H$r7ZJN$N4c\e(B
+\e$B:9$7$G8+$k$h$&$K$J$C$F$7$^$$!"$"$J$?$O$A$g$C$HLLGr$/$J$$;W$$$r$9\e(B
+\e$B$k!"$H$+\e(B)\e$B!#\e(B
+
+\e$B8=<B$N=PMh;v$H<B:_$N?MJ*$KN`;w$7$F$$$k$+$b$7$l$^$;$s$,!"$3$l$OA4\e(B
+\e$B$F%[%s%H$N$3$H$G$9!#$2$[$2$[!#\e(B
+
+@node Customizing Articles
+@section \e$B5-;v$N%+%9%?%^%$%:\e(B
+@cindex article customization
+
+@vindex gnus-article-display-hook
+@code{gnus-article-display-hook} \e$B$O5-;v$,5-;v%P%C%U%!$K=q$-9~$^\e(B
+\e$B$l$?D>8e$K8F$S=P$5$l$^$9!#$3$l$O5-;v$,I=<($5$l$kA0$N=hM}$rA4$F07\e(B
+\e$B$&!"$H$$$&$3$H$G$9!#\e(B
+
+@findex gnus-article-maybe-highlight
+\e$B%G%#%U%)%k%H$G$O$3$N%U%C%/$K$O\e(B @code{gnus-article-hide-headers}\e$B!"\e(B
+@code{gnus-article-treat-overstrike}\e$B!"\e(B
+@code{gnus-article-maybe-highlight} \e$B$@$1$,4^$^$l$F$$$^$9$,!"$3$N\e(B
+\e$B%U%C%/$KF~$l$k$3$H$,$G$-$k4X?t$O2?@i$b!"$$$d2?I4K|$b$"$j$^$9!#3F\e(B
+\e$B4X?t$N354Q$O\e(B@pxref{Article Highlighting}\e$B!"\e(B @pxref{Article
+Hiding}\e$B!"\e(B@pxref{Article Washing}\e$B!"\e(B @pxref{Article Buttons}\e$B!"\e(B 
+@pxref{Article Date} \e$B$r;2>H$7$F$/$@$5$$!#Cm0UE@$H$7$F!"$3$N%U%C\e(B
+\e$B%/$G$O4X?t$N=g=x$,1F6A$9$k$3$H$,$"$k$N$G!"$*K>$_$N7k2L$rF@$k$K$O\e(B
+\e$B$A$g$C$H<j4V<h$C$F$7$^$&$+$b$7$l$^$;$s!#\e(B
+
+\e$B$b$A$m$s!"$"$J$?FH<+$N4X?t$r=q$/$3$H$b$G$-$^$9!#$3$N4X?t$O5-;v%P%C\e(B
+\e$B%U%!Fb$+$i8F$S=P$5$l!"$"$J$?$N$d$j$?$$$3$H$r$[$H$s$I2?$G$b$G$-$^\e(B
+\e$B$9!#%P%C%U%!$K;D$7$F$*$+$J$1$l$P$J$i$J$$>pJs$O2?$b$"$j$^$;$s\e(B --- 
+\e$B2?$G$bJQ99$9$k$3$H$,$G$-$^$9!#$G$9$,!"%X%C%@!<$O>C5n$7$J$$J}$,NI\e(B
+\e$B$$$G$9!#$=$NBe$o$j!"%X%C%@!<$r$I$3$+$K$d$C$F$7$^$$$?$1$l$P!"$=$l\e(B
+\e$B$i$r8+$($J$$$h$&$K$7$F$/$@$5$$!#\e(B
+
+@node Article Keymap
+@section \e$B5-;v$N%-!<A`:n\e(B
+
+\e$B35N,%P%C%U%!$K$*$1$k%-!<A`:n$N$[$H$s$I$O5-;v%P%C%U%!$G$b;HMQ$G$-\e(B
+\e$B$^$9!#$3$l$i$O35N,%P%C%U%!$G$=$N%-!<$r2!$7$?$+$N$h$&$KF0:n$7$^$9!#\e(B
+\e$B$D$^$j!"<B$O5-;v$rFI$s$G$$$k4V!"35N,%P%C%U%!$rI=<($5$;$F$*$/I,MW\e(B
+\e$B$b$J$$$H$$$&$3$H$G$9!#A4$F$NA`:n$O5-;v%P%C%U%!$+$i9T$&$3$H$,$G$-\e(B
+\e$B$k$N$G$9!#\e(B
+
+\e$B$=$l$i$K2C$($F$$$/$D$+$N%-!<A`:n$,MxMQ$G$-$^$9!#\e(B
+
+@table @kbd
+
+@item SPACE
+@kindex SPACE (Article)
+@findex gnus-article-next-page
+\e$B0lJGA0$K$a$/$j$^$9\e(B (@code{gnus-article-next-page})\e$B!#\e(B
+
+@item DEL
+@kindex DEL (Article)
+@findex gnus-article-prev-page
+\e$B0lJG8e$m$KLa$7$^$9\e(B (@code{gnus-article-prev-page})\e$B!#\e(B
+
+@item C-c ^
+@kindex C-c ^ (Article)
+@findex gnus-article-refer-article
+\e$B%+!<%=%k0LCV$,\e(B @code{Message-ID} \e$B$N6aJU$K$"$k$H$-$K\e(B @kbd{r} \e$B$r2!\e(B
+\e$B$9$H!"\e(Bgnus \e$B$O%5!<%P!<$+$i$=$N5-;v$r<h$C$F$3$h$&$H$7$^$9\e(B
+(@code{gnus-article-refer-article})\e$B!#\e(B
+
+@item C-c C-m
+@kindex C-c C-m (Article)
+@findex gnus-article-mail
+Send a reply to the address near point (@code{gnus-article-mail}).  If
+given a prefix, include the mail.
+
+\e$B%+!<%=%k0LCV$N6a$/$K$"$k%"%I%l%9$KJV?.$rAw$j$^$9\e(B
+(@code{gnus-article-mail})\e$B!#@\F,0z?t$rM?$($k$H!"$=$N%a!<%k$K0zMQ\e(B
+\e$B$7$^$9!#\e(B
+
+@item s
+@kindex s (Article)
+@findex gnus-article-show-summary
+\e$B%P%C%U%!$r:F9=@.$7$F!"35N,%P%C%U%!$r8+$($k$h$&$K$7$^$9\e(B
+(@code{gnus-article-show-summary})\e$B!#\e(B
+
+@item ?
+@kindex ? (Article)
+@findex gnus-article-describe-briefly
+\e$BMxMQ$G$-$k%-!<A`:n$N$4$/4JC1$J@bL@$r=P$7$^$9\e(B
+(@code{gnus-article-describe-briefly})\e$B!#\e(B
+
+@item TAB
+@kindex TAB (Article)
+@findex gnus-article-next-button
+\e$B<!$N%\%?%s$,$"$l$P$=$3$K0\F0$7$^$9\e(B 
+(@code{gnus-article-next-button})\e$B!#$3$l$O%\%?%s5!G=$r%*%s$K$7$F\e(B
+\e$B$$$k$H$-$N$_0UL#$r;}$A$^$9!#\e(B
+
+@item M-TAB
+@kindex M-TAB (Article)
+@findex gnus-article-prev-button
+\e$B0l$DA0$N%\%?%s$,$"$l$P$=$3$K0\F0$7$^$9\e(B 
+(@code{gnus-article-prev-button})\e$B!#\e(B
+
+@end table
+
+
+@node Misc Article
+@section \e$B5-;v$N$=$NB>\e(B
+
+@table @code
+
+@item gnus-single-article-buffer
+@vindex gnus-single-article-buffer
+@code{nil} \e$B0J30$G$"$l$P!"A4$F$N%0%k!<%W$KBP$7$FF1$85-;v%P%C%U%!\e(B
+\e$B$r;HMQ$7$^$9\e(B(\e$B$3$l$O%G%#%U%)%k%H$G$9\e(B)\e$B!#\e(B @code{nil} \e$B$G$"$l$P!"3F%0\e(B
+\e$B%k!<%WKh$N8GM-$N5-;v%P%C%U%!$r;}$D$h$&$K$J$j$^$9!#\e(B
+
+@vindex gnus-article-prepare-hook
+@item gnus-article-prepare-hook
+\e$B$3$N%U%C%/$O5-;v$,5-;v%P%C%U%!$K=q$-9~$^$l$?D>8e$K8F$S=P$5$l$^$9!#\e(B
+\e$B$3$l$O<g$K!"2?$+5-;v$NFbMF$K0MB8$9$k=hM}$r$9$k4X?t$N$?$a$KMQ0U$5\e(B
+\e$B$l$F$$$^$9!#$D$^$j5-;v%P%C%U%!$NFbMF$rJQ99$9$k$h$&$JL\E*$G;H$&$Y\e(B
+\e$B$-$G$O$J$$$G$7$g$&!#\e(B
+
+@vindex gnus-article-display-hook
+@item gnus-article-display-hook
+\e$B$3$N%U%C%/$O5-;v$rI=<($9$k$H$-$N:G8e$K8F$S=P$5$l$k$h$&$K$J$C$F$$\e(B
+\e$B$F!"5-;v%P%C%U%!$NFbMF$N=$@5!"%O%$%i%$%H=hM}!"%X%C%@!<$r1#$9!"$J\e(B
+\e$B$I$H$$$C$?$3$H$r9T$&$?$a$KMQ0U$5$l$F$$$^$9!#\e(B
+
+@item gnus-article-mode-hook
+@vindex gnus-article-mode-hook
+\e$B5-;v%b!<%I%P%C%U%!$G8F$S=P$5$l$k%U%C%/$G$9!#\e(B
+
+@item gnus-article-mode-syntax-table
+@vindex gnus-article-mode-syntax-table
+\e$B5-;v%P%C%U%!$GMQ$$$i$l$k%7%s%?%C%/%9%F!<%V%k$G$9!#$3$l$O\e(B
+@code{text-mode-syntax-table} \e$B$r$b$H$K=i4|2=$5$l$^$9!#\e(B
+
+@vindex gnus-article-mode-line-format
+@item gnus-article-mode-line-format
+\e$B$3$NJQ?t$O\e(B @code{gnus-summary-mode-line-format} \e$B$HF1$89T$K=>$C$?\e(B
+\e$BMM<0J8;zNs$G$9!#$3$l$O0J2<$N0l$D$N3HD%$r=|$$$F!"$=$NJQ?t$HF1$8MM\e(B
+\e$B<0;XDj$r<uIU$1$^$9!#\e(B
+
+@table @samp
+@item w
+\e$B5-;v$N!V@vBu>uBV!W\e(B@dfn{wash status}\e$B!#$3$l$O5-;v$KBP$7$F9T$o$l$?\e(B
+\e$B$G$"$m$&@vBuA`:n$r<($90lJ8;z$+$i$J$kC;$$J8;zNs$K$J$j$^$9!#\e(B
+@end table
+
+@vindex gnus-break-pages
+
+@item gnus-break-pages
+\e$B2~JG\e(B @dfn{page breaking} \e$B$r9T$&$+$I$&$+$r@)8f$7$^$9!#$3$NJQ?t$,\e(B
+@code{nil} \e$B0J30$G$"$l$P!"5-;vCf$KJG6h@Z$jJ8;z$,8=$l$?>l=j$4$H$K\e(B
+\e$BJGJ,3d$7$^$9!#$3$NJQ?t$,\e(B @code{nil} \e$B$G$"$l$PJGJ,$1$O9T$o$l$^$;$s!#\e(B
+
+@item gnus-page-delimiter
+@vindex gnus-page-delimiter
+\e$B$3$l$,>e$G?($l$?6h@Z$jJ8;z$G$9!#%G%#%U%)%k%H$G$O\e(B @samp{^L} (\e$B%U%)!<\e(B
+\e$B%`%U%#!<%I!"2~JG\e(B) \e$B$G$9!#\e(B
+@end table
+
+
index 104e4c2..8c552c5 100644 (file)
@@ -1,12 +1,12 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Gnus 5.6.11 Manual
+@settitle Semi-gnus 6.3.0 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
 @c @direntry
-@c * Gnus: (gnus).         The news reader Gnus.
+@c * Gnus: (gnus).         The news reader gnus.
 @c @end direntry
 @iftex
 @finalout
@@ -289,7 +289,7 @@ into another language, under the above conditions for modified versions.
 
 @ifinfo
 
-This file documents Gnus, the GNU Emacs newsreader.
+This file documents gnus, the GNU Emacs newsreader.
 
 Copyright (C) 1995,96 Free Software Foundation, Inc.
 
@@ -316,7 +316,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Gnus 5.6.11 Manual
+@title Semi-gnus 6.3.0 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -343,16 +343,23 @@ into another language, under the above conditions for modified versions.
 
 
 @node Top
-@top The Gnus Newsreader
+@top The gnus Newsreader
 
 @ifinfo
 
-You can read news (and mail) from within Emacs by using Gnus.  The news
+You can read news (and mail) from within Emacs by using gnus.  The news
 can be gotten by any nefarious means you can think of---@sc{nntp}, local
 spool or your mbox file.  All at the same time, if you want to push your
 luck.
 
-This manual corresponds to Gnus 5.6.11.
+Semi-gnus provides MIME features based on SEMI API.  So Semi-gnus
+supports your right to read strange messages including big images or
+other various kinds of formats.  Semi-gnus also supports
+internationalization/localization and multiscript features based on MULE
+API.  So Semi-gnus does not discriminate various language communities.
+Oh, if you are a Klingon, please wait Unicode Next Generation.
+
+This manual corresponds to Semi-gnus 6.3.0.
 
 @end ifinfo
 
@@ -376,7 +383,7 @@ even read news with it!
 
 Gnus tries to empower people who read news the same way Emacs empowers
 people who edit text.  Gnus sets no limits to what the user should be
-allowed to do.  Users are encouraged to extend Gnus to make it behave
+allowed to do.  Users are encouraged to extend gnus to make it behave
 like they want it to behave.  A program should not control people;
 people should be empowered to do what they want by using (or abusing)
 the program.
@@ -400,18 +407,18 @@ the program.
 @end menu
 
 @node Starting Up
-@chapter Starting Gnus
+@chapter Starting gnus
 @cindex starting up
 
 @kindex M-x gnus
 @findex gnus
-If your system administrator has set things up properly, starting Gnus
+If your system administrator has set things up properly, starting gnus
 and reading news is extremely easy---you just type @kbd{M-x gnus} in
 your Emacs.
 
 @findex gnus-other-frame
 @kindex M-x gnus-other-frame
-If you want to start Gnus in a different frame, you can use the command
+If you want to start gnus in a different frame, you can use the command
 @kbd{M-x gnus-other-frame} instead.
 
 If things do not go smoothly at startup, you have to twiddle some
@@ -423,11 +430,11 @@ terminology section (@pxref{Terminology}).
 
 @menu
 * Finding the News::    Choosing a method for getting news.
-* The First Time::      What does Gnus do the first time you start it?
+* The First Time::      What does gnus do the first time you start it?
 * The Server is Down::  How can I read my mail then?
-* Slave Gnusae::        You can have more than one Gnus active at a time.
-* Fetching a Group::    Starting Gnus just to read a group.
-* New Groups::          What is Gnus supposed to do with new groups?
+* Slave Gnusae::        You can have more than one gnus active at a time.
+* Fetching a Group::    Starting gnus just to read a group.
+* New Groups::          What is gnus supposed to do with new groups?
 * Startup Files::       Those pesky startup files---@file{.newsrc}.
 * Auto Save::           Recovering from a crash.
 * The Active File::     Reading the active file over a slow line Takes Time.
@@ -442,11 +449,11 @@ terminology section (@pxref{Terminology}).
 
 @vindex gnus-select-method
 @c @head
-The @code{gnus-select-method} variable says where Gnus should look for
+The @code{gnus-select-method} variable says where gnus should look for
 news.  This variable should be a list where the first element says
 @dfn{how} and the second element says @dfn{where}.  This method is your
-native method.  All groups not fetched with this method are
-foreign groups.
+native method.  All groups not fetched with this method are foreign
+groups.
 
 For instance, if the @samp{news.somewhere.edu} @sc{nntp} server is where
 you want to get your daily dosage of news from, you'd say:
@@ -467,11 +474,12 @@ certainly be much faster.
 @vindex gnus-nntpserver-file
 @cindex NNTPSERVER
 @cindex @sc{nntp} server
-If this variable is not set, Gnus will take a look at the
+If this variable is not set, gnus will take a look at the
 @code{NNTPSERVER} environment variable.  If that variable isn't set,
-Gnus will see whether @code{gnus-nntpserver-file}
+gnus will see whether @code{gnus-nntpserver-file}
 (@file{/etc/nntpserver} by default) has any opinions on the matter.  If
-that fails as well, Gnus will try to use the machine running Emacs as an @sc{nntp} server.  That's a long shot, though.
+that fails as well, gnus will try to use the machine running Emacs as an
+@sc{nntp} server.  That's a long shot, though.
 
 @vindex gnus-nntp-server
 If @code{gnus-nntp-server} is set, this variable will override
@@ -479,9 +487,9 @@ If @code{gnus-nntp-server} is set, this variable will override
 @code{gnus-nntp-server} to @code{nil}, which is what it is by default.
 
 @vindex gnus-secondary-servers
-You can also make Gnus prompt you interactively for the name of an
+You can also make gnus prompt you interactively for the name of an
 @sc{nntp} server.  If you give a non-numerical prefix to @code{gnus}
-(i.e., @kbd{C-u M-x gnus}), Gnus will let you choose between the servers
+(i.e., @kbd{C-u M-x gnus}), gnus will let you choose between the servers
 in the @code{gnus-secondary-servers} list (if any).  You can also just
 type in the name of any server you feel like visiting.
 
@@ -516,23 +524,23 @@ would typically set this variable to
 @section The First Time
 @cindex first time usage
 
-If no startup files exist, Gnus will try to determine what groups should
+If no startup files exist, gnus will try to determine what groups should
 be subscribed by default.
 
 @vindex gnus-default-subscribed-newsgroups
-If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus
+If the variable @code{gnus-default-subscribed-newsgroups} is set, gnus
 will subscribe you to just those groups in that list, leaving the rest
 killed.  Your system administrator should have set this variable to
 something useful.
 
-Since she hasn't, Gnus will just subscribe you to a few arbitrarily
+Since she hasn't, gnus will just subscribe you to a few arbitrarily
 picked groups (i.e., @samp{*.newusers}).  (@dfn{Arbitrary} is defined
 here as @dfn{whatever Lars thinks you should read}.)
 
-You'll also be subscribed to the Gnus documentation group, which should
+You'll also be subscribed to the gnus documentation group, which should
 help you with most common problems.
 
-If @code{gnus-default-subscribed-newsgroups} is @code{t}, Gnus will just
+If @code{gnus-default-subscribed-newsgroups} is @code{t}, gnus will just
 use the normal functions for handling new groups, and not do anything
 special.
 
@@ -541,9 +549,9 @@ special.
 @section The Server is Down
 @cindex server errors
 
-If the default server is down, Gnus will understandably have some
+If the default server is down, gnus will understandably have some
 problems starting.  However, if you have some mail groups in addition to
-the news groups, you may want to start Gnus anyway.
+the news groups, you may want to start gnus anyway.
 
 Gnus, being the trusting sort of program, will ask whether to proceed
 without a native select method if that server can't be contacted.  This
@@ -558,7 +566,7 @@ buffer.  But, hey, that's your problem.  Blllrph!
 @c @head
 If you know that the server is definitely down, or you just want to read
 your mail without bothering with the server at all, you can use the
-@code{gnus-no-server} command to start Gnus.  That might come in handy
+@code{gnus-no-server} command to start gnus.  That might come in handy
 if you're in a hurry as well.  This command will not attempt to contact
 your primary server---instead, it will just activate all groups on level
 1 and 2.  (You should preferably keep no native groups on those two
@@ -569,27 +577,27 @@ levels.)
 @section Slave Gnusae
 @cindex slave
 
-You might want to run more than one Emacs with more than one Gnus at the
-same time.  If you are using different @file{.newsrc} files (e.g., if you
-are using the two different Gnusae to read from two different servers),
-that is no problem whatsoever.  You just do it.
+You might want to run more than one Emacs with more than one gnus at the
+same time.  If you are using different @file{.newsrc} files (e.g., if
+you are using the two different gnusae to read from two different
+servers), that is no problem whatsoever.  You just do it.
 
 The problem appears when you want to run two Gnusae that use the same
 @code{.newsrc} file.
 
-To work around that problem some, we here at the Think-Tank at the Gnus
-Towers have come up with a new concept: @dfn{Masters} and
-@dfn{slaves}.  (We have applied for a patent on this concept, and have
-taken out a copyright on those words.  If you wish to use those words in
-conjunction with each other, you have to send $1 per usage instance to
-me.  Usage of the patent (@dfn{Master/Slave Relationships In Computer
-Applications}) will be much more expensive, of course.)
+To work around that problem some, we here at the Think-Tank at the gnus
+Towers have come up with a new concept: @dfn{Masters} and @dfn{slaves}.
+(We have applied for a patent on this concept, and have taken out a
+copyright on those words.  If you wish to use those words in conjunction
+with each other, you have to send $1 per usage instance to me.  Usage of
+the patent (@dfn{Master/Slave Relationships In Computer Applications})
+will be much more expensive, of course.)
 
-Anyways, you start one Gnus up the normal way with @kbd{M-x gnus} (or
-however you do it).  Each subsequent slave Gnusae should be started with
+Anyways, you start one gnus up the normal way with @kbd{M-x gnus} (or
+however you do it).  Each subsequent slave gnusae should be started with
 @kbd{M-x gnus-slave}.  These slaves won't save normal @file{.newsrc}
 files, but instead save @dfn{slave files} that contain information only
-on what groups have been read in the slave session.  When a master Gnus
+on what groups have been read in the slave session.  When a master gnus
 starts, it will read (and delete) these slave files, incorporating all
 information from them.  (The slave files will be read in the sequence
 they were created, so the latest changes will have precedence.)
@@ -604,7 +612,7 @@ information in the normal (i.e., master) @code{.newsrc} file.
 
 @findex gnus-fetch-group
 It is sometimes convenient to be able to just say ``I want to read this
-group and I don't care whether Gnus has been started or not''.  This is
+group and I don't care whether gnus has been started or not''.  This is
 perhaps more useful for people who write code than for users, but the
 command @code{gnus-fetch-group} provides this functionality in any case.
 It takes the group name as a parameter.
@@ -622,13 +630,13 @@ also save you some time at startup.  Even if this variable is
 @code{nil}, you can always subscribe to the new groups just by pressing
 @kbd{U} in the group buffer (@pxref{Group Maintenance}).  This variable
 is @code{ask-server} by default.  If you set this variable to
-@code{always}, then Gnus will query the backends for new groups even
+@code{always}, then gnus will query the backends for new groups even
 when you do the @kbd{g} command (@pxref{Scanning New Messages}).
 
 @menu
 * Checking New Groups::      Determining what groups are new.
-* Subscription Methods::     What Gnus should do with new groups.
-* Filtering New Groups::     Making Gnus ignore certain new groups.
+* Subscription Methods::     What gnus should do with new groups.
+* Filtering New Groups::     Making gnus ignore certain new groups.
 @end menu
 
 
@@ -638,7 +646,7 @@ when you do the @kbd{g} command (@pxref{Scanning New Messages}).
 Gnus normally determines whether a group is new or not by comparing the
 list of groups from the active file(s) with the lists of subscribed and
 dead groups.  This isn't a particularly fast method.  If
-@code{gnus-check-new-newsgroups} is @code{ask-server}, Gnus will ask the
+@code{gnus-check-new-newsgroups} is @code{ask-server}, gnus will ask the
 server for new groups since the last time.  This is both faster and
 cheaper.  This also means that you can get rid of the list of killed
 groups altogether, so you may set @code{gnus-save-killed-list} to
@@ -650,15 +658,15 @@ I bet I know what you're thinking now: How do I find out whether my
 server supports @code{ask-server}?  No?  Good, because I don't have a
 fail-safe answer.  I would suggest just setting this variable to
 @code{ask-server} and see whether any new groups appear within the next
-few days.  If any do, then it works.  If none do, then it doesn't
-work.  I could write a function to make Gnus guess whether the server
-supports @code{ask-server}, but it would just be a guess.  So I won't.
-You could @code{telnet} to the server and say @code{HELP} and see
-whether it lists @samp{NEWGROUPS} among the commands it understands.  If
-it does, then it might work.  (But there are servers that lists
-@samp{NEWGROUPS} without supporting the function properly.)
-
-This variable can also be a list of select methods.  If so, Gnus will
+few days.  If any do, then it works.  If none do, then it doesn't work.
+I could write a function to make gnus guess whether the server supports
+@code{ask-server}, but it would just be a guess.  So I won't.  You could
+@code{telnet} to the server and say @code{HELP} and see whether it lists
+@samp{NEWGROUPS} among the commands it understands.  If it does, then it
+might work.  (But there are servers that lists @samp{NEWGROUPS} without
+supporting the function properly.)
+
+This variable can also be a list of select methods.  If so, gnus will
 issue an @code{ask-server} command to each of the select methods, and
 subscribe them (or not) using the normal methods.  This might be handy
 if you are monitoring a few servers for new groups.  A side effect is
@@ -670,7 +678,7 @@ Use the mantra ``dingnusdingnusdingnus'' to achieve permanent bliss.
 @subsection Subscription Methods
 
 @vindex gnus-subscribe-newsgroup-method
-What Gnus does when it encounters a new group is determined by the
+What gnus does when it encounters a new group is determined by the
 @code{gnus-subscribe-newsgroup-method} variable.
 
 This variable should contain a function.  This function will be called
@@ -707,9 +715,9 @@ up.  Or something like that.
 
 @item gnus-subscribe-interactively
 @vindex gnus-subscribe-interactively
-Subscribe new groups interactively.  This means that Gnus will ask
-you about @strong{all} new groups.  The groups you choose to subscribe
-to will be subscribed hierarchically.
+Subscribe new groups interactively.  This means that gnus will ask you
+about @strong{all} new groups.  The groups you choose to subscribe to
+will be subscribed hierarchically.
 
 @item gnus-subscribe-killed
 @vindex gnus-subscribe-killed
@@ -720,7 +728,7 @@ Kill all new groups.
 @vindex gnus-subscribe-hierarchical-interactive
 A closely related variable is
 @code{gnus-subscribe-hierarchical-interactive}.  (That's quite a
-mouthful.)  If this variable is non-@code{nil}, Gnus will ask you in a
+mouthful.)  If this variable is non-@code{nil}, gnus will ask you in a
 hierarchical fashion whether to subscribe to new groups or not.  Gnus
 will ask you for each sub-hierarchy whether you want to descend the
 hierarchy or not.
@@ -832,11 +840,11 @@ that you have on your native groups.  Use with caution.
 Now, you all know about the @file{.newsrc} file.  All subscription
 information is traditionally stored in this file.
 
-Things got a bit more complicated with @sc{gnus}.  In addition to
+Things got a bit more complicated with @sc{GNUS}.  In addition to
 keeping the @file{.newsrc} file updated, it also used a file called
 @file{.newsrc.el} for storing all the information that didn't fit into
 the @file{.newsrc} file.  (Actually, it also duplicated everything in
-the @file{.newsrc} file.)  @sc{gnus} would read whichever one of these
+the @file{.newsrc} file.)  @sc{GNUS} would read whichever one of these
 files was the most recently saved, which enabled people to swap between
 @sc{gnus} and other newsreaders.
 
@@ -852,7 +860,7 @@ You can turn off writing the @file{.newsrc} file by setting
 @code{gnus-save-newsrc-file} to @code{nil}, which means you can delete
 the file and save some space, as well as exiting from Gnus faster.
 However, this will make it impossible to use other newsreaders than
-Gnus.  But hey, who would want to, right?
+gnus.  But hey, who would want to, right?
 
 @vindex gnus-save-killed-list
 If @code{gnus-save-killed-list} (default @code{t}) is @code{nil}, Gnus
@@ -892,11 +900,11 @@ startup files.  If you want to turn backup creation off, say something like:
 @end lisp
 
 @vindex gnus-init-file
-When Gnus starts, it will read the @code{gnus-site-init-file}
+When gnus starts, it will read the @code{gnus-site-init-file}
 (@file{.../site-lisp/gnus} by default) and @code{gnus-init-file}
 (@file{~/.gnus} by default) files.  These are normal Emacs Lisp files
 and can be used to avoid cluttering your @file{~/.emacs} and
-@file{site-init} files with Gnus stuff.  Gnus will also check for files
+@file{site-init} files with gnus stuff.  Gnus will also check for files
 with the same names as these, but with @file{.elc} and @file{.el}
 suffixes.  In other words, if you have set @code{gnus-init-file} to
 @file{~/.gnus}, it will look for @file{~/.gnus.elc}, @file{~/.gnus.el},
@@ -909,24 +917,24 @@ and finally @file{~/.gnus} (in this order).
 @cindex dribble file
 @cindex auto-save
 
-Whenever you do something that changes the Gnus data (reading articles,
+Whenever you do something that changes the gnus data (reading articles,
 catching up, killing/subscribing groups), the change is added to a
 special @dfn{dribble buffer}.  This buffer is auto-saved the normal
 Emacs way.  If your Emacs should crash before you have saved the
 @file{.newsrc} files, all changes you have made can be recovered from
 this file.
 
-If Gnus detects this file at startup, it will ask the user whether to
-read it.  The auto save file is deleted whenever the real startup file is
-saved.
+If gnus detects this file at startup, it will ask the user whether to
+read it.  The auto save file is deleted whenever the real startup file
+is saved.
 
 @vindex gnus-use-dribble-file
-If @code{gnus-use-dribble-file} is @code{nil}, Gnus won't create and
+If @code{gnus-use-dribble-file} is @code{nil}, gnus won't create and
 maintain a dribble buffer.  The default is @code{t}.
 
 @vindex gnus-dribble-directory
 Gnus will put the dribble file(s) in @code{gnus-dribble-directory}.  If
-this variable is @code{nil}, which it is by default, Gnus will dribble
+this variable is @code{nil}, which it is by default, gnus will dribble
 into the directory where the @file{.newsrc} file is located.  (This is
 normally the user's home directory.)  The dribble file will get the same
 file permissions as the @code{.newsrc} file.
@@ -937,14 +945,14 @@ file permissions as the @code{.newsrc} file.
 @cindex active file
 @cindex ignored groups
 
-When Gnus starts, or indeed whenever it tries to determine whether new
+When gnus starts, or indeed whenever it tries to determine whether new
 articles have arrived, it reads the active file.  This is a very large
 file that lists all the active groups and articles on the server.
 
 @vindex gnus-ignored-newsgroups
-Before examining the active file, Gnus deletes all lines that match the
+Before examining the active file, gnus deletes all lines that match the
 regexp @code{gnus-ignored-newsgroups}.  This is done primarily to reject
-any groups with bogus names, but you can use this variable to make Gnus
+any groups with bogus names, but you can use this variable to make gnus
 ignore hierarchies you aren't ever interested in.  However, this is not
 recommended.  In fact, it's highly discouraged.  Instead, @pxref{New
 Groups} for an overview of other variables that can be used instead.
@@ -956,15 +964,15 @@ Groups} for an overview of other variables that can be used instead.
 @vindex gnus-read-active-file
 @c @head
 The active file can be rather Huge, so if you have a slow network, you
-can set @code{gnus-read-active-file} to @code{nil} to prevent Gnus from
+can set @code{gnus-read-active-file} to @code{nil} to prevent gnus from
 reading the active file.  This variable is @code{some} by default.
 
 Gnus will try to make do by getting information just on the groups that
 you actually subscribe to.
 
 Note that if you subscribe to lots and lots of groups, setting this
-variable to @code{nil} will probably make Gnus slower, not faster.  At
-present, having this variable @code{nil} will slow Gnus down
+variable to @code{nil} will probably make gnus slower, not faster.  At
+present, having this variable @code{nil} will slow gnus down
 considerably, unless you read news over a 2400 baud modem.
 
 This variable can also have the value @code{some}.  Gnus will then
@@ -974,9 +982,9 @@ support the @code{LIST ACTIVE group} command), on others this isn't fast
 at all.  In any case, @code{some} should be faster than @code{nil}, and
 is certainly faster than @code{t} over slow lines.
 
-If this variable is @code{nil}, Gnus will ask for group info in total
+If this variable is @code{nil}, gnus will ask for group info in total
 lock-step, which isn't very fast.  If it is @code{some} and you use an
-@sc{nntp} server, Gnus will pump out commands as fast as it can, and
+@sc{nntp} server, gnus will pump out commands as fast as it can, and
 read all the replies in one swoop.  This will normally result in better
 performance, but if the server does not support the aforementioned
 @code{LIST ACTIVE group} command, this isn't very nice to the server.
@@ -995,21 +1003,21 @@ secondary select methods.
 
 @item gnus-load-hook
 @vindex gnus-load-hook
-A hook run while Gnus is being loaded.  Note that this hook will
+A hook run while gnus is being loaded.  Note that this hook will
 normally be run just once in each Emacs session, no matter how many
-times you start Gnus.
+times you start gnus.
 
 @item gnus-before-startup-hook
 @vindex gnus-before-startup-hook
-A hook run after starting up Gnus successfully.
+A hook run after starting up gnus successfully.
 
 @item gnus-startup-hook
 @vindex gnus-startup-hook
-A hook run as the very last thing after starting up Gnus
+A hook run as the very last thing after starting up gnus
 
 @item gnus-started-hook
 @vindex gnus-started-hook
-A hook that is run as the very last thing after starting up Gnus
+A hook that is run as the very last thing after starting up gnus
 successfully.
 
 @item gnus-started-hook
@@ -1019,7 +1027,7 @@ generating the group buffer.
 
 @item gnus-check-bogus-newsgroups
 @vindex gnus-check-bogus-newsgroups
-If non-@code{nil}, Gnus will check for and delete all bogus groups at
+If non-@code{nil}, gnus will check for and delete all bogus groups at
 startup.  A @dfn{bogus group} is a group that you have in your
 @file{.newsrc} file, but doesn't exist on the news server.  Checking for
 bogus groups can take quite a while, so to save time and resources it's
@@ -1035,11 +1043,11 @@ of doing your job.  Note that this variable is used before
 
 @item gnus-no-groups-message
 @vindex gnus-no-groups-message
-Message displayed by Gnus when no groups are available.
+Message displayed by gnus when no groups are available.
 
 @item gnus-play-startup-jingle
 @vindex gnus-play-startup-jingle
-If non-@code{nil}, play the Gnus jingle at startup.
+If non-@code{nil}, play the gnus jingle at startup.
 
 @item gnus-startup-jingle
 @vindex gnus-startup-jingle
@@ -15101,7 +15109,7 @@ Most Gnus storage path variables will be initialized from this variable,
 which defaults to the @samp{SAVEDIR} environment variable, or
 @file{~/News/} if that variable isn't set.
 
-Note that Gnus is mostly loaded when the @file{.gnus.el} file is read.
+Note that gnus is mostly loaded when the @file{.gnus.el} file is read.
 This means that other directory variables that are initialized from this
 variable won't be set properly if you set this variable in
 @file{.gnus.el}.  Set this variable in @file{.emacs} instead.
@@ -15371,12 +15379,6 @@ Overall, a casual user who hasn't written much code that depends on
 @sc{gnus} internals should suffer no problems.  If problems occur,
 please let me know by issuing that magic command @kbd{M-x gnus-bug}.
 
-@vindex gnus-bug-create-help-buffer
-If you are in the habit of sending bug reports @emph{very} often, you
-may find the helpful help buffer annoying after a while.  If so, set
-@code{gnus-bug-create-help-buffer} to @code{nil} to avoid having it pop
-up at you.
-
 
 @node Conformity
 @subsection Conformity
@@ -15563,7 +15565,6 @@ Russ Allbery,
 Peter Arius,
 Matt Armstrong,
 Marc Auslander,
-Frank Bennett,
 Robert Bihlmeyer,
 Chris Bone,
 Mark Borges,
@@ -15571,7 +15572,6 @@ Mark Boyns,
 Lance A. Brown,
 Kees de Bruin,
 Martin Buchholz,
-Joe Buehler,
 Kevin Buhr,
 Alastair Burt,
 Joao Cachopo,
@@ -15606,8 +15606,6 @@ D. Hall,
 Magnus Hammerin,
 Kenichi Handa, @c Handa
 Raja R. Harinath,
-Yoshiki Hayashi, @c ?
-P. E. Jareth Hein,
 Hisashige Kenji, @c Hisashige
 Marc Horowitz,
 Gunnar Horrigmo,
@@ -15634,13 +15632,12 @@ James LewisMoss,
 Christian Limpach,
 Markus Linnala,
 Dave Love,
-Mike McEwan,
 Tonny Madsen,
 Shlomo Mahlab,
 Nat Makarevitch,
 Istvan Marko,
 David Martin,
-Jason R. Mastaler,
+Jason R Mastaler,
 Gordon Matzigkeit,
 Timo Metzemakers,
 Richard Mlynarik,
@@ -15660,8 +15657,6 @@ Stephen Peters,
 Jens-Ulrik Holger Petersen,
 Ulrich Pfeifer,
 John McClary Prevost,
-Mike Pullen,
-Jim Radford,
 Colin Rafferty,
 Lasse Rasinen,
 Lars Balker Rasmussen,
@@ -15671,7 +15666,6 @@ Roland B. Roberts,
 Bart Robinson,
 Christian von Roques,
 Jason Rumney,
-Wolfgang Rupprecht,
 Jay Sachs,
 Dewey M. Sasser,
 Loren Schall,
@@ -15728,7 +15722,7 @@ actually are people who are using Gnus.  Who'd'a thunk it!
 * ding Gnus::          New things in Gnus 5.0/5.1, the first new Gnus.
 * September Gnus::     The Thing Formally Known As Gnus 5.3/5.3.
 * Red Gnus::           Third time best---Gnus 5.4/5.5.
-* Quassia Gnus::       Two times two is four, or Gnus 5.6.11.
+* Quassia Gnus::       Two times two is four, or Gnus 5.6.10.
 @end menu
 
 These lists are, of course, just @emph{short} overviews of the
@@ -16263,7 +16257,7 @@ Emphasized text can be properly fontisized:
 @node Quassia Gnus
 @subsubsection Quassia Gnus
 
-New features in Gnus 5.6.11:
+New features in Gnus 5.6.10:
 
 @itemize @bullet
 
index cdb63f4..2484235 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename message
-@settitle Message 5.6.11 Manual
+@settitle Message 5.6.10 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Message 5.6.11 Manual
+@title Message 5.6.10 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page
@@ -83,7 +83,7 @@ Message mode buffers.
 * Key Index::         List of Message mode keys.
 @end menu
 
-This manual corresponds to Message 5.6.11.  Message is distributed with
+This manual corresponds to Message 5.6.10.  Message is distributed with
 the Gnus distribution bearing the same version number as this manual
 has. 
 
@@ -717,18 +717,6 @@ Allegedly.
 This string is inserted at the end of the headers in all message
 buffers.
 
-@item message-subject-re-regexp
-@vindex message-subject-re-regexp
-Responses to messages have subjects that start with @samp{Re: }.  This
-is @emph{not} an abbreviation of the English word ``response'', but in
-Latin, and means ``in response to''.  Some illiterate nincompoops have
-failed to grasp this fact, and have ``internationalized'' their software
-to use abonimations like @samp{Aw: } (``antwort'') or @samp{Sv: }
-(``svar'') instead, which is meaningless and evil.  However, you may
-have to deal with users that use these evil tools, in which case you may
-set this variable to a regexp that matches these prefixes.  Myself, I
-just throw away non-compliant mail.
-
 @end table
 
 
diff --git a/texi/widget.texi b/texi/widget.texi
deleted file mode 100644 (file)
index b733a78..0000000
+++ /dev/null
@@ -1,1432 +0,0 @@
-\input texinfo.tex
-
-@c %**start of header
-@setfilename widget
-@settitle The Emacs Widget Library
-@iftex
-@afourpaper
-@headings double
-@end iftex
-@c %**end of header
-
-@node Top, Introduction, (dir), (dir)
-@comment  node-name,  next,  previous,  up
-@top The Emacs Widget Library
-
-Version: 1.82
-
-@menu
-* Introduction::                
-* User Interface::              
-* Programming Example::         
-* Setting Up the Buffer::       
-* Basic Types::                 
-* Sexp Types::                  
-* Widget Properties::           
-* Defining New Widgets::        
-* Widget Wishlist.::            
-@end menu
-
-@node  Introduction, User Interface, Top, Top
-@comment  node-name,  next,  previous,  up
-@section Introduction
-
-Most graphical user interface toolkits, such as Motif and XView, provide
-a number of standard user interface controls (sometimes known as
-`widgets' or `gadgets').  Emacs doesn't really support anything like
-this, except for an incredible powerful text ``widget''.  On the other
-hand, Emacs does provide the necessary primitives to implement many
-other widgets within a text buffer.  The @code{widget} package
-simplifies this task.
-
-The basic widgets are:
-
-@table @code
-@item link
-Areas of text with an associated action.  Intended for hypertext links
-embedded in text.
-@item push-button 
-Like link, but intended for stand-alone buttons.
-@item editable-field
-An editable text field.  It can be either variable or fixed length.
-@item menu-choice
-Allows the user to choose one of multiple options from a menu, each
-option is itself a widget.  Only the selected option will be visible in
-the buffer.
-@item radio-button-choice
-Allows the user to choose one of multiple options by pushing radio
-buttons.  The options are implemented as widgets.  All options will be
-visible in the buffer.
-@item item
-A simple constant widget intended to be used in the @code{menu-choice} and
-@code{radio-button-choice} widgets. 
-@item choice-item
-An button item only intended for use in choices.  When pushed, the user
-will be asked to select another option from the choice widget.
-@item toggle
-A simple @samp{on}/@samp{off} switch.
-@item checkbox
-A checkbox (@samp{[ ]}/@samp{[X]}). 
-@item editable-list
-Create an editable list.  The user can insert or delete items in the
-list.  Each list item is itself a widget.
-@end table
-
-Now of what possible use can support for widgets be in a text editor?
-I'm glad you asked.  The answer is that widgets are useful for
-implementing forms.  A @dfn{form} in emacs is a buffer where the user is
-supposed to fill out a number of fields, each of which has a specific
-meaning.  The user is not supposed to change or delete any of the text
-between the fields.  Examples of forms in Emacs are the @file{forms}
-package (of course), the customize buffers, the mail and news compose
-modes, and the @sc{html} form support in the @file{w3} browser.  
-
-The advantages for a programmer of using the @code{widget} package to
-implement forms are:
-
-@enumerate
-@item
-More complex field than just editable text are supported. 
-@item
-You can give the user immediate feedback if he enters invalid data in a
-text field, and sometimes prevent entering invalid data.
-@item 
-You can have fixed sized fields, thus allowing multiple field to be
-lined up in columns.
-@item
-It is simple to query or set the value of a field. 
-@item 
-Editing happens in buffer, not in the mini-buffer.
-@item 
-Packages using the library get a uniform look, making them easier for
-the user to learn.
-@item 
-As support for embedded graphics improve, the widget library will
-extended to support it.  This means that your code using the widget
-library will also use the new graphic features by automatic.
-@end enumerate
-
-In order to minimize the code that is loaded by users who does not
-create any widgets, the code has been split in two files:
-
-@table @file
-@item widget.el
-This will declare the user variables, define the function
-@code{widget-define}, and autoload the function @code{widget-create}. 
-@item wid-edit.el
-Everything else is here, there is no reason to load it explicitly, as
-it will be autoloaded when needed.
-@end table
-
-@node User Interface, Programming Example, Introduction, Top
-@comment  node-name,  next,  previous,  up
-@section User Interface
-
-A form consist of read only text for documentation and some fields,
-where each the fields contain two parts, as tag and a value.  The tags
-are used to identify the fields, so the documentation can refer to the
-foo field, meaning the field tagged with @samp{Foo}. Here is an example
-form:
-
-@example
-Here is some documentation.
-
-Name: @i{My Name}     @strong{Choose}: This option
-Address:  @i{Some Place
-In some City
-Some country.}
-
-See also @b{_other work_} for more information.
-
-Numbers: count to three below
-@b{[INS]} @b{[DEL]} @i{One}
-@b{[INS]} @b{[DEL]} @i{Eh, two?}
-@b{[INS]} @b{[DEL]} @i{Five!}
-@b{[INS]} 
-
-Select multiple:
-
-@b{[X]} This
-@b{[ ]} That
-@b{[X]} Thus
-
-Select one:
-
-@b{(*)} One
-@b{( )} Another One.
-@b{( )} A Final One.
-
-@b{[Apply Form]} @b{[Reset Form]}
-@end example
-
-The top level widgets in is example are tagged @samp{Name},
-@samp{Choose}, @samp{Address}, @samp{_other work_}, @samp{Numbers},
-@samp{Select multiple}, @samp{Select one}, @samp{[Apply Form]}, and
-@samp{[Reset Form]}.  There are basically two thing the user can do within
-a form, namely editing the editable text fields and activating the
-buttons.
-
-@subsection Editable Text Fields
-
-In the example, the value for the @samp{Name} is most likely displayed
-in an editable text field, and so are values for each of the members of
-the @samp{Numbers} list.  All the normal Emacs editing operations are
-available for editing these fields.  The only restriction is that each
-change you make must be contained within a single editable text field.
-For example, capitalizing all text from the middle of one field to the
-middle of another field is prohibited.
-
-Editing text fields are created by the @code{editable-field} widget.
-
-The editing text fields are highlighted with the
-@code{widget-field-face} face, making them easy to find.
-
-@deffn Face widget-field-face
-Face used for other editing fields.
-@end deffn
-
-@subsection Buttons
-
-Some portions of the buffer have an associated @dfn{action}, which can
-be @dfn{activated} by a standard key or mouse command.  These portions
-are called @dfn{buttons}.  The default commands for activating a button
-are:
-
-@table @kbd
-@item @key{RET}
-@deffn Command widget-button-press @var{pos} &optional @var{event}
-Activate the button at @var{pos}, defaulting to point.
-If point is not located on a button, activate the binding in
-@code{widget-global-map} (by default the global map).
-@end deffn
-
-@item mouse-2
-@deffn Command widget-button-click @var{event}
-Activate the button at the location of the mouse pointer.  If the mouse
-pointer is located in an editable text field, activate the binding in
-@code{widget-global-map} (by default the global map).
-@end deffn
-@end table
-
-There are several different kind of buttons, all of which are present in
-the example:
-
-@table @emph
-@item The Option Field Tags.
-When you activate one of these buttons, you will be asked to choose
-between a number of different options.  This is how you edit an option
-field.  Option fields are created by the @code{menu-choice} widget.  In
-the example, @samp{@b{Choose}} is an option field tag.
-@item The @samp{@b{[INS]}} and @samp{@b{[DEL]}} buttons.
-Activating these will insert or delete elements from a editable list.
-The list is created by the @code{editable-list} widget. 
-@item Embedded Buttons.
-The @samp{@b{_other work_}} is an example of an embedded
-button. Embedded buttons are not associated with a fields, but can serve
-any purpose, such as implementing hypertext references.  They are
-usually created by the @code{link} widget.
-@item The @samp{@b{[ ]}} and @samp{@b{[X]}} buttons.
-Activating one of these will convert it to the other.  This is useful
-for implementing multiple-choice fields.  You can create it wit
-@item The @samp{@b{( )}} and @samp{@b{(*)}} buttons.
-Only one radio button in a @code{radio-button-choice} widget can be selected at any
-time.  When you push one of the unselected radio buttons, it will be
-selected and the previous selected radio button will become unselected. 
-@item The @samp{@b{[Apply Form]}} @samp{@b{[Reset Form]}} buttons.
-These are explicit buttons made with the @code{push-button} widget.  The main
-difference from the @code{link} widget is that the buttons are will be
-displayed as GUI buttons when possible.
-enough. 
-@end table
-
-To make them easier to locate, buttons are emphasized in the buffer.  
-
-@deffn Face widget-button-face
-Face used for buttons.
-@end deffn
-
-@defopt widget-mouse-face
-Face used for buttons when the mouse pointer is above it.
-@end defopt
-
-@subsection Navigation
-
-You can use all the normal Emacs commands to move around in a form
-buffer, plus you will have these additional commands:
-
-@table @kbd
-@item @key{TAB}
-@deffn Command widget-forward &optional count
-Move point @var{count} buttons or editing fields forward.
-@end deffn
-@item @key{M-TAB}
-@deffn Command widget-backward &optional count
-Move point @var{count} buttons or editing fields backward.
-@end deffn
-@end table
-
-@node Programming Example, Setting Up the Buffer, User Interface, Top
-@comment  node-name,  next,  previous,  up
-@section Programming Example
-
-Here is the code to implement the user interface example (see @ref{User
-Interface}).
-
-@lisp
-(require 'widget)
-
-(eval-when-compile
-  (require 'wid-edit))
-
-(defvar widget-example-repeat)
-
-(defun widget-example ()
-  "Create the widgets from the Widget manual."
-  (interactive)
-  (switch-to-buffer "*Widget Example*")
-  (kill-all-local-variables)
-  (make-local-variable 'widget-example-repeat)
-  (let ((inhibit-read-only t))
-    (erase-buffer))
-  (widget-insert "Here is some documentation.\n\nName: ")
-  (widget-create 'editable-field
-                :size 13
-                "My Name")
-  (widget-create 'menu-choice
-                :tag "Choose"
-                :value "This"
-                :help-echo "Choose me, please!"
-                :notify (lambda (widget &rest ignore)
-                          (message "%s is a good choice!"
-                                   (widget-value widget)))
-                '(item :tag "This option" :value "This")
-                '(choice-item "That option")
-                '(editable-field :menu-tag "No option" "Thus option"))
-  (widget-insert "Address: ")
-  (widget-create 'editable-field
-                "Some Place\nIn some City\nSome country.")
-  (widget-insert "\nSee also ")
-  (widget-create 'link
-                :notify (lambda (&rest ignore)
-                          (widget-value-set widget-example-repeat 
-                                            '("En" "To" "Tre"))
-                          (widget-setup))
-                "other work")
-  (widget-insert " for more information.\n\nNumbers: count to three below\n")
-  (setq widget-example-repeat
-       (widget-create 'editable-list
-                      :entry-format "%i %d %v"
-                      :notify (lambda (widget &rest ignore)
-                                (let ((old (widget-get widget
-                                                       ':example-length))
-                                      (new (length (widget-value widget))))
-                                  (unless (eq old new)
-                                    (widget-put widget ':example-length new)
-                                    (message "You can count to %d." new))))
-                      :value '("One" "Eh, two?" "Five!")
-                      '(editable-field :value "three")))
-  (widget-insert "\n\nSelect multiple:\n\n")
-  (widget-create 'checkbox t)
-  (widget-insert " This\n")
-  (widget-create 'checkbox nil)
-  (widget-insert " That\n")
-  (widget-create 'checkbox
-                :notify (lambda (&rest ignore) (message "Tickle"))
-                t)
-  (widget-insert " Thus\n\nSelect one:\n\n")
-  (widget-create 'radio-button-choice
-                :value "One"
-                :notify (lambda (widget &rest ignore)
-                          (message "You selected %s"
-                                   (widget-value widget)))
-                '(item "One") '(item "Anthor One.") '(item "A Final One."))
-  (widget-insert "\n")
-  (widget-create 'push-button
-                :notify (lambda (&rest ignore) 
-                          (if (= (length (widget-value widget-example-repeat))
-                                 3)
-                              (message "Congratulation!")
-                            (error "Three was the count!")))
-                "Apply Form")
-  (widget-insert " ")
-  (widget-create 'push-button
-                :notify (lambda (&rest ignore)
-                          (widget-example))
-                "Reset Form")
-  (widget-insert "\n")
-  (use-local-map widget-keymap)
-  (widget-setup))
-@end lisp
-
-@node Setting Up the Buffer, Basic Types, Programming Example, Top
-@comment  node-name,  next,  previous,  up
-@section Setting Up the Buffer
-
-Widgets are created with @code{widget-create}, which returns a
-@dfn{widget} object.  This object can be queried and manipulated by
-other widget functions, until it is deleted with @code{widget-delete}.
-After the widgets have been created, @code{widget-setup} must be called
-to enable them.
-
-@defun widget-create type [ keyword argument ]@dots{}
-Create and return a widget of type @var{type}.
-The syntax for the @var{type} argument is described in @ref{Basic Types}.
-
-The keyword arguments can be used to overwrite the keyword arguments
-that are part of @var{type}.
-@end defun
-
-@defun widget-delete widget
-Delete @var{widget} and remove it from the buffer.
-@end defun
-
-@defun widget-setup 
-Setup a buffer to support widgets. 
-
-This should be called after creating all the widgets and before allowing
-the user to edit them.
-@refill
-@end defun
-
-If you want to insert text outside the widgets in the form, the
-recommended way to do that is with @code{widget-insert}.
-
-@defun widget-insert 
-Insert the arguments, either strings or characters, at point.
-The inserted text will be read only.
-@end defun
-
-There is a standard widget keymap which you might find useful.
-
-@defvr Const widget-keymap
-A keymap with the global keymap as its parent.@*
-@key{TAB} and @kbd{C-@key{TAB}} are bound to @code{widget-forward} and
-@code{widget-backward}, respectively.  @kbd{@key{RET}} and @kbd{mouse-2}
-are bound to @code{widget-button-press} and
-@code{widget-button-}.@refill
-@end defvr
-
-@defvar widget-global-map
-Keymap used by @code{widget-button-press} and @code{widget-button-click}
-when not on a button.  By default this is @code{global-map}.
-@end defvar
-
-@node Basic Types, Sexp Types, Setting Up the Buffer, Top
-@comment  node-name,  next,  previous,  up
-@section Basic Types
-
-The syntax of a type specification is given below:
-
-@example
-NAME ::= (NAME [KEYWORD ARGUMENT]... ARGS)
-     |   NAME
-@end example
-
-Where, @var{name} is a widget name, @var{keyword} is the name of a
-property, @var{argument} is the value of the property, and @var{args}
-are interpreted in a widget specific way.
-
-There following keyword arguments that apply to all widgets:
-
-@table @code
-@item :value
-The initial value for widgets of this type.
-
-@item :format
-This string will be inserted in the buffer when you create a widget.
-The following @samp{%} escapes are available:
-
-@table @samp
-@item %[
-@itemx %]
-The text inside will be marked as a button.
-
-@item %@{
-@itemx %@}
-The text inside will be displayed with the face specified by
-@code{:sample-face}. 
-
-@item %v
-This will be replaces with the buffer representation of the widgets
-value.  What this is depends on the widget type.
-
-@item %d
-Insert the string specified by @code{:doc} here.
-
-@item %h
-Like @samp{%d}, with the following modifications: If the documentation
-string is more than one line, it will add a button which will toggle
-between showing only the first line, and showing the full text.
-Furthermore, if there is no @code{:doc} property in the widget, it will
-instead examine the @code{:documentation-property} property.  If it is a
-lambda expression, it will be called with the widget's value as an
-argument, and the result will be used as the documentation text.
-
-@item %t
-Insert the string specified by @code{:tag} here, or the @code{princ}
-representation of the value if there is no tag.
-
-@item %%
-Insert a literal @samp{%}. 
-@end table
-
-@item :button-face
-Face used to highlight text inside %[ %] in the format.
-
-@item :doc
-The string inserted by the @samp{%d} escape in the format
-string.  
-
-@item :tag
-The string inserted by the @samp{%t} escape in the format
-string.  
-
-@item :tag-glyph
-Name of image to use instead of the string specified by `:tag' on
-Emacsen that supports it.
-
-@item :help-echo
-Message displayed whenever you move to the widget with either
-@code{widget-forward} or @code{widget-backward}.
-
-@item :indent
-An integer indicating the absolute number of spaces to indent children
-of this widget.
-
-@item :offset
-An integer indicating how many extra spaces to add to the widget's
-grandchildren compared to this widget.
-
-@item :extra-offset
-An integer indicating how many extra spaces to add to the widget's
-children compared to this widget.
-
-@item :notify
-A function called each time the widget or a nested widget is changed.
-The function is called with two or three arguments.  The first argument
-is the widget itself, the second argument is the widget that was
-changed, and the third argument is the event leading to the change, if
-any. 
-
-@item :menu-tag
-Tag used in the menu when the widget is used as an option in a
-@code{menu-choice} widget.
-
-@item :menu-tag-get
-Function used for finding the tag when the widget is used as an option
-in a @code{menu-choice} widget.  By default, the tag used will be either the
-@code{:menu-tag} or @code{:tag} property if present, or the @code{princ}
-representation of the @code{:value} property if not.
-
-@item :match
-Should be a function called with two arguments, the widget and a value,
-and returning non-nil if the widget can represent the specified value.
-
-@item :validate
-A function which takes a widget as an argument, and return nil if the
-widgets current value is valid for the widget.  Otherwise, it should
-return the widget containing the invalid data, and set that widgets
-@code{:error} property to a string explaining the error.
-
-@item :tab-order
-Specify the order in which widgets are traversed with
-@code{widget-forward} or @code{widget-backward}.  This is only partially
-implemented.
-
-@enumerate a
-@item
-Widgets with tabbing order @code{-1} are ignored.
-
-@item 
-(Unimplemented) When on a widget with tabbing order @var{n}, go to the
-next widget in the buffer with tabbing order @var{n+1} or @code{nil},
-whichever comes first.
-
-@item
-When on a widget with no tabbing order specified, go to the next widget
-in the buffer with a positive tabbing order, or @code{nil}
-@end enumerate
-
-@item :parent
-The parent of a nested widget (e.g. a @code{menu-choice} item or an
-element of a @code{editable-list} widget).
-
-@item :sibling-args
-This keyword is only used for members of a @code{radio-button-choice} or
-@code{checklist}.  The value should be a list of extra keyword
-arguments, which will be used when creating the @code{radio-button} or
-@code{checkbox} associated with this item.
-
-@end table
-
-@deffn {User Option} widget-glyph-directory
-Directory where glyphs are found.  
-Widget will look here for a file with the same name as specified for the
-image, with either a @samp{.xpm} (if supported) or @samp{.xbm} extension.
-@end deffn
-
-@deffn{User Option} widget-glyph-enable
-If non-nil, allow glyphs to appear on displayes where they are supported.
-@end deffn
-
-
-@menu
-* link::                        
-* url-link::                    
-* info-link::                   
-* push-button::                 
-* editable-field::              
-* text::                        
-* menu-choice::                 
-* radio-button-choice::         
-* item::                        
-* choice-item::                 
-* toggle::                      
-* checkbox::                    
-* checklist::                   
-* editable-list::               
-@end menu
-
-@node link, url-link, Basic Types, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{link} Widget
-
-Syntax:
-
-@example
-TYPE ::= (link [KEYWORD ARGUMENT]...  [ VALUE ])
-@end example
-
-The @var{value}, if present, is used to initialize the @code{:value}
-property.  The value should be a string, which will be inserted in the
-buffer. 
-
-@node url-link, info-link, link, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{url-link} Widget
-
-Syntax:
-
-@example
-TYPE ::= (url-link [KEYWORD ARGUMENT]...  URL)
-@end example
-
-When this link is activated, the @sc{www} browser specified by
-@code{browse-url-browser-function} will be called with @var{url}. 
-
-@node info-link, push-button, url-link, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{info-link} Widget
-
-Syntax:
-
-@example
-TYPE ::= (info-link [KEYWORD ARGUMENT]...  ADDRESS)
-@end example
-
-When this link is activated, the build-in info browser is started on
-@var{address}. 
-
-@node  push-button, editable-field, info-link, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{push-button} Widget
-
-Syntax:
-
-@example
-TYPE ::= (push-button [KEYWORD ARGUMENT]...  [ VALUE ])
-@end example
-
-The @var{value}, if present, is used to initialize the @code{:value}
-property. The value should be a string, which will be inserted in the
-buffer. 
-
-The following extra properties are recognized.
-
-@table @code
-@item :text-format
-The format string used when the push button cannot be displayed
-graphically.  There are two escapes, @code{%s}, which must be present
-exactly once, will be substituted with the tag, and @code{%%} will be
-substituted with a singe @samp{%}.
-@end table
-
-By default the tag will be shown in brackets.
-
-@node editable-field, text, push-button, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{editable-field} Widget
-
-Syntax:
-
-@example
-TYPE ::= (editable-field [KEYWORD ARGUMENT]... [ VALUE ])
-@end example
-
-The @var{value}, if present, is used to initialize the @code{:value}
-property.  The value should be a string, which will be inserted in
-field.  This widget will match all string values.
-
-The following extra properties are recognized.
-
-@table @code
-@item :size
-The width of the editable field.@*
-By default the field will reach to the end of the line.
-
-@item :value-face
-Face used for highlighting the editable field.  Default is
-@code{widget-field-face}. 
-
-@item :secret
-Character used to display the value.  You can set this to e.g. @code{?*}
-if the field contains a password or other secret information.  By
-default, the value is not secret.
-
-@item :valid-regexp
-By default the @code{:validate} function will match the content of the
-field with the value of this attribute.  The default value is @code{""}
-which matches everything.
-
-@item :keymap
-Keymap used in the editable field.  The default value is
-@code{widget-field-keymap}, which allows you to use all the normal
-editing commands, even if the buffers major mode supress some of them.
-Pressing return activates the function specified by @code{:activate}. 
-
-@item :hide-front-space
-@itemx :hide-rear-space
-In order to keep track of the editable field, emacs places an invisible
-space character in front of the field, and for fixed sized fields also
-in the rear end of the field.  For fields that extent to the end of the
-line, the terminating linefeed serves that purpose instead.  
-
-Emacs will try to make the spaces intangible when it is safe to do so.
-Intangible means that the cursor motion commands will skip over the
-character as if it didn't exist.  This is safe to do when the text
-preceding or following the widget cannot possible change during the
-lifetime of the @code{editable-field} widget.  The preferred way to tell
-Emacs this, is to add text to the @code{:format} property around the
-value.  For example @code{:format "Tag: %v "}.  
-
-You can overwrite the internal safety check by setting the
-@code{:hide-front-space} or @code{:hide-rear-space} properties to
-non-nil.  This is not recommended.  For example, @emph{all} text that
-belongs to a widget (i.e. is created from its @code{:format} string) will
-change whenever the widget changes its value.
-
-@end table
-
-@node text, menu-choice, editable-field, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{text} Widget
-
-This is just like @code{editable-field}, but intended for multiline text
-fields.  The default @code{:keymap} is @code{widget-text-keymap}, which
-does not rebind the return key.
-
-@node menu-choice, radio-button-choice, text, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{menu-choice} Widget
-
-Syntax:
-
-@example
-TYPE ::= (menu-choice [KEYWORD ARGUMENT]... TYPE ... )
-@end example
-
-The @var{type} arguments represents each possible choice.  The widgets
-value of will be the value of the chosen @var{type} argument.  This
-widget will match any value that matches at least one of the specified
-@var{type} arguments.
-
-@table @code
-@item :void 
-Widget type used as a fallback when the value does not match any of the
-specified @var{type} arguments.
-
-@item :case-fold
-Set this to nil if you don't want to ignore case when prompting for a
-choice through the minibuffer.
-
-@item :children
-A list whose car is the widget representing the currently chosen type in
-the buffer. 
-
-@item :choice
-The current chosen type
-
-@item :args 
-The list of types. 
-@end table
-
-@node radio-button-choice, item, menu-choice, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{radio-button-choice} Widget
-
-Syntax:
-
-@example
-TYPE ::= (radio-button-choice [KEYWORD ARGUMENT]...  TYPE ... )
-@end example
-
-The @var{type} arguments represents each possible choice.  The widgets
-value of will be the value of the chosen @var{type} argument.  This
-widget will match any value that matches at least one of the specified
-@var{type} arguments.
-
-The following extra properties are recognized.
-
-@table @code
-@item :entry-format
-This string will be inserted for each entry in the list.
-The following @samp{%} escapes are available:
-@table @samp
-@item %v
-Replaced with the buffer representation of the @var{type} widget.
-@item %b
-Replace with the radio button.
-@item %%
-Insert a literal @samp{%}. 
-@end table
-
-@item button-args
-A list of keywords to pass to the radio buttons.  Useful for setting
-e.g. the @samp{:help-echo} for each button.
-
-@item :buttons
-The widgets representing the radio buttons.
-
-@item :children
-The widgets representing each type.
-
-@item :choice
-The current chosen type
-
-@item :args 
-The list of types. 
-@end table
-
-You can add extra radio button items to a @code{radio-button-choice}
-widget after it has been created with the function
-@code{widget-radio-add-item}. 
-
-@defun widget-radio-add-item widget type
-Add to @code{radio-button-choice} widget @var{widget} a new radio button item of type
-@var{type}. 
-@end defun
-
-Please note that such items added after the @code{radio-button-choice}
-widget has been created will @strong{not} be properly destructed when
-you call @code{widget-delete}.
-
-@node item, choice-item, radio-button-choice, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{item} Widget
-
-Syntax:
-
-@example
-ITEM ::= (item [KEYWORD ARGUMENT]... VALUE)
-@end example
-
-The @var{value}, if present, is used to initialize the @code{:value}
-property.  The value should be a string, which will be inserted in the
-buffer.  This widget will only match the specified value.
-
-@node choice-item, toggle, item, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{choice-item} Widget
-
-Syntax:
-
-@example
-ITEM ::= (choice-item [KEYWORD ARGUMENT]... VALUE)
-@end example
-
-The @var{value}, if present, is used to initialize the @code{:value}
-property.  The value should be a string, which will be inserted in the
-buffer as a button.  Activating the button of a @code{choice-item} is
-equivalent to activating the parent widget.  This widget will only match
-the specified value. 
-
-@node toggle, checkbox, choice-item, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{toggle} Widget
-
-Syntax:
-
-@example
-TYPE ::= (toggle [KEYWORD ARGUMENT]...)
-@end example
-
-The widget has two possible states, `on' and `off', which corresponds to
-a @code{t} or @code{nil} value.
-
-The following extra properties are recognized.
-
-@table @code
-@item :on
-String representing the `on' state.  By default the string @samp{on}.
-@item :off 
-String representing the `off' state.  By default the string @samp{off}.
-@item :on-glyph
-Name of a glyph to be used instead of the `:on' text string, on emacsen
-that supports it.
-@item :off-glyph
-Name of a glyph to be used instead of the `:off' text string, on emacsen
-that supports it.
-@end table
-
-@node checkbox, checklist, toggle, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{checkbox} Widget
-
-The widget has two possible states, `selected' and `unselected', which
-corresponds to a @code{t} or @code{nil} value.
-
-Syntax:
-
-@example
-TYPE ::= (checkbox [KEYWORD ARGUMENT]...)
-@end example
-
-@node checklist, editable-list, checkbox, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{checklist} Widget
-
-Syntax:
-
-@example
-TYPE ::= (checklist [KEYWORD ARGUMENT]...  TYPE ... )
-@end example
-
-The @var{type} arguments represents each checklist item.  The widgets
-value of will be a list containing the value of each ticked @var{type}
-argument.  The checklist widget will match a list whose elements all
-matches at least one of the specified @var{type} arguments.
-
-The following extra properties are recognized.
-
-@table @code
-@item :entry-format
-This string will be inserted for each entry in the list.
-The following @samp{%} escapes are available:
-@table @samp
-@item %v
-Replaced with the buffer representation of the @var{type} widget.
-@item %b
-Replace with the checkbox.
-@item %%
-Insert a literal @samp{%}. 
-@end table
-
-@item button-args
-A list of keywords to pass to the checkboxes.  Useful for setting
-e.g. the @samp{:help-echo} for each checkbox.
-
-@item :buttons
-The widgets representing the checkboxes.
-
-@item :children
-The widgets representing each type.
-
-@item :args 
-The list of types. 
-@end table
-
-@node editable-list,  , checklist, Basic Types
-@comment  node-name,  next,  previous,  up
-@subsection The @code{editable-list} Widget
-
-Syntax:
-
-@example
-TYPE ::= (editable-list [KEYWORD ARGUMENT]... TYPE)
-@end example
-
-The value is a list, where each member represent one widget of type
-@var{type}. 
-
-The following extra properties are recognized.
-
-@table @code
-@item :entry-format
-This string will be inserted for each entry in the list.
-The following @samp{%} escapes are available:
-@table @samp
-@item %v
-This will be replaced with the buffer representation of the @var{type}
-widget.
-@item %i
-Insert the @b{[INS]} button.
-@item %d
-Insert the @b{[DEL]} button.
-@item %%
-Insert a literal @samp{%}. 
-@end table
-
-@item :insert-button-args
-A list of keyword arguments to pass to the insert buttons.
-
-@item :delete-button-args
-A list of keyword arguments to pass to the delete buttons.
-
-@item :append-button-args
-A list of keyword arguments to pass to the trailing insert button.
-
-
-@item :buttons
-The widgets representing the insert and delete buttons.
-
-@item :children
-The widgets representing the elements of the list.
-
-@item :args
-List whose car is the type of the list elements.
-
-@end table
-
-@node Sexp Types, Widget Properties, Basic Types, Top
-@comment
-@section Sexp Types
-
-A number of widgets for editing s-expressions (lisp types) are also
-available.  These basically fall in three categories: @dfn{atoms},
-@dfn{composite types}, and @dfn{generic}.
-
-@menu
-* generic::                     
-* atoms::                       
-* composite::                   
-@end menu
-
-@node generic, atoms, Sexp Types, Sexp Types
-@comment  node-name,  next,  previous,  up
-@subsection The Generic Widget.
-
-The @code{const} and @code{sexp} widgets can contain any lisp
-expression.  In the case of the @code{const} widget the user is
-prohibited from editing edit it, which is mainly useful as a component
-of one of the composite widgets.
-
-The syntax for the generic widgets is
-
-@example
-TYPE ::= (const [KEYWORD ARGUMENT]...  [ VALUE ])
-@end example
-
-The @var{value}, if present, is used to initialize the @code{:value}
-property and can be any s-expression.
-
-@deffn Widget const
-This will display any valid s-expression in an immutable part of the
-buffer. 
-@end deffn
-
-@deffn Widget sexp
-This will allow you to edit any valid s-expression in an editable buffer
-field. 
-
-The @code{sexp} widget takes the same keyword arguments as the
-@code{editable-field} widget.
-@end deffn
-
-@node atoms, composite, generic, Sexp Types
-@comment  node-name,  next,  previous,  up
-@subsection Atomic Sexp Widgets.
-
-The atoms are s-expressions that does not consist of other
-s-expressions.  A string is an atom, while a list is a composite type.
-You can edit the value of an atom with the following widgets.  
-
-The syntax for all the atoms are
-
-@example
-TYPE ::= (NAME [KEYWORD ARGUMENT]...  [ VALUE ])
-@end example
-
-The @var{value}, if present, is used to initialize the @code{:value}
-property and must be an expression of the same type as the widget.
-I.e. the string widget can only be initialized with a string.
-
-All the atom widgets take the same keyword arguments as the @code{editable-field}
-widget.
-
-@deffn Widget string
-Allows you to edit a string in an editable field.
-@end deffn
-
-@deffn Widget file
-Allows you to edit a file name in an editable field.  You you activate
-the tag button, you can edit the file name in the mini-buffer with
-completion. 
-
-Keywords:
-@table @code
-@item :must-match
-If this is set to non-nil, only existing file names will be allowed in
-the minibuffer.
-@end table
-@end deffn
-
-@deffn Widget directory
-Allows you to edit a directory name in an editable field.
-Similar to the @code{file} widget.
-@end deffn
-
-@deffn Widget symbol
-Allows you to edit a lisp symbol in an editable field.
-@end deffn
-
-@deffn Widget integer
-Allows you to edit an integer in an editable field.
-@end deffn
-
-@deffn Widget number
-Allows you to edit a number in an editable field.
-@end deffn
-
-@deffn Widget boolean
-Allows you to edit a boolean.  In lisp this means a variable which is
-either nil meaning false, or non-nil meaning true.
-@end deffn
-
-
-@node composite,  , atoms, Sexp Types
-@comment  node-name,  next,  previous,  up
-@subsection Composite Sexp Widgets.
-
-The syntax for the composite are
-
-@example
-TYPE ::= (NAME [KEYWORD ARGUMENT]...  COMPONENT...)
-@end example
-
-Where each @var{component} must be a widget type.  Each component widget
-will be displayed in the buffer, and be editable to the user.
-
-@deffn Widget cons
-The value of a @code{cons} widget is a cons-cell where the car is the
-value of the first component and the cdr is the value of the second
-component.  There must be exactly two components. 
-@end deffn
-
-@deffn Widget lisp
-The value of a @code{lisp} widget is a list containing the value of
-each of its component.
-@end deffn
-
-@deffn Widget vector
-The value of a @code{vector} widget is a vector containing the value of
-each of its component.
-@end deffn
-
-The above suffice for specifying fixed size lists and vectors.  To get
-variable length lists and vectors, you can use a @code{choice},
-@code{set} or @code{repeat} widgets together with the @code{:inline}
-keywords.  If any component of a composite widget has the @code{:inline}
-keyword set, its value must be a list which will then be spliced into
-the composite.  For example, to specify a list whose first element must
-be a file name, and whose remaining arguments should either by the
-symbol @code{t} or two files, you can use the following widget
-specification:
-
-@example
-(list file
-      (choice (const t)
-              (list :inline t
-                    :value ("foo" "bar")
-                    string string)))
-@end example
-
-The value of a widget of this type will either have the form 
-@samp{(file t)} or @code{(file string string)}.
-
-This concept of inline is probably hard to understand.  It was certainly
-hard to implement so instead of confuse you more by trying to explain it
-here, I'll just suggest you meditate over it for a while.
-
-@deffn Widget choice
-Allows you to edit a sexp which may have one of fixed set of types.  It
-is currently implemented with the @code{choice-menu} basic widget, and
-has a similar syntax.
-@end deffn
-
-@deffn Widget set
-Allows you to specify a type which must be a list whose elements all
-belong to given set.  The elements of the list is not significant.  This
-is implemented on top of the @code{checklist} basic widget, and has a
-similar syntax. 
-@end deffn
-
-@deffn Widget repeat
-Allows you to specify a variable length list whose members are all of
-the same type.  Implemented on top of the `editable-list' basic widget,
-and has a similar syntax.
-@end deffn
-
-@node Widget Properties, Defining New Widgets, Sexp Types, Top
-@comment  node-name,  next,  previous,  up
-@section Properties
-
-You can examine or set the value of a widget by using the widget object
-that was returned by @code{widget-create}.
-
-@defun widget-value widget
-Return the current value contained in @var{widget}.
-It is an error to call this function on an uninitialized widget.
-@end defun
-
-@defun widget-value-set widget value
-Set the value contained in @var{widget} to @var{value}.
-It is an error to call this function with an invalid @var{value}.
-@end defun
-
-@strong{Important:} You @emph{must} call @code{widget-setup} after
-modifying the value of a widget before the user is allowed to edit the
-widget again.  It is enough to call @code{widget-setup} once if you
-modify multiple widgets.  This is currently only necessary if the widget
-contains an editing field, but may be necessary for other widgets in the
-future. 
-
-If your application needs to associate some information with the widget
-objects, for example a reference to the item being edited, it can be
-done with @code{widget-put} and @code{widget-get}.  The property names
-must begin with a @samp{:}.
-
-@defun widget-put widget property value
-In @var{widget} set @var{property} to @var{value}.
-@var{property} should be a symbol, while @var{value} can be anything.
-@end defun
-
-@defun widget-get widget property
-In @var{widget} return the value for @var{property}.
-@var{property} should be a symbol, the value is what was last set by
-@code{widget-put} for @var{property}.
-@end defun
-
-@defun widget-member widget property
-Non-nil if @var{widget} has a value (even nil) for property @var{property}.
-@end defun
-
-Occasionally it can be useful to know which kind of widget you have,
-i.e. the name of the widget type you gave when the widget was created. 
-
-@defun widget-type widget
-Return the name of @var{widget}, a symbol.
-@end defun
-
-Widgets can be in two states: active, which means they are modifiable by
-the user, or inactive, which means they cannot be modified by the user.
-You can query or set the state with the following code:
-
-@lisp
-;; Examine if @var{widget} is active or not.
-(if (widget-apply @var{widget} :active)
-    (message "Widget is active.")
-  (message "Widget is inactive.")
-
-;; Make @var{widget} inactive.
-(widget-apply @var{widget} :deactivate)
-
-;; Make @var{widget} active.
-(widget-apply @var{widget} :activate)
-@end lisp
-
-A widget is inactive if itself, or any of its ancestors (found by
-following the @code{:parent} link) have been deactivated.  To make sure
-a widget is really active, you must therefore activate both itself, and
-all its ancestors.
-
-@lisp
-(while widget 
-  (widget-apply widget :activate)
-  (setq widget (widget-get widget :parent)))
-@end lisp
-
-You can check if a widget has been made inactive by examining the value
-of @code{:inactive} keyword.  If this is non-nil, the widget itself has
-been deactivated.  This is different from using the @code{:active}
-keyword, in that the later tell you if the widget @strong{or} any of its
-ancestors have been deactivated.   Do not attempt to set the
-@code{:inactive} keyword directly.  Use the @code{:activate}
-@code{:deactivated} keywords instead.
-
-
-@node Defining New Widgets, Widget Wishlist., Widget Properties, Top
-@comment  node-name,  next,  previous,  up
-@section Defining New Widgets
-
-You can define specialized widgets with @code{define-widget}.  It allows
-you to create a shorthand for more complex widgets, including specifying
-component widgets and default new default values for the keyword
-arguments. 
-
-@defun widget-define name class doc &rest args
-Define a new widget type named @var{name} from @code{class}.
-
-@var{name} and class should both be symbols, @code{class} should be one
-of the existing widget types. 
-
-The third argument @var{DOC} is a documentation string for the widget.
-
-After the new widget has been defined, the following two calls will
-create identical widgets:
-
-@itemize @bullet
-@item
-@lisp
-(widget-create @var{name})
-@end lisp
-
-@item
-@lisp
-(apply widget-create @var{class} @var{args})
-@end lisp
-@end itemize
-
-@end defun
-
-Using @code{widget-define} does just store the definition of the widget
-type in the @code{widget-type} property of @var{name}, which is what
-@code{widget-create} uses.
-
-If you just want to specify defaults for keywords with no complex
-conversions, you can use @code{identity} as your conversion function.
-
-The following additional keyword arguments are useful when defining new
-widgets: 
-@table @code
-@item :convert-widget
-Function to convert a widget type before creating a widget of that
-type.  It takes a widget type as an argument, and returns the converted
-widget type.  When a widget is created, this function is called for the
-widget type and all the widgets parent types, most derived first. 
-
-@item :value-to-internal
-Function to convert the value to the internal format.  The function
-takes two arguments, a widget and an external value, and returns the
-internal value.  The function is called on the present @code{:value}
-when the widget is created, and on any value set later with
-@code{widget-value-set}.
-
-@item :value-to-external
-Function to convert the value to the external format.  The function
-takes two arguments, a widget and an internal value, and returns the
-internal value.  The function is called on the present @code{:value}
-when the widget is created, and on any value set later with
-@code{widget-value-set}.
-
-@item :create
-Function to create a widget from scratch.  The function takes one
-argument, a widget type, and create a widget of that type, insert it in
-the buffer, and return a widget object.
-
-@item :delete
-Function to delete a widget.  The function takes one argument, a widget,
-and should remove all traces of the widget from the buffer.
-
-@item :value-create
-Function to expand the @samp{%v} escape in the format string.  It will
-be called with the widget as its argument.  Should
-insert a representation of the widgets value in the buffer.
-
-@item :value-delete
-Should remove the representation of the widgets value from the buffer.
-It will be called with the widget as its argument.  It doesn't have to
-remove the text, but it should release markers and delete nested widgets
-if such has been used.
-
-@item :format-handler
-Function to handle unknown @samp{%} escapes in the format string.  It
-will be called with the widget and the escape character as arguments.
-You can set this to allow your widget to handle non-standard escapes.
-
-You should end up calling @code{widget-default-format-handler} to handle
-unknown escape sequences, which will handle the @samp{%h} and any future
-escape sequences, as well as give an error for unknown escapes.
-@end table
-
-If you want to define a new widget from scratch, use the @code{default}
-widget as its base.
-
-@deffn Widget default [ keyword argument ]
-Widget used as a base for other widgets. 
-
-It provides most of the functionality that is referred to as ``by
-default'' in this text. 
-@end deffn
-
-@node  Widget Wishlist.,  , Defining New Widgets, Top
-@comment  node-name,  next,  previous,  up
-@section Wishlist.
-
-@itemize @bullet
-@item 
-It should be possible to add or remove items from a list with @kbd{C-k}
-and @kbd{C-o} (suggested by @sc{rms}).
-
-@item 
-The @samp{[INS]} and @samp{[DEL]} buttons should be replaced by a single
-dash (@samp{-}).  The dash should be a button that, when activated, ask
-whether you want to add or delete an item (@sc{rms} wanted to git rid of
-the ugly buttons, the dash is my idea).
-
-@item
-Widgets such as @code{file} and @code{symbol} should prompt with completion. 
-
-@item
-The @code{menu-choice} tag should be prettier, something like the abbreviated
-menus in Open Look.
-
-@item
-The functions used in many widgets, like
-@code{widget-item-convert-widget}, should not have names that are
-specific to the first widget where I happended to use them.
-
-@item
-Flag to make @code{widget-move} skip a specified button.
-
-@item
-Document `helper' functions for defining new widgets.
-
-@item
-Activate the item this is below the mouse when the button is
-released, not the item this is below the mouse when the button is
-pressed.  Dired and grep gets this right.  Give feedback if possible.
-
-@item
-Use @samp{@@deffn Widget} to document widgets. 
-
-@item
-Document global keywords in one place.  
-
-Document keywords particular to a specific widget in the widget
-definition.
-
-Document the `default' widget first. 
-
-Split, when needed, keywords into those useful for normal
-customization, those primarily useful when deriving, and those who
-represent runtime information. 
-
-@item
-Figure out terminology and @sc{api} for the class/type/object/super
-stuff. 
-
-Perhaps the correct model is delegation?
-
-@item
-Document @code{widget-browse}.
-
-@item
-Make indentation work with glyphs and propertional fonts.
-
-@item
-Add object and class hierarchies to the browser.
-
-@end itemize
-
-@contents
-@bye