X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mime-play.el;h=b4a03a292fc4a09bb8981845864c596a2fdf4d3f;hb=86bbd8d3d04a7b9b8a4d16f4c55a00348b025912;hp=0c130924ec8457af4f5e97b2e414c27dc6f9c2c6;hpb=b693eef2192b0ff9222027677f873933ee4d015a;p=elisp%2Fsemi.git diff --git a/mime-play.el b/mime-play.el index 0c13092..b4a03a2 100644 --- a/mime-play.el +++ b/mime-play.el @@ -159,7 +159,15 @@ If MODE is specified, play as it. Default MODE is \"play\"." (interactive "P") (let ((entity (get-text-property (point) 'mime-view-entity))) (if entity - (let ((situation (list (cons 'mode (or mode "play"))))) + (let ((situation + (get-text-property (point) 'mime-view-situation))) + (or mode + (setq mode "play")) + (setq situation + (if (assq 'mode situation) + (put-alist 'mode mode (copy-alist situation)) + (cons (cons 'mode mode) + situation))) (if ignore-examples (setq situation (cons (cons 'ignore-examples ignore-examples) @@ -326,7 +334,11 @@ specified, play as it. Default MODE is \"play\"." ;; ) (t (mime-show-echo-buffer "No method are specified for %s\n" - (mime-entity-type/subtype entity)) + (mime-type/subtype-string + (cdr (assq 'type situation)) + (cdr (assq 'subtype situation)))) + (if (y-or-n-p "Do you want to save current entity to disk?") + (mime-save-content entity situation)) )) )) @@ -501,16 +513,14 @@ SUBTYPE is symbol to indicate subtype of media-type.") ) t))) (setq rest (cdr rest)))) - (if type - (mime-play-entity - entity - (put-alist 'type type - (put-alist 'subtype subtype - (del-alist 'method - (copy-alist situation)))) - 'mime-detect-content) - )) - ) + (setq situation (del-alist 'method (copy-alist situation))) + (mime-play-entity entity + (if type + (put-alist 'type type + (put-alist 'subtype subtype + situation)) + situation) + 'mime-detect-content))) ;;; @ mail/news message @@ -611,7 +621,9 @@ It is registered to variable `mime-preview-quitting-method-alist'." (kill-buffer (current-buffer)) ))) ))) - (if (and total (> total 0)) + (if (and total (> total 0) + (>= (length (directory-files root-dir nil "^[0-9]+$" t)) + total)) (catch 'tag (save-excursion (set-buffer (get-buffer-create mime-temp-buffer-name)) @@ -642,15 +654,11 @@ It is registered to variable `mime-preview-quitting-method-alist'." (and (file-exists-p file) (delete-file file) )) - (save-window-excursion - (setq major-mode 'mime-show-message-mode) - (mime-view-buffer (current-buffer) nil mother) - ) (let ((pwin (or (get-buffer-window mother) (get-largest-window))) - (pbuf (save-excursion - (set-buffer full-buf) - mime-preview-buffer))) + (pbuf (mime-display-message + (mime-open-entity 'buffer (current-buffer)) + nil mother nil 'mime-show-message-mode))) (set-window-buffer pwin pbuf) (select-window pwin) )))))