diff --git a/src/main/java/de/neemann/digital/draw/graphics/PolygonParser.java b/src/main/java/de/neemann/digital/draw/graphics/PolygonParser.java index 97679f882..34955d060 100644 --- a/src/main/java/de/neemann/digital/draw/graphics/PolygonParser.java +++ b/src/main/java/de/neemann/digital/draw/graphics/PolygonParser.java @@ -350,7 +350,7 @@ public class PolygonParser { double lastStart = start; start += delta; - while (delta < 0 ^ start < end) { + while ((delta > 0 && start < end) || (delta < 0 && start > end)) { addArcPoint(p, lastStart, start, x0, y0, r, invert); lastStart = start; start += delta; diff --git a/src/test/java/de/neemann/digital/draw/shapes/custom/SvgImporterTest.java b/src/test/java/de/neemann/digital/draw/shapes/custom/SvgImporterTest.java index 144ca25a5..c4042923f 100644 --- a/src/test/java/de/neemann/digital/draw/shapes/custom/SvgImporterTest.java +++ b/src/test/java/de/neemann/digital/draw/shapes/custom/SvgImporterTest.java @@ -398,6 +398,19 @@ public class SvgImporterTest extends TestCase { } + public void testInkscape5() throws IOException, SvgException, PolygonParser.ParserException, PinException { + CustomShapeDescription custom = new SvgImporter( + in("\n" + + " \n" + + "")).create(); + + new CSDChecker(custom) + .checkPolygon("M 0,0 Q 7.1054274E-15,13.39746 6.69873,25 Q 13.39746,36.60254 25,43.30127 Q 36.60254,50 50,50") + .check(); + } + //*****************************************************************************************************