pydot / pydot-ng

Python interface to Graphviz's Dot language compatible with Python 2 nad Python 3
MIT License
23 stars 10 forks source link

[82] syntax error on escaped quotes in double quoted strings #18

Open prmtl opened 9 years ago

prmtl commented 9 years ago

Reported by cdur...@gmail.com, 2013-05-01T05:34:13Z

According to http://www.graphviz.org/doc/info/lang.html, an ID can be: ... 'any double-quoted string ("...") possibly containing escaped quotes (\")1;'

pydot does not properly read double quoted strings with escaped quotes

What steps will reproduce the problem?
  1. pydot.graph_from_dot_data("graph G { a [test=\"\"escaped quotes\"\"] }")

or

1) create the following DOT file:

graph G {
  a [test="\"escaped quotes\""]
}

2) pydot.graph_from_dot_file("file.dot")

What is the expected output? What do you see instead?

expected output: <pydot.Dot object at 0xb483de8c> output:

graph G { a [test="\"escaped quotes\""] }
            ^
Expected "}" (at char 12), (line:1, col:13)
What version of the product are you using? On what operating system?

pydot 1.0.28; Python 2.7.3; Gentoo/Linux 3.0.6

Please provide any additional information below.

A suggested patch is attached. Apply to dot_parser.py patch -Np1 dot_parser.py escChar.patch Attached escChar.patch (view on Gist) From: https://code.google.com/p/pydot/issues/detail?id=82

prmtl commented 9 years ago

Comment by sandro.tosi, 2014-03-21T14:35:59Z

JFYI, i'm about to apply the patch in the Debian package