changeset 109484:9d999899723d

Fix multiple-recipient handling of Gnus S/MIME. * mml.el (mml-parse-1): Collect "certfile" attributes in "<#secure>" tag (Bug#6654).
author Daiki Ueno <ueno@unixuser.org>
date Wed, 21 Jul 2010 14:56:18 +0900
parents 00c18905e17a
children bb9894b5234f
files lisp/gnus/ChangeLog lisp/gnus/mml.el
diffstat 2 files changed, 13 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/gnus/ChangeLog	Wed Jul 21 06:40:47 2010 +0200
+++ b/lisp/gnus/ChangeLog	Wed Jul 21 14:56:18 2010 +0900
@@ -1,3 +1,8 @@
+2010-07-21  Daiki Ueno  <ueno@unixuser.org>
+
+	* mml.el (mml-parse-1): Collect "certfile" attributes in "<#secure>"
+	tag (Bug#6654).
+
 2010-07-20  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* gnus-sum.el (gnus-summary-bookmark-make-record): Bookmark position in
--- a/lisp/gnus/mml.el	Wed Jul 21 06:40:47 2010 +0200
+++ b/lisp/gnus/mml.el	Wed Jul 21 14:56:18 2010 +0900
@@ -228,7 +228,10 @@
 	(let* (secure-mode
 	       (taginfo (mml-read-tag))
 	       (keyfile (cdr (assq 'keyfile taginfo)))
-	       (certfile (cdr (assq 'certfile taginfo)))
+	       (certfiles (delq nil (mapcar (lambda (tag)
+					      (if (eq (car-safe tag) 'certfile)
+						  (cdr tag)))
+					    taginfo)))
 	       (recipients (cdr (assq 'recipients taginfo)))
 	       (sender (cdr (assq 'sender taginfo)))
 	       (location (cdr (assq 'tag-location taginfo)))
@@ -254,8 +257,10 @@
 				 ,@tags
 				 ,(if keyfile "keyfile")
 				 ,keyfile
-				 ,(if certfile "certfile")
-				 ,certfile
+				 ,@(apply #'append
+					  (mapcar (lambda (certfile)
+						    (list "certfile" certfile))
+						  certfiles))
 				 ,(if recipients "recipients")
 				 ,recipients
 				 ,(if sender "sender")