Expunge FOLDER-SUPPORTS-MIME? and restructure INSERT-MESSAGE in
authorTaylor R. Campbell <net/mumble/campbell>
Fri, 16 Dec 2005 02:04:59 +0000 (02:04 +0000)
committerTaylor R. Campbell <net/mumble/campbell>
Fri, 16 Dec 2005 02:04:59 +0000 (02:04 +0000)
imail-top.scm slightly to fix bug introduced with new MIME parser,
where non-MIME messages in folders that claim to support MIME would
cause errors by trying to walk a MIME body structure that is #F.
Folders that support MIME specially now need only to implement
different MIME-MESSAGE-BODY-STRUCTURE & WRITE-MIME-MESSAGE-BODY-PART
methods, since there is default MIME support for all folders now.

v7/src/imail/imail-core.scm
v7/src/imail/imail-file.scm
v7/src/imail/imail-imap.scm
v7/src/imail/imail-mime.scm
v7/src/imail/imail-top.scm

index bec3e345b8712d616ef58abc2ef68ff4eb95277e..96700cd80ebf6018a83e8a0d3777b3c59ac71e16 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: imail-core.scm,v 1.152 2005/12/10 06:45:32 riastradh Exp $
+$Id: imail-core.scm,v 1.153 2005/12/16 02:04:59 riastradh Exp $
 
 Copyright 1999,2000,2001,2003,2005 Massachusetts Institute of Technology
 
@@ -574,11 +574,6 @@ USA.
 
 (define-generic disconnect-folder (folder))
 
-;; -------------------------------------------------------------------
-;; Return #T if FOLDER supports MIME parsing.
-
-(define-generic folder-supports-mime? (folder))
-
 ;; -------------------------------------------------------------------
 ;; Preload outline information about each message in the folder.
 ;; Normally used prior to generating a folder summary, to accelerate
index 5a117c874566a8c2c066b47105930e5ada5e2d24..bb5e3f3bb1d28768c6e156ad26796d58b952c764 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: imail-file.scm,v 1.86 2005/12/10 06:45:32 riastradh Exp $
+$Id: imail-file.scm,v 1.87 2005/12/16 02:04:59 riastradh Exp $
 
 Copyright 1999,2000,2001,2002,2003,2005 Massachusetts Institute of Technology
 
@@ -461,10 +461,6 @@ USA.
   folder
   unspecific)
 
-; (define-method folder-supports-mime? ((folder <file-folder>))
-;   folder
-;   #f)
-
 (define-method preload-folder-outlines ((folder <file-folder>))
   folder
   unspecific)
index 0eabac68989aa5676cc97a77e51d67d19c273ca4..82beb7747be0b40819cc8b56ff6e3d6ed9ec80fc 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: imail-imap.scm,v 1.205 2005/10/26 21:44:43 cph Exp $
+$Id: imail-imap.scm,v 1.206 2005/12/16 02:04:59 riastradh Exp $
 
 Copyright 1999,2000,2001,2003,2004,2005 Massachusetts Institute of Technology
 
@@ -1920,10 +1920,6 @@ USA.
 
 (define-method disconnect-folder ((folder <imap-folder>))
   (close-resource folder #t))
-
-(define-method folder-supports-mime? ((folder <imap-folder>))
-  folder
-  #t)
 \f
 ;;;; Container operations
 
index 098b21dc04036ee3e4699c3dbf6f49895f39ef5c..e9515fdbd2da0b99b49952c60676e5aaba0190eb 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: imail-mime.scm,v 1.2 2005/12/13 01:41:39 cph Exp $
+$Id: imail-mime.scm,v 1.3 2005/12/16 02:04:59 riastradh Exp $
 
 Copyright 2005 Taylor Campbell
 
@@ -27,10 +27,6 @@ USA.
 
 (declare (usual-integrations))
 \f
-(define-method folder-supports-mime? ((folder <folder>))
-  folder
-  #t)
-
 (define-method mime-message-body-structure ((message <message>))
   (or (get-property message 'MIME-MESSAGE-BODY-STRUCTURE #f)
       (cond ((mime:get-version-header message)
index 351d0a2afd90fd762c74b7cbbfa20472deab68c6..dcfaf22df150c266ca8beebd5f6e21f97fd1bf0a 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: imail-top.scm,v 1.293 2005/12/10 06:45:32 riastradh Exp $
+$Id: imail-top.scm,v 1.294 2005/12/16 02:04:59 riastradh Exp $
 
 Copyright 1999,2000,2001,2002,2003,2004 Massachusetts Institute of Technology
 Copyright 2005 Massachusetts Institute of Technology
@@ -2307,8 +2307,10 @@ Negative argument means search in reverse."
     (insert-header-fields message (and raw? (not (eq? raw? 'BODY-ONLY))) mark)
     (cond ((and raw? (not (eq? raw? 'HEADERS-ONLY)))
           (insert-message-body message mark))
-         ((folder-supports-mime? (message-folder message))
-          (insert-mime-message-body message mark inline-only? left-margin))
+         ((mime-message-body-structure message)
+          => (lambda (body-structure)
+                (insert-mime-message-body message body-structure
+                                          mark inline-only? left-margin)))
          (else
           (call-with-auto-wrapped-output-mark mark left-margin message
             (lambda (port)
@@ -2380,10 +2382,11 @@ Negative argument means search in reverse."
 \f
 ;;;; MIME message formatting
 
-(define (insert-mime-message-body message mark inline-only? left-margin)
+(define (insert-mime-message-body message body-structure
+                                  mark inline-only? left-margin)
   (walk-mime-message-part
    message
-   (mime-message-body-structure message)
+   body-structure
    '()
    (make-walk-mime-context inline-only? left-margin #f '())
    mark))