source: Return error instead of implicitly reading from tty

For things like

    source $undefined

or
    source (nooutput)

it was quite annoying that it read from tty.

Instead we now require a "-" as the filename to read from the tty.

This does not apply to reading from stdin if it's redirected, so

    something | source

still works.

Fixes #2633.
This commit is contained in:
Fabian Homborg
2018-10-22 20:50:31 +02:00
parent a04a37897f
commit 1d5e715008
5 changed files with 11 additions and 1 deletions

View File

@@ -23,6 +23,7 @@ fish 3.0 is a major release which brings with it both improvements in functional
- Background jobs not first `disown`'d will be reaped upon `exec`, bringing the behavior in line with that of `exit`.
- `read` now uses `-s` as short for `--silent` (à la `bash`); `--shell`'s abbreviation (formerly `-s`) is now `-S` instead (#4490).
- `cd` no longer resolves symlinks. fish now maintains a virtual path, matching other shells. (#3350).
- `source` now requires an explicit `-` as the filename to read from the terminal (#2633).
## Notable fixes and improvements
### Syntax/semantic changes and new builtins