aboutsummaryrefslogtreecommitdiffhomepage
path: root/generic
diff options
context:
space:
mode:
authorGravatar David Aspinall <da@inf.ed.ac.uk>2002-06-30 14:43:27 +0000
committerGravatar David Aspinall <da@inf.ed.ac.uk>2002-06-30 14:43:27 +0000
commit189395ce88ba2d3208726ff7ccd007df57aa1524 (patch)
treeca2dddcea9b75d0e437b221c545b6062ad912ed0 /generic
parent94ae527750288fa561d1f81b9f8f1d982534a758 (diff)
proof-shell-kill-function: deactivate scripting before shutting down prover
Diffstat (limited to 'generic')
-rw-r--r--generic/proof-shell.el14
1 files changed, 11 insertions, 3 deletions
diff --git a/generic/proof-shell.el b/generic/proof-shell.el
index 383bd69e..3242a8a6 100644
--- a/generic/proof-shell.el
+++ b/generic/proof-shell.el
@@ -335,9 +335,17 @@ exited by hand (or exits by itself)."
(catch 'exited
(set-process-sentinel proc
(lambda (p m) (throw 'exited t)))
- ;; Try to shut it down politely
- ;; Do this before deleting other buffers, etc, so that
- ;; any closing down processing works okay.
+ ;; First, turn off scripting in any active scripting
+ ;; buffer. (This helps support persistent sessions with
+ ;; Isabelle, for example, by making sure that no file is
+ ;; partly processed when exiting). Rather than
+ ;; questioning the user, we behave as killing a script
+ ;; buffer: forcibly retract a partly processed file and
+ ;; always succeed.
+ (proof-deactivate-scripting 'forceretract)
+ ;; Second, we try to shut down the proof process
+ ;; politely. Do this before deleting other buffers,
+ ;; etc, so that any closing down processing works okay.
(if proof-shell-quit-cmd
(comint-send-string proc
(concat proof-shell-quit-cmd "\n"))