From: yamaoka Date: Mon, 30 Dec 2002 06:38:00 +0000 (+0000) Subject: Synch with Oort Gnus. X-Git-Tag: t-gnus-6_15_10-00-quimby~19 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=eef24ff68062e4eb3b521b3d6d69c4738fab288f;p=elisp%2Fgnus.git- Synch with Oort Gnus. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 02cb07b..9c90550 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,56 @@ +2002-12-30 Lars Magne Ingebrigtsen + + * dns.el (query-dns): Protect against errors. + + * gnus-msg.el (gnus-article-yanked-articles): New variable. + (gnus-inews-add-send-actions): Mark all answered messages as + answered. + +2002-08-10 Jari Aalto + + * nnmail.el (nnmail-split-it): Added tracing to + `:' split rule + +2002-08-13 Hrvoje Niksic + + * mm-decode.el (mm-mailcap-command): Remove the quotes around '%s' + and "%s" so we don't overquote them. + +2002-08-13 Hrvoje Niksic + + * (mm-display-external): Display the actual command that has been + executed in the echo area. + 2002-12-29 Lars Magne Ingebrigtsen + * gnus-topic.el (gnus-topic-display-missing-topic): Bind entry. + + * message.el (message-with-reply-buffer): New macro. + (message-fetch-reply-field): Use it. + (message-insert-wide-reply): New command and keystroke. + (message-carefully-insert-headers): New function. + (message-insert-to): Use new function. + + * gnus-topic.el (gnus-topic-display-missing-topic): New function. + (gnus-topic-goto-missing-group): Use it. + + * message.el (message-required-news-headers): Removed Lines. + (message-reply): Don't insert References first. + (message-followup): Ditto. + (message-make-references): New function. + (message-followup): Set message-reply-headers before generating + the buffer stuff. + +2002-12-29 Jesper Harder + + * mml.el (mml-generate-mime-1): Reverse the order of + encoding/flowing. + +2002-12-29 Lars Magne Ingebrigtsen + + * nnmail.el (nnmail-expiry-target-group): Mark articles as read + after moving them. + * gnus-sum.el (gnus-summary-dummy-line-format): Update format to fit with newer standard format. (gnus-summary-make-false-root-always): New variable. diff --git a/lisp/dns.el b/lisp/dns.el index 76f6bb7..dcac670 100644 --- a/lisp/dns.el +++ b/lisp/dns.el @@ -309,35 +309,41 @@ If FULLP, return the entire record returned." (unless dns-servers (error "No DNS server configuration found"))) (mm-with-unibyte-buffer - (let ((process (dns-make-network-process (car dns-servers))) + (let ((process (condition-case () + (dns-make-network-process (car dns-servers)) + (error + (message "dns: Got an error while trying to talk to %s" + (car dns-servers)) + nil))) (tcp-p (and (not (fboundp 'make-network-process)) (not (featurep 'xemacs)))) (step 100) (times (* dns-timeout 1000)) (id (random 65000))) - (process-send-string - process - (dns-write `((id ,id) - (opcode query) - (queries ((,name (type ,type)))) - (recursion-desired-p t)) - tcp-p)) - (while (and (zerop (buffer-size)) - (> times 0)) - (accept-process-output process 0 step) - (decf times step)) - (ignore-errors - (delete-process process)) - (when tcp-p - (goto-char (point-min)) - (delete-region (point) (+ (point) 2))) - (unless (zerop (buffer-size)) - (let ((result (dns-read (buffer-string)))) - (if fullp - result - (let ((answer (car (dns-get 'answers result)))) - (when (eq type (dns-get 'type answer)) - (dns-get 'data answer))))))))) + (when process + (process-send-string + process + (dns-write `((id ,id) + (opcode query) + (queries ((,name (type ,type)))) + (recursion-desired-p t)) + tcp-p)) + (while (and (zerop (buffer-size)) + (> times 0)) + (accept-process-output process 0 step) + (decf times step)) + (ignore-errors + (delete-process process)) + (when tcp-p + (goto-char (point-min)) + (delete-region (point) (+ (point) 2))) + (unless (zerop (buffer-size)) + (let ((result (dns-read (buffer-string)))) + (if fullp + result + (let ((answer (car (dns-get 'answers result)))) + (when (eq type (dns-get 'type answer)) + (dns-get 'data answer)))))))))) (provide 'dns) diff --git a/lisp/gnus-msg.el b/lisp/gnus-msg.el index e98e497..a124984 100644 --- a/lisp/gnus-msg.el +++ b/lisp/gnus-msg.el @@ -298,6 +298,7 @@ If nil, the address field will always be empty after invoking (defvar gnus-inhibit-posting-styles nil "Inhibit the use of posting styles.") +(defvar gnus-article-yanked-articles nil) (defvar gnus-message-buffer "*Mail Gnus*") (defvar gnus-article-copy nil) (defvar gnus-check-before-posting nil) @@ -389,10 +390,12 @@ Thank you for your help in stamping out bugs. (let ((winconf (make-symbol "gnus-setup-message-winconf")) (buffer (make-symbol "gnus-setup-message-buffer")) (article (make-symbol "gnus-setup-message-article")) + (yanked (make-symbol "gnus-setup-yanked-articles")) (group (make-symbol "gnus-setup-message-group"))) `(let ((,winconf (current-window-configuration)) (,buffer (buffer-name (current-buffer))) (,article gnus-article-reply) + (,yanked gnus-article-yanked-articles) (,group gnus-newsgroup-name) (message-header-setup-hook (copy-sequence message-header-setup-hook)) @@ -416,7 +419,8 @@ Thank you for your help in stamping out bugs. (unwind-protect (progn ,@forms) - (gnus-inews-add-send-actions ,winconf ,buffer ,article ,config) + (gnus-inews-add-send-actions ,winconf ,buffer ,article ,config + ,yanked) (gnus-inews-insert-draft-meta-information ,group ,article) (setq gnus-message-buffer (current-buffer)) (set (make-local-variable 'gnus-message-group-art) @@ -503,7 +507,8 @@ 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 &optional config) +(defun gnus-inews-add-send-actions (winconf buffer article + &optional config yanked) (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) @@ -523,8 +528,8 @@ Gcc: header for archiving purposes." (set-buffer ,buffer) ,(when article (if (eq config 'forward) - `(gnus-summary-mark-article-as-forwarded ',article) - `(gnus-summary-mark-article-as-replied ',article))))) + `(gnus-summary-mark-article-as-forwarded ',yanked) + `(gnus-summary-mark-article-as-replied ',yanked))))) 'send)) (put 'gnus-setup-message 'lisp-indent-function 1) @@ -917,6 +922,7 @@ header line with the old Message-ID." (when article-buffer (gnus-copy-article-buffer)) (let ((gnus-article-reply (and article-buffer (gnus-summary-article-number))) + (gnus-article-yanked-articles yank) (add-to-list gnus-add-to-list)) (gnus-setup-message (cond (yank 'reply-yank) (article-buffer 'reply) @@ -1173,6 +1179,7 @@ If VERY-WIDE, make a very wide reply." (caar yank) (car yank))) (gnus-article-reply (or article (gnus-summary-article-number))) + (gnus-article-yanked-articles yank) (headers "")) ;; Stripping headers should be specified with mail-yank-ignored-headers. (when yank @@ -1281,14 +1288,17 @@ Note that this function definition for T-gnus is totally different from the original Gnus." (interactive "P") (if (null (cdr (gnus-summary-work-articles nil))) - (gnus-setup-message 'forward - (gnus-summary-select-article) - (let ((charset default-mime-charset)) + (let* ((gnus-article-reply (gnus-summary-article-number)) + (gnus-article-yanked-articles (list (list gnus-article-reply))) + charset + (message-included-forward-headers + (if full-headers "" message-included-forward-headers))) + (gnus-setup-message 'forward + (gnus-summary-select-article) + (setq charset default-mime-charset) (set-buffer gnus-original-article-buffer) (make-local-variable 'default-mime-charset) - (setq default-mime-charset charset)) - (let ((message-included-forward-headers - (if full-headers "" message-included-forward-headers))) + (setq default-mime-charset charset) (message-forward post))) (gnus-summary-digest-mail-forward nil post))) diff --git a/lisp/gnus-score.el b/lisp/gnus-score.el index 60f43d5..0002f80 100644 --- a/lisp/gnus-score.el +++ b/lisp/gnus-score.el @@ -970,7 +970,6 @@ EXTRA is the possible non-standard header." ;; All score code written by Per Abrahamsen . -;; Added by Per Abrahamsen . (defun gnus-score-set-mark-below (score) "Automatically mark articles with score below SCORE as read." (interactive diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 6559d30..ff86153 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -8860,9 +8860,8 @@ ACTION can be either `move' (the default), `crosspost' or `copy'." to-group (cdar marks) (list to-article) info))) (setq marks (cdr marks))) - (gnus-request-set-mark to-group (list (list (list to-article) - 'add - to-marks)))) + (gnus-request-set-mark + to-group (list (list (list to-article) 'add to-marks)))) (gnus-dribble-enter (concat "(gnus-group-set-info '" diff --git a/lisp/gnus-topic.el b/lisp/gnus-topic.el index 396953d..b99f3ac 100644 --- a/lisp/gnus-topic.el +++ b/lisp/gnus-topic.el @@ -697,7 +697,8 @@ articles in the topic and its subtopics." (unfound t) entry) ;; Try to jump to a visible group. - (while (and g (not (gnus-group-goto-group (car g) t))) + (while (and g + (not (gnus-group-goto-group (car g) t))) (pop g)) ;; It wasn't visible, so we try to see where to insert it. (when (not g) @@ -709,20 +710,31 @@ articles in the topic and its subtopics." (when (and unfound topic (not (gnus-topic-goto-missing-topic topic))) - (let* ((top (gnus-topic-find-topology topic)) - (children (cddr top)) - (type (cadr top)) - (unread 0) - (entries (gnus-topic-find-groups - (car type) (car gnus-group-list-mode) - (cdr gnus-group-list-mode)))) - (while children - (incf unread (gnus-topic-unread (caar (pop children))))) - (while (setq entry (pop entries)) - (when (numberp (car entry)) - (incf unread (car entry)))) - (gnus-topic-insert-topic-line - topic t t (car (gnus-topic-find-topology topic)) nil unread)))))) + (gnus-topic-display-missing-topic topic))))) + +(defun gnus-topic-display-missing-topic (topic) + "Insert topic lines recursively for missing topics." + (let ((parent (gnus-topic-find-topology + (gnus-topic-parent-topic topic)))) + (when (and parent + (not (gnus-topic-goto-missing-topic (caadr parent)))) + (gnus-topic-display-missing-topic (caadr parent)))) + (gnus-topic-goto-missing-topic topic) + (let* ((top (gnus-topic-find-topology topic)) + (children (cddr top)) + (type (cadr top)) + (unread 0) + (entries (gnus-topic-find-groups + (car type) (car gnus-group-list-mode) + (cdr gnus-group-list-mode))) + entry) + (while children + (incf unread (gnus-topic-unread (caar (pop children))))) + (while (setq entry (pop entries)) + (when (numberp (car entry)) + (incf unread (car entry)))) + (gnus-topic-insert-topic-line + topic t t (car (gnus-topic-find-topology topic)) nil unread))) (defun gnus-topic-goto-missing-topic (topic) (if (gnus-topic-goto-topic topic) diff --git a/lisp/message.el b/lisp/message.el index 8337b37..17e3fee 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -347,7 +347,8 @@ Checks include `subject-cmsg', `multiple-headers', `sendsys', (defcustom message-required-news-headers '(From Newsgroups Subject Date Message-ID - (optional . Organization) Lines + (optional . Organization) + (optional . References) (optional . User-Agent)) "*Headers to be generated or prompted for when posting an article. RFC977 and RFC1036 require From, Date, Newsgroups, Subject, @@ -360,7 +361,8 @@ header, remove it from this list." (defcustom message-required-mail-headers '(From Subject Date (optional . In-Reply-To) Message-ID - (optional . User-Agent)) + (optional . User-Agent) + (optional . References)) "*Headers to be generated or prompted for when mailing a message. It is recommended that From, Date, To, Subject and Message-ID be included. Organization and User-Agent are optional." @@ -1715,15 +1717,22 @@ is used by default." (insert (car headers) ?\n))))) (setq headers (cdr headers)))) +(defmacro message-with-reply-buffer (&rest forms) + "Evaluate FORMS in the reply buffer, if it exists." + `(let ((buffer (message-eval-parameter message-reply-buffer))) + (when (and buffer + (buffer-name buffer)) + (save-excursion + (set-buffer buffer) + ,@forms)))) + +(put 'message-with-reply-buffer 'lisp-indent-function 0) +(put 'message-with-reply-buffer 'edebug-form-spec '(body)) (defun message-fetch-reply-field (header) "Fetch field HEADER from the message we're replying to." - (let ((buffer (message-eval-parameter message-reply-buffer))) - (when (and buffer - (buffer-name buffer)) - (save-excursion - (set-buffer buffer) - (message-fetch-field header))))) + (message-with-reply-buffer + (message-fetch-field header))) (defun message-set-work-buffer () (if (get-buffer " *message work*") @@ -2207,6 +2216,7 @@ Point is left at the beginning of the narrowed-to region." (define-key message-mode-map "\C-c\C-fc" 'message-goto-mail-copies-to) (define-key message-mode-map "\C-c\C-t" 'message-insert-to) + (define-key message-mode-map "\C-c\C-p" 'message-insert-wide-reply) (define-key message-mode-map "\C-c\C-n" 'message-insert-newsgroups) (define-key message-mode-map "\C-c\C-l" 'message-to-list-only) @@ -2678,13 +2688,29 @@ With the prefix argument FORCE, insert the header anyway." (or (equal (downcase co) "never") (equal (downcase co) "nobody"))) (error "The user has requested not to have copies sent via mail"))) - (when (and (message-position-on-field "To") - (mail-fetch-field "to") - (not (string-match "\\` *\\'" (mail-fetch-field "to")))) - (insert ", ")) - (insert (or (message-fetch-reply-field "mail-reply-to") - (message-fetch-reply-field "reply-to") - (message-fetch-reply-field "from") ""))) + (message-carefully-insert-headers + (list (cons 'To + (or (message-fetch-reply-field "mail-reply-to") + (message-fetch-reply-field "reply-to") + (message-fetch-reply-field "from") + ""))))) + +(defun message-insert-wide-reply () + "Insert To and Cc headers as if you were doing a wide reply." + (interactive) + (let ((headers (message-with-reply-buffer + (message-get-reply-headers t)))) + (message-carefully-insert-headers headers))) + +(defun message-carefully-insert-headers (headers) + (dolist (header headers) + (let ((header-name (symbol-name (car header)))) + (when (and (message-position-on-field header-name) + (mail-fetch-field header-name) + (not (string-match "\\` *\\'" + (mail-fetch-field header-name)))) + (insert ", ")) + (insert (cdr header))))) (defun message-widen-reply () "Widen the reply to include maximum recipients." @@ -4847,6 +4873,17 @@ If NOW, use that time instead." (message-goto-body) (int-to-string (count-lines (point) (point-max)))))) +(defun message-make-references () + "Return the References header for this message." + (when message-reply-headers + (let ((message-id (mail-header-message-id message-reply-headers)) + (references (mail-header-references message-reply-headers)) + new-references) + (if (or references message-id) + (concat (or references "") (and references " ") + (or message-id "")) + nil)))) + (defun message-make-in-reply-to () "Return the In-Reply-To header for this message." (when message-reply-headers @@ -5089,6 +5126,7 @@ Headers already prepared in the buffer are not modified." (Subject nil) (Newsgroups nil) (In-Reply-To (message-make-in-reply-to)) + (References (message-make-references)) (To nil) (Distribution (message-make-distribution)) (Lines (message-make-lines)) @@ -5887,11 +5925,7 @@ responses here are directed to other addresses."))) (message-setup `((Subject . ,subject) - ,@follow-to - ,@(if (or references message-id) - `((References . ,(concat (or references "") (and references " ") - (or message-id "")))) - nil)) + ,@follow-to) cur))) ;;;###autoload @@ -6044,19 +6078,16 @@ that further discussion should take place only in " (message-pop-to-buffer (message-buffer-name "followup" from newsgroups)) + (setq message-reply-headers + (make-full-mail-header-from-decoded-header + 0 subject from date message-id references 0 0 "")) + (message-setup `((Subject . ,subject) ,@follow-to ,@(and mct (list (cons 'Cc mct))) ,@(and distribution (list (cons 'Distribution distribution))) - ,@(if (or references message-id) - `((References . ,(concat (or references "") (and references " ") - (or message-id "")))))) - cur) - - (setq message-reply-headers - (make-full-mail-header-from-decoded-header - 0 subject from date message-id references 0 0 "")))) + cur))) ;;;###autoload (defun message-cancel-news (&optional arg) diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index 617686f..b343351 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -704,36 +704,33 @@ external if displayed external." (message "Viewing with %s" method) (cond (needsterm - (unwind-protect - (if window-system - (start-process "*display*" nil - mm-external-terminal-program - "-e" shell-file-name - shell-command-switch - (mm-mailcap-command - method file (mm-handle-type handle))) - (require 'term) - (require 'gnus-win) - (set-buffer - (setq buffer - (make-term "display" - shell-file-name - nil - shell-command-switch - (mm-mailcap-command - method file - (mm-handle-type handle))))) - (term-mode) - (term-char-mode) - (set-process-sentinel - (get-buffer-process buffer) - `(lambda (process state) - (if (eq 'exit (process-status process)) - (gnus-configure-windows - ',gnus-current-window-configuration)))) - (gnus-configure-windows 'display-term)) - (mm-handle-set-external-undisplayer handle (cons file buffer))) - (message "Displaying %s..." (format method file)) + (let ((command (mm-mailcap-command + method file (mm-handle-type handle)))) + (unwind-protect + (if window-system + (start-process "*display*" nil + mm-external-terminal-program + "-e" shell-file-name + shell-command-switch command) + (require 'term) + (require 'gnus-win) + (set-buffer + (setq buffer + (make-term "display" + shell-file-name + nil + shell-command-switch command))) + (term-mode) + (term-char-mode) + (set-process-sentinel + (get-buffer-process buffer) + `(lambda (process state) + (if (eq 'exit (process-status process)) + (gnus-configure-windows + ',gnus-current-window-configuration)))) + (gnus-configure-windows 'display-term)) + (mm-handle-set-external-undisplayer handle (cons file buffer))) + (message "Displaying %s..." command)) 'external) (copiousoutput (with-current-buffer outbuf @@ -760,17 +757,17 @@ external if displayed external." (ignore-errors (kill-buffer buffer)))))) 'inline) (t - (unwind-protect - (start-process "*display*" - (setq buffer - (generate-new-buffer " *mm*")) - shell-file-name - shell-command-switch - (mm-mailcap-command - method file (mm-handle-type handle))) - (mm-handle-set-external-undisplayer - handle (cons file buffer))) - (message "Displaying %s..." (format method file)) + (let ((command (mm-mailcap-command + method file (mm-handle-type handle)))) + (unwind-protect + (start-process "*display*" + (setq buffer + (generate-new-buffer " *mm*")) + shell-file-name + shell-command-switch command) + (mm-handle-set-external-undisplayer + handle (cons file buffer))) + (message "Displaying %s..." command)) 'external))))))) (defun mm-mailcap-command (method file type-list) @@ -778,7 +775,8 @@ external if displayed external." (beg 0) (uses-stdin t) out sub total) - (while (string-match "%{\\([^}]+\\)}\\|'%s'\\|%s\\|%t\\|%%" method beg) + (while (string-match "%{\\([^}]+\\)}\\|'%s'\\|\"%s\"\\|%s\\|%t\\|%%" + method beg) (push (substring method beg (match-beginning 0)) out) (setq beg (match-end 0) total (match-string 0 method) @@ -786,7 +784,10 @@ external if displayed external." (cond ((string= total "%%") (push "%" out)) - ((or (string= total "%s") (string= total "'%s'")) + ((or (string= total "%s") + ;; We do our own quoting. + (string= total "'%s'") + (string= total "\"%s\"")) (setq uses-stdin nil) (push (mm-quote-arg (gnus-map-function mm-path-name-rewrite-functions file)) out)) diff --git a/lisp/mml.el b/lisp/mml.el index 7e035a2..ae5fa83 100644 --- a/lisp/mml.el +++ b/lisp/mml.el @@ -434,26 +434,26 @@ If MML is non-nil, return the buffer up till the correspondent mml tag." ;; ignore 0x1b, it is part of iso-2022-jp (setq encoding (mm-body-7-or-8)))) (t + ;; Only perform format=flowed filling on text/plain + ;; parts where there either isn't a format parameter + ;; in the mml tag or it says "flowed" and there + ;; actually are hard newlines in the text. + (let (use-hard-newlines) + (when (and (string= type "text/plain") + (or (null (assq 'format cont)) + (string= (cdr (assq 'format cont)) + "flowed")) + (setq use-hard-newlines + (text-property-any + (point-min) (point-max) 'hard 't))) + (fill-flowed-encode) + ;; Indicate that `mml-insert-mime-headers' should + ;; insert a "; format=flowed" string unless the + ;; user has already specified it. + (setq flowed (null (assq 'format cont))))) (setq charset (mm-encode-body charset)) (setq encoding (mm-body-encoding charset (cdr (assq 'encoding cont)))))) - ;; Only perform format=flowed filling on text/plain - ;; parts where there either isn't a format parameter - ;; in the mml tag or it says "flowed" and there - ;; actually are hard newlines in the text. - (let (use-hard-newlines) - (when (and (string= type "text/plain") - (or (null (assq 'format cont)) - (string= (cdr (assq 'format cont)) - "flowed")) - (setq use-hard-newlines - (text-property-any - (point-min) (point-max) 'hard 't))) - (fill-flowed-encode) - ;; Indicate that `mml-insert-mime-headers' should - ;; insert a "; format=flowed" string unless the - ;; user has already specified it. - (setq flowed (null (assq 'format cont))))) (setq coded (buffer-string))) (mml-insert-mime-headers cont type charset encoding flowed) (insert "\n") diff --git a/lisp/nnmail.el b/lisp/nnmail.el index 9273217..1c51c62 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -1271,6 +1271,8 @@ See the documentation for the variable `nnmail-split-fancy' for details." ;; Builtin : operation. ((eq (car split) ':) + (when nnmail-split-tracing + (push split nnmail-split-trace)) (nnmail-split-it (save-excursion (eval (cdr split))))) ;; Builtin ! operation. @@ -1747,7 +1749,9 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." (when (nnheader-functionp target) (setq target (funcall target group))) (unless (eq target 'delete) - (gnus-request-accept-article target nil nil t)))) + (let ((group-art (gnus-request-accept-article target nil nil t))) + (when (consp group-art) + (gnus-group-mark-article-read target (cdr group-art))))))) (defun nnmail-fancy-expiry-target (group) "Returns a target expiry group determined by `nnmail-fancy-expiry-targets'." diff --git a/texi/ChangeLog b/texi/ChangeLog index 4e55c11..83702b5 100644 --- a/texi/ChangeLog +++ b/texi/ChangeLog @@ -2,6 +2,7 @@ * gnus.texi (Loose Threads): add gnus-summary-make-false-root-always. + (Finding the Parent): Change name of nnweb server. 2002-12-22 Jesper Harder diff --git a/texi/gnus-ja.texi b/texi/gnus-ja.texi index 78031ad..91bebfa 100644 --- a/texi/gnus-ja.texi +++ b/texi/gnus-ja.texi @@ -8772,7 +8772,7 @@ gnus でメールを読むことの有利な点は、単純なバグを素晴らしい不条理に置き @lisp (setq gnus-refer-article-method '(current - (nnweb "refer" (nnweb-type google)))) + (nnweb "google" (nnweb-type google)))) @end lisp ほとんどのメールバックエンドは @code{Message-ID} での取得が可能ですが、 diff --git a/texi/gnus.texi b/texi/gnus.texi index fa82af2..9de02ae 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -9234,7 +9234,7 @@ then ask Google if that fails: @lisp (setq gnus-refer-article-method '(current - (nnweb "refer" (nnweb-type google)))) + (nnweb "google" (nnweb-type google)))) @end lisp Most of the mail back ends support fetching by @code{Message-ID}, but