]> matita.cs.unibo.it Git - helm.git/commitdiff
Fixes to show coercion graph
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Fri, 21 Dec 2018 23:05:24 +0000 (00:05 +0100)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Fri, 27 Sep 2019 13:45:21 +0000 (15:45 +0200)
- new bug in dot avoided (graphviz commands
  no longer chainable)
- avoided bug that printed a broken icon in
  place of an empty graph; now we print
  nothing (a cleared pixbuf) which is not
  white. It would be better to show
  something to make clear the graph is empty

matita/matita/lablGraphviz.ml
matita/matita/matitaMathView.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
index 390257422968e77420d0374890e335342b898d22..ef7780f0c88a8b3993a2c6628007ed1e1d63d5b0 100644 (file)
@@ -326,10 +326,14 @@ class cicBrowser_impl ~(history:MatitaTypes.mathViewer_entry MatitaMisc.history)
       close_out oc;
       if tred then
         gviz#load_graph_from_file 
-          ~gviz_cmd:"dot -Txdot | tred |gvpack -gv | dot" filename
+          (* gvpack can no longer read the output of -Txdot :-( *)
+          (*~gviz_cmd:"dot -Txdot | tred |gvpack -gv | dot" filename*)
+          ~gviz_cmd:"dot -Txdot | tred | dot" filename
       else
         gviz#load_graph_from_file 
-          ~gviz_cmd:"dot -Txdot | gvpack -gv | dot" filename;
+          (* gvpack can no longer read the output of -Txdot :-( *)
+          (*~gviz_cmd:"dot -Txdot | gvpack -gv | dot" filename;*)
+          ~gviz_cmd:"dot -Txdot | dot" filename;
       HExtlib.safe_remove filename
   in
   object (self)