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

@@ -213,6 +213,9 @@ echo 'echo "source argv {$argv}"' | source
echo 'echo "source argv {$argv}"' | source -
echo 'echo "source argv {$argv}"' | source - abc
echo 'echo "source argv {$argv}"' | source - abc def
# This hangs if it fails!
source
echo $status
always_fails
echo $status