+2003-08-27 Simon Josefsson <jas@extundo.com>
+
+ * mm-decode.el (mm-remove-part): Try to kill external displayers
+ cleanly first (if it refuses, C-g aborts loop and kill process
+ unconditionally). Also make sure process is dead before we remove
+ the files it may be using. Reported by David Coe
+ <davidc@debian.org>.
+
2003-08-27 Jesper Harder <harder@ifa.au.dk>
* gnus-cache.el (gnus-cache-generate-active): Fix bug in
(funcall object))
;; Externally displayed part.
((consp object)
+ (condition-case ()
+ (while (get-buffer-process (cdr object))
+ (interrupt-process (get-buffer-process (cdr object)))
+ (message "Waiting for external displayer to die...")
+ (sit-for 1))
+ (quit)
+ (error))
+ (ignore-errors (and (cdr object) (kill-buffer (cdr object))))
+ (message "Waiting for external displayer to die...done")
(ignore-errors (delete-file (car object)))
- (ignore-errors (delete-directory (file-name-directory (car object))))
- (ignore-errors (and (cdr object) (kill-buffer (cdr object)))))
+ (ignore-errors (delete-directory (file-name-directory
+ (car object)))))
((bufferp object)
(when (buffer-live-p object)
(kill-buffer object)))))