summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bin/sh/miscbltin.c5
-rw-r--r--bin/sh/tests/builtins/Makefile1
-rw-r--r--bin/sh/tests/builtins/read8.017
3 files changed, 21 insertions, 2 deletions
diff --git a/bin/sh/miscbltin.c b/bin/sh/miscbltin.c
index 715e324..4575e96 100644
--- a/bin/sh/miscbltin.c
+++ b/bin/sh/miscbltin.c
@@ -191,9 +191,10 @@ readcmd(int argc __unused, char **argv __unused)
CHECKSTRSPACE(1, p);
if (backslash) {
backslash = 0;
- startword = 0;
- if (c != '\n')
+ if (c != '\n') {
+ startword = 0;
USTPUTC(c, p);
+ }
continue;
}
if (!rflag && c == '\\') {
diff --git a/bin/sh/tests/builtins/Makefile b/bin/sh/tests/builtins/Makefile
index ad39aac..f3c1dc7 100644
--- a/bin/sh/tests/builtins/Makefile
+++ b/bin/sh/tests/builtins/Makefile
@@ -121,6 +121,7 @@ FILES+= read4.0 read4.0.stdout
FILES+= read5.0
FILES+= read6.0
FILES+= read7.0
+FILES+= read8.0
FILES+= return1.0
FILES+= return2.1
FILES+= return3.1
diff --git a/bin/sh/tests/builtins/read8.0 b/bin/sh/tests/builtins/read8.0
new file mode 100644
index 0000000..fb786ff
--- /dev/null
+++ b/bin/sh/tests/builtins/read8.0
@@ -0,0 +1,17 @@
+# $FreeBSD$
+
+read a b c <<\EOF
+\
+A\
+ \
+ \
+ \
+B\
+ \
+ \
+C\
+ \
+ \
+ \
+EOF
+[ "$a.$b.$c" = "A.B.C" ]
OpenPOWER on IntegriCloud