]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaScript.ml
bugfixes:
[helm.git] / helm / matita / matitaScript.ml
index f181b53d291c0d9a64e8755e867b47d70cdc255d..8bd0d60d1f2df270cdfcb582778fcd2b564aef40 100644 (file)
@@ -586,7 +586,7 @@ object (self)
 
   method loadFromFile f =
     buffer#set_text (MatitaMisc.input_file f);
-    self#goto_top;
+    self#reset_buffer;
     buffer#set_modified false
     
   method assignFileName file =
@@ -613,21 +613,23 @@ object (self)
       end
   
   method private goto_top =
-    MatitaSync.time_travel ~present:self#status ~past:init;
+    MatitaSync.time_travel ~present:self#status ~past:init
+
+  method private reset_buffer = 
     statements <- [];
     history <- [ init ];
     userGoal <- ~-1;
+    self#notify;
     buffer#remove_tag locked_tag ~start:buffer#start_iter ~stop:buffer#end_iter;
     buffer#move_mark (`MARK locked_mark) ~where:buffer#start_iter
 
   method reset () =
-    self#goto_top;
+    self#reset_buffer;
     source_buffer#begin_not_undoable_action ();
     buffer#delete ~start:buffer#start_iter ~stop:buffer#end_iter;
     source_buffer#end_not_undoable_action ();
-    self#notify;
     buffer#set_modified false
-
+  
   method template () =
     let template = MatitaMisc.input_file BuildTimeConf.script_template in 
     buffer#insert ~iter:(buffer#get_iter `START) template;
@@ -645,7 +647,11 @@ object (self)
     let getoldpos _ = buffer#get_iter_at_mark old_locked_mark in 
     let dispose_old_locked_mark () = buffer#delete_mark old_locked_mark in
     match pos with
-    | `Top -> dispose_old_locked_mark (); self#goto_top; self#notify
+    | `Top -> 
+        dispose_old_locked_mark (); 
+        self#goto_top; 
+        self#reset_buffer;
+        self#notify
     | `Bottom ->
         (try 
           let rec dowhile () =