From 4dd18c1acb188e71a04e5bcf9df7df7a453ff2eb Mon Sep 17 00:00:00 2001 From: akr Date: Mon, 8 Jun 1998 10:46:23 +0000 Subject: [PATCH] Sync up with gnus-6_2_3 to gnus-6_4_0 --- ChangeLog | 91 + README.semi | 3 + lisp/ChangeLog | 264 ++ lisp/dgnushack.el | 2 +- lisp/gnus-agent.el | 76 +- lisp/gnus-art.el | 138 +- lisp/gnus-async.el | 2 +- lisp/gnus-bcklg.el | 2 +- lisp/gnus-cache.el | 11 +- lisp/gnus-cite.el | 9 +- lisp/gnus-demon.el | 2 +- lisp/gnus-draft.el | 25 +- lisp/gnus-dup.el | 2 +- lisp/gnus-eform.el | 2 +- lisp/gnus-ems.el | 12 +- lisp/gnus-gl.el | 18 +- lisp/gnus-group.el | 34 +- lisp/gnus-int.el | 2 +- lisp/gnus-kill.el | 2 +- lisp/gnus-logic.el | 2 +- lisp/gnus-mh.el | 2 +- lisp/gnus-move.el | 7 +- lisp/gnus-msg.el | 27 +- lisp/gnus-nocem.el | 5 +- lisp/gnus-picon.el | 6 +- lisp/gnus-range.el | 2 +- lisp/gnus-salt.el | 33 +- lisp/gnus-score.el | 24 +- lisp/gnus-soup.el | 35 +- lisp/gnus-spec.el | 2 +- lisp/gnus-srvr.el | 2 +- lisp/gnus-start.el | 2 +- lisp/gnus-sum.el | 659 ++--- lisp/gnus-topic.el | 6 +- lisp/gnus-undo.el | 2 +- lisp/gnus-util.el | 26 +- lisp/gnus-uu.el | 8 +- lisp/gnus-win.el | 2 +- lisp/gnus-xmas.el | 9 +- lisp/gnus.el | 32 +- lisp/lpath.el | 2 +- lisp/message.el | 60 +- lisp/messagexmas.el | 2 +- lisp/messcompat.el | 2 +- lisp/nnagent.el | 3 +- lisp/nnbabyl.el | 6 +- lisp/nndb.el | 4 +- lisp/nndir.el | 2 +- lisp/nndoc.el | 2 +- lisp/nndraft.el | 2 +- lisp/nneething.el | 6 +- lisp/nnfolder.el | 99 +- lisp/nngateway.el | 2 +- lisp/nnheader.el | 9 +- lisp/nnheaderxm.el | 2 +- lisp/nnkiboze.el | 4 +- lisp/nnlistserv.el | 4 +- lisp/nnmail.el | 36 +- lisp/nnmbox.el | 2 +- lisp/nnmh.el | 8 +- lisp/nnml.el | 2 +- lisp/nnoo.el | 2 +- lisp/nnsoup.el | 18 +- lisp/nnspool.el | 8 +- lisp/nntp.el | 33 +- lisp/nnvirtual.el | 2 +- lisp/nnweb.el | 2 +- lisp/pop3-fma.el | 39 +- lisp/score-mode.el | 4 +- lisp/smiley.el | 4 +- texi/ChangeLog | 15 + texi/gnus-ja.texi | 7164 ++++++++++++++++++++++++++++++++++++++++++++++++++- texi/gnus.texi | 248 +- texi/message.texi | 18 +- 74 files changed, 8414 insertions(+), 992 deletions(-) diff --git a/ChangeLog b/ChangeLog index d92af29..9a1ab33 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +1998-06-08 Tanaka Akira + + * Sync up with gnus-6_2_3 to gnus-6_4_0 + 1998-04-28 Tanaka Akira * lisp/gnus-i18n.el (gnus-set-summary-default-charset): Delete @@ -12,6 +16,93 @@ (message-reply): Use `message-make-subject'. (message-followup): Use `message-make-subject'. +1998-06-04 MORIOKA Tomohiko + + * lisp/gnus-ems.el (gnus-ems-redefine): Must require 'path-util + before call `module-installed-p'. + + * lisp/gnus.el (gnus-version-number): Update to 6.4.0. + (gnus-version): Modify for SEMI 1.5. + + * lisp/gnus-art.el: Modify for SEMI 1.5 API. + +1998-06-04 Tatsuya Ichikawa + + * lisp/pop3-fma.el: New file. To handle multiple POP account. + + * lisp/gnus.el (gnus-version-number): Update to 6.3.4. + And fix typo 5.6.10 -> 5.6.11. + +1998-06-03 Shuhei KOBAYASHI + + * lisp/gnus.el (gnus-version-number): Update to 6.3.3. + + * Sync up with Gnus 5.6.11. + +1998-06-03 Keisuke Mori + + * texi/gnus-ja.texi: Add "The Article Buffer". + +1998-06-03 Yoshiki Hayashi + + * texi/gnus-ja.texi: Add "The Summary Buffer". + +1998-06-02 Tatsuya Ichikawa + + * lisp/gnus.el (gnus-version-number): Update to 6.3.2. + + * Sync up with Gnus 5.6.10. + +1998-05-30 Shuhei KOBAYASHI + + * README.semi: Add description of `shuhei-k' branch. + +1998-05-17 MORIOKA Tomohiko + + * lisp/gnus.el (gnus-version-number): Update to 6.3.1. + +1998-05-17 MORIOKA Tomohiko + + * 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 + + * texi/gnus-ja.texi: Add "The Active File". + +1998-05-04 MORIOKA Tomohiko + + * 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 + + * lisp/lpath.el: Must add "flim" instead of "mel" to load-path. + +1998-05-03 MORIOKA Tomohiko + + * 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 + + * 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 * lisp/gnus.el (gnus-version-number): Update to 6.2.3. diff --git a/README.semi b/README.semi index 8d1d852..b297fe7 100644 --- a/README.semi +++ b/README.semi @@ -55,6 +55,9 @@ Major tags are following: akr akr branch + shuhei-k shuhei-k branch + Mail-Followup-To/Mail-Reply-To, gnus-cache fix. + How to get? (via ftp) ===================== diff --git a/lisp/ChangeLog b/lisp/ChangeLog index bd682c9..7054db5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,267 @@ +Wed Jun 3 04:03:37 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.11 is released. + +Wed Jun 3 03:33:50 1998 Lars Magne Ingebrigtsen + + * gnus.el: Checked doc string syntax throughout. + + * message.el (message-subject-re-regexp): Renamed. + +Wed Jun 3 03:33:05 1998 Simon Josefsson + + * message.el (message-ignored-subject-re): New variable. + +Wed Jun 3 03:25:13 1998 Sam Steingold + + * gnus-msg.el (gnus-bug-create-help-buffer): New variable. + (gnus-bug): Use it. + +1998-05-07 Hrvoje Niksic + + * 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 + + * 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 + + * nnfolder.el (nnfolder-delete-mail): Changed parameters. + (nnfolder-request-replace-article): Rename X-From-Line. + +Wed Jun 3 03:10:04 1998 Dan Christensen + + * nnfolder.el (nnfolder-adjust-min-active): Work. + +Mon Jun 1 05:27:28 1998 Lars Magne Ingebrigtsen + + * 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 + + * gnus-sum.el (gnus-dependencies-add-header): Break loops. + +Mon Jun 1 05:13:34 1998 Fabrice POPINEAU + + * gnus-cache.el (gnus-cache-generate-active): Regexp-quote. + +Mon Jun 1 04:31:23 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.10 is released. + +Mon Jun 1 03:25:33 1998 Lars Magne Ingebrigtsen + + * gnus-art.el (gnus-button-alist): Recognize bare mailto buttons + for Gnus. + + * nntp.el: Replaced all `message' calls. + +Mon Jun 1 03:13:46 1998 Wolfgang Rupprecht + + * nntp.el (nntp-encode-text): Removed spurious forward-line. + +Sat May 23 19:44:43 1998 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-agent-fetch-session): Would infloop if + opening failed. + +Tue May 19 04:11:33 1998 Yoshiki Hayashi + + * nnheader.el (nnheader-translate-file-chars): Don't change + string. + +Tue May 19 03:07:45 1998 P. E. Jareth Hein + + * gnus-util.el (gnus-dd-mmm): New version. + +Tue May 19 03:00:39 1998 Lars Magne Ingebrigtsen + + * gnus.el: Changed address. + +Tue May 12 06:12:42 1998 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-agent-expire): Delete more. + +Sun May 10 19:08:28 1998 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-group-read-ephemeral-group): Don't add + `address'. + +Sun May 3 18:01:01 1998 Lars Magne Ingebrigtsen + + * nnmail.el (nnmail-within-headers-p): Renamed. + + * message.el (message-cancel-news): If a Sender header doesn't + exist, compare From against `message-make-from'. + +Sun May 3 15:07:25 1998 Lars Balker Rasmussen + + * gnus-agent.el (gnus-agent-save-group-info): Fix + re-search-forward params. + +Sun May 3 15:04:02 1998 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-agent-expire): Check for the size. + +Sat May 2 01:50:20 1998 Dan Christensen + + * nnfolder.el (nnfolder-goto-article): New version. + (nnfolder-read-folder): Fix. + + * nnmail.el (nnmail-within-headers): New function. + +Sat May 2 01:36:37 1998 Lars Magne Ingebrigtsen + + * nnfolder.el (nnfolder-goto-article): Thinkotypo search arguments. + + * nnheader.el (nnheader-find-file-noselect): Also bind + `find-file-hooks' to nil. + + * nnmail.el (nnmail-process-unix-mail-format): Don't use + `find-file-noselect'. + + * gnus-group.el (gnus-group-make-menu-bar): Typo. + +Fri May 1 21:59:35 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.9 is released. + +Fri May 1 21:54:30 1998 Lars Magne Ingebrigtsen + + * nnfolder.el (nnfolder-goto-article): Would infloop. + +Fri May 1 19:45:50 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.8 is released. + +Fri May 1 18:51:21 1998 Lars Magne Ingebrigtsen + + * nntp.el (nntp-request-newgroups): Use format-time-string. + + * message.el (message-fetch-field): Inhibit point-motion hooks. + +Fri May 1 18:33:06 1998 Wes Hardaker + + * gnus-score.el (gnus-adaptive-word-no-group-words): New variable. + +Fri May 1 16:56:32 1998 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-agent-expire): Put point at the start of the + buffer. + + * gnus-soup.el (gnus-soup-parse-areas): Check whether the file + exists. + + * gnus-draft.el (gnus-draft-send): Use meta-information. + + * nnagent.el (nnagent-request-post): Store meta-information. + + * gnus-agent.el (gnus-agent-meta-information-header): New variable. + (gnus-agent-insert-meta-information): New function. + +Fri May 1 16:43:35 1998 Paul Franklin + + * message.el (message-generate-headers): Insert Sender when + required. + +Fri May 1 15:28:55 1998 Lars Magne Ingebrigtsen + + * gnus-util.el (gnus-dd-mmm): Accept "" dates. + + * gnus-cite.el (gnus-article-hide-citation): Don't remove button + when hiding. + + * gnus-msg.el (gnus-post-method): Allow ARG to override + `current'. + + * gnus-sum.el (gnus-remove-thread): Remove the dummy root + properly. + + * nnfolder.el (nnfolder-goto-article): New function. + (nnfolder-retrieve-headers): Use it. + (nnfolder-request-article): Ditto. + +Wed Apr 29 22:48:33 1998 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.6.7 is released. + +Wed Apr 29 20:54:35 1998 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-update-info): Bind + gnuis-newsgroup-scored later. + (gnus-summary-prepare-threads): Check some more before inserting + dummy roots. + + * gnus-cache.el (gnus-cache-enter-article): Update marks + properly. + + * gnus-xmas.el (gnus-xmas-draft-menu-add): New function. + + * nntp.el (nntp-connection-timeout): Removed. + + * gnus-move.el (gnus-move-group-to-server): Delete nils. + + * nntp.el (nntp-close-server): Close more connections. + + * gnus-art.el (gnus-button-alist): Accept white space after colons + in things. + +Wed Apr 29 20:18:45 1998 Kurt Swanson + + * gnus-art.el (article-update-date-lapsed): Bind + `deactivate-mark'. + + * gnus-salt.el (gnus-pick-mode-map): Moved keys around to avoid + shadowing. + + * gnus-art.el (gnus-article-read-summary-keys): New version. + + * gnus-sum.el (gnus-summary-make-menu-bar): New for article mode. + + * gnus-msg.el (gnus-post-method): `current' custom. + +Wed Apr 29 19:04:27 1998 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-set-local-parameters): Ignore + quit-config. + (gnus-select-newsgroup): Use the value of gnus-fetch-old-headers. + + * message.el (message-post-method): Doc fix. + + * gnus.el (gnus-directory): dox fix. + +Tue Apr 28 03:32:17 1998 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-group-timestamp): Really get timestamp. + + * gnus.el (gnus-group-parameter-value): Use explicit iteration. + +Tue Apr 28 03:15:50 1998 Hallvard B. Furuseth + + * gnus-util.el (gnus-alive-p): Check for binding. + +Tue Apr 28 03:00:16 1998 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-parent-headers): Don't infloop on nil + References. + + * gnus-art.el (gnus-article-mode): Don't kill local vars. + + * score-mode.el (score-mode-syntax-table): Change syntax. + Mon Apr 27 00:26:01 1998 Lars Magne Ingebrigtsen * gnus.el: Gnus v5.6.6 is released. diff --git a/lisp/dgnushack.el b/lisp/dgnushack.el index 264ac6b..37bdb98 100644 --- a/lisp/dgnushack.el +++ b/lisp/dgnushack.el @@ -1,7 +1,7 @@ ;;; dgnushack.el --- a hack to set the load path for byte-compiling ;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Version: 4.19 ;; Keywords: news, path diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index f27161a..7d40b82 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -1,7 +1,7 @@ ;;; gnus-agent.el --- unplugged support for Semi-gnus ;; Copyright (C) 1997,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; This file is part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify @@ -77,6 +77,8 @@ If nil, only read articles will be expired." ;;; Internal variables +(defvar gnus-agent-meta-information-header "X-Gnus-Agent-Meta-Information") + (defvar gnus-agent-history-buffers nil) (defvar gnus-agent-buffer-alist nil) (defvar gnus-agent-article-alist nil) @@ -330,19 +332,34 @@ agent minor mode in all Gnus buffers." (re-search-forward (concat "^" (regexp-quote mail-header-separator) "\n")) (replace-match "\n") + (gnus-agent-insert-meta-information 'mail) (gnus-request-accept-article "nndraft:queue"))) +(defun gnus-agent-insert-meta-information (type &optional method) + "Insert meta-information into the message that says how it's to be posted. +TYPE can be either `mail' or `news'. If the latter METHOD can +be a select method." + (save-excursion + (message-remove-header gnus-agent-meta-information-header) + (goto-char (point-min)) + (insert gnus-agent-meta-information-header ": " + (symbol-name type) " " (format "%S" method) + "\n") + (forward-char -1) + (while (search-backward "\n" nil t) + (replace-match "\\n" t t)))) + ;;; ;;; Group mode commands ;;; (defun gnus-agent-fetch-groups (n) - "Put all new articles in the current groups into the agent." + "Put all new articles in the current groups into the Agent." (interactive "P") (gnus-group-iterate n 'gnus-agent-fetch-group)) (defun gnus-agent-fetch-group (group) - "Put all new articles in GROUP into the agent." + "Put all new articles in GROUP into the Agent." (interactive (list (gnus-group-group-name))) (unless group (error "No group on the current line")) @@ -386,7 +403,7 @@ agent minor mode in all Gnus buffers." (error "Server already in the agent program")) (push method gnus-agent-covered-methods) (gnus-agent-write-servers) - (message "Entered %s into the agent" server))) + (message "Entered %s into the Agent" server))) (defun gnus-agent-remove-server (server) "Remove SERVER from the agent program." @@ -520,7 +537,7 @@ the actual number of articles toggled is returned." (nnheader-temp-write file (insert-file-contents file) (goto-char (point-min)) - (when (re-search-forward "^" (regexp-quote group) " " nil t) + (when (re-search-forward (concat "^" (regexp-quote group) " ") nil t) (gnus-delete-line)) (insert group " " (number-to-string (cdr active)) " " (number-to-string (car active)) "\n"))))) @@ -612,7 +629,7 @@ the actual number of articles toggled is returned." ;;; (defun gnus-agent-fetch-articles (group articles) - "Fetch ARTICLES from GROUP and put them into the agent." + "Fetch ARTICLES from GROUP and put them into the Agent." (when articles ;; Prune off articles that we have already fetched. (while (and articles @@ -645,7 +662,7 @@ the actual number of articles toggled is returned." (insert-buffer-substring nntp-server-buffer))) (copy-to-buffer nntp-server-buffer (point-min) (point-max)) (setq pos (nreverse pos))))) - ;; Then save these articles into the agent. + ;; Then save these articles into the Agent. (save-excursion (set-buffer nntp-server-buffer) (while pos @@ -860,11 +877,12 @@ the actual number of articles toggled is returned." (setq gnus-command-method (car methods)) (when (or (gnus-server-opened gnus-command-method) (gnus-open-server gnus-command-method)) - (setq groups (gnus-groups-from-server (pop methods))) + (setq groups (gnus-groups-from-server (car methods))) (gnus-agent-with-fetch (while (setq group (pop groups)) (when (<= (gnus-group-level group) gnus-agent-handle-level) - (gnus-agent-fetch-group-1 group gnus-command-method)))))) + (gnus-agent-fetch-group-1 group gnus-command-method))))) + (pop methods)) (gnus-message 6 "Finished fetching articles into the Gnus agent")))) (defun gnus-agent-fetch-group-1 (group method) @@ -875,7 +893,8 @@ the actual number of articles toggled is returned." gnus-use-cache articles score arts category predicate info marks score-param) ;; Fetch headers. - (when (and (setq articles (gnus-list-of-unread-articles group)) + (when (and (or (gnus-active group) (gnus-activate-group group)) + (setq articles (gnus-list-of-unread-articles group)) (gnus-agent-fetch-headers group articles)) ;; Parse them and see which articles we want to fetch. (setq gnus-newsgroup-dependencies @@ -1257,7 +1276,8 @@ The following commands are available: (set-buffer (setq gnus-agent-current-history (setq history (gnus-agent-history-buffer)))) - (unless (zerop (buffer-size)) + (goto-char (point-min)) + (when (> (buffer-size) 1) (goto-char (point-min)) (while (not (eobp)) (skip-chars-forward "^\t") @@ -1288,12 +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-message 5 "Expiring articles in %s" group) (set-buffer overview) (erase-buffer) (when (file-exists-p nov-file) (nnheader-insert-file-contents nov-file)) (goto-char (point-min)) + (setq article 0) (while (setq elem (pop articles)) (setq article (car elem)) (when (or (null low) @@ -1303,8 +1325,15 @@ The following commands are available: (not (memq article marked)))) ;; Find and nuke the NOV line. (while (and (not (eobp)) - (< (setq art (read (current-buffer))) article)) - (forward-line 1)) + (or (not (numberp + (setq art (read (current-buffer))))) + (< art article))) + (if (file-exists-p + (gnus-agent-article-name + (number-to-string article) group)) + (forward-line 1) + ;; Remove old NOV lines that have no articles. + (gnus-delete-line))) (if (or (eobp) (/= art article)) (beginning-of-line) @@ -1316,7 +1345,26 @@ The following commands are available: (delete-file file)) ;; Schedule the history line for nuking. (push (cdr elem) histories))) - (write-region (point-min) (point-max) nov-file nil 'silent)) + (write-region (point-min) (point-max) nov-file nil 'silent) + ;; Delete the unwanted entries in the alist. + (setq gnus-agent-article-alist + (sort gnus-agent-article-alist 'car-less-than-car)) + (let* ((alist gnus-agent-article-alist) + (prev (cons nil alist)) + (first prev)) + (while (and alist + (<= (caar alist) article)) + (if (or (not (cdar alist)) + (not (file-exists-p + (gnus-agent-article-name + (number-to-string + (caar alist)) + group)))) + (setcdr prev (setq alist (cdr alist))) + (setq prev alist + alist (cdr alist)))) + (setq gnus-agent-article-alist (cdr first))) + (gnus-agent-save-alist group)) expiry-hashtb) (set-buffer history) (setq histories (nreverse (sort histories '<))) diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index b4541ae..c00d305 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -1,7 +1,7 @@ ;;; gnus-art.el --- article mode commands for Semi-gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; MORIOKA Tomohiko ;; Keywords: mail, news, MIME @@ -1383,13 +1383,14 @@ function and want to see what the date was before converting." (defun article-update-date-lapsed () "Function to be run from a timer to update the lapsed time line." - (save-excursion - (ignore-errors - (when (gnus-buffer-live-p gnus-article-buffer) - (set-buffer gnus-article-buffer) - (goto-char (point-min)) - (when (re-search-forward "^X-Sent:" nil t) - (article-date-lapsed t)))))) + (let (deactivate-mark) + (save-excursion + (ignore-errors + (when (gnus-buffer-live-p gnus-article-buffer) + (set-buffer gnus-article-buffer) + (goto-char (point-min)) + (when (re-search-forward "^X-Sent:" nil t) + (article-date-lapsed t))))))) (defun gnus-start-date-timer (&optional n) "Start a timer to update the X-Sent header in the article buffers. @@ -1847,10 +1848,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is ["Remove carriage return" gnus-article-remove-cr t] )) - (when nil - (when (boundp 'gnus-summary-article-menu) - (define-key gnus-article-mode-map [menu-bar commands] - (cons "Commands" gnus-summary-article-menu)))) + ;; Note "Commands" menu is defined in gnus-sum.el for consistency (when (boundp 'gnus-summary-post-menu) (define-key gnus-article-mode-map [menu-bar post] @@ -1876,7 +1874,6 @@ commands: (interactive) (when (gnus-visual-p 'article-menu 'menu) (gnus-article-make-menu-bar)) - (kill-all-local-variables) (gnus-simplify-mode-line) (setq mode-name "Article") (setq major-mode 'gnus-article-mode) @@ -2296,67 +2293,68 @@ Argument LINES specifies lines to be scrolled down." "Read a summary buffer key sequence and execute it from the article buffer." (interactive "P") (let ((nosaves - '("q" "Q" "c" "r" "R" "\C-c\C-f" "m" "a" "f" "F" - "Zc" "ZC" "ZE" "ZQ" "ZZ" "Zn" "ZR" "ZG" "ZN" "ZP" - "=" "^" "\M-^" "|")) - (nosave-but-article - '("A\r")) - (nosave-in-article - '("\C-d")) + '("q" "Q" "c" "r" "R" "\C-c\C-f" "m" "a" "f" "F" + "Zc" "ZC" "ZE" "ZQ" "ZZ" "Zn" "ZR" "ZG" "ZN" "ZP" + "=" "^" "\M-^" "|")) + (nosave-but-article + '("A\r")) + (nosave-in-article + '("\C-d")) (up-to-top '("n" "Gn" "p" "Gp")) - keys new-sum-point) + keys new-sum-point) (save-excursion (set-buffer gnus-article-current-summary) (let (gnus-pick-mode) - (push (or key last-command-event) unread-command-events) - (setq keys (read-key-sequence nil)))) + (push (or key last-command-event) unread-command-events) + (setq keys (read-key-sequence nil)))) (message "") (if (or (member keys nosaves) - (member keys nosave-but-article) - (member keys nosave-in-article)) - (let (func) - (save-window-excursion - (pop-to-buffer gnus-article-current-summary 'norecord) - ;; We disable the pick minor mode commands. - (let (gnus-pick-mode) - (setq func (lookup-key (current-local-map) keys)))) - (if (not func) - (ding) - (unless (member keys nosave-in-article) - (set-buffer gnus-article-current-summary)) - (call-interactively func) - (setq new-sum-point (point))) - (when (member keys nosave-but-article) - (pop-to-buffer gnus-article-buffer 'norecord))) + (member keys nosave-but-article) + (member keys nosave-in-article)) + (let (func) + (save-window-excursion + (pop-to-buffer gnus-article-current-summary 'norecord) + ;; We disable the pick minor mode commands. + (let (gnus-pick-mode) + (setq func (lookup-key (current-local-map) keys)))) + (if (not func) + (ding) + (unless (member keys nosave-in-article) + (set-buffer gnus-article-current-summary)) + (call-interactively func) + (setq new-sum-point (point))) + (when (member keys nosave-but-article) + (pop-to-buffer gnus-article-buffer 'norecord))) ;; These commands should restore window configuration. (let ((obuf (current-buffer)) - (owin (current-window-configuration)) - (opoint (point)) - (summary gnus-article-current-summary) - func in-buffer) - (if not-restore-window - (pop-to-buffer summary 'norecord) - (switch-to-buffer summary 'norecord)) - (setq in-buffer (current-buffer)) - ;; We disable the pick minor mode commands. - (if (setq func (let (gnus-pick-mode) - (lookup-key (current-local-map) keys))) - (progn - (call-interactively func) - (setq new-sum-point (point))) - (ding)) - (when (eq in-buffer (current-buffer)) - (set-buffer obuf) - (unless not-restore-window - (set-window-configuration owin)) - (unless (member keys up-to-top) + (owin (current-window-configuration)) + (opoint (point)) + (summary gnus-article-current-summary) + func in-buffer selected) + (if not-restore-window + (pop-to-buffer summary 'norecord) + (switch-to-buffer summary 'norecord)) + (setq in-buffer (current-buffer)) + ;; We disable the pick minor mode commands. + (if (setq func (let (gnus-pick-mode) + (lookup-key (current-local-map) keys))) + (progn + (call-interactively func) + (setq new-sum-point (point))) + (ding)) + (when (eq in-buffer (current-buffer)) + (setq selected (gnus-summary-select-article)) + (set-buffer obuf) + (unless not-restore-window + (set-window-configuration owin)) + (unless (or (not (eq selected 'old)) (member keys up-to-top)) (set-window-point (get-buffer-window (current-buffer)) opoint)) - (let ((win (get-buffer-window gnus-article-current-summary))) - (when win - (set-window-point win new-sum-point)))))))) + (let ((win (get-buffer-window gnus-article-current-summary))) + (when win + (set-window-point win new-sum-point)))))))) (defun gnus-article-hide (&optional arg force) "Hide all the gruft in the current article. @@ -2549,7 +2547,6 @@ This is an extended text-mode. \\{gnus-article-edit-mode-map}" (interactive) - (kill-all-local-variables) (setq major-mode 'gnus-article-edit-mode) (setq mode-name "Article Edit") (use-local-map gnus-article-edit-mode-map) @@ -2679,15 +2676,17 @@ groups." :type 'regexp) (defcustom gnus-button-alist - `(("<\\(url: ?\\)?news:\\([^>\n\t ]*@[^>\n\t ]*\\)>" 0 t + `(("<\\(url:[>\n\t ]*?\\)?news:[>\n\t ]*\\([^>\n\t ]*@[^>\n\t ]*\\)>" 0 t gnus-button-message-id 2) ("\\bnews:\\([^>\n\t ]*@[^>\n\t ]*\\)" 0 t gnus-button-message-id 1) - ("\\(\\b<\\(url: ?\\)?news:\\(//\\)?\\([^>\n\t ]*\\)>\\)" 1 t + ("\\(\\b<\\(url:[>\n\t ]*\\)?news:[>\n\t ]*\\(//\\)?\\([^>\n\t ]*\\)>\\)" + 1 t gnus-button-fetch-group 4) ("\\bnews:\\(//\\)?\\([^'\">\n\t ]+\\)" 0 t gnus-button-fetch-group 2) ("\\bin\\( +article\\| +message\\)? +\\(<\\([^\n @<>]+@[^\n @<>]+\\)>\\)" 2 t gnus-button-message-id 3) ("\\( \n\t]+\\)>" 0 t gnus-url-mailto 2) + ("mailto:\\([a-zA-Z.-@_+0-9%]+\\)" 0 t gnus-url-mailto 2) ("\\bmailto:\\([^ \n\t]+\\)" 0 t gnus-url-mailto 1) ;; This is how URLs _should_ be embedded in text... ("]*\\)>" 0 t gnus-button-embedded-url 1) @@ -3255,17 +3254,12 @@ It is registered to variable `mime-view-content-header-filter-alist'." (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-raw-representation-type-alist + 'gnus-original-article-mode 'binary) (set-alist 'mime-preview-quitting-method-alist 'gnus-original-article-mode diff --git a/lisp/gnus-async.el b/lisp/gnus-async.el index c703caa..8da43cc 100644 --- a/lisp/gnus-async.el +++ b/lisp/gnus-async.el @@ -1,7 +1,7 @@ ;;; gnus-async.el --- asynchronous support for Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-bcklg.el b/lisp/gnus-bcklg.el index 457770f..d9934e5 100644 --- a/lisp/gnus-bcklg.el +++ b/lisp/gnus-bcklg.el @@ -1,7 +1,7 @@ ;;; gnus-bcklg.el --- backlog functions for Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-cache.el b/lisp/gnus-cache.el index 844c074..04a3ad7 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -1,7 +1,7 @@ ;;; gnus-cache.el --- cache interface for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -309,6 +309,7 @@ Returns the list of articles entered." (let ((articles (gnus-summary-work-articles n)) article out) (while (setq article (pop articles)) + (gnus-summary-remove-process-mark article) (if (natnump article) (when (gnus-cache-possibly-enter-article gnus-newsgroup-name article @@ -316,7 +317,6 @@ Returns the list of articles entered." nil nil nil t) (push article out)) (gnus-message 2 "Can't cache article %d" article)) - (gnus-summary-remove-process-mark article) (gnus-summary-update-secondary-mark article)) (gnus-summary-next-subject 1) (gnus-summary-position-point) @@ -332,9 +332,9 @@ Returns the list of articles removed." article out) (while articles (setq article (pop articles)) + (gnus-summary-remove-process-mark article) (when (gnus-cache-possibly-remove-article article nil nil nil t) (push article out)) - (gnus-summary-remove-process-mark article) (gnus-summary-update-secondary-mark article)) (gnus-summary-next-subject 1) (gnus-summary-position-point) @@ -607,8 +607,9 @@ If LOW, update the lower bound instead." (if top "" (string-match - (concat "^" (file-name-as-directory - (expand-file-name gnus-cache-directory))) + (concat "^" (regexp-quote + (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)) diff --git a/lisp/gnus-cite.el b/lisp/gnus-cite.el index 4230388..5dd0f89 100644 --- a/lisp/gnus-cite.el +++ b/lisp/gnus-cite.el @@ -485,6 +485,10 @@ always hide." (setq beg nil) (setq beg (point-marker)))) (when (and beg end) + ;; We use markers for the end-points to facilitate later + ;; wrapping and mangling of text. + (setq beg (set-marker (make-marker) beg) + end (set-marker (make-marker) end)) (gnus-add-text-properties beg end props) (goto-char beg) (unless (save-excursion (search-backward "\n\n" nil t)) @@ -496,10 +500,7 @@ always hide." (point) (progn (eval gnus-cited-text-button-line-format-spec) (point)) `gnus-article-toggle-cited-text - ;; We use markers for the end-points to facilitate later - ;; wrapping and mangling of text. - (cons (set-marker (make-marker) beg) - (set-marker (make-marker) end))) + (cons beg end)) (point)) 'article-type 'annotation) (set-marker beg (point))))))))) diff --git a/lisp/gnus-demon.el b/lisp/gnus-demon.el index f3968ea..594bc9f 100644 --- a/lisp/gnus-demon.el +++ b/lisp/gnus-demon.el @@ -1,7 +1,7 @@ ;;; gnus-demon.el --- daemonic Gnus behaviour ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-draft.el b/lisp/gnus-draft.el index f5e5d6c..fce8744 100644 --- a/lisp/gnus-draft.el +++ b/lisp/gnus-draft.el @@ -1,7 +1,7 @@ ;;; gnus-draft.el --- draft message support for Semi-gnus ;; Copyright (C) 1997,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; MORIOKA Tomohiko ;; Keywords: mail, news, MIME, offline @@ -31,6 +31,7 @@ (require 'message) (require 'gnus-msg) (require 'nndraft) +(require 'gnus-agent) (eval-when-compile (require 'cl)) ;;; Draft minor mode @@ -118,8 +119,26 @@ "Send message ARTICLE." (gnus-draft-setup article (or group "nndraft:queue")) (let ((message-syntax-checks 'dont-check-for-anything-just-trust-me) - message-send-hook) - (message-send-and-exit))) + message-send-hook type method) + ;; We read the meta-information that says how and where + ;; this message is to be sent. + (save-restriction + (message-narrow-to-head) + (when (re-search-forward + (concat "^" (regexp-quote gnus-agent-meta-information-header) ":") + nil t) + (setq type (ignore-errors (read (current-buffer))) + method (ignore-errors (read (current-buffer)))) + (message-remove-header gnus-agent-meta-information-header))) + ;; Then we send it. If we have no meta-information, we just send + ;; it and let Message figure out how. + (if type + (let ((message-this-is-news (eq type 'news)) + (message-this-is-mail (eq type 'mail)) + (gnus-post-method method) + (message-post-method method)) + (message-send-and-exit)) + (message-send-and-exit)))) (defun gnus-draft-send-all-messages () "Send all the sendable drafts." diff --git a/lisp/gnus-dup.el b/lisp/gnus-dup.el index 3fd5795..6958f02 100644 --- a/lisp/gnus-dup.el +++ b/lisp/gnus-dup.el @@ -1,7 +1,7 @@ ;;; gnus-dup.el --- suppression of duplicate articles in Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-eform.el b/lisp/gnus-eform.el index b0ff413..ff35a42 100644 --- a/lisp/gnus-eform.el +++ b/lisp/gnus-eform.el @@ -1,7 +1,7 @@ ;;; gnus-eform.el --- a mode for editing forms for Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-ems.el b/lisp/gnus-ems.el index 734723a..24b240a 100644 --- a/lisp/gnus-ems.el +++ b/lisp/gnus-ems.el @@ -1,7 +1,7 @@ ;;; 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 +;; Author: Lars Magne Ingebrigtsen ;; Tatsuya Ichikawa ;; Keywords: news @@ -184,7 +184,7 @@ (eval-and-compile (let ((case-fold-search t)) (cond - ((string-match "windows-nt\\|os/2\\|emx" (format "%s" system-type)) + ((string-match "windows-nt\\|os/2\\|emx" (symbol-name system-type)) (setq nnheader-file-name-translation-alist (append nnheader-file-name-translation-alist '((?: . ?_) @@ -234,9 +234,11 @@ (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 window-system + (require 'path-util) + (if (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 diff --git a/lisp/gnus-gl.el b/lisp/gnus-gl.el index 7d1b7de..c4fd928 100644 --- a/lisp/gnus-gl.el +++ b/lisp/gnus-gl.el @@ -299,7 +299,7 @@ If this times out we give up and assume that something has died..." ) ;;;; Login Functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun bbb-login () - "return the token number if login is successful, otherwise return nil" + "return the token number if login is successful, otherwise return nil." (interactive) (setq grouplens-bbb-token nil) (if (not (equal grouplens-pseudonym "")) @@ -324,7 +324,7 @@ If this times out we give up and assume that something has died..." ) (gnus-add-shutdown 'bbb-logout 'gnus) (defun bbb-logout () - "logout of bbb session" + "logout of bbb session." (when grouplens-bbb-token (let ((bbb-process (bbb-connect-to-bbbd grouplens-bbb-host grouplens-bbb-port))) @@ -339,9 +339,8 @@ If this times out we give up and assume that something has died..." ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun bbb-build-mid-scores-alist (groupname) - "this function can be called as part of the function to return the -list of score files to use. See the gnus variable -gnus-score-find-score-files-function. + "this function can be called as part of the function to return the list of score files to use. +See the gnus variable gnus-score-find-score-files-function. *Note:* If you want to use grouplens scores along with calculated scores, you should see the offset and scale variables. At this point, I don't @@ -669,9 +668,8 @@ recommend using both scores and grouplens predictions together." (gnus-summary-best-unread-article)) (defun grouplens-summary-catchup-and-exit (rating) - "Mark all articles not marked as unread in this newsgroup as read, - then exit. If prefix argument ALL is non-nil, all articles are - marked as read." + "Mark all articles not marked as unread in this newsgroup as read, then exit. +If prefix argument ALL is non-nil, all articles are marked as read." (interactive "P") (when rating (bbb-summary-rate-article rating)) @@ -748,7 +746,7 @@ recommend using both scores and grouplens predictions together." (defconst gnus-gl-version "gnus-gl.el 2.50") (defconst gnus-gl-maintainer-address "grouplens-bug@cs.umn.edu") (defun gnus-gl-submit-bug-report () - "Submit via mail a bug report on gnus-gl" + "Submit via mail a bug report on gnus-gl." (interactive) (require 'reporter) (reporter-submit-bug-report gnus-gl-maintainer-address @@ -765,7 +763,7 @@ recommend using both scores and grouplens predictions together." 'gnus-gl-get-trace)) (defun gnus-gl-get-trace () - "Insert the contents of the BBBD trace buffer" + "Insert the contents of the BBBD trace buffer." (when grouplens-bbb-buffer (insert-buffer grouplens-bbb-buffer))) diff --git a/lisp/gnus-group.el b/lisp/gnus-group.el index 902955c..d4bfd54 100644 --- a/lisp/gnus-group.el +++ b/lisp/gnus-group.el @@ -1,7 +1,7 @@ ;;; gnus-group.el --- group mode commands for Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -711,7 +711,7 @@ ticked: The number of ticked articles." (fboundp 'gnus-soup-pack-packet)] ["Pack packet" gnus-soup-pack-packet (fboundp 'gnus-soup-pack-packet)] ["Save areas" gnus-soup-save-areas (fboundp 'gnus-soup-pack-packet)] - ["Brew SOUP" gnus-soup-brew-soup (fboundp 'gnus-soup-pack-packet)]) + ["Brew SOUP" gnus-group-brew-soup (fboundp 'gnus-soup-pack-packet)]) ["Send a bug report" gnus-bug t] ["Send a mail" gnus-group-mail t] ["Post an article..." gnus-group-post-news t] @@ -1234,7 +1234,8 @@ already." (defun gnus-group-group-name () "Get the name of the newsgroup on the current line." (let ((group (get-text-property (gnus-point-at-bol) 'gnus-group))) - (and group (symbol-name group)))) + (when group + (symbol-name group)))) (defun gnus-group-group-level () "Get the level of the newsgroup on the current line." @@ -1584,14 +1585,14 @@ Return the name of the group is selection was successful." ;; Transform the select method into a unique server. (when (stringp method) (setq method (gnus-server-to-method method))) - (let ((saddr (intern (format "%s-address" (car method))))) - (setq method (gnus-copy-sequence method)) - (require (car method)) - (when (boundp saddr) - (unless (assq saddr method) - (nconc method `((,saddr ,(cadr method)))) - (setf (cadr method) (format "%s-%d" (cadr method) - (incf gnus-ephemeral-group-server)))))) +;;; (let ((saddr (intern (format "%s-address" (car method))))) +;;; (setq method (gnus-copy-sequence method)) +;;; (require (car method)) +;;; (when (boundp saddr) +;;; (unless (assq saddr method) +;;; (nconc method `((,saddr ,(cadr method)))) +;;; (setf (cadr method) (format "%s-%d" (cadr method) +;;; (incf gnus-ephemeral-group-server)))))) (let ((group (if (gnus-group-foreign-p group) group (gnus-group-prefixed-name group method)))) (gnus-sethash @@ -2735,11 +2736,10 @@ 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) @@ -3354,7 +3354,7 @@ or `gnus-group-catchup-group-hook'." (defsubst gnus-group-timestamp (group) "Return the timestamp for GROUP." - (gnus-group-get-parameter group 'timestamp)) + (gnus-group-get-parameter group 'timestamp t)) (defun gnus-group-timestamp-delta (group) "Return the offset in seconds from the timestamp for GROUP to the current time, as a floating point number." diff --git a/lisp/gnus-int.el b/lisp/gnus-int.el index f8acea9..3246bb4 100644 --- a/lisp/gnus-int.el +++ b/lisp/gnus-int.el @@ -1,7 +1,7 @@ ;;; gnus-int.el --- backend interface functions for Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-kill.el b/lisp/gnus-kill.el index 9773710..40d94d4 100644 --- a/lisp/gnus-kill.el +++ b/lisp/gnus-kill.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA -;; Lars Magne Ingebrigtsen +;; Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-logic.el b/lisp/gnus-logic.el index 8405e19..f2913f1 100644 --- a/lisp/gnus-logic.el +++ b/lisp/gnus-logic.el @@ -1,7 +1,7 @@ ;;; gnus-logic.el --- advanced scoring code for Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-mh.el b/lisp/gnus-mh.el index 84487f9..3960408 100644 --- a/lisp/gnus-mh.el +++ b/lisp/gnus-mh.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA -;; Lars Magne Ingebrigtsen +;; Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-move.el b/lisp/gnus-move.el index ef39c59..f676783 100644 --- a/lisp/gnus-move.el +++ b/lisp/gnus-move.el @@ -1,7 +1,7 @@ ;;; gnus-move.el --- commands for moving Gnus from one server to another ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -130,7 +130,10 @@ Update the .newsrc.eld file to reflect the change of nntp server." ;; into the Gnus info format. (setq to-reads (gnus-range-add - (gnus-compress-sequence (and to-reads (sort to-reads '<)) t) + (gnus-compress-sequence + (and (setq to-reads (delq nil to-reads)) + (sort to-reads '<)) + t) (cons 1 (1- (car to-active))))) (gnus-info-set-read info to-reads) ;; Do the marks. I'm sure y'all understand what's diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index 23759b3..a489f2b 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA -;; Lars Magne Ingebrigtsen +;; Lars Magne Ingebrigtsen ;; MORIOKA Tomohiko ;; Keywords: mail, news, MIME @@ -50,6 +50,7 @@ methods. If that is the case, the user will be queried for what select method to use when posting." :group 'gnus-group-foreign :type `(choice (const nil) + (const current) (const native) (sexp :tag "Methods" ,gnus-select-method))) @@ -94,6 +95,9 @@ 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*") @@ -486,7 +490,8 @@ If SILENT, don't prompt the user." (cons (or gnus-last-posting-server "") 0)))) method-alist)))) ;; Override normal method. - ((eq gnus-post-method 'current) + ((and (eq gnus-post-method 'current) + (not arg)) group-method) (gnus-post-method gnus-post-method) @@ -503,7 +508,7 @@ If SILENT, don't prompt the user." ;;; as well include the Emacs version as well. ;;; The following function works with later GNU Emacs, and XEmacs. (defun gnus-extended-version () - "Stringified Gnus version" + "Stringified Gnus version." (interactive) gnus-version) @@ -738,18 +743,20 @@ If YANK is non-nil, include the original article." (error "Gnus has been shut down")) (gnus-setup-message 'bug (delete-other-windows) - (switch-to-buffer (get-buffer-create "*Gnus Help Bug*")) - (erase-buffer) - (insert gnus-bug-message) - (goto-char (point-min)) + (when gnus-bug-create-help-buffer + (switch-to-buffer "*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 . ""))) - (push `(gnus-bug-kill-buffer) message-send-actions) + (when gnus-bug-create-help-buffer + (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") - (insert (emacs-version) "\n") + (insert (gnus-version) "\n" + (emacs-version) "\n") (when (and (boundp 'nntp-server-type) (stringp nntp-server-type)) (insert nntp-server-type)) diff --git a/lisp/gnus-nocem.el b/lisp/gnus-nocem.el index 4b761bc..d678531 100644 --- a/lisp/gnus-nocem.el +++ b/lisp/gnus-nocem.el @@ -1,7 +1,7 @@ ;;; gnus-nocem.el --- NoCeM pseudo-cancellation treatment ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -108,8 +108,7 @@ 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) diff --git a/lisp/gnus-picon.el b/lisp/gnus-picon.el index c115064..7579b0c 100644 --- a/lisp/gnus-picon.el +++ b/lisp/gnus-picon.el @@ -466,7 +466,7 @@ none, and whose CDR is the corresponding element of DOMAINS." 'text nil nil nil rightp)))))) (defun gnus-picons-action-toggle (data) - "Toggle annotation" + "Toggle annotation." (interactive "e") (let* ((annot (car data)) (glyph (annotation-glyph annot))) @@ -474,7 +474,7 @@ none, and whose CDR is the corresponding element of DOMAINS." (set-annotation-data annot (cons annot glyph)))) (defun gnus-picons-clear-cache () - "Clear the picons cache" + "Clear the picons cache." (interactive) (setq gnus-picons-glyph-alist nil gnus-picons-url-alist nil)) @@ -730,7 +730,7 @@ none, and whose CDR is the corresponding element of DOMAINS." (error "Unknown picon job tag %s" tag))))))) (defun gnus-picons-next-job () - "Start processing the job queue if it is not in progress" + "Start processing the job queue if it is not in progress." (unless gnus-picons-job-already-running (gnus-picons-next-job-internal))) diff --git a/lisp/gnus-range.el b/lisp/gnus-range.el index efebc35..799e883 100644 --- a/lisp/gnus-range.el +++ b/lisp/gnus-range.el @@ -1,7 +1,7 @@ ;;; gnus-range.el --- range and sequence functions for Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-salt.el b/lisp/gnus-salt.el index 849b2c7..1efaa60 100644 --- a/lisp/gnus-salt.el +++ b/lisp/gnus-salt.el @@ -1,7 +1,7 @@ ;;; gnus-salt.el --- alternate summary mode interfaces for Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -72,23 +72,24 @@ It accepts the same format specs that `gnus-summary-line-format' does." (setq gnus-pick-mode-map (make-sparse-keymap)) (gnus-define-keys gnus-pick-mode-map - "t" gnus-uu-mark-thread - "T" gnus-uu-unmark-thread " " gnus-pick-next-page "u" gnus-summary-unmark-as-processable - "U" gnus-summary-unmark-all-processable - "v" gnus-uu-mark-over - "r" gnus-uu-mark-region - "R" gnus-uu-unmark-region - "e" gnus-uu-mark-by-regexp - "E" gnus-uu-mark-by-regexp - "b" gnus-uu-mark-buffer - "B" gnus-uu-unmark-buffer "." gnus-pick-article gnus-down-mouse-2 gnus-pick-mouse-pick-region + "\r" gnus-pick-start-reading + ;; "t" gnus-uu-mark-thread + ;; "T" gnus-uu-unmark-thread + ;; "U" gnus-summary-unmark-all-processable + ;; "v" gnus-uu-mark-over + ;; "r" gnus-uu-mark-region + ;; "R" gnus-uu-unmark-region + ;; "e" gnus-uu-mark-by-regexp + ;; "E" gnus-uu-mark-by-regexp + ;; "b" gnus-uu-mark-buffer + ;; "B" gnus-uu-unmark-buffer ;;gnus-mouse-2 gnus-pick-mouse-pick - "X" gnus-pick-start-reading - "\r" gnus-pick-start-reading)) + ;; "X" gnus-pick-start-reading + )) (defun gnus-pick-make-menu-bar () (unless (boundp 'gnus-pick-menu) @@ -99,14 +100,14 @@ It accepts the same format specs that `gnus-summary-line-format' does." ["Article" gnus-summary-mark-as-processable t] ["Thread" gnus-uu-mark-thread t] ["Region" gnus-uu-mark-region t] - ["Regexp" gnus-uu-mark-regexp t] + ["Regexp" gnus-uu-mark-by-regexp t] ["Buffer" gnus-uu-mark-buffer t]) ("Unpick" ["Article" gnus-summary-unmark-as-processable t] ["Thread" gnus-uu-unmark-thread t] ["Region" gnus-uu-unmark-region t] - ["Regexp" gnus-uu-unmark-regexp t] - ["Buffer" gnus-uu-unmark-buffer t]) + ["Regexp" gnus-uu-unmark-by-regexp t] + ["Buffer" gnus-summary-unmark-all-processable t]) ["Start reading" gnus-pick-start-reading t] ["Switch pick mode off" gnus-pick-mode gnus-pick-mode])))) diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index faea1c9..f324be2 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. ;; Author: Per Abrahamsen -;; Lars Magne Ingebrigtsen +;; Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -269,6 +269,11 @@ This variable allows the same syntax as `gnus-home-score-file'." :group 'gnus-score-adapt :type '(choice (const nil) integer)) +(defcustom gnus-adaptive-word-no-group-words nil + "If t, don't adaptively score words included in the group name." + :group 'gnus-score-adapt + :type 'boolean) + (defcustom gnus-score-mimic-keymap nil "*Have the score entry functions pretend that they are a keymap." :group 'gnus-score-default @@ -1070,8 +1075,9 @@ 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 "^" (expand-file-name - gnus-kill-files-directory)) + (concat "^" (regexp-quote + (expand-file-name + gnus-kill-files-directory))) (expand-file-name file)) file) (concat (file-name-as-directory gnus-kill-files-directory) @@ -1328,7 +1334,7 @@ SCORE is the score to add." (gnus-prin1 score) ;; This is a normal score file, so we print it very ;; prettily. - (let ((emacs-lisp-mode-syntax-table score-mode-syntax-table)) + (let ((lisp-mode-syntax-table score-mode-syntax-table)) (pp score (current-buffer))))) (gnus-make-directory (file-name-directory file)) ;; If the score file is empty, we delete it. @@ -2089,6 +2095,10 @@ SCORE is the score to add." (set-syntax-table syntab)) ;; Make all the ignorable words ignored. (let ((ignored (append gnus-ignored-adaptive-words + (if gnus-adaptive-word-no-group-words + (message-tokenize-header + (gnus-group-real-name gnus-newsgroup-name) + ".")) gnus-default-ignored-adaptive-words))) (while ignored (gnus-sethash (pop ignored) nil hashtb))))) @@ -2217,6 +2227,11 @@ SCORE is the score to add." (set-syntax-table syntab)) ;; Make all the ignorable words ignored. (let ((ignored (append gnus-ignored-adaptive-words + (if gnus-adaptive-word-no-group-words + (message-tokenize-header + (gnus-group-real-name + gnus-newsgroup-name) + ".")) gnus-default-ignored-adaptive-words))) (while ignored (gnus-sethash (pop ignored) nil hashtb))) @@ -2725,6 +2740,7 @@ 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 diff --git a/lisp/gnus-soup.el b/lisp/gnus-soup.el index 5471940..8e92821 100644 --- a/lisp/gnus-soup.el +++ b/lisp/gnus-soup.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. ;; Author: Per Abrahamsen -;; Lars Magne Ingebrigtsen +;; Lars Magne Ingebrigtsen ;; Keywords: news, mail ;; This file is part of GNU Emacs. @@ -366,22 +366,23 @@ The vector contain five strings, [prefix name encoding description number] though the two last may be nil if they are missing." (let (areas) - (save-excursion - (set-buffer (nnheader-find-file-noselect file 'force)) - (buffer-disable-undo (current-buffer)) - (goto-char (point-min)) - (while (not (eobp)) - (push (vector (gnus-soup-field) - (gnus-soup-field) - (gnus-soup-field) - (and (eq (preceding-char) ?\t) - (gnus-soup-field)) - (and (eq (preceding-char) ?\t) - (string-to-int (gnus-soup-field)))) - areas) - (when (eq (preceding-char) ?\t) - (beginning-of-line 2))) - (kill-buffer (current-buffer))) + (when (file-exists-p file) + (save-excursion + (set-buffer (nnheader-find-file-noselect file 'force)) + (buffer-disable-undo (current-buffer)) + (goto-char (point-min)) + (while (not (eobp)) + (push (vector (gnus-soup-field) + (gnus-soup-field) + (gnus-soup-field) + (and (eq (preceding-char) ?\t) + (gnus-soup-field)) + (and (eq (preceding-char) ?\t) + (string-to-int (gnus-soup-field)))) + areas) + (when (eq (preceding-char) ?\t) + (beginning-of-line 2))) + (kill-buffer (current-buffer)))) areas)) (defun gnus-soup-parse-replies (file) diff --git a/lisp/gnus-spec.el b/lisp/gnus-spec.el index 00bfcca..138dff8 100644 --- a/lisp/gnus-spec.el +++ b/lisp/gnus-spec.el @@ -1,7 +1,7 @@ ;;; gnus-spec.el --- format spec functions for Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-srvr.el b/lisp/gnus-srvr.el index 22089c1..24e9bfd 100644 --- a/lisp/gnus-srvr.el +++ b/lisp/gnus-srvr.el @@ -1,7 +1,7 @@ ;;; gnus-srvr.el --- virtual server support for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 5d818ac..d83f15f 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -1,7 +1,7 @@ ;;; gnus-start.el --- startup functions for Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 52b5d1e..cf6bb24 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1,7 +1,7 @@ ;;; gnus-sum.el --- summary mode commands for Semi-gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; MORIOKA Tomohiko ;; Keywords: mail, news, MIME @@ -1482,211 +1482,110 @@ increase the score of each group you read." ["Increase score..." gnus-summary-increase-score t] ["Lower score..." gnus-summary-lower-score t])))) - '(("Default header" - ["Ask" (gnus-score-set-default 'gnus-score-default-header nil) - :style radio - :selected (null gnus-score-default-header)] - ["From" (gnus-score-set-default 'gnus-score-default-header 'a) - :style radio - :selected (eq gnus-score-default-header 'a)] - ["Subject" (gnus-score-set-default 'gnus-score-default-header 's) - :style radio - :selected (eq gnus-score-default-header 's)] - ["Article body" - (gnus-score-set-default 'gnus-score-default-header 'b) - :style radio - :selected (eq gnus-score-default-header 'b )] - ["All headers" - (gnus-score-set-default 'gnus-score-default-header 'h) - :style radio - :selected (eq gnus-score-default-header 'h )] - ["Message-ID" (gnus-score-set-default 'gnus-score-default-header 'i) - :style radio - :selected (eq gnus-score-default-header 'i )] - ["Thread" (gnus-score-set-default 'gnus-score-default-header 't) - :style radio - :selected (eq gnus-score-default-header 't )] - ["Crossposting" - (gnus-score-set-default 'gnus-score-default-header 'x) - :style radio - :selected (eq gnus-score-default-header 'x )] - ["Lines" (gnus-score-set-default 'gnus-score-default-header 'l) - :style radio - :selected (eq gnus-score-default-header 'l )] - ["Date" (gnus-score-set-default 'gnus-score-default-header 'd) - :style radio - :selected (eq gnus-score-default-header 'd )] - ["Followups to author" - (gnus-score-set-default 'gnus-score-default-header 'f) - :style radio - :selected (eq gnus-score-default-header 'f )]) - ("Default type" - ["Ask" (gnus-score-set-default 'gnus-score-default-type nil) - :style radio - :selected (null gnus-score-default-type)] - ;; The `:active' key is commented out in the following, - ;; because the GNU Emacs hack to support radio buttons use - ;; active to indicate which button is selected. - ["Substring" (gnus-score-set-default 'gnus-score-default-type 's) - :style radio - ;; :active (not (memq gnus-score-default-header '(l d))) - :selected (eq gnus-score-default-type 's)] - ["Regexp" (gnus-score-set-default 'gnus-score-default-type 'r) - :style radio - ;; :active (not (memq gnus-score-default-header '(l d))) - :selected (eq gnus-score-default-type 'r)] - ["Exact" (gnus-score-set-default 'gnus-score-default-type 'e) - :style radio - ;; :active (not (memq gnus-score-default-header '(l d))) - :selected (eq gnus-score-default-type 'e)] - ["Fuzzy" (gnus-score-set-default 'gnus-score-default-type 'f) - :style radio - ;; :active (not (memq gnus-score-default-header '(l d))) - :selected (eq gnus-score-default-type 'f)] - ["Before date" (gnus-score-set-default 'gnus-score-default-type 'b) - :style radio - ;; :active (eq (gnus-score-default-header 'd)) - :selected (eq gnus-score-default-type 'b)] - ["At date" (gnus-score-set-default 'gnus-score-default-type 'n) - :style radio - ;; :active (eq (gnus-score-default-header 'd)) - :selected (eq gnus-score-default-type 'n)] - ["After date" (gnus-score-set-default 'gnus-score-default-type 'a) - :style radio - ;; :active (eq (gnus-score-default-header 'd)) - :selected (eq gnus-score-default-type 'a)] - ["Less than number" - (gnus-score-set-default 'gnus-score-default-type '<) - :style radio - ;; :active (eq (gnus-score-default-header 'l)) - :selected (eq gnus-score-default-type '<)] - ["Equal to number" - (gnus-score-set-default 'gnus-score-default-type '=) - :style radio - ;; :active (eq (gnus-score-default-header 'l)) - :selected (eq gnus-score-default-type '=)] - ["Greater than number" - (gnus-score-set-default 'gnus-score-default-type '>) - :style radio - ;; :active (eq (gnus-score-default-header 'l)) - :selected (eq gnus-score-default-type '>)]) - ["Default fold" gnus-score-default-fold-toggle - :style toggle - :selected gnus-score-default-fold] - ("Default duration" - ["Ask" (gnus-score-set-default 'gnus-score-default-duration nil) - :style radio - :selected (null gnus-score-default-duration)] - ["Permanent" - (gnus-score-set-default 'gnus-score-default-duration 'p) - :style radio - :selected (eq gnus-score-default-duration 'p)] - ["Temporary" - (gnus-score-set-default 'gnus-score-default-duration 't) - :style radio - :selected (eq gnus-score-default-duration 't)] - ["Immediate" - (gnus-score-set-default 'gnus-score-default-duration 'i) - :style radio - :selected (eq gnus-score-default-duration 'i)])) - - (easy-menu-define - gnus-summary-article-menu gnus-summary-mode-map "" - '("Article" - ("Hide" - ["All" gnus-article-hide t] - ["Headers" gnus-article-hide-headers t] - ["Signature" gnus-article-hide-signature t] - ["Citation" gnus-article-hide-citation t] - ["PGP" gnus-article-hide-pgp t] - ["Boring headers" gnus-article-hide-boring-headers t]) - ("Highlight" - ["All" gnus-article-highlight t] - ["Headers" gnus-article-highlight-headers t] - ["Signature" gnus-article-highlight-signature t] - ["Citation" gnus-article-highlight-citation t]) - ("Date" - ["Local" gnus-article-date-local t] - ["ISO8601" gnus-article-date-iso8601 t] - ["UT" gnus-article-date-ut t] - ["Original" gnus-article-date-original t] - ["Lapsed" gnus-article-date-lapsed t] - ["User-defined" gnus-article-date-user t]) - ("Washing" - ("Remove Blanks" - ["Leading" gnus-article-strip-leading-blank-lines t] - ["Multiple" gnus-article-strip-multiple-blank-lines t] - ["Trailing" gnus-article-remove-trailing-blank-lines t] - ["All of the above" gnus-article-strip-blank-lines t] - ["All" gnus-article-strip-all-blank-lines t] - ["Leading space" gnus-article-strip-leading-space t]) - ["Overstrike" gnus-article-treat-overstrike t] - ["Dumb quotes" gnus-article-treat-dumbquotes t] - ["Emphasis" gnus-article-emphasize t] - ["Word wrap" gnus-article-fill-cited-article t] - ["CR" gnus-article-remove-cr t] - ["Show X-Face" gnus-article-display-x-face t] - ["UnHTMLize" gnus-article-treat-html t] - ["Rot 13" gnus-summary-caesar-message t] - ["Unix pipe" gnus-summary-pipe-message t] - ["Add buttons" gnus-article-add-buttons t] - ["Add buttons to head" gnus-article-add-buttons-to-head t] - ["Stop page breaking" gnus-summary-stop-page-breaking t] - ["Toggle MIME" gnus-summary-toggle-mime t] - ["Verbose header" gnus-summary-verbose-headers t] - ["Toggle header" gnus-summary-toggle-header t]) - ("Output" - ["Save in default format" gnus-summary-save-article t] - ["Save in file" gnus-summary-save-article-file t] - ["Save in Unix mail format" gnus-summary-save-article-mail t] - ["Save in MH folder" gnus-summary-save-article-folder t] - ["Save in VM folder" gnus-summary-save-article-vm t] - ["Save in RMAIL mbox" gnus-summary-save-article-rmail t] - ["Save body in file" gnus-summary-save-article-body-file t] - ["Pipe through a filter" gnus-summary-pipe-output t] - ["Add to SOUP packet" gnus-soup-add-article t] - ["Print" gnus-summary-print-article t]) - ("Backend" - ["Respool article..." gnus-summary-respool-article t] - ["Move article..." gnus-summary-move-article - (gnus-check-backend-function - 'request-move-article gnus-newsgroup-name)] - ["Copy article..." gnus-summary-copy-article t] - ["Crosspost article..." gnus-summary-crosspost-article - (gnus-check-backend-function - 'request-replace-article gnus-newsgroup-name)] - ["Import file..." gnus-summary-import-article t] - ["Check if posted" gnus-summary-article-posted-p t] - ["Edit article" gnus-summary-edit-article - (not (gnus-group-read-only-p))] - ["Delete article" gnus-summary-delete-article - (gnus-check-backend-function - 'request-expire-articles gnus-newsgroup-name)] - ["Query respool" gnus-summary-respool-query t] - ["Delete expirable articles" gnus-summary-expire-articles-now - (gnus-check-backend-function - 'request-expire-articles gnus-newsgroup-name)]) - ("Extract" - ["Uudecode" gnus-uu-decode-uu t] - ["Uudecode and save" gnus-uu-decode-uu-and-save t] - ["Unshar" gnus-uu-decode-unshar t] - ["Unshar and save" gnus-uu-decode-unshar-and-save t] - ["Save" gnus-uu-decode-save t] - ["Binhex" gnus-uu-decode-binhex t] - ["Postscript" gnus-uu-decode-postscript t]) - ("Cache" - ["Enter article" gnus-cache-enter-article t] - ["Remove article" gnus-cache-remove-article t]) - ["Select article buffer" gnus-summary-select-article-buffer t] - ["Enter digest buffer" gnus-summary-enter-digest-group t] - ["Isearch article..." gnus-summary-isearch-article t] - ["Beginning of the article" gnus-summary-beginning-of-article t] - ["End of the article" gnus-summary-end-of-article t] - ["Fetch parent of article" gnus-summary-refer-parent-article t] - ["Fetch referenced articles" gnus-summary-refer-references t] - ["Fetch current thread" gnus-summary-refer-thread t] - ["Fetch article with id..." gnus-summary-refer-article t] - ["Redisplay" gnus-summary-show-article t])) + ;; Define both the Article menu in the summary buffer and the equivalent + ;; Commands menu in the article buffer here for consistency. + (let ((innards + '(("Hide" + ["All" gnus-article-hide t] + ["Headers" gnus-article-hide-headers t] + ["Signature" gnus-article-hide-signature t] + ["Citation" gnus-article-hide-citation t] + ["PGP" gnus-article-hide-pgp t] + ["Boring headers" gnus-article-hide-boring-headers t]) + ("Highlight" + ["All" gnus-article-highlight t] + ["Headers" gnus-article-highlight-headers t] + ["Signature" gnus-article-highlight-signature t] + ["Citation" gnus-article-highlight-citation t]) + ("Date" + ["Local" gnus-article-date-local t] + ["ISO8601" gnus-article-date-iso8601 t] + ["UT" gnus-article-date-ut t] + ["Original" gnus-article-date-original t] + ["Lapsed" gnus-article-date-lapsed t] + ["User-defined" gnus-article-date-user t]) + ("Washing" + ("Remove Blanks" + ["Leading" gnus-article-strip-leading-blank-lines t] + ["Multiple" gnus-article-strip-multiple-blank-lines t] + ["Trailing" gnus-article-remove-trailing-blank-lines t] + ["All of the above" gnus-article-strip-blank-lines t] + ["All" gnus-article-strip-all-blank-lines t] + ["Leading space" gnus-article-strip-leading-space t]) + ["Overstrike" gnus-article-treat-overstrike t] + ["Dumb quotes" gnus-article-treat-dumbquotes t] + ["Emphasis" gnus-article-emphasize t] + ["Word wrap" gnus-article-fill-cited-article t] + ["CR" gnus-article-remove-cr t] + ["Show X-Face" gnus-article-display-x-face t] + ["UnHTMLize" gnus-article-treat-html t] + ["Rot 13" gnus-summary-caesar-message t] + ["Unix pipe" gnus-summary-pipe-message t] + ["Add buttons" gnus-article-add-buttons t] + ["Add buttons to head" gnus-article-add-buttons-to-head t] + ["Stop page breaking" gnus-summary-stop-page-breaking t] + ["Toggle MIME" gnus-summary-toggle-mime t] + ["Verbose header" gnus-summary-verbose-headers t] + ["Toggle header" gnus-summary-toggle-header t]) + ("Output" + ["Save in default format" gnus-summary-save-article t] + ["Save in file" gnus-summary-save-article-file t] + ["Save in Unix mail format" gnus-summary-save-article-mail t] + ["Save in MH folder" gnus-summary-save-article-folder t] + ["Save in VM folder" gnus-summary-save-article-vm t] + ["Save in RMAIL mbox" gnus-summary-save-article-rmail t] + ["Save body in file" gnus-summary-save-article-body-file t] + ["Pipe through a filter" gnus-summary-pipe-output t] + ["Add to SOUP packet" gnus-soup-add-article t] + ["Print" gnus-summary-print-article t]) + ("Backend" + ["Respool article..." gnus-summary-respool-article t] + ["Move article..." gnus-summary-move-article + (gnus-check-backend-function + 'request-move-article gnus-newsgroup-name)] + ["Copy article..." gnus-summary-copy-article t] + ["Crosspost article..." gnus-summary-crosspost-article + (gnus-check-backend-function + 'request-replace-article gnus-newsgroup-name)] + ["Import file..." gnus-summary-import-article t] + ["Check if posted" gnus-summary-article-posted-p t] + ["Edit article" gnus-summary-edit-article + (not (gnus-group-read-only-p))] + ["Delete article" gnus-summary-delete-article + (gnus-check-backend-function + 'request-expire-articles gnus-newsgroup-name)] + ["Query respool" gnus-summary-respool-query t] + ["Delete expirable articles" gnus-summary-expire-articles-now + (gnus-check-backend-function + 'request-expire-articles gnus-newsgroup-name)]) + ("Extract" + ["Uudecode" gnus-uu-decode-uu t] + ["Uudecode and save" gnus-uu-decode-uu-and-save t] + ["Unshar" gnus-uu-decode-unshar t] + ["Unshar and save" gnus-uu-decode-unshar-and-save t] + ["Save" gnus-uu-decode-save t] + ["Binhex" gnus-uu-decode-binhex t] + ["Postscript" gnus-uu-decode-postscript t]) + ("Cache" + ["Enter article" gnus-cache-enter-article t] + ["Remove article" gnus-cache-remove-article t]) + ["Select article buffer" gnus-summary-select-article-buffer t] + ["Enter digest buffer" gnus-summary-enter-digest-group t] + ["Isearch article..." gnus-summary-isearch-article t] + ["Beginning of the article" gnus-summary-beginning-of-article t] + ["End of the article" gnus-summary-end-of-article t] + ["Fetch parent of article" gnus-summary-refer-parent-article t] + ["Fetch referenced articles" gnus-summary-refer-references t] + ["Fetch current thread" gnus-summary-refer-thread t] + ["Fetch article with id..." gnus-summary-refer-article t] + ["Redisplay" gnus-summary-show-article t]))) + (easy-menu-define + gnus-summary-article-menu gnus-summary-mode-map "" + (cons "Article" innards)) + + (easy-menu-define + gnus-article-commands-menu gnus-article-mode-map "" + (cons "Commands" innards))) (easy-menu-define gnus-summary-thread-menu gnus-summary-mode-map "" @@ -1777,7 +1676,9 @@ increase the score of each group you read." ["Mark above" gnus-uu-mark-over t] ["Mark series" gnus-uu-mark-series t] ["Mark region" gnus-uu-mark-region t] + ["Unmark region" gnus-uu-unmark-region t] ["Mark by regexp..." gnus-uu-mark-by-regexp t] + ["Unmark by regexp..." gnus-uu-unmark-by-regexp t] ["Mark all" gnus-uu-mark-all t] ["Mark buffer" gnus-uu-mark-buffer t] ["Mark sparse" gnus-uu-mark-sparse t] @@ -2603,6 +2504,7 @@ the thread are to be displayed." (and (consp elem) ; Has to be a cons. (consp (cdr elem)) ; The cdr has to be a list. (symbolp (car elem)) ; Has to be a symbol in there. + (not (memq (car elem) '(quit-config))) ; Ignore quit-config. (ignore-errors ; So we set it. (make-local-variable (car elem)) (set (car elem) (eval (nth 1 elem)))))))) @@ -2965,11 +2867,90 @@ 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 children) + cthread subject child end pthread relation new-child) ;; First we create an alist of generations/relations, where ;; generations is how much we trust the relation, and the relation ;; is parent/child. @@ -2985,51 +2966,28 @@ If NO-DISPLAY, don't generate a summary buffer." (setq generation 0) (while (search-backward ">" nil t) (setq end (1+ (point))) - (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) + (if (search-backward "<" nil t) (push (list (incf generation) child (setq child new-child) subject) - relations) - (push child children)))) + relations))) (push (list (1+ generation) child nil subject) relations) (erase-buffer))) (kill-buffer (current-buffer))) ;; Sort over trustworthiness. - (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)))))) + (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)) (gnus-message 7 "Making sparse threads...done"))) (defun gnus-build-old-threads () @@ -3048,8 +3006,7 @@ If NO-DISPLAY, don't generate a summary buffer." (setq heads (cdr heads)) (setq id (symbol-name refs)) (while (and (setq id (gnus-build-get-header id)) - (not (car (gnus-gethash - id gnus-newsgroup-dependencies))))) + (not (car (gnus-id-to-thread id))))) (setq heads nil))))) gnus-newsgroup-dependencies))) @@ -3057,8 +3014,7 @@ If NO-DISPLAY, don't generate a summary buffer." ;; 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 ((deps gnus-newsgroup-dependencies) - found header) + (let (found header) (prog1 (save-excursion (set-buffer nntp-server-buffer) @@ -3074,8 +3030,8 @@ If NO-DISPLAY, don't generate a summary buffer." (when found (beginning-of-line) (and - (setq header (gnus-nov-parse-line - (read (current-buffer)) deps)) + (setq header (gnus-nov-parse-line (read (current-buffer)) + gnus-newsgroup-dependencies)) (gnus-parent-id (mail-header-references header)))))) (when header (let ((number (mail-header-number header))) @@ -3090,8 +3046,7 @@ If NO-DISPLAY, don't generate a summary buffer." (defun gnus-build-all-threads () "Read all the headers." - (let ((deps gnus-newsgroup-dependencies) - (gnus-summary-ignore-duplicates t) + (let ((gnus-summary-ignore-duplicates t) found header article) (save-excursion (set-buffer nntp-server-buffer) @@ -3100,7 +3055,8 @@ If NO-DISPLAY, don't generate a summary buffer." (while (not (eobp)) (ignore-errors (setq article (read (current-buffer))) - (setq header (gnus-nov-parse-line article deps))) + (setq header (gnus-nov-parse-line article + gnus-newsgroup-dependencies))) (when header (push header gnus-newsgroup-headers) (if (memq (setq article (mail-header-number header)) @@ -3235,19 +3191,23 @@ If NO-DISPLAY, don't generate a summary buffer." (when headers (car headers)))) -(defun gnus-parent-headers (headers &optional generation) +(defun gnus-parent-headers (in-headers &optional generation) "Return the headers of the GENERATIONeth parent of HEADERS." (unless generation (setq generation 1)) (let ((parent t) + (headers in-headers) references) - (while (and parent headers (not (zerop generation))) - (setq references (mail-header-references headers)) + (while (and parent + headers + (not (zerop generation)) + (setq references (mail-header-references headers))) (when (and references (setq parent (gnus-parent-id references)) (setq headers (car (gnus-id-to-thread parent)))) (decf generation))) - headers)) + (and (not (eq headers in-headers)) + headers))) (defun gnus-id-to-thread (id) "Return the (sub-)thread where ID appears." @@ -3282,8 +3242,7 @@ If NO-DISPLAY, don't generate a summary buffer." (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-gethash - id gnus-newsgroup-dependencies)))) + (while (and id (setq prev (car (gnus-id-to-thread id)))) (setq last-id id id (gnus-parent-id (mail-header-references prev)))) last-id)) @@ -3295,8 +3254,7 @@ If NO-DISPLAY, don't generate a summary buffer." (defun gnus-remove-thread (id &optional dont-remove) "Remove the thread that has ID in it." - (let ((dep gnus-newsgroup-dependencies) - headers thread last-id) + (let (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)) @@ -3329,7 +3287,7 @@ If NO-DISPLAY, don't generate a summary buffer." (if thread (unless dont-remove (setq gnus-newsgroup-threads (delq thread gnus-newsgroup-threads))) - (setq thread (gnus-gethash last-id dep))) + (setq thread (gnus-id-to-thread last-id))) (when thread (prog1 thread ; We return this thread. @@ -3339,6 +3297,11 @@ If NO-DISPLAY, don't generate a summary buffer." ;; If we use dummy roots, then we have to remove the ;; dummy root as well. (when (eq gnus-summary-make-false-root 'dummy) + ;; We go to the dummy root by going to + ;; the first sub-"thread", and then one line up. + (gnus-summary-goto-article + (mail-header-number (caadr thread))) + (forward-line -1) (gnus-delete-line) (gnus-data-compute-positions)) (setq thread (cdr thread)) @@ -3489,8 +3452,7 @@ 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-gethash (mail-header-id root) - gnus-newsgroup-dependencies))) + (cdr (gnus-id-to-thread (mail-header-id root)))) (when (> (mail-header-number root) 0) (list (or (cdr (assq (mail-header-number root) gnus-newsgroup-scored)) @@ -3651,7 +3613,10 @@ or a straight list of headers." (when gnus-tmp-header ;; We may have an old dummy line to output before this ;; article. - (when gnus-tmp-dummy-line + (when (and gnus-tmp-dummy-line + (gnus-subject-equal + gnus-tmp-dummy-line + (mail-header-subject gnus-tmp-header))) (gnus-summary-insert-dummy-line gnus-tmp-dummy-line (mail-header-number gnus-tmp-header)) (setq gnus-tmp-dummy-line nil)) @@ -3856,11 +3821,11 @@ If READ-ALL is non-nil, all articles in the group are selected." articles gnus-newsgroup-name ;; We might want to fetch old headers, but ;; not if there is only 1 article. - (and gnus-fetch-old-headers - (or (and + (and (or (and (not (eq gnus-fetch-old-headers 'some)) (not (numberp gnus-fetch-old-headers))) - (> (length articles) 1)))))) + (> (length articles) 1)) + gnus-fetch-old-headers)))) (gnus-get-newsgroup-headers-xover articles nil nil gnus-newsgroup-name t) (gnus-get-newsgroup-headers))) @@ -4436,43 +4401,11 @@ 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)))) - - ;; 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)) + + (setq header + (gnus-dependencies-add-header header dependencies force-new)) + (if header + (push header headers)) (goto-char (point-max)) (widen)) (nreverse headers))))) @@ -4512,73 +4445,31 @@ The resulting hash table is returned, or nil if no Xrefs were found." (forward-char)) (setq header - (vector + (make-full-mail-header number ; number (funcall gnus-unstructured-field-decoder (gnus-nov-field)) ; subject (funcall gnus-structured-field-decoder (gnus-nov-field)) ; from (gnus-nov-field) ; date - (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 + (or (gnus-nov-field) + (nnheader-generate-fake-message-id)) ; id + (gnus-nov-field) ; refs (gnus-nov-read-integer) ; chars (gnus-nov-read-integer) ; lines - (if (= (following-char) ?\n) - nil + (unless (= (following-char) ?\n) (gnus-nov-field))))) ; misc (widen)) (when gnus-alter-header-function - (funcall gnus-alter-header-function header) - (setq id (mail-header-id header) - ref (gnus-parent-id (mail-header-references header)))) - - ;; 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))))) + (funcall gnus-alter-header-function header)) + + (setq id (mail-header-id header) + ref (gnus-parent-id (mail-header-references header))) + + (gnus-dependencies-add-header header dependencies force-new) + header)) ;; Goes through the xover lines and returns a list of vectors @@ -4708,9 +4599,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 @@ -5069,12 +4960,7 @@ The prefix argument ALL means to select all articles." t))) (unless (listp (cdr gnus-newsgroup-killed)) (setq gnus-newsgroup-killed (list gnus-newsgroup-killed))) - (let ((headers gnus-newsgroup-headers) - (gnus-newsgroup-scored - (if (and (not gnus-save-score) - (not non-destructive)) - nil - gnus-newsgroup-scored))) + (let ((headers gnus-newsgroup-headers)) ;; Set the new ranges of read articles. (save-excursion (set-buffer gnus-group-buffer) @@ -5082,7 +4968,13 @@ The prefix argument ALL means to select all articles." (gnus-update-read-articles group (append gnus-newsgroup-unreads gnus-newsgroup-unselected)) ;; Set the current article marks. - (gnus-update-marks) + (let ((gnus-newsgroup-scored + (if (and (not gnus-save-score) + (not non-destructive)) + nil + gnus-newsgroup-scored))) + (save-excursion + (gnus-update-marks))) ;; Do the cross-ref thing. (when gnus-use-cross-reference (gnus-mark-xrefs-as-read group headers gnus-newsgroup-unreads)) @@ -5225,8 +5117,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)) @@ -6013,7 +5905,9 @@ 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 is-younger (not is-younger)) + (when (if younger-p + (not is-younger) + is-younger) (push (gnus-data-number d) articles)))) (gnus-summary-limit (nreverse articles))) (gnus-summary-position-point))) @@ -8832,9 +8726,7 @@ 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-gethash parent gnus-newsgroup-dependencies)))) + (thread (and parent (gnus-id-to-thread parent)))) (when thread (delq (assq header thread) thread)))) ;; We have to really fetch the header to this article. @@ -9039,13 +8931,12 @@ save those articles instead." "mime-partial" "Internal method to combine message/partial messages automatically.") -(ctree-set-calist-strictly - 'mime-acting-condition - '((type . message)(subtype . partial) - (method . mime-method-to-combine-message/partial-pieces) - (major-mode . gnus-original-article-mode) - (summary-buffer-exp . gnus-summary-buffer) - )) +(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 diff --git a/lisp/gnus-topic.el b/lisp/gnus-topic.el index 178bcb9..249367d 100644 --- a/lisp/gnus-topic.el +++ b/lisp/gnus-topic.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. ;; Author: Ilja Weis -;; Lars Magne Ingebrigtsen +;; Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -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, and -use the `gnus-group-topics' to sort the groups. + "List all newsgroups with unread articles of level LEVEL or lower. +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) diff --git a/lisp/gnus-undo.el b/lisp/gnus-undo.el index ee75857..90cf174 100644 --- a/lisp/gnus-undo.el +++ b/lisp/gnus-undo.el @@ -1,7 +1,7 @@ ;;; gnus-undo.el --- minor mode for undoing in Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 0652061..1665191 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -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 -;; Keywords: news +;; Author: Lars Magne Ingebrigtsen +;; Keywords: mail, news, MIME ;; This file is part of GNU Emacs. @@ -340,12 +340,11 @@ (yes-or-no-p prompt) (message ""))) -;; I suspect there's a better way, but I haven't taken the time to do -;; it yet. -erik selberg@cs.washington.edu (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 (not datevec) + (if (or (not datevec) + (string-equal "0" (aref datevec 1))) "??-???" (format "%2s-%s" (condition-case () @@ -377,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 ""))) @@ -719,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) @@ -778,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"))) @@ -796,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) @@ -925,7 +927,7 @@ ARG is passed to the first function." (defun gnus-alive-p () "Say whether Gnus is running or not." - (and gnus-group-buffer + (and (boundp 'gnus-group-buffer) (get-buffer gnus-group-buffer) (save-excursion (set-buffer gnus-group-buffer) diff --git a/lisp/gnus-uu.el b/lisp/gnus-uu.el index 46c38fb..7b28e53 100644 --- a/lisp/gnus-uu.el +++ b/lisp/gnus-uu.el @@ -1,7 +1,7 @@ ;;; gnus-uu.el --- extract (uu)encoded files in Gnus ;; Copyright (C) 1985,86,87,93,94,95,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Created: 2 Oct 1993 ;; Keyword: news @@ -353,7 +353,9 @@ didn't work, and overwrite existing files. Otherwise, ask each time." "v" gnus-uu-mark-over "s" gnus-uu-mark-series "r" gnus-uu-mark-region + "g" gnus-uu-unmark-region "R" gnus-uu-mark-by-regexp + "G" gnus-uu-unmark-by-regexp "t" gnus-uu-mark-thread "T" gnus-uu-unmark-thread "a" gnus-uu-mark-all @@ -646,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)) @@ -1899,8 +1901,10 @@ 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)) diff --git a/lisp/gnus-win.el b/lisp/gnus-win.el index f395d5a..5c4eb52 100644 --- a/lisp/gnus-win.el +++ b/lisp/gnus-win.el @@ -1,7 +1,7 @@ ;;; gnus-win.el --- window configuration functions for Gnus ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/gnus-xmas.el b/lisp/gnus-xmas.el index b32c64f..9d3d239 100644 --- a/lisp/gnus-xmas.el +++ b/lisp/gnus-xmas.el @@ -1,7 +1,7 @@ ;;; gnus-xmas.el --- Gnus functions for XEmacs ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -366,6 +366,10 @@ call it with the value of the `gnus-data' text property." (gnus-xmas-menu-add tree gnus-tree-menu)) +(defun gnus-xmas-draft-menu-add () + (gnus-xmas-menu-add draft + gnus-draft-menu)) + (defun gnus-xmas-server-menu-add () (gnus-xmas-menu-add menu gnus-server-server-menu gnus-server-connections-menu)) @@ -517,7 +521,8 @@ call it with the value of the `gnus-data' text property." (add-hook 'gnus-agent-summary-mode-hook 'gnus-xmas-agent-summary-menu-add) (add-hook 'gnus-agent-group-mode-hook 'gnus-xmas-agent-group-menu-add) (add-hook 'gnus-agent-server-mode-hook 'gnus-xmas-agent-server-menu-add) - + + (add-hook 'gnus-draft-mode-hook 'gnus-xmas-draft-menu-add) (add-hook 'gnus-summary-mode-hook 'gnus-xmas-switch-horizontal-scrollbar-off) (add-hook 'gnus-tree-mode-hook 'gnus-xmas-switch-horizontal-scrollbar-off)) diff --git a/lisp/gnus.el b/lisp/gnus.el index 482420a..de7308d 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA -;; Lars Magne Ingebrigtsen +;; Lars Magne Ingebrigtsen ;; Keywords: news, mail ;; This file is part of GNU Emacs. @@ -250,11 +250,11 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "6.2.3" +(defconst gnus-version-number "6.4.0" "Version number for this version of gnus.") (defconst gnus-version - (format "Semi-gnus %s (based on Gnus 5.6.6; for SEMI 1.3)" + (format "Semi-gnus %s (based on Gnus 5.6.11; for SEMI 1.5)" gnus-version-number) "Version string for this version of gnus.") @@ -708,7 +708,12 @@ All other Gnus path variables are initialized from this variable." (defcustom gnus-directory (or (getenv "SAVEDIR") (nnheader-concat gnus-home-directory "News/")) - "*Directory variable from which all other Gnus file variables are derived." + "*Directory variable from which all other Gnus file variables are derived. + +Note that Gnus is mostly loaded when the `.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 `.gnus.el'. +Set this variable in `.emacs' instead." :group 'gnus-files :type 'directory) @@ -2411,10 +2416,19 @@ also examines the topic parameters." (defun gnus-group-parameter-value (params symbol &optional allow-list) "Return the value of SYMBOL in group PARAMS." - (or (car (memq symbol params)) ; It's either a simple symbol, - (and (or allow-list - (atom (cdr (assq symbol params)))) ; and it's not a local variable - (cdr (assq symbol params))))) ; but a cons. + ;; We only wish to return group parameters (dotted lists) and + ;; not local variables, which may have the same names. + ;; But first we handle single elements... + (or (car (memq symbol params)) + ;; Handle alist. + (let (elem) + (catch 'found + (while (setq elem (pop params)) + (when (and (consp elem) + (eq (car elem) symbol) + (or allow-list + (atom (cdr elem)))) + (throw 'found (cdr elem)))))))) (defun gnus-group-add-parameter (group param) "Add parameter PARAM to GROUP." @@ -2682,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)) diff --git a/lisp/lpath.el b/lisp/lpath.el index ebd9174..b4b458c 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -5,7 +5,7 @@ (or (featurep 'path-util) (load "apel/path-util")) (add-path "apel") -(add-path "mel") +(add-path "flim") (add-path "semi") (defun maybe-fbind (args) diff --git a/lisp/message.el b/lisp/message.el index 742ebde..e61c3e3 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -1,7 +1,7 @@ ;;; message.el --- composing mail and news messages ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; MORIOKA Tomohiko ;; Keywords: mail, news, MIME @@ -227,6 +227,11 @@ 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." @@ -408,7 +413,9 @@ might set this variable to '(\"-f\" \"you@some.where\")." ((boundp 'gnus-select-method) gnus-select-method) (t '(nnspool ""))) - "*Method used to post news." + "*Method used to post news. +Note that when posting from inside Gnus, for instance, this +variable isn't used." :group 'message-news :group 'message-sending ;; This should be the `gnus-select-method' widget, but that might @@ -1002,7 +1009,8 @@ The cdr of ech entry is a function for applying the face to a region.") (defun message-fetch-field (header &optional not-all) "The same as `mail-fetch-field', only remove all newlines." - (let ((value (mail-fetch-field header nil (not not-all)))) + (let* ((inhibit-point-motion-hooks t) + (value (mail-fetch-field header nil (not not-all)))) (when value (nnheader-replace-chars-in-string value ?\n ? )))) @@ -1044,7 +1052,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 "^[Rr][Ee]: *" subject) + (if (string-match message-subject-re-regexp subject) (substring subject (match-end 0)) subject)) @@ -1105,22 +1113,24 @@ Return the number of headers removed." (defun message-news-p () "Say whether the current buffer contains a news message." - (or message-this-is-news - (save-excursion - (save-restriction - (message-narrow-to-headers) - (and (message-fetch-field "newsgroups") - (not (message-fetch-field "posted-to"))))))) + (and (not message-this-is-mail) + (or message-this-is-news + (save-excursion + (save-restriction + (message-narrow-to-headers) + (and (message-fetch-field "newsgroups") + (not (message-fetch-field "posted-to")))))))) (defun message-mail-p () "Say whether the current buffer contains a mail message." - (or message-this-is-mail - (save-excursion - (save-restriction - (message-narrow-to-headers) - (or (message-fetch-field "to") - (message-fetch-field "cc") - (message-fetch-field "bcc")))))) + (and (not message-this-is-news) + (or message-this-is-mail + (save-excursion + (save-restriction + (message-narrow-to-headers) + (or (message-fetch-field "to") + (message-fetch-field "cc") + (message-fetch-field "bcc"))))))) (defun message-next-header () "Go to the beginning of the next header." @@ -1975,7 +1985,7 @@ 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) @@ -3144,7 +3154,7 @@ Headers already prepared in the buffer are not modified." (insert "Original-") (beginning-of-line)) (when (or (message-news-p) - (string-match "^[^@]+@.+\\..+" secure-sender)) + (string-match "@.+\\.." secure-sender)) (insert "Sender: " secure-sender "\n"))))))) (defun message-insert-courtesy-copy () @@ -3646,10 +3656,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 (string-equal - (downcase - (or sender (cadr (std11-extract-address-components from)))) - (downcase (message-make-address))) + (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*"))) diff --git a/lisp/messagexmas.el b/lisp/messagexmas.el index 73f4cd4..7e3edd3 100644 --- a/lisp/messagexmas.el +++ b/lisp/messagexmas.el @@ -1,7 +1,7 @@ ;;; messagexmas.el --- XEmacs extensions to message ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: mail, news ;; This file is part of GNU Emacs. diff --git a/lisp/messcompat.el b/lisp/messcompat.el index d363700..337ab6f 100644 --- a/lisp/messcompat.el +++ b/lisp/messcompat.el @@ -1,7 +1,7 @@ ;;; messcompat.el --- making message mode compatible with mail mode ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: mail, news ;; This file is part of GNU Emacs. diff --git a/lisp/nnagent.el b/lisp/nnagent.el index 76d4390..90667cb 100644 --- a/lisp/nnagent.el +++ b/lisp/nnagent.el @@ -1,7 +1,7 @@ ;;; nnagent.el --- offline backend for Gnus ;; Copyright (C) 1997,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news, mail ;; This file is part of GNU Emacs. @@ -108,6 +108,7 @@ nil) (deffoo nnagent-request-post (&optional server) + (gnus-agent-insert-meta-information 'news gnus-command-method) (gnus-request-accept-article "nndraft:queue")) ;; Use nnml functions for just about everything. diff --git a/lisp/nnbabyl.el b/lisp/nnbabyl.el index 96cf1c5..def1e0c 100644 --- a/lisp/nnbabyl.el +++ b/lisp/nnbabyl.el @@ -1,7 +1,7 @@ ;;; nnbabyl.el --- rmail mbox access for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA ;; Keywords: news, mail @@ -32,7 +32,7 @@ (require 'nnheader) (condition-case nil (require 'rmail) - (t (message "Ignore rmail errors from this file, you don't have rmail"))) + (t (nnheader-message 5 "Ignore rmail errors from this file, you don't have rmail"))) (require 'nnmail) (require 'nnoo) (eval-when-compile (require 'cl)) @@ -645,7 +645,7 @@ (when (buffer-modified-p (current-buffer)) (save-buffer)) (nnmail-save-active nnbabyl-group-alist nnbabyl-active-file) - (message "")))) + (nnheader-message 5 "")))) (provide 'nnbabyl) diff --git a/lisp/nndb.el b/lisp/nndb.el index 032d7c0..0a0f3ef 100644 --- a/lisp/nndb.el +++ b/lisp/nndb.el @@ -195,7 +195,7 @@ article was posted to nndb") (nntp-send-command "^[23].*\n" "X-DELETE" delete-list)) ) - (message "") + (nnheader-message 5 "") (nconc rest articles))) (defun nndb-get-remote-expire-response () @@ -297,7 +297,7 @@ Optional LAST is ignored." (or (string-match "^\\([0-9]+\\)" msg) (error "nndb: %s" msg)) (setq art (substring msg (match-beginning 1) (match-end 1))) - (message "nndb: accepted %s" art) + (nnheader-message 5 "nndb: accepted %s" art) (list art))) (deffoo nndb-request-replace-article (article group buffer) diff --git a/lisp/nndir.el b/lisp/nndir.el index 968637d..d9e5c56 100644 --- a/lisp/nndir.el +++ b/lisp/nndir.el @@ -1,7 +1,7 @@ ;;; nndir.el --- single directory newsgroup access for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/nndoc.el b/lisp/nndoc.el index 6440eb2..96b45d5 100644 --- a/lisp/nndoc.el +++ b/lisp/nndoc.el @@ -1,7 +1,7 @@ ;;; nndoc.el --- single file access for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA ;; Keywords: news diff --git a/lisp/nndraft.el b/lisp/nndraft.el index e410ef5..f7182a5 100644 --- a/lisp/nndraft.el +++ b/lisp/nndraft.el @@ -1,7 +1,7 @@ ;;; nndraft.el --- draft article access for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/nneething.el b/lisp/nneething.el index 828d122..97f5d2f 100644 --- a/lisp/nneething.el +++ b/lisp/nneething.el @@ -1,7 +1,7 @@ ;;; nneething.el --- arbitrary file access for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA ;; Keywords: news, mail @@ -103,11 +103,11 @@ If this variable is nil, no files will be excluded.") (and large (zerop (% count 20)) - (message "nneething: Receiving headers... %d%%" + (nnheader-message 5 "nneething: Receiving headers... %d%%" (/ (* count 100) number)))) (when large - (message "nneething: Receiving headers...done")) + (nnheader-message 5 "nneething: Receiving headers...done")) (nnheader-fold-continuation-lines) 'headers)))) diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el index 56ca0d6..334b2b6 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. ;; Author: Scott Byer -;; Lars Magne Ingebrigtsen +;; Lars Magne Ingebrigtsen ;; Masanobu UMEDA ;; Keywords: mail @@ -101,24 +101,16 @@ time saver for large mailboxes.") (save-excursion (set-buffer nntp-server-buffer) (erase-buffer) - (let (article art-string start stop) + (let (article start stop) (nnfolder-possibly-change-group group server) (when nnfolder-current-buffer (set-buffer nnfolder-current-buffer) (goto-char (point-min)) (if (stringp (car articles)) 'headers - (while articles - (setq article (car articles)) - (setq art-string (nnfolder-article-string article)) + (while (setq article (pop articles)) (set-buffer nnfolder-current-buffer) - (when (or (search-forward art-string nil t) - ;; Don't search the whole file twice! Also, articles - ;; probably have some locality by number, so searching - ;; backwards will be faster. Especially if we're at the - ;; beginning of the buffer :-). -SLB - (search-backward art-string nil t)) - (nnmail-search-unix-mail-delim-backward) + (when (nnfolder-goto-article article) (setq start (point)) (search-forward "\n\n" nil t) (setq stop (1- (point))) @@ -126,8 +118,7 @@ time saver for large mailboxes.") (insert (format "221 %d Article retrieved.\n" article)) (insert-buffer-substring nnfolder-current-buffer start stop) (goto-char (point-max)) - (insert ".\n")) - (setq articles (cdr articles))) + (insert ".\n"))) (set-buffer nntp-server-buffer) (nnheader-fold-continuation-lines) @@ -165,9 +156,8 @@ time saver for large mailboxes.") (save-excursion (set-buffer nnfolder-current-buffer) (goto-char (point-min)) - (when (search-forward (nnfolder-article-string article) nil t) + (when (nnfolder-goto-article article) (let (start stop) - (nnmail-search-unix-mail-delim-backward) (setq start (point)) (forward-line 1) (unless (and (nnmail-search-unix-mail-delim) @@ -309,7 +299,7 @@ time saver for large mailboxes.") (set-buffer nnfolder-current-buffer) (while (and articles is-old) (goto-char (point-min)) - (when (search-forward (nnfolder-article-string (car articles)) nil t) + (when (nnfolder-goto-article (car articles)) (if (setq is-old (nnmail-expired-article-p newsgroup @@ -354,7 +344,7 @@ time saver for large mailboxes.") (nnfolder-possibly-change-group group server) (set-buffer nnfolder-current-buffer) (goto-char (point-min)) - (when (search-forward (nnfolder-article-string article) nil t) + (when (nnfolder-goto-article article) (nnfolder-delete-mail)) (when last (nnfolder-save-buffer) @@ -406,12 +396,15 @@ 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 (search-forward (nnfolder-article-string article) nil t)) + (if (not (nnfolder-goto-article article)) nil - (nnfolder-delete-mail t t) + (nnfolder-delete-mail t) (insert-buffer-substring buffer) (nnfolder-save-buffer) t))) @@ -473,10 +466,9 @@ time saver for large mailboxes.") (goto-char (point-min)) (while (and (search-forward marker nil t) (re-search-forward number nil t)) - (setq activemin (min activemin - (string-to-number (buffer-substring - (match-beginning 0) - (match-end 0)))))) + (let ((newnum (string-to-number (match-string 0)))) + (if (nnmail-within-headers-p) + (setq activemin (min activemin newnum))))) (setcar active activemin)))) (defun nnfolder-article-string (article) @@ -484,19 +476,45 @@ time saver for large mailboxes.") (concat "\n" nnfolder-article-marker (int-to-string article) " ") (concat "\nMessage-ID: " article))) -(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-goto-article (article) + "Place point at the start of the headers of ARTICLE. +ARTICLE can be an article number or a Message-ID. +Returns t if successful, nil otherwise." + (let ((art-string (nnfolder-article-string article)) + start found) + ;; It is likely that we are at or before the delimiter line. + ;; We therefore go to the end of the previous line, and start + ;; searching from there. + (beginning-of-line) + (unless (bobp) + (forward-char -1)) + (setq start (point)) + ;; First search forward. + (while (and (setq found (search-forward art-string nil t)) + (not (nnmail-within-headers-p)))) + ;; If unsuccessful, search backward from where we started, + (unless found + (goto-char start) + (while (and (setq found (search-backward art-string nil t)) + (not (nnmail-within-headers-p))))) + (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-possibly-change-group (group &optional server dont-check) ;; Change servers. @@ -692,8 +710,9 @@ time saver for large mailboxes.") (while (and (search-forward marker nil t) (re-search-forward number nil t)) (let ((newnum (string-to-number (match-string 0)))) - (setq maxid (max maxid newnum)) - (setq minid (min minid newnum)))) + (if (nnmail-within-headers-p) + (setq maxid (max maxid newnum) + minid (min minid newnum))))) (setcar active (max 1 (min minid maxid))) (setcdr active (max maxid (cdr active))) (goto-char (point-min))) @@ -767,7 +786,7 @@ time saver for large mailboxes.") (nnfolder-possibly-change-folder file) (nnfolder-possibly-change-group file) (nnfolder-close-group file)))) - (message ""))) + (nnheader-message 5 ""))) (defun nnfolder-group-pathname (group) "Make pathname for GROUP." diff --git a/lisp/nngateway.el b/lisp/nngateway.el index 6dd6361..909e4f8 100644 --- a/lisp/nngateway.el +++ b/lisp/nngateway.el @@ -1,7 +1,7 @@ ;;; nngateway.el --- posting news via mail gateways ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news, mail ;; This file is part of GNU Emacs. diff --git a/lisp/nnheader.el b/lisp/nnheader.el index dc21b7f..cffbedb 100644 --- a/lisp/nnheader.el +++ b/lisp/nnheader.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1987,88,89,90,93,94,95,96,97,98 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA -;; Lars Magne Ingebrigtsen +;; Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -605,7 +605,7 @@ If FULL, translate everything." trans leaf path len) (if full ;; Do complete translation. - (setq leaf file + (setq leaf (copy-sequence file) path "") ;; We translate -- but only the file name. We leave the directory ;; alone. @@ -636,9 +636,9 @@ The first string in ARGS can be a format string." (defun nnheader-get-report (backend) "Get the most recent report from BACKEND." (condition-case () - (message "%s" (symbol-value (intern (format "%s-status-string" + (nnheader-message 5 "%s" (symbol-value (intern (format "%s-status-string" backend)))) - (error (message "")))) + (error (nnheader-message 5 "")))) (defun nnheader-insert (format &rest args) "Clear the communication buffer and insert FORMAT and ARGS into the buffer. @@ -783,6 +783,7 @@ find-file-hooks, etc. (default-major-mode 'fundamental-mode) (enable-local-variables nil) (after-insert-file-functions nil) + (find-file-hooks nil) (coding-system-for-read nnheader-file-coding-system)) (apply 'find-file-noselect args))) diff --git a/lisp/nnheaderxm.el b/lisp/nnheaderxm.el index 869ed69..f788042 100644 --- a/lisp/nnheaderxm.el +++ b/lisp/nnheaderxm.el @@ -1,7 +1,7 @@ ;;; nnheaderxm.el --- making Gnus backends work under XEmacs ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/nnkiboze.el b/lisp/nnkiboze.el index 028d9e4..0df788d 100644 --- a/lisp/nnkiboze.el +++ b/lisp/nnkiboze.el @@ -1,7 +1,7 @@ ;;; nnkiboze.el --- select virtual news access for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -182,7 +182,7 @@ ;;;###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) diff --git a/lisp/nnlistserv.el b/lisp/nnlistserv.el index 684595c..bb2b4a9 100644 --- a/lisp/nnlistserv.el +++ b/lisp/nnlistserv.el @@ -1,7 +1,7 @@ ;;; nnlistserv.el --- retrieving articles via web mailing list archives ;; Copyright (C) 1997,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news, mail ;; This file is part of GNU Emacs. @@ -111,7 +111,7 @@ nil 0 0 url)) map) (nnweb-set-hashtb (cadar map) (car map)) - (message "%s %s %s" (cdr active) (point) pages) + (nnheader-message 5 "%s %s %s" (cdr active) (point) pages) )))) ;; Return the articles in the right order. (setq nnweb-articles diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 4e79fc9..516e8b1 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -1,7 +1,7 @@ ;;; nnmail.el --- mail support functions for the Gnus mail backends ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news, mail ;; This file is part of GNU Emacs. @@ -218,7 +218,7 @@ several files - eg. \".spool[0-9]*\"." :type 'function) (defcustom nnmail-crosspost-link-function - (if (string-match "windows-nt\\|emx" (format "%s" system-type)) + (if (string-match "windows-nt\\|emx" (symbol-name 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 (round (/ seconds rest)) + (ms (condition-case nil (floor (/ seconds rest)) (range-error (expt 2 16))))) (list ms (condition-case nil (round (- seconds (* ms rest))) (range-error (expt 2 16)))))) @@ -591,12 +591,12 @@ parameter. It should return nil, `warn' or `delete'." (nnmail-read-passwd (format "Password for %s: " (substring inbox (+ popmail 3)))))) - (message "Getting mail from the post office...")) + (nnheader-message 5 "Getting mail from the post office...")) (when (or (and (file-exists-p tofile) (/= 0 (nnheader-file-size tofile))) (and (file-exists-p inbox) (/= 0 (nnheader-file-size inbox)))) - (message "Getting mail from %s..." inbox))) + (nnheader-message 5 "Getting mail from %s..." inbox))) ;; Set TOFILE if have not already done so, and ;; rename or copy the file INBOX to TOFILE if and as appropriate. (cond @@ -667,7 +667,7 @@ parameter. It should return nil, `warn' or `delete'." (buffer-string) result)) (error "%s" (buffer-string))) (setq tofile nil))))))) - (message "Getting mail from %s...done" inbox) + (nnheader-message 5 "Getting mail from %s...done" inbox) (and errors (buffer-name errors) (kill-buffer errors)) @@ -717,10 +717,12 @@ 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 "^" (expand-file-name - (file-name-as-directory - nnmail-procmail-directory)) - "\\([^/]*\\)" nnmail-procmail-suffix "$") + (if (string-match (concat "^" (regexp-quote + (expand-file-name + (file-name-as-directory + nnmail-procmail-directory))) + "\\([^/]*\\)" + (regexp-quote nnmail-procmail-suffix) "$") (expand-file-name file)) (let ((procmail-group (substring (expand-file-name file) (match-beginning 1) @@ -875,7 +877,7 @@ is a spool. If not using procmail, return GROUP." (goto-char (match-beginning 0)))) ;; Possibly wrong format? (progn - (pop-to-buffer (find-file-noselect nnmail-current-spool)) + (pop-to-buffer (nnheader-find-file-noselect nnmail-current-spool)) (error "Error, unknown mail format! (Possibly corrupted.)")) ;; Carry on until the bitter end. (while (not (eobp)) @@ -962,7 +964,7 @@ is a spool. If not using procmail, return GROUP." (forward-line 1))) ;; Possibly wrong format? (progn - (pop-to-buffer (find-file-noselect nnmail-current-spool)) + (pop-to-buffer (nnheader-find-file-noselect nnmail-current-spool)) (error "Error, unknown mail format! (Possibly corrupted.)")) ;; Carry on until the bitter end. (while (not (eobp)) @@ -1079,7 +1081,7 @@ FUNC will be called with the group name to determine the article number." (or (funcall nnmail-split-methods) '("bogus")) (error - (message + (nnheader-message 5 "Error in `nnmail-split-methods'; using `bogus' mail group") (sit-for 1) '("bogus"))))) @@ -1769,6 +1771,14 @@ If ARGS, PROMPT is used as an argument to `format'." (substring inbox (match-end (string-match "^po:" inbox))))) (pop3-movemail crashbox))) +(defun nnmail-within-headers-p () + "Check to see if point is within the headers of a unix mail message. +Doesn't change point." + (let ((pos (point))) + (save-excursion + (and (nnmail-search-unix-mail-delim-backward) + (not (search-forward "\n\n" pos t)))))) + (run-hooks 'nnmail-load-hook) (provide 'nnmail) diff --git a/lisp/nnmbox.el b/lisp/nnmbox.el index 2661e7a..1f05d1d 100644 --- a/lisp/nnmbox.el +++ b/lisp/nnmbox.el @@ -1,7 +1,7 @@ ;;; nnmbox.el --- mail mbox access for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA ;; Keywords: news, mail diff --git a/lisp/nnmh.el b/lisp/nnmh.el index ab9716c..c359e95 100644 --- a/lisp/nnmh.el +++ b/lisp/nnmh.el @@ -1,7 +1,7 @@ ;;; nnmh.el --- mhspool access for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA ;; Keywords: news, mail @@ -104,11 +104,11 @@ (and large (zerop (% count 20)) - (message "nnmh: Receiving headers... %d%%" + (nnheader-message 5 "nnmh: Receiving headers... %d%%" (/ (* count 100) number)))) (when large - (message "nnmh: Receiving headers...done")) + (nnheader-message 5 "nnmh: Receiving headers...done")) (nnheader-fold-continuation-lines) 'headers)))) @@ -270,7 +270,7 @@ (push (car articles) rest)))) (push (car articles) rest))) (setq articles (cdr articles))) - (message "") + (nnheader-message 5 "") (nconc rest articles))) (deffoo nnmh-close-group (group &optional server) diff --git a/lisp/nnml.el b/lisp/nnml.el index 4ae2cca..e7a1df9 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -1,7 +1,7 @@ ;;; nnml.el --- mail spool access for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA ;; Keywords: news, mail diff --git a/lisp/nnoo.el b/lisp/nnoo.el index 37ac4bb..9c27786 100644 --- a/lisp/nnoo.el +++ b/lisp/nnoo.el @@ -1,7 +1,7 @@ ;;; nnoo.el --- OO Gnus Backends ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/nnsoup.el b/lisp/nnsoup.el index 6eb1a02..e764150 100644 --- a/lisp/nnsoup.el +++ b/lisp/nnsoup.el @@ -1,7 +1,7 @@ ;;; nnsoup.el --- SOUP access for Gnus ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA ;; Keywords: news, mail @@ -417,7 +417,7 @@ backend for the messages.") (while (setq area (pop areas)) ;; Change the name to the permanent name and move the files. (setq cur-prefix (nnsoup-next-prefix)) - (message "Incorporating file %s..." cur-prefix) + (nnheader-message 5 "Incorporating file %s..." cur-prefix) (when (file-exists-p (setq file (concat nnsoup-tmp-directory (gnus-soup-area-prefix area) ".IDX"))) @@ -548,13 +548,13 @@ backend for the messages.") nnsoup-packet-directory t nnsoup-packet-regexp)) packet) (while (setq packet (pop packets)) - (message "nnsoup: unpacking %s..." packet) + (nnheader-message 5 "nnsoup: unpacking %s..." packet) (if (not (gnus-soup-unpack-packet nnsoup-tmp-directory nnsoup-unpacker packet)) - (message "Couldn't unpack %s" packet) + (nnheader-message 5 "Couldn't unpack %s" packet) (delete-file packet) (nnsoup-read-areas) - (message "Unpacking...done"))))) + (nnheader-message 5 "Unpacking...done"))))) (defun nnsoup-narrow-to-article (article &optional area head) (let* ((area (or area (nnsoup-article-to-area article nnsoup-current-group))) @@ -618,7 +618,7 @@ backend for the messages.") "Make an outbound package of SOUP replies." (interactive) (unless (file-exists-p nnsoup-replies-directory) - (message "No such directory: %s" nnsoup-replies-directory)) + (nnheader-message 5 "No such directory: %s" nnsoup-replies-directory)) ;; Write all data buffers. (gnus-soup-save-areas) ;; Write the active file. @@ -716,7 +716,7 @@ backend for the messages.") (incf num)) (when nnsoup-always-save (save-buffer))) - (message "Stored %d messages" num))) + (nnheader-message 5 "Stored %d messages" num))) (nnsoup-write-replies) (kill-buffer tembuf)))))) @@ -754,7 +754,7 @@ backend for the messages.") (set-buffer (get-buffer-create " *nnsoup work*")) (buffer-disable-undo (current-buffer)) (while files - (message "Doing %s..." (car files)) + (nnheader-message 5 "Doing %s..." (car files)) (erase-buffer) (nnheader-insert-file-contents (car files)) (goto-char (point-min)) @@ -779,7 +779,7 @@ backend for the messages.") (vector ident group "ncm" "" lines)))) (setcdr (cadr elem) (+ min lines))) (setq files (cdr files))) - (message "") + (nnheader-message 5 "") (setq nnsoup-group-alist active) (nnsoup-write-active-file t))) diff --git a/lisp/nnspool.el b/lisp/nnspool.el index 50fc4b6..6914f78 100644 --- a/lisp/nnspool.el +++ b/lisp/nnspool.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1988,89,90,93,94,95,96,97,98 Free Software Foundation, Inc. ;; Author: Masanobu UMEDA -;; Lars Magne Ingebrigtsen +;; Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -144,11 +144,11 @@ there.") (and do-message (zerop (% (incf count) 20)) - (message "nnspool: Receiving headers... %d%%" + (nnheader-message 5 "nnspool: Receiving headers... %d%%" (/ (* count 100) number)))) (when do-message - (message "nnspool: Receiving headers...done")) + (nnheader-message 5 "nnspool: Receiving headers...done")) ;; Fold continuation lines. (nnheader-fold-continuation-lines) @@ -343,7 +343,7 @@ there.") (while (re-search-forward "[ \t\n]+" nil t) (replace-match " " t t)) (nnheader-report 'nnspool "%s" (buffer-string)) - (message "nnspool: %s" nnspool-status-string) + (nnheader-message 5 "nnspool: %s" nnspool-status-string) (ding) (run-hooks 'nnspool-rejected-article-hook)))) diff --git a/lisp/nntp.el b/lisp/nntp.el index fa99b1e..1d8cfd1 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -1,7 +1,7 @@ ;;; nntp.el --- nntp access for Gnus ;;; Copyright (C) 1987-90,92-97 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. @@ -144,10 +144,6 @@ by one.") If the gap between two consecutive articles is bigger than this variable, split the XOVER request into two requests.") -(defvoo nntp-connection-timeout nil - "*Number of seconds to wait before an nntp connection times out. -If this variable is nil, which is the default, no timers are set.") - (defvoo nntp-prepare-server-hook nil "*Hook run before a server is opened. If can be used to set up a server remotely, for instance. Say you @@ -278,7 +274,7 @@ server there that you can connect to. See also ;; Nix out "nntp reading...." message. (when nntp-have-messaged (setq nntp-have-messaged nil) - (message "")) + (nnheader-message 5 "")) t)))) (unless discard (erase-buffer))))) @@ -676,15 +672,16 @@ server there that you can connect to. See also (deffoo nntp-close-server (&optional server) (nntp-possibly-change-group nil server t) - (let (process) - (while (setq process (car (pop nntp-connection-alist))) + (let ((process (nntp-find-connection nntp-server-buffer))) + (while process (when (memq (process-status process) '(open run)) (ignore-errors (nntp-send-string process "QUIT") (unless (eq nntp-open-connection-function 'nntp-open-network-stream) (sleep-for 1)))) (when (buffer-name (process-buffer process)) - (kill-buffer (process-buffer process)))) + (kill-buffer (process-buffer process))) + (setq process (car (pop nntp-connection-alist)))) (nnoo-close-server 'nntp))) (deffoo nntp-request-close () @@ -714,16 +711,11 @@ server there that you can connect to. See also (nntp-possibly-change-group nil server) (save-excursion (set-buffer nntp-server-buffer) - (let* ((date (timezone-parse-date date)) - (time-string - (format "%s%02d%02d %s%s%s" - (substring (aref date 0) 2) (string-to-int (aref date 1)) - (string-to-int (aref date 2)) (substring (aref date 3) 0 2) - (substring - (aref date 3) 3 5) (substring (aref date 3) 6 8)))) - (prog1 - (nntp-send-command "^\\.\r?\n" "NEWGROUPS" time-string) - (nntp-decode-text))))) + (prog1 + (nntp-send-command + "^\\.\r?\n" "NEWGROUPS" + (format-time-string "%y%m%d %H%M%S" (nnmail-date-to-time date))) + (nntp-decode-text)))) (deffoo nntp-request-post (&optional server) (nntp-possibly-change-group nil server) @@ -985,8 +977,7 @@ password contained in '~/.nntp-authinfo'." (while (not (eobp)) (end-of-line) (delete-char 1) - (insert nntp-end-of-line) - (forward-line 1)) + (insert nntp-end-of-line)) (forward-char -1) (unless (eq (char-after (1- (point))) ?\r) (insert "\r")))) diff --git a/lisp/nnvirtual.el b/lisp/nnvirtual.el index 67fa669..df61450 100644 --- a/lisp/nnvirtual.el +++ b/lisp/nnvirtual.el @@ -2,7 +2,7 @@ ;; Copyright (C) 1994,95,96,97,98 Free Software Foundation, Inc. ;; Author: David Moore -;; Lars Magne Ingebrigtsen +;; Lars Magne Ingebrigtsen ;; Masanobu UMEDA ;; Keywords: news diff --git a/lisp/nnweb.el b/lisp/nnweb.el index cbb04ed..9c4251d 100644 --- a/lisp/nnweb.el +++ b/lisp/nnweb.el @@ -1,7 +1,7 @@ ;;; nnweb.el --- retrieving articles via web search engines ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news ;; This file is part of GNU Emacs. diff --git a/lisp/pop3-fma.el b/lisp/pop3-fma.el index 280062d..2a7b20b 100644 --- a/lisp/pop3-fma.el +++ b/lisp/pop3-fma.el @@ -1,14 +1,14 @@ ;; pop3-fma.el.el --- POP3 for Multiple Account for Gnus. ;; Copyright (C) 1996,97,98 Free Software Foundation, Inc. , Tatsuya Ichikawa ;; Author: Tatsuya Ichikawa -;; Version: 0.12 +;; Version: 0.11 ;; Keywords: mail , gnus , pop3 ;; ;; SPECIAL THANKS ;; Keiichi Suzuki ;; Katsumi Yamaoka ;; -;; This file is not part of GNU Emacs. +;; 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 @@ -73,21 +73,21 @@ :group 'mail :group 'news) -(defconst pop3-fma-version-number "0.12") +(defconst pop3-fma-version-number "0.11") (defconst pop3-fma-codename -;;; "Feel the wind" ; 0.10 -;; "My home town" ; 0.11 - "On the road" ; 0.12 -;; "Before generation of Love" ; 0.xx -;; "Lonely Christmas eve" ; 0.xx -;; "Rock'n Roll city" ; 0.xx -;; "Money" ; 0.xx -;; "Midnight blue train" ; 0.xx -;; "Still 19" ; 0.xx -;; "J boy" ; 0.xx -;; "Blood line" ; 0.xx -;; "Star ring" ; 0.xx -;; "Goodbye Game" ; 0.xx +; "Feel the wind" ; 0.10 + "My home town" ; 0.11 +; "On the road" ; 0.xx +; "Before generation of Love" ; 0.xx +; "Lonely Christmas eve" ; 0.xx +; "Rock'n Roll city" ; 0.xx +; "Money" ; 0.xx +; "Midnight blue train" ; 0.xx +; "Still 19" ; 0.xx +; "J boy" ; 0.xx +; "Blood line" ; 0.xx +; "Star ring" ; 0.xx +; "Goodbye Game" ; 0.xx ) (defconst pop3-fma-version (format "Multiple POP3 account utiliy for Gnus v%s - \"%s\"" pop3-fma-version-number @@ -128,7 +128,6 @@ Please do not set this valiable non-nil if you do not use Meadow.") ;; Temporary variable (defvar hdr nil) (defvar passwd nil) -(defvar str nil) (defvar pop3-fma-movemail-options pop3-fma-movemail-arguments) (defun pop3-fma-init-hooks () @@ -251,8 +250,7 @@ Argument PROMPT ." ;; ;; (defun pop3-fma-message-add-header () - (if (message-mail-p) - (pop3-fma-add-custom-header "X-Ya-Pop3:" pop3-fma-version))) + (pop3-fma-add-custom-header "X-Ya-Pop3:" pop3-fma-version)) ;; ;; Add your custom header. @@ -277,3 +275,6 @@ Argument PROMPT ." (provide 'pop3-fma) ;; ;; pop3-fma.el ends here. + +(provide 'pop3-fma) +;;; pop3-fma.el ends here diff --git a/lisp/score-mode.el b/lisp/score-mode.el index f488947..24c31f6 100644 --- a/lisp/score-mode.el +++ b/lisp/score-mode.el @@ -1,7 +1,7 @@ ;;; score-mode.el --- mode for editing Gnus score files ;; Copyright (C) 1996 Free Software Foundation, Inc. -;; Author: Lars Magne Ingebrigtsen +;; Author: Lars Magne Ingebrigtsen ;; Keywords: news, mail ;; This file is part of GNU Emacs. @@ -46,7 +46,7 @@ (define-key gnus-score-mode-map "\C-c\C-p" 'gnus-score-pretty-print)) (defvar score-mode-syntax-table - (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table))) + (let ((table (copy-syntax-table lisp-mode-syntax-table))) (modify-syntax-entry ?| "w" table) table) "Syntax table used in score-mode buffers.") diff --git a/lisp/smiley.el b/lisp/smiley.el index f82ac2d..e6c13f7 100644 --- a/lisp/smiley.el +++ b/lisp/smiley.el @@ -192,7 +192,7 @@ above them." (smiley-buffer (current-buffer) beg end)) (defun smiley-toggle-extent (event) - "Toggle smiley at given point" + "Toggle smiley at given point." (interactive "e") (let* ((ant (event-glyph-extent event)) (pt (event-closest-point event)) @@ -303,7 +303,7 @@ Mouse button3 - menu")) (defvar gnus-article-buffer) ;;;###autoload (defun gnus-smiley-display () - "Display \"smileys\" as small graphical icons." + "Display \"smileys\" as small graphical icons." (interactive) (save-excursion (set-buffer gnus-article-buffer) diff --git a/texi/ChangeLog b/texi/ChangeLog index b92670f..1e7d48d 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,18 @@ +Wed Jun 3 03:30:47 1998 Lars Magne Ingebrigtsen + + * message.texi (Message Headers): Addition. + + * gnus.texi (Compatibility): Addition. + +Tue May 19 02:44:31 1998 Mike Pullen + + * gnus.texi.orig: Typo fixes. + +Wed Apr 29 21:52:28 1998 Lars Magne Ingebrigtsen + + * gnus.texi (Key Index): Untabified. + (Group Parameters): Fix. + Sun Apr 26 15:32:45 1998 Lars Magne Ingebrigtsen * gnus.texi (Summary Post Commands): Ref to Message. diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index f3f6a16..d9a9cda 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus-ja -@settitle Semi-gnus 6.1.2 Manual +@settitle Semi-gnus 6.3.2 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -342,7 +342,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Semi-gnus 6.1.2 Manual +@title Semi-gnus 6.3.2 Manual @author by Lars Magne Ingebrigtsen @author by members of Semi-gnus mailing-list @@ -396,7 +396,7 @@ Semi-gnus $B$O!"Bg$-$J3($,F~$C$F$$$?$j$5$^$6$^$J7A<0$rMQ$$$?$j$7$F$$$k$A$g$C(B $B$J8@8l7w$r:9JL$7$^$;$s!#$"$"!"%/%j%s%4%s$NJ}$O(B Unicode Next Generation$B$r(B $B$*BT$A$/$@$5$$!#(B -$B$3$N@bL@=q$O(B Semi-gnus 6.1.2 $B$KBP1~$7$^$9!#(B +$B$3$N@bL@=q$O(B Semi-gnus 6.3.2 $B$KBP1~$7$^$9!#(B @end ifinfo @@ -457,11 +457,11 @@ Emacs $B$,J8>O$rJT=8$9$k?M$KNO$rM?$($k$h$&$K!"(Bgnus $B$O%K%e!<%9$rFI$`?M$KNO gnus-other-frame} $B$r;H$&$3$H$,$G$-$^$9!#(B $B3+;O;~$K2?$+$,$&$^$/$$$+$J$$$H$-$O(B @file{~/.gnus} $B%U%!%$%k$NCf$GJQ?t$r$$(B -$B$/$D$+$$$8$/$j$^$o$5$J$1$l$P$J$i$J$$$G$7$g$&!#$3$N%U%!%$%k$O(B +$B$/$D$+$$$8$/$j$^$o$5$J$1$l$P$J$i$J$$$G$7$g$&!#$3$N%U%!%$%k$O(B @file{~/.emacs} $B$H;w$F$$$^$9$,!"$3$l$O(B gnus $B$,5/F0$9$k$H$-$KFI$_9~$^$l$^(B $B$9!#(B -$B$3$N@bL@=q$G$h$/$o$+$i$J$$MQ8l$,$G$F$-$?$H$-$O!"MQ8l$N9`(B +$B$3$N@bL@=q$G$h$/$o$+$i$J$$MQ8l$,$G$F$-$?$H$-$O!"MQ8l$N9`(B (@pxref{Terminology}) $B$r;2>H$7$F$/$@$5$$!#(B @menu @@ -514,18 +514,18 @@ gnus-other-frame} $B$r;H$&$3$H$,$G$-$^$9!#(B @vindex gnus-nntpserver-file @cindex NNTPSERVER @cindex @sc{nntp} server -$B$b$7$3$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"(Bgnus $B$O(B @code{NNTPSERVER} $B4D6-JQ?t$rFI(B -$B$_$K$$$-$^$9!#$b$7$=$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"(Bgnus $B$O(B +$B$b$7$3$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"(Bgnus $B$O(B @code{NNTPSERVER} $B4D6-JQ?t$r(B +$BFI$_$K$$$-$^$9!#$b$7$=$NJQ?t$,@_Dj$5$l$F$$$J$1$l$P!"(Bgnus $B$O(B @code{gnus-nntpserver-file}$B!J@_Dj$5$l$F$$$J$$>l9g$O(B -@file{/etc/nntpserver}$B!K$,$3$N7o$K4X$7$F2?$+$r8@$C$F$$$J$$$+$rD4$Y$^$9!#$b(B -$B$7$=$l$b<:GT$7$?$J$i!"(Bgnus $B$O(B Emacs $B$,F0:n$7$F$$$k%5!<%P!<$r(B @sc{nntp} $B%5!<(B -$B%P!<$H$7$F;H$*$&$H$7$^$9!#?oJ,$JEv$F?dNL$G$9$1$I$M!#(B +@file{/etc/nntpserver}$B!K$,$3$N7o$K4X$7$F2?$+$r8@$C$F$$$J$$$+$rD4$Y$^$9!#(B +$B$b$7$=$l$b<:GT$7$?$J$i!"(Bgnus$B$O(B Emacs $B$,F0:n$7$F$$$k%5!<%P!<$r(B @sc{nntp} +$B%5!<%P!<$H$7$F;H$*$&$H$7$^$9!#?oJ,$JEv$F?dNL$G$9$1$I$M!#(B @vindex gnus-nntp-server @code{gnus-nntp-server} $B$,@_Dj$5$l$F$$$k$H!"$3$NJQ?t$O(B @code{gnus-select-method} $B$r>e=q$-$7$^$9!#$G$9$+$i!"(B -@code{gnus-nntp-server} $B$O(B @code{nil} $B$K@_Dj$9$k$Y$-$G!"I8=`@_Dj$G$b$=$N$h(B -$B$&$K$J$C$F$$$^$9!#(B +@code{gnus-nntp-server} $B$O(B @code{nil} $B$K@_Dj$9$k$Y$-$G!"I8=`@_Dj$G$b$=$N(B +$B$h$&$K$J$C$F$$$^$9!#(B @vindex gnus-secondary-servers Gnus $B$K(B @sc{nntp} $B%5!<%P!<$NL>A0$NF~NO$rBPOCE*$K;XDj$9$k$3$H$b$G$-$^$9!#(B @@ -568,9 +568,9 @@ Gnus $B$K(B @sc{nntp} $B%5!<%P!<$NL>A0$NF~NO$rBPOCE*$K;XDj$9$k$3$H$b$G$-$^$9! $BFI$5$l$F$$$k$Y$-$+$r7hDj$7$h$&$H$7$^$9!#(B @vindex gnus-default-subscribed-newsgroups -$BJQ?t(B @code{gnus-default-subscribed-newsgroups} $B$,@_Dj$5$l$F$$$k$H!"(Bgnus $B$O(B -$B$=$N%j%9%H$NCf$N%0%k!<%W$r9XFI$7!";D$j$r:o=|$7$^$9!#%7%9%F%`4IM}/$7$NG$0U$N%0%k!<%W$r9XFI$7$^$9!JNc!'(B @samp{*.newusers}$B!K!#!J(B@dfn{$BG$0U(B}$B$O$3$3$G$O!"(B@dfn{Lars $B$5$s$,FI$`$Y$-$G(B @@ -631,12 +631,12 @@ Gnus $B$O!"?.Mj$G$-$k%W%m%0%i%`$N0l$D$H$7$F!"%5!<%P!<$H@\B3$G$-$J$$$H$-$O(B $B$H$K$+$/!"(B@kbd{M-x gnus}$B!J$b$7$/$O!"IaCJ$d$C$F$$$kJ}K!!K$G(B gnus $B$rIaDL$K(B $B5/F0$7$^$9!#$=$N8e$N%9%l!<%V(B gnus $B$O$=$l$>$l(B @kbd{M-x gnus-slave} $B$G5/F0(B -$B$7$^$9!#%9%l!<%V$OIaDL$N(B @file{.newsrc} $B$OJ]B8$7$^$;$s$,!"Be$o$j$K(B@dfn -{$B%9%l!<%V%U%!%$%k(B} $B$K%9%l!<%V$N5/F0Cf$K$I$N$h$&$J%0%k!<%W$,FI$^$l$?$+$H(B -$B$$$&>pJs$@$1$rJ]B8$7$^$9!#%^%9%?!<(B gnus $B$,5/F0$9$k$H$-!"$=$l$O$=$l$i$N%9(B -$B%l!<%V%U%!%$%k$rFI$_9~$_!J$=$7$F>C$7!K!"$=$l$i$+$i$9$Y$F$N>pJs$rpJs$@$1$rJ]B8$7$^$9!#%^%9%?!<(B gnus $B$,5/F0$9$k$H$-!"$=$l$O$=$l$i(B +$B$N%9%l!<%V%U%!%$%k$rFI$_9~$_!J$=$7$F>C$7!K!"$=$l$i$+$i$9$Y$F$N>pJs$rpJs$OIaDL$N!JNc$($P!"%^%9%?!<$N!K%U%!%$(B $B%k$h$j$bM%@h$5$l$^$9!#(B @@ -719,7 +719,7 @@ Gnus $B$O!"IaDL$O%0%k!<%W$,?7$7$$$+$I$&$+$r!"9XFI$7$F$$$k%0%k!<%W$H:o=|$5$l(B @vindex gnus-subscribe-newsgroup-method $B?7$7$$%0%k!<%W$KAx6x$7$?$H$-$K(B gnus $B$,2?$r$9$k$+$O!"JQ?t(B -@code{gnus-subscribe-newsgroup-method} $B$K$h$C$F7hDj$5$l$^$9!#(B +@code{gnus-subscribe-nesgroup-method} $B$K$h$C$F7hDj$5$l$^$9!#(B $B$3$NJQ?t$O4X?t$r4^$s$G$$$kI,MW$,$"$j$^$9!#$3$N4X?t$O?7$7$$%0%k!<%W$NL>A0(B $B$rM#0l$N0z?t$H$7$F8F$P$l$^$9!#(B @@ -754,7 +754,7 @@ Gnus $B$O!"IaDL$O%0%k!<%W$,?7$7$$$+$I$&$+$r!"9XFI$7$F$$$k%0%k!<%W$H:o=|$5$l(B @item gnus-subscribe-interactively @vindex gnus-subscribe-interactively -$B?7$7$$%0%k!<%W$rBPOCE*$K9XFI$7$^$9!#$3$l$O(B gnus $B$,(B@strong{$BA4$F(B}$B$N%0%k!<(B +$B?7$7$$%0%k!<%W$rBPOCE*$K9XFI$7$^$9!#$3$l$O(B gnus $B$,(B @strong{$BA4$F(B} $B$N%0%k!<(B $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(B $B$^$9!#(B @@ -770,11 +770,10 @@ Gnus $B$O!"IaDL$O%0%k!<%W$,?7$7$$$+$I$&$+$r!"9XFI$7$F$$$k%0%k!<%W$H:o=|$5$l(B @code{nil} $B$G$J$$$H!"(Bgnus $B$O3,AXE*$JJ}K!$G?7$7$$%0%k!<%W$r9XFI$9$k$+$I$&$+(B $B$r?R$M$^$9!#(Bgnus $B$O$=$l$>$l$N3,AX$G!"$=$l$r2<$K9_$j$k$+$I$&$+$r?R$M$^$9!#(B -$BNI$/$"$k4V0c$$$O!"?tCJMnA0$NJQ?t(B -(@code{gnus-subscribe-newsgroup-method}) $B$r(B -@code{gnus-subscribe-hierarchical-interactive} $B$K@_Dj$9$k$3$H$G$9!#$3$l$O(B -$B8m$j$G$9!#$3$l$OF0:n$7$^$;$s!#$3$l$O$*$a$G$?$$?M$N$9$k$3$H$G$9!#$G$9$+$i!"(B -$B@dBP$K$7$J$$$G$/$@$5$$!#(B +$BNI$/$"$k4V0c$$$O!"?tCJMnA0$NJQ?t(B (@code{gnus-subscribe-newsgroup-method} +) $B$r(B @code{gnus-subscribe-herarchical-interactive} $B$K@_Dj$9$k$3$H$G$9!#(B +$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(B +$B$9$+$i!"@dBP$K$7$J$$$G$/$@$5$$!#(B @node Filtering New Groups @@ -799,12 +798,12 @@ options -n !alt.all !rec.all sci.all @vindex gnus-options-not-subscribe @vindex gnus-options-subscribe -$B%U%!%$%k(B @file{.newsrc} $B$r$$$8$j$?$/$J$$>l9g$O!"(B -@code{gnus-options-subscribe} $B$H(B @code{gnus-options-not-subscribe} $B$N#2$D(B -$B$NJQ?t$@$1$r@_Dj$9$k$3$H$b$G$-$^$9!#$3$N#2$D$NJQ?t$O%U%!%$%k(B -@file{.newsrc} $B$N(B @samp{options -n} $B9T$HA4$/F1$8$3$H$r$7$^$9!#$I$A$i$NJQ?t(B -$B$b@55,I=8=$G!"?7$7$$%0%k!<%W$OA0r7o$K9XFI$5$l!"8el9g$O!"(B +@code{gnus-options-subscribe} $B$H(B @code{gnus-options-not-subscribe} $B$N#2(B +$B$D$NJQ?t$@$1$r@_Dj$9$k$3$H$b$G$-$^$9!#$3$N#2$D$NJQ?t$O%U%!%$%k(B +@file{.newrc} $B$N(B @samp{optinos -n} $B9T$HA4$/F1$8$3$H$r$7$^$9!#$I$A$i$NJQ(B +$B?t$b@55,I=8=$G!"?7$7$$%0%k!<%W$OA0r7o$K9XFI$5$l!"8eJ}$N%5!<%P!<$K@\B3$G$-$k$J$i!"(Bgnus $B$O$"$J$?$,FI$s$@5-;vA4$F$KBP$7$F(B -$B%X%C%@!<(B (headers) $B$rMW5a$7$F!"(B@code{Message-ID} $B$rHf3S$7!"FI$s$@5-;v$H5-(B -$B;v$N0u$r?7$7$/5-O?$7$^$9!#%3%^%s%I(B @kbd{M-x gnus-change-server} $B$O$3$l$r$9(B -$B$Y$F$N4pK\%0%k!<%W$KBP$7$F9T$$$^$9!#$=$N%3%^%s%I$O0\F0@h$NJ}K!$NF~NO$rB%$7(B -$B$^$9!#(B +$B$b$7N>J}$N%5!<%P!<$K@\B3$G$-$k$J$i!"(Bgnus$B$O$"$J$?$,FI$s$@5-;vA4$F$KBP$7$F(B +$B%X%C%@!<(B (headers) $B$rMW5a$7$F!"(B@code{Message-ID} $B$rHf3S$7!"FI$s$@5-;v$H(B +$B5-;v$N0u$r?7$7$/5-O?$7$^$9!#%3%^%s%I(B @kbd{M-x gnus-change-server} $B$O$3$l(B +$B$r$9$Y$F$N4pK\%0%k!<%W$KBP$7$F9T$$$^$9!#$=$N%3%^%s%I$O0\F0@h$NJ}K!$NF~NO(B +$B$rB%$7$^$9!#(B @kindex M-x gnus-group-move-group-to-server @findex gnus-group-move-group-to-server -$B8D!9$N%0%k!<%W$rL?Na(B @kbd{M-x gnus-group-move-group-to-server} $B$G0\F0$9$k(B -$B$3$H$b$G$-$^$9!#$3$l$O$"$k%5!<%P!<$+$iJL$N%5!<%P!<$X0l$D$N!J30$N!K%0%k!<%W(B -$B$r0\F0$7$?$$$H$-$KLr$KN)$A$^$9!#(B +$B8D!9$N%0%k!<%W$rL?Na(B @kbd{M-x gnus-group-move-group-to-server} $B$G0\(B +$BF0$9$k$3$H$b$G$-$^$9!#$3$l$O$"$k%5!<%P!<$+$iJL$N%5!<%P!<$X0l$D$N(B ($B30$N(B) +$B%0%k!<%W$r0\F0$7$?$$$H$-$KLr$KN)$A$^$9!#(B @kindex M-x gnus-group-clear-data-on-native-groups @findex gnus-group-clear-data-on-native-groups -$B8E$$%5!<%P!<$H?7$7$$%5!<%P!<$NN>J}$K@\B3$9$k$3$H$,$G$-$J$$$H$-!"0u$HFI$s$@(B -$BHO0O$O$9$Y$F0UL#$,L5$/$J$j$^$9!#$=$N$h$&$J$H$-$O!"L?Na(B @kbd{M-x +$B8E$$%5!<%P!<$H?7$7$$%5!<%P!<$NN>J}$K@\B3$9$k$3$H$,$G$-$J$$$H$-!"0u$HFI$s(B +$B$@HO0O$O$9$Y$F0UL#$,L5$/$J$j$^$9!#$=$N$h$&$J$H$-$O!"%3%^%s%I(B @kbd{M-x gnus-group-clear-data-on-native-groups} $B$r;H$C$F!"4pK\%0%k!<%W$K4X$9$k%G!<(B -$B%?$r$9$Y$F>C5n$9$k$3$H$,$G$-$^$9!#$3$NL?Na$OCm0U$7$F;H$C$F$/$@$5$$!#(B +$B%?$r$9$Y$F>C5n$9$k$3$H$,$G$-$^$9!#$3$N%3%^%s%I$OCm0U$7$F;H$C$F$/$@$5$$!#(B @node Startup Files @@ -875,22 +875,23 @@ gnus-group-clear-data-on-native-groups} $B$r;H$C$F!"4pK\%0%k!<%W$K4X$9$k%G!<(B @cindex .newsrc.el @cindex .newsrc.eld -$B:#$d!"$"$J$?$O%U%!%$%k(B @file{.newsrc} $B$K$D$$$F$9$Y$FCN$C$F$$$^$9!#$9$Y$F$N(B -$B9XFI>pJs$OEAE}E*$K$3$N%U%!%$%k$KC_@Q$5$l$^$9!#(B +$B:#$d!"$"$J$?$O%U%!%$%k(B @file{.newrc} $B$K$D$$$F$9$Y$FCN$C$F$$$^$9!#$9$Y$F(B +$B$N9XFI>pJs$OEAE}E*$K$3$N%U%!%$%k$KC_@Q$5$l$^$9!#(B -@sc{GNUS} $B$G$OJ*;v$,>/!9J#;($K$J$C$F$$$^$9!#%U%!%$%k(B @file{.newsrc} $B$r:G?7(B -$B$N$b$N$K$9$k$@$1$G$O$J$/!"%U%!%$%k(B @file{.newsrc} $B$K$O9g$o$J$$>pJs$rJ]B8$7(B -$B$F$*$/$?$a$K(B @file{.newsrc.el} $B$H8F$P$l$k%U%!%$%k$r;H$$$^$9!JpJs$rJ#@=$7$FJ];}$7$F$$$^$9!K!#(B@sc{GNUS} $B$O$3(B -$B$l$i$NCf$G0lHV:G8e$KJ]B8$5$l$?$b$N$r;H$$$^$9!#$3$l$r$9$k$3$H$K$h$j!"(B -@sc{GNUS} $B$HB>$N%K%e!<%9%j!<%@!<$r@Z$jBX$($F;H$&$3$H$,$G$-$^$9!#(B +@sc{GNUS} $B$G$OJ*;v$,>/!9J#;($K$J$C$F$$$^$9!#%U%!%$%k(B @file{.newsrc} $B$r:G(B +$B?7$N$b$N$K$9$k$@$1$G$O$J$/!"%U%!%$%k(B @file{.newsrc} $B$K$O9g$o$J$$>pJs$rJ](B +$BB8$7$F$*$/$?$a$K(B @file{.newsrc.el} $B$H8F$P$l$k%U%!%$%k$r;H$$$^$9!#(B ($BpJs$rJ#@=$7$FJ];}$7$F$$$^$9!#(B) +@sc{gnus}$B$O$3$l$i$NCf$G0lHV:G8e$KJ]B8$5$l$?$b$N$r;H$$$^$9!#$3$l$r$9$k$3(B +$B$H$K$h$j!"(B@sc{GNUS} $B$HB>$N%K%e!<%9%j!<%@!<$r@Z$jBX$($F;H$&$3$H$,$G$-$^$9!#(B -$B$3$l$O$A$g$C$H$P$+$JJ}K!$J$N$G!"(BGnus $B$O$b$C$HNI$$J}K!$rJT$_=P$7$^$7$?!#(B -@file{.newsrc} $B$H(B @file{.newsrc.el} $B%U%!%$%k$K2C$($F!"(BGnus $B$O(B -@file{.newsrc.eld} $B$H8F$P$l$k%U%!%$%k$b;}$C$F$$$^$9!#(BGnus $B$O$3$l$i$NCf$G0l(B -$BHV?7$7$$%U%!%$%k$rFI$_$^$9$,!"%U%!%$%k(B @file{.newsrc.el} $B$K=q$-9~$`$3$H$O(B -$B$"$j$^$;$s!#%U%!%$%k(B @file{.newsrc.eld} $B$O@dBP$K>C$9$Y$-$G$O$"$j$^$;$s!#(B ----$B$=$l$O%U%!%$%k(B @file{.newsrc} $B$K$O$J$$$?$/$5$s$N>pJs$rJ];}$7$F$$$^$9!#(B +$B$3$l$O$A$g$C$H$P$+$JJ}K!$J$N$G!"(Bgnus $B$O$b$C$HNI$$J}K!$rJT$_=P$7$^$7$?!#(B +@file{.newsrc} $B$H(B @file{.newsrc.el} $B%U%!%$%k$K2C$($F!"(B Gnus $B$O(B +@file{.newsrc.eld} $B$H8F$P$l$k%U%!%$%k$b;}$C$F$$$^$9!#(BGnus $B$O$3$l$i$NCf$G(B +$B0lHV?7$7$$%U%!%$%k$rFI$_$^$9$,!"%U%!%$%k(B @file{.newsrc.el} $B$K=q$-9~$`$3(B +$B$H$O$"$j$^$;$s!#%U%!%$%k(B @file{.newsrc.eld} $B$O@dBP$K>C$9$Y$-$G$O$"$j$^$;(B +$B$s!#(B---$B$=$l$O%U%!%$%k(B @file{.newsrc} $B$K$O$J$$$?$/$5$s$N>pJs$rJ];}$7$F$$(B +$B$^$9!#(B @vindex gnus-save-newsrc-file @code{gnus-save-newsrc-file} $B$r(B @code{nil} $B$K$9$k$3$H$K$h$C$F%U%!%$%k(B @@ -900,17 +901,17 @@ gnus-group-clear-data-on-native-groups} $B$r;H$C$F!"4pK\%0%k!<%W$K4X$9$k%G!<(B $B$G$b!"$A$g$C$H!"C/$+$=$&$7$?$$?M$,$$$k$G$7$g$&$+!#(B @vindex gnus-save-killed-list -@code{gnus-save-killed-list}$B!JI8=`(B (default) $B$G$O(B @code{t}$B!K$,(B -@code{nil} $B$G$"$k$H!"(Bgnus $B$O:o=|$5$l$?%0%k!<%W$r5/F0%U%!%$%k$KJ]B8$7$^$;$s!#(B -$B$3$l$O!"!J5/F0;~$H=*N;;~$N!K;~4V$H!"!J%G%#%9%/$N!KMFNL$r@aLs$7$^$9!#$3$&$9(B -$B$k$H!"(Bgnus $B$,$I$N%0%k!<%W$,?7$7$$$+$N5-O?$r;}$C$F$$$J$$$3$H$K$J$j$^$9$N$G!"(B -$B?7$7$$%0%k!<%W$N<+F09XFIJ}K!$O0UL#$,L5$/$J$j$^$9!#$3$NJQ?t$r(B @code{nil} $B$K(B -$B$7$?$H$-$O!"(B@code{gnus-check-new-newsgroups} $B$r>o$K(B @code{nil} $B$+(B -@code{ask-server} $B$K$7$F$*$/$Y$-$G$7$g$&(B (@pxref{New Groups})$B!#$3$NJQ?t$O(B -$B@55,I=8=$K$9$k$3$H$b$G$-$^$9!#$=$N$h$&$J>l9g$O!"%U%!%$%k$rJ]B8$9$kD>A0$K$=(B -$B$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%5!<%P!<(B -$B$,(B @code{ask-server} $B$rM}2r$9$k$o$1$G$O$J$$!"$H$$$C$?$h$&$J!"FCDj$N$"$$$^(B -$B$$$J>u67$N$H$-$KLr$KN)$D$G$7$g$&!#(B +@code{gnus-save-killed-list} ($B%G%#%U%)%k%H(B $B$G$O(B @code{t}) $B$,(B @code{nil} +$B$G$"$k$H!"(Bgnus $B$O:o=|$5$l$?%0%k!<%W$r5/F0%U%!%$%k$KJ]B8$7$^$;$s!#$3$l$O!"(B +($B5/F0;~$H=*N;;~$N(B) $B;~4V$H!"(B($B%G%#%9%/$N(B) $BMFNL$r@aLs$7$^$9!#$3$&$9$k$H!"(B +gnus$B$,$I$N%0%k!<%W$,?7$7$$$+$N5-O?$r;}$C$F$$$J$$$3$H$K$J$j$^$9$N$G!"?7$7(B +$B$$%0%k!<%W$N<+F09XFIJ}K!$O0UL#$,L5$/$J$j$^$9!#$3$NJQ?t$r(B @code{nil} $B$K$7(B +$B$?$H$-$O!"(B@code{gnus-check-new-newsgroups} $B$r>o$K(B @code{nil} $B$+(B +@code{ask-server} $B$K$7$F$*$/$Y$-$G$7$g$&(B (@pxref{New Groups})$B!#$3$NJQ?t(B +$B$O@55,I=8=$G$"$k$3$H$b$G$-$^$9!#$=$N$h$&$J>l9g$O!"%U%!%$%k$rJ]B8$9$kD>A0(B +$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(B +$B%5!<%P!<$,(B @code{ask-server} $B$rM}2r$9$k$o$1$G$O$J$$!"$H$$$C$?$h$&$J!"FC(B +$BDj$N$"$$$^$$$J>u67$N$H$-$KLr$KN)$D$G$7$g$&!#(B @vindex gnus-startup-file $BJQ?t(B @code{gnus-startup-file} $B$O5/F0%U%!%$%k$,$I$3$K$"$k$+$r;XDj$7$^$9!#(B @@ -938,15 +939,15 @@ gnus-group-clear-data-on-native-groups} $B$r;H$C$F!"4pK\%0%k!<%W$K4X$9$k%G!<(B @end lisp @vindex gnus-init-file -Gnus $B$,5/F0$9$k$H!"(B@code{gnus-site-init-file}$B!JI8=`(B (default) $B$G$O(B -@file{.../site-lisp/gnus}$B!K$H(B @code{gnus-init-file}$B!JI8=`$G$O(B -@file{~/.gnus}$B!K$N%U%!%$%k$rFI$_9~$_$^$9!#$3$l$i$OIaDL$N(B Emacs Lisp $B%U%!%$(B -$B%k$G!"(B@file{~/.emacs} $B$d(B @file{site-init} $B%U%!%$%k$r(B gnus $B4X78$N$b$N$GMp;((B -$B$K$7$J$$$h$&$K$9$k$?$a$K;H$&$3$H$,$G$-$^$9!#(BGnus $B$O$3$l$i$HF1$8L>A0$N%U%!(B -$B%$%k$rD4$Y$^$9$,!"@\Hx8l(B @file{.elc} $B$H(B @file{.el} $B$,$D$$$F$$$k$b$N$bD4$Y(B -$B$^$9!#8@$$49$($l$P!"(B@code{gnus-init-file} $B$r(B @file{~/.gnus} $B$K@_Dj$9$k$H!"(B -gnus $B$O(B ($B$3$N=gHV$K(B) @file{~/.gnus.elc} $B!"(B@file{~/.gnus.el} $B$rC5$7!":G8e$K(B -@file{~/.gnus} $B$rC5$7$^$9!#(B +Gnus $B$,5/F0$9$k$H!"(B@code{gnus-site-init-file} ($B%G%#%U%)%k%H$G$O(B +@file{.../site-lisp/gnus}) $B$H(B @code{gnus-init-file} ($B%G%#%U%)%k%H$G$O(B +@file{~/.gnus}) $B$N%U%!%$%k$rFI$_9~$_$^$9!#$3$l$i$OIaDL$N(B Emacs Lisp $B%U%!(B +$B%$%k$G!"(B@file{~/.emacs} $B$d(B @file{site-init} $B%U%!%$%k$r(B gnus $B4X78$N$b$N$G(B +$BMp;($K$7$J$$$h$&$K$9$k$?$a$K;H$&$3$H$,$G$-$^$9!#(BGnus $B$O$3$l$i$HF1$8L>A0(B +$B$N%U%!%$%k$rD4$Y$^$9$,!"@\Hx8l(B @file{.elc} $B$H(B @file{.el} $B$,$D$$$F$$$k$b(B +$B$N$bD4$Y$^$9!#8@$$49$($l$P!"(B@code{gnus-init-file} $B$r(B @file{~/.gnus} $B$K@_(B +$BDj$9$k$H!"(Bgnus $B$O(B ($B$3$N=gHV$K(B) @file{~/.gnus.elc} $B!"(B@file{~/.gnus.el} $B$r(B +$BC5$7!":G8e$K(B @file{~/.gnus} $B$rC5$7$^$9!#(B @@ -955,11 +956,11 @@ gnus $B$O(B ($B$3$N=gHV$K(B) @file{~/.gnus.elc} $B!"(B@file{~/.gnus.el} $ @cindex dribble file @cindex auto-save -$B2?$+(B gnus $B$N%G!<%?$rJQ99$9$k$3$H!J5-;v$rFI$`!"0u$rIU$1$k!"%0%k!<%W$r:o=|$^(B -$B$?$O9XFI$9$k!K$r$7$?$H$-!"JQ99$OFCJL$J(B@dfn{$B%I%j%V%k%P%C%U%!(B (dribble -buffer)}$B$K=q$-9~$^$l$^$9!#$3$N%P%C%U%!$O(B Emacs $B$,IaDL$9$k$h$&$K<+F0J]B8$5(B -$B$l$^$9!#%U%!%$%k(B @file{.newsrc} $B$rJ]B8$9$kA0$K(B Emacs $B$,Mn$A$?$H$-$O!"$9$Y(B -$B$F$NJQ99$r$3$N%U%!%$%k$+$i2sI|$9$k$3$H$,$G$-$k$G$7$g$&!#(B +$B2?$+(B gnus $B$N%G!<%?$rJQ99$9$k$3$H(B ($B5-;v$rFI$`!"0u$rIU$1$k!"%0%k!<%W$r:o=|(B +$B$^$?$O9XFI$9$k(B) $B$r$7$?$H$-!"JQ99$OFCJL$J(B@dfn{$B%I%j%V%k%P%C%U%!(B (dribble +buffer)} $B$K=q$-9~$^$l$^$9!#$3$N%P%C%U%!$O(BEmacs $B$,IaDL$9$k$h$&$K<+F0J]B8(B +$B$5$l$^$9!#%U%!%$%k(B @file{.newsrc} $B$rJ]B8$9$kA0$K(B Emacs$B$,Mn$A$?$H$-$O!"$9(B +$B$Y$F$NJQ99$r$3$N%U%!%$%k$+$i2sI|$9$k$3$H$,$G$-$k$G$7$g$&!#(B $B5/F0;~$K(B gnus $B$,$3$N%U%!%$%k$NB8:_$rH/8+$9$k$H!"(Bgnus $B$O$=$l$rFI$_9~$`$+(B $B$I$&$+$rMxMQu%U%!%$%k$rFI$_9~$_$^$9!#$3$l$O$H$F$bBg$-$J%U%!%$%k$G!"$=$N(B +$B%5!<%P!<$N3hF0Cf$N%0%k!<%W$H5-;v$N$9$Y$F$N%j%9%H$,F~$C$F$$$^$9!#(B + +@vindex gnus-ignored-newsgroups +$B8=>u%U%!%$%k$r8!::$9$kA0$K!"(Bgnus $B$O@55,I=8=(B +@code{gnus-ignored-newsgroups} $B$K9g$&$9$Y$F$N9T$r:o=|$7$^$9!#$3$l$OA0$r;}$D%0%k!<%W$rGS=|$9$k$?$a$K;H$o$l$F$-$^$7$?$,!"6=L#$NL5$$%0%k!<(B +$B%W$N3,AX$rL5;k$9$k$?$a$K;H$&$3$H$b$G$-$^$9!#$7$+$7!"$3$l$O$*4+$a$G$-$^$;(B +$B$s!#K\Ev$N$3$H$r8@$&$H!"A4$/;?@.$G$-$^$;$s!#Be$o$j$K!"$=$N$h$&$JMQES$KMQ(B +$B$$$i$l$kJQ?t$N35N,$rCN$k$?$a$K!"(B@pxref{New Groups} $B$r;2>H$7$F$/$@$5$$!#(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 +$B8=>u%U%!%$%k$OHf3SE*Bg$-$/$J$k798~$,$"$k$N$G!"CY$$2s@~$r;H$C$F$$$k$H$-$O!"(B +$B8=>u%U%!%$%k$rFI$_9~$^$J$$$h$&$K(B @code{gnus-read-active-file} $B$r(B +@code{nil} $B$K@_Dj$9$k$3$H$,$G$-$^$9!#$3$NJQ?t$O%G%#%U%)%k%H$G$O(B +@code{some} $B$G$9!#(B + +$B$=$N$h$&$J;~$O!"(Bgnus $B$OpJs$@$1$rF@(B +$B$F$d$C$F$$$3$&$H$7$^$9!#(B + +$B5$$rIU$1$F$[$7$$$N$O!"$"$J$?$,;3$[$I$N$?$/$5$s$N%0%k!<%W$r9XFI$7$F$$$k$H(B +$B$-$K$3$NJQ?t$r(B @code{nil} $B@_Dj$9$k$H!"(Bgnus $B$OB.$/$J$k$I$3$m$+!"CY$/$J$C(B +$B$F$7$^$&$H$$$&$3$H$G$9!#8=>u$G$O!"%K%e!<%:$r(B 2400bps $B0J>e$N%b%G%`$rDL$7(B +$B$FFI$s$G$$$k$N$G$J$$8B$j!"(Bgnus $B$NB.EY$O$+$J$jCY$/$J$k$G$7$g$&!#(B + +$B$3$NJQ?t$O(B @code{some} $B$H$$$&CM$bu$N>pJs$r9XFI$5$l$F$$$k%0%k!<%W$N$b$N$@$1$rF@$h$&$H$7$^$9!#$$$/$D$+$N%5!<(B +$B%P!<(B ($BL?Na(B@code{LIST ACTIVE group} $B$r;H$&$3$H$N$G$-$k!":G?71T$N(B INN $B%5!<(B +$B%P!<(B) $B$G$O!"Hs>o$KAa$/$J$k$G$7$g$&$,!"B>$N%5!<%P!<$G$OB.$/$O$"$j$^$;$s!#(B +$B$I$N$h$&$K$;$h!"CY$$2s@~$G$O(B @code{some} $B$O(B @code{nil} $B$h$j$bB.$/!"$=$l(B +$B$O$b$A$m$s(B@code{t} $B$h$j$bB.$/$J$j$^$9!#(B + +$B$b$7$3$NJQ?t$,(B @code{nil} $B$G$"$k$H!"(Bgnus $B$O40A4$K$,$s$8$,$i$a$NJ}K!$G%0(B +$B%k!<%W$N>pJs$rF@$h$&$H$7$^$9!#$=$7$F!"$3$l$O$"$^$jB.$/$"$j$^$;$s!#$b$7$=(B +$B$l$,(B @code{some} $B$G(B @sc{nntp} $B%5!<%P!<$r;H$C$F$$$k$H$-$O!"(Bgnus $B$O$G$-$k(B +$B$@$1B.$/L?Na$r=P$7!"0l7b$G$9$Y$F$NJVEz$rFI$_9~$_$^$9!#$3$NJ}$,IaDL$O$h$j(B +$BNI$$7k2L$r$b$?$i$7$^$9$,!"%5!<%P!<$,L?Na(B @code{LIST ACTIVE group} $B$rM}2r(B +$B$7$J$$$J$i!"%5!<%P!<$K$H$C$F$O$"$^$jNI$$$H$O8@$($^$;$s!#(B + +@code{some} $B$+(B @code{nil} $B$r;H$&$N$G$"$l$P!"$I$A$i$K$7$mB.EY$r>e$2$k$?$a(B +$B$K$9$Y$F$N6=L#$NL5$$%0%k!<%W$rI,$::o=|$9$k$Y$-$G$7$g$&!#(B + +$B$3$NJQ?t$O(B2$BHVL\$N(B (secondary) $BJ}K!$N8=>u%U%!%$%kH$7$F$/$@$5$$(B)$B!#(B + +@item gnus-inhibit-startup-message +@vindex gnus-inhibit-startup-message +$B$b$7(B @code{nil} $B$G$J$$$H!"5/F0;~$N%a%C%;!<%8$OI=<($5$l$^$;$s!#$=$N$h$&$K(B +$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(B +$B$7$g$&!#$3$NJQ?t$O(B @file{.gnus.el} $B$,%m!<%I$5$l$kA0$K;H$o$l$^$9$N$G!"(B +@code{.emacs} $B$K@_Dj$9$k$Y$-$G$"$kE@$rCm0U$7$F$/$@$5$$!#(B + +@item gnus-no-groups-message +@vindex gnus-no-groups-message +$B%0%k!<%W$,0l$D$bB8:_$7$J$$$H$-$K(B gnus $B$,I=<($9$k%a%C%;!<%8$G$9!#(B + +@item gnus-play-startup-jingle +@vindex gnus-play-startup-jingle +$B$b$7(B @code{nil} $B$G$J$$$H!"5/F0;~$K(B gnus $B$NC;$$6J$r1iAU$7$^$9!#(B + +@item gnus-startup-jingle +@vindex gnus-startup-jingle +$B>e$NJQ?t$,(B @code{nil} $B$G$J$$$H$-$K1iAU$5$l$kC;$$6J$G$9!#%G%#%U%)%k%H$O(B +@samp{Tuxdemoon.Jingle4.au} $B$G$9!#(B + +@end table + + +@node The Group Buffer +@chapter $B%0%k!<%W%P%C%U%!(B +@cindex group buffer + +$B%0%k!<%W%P%C%U%!(B @dfn{group buffer} $B$OM-8z$J%0%k!<%W$rA4It(B($B$"$k(B +$B$$$O0lIt$r(B)$B0lMwI=<($7$^$9!#$3$l$O(B Gnus $B$r5/F0$7$?$H$-$K:G=i$KI=(B +$B<($5$l$k%P%C%U%!$G!"(BGnus $B$,@8$-$F$$$k8B$j7h$7$F>C$5$l$k$3$H$O$"(B +$B$j$^$;$s!#(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:: $BI=<($5$l$F$$$k>pJs$HJQ99$NJ}K!!#(B +* Group Maneuvering:: $B%0%k!<%W%P%C%U%!$r0\F0$9$k%3%^%s%I!#(B +* Selecting a Group:: $BpJs$rJQ99$9$k!#(B +* Subscription Commands:: $B9XFI!"9XFICf;_!">C5n!#(B +* Group Levels:: $B%l%Y%k(B? $B$=$l$C$F2?(B? +* Group Score:: $B$"$J$?$N9%$-$J%0%k!<%W$r8+$D$1=P$9J}K!!#(B +* Marking Groups:: $B%0%k!<%W$K0u$r$D$1$F$*$$$F!"8e$G=hM}$G$-$^$9!#(B +* Foreign Groups:: $B%0%k!<%W$N:n@.$H=$@5!#(B +* Group Parameters:: $B%0%k!<%WKh$K0c$C$?%Q%i%a!<%?$r;}$?$;$i$l$^$9!#(B +* Listing Groups:: Gnus $B$O%0%k!<%W$r$$$m$$$m$JJ,$1J}$GI=<($G$-$^$9!#(B +* Sorting Groups:: $B%0%k!<%W$N=gHV$NG[CVBX$(!#(B +* Group Maintenance:: $B$-$l$$$J(B @file{.newsrc} $B$NJ]$AJ}!#(B +* Browse Foreign Server:: $B%5!<%P$r%V%i%&%:$G$-$^$9!#2?$,FI$a$k$N$+8+$F$_$h$&!#(B +* Exiting Gnus:: $B%K%e!<%9FI$`$N$r$d$a$F!";E;v$r$7$h$&!#(B +* Group Topics:: $B%0%k!<%W$r@Z$j:.$<$F!"%H%T%C%/$4$H$KJ,3d$9$k!#(B +* Misc Group Stuff:: $BB>$K$G$-$k$3$H!#(B +@end menu + + +@node Group Buffer Format +@section $B%0%k!<%W%P%C%U%!$N7A<0(B + +@menu +* Group Line Specification:: $B%0%k!<%W%P%C%U%!$N8+$(J}$r7h$a$k!#(B +* Group Modeline Specification:: $B%0%k!<%W%P%C%U%!$N%b!<%I9T!#(B +* Group Highlighting:: $B%0%k!<%W%P%C%U%!$K$-$l$$$K?'$r$D$1$k!#(B +@end menu + + +@node Group Line Specification +@subsection $B%0%k!<%W9T$N;EMM(B +@cindex group buffer format + +$B%0%k!<%W%P%C%U%!$N%G%U%)%k%H$G$N7A<0$O$-$l$$$G$D$^$s$J$$$1$I!"$3(B +$B$l$O7/$N9%$-$J$h$&$K!"%5%$%3!<$K%@%5$/$9$k$3$H$b$G$-$^$9!#(B + +$B$3$l$,%0%k!<%W9T$NNc$G$9!#(B + +@example + 25: news.announce.newusers + * 0: alt.fan.andrea-dworkin +@end example + +$B$H$C$F$b4JC1$G$7$g(B? + +@samp{news.announce.newusers} $B$K$O(B 25 $B$NL$FI5-;v$,$"$k$N$,$o$+$j(B +$B$^$9!#(B@samp{alt.fan.andrea-dworkin} $B$K$OL$FI5-;v$O$J$$$1$l$I$b!"(B +$B0u$r$D$1$?5-;v$,$$$/$D$+$"$j$^$9(B($B9TF,$N$A$C$A$c$J%"%9%?%j%9%/$,(B +$B8+$($k(B?)$B!#(B + +@vindex gnus-group-line-format +$B$3$N7A<0$O(B @code{gnus-group-line-format} $BJQ?t$r$$$8$k$3$H$G!"$I(B +$B$s$JIw$K$G$bJQ$($i$l$^$9!#$3$NJQ?t$O(B @code{format} $B$N;EMMIw$K(B +$BF0:n$7$^$9!#$D$^$j(B($B$"$N%/%=(B)C$B8@8l$r;H$&?M$?$A$N$?$a!"(B printf $B$N(B +$B;EMM$H$[$\F1$8$G$9!#(B@xref{Formatting Variables} + +@samp{%M%S%5y: %(%g%)\n} $B$H$$$&CM$G>e5-$N9T$r@8@.$7$^$9!#(B + +$B%3%m%s$O!"$3$N9T$NCf$KI,$:L5$/$F$O$$$1$^$;$s!#%+!<%=%k$O!"2?$+$N(B +$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,(B +$BMW$G$O$"$j$^$;$s(B -- $B%0%k!<%WL>$5$($b$G$9!#I=<($5$l$F$$$kJ8;z$OA4(B +$B$F$?$@$N2hLL$N>~$j$G$"$j!"(BGnus $B$,$=$l$rD4$Y$k$3$H$O$"$j$^$;$s!#(B +Gnus $B$OI,MW$H$9$kA4$F$NpJs$r!"%F%-%9%HB0@-$r;H$C$F21$($F$$$^(B +$B$9!#(B + + +($B$b$77/$,!"$9$4$/%X%s$J!"AG@2$i$7$$!"I=7W;;Iw$N%l%$%"%&%H$r:n$C(B +$B$?$H$7$?$i!"$_$s$J!"7/$O2q7W$N;E;v$,K;$7$/$C$F!"%K%e!<%9$rFI$s$G(B +$B;~4V$rL5BL;H$$$7$?$j$J$s$+$7$F$J$$!"$C$F?.$8$F$/$l$k$h!#(B) + +$B0J2<$,;HMQ$G$-$k%U%)!<%^%C%HJ8;z$N%j%9%H$G$9!#(B + +@table @samp + +@item M +$B$=$N%0%k!<%W$,0u$N$D$$$?5-;v$@$1$N$H$-$O!"%"%9%?%j%9%/J8;z!#(B + +@item S +$B$=$N%0%k!<%W$,9XFI$5$l$F$$$k$+$I$&$+!#(B + +@item L +$B9XFIEY$N%l%Y%k!#(B + +@item N +$BL$FI5-;v$N?t!#(B + +@item I +$BJ]N15-;v$N?t!#(B + +@item T +$B0uIU$-5-;v$N?t!#(B + +@item R +$B4{FI5-;v$N?t!#(B + +@item t +$B?dDjA45-;v?t!#(B($B$3$l$O$N%U%k%M!<%`!#(B + +@item G +$B%0%k!<%WL>!#(B + +@item D +$B%K%e!<%:%0%k!<%W$N@bL@!#(B + +@item o +$B%b%G%l!<%F%C%I$N>l9g(B @samp{m} $B!#(B + +@item O +$B%b%G%l!<%F%C%I$N>l9g(B @samp{(m)} $B!#(B + +@item s +$BA*Br%a%=%C%I!#(B + +@item n +$B$I$3$+$i$NA*Br$+!#(B + +@item z +$B30ItA*Br%a%=%C%I$,;H$o$l$F$$$k>l9g!"(B@samp{<%s:%n>} $B$HF1$8J8;zNs!#(B + +@item P +$B%H%T%C%/(B(@pxref{Group Topics})$B$N%l%Y%k$K1~$8$?;z2<$2!#(B + +@item c +@vindex gnus-group-uncollapsed-levels +$BC;$$(B($B>JN,$7$?(B)$B%0%k!<%WL>!#(B@code{gnus-group-uncollapsed-levels} +$BJQ?t$O!"$I$N%l%Y%k$^$G%0%k!<%WL>$rA4It;D$9$+$r<($7$^$9!#%G(B +$B%U%)%k%H$O(B 1 $B$G$9(B -- $B$3$N0UL#$O!"(B@samp{gnu.emacs.gnus} $B$N$h$&$J(B +$B%0%k!<%WL>$r(B @samp{g.emacs.gnus} $B$KC;=L$9$k$H$$$&$3$H$G$9!#(B + +@item m +@vindex gnus-new-mail-mark +@cindex % +$B$=$N%0%k!<%W$K:G6a?7Ce%a!<%k$,FO$$$F$$$k>l9g$O(B @samp{%} +(@code{gnus-new-mail-mark})$B!#(B + +@item d +$B:G8e$K$$$D$3$N%0%k!<%W$rFI$s$@$+$r<($9J8;zNs(B(@pxref{Group +Timestamp})$B!#(B + + +@item u +$B%f!<%6Dj5A;XDj!#%U%)!<%^%C%HJ8;zNsCf$G!"$3$N$N3F;XDjJ8(B +$B;z$N>pJs$HF1MM$K!"%P%C%U%!$KA^F~$5$l$kJ8;zNs$rJV$5$J$1$l$P$J$j$^(B +$B$;$s!#(B +@end table + +@cindex * +$BA4$F$N!V!A$N?t!W$N;XDj$G!"$b$7$=$N>pJs$,MxMQ$G$-$J$$>l9g$K$O%"%9%?%j(B +$B%9%/(B(@samp{*}) $B$,Kd$a$i$l$^$9(B -- $BNc$($P!"5/F0$5$l$F$$$J$$30It%0(B +$B%k!<%W$d!"IT@5$J%M%$%F%#%V%0%k!<%W$N>l9g$G$9!#(B + + +@node Group Modeline Specification +@subsection $B%0%k!<%W%b!<%I9T$N;EMM(B +@cindex group modeline + +@vindex gnus-group-mode-line-format +$B%b!<%I9T$O(B @code{gnus-group-mode-line-format} (@pxref{Formatting +Variables}) $B$r@_Dj$9$k$3$H$GJQ99$G$-$^$9!#$3$$$D$O;XDjJ8;z$r$"$s(B +$B$^$j$?$/$5$sCN$C$F$^$;$s!#(B + +@table @samp +@item S +$B%M%$%F%#%V$N%K%e!<%9%5!<%P!#(B +@item M +$B%M%$%F%#%V$NA*Br%a%=%C%I!#(B +@end table + + +@node Group Highlighting +@subsection $B%0%k!<%W$N%O%$%i%$%H(B +@cindex highlighting +@cindex group highlighting + +@vindex gnus-group-highlight +$B%0%k!<%W%P%C%U%!$N%O%$%i%$%H$O(B @code{gnus-group-highlight} $BJQ?t(B +$B$K$h$C$F@)8f$5$l$F$$$^$9!#$3$l$O(B @var{(form . face)} $B$N$h$&$J$b(B +$B$N$rMWAG$K;}$DO"A[%j%9%H$G$9!#(B@var{form} $B$,2?$+(B @code{nil} $B0J30(B +$B$KI>2A$5$l$k$b$N$J$i!"$=$N9T$KBP$7$F(B @var{face} $B$,;HMQ$5$l$^$9!#(B + +$B0J2<$,$3$NJQ?t$NCM$NNc$G$9!#$3$l$OGX7J$,0E$$@_Dj$G$O$-$l$$$K8+$((B +$B$k$+$bCN$l$^$;$s!#(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} $B$b;2>H$7$F$/$@$5$$!#(B + +$B$3$N(B form $B$,I>2A$5$l$k$H$-$KF0E*$KB+G{$5$l$F$$$kJQ?t$K$O0J2<$N$b(B +$B$N$,$"$j$^$9!#(B + + +@table @code +@item group +$B%0%k!<%WL>!#(B +@item unread +$B$=$N%0%k!<%W$NL$FI5-;v$N?t!#(B +@item method +$BA*Br%a%=%C%I!#(B +@item mailp +$B$=$N%0%k!<%W$,%a!<%k$N%0%k!<%W$+$I$&$+!#(B +@item level +$B$=$N%0%k!<%W$N%l%Y%k!#(B +@item score +$B$=$N%0%k!<%W$N%9%3%"!#(B +@item ticked +$B$=$N%0%k!<%WCf$N0u$NIU$$$?5-;v$N?t!#(B +@item total +$B$=$N%0%k!<%WCf$NA45-;v?t!#$b$C$H@53N$K8@$&$H!"(BMAX-NUMBER - +MIN_NUMBER + 1$B!#(B +@item topic +$B%H%T%C%/%^%$%J!<%b!<%I$r;HMQ$7$F$$$k;~!"$3$NJQ?t$OA^F~$5$l$F$$(B +$B$k8=:_$N%H%T%C%/$KB+G{$5$l$^$9!#(B +@end table + +$B$3$N(B form $B$,(B @code{eval} $B$5$l$k$H$-$O!"%]%$%s%H$OLdBj$N%0%k!<%W(B +$B$N9TF,$K$"$j$^$9!#=>$C$F!"DL>o$N(B Gnus $B$N4X?t$N$[$H$s$I$r;H$C$F$=(B +$B$N%0%k!<%W$N>pJs$r.$5$$%l%Y%k(B)$B$NL$FI%0%k!<%W$K0\F0$7$^$9(B +(@code{gnus-group-next-unread-group-same-level})$B!#(B + +@item M-n +@kindex M-n (Group) +@findex gnus-group-prev-unread-group-same-level +$B0l$DA0$NF1$8%l%Y%k(B($B$b$7$/$O$=$l$h$j>.$5$$%l%Y%k(B)$B$NL$FI%0%k!<%W$K0\F0$7$^$9(B +(@code{gnus-group-prev-unread-group-same-level})$B!#(B +@end table + +$B%0%k!<%W$K%8%c%s%W$9$k(B 3 $B$D$N%3%^%s%I$G$9!#(B + +@table @kbd + +@item j +@kindex j (Group) +@findex gnus-group-jump-to-group +$B%0%k!<%W$K%8%c%s%W$7$^$9(B($B$=$l$,8+$($k$h$&$K$J$C$F$$$J$+$C$?$i8+(B +$B$($k$h$&$K$7$^$9(B) (@code{gnus-group-jump-to-group})$B!#(Bkill $B$5$l$F(B +$B$$$k%0%k!<%W$b!"@8$-$F$k%0%k!<%W$HF1MM$K%8%c%s%W$G$-$^$9!#(B + +@item , +@kindex , (Group) +@findex gnus-group-best-unread-group +$B:G$b>.$5$$%l%Y%k$NL$FI%0%k!<%W$K%8%c%s%W$7$^$9(B +(@code{gnus-group-best-unread-group})$B!#(B + +@item . +@kindex . (Group) +@findex gnus-group-first-unread-group +$B:G=i$NL$FI5-;v$N$"$k%0%k!<%W$K%8%c%s%W$7$^$9(B +(@code{gnus-group-first-unread-group})$B!#(B +@end table + +@vindex gnus-group-goto-unread +@code{gnus-group-goto-unread} $B$,(B @code{nil} $B$K$9$k$H!"A4$F$N0\F0(B +$B%3%^%s%I$O!"e5-$N%3%^%s%I$HF1$8F0:n$r$7$^$9$,!"!V%4%?%4%?!W$O:GDc8B$K(B +$B$7$h$&$H$7$^$9(B (@code{gnus-group-quick-select-group})$B!#%9%3%"!&(B +kill $B$N=hM}$O9T$o$l$:!"%O%$%i%$%H$b5-;v>C5n$b$7$^$;$s!#$3$l$O!"(B +$B$"$J$?$,K\Ev$K5^$$$G$$$F!"$I$C$+$N$d$?$i$G$C$+$$%0%k!<%W$KF~$i$J(B +$B$1$l$P$$$1$J$$$H$-$KLr$KN)$D$+$b$7$l$^$;$s!#$^$?!"%W%l%U%#%C%/%9(B +$B$K(B 0 $B$rM?$($l$P(B($B$9$J$o$A(B @kbd{0 M-RET})$B!"(BGnus $B$O%5%^%j%P%C%U%!$r(B +$B:n$m$&$H$5$($7$^$;$s!#$3$l$O%5%^%j%P%C%U%!$r:n$kA0$K%9%l%C%II=<((B +$B$r@Z$jBX$($?$$$H$-Lr$KN)$A$^$9(B +(@pxref{Summary Generation Commands})$B!#(B + +@item M-SPACE +@kindex M-SPACE (Group) +@findex gnus-group-visible-select-group +$B$3$l$O(B @kbd{RET} $B%3%^%s%I$HF1$8F0:n$r$9$k$5$i$K$b$&0l$D$N%3%^%s(B +$B%I$G$9$,!"$3$N%3%^%s%I$O5-;v>C5n$HJ]N15-;v$r1#$9=hM}$r9T$$$^$;$s(B +(@code{gnus-group-visible-select-group})$B!#(B + +@item M-C-RET +@kindex M-C-RET (Group) +@findex gnus-group-select-group-ephemerally +$B:G8e$K$3$N%3%^%s%I$O!"8=:_$N%0%k!<%W$r0lEY8B$j!"$=$NFbMF$K0l@Z$N(B +$B=hM}$r$9$k$3$H$N$J$$$h$&$KA*Br$7$^$9(B +(@code{gnus-group-select-group-ephemerally})$B!#(B $B%9%l%C%II=<($5(B +$B$($b9T$o$l$^$;$s!#$3$NJ}K!$GA*Br$7$?8e$K$3$N%0%k!<%W$KBP$7$F9T$C(B +$B$?$3$H$OA4$F!"$=$N8e$K1F6A$rM?$($k$3$H$O$"$j$^$;$s!#(B + +@end table + +@vindex gnus-large-newsgroup +@code{gnus-large-newsgroup} $BJQ?t$O!"2?$rBg$-$J%0%k!<%W$H9M$($k$Y(B +$B$-$+!"$r(B Gnus $B$KM?$($^$9!#$3$l$O(B $B%G%U%)%k%H$G$O(B 200 $B$G$9!#%0%k!<(B +$B%W$K(B($BL$FI$H0uIU$-$N(B)$B5-;v$,$3$N?t0J>e$"$l$P!"(BGnus $B$O$=$N%0%k!<%W(B +$B$KF~$kA0$K%f!<%6$K3NG'$r5a$a$^$9!#%f!<%6$O%5!<%P$+$i$$$/$D$N5-;v(B +$B$rl9g$K$O!"9XFI$r;_$a$^$9(B +(@code{gnus-group-unsubscribe-group})$B!#(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} +$B8=:_$N%0%k!<%W$r(B kill $B$7$^$9(B (@code{gnus-group-kill-group})$B!#(B + +@item S y +@itemx C-y +@kindex S y (Group) +@kindex C-y (Group) +@findex gnus-group-yank-group +$B:G8e$K(B kill $B$7$?%0%k!<%W$r(B yank $B$7$^$9(B +(@code{gnus-group-yank-group})$B!#(B + +@item C-x C-t +@kindex C-x C-t (Group) +@findex gnus-group-transpose-groups +$BFs$D$N%0%k!<%W$N=g=x$rCV$-49$($^$9(B +(@code{gnus-group-transpose-groups})$B!#(B $B$3$l$O%[%s%H$O9XFI%3%^%s(B +$B%I$G$O$"$j$^$;$s$,!"(Bkill $B$H(B yank $B$r2?EY$+B3$1$kBe$o$j$K$3$N%3%^(B +$B%s%I$,;H$($^$9!#(B + +@item S w +@itemx C-w +@kindex S w (Group) +@kindex C-w (Group) +@findex gnus-group-kill-region +$B%j!<%8%g%sFb$NA4$F$N%0%k!<%W$r(B kill $B$7$^$9(B +(@code{gnus-group-kill-region})$B!#(B + +@item S z +@kindex S z (Group) +@findex gnus-group-kill-all-zombies +$BA4$F$N%>%s%S%0%k!<%W$r(B kill $B$7$^$9(B +(@code{gnus-group-kill-all-zombies})$B!#(B + +@item S C-k +@kindex S C-k (Group) +@findex gnus-group-kill-level +$B$"$k%l%Y%k$N%0%k!<%W$rA4$F(B kill $B$7$^$9(B +(@code{gnus-group-kill-level})$B!#(B kill $B$7$?8e!"$3$l$i$N%0%k!<%W$r(B +yank $B$GLa$9$3$H$O$G$-$J$$$N$G!"$3$N%3%^%s%I$O$$$/$i$+Cm0U$7$F;H$C(B +$B$F$/$@$5$$!#$3$N%3%^%s%I$,K\Ev$KJXMx$K$J$k$N$O!"(B@file{.newsrc} +$B$KH$7$F$/$/$@$5$$!#(B + + +@node Group Data +@section $B%0%k!<%W%G!<%?(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} +$B$=$N%0%k!<%WFb$NA4$F$NL50u$N5-;v$r4{FI$K$9$k(B +(@code{gnus-group-catchup-current})$B!#(B +$B%0%k!<%W%P%C%U%!$+$i4{FI$K$7$?>l9g$O(B +@code{gnus-group-catchup-group-hook} $B$,8F$S=P$5$l$^$9!#(B + +@item C +@kindex C (Group) +@findex gnus-group-catchup-current-all +$B$=$N%0%k!<%W$NA45-;v$r!"0uIU$-$N5-;v$b4^$a$F4{FI$K$7$^$9(B +(@code{gnus-group-catchup-current-all})$B!#(B + +@item M-c +@kindex M-c (Group) +@findex gnus-group-clear-data +$B8=:_$N%0%k!<%W$NA4$F$N%G!<%?$r%/%j%"$7$^$9(B -- $B%^!<%/$H4{FI5-;v$N(B +$B%j%9%H$r>C$75n$j$^$9(B (@code{gnus-group-clear-data})$B!#(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 +$B$b$7(B nntp $B%5!<%P$rJL$N$b$N$K@Z$jBX$($?$H$9$k$H!"A4$F$N%^!<%/$H4{(B +$BFI>pJs$O$b$&Lr$K$ON)$A$^$;$s!#$3$N%3%^%s%I$r;H$C$F%M%$%F%#%V%0%k!<(B +$B%W$NA4$F$N%G!<%?$r%/%j%"$9$k$3$H$,$G$-$^$9!#Cm0U$7$F;H$C$F$M!#(B + +@end table + + +@node Group Levels +@section $B%0%k!<%W%l%Y%k(B +@cindex group level +@cindex level + +$BA4$F$N%0%k!<%W$O9XFIEY(B @dfn{subscribedness} $B$N%l%Y%k$r;}$A$^$9!#(B +$BNc$($P!"$"$k%0%k!<%W$,%l%Y%k(B 2 $B$@$H$9$l$P!"$=$l$O%l%Y%k(B 5 $B$N%0%k!<(B +$B%W$h$j$b!V$h$j9XFI$7$F$$$k!W$H$$$&$3$H$G$9!#(BGnus $B$KBP$7$F!"$"$k(B +$B%l%Y%k$+$=$l$h$j>.$5$$%l%Y%k$N%0%k!<%W$N$_0lMwI=<($9$k$h$&$KMj$`(B +$B$3$H$b$G$-$k$7(B (@pxref{Listing Groups})$B!"$"$k%l%Y%k$+$=$l$h$j>.(B +$B$5$$%l%Y%k$N%0%k!<%W$N?7Ce5-;v$N$_$r3NG'$9$k$3$H$b$G$-$^$9(B +(@pxref{Scanning New Messages})$B!#(B + +$BK:$l$J$$$G(B: $B%0%k!<%W$N%l%Y%k$,Bg$-$$$[$I!"=EMWEY$ODc$/$J$k$H$$$&$3$H!#(B + +@table @kbd + +@item S l +@kindex S l (Group) +@findex gnus-group-set-current-level +$B8=:_$N%0%k!<%W$N%l%Y%k$r@_Dj$9$k!#?t;z%W%l%U%#%C%/%9$,M?$($i$l$k(B +$B$H!"$=$3$+$i(B @var{n} $B8D$N%0%k!<%W$N%l%Y%k$,@_Dj$5$l$^$9!#%l%Y%k(B +$B$rF~NO$9$k$?$a$N%W%m%s%W%H$,=P$^$9!#(B + +@end table + +@vindex gnus-level-killed +@vindex gnus-level-zombie +@vindex gnus-level-unsubscribed +@vindex gnus-level-subscribed +Gnus $B$O%l%Y%k(B 1 $B$+$i(B @code{gnus-level-subscribed} ($B$3$NCM$r4^$`(B) +($B%G%U%)%k%H$O(B 5) $B$^$G$N%0%k!<%W$r9XFI!"(B +@code{gnus-level-subscribed} ($B$3$NCM$r4^$^$J$$(B) $B$+$i(B +@code{gnus-level-unsubscribed} ($B$3$NCM$r4^$`(B) ($B%G%U%)%k%H$O(B 7)$B$^(B +$B$G$N%0%k!<%W$rHs9XFI!"(B@code{gnus-level-zombie} $B$r%>%s%S(B($BJb$/;S(B) +($B%G%U%)%k%H$O(B8)$B!"(B@code{gnus-level-killed} $B$r(B kill $B$5$l$F$$$k(B($B40(B +$BA4$K;`$s$G$k(B)($B%G%U%)%k%H$O(B9)$B$HH=CG$7$^$9!#(BGnus $B$O9XFI$HHs9XFI$N(B +$B%0%k!<%W$OA4$/F1MM$K07$$$^$9$,!"%>%s%S$H(B kill $B%0%k!<%W$O!"$I$N5-(B +$B;v$rFI$s$@$+!"B8:_$9$k$+$J$I$N>pJs$r0l@Z;}$A$^$;$s!#$3$N;`$s$G$k(B +$B%0%k!<%W$H@8$-$F$k%0%k!<%W$N6hJL$O!"JL$K$=$l$,$-$l$$$@$+$i$H$+8-(B +$B$$$+$i$H$$$&$o$1$G$O$J$/!"=c?h$K8zN(E*$JM}M3$N$?$a$G$9!#(B + +$B%a!<%kMQ$N%0%k!<%W$O(B($B$b$7$"$l$P(B)$BHs>o$K>.$5$$%l%Y%k(B($BNc$($P(B 1 $B$+(B +2)$B$K$7$F$*$/$3$H$r$*4+$a$7$^$9!#(B + +$B$b$7%l%Y%kJQ?t$GM7$S$?$$$N$G$"$l$P!"B?>/Cm0U$r$7$F$^$o$kI,MW$,$"(B +$B$j$^$9!#0lC6$=$l$r@_Dj$7$?$i!"FsEY$H$=$l$K?($i$J$$$G$/$@$5$$!#$5(B +$B$i$K8@$($P!"<+J,$G2?$r$d$C$F$$$k$+$r@53N$KM}2r$7$F$$$J$$8B$j!"0l(B +$B@Z?($i$J$$$G$/$@$5$$!#(B + +@vindex gnus-level-default-unsubscribed +@vindex gnus-level-default-subscribed +$B?H6a$K4X78$9$k(B2$B$D$NJQ?t$O(B @code{gnus-level-default-subscribed} +($B%G%U%)%k%H$O(B 3) $B$H(B @code{gnus-level-default-unsubscribed} ($B%G%U%)(B +$B%k%H$O(B 6)$B$G$9!#$3$l$i$O?7$7$$%0%k!<%W$,9XFI(B($B$"$k$$$OHs9XFI(B)$B$5$l(B +$B$?$H$-$N%l%Y%k$G$9!#$b$A$m$s!"$3$l$i(B2$B$D$NJQ?t$NCM$O!"0UL#$N$"$k(B +$B@5$7$$HO0O$G$J$/$F$O$J$j$^$;$s!#(B + +@vindex gnus-keep-same-level +@code{gnus-keep-same-level} $B$,(B @code{nil} $B0J30$G$"$l$P!"0\F0%3%^(B +$B%s%I$N$$$/$D$+$OF10l(B($B$"$k$$$O$=$l$h$j>.$5$$(B)$B%l%Y%k$N%0%k!<%W$N$_(B +$B$N0\F0$K$J$j$^$9!#FC$K!"$"$k%0%k!<%W$N:G8e$N5-;v$+$i.$5$$(B)$B%l%Y%k$N%0%k!<%W$K0\(B +$BF0$7$^$9!#$3$l$O;D$j$N%0%k!<%W$rFI$`$h$j@h$K!"$h$j=EMW$J%0%k!<%W(B +$B$rFI$s$G$*$-$?$$$H$-$K$OJXMx$+$b$7$l$^$;$s!#(B + +@vindex gnus-group-default-list-level +$B%G%U%)%k%H$G$O(B @code{gnus-group-default-list-level} $B$HF1$8$+$=$l(B +$B$h$j>.$5$$%l%Y%k$N%0%k!<%W$,!"%0%k!<%W%P%C%U%!$K0lMwI=<($5$l$^$9!#(B + +@vindex gnus-group-list-inactive-groups +@code{gnus-group-list-inactive-groups} $B$,(B @code{nil} $B0J30$G$"$l(B +$B$P!"L$FI$N%0%k!<%W$K0l=o$K%"%/%F%#%V$G$J$$%0%k!<%W$bI=<($7$^$9!#(B +$B$3$NJQ?t$O%G%U%)%k%H$G(B @code{t} $B$G$9!#$b$7$3$l$,(B @code{nil} $B$G$"(B +$B$l$P!"%"%/%F%#%V$G$J$$%0%k!<%W$OI=<($5$l$^$;$s!#(B + +@vindex gnus-group-use-permanent-levels +@code{gnus-group-use-permanent-levels} $B$,(B @code{nil} $B0J30$G$"$l(B +$B$P!"0lC6%l%Y%k$r(B @kbd{g} $B$d(B @kbd{l} $B$N%W%l%U%#%C%/%9$KM?$($k$H!"(B +$B$=$N8e$NA4$F$N%3%^%s%I$K$*$$$F$=$N%l%Y%k$,!V:nMQ$9$k!W%l%Y%k$K$J(B +$B$j$^$9!#(B + + +@vindex gnus-activate-level +Gnus $B$ODL>o!"(B@code{gnus-activate-level} $B$+$=$l$h$j>.$5$$%l%Y%k$N(B +$B%0%k!<%W$N$_$r5/F0$7$^$9(B($B$D$^$j%5!<%P$KLd$$9g$o$;$r$9$k(B)$B!#9XFI$7(B +$B$F$$$J$$%0%k!<%W$r5/F0$7$?$/$J$1$l$P!"$3$NJQ?t$rNc$($P(B 5 $B$K@_Dj(B +$B$9$k$H$h$$$+$b$7$l$^$;$s!#%G%U%)%k%H$O(B 6 $B$G$9!#(B + +@node Group Score +@section $B%0%k!<%W$N%9%3%"(B +@cindex group score +@cindex group rank +@cindex rank + +$BIaDL$O=EMW$J%0%k!<%W$O9b%l%Y%k$K$7$F$*$/$G$7$g$&$1$l$I$b!"$3$NJ}(B +$BK!$G$O>/!9@)8B$,$-$D$$$G$9$h$M!#$R$g$C$H$7$?$i!"%0%k!<%W$r$I$l$/(B +$B$i$$IQHK$KFI$`$+$K$h$C$F%0%k!<%W%P%C%U%!$r%=!<%H$7$?$$$J$"!"$J$s(B +$B$F;W$o$J$$(B? $BM}$K$+$J$C$F$k$G$7$g(B? + +$B%0%k!<%W%9%3%"(B @dfn{group score} $B$O$=$N$?$a$N$b$N$G$9!#$=$l$>$l(B +$B$N%0%k!<%W$KBP$7$F%9%3%"$r;XDj$9$k$3$H$,$G$-$^$9!#$=$7$F%0%k!<%W(B +$B%P%C%U%!$r$3$N%9%3%"$r4p$K%=!<%H$9$k$3$H$,$G$-$^$9!#$"$k$$$O!"%9(B +$B%3%"=g$G%=!<%H$7$F$=$N8e%l%Y%k$G%=!<%H$9$k$3$H$b$G$-$^$9!#(B($B%l%Y(B +$B%k$H%9%3%"$r$R$H$^$H$a$K$7$F!"%0%k!<%W$N%i%s%/(B @dfn{rank} $B$H8F$S(B +$B$^$9!#%l%Y%k$,(B4$B$G%9%3%"$,(B1$B$N%0%k!<%W$O!"%l%Y%k$,(B5$B$G%9%3%"$,(B300$B$N(B +$B%0%k!<%W$h$j$b9b$$%i%s%/$H$J$j$^$9!#(B($B%l%Y%k$NJ}$,=EMWEY$,9b$/!"(B +$B%9%3%"$NJ}$O=EMWEY$,Dc$/$J$j$^$9!#(B)) + +@findex gnus-summary-bubble-group +$BIQHK$KFI$`%0%k!<%W$K!"$a$C$?$KFI$^$J$$%0%k!<%W$h$j$b9b$$%9%3%"$r(B +$BM?$($?$$$H$-$O!"(B @code{gnus-summary-exit-hook} $B%U%C%/$K(B +@code{gnus-summary-bubble-group} $B4X?t$rDI2C$9$k$3$H$,$G$-$^$9!#(B +$B$3$l$G%P%V%k%=!<%H$Nl9g$G!"(B +$B$=$l$i$,%0%k!<%W%P%C%U%!$KO"B3$7$F$"$k>l9g$K$O!"DL>oDL$j%3%^%s%I(B +$B$KBP$7$F?t;z%W%l%U%#%C%/%9$rM?$($k$@$1$G$9!#$=$&$9$l$P$[$H$s$I$N(B +$B%0%k!<%W%3%^%s%I$O!"$3$l$i$N%0%k!<%W$KBP$7$F$"$J$?$NL?Na$K=>$$$^(B +$B$9!#(B + +$B$7$+$7$=$l$i$N%0%k!<%W$,=gHV$KJB$s$G$$$J$$>l9g$K$*$$$F$b!"$$$/$D(B +$B$+$N%0%k!<%W$KBP$7$F%3%^%s%I$rH$7$F$/$@$5$$!#(B + +@findex gnus-group-universal-argument +$B%W%m%;%9%^!<%/$,IU$1$i$l$F$$$kA4$F$N%0%k!<%W$KBP$7$F2?$+$N%3%^%s(B +$B%I$rR2p$7$^(B +$B$9!#$3$l$i$N%3%^%s%I$OA4$F!"?75,$K:n@.$7$?%0%k!<%W$r%]%$%s%H0LCV$KA^F~$7(B +$B$^$9(B --- @code{gnus-subscribe-newsgroup-method} $B$O;2>H$5$l$^$;$s!#(B + +@table @kbd + +@item G m +@kindex G m (Group) +@findex gnus-group-make-group +@cindex making groups +$B?7$7$$%0%k!<%W$r:n@.$7$^$9(B (@code{gnus-group-make-group})$B!#(BGnus $B$O%W%m%s(B +$B%W%H$rI=<($7$F!"L>A0$H%a%=%C%I$H!">l9g$K$h$C$F$O(B @dfn{address} $B$NF~NO$r(B +$B5a$a$F$-$^$9!#$h$j4JC1$K(B @sc{nntp} $B%0%k!<%W$r9XFI$9$kJ}K!$O!"(B +@pxref{Browse Foreign Server} $B$r;2>H$7$F$/$@$5$$!#(B + +@item G r +@kindex G r (Group) +@findex gnus-group-rename-group +@cindex renaming groups +$B8=:_$N%0%k!<%W$NL>A0$r!"2?$+JL$N$b$N$KJQ99$7$^$9(B +(@code{gnus-group-rename-group})$B!#$3$l$O$"$ko$K(B +$BCY$$$3$H$bM-$jF@$^$9!#(B + +@item G c +@kindex G c (Group) +@cindex customizing +@findex gnus-group-customize +$B%0%k!<%W%Q%i%a!<%?$r%+%9%?%^%$%:$9$k(B (@code{gnus-group-customize})$B!#(B + +@item G e +@kindex G e (Group) +@findex gnus-group-edit-group-method +@cindex renaming groups +$B8=:_$N%0%k!<%W$NA*Br%a%=%C%I$r=$@5$9$k$?$a$N%P%C%U%!$K0\F0$7$^$9(B +(@code{gnus-group-edit-group-method})$B!#(B + +@item G p +@kindex G p (Group) +@findex gnus-group-edit-group-parameters +$B%0%k!<%W%Q%i%a!<%?$r=$@5$9$k$?$a$N%P%C%U%!$K0\F0$7$^$9(B +(@code{gnus-group-edit-group-parameters})$B!#(B + +@item G E +@kindex G E (Group) +@findex gnus-group-edit-group +$B%0%k!<%W>pJs$r=$@5$9$k$?$a$N%P%C%U%!$K0\F0$7$^$9(B +(@code{gnus-group-edit-group})$B!#(B + +@item G d +@kindex G d (Group) +@findex gnus-group-make-directory-group +@cindex nndir +$B%G%#%l%/%H%j%0%k!<%W$r:n@.$7$^$9(B (@pxref{Directory Groups})$B!#%G%#%l%/%H(B +$B%jL>$r%W%m%s%W%HF~NO$7$^$9(B (@code{gnus-group-make-directory-group})$B!#(B + +@item G h +@kindex G h (Group) +@cindex help group +@findex gnus-group-make-help-group + +Gnus $B%X%k%W%0%k!<%W$r:n@.$7$^$9(B (@code{gnus-group-make-help-group})$B!#(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 $B%"!<%+%$%V%0%k!<%W$r:n@.$7$^$9(B +(@code{gnus-group-make-archive-group})$B!#%G%U%)%k%H$G$O:G$b:G6a$N5-;v$r;X(B +$B$7$F$$$k%0%k!<%W$,:n@.$5$l$^$9$,(B +(@code{gnus-group-recent-archive-directory})$B!"%W%l%U%#%C%/%9$rM?$($k$HA4(B +$B$F$N5-;v$r4^$`%0%k!<%W$,(B @code{gnus-group-archive-directory} $B$r4p$K:n@.(B +$B$5$l$^$9!#(B + +@item G k +@kindex G k (Group) +@findex gnus-group-make-kiboze-group +@cindex nnkiboze +kiboze $B%0%k!<%W$r:n@.$7$^$9!#%W%m%s%W%H$GL>A0$H!"(Bkiboze $B%0%k!<%W$K!V4^$a$?(B +$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(B +$B$^$9(B (@code{gnus-group-make-kiboze-group})$B!#(B@xref{Kibozed Groups}$B!#(B + +@item G D +@kindex G D (Group) +@findex gnus-group-enter-directory +@cindex nneething +$BG$0U$N%G%#%l%/%H%j$r(B @code{nneething} $B%P%C%/%(%s%I%K%e!<%:%0%k!<%W$G$"$k(B +$B$+$N$h$&$KFI$_9~$_$^$9(B (@code{gnus-group-enter-directory})$B!#(B +@xref{Anything Groups}. + +@item G f +@kindex G f (Group) +@findex gnus-group-make-doc-group +@cindex ClariNet Briefs +@cindex nndoc +$B%U%!%$%k$J$I$r$b$H$K%0%k!<%W$r:n@.$7$^$9(B +(@code{gnus-group-make-doc-group})$B!#(B $B$3$N%3%^%s%I$K%W%l%U%#%C%/%9$rM?$((B +$B$?>l9g!"%U%!%$%kL>$H%U%!%$%k%?%$%W$r%W%m%s%W%H$GF~NO$7$^$9!#8=:_%5%]!<%H(B +$B$5$l$F$$$k%U%!%$%k%?%$%W$O!"(B @code{babyl}$B!"(B @code{mbox}$B!"(B @code{digest}$B!"(B +@code{mmdf}$B!"(B @code{news}$B!"(B @code{rnews}$B!"(B @code{clari-briefs}$B!"(B +@code{rfc934}$B!"(B @code{rfc822-forward}$B!"(B@code{forward} $B$G$9!#%W%l%U%#%C%/(B +$B%9$J$7$G$3$N%3%^%s%I$r$$$^$9!#(B + +@end table + + + +$B$5$^$6$^$JA*Br%a%=%C%I$K4X$9$k$5$i$J$k>pJs$O(B @xref{Select Methods} $B$r;2(B +$B>H$7$F$/$@$5$$!#(B + +@vindex gnus-activate-foreign-newsgroups +$B$b$7(B @code{gnus-activate-foreign-newsgroups} $B$,@5$N?t$G$"$l$P!"(BGnus $B$O5/(B +$BF0;~$K!"$3$N?t$+$=$l$h$j$b>.$5$$%l%Y%k$N30It%0%k!<%W$rA4$F%A%'%C%/$7$^$9!#(B +$B$3$l$OFC$K0c$C$?(B @sc{nntp} $B%5!<%P$+$i$?$/$5$s$N%0%k!<%W$r9XFI$7$F$$$k>l(B +$B9g$J$I!"$7$P$i$/;~4V$,$+$+$k$+$b$7$l$^$;$s!#(B + +@node Group Parameters +@section $B%0%k!<%W%Q%i%a!<%?(B +@cindex group parameters + +$B%0%k!<%W%Q%i%a!<%?$O!"$"$kFCDj$N%0%k!<%W%m!<%+%k$J>pJs$r3JG<$7$^$9!#(B +$B$3$l$,%0%k!<%W%Q%i%a!<%?%j%9%H$NNc$G$9!#(B + +@example +((to-address . "ding@@gnus.org") + (auto-expire . t)) +@end example + +$B$=$l$>$l$NMWAG$O!V%I%C%H%Z%"!W(B --- $B$D$^$j%I%C%H$NA0$K%-!o$N%j%9%H$K$J(B +$B$j$^$9!#(B + +$B0J2<$N%0%k!<%W%Q%i%a!<%?$,;HMQ$5$l$^$9!#(B + +@table @code +@item to-address +@cindex to-address +$B%U%)%m!<%"%C%W$H%K%e!<%:$X$NEj9F$r$9$k$H$-$K;HMQ$5$l$k%"%I%l%9!#(B + +@example +(to-address . "some@@where.com") +@end example + +$B$3$l$OZ$5$l$k$N$G!"%a%s(B +$B%P!<$O$"$J$?$N%U%)%m!<%"%C%W5-;v$r(B2$BDLe$K$"$C$?$H$7$^$7$g$&!#$3$l$OK\Ev$N%K%e!<%:%0%k!<%W$G$9$,!"%5!<%P$O%a!<(B +$B%k%K%e!<%:%2!<%H%&%'%$$rDL$7$F5-;v$r@\Ej9F$9$k$3$H$OIT2DG=$G!"Be$o$j$K$=$N%a!<%j%s%0%j%9%H$K%a!<%k$rAw(B +$B?.$7$J$1$l$P$J$j$^$;$s!#(B + +@item to-list +@cindex to-list +$B$=$N%0%k!<%W$G(B @kbd{a} $B$r2!$7$?$H$-$K;HMQ$5$l$k%"%I%l%9!#(B + +@example +(to-list . "some@@where.com") +@end example + +$B$3$l$O%U%)%m!<%"%C%W$r$7$?$H$-$O40A4$KL5;k$5$l$^$9(B --- $BNc30$O$=$l$,%K%e!<(B +$B%:%0%k!<%W$rI=$o$7$F$$$k$H$-$O!"(B@kbd{f} $B$r2!$7$?$H$-$K%a!<%k%0%k!<%W$N%k!<(B +$B%k$,E,MQ$5$l$k$H$$$&$3$H$G$9!#(B + +$B$b$7(B @kbd{a} $B%3%^%s%I$r%a!<%k%0%k!<%W$Go$KI=<($5$l$^$9!#(B + +@item broken-reply-to +@cindex broken-reply-to +@code{(broken-reply-to . t)} $B$H$$$&MWAG$,$"$l$P!"$=$N%0%k!<%W$G(B +$B$O(B@code{Reply-To} $B$OL5;k$5$l$k!"$H$$$&0UL#$G$9!#$3$l$O$"$k(B +listserv $B$K$h$k%a!<%j%s%0%j%9%H$r9XFI$7$F$$$F!"$=$l$,(B +@code{Reply-To} $B%X%C%@$r(B listserv $B<+?H$KJV$9$h$&$K$D$1$i$l$F$$$k(B +$B>l9g$KM-8z$G$7$g$&!#$3$l$O$*$+$7$J?6$kIq$$$G$9!#$@$+$i$3$l$,MW$k(B +$B$s$G$9(B! + +@item to-group +@cindex to-group +@code{(to-group . "some.group.name")} $B$H$$$&MWAG$O!"$=$N%0%k!<%W$X$NEj9F(B +$B$OA4$F(B @code{some.group.name} $B$KAw$i$l$k!"$H$$$&0UL#$G$9!#(B + +@item newsgroup +@cindex newsgroup +$B%0%k!<%W%Q%i%a!<%?%j%9%H$K(B @code{(newsgroup . t)} $B$,$"$l$P!"(BGnus $B$OA4$F(B +$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(B +$B$l$O$NJ}K!$K$D$$$F$O(B +@pxref{Expiring Mail} $B$r;2>H$7$F$/$@$5$$!#(B + +@item total-expire +@cindex total-expire +$B%0%k!<%W%Q%i%a!<%?$K(B @code{(total-expire . t)} $B$N$h$&$JMWAG$,$"$l$P!"4{(B +$BFI5-;v$O!"%(%/%9%Q%$%"$N%^!<%/$,$D$$$F$$$J$/$H$bA4$F%(%/%9%Q%$%"=hM}$r;\(B +$B$5$l$^$9!#Cm0U$7$F;HMQ$7$F$/$@$5$$!#L$FI5-;v!"0uIU$-5-;v!"J]N15-;v$O%(%/(B +$B%9%Q%$%"$5$l$^$;$s!#(B + +@item expiry-wait +@cindex expiry-wait +@vindex nnmail-expiry-wait-function +$B%0%k!<%W%Q%i%a!<%?$K(B @code{(expiry-wait . 10)} $B$N$h$&$JMWAG$,$"$l$P!"$3(B +$B$NCM$O5-;v$r%(%/%9%Q%$%"$9$k$H$-$K(B @code{nnmail-expiry-wait} $B$H(B +@code{nnmail-expiry-wait-function} $B$N@_Dj$h$j$bM%@h$5$l$^$9!#$3$NCM$O%((B +$B%/%9%Q%$%"$NF|?t(B($B@0?t$G$"$kI,MW$O$J$$(B)$B$+$b$7$/$O(B @code{never} $B$+(B +@code{immediate} $B$N%7%s%\%k$r;XDj$G$-$^$9!#(B + +@item score-file +@cindex score file group parameter +@code{(score-file . "file")} $B$N$h$&$JMWAG$O!"(B @file{file} $B$r8=:_$N%0%k!<(B +$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(B +$B%U%!%$%k$KF~$j$^$9!#(B + +@item adapt-file +@cindex adapt file group parameter +@code{(adapt-file . "file")} $B$N$h$&$JMWAG$O!"(B@file{file}$B$r8=:_$N%0%k!<%W(B +$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!#(B + +@item admin-address +$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(B +$B<+?H$KAw?.$7$F$O$$$1$^$;$s!#Be$o$j$K4IM}MQ%"%I%l%9$K%a%C%;!<%8$rAw?.$7$^(B +$B$9!#$3$N%Q%i%a!<%?$K$O$I$3$+JXMx$J4IM}MQ%"%I%l%9$r=q$$$F$*$/$3$H$,$G$-$^$9!#(B + +@item display + @code{(display . MODE)} $B$N$h$&$JMWAG$O!"%0%k!<%W$KF~$k$H$-$K$I$N5-;v$r(B +$BI=<($9$k$+$r;XDj$7$^$9!#M-8z$JCM$O!"(B + +@table @code +@item all +$BL$FI!"4{FI5-;v$NN>J}$rA4$FI=<($7$^$9!#(B + +@item default +$B%G%U%)%k%H$NI=<(5-;v$rI=<($7$^$9!#$3$l$ODL>o$OL$FI5-;v$H0uIU$-5-;v$G$9!#(B +@end table + +@item comment +@code{(comment . "This is a comment")} $B$N$h$&$JMWAG$O!"$=$N%0%k!<%W$KBP(B +$B$9$kG$0U$N%3%a%s%H$G$9!#$3$l$O8=:_$O(B Gnus $B$K$OL5;k$5$l$^$9$,!"FCDj$N%0%k!<(B +$B%W$KBP$9$k>pJs$r3JG<$9$k>l=j$rDs6!$7$^$9!#(B + +@item @var{(variable form)} +$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!<(B +$B%?$r;HMQ$9$k$3$H$,$G$-$^$9!#(B@samp{news.answers} $B$K$*$$$F%9%l%C%II=<($r9T(B +$B$$$?$/$J$$$H$-$O!"$=$N%0%k!<%W$K%0%k!<%W%Q%i%a!<%?$K(B +@code{(gnus-show-threads nil)} $B$H=q$1$^$9!#(B @code{gnus-show-threads} $B$O!"(B +$B$=$N%5%^%j%P%C%U%!$NCf$N%m!<%+%kJQ?t$K$J$j!"(Bform $B$N(B @code{nil} $B$O$=$3$G(B +$BI>2A$5$l$^$9!#(B + +$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(B +$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!<(B +$B%?$K(B @code{(dummy-variable (ding))} $B$_$?$$$J$b$N$r=q$$$F$*$/$3$H$b$G$-$^(B +$B$9!#(B@code{dummy-variable} $B$H$$$&JQ?t$K(B @code{(ding)} $B$NI>2A7k2L$,@_Dj$5(B +$B$l$^$9$,!"$^$"!"C/$b5$$K$7$J$$$G$7$g(B? + +@end table + +$B%0%k!<%W%Q%i%a!<%?$N=$@5$K$O(B @kbd{G p} $B%3%^%s%I$r;H$C$F$/$@$5$$!#%H%T%C(B +$B%/%Q%i%a!<%?$K$D$$$FFI$s$G$_$k$3$H$bLLGr$$$G$7$g$&(B +(@pxref{Topic Parameters})$B!#(B + +@node Listing Groups +@section $B%0%k!<%W$N0lMwI=<((B +@cindex group listing + +$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!#(B + +@table @kbd + +@item l +@itemx A s +@kindex A s (Group) +@kindex l (Group) +@findex gnus-group-list-groups +$BL$FI5-;v$r;}$DA4$F$N%0%k!<%W$rI=<($7$^$9(B (@code{gnus-group-list-groups})$B!#(B +$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(B +$B%k$N%0%k!<%W$N$_$rI=<($7$^$9!#%G%U%)%k%H$G$O!"$3$l$O%l%Y%k(B 5 ($B$D$^$j(B +@code{gnus-group-default-list-level}) $B$+$=$l$h$j>.$5$$%l%Y%k(B($B$9$J$o$A9X(B +$BFI$7$F$$$k%0%k!<%W$N$_(B)$B$rI=<($7$^$9!#(B + +@item L +@itemx A u +@kindex A u (Group) +@kindex L (Group) +@findex gnus-group-list-all-groups +$BL$FI5-;v$N$"$k$J$7$K4X$o$i$:!"A4$F$N%0%k!<%W$rI=<($7$^$9(B +(@code{gnus-group-list-all-groups})$B!#?t;z%W%l%U%#%C%/%9$r;HMQ$9$k$H!"$3(B +$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!#(B +$B%G%U%)%k%H$G$O(B 7 $B$+$=$l$h$j$b>.$5$$%l%Y%k$N%0%k!<%W(B($B$9$J$o$A9XFI!"Hs9XFI(B +$B$N%0%k!<%W$N$_(B)$B$,I=<($5$l$^$9!#(B + +@item A l +@kindex A l (Group) +@findex gnus-group-list-level +$B$"$kFCDj$N%l%Y%k$NL$FI5-;v$N$"$k%0%k!<%W$rI=<($7$^$9(B +(@code{gnus-group-list-level})$B!#%W%l%U%#%C%/%9$rM?$($k$H!"L$FI5-;v$N$J$$(B +$B%0%k!<%W$b4^$a$FI=<($7$^$9!#(B + +@item A k +@kindex A k (Group) +@findex gnus-group-list-killed +kill $B$5$l$?%0%k!<%W$rA4$FI=<($7$^$9(B (@code{gnus-group-list-killed})$B!#%W(B +$B%l%U%#%C%/%90z?t$rM?$($k$H!"8=:_9XFI!"Hs9XFI$H$J$C$F$$$J$$A4$F$NMxMQ2DG=(B +$B$J%0%k!<%W$rI=<($7$^$9!#$3$l$O%5!<%P$+$i%"%/%F%#%V%U%!%$%k$rFI$`$3$H$K$J(B +$B$k$G$7$g$&!#(B + +@item A z +@kindex A z (Group) +@findex gnus-group-list-zombies +$BA4$F$N%>%s%S%0%k!<%W$rI=<($7$^$9(B (@code{gnus-group-list-zombies})$B!#(B + +@item A m +@kindex A m (Group) +@findex gnus-group-list-matching +$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(B +$B$FI=<($7$^$9(B (@code{gnus-group-list-matching})$B!#(B + +@item A M +@kindex A M (Group) +@findex gnus-group-list-all-matching +$B@55,I=8=$K%^%C%A$9$k%0%k!<%W$rI=<($9$k(B +(@code{gnus-group-list-all-matching})$B!#(B + +@item A A +@kindex A A (Group) +@findex gnus-group-list-active +$B:#@\B3$7$F$$$k%5!<%P$N%"%/%F%#%V%U%!%$%k$K$"$k%0%k!<%W$r!"K\Ev$KA4ItI=<($7(B +$B$^$9(B (@code{gnus-group-list-active})$B!#$3$l$O$7$P$i$/;~4V$,$+$+$k$3$H$bM-(B +$B$jF@$^$9!#$?$V$s(B @kbd{A M} $B$r/3d$j0z$$$FA0$r;}$D%0%k!<%W$rA4$FI=<($9$k(B +(@code{gnus-group-apropos})$B!#(B + +@item A d +@kindex A d (Group) +@findex gnus-group-description-apropos +$B@55,I=8=$K%^%C%A$9$kL>A0$+@bL@J8$r;}$D%0%k!<%W$rA4$FI=<($9$k(B +(@code{gnus-group-description-apropos})$B!#(B + +@end table + +@vindex gnus-permanently-visible-groups +@cindex visible group parameter +@code{gnus-permanently-visible-groups} $B@55,I=8=$K%^%C%A$9$k%0%k!<%W$O!"(B +$BL$FI5-;v$,$"$k$+$J$$$+$K4X$o$i$:>o$KI=<($5$l$^$9!#$"$k$$$O%0%k!<%W%Q%i%a!<(B +$B%?$K$*$$$F(B @code{visible} $BMWAG$rDI2C$9$k$3$H$G$bF1MM$N8z2L$rF@$k$3$H$,$G(B +$B$-$^$9!#(B + +@vindex gnus-list-groups-with-ticked-articles +$B0uIU$-$N5-;v$N$_$r;}$D%0%k!<%W$ODL>o%0%k!<%W%P%C%U%!$KI=<($5$l$^$9!#$b$7(B +@code{gnus-list-groups-with-ticked-articles} $B$,(B @code{nil} $B$G$"$l$P!"$=(B +$B$N%0%k!<%W$O40A4$K6u$N%0%k!<%W$G$"$k$+$N$h$&$K07$o$l$^$9!#%G%U%)%k%H$O(B +@code{t} $B$G$9!#(B + +@node Sorting Groups +@section $B%0%k!<%W$N%=!<%H(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}) $B%3%^%s%I$O!"%0%k!<%W%P%C%U%!$r(B +@code{gnus-group-sort-function} $BJQ?t$GM?$($i$l$k4X?t$K=>$C$F%=!<%H$7$^$9!#(B +$BMxMQ2DG=$J%=!<%H4X?t$K$O0J2<$N$b$N$,$"$j$^$9!#(B + +@table @code + +@item gnus-group-sort-by-alphabet +@findex gnus-group-sort-by-alphabet +$B%0%k!<%WL>$G%"%k%U%!%Y%C%H=g$K%=!<%H$7$^$9!#$3$l$O%G%U%)%k%H$G$9!#(B + +@item gnus-group-sort-by-real-name +@findex gnus-group-sort-by-real-name +$B%0%k!<%W$rK\Ev$N(B($BA0$K2?$b$D$$$F$$$J$$(B)$B%0%k!<%WL>$G%"%k%U%!%Y%C%H=g$K%=!<(B +$B%H$7$^$9!#(B + +@item gnus-group-sort-by-level +@findex gnus-group-sort-by-level +$B%0%k!<%W%l%Y%k$G%=!<%H$7$^$9!#(B + +@item gnus-group-sort-by-score +@findex gnus-group-sort-by-score +$B%0%k!<%W$N%9%3%"$G%=!<%H$7$^$9(B @xref{Group Score}$B!#(B + +@item gnus-group-sort-by-rank +@findex gnus-group-sort-by-rank +$B%0%k!<%W$N%9%3%"$G%=!<%H$7!"l9g!"$b$C$H$b=EMW$J%=!<%H%-!<$r;}$D4X?t$O:G8e$G$J$/$F$O$J$j$^$;$s!#(B + +$B$"$k@\%=!<%H$9$k%3%^%s%I$b$$$/$D$+$"$j$^$9!#(B + +@table @kbd +@item G S a +@kindex G S a (Group) +@findex gnus-group-sort-groups-by-alphabet +$B%0%k!<%W%P%C%U%!$r%0%k!<%WL>$N%"%k%U%!%Y%C%H=g$G%=!<%H$7$^$9(B +(@code{gnus-group-sort-groups-by-alphabet})$B!#(B + +@item G S u +@kindex G S u (Group) +@findex gnus-group-sort-groups-by-unread +$B%0%k!<%W%P%C%U%!$rL$FI5-;v$N?t$G%=!<%H$7$^$9(B +(@code{gnus-group-sort-groups-by-unread})$B!#(B + +@item G S l +@kindex G S l (Group) +@findex gnus-group-sort-groups-by-level +$B%0%k!<%W%P%C%U%!$r%0%k!<%W%l%Y%k$G%=!<%H$7$^$9(B +(@code{gnus-group-sort-groups-by-level})$B!#(B + +@item G S v +@kindex G S v (Group) +@findex gnus-group-sort-groups-by-score +$B%0%k!<%W%P%C%U%!$r%0%k!<%W$N%9%3%"$G%=!<%H$7$^$9(B +(@code{gnus-group-sort-groups-by-score})$B!#(B @xref{Group Score}$B!#(B + +@item G S r +@kindex G S r (Group) +@findex gnus-group-sort-groups-by-rank +$B%0%k!<%W%P%C%U%!$r%0%k!<%W$N%i%s%/$G%=!<%H$7$^$9(B +(@code{gnus-group-sort-groups-by-rank})$B!#(B @xref{Group Score}$B!#(B + +@item G S m +@kindex G S m (Group) +@findex gnus-group-sort-groups-by-method +$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(B +(@code{gnus-group-sort-groups-by-method})$B!#(B + +@end table + +$B%W%l%U%#%C%/%9$rM?$($?$H$-$O!"$3$l$i$N%3%^%s%I$OA4$F5U=g$K%=!<%H$7$^$9!#(B + +$B$^$?!"%0%k!<%W$N0lIt$KBP$7$F%=!<%H$9$k$3$H$b$G$-$^$9!#(B + +@table @kbd +@item G P a +@kindex G P a (Group) +@findex gnus-group-sort-selected-groups-by-alphabet +$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"(B +$B%0%k!<%WL>$N%"%k%U%!%Y%C%H=g$G%=!<%H$7$^$9(B +(@code{gnus-group-sort-selected-groups-by-alphabet})$B!#(B + +@item G P u +@kindex G P u (Group) +@findex gnus-group-sort-selected-groups-by-unread +$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"(B +$BL$FI5-;v$N?t$G%=!<%H$7$^$9(B +(@code{gnus-group-sort-selected-groups-by-unread})$B!#(B + +@item G P l +@kindex G P l (Group) +@findex gnus-group-sort-selected-groups-by-level +$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"(B +$B%0%k!<%W%l%Y%k$G%=!<%H$7$^$9(B (@code{gnus-group-sort-selected-groups-by-level})$B!#(B + +@item G P v +@kindex G P v (Group) +@findex gnus-group-sort-selected-groups-by-score +$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"(B +$B%0%k!<%W$N%9%3%"$G%=!<%H$7$^$9(B +(@code{gnus-group-sort-selected-groups-by-score})$B!#(B @xref{Group Score}$B!#(B + +@item G P r +@kindex G P r (Group) +@findex gnus-group-sort-selected-groups-by-rank +$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"(B +$B%0%k!<%W$N%i%s%/$G%=!<%H$7$^$9(B +(@code{gnus-group-sort-selected-groups-by-rank})$B!#(B @xref{Group Score}$B!#(B + +@item G P m +@kindex G P m (Group) +@findex gnus-group-sort-selected-groups-by-method +$B%0%k!<%W%P%C%U%!Fb$N%W%m%;%9%^!<%/!&%W%l%U%#%C%/%9;XDj$5$l$?%0%k!<%W$r!"(B +$B%P%C%/%(%s%I$NL>A0$G%"%k%U%!%Y%C%H=g$K%=!<%H$7$^$9(B +(@code{gnus-group-sort-selected-groups-by-method})$B!#(B + +@end table + + + +@node Group Maintenance +@section $B%0%k!<%W$N@0M}(B +@cindex bogus groups + +@table @kbd +@item b +@kindex b (Group) +@findex gnus-group-check-bogus-groups +$BIT@5$J%0%k!<%W$r8+$D$1$F!":o=|$7$^$9(B +(@code{gnus-group-check-bogus-groups})$B!#(B + +@item F +@kindex F (Group) +@findex gnus-group-find-new-groups +$B?7$7$$%0%k!<%W$r8+$D$1$F!"$=$l$i$r=hM}$7$^$9(B +(@code{gnus-group-find-new-groups})$B!#%W%l%U%#%C%/%9$rM?$($k$H!"%5!<%P$K(B +$B?75,%0%k!<%W$rLd$$9g$o$;$k$N$K(B @code{ask-server} $B$NJ}K!$r;HMQ$7$^$9!#(B + +@item C-c C-x +@kindex C-c C-x (Group) +@findex gnus-group-expire-articles +$B8=:_$N%0%k!<%W$N%(%/%9%Q%$%"5-;v$KBP$7$F(B($B$b$7$"$l$P(B)$BA4$F%(%/%9%Q%$%"=hM}$r9T$$(B +$B$^$9(B (@code{gnus-group-expire-articles})$B!#(B + +@item C-c M-C-x +@kindex C-c M-C-x (Group) +@findex gnus-group-expire-all-groups +$BA4$F$N%0%k!<%W$NA4$F$N5-;v$KBP$7$F!"%(%/%9%Q%$%"=hM}$r9T$$$^$9(B +(@code{gnus-group-expire-all-groups})$B!#(B + +@end table + + +@node Browse Foreign Server +@section $B30It%5!<%P$N%V%i%&%:(B +@cindex foreign servers +@cindex browsing servers + +@table @kbd +@item B +@kindex B (Group) +@findex gnus-group-browse-foreign-server +$BA*Br%a%=%C%I$H%5!<%PL>$rJ9$+$l$^$9!#(BGnus $B$O$3$N%5!<%P$K@\B3$7!"$=$3$K$"(B +$B$k%0%k!<%W$r%V%i%&%:$7$h$&$H$7$^$9(B (@code{gnus-group-browse-foreign-server})$B!#(B + +@end table + +@findex gnus-browse-mode +$BMxMQ2DG=$J%0%k!<%W$N%j%9%H$r;}$C$??7$7$$%P%C%U%!$,8=$l$^$9!#$3$N%P%C%U%!(B +$B$O(B @code{gnus-browse-mode} $B$r;HMQ$7$^$9!#$3$N%P%C%U%!$ODL>o$N%0%k!<%W%P%C(B +$B%U%!$K$A$g$C$H(B($B$H$$$&$+!"$H$C$F$b(B)$B;w$F$$$^$9!#(B + +$B$3$l$,%V%i%&%:%b!<%I$G;HMQ$G$-$k%-!l9g$O9XFI$9$k$3$H$K$J$k$N$@$1$l(B +$B$I(B (@code{gnus-browse-unsubscribe-current-group})$B!#(B + +@item l +@itemx q +@kindex q (Browse) +@kindex l (Browse) +@findex gnus-browse-exit +$B%V%i%&%:%b!<%I$r=*N;$7$^$9(B (@code{gnus-browse-exit})$B!#(B + +@item ? +@kindex ? (Browse) +@findex gnus-browse-describe-briefly +$B%V%i%&%:%b!<%I$r4JC1$K@bL@$7$^$9(B($B$^$"!"Bg$7$F@bL@$9$k$3$H$b$J$$$s$@$1$I$5(B) +(@code{gnus-browse-describe-briefly})$B!#(B + +@end table + + +@node Exiting Gnus +@section Gnus $B$N=*N;(B +@cindex exiting Gnus + +$B$=$&!"(BGnus $B$O:G8e(B($B%5%$%3!<(B)$B$G$9(B($BLuCm(B: $B$/!"6l$7$$!#86J8$O(B "Yes, +Gnus is ex(c)iting.")$B!#(B + +@table @kbd +@item z +@kindex z (Group) +@findex gnus-group-suspend +Gnus $B$rCfCG$7$^$9(B (@code{gnus-group-suspend})$B!#$3$l$O(B Gnus $B$OK\(B +$BEv$K$O=*N;$;$:!"%0%k!<%W%P%C%U%!0J30$NA4$F$N%P%C%U%!$r>C$9$@$1$G(B +$B$9!#KM$O$3$l$G2?$,F@$9$k$N$+$h$/$o$+$s$J$$$s$@$1$I!"C/$+J,$+$k?M(B +$B$$$k(B? + +@item q +@kindex q (Group) +@findex gnus-group-exit +@c @icon{gnus-group-exit} +Gnus $B$r=*N;$7$^$9(B(@code{gnus-group-exit})$B!#(B + +@item Q +@kindex Q (Group) +@findex gnus-group-quit +@file{.newsrc} $B%U%!%$%k$r%;!<%V$;$:$K(B Gnus $B$r=*N;$7$^$9(B +(@code{gnus-group-quit})$B!#%I%j%V%k%U%!%$%k$O%;!<%V$5$l$^$9$1$I(B +(@pxref{Auto Save})$B!#(B +@end table + +@vindex gnus-exit-gnus-hook +@vindex gnus-suspend-gnus-hook +Gnus $B$rCfCG$9$k$H$-$O(B @code{gnus-suspend-gnus-hook} $B$,8F$S=P$5$l$^$9!#(BGnus +$B$r=*N;$9$k$H$-$O(B @code{gnus-exit-gnus-hook} $B$,8F$S=P$5$l!"$5$i$K(B Gnus $B$r(B +$B=*N;$9$k$H$-$N:G8e$H$7$F(B @code{gnus-after-exiting-gnus-hook} $B$,8F$S=P$5(B +$B$l$^$9!#(B + +@findex gnus-unload +@cindex unloading +$B$b$7(B Gnus $B$H$=$l$K4XO"$9$k$b$N$r40A4$K=hJ,$7$?$$$N$G$"$l$P!"(B +@code{gnus-unload} $B%3%^%s%I$,;H$($^$9!#$3$N%3%^%s%I$O!"%a%?JQ?t$r%+%9%?(B +$B%^%$%:$7$h$&$H$7$F$$$k$H$-$K$bJXMx$G$9!#(B + +Note: + +@quotation +$B%_%9(B Lisa Cannifax $B$O1Q8l$N/G/$,H`=w$N(B +$B%W%i%9%F%#%C%/$N0X;R$NGX1[$7$K!"1tI.$G7+$jJV$7@~$rIA$/$N$K$D$i$l(B +$B$F!"B-$,$7$S$l$F=E$/$J$j!"0U<1$,[/[0$H$7$F$-$^$7$?!#(B +@end quotation + + +@node Group Topics +@section Group Topics +@cindex topics + +$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(B +$B%/Kh$K3,AXJ,$1$G$-$k$HJXMx$G$7$g$&!#(BEmacs $B$N%0%k!<%W$r$3$C$A$X!"%;%C%/%9(B +$B$N%0%k!<%W$r$"$C$A$X!"$G!";D$j$r(B($B$((B? $B%0%k!<%W$,(B2$B$D$/$i$$$7$+$J$$$N(B?)$B$N%;%/%7%g%s$KF~$l$^$7$g$&!#$"$k$$$O(B Emacs $B%;%C%/(B +$B%9$N%0%k!<%W$r(B Emacs $B%0%k!<%W!"%;%C%/%9%0%k!<%W$N$I$A$i$+$NI{%H%T%C%/$H(B +$B$9$k$3$H$5$($b$G$-$^$9(B --- $B$"$k$$$ON>J}$K(B! $B$9$s$4$$$G$7$g$&(B! + +@iftex +@iflatex +\gnusfigure{Group Topics}{400}{ +\put(75,50){\epsfig{figure=tmp/group-topic.ps,height=9cm}} +} +@end iflatex +@end iftex + +$B$3$l$,Nc$G$9!#(B + +@example +Gnus + Emacs -- $B$3$$$D$O$9$2!<$<(B! + 3: comp.emacs + 2: alt.religion.emacs + $B$($C$A$J(B Emacs + 452: alt.sex.emacs + 0: comp.talk.emacs.recovery + $B$=$NB>(B + 8: comp.binaries.fractals + 13: comp.sources.unix +@end example + +@findex gnus-topic-mode +@kindex t (Group) +$B$3$N(B @emph{$BAG@2$i$7$$(B}$B5!G=$r;H$&$K$O!"(B@code{gnus-topic} $B%^%$%J!<%b!<(B +$B%I$r(B($B2?$H(B!)$BC1$K%9%$%C%A%*%s$9$k$@$1(B --- $B%0%k!<%W%P%C%U%!$G!"(B @kbd{t} $B$r(B +$B2!$7$F$/$@$5$$(B($B$3$l$O%H%0%k%3%^%s%I$G$9(B)$B!#(B + +$B$5$"$d$C$F$_$h$&!#$H$K$+$/;n$7$F$_$F!#(B $B7/$,La$C$F$/$k$^$G!"KM$O$3$3$GBT$C(B +$B$F$k$+$i$5!#%i%i!"%?%i%i%s!D$s!"$$$$6J$@$M!"$3$l!D%i!"%i!"%i!D$((B? $BLa$C$F(B +$B$-$?(B? $B$h$7!"$8$cv$^$l$^$9!#$3$l!"$H$C$F$b(B +$B%9%F%-$@$H;W$&$s$@$1$I!#(B + +@vindex gnus-topic-line-format +$B%H%T%C%/9T$O!"(B@code{gnus-topic-line-format} $BJQ?t$NCM$K=>$C$F:n@.$5$l$^$9(B +(@pxref{Formatting Variables})$B!#M-8z$JMWAG$O!"(B + +@table @samp +@item i +$B;z2<$2!#(B +@item n +$B%H%T%C%/L>!#(B +@item v +$B8+$($k$+$I$&$+!#(B +@item l +$B%l%Y%k!#(B +@item g +$B%H%T%C%/Cf$N%0%k!<%W$N?t!#(B +@item a +$B%H%T%C%/Cf$NL$FI5-;v$N?t!#(B +@item A +$B%H%T%C%/$HA4$F$NI{%H%T%C%/$NL$FI5-;v$N?t!#(B +@end table + +@vindex gnus-topic-indent-level +$B3FI{%H%T%C%/(B($B$HI{%H%T%C%/Fb$N%0%k!<%W(B)$B$O!"%H%T%C%/%l%Y%k?t$N(B +@code{gnus-topic-indent-level} $BG\$N6uGrJ,$N;z2<$2$,9T$o$l$^$9!#%G%U%)%k(B +$B%H$O(B 2 $B$G$9!#(B + +@vindex gnus-topic-mode-hook +@code{gnus-topic-mode-hook} $B$O%H%T%C%/%^%$%J!<%b!<%I%P%C%U%!$G8F$S=P$5$l(B +$B$^$9!#(B + +@vindex gnus-topic-display-empty-topics +@code{gnus-topic-display-empty-topics} $B$O%H%T%C%/$NCf$KL$FI5-;v(B +$B$,L5$$>l9g$G$b$=$N%H%T%C%/$rI=<($9$k$h$&$K$7$^$9!#%G%U%)%k%H$O(B +@code{t} $B$G$9!#(B + +@node Topic Commands +@subsection $B%H%T%C%/%3%^%s%I(B +@cindex topic commands + +$B%H%T%C%/%^%$%J!<%b!<%I$,M-8z$G$"$k$H$-$O!"(B@kbd{T} $B%5%V%^%C%W$,?7(B +$B$7$/MxMQ$G$-$k$h$&$K$J$j$^$9!#$5$i$KI8=`%-!<$NCf$G$b!"Dj5A$,$A$g$C(B +$B$HJQ$o$k$b$N$,>/$7$"$j$^$9!#(B + +@table @kbd + +@item T n +@kindex T n (Topic) +@findex gnus-topic-create-topic +$B?7$7$$%H%T%C%/$NL>A0$r%W%m%s%W%HF~NO$7!"$=$l$r:n@.$7$^$9(B +(@code{gnus-topic-create-topic})$B!#(B + +@item T m +@kindex T m (Topic) +@findex gnus-topic-move-group +$B8=:_$N%0%k!<%W$r!"$I$3$+B>$N%H%T%C%/$K0\F0$5$;$^$9(B +(@code{gnus-topic-move-group})$B!#$3$N%3%^%s%I$O%W%m%;%9%^!<%/!&%W(B +$B%l%U%#%C%/%9%k!<%k$K=>$$$^$9(B (@pxref{Process/Prefix})$B!#(B + +@item T c +@kindex T c (Topic) +@findex gnus-topic-copy-group +$B8=:_$N%0%k!<%W$r!"$I$3$+B>$N%H%T%C%/$K%3%T!<$7$^$9(B +(@code{gnus-topic-copy-group})$B!#$3$N%3%^%s%I$O%W%m%;%9%^!<%/!&%W(B +$B%l%U%#%C%/%9%k!<%k$K=>$$$^$9(B (@pxref{Process/Prefix})$B!#(B + +@item T D +@kindex T D (Topic) +@findex gnus-topic-remove-group +$B%0%k!<%W$r8=:_$N%H%T%C%/$+$i:o=|$7$^$9(B +(@code{gnus-topic-remove-group})$B!#$3$N%3%^%s%I$O%W%m%;%9%^!<%/!&(B +$B%W%l%U%#%C%/%9%k!<%k$K=>$$$^$9(B (@pxref{Process/Prefix})$B!#(B + +@item T M +@kindex T M (Topic) +@findex gnus-topic-move-matching +$B@55,I=8=$K%^%C%A$9$kA4$F$N%0%k!<%W$r!"$"$k%H%T%C%/$K0\F0$5$;$^$9(B +(@code{gnus-topic-move-matching})$B!#(B + +@item T C +@kindex T C (Topic) +@findex gnus-topic-copy-matching +$B@55,I=8=$K%^%C%A$9$kA4$F$N%0%k!<%W$r!"$"$k%H%T%C%/$K%3%T!<$7$^$9(B +(@code{gnus-topic-copy-matching})$B!#(B + +@item T h +@kindex T h (Topic) +@findex gnus-topic-toggle-display-empty-topics +$B6u$N%H%T%C%/$NI=<(!&HsI=<($r@Z$jBX$($^$9(B +(@code{gnus-topic-toggle-display-empty-topics})$B!#(B + +@item T # +@kindex T # (Topic) +@findex gnus-topic-mark-topic +$B8=:_$N%H%T%C%/$K$"$k%0%k!<%WA4$F$K%W%m%;%9%^!<%/$r$D$1$^$9(B +(@code{gnus-topic-mark-topic})$B!#(B + +@item T M-# +@kindex T M-# (Topic) +@findex gnus-topic-unmark-topic +$B8=:_$N%H%T%C%/$K$"$kA4$F$N%0%k!<%W$+$i%W%m%;%9%^!<%/$r>C$7$^$9(B +(@code{gnus-topic-unmark-topic})$B!#(B + +@item RET +@kindex RET (Topic) +@findex gnus-topic-select-group +@itemx SPACE +$B%0%k!<%W$rA*Br$9$k$+!"$"$k$$$O%H%T%C%/$r@^$j$?$?$_$^$9(B +(@code{gnus-topic-select-group})$B!#%0%k!<%W$N>e$G$3$N%3%^%s%I$roDL$j$=$N%0%k!<%W$KF~$j$^$9!#%H%T%C%/9T$N>e$G9T$&$H!"(B +$B$=$N%H%T%C%/$O(B($B4{$KI=<($5$l$F$$$k$H$-$O(B)$B@^$j$?$?$^$l$k$+!"(B($B4{$K(B +$B@^$j$?$?$^$l$F$$$k$H$-$O(B)$BE83+$5$l$^$9!#$D$^$j%H%T%C%/$KBP$7$F$O(B +$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!"(B +$B$=$N%l%Y%k(B($B$H$=$l$h$j$b>.$5$$%l%Y%k(B)$B$N%0%k!<%W$,I=<($5$l$^$9!#(B + +@item T TAB +@kindex T TAB (Topic) +@findex gnus-topic-indent +$B8=:_$N%H%T%C%/$N!V;z2<$2!W$r9T$$!"$=$NA0$N%H%T%C%/$NI{%H%T%C%/$K(B +$B$7$^$9(B (@code{gnus-topic-indent})$B!#%W%l%U%#%C%/%9$rM?$($k$H!"H?(B +$BBP$K$=$N%H%T%C%/$N;z2<$2$rLa$7$^$9!#(B + +@item C-k +@kindex C-k (Topic) +@findex gnus-topic-kill-group +$B%0%k!<%W$"$k$$$O%H%T%C%/$r(B kill $B$7$^$9(B +(@code{gnus-topic-kill-group})$B!#%H%T%C%/Fb$K$"$C$?%0%k!<%W$bA4$F!"(B +$B%H%T%C%/$H0l=o$K:o=|$5$l$^$9!#(B + +@item C-y +@kindex C-y (Topic) +@findex gnus-topic-yank-group +$BD>A0$N(B kill $B$5$l$?%0%k!<%W$"$k$$$O%H%T%C%/$r(B yank $B$7$^$9(B +(@code{gnus-topic-yank-group})$B!#A4$F$N%H%T%C%/$O!"A4$F$N%0%k!<%W(B +$B$NA0$K(B yank $B$5$l$k$3$H$K5$$r$D$1$F$/$@$5$$!#(B + +@item T r +@kindex T r (Topic) +@findex gnus-topic-rename +$B%H%T%C%/$NL>A0$rJQ99$9$k(B (@code{gnus-topic-rename})$B!#(B + +@item T DEL +@kindex T DEL (Topic) +@findex gnus-topic-delete +$B6u$N%H%T%C%/$r:o=|$9$k(B (@code{gnus-topic-delete})$B!#(B + +@item A T +@kindex A T (Topic) +@findex gnus-topic-list-active +Gnus $B$,CN$C$F$$$k%H%T%C%/2=$5$l$?%0%k!<%W$rA4$FI=<($7$^$9(B +(@code{gnus-topic-list-active})$B!#(B + +@item G p +@kindex G p (Topic) +@findex gnus-topic-edit-parameters +@cindex group parameters +@cindex topic parameters +@cindex parameters +$B%H%T%C%/%Q%i%a!<%?$r=$@5$7$^$9(B (@code{gnus-topic-edit-parameters})$B!#(B +@xref{Topic Parameters}$B!#(B + +@end table + + +@node Topic Sorting +@subsection $B%H%T%C%/$N%=!<%H(B +@cindex topic sorting + +$B0J2<$K<($9%3%^%s%I$G!"3F%H%T%C%/Kh$KJL!9$K%0%k!<%W$r%=!<%H$G$-$^$9!#(B + + +@table @kbd +@item T S a +@kindex T S a (Topic) +@findex gnus-topic-sort-groups-by-alphabet +$B8=:_$N%H%T%C%/$r%0%k!<%WL>$N%"%k%U%!%Y%C%H=g$G%=!<%H$7$^$9(B +(@code{gnus-topic-sort-groups-by-alphabet})$B!#(B + +@item T S u +@kindex T S u (Topic) +@findex gnus-topic-sort-groups-by-unread +$B8=:_$N%H%T%C%/$rL$FI5-;v$N?t$G%=!<%H$7$^$9(B +(@code{gnus-topic-sort-groups-by-unread})$B!#(B + +@item T S l +@kindex T S l (Topic) +@findex gnus-topic-sort-groups-by-level +$B8=:_$N%H%T%C%/$r%0%k!<%W$N%l%Y%k$G%=!<%H$7$^$9(B +(@code{gnus-topic-sort-groups-by-level})$B!#(B + +@item T S v +@kindex T S v (Topic) +@findex gnus-topic-sort-groups-by-score +$B8=:_$N%H%T%C%/$r%0%k!<%W$N%9%3%"$G%=!<%H$7$^$9(B +(@code{gnus-topic-sort-groups-by-score})$B!#(B @xref{Group Score}$B!#(B + +@item T S r +@kindex T S r (Topic) +@findex gnus-topic-sort-groups-by-rank +$B8=:_$N%H%T%C%/$r%0%k!<%W$N%i%s%/$G%=!<%H$7$^$9(B +(@code{gnus-topic-sort-groups-by-rank})$B!#(B @xref{Group Score}$B!#(B + +@item T S m +@kindex T S m (Topic) +@findex gnus-topic-sort-groups-by-method +$B8=:_$N%H%T%C%/$r%P%C%/%(%s%I$NL>A0$G%"%k%U%!%Y%C%H=g$K%=!<%H$7$^(B +$B$9(B (@code{gnus-topic-sort-groups-by-method})$B!#(B + +@end table + +$B%0%k!<%W$N%=!<%H$K$D$$$F$N$5$i$J$k>pJs$O!"(B@xref{Sorting Groups} +$B$r;2>H$7$F$/$@$5$$!#(B + +@node Topic Topology +@subsection $B%H%T%C%/$N0LAj9=B$(B +@cindex topic topology +@cindex topology + +$B$=$l$G$O!"%0%k!<%W%P%C%U%!$NNc$r8+$F$$$-$^$7$g$&!#(B + +@example +Gnus + Emacs -- $B$3$$$D$O$9$2!<$<(B! + 3: comp.emacs + 2: alt.religion.emacs + $B$($C$A$J(B Emacs + 452: alt.sex.emacs + 0: comp.talk.emacs.recovery + $B$=$NB>(B + 8: comp.binaries.fractals + 13: comp.sources.unix +@end example + +$B$D$^$j!"$3$3$G$O0l$D$N%H%C%W%l%Y%k$N%H%T%C%/(B (@samp{Gnus}) $B$,$"(B +$B$j!"$=$N2<$K(B2$B$D$N%H%T%C%/$,$"$j!"$=$N$&$A$N0lJ}$NI{%H%T%C%/Cf$K(B +$B0l$DI{%H%T%C%/$,$"$j$^$9(B($B%H%C%W%l%Y%k%H%T%C%/$O>o$K0l$D$7$+$"$j(B +$B$^$;$s(B)$B!#$3$N9=B$$O!"0J2<$N$h$&$KI=8=$G$-$^$9!#(B + +@lisp +(("Gnus" visible) + (("Emacs -- $B$3$$$D$O$9$2!<$<(B!" visible) + (("$B$($C$A$J(B Emacs" visible))) + (("$B$=$NB>(B" visible))) +@end lisp + +@vindex gnus-topic-topology +$B$3$l$Oe5-$NI=<($r9T$&$?$a$N!"JQ?t(B +@code{gnus-topic-topology} $B$NCM$=$N$b$N$J$N$G$9!#$3$NJQ?t$O(B +@file{.newsrc.eld} $B%U%!%$%k$KJ]B8$5$l!"$N%9%?!<(B +$B%H%"%C%W%U%!%$%k$N@_Dj$K$OA4$/1F6A$rM?$($^$;$s!#(B + +$B$3$N9=B$$O!"$I$N%H%T%C%/$,$I$N%H%T%C%/$NI{%H%T%C%/$G$"$k$+$H!"$I(B +$B$N%H%T%C%/$,I=<($5$l$F$$$k$+$r<($7$F$$$^$9!#8=:_$OFs$D$N@_DjCM(B +--- @code{visible} $B$H(B @code{invisible} $B$,5v$5$l$F$$$^$9!#(B + + +@node Topic Parameters +@subsection $B%H%T%C%/%Q%i%a!<%?(B +@cindex topic parameters + +$B%H%T%C%/Fb$NA4$F$N%0%k!<%W$O%0%k!<%W%Q%i%a!<%?$r!"$=$N?F(B($B$H@hAD(B) +$B$N%H%T%C%/%Q%i%a!<%?$+$i7Q>5$7$^$9!#%0%k!<%W%Q%i%a!<%?$H$7$F@5$7(B +$B$$$b$N$OA4$F!"%H%T%C%/%Q%i%a!<%?$H$7$F$b@5$7$$$b$N$G$9(B +(@pxref{Group Parameters})$B!#(B + +$B%0%k!<%W%Q%i%a!<%?$O(B($B$b$A$m$s(B)$B%H%T%C%/%Q%i%a!<%?$h$j$bM%@h$5$l!"(B +$BI{%H%T%C%/$N%H%T%C%/%Q%i%a!<%?$O?F%H%T%C%/$N%H%T%C%/%Q%i%a!<%?$h(B +$B$j$bM%@h$5$l$^$9!#J,$+$k$h$M!#$4$/IaDL$N7Q>5%k!<%k$G$9(B($B%k!<%k(B +@dfn{Rules} $B$O$3$3$G$OL>;l$G$"$C$F!"F0;l$N!V@~$r0z$/!W$G$O$"$j$^(B +$B$;$s!#$3$N%k!<%k$K$OH?BP$7$?$/$J$k$+$bCN$l$J$$$1$I!"$=$l$O$4<+M3(B +$B$K(B)$B!#(B + +@example +Gnus + Emacs + 3: comp.emacs + 2: alt.religion.emacs + 452: alt.sex.emacs + $BB)H4$-(B + 452: alt.sex.emacs + 0: comp.talk.emacs.recovery + $B$=$NB>(B + 8: comp.binaries.fractals + 13: comp.sources.unix + 452: alt.sex.emacs +@end example + +@samp{Emacs} $B%H%T%C%/$O%H%T%C%/%Q%i%a!<%?(B @code{(score-file +. "emacs.SCORE")} $B$r;}$C$F$$$^$9!#(B@samp{$BB)H4$-(B} $B%H%T%C%/$O%H%T%C(B +$B%/%Q%i%a!<%?(B @code{(score-file . "relief.SCORE")} $B$r;}$A!"(B +@samp{$B$=$NB>(B} $B%H%T%C%/$O%H%T%C%/%Q%i%a!<%?(B @code{(score-file +. "emacs.SCORE")} $B$r;}$C$F$$$^$9!#$5$i$K!"(B +@samp{alt.religion.emacs} $B$O%0%k!<%W%Q%i%a!<%?(B @code{(score-file +. "religion.SCORE")} $B$r;}$C$F$$$^$9!#(B + +$B$5$F!"$3$3$G(B @samp{$BB)H4$-(B} $B%H%T%C%/$N(B @samp{alt.sex.emacs} $B%0%k!<(B +$B%W$KF~$C$?$H$-!"(B@file{relief.SCORE} $B$,4pK\%9%3%"%U%!%$%k$H$J$j$^(B +$B$9!#$b$7(B @samp{Emacs} $B%H%T%C%/$NF1$8%0%k!<%W$KF~$k$H!"(B +@file{emacs.SCORE} $B$,4pK\%9%3%"%U%!%$%k$K$J$k$G$7$g$&!#(B +@samp{alt.religion.emacs} $B%0%k!<%W$KF~$l$P!"(B +@file{religion.SCORE} $B$,4pK\%9%3%"%U%!%$%k$K$J$k$G$7$g$&!#(B + +$B$3$l$C$F$H$C$F$b4JC1$G<+L@$N$3$H$N$h$&$K8+$($k$G$7$g(B? $B$^$"!"$=$N(B +$BDL$j$G$9!#$G$9$,LdBj$,$"$k>l9g$b$"$j$^$9!#FC$K(B +@code{total-expiry} $B%Q%i%a!<%?$K4X$7$F$G$9!#Nc$($P$"$k%a!<%k%0%k!<(B +$B%W$rFs$D$N%H%T%C%/$NCf$K!"0lJ}$O(B @code{total-expiry} $B$"$j$G!"$b(B +$B$&0lJ}$O$=$l$J$7$G;}$C$F$$$k$H$7$^$7$g$&!#$3$3$G(B @kbd{M-x +gnus-expire-all-expirable-groups} $B$rl9g$K$O==J,Cm0U$7(B +$B$J$1$l$P$J$j$^$;$s!#(B + + +@node Misc Group Stuff +@section $B$=$NB>$N%0%k!<%W4XO"(B + +@menu +* Scanning New Messages:: Gnus $B$K?7$7$$%a%C%;!<%8$,E~Ce$7$?$+$I$&$+$rJ9$/!#(B +* Group Information:: $B%0%k!<%W$H(B Gnus $B$K4X$9$k>pJs$H%X%k%W!#(B +* Group Timestamp:: Gnus $B$K:G8e$K$$$D%0%k!<%W$rFI$s$@$+$r5-O?$5$;$k!#(B +* File Commands:: Gnus $B$N%U%!%$%k$NFI$_=q$-!#(B +@end menu + +@table @kbd + +@item ^ +@kindex ^ (Group) +@findex gnus-group-enter-server-mode +$B%5!<%P%P%C%U%!%b!<%I$KF~$k(B (@code{gnus-group-enter-server-mode})$B!#(B +@xref{The Server Buffer}$B!#(B + +@item a +@kindex a (Group) +@findex gnus-group-post-news +$B$"$k%0%k!<%W$K5-;v$rEj9F$9$k(B (@code{gnus-group-post-news})$B!#%W%l(B +$B%U%#%C%/%9$rM?$($k$H!"8=:_$N%0%k!<%WL>$,%G%U%)%k%H$H$7$F;HMQ$5$l$^$9!#(B + +@item m +@kindex m (Group) +@findex gnus-group-mail +$B%a!<%k$r$I$3$+$KAw$k(B (@code{gnus-group-mail})$B!#(B + +@end table + +$B0J2o$K%0%k!<%W%P%C%U%!$KI=<($5$l$^$9!#(B + +@end table + + +@node Scanning New Messages +@subsection $B?7Ce%a%C%;!<%8$rC5$9(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} +$B%5!<%P$N?7Ce5-;v$r%A%'%C%/$7$^$9!#?t;z%W%l%U%#%C%/%9$r;HMQ$9$k$H!"(B +$B$3$N%3%^%s%I$O0z?t(B @var{arg} $B$+$=$l$h$j>.$5$$%l%Y%k$N%0%k!<%W$N(B +$B$_$r%A%'%C%/$7$^$9(B (@code{gnus-group-get-new-news})$B!#?t;z0J30$N(B +$B%W%l%U%#%C%/%9$rM?$($k$H!"$3$N%3%^%s%I$O$=$N%P%C%/%(%s%I$+$i%"%/(B +$B%F%#%V%U%!%$%k$r6/@)E*$KA4ItFI$_D>$7$^$9!#(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} +$B8=:_$N%0%k!<%W$K?7Ce5-;v$,$"$k$+$I$&$+$r%A%'%C%/$7$^$9(B +(@code{gnus-group-get-new-news-this-group})$B!#(B +@code{gnus-goto-next-group-when-activating} $B$O$3$N%3%^%s%I$,r7o$KA4$F$N%0%k!<%W$r5/F0$7$^$9(B (@code{gnus-activate-all-groups})$B!#(B + +@item R +@kindex R (Group) +@cindex restarting +@findex gnus-group-restart +Gnus $B$r%j%9%?!<%H$7$^$9(B (@code{gnus-group-restart})$B!#$3$l$O(B +@file{.newsrc} $B%U%!%$%k$r%;!<%V$7!"A4$F$N%5!<%P$N@\B3$rJD$8!"A4(B +$B$F$N(B Gnus $B%i%s%?%$%`JQ?t$r%/%j%"$7$?8e!"(BGnus $B$r$b$&0lEY:G=i$+$i(B +$B3+;O$7$^$9!#(B + +@end table + +@vindex gnus-get-new-news-hook +@code{gnus-get-new-news-hook} $B$O?7Ce%K%e!<%:$r%A%'%C%/$9$kD>A0$K(B +$BpJs(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 +$B8=:_$N%0%k!<%W$N(B FAQ $B$ro%j%b!<%H%^%7%s>e$N%G%#%l%/%H%j$G$9!#$3$NJQ?t$O%G%#%l%/%H%j$N%j(B +$B%9%H$G$"$C$F$b9=$$$^$;$s!#$3$N>l9g!"$3$N%3%^%s%I$K%W%l%U%#%C%/%9(B +$B$rM?$($k$3$H$G$$$/$D$+$N%5%$%H$NCf$+$iA*$V$3$H$,$G$-$^$9!#(B +$B%U%!%$%k$Nl9g!"(BGnus $B$O(B +@code{gnus-group-faq-directory} $B$NCM$rA4$F!"0l$D0l$D%*!<%W%s$7$F(B +$B$_$h$&$H$7$^$9!#(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 +$B8=:_$N%0%k!<%W$N@bL@$rI=<($9$k(B +(@code{gnus-group-describe-group})$B!#%W%l%U%#%C%/%9$rM?$($k$H!"@b(B +$BL@J8$r%5!<%P$+$i6/@)E*$K:FFI$_9~$_$7$^$9!#(B + +@item M-d +@kindex M-d (Group) +@findex gnus-group-describe-all-groups +$BA4$F$N%0%k!<%W$N@bL@$rI=<($7$^$9(B +(@code{gnus-group-describe-all-groups})$B!#%W%l%U%#%C%/%9$rM?$($k(B +$B$H!"@bL@J8%U%!%$%k$r%5!<%P$+$i6/@)E*$K:FFI$_9~$_$7$^$9!#(B + +@item H v +@itemx V +@kindex V (Group) +@kindex H v (Group) +@cindex version +@findex gnus-version +$B8=:_$N(B Gnus $B$N%P!<%8%g%sHV9f$rI=<($7$^$9(B (@code{gnus-version})$B!#(B + +@item ? +@kindex ? (Group) +@findex gnus-group-describe-briefly +$B$H$F$bC;$$%X%k%W%a%C%;!<%8$rM?$($^$9(B (@code{gnus-group-describe-briefly})$B!#(B + +@item C-c C-i +@kindex C-c C-i (Group) +@cindex info +@cindex manual +@findex gnus-info-find-node +Gnus $B$N(B info $B%N!<%I$K0\F0$7$^$9(B (@code{gnus-info-find-node}).$B!#(B + +@end table + + +@node Group Timestamp +@subsection $B%0%k!<%W$NF|IU(B +@cindex timestamps +@cindex group timestamps + +Gnus $B$K!"$"$J$?$,:G8e$K$$$D%0%k!<%W$rFI$s$@$+$r5-O?$5$;$k$HJXMx(B +$B$+$b$7$l$^$;$s!#$3$N3hF0$r;O$a$5$;$k$K$O!"(B +@code{gnus-group-set-timestamp}$B$r(B @code{gnus-select-group-hook} +$B$KDI2C$7$F$/$@$5$$!#(B + +@lisp +(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp) +@end lisp + +$B$3$l$r9T$C$?8e!"$"$J$?$,%0%k!<%W$KF~$k$?$S$K$=$l$,5-O?$5$l$^$9!#(B + +$B$3$N>pJs$O$5$^$6$^$JJ}K!$GI=<($G$-$^$9(B --- $B$b$C$H$b4JC1$J$N$O!"(B +$B%0%k!<%W9T%U%)!<%^%C%H$G(B @samp{%d} $B;XDj$r;H$&J}K!$G$9!#(B + +@lisp +(setq gnus-group-line-format + "%M\%S\%p\%P\%5y: %(%-40,40g%) %d\n") +@end lisp + +$B$3$N7k2L$H$7$F!"3F9T$O0J2<$N$h$&$KI=<($5$l$^$9!#(B + +@example +* 0: mail.ding 19961002T012943 + 0: custom 19961002T012713 +@end example + +$B8+$FJ,$+$k$H$*$j!"F|IU$O%3%s%Q%/%H$J(B ISO 8601 $B7A<0$GI=<($5$l$^$9!#(B +$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(B +$B$rI=<($G$-$^$9!#(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 $B%U%!%$%k%3%^%s%I(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 +$B=i4|2=%U%!%$%k$N:FFI$_9~$_$r9T$&(B (@code{gnus-init-file}$B!"$3$N%G(B +$B%U%)%k%H$O(B @file{~/.gnus}) (@code{gnus-group-read-init-file})$B!#(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}$B%U%!%$%k(B($B$H!"$b$7$=$&$7$?$1$l$P(B +@file{.newsrc} $B%U%!%$%k(B)$B$r%;!<%V$9$k(B +(@code{gnus-group-save-newsrc})$B!#(B + +@c @item Z +@c @kindex Z (Group) +@c @findex gnus-group-clear-dribble +@c $B%I%j%V%k%U%!%$%k$r%/%j%"$9$k(B +@c (@code{gnus-group-clear-dribble})$B!#(B + +@end table + + +@node The Summary Buffer +@chapter $B35N,%P%C%U%!(B +@cindex summary buffer + +$B35N,%P%C%U%!(B (summary buffer) $B$G$O$=$l$>$l$N5-;v$,0l9T$GI=<($5$l$^$9!#$=(B +$B$NCf$rF0$-2s$j!"5-;v$rFI$_!"Ej9F$7!"JVEz$r$9$k$3$H$,$G$-$^$9!#(B + +$B35N,%P%C%U%!$K0\$k0lHVIaDL$NJ}K!$O!"%0%k!<%W%P%C%U%!$G%0%k!<%W$rA*Br$9$k(B +$B$3$H$G$9(B (@pxref{Selecting a Group})$B!#(B + +$B35N,%P%C%U%!$OK>$`$@$1$?$/$5$s3+$$$?>uBV$K$7$F$*$/$3$H$,$G$-$^$9!#(B + +@menu +* Summary Buffer Format:: $B35N,%P%C%U%!$N304Q$r7hDj$9$k!#(B +* Summary Maneuvering:: $B35N,%P%C%U%!$rF0$-2s$k!#(B +* Choosing Articles:: $B5-;v$rFI$`!#(B +* Paging the Article:: $BFI$s$G$$$k5-;v$r%9%/%m!<%k$9$k!#(B +* Reply Followup and Post:: $B5-;v$rEj9F$9$k!#(B +* Canceling and Superseding:: ``$B$"$!!"$"$s$J$U$&$K8@$&$s$8$c$J$+$C$?!#(B'' +* Marking Articles:: $B5-;v$K4{FI$d4|8B@Z$l:o=|2DG=Ey$N0u$rIU$1$k!#(B +* Limiting:: $B35N,%P%C%U%!$K@)8B$r2C$($k$3$H$,$G$-$k!#(B +* Threading:: $B%9%l%C%I$,$I$N$h$&$K:n$i$l$k$+!#(B +* Sorting:: $B%9%l%C%I$H5-;v$,$I$N$h$&$KJB$S$+$($i$l$k$+!#(B +* Asynchronous Fetching:: Gnus $B$O5-;v$r@h$KC5n$7$J$/$5$;$k!#(B +* Article Backlog:: $B4{$KFI$s$@5-;v$r;D$7$F$*$/!#(B +* Saving Articles:: $B5-;v$NJ]B8$r%+%9%?%^%$%:$9$kJ}K!!#(B +* Decoding Articles:: Gnus $B$O0lO"$N(B (uu) $B%(%s%3!<%I$5$l$?5-;v$r07$($k!#(B +* Article Treatment:: $B5-;v%P%C%U%!$O$*K>$_$I$*$j$KL\Cc6lCc$K$G$-$k!#(B +* Article Commands:: $B5-;v%P%C%U%!$G$$$m$$$m$J$3$H$r$9$k!#(B +* Summary Sorting:: $B$$$m$$$m$JJ}K!$G35N,%P%C%U%!$rJB$YBX$($k!#(B +* Finding the Parent:: $B;R5-;v$K1g=u$,L5$$$C$F(B? $B?F5-;v$r$N$I$N>l=j$K$b9g$o$J$+$C$?$b$N!#(B +* Exiting the Summary Buffer:: $B%0%k!<%W%P%C%U%!$KLa$k!#(B +* Crosspost Handling:: $B%/%m%9%]%9%H$5$l$?5-;v$,$I$N$h$&$K07$o$l$k$+!#(B +* Duplicate Suppression:: $B%/%m%9%]%9%H$N07$$$K<:GT$7$?$H$-$NBeBXA0$H%"%I%l%9$NItJ,$ro$KB.$/F0:n$7$^$9!#$=$7$F!"(B +@code{mail-extract-address-components} $B$O$H$F$bNI$/F0:n$7$^$9$,!"CY$/$J(B +$B$j$^$9!#%G%#%U%)%k%H$N4X?t$O(B 5% $B$N3d9g$G4V0c$C$FEz$($^$9!#$b$7$3$l$K2fK}(B +$B$J$i$J$$$N$G$"$l$P!"B>$N4X?t$rBe$o$j$K;H$&$3$H$,$G$-$^$9!#(B + +@vindex gnus-summary-same-subject +@code{gnus-summary-same-subject} $B$O:#FI$s$G$$$k5-;v$,!"$=$NA0$N5-;v$HF1(B +$B$8I=Bj(B (subject) $B$G$"$k$3$H$r<($9J8;zNs$G$9!#$3$NJ8;zNs$O;EMM$,$3$l$rMW(B +$B5a$9$k$H$-$K;H$o$l$^$9!#%G%#%U%)%k%H$G$O(B @code{""} $B$G$9!#(B + + +@node Summary Buffer Lines +@subsection $B35N,%P%C%U%!$N9T(B + +@vindex gnus-summary-line-format +$BJQ?t(B @code{gnus-summary-line-format} $B$NCM$rJQ$($k$3$H$K$h$C$F!"35N,%P%C(B +$B%U%!$G$N9T$NMM<0(B (format) $B$rJQ99$9$k$3$H$,$G$-$^$9!#$$$/$D$+$N3HD%(B +(@pxref{Formatting Variables}) $B$r=|$$$F!"IaDL$N(B @code{format} $BJ8;zNs$HF1(B +$B$8$h$&$KF0:n$7$^$9!#(B + +$B%G%#%U%)%k%H$NJ8;zNs$O(B @samp{%U%R%z%I%(%[%4L: %-20,20n%]%) %s\n} $B$G$9!#(B + +$B0J2<$NMM<0;X<(J8;z$r;H$&$3$H$,$G$-$^$9(B: + +@table @samp +@item N +$B5-;v?t!#(B +@item S +$BI=Bj$NJ8;zNs!#(B +@item s +$B%9%l%C%I(B (thread) $B$N4p5-;v$G$"$k$H$-$+D>A0$N5-;v$,0c$&I=Bj$N$H$-$O$=$NBj(B +$BL>$G!"$=$l0J30$O(B @code{gnus-summary-same-subject}$B!#(B +(@code{gnus-summary-same-subject} $B$N%G%#%U%)%k%H$NCM$O(B @code{""}$B!#(B) +@item F +$B40A4$J(B @code{From} $B%X%C%@!A0(B (@code{From} $B%X%C%@!<$h$j(B)$B!#(B +@item a +$BL>A0(B (@code{From} $B%X%C%@!<$h$j(B)$B!#$3$l$H(B @code{n} $B$H$N0c$$$O!"$3$l$OJQ?t(B +@code{gnus-extract-address-components} $B$G;XDj$5$l$F$$$k4X?t$r;H$C$FL>A0(B +$B$rA0(B (@code{From} $B%X%C%@!<$h$j(B)$B!#$3$l$O(B @code{a} $B$HF1$8$h$&$KF0:n$7$^(B +$B$9!#(B +@item L +$B5-;v$N9T?t!#(B +@item c +$B5-;v$NJ8;z?t!#(B +@item I +$B%9%l%C%I$N%l%Y%k$K$h$k;z2<$2(B (@pxref{Customizing Threading})$B!#(B +@item T +$B5-;v$,K\5-;v$G$"$l$P2?$bI=<($;$:!"$=$&$G$J$$>l9g$O$?$/$5$s$N6uGr$G$9(B ($B8e(B +$B$N$b$N$r$9$Y$F2hLL$N30$KDI$$=P$7$F$7$^$$$^$9(B)$B!#(B +@item [ +$B3+$-3g8L!#IaDL$O(B @samp{[} $B$G$9$,!"M\;R5-;v$K$O(B @samp{<} $B$K$9$k$3$H$,$G$-(B +$B$^$9(B (@pxref{Customizing Threading})$B!#(B +@item ] +$BJD$83g8L!#IaDL$O(B @samp{[} $B$G$9$,!"M\;R5-;v$K$O(B @samp{<} $B$K$9$k$3$H$,$G$-(B +$B$^$9!#(B +@item > +$B$=$l$>$l$N%9%l%C%I$N%l%Y%k$KBP$7$F0l$D$N6uGr!#(B +@item < +$BFs==0z$/%9%l%C%I%l%Y%k$N6uGr!#(B +@item U +$BL$FI!#(B +@item R +$BJVEz:Q$_!#(B +@item i +$B?t;z$H$7$F$N%9%3%"(B (@pxref{Scoring})$B!#(B +@item z +@vindex gnus-summary-zcore-fuzz +$B$3$l$O!"(Bzcore $B$G%G%#%U%)%k%H$N%l%Y%k$h$j$b>e$G$"$l$P(B @samp{+} $B$G!"%G%#%U%)(B +$B%k%H$N%l%Y%k$h$j$b2<$G$"$l$P(B @samp{-} $B$G$9!#(B +@code{gnus-summary-default-zcore}$B$H$N:9$,(B@code{gnus-summary-zcore-fuzz} +$B$h$j$b>.$5$$$H!"$3$N;EMM$O;H$o$l$^$;$s!#(B +@item V +$B%9%l%C%IA4BN$N%9%3%"!#(B +@item x +@code{Xref}$B!#(B +@item D +@code{$BF|IU(B} (@code{Date})$B!#(B +@item d +@code{DD-MM}$BMM<0$K$h$k(B@code{$BF|IU(B}$B!#(B +@item o +@var{YYYYMMDD}@code{T}@var{HHMMSS}$BMM<0$K$h$k(B@code{$BF|IU(B}$B!#(B +@item M +@code{Message-ID}$B!#(B +@item r +@code{References}$B!#(B +@item t +$B8=:_$NI{%9%l%C%I$N5-;v$N?t!#$3$N;EMM$r;H$&$H35N,%P%C%U%!$N@8@.$,4vJ,CY$/(B +$B$J$j$^$9!#(B +@item e +$B5-;v$K;R5-;v$,$"$k$H!"(B@samp{=} (@code{gnus-not-empty-thread-mark}) $B$,I=(B +$B<($5$l$^$9!#(B +@item P +$B9T?t!#(B +@item O +$B%@%&%s%m!<%I$N0u!#(B +@item u +$BMxMQ$N35N,(B +$B;XDj$HF1MM$K35N,$KA^F~$5$l$^$9!#(B +@end table + +@samp{%U} ($B>uBV(B)$B!"(B@samp{%R} ($BJVEz:Q$_(B)$B!"(B@samp{%z} (zcore) $B$N07$$$K$O5$$r(B +$BIU$1$kI,MW$,$"$j$^$9!#8zN($N$?$a$K!"(Bgnus $B$O$3$l$i$NJ8;z$,$I$N7e$K8=$l$k(B +$B$+$r7W;;$7!"(B''$B%O!<%I!&%3!<%I(B'' $B$7$^$9!#$3$l$O!"2DJQD9$N;EMM$N8e$G$O!"$3(B +$B$l$i$O0UL#$r;}$?$J$$$H$$$&$3$H$G$9!#$^$!!"$5$9$,$KBaJa$O$5$l$J$$$G$7$g$&(B +$B$,!"35N,%P%C%U%!$OJQ$K$J$j$^$9!#$=$l$G$b==J,Ha$7$$$G$7$g$&$1$I!#(B + +$B8-$$A*Br$O$3$l$i$N;XDj$r$G$-$k$@$1:8$K;}$C$F$/$k$3$H$G$9!#(B ($B$G$b!"$=$&$$(B +$B$&$3$H$O$9$Y$F$KEv$F$O$^$k$N$G$O$J$$$G$7$g$&$+!#4WOC5YBj!#(B) + +$B$3$N@)8B$O8e$N%P!<%8%g%s$G$OL5$/$J$k$+$bCN$l$^$;$s!#(B + + +@node Summary Buffer Mode Line +@subsection $B35N,%P%C%U%!$N%b!<%I9T(B + +@vindex gnus-summary-mode-line-format +$B35N,$N%b!<%I9T$NMM<0$bJQ99$9$k$3$H$,$G$-$^$9!#(B +@code{gnus-summary-mode-line-format} $B$r2?$G$b9%$-$J$b$N$KJQ99$7$F$/$@$5(B +$B$$!#%G%#%U%)%k%H$O(B @samp{Gnus: %%b [%A] %Z} $B$G$9!#(B + +$B0J2<$,$"$J$?$,M7$V$3$H$N$G$-$k$=$l$>$l$NMWAG$G$9!#(B + +@table @samp +@item G +$B%0%k!<%WL>!#(B +@item p +$B@\F,8l$rA0!#(B +@item A +$B8=:_$N5-;vHV9f!#(B +@item V +Gnus $B%P!<%8%g%s!#(B +@item U +$B$=$N%0%k!<%W$G$NL$FI5-;v$N?t!#(B +@item e +$B35N,%P%C%U%!$KI=<($5$l$F$$$J$$L$FI5-;v$N?t!#(B +@item Z +$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$,$"(B +$B$k>l9g$O(B @samp{<%U(+%e) more>} $B$G!"L$FI5-;v$N$_$N>l9g$O(B @samp{<%U more>} +$B$G$9!#(B +@item g +$BC;=L%0%k!<%WL>!#Nc$($P!"(B@samp{rec.arts.anime} $B$O(B @samp{r.a.anime} $B$KC;=L(B +$B$5$l$^$9!#(B +@item S +$B8=:_$N5-;v$NI=Bj!#(B +@item u +$BMxMQA0(B (@pxref{Scoring})$B!#(B +@item d +$BJ]N15-;v$N?t(B (@pxref{Unread Articles})$B!#(B +@item t +$B2D;k0uIU$-5-;v$N?t(B (@pxref{Unread Articles})$B!#(B +@item r +$B$=$N0lO"$NF0:n$N4V$K4{FI$H$7$F0u$,$D$$$?5-;v$N?t!#(B +@item E +$B%9%3%"%U%!%$%k$K$h$C$FKu>C$5$l$?5-;v$N?t!#(B +@end table + + +@node Summary Highlighting +@subsection $B35N,$N%O%$%i%$%H(B + +@table @code + +@item gnus-visual-mark-article-hook +@vindex gnus-visual-mark-article-hook +$B$3$N%U%C%/$O5-;v$rA*Br$7$?8e$Kl9g$Ol9g$O score default) . bold)) +@end lisp +$B$4A[A|$N$H$*$j!"$b$7(B @var{FORM} $B$,(B @code{nil} $B$G$J$$CM$rJV$9$H!"(B +@var{FACE} $B$,$=$N9T$KE,MQ$5$l$^$9!#(B +@end table + + +@node Summary Maneuvering +@section $B35N,4V$N0\F0(B +@cindex summary movement + +$B$9$Y$F$ND>@\0\F0L?Na$O?tCM@\F,0z?t$r)$a$^$9!#$3$NJQ?t$,(B @code{t} +$B$Gl9g$H$7$F!"$3$N(B +$BJQ?t$,(B @code{quietly} $B$G$"$k$H!"(Bgnus $B$O3NG'$r$;$:$K!"H$7$F$/$@$5$$!#(B + +@item gnus-auto-select-same +@vindex gnus-auto-select-same +@code{nil} $B$G$J$$$H!"$9$Y$F$N0\F0L?Na$O8=:_$N5-;v$HF1$8I=Bj$N5-;v$K0\F0(B +$B$7$h$&$H$7$^$9!#(B (@dfn{$BF1$8(B} $B$O$3$3$G$O(B @dfn{$BBgBNF1$8(B} $B$H$$$&0UL#$+$bCN(B +$B$l$^$;$s!#>\:Y$O(B @code{gnus-summary-gather-subject-limit} $B$r8+$F$/$@$5$$(B +(@pxref{Customizing Threading} $B$b;2>H$7$F$/$@$5$$(B)$B!#(B) $B$3$NJQ?t$O!"%9%l%C(B +$B%II=<($r9T$C$F$$$k$H$-$O$"$^$jLr$KN)$?$J$$$G$7$g$&!#(B + +@item gnus-summary-check-current +@vindex gnus-summary-check-current +@code{nil} $B$G$J$$$H!"$9$Y$F$N(B ``$BL$FI(B'' $B0\F0L?Na$O!"o$K??Cf$KJ]$A$^$9!#(B +$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!"(B +$BC1$K$3$N(B Emacsism $B$G$J$$9T0Y$r9%$-$K$J$l$J$$$N$G$"$l$P!"IaDL$N(B Emacs $B$N(B +$B%9%/%m!<%k$K$9$k$?$a$K!"$3$NJQ?t$r(B @code{nil} $B$K$9$k$3$H$,$G$-$^$9!#$3$l(B +$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(B +$B%I$rFI$`$H$-$OITJX$+$b$7$l$^$;$s!#(B + +@end table + + +@node Choosing Articles +@section $B5-;v$NA*Br(B +@cindex selecting articles + +@menu +* Choosing Commands:: $B5-;v$rA*Br$9$k$?$a$NL?Na!#(B +* Choosing Variables:: $B$3$l$i$NL?Na$K1F6A$r5Z$\$9JQ?t!#(B +@end menu + + +@node Choosing Commands +@subsection $BL?Na$NA*Br(B + +$B0J2<$N0\F0%3%^%s%I$O$I$l$b?tCM@\F,0z?t$rl9g$OA0$N5-;v$K0\F0$7$^$9(B (@code{gnus-summary-goto-last-article})$B!#(B + +@item G o +@kindex G o ($B35N,(B) +@findex gnus-summary-pop-article +$B35N,$NMzNr(B (history) $B$+$i:G8e$N5-;v$r0l$De$NL?Na$H0c$&$N$O!"(B@kbd{l} +$B$,:G=*(B2$B$D$N5-;v$N4V$r0\F0$9$k$N$KBP$7$F!"$3$l$O9%$-$J$@$1A0$N5-;v$rMzNr(B +$B$+$iA*$S=P$9$3$H$,$G$-$kE@$G$9!#2?$i$+$N$3$l$K4X78$7$?$3$H$O(B ($B$b$7$3$l(B +$B$i$NL?Na$r$?$/$5$s;H$&$N$G$"$l$P(B)$B!"(B@pxref{Article Backlog} $B$r;2>H$7$F$/(B +$B$@$5$$!#(B +@end table + + +@node Choosing Variables +@subsection $BA*$V$?$a$NJQ?t(B + +$B5-;v$r0\F0$7!"A*Br$9$k$N$K4XO"$7$?$$$/$D$+$NJQ?t(B: + +@table @code +@item gnus-auto-extended-newsgroup +@vindex gnus-auto-extend-newsgroup +$B$3$NJQ?t$,(B @code{nil} $B$G$J$$$H!"$9$Y$F$N0\F0L?Na$O!"$b$7$=$N5-;v$,35N,%P%C(B +$B%U%!$KI=<($5$l$F$$$J$$>l9g$G$b!"A0(B ($B$b$7$/$Oo$K8F$P$l$^$9!#%G%#%U%)%k%H$G$O!"A*Br(B +$B$5$l$?5-;v$N2<$K1#$l$F$$$k%9%l%C%I$r8+$;$k$h$&$K$J$C$F$$$^$9!#(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 +$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(B +$BIU$1$k$?$a$K$"$j$^$9!#%G%#%U%)%k%H$NCM$O(B +@code{gnus-summary-mark-read-and-unread-as-read} $B$G!"$[$H$s$I$9$Y$F$NFI(B +$B$s$@5-;v$N0u$r(B @code{gnus-read-mark} $B$KJQ99$7$^$9!#$3$N4X?t$K1F6A$5$l$J(B +$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(B +$B0u$rIU$1$?$$$@$1$G$"$l$P!"Be$o$j$K(B +@code{gnus-summary-mark-unread-as-read} $B$r;H$&$3$H$,$G$-$^$9!#$=$l$O!"(B +@code{gnus-low-score-mark} $B$d(B @code{gnus-del-mark} ($B$J$I$J$I(B) $B$N0u$r$=$N(B +$B$^$^;D$7$^$9!#(B + +@end table + + +@node Paging the Article +@section $B5-;v$N%9%/%m!<%k(B +@cindex article scrolling + +@table @kbd + +@item SPACE +@kindex SPACE ($B35N,(B) +@findex gnus-summary-next-page +@kbd{SPACE} $B$O5-;v$r0l%Z!<%8@h$K%9%/%m!<%k$7$^$9!#5-;v$N:G8e$K$$$k>l9g$O(B +$B +@itemx > +@kindex > ($B35N,(B) +@kindex A > ($B35N,(B) +@findex gnus-summary-end-of-article +$B5-;v$N:G8e$^$G%9%/%m!<%k$7$^$9!#(B (@code{gnus-summary-end-of-article})$B!#(B + +@item A s +@itemx s +@kindex A s ($B35N,(B) +@kindex s ($B35N,(B) +@findex gnus-summary-isearch-article +$B5-;v%P%C%U%!$G%$%s%/%j%a%s%?%k%5!<%A(B (isearch) $B$r9T$$$^$9!#(B +(@code{gnus-summary-isearch-article})$B!#(B + +@item h +@kindex h ($B35N,(B) +@findex gnus-summary-select-article-buffer +$B5-;v%P%C%U%!$rA*Br$7$^$9(B (@code{gnus-summary-select-article-buffer})$B!#(B + +@end table + + +@node Reply Followup and Post +@section $BJVEz!"%U%)%m!<%"%C%W!"Ej9F(B + +@menu +* Summary Mail Commands:: $B%a!<%k$rAw$k!#(B +* Summary Post Commands:: $B%K%e!<%:$rAw$k!#(B +@end menu + + +@node Summary Mail Commands +@subsection $B35N,$G$N%a!<%k$NL?Na(B +@cindex mail +@cindex composing mail + +$B%a!<%k%a%C%;!<%8$r:n@.$9$k$?$a$NL?Na(B: + +@table @kbd + +@item S r +@item r +@kindex S r ($B35N,(B) +@kindex r ($B35N,(B) +@findex gnus-summary-reply +@c @icon{gnus-summary-mail-reply} +@c @icon{gnus-summary-reply} +$B8=:_$N5-;v$r=q$$$??M$KJVEz$N%a!<%k$rAw$j$^$9(B (@code{gnus-summary-reply})$B!#(B + +@item S R +@itemx R +@kindex R ($B35N,(B) +@kindex S R ($B35N,(B) +@findex gnus-summary-reply-with-original +@c @icon{gnus-summary-reply-with-original} +$B8=:_$N5-;v$r=q$$$??M$K!"K\5-;v$r4^$s$@JVEz$N%a!<%k$r=P$7$^$9(B +(@code{gnus-summary-reply-with-original})$B!#(B $B$3$NL?Na$O%W%m%;%9(B/$B@\F,0z?t(B +$B$N=,47$r;H$$$^$9!#(B + +@item S w +@kindex S w ($B35N,(B) +@findex gnus-summary-wide-reply +$B8=:_$N5-;v$r=q$$$??M$KBP$7$F!"9-$$JVEz(B (wide reply) $B$r$7$^$9(B +(@code{gnus-summary-wide-reply})$B!#(B@dfn{$B9-$$JVEz(B} $B$H$O%X%C%@!<$N(B +@code{To}$B!"(B@code{From}$B!"(B($B$b$7$/$O(B @code{Reply-to}) $B$H!"(B@code{Cc} $B$N(B +$B$9$Y$F$N?M$KJVEz$r$9$k$3$H$G$9!#(B + +@item S W +@kindex S W ($B35N,(B) +@findex gnus-summary-wide-reply-with-original +$B8=:_$N5-;v$KK\5-;v$r4^$s$@9-$$JVEz$N%a!<%k$rAw$j$^$9(B +(@code{gnus-summary-reply-with-original})$B!#$3$NL?Na$O%W%m%;%9(B/$B@\F,0z?t$N(B +$B=,47$r;H$$$^$9!#(B + +@item S o m +@kindex S o m ($B35N,(B) +@findex gnus-summary-mail-forward +@c @icon{gnus-summary-mail-forward} +$BC/$+B>$N?M$K8=:_$N5-;v$rE>Aw$7$^$9(B (@code{gnus-summary-mail-forward})$B!#(B +$B@\F,0z?t$,$"$k$H!"E>Aw5-;v$N40A4$J%X%C%@!<$r$N?M$K%a!<%k$rAw$j$^$9(B (@code{gnus-summary-mail-other-window})$B!#(B + +@item S D b +@kindex S D b ($B35N,(B) +@findex gnus-summary-resend-bounced-mail +@cindex bouncing mail +$B%a!<%k$rAw$C$?$N$K!"2?$i$+$NM}M3(B ($B4V0c$C$?%"%I%l%9!"0l;~E*$J<:GT(B) $B$GLa$C(B +$B$F$-$?$H$-$K!"$3$NL?Na$r;H$C$FLa$C$F$-$?%a!<%k$r$b$&0l2sAw$k$3$H$,$G$-$^(B +$B$9(B (@code{gnus-summary-resend-bonced-mail})$B!#(B $B$b$&0lEY%a!<%k$rAw$kA0$K%X%C(B +$B%@!<$rJT=8$G$-$k$h$&$K!"%a!<%k%P%C%U%!$K$=$N%a!<%k$,8=$l$k$G$7$g$&!#$3$N(B +$BL?Na$K@\F,0z?t$rM?$($F!"La$C$F$-$?%a!<%k$,C/$+$X$NJVEz$G$"$C$?>l9g!"(Bgnus +$B$O$=$N%a!<%k$re$NL?Na$H:.F1$7$J$$$h$&$K!"(B@code{gnus-summary-resend-message} $B$O8=:_$N(B +$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(B +$B$^$9!#%a%C%;!<%8$N%X%C%@!<$OJQ99$5$l$^$;$s(B---$B$7$+$7!"(B@code{Resent-To}$B!"(B +@code{Resent-From} $BEy$N%X%C%@!<$,IU$12C$($i$l$^$9!#$3$l$O!"(B($B$*$=$i$/(B) $B$"(B +$B$J$?<+?H$r(B @code{To} $B%X%C%@!<$K=q$$$?K\?M$K$b%a!<%k$rAw$C$F$7$^$&$H$$$&(B +$B$3$H$G$9!#$3$l$O:.Mp$r>7$/$G$7$g$&!#$G$9$+$i!"$b$A$m$s!"K\Ev$K(B $BAw$7$?$$$H$-$KMQ$$$i$l$^$9!#(B +($B$b$7$"$J$?$,!"(B@code{$B%k!<%H(B} (root) $B$G$"$j!"(B@code{$B%]%9%H%^%9%?!<(B} +(postmaster) $B$G$b$"$j!"(B@code{$B%k!<%H(B} $B$K(B @code{$B%]%9%H%^%9%?!<(B} $B$X$N%a!<%k(B +$B$rl9g$O!"$=$l$r(B @code{$B%]%9%H%^%9%?!<(B} $B$K$b:FAw$7$?$$$H;W$&$G(B +$B$7$g$&!#(BOrdnung mu(I_(B sein!) + +$B$3$NL?Na$O%W%m%;%9(B/$B@\F,0z?t$N=,47$K=>$$$^$9(B (@pxref{Process/Prefix})$B!#(B + +@item S O m +@kindex S O m ($B35N,(B) +@findex gnus-uu-digest-mail-forward +$B8=:_$N0lO"$N5-;v(B (@pxref{Decoding Articles}) $B$NMWLs$r:n$j!"%a!<%k$G$=$N(B +$B7k2L$rAw$j$^$9(B (@code{gnus-uu-digest-mail-forward})$B!#(B $B$3$NL?Na$O%W%m%;%9(B +/$B@\F,0z?t$N=,47$K=>$$$^$9(B (@pxref{Process/Prefix})$B!#(B + +@item S M-c +@kindex S M-c ($B35N,(B) +@findex gnus-summary-mail-crosspost-complaint +@cindex crossposting +@cindex excessive crossposting +$B8=:_$N5-;v$N=q$-j%/%m%9%]%9%H$X$N6l>p$N%a!<%k$rAw$j$^$9(B +(@code{gnus-summary-mail-crosspost-complaint})$B!#(B + +@findex gnus-crosspost-complaint +$B$3$NL?Na$O!"8=:_(B Usenet $B$K2#9T$7$F$$$k!"%/%m%9%]%9%H$N@$3&E*N.9T$KBP$7$F(B +$BH?7b$r9T$&$$!"$=$l$>$l$N%a!<(B +$B%k$rAw$kA0$KAw?.$9$k$+$I$&$+$N3NG'$r$7$^$9!#(B + +@end table + + +@node Summary Post Commands +@subsection $B35N,$NEj9FL?Na(B +@cindex post +@cindex composing news + +$B%K%e!<%:$N5-;v$rEj9F$9$k$?$a$NL?Na(B: + +@table @kbd +@item S p +@itemx a +@kindex a ($B35N,(B) +@kindex S p ($B35N,(B) +@findex gnus-summary-post-news +@c @icon{gnus-summary-post-news} +$B8=:_$N%0%k!<%W$K5-;v$rEj9F$7$^$9(B (@code{gnus-summary-post-news})$B!#(B + +@item S f +@itemx f +@kindex f ($B35N,(B) +@kindex S f ($B35N,(B) +@findex gnus-summary-followup +@c @icon{gnus-summary-followup} +$B8=:_$N5-;v$N%U%)%m!<%"%C%W$rEj9F$7$^$9(B (@code{gnus-summary-followup})$B!#(B + +@item S F +@itemx F +@kindex S F ($B35N,(B) +@kindex F ($B35N,(B) +@c @icon{gnus-summary-followup-with-original} +@findex gnus-summary-followup-with-original +$BK\5-;v$rAw$7$^$9(B +(@code{gnus-summary-post-forward})$B!#@\F,0z?t$,M?$($i$l$?$H$-$O!"E>Aw5-;v(B +$B$N%X%C%@!<$r40A4$KC$9(B +@cindex canceling articles +@cindex superseding articles + +$B2?$+$r=q$$$?8e$G!"K\Ev$K!"K\Ev$K!"$[(B $B$s(B $B$H(B $B$&(B $B$K$=$l$rEj9F$7$F$$$J$1$l$P(B +$B$J$!$H;W$C$?$3$H$O$"$j$^$;$s$+!#(B + +$B$(!<$H!"%a!<%k$OC$9$3$H$O$G$-$J$$$N$G$9$,!"%K%e!<%:$NEj9F$OC$9(B +$B$3$H$,$G$-$^$9!#(B + +@findex gnus-summary-cancel-article +@kindex C ($B35N,(B) +@c @icon{gnus-summary-cancel-article} +$BC$7$?$$5-;v$r8+$D$1$F$/$@$5$$(B ($BC$9$3$H$,$G$-$k$N$O<+J,$N5-;v$@(B +$B$1$G$9!#JQ$J$3$H$O;n$5$J$$$G$/$@$5$$(B)$B!#$=$l$+$i!"(B @kbd{C} $B$+(B @kbd{S c} +$B$r2!$7$F$/$@$5$$(B (@code{gnus-summary-cancel-article})$B!#(B $B$"$J$?$N5-;v$,C$5$l$^$9(B---$B@$3&Cf$N5!3#$,$"$J$?$N5-;v$rC$7$^$9!#$3$NL?Na$O%W%m(B +$B%;%9(B/$B@\F,0z?t$N=,47$rMQ$$$^$9(B (@pxref{Process/Prefix})$B!#(B + +$B$7$+$7!"Cm0U$7$F$[$7$$$N$O$9$Y$F$N%5%$%H(B (site) $B$,C$7$r07$C$F$$$k$o(B +$B$1$G$O$J$$$3$H$G$9!#$G$9$+$i!"$?$$$F$$$N%5%$%H$,LdBj$N5-;v$rC$7$F$b!"(B +$B$"$A$3$A$G$"$J$?$N5-;v$O@8$-;D$k$+$b$7$l$^$;$s!#(B + +Gnus $B$O!"C$9$H$-$K(B ``$B8=:_(B'' $B$NA*BrJ}K!$r;H$$$^$9!#I8=`$NEj9FJ}K!$r(B +$B;H$$$?$$$N$G$"$l$P!"J8;z@\F,0z?t(B @samp{a} $B$r;H$C$F$/$@$5$$(B +(@pxref{Symbolic Prefixes})$B!#(B + +$B$b$72?$+4V0c$$$r$7$?$N$K5$IU$$$F!"D{@5$r$7$?$$$N$G$"$l$P!"(B@dfn{$BBeBX(B} $B5-(B +$B;v$rEj9F$7$FK\5-;v$rCV$-49$($k$3$H$,$G$-$^$9!#(B + +@findex gnus-summary-supersede-article +@kindex S ($B35N,(B) +$BK\5-;v$N$H$3$m$X0\F0$7$F!"(B@kbd{S s} $B$r2!$7$F$/$@$5$$(B +(@code{gnus-summary-supersede-article})$B!#IaDL$NJ}K!$G$=$l$rAw$kA0$K!"5-(B +$B;v$r9%$-$J$h$&$KJT=8$9$k$3$H$,$G$-$^$9!#BeBX$K4X$7$F$b!"C$7$HF1$8$3(B +$B$H$,Ev$F$O$^$j$^$9!#$3$A$i$NJ}$,$b$C$H$h$/Ev$F$O$^$k$+$b$7$l$^$;$s(B: $B$$$/(B +$B$D$+$N%5%$%H$OBeBX$rl9g!"5-;v$,:G=i$K$"(B +$B$J$?$N%5%$%H$K8=$l$kA0$KC$7(B/$BBeBX$r$9$k$?$a$N9*L/$Jj$J$/$i$$$NL?Na$,$"$j$^$9(B: +@end ifinfo + +@menu +* Setting Marks:: $B0u$NIU$1J}$H>C$7J}(B +* Setting Process Marks:: $B8e$No$K2D;k>uBV$G$"$k5-;v$N$3$H$G$9!#$*$b$7$m$$$H;W(B +$B$&5-;v$,$"$C$?>l9g$d!"C1$KFI$`$N$r@h$K1d$P$7$?$$$H$-$d!"8e$GJVEz$r$7$?$$(B +$B$H$-$K!"IaDL$O2D;k0u$rIU$1$^$9!#$7$+$7!"5-;v$O4|8B@Z$l>C5n$5$l$k$3$H$b$"(B +$B$j$^$9$N$G!"1J1s$K5-;v$rJ]B8$7$F$*$-$?$$>l9g$O!"$=$N5-;v$r1JB3$K$9$kI,MW(B +$B$,$"$j$^$9(B (@pxref{Persistent Articles})$B!#(B + +@item ? +@vindex gnus-dormant-mark +$BJ]N1$H$7$F0u$rIU$1$^$9(B (@code{gnus-dormant-mark})$B!#(B + +@dfn{$BJ]N15-;v(B} $B$O%U%)%m!<%"%C%W$,$"$C$?$H$-$K$@$135N,%P%C%U%!$K8=$l$^$9!#(B +$B%U%)%m!<%"%C%W$,L5$$$H$-$bI=<($5$;$?$$$H$-$O!"L?Na(B @kbd{/ D} $B$r;H$&$3$H(B +$B$,$G$-$^$9!#(B + +@item SPACE +@vindex gnus-unread-mark +$BL$FI$H$7$F0u$rIU$1$^$9(B (@code{gnus-unread-mark})$B!#(B + +@dfn{$BL$FI5-;v(B} $B$O:#$^$GA4$/FI$^$l$F$$$J$$5-;v$N$3$H$G$9!#(B +@end table + + +@node Read Articles +@subsection $B4{FI5-;v(B +@cindex expirable mark + +$B0J2<$N$9$Y$F$N0u$O5-;v$K4{FI$N0u$rIU$1$^$9!#(B + +@table @samp + +@item r +@vindex gnus-del-mark +$BMxMQC$5$l$?5-;v(B (@code{gnus-canceled-mark})$B!#(B + +@item F +@vindex gnus-souped-mark +@sc{SOUP} $B$5$l$F$$$k5-;v(B (@code{gnus-souped-mark})$B!#(B @xref{SOUP}$B!#(B + +@item Q +@vindex gnus-sparse-mark +$B$^$P$i$K;2>H$5$l$?5-;v(B (@code{gnus-sparse-mark})$B!#(B +@xref{Customizing Threading}$B!#(B + +@item M +@vindex gnus-duplicate-mark +$B=EJ#M^@)$K$h$j4{FI$N0u$N$D$$$?5-;v(B (@code{gnus-duplicated-mark})$B!#(B +@xref{Duplicate Suppression}$B!#(B + +@end table + +$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#(B +$B$9$k$@$1$G$9!#E,1~%9%3%"%j%s%0$r$7$?$H$-$K$O0c$C$?$h$&$K2r$N0u(B +@cindex process mark +@cindex bookmarks + +$B5-;v$,FI$^$l$?$+$I$&$+$K$O4X78$7$J$$0u$,$$$/$D$+$"$j$^$9!#(B + +@itemize @bullet + +@item +$B8=:_$N5-;v$K$7$*$j$r64$`$3$H$,$G$-$^$9!#$"$J$?$OG-$NG"$N=,47$K4X$9$kD9$$(B +$BO@J8$rFI$s$G$$$F!"$=$l$rFI$_=*$o$kA0$KM$l$K$h$C$F0u$,$D$-$^$9!#(B + +@item +@vindex gnus-process-mark +$B:G8e$K(B @dfn{$B%W%m%;%90u(B} $B$,$"$j$^$9!#(B(@code{gnus-process-mark})$B!#(B $B$$$m$$(B +$B$m$Jl9g!"$I$N$h$&$K$J$k$N$G$7$g(B +$B$&(B? + +$B$?$$$7$?$3$H$O$"$j$^$;$s!#M%@h=g0L$O +$B%-%c%C%7%e(B -> $BJVEz:Q$_(B -> $BJ]B8!#$G$9$+$i!"$"$k5-;v$,%-%c%C%7%e$KF~$C$F$$(B +$B$F!"JVEz$5$l$F$$$?>l9g!"%-%c%C%7%e0u$,$"$k$@$1$G!"JVEz:Q$_0u$O$"$j$^$;$s!#(B + + +@node Setting Marks +@subsection $B0u$rIU$1$k(B +@cindex setting marks + +$B$9$Y$F$N0u$D$1L?Na$O?tCM@\F,0z?t$rC5n$7$^$9(B +(@code{gnus-summary-clear-mark-forward})$B!#MW$9$k$K!"5-;v$KL$FI$N0u$rIU$1(B +$B$^$9!#(B + +@item M t +@itemx ! +@kindex ! ($B35N,(B) +@kindex M t ($B35N,(B) +@findex gnus-summary-tick-article-forward +$B8=:_$N5-;v$K2D;k5-;v0u$rIU$1$^$9(B +(@code{gnus-summary-tick-article-forward})$B!#(B @xref{Article Caching} + +@item M ? +@item ? +@kindex ? ($B35N,(B) +@kindex M ? ($B35N,(B) +@findex gnus-summary-mark-as-dormant +$B8=:_$N5-;v$KJ]N15-;v0u$rIU$1$^$9(B +(@code{gnus-summary-mark-as-read-forward})$B!#(B + +@item D +@kindex D ($B35N,(B) +@findex gnus-summary-mark-as-read-backward +$B8=:_$N5-;v$K4{FI$N0u$rIU$1!"A0$N9T$K%]%$%s%H$r0\F0$7$^$9(B +(@code{gnus-summary-mark-as-read-backward})$B!#(B + +@item M k +@itemx k +@kindex k ($B35N,(B) +@kindex M k ($B35N,(B) +@findex gnus-summary-kill-same-subject-and-select +$B8=:_$N5-;v$HF1$8I=Bj$r;}$D$9$Y$F$N5-;v$r4{FI$H$7$F0u$rIU$1!"C5n$7$^$9(B (@code{gnus-summary-clar-above})$B!#(B + +@item M V u +@kindex M V u ($B35N,(B) +@findex gnus-summary-tick-above +$B%G%#%U%)%k%H$N%9%3%"(B ($B$b$7$/$O?tCM@\F,0z?t(B) $B$h$j$bBg$-$$%9%3%"$r;}$D$9$Y(B +$B$F$N5-;v$K2D;k0u$rIU$1$^$9(B (@code{gnus-summary-tick-above})$B!#(B + +@item M V m +@kindex M V m ($B35N,(B) +@findex gnus-summary-mark-above +$B0u$NF~NO$rB%$7!"%G%#%U%)%k%H$N%9%3%"(B ($B$b$7$/$O?tCM@\F,0z?t(B) $B$h$j$bBg$-$J(B +$B%9%3%"$r;}$D$9$Y$F$N5-;v$K$=$N0u$rIU$1$^$9(B +(@code{gnus-summary-mark-above})$B!#(B +@end table + +@vindex gnus-summary-goto-unread +$BJQ?t(B @code{gnus-summary-goto-unread} $B$O0u$,IU$1$i$l$?8e$K$I$N$h$&$JF0:n(B +$B$,$J$5$l$k$+$r7hDj$7$^$9!#$b$7(B @code{nil} $B$G$J$$$H!"%]%$%s%H$Oe$+2<$K9T$/(B +$B$@$1$G$9!#FCJL$J>l9g$H$7$F!"$3$NJQ?t$,(B @code{never} $B$G$"$k$H!"$9$Y$F$N0u(B +$B$rIU$1$kL?Na$H(B (@kbd{SPACE} $B$N$h$&$J(B) $BB>$NL?Na$O/$7(B +($B$b$7$/$OB?$/(B) $B$N5-;v$r35N,%P%C%U%!$+$i:o=|$9$k$3$H$G$9!#(B + +$B$9$Y$F$N@)8BL?Na$O%5!<%P!<$+$i4{$KC5n$5$l$?5-;v$rI=<($7$^$9(B +(@code{gnus-summary-limit-include-expunged})$B!#(B + +@item / D +@kindex / D ($B35N,(B) +@findex gnus-summary-limit-include-dormant +$B$9$Y$F$NJ]N15-;v$rI=<($7$^$9(B (@code{gnus-summary-limit-include-dormant})$B!#(B + +@item / * +@kindex / * ($B35N,(B) +@findex gnus-summary-limit-include-cached +$B$9$Y$F$N%-%c%C%7%e$KF~$C$F$$$k5-;v$rI=<($7$^$9(B +(@code{gnus-summary-limit-include-cached})$B!#(B + +@item / d +@kindex / d ($B35N,(B) +@findex gnus-summary-limit-exclude-dormant +$B$9$Y$F$NJ]N15-;v$r1#$7$^$9(B (@code{gnus-summary-limit-exclude-dormant})$B!#(B + +@item / T +@kindex / T ($B35N,(B) +@findex gnus-summary-limit-include-thread +$B8=:_$N%9%l%C%I$N$9$Y$F$N5-;v$rI=<($7$^$9(B +(@code{gnus-summary-limit-include-thread})$B!#(B + +@item / c +@kindex / c ($B35N,(B) +@findex gnus-summary-limit-exclude-childless-dormant +$B;R5-;v$NL5$$$9$Y$F$NJ]N15-;v$r1#$7$^$9(B +(@code{gnus-summary-limit-exclude-childless-dormant})$B!#(B + + +@item / C +@kindex / C ($B35N,(B) +@findex gnus-summary-limit-mark-excluded-as-read +$B$9$Y$F$NL$FI$N$_$N0u$N5-;v$r4{FI$H$7$F0u$rIU$1$^$9(B +(@code{gnus-summary-limit-mark-excluded-as-read})$B!#$b$7@\F,0z?t$,M?$($i(B +$B$l$l$P!"2D;k$HJ]N1$N$_$N0u$N5-;v$b4{FI$H$7$F0u$rIU$1$^$9!#(B + +@end table + + +@node Threading +@section $B%9%l%C%I(B +@cindex threading +@cindex article threading + +Gnus $B$O%G%#%U%)%k%H$G5-;v$r%9%l%C%I$K$7$^$9!#(B@dfn{$B%9%l%C%I$K$9$k(B} $B$H$O!"(B +$B$"$k5-;v$X$N1~Ez$r1~Ez$7$?5-;v$ND>8e$KCV$/(B---$B3,AXE*N.57$G(B $B$H$$$&$3$H$G$9!#(B + +$B%9%l%C%I$O5-;v$N(B @code{References} $B%X%C%@!<$rD4$Y$k$3$H$K$h$C$F9T$o$l$^(B +$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?(B +$B$J$3$H$K!"(B@code{References} $B%X%C%@!<$O$7$P$7$P2u$l$F$$$k$+!";~$K$OC1$K$J(B +$B$$$H$$$&$3$H$,$"$j$^$9!#IT;W5D$J%K%e!<%:$NA}?#$,LdBj$rA}$d$7$^$9$N$G!"4n(B +$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(B +$BK!$OB8:_$7$F$$$F!"$=$N62$k$Y$->\:Y$O(B @pxref{Customizing Threading} $B$K>\(B +$B$7$/=q$$$F$"$j$^$9!#(B + +$B$^$:!"35G0$N354Q$G$9(B: + +@table @dfn +@item $B%k!<%H(B (root) +$B%9%l%C%I$G0lHVD:E@$K$"$k5-;v$G$9(B; $B%9%l%C%I$N:G=i$N5-;v$G$9!#(B + +@item $B%9%l%C%I(B (thread) +$BLZ$N$h$&$J5-;v$N9=@.$G$9!#(B + +@item $BI{%9%l%C%I(B (sub-thread) +$BLZ$N$h$&$J9=B$$N(B ($B$h$j(B) $B>.$5$JItJ,$G$9!#(B + +@item $BL5B+G{%9%l%C%I(B (loose threads) +$B5-;v$N4|8B@Z$l:o=|$d!"%k!<%H$,4{$KA02s$N%;%C%7%g%s$GFI$^$l$?$3$H$K$h$j35(B +$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<:$$(B +$B$^$9!#$=$N$h$&$J$H$-$K$O!"IaDL$OB?$/$NI{%9%l%C%I$,$"$C$F!"K\Ev$O(B1$B$D$N%9(B +$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(B +$B$^$9!#$3$&$$$&%9%l%C%I$,L5B+G{%9%l%C%I$H8F$P$l$F$$$^$9!#(B + +@item $B%9%l%C%I=8$a(B (thread gathering) +$B$^$P$i%9%l%C%I$rBg$-$J%9%l%C%I$K=8$a$h$&$H$9$k;n$_$G$9!#(B + +@item $B$^$P$i%9%l%C%I(B (sparse threads) +$BL5$$5-;v$,(B ''$B?dB,$5$l$?(B'' $B%9%l%C%I$G!"35N,%P%C%U%!$K6u9T$GI=<($5$l$^$9!#(B + +@end table + + +@menu +* Customizing Threading:: $BJQ992DG=$J%9%l%C%I$K1F6A$9$kJQ?t(B +* Thread Commands:: $B35N,%P%C%U%!$G$N%9%l%C%I$K4p$E$$$?L?Na(B +@end menu + + +@node Customizing Threading +@subsection $B%9%l%C%I$r%+%9%?%^%$%:$9$k(B +@cindex customizing threading + +@menu +* Loose Threads:: Gnus $B$,L5B+G{%9%l%C%I$r=8$a$FBg$-$J%9%l%C%I$K$9$kJ}K!(B +* Filling In Threads:: $B%9%l%C%I$rKd$a$k(B +* More Threading:: $B%9%l%C%I$r$$$8$/$k$5$i$KB?$/$NJQ?t(B +* Low-Level Threading:: $B$3$l$G=*$o$C$?$H;W$C$?$G$7$g$&(B... $B$G$b$"$J$?$O4V0c$C$F$$$?(B! +@end menu + + +@node Loose Threads +@subsection $BL5B+G{%9%l%C%I(B +@cindex < +@cindex > +@cindex loose threads + +@table @code +@item gnus-summary-make-false-root +@vindex gnus-summary-make-false-root +$B$b$7(B @code{nil} $B$G$J$$$H!"(Bgnus $B$OA4$F$N$D$J$,$C$F$$$J$$I{LZ$r(B1$B$D$NBg$-$J(B +$BLZ$K$7$F!"D:>e$K$_$;$+$1$N%k!<%H$r:n$j$^$9!#(B ($B$A$g$C$HBT$C$F$/$@$5$$!#D:(B +$B>e$K:,85(B (root) $B$G$9$C$F(B? $B$($(!"$=$&$J$N$G$9!#(B) $B$D$J$,$C$F$$$J$$I{LZ$OK\(B +$BEv$N%k!<%H$,4|8B@Z$l:o=|$5$l$?$+!"A02s$N%;%C%7%g%s$G%k!<%H$rFI$s$@$j:o=|(B +$B$7$?$H$-$K$G$-$^$9!#(B + +$BK\Ev$N%9%l%C%I$,L5$$$H$-$O!"(Bgnus $B$O2?$+$G$C$A>e$2$r$9$kI,MW$,$"$j$^$9!#(B +$B$3$NJQ?t$O(B gnus $B$,;H$&$Y$-$4$^$+$7$NJ}K!$r<($7$F$$$^$9!#CM$H$7$F$H$k$3$H(B +$B$,$G$-$k(B4$B$D$N8uJd$,$"$j$^$9!#(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 $BM\;R(B (adopt) +Gnus $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!#(B +$B$3$NM\;R5-;v$O!"I8=`$N3Q3g8L(B (@samp{[]}) $B$NBe$o$j$K!"@h$N@m$C$?3g8L(B +(@samp{<>}) $B$G0uIU$1$i$l$^$9!#$3$l$,%G%#%U%)%k%H$NJ}K!$G$9!#(B + +@item $B$_$;$+$1(B (dummy) +@vindex gnus-summary-dummy-line-format +Gnus $B$O?F$N$U$j$r$9$k$_$;$+$1$N35N,9T$r$D$/$j$^$9!#$_$;$+$1$N9T$O$I$NK\(B +$BEv$N5-;v$K$bBP1~$7$^$;$s$N$G!"$=$l$rA*Br$9$k$3$H$O!"$_$;$+$1$N5-;v$N8e$N(B +$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(B +$B$9$k$?$a$K!"(B @code{gnus-summary-dummy-line-format} $B$,;H$o$l$^$9!#$3$l$O(B +$B$?$C$?0l$D$@$1$N%U%)!<%^%C%H$N;EMM$r$N5-;v$r(B +$BI=<($9$k$@$1$G$9!#(B + +@item nil +$BL5B+G{%9%l%C%I$r=8$a$^$;$s!#(B +@end table + +@item gnus-summary-gather-subject-limit +@vindex gnus-summary-gather-subject-limit +$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(B +$B?t$,(B @code{nil} $B$G$"$k$H!"(Bgnus $B$OL5B+G{%9%l%C%I$r0l$D$NBg$-$JD6%9%l%C%I(B +$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(B +$B$O!"D9$$I=Bj$N9T$r@Z$jMn$H$7$F$7$^$&4VH4$1$J%K%e!<%:%j!<%@!<$,B8:_$9$k8=(B +$B:_$G$O!"$"$^$j$K87$7$$MW5a$+$bCN$l$^$;$s!#$b$7$=$&;W$&$N$J$i!"$3$NJQ?t$r(B +$BNc$($P(B20$B$K@_Dj$7$F!"I=Bj$N:G=i$N(B20$BJ8;z$@$1$,0lCW$9$k$3$H$rMW5a$9$k$h$&$K(B +$B$9$k$3$H$,$G$-$^$9!#$3$NJQ?t$rK\Ev$KDc$$?t;z$K@_Dj$9$k$H!"(Bgnus $B$,L\$KF~(B +$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(B +$B$O$"$^$jM-MQ$G$O$"$j$^$;$s!#(B + +@cindex fuzzy article gathering +$B$3$NJQ?t$rFCJL$JCM(B @code{fuzzy} $B$K@_Dj$9$l$P!"(Bgnus $B$OI=Bj$K$"$$$^$$$JJ8(B +$B;zNsHf3S%"%k%4%j%:%`$r;H$$$^$9(B (@pxref{Fuzzy Matching})$B!#(B + +@item gnus-sumplify-subject-fuzzy-regexp +@vindex gnus-simplify-subject-fuzzy-regexp +$B$3$l$O@55,I=8=$+!"$"$$$^$$I=Bj;XDj$,;H$o$l$F$$$k$H$-$KI=Bj$+$i9gCW$7$?$b(B +$B$N$, +@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 + +$B$3$N@55,I=8=$K9gCW$9$k$9$Y$F$N8l$O!"(B2$B$D$NI=Bj$rHf3S$9$kA0$Ke=q$-$7$^$9!#$3$NJQ?t$OJ8;zNs(B @code{Subject} $B$rH?I|$7$F4JC1$J7A$K$?$I(B +$B$jCe$/$?$a$KE,MQ$9$k4X?t$N%j%9%H$G$"$kI,MW$,$"$j$^$9!#(B + +$B$3$N%j%9%H$KF~$l$FLr$KN)$D$h$&$J4X?t$OJ,$J6uGr(B (whitespace) $B$ru67$r>/$7$h$/$9$k$?$a$K!"$I$NI=Bj$,=8$a$k2aDx$+$i=|$+$l$k(B +$B$+$r7h$a$k@55,I=8=(B @code{gnus-summary-gather-exclude-subject} $B$r;H$&$3$H(B +$B$,$G$-$^$9!#%G%#%U%)%k%H$O(B @samp{^ *$\\|^(none)$} $B$G$9!#(B + + +@item gnus-summary-thread-gathering-funcion +@vindex gnus-summmary-thread-gathering-function +Gnus $B$O(B @code{Subject} $B%X%C%@!<$r8+$k$3$H$K$h$C$F%9%l%C%I$r=8$a$^$9!#$3(B +$B$l$O!"7k2LE*$KA4$/4X78$NL5$$5-;v$,F1$8(B ``$B%9%l%C%I(B'' $B$K4^$^$l$k$3$H$,$"$k(B +$B$H$$$&$3$H$G!"$3$l$O:.Mp$N85$G$9!#BeBXZ$7$^$9$,!"$3$o$l$?%K%e!<%:%j!<%@!<$GEj9F$7$?5-;v$OE,@Z$K=8$a$i$l$J(B +$B$$$H$$$&$3$H$G$b$"$j$^$9!#A*Br8"$O$"$J$?$K$"$j$^$9(B---$B1VIB$+%3%l%i$+!#(B + +@table @code +@item gnus-gather-threads-by-subject +@findex gnus-gather-threads-by-subject +$B$3$N4X?t$O%G%#%U%)%k%H$N<}=84X?t$G!"GSB>E*$K(B @code{Subject} $B$r8+$^$9!#(B + +@item gnus-gather-threads-by-references +$B$3$N4X?t$OGSB>E*$K(B @code{References} $B%X%C%@!<$r8+$^$9!#(B +@end table + +@code{References} $B$K$h$C$F=8$a$k$3$H$r;n$7$F$_$?$$$N$G$"$l$P!"/$J$$35N,9T$rI=<($7$?$$$1$l$I!"$G$-$k$@$1$?$/$5$s$NHsL)%9%l%C(B +$B%I$K@\B3$7$F$*$-$?$$$H$-$O!"$3$NJQ?t$r(B @code{some} $B$+?t;z$K@_Dj$9$k$3$H(B +$B$,$G$-$^$9!#$b$7?t;z$K@_Dj$7$?$H$-$O!"$=$l$h$jB?$$DI2C$N%X%C%@!<$Ol9g$G$b!"8E$$%X%C%@!<$N/$7B.$/$J$j$^$9$,!"5-;v$rFI$`$N$,$b$C$HCY$/!"ITJX$K$J$k$3$H$O3N/$J$$Am9gE*%9%3%"(B (@code{gnus-thread-score-function}) $B$r;}(B +$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(B @code{nil} +$B$G!"$3$l$O$I$N%9%l%C%I$b>C5n$5$l$J$$$H$$$&$3$H$G$9!#(B + +@item gnus-thread-hide-killed +@vindex gnus-thread-hide-killed +$B$b$7%9%l%C%I$r:o=|$7$F!"$3$NJQ?t$,(B @code{nil} $B$G$J$$$H!"I{LZ$O1#$5$l$^$9!#(B + +@item gnus-thread-ignore-subject +@vindex gnus-thread-ignore-subject +$B;~!9!"C/$+$,%9%l%C%I$N??Cf$GI=Bj$rJQ99$9$k$3$H$,$"$j$^$9!#$b$7$3$NJQ?t$,(B +@code{nil} $B$G$J$$$H!"I=Bj$NJQ99$OL5;k$5$l$^$9!#$b$7(B @code{nil} $B$@$H!"$3(B +$B$l$,%G%#%U%)%k%H$G$9$,!"I=Bj$NJQ99$r$9$k$HJL$N%9%l%C%I$K$J$j$^$9!#(B + +@item gnus-thread-indent-level +@vindex gnus-thread-indent-level +$B$3$N?t;z$OI{%9%l%C%I$,$I$l$/$i$$;z2<$2(B (indent) $B$5$l$k$Y$-$+$r7h$a$^$9!#(B +$B%G%#%U%)%k%H$O(B4$B$G$9!#(B + +@end table + + +@node Low-Level Threading +@subsection $BDc%l%Y%k$K$*$1$k%9%l%C%I:n@.(B + +@table @code + +@item gnus-parse-headers-hook +@vindex gnus-parse-headers-hook +$B$9$Y$F$N%X%C%@!<$r2r@O$9$kA0$K$N$b$N$rIU$12C(B +$B$($k$3$H$K$h$k(B) $BBN7OE*$JJ}K!$G(B @code{Message-ID} $B$r8r49$9$k%a!<%k$+$i%K%e!<(B +$B%:$X$N%2!<%H%&%'%$$,$"$k>l9g!"(B@code{Message-ID} $B$,$b$C$H0UL#$N$"$k$b$N$K(B +$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(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 $B%9%l%C%I$NL?Na(B +@cindex thread commands + +@table @kbd + +@item T k +@itemx M-C-k +@kindex T k ($B35N,(B) +@kindex M-C-k ($B35N,(B) +@findex gnus-summary-kill-thread +$B8=:_$N(B ($BI{(B) $B%9%l%C%I$K4{FI$N0u$rIU$1$^$9(B +(@code{gnus-summary-kill-thread})$B!#$b$7@\F,0z?t$,@5$G$"$k$H!"Be$o$j$K$9(B +$B$Y$F$N0u$re$2$^$9(B +(@code{gnus-summary-raise-thread})$B!#(B + +@item T # +@kindex T # ($B35N,(B) +@findex gnus-uu-mark-thread +$B%W%m%;%90u$r8=:_$N(B ($BI{(B) $B%9%l%C%I$KIU$1$^$9(B (@code{gnus-uu-mark-thread})$B!#(B + +@item T M-# +@kindex T M-# ($B35N,(B) +@findex gnus-uu-unmark-thread +$B8=:_$N(B ($BI{(B) $B%9%l%C%I$+$i%W%m%;%90u$r$7$^$9(B +(@code{gnus-summary-rethread-current})$B!#(B $B$3$l$O35N,%P%C%U%!$,%9%l%C%II=(B +$B<($5$l$F$$$J$$$H$-$G$bF0:n$7$^$9!#(B + +@item T ^ +@kindex T ^ ($B35N,(B) +@findex gnus-summary-reparent-thread +$B8=:_$N5-;v$r0uIU$-(B ($B$b$7$/$OA0$N(B) $B5-;v$N;R5-;v$K$7$^$9(B +(@code{gnus-summary-reparent-thread})$B!#(B + +@end table + +$B0J2<$NL?Na$O%9%l%C%I0\F0L?Na$G$9!#$3$l$i$O$9$Y$F?tCM@\F,0z?t$re>:$7$^$9(B (@code{gnus-summary-up-thread})$B!#(B + +@item T o +@kindex T o ($B35N,(B) +@findex gnus-summary-top-thread +$B%9%l%C%I$ND:>e$K0\F0$7$^$9(B (@code{gnus-summary-top-thread})$B!#(B +@end table + +@vindex gnus-thread-operation-ignore-subject +$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(B +$B$?I=Bj$,$"$k$3$H$K$J$j$^$9!#$=$l$+$i(B `T k' +(@code{gnus-summary-kill-thread}) $B$N$h$&$JL?Na$rH/$9$k$H$-$K!"A4BN$N%9%l%C(B +$B%I$r:o=|$9$k$N$G$O$J$/!"8=:_$N5-;v$HF1$8I=Bj$r;}$DItJ,$@$1$r:o=|$7$?$$$H(B +$B$-$,$"$k$+$b$7$l$^$;$s!#$b$7$3$NH/A[$,NI$$$H;W$&$N$G$"$l$P!"(B +@code{gnus-thread-operation-ignore-subject} $B$r$$$8$/$k$3$H$,$G$-$^$9!#$3(B +$B$l$,(B @code{nil} $B$G$J$$$H(B ($B$3$l$,%G%#%U%)%k%H$G$9$,(B) $B!"%9%l%C%I$NL?Na$r$l$N4X?t$O(B2$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(B +$B$KJB$SBX$($i$l$k$Y$-$G$"$l$P!"(B@code{nil} $B$G$J$$CM$r$+$($7$^$9!#IaDL!"JB(B +$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$(B +$B$rIU$1$F$/$@$5$$!#$b$7(B2$B$D0J>e$N4X?t$r;H$&>l9g!"M%@hE*JB$SBX$(%-!<$O%j%9(B +$B%H$N:G8e$N4X?t$G$9!#$*$=$i$/$$$D$b(B @code{gnus-thread-sort-by-number} $B$r(B +$BJB$SBX$(4X?t$N%j%9%H(B---$B:G=i$,9%$^$7$$(B $B$KF~$l$F$*$/$Y$-$G$7$g$&!#$3$l$OB>(B +$B$NJB$SBX$(4p=`$K4X$7$FEy$7$$%9%l%C%I$O5-;v$,>e$,$C$F$$$/=gHV$KI=<($5$l$k(B +$B$3$H$rJ]>Z$7$^$9!#(B + +$B%9%3%"!"I=Bj!"$=$7$F:G8e$KHV9f!"$N=g$KJB$SBX$($?$$$N$G$"$l$P!"l9g$O!"1Q;z=g$KJB$S$+$($i$l$^$9!#%9%3%"$HI=Bj$,F1$8%9%l%C%I$OHV9f(B +$B$GJB$SBX$($i$l!"(B($BIaDL$O(B) $B5-;v$,E~Ce$7$?=gHV$K$J$j$^$9!#(B + +$B%9%3%"!"E~Ce$N5U=g$KJB$SBX$($?$$$N$G$"$l$P!"h!"$b$7$/$O$"$J$?$N9%4q?4$r$/(B +$B$9$0$k$h$&$J2?$+$G$7$g$&!#(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 +$B2?$+4qL/$JM}M3$J$I$G%9%l%C%II=<($r;H$C$F$$$J$$$N$J$i!"JQ?t(B +@code{gnus-article-sort-functions} $B$r$$$8$/$kI,MW$,$"$j$^$9!#$3$l$O(B +@code{gnus-thread-sort-functions} $B$HHs>o$K;w$F$$$^$9$,!"5-;v$NHf3S$K$O>/!9(B +$B0c$C$?4X?t$r;H$$$^$9!#;HMQ2DG=$JJB$SBX$(=R8l4X?t$O(B +@code{gnus-article-sort-by-number}$B!"(B @code{gnus-article-sort-by-author}$B!"(B +@code{gnus-article-sort-by-subject}$B!"(B @code{gnus-article-sort-by-date}$B!"(B +$B$=$7$F(B @code{gnus-article-sort-by-score} $B$G$9!#(B + +$B%9%l%C%I$r;H$C$F$$$J$$I=Bj$N35N,I=<($rJB$SBX$($?$$$N$G$"$l$P!"u67$rHr$1$k$?$a$K!"(Bgnus $B$O%5!<%P!<$K(B2$B$D$N(B ($B$=$l$O(B2$B$H?t$($F$/$@$5$$(B) +$B@\B3$rD%$k$3$H$,$G$-$^$9!#$3$l$O$"$^$j$7$FNI$$$3$H$G$O$J$$$H9M$($k?M$b$$(B +$B$k$G$7$g$&$,!";d$K$OJ,$J@\B3$r$9$k(B +$B$?$a$K$O2?$i$+$N;~4V$,$+$+$j$^$9$N$G!"(Bgnus $B$N5/F0$OCY$/$J$j$^$9!#(B + +Gnus $B$O$"$J$?$,FI$`$G$"$m$&5-;v$h$j$b$?$/$5$s$N5-;v$rJ,$J5-;v$NMW5a$H!"M>J,$J@\B3$G!#(B + +$B$O$$!"$3$l$GK\Ev$O$3$N$h$&$J$3$H$r$9$Y$-$GL5$$;v$,J,$+$C$?$G$7$g$&(B... $BK\(B +$BEv$K$=$&$7$?$$$H;W$o$J$$8B$j$O!#(B + +@vindex gnus-asynchronous +$B$3$l$,J}K!$G$9(B: @code{gnus-asynchronous} $B$r(B @code{t} $B$K@_Dj$7$F$/$@$5$$!#(B +$B;D$j$N$3$H$O<+F0E*$K5/$3$j$^$9!#(B + +@vindex gnus-use-article-prefetch +@code{gnus-use-article-prefetch} $B$r@_Dj$9$k$3$H$K$h$j!"$I$l$/$i$$$N5-;v(B +$B$,@h$Ko$K(B} $BCY$$(B @sc{nntp} $B@\B3$G$"$k$J$i$P!"5-;v%-%c%C%7%e$r$9$k(B +$B$3$H$r9M$($k$+$b$7$l$^$;$s!#$=$&$9$k$H!"$=$l$>$l$N5-;v$O$"$J$?$N%[!<%`%G%#(B +$B%l%/%H%j$N2<$K%m!<%+%k$KN/$a$i$^$9!#4{$K?dB,$5$l$F$$$k$+$bCN$l$^$;$s$,!"(B +$B$3$l$O(B @emph{$B5pBg$J(B} $B%G%#%9%/%9%Z!<%9$r?)$$!"(Bi$B%N!<%I$bHs>o$KB.$/?)$$$D$V(B +$B$92DG=@-$,$"$k$?$a!"$=$l$O$"$J$?$NF,$r1K$,$;$k;v$K$J$k$+$b$7$l$^$;$s!#(B +$B%&%)%C%+$NCf$G!#(B + +$B$G$bCm0U?<$/;H$o$l$l$P!"$=$l$O5-;v$rJ]B8$9$k4JC1$JJ}K!$K$J$jF@$^$9!#(B + +@vindex gnus-use-long-file-name +@vindex gnus-cache-directory +@vindex gnus-use-cache +$B%-%c%C%7%e$rl9g$O!"%5!<%P!<$NBe$o$j$K%-%c%C%7%e$+$iJ}(B +$B$H$b%7%s%\%k$N%j%9%H$G$9!#A0/$J$/(B +$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!#(B +$B$=$&$7$?>l9g!"$=$l$i$O$3$NL?Na$G$O%@%&%s%m!<%I$5$l$^$;$s!#(B + +@vindex gnus-uncacheable-groups +$B$$$/$D$+$N%0%k!<%W$G$O%-%c%C%7%e$r$7$?$/$J$$$H$$$&$N$ONI$/$"$k;v$G$9!#Nc(B +$B$($P!"(B@code{nnml} $B%a!<%k%G%#%l%/%H%j!<$,%[!<%`%G%#%l%/%H%j!<$N2<$K$"$l$P!"(B +$B$=$l$r$"$J$?$N%[!<%`%G%#%l%/%H%j!<$N2<$NJL$N>l=j$K%-%c%C%7%e$9$k$N$O0UL#(B +$B$NL5$$;v$G$9!#$"$J$?$,(B2$BG\$NMFNL$r;H$&;v$,NI$$$H46$8$J$$8B$j$O!#%-%c%C%7%e(B +$B$r@)8B$9$k$?$a$K!"@55,I=8=(B @code{gnus-uncacheable-groups} $B$rNc$($P(B +@samp{^nnml} $B$H@_Dj$7$F$/$@$5$$!#$3$NJQ?t$O%G%#%U%)%k%H$G$O(B @code{nil} +$B$G$9!#(B + +@findex gnus-cache-generate-nov-databases +@findex gnus-cache-generate-active +@vindex gnus-cache-active-file +$B%-%c%C%7%e$O$I$N5-;v$,4^$^$l$F$$$k$+$N>pJs$r8=>u%U%!%$%k(B (active file) +(@code{gnus-cache-active-file}) $B$KN/$a$^$9!#$3$N%U%!%$%k(B ($B$b$7$/$O%-%c%C(B +$B%7%e$NB>$NItJ,(B) $B$,2?$i$+$NM}M3$G$0$A$c$0$A$c$K$J$C$F$7$^$C$?>l9g!"(Bgnus +$B$OJ*;v$r@5$7$/$9$k$?$a$K(B2$B$D$N4X?t$r$*4+$a$7$^$9!#(B @kbd{M-x +gnus-cache-generate-nov-databases} $B$O$9$Y$F$N(B @sc{nov} $B%U%!%$%k$r(B ($B:F(B) +$B:n@.$7!"(B@kbd{gnus-cache-generate-active} $B$O(B $B8=>u%U%!%$%k$r(B ($B:F(B) $B:n@.$7$^(B +$B$9!#(B + + +@node Persistent Articles +@section $B1JB35-;v(B +@cindex persistent articles +$B5-;v$N%-%c%C%7%e$H6a$$4X78$K$"$k$b$K!"(B@dfn{$B1JB35-;v(B} $B$,$"$j$^$9!#l=j$K1J1s$K;D$C$F$$$k(B +$B$Y$-$G$7$g$&!#%K%e!<%:%5!<%P!<$K$*$1$k4|8B:o=|$K$O1F6A$5$l$J$$$G!#(B + +$B$3$l$,(B @dfn{$B1JB35-;v(B} $B$G$9(B---$B5-;v$O:o=|$5$l$^$;$s!#$=$l$OIaDL$N%-%c%C%7%e(B +$BL?Na$r;H$C$FJ}$H$b%W%m%;%9(B/$B@\F,0z?t$N=,47$rM}2r$7$^$9!#(B + +$B$b$71JB35-;v$K$@$16=L#$,$"$k$N$G$7$?$i!"2D;k5-;v(B ($B$d$=$NB>$N$b$N(B) $B$,%-%c%C(B +$B%7%e$KF~$k$N$rHr$1$k$?$a$K!"(B@code{gnus-use-cache} $B$r(B @code{passive} $B$K@_(B +$BDj$9$k$N$,NI$$$G$7$g$&(B: + +@lisp +(setq gnus-use-cache 'passive) +@end lisp + + +@node Article Backlog +@section $B5-;v$N%P%C%/%m%0(B +@cindex backlog +@cindex article backlog +$B$b$7CY$$@\B3$7$+$J$$>l9g$G!"%-%c%C%7%e$r;H$&$H$$$&H/A[$O$"$^$jL%NOE*$G$O(B +$B$J$$$H$-(B ($Bu(B +$B67$r2?$H$+$9$k$3$H$,$G$-$^$9!#$3$l$O4{$KFI$s$@5-;v$r:F/$7CY$/$7!"%a(B +$B%b%j!<$N;HMQNL$r$$$/$i$+A}$d$7$^$9!#(B + +@vindex gnus-keep-backlog +$B$b$7(B @code{gnus-keep-backlog} $B$r?t;z(B @var{n} $B$K@_Dj$9$k$H!"(Bgnus $B$O:GBg$G(B +@var{n} $B$N8E$$5-;v$r8e$N:Fl9g!"(Bgnus $B$O(B @emph{$BA4$F(B} $B$N4{FI5-;v(B +$B$r$?$/$o$($^$9!#$3$l$O$"$J$?$N(B Emacs $B$,!"K=H/$7$F$"$J$?$N%^%7%s$,Mn$A$k(B +$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(B +$B$&$K$3$3$K=q$-2C$($^$7$?!#(B + +$B$3$NJQ?t$O%G%#%U%)%k%H$G$O(B @code{nil} $B$G$9!#(B + +@node Saving Articles +@section $B5-;v$NJ]B8(B +@cindex saving articles + +Gnus $B$O$?$/$5$s$NJ}K!$G5-;v$rJ]B8$9$k;v$,$G$-$^$9!#0J2<$N$b$N$OHs>o$KN((B +$BD>$JJ}K!(B ($BNc$($P!"5-;v$,J]B8$9$kA0$K$[$H$s$I2?$b$J$5$l$J$$(B) $B$G5-;v$rJ]B8(B +$B$9$k$?$a$N@bL@$G$9!#0c$C$?$^$7$/$J$$%X%C%@!<$r>C5n$7$^$;$s!#(B + +@vindex gnus-saved-headers +$B$b$7>e$NJQ?t$,(B @code{nil} $B$G$"$k$H!"@55,I=8=(B @code{gnus-saved-headers} +$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!#(B + +@table @kbd + +@item O o +@itemx o +@kindex O o ($B35N,(B) +@kindex o ($B35N,(B) +@findex gnus-summary-save-article +@c @icon{gnus-summary-save-article} +$B%G%#%U%)%k%H$N5-;vJ]B8$rMQ$$$F8=:_$N5-;v$rJ]B8$7$^$9(B +(@code{gnus-summary-save-article})$B!#(B + +@item O m +@kindex O m ($B35N,(B) +@findex gnus-summary-save-article-mail +$B8=:_$N5-;v$r%a!<%k$NMM<0$GJ]B8$7$^$9(B +(@code{gnus-summary-save-article-mail})$B!#(B + +@item O r +@kindex O r ($B35N,(B) +@findex gnus-summary-save-article-rmail +$B8=:_$N5-;v$r(B rmail $B$NMM<0$GJ]B8$7$^$9(B +(@code{gnus-summary-save-article-rmail})$B!#(B + +@item O f +@kindex O f ($B35N,(B) +@findex gnus-summary-save-article-file +@c @icon{gnus-summary-save-article-file} +$B8=:_$N5-;v$rIaDL$N%U%!%$%k(B (plain file) $BMM<0$GJ]B8$7$^$9(B +(@code{gnus-summary-save-article-file})$B!#(B + +@item O F +@kindex O F ($B35N,(B) +@findex gnus-summary-write-article-file +$B8=:_$N5-;v$rIaDL$N%U%!%$%kMM<0$GJ]B8$7!"0JA0$N%U%!%$%k$NFbMF$r>e=q$-$7$^(B +$B$9(B (@code{gnus-summary-write-article-file})$B!#(B + +@item O b +@kindex O b ($B35N,(B) +@findex gnus-summary-save-article-body-file +$B8=:_$N5-;v$NK\J8(B (body) $B$rIaDL$N%U%!%$%kMM<0$GJ]B8$7$^$9(B +(@code{gnus-summary-save-article-body-file})$B!#(B + +@item O h +@kindex O h ($B35N,(B) +@findex gnus-summary-save-article-folder +$B8=:_$N5-;v$r(B mh $B$N%U%)%k%@!<$NMM<0$GJ]B8$7$^$9(B +(@code{gnus-summary-save-article-folder})$B!#(B + +@item O v +@kindex O v ($B35N,(B) +@findex gnus-summary-save-article-vm +$B8=:_$N5-;v$r(B VM $B%U%)%k%@!<$KJ]B8$7$^$9(B +(@code{gnus-summary-save-article-vm})$B!#(B + +@item O p +@kindex O p ($B35N,(B) +@findex gnus-summary-pipe-output +$B8=:_$N5-;v$r%Q%$%W$KJ]B8$7$^$9!#$&!<$s$H!"$"$N$)!";d$,8@$*$&$H$7$F$$$k;v(B +$B$O(B---$B8=:_$N5-;v$r%W%m%;%9$K%Q%$%W$9$k$H$$$&$3$H$G$9(B +(@code{gnus-summary-pipe-output})$B!#(B +@end table + +@vindex gnus-prompt-before-saving +$B$9$Y$F$N$3$l$i$NL?Na$O%W%m%;%9(B/$B@\F,0z?t$N=,47$r;H$$$^$9(B +(@pxref{Process/Prefix})$B!#$b$7$3$l$i$N4X?t$r;H$C$F$?$/$5$s$N5-;v$rJ]B8$7(B +$B$?>l9g!"$=$l$>$l$N$9$Y$F$N5-;v$KBP$7$F%U%!%$%kL>$NF~NO$rMW5a$5$l$k;v$KK0(B +$B$-K0$-$9$k$G$7$g$&!#F~NOB%?JF0:n$OJQ?t(B @code{gnus-prompt-before-saving} +$B$K$h$C$F@)8f$5$l$^$9!#$3$l$O%G%#%U%)%k%H$G$O(B @code{always} $B$G!"$"$J$?$,(B +$BCN$C$F$$$F7y$,$C$F$$$k!"2a>j$JB%?JF0:n$r$7$^$9!#Be$o$j$K$3$NJQ?t$r(B +@code{t} $B$K@_Dj$9$k$H!"$"$J$?$,J]B8$9$k$=$l$>$l$N0lO"$N5-;v$KBP$7$F0l2s(B +$B$@$1B%$5$l$^$9!#K\Ev$K(B gnus $B$K$9$Y$F$N;W9M$r$5$;$?$$$N$G$"$l$P!"$3$NJQ?t(B +$B$r(B@code{nil} $B$K$9$k$3$H$5$($G$-$^$9!#$=$7$F!"5-;v$rJ]B8$9$k$?$a$N%U%!%$(B +$B%k$rB%$5$l$k;v$O$"$j$^$;$s!#(BGnus $B$OC1=c$K$9$Y$F$N5-;v$r%G%#%U%)%k%H$N%U%!(B +$B%$%k$KJ]B8$7$^$9!#(B + + +@vindex gnus-default-article-saver +Gnus $B$,$"$J$?$NK>$`$H$*$j$K$J$k$h$&$K!"JQ?t(B +@code{gnus-default-article-saver} $B$r%+%9%?%^%$%:$9$k;v$,$G$-$^$9!#2<$N(B4 +$B$D$N4{@=4X?t$r;H$&;v$,$G$-$^$9$7!"<+J,<+?H$N4X?t$r:n$k;v$b$G$-$^$9!#(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 +$B$3$l$O%G%#%U%)%k%H$NMM<0!"(B@dfn{babyl} $B$G$9!#JQ?t(B +@code{gnus-ramil-save-name} $B$KF~$C$F$$$k4X?t$r!"5-;v$rJ]B8$9$k$?$a$N%U%!(B +$B%$%kL>$r$ro$N%U%!%$%k$N8e$KDI2C$7$^$9!#JQ?t(B @code{gnus-file-save-name} $B$K(B +$BF~$C$F$$$k4X?t$r!"5-;v$rJ]B8$9$k$?$a$N%U%!%$%kL>$ro$N%U%!%$%k$N8e$KDI2C$7$^$9!#JQ?t(B +@code{gnus-file-save-name} $B$KF~$C$F$$$k4X?t$r!"5-;v$rJ]B8$9$k$?$a$N%U%!(B +$B%$%kL>$r$r.J8;z$K$J$C$?L>A0$r$D$/$j$^$9!#(B + +@item gnus-summary-save-in-vm +@findex gnus-summary-save-in-vm +$B5-;v$r(B VM $B%U%)%k%@!<$KJ]B8$7$^$9!#$3$N@_Dj$r;H$&$?$a$K$O(B VM $B%a!<%k%j!<%@!<(B +$B$,I,MW$G$9!#(B +@end table + +@vindex gnus-article-save-directory +$B$3$l$i$NA4$F$N4X?t$O:G8e$N0l$D$r=|$$$F!"4D6-JQ?t(B @code{SAVEDIR} $B$K$h$C$F(B +$B=i4|2=$5$l$k(B @code{gnus-article-save-directory} $B$K5-;v$rJ]B8$7$^$9!#$3$l(B +$B$O%G%#%U%)%k%H$G$O(B @file{~/News/} $B$G$9!#(B + +$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!"(B +$B4X?t$O0c$C$?4X?t$rMQ$$$^$9!#0J2<$OL>A0$r@8@.$9$k$?$a$K;HMQ2DG=$J4X?t$N%j(B +$B%9%H$G$9(B: + +@table @code + +@item gnus-Numeric-save-name +@findex gnus-Numeric-save-name +@file{~/News/Alt.andera-dworkin/45} $B$N$h$&$J%U%!%$%kL>!#(B + +@item gnus-numeric-save-name +@findex gnus-numeric-save-name +@file{~/News/alt.andera-dworkin/45} $B$N$h$&$J%U%!%$%kL>!#(B + +@item gnus-Plain-save-name +@findex gnus-Plain-save-name +@file{~/News/Alt.andera-dworkin} $B$N$h$&$J%U%!%$%kL>!#(B + +@item gnus-plain-save-name +@findex gnus-plain-save-name +@file{~/News/alt.andera-dworkin} $B$N$h$&$J%U%!%$%kL>!#(B +@end table + +@vindex gnus-split-methods +$BO"A[%j%9%H(B @code{gnus-split-methods} $B$K@55,I=8=$rJ|$j9~$`;v$K$h$C$F!"(B +gnus $B$K5-;v$rJ]B8$9$k>l=j$rDs0F$9$k;v$,$G$-$^$9!#Nc$($P!"(Bgnus $B$K4XO"$7$?(B +$B5-;v$r%U%!%$%k(B @file{gnus-stuff} $B$K!"(BVM $B$K4XO"$7$?5-;v$r(B @code{vm-stuff} +$BJ]B8$7$?$1$l$P!"$3$NJQ?t$r0J2<$N$h$&$K$9$k;v$,$G$-$^$9(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 + +$B$3$l$O$=$l$>$l$NMWAG$,!"(B2$B$D$NMWAG(B---@dfn{$B9gCW(B} $B$H(B @dfn{$B%U%!%$%k(B} $B$r;}$D(B +$B%j%9%H$G$"$k%j%9%H$G$"$k$H$$$&;v$,$o$+$j$^$9!#9gCW$OJ8;zNs(B ($B$3$N>l9g$O5-(B +$B;v$N%X%C%@!<$K9gCW$9$k@55,I=8=$H$7$F;H$o$l$^$9(B) $B$*$h$S!"%7%s%\%k(B ($B%0%k!<(B +$B%WL>$r0z?t$H$7$F!"4X?t$H$7$F8F$P$l$^$9(B) $B$*$h$S!"%j%9%H(B ($B$3$l$O(B@code{$BI>2A(B} +$B$5$l$^$9(B) $B$G$"$k$3$H$,$G$-$^$9!#$b$7$3$l$i$NF0:n$N0l$D$G$b(B @code{nil} $B$G(B +$B$J$$7k2L$rJV$9$H!"(B@dfn{$B%U%!%$%k(B}$B$,%G%#%U%)%k%H$NB%?J$H$7$F;H$o$l$^$9!#2C(Bn +$B$($F!"8F$P$l$?4X?t$+<0$,J8;zNs$+J8;zNs$N%j%9%H$rJV$7$?$H$-$O!"1i;;$N7k2L(B +$B<+BN$,;H$o$l$^$9!#(B + +$B4pK\E*$K$O!"8=:_$N5-;v$rJ]B8$9$k$N$K;H$o$l$k2DG=@-$N$"$k%U%!%$%kL>$N%j%9(B +$B%H$rA0$H$7$F;H$$$?$$$b$N$rB%$5$l!"$3$NJQ?t$rE,MQ$9$k;v$K$h$jF@$i$l$?(B +$B7k2L$+$i%U%!%$%kL>Jd40$r$7$FF~NO$7$^$9!#(B + +$B$3$NJQ?t$O%G%#%U%)%k%H$G$O(B @code{((gnus-article-archive-name))} $B$G!"(Bgnus +$BJ]B8$9$k5-;v$N(B @code{Archive-name} $B9T$rD4$Y$F!"$=$l$r%U%!%$%kL>$NDs0F$H(B +$B$7$F;H$&$H$$$&;v$G$9!#(B + +$B$3$l$O%U%!%$%kL>$r>/$7$-$l$$$K$9$k4X?t$NNc$G$9!#(B +@samp{nnml:mail.whatever} $B$N$h$&$J%a!<%k%0%k!<%W$,$?$/$5$s$"$k$N$G$"$l$P!"(B +$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$?(B +$B$$$+$b$7$l$^$;$s!#e5-$N4X?t$O%0%k!<%WL>$N$9$Y$F$N%T%j%*%I(B +(@samp{.}) $B$r%9%i%C%7%e(B (@samp{/}) $B$GCV$-49$($^$9(B---$B$3$l$O4X?t$O$9$Y$F$N(B +$B%U%!%$%k$r0lHV>e$N%G%#%l%/%H%j!<$KCV$/$N$G$O$J$/!"3,AXE*$J%G%#%l%/%H%j!<(B +$B$r:n$k$H$$$&;v$G$9(B (@file{~/News/alt.andrea-dworkin} $B$NBe$o$j$K(B +@file{~/News/alt/andrea-dworkin}$B!#(B)$B$3$NJQ?t$O$?$$$F$$$N%7%9%F%`$K$*$$$F(B +$B%G%#%U%)%k%H$G(B @code{t} $B$G$9!#$7$+$7!"Nr;KE*$JM}M3$+$i(B Xenix $B$H(B +usg-unix-v $B%^%7%s$G$O%G%#%U%)%k%H$G(B @code{nil} $B$G$9!#(B + +$B$3$N4X?t$O:o=|$H%9%3%"$N%U%!%$%kL>$K1F6A$7$^$9!#$3$NJQ?t$,%j%9%H$G!"%j%9(B +$B%H$KMWAG(B @code{not-score} $B$,$"$k$H!"D9$$%U%!%$%kL>$O%9%3%"%U%!%$%k$K$O;H(B +$B$o$l$:!"%j%9%H$KMWAG(B @code{not-save} $B$,$"$k$H!"D9$$%U%!%$%kL>$OJ]B8$K$O(B +$B;H$o$l$:!"MWAG(B @code{not-kill} $B$,$"$k$H!"D9$$%U%!%$%kL>$O:o=|%U%!%$%k$K(B +$B$O;H$o$l$^$;$s!#(B + +$B$b$75-;v$r%9%W!<%k$N$h$&$J3,AX$KJ]B8$7$?$$$N$G$"$l$P!"e$N%G%#%l%/%H%j!<$r0z?t(B (@file{~/News/}) $B$H$7$F(B +$BEO$7$^$9!#(B + + +@node Decoding Articles +@section $B5-;v$NI|9f2=(B +@cindex decoding articles + +$B$H$-$I$-MxMQA0!"(B +@samp{[Cc][Ii][Nn][Dd][Yy][0-9]+.\\(gif\\|jpg\\)} $B$K%O!<%I%3!<%I$5$l$k!"(B +$B$r;}$D5-;v$rI|9f2=$7$h$&$H$7$?$H$-$O!"(B@code{gnus-uu} $B$OLdBj$N5-;v$r$A$g(B +$B$&$I1\Mw$7$?;v$rCN$i$;$k$?$a$K!"<+F0E*$K(B @samp{comp.unix.wizards} $B$K5-;v(B +$B$rEj9F$7$^$9!#$3$N5!G=$r;H$o$J$$$h$&$K$9$k;v$O$G$-$^$;$s!#(B + + +@node Shell Archives +@subsection $B%7%'%k%"!<%+%$%V(B +@cindex unshar +@cindex shell archives +@cindex shared articles + +$B%7%'%k%"!<%+%$%V(B (``shar $B%U%!%$%k(B'') $B$O%=!<%9$rG[I[$9$k$?$a$N?M5$$N$"$k(B +$BJ}K!$G$7$?$,!":#F|$G$O$=$s$J$K;H$o$l$F$$$^$;$s!#$H$K$+$/$3$l$i$r07$&$?$a(B +$B$NL?Na$,$"$j$^$9(B: + +@table @kbd + +@item X s +@kindex X s ($B35N,(B) +@findex gnus-uu-decode-unshar +$B8=:_$N72$r2rE`$7$^$9(B (@code{gnus-uu-decode-unshar})$B!#(B + +@item X S +@kindex X S ($B35N,(B) +@findex gnus-uu-decode-unshar-and-save +$B8=:_$N72$r2rE`$7J]B8$7$^$9(B (@code{gnus-uu-decode-unshar-and-save})$B!#(B + +@item X v s +@kindex X v s ($B35N,(B) +@findex gnus-uu-decode-unshar-view +$B8=:_$N72$r2rE`$71\Mw$7$^$9(B (@code{gnus-uu-decode-unshar-view})$B!#(B + +@item X v S +@kindex X v S ($B35N,(B) +@findex gnus-uu-decode-unshar-and-save-view +$B8=:_$N72$r2rE`$7!"1\Mw$7$FJ]B8$7$^$9(B +(@code{gnus-uu-decode-unshar-and-save-view})$B!#(B +@end table + + +@node PostScript Files +@subsection $B%]%9%H%9%/%j%W%H%U%!%$%k(B +@cindex PostScript + +@table @kbd + +@item X p +@kindex X p ($B35N,(B) +@findex gnus-uu-decode-postscript +$B8=:_$N%]%9%H%9%/%j%W%H72$rE83+$7$^$9(B (@code{gnus-uu-decode-postscript})$B!#(B + +@item X P +@kindex X P ($B35N,(B) +@findex gnus-uu-decode-postscript-and-save +$B8=:_$N%]%9%H%9%/%j%W%H72$rE83+$7$FJ]B8$7$^$9(B +(@code{gnus-uu-decode-postscript-and-save})$B!#(B + +@item X v p +@kindex X v p ($B35N,(B) +@findex gnus-uu-decode-postscript-view +$B8=:_$N%]%9%H%9%/%j%W%H72$r1\Mw$7$^$9(B +(@code{gnus-uu-decode-postscript-view})$B!#(B + +@item X v P +@kindex X v P ($B35N,(B) +@findex gnus-uu-decode-ostscript-and-save-view +$B8=:_$N%]%9%H%9%/%j%W%H72$r1\Mw$7J]B8$7$^$9(B +(@code{gnus-uu-decode-postscript-and-save-view})$B!#(B +@end table + + +@node Other Files +@subsection $BB>$N%U%!%$%k(B + +@table @kbd +@item X o +@kindex X o ($B35N,(B) +@findex gnus-uu-decode-save +$B8=:_$N72$rJ]B8$7$^$9(B (@code{gnus-uu-decode-save})$B!#(B + +@item X b +@kindex X b ($B35N,(B) +@findex gnus-uu-decode-binhex +$B8=:_$N5-;v$r(B binhex $B2rE`$7$^$9(B (@code{gnus-uu-decode-binhex})$B!#$3$l$OK\(B +$BEv$OF0:n$7$^$;$s!#(B +@end table + + +@node Decoding Variables +@subsection $BI|9f2=$N$?$a$NJQ?t(B + +$B7AMF;l$G$9!#F0;l$G$O$"$j$^$;$s!#(B + +@menu +* Rule Variables:: $B%U%!%$%k$,$I$N$h$&$K1\Mw$5$l$k$+$r7h$a$kJQ?t!#(B +* Other Decode Variables:: $BB>$NI|9f2=$NJQ?t!#(B +* Uuencoding and Posting:: uuencode $B$9$k$N$r%+%9%?%^%$%:$9$kJQ?t!#(B +@end menu + + +@node Rule Variables +@subsubsection $B5,B'JQ?t(B +@cindex rule variables + +Gnus $B$O%U%!%$%k$r1\Mw$9$k$N$r7hDj$9$k$N$K(B @dfn{$B5,B'JQ?t(B} $B$rMQ$$$^$9!#$3(B +$B$l$i$NJQ?t$O$9$Y$F0J2<$N$h$&$JMM<0$G$9(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 +$B$3$NJQ?t$O%U%!%$%k$r1\Mw$9$k$H$-$K:G=i$KD4$Y$i$l$^$9!#Nc$($P!"$b$7(B +@samp{.au} $B2;%U%!%$%k$rJQ49$9$k$?$a$K(B @code{sox} $B$r;H$$$?$$$H$-$O!" /dev/audio\"))) +@end lisp + +@item gnus-uu-user-view-rules-end +@vindex gnus-uu-user-view-rules-end +$B$3$NJQ?t$O(B gnus $B$,MxMQ$NI|9f2=$NJQ?t(B + +@table @code +@vindex gnus-uu-grabbled-file-functions + +@item gnus-uu-grabbled-file-functions +$B$3$N%j%9%H$N$9$Y$F$N4X?t$O$=$l$>$l$N%U%!%$%k$,>e8e$K8F(B +$B$P$l$^$9(B---$B$G$9$+$i!"$9$0$K%U%!%$%k$r0\F0$d1\Mw$7$?$j$9$k$3$H$,$G$-!"2?(B +$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(B +$B%j%9%H$KF~$l$k;v$N$G$-$k4{@=4X?t$O(B: + +@table @code + +@item gnus-uu-grab-view +@findex gnus-uu-grab-view +$B%U%!%$%k$r1\Mw$7$^$9!#(B + +@item gnus-uu-grab-move +@findex gnus-uu-grab-move +$B%U%!%$%k$r0\F0$7$^$9(B ($B$b$7J]B84X?t$r;H$C$F$$$k$N$G$"$l$P(B)$B!#(B +@end table + +@item gnus-uu-be-dangerous +@vindex gnus-uu-be-dangerous +$BI|9f2=$N:GCf$KJQ$J>u67$,5/$3$C$?$H$-$K2?$r$9$k$+$r;XDj$7$^$9!#$b$7(B +@code{nil} $B$G$"$k$H!"$G$-$k$@$1J]e=q$-$7$^$9!#$=$NB>$N>l9g$O!"(B +$B$=$l$>$l$N$H$-$K?R$M$^$9!#(B + +@item gnus-uu-ignore-files-by-name +@vindex gnus-uu-ignore-files-by-name +$B$3$N@55,I=8=$K9gCW$9$kL>A0$N%U%!%$%k$O1\Mw$5$l$^$;$s!#(B + +@item gnus-uu-igonore-files-by-type +@vindex gnus-uu-ignore-files-by-type +$B$3$NJQ?t$K9gCW$9$k(B @sc{mime} $B$N7?$r;}$D%U%!%$%k$O1\Mw$5$l$^$;$s!#(BGnus $B$O(B +$B%U%!%$%kL>$K4p$E$$$F7?$r?dB,$7$F$$$k;v$KCm0U$7$F$/$@$5$$!#(B +@code{gnus-uu} $B$O(B ($B$^$@(B) @sc{mime} $B%Q%C%1!<%8$G$O$"$j$^$;$s$N$G!"$3$l$O(B +$B>/$7JQ$G$9!#(B + +@item gnus-uu-tmp-dir +@vindex gnus-uu-tmp-dir +@code{gnus-uu} $B$,$=$N;E;v$r$9$k>l=j$G$9!#(B + +@item gnus-uu-do-not-unpack-archives +@vindex gnus-uu-do-not-unpack-archives +@code{nil} $B$G$J$$$N$O!"(B@code{gnus-uu} $B$OI=<($9$k$?$a$N%U%!%$%k$rC5$9$?$a(B +$B$K%"!<%+%$%V$NCf$^$G$OF~$C$F$$$+$J$$$H$$$&;v$G$9!#(B + +@item gnus-uu-view-and-save +@vindex gnus-uu-view-and-save +@code{nil} $B$G$J$$$N$O!"MxMQo$KJ]B8$9$k$+$I$&(B +$B$+$r?R$M$i$l$k$H$$$&;v$G$9!#(B + +@item gnus-uu-ignore-default-view-rules +@vindex gnus-uu-ignore-default-view-rules +@code{nil} $B$G$J$$$N$O!"(B@code{gnus-uu} $B$O%G%#%U%)%k%H$N1\Mw5,B'$rL5;k$9$k(B +$B$H$$$&;v$G$9!#(B + +@item gnus-uu-ignore-default-archive-rules +@vindex gnus-uu-ignore-default-archive-rules +@code{nil} $B$G$J$$$N$O!"(B@code{gnus-uu} $B$O%G%#%U%)%k%H$N%"!<%+%$%VE83+L?Na(B +$B$rL5;k$9$k$H$$$&;v$G$9!#(B + +@item gnus-uu-kill-carriage-return +@vindex gnus-uu-kill-carriage-return +@code{nil} $B$G$J$$$N$O!"(B@code{gnus-uu} $B$O5-;v$+$i$9$Y$F$N%-%c%j%C%8%j%?!<(B +$B%s(B (carriage return) $B$r$K4p$E$$$?(B @sc{mime} $BFbMF$N7?$K~$j$r$7$J$$$GA4$F$r%U%!%$%k$KJ]B8$7$^$9!#MWLs(B +$B$O(B RFC1153 $B=`$8$F$$$^$9(B---$B0UL#$N$"$kNL$r;XDj$7$F!"HV9f$rH/9T$9$k4JC1$JJ}(B +$BK!$,8+$D$+$i$J$+$C$?$N$G!"C1=c$K$=$l$i$O@Z$jMn$H$7$F$$$^$9!#(B + +@end table + + +@node Uuencoding and Posting +@subsection uuencode $B$HEj9F(B + +@table @code + +@item gnus-uu-post-include-before-composing +@vindex gnus-uu-post-include-before-composing +@code{nil} $B$G$J$$$N$O!"(B@code{gnus-uu} $B$,5-;v$r:n@.$9$kA0$KId9f2=$9$k%U%!(B +$B%$%k$r?R$M$k$H$$$&;v$G$9!#$3$NJQ?t$,(B @code{t} $B$G$"$k$H!"(B@kbd{C-c C-i} $B$K(B +$B$h$C$FId9f2=$5$l$?%U%!%$%k$r$NI|9fAuCV$,B8:_$7$J$$$+$i$G$9!#(B ($B$(!<$H!";d$O$=$l$r$9(B +$B$k0l$D$N%Q%C%1!<%8$r8+$?;v$,$"$j$^$9(B---@code{gnus-uu} $B$G$9!#$7$+$7$J$<$+!"(B +$B$=$l$,?t$N$&$A$KF~$k$H$O;W$($J$$$N$G$9(B...) $B%G%#%U%)%k%H$O(B @code{nil} $B$G(B +$B$9!#(B + +@item gnus-uu-post-separate-description +@vindex gnus-uu-post-separate-description +@code{nil} $B$G$J$$$N$O!"5-=R$OJL$N5-;v$GEj9F$5$l$k$H$$$&;v$G$9!#:G=i$N5-(B +$B;v$OIaDL$O(B (0/x) $B$N$h$&$KHV9f$,IU$1$i$l$^$9!#$b$7$3$NJQ?t$,(B @code{nil} +$B$G$"$k$H!"MxMQl9g!"(Bgnus $B$O%"!<%+%$%V(B +$B$rE83+$7$h$&$H;n$_!"%"!<%+%$%V$NCf$K1\Mw$G$-$k%U%!%$%k$,$"$k$+$rD4$Y$^$9!#(B +$BNc$($P!"(Bgzip $B$5$l$?(B tar $B%U%!%$%k(B @file{pics.tar.gz} $B$,$"$C$F!"%U%!%$%k(B +@file{pic1.jpg} $B$H(B @file{pic2.gif} $B$r4^$s$G$$$k>l9g!"(Bgnus $B$O$l$NCj=P$5$l$?5-;v$4$H$K(B @dfn{$B5?;w5-;v(B} $B$r35(B +$BN,%P%C%U%!$KA^F~$7$^$9!#$3$l$i$N(B ``$B5-;v(B'' $B$K0\F0$7$?>l9g$O!"$l$N%U%!%$%k$KBP$7$F:n@.$5$l$^$9!#(B@code{nil} $B$G$"$k(B +$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$^(B +$B$9!#(B + +@vindex gnus-insert-pseudo-articles +@code{gnus-insert-pseudo-articles} $B$,(B @code{nil} $B$G$J$$$H!"I|9f2=$N$H$-(B +$B$K5?;w5-;v$rA^F~$7$^$9!#%G%#%U%)%k%H$G$O(B @code{t}$B$G$9!#(B + +$B$=$l$G!"$=$N$h$&$J46$8$G$9!#(B@emph{$Bo$K6lpJs$O>C$75n$j$?$$$H$b;W$&!#(B +* Article Washing:: $B?M@8$r$b$C$H$h$/$9$k$?$/$5$s$N5$$NMx$$$?4X?t!#(B +* Article Buttons:: URL $B$d(B Message-ID $B$d(B $B%"%I%l%9$J$I$r%/%j%C%/$9$k!#(B +* Article Date:: $B$0$:$0$:8@$&$J!"I8=`;~$@(B! +* Article Signature:: $B=pL>$C$F2?(B? +@end menu + + +@node Article Highlighting +@subsection $B5-;v$N%O%$%i%$%H(B +@cindex highlight + +$B5-;v%P%C%U%!$r2LJ*%5%i%@$N$h$&$K$7$?$$$@$1$G$J$/!"2Z$d$+$J2LJ*%5%i%@$N$h(B +$B$&$K8+$($k$h$&$K$7$?$$$G$7$g$&!#(B + +@table @kbd + +@item W H a +@kindex W H a ($B35N,(B) +@findex gnus-article-highlight +$B8=:_$N5-;v$r%O%$%i%$%H(B (highlight) $B$7$^$9(B +(@code{gnus-article-highlight})$B!#(B + +@item W H h +@kindex W H h ($B35N,(B) +@findex gnus-article-highlight-headers +@vindex gnus-header-face-alist +$B%X%C%@!<$r%O%$%i%$%H$7$^$9(B (@code{gnus-article-highlight-headers})$B!#%O%$(B +$B%i%$%H$OJQ?t(B @code{gnus-header-face-alist} $B$K$7$?$,$C$F$J$5$l!"$=$l$O$=(B +$B$l$>$l$NMWAG$,(B @var{($B@55,I=8=(B $BL>A0(B $BFbMF(B)} $B$H$$$&MM<0$N%j%9%H$G$9!#(B +@var{$B@55,I=8=(B} $B$O%X%C%@!<$K9gCW$9$k@55,I=8=!"(B@var{$BL>A0(B} $B$O%X%C%@!<$NL>A0(B +$B$r%O%$%i%$%H$9$k$N$K;H$o$l$k%U%'%$%9(B (face) (@pxref{FacesandFonts})$B!"(B +@var{$BFbMF(B} $B$O%X%C%@!<$NCM$r%O%$%i%$%H$9$k%U%'%$%9$G$9!#:G=i$K9gCW$7$?$b(B +$B$N$,;H$o$l$^$9!#(B@var{$B@55,I=8=(B} $B$O(B @samp{^} $B$,IU$1$i$l$k$Y$-$G$O$J$$;v$K(B +$BCm0U$7$F$/$@$5$$(B---gnus $B$,$=$l$rIU$12C$($^$9!#(B + +@item W H c +@kindex W H c ($B35N,(B) +@findex gnus-article-highlight-citation +$B0zMQ$5$l$?J8$r%O%$%i%$%H$7$^$9(B (@code{gnus-article-highlight-citation})$B!#(B + +$B0zMQ%O%$%i%$%H$r%+%9%?%^%$%:$9$k$$$/$D$+$NJQ?t$O(B: + +@table @code +@vindex gnus-cite-parse-max-size + +@item gnus-cite-parse-max-size +$B5-;v$NBg$-$5$,$3$NJQ?t(B ($B%G%#%U%)%k%H$G$O(B25000) $B$h$jBg$-$$5-;v$O!"0zMQ%O(B +$B%$%i%$%H$O9T$o$l$^$;$s!#(B + +@item gnus-cite-prefix-regexp +@vindex gnus-cite-prefix-regexp +$B$"$k9T$,(B +$B$l$N5-;v$+$i$N0zMQ$r$=$lMQ$N%U%'%$%9$GI=<($7$h$&$H$7$^$9!#$3$l$K$h$j!"C/(B +$B$,2?$r=q$$$?$+$,J,$+$j$d$9$/$J$k$G$7$g$&!#(B + +@item gnus-supercite-regexp +@vindex gnus-supercite-regexp +$BIaDL$N(B Supercite $BB0@-9T$K9gCW$9$k@55,I=8=$G$9!#(B + +@item gnus-supercite-secondary-regexp +@vindex gnus-supercite-secondary-regexp +$B0z$-Nv$+$l$?(B Supercite $BB0@-9T$K9gCW$9$k@55,I=8=$G$9!#(B + +@item gnus-cite-minimum-match-count +@vindex gnus-cite-minimum-match-count +$B$=$l$,0zMQ$G$"$k$H7hDj$9$kA0$KD4$Y$J$1$l$P$J$i$J$$:G>.$NF10l@\F,8l$G$9!#(B + +@item gnus-cite-attribution-prefix +@vindex gnus-cite-attribution-prefix +$BB0@-9T$N;O$^$j$K9gCW$9$k@55,I=8=$G$9!#(B + +@item gnus-cite-attribution-suffix +@vindex gnus-cite-attribution-suffix +$BB0@-9T$N:G8e$K9gCW$9$k@55,I=8=$G$9!#(B + +@item gnus-cite-attribution-face +@vindex gnus-cite-attribution-face +$BB0@-9T$K;H$o$l$k%U%'%$%9$G$9!#$=$NB0@-$KB0$9$kJ8$N$?$a$N%U%'%$%9$HM;9g$5(B +$B$l$^$9!#(B + +@end table + + +@item W H s +@kindex W H s ($B35N,(B) +@vindex gnus-signature-separator +@vindex gnus-signature-face +@findex gnus-article-highlight-signature +$B=pL>(B (signature) $B$r%O%$%i%$%H$7$^$9(B +(@code{gnus-article-highlight-signature})$B!#(B +@code{gnus-signature-separator} (@pxref{Article Signature}) $B$N8e$NA4$F$N(B +$B$b$N$O=pL>$H9M$($i$l!"(B@code{gnus-signature-face} $B$G%O%$%i%$%H$5$l$^$9!#(B +$B$=$l$O%G%#%U%)%k%H$G$O(B @code{italic} $B$G$9!#(B + +@end table + + +@node Article Fontisizing +@subsection $B5-;v$N%U%)%s%HJQ99(B +@cindex emphasis +@cindex article emphasis + +@cindex gnus-article-emphasize +@kindex W e ($B35N,(B) +$B?M!9$O$h$/%K%e!<%:$N5-;v$G(B @samp{_$B$3$l(B_} $B$d(B @samp{*$B$3$l(B*} $B$N$h$&$J$b$N$r(B +$B;H$C$FC18l$r6/D4$7$^$9!#(BGnus $B$O(B $B5-;v$rL?Na(B @kbd{W e} +(@code{gnus-article-emphasize}) $B$K$+$1$k;v$K$h$C$FAGE($K8+$($k$h$&$K$G$-(B +$B$^$9!#(B + +@vindex gnus-article-emphasis +$B6/D4$,$I$N$h$&$K1i;;$5$l$k$+$OJQ?t(B @code{gnus-article-emphasis} $B$K$h$C$F(B +$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!#(B +2$BHVL\$NMWAG$O$I$N@55,I=8=$N%0%k!<%W$,6/D48lA4BN$r8+$D$1$k$?$a$K;H$o$l$k(B +$B$+$r<($9?t;z$G$9!#(B3$BHVL\$O$I$N@55,I=8=$N%0%k!<%W$,I=<($5$l%O%$%i%$%H$5$l(B +$B$k$+$r7h$a$k?t;z$G$9!#(B ($B$3$N(B2$B$D$N%0%k!<%W$N4V$N5-;v$O1#$5$l$^$9!#(B) 4$BHVL\(B +$B$O%O%$%i%$%H$N%U%'%$%9$G$9!#(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 +$B%G%#%U%)%k%H$G$O(B7$B$D$N5,B'$,$"$j!"$=$l$i$O0J2<$N%U%'%$%9$rMQ$$$^$9(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}. + +$B$3$l$i$N%U%'%$%9$rJQ99$7$?$$$N$G$"$l$P!"(B@kbd{M-x customize} $B$+(B +@code{copy-face} $B$r;H$&;v$,$G$-$^$9!#Nc$($P!"(B@code{gnus-emphasis-italic} $B$KBe$o$j$K@V$N%U%'%$%9$r;H$&$h$&$K$7$?$$$H$-$O!"$l$N5-;v$NFCDj$N$b$N$r1#$7$?$$$+$b$7$l$^$;$s!#$?$$$F$$$N(B +$B5-;v$K$OIaDL$O$"$j$9$.$k$/$i$$:n$j$+$($k$b$N$,$"$j$^$9!#(B + +@table @kbd + +@item W W a +@kindex W W a ($B35N,(B) +@findex gnus-article-hide +$B35N,%P%C%U%!$G:GBg8B1#$7$^$9(B (@kbd{gnus-article-hide})$B!#(B + +@item W W h +@kindex W W h ($B35N,(B) +@findex gnus-article-hide-headers +$B%X%C%@!<$r1#$7$^$9(B (@code{gnus-article-hide-headers})$B!#(B @xref{Hiding +Headers}$B!#(B + +@item W W b +@kindex W W b ($B35N,(B) +@findex gnus-article-hide-boring-headers +$B$"$^$j6=L#$N$b$F$J$$%X%C%@!<$r1#$7$^$9(B +(@code{gnus-article-hide-boring-headers})$B!#(B @xref{Hiding Headers}$B!#(B + +@item W W s +@kindex W W s ($B35N,(B) +@findex gnus-article-hide-signature +$B=pL>$r1#$7$^$9(B (@code{gnus-article-hide-signature})$B!#(B @xref{Article +Signature}$B!#(B + +@item W W p +@kindex W W p ($B35N,(B) +@findex gnus-article-hide-pgp +@vindex gnus-article-hide-pgp-hook +@sc{pgp} $B=pL>$r1#$7$^$9(B (@code{gnus-article-hide-pgp})$B!#(B @sc{pgp} $B=pL>$,(B +$B1#$5$l$?8e$K%U%C%/(B @code{gnus-article-hide-pgp-hook} $B$,/$J$/$H$b$3$ND9$5(B ($B%G%#%U%)%k%H$G$O(B10) $B$G$J$1$l$P1#$5$l$^(B +$B$;$s!#(B + +@item gnus-cited-text-button-line-format +@vindex gnus-cited-text-button-line-format +Gnus $B$O$I$3$N0zMQJ8$,1#$5$l$F$$$k$+$r<($9$?$a$K%\%?%s$rIU$12C$(!"J8>O$N(B +$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(B +$B$h$&$JJQ?t$K$h$C$F;XDj$5$l$^$9(B (@pxref{Formatting Variables})$B!#o$K1#$7$^$9!#(B + +$B0zMQ%+%9%?%^%$%:$N$?$a$NB>$NJQ?t$N>pJs$N$?$a$K(B @pxref{Article +Highlighting} $B$b;2>H$7$F$/$@$5$$!#(B + + +@node Article Washing +@subsection $B5-;v@vBu(B +@cindex washing +@cindex article washing + +$B;d$?$A$O$3$l$r$b$C$H$b$JM}M3$N2<$G(B ``$B5-;v@vBu(B'' (article washing} $B$H8F$s(B +$B$G$$$^$9!#$9$J$o$A!"%-!<(B @kbd{A} $B$O;H$o$l$F$$$k$N$G!"Be$o$j$K%-!<(B +@kbd{W} $B$r;H$&I,MW$,$"$k$N$G$9!#(B + +$B;d$?$A$O(B @dfn{$B@vBu(B} $B$r(B``$B2?$+$N2?$+$r2?$+JL$N$b$N$KJQ49$9$k(B'' $B$HDj5A$7$F(B +$B$$$^$9$,!"IaDL$O$b$C$HNI$/8+$($k2?$+$KMn$ACe$-$^$9!#$=$l$K$b$C$H$-$l$$$G(B +$B$9!"$?$V$s!#(B + +@table @kbd + +@item W l +@kindex W l ($B35N,(B) +@findex gnus-summary-stop-page-breaking +$B%Z!<%8$N6h@Z$j$r8=:_$N5-;v$+$iiCL$J$I$G$9!#(B) + +$BIaDL$O(B ``rot13'' $B$H8F$P$l$F$$$^$9!#$=$l$O%"%k%U%!%Y%C%H$N0LCV$,(B13$B8D2sE>(B +$B$9$k$+$i$G$9!#Nc$($P!"(B@samp{B} (2$BHVL\$NJ8;z(B) -> @samp{O} (15$BHVL\$NJ8;z(B)$B!#(B +$B$3$l$O;~!9%7!<%6!l9g!"$=$l$O$+$J$j8e(B +$B$NJ}$G/$7Aa$/$7$^$9!#$b$7:,K\(B +$BE*(B X-Face $B5!G=$,$J$$$N$G$"$l$P!"(Bgnus $B$O(B @code{pbmplus} $B$d$=$NCg4V$N30It(B +$B%W%m%0%i%`$r;H$C$F(B @code{X-Face} $B%X%C%@!<$rJQ49$7$h$&$H;n$_$^$9!#(B) $B$3$N(B +$B4X?t$rI=<(%U%C%/$KF~$l$?$$$N$G$"$l$P!"$*$=$i$/$=$l$":G8e$K$J$k$Y$-$G$7$g(B +$B$&!#(B + +@item W b +@kindex W b ($B35N,(B) +@findex gnus-article-add-buttons +$B%/%j%C%/$G$-$k%\%?%s$r5-;v$K2C$($^$9(B (@code{gnus-article-add-buttons})$B!#(B +@xref{Article Buttons} + +@item W B +@kindex W B ($B35N,(B) +@findex gnus-article-add-buttons-to-head +$B%/%j%C%/$G$-$k%\%?%s$r5-;v$N%X%C%@!<$K2C$($^$9(B +(@code{gnus-article-add-buttons-to-head})$B!#(B + +@item W E l +@kindex W E l ($B35N,(B) +@findex gnus-article-strip-leading-blank-lines +$B5-;v$N;O$a$+$i$N$9$Y$F$N6uGr9T$re$N(B3$B$D$NL?Na$r$9$Y$F9T$$$^$9(B (@code{gnus-article-strip-blank-lines})$B!#(B + +@item W E A +@kindex W E A ($B35N,(B) +@findex gnus-article-strip-all-blank-lines +$B$9$Y$F$N6uGr9T$r$N$b$N$X$N;2>H$,F~$l$i$l$k;v$,$"$j$^$9!#$=$7$F!"(Bgnus $B$,(B +$B$=$l$K4X$9$k;v$r!"$=$l$i$N;2>H$N>e$G(B @kbd{RET} $B$rBG$D$+!"%^%&%9$N??Cf$N(B +$B%\%?%s$r;H$&;v$K$h$C$F!":G>.8B$NEXNO$GH$K(B @dfn{$B%\%?%s(B} $B$rIU$1$^$9(B: $B$A$c$s(B +$B$H$7$?(B URL$B!"%a!<%k%"%I%l%9!"(BMessage-ID $B$G$9!#$3$l$O(B2$B$D$NJQ?t$K$h$C$F@)8f(B +$B$5$l$F$$$F!"$=$N0l$D$O5-;v$NK\BN$r07$$!"$b$&0l$D$O5-;v$N%X%C%@!<$r07$$$^(B +$B$9!#(B + +@table @code + +@item gnus-button-alist +@vindex gnus-button-alist +$B$=$l$>$l$NF~NOMWAG$,H$G$"$k$H$_$J$5$l$^$9!#(B +$B$3$l$OKd$a9~$^$l$?(B URL $B$K9gCW$9$kE57?E*$J@55,I=8=$G$9(B +@samp{]*\\)>}$B!#(B + +@item button-par +Gnus $B$O9gCW$7$?$b$N$N$I$NItJ,$,%O%$%i%$%H$5$l$k$N$+$rCN$i$J$1$l$P$J$j$^(B +$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!#(B +$BA4$F$r%O%$%i%$%H$7$?$$$N$J$i!"$3$3$G(B0$B$r;H$C$F$/$@$5$$!#(B + +@item use-p +$B$3$N<0$O(B @code{$BI>2A(B} $B$5$l!"7k2L$,(B @code{nil} $B$G$J$1$l$P!"$3$l$O9gCW$G$"(B +$B$k$H$_$J$5$l$^$9!#$3$l$O4V0c$C$?9gCW$rHr$1$k$?$a$KFCJL$JA*JL$r$7$?$$$H$-(B +$B$KLr$KN)$A$^$9!#(B + +@item function +$B$3$N4X?t(B (function) $B$O$3$N%\%?%s$r%/%j%C%/$7$?$H$-$K8F$P$l$^$9!#(B + +@item data-par +@var{button-par} $B$N$h$&$K!"$3$l$OI{I=8=$NHV9f$G$9$,!"$3$l$O9gCW$N$I$NIt(B +$BJ,$,(B @var{function} $B$K%G!<%?$H$7$FAw$i$l$k$+$r;XDj$7$^$9!#(B + +@end table + +$B$G$9$+$i!"(BURL $B$r%\%?%s$K$9$k40A4$JF~NOMWAG$O(B + +@lisp +("]*\\)>" 0 t gnus-button-url 1) +@end lisp + +@item gnus-header-button-alist +@vindex gnus-header-button-alist +$B$=$l$,5-;v$N%X%C%@!<$@$1$KE,MQ$5$l!"$=$l$>$l$NF~NOMWAG$,$I$N%X%C%@!<$K%\(B +$B%?%s2=$rE,MQ$9$k$+$r<($9DI2C$NMWAG$,$"$k;v$r=|$-!"$3$l$OB>$NO"A[%j%9%H$H(B +$BF1$8$h$&$J$b$N$G$9(B: + +@lisp +(HEADER REGEXP BUTTON-PAR USE-P FUNCTION DATA-PAR) +@end lisp + +@var{HEADER} $B$O@55,I=8=$G$9!#(B + +@item gnus-button-url-regexp +@vindex gnus-button-url-regexp +$BKd$a9~$^$l$?(B URL $B$K9gCW$9$k@55,I=8=$G$9!#$=$l$O>e$NJQ?t$N%G%#%U%)%k%H$N(B +$BCM$G;H$o$l$^$9!#(B + +@item gnus-article-button-face +@vindex gnus-article-button-face +$B%\%?%s$K;H$o$l$k%U%'%$%9$G$9!#(B + +@item gnus-article-mouse-face +@vindex gnus-article-mouse-face +$B%^%&%9$N%+!<%=%k$,%\%?%s$N>e$K$"$k$H$-$K;H$o$l$k%U%'%$%9$G$9!#(B + +@end table + + +@node Article Date +@subsection $B5-;v$NF|IU(B + +$BF|IU$OJ9$$$?;v$NL5$$2?$+L5L>$JI8=`;~$G:n@.$5$l$F$$$k;v$,NI$/$"$k$N$G!"5-(B +$B;v$,Aw$i$l$?$H$-$K2?;~$G$"$C$?$+$rCN$k;v$,$G$-$k$N$OHs>o$KNI$$;v$G$7$g$&!#(B + +@table @kbd + +@item W T u +@kindex W T u ($B35N,(B) +@findex gnus-article-date-ut +UT ($BJLL>(B GMT, ZULU) $B$GF|IU$rI=<($7$^$9(B (@code{gnus-article-date-ut})$B!#(B + +@item W T i +@kindex W T i ($B35N,(B) +@findex gnus-article-date-iso-8601 +@cindex ISO 8601 +$BF|IU$r9q:]E*$J7A<0!"(BISO 8601 $B$GI=<($7$^$9(B +(@code{gnus-article-date-iso8601})$B!#(B + +@item W T l +@kindex W T l ($B35N,(B) +@findex gnus-article-date-local +$BF|IU$r$=$NCO0h$NI8=`;~$GI=<($7$^$9(B (@code{gnus-article-date-local})$B!#(B + +@item W T s +@kindex W T s ($B35N,(B) +@vindex gnus-article-time-format +@findex gnus-article-date-user +@findex format-time-string +$BF|IU$rMxMQ$NJQ494X?t$r;H$C$F$$$F!"$=$l$,40A4$K4V0c$C$?;v$r$7$F$$$k$N$G$O(B +$B$J$$$+$H?4G[$7$F$$$k$H$-$KLr$KN)$A$^$9!#Nc$($P!"5-;v$,(B1854$BG/$KEj9F$5$l$?(B +$B$H$J$C$F$$$k$H$7$^$7$g$&!#$7$+$7!"$=$N$h$&$J;v$O(B @emph{$B40A4$K(B} $BIT2DG=$G(B +$B$9!#;d$,?.MQ$G$-$^$;$s$+(B? *$B$/$9$/$9(B($B>P(B)* + +@end table + + +@node Article Signature +@subsection $B5-;v$N=pL>(B +@cindex signatures +@cindex article signature + +@vindex gnus-signature-separator +$B$=$l$>$l$N5-;v$O(B2$B$D$NItJ,$KJ,$1$i$l$^$9(B---$B%X%C%@!<$HK\BN$G$9!#K\BN$O=pL>(B +$BItJ,$HJ8>OItJ,$KJ,$1$i$l$^$9!#$I$l$,=pL>$H$_$J$5$l$k$+$r7h$a$kJQ?t$O(B +@code{gnus-signature-separator} $B$G$9!#$3$l$OIaDL$O(B RFC-1036 $B$N8e7Q$G;X<((B +$B$5$l$F$$$kI8=`$N(B @samp{^-- $} $B$G$9!#$7$+$7!"B?$/$N?M$,I8=`$G$J$$=pL>J,N%(B +$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(B +$B$G$-$^$9!#(B($BC5:w$OK\BN$N:G8e$+$i;O$a$X$H$J$5$l$^$9!#(B) $B$h$/$"$j$=$&$JCM$O(B: + +@lisp +(setq gnus-signature-separator + '("^-- $" ; $BI8=`(B + "^-- *$" ; $BIaDL$N2u$7J}(B + "^-------*$" ; $BB?$/$N?M$OD9!$H$_$J$5$l$k$+$X$N@)8B$rDs6!$7$^(B +$B$9!#(B + +@enumerate +@item +$B$3$l$,@0?t$G$"$l$P!"=pL>$O$3$N@0?t$h$j(B ($BJ8;z$G(B) $BD9$/$J$C$F$$$F$O$$$1$^$;(B +$B$s!#(B +@item +$B$3$l$,IbF0>.?tE@?t$G$"$l$P!"=pL>$O$=$N?t;z$h$j(B ($B9T$G(B) $BD9$/$J$C$F$$$F$O$$(B +$B$1$^$;$s!#(B +@item +$B$3$l$,4X?t$G$"$l$P!"$=$N4X?t$O0z?t$J$7$G8F$P$l!"$=$l$,(B @code{nil} $B$rJV$;(B +$B$P!"%P%C%U%!$K$O=pL>$,$"$j$^$;$s!#(B +@item +$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(B +$B$P!"$=$NEv$NJ8;zNs$O=pL>$G$O$"$j$^$;$s!#(B +@end enumerate + +$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(B: + +@lisp +(setq gnus-signature-limit + '(200.0 "^---*Forwarded article")) +@end lisp + +$B$3$l$O=pL>J,N%J*$N8e$K(B200$B$rD6$($k9T$+!"=pL>J,N%J*$N8e$NJ8>O$,@55,I=8=(B +@samp{^---*Forwarded article} $B$K9gCW$9$l$P!"7k6I$=$l$O=pL>$G$O$J$$$H$$$&(B +$B;v$G$9!#(B + + +@node Article Commands +@section $B5-;vL?Na(B + +@table @kbd + +@item A P +@cindex PostScript +@cindex printing +@kindex A P ($B35N,(B) +@vindex gnus-ps-print-article +@findex gnus-summary-print-article +$B5-;v%P%C%U%!$N%]%9%H%9%/%j%W%H(B (PostScript) $B%$%a!<%8$r:n@.$7$F0u:~$7$^$9(B +(@code{gnus-summary-print-article})$B!#(B @code{gnus-ps-print-hook} $B$,%P%C%U%!(B +$B$r0u:~$9$kD>A0$KJ}$GF0:n$7$^(B +$B$9!#8el9g$O!"$9$Y$F$N35N,9T$,0l9T0l9TJB$SBX$($i$l$^$9!#A0l9g$O!"(B +$B%k!<%H$H%k!<%H$r4pK\$H$7$FJB$SBX$($i$l!"$=$l$O$"$J$?$,5a$a$F$$$k;v$H$O0[(B +$B$J$C$F$$$k$+$b$7$l$^$;$s!#%9%l%C%I$r;H$&;v$r@Z$jBX$($k$K$O(B @kbd{T T} $B$r(B +$BBG$C$F$/$@$5$$(B (@pxref{Thread Commands})$B!#(B + + +@node Finding the Parent +@section $B?F5-;v$rC5$9(B +@cindex parent articles +@cindex referring articles + +@table @kbd +@item ^ +@kindex ^ ($B35N,(B) +@findex gnus-summary-refer-parent-article +$B8=:_$N5-;v$N?F5-;v$rFI$_$?$/$F!"$=$l$,35N,%P%C%U%!$KI=<($5$l$F$$$J$$$/$F(B +$B$b!"$*$=$i$/$=$l$O2DG=$G$7$g$&!#$H$$$&$N$O!"8=:_$N%0%k!<%W$,(B @sc{nntp} +$B$GC5n$5$l$F$$$J$$>e!"8=:_$N5-;v$N(B +@code{References} $B$,$V$A2u$5$l$F$$$J$1$l$P!"$?$@!"(B@kbd{^} $B$+(B @kbd{A r} +$B$r2!$;$PNI$$$@$1$G$9(B (@code{gnus-summary-refer-parent-article})$B!#$b$7A4(B +$B$F$,>e/$7;~4V$,$+$+(B +$B$j$^$9!#$b$7!"$3$l$r$7$P$7$P9T$&$N$G$"$l$P!"(B +@code{gnus-fetch-old-headers} $B$r(B @code{invisible} $B$K@_Dj$9$k$3$H$r9M$($?(B +$B$[$&$,NI$$$G$7$g$&(B (@pxref{Filling In Threads})$B!#$3$l$OIaDL$O;k3PE*$J8z(B +$B2L$O$"$j$^$;$s$,!"$3$NL?Na$NF0:n$r$+$J$jB.$/$9$k$G$7$g$&!#$b$A$m$s!"%0%k!<(B +$B%W$KF~$k$N$O>/$7CY$/$J$j$^$9!#(B + +@vindex gnus-refer-thread-limit +$BJQ?t(B @code{gnus-refer-thread-limit} $B$O$3$NL?Na$re=q$-$9$k;v$,$G$-$^$9!#(B + +@item M-^ ($B35N,(B) +@findex gnus-summary-refer-article +@kindex M-^ ($B35N,(B) +@cindex Message-ID +@cindex fetching by Message-ID +$B$I$N%0%k!<%W$KB0$7$F$$$k$+$K4X$o$i$:!"G$0U$N5-;v$r(B @sc{nntp} $B%5!<%P!<$K(B +$B?R$M$k;v$,$G$-$^$9!#(B@kbd{M-^} (@code{gnus-summary-refer-article}) $B$O(B +@code{Message-ID}$B!"$=$l$O$"$ND9$/!"$J$+$J$+FI$`;v$N$G$-$J$$(B +@samp{<38o6up$6f2@@hymir.ifi.uio.no>} $B$N$h$&$J;2>H$r$"$J$?$K?R$M$^$9!#(B +$B$"$J$?$O$9$Y$F$r@53N$KBG$A9~$^$J$1$l$P$J$j$^$;$s!#;DG0$J$,$i!"$"$$$^$$$J(B +$B8!:w$O$G$-$J$$$N$G$9!#(B +@end table + +$B%K%e!<%:$G$J$$A*BrJ}K!$+$i(B @code{Message-ID} $B$Ge=q$-$9$k;v$,(B +$B$G$-$^$9!#(B + +@vindex gnus-refer-article-method +$B$b$7$"$J$?$NFI$s$G$$$k%0%k!<%W$,(B @code{Message-ID} $B$G$Nl9g!"(B +@code{gnus-refer-article-method} $B$r(B @sc{nntp} $B$K@_Dj$9$k;v$,$G$-$^$9!#$*(B +$B$=$i$/!"$"$J$?$,2qOC$7$F$$$k(B @sc{nntp} $B%5!<%P!<$,$"$J$?$NFI$s$G$$$k%9%W!<(B +$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(B +$B$G$O$"$j$^$;$s!#(B + +$B$[$H$s$I$N%a!<%k%P%C%/%(%s%I$O(B @code{Message-ID} $B$G$N$N$b$N$O;~4V$,$+$+$j$9$.$^$9!#(B) @code{nnmh} +$B$G$OA4$/IT2DG=$G$9!#(B + +@node Alternative Approaches +@section $BBeBX/$7$NA*Br;h$rM?$($F$"$j$^$9!#(B + +@menu +* Pick and Read:: $B$^$:!"5-;v$K0u$rIU$1$F!"$=$l$+$iFI$`(B +* Binary Groups:: $B$9$Y$F$N5-;v$r<+F0(B-$BI|9f2=$9$k(B +@end menu + + +@node Pick and Read +@subsection $BA*$s$GFI$`(B +@cindex pick and read + +$B$$$/$D$+$N%K%e!<%:%j!<%@!<(B (@code{nn} $B$d!"$"$N$)!"(BVM/CMS $B$G$N(B +@code{Netnews} $B$J$I(B) $B$O(B2$BAj$NFI$`LL$r;H$$$^$9!#MxMQ/(B +$B$7$N%W%m%;%90uL?Na$,(B1$BBG80L?Na$K$J$j!"35N,%P%C%U%!$X@Z$jBX$($k$?$a$NDI2C(B +$BL?Na$r(B1$B$DDs6!$7$^$9!#(B + +$B$3$l$,(B pick mode $B$r;H$C$?$H$-$K;HMQ2DG=$J%-!<$G$9(B: + +@table @kbd +@item . +@kindex . ($BA*Br(B) +@findex gnus-summary-mark-as-processable +$B8=:_$N9T$N5-;v$rA*Br$7$^$9(B (@code{gnus-summary-mark-as-processable})$B!#?t(B +$BCM@\F,0z?t$rM?$($i$l$l$P!"$=$N9T$K0\F0$7$FA*Br$7$^$9!#(B ($B9T?t$OIaDL$O35N,(B +$BA*Br9T$N:G=i$KI=<($5$l$F$$$^$9!#(B) + +@item SPACE +@kindex SPCE ($BA*Br(B) +@findex gnus-pick-next-page +$B35N,%P%C%U%!$r0l%Z!<%8/$70c$$$^$9!#$=$l$>$l$N9T$N(B +$B:G=i$K9T?t$,I=<($5$l$^$9!#(B Pick $B%b!<%I$N9T$NMM<0$OJQ?t(B +@code{gnus-summary-pick-line-format} $B$G@)8f$5$l$^$9(B (@pxref{Formatting +Variables})$B!#$3$l$O(B @code{gnus-summary-line-format} $B$HF1$8MM<0;XDj$r/$7$"$j$^$9(B: + +@table @code +@item gnus-tree-mode-hook +@vindex gnus-tree-mode-hook +$B$9$Y$F$NLZ%b!<%I%P%C%U%!$GH$7$F$/$@$5$$!#(B + +@item gnus-selected-tree-face +@vindex gnus-selected-tree-face +$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%#(B +$B%U%)%k%H$G$O(B @code{modeline} $B$G$9!#(B + +@item gnus-tree-line-format +@vindex gnus-tree-line-format +$BLZ$N@a$N$?$a$N%U%)!<%^%C%HJ8;zNs$G$9!#$G$b$3$NL>A0$O>/$78m$C$?L>>N$G$9(B--- +$B$=$l$O9T$G$O$J$/!"$?$@@a$rDj5A$9$k$@$1$G$9!#%G%#%U%)%k%H$NCM$O(B +@samp{%(%[%3,3n%]%)} $B$G!"$=$l$OEj9FA0$N:G=i$N(B3$BJ8;z$rI=<($7$^$9!#$9(B +$B$Y$F$N@a$,F1$8D9$5$G$"$k$N$O=EMW$G$9$N$G!"(B@samp{%4,4n} $B$N$h$&$J;XDj$r(B +@emph{$B;H$o$J$1$l$P$J$i$J$$(B} $B$N$G$9!#(B + +$BM-8z$J;XDj$O(B: + +@table @samp +@item n +$BEj9FA0!#(B +@item f +@code{From} $B%X%C%@!))} $B$G$9!#(B + +@item gnus-tree-parent-child-cdges +@vindex gnus-tree-parent-chlid-edges +$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%)(B +$B%k%H$O(B @code{(?- ?\\ ?|)} $B$G$9!#(B + +@end table + +@item gnus-tree-minimize-window +@vindex gnus-tree-minimize-winodw +$B$b$7$3$NJQ?t$,(B @code{nil} $B$G$J$$$H!"B>$N(B gnus $B%&%#%s%I%&$,$b$C$H>l=j$r.$5$/$7$^$9!#$b$7$3$NJQ?t$,?t;z(B +$B$G$"$k$H!"LZ%P%C%U%!$O$=$N?t;z$h$jBg$-$/$J$k;v$O$"$j$^$;$s!#%G%#%U%)%k%H(B +$B$O(B @code{t} $B$G$9!#%U%l!<%`$G$$$/$D$+$N%&%#%s%I%&$,2#$KJB$s$GI=<($5$l$F$$(B +$B$F!"LZ%P%C%U%!$,$=$N$&$A$N0l$D$G$"$k>l9g!"LZ%&%#%s%I%&$r:G>.2=$9$k$3$H$O(B +$B$=$NNY$KI=<($5$l$F$$$k$9$Y$F$N%&%#%s%I%&$NBg$-$5$rJQ99$9$k;v$KCm0U$7$F$/(B +$B$@$5$$!#(B + +@item gnus-generate-tree-function +@vindex gnus-generate-tree-function +@findex gnus-generate-horizontal-tree +@findex gnus-generate-vertical-tree +$BLZ%P%C%U%!(B (vertical tree buffer) $B$GI=<($5$l$?$b$N$G$9(B: + +@example +@{***@} + |--------------------------\-----\-----\ +(***) [Bjo] [Gun] [Gun] + |--\-----\-----\ | +[odd] [Jan] [odd] (***) [Jor] + | | |--\ +[Gun] [Eri] [Eri] [odd] + | + [Paa] +@end example + +$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(B +$B4r$7$$$G$7$g$&!#C$(5n(B +$B$k$H$$$&;v$G$9!#(B + +@item B DEL +@kindex B DEL ($B35N,(B) +@findex gnus-summary-delete-article +@c @icon{gnus-summary-mail-delete} +$B%a!<%k5-;v$r:o=|$7$^$9!#$3$l$O(B ''$B$"$J$?$N%G%#%9%/$+$i:#$+$i1J1s$K:o=|$7(B +$B$F!"FsEY$HLa$i$J$$(B'' $B$N(B``$B:o=|(B'' $B$G$9!#Cm0U$7$F;H$C$F$/$@$5$$(B +(@code{gnus-summary-delete-article})$B!#(B + +@item B m +@kindex B m ($B35N,(B) +@cindex move mail +@findex gnus-summary-move-article +$B$"$k%a!<%k%0%k!<%W$+$iJL$N$H$3$m$X5-;v$r0\F0$7$^$9(B +(@code{gnus-summary-move-article})$B!#(B + +@item B c +@kindex B c ($B35N,(B) +@cindex copy mail +@findex gnus-summary-copy-article +@c @icon{gnus-summary-mail-copy} +$B$"$k%0%k!<%W(B ($B%a!<%k%0%k!<%W$dB>$N$b$N(B) $B$+$i%a!<%k%0%k!<%W$K5-;v$rJ#@=$7(B +$B$^$9(B (@code{gnus-summary-copy-article})$B!#(B + +@item B B +@kindex B B ($B35N,(B) +@cindex crosspost mail +@findex gnus-summary-crosspost-article +$B8=:_$N5-;v$rB>$N%0%k!<%W$K%/%m%9%]%9%H$7$^$9(B +(@code{gnus-summary-crosspost-article})$B!#$3$l$OB>$N%0%k!<%W5-;v$N?7$7$$(B +$BJ#@=$r:n@.$7!"5-;v$N(B Xref $B%X%C%@!<$bE,@Z$K99?7$5$l$^$9!#(B + +@item B i +@kindex B i ($B35N,(B) +@findex gnus-summary-import-article +$BG$0U$N%U%!%$%k$r8=:_$N%a!<%k%0%k!<%W$K$H!"(B@code{From} +$B%X%C%@!<$H(B @code{Subject} $B%X%C%@!<(B $B$NF~NO$rB%?J$5$l$^$9!#(B + +@item B r +@kindex B r ($B35N,(B) +@findex gnus-summary-respool-article +$B%a!<%k5-;v$r%9%W!<%k$7D>$7$^$9(B (@code{gnus-summary-move-article})$B!#(B +@code{gnus-summary-respool-default-method} $B$,:F%9%W!<%k$9$k$H$-$N%G%#%U%)(B +$B%k%H$NA*BrJ}K!$H$7$F;HMQ$5$l$^$9!#$3$NJQ?t$O%G%#%U%)%k%H$G(B @code{nil} $B$G!"(B +$B$3$l$O8=:_$N%0%k!<%W$NA*BrJ}K!$,Be$o$j$K;H$o$l$k$H$$$&;v$G$9!#(B + +@item B w +@itemx e +@kindex B w ($B35N,(B) +@kindex e ($B35N,(B) +@findex gnus-summary-edit-article +@kindex C-c C-c ($B5-;v(B) +$B8=:_$N5-;v$rJT=8$7$^$9(B (@code{gnus-summary-edit-article})$B!#JT=8$r=*N;$7(B +$B$FJQ99$r1J1s$K$9$k$?$a$K!"(B@kbd{C-c C-c} $B$rBG$A$^$9!#$b$7L?Na(B +@kbd{C-c C-c} $B$K?tCM@\F,0z?t$rM?$($k$H!"(Bgnus $B$O5-;v$r:F%O%$%i%$%H$7$^$;(B +$B$s!#(B + +@item B q +@kindex B q ($B35N,(B) +@findex gnus-summary-respool-query +$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(B +$B$,0\$k$+$K6=L#$,$"$k$G$7$g$&!#$3$NL?Na$G$=$l$,$o$+$j$^$9(B +(@code{gnus-summary-respool-query})$B!#(B + +@item B p +@kindex B p ($B35N,(B) +@findex gnus-summary-article-posted-p +$B0lIt$N?M$O$"$J$?$NEj9F$X$N%U%)%m!<%"%C%W$r$9$k$H$-$K!"(B``$B?F@Z$J(B'' $BJ#@=$r(B +$BAw$k798~$,$"$j$^$9!#$3$l$i$OIaDL$O$=$3$K(B @code{Newsgroups} $B%X%C%@!<$,IU(B +$B$$$F$$$k$N$G$9$,!"$$$D$bAj$G$"$k$H$O8B$j$^$;$s!#$3$NL?Na(B +(@code{gnus-summary-article-posted-p}) $B$O8=:_$N5-;v$r$"$J$?$N%K%e!<%:%5!<(B +$B%P!<$+$i(B ($B$H$$$&$h$j$O!"$`$7$m(B @code{gnus-refer-article-method} $B$d(B +@code{gnus-select-method} $B$+$i(B) $BpJs;X8~$NL?Na!#(B +* Searching for Articles:: $BJ#?t5-;vL?Na!#(B +* Summary Generation Commands:: $B35N,%P%C%U%!$N(B ($B:F(B) $B:n@.!#(B +* Really Various Summary Commands:: $B$"$N$d$C$+$$$JB>$KE,9g$7$J$$L?Na!#(B +@end menu + +@table @code +@vindex gnus-summary-mode-hook +@item gnus-summary-mode-hook +$B35N,%b!<%I%P%C%U%!$r:n@.$9$k$H$-$K$3$N%U%C%/$,8F$P$l$^$9!#(B + +@vindex gnus-summary-generate-hook +@item gnus-summary-generate-hook +$B$3$l$O%9%l%C%I:n@.$H35N,%P%C%U%!:n@.$NA0$Ko$KJXMx$G$9!#$3$N%U%C%/$O$[$H$s$I$N35N,%P%C%U%!(B +$BJQ?t$,@_Dj$5$l$?8e$K8F$P$l$^$9!#(B + +@vindex gnus-summary-prepare-hook +@item gnus-summary-prepare-hook +$B$=$l$O35N,%P%C%U%!$,:n@.$5$l$?8e$K8F$P$l$^$9!#Nc$($P!"$=$l$O2?$+B>$N$N5-;v$HF1$8$h$&$KI=<($7$^$9!#$3$NJQ?t$,(B @code{t} $B$G$"$k$H!"$=$l$O5-(B +$B;v$rI=<($7$^$;$s(B---$B:G=i$+$iB8:_$7$J$+$C$?$+$N$h$&$K!#(B + +@end table + + +@node Summary Group Information +@subsection $B35N,%0%k!<%W>pJs(B + +@table @kbd + +@item H f +@kindex H f ($B35N,(B) +@findex gnus-summary-fetch-faq +@vindex gnus-grou-faq-directory +$B8=:_$N%0%k!<%W$N(B FAQ (frequently asked questions ($BIQHK$K$5$l$kl9g$O!"$3$NL?Na$K@\F,0z?t$rM?$($k;v$G$$$m$$$m$J%5%$%H(B (site) +$B$+$iA*$V;v$,$G$-$^$9!#$*$=$i$/(B @code{ange-ftp} $B$b$7$/$O(B @code{efs} $B$,%U%!(B +$B%$%k$No$KC;$$5-=R$rM?$($^$9(B +(@code{gnus-summary-describe-briefly})$B!#(B + +@item H i +@kindex H i ($B35N,(B) +@findex gnus-info-find-node +Gnus $B$N(B info $B$N@a(B (node) $B$K0\F0$7$^$9(B (@code{gnus-info-find-node})$B!#(B +@end table + +@node Searching for Articles +@subsection $B5-;v$rC5$9(B + +@table @kbd + +@item M-s +@kindex M-s ($B35N,(B) +@findex gnus-summary-search-article-forward +$BD>8e$K$"$kA4$F$N5-;v$r@55,I=8=$G8!:w$7$^$9(B +(@code{gnus-summary-search-article-forward})$B!#(B + +@item M-r +@kindex M-r ($B35N,(B) +@findex gnus-summary-search-article-backward +$BA0$K$"$kA4$F$N5-;v$r@55,I=8=$G8!:w$7$^$9(B +(@code{gnus-summary-search-article-backward})$B!#(B + +@item & +@kindex & ($B35N,(B) +@findex gnus-summary-execute-command +$B$3$NL?Na$O$"$J$?$K%X%C%@!l9g(B +$B$K$N5-;v$N=8$^$j$G$"$k$J$i$P(B ($BNc$($P!"E&MW(B (digest))$B!"(B +$B$=$N$h$&$J5-;v$G$G$-$F$$$k%0%k!<%W$KF~$k$?$a$K$3$NL?Na$r;H$&$+$b$7$l$^$;(B +$B$s(B (@code{gnus-summary-enter-digest-group})$B!#(BGnus $B$O$3$NL?Na$K@\F,0z?t$r(B +$BM?$($J$$8B$j!"$I$N$h$&$J7?$N5-;v$,8=:_I=<($5$l$F$$$k$+$r?dB,$7$h$&$H$7!"(B +$B$=$l$O6/@)E*$K(B ``$BE&MW(B'' $B$H$$$&2r$NMM<0$+$i$J$k(B +$BB>$N%a%C%;!<%8$N=89g$G$"$C$?$H$-$O!"(B@kbd{C-d} $B$H$9$k$3$H$K$h$j$b$C$HJXMx(B +$B$JJ}K!$G$=$l$i$N%a%C%;!<%8$rFI$`;v$,$G$-$k$h$&$K$J$j$^$9!#(B + +@item M-C-d +@kindex M-C-d ($B35N,(B) +@findex gnus-summary-read-document +$B$3$NL?Na$O>e$N$b$N$KHs>o$K;w$F$$$^$9$,!"$$$/$D$+$NJ8=q$r0l$D$NBg!<$-$$%0(B +$B%k!<%W$K=8$a$^$9(B (@code{gnus-summary-read-read-document})$B!#$=$l$O$$$/$D(B +$B$+$N(B @code{nndoc} $B%0%k!<%W$r$=$l$>$l$NJ8=q$N$?$a$K(B $B3+$-!"$=$l$+$i$3$l$i(B +$B$N(B @code{nndoc} $B%0%k!<%W$N>e$K(B @code{nnvirtual} $B%0%k!<%W$r3+$/;v$K$h$C$F(B +$B$3$N;v$r2DG=$K$7$F$$$^$9!#$3$NL?Na$O%W%m%;%9(B/$B@\F,0z?t$N=,47$rM}2r$7$^$9(B +(@pxref{Process/Prefix})$B!#(B + +@item C-t +@kindex C-t ($B35N,(B) +@findex gnus-summary-togle-truncation +$B35N,9T$N@ZCG$r@Z$jBX$($^$9(B (@code{gnus-summary-toggle-truncation})$B!#$3$l(B +$B$O$*$=$i$/35N,%P%C%U%!$N9TCf1{I=<(4X?t$r:.Mp$5$;$^$9$N$G!"5-;v$rFI$s$G$$(B +$B$k4V$K@ZCG$r@Z$C$F$$$k$N$ONI$$9M$($G$O$J$$$G$7$g$&!#(B + +@item = +@kindex = ($B35N,(B) +@findex gnus-summary-expand-window +$B35N,%P%C%U%!$N%&%#%s%I%&$r3HBg$7$^$9(B +(@code{gnus-summary-expand-window})$B!#@\F,0z?t$rM?$($i$l$l$P!"(B@code{$B5-;v(B} +$B%&%#%s%I%&$r3HBg$7$^$9!#(B + +@item M-C-e +@kindex M-C-e ($B35N,(B) +@findex gnus-summary-edit-parameters +$B8=:_$N%0%k!<%W$N%0%k!<%W$NG^2pJQ?t(B (parameter) (@pxref{Group +Parameters}) $B$rJT=8$7$^$9(B (@code{gnus-summary-edit-parameters})$B!#(B + +@end table + + +@node Exiting the Summary Buffer +@section $B35N,%P%C%U%!$rH4$1$k(B +@cindex summary exit +@cindex exiting groups + +$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(B +$B%U%!$KLa$j$^$9!#(B + +@table @kbd + +@item Z Z +@itemx q +@kindex z z ($B35N,(B) +@findex q ($B35N,(B) +@findex gnus-summary-exit +@vindex gnus-summary-exit-hook +@vindex gnus-summary-prepare-exit-hook +@c @icon{gnus-summary-exit} +$B8=:_$N%0%k!<%W$r=P$F!"%0%k!<%W$NA4$F$N>pJs$r99?7$7$^$9(B +(@code{gnus-summary-exit})$B!#H4$1=P$k$?$a$N$?$$$F$$$N;v$r$9$kA0$K(B +@code{gnus-summary-prepare-exit-hook} $B$,8F$P$l!"$=$l$O%G%#%U%)%k%H$G(B +@code{gnus-summary-expire-articles} $B$r8F$S$^$9!#H4$1=P$k2aDx$rDI$($?8e$K(B +@code{gnus-summary-exit-hook} $B$,8F$P$l$^$9!#(B($BL$FI$N(B) $B%0%k!<%W$,;D$C$F$$(B +$B$J$$$H$-$K%0%k!<%W%b!<%I$KLa$k$H$-$K(B +@code{gnus-group-no-more-groups-hook} $B$,pJs$b99?7$;$:$K8=:_$N%0%k!<%W$rH4$1=P$^$9(B +(@code{gnus-summary-exit-no-update})$B!#(B + +@item Z c +@itemx c +@kindex Z c ($B35N,(B) +@kindex c ($B35N,(B) +@findex gnus-summary-catchup-and-exit +@c @icon{gnus-summary-catchup-and-exit} +$B%0%k!<%W$NA4$F$NJ]N1$G$J$$5-;v(B (unticked article) $B$K4{FI$N0u$rIU$1$F!"$=(B +$B$l$+$iH4$1$^$9(B (@code{gnus-summary-catchup-and-exit})$B!#(B + +@item Z C +@kindex Z C ($B35N,(B) +@findex gnus-summary-catchup-all-and-exit +$BJ]N15-;v$b4^$a$F!"A4$F$N5-;v$K4{FI$N0u$rIU$1$F!"$=$l$+$iH4$1$^$9(B +(@code{gnus-summary-catchup-all-and-exit})$B!#(B + +@item Z n +@kindex Z n ($B35N,(B) +@findex gnus-summary-catchup-and-goto-next-group +$BA4$F$N5-;v$K4{FI$N0u$rIU$1$F$7$^$9(B +(@code{gnus-summary-reselect-current-group})$B!#(B $B$b$7@\F,0z?t$rM?$($i$l$l(B +$B$P!"4{FI$HL$FI$NN>J}$NA4$F$N5-;v$rA*Br$7$^$9!#(B + +@item Z G +@itemx M-g +@kindex Z G ($B35N,(B) +@kindex M-g ($B35N,(B) +@findex gnus-summary-rescan-group +@c @icon{gnus-summary-mail-get} +$B%0%k!<%W$rH4$1!"%0%k!<%W$N?7$7$$5-;v$rD4$Y!"%0%k!<%W$rA*Br$7$^$9(B +(@code{gnus-summary-rescan-group})$B!#$b$7@\F,0z?t$rM?$($i$l$l$P!"4{FI$HL$(B +$BFI$NN>J}$NA4$F$N5-;v$rA*Br$7$^$9!#(B + +@item Z N +@kindex Z N ($B35N,(B) +@findex gnus-summary-next-group +$B%0%k!<%W$rH4$1$F!"A0$r(B +@samp{*Dead Summary ... *} $B$N$h$&$J$b$N$KJQ99$7!"(B +@code{gnus-dead-summary-mode} $B$H8F$P$l$k%^%$%J!<%b!<%I$rF3F~$7$^$9!#:#$d!"(B +$B$=$N%P%C%U%!$K@Z$jBX$($l$P!"A4$F$N%-!<$,4X?t(B +@code{gnus-summary-wake-up-the-dead} $B$K3d$jEv$F$i$l$F$$$k$3$H$K5$IU$/$G(B +$B$7$g$&!#;`$s$@35N,%P%C%U%!(B (dead summary buffer) $B$G$I$l$+$N%-!<$rC!$/;v(B +$B$H!"@8$-$?IaDL$N35N,%P%C%U%!$K$J$k$G$7$g$&!#(B + +$B;`$s$@35N,%P%C%U%!$OF1;~$K0l$D$7$+B8:_$9$k;v$O$G$-$^$;$s!#(B + +@vindex gnus-use-cross-reference +$B35N,%P%C%U%!$rH4$1=P$k$H!"8=:_$N%0%k!<%W$N%G!<%?$O99?7$5$l$^$9(B ($B$I$N5-;v(B +$B$rFI$s$G!"$I$N5-;v$KJVEz$7$?$+!"$J$I$J$I!#(B) $B$b$7JQ?t(B +@code{gnus-use-cross-reference} $B$,(B @code{t} $B$G$"$k$H(B ($B$=$l$,%G%#%U%)%k%H(B +$B$G$9(B)$B!"$=$N%0%k!<%W$KAj8_;2>H$5$l$?(B (cross referenced) $B5-;v$O4{FI$N0u$,(B +$BIU$-!"$=$l$,Aj8_Ej9F(B (cross post) $B$5$l$?B>$N9XFI$7$F$$$k%0%k!<%W$G$b4{FI(B +$B$N0u$,IU$-$^$9!#$3$NJQ?t$,(B @code{nil} $B$G$b(B @code{t} $B$G$J$1$l$P!"5-;v$O9X(B +$BFI$HL$9XFI$NN>J}$N%0%k!<%W$G4{FI$N0u$,IU$-$^$9(B (@pxref{Crosspost +Handling})$B!#(B + + +@node Crosspost Handling +@section $BAj8_Ej9F$N07$$(B + +@cindex velveeta +@cindex spamming +$BAj8_Ej9F(B (cross post) $B$5$l$?5-;v$K4{FI$N0u$rIU$1$k;v$O!"F1$85-;v$r(B2$B2s0J(B +$B>eFI$^$J$$$G$9$`$H$$$&;v$rJ]>Z$7$^$9!#$b$A$m$s!"$@$l$+$,$=$l$r$$$/$D$+$N(B +$B%0%k!<%W$KJL!9$KEj9F$7$J$$8B$j$O!#F1$85-;v$r$$$/$D$+$N%0%k!<%W$KEj9F$9$k(B +$B;v(B ($BAj8_Ej9F$G$J$/$F(B) $B$O(B @dfn{spamming} ($B%9%Q%_%s%0(B) $B$H8F$P$l!"$"$J$?$O(B +$B$=$N$h$&$JA~$`$Y$-HH:a$r9T$&$b$N$K$KBP$7$F!"K!N'$K$h$C$FIT2w$J5-;v$rAw$k(B +$B$3$H$,5AL3$E$1$i$l$F$$$^$9!#(Bspam ($B%9%Q%`(B) $B$rA*JL$9$k$?$a$K!"(BNoCeM $BjAj8_Ej9F$KBP$7$FITK~$r8@$&$?$a$KL?Na(B +@code{gnus-summary-mail-crosspost-complaint} $B$r;H$&$3$H$5$($G$-$^$9!#(B + +@cindex cross-posting +@cindex Xref +@cindex @sc{nov} +$BAj8_Ej9F$r(B gnus $B$,@5$7$/07$($J$$$h$&$K$J$k860x$N0l$D$O!"(B@sc{nov} $B9T$K(B +@code{Xref} $B%X%C%@!<$r4^$^$J$$!"(B@sc{xover} ($B$3$l$OHs>o$KNI$$$G$9!"$H$$$&(B +$B$N$O$=$l$OB.EY$r$H$F$bB.$/$9$k$+$i$G$9(B) $B$N;HMQ2DG=$J(B @sc{nntp} $B%5!<%P!<(B +$B$r;H$C$F$$$k$3$H$G$9!#$3$l$O320-$J$N$G$9$,!"$"$!!"Ha$7$$$+$J!"Hs>o$KNI$/(B +$B$"$k;v$G$9!#(BGnus $B$O$"$J$?$,FI$s$@A4$F$N5-;v$K(B @code{Xref} $B9T$rEPO?$9$k;v(B +$B$G!"@5$7$$;v$r$7$h$&(B $B$H$7$^$9$,!"5-;v$r:o=|$9$k$+!"FI$^$J$$$G4{FI$N0u$r(B +$BIU$1$k$H!"(Bgnus $B$O$3$l$i$N5-;v$K(B @code{Xref} $B$N9T$r$N$>$-$^$o$k5!2q$rF@$k(B +$B;v$,L5$/!"Aj8_;2>H5!9=$rMQ$$$k;v$,$G$-$^$;$s!#(B + +@cindex LIST overview.fmt +@cindex overview.fmt +$B$"$J$?$N(B @sc{nntp} $B%5!<%P!<$,$=$N354Q%U%!%$%k(B (overview file) $B$K(B +@code{Xref} $B%X%C%@!<$r4^$s$G$$$k$+$rD4$Y$k$K$O!"(B +@samp{telnet your.nntp.server nntp} $B$H$7$F!"(B@code{inn} $B%5!<%P!<$G(B +@samp{More READER} $B$H$7!"$=$l$+$i(B @samp{LIST overview.fmt} $B$H$9$k;v$r;n(B +$B$7$F$/$@$5$$!#$3$l$OF0:n$7$J$$$G$7$g$&$,!"$b$7F0:n$7$F!"o$KB.EY$r(B +$BCY$/$7$^$9!#(B + +$B$^!"?M@8$O$=$N$h$&$J$b$N$G$9!#(B + +$BBeBXH$7$F$/$@$5$$!#(B + + +@node Duplicate Suppression +@section $B=EJ#$NM^@)(B + +$B%G%#%U%)%k%H$G$O(B gnus $B$OAj8_Ej9F5!9=$rMxMQ$9$k;v$K$h$C$F!"F1$85-;v$r(B2$B2s(B +$B0J>eFI$^$J$$$h$&$K$7$h$&$H$7$^$9(B (@pxref{Crosspost Handling})$B!#$7$+$7!"(B +$B$=$NC1=c$G8z2LE*$JJ}K!$O!"$$$m$$$m$JM}M3$K$h$j!"K~B-$9$k7k2L$r$b$?$i$5$J(B +$B$$$+$bCN$l$^$;$s!#(B + +@enumerate +@item +@sc{nntp} $B%5!<%P!<$O(B @code{Xref} $B%X%C%@!<$N@8@.$K<:GT$9$k$+$bCN$l$^$;$s!#(B +$B$3$l$O0-$$;v$G!"$"$^$j5/$3$j$^$;$s!#(B + +@item +@sc{nntp} $B%5!<%P!<$O(B @file{.overview} $B%G!<%?%Y!<%9$K(B @code{Xref} $B%X%C%@!<(B +$B$r4^$a$k$N$K<:GT$9$k$+$bCN$l$^$;$s!#$3$l$O0-$$;v$G!"Hs>o$KNI$/$"$k;v$G$9!"(B +$B$"$!Ha$7$$!#(B + +@item +$BF1$8%0%k!<%W(B ($B$b$7$/$O$$$/$D$+$N4XO"$7$?%0%k!<%W(B) $B$r0c$C$?(B @sc{nntp} $B%5!<(B +$B%P!<$+$iFI$s$G$$$k$+$b$7$l$^$;$s!#(B + +@item +$B%0%k!<%W$KEj9F$5$l$?5-;v$H=EJ#$9$k%a!<%k$ru67$OB>$K$b$"$j$^$9$,!"$3$l$i(B4$B$D$,$H$F$bNI(B +$B$/$"$k>u67$G$9!#(B + +$B$b$7!"K\Ev$K$b$7$b(B @code{Xref} $B$N07$$$K<:GT$7$?$i!"(B@dfn{$B=EJ#M^@)(B} $B$K@Z$j(B +$BBX$($k;v$r9M$($k$+$b$7$l$^$;$s!#$=$&$9$l$P!"(Bgnus $B$O$"$J$?$,FI$s$@A4$F$N(B +$B5-;v$+$=$&$G$J$1$l$P!"4{FI$N0u$,IU$$$?A4$F$N5-;v$N(B @code{Message-ID} $B$r(B +$B5-21$7!"$=$l$+$i!"KbK!$N$h$&$K!"$=$N8e$N$=$l$i$H=P2q$C$?A4$F$N>l9g$K!"4{(B +$BFI$N0u$rIU$1$^$9(B---@emph{$BA4$F(B} $B$N%0%k!<%W$G!#$3$N5!9=$r;H$&$N$OHs>o$KHs(B +$B8zN(E*$G$9$,!"2aEY$KHs8zN($J$o$1$G$O$"$j$^$;$s!#$b$A$m$sF1$85-;v$r0l2s0J(B +$B>eFI$`$[$&$,9%$^$7$$$G$9!#(B + +$B=EJ#M^@)$O$"$^$jA!:Y$J$b$N$G$O$"$j$^$;$s!#$I$A$i$+$H$$$&$H!"BgDH$N$h$&$J(B +$B$b$N$G$9!#$=$l$OHs>o$KC1=c$JJ}K!$GF0:n$7$F$$$^$9(B---$B$b$75-;v$K4{FI$N0u$r(B +$BIU$1$l$P!"$=$l$O$3$N(B Message-ID $B$r(B $B%-%c%C%7%e$K2C$($^$9!#A0$G$9!#%G%#%U%)%k%H$O(B +@file{~/News/suppression} $B$G$9!#(B +@end table + +$B2?EY$b(B gnus $B$r=*N;$7$F5/F0$9$k798~$,$"$k$N$G$"$l$P!"$*$=$i$/(B +@code{gnus-save-duplicate-list} $B$r(B @code{t} $B$K$9$k$N$ONI$$9M$($G$7$g$&!#(B +$B$b$7(B gnus $B$rB3$1$F2?=54V$bAv$i$;$F$*$/$N$G$"$l$P!"$=$l$r(B @code{nil} $B$K$9(B +$B$k$+$b$7$l$^$;$s!#0lJ}$G!"%j%9%H$rJ]B8$9$k;v$O5/F0$H=*N;$r$:$C$HCY$/$7$^(B +$B$9$N$G!"$h$/(B gnus $B$r=*N;$7$F5/F0$9$k$N$G$"$l$P!"(B +@code{gnus-save-duplicate-list} $B$r(B @code{nil} $B$K@_Dj$9$k$Y$-$G$"$k$H$$$&(B +$B;v$K$J$j$^$9!#$&!<$`!#;d$O$"$J$?$,$I$&$9$k$+$KG$$;$?$$!"$H;W$$$^$9!#(B + + +@node The Article Buffer +@chapter $B5-;v%P%C%U%!(B +@cindex article buffer + +$B5-;v$O0l$D$7$+$J$$5-;v%P%C%U%!$KI=<($5$l$^$9!#A4$F$N35N,%P%C%U%!(B +$B$O(B(gnus $B$K6&M-$7$J$$$h$&$K;X<($7$J$$8B$j(B)$BF1$85-;v%P%C%U%!$r6&M-(B +$B$7$^$9!#(B + +@menu +* Hiding Headers:: $B$I$N%X%C%@!<$rI=<($9$k$+$r7h$a$k!#(B +* Using MIME:: $B5-;v$rFI$`A0$K(B @sc{mime} $B=hM}$r$9$k!#(B +* Customizing Articles:: $B5-;v$N8+1I$($r;EN)$F$k!#(B +* Article Keymap:: $B5-;v%P%C%U%!$G;H$($k%-!!#(B +@end menu + + +@node Hiding Headers +@section $BM>J,$J%X%C%@!<$r1#$9(B +@cindex hiding headers +@cindex deleting headers + +$B3F5-;v$NF,$NItJ,$O%X%C%@!<(B(@dfn{head})$B$H8F$P$l$^$9(B($B;D$j$NItJ,$O(B +$B%\%G%#(B(@dfn{body})$B$G$9!#$9$G$K$*5$$E$-$G$7$g$&$,(B)$B!#(B + +@vindex gnus-show-all-headers +$B%X%C%@!<$K$O$?$/$5$s$NJXMx$J>pJs$,4^$^$l$F$$$^$9!#5-;v$r=q$$$??M(B +$B$NL>A0!"$=$l$,=q$+$l$?F|IU!"5-;v$NI=Bj$J$I$G$9!#$3$l$O$H$F$bNI$$(B +$B$s$G$9$,!"%X%C%@!<$K$OBgItJ,$N?M$K$O8+$?$/$b$J$$>pJs(B --- $B5-;v$,(B +$B$"$J$?$N$H$3$m$KCe$/$^$G$I$s$J%7%9%F%`$r7PM3$7$F$-$?$+!"(B +@code{Message-ID}$B!"(B@code{References} $B$J$I$J$I!D$b$&$d$s$J$C$A$c$&(B +$B$/$i$$(B --- $B$b$?$/$5$s4^$^$l$F$$$^$9!#$?$V$s$"$J$?$O$3$l$i$N9T$O(B +$B$$$/$D$+A0$HI=Bj$N$_$r8+$?$1$l$P!"$3$&;XDj$7$^$9!#(B + +@lisp +(setq gnus-visible-headers "^From:\\|^Subject:") +@end lisp + +$B$3$NJQ?t$O!"I=<($5$;$?$$%X%C%@!<$K%^%C%A$9$k@55,I=8=$r%j%9%H$G;X(B +$BDj$9$k$3$H$b$G$-$^$9!#(B + +@item gnus-ignored-headers +@vindex gnus-ignored-headers +$B$3$NJQ?t$O(B @code{gnus-visible-headers} $B$NH?BP$G$9!#$3$NJQ?t$,@_(B +$BDj$5$l$F$$$l$P(B($B$+$D(B @code{gnus-visible-headers} $B$,(B @code{nil} $B$G(B +$B$"$l$P(B)$B!"$3$l$O1#$7$?$$%X%C%@!<9TA4$F$K%^%C%A$9$k@55,I=8=$G$"$k(B +$B$H$_$J$5$l$^$9!#$3$NJQ?t$K%^%C%A$7$J$$A4$F$N%X%C%@!<9T$OI=<($5$l(B +$B$^$9!#(B + +$BNc$($P!"C1$K(B @code{References} $B9T$H(B @code{Xref} $B9T$N$_$r>C$75n$j(B +$B$?$1$l$P!"$3$N$h$&$K$7$^$9!#(B + +@lisp +(setq gnus-ignored-headers "^References:\\|^Xref:") +@end lisp + +$B$3$NJQ?t$O>C$7$?$$%X%C%@!<$K%^%C%A$9$k@55,I=8=$N%j%9%H$G$b9=$$$^(B +$B$;$s!#(B + +$B$J$*!"(B@code{gnus-visible-headers} $B$,(B @code{nil} $B0J30$N>l9g$O!"$3(B +$B$NJQ?t$K$O8z2L$,L5$$$3$H$KCm0U$7$F$/$@$5$$!#(B + +@end table + +@vindex gnus-sorted-header-list +Gnus $B$O%X%C%@!<$NJB$YBX$((B($B%=!<%H(B)$B$b9T$$$^$9(B($B$3$l$O%G%#%U%)%k%H$G(B +$B9T$o$l$^$9(B)$B!#$3$NJB$YBX$($O(B @code{gnus-sorted-header-list} $BJQ?t(B +$B$r@_Dj$9$k$3$H$G@)8f$9$k$3$H$,$G$-$^$9!#$3$l$O%X%C%@!<$r$I$&$$$&(B +$B=g=x$GI=<($9$k$+$r;XDj$9$k@55,I=8=$N%j%9%H$G$9!#(B + +$BNc$($P!"5-;v$NCx$r:G=i$K!"A0$,F~$k$N$G$O$"$j(B +$B$^$;$s!#Be$o$j$K(B gnus $B$,%A%'%C%/$7$F;k3&$+$i>C$75n$k$?$a$N$5$^$6(B +$B$^$J!V$D$^$i$J$$>r7o!W(B@dfn{boring conditions} $B$N%j%9%H$r;XDj$7$^(B +$B$9!#(B + +$B$3$N>r7o$K$O0J2<$N$h$&$J$b$N$,$"$j$^$9!#(B +@table @code +@item empty +$B6u$N%X%C%@!<$rA4$F>C5n$7$^$9!#(B +@item newsgroups +@code{Newsgroups} $B%X%C%@!<$,8=:_$N%0%k!<%WL>$7$+4^$s$G$$$J$$>l9g(B +$B$K$O>C5n$7$^$9!#(B +@item followup-to +@code{Followup-To} $B%X%C%@!<$,(B @code{Newsgroups} $B%X%C%@!<$HF10l$G(B +$B$"$k>l9g$K$O>C5n$7$^$9!#(B +@item reply-to +@code{Reply-To} $B%X%C%@!<$,(B @code{From} $B%X%C%@!<$HF1$8%"%I%l%9$r(B +$B<($7$F$$$k>l9g$K$O>C5n$7$^$9!#(B +@item date +$B$=$N5-;v$,2a5n(B 3 $BF|0JFb$N$b$N$G$"$l$P!"(B@code{Date} $B%X%C%@!<$r>C(B +$B5n$7$^$9!#(B +@item long-to +@code{To} $B%X%C%@!<$,$"$^$j$K$bD9$$>l9g$K$O>C5n$7$^$9!#(B +@item many-to +@code{To} $B%X%C%@!<$,0l$D$h$j$bB?$1$l$P!"$=$l$i$rA4$F>C5n$7$^$9!#(B +@end table + +$B>e5-$N:G=i$N(B 4 $B$D$NMWAG$rF~$l$?$1$l$P!"$3$s$JIw$K$J$j$^$9!#(B + +@lisp +(setq gnus-boring-article-headers + '(empty newsgroups followup-to reply-to)) +@end lisp + +$B$3$l$O$3$NJQ?t$N%G%#%U%)%k%HCM$G$b$"$j$^$9!#(B + + +@node Using MIME +@section @sc{mime} $B$r;H$&(B +@cindex @sc{mime} + +$B%Q%s%H%^%$%`(B (mime) $B$H$O!"0UL#$bL5$/6uCf$G$N\$7$$>pJs$O!"%^%K%e%"%k$r;2>H$7$F$/$@$5(B +$B$$!#(B + +@sc{mime} $B$r>o$K;HMQ$7$?$1$l$P!"(B@code{gnus-show-mime} $B$r(B +@code{t} $B$K@_Dj$7$F$/$@$5$$!#$7$+$7!"(B@code{gnus-strict-mime} $B$,(B +@code{nil} $B0J30$G$"$l$P!"(B@sc{mime} $B=hM}$O5-;vCf$K(B @sc{mime} $B%X%C(B +$B%@!<$,$"$k$H$-$N$_;HMQ$5$l$^$9!#(B@code{gnus-show-mime} $B$r@_Dj$7$F(B +$B$$$k$H!"1?$,0-$$$H5-;v%P%C%U%!$K$O8N>c$7$?$h$&$J2hLL$,8+$($k$3$H(B +$B$b$"$k$G$7$g$&!#$3$l$OHr$1$h$&$,$"$j$^$;$s!#(B + +$B$3$N$?$A$N0-$$LdBj$G6C$+$5$l$J$$$h$&$K$9$k$K$O!"35N,%P%C%U%!$K$*(B +$B$$$F@Z$jBX$(5!G=$r;H$&$H$$$&$N$,:GA1$+$bCN$l$^$;$s(B($BNc$($P!"(B +@samp{alt.sing-a-long} $B%0%k!<%W$KF~$k$H!"$"$J$?$N5$$E$+$J$$$&$A(B +$B$K(B@sc{mime} $B$O5-;vCf$N%5%&%s%I%U%!%$%k$rI|9f$7$F!"2?$d$i2x$7$2$J(B +$BD9$$D9$$2N$,$"$J$?$N%9%T!<%+!<$+$iBg2;6A$GN.$l=P$7!"$"$J$?$O%\(B +$B%j%e!<%`%\%?%s$r8+$D$1$i$l$:!"$H$$$&$N$O$=$s$J$b$N$O$b$H$b$H$D$$(B +$B$F$J$$$+$i$G!"$_$s$J$O$"$J$?$NJ}$rbK$_$O$8$a!"$"$J$?$O%W%m%0%i%`(B +$B$r;_$a$h$&$H$9$k$1$I$G$-$J$/$F!"%\%j%e!<%`$r@)8f$9$k%W%m%0%i%`$b(B +$B8+$D$1$i$l$J$/$F!"$=$7$FIt20Cf$NA40w$OFMA3$"$J$?$N$3$H$r7ZJN$N4c(B +$B:9$7$G8+$k$h$&$K$J$C$F$7$^$$!"$"$J$?$O$A$g$C$HLLGr$/$J$$;W$$$r$9(B +$B$k!"$H$+(B)$B!#(B + +$B8=8e$K8F$S=P$5$l$^$9!#$3$l$O5-;v$,I=<($5$l$kA0$N=hM}$rA4$F07(B +$B$&!"$H$$$&$3$H$G$9!#(B + +@findex gnus-article-maybe-highlight +$B%G%#%U%)%k%H$G$O$3$N%U%C%/$K$O(B @code{gnus-article-hide-headers}$B!"(B +@code{gnus-article-treat-overstrike}$B!"(B +@code{gnus-article-maybe-highlight} $B$@$1$,4^$^$l$F$$$^$9$,!"$3$N(B +$B%U%C%/$KF~$l$k$3$H$,$G$-$k4X?t$O2?@i$b!"$$$d2?I4K|$b$"$j$^$9!#3F(B +$B4X?t$N354Q$O(B@pxref{Article Highlighting}$B!"(B @pxref{Article +Hiding}$B!"(B@pxref{Article Washing}$B!"(B @pxref{Article Buttons}$B!"(B +@pxref{Article Date} $B$r;2>H$7$F$/$@$5$$!#Cm0UE@$H$7$F!"$3$N%U%C(B +$B%/$G$O4X?t$N=g=x$,1F6A$9$k$3$H$,$"$k$N$G!"$*K>$_$N7k2L$rF@$k$K$O(B +$B$A$g$C$HpJs$O2?$b$"$j$^$;$s(B --- +$B2?$G$bJQ99$9$k$3$H$,$G$-$^$9!#$G$9$,!"%X%C%@!<$O>C5n$7$J$$J}$,NI(B +$B$$$G$9!#$=$NBe$o$j!"%X%C%@!<$r$I$3$+$K$d$C$F$7$^$$$?$1$l$P!"$=$l(B +$B$i$r8+$($J$$$h$&$K$7$F$/$@$5$$!#(B + +@node Article Keymap +@section $B5-;v$N%-!(B + +@table @code + +@item gnus-single-article-buffer +@vindex gnus-single-article-buffer +@code{nil} $B0J30$G$"$l$P!"A4$F$N%0%k!<%W$KBP$7$FF1$85-;v%P%C%U%!(B +$B$r;HMQ$7$^$9(B($B$3$l$O%G%#%U%)%k%H$G$9(B)$B!#(B @code{nil} $B$G$"$l$P!"3F%0(B +$B%k!<%WKh$N8GM-$N5-;v%P%C%U%!$r;}$D$h$&$K$J$j$^$9!#(B + +@vindex gnus-article-prepare-hook +@item gnus-article-prepare-hook +$B$3$N%U%C%/$O5-;v$,5-;v%P%C%U%!$K=q$-9~$^$l$?D>8e$K8F$S=P$5$l$^$9!#(B +$B$3$l$O$C$?(B +$BMM<0J8;zNs$G$9!#$3$l$O0J2<$N0l$D$N3HD%$r=|$$$F!"$=$NJQ?t$HF1$8MM(B +$B<0;XDj$ruBV!W(B@dfn{wash status}$B!#$3$l$O5-;v$KBP$7$F9T$o$l$?(B +$B$G$"$m$&@vBuA`:n$r<($90lJ8;z$+$i$J$kC;$$J8;zNs$K$J$j$^$9!#(B +@end table + +@vindex gnus-break-pages + +@item gnus-break-pages +$B2~JG(B @dfn{page breaking} $B$r9T$&$+$I$&$+$r@)8f$7$^$9!#$3$NJQ?t$,(B +@code{nil} $B0J30$G$"$l$P!"5-;vCf$KJG6h@Z$jJ8;z$,8=$l$?>l=j$4$H$K(B +$BJGJ,3d$7$^$9!#$3$NJQ?t$,(B @code{nil} $B$G$"$l$PJGJ,$1$O9T$o$l$^$;$s!#(B + +@item gnus-page-delimiter +@vindex gnus-page-delimiter +$B$3$l$,>e$G?($l$?6h@Z$jJ8;z$G$9!#%G%#%U%)%k%H$G$O(B @samp{^L} ($B%U%)!<(B +$B%`%U%#!<%I!"2~JG(B) $B$G$9!#(B +@end table diff --git a/texi/gnus.texi b/texi/gnus.texi index 0737bfc..a226077 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Semi-gnus 6.1.2 Manual +@settitle Semi-gnus 6.3.3 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -316,7 +316,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Semi-gnus 6.1.2 Manual +@title Semi-gnus 6.3.3 Manual @author by Lars Magne Ingebrigtsen @page @@ -359,7 +359,7 @@ internationalization/localization and multiscript features based on MULE API. So Semi-gnus does not discriminate various language communities. Oh, if you are a Klingon, please wait Unicode Next Generation. -This manual corresponds to Semi-gnus 6.1.2. +This manual corresponds to Semi-gnus 6.3.3. @end ifinfo @@ -858,7 +858,7 @@ not stored in the @file{.newsrc} file. @vindex gnus-save-newsrc-file 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 making exit from gnus faster. +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? @@ -945,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. @@ -964,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 @@ -982,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. @@ -1003,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 @@ -1027,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 @@ -1043,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 @@ -1286,10 +1286,10 @@ background is dark: (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))) + ((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 Also @pxref{Faces and Fonts}. @@ -1364,14 +1364,14 @@ Go to the next group (@code{gnus-group-next-group}). @findex gnus-group-prev-group Go to the previous group (@code{gnus-group-prev-group}). -@item M-p -@kindex M-p (Group) +@item M-n +@kindex M-n (Group) @findex gnus-group-next-unread-group-same-level Go to the next unread group on the same (or lower) level (@code{gnus-group-next-unread-group-same-level}). -@item M-n -@kindex M-n (Group) +@item M-p +@kindex M-p (Group) @findex gnus-group-prev-unread-group-same-level Go to the previous unread group on the same (or lower) level (@code{gnus-group-prev-unread-group-same-level}). @@ -1490,7 +1490,7 @@ full summary buffer. Select the first unread article when entering the group. @item best -Select the most high-scored article in the group when entering the +Select the highest scored article in the group when entering the group. @end table @@ -2003,7 +2003,7 @@ when doing a followup---except that if it is present in a news group, you'll get mail group semantics when doing @kbd{f}. If you do an @kbd{a} command in a mail group and you have neither a -@code{to-list} group parameter nor a @code{to-address} group paramater, +@code{to-list} group parameter nor a @code{to-address} group parameter, then a @code{to-list} group parameter will be added automatically upon sending the message if @code{gnus-add-to-list} is set to @code{t}. @vindex gnus-add-to-list @@ -2074,8 +2074,8 @@ the symbols @code{never} or @code{immediate}. @item score-file @cindex score file group parameter Elements that look like @code{(score-file . "file")} will make -@file{file} into the current adaptive score file for the group in -question. All adaptive score entries will be put into this file. +@file{file} into the current score file for the group in question. All +interactive score entries will be put into this file. @item adapt-file @cindex adapt file group parameter @@ -3828,7 +3828,7 @@ Send a complaint about excessive crossposting to the author of the current article (@code{gnus-summary-mail-crosspost-complaint}). @findex gnus-crosspost-complaint -This command is provided as a way to fight back agains the current +This command is provided as a way to fight back against the current crossposting pandemic that's sweeping Usenet. It will compose a reply using the @code{gnus-crosspost-complaint} variable as a preamble. This command understands the process/prefix convention @@ -3880,9 +3880,9 @@ process/prefix convention. Post a followup to the current article via news, even if you got the message through mail (@code{gnus-summary-followup-to-mail}). -@item S n -@kindex S n (Summary) -@findex gnus-summary-followup-to-mail +@item S N +@kindex S N (Summary) +@findex gnus-summary-followup-to-mail-with-original Post a followup to the current article via news, even if you got the message through mail and include the original message (@code{gnus-summary-followup-to-mail-with-original}). This command uses @@ -3938,7 +3938,7 @@ Be aware, however, that not all sites honor cancels, so your article may live on here and there, while most sites will delete the article in question. -Gnus will use the ``current'' select method when cancelling. If you +Gnus will use the ``current'' select method when canceling. If you want to use the standard posting method, use the @samp{a} symbolic prefix (@pxref{Symbolic Prefixes}). @@ -4462,7 +4462,7 @@ dormant articles will also be excluded. @item / m @kindex / m (Summary) @findex gnus-summary-limit-to-marks -Ask for a mark and then limit to all articles that have not been marked +Ask for a mark and then limit to all articles that have been marked with that mark (@code{gnus-summary-limit-to-marks}). @item / t @@ -4497,33 +4497,36 @@ score (@code{gnus-summary-limit-to-score}). @kindex M S (Summary) @kindex / E (Summary) @findex gnus-summary-limit-include-expunged -Display all expunged articles +Include all expunged articles in the limit (@code{gnus-summary-limit-include-expunged}). @item / D @kindex / D (Summary) @findex gnus-summary-limit-include-dormant -Display all dormant articles (@code{gnus-summary-limit-include-dormant}). +Include all dormant articles in the limit +(@code{gnus-summary-limit-include-dormant}). @item / * @kindex / * (Summary) @findex gnus-summary-limit-include-cached -Display all cached articles (@code{gnus-summary-limit-include-cached}). +Include all cached articles in the limit +(@code{gnus-summary-limit-include-cached}). @item / d @kindex / d (Summary) @findex gnus-summary-limit-exclude-dormant -Hide all dormant articles (@code{gnus-summary-limit-exclude-dormant}). +Exclude all dormant articles from the limit +(@code{gnus-summary-limit-exclude-dormant}). @item / T @kindex / T (Summary) @findex gnus-summary-limit-include-thread -Include all the articles in the current thread. +Include all the articles in the current thread in the limit. @item / c @kindex / c (Summary) @findex gnus-summary-limit-exclude-childless-dormant -Hide all dormant articles that have no children +Exclude all dormant articles that have no children from the limit (@code{gnus-summary-limit-exclude-childless-dormant}). @item / C @@ -4548,7 +4551,7 @@ hierarchical fashion. Threading is done by looking at the @code{References} headers of the articles. In a perfect world, this would be enough to build pretty trees, but unfortunately, the @code{References} header is often broken -or simply missing. Weird news propagration excarcerbates the problem, +or simply missing. Weird news propagation excarcerbates the problem, so one has to employ other heuristics to get pleasing results. A plethora of approaches exists, as detailed in horrible detail in @pxref{Customizing Threading}. @@ -4568,7 +4571,7 @@ A small(er) section of this tree-like structure. @item loose threads Threads often lose their roots due to article expiry, or due to the root already having been read in a previous session, and not displayed in the -summary buffer. We then typicall have many sub-threads that really +summary buffer. We then typically have many sub-threads that really belong to one thread, but are without connecting roots. These are called loose threads. @@ -5586,7 +5589,7 @@ Finally, you have the @code{gnus-use-long-file-name} variable. If it is @code{nil}, all the preceding functions will replace all periods (@samp{.}) in the group names with slashes (@samp{/})---which means that the functions will generate hierarchies of directories instead of having -all the files in the toplevel directory +all the files in the top level directory (@file{~/News/alt/andrea-dworkin} instead of @file{~/News/alt.andrea-dworkin}.) This variable is @code{t} by default on most systems. However, for historical reasons, this is @code{nil} on @@ -5609,7 +5612,7 @@ a spool, you could Then just save with @kbd{o}. You'd then read this hierarchy with ephemeral @code{nneething} groups---@kbd{G D} in the group buffer, and -the toplevel directory as the argument (@file{~/News/}). Then just walk +the top level directory as the argument (@file{~/News/}). Then just walk around to the groups/directories with @code{nneething}. @@ -6031,7 +6034,7 @@ these articles easier. @menu * Article Highlighting:: You want to make the article look like fruit salad. -* Article Fontisizing:: Making emphasized text look niced. +* Article Fontisizing:: Making emphasized text look nice. * Article Hiding:: You also want to make certain info go away. * Article Washing:: Lots of way-neat functions to make life better. * Article Buttons:: Click on URLs, Message-IDs, addresses and the like. @@ -6327,7 +6330,7 @@ Unreadable articles that tell you to read them with Caesar rotate or rot13. It's commonly called ``rot13'' because each letter is rotated 13 positions in the alphabet, e. g. @samp{B} (letter #2) -> @samp{O} (letter #15). It is sometimes referred to as ``Caesar rotate'' because Caesar -is rumoured to have employed this form of, uh, somewhat weak encryption. +is rumored to have employed this form of, uh, somewhat weak encryption. @item W t @kindex W t (Summary) @@ -9635,7 +9638,7 @@ when all this splitting is performed. If you want to have Gnus create groups dynamically based on some information in the headers (i.e., do @code{replace-match}-like -substitions in the group names), you can say things like: +substitutions in the group names), you can say things like: @example (any "debian-\\(\\w*\\)@@lists.debian.org" "mail.debian.\\1") @@ -11232,7 +11235,7 @@ When the connection to the net is up again (and Gnus knows this), the Agent is @dfn{plugged}. The @dfn{local} machine is the one you're running on, and which isn't -connected to the net continously. +connected to the net continuously. @dfn{Downloading} means fetching things from the net to your local machine. @dfn{Uploading} is doing the opposite. @@ -12714,9 +12717,9 @@ their own home score files: @lisp (setq gnus-home-score-file ;; All groups that match the regexp "\\.emacs" - '("\\.emacs" "emacs.SCORE") - ;; All the comp groups in one score file - ("^comp" "comp.SCORE")) + '(("\\.emacs" "emacs.SCORE") + ;; All the comp groups in one score file + ("^comp" "comp.SCORE"))) @end lisp @vindex gnus-home-adapt-file @@ -13479,7 +13482,7 @@ four days, Gnus will decay the scores four times, for instance. * Moderation:: What to do if you're a moderator. * XEmacs Enhancements:: There are more pictures and stuff under XEmacs. * Fuzzy Matching:: What's the big fuzz? -* Thwarting Email Spam:: A how-to on avoiding unsolited commercial email. +* Thwarting Email Spam:: A how-to on avoiding unsolicited commercial email. * Various Various:: Things that are really various. @end menu @@ -13567,7 +13570,7 @@ default. @cindex symbolic prefixes Quite a lot of Emacs commands react to the (numeric) prefix. For -instance, @kbd{C-u 4 C-f} moves point four charaters forward, and +instance, @kbd{C-u 4 C-f} moves point four characters forward, and @kbd{C-u 9 0 0 I s s p} adds a permanent @code{Subject} substring score rule of 900 to the current article. @@ -14329,7 +14332,7 @@ If you add handlers to @code{gnus-demon-handlers} directly, you should run @code{gnus-demon-init} to make the changes take hold. To cancel all daemons, you can use the @code{gnus-demon-cancel} function. -Note that adding daemons can be pretty naughty if you overdo it. Adding +Note that adding daemons can be pretty naughty if you over do it. Adding functions that scan all news and mail from all servers every two seconds is a sure-fire way of getting booted off any respectable system. So behave. @@ -15018,7 +15021,7 @@ The biggest problem I have with email spam is that it comes in under false pretenses. I press @kbd{g} and Gnus merrily informs me that I have 10 new emails. I say ``Golly gee! Happy is me!'' and select the mail group, only to find two pyramid schemes, seven advertisements -(``New! Miracle tonic for growing full, lustrouos hair on your toes!'') +(``New! Miracle tonic for growing full, lustrous hair on your toes!'') and one mail asking me to repent and find some god. This is annoying. @@ -15060,7 +15063,7 @@ header, it's probably ok. All the rest goes to the @samp{spam} group. In addition, many mail spammers talk directly to your @code{smtp} server and do not include your email address explicitly in the @code{To} header. Why they do this is unknown---perhaps it's to thwart this -twarting scheme? In any case, this is trivial to deal with---you just +thwarting scheme? In any case, this is trivial to deal with---you just put anything not addressed to you in the @samp{spam} group by ending your fancy split rule in this way: @@ -15078,7 +15081,7 @@ citizen, you can even send off complaints to the proper authorities on each unsolicited commercial email---at your leisure. If you are also a lazy net citizen, you will probably prefer complaining -automatically with the @file{gnus-junk.el} package, availiable FOR FREE +automatically with the @file{gnus-junk.el} package, available FOR FREE at @file{}. Since most e-mail spam is sent automatically, this may reconcile the cosmic balance somewhat. @@ -15086,7 +15089,7 @@ cosmic balance somewhat. This works for me. It allows people an easy way to contact me (they can just press @kbd{r} in the usual way), and I'm not bothered at all with spam. It's a win-win situation. Forging @code{From} headers to point -to non-existant domains is yucky, in my opinion. +to non-existent domains is yucky, in my opinion. @node Various Various @@ -15106,6 +15109,11 @@ 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. +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. + @item gnus-default-directory @vindex gnus-default-directory Not related to the above variable at all---this variable says what the @@ -15371,6 +15379,12 @@ 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 @@ -15502,7 +15516,7 @@ Steven L. Baur---lots and lots and lots of bugs detections and fixes. Vladimir Alexiev---the refcard and reference booklets. @item -Felix Lee & Jamie Zawinsky---I stole some pieces from the XGnus +Felix Lee & Jamie Zawinski---I stole some pieces from the XGnus distribution by Felix Lee and JWZ. @item @@ -15557,6 +15571,7 @@ Russ Allbery, Peter Arius, Matt Armstrong, Marc Auslander, +Frank Bennett, Robert Bihlmeyer, Chris Bone, Mark Borges, @@ -15564,6 +15579,7 @@ Mark Boyns, Lance A. Brown, Kees de Bruin, Martin Buchholz, +Joe Buehler, Kevin Buhr, Alastair Burt, Joao Cachopo, @@ -15598,6 +15614,8 @@ 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, @@ -15624,12 +15642,13 @@ 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, @@ -15649,6 +15668,8 @@ Stephen Peters, Jens-Ulrik Holger Petersen, Ulrich Pfeifer, John McClary Prevost, +Mike Pullen, +Jim Radford, Colin Rafferty, Lasse Rasinen, Lars Balker Rasmussen, @@ -15658,6 +15679,7 @@ Roland B. Roberts, Bart Robinson, Christian von Roques, Jason Rumney, +Wolfgang Rupprecht, Jay Sachs, Dewey M. Sasser, Loren Schall, @@ -15714,7 +15736,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.6. +* Quassia Gnus:: Two times two is four, or Gnus 5.6.11. @end menu These lists are, of course, just @emph{short} overviews of the @@ -16249,7 +16271,7 @@ Emphasized text can be properly fontisized: @node Quassia Gnus @subsubsection Quassia Gnus -New features in Gnus 5.6.6: +New features in Gnus 5.6.11: @itemize @bullet @@ -16319,7 +16341,7 @@ If you used this function in your initialization files, you must rewrite them to use @code{face-spec-set} instead. @item - Cancelling now uses the current select method. Symbolic prefix + Canceling now uses the current select method. Symbolic prefix @kbd{a} forces normal posting method. @item @@ -16456,14 +16478,14 @@ the crash-box is only appropriate to one specific group. nnmh-be-safe means that crossposted articles will be marked as unread. @item - Orphan score entries dont show on "V t" score trace + Orphan score entries don't show on "V t" score trace @item when clearing out data, the cache data should also be reset. @item rewrite gnus-summary-limit-children to be non-recursive to avoid exceeding lisp nesting on huge groups. @item - expinged articles are counted when computing scores. + expunged articles are counted when computing scores. @item implement gnus-batch-brew-soup @item @@ -16539,7 +16561,7 @@ bar and the Gnus bar. the server? @item sort after gathering threads -- make false roots have the -headers of the oldest orhpan with a 0 article number? +headers of the oldest orphan with a 0 article number? @item nndoc groups should inherit the score files of their parents? Also inherit copy prompts and save files. @@ -16580,7 +16602,7 @@ has been changed before using it. on. Eg. -- `(("nnml:" . 1))'. @item easier interface to nnkiboze to create ephemeral groups that -contaion groups that match a regexp. +contain groups that match a regexp. @item allow newlines in urls, but remove them before using the URL. @@ -16726,7 +16748,7 @@ groups it has been mailed to. @item hide-pgp should also hide PGP public key blocks. @item - Command in the group buffer to respoll process-marked groups. + Command in the group buffer to respool process-marked groups. @item `gnus-summary-find-matching' should accept pseudo-"headers" like "body", "head" and "all" @@ -16779,7 +16801,7 @@ even unread articles. @item checking for bogus groups should clean topic alists as well. @item - cancelling articles in foreign groups. + canceling articles in foreign groups. @item article number in folded topics isn't properly updated by Xref handling. @@ -16825,7 +16847,7 @@ the entire folder to disk when accepting new messages. server mode command for clearing read marks from all groups from a server. @item - when following up mulitple articles, include all To, Cc, etc headers + when following up multiple articles, include all To, Cc, etc headers from all articles. @item a command for deciding what the total score of the current @@ -16979,7 +17001,7 @@ on article marks. a way to visually distinguish slave Gnusae from masters. (Whip instead of normal logo?) @item - Use DJ Bernstein "From " quoting/dequoting, where appliccable. + Use DJ Bernstein "From " quoting/dequoting, where applicable. @item Why is hide-citation-maybe and hide-citation different? Also clear up info. @@ -17040,13 +17062,13 @@ They could be used like this: would be a boolean expression on the labels, e.g. - `/ l bug & !fixed RET' +`/ l bug & !fixed RET' @end example would show all the messages which are labeled `bug' but not labeled `fixed'. -One could also immagine the labels being used for highliting, or +One could also imagine the labels being used for highlighting, or affect the summary line format. @@ -17059,7 +17081,7 @@ would recognize things that looks like messages or folders: - If it is a directory containing numbered files, create an nndir summary buffer. -- For other directories, create a nneething summaru buffer. +- For other directories, create a nneething summary buffer. - For files matching "\\`From ", create a nndoc/mbox summary. @@ -17086,7 +17108,7 @@ decend into sci.something ? decend into ucd? The problem above is that since there is really only one subsection of -science, shouldn't it prompt you for only decending sci.something? If +science, shouldn't it prompt you for only descending sci.something? If there was a sci.somethingelse group or section, then it should prompt for sci? first the sci.something? then sci.somethingelse?... @@ -17102,14 +17124,14 @@ as a single spoiler warning and hide it all, replacing it with a "Next Page" button: - ^L's +^L's - more than n blank lines +more than n blank lines - more than m identical lines - (which should be replaced with button to show them) +more than m identical lines +(which should be replaced with button to show them) - any whitespace surrounding any of the above +any whitespace surrounding any of the above @item @@ -17139,30 +17161,30 @@ Yes. I think the algorithm is as follows: Group-mode show-list-of-articles-in-group - if (key-pressed == SPACE) - if (no-more-articles-in-group-to-select) - if (articles-selected) - start-reading-selected-articles; - junk-unread-articles; - next-group; - else - show-next-page; - - else if (key-pressed = '.') - if (consolidated-menus) # same as hide-thread in Gnus - select-thread-under-cursor; - else - select-article-under-cursor; + if (key-pressed == SPACE) + if (no-more-articles-in-group-to-select) + if (articles-selected) + start-reading-selected-articles; + junk-unread-articles; + next-group; + else + show-next-page; + + else if (key-pressed = '.') + if (consolidated-menus) # same as hide-thread in Gnus + select-thread-under-cursor; + else + select-article-under-cursor; Article-mode - if (key-pressed == SPACE) - if (more-pages-in-article) - next-page; - else if (more-selected-articles-to-read) - next-article; - else - next-group; + if (key-pressed == SPACE) + if (more-pages-in-article) + next-page; + else if (more-selected-articles-to-read) + next-article; + else + next-group; @end example @item @@ -17179,7 +17201,7 @@ the wildcard expression). @item It would be nice if it also handled - + which should correspond to `B nntp RET sunsite.auc.dk' in *Group*. @@ -17342,7 +17364,7 @@ to be able to post in them (using the current select method). `x' should retain any sortings that have been performed. @item - allow the user to specify the presedence of the secondary marks. Also + allow the user to specify the precedence of the secondary marks. Also allow them to be displayed separately. @item @@ -17373,16 +17395,16 @@ Mac, MS (etc) characters into ISO 8859-1. (let ((buffer-read-only nil)) (goto-char (point-min)) (while (search-forward "\221" nil t) - (replace-match "`" t t)) + (replace-match "`" t t)) (goto-char (point-min)) (while (search-forward "\222" nil t) - (replace-match "'" t t)) + (replace-match "'" t t)) (goto-char (point-min)) (while (search-forward "\223" nil t) - (replace-match "\"" t t)) + (replace-match "\"" t t)) (goto-char (point-min)) (while (search-forward "\224" nil t) - (replace-match "\"" t t))))) + (replace-match "\"" t t))))) @end example @item @@ -17390,7 +17412,7 @@ Mac, MS (etc) characters into ISO 8859-1. (add-hook 'gnus-exit-query-functions '(lambda () (if (and (file-exists-p nnmail-spool-file) - (> (nnheader-file-size nnmail-spool-file) 0)) + (> (nnheader-file-size nnmail-spool-file) 0)) (yes-or-no-p "New mail has arrived. Quit Gnus anyways? ") (y-or-n-p "Are you sure you want to quit Gnus? ")))) @end example @@ -18913,7 +18935,7 @@ this: @node Score File Syntax @subsection Score File Syntax -Score files are meant to be easily parsable, but yet extremely +Score files are meant to be easily parseable, but yet extremely mallable. It was decided that something that had the same read syntax as an Emacs Lisp list would fit that spec. diff --git a/texi/message.texi b/texi/message.texi index 0f5ca1f..cdb63f4 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Message 5.6.6 Manual +@settitle Message 5.6.11 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.6 Manual +@title Message 5.6.11 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.6. Message is distributed with +This manual corresponds to Message 5.6.11. Message is distributed with the Gnus distribution bearing the same version number as this manual has. @@ -717,6 +717,18 @@ 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 -- 1.7.10.4