mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-27 21:33:09 +00:00
set error code on failed command substitution to 255 instead of -1
the exit status ought to be in 0-255, e.g. exit -1
This commit is contained in:
parent
4170e8cff2
commit
b62fa53807
2 changed files with 13 additions and 2 deletions
|
@ -1157,7 +1157,12 @@ static int exec_subshell_internal(const wcstring &cmd, parser_t &parser, wcstrin
|
|||
// If the caller asked us to preserve the exit status, restore the old status. Otherwise set the
|
||||
// status of the subcommand.
|
||||
if (apply_exit_status) {
|
||||
parser.set_last_statuses(subcommand_statuses);
|
||||
// Hack: If the evaluation failed, avoid returning -1 to the user.
|
||||
if (subcommand_statuses.status == -1) {
|
||||
parser.set_last_statuses(statuses_t::just(255));
|
||||
} else {
|
||||
parser.set_last_statuses(subcommand_statuses);
|
||||
}
|
||||
} else {
|
||||
parser.set_last_statuses(std::move(prev_statuses));
|
||||
}
|
||||
|
|
|
@ -1,2 +1,8 @@
|
|||
#RUN: %fish -c "echo 1.2.3.4."
|
||||
#RUN: %fish -C 'set -l fish %fish' %s
|
||||
|
||||
$fish -c "echo 1.2.3.4."
|
||||
# CHECK: 1.2.3.4.
|
||||
|
||||
PATH= $fish -c "echo (command a)" 2>/dev/null
|
||||
echo $status
|
||||
# CHECK: 255
|
||||
|
|
Loading…
Reference in a new issue