On Mon, Nov 14, 2022 at 5:11 PM Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx> wrote:
>
> [if workers/50929 makes 50897 redundant then] there's no point in
> bashing through if/case/for/while/repeat/select individually -- the
> only case we have to fix is this one:
I was half right. Fixing that case revealed that it was necessary to
go through the others, because the "redundant" fix is one level too
far up the stack.
Attached patch removes 50929 again, and amends this_noerrexit from
50897 in each of the complex command exec* functions. Finally it adds
tests to E01options for each of the cases that Philippe previously
outlined, with the exception of "select" which is interactive.
The tests from 50928 still pass with this patch. I spent a ridiculous
amount of time with every change I made flopping back and forth
between C03 working and the new E01 failing and vice-versa, before
noticing what happened when I nested a brace _expression_ inside another
one.
Also a minor fix for TRAPDEBUG that caused me some confusion earlier
in the process.
Are there more cases that need testing?