From 38fddeb895af112e65dd8aaa2a3509e9377da095 Mon Sep 17 00:00:00 2001 From: morioka Date: Wed, 6 May 1998 02:54:01 +0000 Subject: [PATCH] (mime-sort-situation): New function. (mime-raw-play-entity): Use 'mime-sort-situation. --- mime-play.el | 63 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/mime-play.el b/mime-play.el index 90a013d..95d93e1 100644 --- a/mime-play.el +++ b/mime-play.el @@ -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 -- 1.7.10.4