dot2pic: Be less picky parsing "dot" output.
authorBen Pfaff <blp@nicira.com>
Wed, 1 Dec 2010 19:03:12 +0000 (11:03 -0800)
committerBen Pfaff <blp@nicira.com>
Wed, 1 Dec 2010 19:03:12 +0000 (11:03 -0800)
Some versions of "dot" put two spaces after the "node" keyword instead of
one, which didn't match the regular expression used in dot2pic.  This
commit changes dot2pic not to care about the number of spaces in "node" and
"graph" lines.  (The "graph" lines weren't actually a problem but I don't
see a reason to be picky about them either.)

Different versions of "dot" still produce different output for the same
input, but I don't see how to avoid that.

Reported-by: Justin Pettit <jpettit@nicira.com>
ovsdb/dot2pic

index 3e2f308..caca9f8 100755 (executable)
@@ -21,9 +21,10 @@ my ($scale) = 1;
 print ".PS\n";
 print "linethick = 1;\n";
 while (<>) {
-    if (/graph (\S+) (\S+) (\S+)/) {
-        $scale = $1;
-    } elsif (my ($name, $x, $y, $width, $height, $label, $style, $shape, $color, $fillcolor) = /node (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+)/) {
+    if (/^graph/) {
+        (undef, $scale) = split;
+    } elsif (/^node/) {
+        my (undef, $name, $x, $y, $width, $height, $label, $style, $shape, $color, $fillcolor) = split;
         $x *= $scale;
         $y *= $scale;
         $width *= $scale;