Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(convertPathData): handle setting prev properly to fix path joining and #1855 #1856

Merged
merged 2 commits into from
Nov 29, 2023

Conversation

KTibow
Copy link
Contributor

@KTibow KTibow commented Nov 28, 2023

I think the issue there is caused by the path joining acting weird because prev is set to a nonexistent (filtered out) command. This PR moves where prev is set to fix.
Fix #1855

@KTibow KTibow changed the title Fix #1855 (probably) fix(convertPathData): handle setting prev properly to fix path joining and #1855 Nov 29, 2023
@SethFalco
Copy link
Member

I was just looking at this, and came to the same conclusion/fix.
Just went back to the issue to test with the original SVG, and see you'd already solved it an hour ago. ^-^'

The only difference is between yours and what I was going to PR is that I added a test case:

Should merge M and m, even when Z command is used between.

===

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
  <path d="M1 1m1 1"/>
  <path fill="black" d="M8.5 12Zm0 8q3.35 0 5.675-2.325"/>
</svg>

@@@

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
    <path d="M2 2"/>
    <path fill="black" d="M8.5 20q3.35 0 5.675-2.325"/>
</svg>

Mind adding this to yours, then I'd be happy to merge!

@SethFalco
Copy link
Member

Awesome, thank you very much for resolving this!

@SethFalco SethFalco merged commit 8dd7a3b into svg:main Nov 29, 2023
10 checks passed
@KTibow KTibow deleted the patch-1 branch November 29, 2023 00:45
@cyberalien
Copy link
Contributor

Nice! Thanks for fixing it!

nono referenced this pull request in cozy/cozy-stack Dec 4, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [svgo](https://svgo.dev) ([source](https://togithub.com/svg/svgo)) |
[`3.0.4` -> `3.0.5`](https://renovatebot.com/diffs/npm/svgo/3.0.4/3.0.5)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/svgo/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/svgo/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/svgo/3.0.4/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svgo/3.0.4/3.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>svg/svgo (svgo)</summary>

### [`v3.0.5`](https://togithub.com/svg/svgo/releases/tag/v3.0.5)

[Compare Source](https://togithub.com/svg/svgo/compare/v3.0.4...v3.0.5)

#### What's Changed

##### Bug Fixes

- **[Cleanup IDs](https://svgo.dev/docs/plugins/cleanup-ids/)**,
correctly handle references to other nodes in animations. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1862](https://togithub.com/svg/svgo/pull/1862)
- **[Convert Path
Commands](https://svgo.dev/docs/plugins/convert-path-data/)**, fix issue
when removing redundant `Z` between mergable `M`/`m` commands. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1856](https://togithub.com/svg/svgo/pull/1856)
- **[Convert Path
Commands](https://svgo.dev/docs/plugins/convert-path-data/)**, adhere to
error/precision in `z` conversions. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[https://github.com/svg/svgo/pull/1842](https://togithub.com/svg/svgo/pull/1842)
- **[Remove Empty
Containers](https://svgo.dev/docs/plugins/remove-empty-containers/)**,
skip if parent node is `<switch>`, as empty containers can be used for
attributes like `requiredFeatures`. By
[@&#8203;vincentbernat](https://togithub.com/vincentbernat) in
[https://github.com/svg/svgo/pull/1747](https://togithub.com/svg/svgo/pull/1747)
- **[Remove Hidden
Elements](https://svgo.dev/docs/plugins/remove-hidden-elems/)**, when
removing a hidden definition, also remove nodes that reference it. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[https://github.com/svg/svgo/pull/1852](https://togithub.com/svg/svgo/pull/1852)
- Output the optimization stats (profit) in red if the file size
increased. By [@&#8203;gimler](https://togithub.com/gimler) in
[https://github.com/svg/svgo/pull/1162](https://togithub.com/svg/svgo/pull/1162)
- Type definition files now correctly use the `.d.ts` file extension
instead of `.ts`. By [@&#8203;Exotelis](https://togithub.com/Exotelis)
in
[https://github.com/svg/svgo/pull/1780](https://togithub.com/svg/svgo/pull/1780)

##### Chores

- Improved exported types for the `#loadConfig` method. By
[@&#8203;nuintun](https://togithub.com/nuintun) in
[https://github.com/svg/svgo/pull/1844](https://togithub.com/svg/svgo/pull/1844)

#### Metrics

Before and after using vectors from various sources, with the default
preset of each respective version:

| SVG | Original | v3.0.4 | v3.0.5 | Delta |
|---|---|---|---|---|
| [Arch Linux Logo](https://archlinux.org/art/) | 9.529 KiB | 4.735 KiB
| 4.608 KiB | ⬇️ 0.127 KiB |
|
[Blobs](https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/backgrounds/blobs-d.svg)
| 50.45 KiB | 42.949 KiB | 42.949 KiB | |
| [Isometric
Madness](https://inkscape.org/~Denis_Kuznetsky/%E2%98%85isometric-madness)
| 869.034 KiB | 550.593 KiB | 550.153 KiB | ⬇️ 0.44 KiB |
| [tldr-pages
Banner](https://togithub.com/tldr-pages/tldr/blob/main/images/banner.svg)
| 2.071 KiB | 1.07 KiB | 1.07 KiB | |
| [Wikipedia
Logo](https://en.wikipedia.org/wiki/File:Wikipedia-logo-v2.svg) |
161.551 KiB | 117.152 KiB | 117.146 KiB | ⬇️ 0.006 KiB |

Before and after of the browser bundle of each respective version:

| | v3.0.4 | v3.0.5 | Delta |
|---|---|---|---|
| svgo.browser.js | 656.9 kB | 657.5 kB | ⬆️ 0.6 kB |

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 6am on Monday" in timezone
Europe/Paris, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/cozy/cozy-stack).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1hc3RlciJ9-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Regression in 3.0.4: convertPathData breaks paths
3 participants