mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-12 08:33:45 +08:00
65b34a12c0
"not not return 34" exits with 34, not 1. This behavior is pretty surprising but benign. I think it's very unlikely that anyone relies on the opposite behavior, because using two "not" decorators in one job is weird, and code that compares not's raw exit code is rare. The behavior doesn't match our docs, but it's not worth changing the docs because that would confuse newcomers. Add a test to cement the behavior and a comment to explain this is intentional. I considered adding the comment at parse_execution_context_t::populate_not_process where this behavior is implemented but the field defintion seems even better, because I expect programmers to read that first. Closes #8377
11 lines
159 B
Fish
11 lines
159 B
Fish
#RUN: %fish %s
|
|
|
|
not true
|
|
echo $status
|
|
# CHECK: 1
|
|
|
|
# Two "not" prefixes on a single job cancel each other out.
|
|
not not sh -c 'exit 34'
|
|
echo $status
|
|
# CHECK: 34
|