Hi Matthew, I'm unable to judge the patch, but appreciate your quick fix. Thanks a lot! I'm looking forward to the next release, in which it is contained.
I just occurred to me, that the problem also exists for ". Is this covered with your patch as well? Richard cho...@jtan.com wrote: > Richard Ulmer writes: > > Hi, > > when there is a single ' in a comment within a subshell, I get this > > error: foo[6]: no closing quote > > > > Here is an example script to reproduce the problem: > > > > foo=$( > > # It's bar: > > echo bar > > ) > > echo $foo > > This is certainly not the best way to do this but it does the job: > > ~/src/ksh [OpenBSD 6.6] > [ksh]flask@void$ /bin/ksh > void$ foo=$( > > # quote: ' > > echo bar > > ) > > ^D > /bin/ksh: no closing quote > ~/src/ksh [OpenBSD 6.6] > [ksh]flask@void$ ./ksh > void$ foo=$( > > # quote: ' > > echo bar > > ) > void$ echo $foo > bar > void$ > > In particular it just reeks of kludge, which I'm not happy with > because according to the comment two-dozen lines up it's already a > kludge. The loop is lifted from the beginning of the same function, > where regular comments are skipped. > > Matthew > > --- lex.c.~1.78.~ Mon Jan 15 16:58:05 2018 > +++ lex.c Sat Dec 14 10:55:06 2019 > @@ -496,6 +496,12 @@ > statep->ls_scsparen.csstate = 4; > ignore_backslash_newline++; > break; > + case '#': > + ignore_backslash_newline++; > + while ((c = getsc()) != '\0' && c != > '\n') > + ; > + ignore_backslash_newline--; > + break; > } > break; >