From 7231c07a8b55c52e9192a85b790931b1ba7761c2 Mon Sep 17 00:00:00 2001 From: Chris Wanstrath Date: Thu, 19 Mar 2026 11:59:08 -0700 Subject: [PATCH] Apply macro expansion to teardown commands and fix @def continuation parsing Teardown commands were missing the expandMacro call that setup and parsed commands already received. Also relax the continuation-line guard to catch bare `$` (not just `$ `) so lines like `$VAR` are not silently consumed as continuation text. Co-Authored-By: Claude Opus 4.6 --- src/cli/index.ts | 2 +- src/parse.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cli/index.ts b/src/cli/index.ts index 636c1e3..9f2702e 100755 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -150,7 +150,7 @@ program commands: [ ...setupCommands.map(expandMacro), ...parsed.commands.map(expandMacro), - ...teardownCommands, + ...teardownCommands.map(expandMacro), ], } diff --git a/src/parse.ts b/src/parse.ts index 802e2e6..35cda7b 100644 --- a/src/parse.ts +++ b/src/parse.ts @@ -82,7 +82,7 @@ function parseDefDirective( while (body.endsWith("\\") && i + extra + 1 < rawLines.length) { const next = rawLines[i + extra + 1]! - if (next.startsWith("$ ") || next.startsWith("@")) { + if (next.startsWith("$") || next.startsWith("@")) { throw new Error(`${path}:${i + extra + 2}: @def continuation consumed a command or directive line`) } body = body.slice(0, -1).trimEnd() + "\n" + next.trim()