diff options
-rwxr-xr-x | tests/sed.test | 2 | ||||
-rw-r--r-- | toys/posix/sed.c | 2 |
2 files changed, 1 insertions, 3 deletions
diff --git a/tests/sed.test b/tests/sed.test index 34dfa161..6b27fff8 100755 --- a/tests/sed.test +++ b/tests/sed.test @@ -72,8 +72,6 @@ testing "aci" \ "sed -e '3a boom' -e '/hre/i bang' -e '3a whack' -e '3c bong'" \ "one\ntwo\nbang\nbong\nboom\nwhack\nfour\n" "" \ "one\ntwo\nthree\nfour\n" -# TODO: next test is broken on new-ish debian/bash with never-ending -# output of `sed: short write: Broken pipe`. testing "b loop" "sed ':woo;=;b woo' | head -n 5" '1\n1\n1\n1\n1\n' "" "X" testing "b skip" "sed -n '2b zap;d;:zap;p'" "two\n" "" "one\ntwo\nthree" testing "b end" "sed -n '2b;p'" "one\nthree" "" "one\ntwo\nthree" diff --git a/toys/posix/sed.c b/toys/posix/sed.c index 0be2165e..5e516249 100644 --- a/toys/posix/sed.c +++ b/toys/posix/sed.c @@ -600,7 +600,7 @@ writenow: } } else if (c=='=') { sprintf(toybuf, "%ld", TT.count); - emit(toybuf, strlen(toybuf), 1); + if (emit(toybuf, strlen(toybuf), 1)) break; } command = command->next; |