Commit 7cfa5cec authored by Katsumi Yamaoka's avatar Katsumi Yamaoka
Browse files

lisp/gnus/mm-decode.el (mm-display-external): Run a timer for the temp files...

lisp/gnus/mm-decode.el (mm-display-external): Run a timer for the temp files deletion after a viwer exits; add a deletion timer for the needsterm case, too
parent d401ef43
2013-08-12 Katsumi Yamaoka <yamaoka@jpl.org> 2013-08-12 Katsumi Yamaoka <yamaoka@jpl.org>
   
* mm-decode.el (mm-display-external): Run a timer for the temp files
deletion after a viwer exits; add a deletion timer for the needsterm
case, too.
* mm-decode.el (mm-display-external): Try to delete temporary files by * mm-decode.el (mm-display-external): Try to delete temporary files by
using a 1-min. timer. using a 1-min. timer.
   
......
...@@ -954,10 +954,20 @@ external if displayed external." ...@@ -954,10 +954,20 @@ external if displayed external."
method file (mm-handle-type handle)))) method file (mm-handle-type handle))))
(unwind-protect (unwind-protect
(if window-system (if window-system
(start-process "*display*" nil (set-process-sentinel
mm-external-terminal-program (start-process "*display*" nil
"-e" shell-file-name mm-external-terminal-program
shell-command-switch command) "-e" shell-file-name
shell-command-switch command)
`(lambda (process state)
(if (eq 'exit (process-status process))
(run-at-time
60.0 nil
(lambda ()
(ignore-errors (delete-file ,file))
(ignore-errors (delete-directory
,(file-name-directory
file))))))))
(require 'term) (require 'term)
(require 'gnus-win) (require 'gnus-win)
(set-buffer (set-buffer
...@@ -971,11 +981,15 @@ external if displayed external." ...@@ -971,11 +981,15 @@ external if displayed external."
(set-process-sentinel (set-process-sentinel
(get-buffer-process buffer) (get-buffer-process buffer)
`(lambda (process state) `(lambda (process state)
(if (eq 'exit (process-status process)) (when (eq 'exit (process-status process))
(gnus-configure-windows (ignore-errors (delete-file ,file))
',gnus-current-window-configuration)))) (ignore-errors
(delete-directory ,(file-name-directory file)))
(gnus-configure-windows
',gnus-current-window-configuration))))
(gnus-configure-windows 'display-term)) (gnus-configure-windows 'display-term))
(mm-handle-set-external-undisplayer handle (cons file buffer))) (mm-handle-set-external-undisplayer handle (cons file buffer))
(add-to-list 'mm-temp-files-to-be-deleted file t))
(message "Displaying %s..." command)) (message "Displaying %s..." command))
'external) 'external)
(copiousoutput (copiousoutput
...@@ -1021,15 +1035,14 @@ external if displayed external." ...@@ -1021,15 +1035,14 @@ external if displayed external."
(buffer buffer) (buffer buffer)
(command command) (command command)
(handle handle)) (handle handle))
(run-at-time
60.0 nil
(lambda ()
(ignore-errors
(delete-file file))
(ignore-errors
(delete-directory (file-name-directory file)))))
(lambda (process state) (lambda (process state)
(when (eq (process-status process) 'exit) (when (eq (process-status process) 'exit)
(run-at-time
60.0 nil
(lambda ()
(ignore-errors (delete-file file))
(ignore-errors (delete-directory
(file-name-directory file)))))
(when (buffer-live-p outbuf) (when (buffer-live-p outbuf)
(with-current-buffer outbuf (with-current-buffer outbuf
(let ((buffer-read-only nil) (let ((buffer-read-only nil)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment