reports: don't escape the labels

Currently we use "quotearg" to escape the strings output in Dot.  As a
result, if the user's locale is C for instance, all the non-ASCII are
escaped.  Unfortunately graphviz does not interpret this style of
escaping.

For instance:

    5 -> 2 [style=solid label="\"\303\221\303\271\341\271\203\303\251\342\204\235\303\264\""]

was displayed as a sequence of numbers.  We now output:

    5 -> 2 [style=solid label="\"Ñùṃéℝô\""]

independently of the user's locale.

* src/system.h (obstack_backslash): New.
* src/graphviz.h, src/graphviz.c (escape): Remove, use
obstack_backslash instead.
* src/print-graph.c: Likewise.
* tests/report.at: Adjust.
This commit is contained in:
Akim Demaille
2020-06-13 16:03:53 +02:00
parent e4d33cf579
commit efbcadeca7
5 changed files with 59 additions and 37 deletions

View File

@@ -1338,43 +1338,43 @@ digraph "input.y"
node [fontname = courier, shape = box, colorscheme = paired6]
edge [fontname = courier]
0 [label="State 0\n\l 0 $accept: . exp $end\l 1 exp: . exp \"\342\212\225\" exp\l 2 | . exp \"+\" exp\l 3 | . exp \"+\" exp\l 4 | . \"number\"\l 5 | . \"\303\221\303\271\341\271\203\303\251\342\204\235\303\264\"\l"]
0 [label="State 0\n\l 0 $accept: . exp $end\l 1 exp: . exp \"\" exp\l 2 | . exp \"+\" exp\l 3 | . exp \"+\" exp\l 4 | . \"number\"\l 5 | . \"Ñùṃéℝô\"\l"]
0 -> 1 [style=solid label="\"number\""]
0 -> 2 [style=solid label="\"\303\221\303\271\341\271\203\303\251\342\204\235\303\264\""]
0 -> 2 [style=solid label="\"Ñùṃéℝô\""]
0 -> 3 [style=dashed label="exp"]
1 [label="State 1\n\l 4 exp: \"number\" .\l"]
1 -> "1R4" [style=solid]
"1R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
2 [label="State 2\n\l 5 exp: \"\303\221\303\271\341\271\203\303\251\342\204\235\303\264\" .\l"]
2 [label="State 2\n\l 5 exp: \"Ñùṃéℝô\" .\l"]
2 -> "2R5" [style=solid]
"2R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
3 [label="State 3\n\l 0 $accept: exp . $end\l 1 exp: exp . \"\342\212\225\" exp\l 2 | exp . \"+\" exp\l 3 | exp . \"+\" exp\l"]
3 [label="State 3\n\l 0 $accept: exp . $end\l 1 exp: exp . \"\" exp\l 2 | exp . \"+\" exp\l 3 | exp . \"+\" exp\l"]
3 -> 4 [style=solid label="$end"]
3 -> 5 [style=solid label="\"+\""]
3 -> 6 [style=solid label="\"\342\212\225\""]
3 -> 6 [style=solid label="\"\""]
4 [label="State 4\n\l 0 $accept: exp $end .\l"]
4 -> "4R0" [style=solid]
"4R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
5 [label="State 5\n\l 1 exp: . exp \"\342\212\225\" exp\l 2 | . exp \"+\" exp\l 2 | exp \"+\" . exp\l 3 | . exp \"+\" exp\l 3 | exp \"+\" . exp\l 4 | . \"number\"\l 5 | . \"\303\221\303\271\341\271\203\303\251\342\204\235\303\264\"\l"]
5 [label="State 5\n\l 1 exp: . exp \"\" exp\l 2 | . exp \"+\" exp\l 2 | exp \"+\" . exp\l 3 | . exp \"+\" exp\l 3 | exp \"+\" . exp\l 4 | . \"number\"\l 5 | . \"Ñùṃéℝô\"\l"]
5 -> 1 [style=solid label="\"number\""]
5 -> 2 [style=solid label="\"\303\221\303\271\341\271\203\303\251\342\204\235\303\264\""]
5 -> 2 [style=solid label="\"Ñùṃéℝô\""]
5 -> 7 [style=dashed label="exp"]
6 [label="State 6\n\l 1 exp: . exp \"\342\212\225\" exp\l 1 | exp \"\342\212\225\" . exp\l 2 | . exp \"+\" exp\l 3 | . exp \"+\" exp\l 4 | . \"number\"\l 5 | . \"\303\221\303\271\341\271\203\303\251\342\204\235\303\264\"\l"]
6 [label="State 6\n\l 1 exp: . exp \"\" exp\l 1 | exp \"\" . exp\l 2 | . exp \"+\" exp\l 3 | . exp \"+\" exp\l 4 | . \"number\"\l 5 | . \"Ñùṃéℝô\"\l"]
6 -> 1 [style=solid label="\"number\""]
6 -> 2 [style=solid label="\"\303\221\303\271\341\271\203\303\251\342\204\235\303\264\""]
6 -> 2 [style=solid label="\"Ñùṃéℝô\""]
6 -> 8 [style=dashed label="exp"]
7 [label="State 7\n\l 1 exp: exp . \"\342\212\225\" exp\l 2 | exp . \"+\" exp\l 2 | exp \"+\" exp . [$end, \"+\", \"\342\212\225\"]\l 3 | exp . \"+\" exp\l 3 | exp \"+\" exp . [$end, \"+\", \"\342\212\225\"]\l"]
7 -> 6 [style=solid label="\"\342\212\225\""]
7 -> "7R2d" [label="[\"\342\212\225\"]", style=solid]
7 [label="State 7\n\l 1 exp: exp . \"\" exp\l 2 | exp . \"+\" exp\l 2 | exp \"+\" exp . [$end, \"+\", \"\"]\l 3 | exp . \"+\" exp\l 3 | exp \"+\" exp . [$end, \"+\", \"\"]\l"]
7 -> 6 [style=solid label="\"\""]
7 -> "7R2d" [label="[\"\"]", style=solid]
"7R2d" [label="R2", fillcolor=5, shape=diamond, style=filled]
7 -> "7R2" [style=solid]
"7R2" [label="R2", fillcolor=3, shape=diamond, style=filled]
7 -> "7R3d" [label="[$end, \"+\", \"\342\212\225\"]", style=solid]
7 -> "7R3d" [label="[$end, \"+\", \"\"]", style=solid]
"7R3d" [label="R3", fillcolor=5, shape=diamond, style=filled]
8 [label="State 8\n\l 1 exp: exp . \"\342\212\225\" exp\l 1 | exp \"\342\212\225\" exp . [$end, \"+\", \"\342\212\225\"]\l 2 | exp . \"+\" exp\l 3 | exp . \"+\" exp\l"]
8 [label="State 8\n\l 1 exp: exp . \"\" exp\l 1 | exp \"\" exp . [$end, \"+\", \"\"]\l 2 | exp . \"+\" exp\l 3 | exp . \"+\" exp\l"]
8 -> 5 [style=solid label="\"+\""]
8 -> 6 [style=solid label="\"\342\212\225\""]
8 -> "8R1d" [label="[\"+\", \"\342\212\225\"]", style=solid]
8 -> 6 [style=solid label="\"\""]
8 -> "8R1d" [label="[\"+\", \"\"]", style=solid]
"8R1d" [label="R1", fillcolor=5, shape=diamond, style=filled]
8 -> "8R1" [style=solid]
"8R1" [label="R1", fillcolor=3, shape=diamond, style=filled]