aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2005-02-28 00:04:11 +0000
committerMiles Bader2005-02-28 00:04:11 +0000
commitee7d3cc0906fa618d8fa99b373d336336f643f02 (patch)
tree87c763e74e8bc1bae8bddef77183e26e79b09942
parentfc88c2888fce5a5c82d9b97bc1ab7958a42c2b7e (diff)
downloademacs-ee7d3cc0906fa618d8fa99b373d336336f643f02.tar.gz
emacs-ee7d3cc0906fa618d8fa99b373d336336f643f02.zip
Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-139
Merge from gnus--rel--5.10 Patches applied: * miles@gnu.org--gnu-2005/gnus--rel--5.10 (patch 32-33) - Merge from emacs--cvs-trunk--0 - Update from CVS 2005-02-27 Arne J,Ax(Brgensen <arne@arnested.dk> * lisp/gnus/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.
-rw-r--r--lisp/gnus/ChangeLog9
-rw-r--r--lisp/gnus/mm-decode.el15
2 files changed, 17 insertions, 7 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 79218857bbd..7ade8548764 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,12 @@
12005-02-27 Arne J,Ax(Brgensen <arne@arnested.dk>
2
3 * mm-decode.el (mm-dissect-buffer): Pass the from field on to
4 `mm-dissect-multipart' and receive the from field as an (optional)
5 argument from `mm-dissect-multipart'.
6 (mm-dissect-multipart): Receive the from field as an argument and
7 pass it on when we call `mm-dissect-buffer' on MIME parts. Fixes
8 verification/decryption of signed/encrypted MIME parts.
9
12005-02-26 Stefan Monnier <monnier@iro.umontreal.ca> 102005-02-26 Stefan Monnier <monnier@iro.umontreal.ca>
2 11
3 * gnus-sum.el (gnus-summary-exit): Move point after displaying the 12 * gnus-sum.el (gnus-summary-exit): Move point after displaying the
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 579571e16aa..10c7ea16db4 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -509,10 +509,10 @@ Postpone undisplaying of viewers for types in
509 (message "Destroying external MIME viewers") 509 (message "Destroying external MIME viewers")
510 (mm-destroy-parts mm-postponed-undisplay-list))) 510 (mm-destroy-parts mm-postponed-undisplay-list)))
511 511
512(defun mm-dissect-buffer (&optional no-strict-mime loose-mime) 512(defun mm-dissect-buffer (&optional no-strict-mime loose-mime from)
513 "Dissect the current buffer and return a list of MIME handles." 513 "Dissect the current buffer and return a list of MIME handles."
514 (save-excursion 514 (save-excursion
515 (let (ct ctl type subtype cte cd description id result from) 515 (let (ct ctl type subtype cte cd description id result)
516 (save-restriction 516 (save-restriction
517 (mail-narrow-to-head) 517 (mail-narrow-to-head)
518 (when (or no-strict-mime 518 (when (or no-strict-mime
@@ -523,8 +523,9 @@ Postpone undisplaying of viewers for types in
523 cte (mail-fetch-field "content-transfer-encoding") 523 cte (mail-fetch-field "content-transfer-encoding")
524 cd (mail-fetch-field "content-disposition") 524 cd (mail-fetch-field "content-disposition")
525 description (mail-fetch-field "content-description") 525 description (mail-fetch-field "content-description")
526 from (mail-fetch-field "from")
527 id (mail-fetch-field "content-id")) 526 id (mail-fetch-field "content-id"))
527 (unless from
528 (setq from (mail-fetch-field "from")))
528 ;; FIXME: In some circumstances, this code is running within 529 ;; FIXME: In some circumstances, this code is running within
529 ;; an unibyte macro. mail-extract-address-components 530 ;; an unibyte macro. mail-extract-address-components
530 ;; creates unibyte buffers. This `if', though not a perfect 531 ;; creates unibyte buffers. This `if', though not a perfect
@@ -567,7 +568,7 @@ Postpone undisplaying of viewers for types in
567 'from from 568 'from from
568 'start start) 569 'start start)
569 (car ctl)) 570 (car ctl))
570 (cons (car ctl) (mm-dissect-multipart ctl)))) 571 (cons (car ctl) (mm-dissect-multipart ctl from))))
571 (t 572 (t
572 (mm-possibly-verify-or-decrypt 573 (mm-possibly-verify-or-decrypt
573 (mm-dissect-singlepart 574 (mm-dissect-singlepart
@@ -594,7 +595,7 @@ Postpone undisplaying of viewers for types in
594 (mm-make-handle 595 (mm-make-handle
595 (mm-copy-to-buffer) ctl cte nil cdl description nil id))) 596 (mm-copy-to-buffer) ctl cte nil cdl description nil id)))
596 597
597(defun mm-dissect-multipart (ctl) 598(defun mm-dissect-multipart (ctl from)
598 (goto-char (point-min)) 599 (goto-char (point-min))
599 (let* ((boundary (concat "\n--" (mail-content-type-get ctl 'boundary))) 600 (let* ((boundary (concat "\n--" (mail-content-type-get ctl 'boundary)))
600 (close-delimiter (concat (regexp-quote boundary) "--[ \t]*$")) 601 (close-delimiter (concat (regexp-quote boundary) "--[ \t]*$"))
@@ -611,7 +612,7 @@ Postpone undisplaying of viewers for types in
611 (save-excursion 612 (save-excursion
612 (save-restriction 613 (save-restriction
613 (narrow-to-region start (point)) 614 (narrow-to-region start (point))
614 (setq parts (nconc (list (mm-dissect-buffer t)) parts))))) 615 (setq parts (nconc (list (mm-dissect-buffer t nil from)) parts)))))
615 (end-of-line 2) 616 (end-of-line 2)
616 (or (looking-at boundary) 617 (or (looking-at boundary)
617 (forward-line 1)) 618 (forward-line 1))
@@ -620,7 +621,7 @@ Postpone undisplaying of viewers for types in
620 (save-excursion 621 (save-excursion
621 (save-restriction 622 (save-restriction
622 (narrow-to-region start end) 623 (narrow-to-region start end)
623 (setq parts (nconc (list (mm-dissect-buffer t)) parts))))) 624 (setq parts (nconc (list (mm-dissect-buffer t nil from)) parts)))))
624 (mm-possibly-verify-or-decrypt (nreverse parts) ctl))) 625 (mm-possibly-verify-or-decrypt (nreverse parts) ctl)))
625 626
626(defun mm-copy-to-buffer () 627(defun mm-copy-to-buffer ()