summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2016-02-23 22:44:01 +0000
committerjilles <jilles@FreeBSD.org>2016-02-23 22:44:01 +0000
commitc7d6350d16b34cf063d0cf657e4b6ca004f0a32b (patch)
treeb396aa20f5020258d8c9a78db127c8aad4a103f2 /bin
parent0a369764c2fc018144f346159e94d3cf1c5e9ccb (diff)
downloadFreeBSD-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.c3
-rw-r--r--bin/sh/tests/parser/Makefile1
-rw-r--r--bin/sh/tests/parser/set-v1.08
-rw-r--r--bin/sh/tests/parser/set-v1.0.stderr5
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
OpenPOWER on IntegriCloud