From 457aab83e21dae91bb01c6ff42448533b0547f81 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Mon, 5 Jul 1999 08:01:04 +0000 Subject: [PATCH] Sync up with Pterodactyl Gnus v0.91, etc. See ChangeLog for more details. --- ChangeLog | 48 +++ GNUS-NEWS | 15 +- README.T-gnus | 2 +- lisp/ChangeLog | 180 +++++++++++ lisp/base64.el | 9 +- lisp/gnus-agent.el | 111 ++++--- lisp/gnus-art.el | 6 +- lisp/gnus-cache.el | 13 +- lisp/gnus-mailcap.el | 2 +- lisp/gnus-msg.el | 5 +- lisp/gnus-srvr.el | 3 + lisp/gnus-start.el | 54 ++-- lisp/gnus-sum.el | 54 ++-- lisp/gnus-util.el | 23 ++ lisp/gnus.el | 6 +- lisp/lpath.el | 4 +- lisp/message.el | 8 +- lisp/mm-decode.el | 65 ++-- lisp/mm-encode.el | 7 +- lisp/mm-util.el | 54 ++-- lisp/mm-uu.el | 48 ++- lisp/mm-view.el | 6 +- lisp/mml.el | 6 +- lisp/nnfolder.el | 54 +++- lisp/nnmail.el | 20 +- lisp/nnmbox.el | 73 +++-- lisp/nnml.el | 2 +- lisp/qp.el | 2 +- lisp/rfc2047.el | 22 +- lisp/smiley.el | 4 +- texi/ChangeLog | 5 + texi/emacs-mime.texi | 59 +++- texi/gnus-ja.texi | 68 +++- texi/gnus.texi | 72 ++++- texi/gnusref-ja.tex | 864 ++++++++++++++++++++++++++++++-------------------- texi/refcard-ja.tex | 84 +++-- 36 files changed, 1413 insertions(+), 645 deletions(-) diff --git a/ChangeLog b/ChangeLog index 28def76..3881f6c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,51 @@ +1999-07-05 Katsumi Yamaoka + + * lisp/gnus.el (gnus-version-number): Update to 6.11.05. + (gnus-revision-number): Fresh start from 00. + + * texi/gnus-ja.texi (Mail in a Newsreader): Translate into Japanese. + + * README.T-gnus: Update for T-gnus 6.11.05. + + * lisp/nnmbox.el (nnmbox-save-buffer): Bind `output-coding-system' + instead of `coding-system-for-write' Under Mule 2. + + * lisp/nnmbox.el (nnmbox-active-file-coding-system, + nnmbox-file-coding-system): Default to `raw-text-dos' or 'raw-text'. + * lisp/nnfolder.el (nnfolder-file-coding-system, + nnfolder-active-file-coding-system): Ditto. + + * lisp/mm-view.el (TopLevel): Don't bind vars `w3-meta-*'. + + * lisp/gnus-util.el (gnus-write-active-file): Abolish function. + (gnus-write-active-file-as-coding-system): New function. + + * lisp/gnus-cache.el (gnus-cache-write-active): Use + `gnus-write-active-file-as-coding-system' instead of + `gnus-write-active-file'. + * lisp/gnus-agent.el (gnus-agent-expire, gnus-agent-write-active): + Ditto. + + * lisp/gnus-agent.el (gnus-agent-expire, gnus-agent-write-active, + gnus-agent-save-active-1): Use + `insert-file-contents-as-coding-system' instead of + `insert-file-contents-literally' or `insert-file-contents'. + +1999-07-05 Katsumi Yamaoka + + * texi/{emacs-mime.texi,ChangeLog}: Sync up with Pterodactyl Gnus + v0.91. + * lisp/{smiley.el,rfc2047.el,qp.el,nnml.el,nnmbox.el,nnmail.el, + nnheader.el,nnfolder.el,mml.el,mm-view.el,mm-uu.el,mm-util.el, + mm-encode.el,mm-decode.el,message.el,lpath.el,gnus-util.el, + gnus-sum.el,gnus-start.el,gnus-srvr.el,gnus-msg.el,gnus-mailcap.el, + gnus-cache.el,gnus-art.el,gnus-agent.el,base64.el}: Ditto. + * GNUS-NEWS: Ditto. + +1999-07-04 Yoshiki Hayashi + + * texi/{gnusref-ja.tex,refcard-ja.tex}: Update to the version 5.5. + 1999-07-04 Katsumi Yamaoka * lisp/gnus.el (gnus-revision-number): Increment to 03. diff --git a/GNUS-NEWS b/GNUS-NEWS index ee7fbc6..a725d82 100644 --- a/GNUS-NEWS +++ b/GNUS-NEWS @@ -1,9 +1,17 @@ ** Gnus changes. +The Gnus NEWS entries are short, but they reflect sweeping changes in +four areas: Article display treatment, MIME treatment, +internationalization and mail-fetching. + *** The mail-fetching functions have changed. See the manual for the many details. In particular, all procmail fetching variables are gone. -*** Gnus is now a MIME-capable reader. See the manual for details. +*** Gnus is now a MIME-capable reader. This affects many parts of +Gnus, and adds a slew of new commands. See the manual for details. + +*** Gnus has also been multilingualized. This also affects too +many parts of Gnus to summarize here, and adds many new variables. *** gnus-auto-select-first can now be a function to be called to position point. @@ -12,5 +20,8 @@ called to position point. summary buffers and NOV files. *** `gnus-article-display-hook' has been removed. Instead, a number -of variables starting with `gnus-treat-'. +of variables starting with `gnus-treat-' have been added. + +*** The Gnus posting styles have been redone again and now works in a +subtly different manner. diff --git a/README.T-gnus b/README.T-gnus index 35f5a46..3b9a650 100644 --- a/README.T-gnus +++ b/README.T-gnus @@ -27,6 +27,6 @@ NEWS: * T-gnus 6.11 - this is based on Pterodactyl Gnus. - The latest T-gnus is T-gnus 6.11.04 (Based on pgnus-0.89). + The latest T-gnus is T-gnus 6.11.05 (Based on pgnus-0.91). It requires SEMI/WEMI-1.13, the latest FLIM-1.13, and the latest APEL (9.20 or later). diff --git a/lisp/ChangeLog b/lisp/ChangeLog index b807b2d..9ce3a5b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,183 @@ +Sun Jul 4 06:31:01 1999 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.91 is released. + +1999-07-04 04:35:28 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-agent-save-active-1): New function. + (gnus-agent-save-active): use it. + (gnus-agent-save-groups): Ditto. + + * gnus-cache.el (gnus-cache-write-active): Use it. + + * gnus-agent.el (gnus-agent-write-active): Use it. + + * gnus-util.el (gnus-write-active-file): New function. + + * gnus-agent.el (gnus-agent-write-active): New function to keep + lower boundaries and canceled groups. + (gnus-agent-save-groups): Use it. + (gnus-agent-save-active): Use it. + (gnus-agent-save-group-info): Only write active files. + (gnus-agent-expire): Update active file. + + * mm-decode.el (mm-inlinable-part-p): Removed. + (mm-user-display-methods): Default to nil. + (mm-user-display-methods): Removed. + (add-mime-display-method): Removed. + (mm-automatic-display): Renamed. + (mm-automatic-display-p): Use it. + (mm-inlined-types): New variable. + (mm-inlined-p): New function. + + * message.el (message-reply): Bind message-this-is-mail. + +1999-07-03 13:16:31 Michael Klingbeil + + * smiley.el (smiley-buffer): Fix for NT. + +1999-07-03 11:26:47 Lars Magne Ingebrigtsen + + * mm-encode.el (mm-encode-buffer): Check whether we have 7bit. + + * message.el (message-check-news-header-syntax): Protect against + nil froms. + + * mm-util.el (mm-auto-mode-alist): New. + + * mml.el (mml-generate-mime-1): Ditto. + + * gnus.el: Use mm-insert-file-contents throughout instead of + nnheader. + + * mm-util.el (mm-insert-file-contents): New function. + +Sat Jul 3 07:35:35 1999 Lars Magne Ingebrigtsen + + * gnus.el: Pterodactyl Gnus v0.90 is released. + +1999-07-03 09:31:10 Sven Fischer + + * mailcap.el (mailcap-possible-viewers): Use string=. + +1999-07-01 Shenghuo ZHU + + * mm-uu.el (mm-uu-forward-begin-line): New variable. + (mm-uu-forward-end-line): New variable. + (mm-uu-begin-line): Handle forwarded message. + (mm-uu-identifier-alist): Ditto. + (mm-uu-dissect): Ditto. + +1999-06-29 Shenghuo ZHU + + * lpath.el: Two free variables. + +1999-07-02 Shenghuo ZHU + + * nnheader.el (nnheader-file-coding-system): Use raw-text. + * gnus-agent.el (gnus-agent-file-coding-system): Ditto. + * gnus-cache.el (gnus-cache-coding-system): Ditto. + + * nnfolder.el (nnfolder-file-coding-system): Use mm-text-coding-system. + (nnfolder-file-coding-system-for-write): New variable. + (nnfolder-active-file-coding-system): New variable. + (nnfolder-active-file-coding-system-for-write): New variable. + (nnfolder-save-active): New function. + (nnfolder-save-buffer): Use them. + (nnfolder-possibly-change-group): Ditto. + (nnfolder-request-list-newsgroups): Ditto. + (nnfolder-request-create-group): Ditto. + (nnfolder-request-expire-articles): Ditto. + (nnfolder-request-move-article): Ditto. + (nnfolder-request-accept-article): Ditto. + (nnfolder-request-delete-group): Ditto. + (nnfolder-request-rename-group): Ditto. + (nnfolder-possibly-change-folder): Ditto. + (nnfolder-read-folder): Ditto. + (nnfolder-request-list): Remove pathname-coding-system. + (nnfolder-possibly-change-group): Use nnmail-pathname-coding-system. + + * nnmail.el (nnmail-file-coding-system): Use raw-text. + (nnmail-file-coding-system-1): Removed. + (nnmail-find-file): Use nnmail-pathname-coding-system. + (nnmail-write-region): Ditto. + + * nnmbox.el (nnmbox-file-coding-system): New variable. + (nnmbox-file-coding-system-for-write): New variable. + (nnmbox-active-file-coding-system): New variable. + (nnmbox-active-file-coding-system-for-write): New variable. + (nnmbox-save-buffer): New function. + (nnmbox-save-active): New function. + (nnmbox-request-scan): Use them. + (nnmbox-request-expire-articles): Ditto. + (nnmbox-request-move-article): Ditto. + (nnmbox-request-accept-article): Ditto. + (nnmbox-request-replace-article): Ditto. + (nnmbox-request-delete-group): Ditto. + (nnmbox-request-rename-group): Ditto. + (nnmbox-request-create-group): Ditto. + + * mm-util.el (mm-text-coding-system): raw-text or -dos. + (mm-running-ntemacs): Removed. + + * nnml.el (nnml-file-coding-system): Use nnmail-file-coding-system. + +1999-07-02 Shenghuo ZHU + + * nnfolder.el (nnfolder-read-folder): Use nnheader-file-coding-system. + +1999-07-01 Shenghuo ZHU + + * qp.el (quoted-printable-encoding-characters): Support lower case. + +1999-07-01 Shenghuo ZHU + + * rfc2047.el (rfc2047-encode): Fold before B-encoding. + (rfc2047-b-encode-region): Encode line by line. + +1999-07-03 09:20:16 Lars Magne Ingebrigtsen + + * mm-util.el (mm-find-mime-charset-region): Fix. + +1999-06-30 KOSEKI Yoshinori + + * mm-util.el (mm-mime-mule-charset-alist): Fix iso-2022-jp(-2) bug. + (mm-find-mime-charset-region): Ditto. + +1999-07-03 09:15:35 Simon Josefsson + + * gnus-sum.el (gnus-summary-move-article): Fix something or + other. + +1999-06-29 Shenghuo ZHU + + * gnus-sum.el (gnus-newsgroup-ephemeral-charset): New variable. + (gnus-newsgroup-ephemeral-ignored-charsets): New variable. + (gnus-summary-enter-digest-group): Use them. + (gnus-summary-setup-default-charset): Ditto. + +1999-06-15 Shenghuo ZHU + + * base64.el (base64-run-command-on-region): Use unibyte buffer. + +1999-06-15 Shenghuo ZHU + + * gnus-msg.el (gnus-configure-posting-styles): Fix bug when + gnus-newsgroup-name is nil. + +1999-06-15 Shenghuo ZHU + + * rfc2047.el (rfc2047-encode): Chop the tail newline. + +1999-06-15 Shenghuo ZHU + + * gnus-art.el (article-emphasize): Use correct + gnus-article-emphasis-alist. + +1999-06-15 Shenghuo ZHU + + * mm-view.el (mm-inline-text): Fix text/html bug. + Mon Jun 28 17:54:01 1999 Lars Magne Ingebrigtsen * gnus.el: Pterodactyl Gnus v0.89 is released. diff --git a/lisp/base64.el b/lisp/base64.el index 12b4ca9..a30d292 100644 --- a/lisp/base64.el +++ b/lisp/base64.el @@ -75,9 +75,13 @@ base64-encoder-program.") (setq p (cdr p))) v)) +(defvar base64-binary-coding-system 'binary) + (defun base64-run-command-on-region (start end output-buffer command &rest arg-list) - (let ((tempfile nil) status errstring default-process-coding-system) + (let ((tempfile nil) status errstring default-process-coding-system + (coding-system-for-write base64-binary-coding-system) + (coding-system-for-read base64-binary-coding-system)) (unwind-protect (progn (setq tempfile (make-temp-name "base64")) @@ -105,7 +109,8 @@ base64-encoder-program.") (if (or (null buffer) (eq buffer (current-buffer))) (insert-char char count) (with-current-buffer buffer - (insert-char char count))))) + (insert-char char count)))) + (setq base64-binary-coding-system 'raw-text)) (defun-maybe base64-decode-region (start end) (interactive "r") diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index 045243b..5c3d759 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -93,7 +93,7 @@ If nil, only read articles will be expired." (defvar gnus-agent-spam-hashtb nil) (defvar gnus-agent-file-name nil) (defvar gnus-agent-send-mail-function nil) -(defvar gnus-agent-file-coding-system 'binary) +(defvar gnus-agent-file-coding-system 'raw-text) (defconst gnus-agent-scoreable-headers '("subject" "from" "date" "message-id" "references" "chars" "lines" "xref") @@ -545,46 +545,56 @@ the actual number of articles toggled is returned." ;;; (defun gnus-agent-save-active (method) + (gnus-agent-save-active-1 method 'gnus-active-to-gnus-format)) + +(defun gnus-agent-save-active-1 (method function) (when (gnus-agent-method-p method) (let* ((gnus-command-method method) + (new (gnus-make-hashtable (count-lines (point-min) (point-max)))) (file (gnus-agent-lib-file "active"))) - (gnus-make-directory (file-name-directory file)) - (write-region-as-coding-system - gnus-agent-file-coding-system (point-min) (point-max) file nil 'silent) - (when (file-exists-p (gnus-agent-lib-file "groups")) - (delete-file (gnus-agent-lib-file "groups")))))) + (funcall function nil new) + (gnus-agent-write-active file new) + (erase-buffer) + (insert-file-contents-as-coding-system gnus-agent-file-coding-system + file)))) + +(defun gnus-agent-write-active (file new) + (let ((orig (gnus-make-hashtable (count-lines (point-min) (point-max)))) + (file (gnus-agent-lib-file "active")) + elem) + (when (file-exists-p file) + (with-temp-buffer + (insert-file-contents-as-coding-system gnus-agent-file-coding-system + file) + (gnus-active-to-gnus-format nil orig)) + (mapatoms + (lambda (sym) + (when (and sym (boundp sym)) + (if (setq elem (symbol-value (intern (symbol-name sym) orig))) + (setcdr elem (cdr (symbol-value sym))) + (set (intern (symbol-name sym) orig) (symbol-value sym))))) + new)) + (gnus-make-directory (file-name-directory file)) + (gnus-write-active-file-as-coding-system gnus-agent-file-coding-system + file orig))) (defun gnus-agent-save-groups (method) - (let* ((gnus-command-method method) - (file (gnus-agent-lib-file "groups"))) - (gnus-make-directory (file-name-directory file)) - (write-region-as-coding-system - gnus-agent-file-coding-system (point-min) (point-max) file nil 'silent) - (when (file-exists-p (gnus-agent-lib-file "active")) - (delete-file (gnus-agent-lib-file "active"))))) + (gnus-agent-save-active-1 method 'gnus-groups-to-gnus-format)) (defun gnus-agent-save-group-info (method group active) (when (gnus-agent-method-p method) (let* ((gnus-command-method method) - (file (if nntp-server-list-active-group - (gnus-agent-lib-file "active") - (gnus-agent-lib-file "groups")))) + (file (gnus-agent-lib-file "active"))) (gnus-make-directory (file-name-directory file)) (with-temp-file file (when (file-exists-p file) (nnheader-insert-file-contents file)) (goto-char (point-min)) - (if nntp-server-list-active-group - (progn - (when (re-search-forward - (concat "^" (regexp-quote group) " ") nil t) - (gnus-delete-line)) - (insert group " " (number-to-string (cdr active)) " " - (number-to-string (car active)) " y\n")) - (when (re-search-forward - (concat (regexp-quote group) "\\($\\| \\)") nil t) - (gnus-delete-line)) - (insert-buffer-substring nntp-server-buffer)))))) + (when (re-search-forward + (concat "^" (regexp-quote group) " ") nil t) + (gnus-delete-line)) + (insert group " " (number-to-string (cdr active)) " " + (number-to-string (car active)) " y\n"))))) (defun gnus-agent-group-path (group) "Translate GROUP into a path." @@ -1351,8 +1361,14 @@ The following commands are available: (day (- (time-to-days (current-time)) gnus-agent-expire-days)) gnus-command-method sym group articles history overview file histories elem art nov-file low info - unreads marked article) + unreads marked article orig lowest highest) (save-excursion + (with-temp-buffer + (insert-file-contents-as-coding-system gnus-agent-file-coding-system + file) + (gnus-active-to-gnus-format + nil (setq orig (gnus-make-hashtable + (count-lines (point-min) (point-max)))))) (setq overview (gnus-get-buffer-create " *expire overview*")) (while (setq gnus-command-method (pop methods)) (let ((expiry-hashtb (gnus-make-hashtable 1023))) @@ -1391,7 +1407,9 @@ The following commands are available: (gnus-uncompress-range (cdr (assq 'dormant (gnus-info-marks info))))) - nov-file (gnus-agent-article-name ".overview" group)) + nov-file (gnus-agent-article-name ".overview" group) + lowest nil + highest nil) (gnus-agent-load-alist group) (gnus-message 5 "Expiring articles in %s" group) (set-buffer overview) @@ -1415,7 +1433,11 @@ The following commands are available: (if (file-exists-p (gnus-agent-article-name (number-to-string art) group)) - (forward-line 1) + (progn + (unless lowest + (setq lowest art)) + (setq highest art) + (forward-line 1)) ;; Remove old NOV lines that have no articles. (gnus-delete-line))) (if (or (eobp) @@ -1465,19 +1487,23 @@ The following commands are available: ;; Maybe everything has been expired from `gnus-article-alist' ;; and so the above marking as read could not be conducted, ;; or there are expired article within the range of the alist. - (when (and info - expired - (or (not (caar gnus-agent-article-alist)) - (> (car expired) - (caar gnus-agent-article-alist)))) - (setcar (nthcdr 2 info) - (gnus-add-to-range - (nth 2 info) - (nreverse expired)))) + (when (and info + expired + (or (not (caar gnus-agent-article-alist)) + (> (car expired) + (caar gnus-agent-article-alist)))) + (setcar (nthcdr 2 info) + (gnus-add-to-range + (nth 2 info) + (nreverse expired)))) (gnus-dribble-enter (concat "(gnus-group-set-info '" (gnus-prin1-to-string info) - ")")))) + ")"))) + (when lowest + (if (gnus-gethash group orig) + (setcar (gnus-gethash group orig) lowest) + (gnus-sethash group (cons lowest highest) orig)))) expiry-hashtb) (set-buffer history) (setq histories (nreverse (sort histories '<))) @@ -1485,7 +1511,10 @@ The following commands are available: (goto-char (pop histories)) (gnus-delete-line)) (gnus-agent-save-history) - (gnus-agent-close-history)) + (gnus-agent-close-history) + (gnus-write-active-file-as-coding-system + gnus-agent-file-coding-system + (gnus-agent-lib-file "active") orig)) (gnus-message 4 "Expiry...done")))))) ;;;###autoload diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index a58e9eb..39a339e 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -2145,7 +2145,9 @@ This format is defined by the `gnus-article-time-format' variable." (interactive (gnus-article-hidden-arg)) (unless (gnus-article-check-hidden-text 'emphasis arg) (save-excursion - (let ((alist (or gnus-article-emphasis-alist gnus-emphasis-alist)) + (let ((alist (or (with-current-buffer gnus-summary-buffer + gnus-article-emphasis-alist) + gnus-emphasis-alist)) (buffer-read-only nil) (props (append '(article-type emphasis) gnus-hidden-properties)) @@ -3417,7 +3419,7 @@ value of the variable `gnus-show-mime' is non-nil." "inline") (mm-attachment-override-p type))) (mm-automatic-display-p type) - (or (mm-inlinable-part-p type) + (or (mm-inlined-p type) (mm-automatic-external-display-p type))) (setq display t) (when (equal (car (split-string type "/")) diff --git a/lisp/gnus-cache.el b/lisp/gnus-cache.el index 99bc5d9..cadedf6 100644 --- a/lisp/gnus-cache.el +++ b/lisp/gnus-cache.el @@ -79,7 +79,7 @@ it's not cached." (defvar gnus-cache-overview-coding-system 'raw-text "Coding system used on Gnus cache files.") -(defvar gnus-cache-coding-system 'binary +(defvar gnus-cache-coding-system 'raw-text "Coding system used on Gnus cache files.") @@ -685,14 +685,9 @@ $ emacs -batch -l ~/.emacs -l gnus -f gnus-jog-cache" (when (or force (and gnus-cache-active-hashtb gnus-cache-active-altered)) - (with-temp-file gnus-cache-active-file - (mapatoms - (lambda (sym) - (when (and sym (boundp sym)) - (insert (format "%s %d %d y\n" - (symbol-name sym) (cdr (symbol-value sym)) - (car (symbol-value sym)))))) - gnus-cache-active-hashtb)) + (gnus-write-active-file-as-coding-system + gnus-cache-write-file-coding-system + gnus-cache-active-file gnus-cache-active-hashtb) ;; Mark the active hashtb as unaltered. (setq gnus-cache-active-altered nil))) diff --git a/lisp/gnus-mailcap.el b/lisp/gnus-mailcap.el index cbb0c18..b206be7 100644 --- a/lisp/gnus-mailcap.el +++ b/lisp/gnus-mailcap.el @@ -486,7 +486,7 @@ If FORCE, re-parse even if already parsed." (cond ((equal (car (car major)) minor) (setq exact (cons (cdr (car major)) exact))) - ((and minor (string-match (car (car major)) minor)) + ((and minor (string= (car (car major)) minor)) (setq wildcard (cons (cdr (car major)) wildcard)))) (setq major (cdr major))) (nconc (nreverse exact) (nreverse wildcard)))) diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index 9f870a2..63ea229 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -1212,7 +1212,7 @@ this is a reply." (when (cond ((stringp match) ;; Regexp string match on the group name. - (string-match match gnus-newsgroup-name)) + (string-match match group)) ((or (symbolp match) (gnus-functionp match)) (cond @@ -1262,8 +1262,7 @@ this is a reply." (insert-file-contents v) (buffer-string)))) (setq results (delq (assoc element results) results)) - (push (cons element - v) results)))) + (push (cons element v) results)))) ;; Now we have all the styles, so we insert them. (setq name (assq 'name results) address (assq 'address results)) diff --git a/lisp/gnus-srvr.el b/lisp/gnus-srvr.el index 4c65009..0ae565a 100644 --- a/lisp/gnus-srvr.el +++ b/lisp/gnus-srvr.el @@ -135,6 +135,9 @@ The following specs are understood: "D" gnus-server-deny-server "R" gnus-server-remove-denials + "n" next-line + "p" previous-line + "g" gnus-server-regenerate-server "\C-c\C-i" gnus-info-find-node diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 8902ab3..69ce8dc 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -1832,39 +1832,41 @@ newsgroup." (gnus-group-prefixed-name "" method)))) ;; Let the Gnus agent save the active file. - (when (and gnus-agent real-active) - (gnus-agent-save-groups method)) + (if (and gnus-agent real-active) + (progn + (gnus-agent-save-groups method) + (gnus-active-to-gnus-format method hashtb nil real-active)) - (goto-char (point-min)) - ;; We split this into to separate loops, one with the prefix - ;; and one without to speed the reading up somewhat. - (if prefix - (let (min max opoint group) + (goto-char (point-min)) + ;; We split this into to separate loops, one with the prefix + ;; and one without to speed the reading up somewhat. + (if prefix + (let (min max opoint group) + (while (not (eobp)) + (condition-case () + (progn + (read cur) (read cur) + (setq min (read cur) + max (read cur) + opoint (point)) + (skip-chars-forward " \t") + (insert prefix) + (goto-char opoint) + (set (let ((obarray hashtb)) (read cur)) + (cons min max))) + (error (and group (symbolp group) (set group nil)))) + (forward-line 1))) + (let (min max group) (while (not (eobp)) (condition-case () - (progn + (when (eq (char-after) ?2) (read cur) (read cur) (setq min (read cur) - max (read cur) - opoint (point)) - (skip-chars-forward " \t") - (insert prefix) - (goto-char opoint) - (set (let ((obarray hashtb)) (read cur)) + max (read cur)) + (set (setq group (let ((obarray hashtb)) (read cur))) (cons min max))) (error (and group (symbolp group) (set group nil)))) - (forward-line 1))) - (let (min max group) - (while (not (eobp)) - (condition-case () - (when (eq (char-after) ?2) - (read cur) (read cur) - (setq min (read cur) - max (read cur)) - (set (setq group (let ((obarray hashtb)) (read cur))) - (cons min max))) - (error (and group (symbolp group) (set group nil)))) - (forward-line 1)))))) + (forward-line 1))))))) (defun gnus-read-newsrc-file (&optional force) "Read startup file. diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 1ba0ca1..cae07eb 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -1053,6 +1053,8 @@ variable (string, integer, character, etc).") (defvar gnus-last-article nil) (defvar gnus-newsgroup-history nil) (defvar gnus-newsgroup-charset nil) +(defvar gnus-newsgroup-ephemeral-charset nil) +(defvar gnus-newsgroup-ephemeral-ignored-charsets nil) (defconst gnus-summary-local-variables '(gnus-newsgroup-name @@ -6757,11 +6759,14 @@ to guess what the document format is." (delete-matching-lines "^\\(Path\\):\\|^From ") (widen)) (unwind-protect - (if (gnus-group-read-ephemeral-group - name `(nndoc ,name (nndoc-address ,(get-buffer dig)) - (nndoc-article-type - ,(if force 'digest 'guess))) t) - ;; Make all postings to this group go to the parent group. + (if (let ((gnus-newsgroup-ephemeral-charset gnus-newsgroup-charset) + (gnus-newsgroup-ephemeral-ignored-charsets + gnus-newsgroup-ignored-charsets)) + (gnus-group-read-ephemeral-group + name `(nndoc ,name (nndoc-address ,(get-buffer dig)) + (nndoc-article-type + ,(if force 'digest 'guess))) t)) + ;; Make all postings to this group go to the parent group. (nconc (gnus-info-params (gnus-get-info name)) params) ;; Couldn't select this doc group. @@ -7288,7 +7293,8 @@ and `request-accept' functions." (entry (gnus-gethash pto-group gnus-newsrc-hashtb)) (info (nth 2 entry)) - (to-group (gnus-info-group info))) + (to-group (gnus-info-group info)) + to-marks) ;; Update the group that has been moved to. (when (and info (memq action '(move copy))) @@ -7296,6 +7302,7 @@ and `request-accept' functions." (push to-group to-groups)) (unless (memq article gnus-newsgroup-unreads) + (push 'read to-marks) (gnus-info-set-read info (gnus-add-to-range (gnus-info-read info) (list (cdr art-group))))) @@ -7329,6 +7336,7 @@ and `request-accept' functions." (when (memq article (symbol-value (intern (format "gnus-newsgroup-%s" (caar marks))))) + (push (cdar marks) to-marks) ;; If the other group is the same as this group, ;; then we have to add the mark to the list. (when (equal to-group gnus-newsgroup-name) @@ -7342,6 +7350,10 @@ and `request-accept' functions." to-group (cdar marks) (list to-article) info)) (setq marks (cdr marks))) + (gnus-request-set-mark to-group (list (list (list to-article) + 'set + to-marks))) + (gnus-dribble-enter (concat "(gnus-group-set-info '" (gnus-prin1-to-string (gnus-get-info to-group)) @@ -9424,21 +9436,23 @@ If REVERSE, save parts that do not match TYPE." (let* ((name (and gnus-newsgroup-name (gnus-group-real-name gnus-newsgroup-name))) (ignored-charsets - (append - (and gnus-newsgroup-name - (or (gnus-group-find-parameter gnus-newsgroup-name - 'ignored-charsets t) - (let ((alist gnus-group-ignored-charsets-alist) - elem (charsets nil)) - (while (setq elem (pop alist)) - (when (and name - (string-match (car elem) name)) - (setq alist nil - charsets (cdr elem)))) - charsets))) - gnus-newsgroup-ignored-charsets))) + (or gnus-newsgroup-ephemeral-ignored-charsets + (append + (and gnus-newsgroup-name + (or (gnus-group-find-parameter gnus-newsgroup-name + 'ignored-charsets t) + (let ((alist gnus-group-ignored-charsets-alist) + elem (charsets nil)) + (while (setq elem (pop alist)) + (when (and name + (string-match (car elem) name)) + (setq alist nil + charsets (cdr elem)))) + charsets)))) + gnus-newsgroup-ignored-charsets))) (setq gnus-newsgroup-charset - (or (and gnus-newsgroup-name + (or gnus-newsgroup-ephemeral-charset + (and gnus-newsgroup-name (or (gnus-group-find-parameter gnus-newsgroup-name 'charset) (let ((alist gnus-group-charset-alist) diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index f11b824..e524daa 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -1005,6 +1005,29 @@ ARG is passed to the first function." (throw 'found nil))) t)) +(static-if (boundp 'MULE) + (defun gnus-write-active-file-as-coding-system (coding-system file hashtb) + (let ((output-coding-system coding-system)) + (with-temp-file file + (mapatoms + (lambda (sym) + (when (and sym (boundp sym)) + (insert (format "%s %d %d y\n" + (symbol-name sym) (cdr (symbol-value sym)) + (car (symbol-value sym)))))) + hashtb)))) + (defun gnus-write-active-file-as-coding-system (coding-system file hashtb) + (let ((coding-system-for-write coding-system)) + (with-temp-file file + (mapatoms + (lambda (sym) + (when (and sym (boundp sym)) + (insert (format "%s %d %d y\n" + (symbol-name sym) (cdr (symbol-value sym)) + (car (symbol-value sym)))))) + hashtb)))) + ) + (provide 'gnus-util) ;;; gnus-util.el ends here diff --git a/lisp/gnus.el b/lisp/gnus.el index 8c75d14..f1748c6 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -266,13 +266,13 @@ is restarted, and sometimes reloaded." (defconst gnus-product-name "ET-gnus" "Product name of this version of gnus.") -(defconst gnus-version-number "6.11.04" +(defconst gnus-version-number "6.11.05" "Version number for this version of gnus.") -(defconst gnus-revision-number "03" +(defconst gnus-revision-number "00" "Revision number for this version of gnus.") -(defconst gnus-original-version-number "0.89" +(defconst gnus-original-version-number "0.91" "Version number for this version of Gnus.") (provide 'running-pterodactyl-gnus-0_73-or-later) diff --git a/lisp/lpath.el b/lisp/lpath.el index 4ea3da9..d2a5db0 100644 --- a/lisp/lpath.el +++ b/lisp/lpath.el @@ -66,6 +66,8 @@ enable-multibyte-characters browse-url-browser-function adaptive-fill-first-line-regexp adaptive-fill-regexp url-current-mime-headers help-echo-owns-message + w3-meta-content-type-charset-regexp + w3-meta-charset-content-type-regexp babel-translations babel-history)) (maybe-fbind '(color-instance-rgb-components temp-directory glyph-width annotation-glyph window-pixel-width glyph-height @@ -86,7 +88,7 @@ url-view-url w3-prepare-buffer char-int annotationp delete-annotation make-image-specifier - make-annotation + make-annotation events-to-keys w3-do-setup w3-region w3-coding-system-for-mime-charset rmail-summary-exists rmail-select-summary rmail-update-summary diff --git a/lisp/message.el b/lisp/message.el index 9139edf..d0db66a 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -2969,12 +2969,15 @@ This sub function is for exclusive use of `message-send-news'." (message-check 'from (let* ((case-fold-search t) (from (message-fetch-field "from")) - (ad (nth 1 (std11-extract-address-components from)))) + ad) (cond ((not from) (message "There is no From line. Posting is denied.") nil) - ((or (not (string-match "@[^\\.]*\\." ad)) ;larsi@ifi + ((or (not (string-match + "@[^\\.]*\\." + (setq ad (nth 1 (mail-extract-address-components + from))))) ;larsi@ifi (string-match "\\.\\." ad) ;larsi@ifi..uio (string-match "@\\." ad) ;larsi@.ifi.uio (string-match "\\.$" ad) ;larsi@ifi.uio. @@ -3956,6 +3959,7 @@ OTHER-HEADERS is an alist of header/value pairs." from subject date to cc references message-id follow-to (inhibit-point-motion-hooks t) + (message-this-is-mail t) mct never-mct mft mrt gnus-warning in-reply-to) (save-restriction (message-narrow-to-head) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index 00ab939..2c44713 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -85,26 +85,25 @@ ("multipart/related" ignore t)) "Alist of media types/test that say whether the media types can be displayed inline.") -(defvar mm-user-display-methods - '(("image/.*" . inline) - ("text/.*" . inline) - ("message/delivery-status" . inline) - ("message/rfc822" . inline))) - -(defvar mm-user-automatic-display +(defvar mm-inlined-types + '("image/.*" "text/.*" "message/delivery-status" "message/rfc822") + "List of media types that are to be displayed inline.") + +(defvar mm-automatic-display '("text/plain" "text/enriched" "text/richtext" "text/html" "text/x-vcard" "image/.*" "message/delivery-status" "multipart/.*" - "message/rfc822")) + "message/rfc822") + "A list of MIME types to be displayed automatically.") (defvar mm-attachment-override-types '("text/plain" "text/x-vcard") "Types that should have \"attachment\" ignored if they can be displayed inline.") -(defvar mm-user-automatic-external-display nil +(defvar mm-automatic-external-display nil "List of MIME type regexps that will be displayed externally automatically.") (defvar mm-discouraged-alternatives nil - "List of MIME types that are discouraged when viewing multiapart/alternative. + "List of MIME types that are discouraged when viewing multipart/alternative. Viewing agents are supposed to view the last possible part of a message, as that is supposed to be the richest. However, users may prefer other types instead, and this list says what types are most unwanted. If, @@ -226,10 +225,6 @@ to: (insert-buffer-substring obuf beg) (current-buffer)))) -(defun mm-inlinable-part-p (type) - "Say whether TYPE can be displayed inline." - (eq (mm-user-method type) 'inline)) - (defun mm-display-part (handle &optional no-default) "Display the MIME part represented by HANDLE. Returns nil if the part is removed; inline if displayed inline; @@ -239,26 +234,22 @@ external if displayed external." (if (mm-handle-displayed-p handle) (mm-remove-part handle) (let* ((type (car (mm-handle-type handle))) - (method (mailcap-mime-info type)) - (user-method (mm-user-method type))) - (if (eq user-method 'inline) + (method (mailcap-mime-info type))) + (if (mm-inlined-p type) (progn (forward-line 1) (mm-display-inline handle) 'inline) - (when (or user-method - method + (when (or method (not no-default)) - (if (and (not user-method) - (not method) + (if (and (not method) (equal "text" (car (split-string type)))) (progn (forward-line 1) (mm-insert-inline handle (mm-get-part handle)) 'inline) (mm-display-external - handle (or user-method method - 'mailcap-save-binary-file)) + handle (or method 'mailcap-save-binary-file)) 'external))))))) (defun mm-display-external (handle method) @@ -397,21 +388,20 @@ external if displayed external." (pop alist)) test)) -(defun mm-user-method (type) - "Return the user-defined method for TYPE." - (let ((methods mm-user-display-methods) +(defun mm-automatic-display-p (type) + "Say whether the user wants TYPE to be displayed automatically." + (let ((methods mm-automatic-display) method result) (while (setq method (pop methods)) - (when (string-match (car method) type) - (when (or (not (eq (cdr method) 'inline)) - (mm-inlinable-p type)) - (setq result (cdr method) - methods nil)))) + (when (and (string-match method type) + (mm-inlinable-p type)) + (setq result t + methods nil))) result)) -(defun mm-automatic-display-p (type) - "Return the user-defined method for TYPE." - (let ((methods mm-user-automatic-display) +(defun mm-inlined-p (type) + "Say whether the user wants TYPE to be displayed automatically." + (let ((methods mm-inlined-types) method result) (while (setq method (pop methods)) (when (and (string-match method type) @@ -432,7 +422,7 @@ external if displayed external." (defun mm-automatic-external-display-p (type) "Return the user-defined method for TYPE." - (let ((methods mm-user-automatic-external-display) + (let ((methods mm-automatic-external-display) method result) (while (setq method (pop methods)) (when (string-match method type) @@ -440,11 +430,6 @@ external if displayed external." methods nil))) result)) -(defun add-mime-display-method (type method) - "Make parts of TYPE be displayed with METHOD. -This overrides entries in the mailcap file." - (push (cons type method) mm-user-display-methods)) - (defun mm-destroy-part (handle) "Destroy the data structures connected to HANDLE." (when (listp handle) diff --git a/lisp/mm-encode.el b/lisp/mm-encode.el index 13f3c25..9cdc36d 100644 --- a/lisp/mm-encode.el +++ b/lisp/mm-encode.el @@ -87,7 +87,12 @@ The encoding used is returned." (encoding (or (and (listp type) (cadr (assq 'encoding type))) - (mm-content-transfer-encoding mime-type)))) + (mm-content-transfer-encoding mime-type))) + (bits (mm-body-7-or-8))) + ;; We force buffers that are 7bit to be unencoded, no matter + ;; what the preferred encoding is. + (when (eq bits '7bit) + (setq encoding bits)) (mm-encode-content-transfer-encoding encoding mime-type) encoding)) diff --git a/lisp/mm-util.el b/lisp/mm-util.el index 966cb91..774e3b0 100644 --- a/lisp/mm-util.el +++ b/lisp/mm-util.el @@ -24,27 +24,18 @@ ;;; Code: -(defvar mm-running-xemacs (string-match "XEmacs" emacs-version)) +(defconst mm-running-xemacs (string-match "XEmacs" emacs-version)) -(defvar mm-running-ntemacs - (and (not mm-running-xemacs) - (string-match "nt\\|windows" system-configuration))) - -(defvar mm-binary-coding-system +(defconst mm-binary-coding-system (if mm-running-xemacs 'binary 'no-conversion) "100% binary coding system.") -(defvar mm-text-coding-system - (cond - ((not (fboundp 'coding-system-p)) nil) - (mm-running-xemacs ;; XEmacs - 'no-conversion) - (mm-running-ntemacs ;; NTEmacs - (and (coding-system-p 'raw-text-dos) 'raw-text-dos)) - ((coding-system-p 'raw-text) 'raw-text) ;; Emacs - (t nil)) - "100% text coding system, for removing ^M.") +(defconst mm-text-coding-system + (and (fboundp 'coding-system-list) + (if (memq system-type '(windows-nt ms-dos ms-windows)) + 'raw-text-dos 'raw-text)) + "Text-safe coding system (For removing ^M).") (defvar mm-mime-mule-charset-alist '((us-ascii ascii) @@ -59,9 +50,7 @@ (iso-8859-8 hebrew-iso8859-8) (iso-8859-9 latin-iso8859-9) (viscii vietnamese-viscii-lower) - (iso-2022-jp-2 japanese-jisx0208) - (iso-2022-jp latin-jisx0201 - japanese-jisx0208-1978) + (iso-2022-jp latin-jisx0201 japanese-jisx0208 japanese-jisx0208-1978) (euc-kr korean-ksc5601) (cn-gb-2312 chinese-gb2312) (cn-big5 chinese-big5-1 chinese-big5-2) @@ -215,6 +204,8 @@ used as the line break code type of the coding system." (mapcar 'mm-mime-charset (delq 'ascii (mm-find-charset-region b e))))) + (when (memq 'iso-2022-jp-2 charsets) + (setq charsets (delq 'iso-2022-jp charsets))) (delete-duplicates charsets))) (defsubst mm-multibyte-p () @@ -299,6 +290,31 @@ See also `with-temp-file' and `with-output-to-string'." arg (apply 'concat (nconc (nreverse accum) (list (substring arg pos))))))) +(defun mm-auto-mode-alist () + "Return an `auto-mode-alist' with only the .gz (etc) thingies." + (let ((alist auto-mode-alist) + out) + (while alist + (when (listp (cdar alist)) + (push (car alist) out)) + (pop alist)) + (nreverse out))) + +(defun mm-insert-file-contents (filename &optional visit beg end replace) + "Like `insert-file-contents', q.v., but only reads in the file. +A buffer may be modified in several ways after reading into the buffer due +to advanced Emacs features, such as file-name-handlers, format decoding, +find-file-hooks, etc. + This function ensures that none of these modifications will take place." + (let ((format-alist nil) + (auto-mode-alist (mm-auto-mode-alist)) + (default-major-mode 'fundamental-mode) + (enable-local-variables nil) + (after-insert-file-functions nil) + (enable-local-eval nil) + (find-file-hooks nil)) + (insert-file-contents filename visit beg end replace))) + (provide 'mm-util) ;;; mm-util.el ends here diff --git a/lisp/mm-uu.el b/lisp/mm-uu.el index 4121aa1..e360071 100644 --- a/lisp/mm-uu.el +++ b/lisp/mm-uu.el @@ -1,13 +1,11 @@ ;;; mm-uu.el -- Return uu stuffs as mm handles -;; Copyright (c) 1998 by Shenghuo Zhu +;; Copyright (c) 1998,99 by Shenghuo Zhu ;; Author: Shenghuo Zhu -;; $Revision: 1.1.2.11 $ -;; Keywords: news postscript uudecode binhex shar +;; Keywords: postscript uudecode binhex shar forward + +;; This file is part of pgnus. -;; This file is not part of GNU Emacs, but the same permissions -;; apply. -;; ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) @@ -17,17 +15,21 @@ ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. -;; + ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: -;; + ;;; Code: +(require 'mail-parse) +(require 'message) +(require 'nnheader) +(require 'mm-decode) (require 'gnus-mailcap) (eval-and-compile @@ -61,14 +63,21 @@ (defconst mm-uu-shar-begin-line "^#! */bin/sh") (defconst mm-uu-shar-end-line "^exit 0") -(defvar mm-uu-begin-line +;;; Thanks to Edward J. Sabol and +;;; Peter von der Ah\'e +(defconst mm-uu-forward-begin-line "^-+ \\(Start of \\)?Forwarded message") +(defconst mm-uu-forward-end-line "^-+ End of forwarded message") + +(defconst mm-uu-begin-line (concat mm-uu-postscript-begin-line "\\|" mm-uu-uu-begin-line "\\|" mm-uu-binhex-begin-line "\\|" - mm-uu-shar-begin-line)) + mm-uu-shar-begin-line "\\|" + mm-uu-forward-begin-line)) -(defvar mm-uu-identifier-alist - '((?% . postscript) (?b . uu) (?: . binhex) (?# . shar))) +(defconst mm-uu-identifier-alist + '((?% . postscript) (?b . uu) (?: . binhex) (?# . shar) + (?- . forward))) (defvar mm-dissect-disposition "inline" "The default disposition of uu parts. @@ -79,7 +88,9 @@ This can be either \"inline\" or \"attachment\".") (defun mm-uu-dissect () "Dissect the current buffer and return a list of uu handles." (let (ct ctl cte charset text-start start-char end-char - type file-name end-line result text-plain-type) + type file-name end-line result text-plain-type + start-char-1 end-char-1 + (case-fold-search t)) (save-excursion (save-restriction (mail-narrow-to-head) @@ -99,9 +110,9 @@ This can be either \"inline\" or \"attachment\".") (if charset (list (cons 'charset charset))))) (while (re-search-forward mm-uu-begin-line nil t) - (beginning-of-line) - (setq start-char (point)) + (setq start-char (match-beginning 0)) (forward-line) ;; in case of failure + (setq start-char-1 (point)) (setq type (cdr (assq (aref (match-string 0) 0) mm-uu-identifier-alist))) (setq file-name @@ -114,6 +125,7 @@ This can be either \"inline\" or \"attachment\".") (intern (concat "mm-uu-" (symbol-name type) "-end-line")))) (when (re-search-forward end-line nil t) + (setq end-char-1 (match-beginning 0)) (forward-line) (setq end-char (point)) (when (or (not (eq type 'binhex)) @@ -130,6 +142,9 @@ This can be either \"inline\" or \"attachment\".") ((eq type 'postscript) (mm-make-handle (mm-uu-copy-to-buffer start-char end-char) '("application/postscript"))) + ((eq type 'forward) + (mm-make-handle (mm-uu-copy-to-buffer start-char-1 end-char-1) + '("message/rfc822"))) ((eq type 'uu) (mm-make-handle (mm-uu-copy-to-buffer start-char end-char) (list (or (and file-name @@ -174,7 +189,8 @@ This can be either \"inline\" or \"attachment\".") (mail-narrow-to-head) (goto-char (point-max))) (forward-line) - (let (type end-line result) + (let (type end-line result + (case-fold-search t)) (while (and (not result) (re-search-forward mm-uu-begin-line nil t)) (forward-line) (setq type (cdr (assq (aref (match-string 0) 0) diff --git a/lisp/mm-view.el b/lisp/mm-view.el index 9e48939..808c066 100644 --- a/lisp/mm-view.el +++ b/lisp/mm-view.el @@ -33,9 +33,6 @@ (autoload 'vcard-parse-string "vcard") (autoload 'vcard-format-string "vcard")) -;; Avoid byte compile warnings for the use of old W3. -(defvar w3-meta-content-type-charset-regexp) -(defvar w3-meta-charset-content-type-regexp) ;; Avoid byte compile warning. (defvar gnus-article-mime-handles) @@ -95,7 +92,8 @@ (buffer-substring-no-properties (match-beginning 2) (match-end 2))))) - (mm-decode-body charset) + (delete-region (point-min) (point-max)) + (insert (mm-decode-string text charset)) (save-window-excursion (save-restriction (let ((w3-strict-width width) diff --git a/lisp/mml.el b/lisp/mml.el index 16c7341..a77c615 100644 --- a/lisp/mml.el +++ b/lisp/mml.el @@ -208,7 +208,7 @@ ((cdr (assq 'buffer cont)) (insert-buffer-substring (cdr (assq 'buffer cont)))) ((setq filename (cdr (assq 'filename cont))) - (insert-file-contents filename)) + (mm-insert-file-contents filename)) (t (save-restriction (narrow-to-region (point) (point)) @@ -227,7 +227,7 @@ ((cdr (assq 'buffer cont)) (insert-buffer-substring (cdr (assq 'buffer cont)))) ((setq filename (cdr (assq 'filename cont))) - (insert-file-contents filename)) + (mm-insert-file-contents filename)) (t (insert (cdr (assq 'contents cont))))) (setq encoding (mm-encode-buffer type) @@ -300,7 +300,7 @@ ((cdr (assq 'buffer cont)) (insert-buffer-substring (cdr (assq 'buffer cont)))) ((setq filename (cdr (assq 'filename cont))) - (insert-file-contents filename)) + (mm-insert-file-contents filename)) (t (insert (cdr (assq 'contents cont))))) (goto-char (point-min)) diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el index 2c30f2d..1a5bcf8 100644 --- a/lisp/nnfolder.el +++ b/lisp/nnfolder.el @@ -90,7 +90,15 @@ time saver for large mailboxes.") (defvoo nnfolder-buffer-alist nil) (defvoo nnfolder-scantime-alist nil) (defvoo nnfolder-active-timestamp nil) -(defvoo nnfolder-file-coding-system nnmail-file-coding-system-1) +(defvoo nnfolder-active-file-coding-system + (if (memq system-type '(windows-nt ms-dos ms-windows)) + 'raw-text-dos 'raw-text)) +(defvoo nnfolder-active-file-coding-system-for-write + nnmail-active-file-coding-system) +(defvoo nnfolder-file-coding-system nnfolder-active-file-coding-system) +(defvoo nnfolder-file-coding-system-for-write nnheader-file-coding-system + "Coding system for save nnfolder file. +If NIL, NNFOLDER-FILE-CODING-SYSTEM is used.") @@ -267,15 +275,14 @@ time saver for large mailboxes.") (when group (unless (assoc group nnfolder-group-alist) (push (list group (cons 1 0)) nnfolder-group-alist) - (nnmail-save-active nnfolder-group-alist nnfolder-active-file) + (nnfolder-save-active nnfolder-group-alist nnfolder-active-file) (nnfolder-read-folder group))) t) (deffoo nnfolder-request-list (&optional server) (nnfolder-possibly-change-group nil server) (save-excursion - (let ((nnmail-file-coding-system nnmail-active-file-coding-system) - (pathname-coding-system 'binary)) + (let ((nnmail-file-coding-system nnfolder-active-file-coding-system)) (nnmail-find-file nnfolder-active-file) (setq nnfolder-group-alist (nnmail-get-active))) t)) @@ -287,7 +294,8 @@ time saver for large mailboxes.") (deffoo nnfolder-request-list-newsgroups (&optional server) (nnfolder-possibly-change-group nil server) (save-excursion - (nnmail-find-file nnfolder-newsgroups-file))) + (let ((nnmail-file-coding-system nnfolder-file-coding-system)) + (nnmail-find-file nnfolder-newsgroups-file)))) (deffoo nnfolder-request-expire-articles (articles newsgroup &optional server force) @@ -320,7 +328,7 @@ time saver for large mailboxes.") (nnheader-message 5 "Deleting articles...done")) (nnfolder-save-buffer) (nnfolder-adjust-min-active newsgroup) - (nnmail-save-active nnfolder-group-alist nnfolder-active-file) + (nnfolder-save-active nnfolder-group-alist nnfolder-active-file) (nconc rest articles)))) (deffoo nnfolder-request-move-article (article group server @@ -352,7 +360,7 @@ time saver for large mailboxes.") (when last (nnfolder-save-buffer) (nnfolder-adjust-min-active group) - (nnmail-save-active nnfolder-group-alist nnfolder-active-file)))) + (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)))) result))) (deffoo nnfolder-request-accept-article (group &optional server last) @@ -390,7 +398,7 @@ time saver for large mailboxes.") (nnfolder-save-buffer) (when nnmail-cache-accepted-message-ids (nnmail-cache-close))))) - (nnmail-save-active nnfolder-group-alist nnfolder-active-file) + (nnfolder-save-active nnfolder-group-alist nnfolder-active-file) (unless result (nnheader-report 'nnfolder "Couldn't store article")) result))) @@ -433,7 +441,7 @@ time saver for large mailboxes.") nnfolder-current-group nil nnfolder-current-buffer nil) ;; Save the active file. - (nnmail-save-active nnfolder-group-alist nnfolder-active-file) + (nnfolder-save-active nnfolder-group-alist nnfolder-active-file) t) (deffoo nnfolder-request-rename-group (group new-name &optional server) @@ -452,7 +460,7 @@ time saver for large mailboxes.") (setq nnfolder-current-buffer nil nnfolder-current-group nil) ;; Save the new group alist. - (nnmail-save-active nnfolder-group-alist nnfolder-active-file) + (nnfolder-save-active nnfolder-group-alist nnfolder-active-file) ;; We kill the buffer instead of renaming it and stuff. (kill-buffer (current-buffer)) t)))) @@ -541,14 +549,14 @@ deleted. Point is left where the deleted region was." ;; Change group. (when (and group (not (equal group nnfolder-current-group))) - (let ((pathname-coding-system 'binary)) + (let ((pathname-coding-system nnmail-pathname-coding-system)) (nnmail-activate 'nnfolder) (when (and (not (assoc group nnfolder-group-alist)) (not (file-exists-p (nnfolder-group-pathname group)))) ;; The group doesn't exist, so we create a new entry for it. (push (list group (cons 1 0)) nnfolder-group-alist) - (nnmail-save-active nnfolder-group-alist nnfolder-active-file)) + (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)) (if dont-check (setq nnfolder-current-group group @@ -578,7 +586,10 @@ deleted. Point is left where the deleted region was." ;; See whether we need to create the new file. (unless (file-exists-p file) (gnus-make-directory (file-name-directory file)) - (nnmail-write-region 1 1 file t 'nomesg)) + (let ((nnmail-file-coding-system + (or nnfolder-file-coding-system-for-write + nnfolder-file-coding-system))) + (nnmail-write-region 1 1 file t 'nomesg))) (when (setq nnfolder-current-buffer (nnfolder-read-folder group)) (set-buffer nnfolder-current-buffer) (push (list group nnfolder-current-buffer) @@ -666,7 +677,7 @@ deleted. Point is left where the deleted region was." (when inf (setq nnfolder-buffer-alist (delq inf nnfolder-buffer-alist))) (when nnfolder-group-alist - (nnmail-save-active nnfolder-group-alist nnfolder-active-file)) + (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)) (push (list group (nnfolder-read-folder group)) nnfolder-buffer-alist)))) @@ -688,7 +699,7 @@ deleted. Point is left where the deleted region was." (defun nnfolder-read-folder (group) (let* ((file (nnfolder-group-pathname group)) (buffer (set-buffer - (let ((nnmail-file-coding-system + (let ((nnheader-file-coding-system nnfolder-file-coding-system)) (nnheader-find-file-noselect file))))) (if (equal (cadr (assoc group nnfolder-scantime-alist)) @@ -772,7 +783,7 @@ deleted. Point is left where the deleted region was." (set-marker end nil) ;; Make absolutely sure that the active list reflects reality! - (nnmail-save-active nnfolder-group-alist nnfolder-active-file) + (nnfolder-save-active nnfolder-group-alist nnfolder-active-file) ;; Set the scantime for this group. (setq newscantime (visited-file-modtime)) (if scantime @@ -823,7 +834,16 @@ This command does not work if you use short group names." (when (buffer-modified-p) (run-hooks 'nnfolder-save-buffer-hook) (gnus-make-directory (file-name-directory (buffer-file-name))) - (save-buffer))) + (let ((coding-system-for-write + (or nnfolder-file-coding-system-for-write + nnfolder-file-coding-system))) + (save-buffer)))) + +(defun nnfolder-save-active (group-alist active-file) + (let ((nnmail-active-file-coding-system + (or nnfolder-active-file-coding-system-for-write + nnfolder-active-file-coding-system))) + (nnmail-save-active group-alist active-file))) (provide 'nnfolder) diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 9d67fb9..9f1bfc6 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -419,17 +419,15 @@ parameter. It should return nil, `warn' or `delete'." (defun nnmail-request-post (&optional server) (mail-send-and-exit nil)) -(defvar nnmail-file-coding-system 'binary +(defvar nnmail-file-coding-system 'raw-text "Coding system used in nnmail.") -(defvar nnmail-file-coding-system-1 - (if (string-match "nt\\|windows" system-configuration) - 'raw-text-dos 'binary) - "Another coding system used in nnmail.") - (defvar nnmail-incoming-coding-system 'raw-text "Coding system used in reading inbox") +(defvar nnmail-pathname-coding-system 'binary + "*Coding system for pathname.") + (defun nnmail-find-file (file) "Insert FILE in server buffer safely." (set-buffer nntp-server-buffer) @@ -438,15 +436,12 @@ parameter. It should return nil, `warn' or `delete'." (after-insert-file-functions nil)) (condition-case () (let ((auto-mode-alist (nnheader-auto-mode-alist)) - (pathname-coding-system nnmail-file-coding-system)) + (pathname-coding-system nnmail-pathname-coding-system)) (insert-file-contents-as-coding-system nnmail-file-coding-system file) t) (file-error nil)))) -(defvar nnmail-pathname-coding-system 'binary - "*Coding system for pathname.") - (defun nnmail-group-pathname (group dir &optional file) "Make pathname for GROUP." (concat @@ -481,7 +476,7 @@ nn*-request-list should have been called before calling this function." group-assoc))) group-assoc)) -(defvar nnmail-active-file-coding-system 'binary +(defvar nnmail-active-file-coding-system 'raw-text "*Coding system for active file.") (defun nnmail-save-active (group-assoc file-name) @@ -1459,7 +1454,8 @@ See the documentation for the variable `nnmail-split-fancy' for documentation." (defun nnmail-write-region (start end filename &optional append visit lockname) "Do a `write-region', and then set the file modes." - (let ((pathname-coding-system 'binary)) + (let ((pathname-coding-system nnmail-pathname-coding-system)) + (write-region-as-coding-system nnmail-file-coding-system start end filename append visit lockname) (set-file-modes filename nnmail-default-file-modes))) diff --git a/lisp/nnmbox.el b/lisp/nnmbox.el index 9abbe48..d2d9abe 100644 --- a/lisp/nnmbox.el +++ b/lisp/nnmbox.el @@ -29,6 +29,7 @@ (require 'nnmail) (require 'nnoo) (eval-when-compile (require 'cl)) +(eval-when-compile (require 'static)) (nnoo-declare nnmbox) @@ -59,6 +60,13 @@ (defvoo nnmbox-group-alist nil) (defvoo nnmbox-active-timestamp nil) +(defvoo nnmbox-file-coding-system + (if (memq system-type '(windows-nt ms-dos ms-windows)) + 'raw-text-dos 'raw-text)) +(defvoo nnmbox-file-coding-system-for-write nil) +(defvoo nnmbox-active-file-coding-system nnmbox-file-coding-system) +(defvoo nnmbox-active-file-coding-system-for-write nil) + ;;; Interface functions @@ -181,6 +189,25 @@ (1+ (- (cdr active) (car active))) (car active) (cdr active) group))))) +(static-if (boundp 'MULE) + (defun nnmbox-save-buffer () + (let ((output-coding-system + (or nnmbox-file-coding-system-for-write + nnmbox-file-coding-system))) + (save-buffer))) + (defun nnmbox-save-buffer () + (let ((coding-system-for-write + (or nnmbox-file-coding-system-for-write + nnmbox-file-coding-system))) + (save-buffer))) + ) + +(defun nnmbox-save-active (group-alist active-file) + (let ((nnmail-active-file-coding-system + (or nnmbox-active-file-coding-system-for-write + nnmbox-active-file-coding-system))) + (nnmail-save-active group-alist active-file))) + (deffoo nnmbox-request-scan (&optional group server) (nnmbox-possibly-change-newsgroup group server) (nnmbox-read-mbox) @@ -189,7 +216,7 @@ (lambda () (save-excursion (set-buffer nnmbox-mbox-buffer) - (save-buffer))) + (nnmbox-save-buffer))) (file-name-directory nnmbox-mbox-file) group (lambda () @@ -198,7 +225,7 @@ (set-buffer nnmbox-mbox-buffer) (goto-char (point-max)) (insert-buffer-substring in-buf))) - (nnmail-save-active nnmbox-group-alist nnmbox-active-file)))) + (nnmbox-save-active nnmbox-group-alist nnmbox-active-file)))) (deffoo nnmbox-close-group (group &optional server) t) @@ -208,12 +235,14 @@ (unless (assoc group nnmbox-group-alist) (push (list group (cons 1 0)) nnmbox-group-alist) - (nnmail-save-active nnmbox-group-alist nnmbox-active-file)) + (nnmbox-save-active nnmbox-group-alist nnmbox-active-file)) t) (deffoo nnmbox-request-list (&optional server) (save-excursion - (nnmail-find-file nnmbox-active-file) + (let ((nnmail-file-coding-system + nnmbox-active-file-coding-system)) + (nnmail-find-file nnmbox-active-file)) (setq nnmbox-group-alist (nnmail-get-active)) t)) @@ -246,7 +275,7 @@ (nnmbox-delete-mail)) (push (car articles) rest))) (setq articles (cdr articles))) - (save-buffer) + (nnmbox-save-buffer) ;; Find the lowest active article in this group. (let ((active (nth 1 (assoc newsgroup nnmbox-group-alist)))) (goto-char (point-min)) @@ -255,7 +284,7 @@ (<= (car active) (cdr active))) (setcar active (1+ (car active))) (goto-char (point-min)))) - (nnmail-save-active nnmbox-group-alist nnmbox-active-file) + (nnmbox-save-active nnmbox-group-alist nnmbox-active-file) (nconc rest articles)))) (deffoo nnmbox-request-move-article @@ -283,7 +312,7 @@ (goto-char (point-min)) (when (search-forward (nnmbox-article-string article) nil t) (nnmbox-delete-mail)) - (and last (save-buffer)))) + (and last (nnmbox-save-buffer)))) result)) (deffoo nnmbox-request-accept-article (group &optional server last) @@ -323,8 +352,8 @@ (when last (when nnmail-cache-accepted-message-ids (nnmail-cache-close)) - (nnmail-save-active nnmbox-group-alist nnmbox-active-file) - (save-buffer)))) + (nnmbox-save-active nnmbox-group-alist nnmbox-active-file) + (nnmbox-save-buffer)))) result)) (deffoo nnmbox-request-replace-article (article group buffer) @@ -336,7 +365,7 @@ nil (nnmbox-delete-mail t t) (insert-buffer-substring buffer) - (save-buffer) + (nnmbox-save-buffer) t))) (deffoo nnmbox-request-delete-group (group &optional force server) @@ -354,13 +383,13 @@ (setq found t) (nnmbox-delete-mail)) (when found - (save-buffer))))) + (nnmbox-save-buffer))))) ;; Remove the group from all structures. (setq nnmbox-group-alist (delq (assoc group nnmbox-group-alist) nnmbox-group-alist) nnmbox-current-group nil) ;; Save the active file. - (nnmail-save-active nnmbox-group-alist nnmbox-active-file) + (nnmbox-save-active nnmbox-group-alist nnmbox-active-file) t) (deffoo nnmbox-request-rename-group (group new-name &optional server) @@ -375,13 +404,13 @@ (replace-match new-ident t t) (setq found t)) (when found - (save-buffer)))) + (nnmbox-save-buffer)))) (let ((entry (assoc group nnmbox-group-alist))) (when entry (setcar entry new-name)) (setq nnmbox-current-group nil) ;; Save the new group alist. - (nnmail-save-active nnmbox-group-alist nnmbox-active-file) + (nnmbox-save-active nnmbox-group-alist nnmbox-active-file) t)) @@ -425,8 +454,10 @@ (not (buffer-name nnmbox-mbox-buffer))) (save-excursion (set-buffer (setq nnmbox-mbox-buffer - (nnheader-find-file-noselect - nnmbox-mbox-file nil t))) + (let ((nnheader-file-coding-system + nnmbox-file-coding-system)) + (nnheader-find-file-noselect + nnmbox-mbox-file nil t)))) (buffer-disable-undo))) (when (not nnmbox-group-alist) (nnmail-activate 'nnmbox)) @@ -496,7 +527,9 @@ (defun nnmbox-create-mbox () (when (not (file-exists-p nnmbox-mbox-file)) - (nnmail-write-region 1 1 nnmbox-mbox-file t 'nomesg))) + (let ((nnmail-file-coding-system + nnmbox-file-coding-system-for-write)) + (nnmail-write-region 1 1 nnmbox-mbox-file t 'nomesg)))) (defun nnmbox-read-mbox () (nnmail-activate 'nnmbox) @@ -512,8 +545,10 @@ (alist nnmbox-group-alist) start end number) (set-buffer (setq nnmbox-mbox-buffer - (nnheader-find-file-noselect - nnmbox-mbox-file nil t))) + (let ((nnheader-file-coding-system + nnmbox-file-coding-system)) + (nnheader-find-file-noselect + nnmbox-mbox-file nil t)))) (buffer-disable-undo) ;; Go through the group alist and compare against diff --git a/lisp/nnml.el b/lisp/nnml.el index e47448c..b9b2661 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -86,7 +86,7 @@ all. This may very well take some time.") (defvar nnml-nov-buffer-file-name nil) -(defvoo nnml-file-coding-system nnmail-file-coding-system-1) +(defvoo nnml-file-coding-system nnmail-file-coding-system) diff --git a/lisp/qp.el b/lisp/qp.el index e50a5a4..50fd046 100644 --- a/lisp/qp.el +++ b/lisp/qp.el @@ -24,7 +24,7 @@ ;;; Code: (defvar quoted-printable-encoding-characters - (mapcar 'identity "0123456789ABCDEF")) + (mapcar 'identity "0123456789ABCDEFabcdef")) (defun quoted-printable-decode-region (from to) "Decode quoted-printable in the region between FROM and TO." diff --git a/lisp/rfc2047.el b/lisp/rfc2047.el index a389d36..6e7512c 100644 --- a/lisp/rfc2047.el +++ b/lisp/rfc2047.el @@ -195,7 +195,14 @@ Should be called narrowed to the head of the message." (first t)) (save-restriction (narrow-to-region b e) - (mm-encode-coding-region b e mime-charset) + (when (eq encoding 'B) + ;; break into lines before encoding + (goto-char (point-min)) + (while (not (eobp)) + (goto-char (min (point-max) (+ 15 (point)))) + (unless (eobp) + (insert "\n")))) + (mm-encode-coding-region (point-min) (point-max) mime-charset) (funcall (cdr (assq encoding rfc2047-encoding-function-alist)) (point-min) (point-max)) (goto-char (point-min)) @@ -231,12 +238,13 @@ Should be called narrowed to the head of the message." (defun rfc2047-b-encode-region (b e) "Encode the header contained in REGION with the B encoding." - (base64-encode-region b e t) - (goto-char (point-min)) - (while (not (eobp)) - (goto-char (min (point-max) (+ 64 (point)))) - (unless (eobp) - (insert "\n")))) + (save-restriction + (narrow-to-region (goto-char b) e) + (while (not (eobp)) + (base64-encode-region (point) (progn (end-of-line) (point)) t) + (if (and (bolp) (eolp)) + (delete-backward-char 1)) + (forward-line)))) (defun rfc2047-q-encode-region (b e) "Encode the header contained in REGION with the Q encoding." diff --git a/lisp/smiley.el b/lisp/smiley.el index 842a037..34b416e 100644 --- a/lisp/smiley.el +++ b/lisp/smiley.el @@ -180,6 +180,8 @@ above them." (glyph (make-glyph (list (cons 'x (expand-file-name pixmap smiley-data-directory)) + (cons 'mswindows + (expand-file-name pixmap smiley-data-directory)) (cons 'tty smiley))))) (setq smiley-glyph-cache (cons (cons pixmap glyph) smiley-glyph-cache)) (set-glyph-face glyph 'default) @@ -228,7 +230,7 @@ above them." ;;;###autoload (defun smiley-buffer (&optional buffer st nd) (interactive) - (when (featurep 'x) + (when (featurep '(or x mswindows)) (save-excursion (when buffer (set-buffer buffer)) diff --git a/texi/ChangeLog b/texi/ChangeLog index 2d6386b..83731fa 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,8 @@ +1999-07-04 04:33:50 Lars Magne Ingebrigtsen + + * gnus.texi (Posting Styles): Fix. + (Mail in a Newsreader): New. + 1999-06-13 02:29:22 Lars Magne Ingebrigtsen * gnus.texi (MIME Commands): Addition. diff --git a/texi/emacs-mime.texi b/texi/emacs-mime.texi index e40194a..5e805fa 100644 --- a/texi/emacs-mime.texi +++ b/texi/emacs-mime.texi @@ -742,9 +742,10 @@ other programs to do things based on the list of @dfn{handles} that are returned as a result of this analysis. @menu -* Dissection:: Analyzing a @sc{mime} message. -* Handles:: Handle manipulations. -* Display:: Displaying handles. +* Dissection:: Analyzing a @sc{mime} message. +* Handles:: Handle manipulations. +* Display:: Displaying handles. +* Customization:: Variables that affect display. @end menu @@ -843,6 +844,58 @@ Prompt for a mailcap method to use to view the part. @end table +@node Customization +@section Customization + +@table @code + +@item mm-inline-media-tests +This is an alist where the key is a @sc{mime} type, the second element +is a function to display the part @dfn{inline} (i.e., inside Emacs), and +the third element is a form to be @code{eval}ed to say whether the part +can be displayed inline. + +This variable specifies whether a part @emph{can} be displayed inline, +and, if so, how to do it. It does not say whether parts are +@emph{actually} displayed inline. + +@item mm-inlines-types +This, on the other hand, says what types are to be displayed inline, if +they satisfy the conditions set by the variable above. It's a list of +@sc{mime} media types. + +@item mm-automatic-display +This is a list of types that are to be displayed ``automatically'', but +only if the above variable allows it. That is, only inlinable parts are +usually displayed automatically, but in the end, this is up to the +display agent that's using the @sc{mime} library. + +@item mm-attachment-override-types +Some @sc{mime} agents create parts that have a content-disposition of +@samp{attachment}. This variable allows overriding that disposition and +displaying the part inline. + +@item mm-discouraged-alternatives +List of @sc{mime} types that are discouraged when viewing +@samp{multipart/alternative}. Viewing agents are supposed to view the +last possible part of a message, as that is supposed to be the richest. +However, users may prefer other types instead, and this list says what +types are most unwanted. If, for instance, @samp{text/html} parts are +very unwanted, and @samp{text/richtech} parts are somewhat unwanted, +then the value of this variable should be set to: + +@lisp +("text/html" "text/richtext") +@end lisp + +@item mm-all-images-fit +If non-@code{nil}, all images will be deemed to fit into the buffer, +even when they don't. + +@end table + + + @node Composing @chapter Composing @cindex Composing diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 452915b..27bb6dd 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -8307,12 +8307,11 @@ Gnus $B$O30$X=P$F9T$/A4$F$N%a%C%;!<%8$K!"0l$D$+$=$l0J>e$N$=$N%5!<%P!<$N%0%k!<( $B$G$"$k;v$,$G$-$^$9!#(B $B$b$7!":n@.$7$h$&$H$7$F$$$k%a%C%;!<%8$,%K%e!<%95-;v$+%a!<%k%a%C%;!<%8$G$"(B -$B$k$+$rD4$Y$?$$$H$-$O!"(B2$B$D$NF0E*$KB+G{$5$l$kJQ?t(B -@code{message-this-is-news} $B$H(B @code{message-thiss-is-mail} $B$rD4$Y$k;v$,(B -$B$G$-$^$9!#(B +$B$k$+$rD4$Y$?$$$H$-$O!"(B2$B$D$N4X?t(B @code{message-news-p} $B$H(B +@code{message-mail-p} $B$r;H$&$3$H$K$h$C$FCN$k;v$,$G$-$^$9!#(B -@vindex message-this-is-mail -@vindex message-this-is-news +@findex message-mail-p +@findex message-news-p $B$=$7$F!"$3$l$ONc$G$9(B: @@ -8327,9 +8326,9 @@ Gnus $B$O30$X=P$F9T$/A4$F$N%a%C%;!<%8$K!"0l$D$+$=$l0J>e$N$=$N%5!<%P!<$N%0%k!<( (signature my-funny-signature-randomizer)) ((equal (system-name) "gnarly") (signature my-quote-randomizer)) - (message-this-is-news + ((message-news-p) (signature my-news-signature)) - (posting-from-work-p + ((posting-from-work-p) (signature-file "~/.work-signature") (address "user@@bar.foo") (body "You are fired.\n\nSincerely, your boss.") @@ -9226,6 +9225,7 @@ W3 $B$NG[I[$+$i(B) $B$,I,MW$K$J$j$^$9(B)$B!#$=$l$+$i%5!<%P!<$rh$j49$($k$3$H$r7hCG$7$?$J$i$P!"(B +$B$"$J$?$O$$$m$$$m$J%+%k%A%c!<%7%g%C%/$r$`$J(B +$B$i$=$N$h$&$K$b$G$-$^$9$,!"$=$l$O9|@^$jB;$N$/$?$S$lLY$1$G$9!#(B + +gnus $B$O$U$D$&F1$8C$9$?$a$KFCJL$JA`:n$O$7$^$;$s!#(B + +$B$3$N$3$H$O4{FI$N5-;v$O$9$Y$F>C$5$l$F$7$^$&$3$H$r0UL#$9$k$N$+$C$F(B? $B$=$j$c(B +$B$"$s$^$j$G$9$h$M(B! + +$B$=$&$G$O$"$j$^$;$s!#8E$$5-;v$O$$$m$s$J;EAH$_$K$h$C$F(B @dfn{expire} $B$5$l(B +$B$k$N$G$9!#%K%e!<%95-;v$O%K%e!<%9$N4IM}?M(B ($B$,4IM}$7$F$$$k%5!<%P(B) $B$K$h$C(B +$B$F(B expire $B$N=hM}$,@)8f$5$l!"%a!<%k$N(B expire $B$N=hM}$O$"$J$?$,@)8f$7$^$9!#(B +$B%a!<%k$N(B expire $B$K$D$$$F$O(B @pxref{Expiring Mail} $B$r;2>H$7$F2<$5$$!#(B + +$B$7$P$i$/%a!<%k$H%K%e!<%9$NN>J}$r;H$C$F$_$l$P!"G[Aw$N;EAH$_$N0c$$$,=EMW(B +$B$G$O$J$$$3$H$K5$$,IU$-$^$9!#Bg;v$J$N$O5-;v$r.?M?t$KMxMQ$5$l$F$$$k%m!<%+%k(B +$B%K%e!<%9%0%k!<%W$r9VFI$7$F$$$^$9!#$=$l$i$O(B NNTP $B$GG[Aw$5$l$k!"%K%e!<%9!"(B +$B$G$9!#(B + +$BG[Aw$N;EAH$_$N0c$$$O$I$&$G$b$h$$$3$H$G!"Bg;v$J$N$O5-;v$,(B @dfn{personal} + $B$J$b$N$+(B @dfn{public} $B$J$b$N$+$H$$$&$3$H$G$9!#$3$l$iFs$D$N$} \raggedbottom\raggedright \newlength{\logowidth}\setlength{\logowidth}{6.861in} @@ -14,11 +15,12 @@ \begin{tabular}{@{}l@{\hspace{\tabcolsep}}p{-\keycolwidth}@{}}}% {\end{tabular}\\} \catcode`\^=12 % allow ^ to be typed literally +\catcode`\~=12 % allow ~ to be typed literally \newcommand{\B}[1]{{\bf#1})} % bold l)etter \def\Title{ \begin{center} -{\bf\LARGE Gnus \progver\ Reference \Guide\\} +{\bf\LARGE Gnus \version\ Reference \Guide\\} %{\normalsize \Guide\ version \refver} \end{center} } @@ -30,8 +32,8 @@ \def\CopyRight{ \begin{center} Copyright \copyright\ 1995 Free Software Foundation, Inc.\\* -Copyright \copyright\ 1995 \author.\\* -Created from the Gnus manual Copyright \copyright\ 1994 Lars Magne +Copyright \copyright\ 1995-97 \author.\\* +Created from the Gnus manual Copyright \copyright\ 1994-97 Lars Magne Ingebrigtsen.\\* and the Emacs Help Bindings feature (C-h b).\\* Gnus logo copyright \copyright\ 1995 Luis Fernandes.\\* @@ -46,49 +48,50 @@ above email address. \Guide{} last edited on \date. \def\Notes{ \subsec{Notes} {\samepage -Gnus $B$OJ#;($G$9(B. $B8=:_$O(B 346 $B$b$NBPOCE*(B ($BMxMQl=j$N@aLs$N$?$a$K(B, $B$3$N(B \guide $B$G$OA4$F$N4X?t$O(B ``$B$h$jO@M}E*(B'' $B$JB+G{(B -$B$G0lEY$@$1I=<($5$l$F$$$^$9(B. $BB>$NB+G{$O5-=R$N:G=i$K3g8L$NCf$GM?$($i$l$F(B -$B$$$^$9(B. - -$BB?$/$N(B gnus $B$NL?Na$O?tCM0z?t$K1F6A$5$l$^$9(B. $BIaDL$O%a%?%-!<$r2!$7$F$$$k(B +Gnus $B$O5pBg$G$9(B. $B8=:_$O(B 633 $B$b$NBPOCE*(B ($BMxMQl(B +$B=j$N@aLs$N$?$a$K(B, $B$3$N(B \guide $B$G$OA4$F$N4X?t$O(B ``$B$h$jO@M}E*(B'' $B$JB+G{$G(B +$B0lEY$@$1I=<($5$l$F$$$^$9(B. $BB>$NB+G{$O5-=R$N:G=i$K3g8L$NCf$GM?$($i$l$F$$(B +$B$^$9(B. $B$3$N(B \guide{} $B$O%-!/$/$H$b$r$6$C$HD/$a$k(B {\em $BI,MW(B\/} $B$,$"$j$^(B +$B$9(B. + +$BB?$/$N(B gnus $B$NL?Na$O?tCM0z?t$r;H$$$^$9(B. $BIaDL$O%a%?%-!<$r2!$7$F$$$k(B $B4V$K@\F,0z?t$rF~NO$7$^$9$,(B, $B$?$$$F$$$N(B gnus $B$N%b!<%I$G$O(B, $B?t;z$,<+J,<+(B $B?H$rA^F~$7$J$$$?$a(B, $B%a%?$r;H$&I,MW$O$"$j$^$;$s(B. $B@\F,0z?t$NIU$$$?$H$-$N(B $B?6$kIq$$$O(B [$B3Q3g8L(B] $B$G=q$+$l$F$$$^$9(B. $B@\F,0z?t$O$7$P$7$P$3$l$i$r;XDj$9(B $B$k$N$KMQ$$$i$l$^$9(B: -\quad [$B5wN%(B] $B%]%$%s%H$,$I$N$/$i$$$N%*%V%8%'%/%H$rHt$P$9$+(B. +\quad [$B5wN%(B] $B%]%$%s%H$,$I$N$/$i$$$N%*%V%8%'%/%H$rHt$P$9$+(B. -\quad [$BHO0O(B] $B$I$N$/$i$$$N%*%V%8%'%/%H$,:nMQ$5$l$k$+(B ($B8=:_$NJ*$r4^$`(B). +\quad [$BHO0O(B] $B$I$N$/$i$$$N%*%V%8%'%/%H$,:nMQ$5$l$k$+(B ($B8=:_$NJ*$r4^$`(B). \quad [p/p] ``$B%W%m%;%9(B/$B@\F,0z?t$N=,47(B'': $B@\F,0z?t$,M?$($i$l$k$H(B, $B:nMQ(B -$B$9$kBP>]$N?t$r7hDj$7$^$9(B. $B%W%m%;%90u(B \# $B$G0u$NIU$$$?BP>]$,$"$l$P(B, $B$=$l(B -$B$i$,:nMQ$5$l$^$9(B. $B$=$&$G$J$1$l$P(B, $B8=:_$NBP>]$@$1$,1F6A$r]$N?t$r7hDj$7$^$9(B ($BIi$O5U8~$-$H$$$&0UL#$G$9(B). +transient-mark-mode $B$+(B zmacs-region $B$,@_Dj$5$l$F$$$F%j!<%8%g%s$,(Bactive +$B$G$"$k$H(B, $B$=$N%j!<%8%g%s$rA`:n$7$^$9(B. $B%W%m%;%90u(B \# $B$G0u$NIU$$$?BP>]$,(B +$B$"$l$P(B, $B$=$l$i$rA`:n$7$^$9(B. $B$=$&$G$J$1$l$P(B, $B8=:_$NBP>]$@$1$rA`:n$7$^$9(B. \quad [$B%l%Y%k(B] $B%0%k!<%W9VFIEY%l%Y%k$G$9(B. $BF1Ey$+$=$l$h$jDc$$%0%k!<%W$N(B -$B$_$,:nMQ$N1F6A$rDj$7$F$$$^$9(B. $BMxMQ%s%S(B \\ +8 & & $B%>%s%S(B \\ \hline -9 & & $B:o=|(B \\ +9 & & $B:o=|(B \\ \hline \end{tabular} -} +}} -\def\Marks{ -\subsec{$B0u;X<(J8;z(B} -{\samepage $BL?Na$,D>@\0u$rIU$1$k>l9g$O(B, $B3g8L$GI=<($5$l$F$$$^$9(B. \\* +\def\Marks{\subsec{$B0u;X<(J8;z(B}{\samepage +$BL?Na$,D>@\0u$rIU$1$k>l9g$O(B, $B3g8L$GI=<($5$l$F$$$^$9(B. \\* \newlength{\markcolwidth} \settowidth{\markcolwidth}{` '}% widest character \addtolength{\markcolwidth}{4\tabcolsep} @@ -122,48 +124,76 @@ C-c C-b & Gnus $B$N(B {\bf bug} $BJs9p$rAw$j$^$9(B.\\ \addtolength{\markdblcolwidth}{-2\tabcolsep} \begin{tabular}{|c|p{-\markcolwidth}|} \hline -\multicolumn{2}{|p{\markdblcolwidth}|}{{\bf ``$B4{FI(B'' $B0u(B.} +\multicolumn{2}{|p{\markdblcolwidth}|} +{{\bf ``$B4{FI(B'' $B0u(B.} $B$3$l$i$N0u$NA4$F$O35N,9T$N:G=i$N7e$K8=$l$^$9$N$G(B, $B6&B8$9$k$3$H$O$G$-(B $B$^$;$s(B.}\\ \hline ` ' & (M-u, M SPC, M c) $BL$FI(B.\\ -! & (!, M !, M t) $B2D;k(B ($B6=L#?<$$(B).\\ +! & (!, M t) $B2D;k(B ($B6=L#?<$$(B).\\ %(M !) ? & (?, M ?) $BJ]N1(B ($B%U%)%m!<%"%C%W$N$_$K6=L#$,$"$k(B).\\ -C & (C, S c) {\bf $B%-%c%s%;%k:Q$_(B} ($B<+J,<+?H$N5-;v$N$_(B.\\ +E & (E, M e) {\bf $B;~8B>C5n2DG=(B}. $B%a!<%k%0%k!<%W$G$N$_0UL#$,$"$k(B.\\ %(M x) \hline\hline -\multicolumn{2}{|p{\markdblcolwidth}|}{$B2<$N0u$O5-;v$,4{FI(B ($B@Z$i$l$?(B, +\multicolumn{2}{|p{\markdblcolwidth}|}{$B2<$N0u$O5-;v$,4{FI(B ($B@Z$i$l$?(B, $B6=L#$N$J$$(B) $B$H$$$&$3$H$r0UL#$7(B, $BBgBNF1MM$J8z2L$r;}$A$^$9(B. $B$7$+$7L?Na(B - $B$K$O$=$l$i$GL@$i$+$J0c$$$,$"$k$b$N$b$"$j$^$9(B ($BNc(B. \ M M-C-r, $BE,1~%9(B - $B%3%"(B).}\\ + $B$K$O$=$l$i$GL@$i$+$J0c$$$,$"$k$b$N$b$"$j$^$9(B ($BNc(B.{} M M-C-r, $BE,1~%9%3(B + $B%"(B).}\\ \hline r & (d, M d, M r) $B>C5n(B ($B4{FI(B ({\bf read}) $B$H$7$F0uIU$1$i$l$?(B).\\ C & (M C; M C-c; M H; c, Z c; Z n; Z C) {\bf catch-up} $B$G@Z$i$l$?(B.\\ +F & (O s; G s b) SOUP $B$5$l$F$$$k(B.\\ +G & (S C, C) $BC$7:Q$_(B ($B<+J,<+?H$N5-;v$N$_(B).\\ O & $B8E$$(B ({\bf old}) ($BA02s$N%;%C%7%g%s$G4{FI$N0u$,IU$$$?(B).\\ K & (k, M k; C-k, M K) $B@Z$i$l$?(B ({\bf Killed}).\\ +M & $B=EJ#>C5n$K$h$C$F0u$,IU$$$?(B.\\ +Q & $B$^$P$i%9%l%C%I$N:n@.Cf$KJ,$1$i$l$?(B.\\ R & $B4{FI(B ({\bf read}) ($B$N0u(B ({\bf Other marks})}\\ +\hline\hline +\multicolumn{2}{|p{\markdblcolwidth}|} +{{\bf $BB>$N0u(B}}\\ \hline -\# & (\#, M \#, M P p) $B$NM}M3$G%-%c%C%7%e$5$l$F$$$k(B).\\ A & $B1~Ez:Q$_(B ({\bf answered}) ($B%U%)%m!<%"%C%W$b$7$/$OJVEz$r$7$?(B).\\ +S & (O {\bf x}) $BJ]B8:Q$_(B {\bf Saved}.\\ + & $B=i4|%9%3%"$h$j>e(B.\\ $-$ & $B=i4|%9%3%"$h$j2<(B.\\ = & $B;R$r;}$D(B ($B$=$N2<$K%9%l%C%I$r(B). `\%e' `gnus-summary-line-format' $B$r2C$($^$9(B.\\ - \hline \end{tabular} }} -\def\GroupMode{ -\sec{$B%0%k!<%W%b!<%I(B} + +\def\General{\sec{(H) $B0lHLE*$J%3%^%s%I$H%X%k%W%3%^%s%I(B}{\samepage +$B$3$l$i$NL?Na$O$I$3$G$bF0:n$7$^$9(B. +\begin{keys}{C-c C-i} +C-c C-i & Gnus $B$N%*%s%i%$%s(B {\bf info} $B$K0\F0$7$^$9(B.\\ +C-c C-b & Gnus $B$N(B {\bf bug} $BJs9p$rAw$j$^$9(B.\\ +\end{keys} + +$B$3$l$i$NL?Na$O35N,%b!<%I$GF0:n$7(B, $B$[$H$s$I$O%0%k!<%W%b!<%I$G$bF0:n$7$^(B +$B$9(B.\\* +\begin{keys}{H d} +H d & (C-c C-d) $B$3$N%0%k!<%W$N@bL@(B ({\bf Describe}) $B$r$7$^$9(B. [$B@\(B + $BF,<-(B: $B%5!<%P!<$+$i@bL@$r:FEYFI$_9~$_$^$9(B.]\\ +H f & ange-ftp $B$r;H$C$F(B, $B$3$N%0%k!<%W$N(B {\bf FAQ} $B$ro$KC;$$%X%k%W(B ({\bf help}) $B%a%C%;!<%8$rI=<($7$^$9(B.\\ + +H i & (C-c C-i) Gnus $B$N%*%s%i%$%s(B {\bf info} $B$K0\F0$7$^$9(B.\\ +H v & Gnus $B$N%P!<%8%g%s(B ({\bf version}) $BHV9f$rI=<($7$^$9(B.\\ +\end{keys}}} + +\def\GroupMode{\sec{$B%0%k!<%W%b!<%I(B} \begin{keys}{C-c M-C-x} -RET & (=) $B$3$N%0%k!<%W$rA*Br$7$^$9(B. [$B@\F,0z?t(B: $B$I$l$/$i$$$N(B ($B4{FI(B) -$B5-;v$re$HF1$8$G$9(B.]\\ +$B?t$O>e$HF1$8$G$9(B.]\\ ? & $BHs>o$KC;$$%X%k%W%a%C%;!<%8$rM?$($^$9(B.\\ $<$ & $B%0%k!<%W%P%C%U%!$N:G=i$K0\F0$7$^$9(B.\\ $>$ & $B%0%k!<%W%P%C%U%!$N:G8e$K0\F0$7$^$9(B.\\ @@ -174,264 +204,336 @@ a & $B5-;v(B ({\bf article}) $B$r%0%k!<%W$KEj9F$7$^$9(B.\\ b & $B56(B ({\bf bogus}) $B%0%k!<%W$r8+$D$1$F>C5n$7$^$9(B.\\ c & $BA4$F$NL$0u5-;v$K4{FI$N0u$rIU$1$^$9(B ({\bf catch-up}). [p/p]\\ g & $B?7$7$$5-;v$,$"$k$+(B, $B%5!<%P!<$rD4$Y$^$9(B ({\bf get}). [$B%l%Y%k(B]\\ -j & $B%0%k!<%W$KHt$S$^$9(B ({\bf jump}).\\ +j & $B;XDj$5$l$?%0%k!<%W$KHt$S$^$9(B ({\bf jump}) ($B$b$7$+$7$?$i@Z$i(B + $B$l$F$$$k$+$b$7$l$^$;$s(B).\\ m & $BC/$+$K%a!<%k(B ({\bf mail}) $B$rAw$j$^$9(B.\\ n & $BL$FI5-;v$N$"$kC5n$9$k$K$O(B + M-x gnus-unload $B$rA0$r;XDj$7(B + $B$^$9(B).\\ C & $B$3$N%0%k!<%W$NA4$F$N5-;v$r4{FI$H$7$F0uIU$1$^$9(B ({\bf -Catch-up}). [p/p]\\ -F & $B?7$7$$%0%k!<%W$r8+$D$1(B ({\bf find}) $B$=$l$i$K:n6H$rC5n$7$^$9(B.\\ -C-c C-d & $B$3$N%0%k!<%W$N@bL@(B ({\bf description}) $B$rI=<($7$^$9(B. [$B@\F,0z(B -$B?t(B: $B%5!<%P!<$+$i:FFI$_9~$_$r$7$^$9(B.]\\ -C-c C-s & $B%0%k!<%W$rL>A0(B, $B%0%k!<%WL>(B, $B%l%Y%k(B -(`gnus-group-sort-function' $B$K0MB8$7$^$9(B) $B$GL$FI5-;v$N?t$GJB$S49$((B -({\bf Sort}) $B$^$9(B. .\\ +C-c C-s & `gnus-group-sort-function'. $B$K=>$C$FJB$S49$((B({\bf Sort}) $B$^$9(B.\\ C-c C-x & $B$3$N%0%k!<%W$NA4$F$N;~8B>C5n2DG=5-;v$r;~8B>C5n(B ({\bf expiry}) $B$N2aDx$K$+$1$^$9(B.\\ C-c M-C-x & $B$3$N%0%k!<%W$NA4$F$N5-;v$r;~8B>C5n(B ({\bf expiry}) $B$N2aDx$K(B $B$+$1$^$9(B.\\ +C-c M-g & $B40A4$KA4$F$N%0%k!<%W$r3hF02=$7$^$9(B.\\ C-x C-t & 2$B$D$N%0%k!<%W$N0LCV$rJQ99$7$^$9(B ({\bf transpose}).\\ -M-d & $BA4$F$N%0%k!<%W$N@bL@(B ({\bf describe}) $B$r$7$^$9(B. [$B@\F,0z?t(B: -$B%5!<%P!<$+$i@bL@$r:FFI$_9~$_$7$^$9(B.]\\ +M-\& & $BC5n(B ({\bf clear}) $B$7$^$9(B ($B4{FI$dB>$N(B + $B0u(B). [p/p] $B%5!<%P!<$rJQ99$7$F(B, $B5-;vHV9f$,9gCW$7$J$$$H$-$O(B + M-x gnus-group-clear-data-on-native-groups $B$r;H$C$F$/$@$5$$(B. + $B$b$7$/$O(B, $B5-;v$K:FHV9fIU$1$r$9$k$?$a$K(B M-x gnus-chage-server + $B$r;H$C$F$/$@$5$$(B. $B$G$b(B, $B$3$l$OCY$$$G$9(B.\\ +\end{keys} +\begin{keys}{C-c M-C-x} +\newlength{\keywidth}\settowidth{\keywidth}{C-c M-C-x}% +\makebox[\keywidth][l]% +{M-d} & {\em $BA4$F(B\/} $B$N%0%k!<%W$N@bL@(B ({\bf describe}) $B$r$7$^$9(B. [$B@\F,0z?t(B: +$B%5!<%P!<$+$i@bL@$r:FFI$_9~$_$7$^$9(B]\\ M-f & $B$3$N%0%k!<%W$N(B {\bf FAQ} $B$r(B (ange-ftp $B$r;H$C$F(B) $BA0$+@bL@(B ({\bf descriptions}) $B$,@55,I=8=$K9g$&A4$F$N%0%k!<(B -$B%W$r0lMwI=<($7$^$9(B.\\ -A k & (C-c C-l) $BA4$F$N:o=|$5$l$?(B ({\bf killed}) $B%0%k!<%W$r0lMwI=<((B -$B$7$^$9(B.\\ +$B%W$r0lMwI=<($7$^$9(B.\\ +A k & $BA4$F$N:o=|$5$l$?(B ({\bf killed}) $B%0%k!<%W$r0lMwI=<($7$^$9(B. +[$B@\F,<-(B: [$BHs(B]$B9XFI$r=|$/A4$F$N%0%k!<%W(B]\\ +A l & $B;XDj$5$l$?%l%Y%k(B {\bf level} $B$NL$FI%0%k!<%W$r0lMwI=<($7$^$9(B. +[$B@\F,<-(B: $B4{FI%0%k!<%W$b(B]\\ A m & $B@55,I=8=$K9g$$(B ({\bf match}), $BL$FI5-;v$r;}$D%0%k!<%W$r0lMwI=(B -$B<($7$^$9(B. [$B%l%Y%k(B]\\ +$B<($7$^$9(B. [$B%l%Y%k(B]\\ A s & (l) $BL$FI5-;v$N$"$k9VFI%0%k!<%W(B {\bf subscribed} $B$r0lMwI=<($7(B $B$^$9(B. [$B%l%Y%k(B]\\ A u & (L) $BA4$F$N%0%k!<%W(B ($BHs9VFI(B ({\bf unsubscribed}) $B$r4^$`(B) $B$r0l(B -$BMwI=<($7$^$9(B. [$B@\F,<-$,M?$($i$l$J$$$H(B, $B=i4|CM$O%l%Y%k(B7$B$G$9(B]\\ +$BMwI=<($7$^$9(B. [$B%l%Y%k(B, $B=i4|CM$O(B7]\\ A z & $B%>%s%S(B ({\bf zombie}) $B%0%k!<%W$r0lMwI=<($7$^$9(B.\\ +A A & $BA4$F$N%5!<%P!<$NA4$F$N2DG=$J3hF0(B ({\bf active}) $B%0%k!<%W$r0l(B +$BMwI=<($7$^$9(B ($BCY$$$+$b$7$l$^$;$s(B).\\ A M & $B@55,I=8=$K9g$&(B ({\bf match}) $BA4$F$N%0%k!<%W$r0lMwI=<($7$^$9(B.\\ -\end{keys} -} +A T & $B%H%T%C%/(B ({\bf topic}) $B$GJT;<$5$l$F$$$kA4$F$N3hF0%0%k!<%W$r(B +$B0lMwI=<($7$^$9(B.\\ +\end{keys}}}} -\subsec{$B30It%0%k!<%W$N:n@.(B/$BJT=8(B} -{\samepage +\def\CreateGroups{\subsec{(G) $B30It%0%k!<%W$N:n@.(B/$BJT=8(B}{\samepage $BA*BrJ}K!$O3g8L$NCf$K<($5$l$F$$$^$9(B.\\* -\begin{keys}{G m} +\begin{keys}{G DEL} +G DEL & $B$3$N%0%k!<%W$r>C5n(B ({\bf Delete}) $B$7$^$9(B. [$B@\F,<-(B: $B5-;v$b(B + {\bf $BA4$F(B} $B>C5n$7$^$9(B]\\ G a & Gnus $B%j%9%H(B {\bf archive} $B%0%k!<%W$r:n$j$^$9(B. (ange-ftp $B$rDL(B -$B$8$F$N(B nndir)\\ + $B$8$F$N(B nndir)\\ +G c & $B$3$N%0%k!<%W$N%Q%i%a!<%?$r(B {\bf customize} $B$7$^$9(B.\\ G d & $B%G%#%l%/%H%j!<(B ({\bf directory}) $B%0%k!<%W(B $B$r:n$j$^$9(B ($BA4$F$N(B -$B%U%!%$%k$OEj9F5-;v$G(B, $B%U%!%$%k$O?t;z$NL>A0$G$J$/$F$O$J$^$;$s(B). -(nndir)\\ -G e & (M-e) $B$3$N%0%k!<%W$NA*BrJ}K!$rJT=8(B ({\bf edit}) $B$7$^$9(B.\\ + $B%U%!%$%k$O?t;z$NL>A0$NEj9F$G$9(B). (nndir)\\ +G e & $B$3$N%0%k!<%W$NA*BrJ}K!$rJT=8(B ({\bf edit}) $B$7$^$9(B.\\ G f & $B%U%!%$%k(B ({\bf file}) $B$K4p$E$$$?%0%k!<%W$r:n$j$^$9(B. -(nndoc)\\ -G h & Gnus $B$N%X%k%W(B ({\bf help}) ($B@bL@(B) $B%0%k!<%W$r:n@.$7$^$9(B. -(nndoc)\\ -G k & {\bf kiboze} $B%0%k!<%W$r:n@.$7$^$9(B. (nnkiboze)\\ -G m & $B?7$7$$%0%k!<%W$r:n@.(B ({\bf make}) $B$7$^$9(B.\\ -G p & $B$3$N%0%k!<%W$N%Q%i%a!<%?(B ({\bf parameters}) $B$rJT=8$7$^$9(B.\\ -G v & $B$3$N%0%k!<%W$r2>A[(B ({\bf virtual}) $B%0%k!<%W$KDI2C$7$^$9(B. -[p/p]\\ + (nndoc: mbox, babyl, digest, mmdf, news, rnews, + clari-briefs, rfc934,rfc822, forward) [$B@\F,<-(B: $B$I$N7A<0$+$r(B + $B?dB,$7$^$;$s(B]\\ +G h & Gnus $B$N%X%k%W(B ({\bf help}) ($B@bL@(B/$B%A%e!<%H%j%"%k(B) $B%0%k!<%W$r(B + $B:n@.$7$^$9(B. (nndoc)\\ +G k & {\bf kiboze} $B%0%k!<%W$r:n@.$7$^$9(B. ($BL>A0(B, $B%0%k!<%W(B, $B@55,I=8=(B + $B$r;XDj$7$^$9(B). (nnkiboze)\\ +G m & $B?7$7$$%0%k!<%W$r:n@.(B ({\bf make}) $B$7$^$9(B ($BL>A0(B, $BJ}K!(B, $B%"%I%l(B + $B%9$r;XDj$7$^$9(B).\\ +G p & $B$3$N%0%k!<%W(B/$B%H%T%C%/$N%Q%i%a!<%?(B ({\bf parameters}) $B$rJT=8(B + $B$7$^$9(B.\\ +G r & $B$3$N%0%k!<%W$r2~L>(B ({\bf rename}) $B$7$^$9(B ($B%a!<%k%0%k!<%W$N$_(B).\\ +G v & $B$3$N%0%k!<%W$r2>A[(B ({\bf virtual}) $B%0%k!<%W$KDI2C$7$^$9(B. [p/p]\\ +G w & {\bf web} $B$K4p$$$?%0%k!<%W$r:n@.$7$^$9(B. (nnweb: dejanews, + altavista, reference) [$B@\F,<-(B: $B%0%k!<%W$r1JB3$K(B]\\ G D & $B%G%#%l%/%H%j!<(B ({\bf directory}) $B$K(B ($B0l;~(B) $B%0%k!<%W$H$7$FF~(B -$B$j$^$9(B. ($B5-;v$N4{FI$r5-O?$7$J$$(B nneething.)\\ +$B$j$^$9(B. ($B4{FI0u$r5-O?$7$J$$(B nneething.)\\ G E & $B$3$N%0%k!<%W$N>pJs(B ($BA*BrJ}K!(B, $B5-;v$N4{FI(B, $B$J$I$J$I(B) $B$rJT=8(B ({\bf edit}) $B$7$^$9(B.\\ -G V & $B?7$7$$6u$N2>A[(B ({\bf virtual}) $B%0%k!<%W$r:n@.$7$^$9(B. +G V & $B6u$N2>A[(B ({\bf virtual}) $B%0%k!<%W$r:n@.$7$^$9(B. (nnvirtual)\\ \end{keys} $B%a!<%k%0%k!<%W$r:n@.$7$F%a!<%k$r(B nnmbox, nnbabyl, nnml, nnmh, nnfolder $B$N(B1$B$D$NJ}K!$r;H$C$F(BGnus $B$GFI$`$3$H$b$G$-$^$9(B ($B%a!<%j%0%j%9%H$r9VFI$7$F(B $B$$$k$HHs>o$KLr$KN)$A$^$9(B). $B%*%s%i%$%s(B info $B$GFI$s$G$/$@$5$$(B (C-c C-i g Reading Mail RET). -} +}} -%\subsubsec{Soup Commands} -%\begin{keys}{G s w} -%G s b & gnus-group-brew-soup: not documented.\\ -%G s p & gnus-soup-pack-packet: not documented.\\ -%G s r & nnsoup-pack-replies: not documented.\\ -%G s s & gnus-soup-send-replies: not documented.\\ -%G s w & gnus-soup-save-areas: not documented.\\ -%\end{keys} +\def\SortGroups{\subsubsec{(G S) $B%0%k!<%W$NJB$S49$((B}{\samepage +$BJ#?t$N4p=`$GJB$S49$($r$9$k$?$a$K$O(B, $B$^$:$"$^$j=EMW$G$J$$$b$N$rE,MQ$7(B, +$B:G8e$K0lHV=EMW$J$b$N$rE,MQ$7$^$9(B.\\* +\begin{keys}{G P \bf x} +G S a & $B%0%k!<%WL>$r%"%k%U%!%C%Y%H=g(B ({\bf Alphabetically}) $B$KJB$S(B +$B49$($^$9(B. [$B@\F,<-(B: $B5U$N=gHV(B]\\ +G S l & $B%l%Y%k$G(B ({\bf level}) $BJB$S49$($^$9(B. [$B@\F,<-(B: $B5U$N=gHV(B]\\ +G S m & $BJ}K!(B ({\bf method}) $BL>$GJB$S49$($^$9(B. [$B@\F,<-(B: $B5U$N=gHV(B]\\ +G S r & $B3,5i(B ($B%l%Y%k$H%9%3%"(B) $B$GJB$S49$($^$9(B. [$B@\F,<-(B: $B5U$N=gHV(B]\\ +G S u & $BL$FI(B ({\bf unread}) $B5-;v$N?t$GJB$S49$($^$9(B. [$B@\F,<-(B: $B5U$N(B +$B=gHV(B]\\ +G S v & $B%0%k!<%W%9%3%"(B ($BCM(B ({\bf value})) $B$GJB$S49$($^$9(B. [$B@\F,<-(B: +$B5U$N=gHV(B]\\ +\end{keys} +$B$3$3$G(B, {\bf x} $B$O(B a,l,m,r,u,v $B$N$I$l$+$G$9(B:\\* +\begin{keys}{G P \bf x} +G P \bf x & [p/p] $B$GA*Br$5$l$?%0%k!<%W$N$_$rJB$S49$($^$9(B.\\ +T S \bf x & $B8=:_$N%H%T%C%/$N$_$GJB$S49$($^$9(B.\\ +\end{keys} +}} -\subsec{$B%0%k!<%W$N0uIU$1(B} +\def\SOUP{\subsubsec{(G s) SOUP $B%3%^%s%I(B}{\samepage +SOUP $B$OB?$/$N5-;v(B/$BJVEz$r%Q%1%C%H$KF~$l$F(B, $B0lEY$KE>Aw$7(B, $B$=$l$i$r%*%U%i(B +$B%$%s$GFI$_9~$_(B/$B:n@.$9$k%W%m%H%3%k$G$9(B. $B%Q%1%C%H$NA`:n$K$O0J2<$NL?Na$r(B +$B;H$$(B, $BFI$`$?$a$K$O(B nnsoup $BJ}K!$r;HMQ$7$F$/$@$5$$(B.\\* +\begin{keys}{G s w} +G s b & $BA4$F$N5-;v$r:-Jq$7$^$9(B (soup $B$r:n$j$^$9(B ({\bf +brew})). [p/p]\\ +G s p & $BA4$F$N(B SOUP $B%G!<%?$r(B SOUP $B%Q%1%C%H$K:-Jq(B ({\bf pack}) $B$7$^$9(B.\\ +G s r & $BA4$F$NJVEz(B ({\bf replies}) $B$rJVEz%Q%1%C%H$K:-Jq$7$^$9(B.\\ +G s s & $BJVEz%Q%1%C%H$KF~$l$?A4$F$NJVEz$rAw?.(B ({\bf send}) $B$7$^$9(B.\\ +G s w & $BA4$F$N(B SOUP $B%G!<%?%U%!%$%k$r=q$-$^$9(B ({\bf Write}).\\ +\end{keys}}} + +\def\MarkGroups{\subsec{(M) $B%0%k!<%W$N0uIU$1(B}{\samepage \begin{keys}{M m} -M m & (\#) $B$3$N%0%k!<%W$K%W%m%;%90u(B {\bf mark} $B$rIU$1$^$9(B. [$BHO0O(B]\\ -M u & (M-\#) $B$3$N%0%k!<%W$+$i%W%m%;%90u$rC5n(B {\bf -unmark}). -[$BHO0O(B]\\ +M b & $B%P%C%U%!(B ({\bf buffer}) $B$NA4$F$N%0%k!<%W$K%W%m%;%90u$rIU$1$^(B +$B$9(B.\\ +M r & $B@55,I=8=(B ({\bf regexp}) $B$K9gCW$9$kA4$F$N%0%k!<%W$K0u$rIU$1$^(B +$B$9(B.\\ +M m & (\#) $B$3$N%0%k!<%W$K0u(B {\bf mark} $B$rIU$1$^$9(B. [$BHO0O(B]\\ +M u & (M-\#) $B$3$N%0%k!<%W$+$i0u$r%s%S(B ({\bf zombie}) $B%0%k!<%W$r@Z$j$^$9(B.\\ -\end{keys} -} - -\def\SummaryMode{ -\sec{$B35N,%b!<%I(B} %{Summary and Article Modes} -\begin{keys}{SPC} -SPC & (A SPC, A n) $B5-;v$NA*Br(B, 1$B%Z!<%8%9%/%m!<%k(B, $BC5n(B ({\bf delete}) $B$7$^$9(B.\\ +T \# & $B$3$N%H%T%C%/$NA4$F$N%0%k!<%W$K$N%H%T%C%/$KJ#@=(B ({\bf copy}) $B$7$^$9(B. + [p/p]\\ +T h & $B6u$N%H%T%C%/$r1#$9(B ({\bf hiding}) $B$+$r@Z$j49$($^$9(B.\\ +T m & $B$3$N%0%k!<%W$rB>$N%H%T%C%/$K0\F0(B ({\bf move}) $B$7$^$9(B. + [p/p]\\ +T n & $B?7$7$$(B ({\bf new}) $B%H%T%C%/$r:n@.$7$^$9(B.\\ +T r & $B%H%T%C%/$r2~L>(B ({\bf rename}) $B$7$^$9(B.\\ +T C & $B@55,I=8=$K9gCW$9$kA4$F$N%0%k!<%W$r%H%T%C%/$KJ#@=(B ({\bf + copy}) $B$7$^$9(B.\\ +T D & $B$3$N%H%T%C%/$r$3$N%0%k!<%W$+$i>C5n(B ({\bf delete}) $B$7$^$9(B. [p/p]\\ +T M & $B@55,I=8=$K9gCW$9$kA4$F$N%0%k!<%W$r%H%T%C%/$K0\F0(B ({\bf + move}) $B$7$^$9(B.\\ +\end{keys}}} + +\def\SummaryMode{\sec{$B35N,%b!<%I(B}{\samepage +\begin{keys}{M-C-d} +SPC & $B5-;v$NA*Br(B, 1$B%Z!<%8%9%/%m!<%k(B, $B$ & (A $>$, A e) $B$3$N5-;v$N:G8e$K%9%/%m!<%k$7$^$9(B.\\ +$<$ & (A $<$) $B$3$N5-;v$N:G=i$K%9%/%m!<%k$7$^$9(B.\\ %(A b) +$>$ & (A $>$) $B$3$N5-;v$N:G8e$K%9%/%m!<%k$7$^$9(B.\\ %(A e) \& & $B@55,I=8=$K9g$&A4$F$N5-;v$KL?Na$rC5n(B (\bf delete}) $B$7$^$9(B (!). [p/p]\\ +B DEL & {$B%a!<%k5-;v$r%G%#%9%/$+$i>C5n(B (\bf delete}) $B$7$^$9(B. [p/p]\\ B c & $B$3$N5-;v$r$I$3$+$N%0%k!<%W$+$i%a!<%k%0%k!<%W$KJ#@=(B ({\bf copy}) $B$7$^$9(B. [p/p]\\ B e & $B$3$N%0%k!<%W$NA4$F$N;~8B>C5n2DG=5-;v$r;~8B>C5n(B ({\bf expire}) $B$7$^$9(B. [p/p]\\ -B i & $B%i%s%@%`$J%U%!%$%k$r$3$N%0%k!<%W$NC5n2DG=5-;v$r:o=|(B ({\bf expunge}) -($B%G%#%9%/$+$i>C$7$^$9(B) (!). [p/p]\\ -\end{keys} -}} +($B%G%#%9%/$+$i>C$7$^$9(B). [p/p]\\ +B C & $B$3$N5-;v$rJL$N%0%k!<%W$KAj8_Ej9F(B ({\bf crosspost}) $B$7$^$9(B.\\ +\end{keys}}} -\def\Gsubmap{ -\subsec{$B5-;vA*Br(B} -{\samepage +\def\GotoArticle{\subsec{(G) $B5-;v$X$N0\F0(B}{\samepage $B$3$l$i$NL?Na$OBP>]5-;v$rA*Br$7$^$9(B. $B@\F,0z?t$OM}2r$7$^$;$s(B. \\* \begin{keys}{G C-n} G b & (,) $B:G9b(B ({\bf best}) $B$N5-;v$K0\F0$7$^$9(B ($B:G9b%9%3%"$N$b$N$G(B -$B$9(B).\\ +$B$9(B). [GL rating]\\ G f & (.) $B:G=i(B ({\bf first}) $B$NL$FI5-;v$K0\F0$7$^$9(B.\\ +G g & $B5-;vHV9f$r?V$$$F$+$i$=$N35N,9T$X0\F0(B ({\bf go to}) $B$7$^$9(B.\\ +G j & (j) $B5-;vHV9f$r?V$$$F$+$i$=$N5-;v$XHt$S$^$9(B ({\bf jump}).\\ G l & (l) $B:G8e(B ({\bf last}) $B$N4{FI5-;v$K0\F0$7$^$9(B.\\ +G o & $B35N,$NMzNr$+$i5-;v$ro$KC;$$%X%k%W(B ({\bf help}) $B%a%C%;!<%8$rI=<($7$^$9(B.\\ -H i & (C-c C-i) Gnus $B$N%*%s%i%$%s(B {\bf info} $B$K0\F0$7$^$9(B.\\ -H v & Gnus $B$N%P!<%8%g%s(B ({\bf version}) $BHV9f$rI=<($7$^$9(B.\\ -\end{keys} -} +G M-n & (M-n) $B35N,9T$GC5n(B ({\bf +delete})) $B$N0u$rIU$1$F(B, $BC5n$7(B, $BC5n$7(B, $BA0$N5-;v$K0\F0$7$^$9(B. [$BHO0O(B]\\ +u & (!, M t) $B$3$N5-;v$K2D;k0u(B ({\bf Tick}) ($B6=L#?<$$$H$7$F0u$rIU(B +$B$1(B) $BC5n$7(B ({\bf Clear}), $BC5n$7(B, $BA0$N5-;v$K0\F0$7$^$9(B. [$BHO0O(B]\\ M ? & (?) $B$3$N5-;v$KJ]N1$N0u$rIU$1$^$9(B ($B%U%)%m!<%"%C%W$K$@$16=L#$,(B -$B$"$k(B). [$BHO0O(B]\\ +$B$"$k(B). [$BHO0O(B]\\ +* & $B%-%c%C%7%e$K5-;v$rF~$l$^$9(B ($B1JB3$K$7$^$9(B). [p/p]\\ +M-* & $B$3$N5-;v$r%-%c%C%7%e$+$iC5n2DG=(B ({\bf expirable}) $B$H$7$F0u$r(B -$BIU$1$^$9(B. [$BHO0O(B]\\ +M e & (E) $B$3$N5-;v$r;~8B>C5n2DG=(B ({\bf expirable}) $B$H$7$F0u$rIU$1(B +$B$^$9(B. [$BHO0O(B]\\ %(M x) M k & (k) $BF1$8I=Bj$NA4$F$N5-;v$r@Z$j(B ({\bf kill}), $BC5n$7$^$9(B.\\ M M-D & $BA4$F$NJ]N1(B ({\bf dormant}) $B5-;v$r1#$7$^$9(B.\\ M M-C-r & $BM?$($i$l$?0u$NA4$F$N5-;v$r>C5n$7$^$9(B.\\ -\end{keys} +\end{keys}}} -\subsubsec{$B%9%3%"$K4p$E$$$?0u(B} +\def\MarkScore{\subsubsec{(M V) $B%9%3%"(B ($BCM(B) $B$K4p$E$$$?0u(B}{\samepage \begin{keys}{M s m} M V c & $BA4$F$N9b%9%3%"$N5-;v$+$iA4$F$N0u$r>C5n(B ({\bf clear}) $B$7$^$9(B. [score]\\ @@ -455,149 +557,188 @@ M V m & $BA4$F$N9b%9%3%"$N5-;v$KM?$($i$($l$?0u(B ({\bf mark}) $B$rIU$1$^$9 [score]\\ M V u & $BA4$F$N9b%9%3%"$N5-;v$r$*$b$7$m$$$H$7$F0u$rIU$1$^$9(B ($B2D;k0u$r(B $BIU$1$^$9(B). [score]\\ -\end{keys} +\end{keys}}} -\subsubsec{$B%W%m%;%90u(B} -{\samepage +\def\ProcessMark{\subsubsec{(M P) $B%W%m%;%90u(B}{\samepage $B$3$l$i$NL?Na$O%W%m%;%90u(B \# $B$rIU$1$?$j>C5n$7$?$j$7$^$9(B. $BA`:n$7$?$$5-;v(B $B$,O"B3$7$F$$$J$$$H$-$@$1$=$l$r;H$&I,MW$,$"$k$G$7$g$&(B. $B$=$&$G$J$1$l$P?t(B $BCM0z?t$r;H$$$^$9(B.\\* \begin{keys}{M P R} M P a & $BA4$F(B ({\bf all}) $B$N5-;v$K0u$rIU$1$^$9(B ($B=gHV$K(B).\\ -M P p & (\#, M \#) $B$3$N5-;v$K0u$rIU$1$^$9(B.\\ +M P b & $B%P%C%U%!(B ({\bf buffer}) $B$K8=$l$?=g$KA4$F$N5-;v$K0u$rIU$1$^$9(B.\\ +M P i & $BA4$F$NC$7$^$9(B ({\bf unmark}).\\ +M P u & (M-\#) $B$3$N5-;v$+$i0u$r>C$7$^$9(B ({\bf unmark}).\\ %(M M-\#) +M P v & $BA4$F$N9b$$%9%3%"$N5-;v(B ($BCM(B ({\bf value})) $B$K0u$rIU$1$^$9(B. +[score]\\ +M P w & $BA4$F$N0u$r%9%?%C%/$K@Q$_$^$9(B.\\ +M P y & `M P y', `M P w' $B$d0u$r>C5n$9$kA`:n$N8e$G%9%?%C%/$+$i0u$rE=(B +$B$j(B ({\bf yank}), $BI|85$7$^$9(B.\\ M P R & $B@55,I=8=(B ({\bf regexp}) $B$K9g$&A4$F$N5-;v$K0u$rIU$1$^$9(B.\\ M P S & $B0uIU$-$N5-;v$r4^$`A4$F$NO"B3$7$?5-;v(B ({\bf series}) $B$K0u$rIU(B $B$1$^$9(B.\\ +M P T & $B$3$N(B ($BI{(B)$B%9%l%C%I(B ({\bf thread}) $B$K$"$kA4$F$N5-;v$N0u$rC$7$^$9(B ({\bf unmark}).\\ -\end{keys} -}} +\end{keys}}} -\def\Osubmap{ -\subsec{$B5-;v$N=PNO(B} +\def\OutputArticles{\subsec{(O) $B5-;v$N=PNO(B}{\samepage \begin{keys}{O m} +O b & $B5-;v$NK\BN(B ({bf body} $B$r%W%l%$%s%U%!%$%k7A<0$GJ]B8$7$^$9(B. +[p/p]\\ O f & $B$3$N5-;v$r%W%l%$%s%U%!%$%k(B ({\bf file}) $B7A<0$GJ]B8$7$^$9(B. [p/p]\\ O h & $B$3$N5-;v$r(B {\bf mh} $B%U%)%k%@!<$N7A<0$GJ]B8$7$^$9(B. [p/p]\\ O m & $B$3$N5-;v$r%a!<%k(B ({\bf mail}) $B7A<0$GJ]B8$7$^$9(B. [p/p]\\ -O o & (o, C-o) $B$3$N5-;v$r=i4|5-;vJ]B84o$r;H$C$FJ]B8$7$^$9(B. [p/p]\\ +O o & (o, C-o) $B$3$N5-;v$r(B gnus-default-article-saver $B$r;H$C$FJ]B8(B +$B$7$^$9(B. [p/p]\\ O p & ($\mid$) $B$3$N5-;v$r%7%'%k%3%^%s%I$K%Q%$%W$GAw$j$^$9(B. [p/p]\\ -O r & $B$3$N5-;v$r(B {\bf rmail} $B7A<0$GJ]B8$7$^$9(B. [p/p]\\ +O r & $B$3$N5-;v$r(B {\bf RMAIL} $B7A<0$GJ]B8$7$^$9(B. [p/p]\\ +O s & $B$3$N5-;v$r(B {\bf SOUP} $B%Q%1%C%H$r5-;v$KDI2C$7$^$9(B. [p/p]\\ O v & $B$3$N5-;v$r(B {\bf vm} $B$N7A<0$GJ]B8$7$^$9(B. [p/p]\\ -\end{keys} -} +O F & $B$3$N5-;v$r(B, $BB8:_$9$k%U%!%$%k$r>e=q$-$7$F(B, $B%W%l%$%s%U%!%$%k(B +({\bf file}) $B$KJ]B8$7$^$9(B. [p/p]\\ +\end{keys}}} -\def\Ssubmap{ -\subsec{$BEj9F(B, $B%U%)%m!<%"%C%W(B, $BJVEz(B, $BE>Aw(B, $BC$7(B} -{\samepage -$B$3$l$i$NL?Na$OJL$NEj9F$+%a!<%k%P%C%U%!$K9T$-$^$9(B. $B5-;v$rJT=8$7$?8e(B, +\def\Send{\subsec{(S) $BEj9F(B, $B%U%)%m!<%"%C%W(B, $BJVEz(B, $BE>Aw(B, $BC$7(B}{\samepage +$B$3$l$i$NL?Na$OJL$N(B Message $B%P%C%U%!$K9T$-$^$9(B. $B5-;v$rJT=8$7$?8e(B, C-c C-c $B$r2!$7$FAw?.$7$^$9(B. $B30It%0%k!<%W$K$$$F(B, $B30It%5!<%P!<$r;H$C$F5-(B -$B;v$rEj9F$7$?$$$J$i(B, C-c C-c $B$K@\F,<-$rM?$($F$/$@$5$$(B.\\* +$B;v$rEj9F$7$?$$$J$i(B, C-c C-c $B$K@\F,<-$rM?$($F$/$@$5$$(B. [$B0l;~E*(B] $B$K%5!<(B +$B%P!<$,Ej9F$G$-$J$$$J$/$F(B, $B%a!<%k$+$i%K%e!<%9$X$N%2!<%H%&%'%$$r;H$C$FEj(B +$B9F$7$?$$$H$-$K$O(B, `gnus-post-method' $B$r(B `nngateway' $B$K@_Dj$7$F$/$@$5$$(B. +\\* \begin{keys}{S O m} -S b & $B$3$N5-;v$X$N%U%)%m!<%"%C%W$NEj9F$H(B, $BJVEz$NAw?.$NN>J}(B ({\bf -both}) $B$r$7$^$9(B.\\ +%S b & $B$3$N5-;v$X$N%U%)%m!<%"%C%W$NEj9F$H(B, $BJVEz$NAw?.$NN>J}(B ({\bf +%both}) $B$r$7$^$9(B.\\ S c & (C) $B$3$N5-;v$rC$7$^$9(B ({\bf cancel}) ($B<+J,<+?H$N$b$N$K(B $B$N$_F0:n$7$^$9(B).\\ -S f & (f) $B$3$N5-;v$X$N%U%)%m!<%"%C%W(B ({\bf followup}) $B$rEj9F$7$^$9(B.\\ -S m & (m) $BC/$+JL$N?M$K%a!<%k(B {\bf mail} $B$rAw$j$^$9(B.\\ +S f & (f) $B$3$N5-;v$X$N%U%)%m!<%"%C%W(B ({\bf followup}) $B$rEj9F$7$^$9(B. +[$B@\F,<-(B: $B855-;v$r4^$a$^$9(B]\\ +S m & (m) $BC/$+$K%a!<%k(B {\bf mail} $B$rAw$j$^$9(B.\\ +S n & $B%a!<%k$GAw(B -$B$7$^$9(B.\\ +$B$7$^$9(B. [$B@\F,<-(B: $B40A4$J%X%C%@!<$r4^$a$^$9(B]\\ S o p & $B$3$N5-;v$r%K%e!<%9%0%k!<%W$X$NEj9F(B ({\bf post}) $B$H$7$FE>Aw$7(B $B$^$9(B.\\ S p & (a) $B$3$N%0%k!<%W$K5-;v$rEj9F(B ({\bf post}) $B$7$^$9(B.\\ -S r & (r) $B$3$N5-;v$NCxJ}(B ({\bf -both}) $B$r$7$^$9(B. [p/p]\\ +both}) $B$r$7$^$9(B. [p/p]\\ +S D b & $B<:GT$7$?(B ({\bf bounced}) $B%a!<%k$rAw$7$^$9(B. [p/p]\\ S O p & $B$3$l$i$NO"B3$r=8G[7A<0$K$7$F%K%e!<%9%0%k!<%W$KEj9F(B ({\bf -post}) $B$7$^$9(B. [p/p]\\ +post}) $B$7$^$9(B. [p/p]\\ S R & (R) $B855-;v$r0zMQ$7$F%a!<%k$GJVEz(B ({\bf reply}) $B$7$^$9(B. [p/p]\\ +S W & $B855-;v$r0zMQ$7$F9-$$(B ({\bf wide}) $BJVEz$r%a!<%k$GAw$j$^$9(B. +[p/p]\\ +S W-c & $B2a>jAj8_Ej9F(B ({\bf crossposting}) $B$X$NJ86g(B ({\bf complaint}) +$B$rAw?.$7$^$9(B. [p/p]\\ \end{keys} -$B$?$C$?:#Ej9F$7$?5-;v$rC$7$?$jBeBX$7$?$1$l$P(B ($B%5!<%P!<$K8=$l$kA0$K(B), -*post-news* $B%P%C%U%!$K0\F0$7$F(B, `Message-ID' $B$r(B `Cancel' $B$+(B -`Supersedes' $B$K49$($F(B C-c C-c $B$G$b$&0lEYAw?.$7$F$/$@$5$$(B. +$B$?$C$?:#Ej9F$7$?5-;v$rC$7$?$jBeBX$7$?$1$l$P(B ($B%5!<%P!<$K8=$l$kA0$K(B), +*sent \ldots* $B%P%C%U%!$K0\F0$7$F(B, `Message-ID' $B$r(B `Cancel' $B$+(B +`Supersedes' $B$K49$($F(B C-c C-c $B$G$b$&0lEYAw?.$7$F$/$@$5$$(B. }} -\def\Tsubmap{ -\subsec{$B%9%l%C%IL?Na(B} -\begin{keys}{T \#} -T \# & $B$3$N%9%l%C%I$K%W%m%;%90u$rIU$1$^$9(B.\\ -T d & $B$3$N%9%l%C%I$NC5n$7$^$9(B.\\ +T d & $B$3$N%9%l%C%I$r2<$,$j$^$9(B ({\bf down}). [$B5wN%(B]\\ T h & $B$3$N(B ($BI{(B)$B%9%l%C%I$r1#$7$^$9(B ({\bf hide}).\\ -T i & $B$3$N%9%l%C%I$N%9%3%"$r>e$2$^$9(B ({\bf increase}).\\ -T k & (M-C-k) $B8=:_$N(B ($BI{(B)$B%9%l%C%I$r@Z$j$^$9(B ({\bf kill}). [$BIi$N0z(B -$B?t(B: $B2D;k0u(B, $B@5$N0z?t(B: $B0u$r>C$9(B.]\\ -T l & (M-C-l) $B$3$N%9%l%C%I$N%9%3%"$r2<$2$^$9(B ({\bf lower}).\\ +T i & $B$3$N%9%l%C%I$N%9%3%"$r>e$2$^$9(B ({\bf increase}). [$B%9%3%"(B]\\ +T k & (M-C-k) $B8=:_$N(B ($BI{(B)$B%9%l%C%I$r@Z$j$^$9(B ({\bf kill}). [$B0z?t(B: +$BIi(B--$B2D;k0u(B, $B@5(B: $B0u$r>C$9(B.]\\ +T l & (M-C-l) $B$3$N%9%l%C%I$N%9%3%"$r2<$2$^$9(B ({\bf lower}). [$B%9%3(B +$B%"(B]\\ T n & (M-C-f) $Be$,$j$^$9(B ({\bf up}). [$B5wN%(B]\\ T H & $BA4$F$N%9%l%C%I$r1#$7$^$9(B ({\bf hide}).\\ T S & $BA4$F$N1#$5$l$?%9%l%C%I$rI=<((B ({\bf show}) $B$7$^$9(B.\\ T T & (M-C-t) $B%9%l%C%II=<($r@Z$jBX$($^$9(B ({\bf toggle}).\\ -\end{keys} -} +\end{keys}}} -\def\Vsubmap{ -\subsec{$B%9%3%"(B ($BCM(B) $BL?Na(B} -{\samepage +\def\Score{\subsec{(V) $B%9%3%"(B ($BCM(B) $BL?Na(B}{\samepage $B%*%s%i%$%s(B info $B$GE,1~%9%3%"$rFI$s$G$/$@$5$$(B.\\* \begin{keys}{\bf A p m l} V a & $BA4$F$NMWAG$r;XDj$7$F?7$7$$%9%3%"EPO?$r2C$((B ({\bf add}) $B$^$9(B.\\ -V c & $B?7$7$$%9%3%"%U%!%$%k$r8=:_$N$b$N(B ({\bf current}) $B$H$7$F;XDj(B +V c & $B?7$7$$%9%3%"%U%!%$%k$r8=:_$N$b$N(B ({\bf current}) $B$H$7$FA*Br(B $B$7$^$9(B.\\ -V e & $B8=:_$N%9%3%"$NO"A[%j%9%H$rJT=8(B ({\bf edit}) $B$7$^$9(B.\\ +V e & $B8=:_$N%9%3%"%U%!%$%k$rJT=8(B ({\bf edit}) $B$7$^$9(B.\\ V f & $B%9%3%"%U%!%$%k(B ({\bf file}) $B$rJT=8$7$F8=:_$N$b$N$H$7$^$9(B.\\ V m & $BM?$($i$l$?%9%3%"$h$j2<$N5-;v$K4{FI$K0u(B ({\bf mark}) $B$rIU$1$^(B -$B$9(B.\\ -V s & $B$3$N5-;v$N%9%3%"(B ({\bf score}) $B$r@_Dj$7$^$9(B.\\ -V t & $B$3$N5-;v$KE,MQ$5$l$?A4$F$N%9%3%"5,B'$rI=<($7$^$9(B ({\bf track}).\\ +$B$9(B. [$B%9%3%"(B]\\ +V s & $B$3$N5-;v$N%9%3%"$r@_Dj(B ({\bf set}) $B$7$^$9(B.\\ +V t & $B$3$N5-;v$KE,MQ$5$l$?A4$F$N%9%3%"5,B'$rDI@W(B ({\bf trace}) $B$7(B +$B$^$9(B.\\ V x & $BA4$F$NDc%9%3%"$N5-;v$r>C5n(B ({\bf expunge}) $B$7$^$9(B. [score]\\ -V C & $B8=:_$N%9%3%"%U%!%$%k$rMxMQ$;\\* \quad \B{l}ifetime: t)emporary, p)ermanent, i)mmediate. -2$BHVL\$NJ8;z$rBgJ8;z$GF~NO$9$k$H(B, $B;D$j$N(B2$B$D$O(B s)ubstring $B$H(B t)emporary +2/3$BHVL\$NJ8;z$rBgJ8;z$GF~NO$9$k$H(B, $B;D$j$NJ8;z$O(B s)ubstring $B$H(B t)emporary $B$G$"$k$H$_$J$5$l$^$9(B. 3$BHVL\$NJ8;z$rBgJ8;z$GF~NO$9$k$H(B, $B:G8e$N$b$N$O(B -t)emporary $B$G$"$k$H$_$J$5$l$^$9(B. +t)emporary $B$G$"$k$H$_$J$5$l$^$9(B. \quad $B%9%3%"%U%!%$%k$NJ,$J(B {\bf CRs} (^M) $B$r$r%^%&%9$G%/%j%C%/(B +$B2DG=$J%\%?%s$K(B ({\bf buttons}) $B$7$^$9(B.\\ +W c & $BM>J,$J(B {\bf CR} (^M) $B$r$^$7$/$J$$ItJ,$r1#$7$^$9(B. W W h, W W s, -W W C-c $B$r(B ({\bf signature}) $B$r1#$7$^$9(B.\\ -W W C-c & $B5-;v$N0zMQ(B ({\bf citation}) $B$r$h$j@vN}$5$l$?%"%k%4%j%:%`$r;H$C(B -$B$F1#$7$^$9(B.\\ -%\end{keys} -% -%\subsubsec{Highlight Parts of the Article} -%\begin{keys}{W H A} -W H a & $BA4$F(B ({\bf all}) $B$NItJ,$r1#$7$^$9(B. W b, W H c, W H h, W H -s. $B$r(B ({\bf signature}) $B$r%O%$%i%$%H$7$^$9(B.\\ -\end{keys} -} - -\def\Xsubmap{ -\subsec{$BO"B3$NE83+(B (Uudecode $B$J$I(B)} -{\samepage +W W C-c & $BB0@-9T$r;}$D0zMQ$5$l$?(B ({\bf cited}) $B%F%-%9%H$r1#$7$^$9(B.\\ +W W a & $BA4$F$N(B ({\bf all}) $BK>$^$7$/$J$$ItJ,$r1#$7$^$9(B.\\ +W W b & $BB`6~$J(B ({\bf boring}) $B%X%C%@!<$r1#$7$^$9(B.\\ +W W c & $B0zMQ$5$l$?(B ({\bf cited}) $B%F%-%9%H$r1#$7$^$9(B.\\ +W W h & (t, W t) $BK>$^$7$/$J$$%X%C%@!<(B ({\bf headers}) $B$r1#$7$^$9(B.\\ +W W p & {\bf PGP} $B$N%X%C%@!<$H=pL>$r1#$7$^$9(B.\\ +W W s & $B=pL>(B ({\bf signature}) $B$r1#$7$^$9(B.\\ +W W P & {\bf PEM} $B%X%C%@!<$H=pL>$r1#$7$^$9(B. +\end{keys}}} + +\def\Highlight{\subsubsec{(W H) $B5-;v$N0lItJ,$r%O%$%i%$%H$9$k(B}{\samepage +\begin{keys}{W H A} +W H a & $BA4$F(B ({\bf all}) $B$NItJ,$r1#$7$^$9(B.\\ +W H c & $B0zMQ$5$l$?(B ({\bf cited}) $B%F%-%9%H$r%O%$%i%$%H$7$^$9(B.\\ +W H h & $B%X%C%@!<(B ({\bf headers}) $B$r%O%$%i%$%H$7$^$9(B.\\ +W H s & $B=pL>(B ({\bf signature}) $B$r%O%$%i%$%H$7$^$9(B.\\ +\end{keys}}} + +\def\Extract{\subsec{(X) $BO"B3$NE83+(B (Uudecode $B$J$I(B)}{\samepage Gnus $B$O8=:_$N5-;v$,O"B3J*(B ($B$=$l$>$l$NItJ,$,I=Bj$K$*$$$F(B, $BNc$($P(B -{}1/10\dots10/10 $B$N$h$&$K(B, $B?t;z$GF1Dj$5$l$kJ#?t$NEj9F(B) $B$N0lIt$G$"$k$H(B, -$B$=$l$rG'<1$7$F$=$NO"B3J*$r$=$l$>$le$NO"B3J*(B -$B$K0u$rIU$1$Fe$NO"B3J*$K0u$rIU$1$FpJs$r%I%j%V%k%U%!%$%k$KJ]B8(B {\bf save}) $B$7$^(B +$B$9(B. [$B@\F,<-(B: .newsrc $B$bJ]B8$7$^$9(B]\\ Z C & $BA4$F$N5-;v$K4{FI$N0u$rIU$1(B ({\bf catch-up}, $B%-%c%C%A%"%C%W(B) $B=*N;$7$^$9(B.\\ Z E & (Q) $B%0%k!<%W>pJs$r99?7$;$:$K=*N;(B ({\bf Exit}) $B$7$^$9(B.\\ Z G & (M-g) $B%0%k!<%W$N?7$7$$5-;v$rD4$Y$^$9(B ({\bf get}, $BC5n$7$^$9(B]\\ +/ v & $B%9%3%"$N9b$$5-;v$K@)8B$7$^$9(B($BCM(B ({\bf value})). [$B%9%3%"(B]\\ +/ w & $BA0$N@)8B$r%9%?%C%/$+$i(B, $B$J$I$r1#$7$?$j$7$^$9(B.\\ TAB & $B%]%$%s%H$rH(B +({\bf refer}))\\ C-c C-m & $B%]%$%s%H$N6a$/$N%"%I%l%9$K%a!<%k(B ({\bf mail}) $B$GJVEz$7$^$9(B -($B@\F,0z?t(B: $B85$N5-;v$r4^$a$k(B).\\ -\end{keys} -}} +($B@\F,0z?t(B: $B5-;v$r0zMQ$7$^$9(B).\\ +\end{keys}}} -\def\ServerMode{ -\sec{$B%5!<%P!<%b!<%I(B} -{\samepage +\def\ServerMode{\sec{$B%5!<%P!<%b!<%I(B}{\samepage $B$3$N%b!<%I$KF~$k$?$a$K$O(B, $B%0%k!<%W%b!<%I$G(B `^' $B$r2!$7$F$/$@$5$$(B.\\* \begin{keys}{SPC} SPC & (RET) $B$3$N%5!<%P!<$r354Q$7$^$9(B.\\ a & $B?7$7$$%5!<%P!<$rDI2C(B {\bf add} $B$7$^$9(B.\\ c & $B$3$N%5!<%P!<$rJ#