+(defvar mime-preview-condition nil
+ "Condition-tree about how to display entity.")
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . application)(subtype . octet-stream)
+ (encoding . nil)
+ (body . visible)))
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . application)(subtype . octet-stream)
+ (encoding . "7bit")
+ (body . visible)))
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . application)(subtype . octet-stream)
+ (encoding . "8bit")
+ (body . visible)))
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . application)(subtype . pgp)
+ (body . visible)))
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . application)(subtype . x-latex)
+ (body . visible)))
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . application)(subtype . x-selection)
+ (body . visible)))
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . application)(subtype . x-comment)
+ (body . visible)))
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . message)(subtype . delivery-status)
+ (body . visible)))
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((body . visible)
+ (body-presentation-method . with-filter)
+ (body-filter . mime-preview-filter-for-text/plain)))
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . nil)
+ (body . visible)
+ (body-presentation-method . with-filter)
+ (body-filter . mime-preview-filter-for-text/plain)))
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . text)(subtype . enriched)
+ (body . visible)
+ (body-presentation-method . with-filter)
+ (body-filter
+ . mime-preview-filter-for-text/enriched)))
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . text)(subtype . richtext)
+ (body . visible)
+ (body-presentation-method . with-filter)
+ (body-filter
+ . mime-preview-filter-for-text/richtext)))
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . text)(subtype . t)
+ (body . visible)
+ (body-presentation-method . with-filter)
+ (body-filter . mime-preview-filter-for-text/plain)))
+
+(ctree-set-calist-strictly
+ 'mime-preview-condition '((type . message)(subtype . partial)
+ (body-presentation-method
+ . mime-view-insert-message/partial-button)))
+
+(defun mime-view-body-visible-p (entity message-info)
+ "Return non-nil if body of ENTITY is visible."
+ (ctree-match-calist mime-preview-condition
+ (list* (cons 'type (mime-entity-media-type entity))
+ (cons 'subtype (mime-entity-media-subtype entity))
+ (cons 'encoding (mime-entity-encoding entity))
+ (cons 'major-mode major-mode)
+ (mime-entity-parameters entity))))
+
+
+;;; @@@ entity filter