LibWeb: Support SVG vertical/horizontal lineto with multiple parameters

This now allows v 1 2 3 or h 1 2 3, which are treated like v 1 v 2 v 3
and h 1 h 2 h 3 respectively. This fixes the freeCodeCamp SVG logo.
This commit is contained in:
MacDue 2023-06-14 21:22:13 +01:00 committed by Jelle Raaijmakers
parent c48f60a98d
commit a8b9130ceb

View file

@ -188,14 +188,16 @@ void AttributeParser::parse_horizontal_lineto()
{
bool absolute = consume() == 'H';
parse_whitespace();
m_instructions.append({ PathInstructionType::HorizontalLine, absolute, parse_coordinate_sequence() });
for (auto coordinate : parse_coordinate_sequence())
m_instructions.append({ PathInstructionType::HorizontalLine, absolute, { coordinate } });
}
void AttributeParser::parse_vertical_lineto()
{
bool absolute = consume() == 'V';
parse_whitespace();
m_instructions.append({ PathInstructionType::VerticalLine, absolute, parse_coordinate_sequence() });
for (auto coordinate : parse_coordinate_sequence())
m_instructions.append({ PathInstructionType::VerticalLine, absolute, { coordinate } });
}
void AttributeParser::parse_curveto()