From b68f8483c7e5700d95955156aaac7aaa5505be91 Mon Sep 17 00:00:00 2001 From: Jeff Schiller Date: Tue, 13 Jul 2010 09:14:17 -0700 Subject: [PATCH] Remove empty m0,0 segments --- scour.py | 9 ++++++++- testscour.py | 6 ++++++ unittests/path-empty-move.svg | 5 +++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 unittests/path-empty-move.svg diff --git a/scour.py b/scour.py index 9fb530c..c7d70db 100755 --- a/scour.py +++ b/scour.py @@ -1670,7 +1670,14 @@ def cleanPath(element, options) : cmd, data = path[pathIndex] i = 0 if cmd in ['m','l','t']: - if cmd == 'm': i = 2 + if cmd == 'm': + # remove m0,0 segments + if data[0] == data[i+1] == 0: + # 'm0,0 x,y' can be replaces with 'lx,y' + path[pathIndex] = ('l', data[2:]) + numPathSegmentsReduced += 1 + else: # else skip move coordinate + i = 2 while i < len(data): if data[i] == data[i+1] == 0: del data[i:i+2] diff --git a/testscour.py b/testscour.py index ea1481d..4de1285 100755 --- a/testscour.py +++ b/testscour.py @@ -1144,6 +1144,12 @@ class StyleToAttr(unittest.TestCase): self.assertEquals(line.getAttribute('marker-start'), 'url(#m)') self.assertEquals(line.getAttribute('marker-mid'), 'url(#m)') self.assertEquals(line.getAttribute('marker-end'), 'url(#m)') + +class PathEmptyMove(unittest.TestCase): + def runTest(self): + doc = scour.scourXmlFile('unittests/path-empty-move.svg') + self.assertEquals(doc.getElementsByTagName('path')[0].getAttribute('d'), 'm100 100l200 100z'); + self.assertEquals(doc.getElementsByTagName('path')[1].getAttribute('d'), 'm100 100v200l100 100z'); # TODO: write tests for --enable-viewboxing # TODO; write a test for embedding rasters diff --git a/unittests/path-empty-move.svg b/unittests/path-empty-move.svg new file mode 100644 index 0000000..f5df077 --- /dev/null +++ b/unittests/path-empty-move.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file