From: morioka Date: Wed, 6 May 1998 14:13:58 +0000 (+0000) Subject: Sync up with SEMI 1.4.1. X-Git-Tag: wemi-1_4_1~4 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b45b1ecd32f43405aa1204a5a8e0f0dedc538bc;p=elisp%2Fsemi.git Sync up with SEMI 1.4.1. --- diff --git a/mime-parse.el b/mime-parse.el index ac77bff..ea75f65 100644 --- a/mime-parse.el +++ b/mime-parse.el @@ -174,13 +174,6 @@ and return parsed it. [mime-parse.el]" (defsubst mime-entity-encoding (entity-info) (aref entity-info 6)) (defsubst mime-entity-children (entity-info) (aref entity-info 7)) -(defsubst mime-type/subtype-string (type &optional subtype) - "Return type/subtype string from TYPE and SUBTYPE." - (if type - (if subtype - (format "%s/%s" type subtype) - (format "%s" type)))) - (defsubst mime-entity-type/subtype (entity-info) (mime-type/subtype-string (mime-entity-media-type entity-info) (mime-entity-media-subtype entity-info))) diff --git a/mime-play.el b/mime-play.el index c64c4d1..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 @@ -207,7 +210,10 @@ specified, play as it. Default MODE is \"play\"." end name (cdr (assq 'encoding situation))) (message "External method is starting...") - (let ((command (format method name))) + (let ((command + (mailcap-format-command + method + (cons (cons 'filename name) situation)))) (start-process command mime-echo-buffer-name shell-file-name shell-command-switch command) )