From b44ea6d32113ad86a0fd81e323ad0fdccc4359e9 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 24 Feb 2026 16:04:52 +0900 Subject: [PATCH] Format, fix an edgecase --- lib/kanjivg_parser.dart | 3 +-- lib/svg_parser.dart | 10 +++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/kanjivg_parser.dart b/lib/kanjivg_parser.dart index af7e153..62341e8 100644 --- a/lib/kanjivg_parser.dart +++ b/lib/kanjivg_parser.dart @@ -78,8 +78,7 @@ class KanjiStrokeNumber { KanjiStrokeNumber(this.num, this.position); @override - String toString() => - 'KanjiStrokeNumber(number: $num, position: $position)'; + String toString() => 'KanjiStrokeNumber(number: $num, position: $position)'; } /// Contents of a `` element in the KanjiVG SVG files diff --git a/lib/svg_parser.dart b/lib/svg_parser.dart index 743f6f3..500fb03 100644 --- a/lib/svg_parser.dart +++ b/lib/svg_parser.dart @@ -32,7 +32,9 @@ const _commands = { // const _uppercaseCommands = {'M', 'Z', 'L', 'H', 'V', 'C', 'S', 'Q', 'T', 'A'}; final _commandPattern = RegExp("(?=[${_commands.join('')}])"); -final _floatPattern = RegExp(r"^[-+]?(?:[0-9]+\.?[0-9]*|[0-9]*\.?[0-9]+)(?:[eE][-+]?[0-9]+)?"); +final _floatPattern = RegExp( + r"^[-+]?(?:[0-9]+\.?[0-9]*|[0-9]*\.?[0-9]+)(?:[eE][-+]?[0-9]+)?", +); class ParserResult { final T value; @@ -253,8 +255,10 @@ Path parsePath(String pathdef) { segments.add(Move(to: currentPos)); startPos = currentPos; } else if (command == "Z") { - // TODO Throw error if not available: - segments.add(Close(start: currentPos, end: startPos!)); + if (startPos == null) { + throw InvalidPathError("Path closed without a starting position."); + } + segments.add(Close(start: currentPos, end: startPos)); currentPos = startPos; } else if (command == "L") { Point pos = token.args[0] as Point;