fix(expansion): preserve leading IFS boundaries - #367
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🤖 auto-maintain reviewAutomated, advisory triage for
Review panel: 🟡 medium highest severity just-bash maintainer code review: 🟡 medium
General code review: 🟡 medium
Adversarial security: 🟢 low
Adversarial security (second opinion): 🟡 medium
Standard Bash and host portability: 🟢 low
Posted by auto-maintain. This automated code review is advisory; a human maintainer makes the call. |
…valuation' into fix/leading-ifs-word-splitting
|
A new push changed this PR and the review now contains a higher-severity finding. See the updated review comment above. |
…valuation' into fix/leading-ifs-word-splitting
…valuation' into fix/leading-ifs-word-splitting
…valuation' into fix/leading-ifs-word-splitting
…valuation' into fix/leading-ifs-word-splitting
Problem
Unquoted array default expansion can begin with an empty element. When it followed literal text, the word splitter dropped the resulting boundary:
prefix=${values[@]-fallback}could mergeprefix=and the next array element into one argument. Commands then received different arguments from Bash.Changes
The splitter now commits preceding literal text when the next unquoted expansion begins with an IFS delimiter. The change preserves the intended argument boundary and enables the matching Oils conformance case.
Stack position: child of #366; prerequisite for the structured-extglob repair.