Browse code

Ignore invalid colors instead of assuming white.

From: Marius Gedminas <marius@gedmin.as>

Jose.R.Fonseca authored on 13/07/2008 03:20:32
Showing 1 changed files

  • xdot.py index 435371e..9c919be 100755
... ...
@@ -426,7 +426,7 @@ class XDotAttrParser:
426 426
             p.append((x, y))
427 427
         return p
428 428
 
429
-    def read_color(self):
429
+    def read_color(self, fallback=(0,0,0,1)):
430 430
         # See http://www.graphviz.org/doc/info/attrs.html#k:color
431 431
         c = self.read_text()
432 432
         c1 = c[:1]
... ...
@@ -451,7 +451,7 @@ class XDotAttrParser:
451 451
                 color = gtk.gdk.color_parse(c)
452 452
             except ValueError:
453 453
                 sys.stderr.write("unknown color '%s'\n" % c)
454
-                return 1, 1, 1, 1
454
+                return fallback
455 455
             s = 1.0/65535.0
456 456
             r = color.red*s
457 457
             g = color.green*s
... ...
@@ -467,9 +467,9 @@ class XDotAttrParser:
467 467
         while s:
468 468
             op = s.read_code()
469 469
             if op == "c":
470
-                pen.color = s.read_color()
470
+                pen.color = s.read_color(fallback=pen.color)
471 471
             elif op == "C":
472
-                pen.fillcolor = s.read_color()
472
+                pen.fillcolor = s.read_color(fallback=pen.fillcolor)
473 473
             elif op == "S":
474 474
                 style = s.read_text()
475 475
                 if style.startswith("setlinewidth("):