Mercurial > hg > xemacs-beta
diff lisp/vm/vm-digest.el @ 146:2af401a6ecca r20-2p1
Import from CVS: tag r20-2p1
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:34:46 +0200 |
parents | 585fb297b004 |
children |
line wrap: on
line diff
--- a/lisp/vm/vm-digest.el Mon Aug 13 09:34:16 2007 +0200 +++ b/lisp/vm/vm-digest.el Mon Aug 13 09:34:46 2007 +0200 @@ -132,13 +132,20 @@ (defun vm-mime-burst-message (m) "Burst messages from the digest message M. M should be a message struct for a real message. -MIME encoding is expected. The message content type -must be either message/* or multipart/digest." +MIME encoding is expected. Somewhere within the MIME layout +there must be at least one part of type message/news, message/rfc822 or +multipart/digest. If there are multiple parts matching those types, +all of them will be burst." (let ((ident-header nil) - (layout (vm-mm-layout m))) + (did-burst nil) + (list (vm-mime-find-digests-in-layout (vm-mm-layout m)))) (if vm-digest-identifier-header-format (setq ident-header (vm-sprintf 'vm-digest-identifier-header-format m))) - (vm-mime-burst-layout layout ident-header))) + (while list + (setq did-burst (or did-burst + (vm-mime-burst-layout (car list) ident-header))) + (setq list (cdr list))) + did-burst)) (defun vm-mime-burst-layout (layout ident-header) (let ((work-buffer nil) @@ -608,12 +615,15 @@ (set-buffer (vm-buffer-of m)) (let ((layout (vm-mm-layout m))) (if (and (vectorp layout) - (or (vm-mime-types-match "multipart/digest" - (car (vm-mm-layout-type layout))) - (vm-mime-types-match "message/rfc822" - (car (vm-mm-layout-type layout))) - (vm-mime-types-match "message/news" - (car (vm-mm-layout-type layout))))) + (or (vm-mime-layout-contains-type + layout + "multipart/digest") + (vm-mime-layout-contains-type + layout + "message/rfc822") + (vm-mime-layout-contains-type + layout + "message/news"))) (throw 'return-value "mime")))) (save-excursion (save-restriction