diff options
-rwxr-xr-x | tests/sed.test | 1 | ||||
-rw-r--r-- | toys/posix/sed.c | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/tests/sed.test b/tests/sed.test index 7a4a8cda..822cfa37 100755 --- a/tests/sed.test +++ b/tests/sed.test @@ -127,6 +127,7 @@ testing "blank pattern repeats last pattern" \ testing "" "sed -e '1a\' -e 'huh'" "meep\nhuh\n" "" "meep" testing "" "sed -f input" "blah\nboom\n" '1a\\\nboom' 'blah' +testing "" "sed -f - input" "blah\nboom\n" 'blah' '1a\\\nboom' testing "" "sed '1a\ hello'" "merp\nhello\n" "" "merp" diff --git a/toys/posix/sed.c b/toys/posix/sed.c index e1c00bab..bafe77c4 100644 --- a/toys/posix/sed.c +++ b/toys/posix/sed.c @@ -1045,7 +1045,8 @@ void sed_main(void) for (dworkin = TT.e; dworkin; dworkin = dworkin->next) jewel_of_judgement(&dworkin->arg, strlen(dworkin->arg)); for (dworkin = TT.f; dworkin; dworkin = dworkin->next) - do_lines(xopen(dworkin->arg, O_RDONLY), dworkin->arg, jewel_of_judgement); + do_lines(strcmp(dworkin->arg, "-") ? xopen(dworkin->arg, O_RDONLY) : 0, + dworkin->arg, jewel_of_judgement); jewel_of_judgement(0, 0); dlist_terminate(TT.pattern); if (TT.nextlen) error_exit("no }"); |