(mime-delq-null-situation): Add new optional argument `ignored-value'.
authormorioka <morioka>
Wed, 8 Jul 1998 13:09:03 +0000 (13:09 +0000)
committermorioka <morioka>
Wed, 8 Jul 1998 13:09:03 +0000 (13:09 +0000)
(mime-raw-play-entity): Add new optional argument `ignored-method';
add `ignore-examples' to acting-situation.
(mime-detect-content): Specify `ignore-examples' of acting-situation
as `ignore-examples' of `mime-raw-play-entity'; specify
`mime-detect-content' as `ignored-method' of `mime-raw-play-entity'.

mime-play.el

index de83764..625b628 100644 (file)
@@ -172,13 +172,16 @@ If MODE is specified, play as it.  Default MODE is \"play\"."
              )))
   )
 
-(defsubst mime-delq-null-situation (situations field)
+(defsubst mime-delq-null-situation (situations field
+                                              &optional ignored-value)
   (let (dest)
     (while situations
-      (let ((situation (car situations)))
-       (if (assq field situation)
-           (setq dest (cons situation dest))
-         ))
+      (let* ((situation (car situations))
+            (cell (assq field situation)))
+       (if cell
+           (or (eq (cdr cell) ignored-value)
+               (setq dest (cons situation dest))
+               )))
       (setq situations (cdr situations)))
     dest))
 
@@ -200,7 +203,8 @@ If MODE is specified, play as it.  Default MODE is \"play\"."
     (cons match example)
     ))
 
-(defun mime-raw-play-entity (entity &optional mode situation ignore-examples)
+(defun mime-raw-play-entity (entity &optional mode situation ignore-examples
+                                   ignored-method)
   "Play entity specified by ENTITY.
 It decodes the entity to call internal or external method.  The method
 is selected from variable `mime-acting-condition'.  If MODE is
@@ -211,11 +215,16 @@ specified, play as it.  Default MODE is \"play\"."
     (if mode
        (setq situation (cons (cons 'mode mode) situation))
       )
+    (if ignore-examples
+       (or (assq 'ignore-examples situation)
+           (setq situation
+                 (cons (cons 'ignore-examples ignore-examples) situation)))
+      )
     (setq ret
          (mime-delq-null-situation
           (ctree-find-calist mime-acting-condition situation
                              mime-view-find-every-acting-situation)
-          'method))
+          'method ignored-method))
     (or ignore-examples
        (if (cdr ret)
            (let ((rest ret)
@@ -488,10 +497,13 @@ SUBTYPE is symbol to indicate subtype of media-type.")
                  (setq rest (cdr rest))))))
        (if type
            (mime-raw-play-entity
-            entity "play"
+            entity nil
             (put-alist 'type type
                        (put-alist 'subtype subtype
-                                  (copy-alist situation))))
+                                  (del-alist 'method
+                                             (copy-alist situation))))
+            (cdr (assq 'ignore-examples situation))
+            'mime-detect-content)
          ))
       )))