Escape the error string in process expansion errors

This prevents `echo %*` from printing a private-use character in the
error string.

Fixes #1720.
This commit is contained in:
Kevin Ballard 2014-09-25 18:24:10 -07:00
parent 35595dbffd
commit 6925cd5d88

View File

@ -860,7 +860,7 @@ static bool expand_pid(const wcstring &instr_with_sep, expand_flags_t flags, std
if (!(flags & ACCEPT_INCOMPLETE))
{
/* We failed to find anything */
append_syntax_error(errors, 1, FAILED_EXPANSION_PROCESS_ERR_MSG, in+1);
append_syntax_error(errors, 1, FAILED_EXPANSION_PROCESS_ERR_MSG, escape(in+1, ESCAPE_NO_QUOTED).c_str());
return false;
}
}