MFC r198173: sh: show more info 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-12-20 20:51:20 +00:00
parent 86a2af8fd4
commit 088e699c18

View file

@ -1310,6 +1310,7 @@ parsebackq: {
struct jmploc *const savehandler = handler;
int savelen;
int saveprompt;
const int bq_startlinno = plinno;
savepbq = parsebackquote;
if (setjmp(jmploc.loc)) {
@ -1317,6 +1318,10 @@ parsebackq: {
ckfree(str);
parsebackquote = 0;
handler = savehandler;
if (exception == EXERROR) {
startlinno = bq_startlinno;
synerror("Error in command substitution");
}
longjmp(handler->loc, 1);
}
INTOFF;