[gnus git] branch master updated: m0-7-213-g49eaab1 =1= 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
Katsumi Yamaoka <[email protected]>
| Newsgroups | gmane.emacs.gnus.cvs |
|---|---|
| Message-ID | <[email protected]> |
via 49eaab1eaf68ccd0cecc052d33e2313edbcccad5 (commit)
from aee4ad783678a5d6a48ea356ee647bf45fe524ff (commit)
- Log -----------------------------------------------------------------
commit 49eaab1eaf68ccd0cecc052d33e2313edbcccad5
Author: Katsumi Yamaoka <[email protected]>
Date: Mon Aug 12 05:59:37 2013 +0000
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
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 006b291..c633ea0 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,9 @@
2013-08-12 Katsumi Yamaoka <[email protected]>
+ * 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
using a 1-min. timer.
diff --git a/lisp/mm-decode.el b/lisp/mm-decode.el
index 40c1d84..dbbf0be 100644
--- a/lisp/mm-decode.el
+++ b/lisp/mm-decode.el
@@ -954,10 +954,20 @@ external if displayed external."
method file (mm-handle-type handle))))
(unwind-protect
(if window-system
+ (set-process-sentinel
(start-process "*display*" nil
mm-external-terminal-program
"-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 'gnus-win)
(set-buffer
@@ -971,11 +981,15 @@ external if displayed external."
(set-process-sentinel
(get-buffer-process buffer)
`(lambda (process state)
- (if (eq 'exit (process-status process))
+ (when (eq 'exit (process-status process))
+ (ignore-errors (delete-file ,file))
+ (ignore-errors
+ (delete-directory ,(file-name-directory file)))
(gnus-configure-windows
',gnus-current-window-configuration))))
(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))
'external)
(copiousoutput
@@ -1021,15 +1035,14 @@ external if displayed external."
(buffer buffer)
(command command)
(handle handle))
+ (lambda (process state)
+ (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)))))
- (lambda (process state)
- (when (eq (process-status process) 'exit)
+ (ignore-errors (delete-file file))
+ (ignore-errors (delete-directory
+ (file-name-directory file)))))
(when (buffer-live-p outbuf)
(with-current-buffer outbuf
(let ((buffer-read-only nil)
-----------------------------------------------------------------------
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we listed those
revisions in full, above.
Summary of changes:
lisp/ChangeLog | 4 ++++
lisp/mm-decode.el | 43 ++++++++++++++++++++++++++++---------------
2 files changed, 32 insertions(+), 15 deletions(-)
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnus Project".
The branch, master has been updated
hooks/post-receive
--
Gnus Project