From: ari Date: Sun, 14 Dec 2003 12:56:11 +0000 (+0000) Subject: * mime-play.el (mime-play-delete-file-immediately): New user option. X-Git-Tag: semi-1_14_6~7 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2264c00591a7a0c44419c2f7228840dd7765bb27;p=elisp%2Fsemi.git * mime-play.el (mime-play-delete-file-immediately): New user option. (mime-mailcap-method-sentinel): Use it. (mime-mailcap-delete-played-files): New function; set up for `kill-emacs-hook'. --- diff --git a/ChangeLog b/ChangeLog index d543913..9b6ff0e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-12-12 ARISAWA Akihiro + + * mime-play.el (mime-play-delete-file-immediately): New user option. + (mime-mailcap-method-sentinel): Use it. + (mime-mailcap-delete-played-files): New function; set up for + `kill-emacs-hook'. + 2002-05-18 ARISAWA Akihiro * mime-play.el (mime-activate-mailcap-method): Don't use diff --git a/mime-play.el b/mime-play.el index 846f8cc..32283ad 100644 --- a/mime-play.el +++ b/mime-play.el @@ -43,6 +43,11 @@ If t, it means current directory." :type '(choice (const :tag "Current directory" t) (directory))) +(defcustom mime-play-delete-file-immediately t + "If non-nil, delete played file immediately." + :group 'mime-view + :type 'boolean) + (defvar mime-play-find-every-situations t "*Find every available situations if non-nil.") @@ -159,13 +164,19 @@ specified, play as it. Default MODE is \"play\"." (set-process-sentinel process 'mime-mailcap-method-sentinel)))) (defun mime-mailcap-method-sentinel (process event) - (let ((file (cdr (assq process mime-mailcap-method-filename-alist)))) - (when (file-exists-p file) - (ignore-errors - (delete-file file) - (delete-directory (file-name-directory file))))) - (remove-alist 'mime-mailcap-method-filename-alist process) - (message "%s %s" process event)) + (when mime-play-delete-file-immediately + (let ((file (cdr (assq process mime-mailcap-method-filename-alist)))) + (if (file-exists-p file) + (delete-file file))) + (remove-alist 'mime-mailcap-method-filename-alist process)) + (message (format "%s %s" process event))) + +(defun mime-mailcap-delete-played-files () + (dolist (elem mime-mailcap-method-filename-alist) + (when (file-exists-p (cdr elem)) + (delete-file (cdr elem))))) + +(add-hook 'kill-emacs-hook 'mime-mailcap-delete-played-files) (defvar mime-echo-window-is-shared-with-bbdb (module-installed-p 'bbdb)