Configuration Information [Automatically generated, do not change]: Machine: x86_64 OS: darwin20.6.0 Compiler: gcc Compilation CFLAGS: -g -O2 uname output: Darwin macspear 20.6.0 Darwin Kernel Version 20.6.0: Tue Apr 19 2$ Machine Type: x86_64-apple-darwin20.6.0
Bash Version: 5.2 Patch Level: 0 Release Status: rc3 Description: examples/loadables/cut.c uses zgetline, which includes the newline delimiter in the line it reads, but the rest of the code expects the line to not contain the newline. Repeat-By: $ ./bash -c 'enable -f examples/loadables/cut cut ; cut -c4-' <<< $'abcdef\nghijkl' def jkl $ Fix: Strip off the newline right after reading the line. Attached patch fixes the problem.
diff --git a/examples/loadables/cut.c b/examples/loadables/cut.c index ed4972d2..280c5231 100644 --- a/examples/loadables/cut.c +++ b/examples/loadables/cut.c @@ -417,6 +417,8 @@ cutfile (v, list, ops) while ((n = zgetline (fd, &line, &llen, '\n', unbuffered_read)) != -1) { QUIT; + if (line[n] == '\n') + line[n] = '\0'; cutline (v, line, ops); /* can modify line */ } if (fd > 0)