]> matita.cs.unibo.it Git - helm.git/commitdiff
Bug fixed: when the final proof_status is not No_proof matitac returns -1.
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Tue, 14 Jun 2005 08:11:12 +0000 (08:11 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Tue, 14 Jun 2005 08:11:12 +0000 (08:11 +0000)
helm/matita/matitac.ml

index b3767c5397cf3477ad62c607f9df011a0e8d48bb..d9300218375851113a45f246c6f4c467e2acfb07 100644 (file)
@@ -71,7 +71,8 @@ let run_script fname =
     MatitaLog.debug ("Executing: ``" ^ stm ^ "''")
   in
   try
-    status := MatitaEngine.eval_from_stream !status is cb
+    status := MatitaEngine.eval_from_stream !status is cb ;
+    !status
   with
   | CicTextualParser2.Parse_error (floc,err) ->
      let (x, y) = CicAst.loc_of_floc floc in
@@ -93,7 +94,7 @@ let _ =
    List.iter (fun fname -> 
     let time = Unix.time () in
     MatitaLog.message (sprintf "execution of %s started:" fname);
-    run_script fname;
+    let status = run_script fname in
     let elapsed = Unix.time () -. time in
     let tm = Unix.gmtime elapsed in
     let sec = 
@@ -105,7 +106,20 @@ let _ =
     let hou = 
       if tm.Unix.tm_hour > 0 then (string_of_int tm.Unix.tm_hour ^ "h ") else "" 
     in
-    MatitaLog.message 
-      (sprintf "execution of %s completed in %s." fname (hou^min^sec))) scripts;
-    exit(0)
-  with Sys.Break -> exit (-1)
+    let proof_status = status.proof_status in
+    if proof_status <> MatitaTypes.No_proof then
+     begin
+      MatitaLog.error
+       "there are still incomplete proofs at the end of the script";
+      exit(-1)
+     end
+    else
+     begin
+      MatitaLog.message 
+       (sprintf "execution of %s completed in %s." fname (hou^min^sec)) ;
+      exit(0)
+     end
+   ) scripts
+  with Sys.Break ->
+   MatitaLog.error "user break!";
+   exit (-1)