On Mon, Nov 14, 2022 at 5:11 PM Bart Schaefer 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?