sh: Show more information about syntax errors in command substitution:

the line number where the command substitution started.
This applies to both the $() and `` forms but is most useful for ``
because the other line number is relative to the enclosed text there.
(For older versions, -v can be used as a workaround.)
This commit is contained in:
Jilles Tjoelker 2009-10-16 16:17:57 +00:00
parent 7024354df3
commit f6196ed2d4

View File

@ -1308,11 +1308,16 @@ parsebackq: {
struct jmploc *const savehandler = handler;
int savelen;
int saveprompt;
const int bq_startlinno = plinno;
if (setjmp(jmploc.loc)) {
if (str)
ckfree(str);
handler = savehandler;
if (exception == EXERROR) {
startlinno = bq_startlinno;
synerror("Error in command substitution");
}
longjmp(handler->loc, 1);
}
INTOFF;