← Commit list

39aabfe8f

Denys Vlasenko
Denys Vlasenko
2021-07-11
SUCCESS Duration: 152s

Subject

awk: unbreak "cmd" | getline

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

editors/awk.c+2 -1
@@ -3156,7 +3156,8 @@ static var *evaluate(node *op, var *res)
if (op1) {
rsm = newfile(L.s);
if (!rsm->F) {
- if (opinfo == TI_PGETLINE) {
+ /* NB: can't use "opinfo == TI_PGETLINE", would break "cmd" | getline */
+ if ((opinfo & OPCLSMASK) == OC_PGETLINE) {
rsm->F = popen(L.s, "r");
rsm->is_pipe = TRUE;
} else {
testsuite/awk.tests+5 -0
@@ -455,4 +455,9 @@ testing "awk print + redirect" \
"STDERR %s\n" \
'' ''
+testing "awk \"cmd\" | getline" \
+ "awk 'BEGIN { \"echo HELLO\" | getline; print }'" \
+ "HELLO\n" \
+ '' ''
+
exit $FAILCOUNT