diff options
author | 2004-04-17 17:46:31 +0000 | |
---|---|---|
committer | 2004-04-17 17:46:31 +0000 | |
commit | 935b23872eb7309b81acfa2a5a9fca8501cfca0c (patch) | |
tree | 9b31f77048bc7826966a5ae24ab40a887c580f60 /generic | |
parent | ca7b3b3ef605021ab66e1928d7bed897fb2ea697 (diff) |
Add proof-cannot-reopen-processed-files to fix behaviour of multiple files for Isabelle.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/proof-script.el | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/generic/proof-script.el b/generic/proof-script.el index 243c3813..648d974d 100644 --- a/generic/proof-script.el +++ b/generic/proof-script.el @@ -892,6 +892,10 @@ retracted using proof-auto-retract-dependencies." (proof-auto-retract-dependencies cfile informprover) (setq proof-included-files-list (delete cfile proof-included-files-list)) + ;; If we're not allowed to undo into a processed + ;; file, we had better remove all the history. + (if proof-cannot-reopen-processed-files + (proof-restart-buffers (list (current-buffer)))) ;; Tell the proof assistant, if we should and we can. ;; This case may be useful if there is a combined ;; management of multiple files between PG and prover. @@ -2362,14 +2366,17 @@ command." (if (proof-locked-region-empty-p) (error "No locked region") ;; Make sure we're ready: either not busy, or already advancing/retracting. + ;; Also: if this file is completed, we may have to re-open it for + ;; scripting again. (proof-activate-scripting) - (let ((span (span-at (point) 'type))) - ;; If no span at point, retracts the last span in the buffer. - (unless span - (proof-goto-end-of-locked) ; NB: this moves point - (backward-char) - (setq span (span-at (point) 'type))) - (proof-retract-target span delete-region)))) + (unless (proof-locked-region-empty-p) ;; re-opening may discard history + (let ((span (span-at (point) 'type))) + ;; If no span at point, retracts the last span in the buffer. + (unless span + (proof-goto-end-of-locked) ; NB: this moves point + (backward-char) + (setq span (span-at (point) 'type))) + (proof-retract-target span delete-region))))) |