diff options
author | jilles <jilles@FreeBSD.org> | 2016-02-23 22:44:01 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2016-02-23 22:44:01 +0000 |
commit | c7d6350d16b34cf063d0cf657e4b6ca004f0a32b (patch) | |
tree | b396aa20f5020258d8c9a78db127c8aad4a103f2 /bin | |
parent | 0a369764c2fc018144f346159e94d3cf1c5e9ccb (diff) | |
download | FreeBSD-src-c7d6350d16b34cf063d0cf657e4b6ca004f0a32b.zip FreeBSD-src-c7d6350d16b34cf063d0cf657e4b6ca004f0a32b.tar.gz |
sh: Fix set -v and multiline history after r295825.
r295825 erroneously dropped the newline from the input data for 'set -v'
output and multiline history.
Reported by: vangyzen
Diffstat (limited to 'bin')
-rw-r--r-- | bin/sh/input.c | 3 | ||||
-rw-r--r-- | bin/sh/tests/parser/Makefile | 1 | ||||
-rw-r--r-- | bin/sh/tests/parser/set-v1.0 | 8 | ||||
-rw-r--r-- | bin/sh/tests/parser/set-v1.0.stderr | 5 |
4 files changed, 16 insertions, 1 deletions
diff --git a/bin/sh/input.c b/bin/sh/input.c index 27b835a..3292f99 100644 --- a/bin/sh/input.c +++ b/bin/sh/input.c @@ -242,7 +242,8 @@ again: parsenleft = parselleft; parselleft = 0; } else /* *q == '\n' */ { - parsenleft = q - parsenextc + 1; + q++; + parsenleft = q - parsenextc; parselleft -= parsenleft; } parsenleft--; diff --git a/bin/sh/tests/parser/Makefile b/bin/sh/tests/parser/Makefile index eb1e6f5..dd126ee 100644 --- a/bin/sh/tests/parser/Makefile +++ b/bin/sh/tests/parser/Makefile @@ -79,6 +79,7 @@ FILES+= only-redir2.0 FILES+= only-redir3.0 FILES+= only-redir4.0 FILES+= pipe-not1.0 +FILES+= set-v1.0 set-v1.0.stderr FILES+= var-assign1.0 .include <bsd.test.mk> diff --git a/bin/sh/tests/parser/set-v1.0 b/bin/sh/tests/parser/set-v1.0 new file mode 100644 index 0000000..687cb83 --- /dev/null +++ b/bin/sh/tests/parser/set-v1.0 @@ -0,0 +1,8 @@ +# $FreeBSD$ + +${SH} <<\EOF +echo one >&2 +set -v +echo two >&2 +echo three >&2 +EOF diff --git a/bin/sh/tests/parser/set-v1.0.stderr b/bin/sh/tests/parser/set-v1.0.stderr new file mode 100644 index 0000000..d904fa5 --- /dev/null +++ b/bin/sh/tests/parser/set-v1.0.stderr @@ -0,0 +1,5 @@ +one +echo two >&2 +two +echo three >&2 +three |