Don't set error offset for $status

This would break the location of any prior errors without doing
anything of value.

E.g.

```fish
echo foo | exec grep # this exec is not allowed!

$status

somethingelse # The error might be found here!
```

Would apply the offset of `$status` to the offset of `exec`, locating
the error for `exec` somewhere after $status!
This commit is contained in:
Fabian Homborg
2021-09-28 17:15:33 +02:00
parent d619d79117
commit 6774a514fa
2 changed files with 12 additions and 1 deletions

View File

@@ -0,0 +1,12 @@
#RUN: %fish -C 'set -g fish %fish' %s
# A $status used as a command should not impact the location of other errors.
echo 'echo foo | exec grep # this exec is not allowed!
$status
# The error might be found here!' | $fish 2>| string replace -r '(.*)' '<$1>'
# CHECK: <fish: The 'exec' command can not be used in a pipeline>
# CHECK: <echo foo | exec grep # this exec is not allowed!>
# CHECK: < ^>