From e725bfe6e01505f0480dd1bd357209d3a2e72bb7 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Thu, 3 May 2007 22:45:39 +0000 Subject: hush: fix "true | exit 3; echo $?" bug --- shell/README | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'shell/README') diff --git a/shell/README b/shell/README index 40447cacb..989587a4f 100644 --- a/shell/README +++ b/shell/README @@ -1,5 +1,18 @@ Various bits of what is known about busybox shells, in no particular order. +2007-05-03 +hush: update on "sleep 1 | exit 3; echo $?" bug. +parse_stream_outer() repeatedly calls parse_stream(). +parse_stream() is now fixed to stop on ';' in this example, +fixing it (parse_stream_outer() will call parse_stream() 1st time, +execute the parse tree, call parse_stream() 2nd time and execute the tree). +But it's not the end of story. +In more complex situations we _must_ parse way farther before executing. +Example #2: "{ sleep 1 | exit 3; echo $?; ...few_lines... } >file". +Because of redirection, we cannot execute 1st pipe before we parse it all. +We probably need to learn to store $var expressions in parse tree. +Debug printing of parse tree would be nice too. + 2007-04-28 hush: Ctrl-C and Ctrl-Z for single NOFORK commands are working. Memory and other resource leaks (opendir) are not addressed -- cgit v1.2.3