Shell: Don't reset 'last_return_code' before running commands

Some variables depend on its value to function correctly.
Fixes the following issue:
    $ false; echo $?
    1
    $ false
    $ echo $?
    128
This commit is contained in:
Ali Mohammad Pur 2022-01-05 08:00:06 +03:30 committed by Andreas Kling
commit 310a18da1e
Notes: sideshowbarker 2024-07-17 21:20:49 +09:00
4 changed files with 20 additions and 18 deletions

View file

@ -3564,7 +3564,7 @@ Vector<String> SpecialVariableValue::resolve_as_list(RefPtr<Shell> shell)
switch (m_name) {
case '?':
return { resolve_slices(shell, String::number(shell->last_return_code), m_slices) };
return { resolve_slices(shell, String::number(shell->last_return_code.value_or(0)), m_slices) };
case '$':
return { resolve_slices(shell, String::number(getpid()), m_slices) };
case '*':