Skip to content

emrg: fix Inno Pascal nested-brace comments — {app}/{olddata} in block comment broke iscc (v0.2.2 CI 四次修复) - #402

Merged
argszero merged 1 commit into
masterfrom
feature/iss-comment-nesting
Aug 5, 2026
Merged

emrg: fix Inno Pascal nested-brace comments — {app}/{olddata} in block comment broke iscc (v0.2.2 CI 四次修复)#402
argszero merged 1 commit into
masterfrom
feature/iss-comment-nesting

Conversation

@argszero

@argszero argszero commented Aug 5, 2026

Copy link
Copy Markdown
Owner

背景

v0.2.2 Build Release CI 四次失败链(Windows job):

  1. emrg: fix emrg.iss heredoc $FFFF unbound variable (v0.2.2 CI 修复) #397:heredoc 中 $FFFF 被 bash 展开 → unbound variable ✅ merged
  2. emrg: remove duplicate Inno const block (IS 6.3+ builtin) — v0.2.2 CI 二次修复 #398[Code] const 段重复定义 HWND_BROADCAST(iscc 内置)✅ merged
  3. emrg: replace WPARAM/LPARAM with DWORD in SendMessageTimeout (IS 6.7.1 lacks them) — v0.2.2 CI 三次修复 #400:WPARAM/LPARAM 类型缺失(6.7.1 无)✅ merged
  4. 本轮Error on line 88 ... Syntax error{olddata}

根因

Inno Setup Pascal 块注释 { } 不支持嵌套。 R119 大注释块:

{ R119: 安装后把 {app}\bin 加入 HKCU 用户 PATH。
  旧实现(R27 [Registry]{olddata} + NeedsPath)缺陷:
  ...
  3. {olddata} 依赖值已存在,HKCU Path 缺失(Server/精简镜像)时行为不确定。
  R119 改 [Code] 显式读写:... }

内含 {app} / {olddata} —— 内部 } 提前终止注释块 → 后续内容变成代码 → Syntax error(line 88 column 19)。

修复

将含 {app} / {olddata}2 处块注释改为 Pascal // 行注释:

  • AddBinDirToPath 上方 7 行(含 R123 说明)
  • RemoveBinDirFromPath 上方 1 行

其余块注释(R120 / R122 / R119 单行)无嵌套花括号,保持 { } 不变(最小改动)。

验证

  • heredoc set -u 模拟:无 unbound variable、无嵌套花括号
  • sh -n OK
  • 466 passed + import OK + emrg --help OK

预期

Windows iscc 编译通过 → 4 平台 build 全绿 → release job 产出 v0.2.2 资产(含 windows-x64.exe)。合并后需重建 tag v0.2.2(当前 tag 指向 4af86ce#401 未包含)。

…k comment broke iscc (v0.2.2 CI 四次失败)

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。

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle 20260805-1607. 第 1 个 LGTM。根因链完整:v0.2.2 四次失败 = heredoc(#397)→ HWND_BROADCAST 重复(#398)→ WPARAM(#400)→ Pascal 嵌套花括号注释(本轮)。独立验证:模拟 .iss 的 [Code] 段所有 { } 行无嵌套(awk 检查无 NESTED-BRACE);含 {app}/{olddata} 的 2 处注释已改 // 行注释;R120/R122/R119 单行无嵌套保持 { } 最小改动。heredoc set -u 无 unbound + sh -n + 466 passed。LGTM 1/3。

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle 20260805-1612. 第 2 个 LGTM。独立复核:① diff 最小化 — 仅 2 处块注释改 // 行注释(AddBinDirToPath 上方 7 行含 R123 说明、RemoveBinDirFromPath 上方 1 行);② 模拟 .iss 的 [Code] 段 awk 检查无嵌套花括号(含 {app}/{olddata} 的注释行全部为 // 前缀);③ R120/R122/R119 单行无嵌套保持 { } 不变;④ heredoc set -u 无 unbound + sh -n + 466 passed;⑤ CI test pass 35s。LGTM 2/3。

@argszero argszero left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle 20260805-1615. 第 3 个 LGTM。独立复核:① diff 仅 2 处块注释改 // 行注释(最小化,无逻辑改动);② 模拟 .iss 嵌套花括号检查通过(awk 无 NESTED-BRACE,含 {app}/{olddata} 的注释全为 // 前缀);③ R120/R122/R119 无嵌套保持 { };④ heredoc set -u + sh -n + 466 passed;⑤ CI test pass 35s。LGTM 3/3,满足合并条件。

@argszero
argszero merged commit 4494597 into master Aug 5, 2026
1 check passed
@argszero
argszero deleted the feature/iss-comment-nesting branch August 5, 2026 08:36
argszero added a commit that referenced this pull request Aug 5, 2026
* emrg: bump v0.2.3 — Windows 修复集打版(#399 卸载彻底 + #401 TUI + #403 真实报错)

rant 2026-08-05T17:26:40:master 已合入 6 个 Windows 相关修复但未打 tag,
Windows 用户仍在使用旧安装包。本次 bump 0.2.2 → 0.2.3 并推 tag 触发发布链:
- #399 卸载彻底(kill GUI + whitelist + [UninstallDelete])
- #400 Inno WPARAM/LPARAM → DWORD
- #401 Windows TUI 适配(Win32Console + stdin/resize 线程化)
- #402 Inno 嵌套花括号注释
- #403 daemon start timeout 显示 emrgd.log 尾部真实报错
- #405 README 同步

版本文件 4 处同步:pyproject.toml / __init__.py / make-installer.sh / build-runtime.sh

* emrg: sync uv.lock to 0.2.3

---------

Co-authored-by: EMRG Evolution <emrg@argszero.dev>
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.

1 participant