aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/progmodes/python.el
diff options
context:
space:
mode:
authorStefan Monnier2019-04-14 18:45:35 -0400
committerStefan Monnier2019-04-14 18:45:35 -0400
commit7a608fc6f3ded3e615e7accb29f16bfd290d80a1 (patch)
tree032512a654ebd8e216f3c4a51f42dcce0d65e449 /lisp/progmodes/python.el
parentb3cab4199a46b30539a24fb4d4b53ccdf488253e (diff)
downloademacs-7a608fc6f3ded3e615e7accb29f16bfd290d80a1.tar.gz
emacs-7a608fc6f3ded3e615e7accb29f16bfd290d80a1.zip
* lisp/progmodes/python.el: Be more careful about temp file removal
(python-shell-prompt-detect): Use unwind-protect to try and not leave file behind in case of error.
Diffstat (limited to 'lisp/progmodes/python.el')
-rw-r--r--lisp/progmodes/python.el19
1 files changed, 10 insertions, 9 deletions
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 27d31abaf5b..38dcc823d06 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -2266,15 +2266,16 @@ detection and just returns nil."
2266 ;; carriage returns in unbuffered mode. 2266 ;; carriage returns in unbuffered mode.
2267 (let ((inhibit-eol-conversion (getenv "PYTHONUNBUFFERED"))) 2267 (let ((inhibit-eol-conversion (getenv "PYTHONUNBUFFERED")))
2268 (python-shell--save-temp-file code)))) 2268 (python-shell--save-temp-file code))))
2269 ;; Use `process-file' as it is remote-host friendly. 2269 (unwind-protect
2270 (process-file 2270 ;; Use `process-file' as it is remote-host friendly.
2271 interpreter 2271 (process-file
2272 code-file 2272 interpreter
2273 '(t nil) 2273 code-file
2274 nil 2274 '(t nil)
2275 interpreter-arg) 2275 nil
2276 ;; Try to cleanup 2276 interpreter-arg)
2277 (delete-file code-file))) 2277 ;; Try to cleanup
2278 (delete-file code-file))))
2278 (buffer-string))) 2279 (buffer-string)))
2279 (prompts 2280 (prompts
2280 (catch 'prompts 2281 (catch 'prompts