Skip to content

Commit c00edd3

Browse files
committed
Path parsing bugfix
1 parent 8f75982 commit c00edd3

2 files changed

Lines changed: 28 additions & 3 deletions

File tree

src/com/mxgraph/svg2xml/Shape2Xml.java

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1541,7 +1541,7 @@ public static double getPathParam(String pathString, int index)
15411541
int currIndex=0;
15421542
int currParamIndex = 0;
15431543

1544-
if (pathString.charAt(1) != ' ')
1544+
if (pathString.length() >= 2 && pathString.charAt(1) != ' ')
15451545
{
15461546
pathString = pathString.substring(0, 1) + " " + pathString.substring(1, pathString.length());
15471547
}
@@ -1559,9 +1559,33 @@ public static double getPathParam(String pathString, int index)
15591559
endIndex = pathString.length();
15601560
}
15611561

1562-
String paramString = pathString.substring(currParamIndex, endIndex);
1562+
double param;
1563+
1564+
if (pathString.charAt(0) == 'L')
1565+
{
1566+
1567+
String paramString = pathString.substring(currParamIndex, endIndex);
15631568

1564-
double param = Double.valueOf(paramString);
1569+
param = Double.valueOf(paramString);
1570+
1571+
}
1572+
else if (pathString != null && pathString != "" && pathString.length() > 1)
1573+
{
1574+
if (pathString == null)
1575+
{
1576+
int i =1;
1577+
i++;
1578+
}
1579+
1580+
String paramString = pathString.substring(currParamIndex, endIndex);
1581+
1582+
param = Double.valueOf(paramString);
1583+
1584+
}
1585+
else
1586+
{
1587+
param = 0;
1588+
}
15651589

15661590
return param;
15671591
}

src/com/mxgraph/svg2xml/mxPathParser.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ else if (prevPathType == 'M')
7373
hasLetter = false;
7474
}
7575

76+
svgPath = svgPath.replaceAll("\\s{2,}", " ");
7677
nextPartStartIndex = Shape2Xml.nextPartIndex(svgPath, currPathType);
7778

7879
String currPathString = "";

0 commit comments

Comments
 (0)