mirror of
https://github.com/thorvg/thorvg.git
synced 2025-07-25 07:39:02 +00:00
svg_loader SvgPath: Added corner case handling for flags of Arc
It handles the case what the flag of the arc of the path is defined without spaces or commas, such as 00, 01, 11 or 10.
This commit is contained in:
parent
b17f3cc9a4
commit
5da4c81138
1 changed files with 6 additions and 7 deletions
|
@ -57,16 +57,15 @@ static bool _parseNumber(char** content, float* number)
|
|||
|
||||
static bool _parseFlag(char** content, int* number)
|
||||
{
|
||||
char* end = NULL;
|
||||
*number = strtol(*content, &end, 10);
|
||||
//If the start of string is not number or a number was a float
|
||||
if ((*content) == end || *end == '.') return false;
|
||||
//If a flag has a different value than 0 or 1
|
||||
if (*number != 0 && *number != 1) return false;
|
||||
*content = _skipComma(end);
|
||||
if (*(*content) != '0' && *(*content) != '1') return false;
|
||||
*number = *(*content) - '0';
|
||||
*content = _skipComma(*content + 1);
|
||||
if (*(*content) == '.') return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void _pathAppendArcTo(Array<PathCommand>* cmds, Array<Point>* pts, Point* cur, Point* curCtl, float x, float y, float rx, float ry, float angle, bool largeArc, bool sweep)
|
||||
{
|
||||
float cxp, cyp, cx, cy;
|
||||
|
|
Loading…
Add table
Reference in a new issue