(mime-sort-situation): New function.
authormorioka <morioka>
Wed, 6 May 1998 02:54:01 +0000 (02:54 +0000)
committermorioka <morioka>
Wed, 6 May 1998 02:54:01 +0000 (02:54 +0000)
(mime-raw-play-entity): Use 'mime-sort-situation.

mime-play.el

index 90a013d..95d93e1 100644 (file)
@@ -84,6 +84,38 @@ If MODE is specified, play as it.  Default MODE is \"play\"."
            (goto-char mime-preview-after-decoded-position)
            )))))
 
+(defun mime-sort-situation (situation)
+  (sort situation
+       #'(lambda (a b)
+           (let ((a-t (car a))
+                 (b-t (car b))
+                 (order '((type . 1)
+                          (subtype . 2)
+                          (mode . 3)
+                          (major-mode . 4)))
+                 a-order b-order)
+             (if (symbolp a-t)
+                 (let ((ret (assq a-t order)))
+                   (if ret
+                       (setq a-order (cdr ret))
+                     (setq a-order 5)
+                     ))
+               (setq a-order 6)
+               )
+             (if (symbolp b-t)
+                 (let ((ret (assq b-t order)))
+                   (if ret
+                       (setq b-order (cdr ret))
+                     (setq b-order 5)
+                     ))
+               (setq b-order 6)
+               )
+             (if (= a-order b-order)
+                 (string< (format "%s" a-t)(format "%s" b-t))
+               (< a-order b-order))
+             )))
+  )
+
 (defun mime-raw-play-entity (entity-info &optional mode)
   "Play entity specified by ENTITY-INFO.
 It decodes the entity to call internal or external method.  The method
@@ -136,36 +168,7 @@ specified, play as it.  Default MODE is \"play\"."
                                            (cdr (assq 'method situation)))
                                    situation)))
                                ret)))
-            (setq ret
-                  (sort ret
-                        #'(lambda (a b)
-                            (let ((a-t (car a))
-                                  (b-t (car b))
-                                  (order '((type . 1)
-                                           (subtype . 2)
-                                           (mode . 3)
-                                           (major-mode . 4)))
-                                  a-order b-order)
-                              (if (symbolp a-t)
-                                  (let ((ret (assq a-t order)))
-                                    (if ret
-                                        (setq a-order (cdr ret))
-                                      (setq a-order 5)
-                                      ))
-                                (setq a-order 6)
-                                )
-                              (if (symbolp b-t)
-                                  (let ((ret (assq b-t order)))
-                                    (if ret
-                                        (setq b-order (cdr ret))
-                                      (setq b-order 5)
-                                      ))
-                                (setq b-order 6)
-                                )
-                              (if (= a-order b-order)
-                                  (string< (format "%s" a-t)(format "%s" b-t))
-                                (< a-order b-order))
-                              ))))
+            (setq ret (mime-sort-situation ret))
             (ctree-set-calist-strictly 'mime-acting-situation-examples ret)
             )
            (t