From a2e69343eb0893f4e4d404d20ba4c2f66d01f40a Mon Sep 17 00:00:00 2001
From: linhsu0723 <linhsu0723>
Date: Tue, 11 Oct 2022 09:48:58 +0200
Subject: [PATCH] Fix (partial) T92713: SVG importer: Implicit close keeps
 current point

Don't change current point coordinate for implicit path close.
This can fix some broken paths in T92713.

Differential Revision: https://developer.blender.org/D16198
---
 io_curve_svg/import_svg.py | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/io_curve_svg/import_svg.py b/io_curve_svg/import_svg.py
index e84c9949c..d407ecc84 100644
--- a/io_curve_svg/import_svg.py
+++ b/io_curve_svg/import_svg.py
@@ -484,7 +484,7 @@ class SVGPathParser:
     """
 
     __slots__ = ('_data',  # Path data supplird
-                 '_point',  # Current point coorfinate
+                 '_point',  # Current point coordinate
                  '_handle',  # Last handle coordinate
                  '_splines',  # List of all splies created during parsing
                  '_spline',  # Currently handling spline
@@ -870,6 +870,14 @@ class SVGPathParser:
             cv = self._spline['points'][0]
             self._point = (cv['x'], cv['y'])
 
+    def _pathCloseImplicitly(self):
+        """
+        Close path implicitly without changing current point coordinate
+        """
+
+        if self._spline:
+            self._spline['closed'] = True
+
     def parse(self):
         """
         Execute parser
@@ -890,11 +898,11 @@ class SVGPathParser:
                 closed = False
 
             if code in {'M', 'm'} and self._use_fill and not closed:
-                self._pathClose('z') # Ensure closed before MoveTo path command
+                self._pathCloseImplicitly() # Ensure closed before MoveTo path command
 
             cmd(code)
         if self._use_fill and not closed:
-            self._pathClose('z') # Ensure closed at the end of parsing
+            self._pathCloseImplicitly() # Ensure closed at the end of parsing
 
     def getSplines(self):
         """
-- 
GitLab