0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-01-23 06:58:58 -05:00

🐛 Fixes issue when parsing exponential numbers in paths

This commit is contained in:
alonso.torres 2021-04-13 12:14:40 +02:00 committed by Andrey Antukh
parent f0439da293
commit b9ca4e7f9b
2 changed files with 12 additions and 10 deletions

View file

@ -10,6 +10,7 @@
### :bug: Bugs fixed
- Fixes problem with pan and space [#811](https://github.com/penpot/penpot/issues/811)
- Fixes issue when parsing exponential numbers in paths
### :arrow_up: Deps updates

View file

@ -28,11 +28,11 @@
(into [] (impl-simplify/simplify points tolerance true)))))
;;
(def commands-regex #"(?i)[a-z][^a-z]*")
(def commands-regex #"(?i)[mzlhvcsqta][^mzlhvcsqta]*")
;; Matches numbers for path values allows values like... -.01, 10, +12.22
;; 0 and 1 are special because can refer to flags
(def num-regex #"[+-]?(\d+(\.\d+)?|\.\d+)")
(def num-regex #"[+-]?(\d+(\.\d+)?|\.\d+)(e[+-]?\d+)?")
(def flag-regex #"[01]")
@ -370,14 +370,15 @@
(reduce simplify-command [[start] start-pos start-pos start-pos start-pos])
(first))))
(defn path->content [string]
(let [clean-string (-> string
(str/trim)
;; Change "commas" for spaces
(str/replace #"," " ")
;; Remove all consecutive spaces
(str/replace #"\s+" " "))
commands (re-seq commands-regex clean-string)]
(defn path->content [path-str]
(let [clean-path-str
(-> path-str
(str/trim)
;; Change "commas" for spaces
(str/replace #"," " ")
;; Remove all consecutive spaces
(str/replace #"\s+" " "))
commands (re-seq commands-regex clean-path-str)]
(-> (mapcat parse-command commands)
(simplify-commands))))