diff --git a/gap/dot.gi b/gap/dot.gi index ab099a5..a081bf7 100644 --- a/gap/dot.gi +++ b/gap/dot.gi @@ -640,7 +640,11 @@ function(gv, labels) nodes := GraphvizNodes(gv); for i in [1 .. Size(nodes)] do - GV_ErrorIfNotValidLabel(labels[i]); + labels[i] := String(labels[i]); + if not StartsWith(labels[i], "\"") or not EndsWith(labels[i], "\"") then + labels[i] := Concatenation("\"", labels[i], "\""); + fi; + # GV_ErrorIfNotValidLabel(labels[i]); GraphvizSetAttr(nodes[i], "label", labels[i]); od; return gv; diff --git a/tst/dot.tst b/tst/dot.tst index ee5ccfe..e307865 100644 --- a/tst/dot.tst +++ b/tst/dot.tst @@ -8,7 +8,7 @@ ############################################################################# ## -#@local a, b, color, e, g, gv, label, n, shape +#@local a, b, color, e, g, gv, label, n, shape, G, D gap> START_TEST("graphviz package: dot.tst"); gap> LoadPackage("graphviz", false);; @@ -121,18 +121,18 @@ gap> GraphvizSetNodeLabels(gv, ["i", "ii", "iii"]); gap> Print(AsString(gv)); //dot graph xxx { - 1 [label=i] - 2 [label=ii] - 3 [label=iii] + 1 [label="i"] + 2 [label="ii"] + 3 [label="iii"] } gap> GraphvizSetNodeLabels(gv, ["a", "b", "c"]); gap> Print(AsString(gv)); //dot graph xxx { - 1 [label=a] - 2 [label=b] - 3 [label=c] + 1 [label="a"] + 2 [label="b"] + 3 [label="c"] } gap> GraphvizSetNodeLabels(gv, ["i", "ii"]); Error, the 2nd argument (list of node labels) has incorrect length, expected 3\ @@ -230,5 +230,14 @@ graph xxx { 1 [label=<<>>, "probably not ok"=1] } +# Fix adding of quotes to labels +gap> G := AsList(SymmetricGroup(3)); +[ (), (2,3), (1,3), (1,3,2), (1,2,3), (1,2) ] +gap> D := Digraph(G, {x, y} -> x * y = y * x); + +gap> SetDigraphVertexLabels(D, G); +gap> gv := GraphvizVertexLabelledGraph(D); + + # gap> STOP_TEST("graphviz package: dot.tst", 0);