From 670d68f89cb5f11f60b8ab0e1b19b5803c182ce8 Mon Sep 17 00:00:00 2001 From: yamaoka Date: Mon, 2 Apr 2001 02:06:54 +0000 Subject: [PATCH] Synch with Oort Gnus. --- lisp/ChangeLog | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++ lisp/gnus-art.el | 29 ------------- lisp/gnus-msg.el | 104 +++++++++++++++++++++++++++++++--------------- lisp/gnus-score.el | 46 ++++++++++++--------- lisp/gnus-srvr.el | 13 +++--- lisp/gnus-start.el | 32 +++++++++------ lisp/gnus-sum.el | 98 +++++++++++++++++++++++++++++++++----------- lisp/gnus-util.el | 15 ++++--- lisp/gnus-uu.el | 84 +++++++++++++++++++------------------ lisp/gnus-win.el | 3 +- lisp/gnus.el | 15 +++++-- lisp/message.el | 9 +++- lisp/mm-decode.el | 14 +++++-- lisp/qp.el | 2 +- sample.lpath.el | 2 +- texi/ChangeLog | 15 +++++++ texi/gnus-ja.texi | 89 +++++++++++++++++++++++++++------------- texi/gnus.texi | 86 ++++++++++++++++++++++++++------------ 18 files changed, 532 insertions(+), 240 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index a2b189e..bc9fa3c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,119 @@ +2001-04-01 00:37:14 Lars Magne Ingebrigtsen + + * gnus-score.el (gnus-score-orphans): Clean up. + + * gnus-win.el (gnus-remove-some-windows): Leave one Gnus window. + + * gnus-sum.el (gnus-summary-exit): Kill the summary buffer a bit + later. + + * gnus-start.el (gnus-close-all-servers): Find the right items to + close. + + * qp.el (quoted-printable-decode-region): Just message + malformation; don't quit. + +2001-03-31 21:00:00 ShengHuo ZHU + From Gerd Moellmann . + + * gnus.el (gnus-interactive): A typo. + +2001-03-26 Juanma Barranquero + Committed by ShengHuo ZHU + + * gnus-util.el (gnus-delete-alist): Declare it as an alias of + `assq-delete-all', if that function exists; otherwise use the old + definition. Documentation changed to match the one in + `assq-delete-all'. + +2001-04-01 00:37:14 Lars Magne Ingebrigtsen + + * gnus-start.el (gnus-close-all-servers): New function. + + * gnus-srvr.el (gnus-server-close-all-servers): Clean up. + (gnus-server-remove-denials): Clean up. + + * gnus-sum.el (gnus-summary-sort-by-original): New command and + keystroke. + +2001-03-31 02:56:55 Lars Magne Ingebrigtsen + + * message.el (message-send-news): Message where we are sending. + (message-send-mail): Ditto. + + * gnus.el (gnus-server-string): New function. + + * gnus-sum.el (gnus-summary-up-thread): Doc fix. + + * mm-decode.el (mm-default-directory): Customized. + (mm-tmp-directory): Ditto. + + * gnus-sum.el (gnus-summary-catchup-and-exit): Doc fix. + (gnus-get-newsgroup-headers): Return -1 for articles without Lines + or Chars. + (gnus-summary-line-format-alist): ?l is now a string. + (gnus-summary-prepare-threads): Output ? for unknown lines. + (gnus-summary-insert-line): Ditto. + (gnus-summary-print-article): Unbalanced parentheses. + + * gnus-msg.el (gnus-inews-do-gcc): Check group to allow it to find + out whether new stuff has arrived. + +2001-03-31 02:14:38 Alan Shutko + + * gnus-sum.el: Let printing work on ttys on Emacs. + +2001-03-31 01:11:14 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-post-news): Add an empty Newsgroups header + when forcing news. + + * gnus-sum.el (gnus-summary-mark-article-as-replied): Make into a + command. + +2001-03-31 01:04:54 Francis Litterio + + * message.el (message-set-auto-save-file-name): Don't use + asterisks under nt. + +2001-03-31 00:03:42 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-inews-insert-draft-meta-information): Allow + lists of articles. + + * gnus-uu.el (gnus-uu-digest-mail-forward): Mark as forwarded. + + * gnus-msg.el (gnus-put-message): Clean up. + (gnus-summary-reply): Mark all replied-to articles as replied to. + (gnus-inews-add-send-actions): Also mark as forwarded. + (gnus-summary-mail-forward): Mark as forwarded. + + * gnus-sum.el (gnus-summary-mark-article-as-replied): Take a list + of articles. + (gnus-summary-mark-article-as-forwarded): Ditto. + + * gnus-msg.el (gnus-summary-resend-message): Mark article as + forwarded. + (gnus-summary-mail-forward): Clean up. + + * gnus.el (gnus-article-mark-lists): Added forward. + + * gnus-sum.el (gnus-forwarded-mark): New variable. + (gnus-summary-prepare-threads): Use it. + (gnus-summary-update-secondary-mark): Ditto. + (gnus-newsgroup-forwarded): New variable. + +2001-03-30 23:13:37 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-summary-reply): Allow very wide replies. + (gnus-summary-very-wide-reply): New command and keystroke. + (gnus-summary-very-wide-reply-with-original): Ditto. + + * gnus-score.el (gnus-adaptive-word-length-limit): New variable. + (gnus-score-adaptive): Use it. + + * gnus-start.el (gnus-get-unread-articles): Clean up. + 2001-03-21 20:00:43 Lars Magne Ingebrigtsen * nnultimate.el (nnultimate-retrieve-headers): Work for other diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index 424476f..8928a7d 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -2155,34 +2155,6 @@ always hide." (looking-at "[ \t]*$")) (gnus-delete-line)))))) -(defun article-replace-with-quoted-text () - "Replace the entire article with the quoted text in the article." - (interactive) - (unless gnus-cite-prefix-alist - (error "No quoted text in the article")) - (gnus-summary-show-article t) - (save-excursion - (set-buffer gnus-article-buffer) - (gnus-cite-parse-maybe t) - (let ((prefix (concat "^" (caar gnus-cite-prefix-alist))) - (buffer-read-only nil) - (body nil)) - (dolist (line (sort (copy-sequence (cdar gnus-cite-prefix-alist)) '<)) - (save-excursion - (set-buffer gnus-original-article-buffer) - (goto-char (point-min)) - (forward-line (1- line)) - (push (buffer-substring (point) (progn (forward-line 1) (point))) - body))) - (article-goto-body) - (forward-line -1) - (delete-region (point) (point-max)) - (mapcar #'insert (mapcar #'string-as-unibyte (nreverse body))) - (goto-char (point-min)) - (while (re-search-forward prefix nil t) - (replace-match "" t t)) - (gnus-article-prepare-display)))) - (defun article-narrow-to-head () "Narrow the buffer to the head of the message. Point is left at the beginning of the narrowed-to region." @@ -3117,7 +3089,6 @@ If variable `gnus-use-long-file-name' is non-nil, it is article-strip-trailing-space article-strip-blank-lines article-strip-all-blank-lines - article-replace-with-quoted-text article-date-local article-date-english article-date-iso8601 diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index f0a4725..0b2a392 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -206,6 +206,8 @@ Thank you for your help in stamping out bugs. "R" gnus-summary-reply-with-original "w" gnus-summary-wide-reply "W" gnus-summary-wide-reply-with-original + "v" gnus-summary-very-wide-reply + "V" gnus-summary-very-wide-reply-with-original "n" gnus-summary-followup-to-mail "N" gnus-summary-followup-to-mail-with-original "m" gnus-summary-mail-other-window @@ -231,7 +233,7 @@ Thank you for your help in stamping out bugs. (group (make-symbol "gnus-setup-message-group"))) `(let ((,winconf (current-window-configuration)) (,buffer (buffer-name (current-buffer))) - (,article (and gnus-article-reply (gnus-summary-article-number))) + (,article gnus-article-reply) (,group gnus-newsgroup-name) (message-header-setup-hook (copy-sequence message-header-setup-hook)) @@ -246,7 +248,7 @@ Thank you for your help in stamping out bugs. (unwind-protect (progn ,@forms) - (gnus-inews-add-send-actions ,winconf ,buffer ,article) + (gnus-inews-add-send-actions ,winconf ,buffer ,article ,config) (gnus-inews-insert-draft-meta-information ,group ,article) (setq gnus-message-buffer (current-buffer)) (set (make-local-variable 'gnus-message-group-art) @@ -264,7 +266,11 @@ Thank you for your help in stamping out bugs. (not (message-fetch-field gnus-draft-meta-information-header))) (goto-char (point-min)) (insert gnus-draft-meta-information-header ": (\"" group "\" " - (if article (number-to-string article) "\"\"") ")\n")))) + (if article (number-to-string + (if (listp article) + (car article) + article)) "\"\"") + ")\n")))) ;;;###autoload (defun gnus-msg-mail (&optional to subject other-headers continue @@ -319,7 +325,7 @@ Gcc: header for archiving purposes." (symbol-value (car elem)))) (throw 'found (cons (cadr elem) (caddr elem))))))))) -(defun gnus-inews-add-send-actions (winconf buffer article) +(defun gnus-inews-add-send-actions (winconf buffer article &optional config) (make-local-hook 'message-sent-hook) (add-hook 'message-sent-hook (if gnus-agent 'gnus-agent-possibly-do-gcc 'gnus-inews-do-gcc) nil t) @@ -338,7 +344,9 @@ Gcc: header for archiving purposes." (save-excursion (set-buffer ,buffer) ,(when article - `(gnus-summary-mark-article-as-replied ,article)))) + (if (eq config 'forward) + `(gnus-summary-mark-article-as-forwarded ',article) + `(gnus-summary-mark-article-as-replied ',article))))) 'send)) (put 'gnus-setup-message 'lisp-indent-function 1) @@ -584,7 +592,7 @@ header line with the old Message-ID." force-news) (when article-buffer (gnus-copy-article-buffer)) - (let ((gnus-article-reply article-buffer) + (let ((gnus-article-reply (and article-buffer (gnus-summary-article-number))) (add-to-list gnus-add-to-list)) (gnus-setup-message (cond (yank 'reply-yank) (article-buffer 'reply) @@ -619,7 +627,7 @@ header line with the old Message-ID." (message-news (or to-group group)) (set-buffer gnus-article-copy) (gnus-msg-treat-broken-reply-to) - (message-followup (if (or newsgroup-p force-news) nil to-group))) + (message-followup (if (or newsgroup-p force-news) "" to-group))) ;; The is mail. (if post (progn @@ -768,21 +776,39 @@ MAX-COLUMN the optional second argument if it is specified, the return value ;;; Mail reply commands of Gnus summary mode -(defun gnus-summary-reply (&optional yank wide) - "Start composing a reply mail to the current message. +(defun gnus-summary-reply (&optional yank wide very-wide) + "Start composing a mail reply to the current message. If prefix argument YANK is non-nil, the original article is yanked -automatically." +automatically. +If WIDE, make a wide reply. +If VERY-WIDE, make a very wide reply." (interactive (list (and current-prefix-arg (gnus-summary-work-articles 1)))) ;; Stripping headers should be specified with mail-yank-ignored-headers. (when yank (gnus-summary-goto-subject (car yank))) - (let ((gnus-article-reply t)) + (let ((gnus-article-reply (or yank (gnus-summary-article-number))) + (headers "")) (gnus-setup-message (if yank 'reply-yank 'reply) - (gnus-summary-select-article) + (if (not very-wide) + (gnus-summary-select-article) + (dolist (article very-wide) + (gnus-summary-select-article nil nil nil article) + (save-excursion + (set-buffer (gnus-copy-article-buffer)) + (gnus-msg-treat-broken-reply-to) + (save-restriction + (message-narrow-to-head) + (setq headers (concat headers (buffer-string))))))) (set-buffer (gnus-copy-article-buffer)) (gnus-msg-treat-broken-reply-to) + (save-restriction + (message-narrow-to-head) + (when very-wide + (erase-buffer) + (insert headers)) + (goto-char (point-max))) (message-reply nil wide) (when yank (gnus-inews-yank-articles yank))))) @@ -808,6 +834,22 @@ The original article will be yanked." (interactive "P") (gnus-summary-reply-with-original n t)) +(defun gnus-summary-very-wide-reply (&optional yank) + "Start composing a very wide reply mail to the current message. +If prefix argument YANK is non-nil, the original article is yanked +automatically." + (interactive + (list (and current-prefix-arg + (gnus-summary-work-articles 1)))) + (gnus-summary-reply yank t (gnus-summary-work-articles yank))) + +(defun gnus-summary-very-wide-reply-with-original (n) + "Start composing a very wide reply mail to the current message. +The original article will be yanked." + (interactive "P") + (gnus-summary-reply + (gnus-summary-work-articles n) t (gnus-summary-work-articles n))) + (defun gnus-summary-mail-forward (&optional full-headers post) "Forward the current message to another user. If FULL-HEADERS (the prefix), include full headers when forwarding." @@ -891,7 +933,8 @@ forward those articles instead." (gnus-summary-select-article nil nil nil article) (save-excursion (set-buffer gnus-original-article-buffer) - (message-resend address))))) + (message-resend address)) + (gnus-summary-mark-article-as-forwarded article)))) (defun gnus-summary-post-forward (&optional full-headers) "Forward the current article to a newsgroup. @@ -1001,35 +1044,32 @@ The current group name will be inserted at \"%s\".") (let ((reply gnus-article-reply) (winconf gnus-prev-winconf) (group gnus-newsgroup-name)) + (unless (and group + (not (gnus-group-read-only-p group))) + (setq group (read-string "Put in group: " nil (gnus-writable-groups)))) - (or (and group (not (gnus-group-read-only-p group))) - (setq group (read-string "Put in group: " nil - (gnus-writable-groups)))) (when (gnus-gethash group gnus-newsrc-hashtb) (error "No such group: %s" group)) - (save-excursion (save-restriction (widen) (message-narrow-to-headers) - (let (gnus-deletable-headers) - (if (message-news-p) - (message-generate-headers message-required-news-headers) - (message-generate-headers message-required-mail-headers))) + (let ((gnus-deletable-headers nil)) + (message-generate-headers + (if (message-news-p) + message-required-news-headers + message-required-mail-headers))) (goto-char (point-max)) (insert "Gcc: " group "\n") (widen))) - (gnus-inews-do-gcc) - - (when (get-buffer gnus-group-buffer) - (when (gnus-buffer-exists-p (car-safe reply)) - (set-buffer (car reply)) - (and (cdr reply) - (gnus-summary-mark-article-as-replied - (cdr reply)))) - (when winconf - (set-window-configuration winconf))))) + (when (and (get-buffer gnus-group-buffer) + (gnus-buffer-exists-p (car-safe reply)) + (cdr reply)) + (set-buffer (car reply)) + (gnus-summary-mark-article-as-replied (cdr reply))) + (when winconf + (set-window-configuration winconf)))) (defun gnus-article-mail (yank) "Send a reply to the address near point. @@ -1248,7 +1288,7 @@ this is a reply." (while (setq group (pop groups)) (gnus-check-server (setq method (gnus-inews-group-method group))) - (unless (gnus-request-group group t method) + (unless (gnus-request-group group nil method) (gnus-request-create-group group method)) (save-excursion (nnheader-set-temp-buffer " *acc*") diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index 3947cfd..8abdfac 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -233,6 +233,11 @@ This variable allows the same syntax as `gnus-home-score-file'." (symbol :tag "other")) (integer :tag "Score")))))) +(defcustom gnus-adaptive-word-length-limit nil + "*Words of a length lesser than this limit will be ignored when doing adaptive scoring." + :group 'gnus-score-adapt + :type 'integer) + (defcustom gnus-ignored-adaptive-words nil "List of words to be ignored when doing adaptive word scoring." :group 'gnus-score-adapt @@ -1551,21 +1556,19 @@ A root is an article with no references. An orphan is an article which has references, but is not connected via its references to a root article. This function finds all the orphans, and adjusts their score in GNUS-NEWSGROUP-SCORED by SCORE." - (let ((threads (gnus-make-threads))) - ;; gnus-make-threads produces a list, where each entry is a "thread" - ;; as described in the gnus-score-lower-thread docs. This function - ;; will be called again (after limiting has been done) if the display - ;; is threaded. It would be nice to somehow save this info and use - ;; it later. - (while threads - (let* ((thread (car threads)) - (id (aref (car thread) gnus-score-index))) - ;; If the parent of the thread is not a root, lower the score of - ;; it and its descendants. Note that some roots seem to satisfy - ;; (eq id nil) and some (eq id ""); not sure why. - (if (and id (not (string= id ""))) - (gnus-score-lower-thread thread score))) - (setq threads (cdr threads))))) + ;; gnus-make-threads produces a list, where each entry is a "thread" + ;; as described in the gnus-score-lower-thread docs. This function + ;; will be called again (after limiting has been done) if the display + ;; is threaded. It would be nice to somehow save this info and use + ;; it later. + (dolist (thread (gnus-make-threads)) + (let ((id (aref (car thread) gnus-score-index))) + ;; If the parent of the thread is not a root, lower the score of + ;; it and its descendants. Note that some roots seem to satisfy + ;; (eq id nil) and some (eq id ""); not sure why. + (when (and id + (not (string= id ""))) + (gnus-score-lower-thread thread score))))) (defun gnus-score-integer (scores header now expire &optional trace) (let ((gnus-score-index (nth 1 (assoc header gnus-header-index))) @@ -2310,11 +2313,14 @@ score in GNUS-NEWSGROUP-SCORED by SCORE." ;; Put the word and score into the hashtb. (setq val (gnus-gethash (setq word (match-string 0)) hashtb)) - (setq val (+ score (or val 0))) - (if (and gnus-adaptive-word-minimum - (< val gnus-adaptive-word-minimum)) - (setq val gnus-adaptive-word-minimum)) - (gnus-sethash word val hashtb)) + (when (or (not gnus-adaptive-word-length-limit) + (> (length word) + gnus-adaptive-word-length-limit)) + (setq val (+ score (or val 0))) + (if (and gnus-adaptive-word-minimum + (< val gnus-adaptive-word-minimum)) + (setq val gnus-adaptive-word-minimum)) + (gnus-sethash word val hashtb))) (erase-buffer)))) (set-syntax-table syntab)) ;; Make all the ignorable words ignored. diff --git a/lisp/gnus-srvr.el b/lisp/gnus-srvr.el index 896464d..9d5648f 100644 --- a/lisp/gnus-srvr.el +++ b/lisp/gnus-srvr.el @@ -407,9 +407,8 @@ The following commands are available: (defun gnus-server-close-all-servers () "Close all servers." (interactive) - (let ((servers gnus-inserted-opened-servers)) - (while servers - (gnus-server-close-server (car (pop servers)))))) + (dolist (server gnus-inserted-opened-servers) + (gnus-server-close-server (car server)))) (defun gnus-server-deny-server (server) "Make sure SERVER will never be attempted opened." @@ -425,11 +424,9 @@ The following commands are available: (defun gnus-server-remove-denials () "Make all denied servers into closed servers." (interactive) - (let ((servers gnus-opened-servers)) - (while servers - (when (eq (nth 1 (car servers)) 'denied) - (setcar (nthcdr 1 (car servers)) 'closed)) - (setq servers (cdr servers)))) + (dolist (server gnus-opened-servers) + (when (eq (nth 1 server) 'denied) + (setcar (nthcdr 1 server) 'closed))) (gnus-server-list-servers)) (defun gnus-server-copy-server (from to) diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 62cbfdd..06dbe70 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -625,6 +625,12 @@ the first newsgroup." (setq variables (cdr variables)))) (setq files (cdr files))))) +(defun gnus-close-all-servers () + "Close all servers." + (interactive) + (dolist (server gnus-opened-servers) + (gnus-close-server (car server)))) + (defun gnus-clear-system () "Clear all variables and buffers." ;; Clear gnus variables. @@ -1558,7 +1564,7 @@ newsgroup." gnus-activate-foreign-newsgroups) (t 0)) level)) - scanned-methods info group active method retrievegroups) + scanned-methods info group active method retrieve-groups) (gnus-message 5 "Checking new news...") (while newsrc @@ -1605,10 +1611,10 @@ newsgroup." (if (gnus-check-backend-function 'retrieve-groups group) ;; if server support gnus-retrieve-groups we push ;; the group onto retrievegroups for later checking - (if (assoc method retrievegroups) - (setcdr (assoc method retrievegroups) - (cons group (cdr (assoc method retrievegroups)))) - (push (list method group) retrievegroups)) + (if (assoc method retrieve-groups) + (setcdr (assoc method retrieve-groups) + (cons group (cdr (assoc method retrieve-groups)))) + (push (list method group) retrieve-groups)) ;; hack: `nnmail-get-new-mail' changes the mail-source depending ;; on the group, so we must perform a scan for every group ;; if the users has any directory mail sources. @@ -1641,21 +1647,21 @@ newsgroup." ;; unread articles and stuff. (gnus-set-active group nil) (let ((tmp (gnus-gethash group gnus-newsrc-hashtb))) - (if tmp (setcar tmp t)))))) + (when tmp + (setcar tmp t)))))) ;; iterate through groups on methods which support gnus-retrieve-groups ;; and fetch a partial active file and use it to find new news. - (while retrievegroups - (let* ((mg (pop retrievegroups)) - (method (or (car mg) gnus-select-method)) - (groups (cdr mg))) + (dolist (rg retrieve-groups) + (let ((method (or (car rg) gnus-select-method)) + (groups (cdr rg))) (when (gnus-check-server method) ;; Request that the backend scan its incoming messages. (when (gnus-check-backend-function 'request-scan (car method)) (gnus-request-scan nil method)) - (gnus-read-active-file-2 (mapcar (lambda (group) - (gnus-group-real-name group)) - groups) method) + (gnus-read-active-file-2 + (mapcar (lambda (group) (gnus-group-real-name group)) groups) + method) (dolist (group groups) (cond ((setq active (gnus-active (gnus-info-group diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 4f5f4b8..a0358ff 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -425,7 +425,7 @@ this variable specifies group names." :type 'character) (defcustom gnus-souped-mark ?F - "*Mark used for killed articles." + "*Mark used for souped articles." :group 'gnus-summary-marks :type 'character) @@ -449,6 +449,11 @@ this variable specifies group names." :group 'gnus-summary-marks :type 'character) +(defcustom gnus-forwarded-mark ?O + "*Mark used for articles that have been forwarded." + :group 'gnus-summary-marks + :type 'character) + (defcustom gnus-cached-mark ?* "*Mark used for articles that are in the cache." :group 'gnus-summary-marks @@ -1060,7 +1065,7 @@ when prompting the user for which type of files to save." (?M ,(macroexpand '(mail-header-id gnus-tmp-header)) ?s) (?r ,(macroexpand '(mail-header-references gnus-tmp-header)) ?s) (?c (or (mail-header-chars gnus-tmp-header) 0) ?d) - (?L gnus-tmp-lines ?d) + (?L gnus-tmp-lines ?s) (?I gnus-tmp-indentation ?s) (?T (if (= gnus-tmp-level 0) "" (make-string (frame-width) ? )) ?s) (?R gnus-tmp-replied ?c) @@ -1162,6 +1167,9 @@ end position and text.") (defvar gnus-newsgroup-replied nil "List of articles that have been replied to in the current newsgroup.") +(defvar gnus-newsgroup-forwarded nil + "List of articles that have been forwarded in the current newsgroup.") + (defvar gnus-newsgroup-expirable nil "List of articles in the current newsgroup that can be expired.") @@ -1222,7 +1230,8 @@ end position and text.") gnus-newsgroup-auto-expire gnus-newsgroup-unreads gnus-newsgroup-unselected gnus-newsgroup-marked gnus-newsgroup-reads gnus-newsgroup-saved - gnus-newsgroup-replied gnus-newsgroup-expirable + gnus-newsgroup-replied gnus-newsgroup-forwarded + gnus-newsgroup-expirable gnus-newsgroup-processable gnus-newsgroup-killed gnus-newsgroup-downloadable gnus-newsgroup-undownloaded gnus-newsgroup-unsendable @@ -1456,6 +1465,7 @@ increase the score of each group you read." "\C-c\C-s\C-s" gnus-summary-sort-by-subject "\C-c\C-s\C-d" gnus-summary-sort-by-date "\C-c\C-s\C-i" gnus-summary-sort-by-score + "\C-c\C-s\C-o" gnus-summary-sort-by-original "=" gnus-summary-expand-window "\C-x\C-s" gnus-summary-reselect-current-group "\M-g" gnus-summary-rescan-group @@ -2064,7 +2074,8 @@ increase the score of each group you read." ["Sort by date" gnus-summary-sort-by-date t] ["Sort by score" gnus-summary-sort-by-score t] ["Sort by lines" gnus-summary-sort-by-lines t] - ["Sort by characters" gnus-summary-sort-by-chars t]) + ["Sort by characters" gnus-summary-sort-by-chars t] + ["Original sort" gnus-summary-sort-by-original t]) ("Help" ["Fetch group FAQ" gnus-summary-fetch-faq t] ["Describe group" gnus-summary-describe-group t] @@ -2888,7 +2899,9 @@ buffer that was in action when the last article was fetched." (when (string= gnus-tmp-name "") (setq gnus-tmp-name gnus-tmp-from)) (unless (numberp gnus-tmp-lines) - (setq gnus-tmp-lines 0)) + (setq gnus-tmp-lines -1)) + (when (= gnus-tmp-lines -1) + (setq gnus-tmp-lines "?")) (gnus-put-text-property-excluding-characters-with-faces (point) (progn (eval gnus-summary-line-format-spec) (point)) @@ -4256,6 +4269,8 @@ or a straight list of headers." gnus-cached-mark) ((memq number gnus-newsgroup-replied) gnus-replied-mark) + ((memq number gnus-newsgroup-forwarded) + gnus-forwarded-mark) ((memq number gnus-newsgroup-saved) gnus-saved-mark) (t gnus-no-mark)) @@ -4274,7 +4289,9 @@ or a straight list of headers." (when (string= gnus-tmp-name "") (setq gnus-tmp-name gnus-tmp-from)) (unless (numberp gnus-tmp-lines) - (setq gnus-tmp-lines 0)) + (setq gnus-tmp-lines -1)) + (when (= gnus-tmp-lines -1) + (setq gnus-tmp-lines "?")) (gnus-put-text-property (point) (progn (eval gnus-summary-line-format-spec) (point)) @@ -5061,15 +5078,15 @@ The resulting hash table is returned, or nil if no Xrefs were found." (goto-char p) (if (search-forward "\nchars: " nil t) (if (numberp (setq chars (ignore-errors (read cur)))) - chars 0) - 0)) + chars -1) + -1)) ;; Lines. (progn (goto-char p) (if (search-forward "\nlines: " nil t) (if (numberp (setq lines (ignore-errors (read cur)))) - lines 0) - 0)) + lines -1) + -1)) ;; Xref. (progn (goto-char p) @@ -5735,7 +5752,9 @@ If FORCE (the prefix), also save the .newsrc file(s)." (setq gnus-article-current nil)) (set-buffer buf) (if (not gnus-kill-summary-on-exit) - (gnus-deaden-summary) + (progn + (gnus-deaden-summary) + (setq mode nil)) ;; We set all buffer-local variables to nil. It is unclear why ;; this is needed, but if we don't, buffer-local variables are ;; not garbage-collected, it seems. This would the lead to en @@ -5750,10 +5769,7 @@ If FORCE (the prefix), also save the .newsrc file(s)." (set-buffer gnus-group-buffer) (gnus-summary-clear-local-variables) (let ((gnus-summary-local-variables gnus-newsgroup-variables)) - (gnus-summary-clear-local-variables)) - ;; Return to group mode buffer. - (when (eq mode 'gnus-summary-mode) - (gnus-kill-buffer buf))) + (gnus-summary-clear-local-variables))) (setq gnus-current-select-method gnus-select-method) (pop-to-buffer gnus-group-buffer) (if (not quit-config) @@ -5768,6 +5784,9 @@ If FORCE (the prefix), also save the .newsrc file(s)." (set-window-start (selected-window) (point)) (goto-char group-point))) (gnus-handle-ephemeral-exit quit-config)) + ;; Return to group mode buffer. + (when (eq mode 'gnus-summary-mode) + (gnus-kill-buffer buf)) ;; Clear the current group name. (unless quit-config (setq gnus-newsgroup-name nil))))) @@ -7655,7 +7674,9 @@ to save in." (mail-header-date gnus-current-headers) ")")))) (gnus-run-hooks 'gnus-ps-print-hook) (save-excursion - (ps-spool-buffer-with-faces)))) + (if window-system + (ps-spool-buffer-with-faces) + (ps-spool-buffer))))) (kill-buffer buffer)))) (gnus-summary-remove-process-mark article)) (ps-despool filename)) @@ -8546,7 +8567,7 @@ the actual number of articles unmarked is returned." (error "No such mark type: %s" type) (setq var (intern (format "gnus-newsgroup-%s" type))) (set var (cons article (symbol-value var))) - (if (memq type '(processable cached replied saved)) + (if (memq type '(processable cached replied forwarded saved)) (gnus-summary-update-secondary-mark article) ;;; !!! This is bobus. We should find out what primary ;;; !!! mark we want to set. @@ -8560,11 +8581,25 @@ the actual number of articles marked is returned." (gnus-summary-mark-forward n gnus-expirable-mark)) (defun gnus-summary-mark-article-as-replied (article) - "Mark ARTICLE replied and update the summary line." - (push article gnus-newsgroup-replied) - (let ((buffer-read-only nil)) - (when (gnus-summary-goto-subject article nil t) - (gnus-summary-update-secondary-mark article)))) + "Mark ARTICLE as replied to and update the summary line. +ARTICLE can also be a list of articles." + (interactive (list (gnus-summary-article-number))) + (let ((articles (if (listp article) article (list article)))) + (dolist (article articles) + (push article gnus-newsgroup-replied) + (let ((buffer-read-only nil)) + (when (gnus-summary-goto-subject article nil t) + (gnus-summary-update-secondary-mark article)))))) + +(defun gnus-summary-mark-article-as-forwarded (article) + "Mark ARTICLE as forwarded and update the summary line. +ARTICLE can also be a list of articles." + (let ((articles (if (listp article) article (list article)))) + (dolist (article articles) + (push article gnus-newsgroup-forwarded) + (let ((buffer-read-only nil)) + (when (gnus-summary-goto-subject article nil t) + (gnus-summary-update-secondary-mark article)))))) (defun gnus-summary-set-bookmark (article) "Set a bookmark in current article." @@ -8790,6 +8825,8 @@ Iff NO-EXPIRE, auto-expiry will be inhibited." gnus-cached-mark) ((memq article gnus-newsgroup-replied) gnus-replied-mark) + ((memq article gnus-newsgroup-forwarded) + gnus-forwarded-mark) ((memq article gnus-newsgroup-saved) gnus-saved-mark) (t gnus-no-mark)) @@ -9095,7 +9132,8 @@ If ALL is non-nil, also mark ticked and dormant articles as read." (defun gnus-summary-catchup-and-exit (&optional all quietly) "Mark all unread articles in this group as read, then exit. -If prefix argument ALL is non-nil, all articles are marked as read." +If prefix argument ALL is non-nil, all articles are marked as read. +If QUIETLY is non-nil, no questions will be asked." (interactive "P") (when (gnus-summary-catchup all quietly nil 'fast) ;; Select next newsgroup or exit. @@ -9390,7 +9428,7 @@ taken." (defun gnus-summary-up-thread (n) "Go up thread N steps. -If N is negative, go up instead. +If N is negative, go down instead. Returns the difference between N and how many steps down that were taken." (interactive "p") @@ -9479,6 +9517,18 @@ Argument REVERSE means reverse order." (interactive "P") (gnus-summary-sort 'chars reverse)) +(defun gnus-summary-sort-by-original (&optional reverse) + "Sort the summary buffer using the default sorting method. +Argument REVERSE means reverse order." + (interactive "P") + (let* ((buffer-read-only) + (gnus-summary-prepare-hook nil)) + ;; We do the sorting by regenerating the threads. + (gnus-summary-prepare) + ;; Hide subthreads if needed. + (when (and gnus-show-threads gnus-thread-hide-subtree) + (gnus-summary-hide-all-threads)))) + (defun gnus-summary-sort (predicate reverse) "Sort summary buffer by PREDICATE. REVERSE means reverse order." (let* ((thread (intern (format "gnus-thread-sort-by-%s" predicate))) diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index 3405b91..8c46c94 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -956,12 +956,15 @@ Entries without port tokens default to DEFAULTPORT." (pop list)) (nreverse out))) -(defun gnus-delete-alist (key alist) - "Delete all entries in ALIST that have a key eq to KEY." - (let (entry) - (while (setq entry (assq key alist)) - (setq alist (delq entry alist))) - alist)) +(if (fboundp 'assq-delete-all) + (defalias 'gnus-delete-alist 'assq-delete-all) + (defun gnus-delete-alist (key alist) + "Delete from ALIST all elements whose car is KEY. +Return the modified alist." + (let (entry) + (while (setq entry (assq key alist)) + (setq alist (delq entry alist))) + alist))) (defmacro gnus-pull (key alist &optional assoc-p) "Modify ALIST to be without KEY." diff --git a/lisp/gnus-uu.el b/lisp/gnus-uu.el index 6d8448e..6470494 100644 --- a/lisp/gnus-uu.el +++ b/lisp/gnus-uu.el @@ -521,47 +521,51 @@ didn't work, and overwrite existing files. Otherwise, ask each time." (interactive "P") (let ((gnus-uu-save-in-digest t) (file (make-temp-name (nnheader-concat gnus-uu-tmp-dir "forward"))) + (message-forward-as-mime message-forward-as-mime) + (mail-parse-charset gnus-newsgroup-charset) + (mail-parse-ignored-charsets gnus-newsgroup-ignored-charsets) gnus-uu-digest-buffer subject from) - (gnus-setup-message 'forward - (setq gnus-uu-digest-from-subject nil) - (setq gnus-uu-digest-buffer - (gnus-get-buffer-create " *gnus-uu-forward*")) - (gnus-uu-decode-save n file) - (set-buffer gnus-uu-digest-buffer) - (let ((fs gnus-uu-digest-from-subject)) - (when fs - (setq from (caar fs) - subject (gnus-simplify-subject-fuzzy (cdar fs)) - fs (cdr fs)) - (while (and fs (or from subject)) - (when from - (unless (string= from (caar fs)) - (setq from nil))) - (when subject - (unless (string= (gnus-simplify-subject-fuzzy (cdar fs)) - subject) - (setq subject nil))) - (setq fs (cdr fs)))) - (unless subject - (setq subject "Digested Articles")) - (unless from - (setq from - (if (gnus-news-group-p gnus-newsgroup-name) - gnus-newsgroup-name - "Various")))) - (mime-edit-enclose-digest-region (point-min) (point-max)) - (if post - (message-news nil (concat "[" from "] " subject)) - (message-mail nil (concat "[" from "] " subject))) - (message-goto-body) - ;; Make sure we're at the start of the line. - (unless (bolp) - (insert "\n")) - ;; Insert the forwarded buffer. - (insert-buffer gnus-uu-digest-buffer) - (kill-buffer gnus-uu-digest-buffer) - (set-text-properties (point-min) (point-max) nil) - (message-position-point)) + (if (and n (not (numberp n))) + (setq message-forward-as-mime (not message-forward-as-mime) + n nil)) + (let ((gnus-article-reply (gnus-summary-work-articles n))) + (gnus-setup-message 'forward + (setq gnus-uu-digest-from-subject nil) + (setq gnus-uu-digest-buffer + (gnus-get-buffer-create " *gnus-uu-forward*")) + (gnus-uu-decode-save n file) + (switch-to-buffer gnus-uu-digest-buffer) + (let ((fs gnus-uu-digest-from-subject)) + (when fs + (setq from (caar fs) + subject (gnus-simplify-subject-fuzzy (cdar fs)) + fs (cdr fs)) + (while (and fs (or from subject)) + (when from + (unless (string= from (caar fs)) + (setq from nil))) + (when subject + (unless (string= (gnus-simplify-subject-fuzzy (cdar fs)) + subject) + (setq subject nil))) + (setq fs (cdr fs)))) + (unless subject + (setq subject "Digested Articles")) + (unless from + (setq from + (if (gnus-news-group-p gnus-newsgroup-name) + gnus-newsgroup-name + "Various")))) + (goto-char (point-min)) + (when (re-search-forward "^Subject: ") + (delete-region (point) (gnus-point-at-eol)) + (insert subject)) + (goto-char (point-min)) + (when (re-search-forward "^From:") + (delete-region (point) (gnus-point-at-eol)) + (insert " " from)) + (let ((message-forward-decoded-p t)) + (message-forward post)))) (setq gnus-uu-digest-from-subject nil))) (defun gnus-uu-digest-post-forward (&optional n) diff --git a/lisp/gnus-win.el b/lisp/gnus-win.el index de17928..dcdd179 100644 --- a/lisp/gnus-win.el +++ b/lisp/gnus-win.el @@ -548,7 +548,8 @@ should have point." (if (featurep 'xemacs) (switch-to-buffer nntp-server-buffer) (set-buffer nntp-server-buffer))) - (mapcar (lambda (b) (delete-windows-on b t)) bufs)))) + (mapcar (lambda (b) (delete-windows-on b t)) + (delq lowest-buf bufs))))) (provide 'gnus-win) diff --git a/lisp/gnus.el b/lisp/gnus.el index 22a5310..9538a62 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -1795,7 +1795,7 @@ covered by that variable." (bookmarks . bookmark) (dormant . dormant) (scored . score) (saved . save) (cached . cache) (downloadable . download) - (unsendable . unsend))) + (unsendable . unsend) (forwarded . forward))) (defvar gnus-headers-retrieved-by nil) (defvar gnus-article-reply nil) @@ -2478,8 +2478,8 @@ g -- Group name." out) (cond ((= c ?r) - (push (if (< (point) (mark) (point) (mark))) out) - (push (if (> (point) (mark) (point) (mark))) out)))) + (push (if (< (point) (mark)) (point) (mark)) out) + (push (if (> (point) (mark)) (point) (mark)) out)))) (setq out (delq 'gnus-prefix-nil out)) (nreverse out))) @@ -3049,6 +3049,15 @@ If NEWSGROUP is nil, return the global kill file name instead." (list (intern server) ""))) gnus-select-method)) +(defun gnus-server-string (server) + "Return a readable string that describes SERVER." + (let* ((server (gnus-server-to-method server)) + (address (nth 1 server))) + (if (and address + (not (zerop (length address)))) + (format "%s via %s" address (car server)) + (format "%s" (car server))))) + (defun gnus-find-method-for-group (group &optional info) "Find the select method that GROUP uses." (or gnus-override-method diff --git a/lisp/message.el b/lisp/message.el index 7a514cb..d4fa9f7 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -1453,6 +1453,7 @@ Except if it is nil, use Gnus native MUA; if it is t, use (autoload 'gnus-request-post "gnus-int") (autoload 'gnus-copy-article-buffer "gnus-msg") (autoload 'gnus-alive-p "gnus-util") + (autoload 'gnus-server-string "gnus") (autoload 'gnus-group-name-charset "gnus-group") (autoload 'rmail-output "rmailout") (autoload 'mu-cite-original "mu-cite")) @@ -3424,6 +3425,7 @@ This sub function is for exclusive use of `message-send-news'." (backward-char 1) (run-hooks 'message-send-news-hook) (gnus-open-server method) + (message "Sending news with %s..." (gnus-server-string method)) (gnus-request-post method) )) @@ -4672,8 +4674,11 @@ than 988 characters long, and if they are not, trim them until they are." (if (gnus-alive-p) (setq message-draft-article (nndraft-request-associate-buffer "drafts")) - (setq buffer-file-name (expand-file-name "*message*" - message-auto-save-directory)) + (setq buffer-file-name (expand-file-name + (if (eq system-type 'windows-nt) + "message" + "*message*") + message-auto-save-directory)) (setq buffer-auto-save-file-name (make-auto-save-file-name))) (clear-visited-file-modtime) (static-if (boundp 'MULE) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index d44a5dc..8978c07 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -222,17 +222,25 @@ to: :type '(repeat string) :group 'mime-display) -(defvar mm-tmp-directory +(defcustom mm-tmp-directory (cond ((fboundp 'temp-directory) (temp-directory)) ((boundp 'temporary-file-directory) temporary-file-directory) ("/tmp/")) - "Where mm will store its temporary files.") + "Where mm will store its temporary files." + :type 'directory + :group 'mime-display) (defcustom mm-inline-large-images nil "If non-nil, then all images fit in the buffer." :type 'boolean :group 'mime-display) +(defcustom mm-default-directory nil + "The default directory where mm will save files. +If not set, `default-directory' will be used." + :type 'directory + :group 'mime-display) + ;;; Internal variables. (defvar mm-dissection-list nil) @@ -805,8 +813,6 @@ external if displayed external." (set-buffer cur) (insert-buffer-substring temp))))))) -(defvar mm-default-directory nil) - (defun mm-save-part (handle) "Write HANDLE to a file." (let* ((name (mail-content-type-get (mm-handle-type handle) 'name)) diff --git a/lisp/qp.el b/lisp/qp.el index 697de6c..9875a0b 100644 --- a/lisp/qp.el +++ b/lisp/qp.el @@ -68,7 +68,7 @@ coding-system." ;; (backward-char)) )) (t - (error "Malformed quoted-printable text") + (message "Malformed quoted-printable text") (forward-char))))) (if coding-system (mm-decode-coding-region (point-min) (point-max) coding-system))))) diff --git a/sample.lpath.el b/sample.lpath.el index f0d4d3c..f93c8da 100644 --- a/sample.lpath.el +++ b/sample.lpath.el @@ -26,7 +26,7 @@ ;; uncomment and edit the following line appropriately. ;; "/usr/local/share/mule/site-lisp/w3/" ))) - ;; No user servicable parts beyond this point. + ;; No user serviceable parts beyond this point. (let ((i (length additional-load-path)) p) diff --git a/texi/ChangeLog b/texi/ChangeLog index fd4da26..92c08b0 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -1,3 +1,18 @@ +2001-04-01 00:32:46 Lars Magne Ingebrigtsen + + * gnus.texi (S): Renamed. + (Summary Sorting): Addition. + +2001-03-31 00:40:44 Lars Magne Ingebrigtsen + + * gnus.texi (Other Marks): Additon. + (The End): Remove "The" from menus. + +2001-03-30 23:34:02 Lars Magne Ingebrigtsen + + * gnus.texi (Adaptive Scoring): Addition. + (Summary Mail Commands): Addition. + 2001-03-17 Matthias Wiehl * message.texi (Security): Typos. diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index aec0138..af35b59 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -458,9 +458,9 @@ Emacs $B$,J8>O$rJT=8$9$k?M$KNO$rM?$($k$h$&$K!"(Bgnus $B$O%K%e!<%9$rFI$`?M$KNO @menu * Starting Up:: $B%K%e!<%9$r8+$D$1$k$N$K$O6lO+$,H<$&$+$bCN$l$J$$(B -* The Group Buffer:: $B%0%k!<%W$rA*Br$7!"9XFI$7!":o=|$9$k(B -* The Summary Buffer:: $B5-;v$rFI$_!"J]B8$7!"Ej9F$9$k(B -* The Article Buffer:: $B5-;v$rI=<($7!"07$&(B +* Group Buffer:: $B%0%k!<%W$rA*Br$7!"9XFI$7!":o=|$9$k(B +* Summary Buffer:: $B5-;v$rFI$_!"J]B8$7!"Ej9F$9$k(B +* Article Buffer:: $B5-;v$rI=<($7!"07$&(B * Composing Messages:: $B%a!<%k$H%K%e!<%9$rAw$k$?$a$N>pJs(B * Select Methods:: Gnus $B$OA4$F$N%a%C%;!<%8$r$$$m$$$m$JA*BrJ}K!$GFI$`(B * Scoring:: $B5-;v$KCM$r$D$1$k(B @@ -545,7 +545,7 @@ The Summary Buffer * Marking Articles:: $B5-;v$K4{FI$d4|8B@Z$l:o=|2DG=Ey$N0u$rIU$1$k(B * Limiting:: $B35N,%P%C%U%!$K@)8B$r2C$($k$3$H$,$G$-$k(B * Threading:: $B%9%l%C%I$,$I$N$h$&$K:n$i$l$k$+(B -* Sorting:: $B%9%l%C%I$H5-;v$,$I$N$h$&$KJB$S$+$($i$l$k$+(B +* Sorting the Summary Buffer:: $B%9%l%C%I$H5-;v$,$I$N$h$&$KJB$S$+$($i$l$k$+(B * Asynchronous Fetching:: Gnus $B$O5-;v$r@h$KC5n$7$J$/$5$;$k(B @@ -669,7 +669,7 @@ Composing Messages Select Methods -* The Server Buffer:: $B;ve$N%5!<%P!<$r:n$C$FJT=8$9$k(B +* Server Buffer:: $B;ve$N%5!<%P!<$r:n$C$FJT=8$9$k(B * Getting News:: USENET $B%K%e!<%9$r(B gnus $B$GFI$`(B * Getting Mail:: $B8D?ME*$J%a!<%k$r(B gnus $B$GFI$`(B * Browsing the Web:: $B2a>j$J%&%'%V$N;q8;$+$i%a%C%;!<%8$rC5n$7$J$/$5$;$k(B @@ -4608,6 +4608,22 @@ Summary Buffer} $B$r;2>H$7$F2<$5$$!#(B $B$9(B (@code{gnus-summary-wide-reply-with-original})$B!#$3$NL?Na$O%W%m%;%9(B/$B@\(B $BF,0z?t$N=,47$r;H$$$^$9!#(B +@item S v +@kindex S v (Summary) +@findex gnus-summary-very-wide-reply +$B8=:_$N5-;v$r=q$$$??M$KBP$7$F!"Hs>o$K9-$$JVEz(B (very wide reply) $B$r$7$^(B +$B$9(B (@code{gnus-summary-very-wide-reply})$B!#(B@dfn{$BHs>o$K9-$$JVEz(B} $B$H$O!"%W(B +$B%m%;%9(B/$B@\F,0z?t$G;XDj$5$l$?$9$Y$F$N5-;v$N%X%C%@!<$N(B @code{To}, +@code{From}, ($B$b$7$/$O(B @code{Reply-to}) $B$H(B @code{Cc}) $B$N$9$Y$F$N?M$KJVEz(B +$B$r$9$k$3$H$G$9!#$3$NL?Na$O%W%m%;%9(B/$B@\F,0z?t$N=,47$r;H$$$^$9!#(B + +@item S V +@kindex S V (Summary) +@findex gnus-summary-very-wide-reply-with-original +$B8=:_$N5-;v$KK\5-;v$r4^$s$@Hs>o$K9-$$JVEz$N%a!<%k$rAw$j$^(B +$B$9(B (@code{gnus-summary-very-wide-reply-with-original})$B!#$3$NL?Na$O%W%m%;(B +$B%9(B/$B@\F,0z?t$N=,47$r;H$$$^$9!#(B + @item S o m @itemx C-c C-f @kindex S o m ($B35N,(B) @@ -4990,6 +5006,10 @@ gnus $B<+BN$O2D;k5-;v$r4|8B@Z$l>C5n$7$^$;$s(B) $B$N$G!"1J1s$K5-;v$rJ]B8$7$F$* $BJVEz$r$7$?$+!"%U%)%m!<%"%C%W$r$7$?(B ($BNc$($P!"Ez$($?(B) $B5-;v$O$9$Y$FFs7eL\(B $B$K(B @samp{A} $B$N0u$,$D$-$^$9(B (@code{gnus-replied-mark})$B!#(B +@vindex gnus-forwarded-mark +$BE>Aw$7$?5-;v$O$9$Y$FFs7eL\$K(B @samp{O} $B$N0u$,$D$-$^(B +$B$9(B (@code{gnus-forwarded-mark})$B!#(B + @item @vindex gnus-cached-mark $B5-;v%-%c%C%7%e$KCy$a$i$l$F$$$k5-;v$OFs7eL\$K(B @samp{*} $B$N0u$,$D$-$^(B @@ -5922,7 +5942,7 @@ gnus $B$OA4$F$N5-;v$N40A4$J(B @code{References} $BMs$r8+$F!"F1$8%9%l%C%I$KB0$ $B9T$7$F$$$k$H$-$KI=Bj$OL5;k$5$l$^$9!#$3$NJQ?t$,(B @code{fuzzy} $B$G$"$k$H!"$"(B $B$$$^$$$KEy$7$$I=Bj$r;}$D5-;v$@$1$,4^$^$l$^$9(B (@pxref{Fuzzy Matching})$B!#(B -@node Sorting +@node Sorting the Summary Buffer @section $BJB$SBX$((B @findex gnus-thread-sort-by-total-score @@ -7756,6 +7776,11 @@ gnus $B$G%a!<%k$rFI$`$3$H$NM-Mx$JE@$O!"C1=c$J%P%0$rAG@2$i$7$$IT>rM}$KCV$-(B @kindex C-c C-s C-i ($B35N,(B) @findex gnus-summary-sort-by-score $B%9%3%"$K$h$C$FJB$SBX$($^$9(B (@code{gnus-summary-sort-by-score})$B!#(B + +@item C-c C-s C-o +@kindex C-c C-s C-o (Summary) +@findex gnus-summary-sort-by-original +$B%G%#%U%)%k%H$NJ}K!$GJB$SBX$($^$9(B (@code{gnus-summary-sort-by-original})$B!#(B @end table $B$3$l$i$N4X?t$O%9%l%C%I$r;H$C$F$$$k$H$-$H;H$C$F$$$J$$$H$-$NN>J}$GF0:n$7$^(B @@ -8725,7 +8750,7 @@ protocols. Otherwise, ask user. @end table @end ignore -@node The Article Buffer +@node Article Buffer @chapter $B5-;v%P%C%U%!(B @cindex article buffer @@ -9681,7 +9706,7 @@ you've typed it correctly. $BA*BrJ}K!$O(B @dfn{$B;ve$N%5!<%P!<(B} $B$rDj5A$9$k$H8@$&$3$H$,$G$-$k$+$b$7$l$^(B $B$;$s(B---$B$G$9$+$i;d$?$A$O$A$g$&$I$=$l$r$7$^$7(B -$B$?(B (@pxref{The Server Buffer})$B!#(B +$B$?(B (@pxref{Server Buffer})$B!#(B $B%0%k!<%W$N(B @dfn{$BL>A0(B} $B$O%P%C%/%(%s%I$,%0%k!<%W$rG'<1$9$kL>A0$G$9!#(B @@ -9694,16 +9719,16 @@ you've typed it correctly. $B$b$A$m$s!"0c$C$?J}K!$OA4$F$=$lFCM-$N$b$N$,$"$j$^$9!#(B @menu -* The Server Buffer:: $B;ve$N%5!<%P!<$r:n$C$FJT=8$9$k(B -* Getting News:: USENET $B%K%e!<%9$r(B gnus $B$GFI$`(B -* Getting Mail:: $B8D?ME*$J%a!<%k$r(B gnus $B$GFI$`(B -* Browsing the Web:: $B2a>j$J%&%'%V$N;q8;$+$i%a%C%;!<%8$re$N%5!<%P!<$r:n$C$FJT=8$9$k(B +* Getting News:: USENET $B%K%e!<%9$r(B gnus $B$GFI$`(B +* Getting Mail:: $B8D?ME*$J%a!<%k$r(B gnus $B$GFI$`(B +* Browsing the Web:: $B2a>j$J%&%'%V$N;q8;$+$i%a%C%;!<%8$rpJs$rMW5a$9$k%^%7%s(B @@ -10024,8 +10049,8 @@ you've typed it correctly. $B$=$l$G!"0l;~E*$K$=$N%^%7%s$N5!7y$,0-$$$@$1$@$H2?$,5/$3$k$N$G$7$g$&(B? $B$I$&(B $B$d$C$F%^%7%s$,La$C$F$-$F$$$k$+$I$&$+$C$r:F$SD4$Y$k;v$,$G$-$k$G$N$7$g$&(B? -$B%5!<%P!<%P%C%U%!$KHt$S0\$C$F(B (@pxref{The Server Buffer})$B!"0J2<$NL?Na$G(B -$B$D$D$/$@$1$G$G$-$^$9(B: +$B%5!<%P!<%P%C%U%!$KHt$S0\$C$F(B (@pxref{Server Buffer})$B!"0J2<$NL?Na$G$D$D$/(B +$B$@$1$G$G$-$^$9(B: @table @kbd @@ -14054,9 +14079,9 @@ PPP $B4X78(B($B$J$I(B)$B$rJD$8$^$9!#$=$&$7$F%K%e!<%9$r%*%U%i%$%s$GFI$`$3$H$ $B@.$H4IM}$N$?$a$NFH<+$N%P%C%U%!!<$r;}$C$F$$$^$9!#(B @menu -* Category Syntax:: $BJ,N`$H$O$I$s$J$b$N$+(B -* The Category Buffer:: $BJ,N`$r4IM}$9$k%P%C%U%!!<(B -* Category Variables:: $B%+%9%?%^%$%6(B"$B$i(B"$B%9(B +* Category Syntax:: $BJ,N`$H$O$I$s$J$b$N$+(B +* Category Buffer:: $BJ,N`$r4IM}$9$k%P%C%U%!!<(B +* Category Variables:: $B%+%9%?%^%$%6(B"$B$i(B"$B%9(B @end menu @node Category Syntax @@ -14318,7 +14343,7 @@ file @end itemize @end enumerate -@node The Category Buffer +@node Category Buffer @subsubsection $BJ,N`%P%C%U%!!<(B $BDL>o$OA4$F$NJ,N`$OJ,N`%P%C%U%!!<$+$i4IM}$7$^$9!#(B($B%0%k!<%W%P%C%U%!!<(B @@ -15702,6 +15727,12 @@ gnus $B$K$O$3$l$i$rA4$F<+F0E*$K(B --- $B$^$k$GKbK!$G$b;H$C$?$h$&$K:n@.(B $B$l$^$9!#L5;k$7$?$$C18l$rDI2C$7$?$$$H$-$O!"$3$NJQ?t$G$O$J(B $B$/(B @code{gnus-ignored-adaptive-words} $B%j%9%H$NJ}$r;H$C$F$/$@$5$$!#(B +@vindex gnus-adaptive-word-length-limit +$BC;$$C18l$G$OE,1~@-%9%3%"$r:nF0$5$;$k$Y$-$G$O$J$$$H;W$&?M$b$$$k$G$7$g$&!#(B +$B$b$7$=$&$J$i(B @code{gnus-adaptive-word-length-limit} $B$K@0?t$r@_Dj$9$k$3$H(B +$B$,$G$-!"$3$N?tCM$h$jC;$$C18l$OL5;k$5$l$^$9!#$3$NJQ?t$N=i4|@_DjCM(B +$B$O(B @code{nil} $B$G$9!#(B + @vindex gnus-adaptive-word-syntax-table $B%9%3%"IU$1$,=*N;$7$?$H$-!"(B@code{gnus-adaptive-word-syntax-table} $B$NJ8K!(B $BI=$,$=$N1F6A$r