emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113811: lisp/gnus/mm-decode.el (mm-display-external


From: Katsumi Yamaoka
Subject: [Emacs-diffs] trunk r113811: 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
Date: Mon, 12 Aug 2013 05:59:54 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113811
revision-id: address@hidden
parent: address@hidden
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Mon 2013-08-12 05:59:47 +0000
message:
  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
modified:
  lisp/gnus/ChangeLog            changelog-20091113204419-o5vbwnq5f7feedwu-1433
  lisp/gnus/mm-decode.el         
mmdecode.el-20091113204419-o5vbwnq5f7feedwu-1971
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog       2013-08-12 01:03:33 +0000
+++ b/lisp/gnus/ChangeLog       2013-08-12 05:59:47 +0000
@@ -1,5 +1,9 @@
 2013-08-12  Katsumi Yamaoka  <address@hidden>
 
+       * 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.
 

=== modified file 'lisp/gnus/mm-decode.el'
--- a/lisp/gnus/mm-decode.el    2013-08-12 01:03:33 +0000
+++ b/lisp/gnus/mm-decode.el    2013-08-12 05:59:47 +0000
@@ -954,10 +954,20 @@
                            method file (mm-handle-type handle))))
              (unwind-protect
                  (if window-system
-                     (start-process "*display*" nil
-                                    mm-external-terminal-program
-                                    "-e" shell-file-name
-                                    shell-command-switch command)
+                     (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 @@
                    (set-process-sentinel
                     (get-buffer-process buffer)
                     `(lambda (process state)
-                       (if (eq 'exit (process-status process))
-                           (gnus-configure-windows
-                            ',gnus-current-window-configuration))))
+                       (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 @@
                                   (buffer buffer)
                                   (command command)
                                   (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)
                         (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)
                             (with-current-buffer outbuf
                               (let ((buffer-read-only nil)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]