From 84f1891033161f057ede75e5102d4b28c616acee Mon Sep 17 00:00:00 2001 From: Jilles Tjoelker Date: Tue, 23 Feb 2016 22:44:01 +0000 Subject: [PATCH] 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 --- bin/sh/input.c | 3 ++- bin/sh/tests/parser/Makefile | 1 + bin/sh/tests/parser/set-v1.0 | 8 ++++++++ bin/sh/tests/parser/set-v1.0.stderr | 5 +++++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 bin/sh/tests/parser/set-v1.0 create mode 100644 bin/sh/tests/parser/set-v1.0.stderr diff --git a/bin/sh/input.c b/bin/sh/input.c index 27b835a55b84..3292f9905f7f 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 eb1e6f567b5c..dd126ee7ea90 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 diff --git a/bin/sh/tests/parser/set-v1.0 b/bin/sh/tests/parser/set-v1.0 new file mode 100644 index 000000000000..687cb8317557 --- /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 000000000000..d904fa5ffdb2 --- /dev/null +++ b/bin/sh/tests/parser/set-v1.0.stderr @@ -0,0 +1,5 @@ +one +echo two >&2 +two +echo three >&2 +three