From 721d8f40b61934e5b685ee1300097a0c164d35b8 Mon Sep 17 00:00:00 2001 From: EMRG Evolution Date: Wed, 5 Aug 2026 16:09:54 +0800 Subject: [PATCH] =?UTF-8?q?emrg:=20fix=20Inno=20Pascal=20nested-brace=20co?= =?UTF-8?q?mments=20=E2=80=94=20{app}/{olddata}=20in=20block=20comment=20b?= =?UTF-8?q?roke=20iscc=20(v0.2.2=20CI=20=E5=9B=9B=E6=AC=A1=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v0.2.2 Build Release CI 四次失败链:#397 heredoc → #398 HWND_BROADCAST 重复 → #400 WPARAM 类型缺失 → 本轮:line 88 Syntax error({olddata})。 根因:Inno Setup Pascal 块注释 { } 不支持嵌套。R119 大注释块 "{ R119: ... {app} ... {olddata} ... }" 内含 {app}/{olddata},内部的 } 提前终止注释块 → 后续内容变成代码 → "Syntax error"(line 88 column 19)。 修复:将含 {app}/{olddata} 的 2 处块注释改为 Pascal // 行注释 (AddBinDirToPath 上方 7 行 + RemoveBinDirFromPath 上方 1 行)。 其余块注释(R120/R122/R119 单行)无嵌套花括号,保持 { } 不变。 验证:heredoc set -u 模拟(无 unbound + 无嵌套花括号)+ sh -n + 466 passed + import OK + --help OK。 --- packaging/make-installer.sh | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/packaging/make-installer.sh b/packaging/make-installer.sh index 71ee942b..e8628794 100755 --- a/packaging/make-installer.sh +++ b/packaging/make-installer.sh @@ -245,13 +245,15 @@ begin SMTO_ABORTIFHUNG, 5000, Dummy); end; -{ R119: 安装后把 {app}\bin 加入 HKCU 用户 PATH。 - 旧实现(R27 [Registry]{olddata} + NeedsPath)缺陷: - 1. NeedsPath 用未展开的字面 %USERPROFILE%\... 与已展开的 GetEnv('Path') - 比较 → 永不匹配 → 重复安装 PATH 段累积; - 2. ValueData 写死 %USERPROFILE%\...\bin → 用户自定义安装目录时 PATH 指向错误; - 3. {olddata} 依赖值已存在,HKCU Path 缺失(Server/精简镜像)时行为不确定。 - R119 改 [Code] 显式读写:展开 {app}\bin 真实路径 + 段边界去重 + 值缺失时创建。} +// R123: 以下注释用 // 行注释(Inno Pascal 块注释 { } 不支持嵌套, +// 内含 {app}/{olddata} 的 } 会提前终止注释块 → Syntax error,v0.2.2 CI 四次失败)。 +// R119: 安装后把 {app}\bin 加入 HKCU 用户 PATH。 +// 旧实现(R27 [Registry]{olddata} + NeedsPath)缺陷: +// 1. NeedsPath 用未展开的字面 %USERPROFILE%\... 与已展开的 GetEnv('Path') +// 比较 → 永不匹配 → 重复安装 PATH 段累积; +// 2. ValueData 写死 %USERPROFILE%\...\bin → 用户自定义安装目录时 PATH 指向错误; +// 3. {olddata} 依赖值已存在,HKCU Path 缺失(Server/精简镜像)时行为不确定。 +// R119 改 [Code] 显式读写:展开 {app}\bin 真实路径 + 段边界去重 + 值缺失时创建。 procedure AddBinDirToPath; var BinPath, OldPath, NewPath: string; @@ -269,7 +271,7 @@ begin BroadcastEnvironmentChange; end; -{ R119: 卸载后从 HKCU 用户 PATH 移除 {app}\bin } +// R119: 卸载后从 HKCU 用户 PATH 移除 {app}\bin procedure RemoveBinDirFromPath; var BinPath, PathEnv: string;