]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/lablGraphviz.ml
Fixes to show coercion graph
[helm.git] / matita / matita / lablGraphviz.ml
index ab817e2940394c19a197810fecd79d6d825711f9..27835e3e90ce0c6fbae9984f7fb15577dd27d41c 100644 (file)
@@ -74,17 +74,20 @@ class graphviz_impl ?packing () =
     method load_graph_from_file ?(gviz_cmd = "dot") fname =
       let tmp_png = tempfile () in
       let rc = Sys.command (mk_gviz_cmd gviz_cmd png_flags fname tmp_png) in
-      if rc <> 0 then
+      if rc <> 0 || (Unix.stat tmp_png).st_size = 0 then begin
         eprintf
           ("Graphviz command failed (exit code: %d) on the following graph:\n"
            ^^ "%s\n%!")
           rc (HExtlib.input_file fname);
-      image#set_file tmp_png;
-      HExtlib.safe_remove tmp_png;
-      let tmp_map = tempfile () in
-      ignore (Sys.command (mk_gviz_cmd gviz_cmd map_flags fname tmp_map));
-      self#load_map tmp_map;
-      HExtlib.safe_remove tmp_map
+        image#clear ()
+      end else begin
+       image#set_file tmp_png;
+       HExtlib.safe_remove tmp_png;
+       let tmp_map = tempfile () in
+       ignore (Sys.command (mk_gviz_cmd gviz_cmd map_flags fname tmp_map));
+       self#load_map tmp_map;
+       HExtlib.safe_remove tmp_map
+      end
 
     method private load_map fname =
       let areas = ref [] in