From: yamaoka Date: Sat, 26 Feb 2005 04:07:38 +0000 (+0000) Subject: Synch to No Gnus 200502252323. X-Git-Tag: t-gnus-6_17_4-quimby-~540 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=95b4d3603f3adf2cb695c8abd1a8c452206a064d;p=elisp%2Fgnus.git- Synch to No Gnus 200502252323. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 314255b..0f28d3c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,23 @@ +2005-02-26 Arne J,Ax(Brgensen + + * mm-decode.el (mm-dissect-buffer): Pass the from field on to + `mm-dissect-multipart' and receive the from field as an (optional) + argument from `mm-dissect-multipart'. + (mm-dissect-multipart): Receive the from field as an argument and + pass it on when we call `mm-dissect-buffer' on MIME parts. Fixes + verification/decryption of signed/encrypted MIME parts. + +2005-02-25 Teodor Zlatanov + + * gnus-sum.el (gnus-summary-move-article): set + gnus-sum-hint-move-is-internal for gnus-request-move-article and + whatever it calls (right now, only nnimap-request-move article + respects it) + + * nnimap.el (nnimap-request-move-article): when + gnus-sum-hint-move-is-internal is set, don't do the extra + nnimap-request-article + 2005-02-24 Reiner Steib * nnheader.el (nnheader-find-file-noselect): Added doc string. diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 77642e1..3edd3f9 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -9228,6 +9228,11 @@ ACTION can be either `move' (the default), `crosspost' or `copy'." ((eq action 'move) ;; Remove this article from future suppression. (gnus-dup-unsuppress-article article) + (let* ((from-method (gnus-find-method-for-group + gnus-newsgroup-name)) + (to-method (gnus-find-method-for-group + to-newsgroup)) + (gnus-sum-hint-move-is-internal (gnus-method-equal from-method to-method))) (gnus-request-move-article article ; Article to move gnus-newsgroup-name ; From newsgroup @@ -9236,7 +9241,7 @@ ACTION can be either `move' (the default), `crosspost' or `copy'." (list 'gnus-request-accept-article to-newsgroup (list 'quote select-method) (not articles) t) ; Accept form - (not articles))) ; Only save nov last time + (not articles)))) ; Only save nov last time ;; Copy the article. ((eq action 'copy) (save-excursion diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el index afe6f98..b22d573 100644 --- a/lisp/mm-decode.el +++ b/lisp/mm-decode.el @@ -509,10 +509,10 @@ Postpone undisplaying of viewers for types in (message "Destroying external MIME viewers") (mm-destroy-parts mm-postponed-undisplay-list))) -(defun mm-dissect-buffer (&optional no-strict-mime loose-mime) +(defun mm-dissect-buffer (&optional no-strict-mime loose-mime from) "Dissect the current buffer and return a list of MIME handles." (save-excursion - (let (ct ctl type subtype cte cd description id result from) + (let (ct ctl type subtype cte cd description id result) (save-restriction (mail-narrow-to-head) (when (or no-strict-mime @@ -523,8 +523,9 @@ Postpone undisplaying of viewers for types in cte (mail-fetch-field "content-transfer-encoding") cd (mail-fetch-field "content-disposition") description (mail-fetch-field "content-description") - from (mail-fetch-field "from") id (mail-fetch-field "content-id")) + (unless from + (setq from (mail-fetch-field "from"))) ;; FIXME: In some circumstances, this code is running within ;; an unibyte macro. mail-extract-address-components ;; creates unibyte buffers. This `if', though not a perfect @@ -563,7 +564,7 @@ Postpone undisplaying of viewers for types in 'from from 'start start) (car ctl)) - (cons (car ctl) (mm-dissect-multipart ctl)))) + (cons (car ctl) (mm-dissect-multipart ctl from)))) (t (mm-possibly-verify-or-decrypt (mm-dissect-singlepart @@ -588,7 +589,7 @@ Postpone undisplaying of viewers for types in (mm-make-handle (mm-copy-to-buffer) ctl cte nil cdl description nil id))) -(defun mm-dissect-multipart (ctl) +(defun mm-dissect-multipart (ctl from) (goto-char (point-min)) (let* ((boundary (concat "\n--" (mail-content-type-get ctl 'boundary))) (close-delimiter (concat (regexp-quote boundary) "--[ \t]*$")) @@ -605,7 +606,7 @@ Postpone undisplaying of viewers for types in (save-excursion (save-restriction (narrow-to-region start (point)) - (setq parts (nconc (list (mm-dissect-buffer t)) parts))))) + (setq parts (nconc (list (mm-dissect-buffer t nil from)) parts))))) (end-of-line 2) (or (looking-at boundary) (forward-line 1)) @@ -614,7 +615,7 @@ Postpone undisplaying of viewers for types in (save-excursion (save-restriction (narrow-to-region start end) - (setq parts (nconc (list (mm-dissect-buffer t)) parts))))) + (setq parts (nconc (list (mm-dissect-buffer t nil from)) parts))))) (mm-possibly-verify-or-decrypt (nreverse parts) ctl))) (defun mm-copy-to-buffer () diff --git a/lisp/nnimap.el b/lisp/nnimap.el index 80d9b1b..6f79f95 100644 --- a/lisp/nnimap.el +++ b/lisp/nnimap.el @@ -1513,7 +1513,13 @@ function is generally only called when Gnus is shutting down." (nnimap-current-move-group group) (nnimap-current-move-server nnimap-current-server) result) - (and (nnimap-request-article article group server) + (gnus-message 9 "nnimap-request-move-article: this is an %s move" + (if gnus-sum-hint-move-is-internal + "internal" + "external")) + ;; request the article only when the move is NOT internal + (and (or gnus-sum-hint-move-is-internal + (nnimap-request-article article group server)) (save-excursion (set-buffer buf) (buffer-disable-undo (current-buffer))