I found a bug in ksh's parameter expansion on an edge case:
true $(true "${USER#'"'}")
/home/sh[4]: no closing quote
The problem seems to occurs when all of these conditions are present:
1. On ${var#pattern} or ${var%pattern} parameter expansion
2. When the pattern contains a singly quoted double quote: '"'
3. While expansion occurs withing $(...), (but not `...`)
4. While the expansion is quoted: "${var#pattern}".
true can be replaced by other commands or var=...
if '"' gets replaced by \", the issue disappear
The bin/ksh/lex.c seems to use a big switch+goto table with one label
per grammar context. Maybe by jumping from context to context in a
specific pattern like above is producing the issue.
I did try to figure out where, but I lack time for now.
I hope the problem does not come from my way to test it and that it
have not been fixed.
$ uname -a # also tested with /bin/ksh
OpenBSD t470s 6.2 GENERIC.MP#134 amd64
$ cvs co bin/ksh/; cd bin/ksh; make
[...]
$ ./ksh ~/sh
/home/sh[4]: no closing quote