summaryrefslogtreecommitdiffstats
path: root/package/busybox/busybox-1.18.2/busybox-1.18.2-hush.patch
diff options
context:
space:
mode:
authorPeter Korsgaard <jacmet@sunsite.dk>2011-01-19 09:08:45 +0100
committerPeter Korsgaard <jacmet@sunsite.dk>2011-01-19 09:08:45 +0100
commitdea0b13403e2696046d1469f691945a74545127e (patch)
treeaca6e45b153a10d8e8a054a38b8bae7dd2177bf3 /package/busybox/busybox-1.18.2/busybox-1.18.2-hush.patch
parent0705e448a484eca77bca37b96ee0ef03f55251e7 (diff)
downloadbuildroot-novena-dea0b13403e2696046d1469f691945a74545127e.tar.gz
buildroot-novena-dea0b13403e2696046d1469f691945a74545127e.zip
busybox: add 1.18.2 fixes
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/busybox/busybox-1.18.2/busybox-1.18.2-hush.patch')
-rw-r--r--package/busybox/busybox-1.18.2/busybox-1.18.2-hush.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/package/busybox/busybox-1.18.2/busybox-1.18.2-hush.patch b/package/busybox/busybox-1.18.2/busybox-1.18.2-hush.patch
new file mode 100644
index 000000000..d08e5194d
--- /dev/null
+++ b/package/busybox/busybox-1.18.2/busybox-1.18.2-hush.patch
@@ -0,0 +1,34 @@
+--- busybox-1.18.2/shell/hush.c
++++ busybox-1.18.2-hush/shell/hush.c
+@@ -4123,15 +4123,26 @@ static struct pipe *parse_stream(char **
+ && dest.length == 0 && !dest.has_quoted_part
+ ) {
+ /* This newline can be ignored. But...
+- * without the below check, interactive shell
+- * will ignore even lines with bare <newline>,
+- * and show the continuation prompt:
++ * Without check #1, interactive shell
++ * ignores even bare <newline>,
++ * and shows the continuation prompt:
+ * ps1_prompt$ <enter>
+- * ps2> _ <=== wrong prompt, should be ps1
++ * ps2> _ <=== wrong, should be ps1
++ * Without check #2, "cmd & <newline>"
++ * is similarly mistreated.
++ * (BTW, this makes "cmd & cmd"
++ * and "cmd && cmd" non-orthogonal.
++ * Really, ask yourself, why
++ * "cmd && <newline>" doesn't start
++ * cmd but waits for more input?
++ * No reason...)
+ */
+ struct pipe *pi = ctx.list_head;
+- if (pi->num_cmds != 0)
++ if (pi->num_cmds != 0 /* check #1 */
++ && pi->followup != PIPE_BG /* check #2 */
++ ) {
+ continue;
++ }
+ }
+ /* Treat newline as a command separator. */
+ done_pipe(&ctx, PIPE_SEQ);