From 04bd60b0a9ff7a95baea8600c9b43c8257ae9042 Mon Sep 17 00:00:00 2001 From: iamvirul Date: Sun, 3 May 2026 23:56:28 +0530 Subject: [PATCH 1/2] fix(nsis): prefix StrReplaceAll with un. for uninstall section NSIS requires functions called from an Uninstall section to be defined as Function un.FunctionName. StrReplaceAll is only called from the Uninstall section, so rename it to un.StrReplaceAll and update both call sites. StrContains is only called from the Install section and stays unprefixed. --- .github/windows-installer.nsi | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/windows-installer.nsi b/.github/windows-installer.nsi index d169b96..500b175 100644 --- a/.github/windows-installer.nsi +++ b/.github/windows-installer.nsi @@ -112,12 +112,12 @@ Section "Uninstall" Push "$0" Push "$INSTDIR;" Push "" - Call StrReplaceAll + Call un.StrReplaceAll Pop $0 Push "$0" Push ";$INSTDIR" Push "" - Call StrReplaceAll + Call un.StrReplaceAll Pop $0 WriteRegExpandStr HKLM \ "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" \ @@ -162,9 +162,10 @@ Function StrContains Push $R0 FunctionEnd -; ── Helper: StrReplaceAll ──────────────────────────────────────────────────── +; ── Helper: un.StrReplaceAll ───────────────────────────────────────────────── ; Stack (top→bottom): [haystack] [find] [replace] → [result] -Function StrReplaceAll +; Must be prefixed un. because it is called from the Uninstall section. +Function un.StrReplaceAll Exch $2 ; replace Exch Exch $1 ; find From ce0ff3618f65a79c85e3ef5e81136361321dc420 Mon Sep 17 00:00:00 2001 From: iamvirul Date: Mon, 4 May 2026 00:01:11 +0530 Subject: [PATCH 2/2] chore(changelog): add v1.4.4 release notes --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e8110e..db08d40 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.4.4] - 2026-05-03 + +### Fixed + +- **Windows uninstaller crash — `StrReplaceAll` not found** — NSIS requires functions called from the `Uninstall` section to be defined as `Function un.FunctionName`. `StrReplaceAll` was defined as a plain function, causing `makensis` to abort with "Call must be used with function names starting with 'un.'". Renamed to `un.StrReplaceAll` and updated both call sites. ([#119](https://github.com/iamvirul/deepdiff-db/pull/119)) + ## [1.4.3] - 2026-05-03 ### Added @@ -513,6 +519,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - MySQL foreign key check handling [Unreleased]: https://github.com/iamvirul/deepdiff-db/compare/v1.4.3...HEAD +[1.4.4]: https://github.com/iamvirul/deepdiff-db/compare/v1.4.3...v1.4.4 [1.4.3]: https://github.com/iamvirul/deepdiff-db/compare/v1.4.2...v1.4.3 [1.4.2]: https://github.com/iamvirul/deepdiff-db/compare/v1.4.1...v1.4.2 [1.4.1]: https://github.com/iamvirul/deepdiff-db/compare/v1.4.0...v1.4.1