From: morioka Date: Wed, 6 May 1998 02:54:01 +0000 (+0000) Subject: (mime-sort-situation): New function. X-Git-Tag: semi-1_4_1~6 X-Git-Url: http://git.chise.org/gitweb/?p=elisp%2Fsemi.git;a=commitdiff_plain;h=38fddeb895af112e65dd8aaa2a3509e9377da095 (mime-sort-situation): New function. (mime-raw-play-entity): Use 'mime-sort-situation. --- 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