New Edwin variable IMAIL-INLINE-MIME-TEXT-LIMIT, to prevent gargantuan
authorTaylor R. Campbell <net/mumble/campbell>
Sun, 11 Mar 2007 22:26:45 +0000 (22:26 +0000)
committerTaylor R. Campbell <net/mumble/campbell>
Sun, 11 Mar 2007 22:26:45 +0000 (22:26 +0000)
text parts that satisfy all the other rules for in-line display from
screwing Edwin.

This affects the main body of the message, too, however.  We could
work around this easily for unipart messges, although anything else
would require a little more effort.  In any case, although it is a
minor annoyance to have to type `C-c C-t C-e' to show the body of a
very long message, it is a much more major annoyance for Edwin to lose
spectacularly for a message too large to fit in its heap.

v7/src/imail/imail-top.scm

index 6964f177faf16f4aa0f5ed6d3d78c4e744837c81..4b1af433db68a09cde25fcbe6cf016105b102435 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: imail-top.scm,v 1.297 2007/03/11 01:11:33 riastradh Exp $
+$Id: imail-top.scm,v 1.298 2007/03/11 22:26:45 riastradh Exp $
 
 Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
@@ -181,6 +181,13 @@ Note that this variable does not affect subparts of multipart/alternative."
   '(HTML ENRICHED)
   list-of-strings?)
 
+(define-variable imail-inline-mime-text-limit
+  "Size limit in octets for showing MIME text message parts in-line.
+MIME text message parts less than this size are shown in-line by default.
+This variable can also be #F; then all parts will be shown in-line."
+  8192
+  (lambda (x) (or (boolean? x) (exact-nonnegative-integer? x))))
+
 (define-variable imail-mime-attachment-directory
   "Default directory in which to store MIME attachments.
 Either #F or a pathname."
@@ -2486,7 +2493,10 @@ Negative argument means search in reverse."
                                            mark))
                       "\\'")
        (mime-body-parameter body 'CHARSET "us-ascii")
-       #t)))
+       #t)
+       (let ((limit (ref-variable imail-inline-mime-text-limit mark)))
+         (or (not limit)
+             (< (mime-body-one-part-n-octets body) limit)))))
 
 (define-method walk-mime-message-part
     (message (body <mime-body-multipart>) selector context mark)