hush: fix "export not_yet_defined_var", fix parsing of "cmd | }"
 corner case; improve hush_leaktool.sh;
 fix some false positives in testsuite

function                                             old     new   delta
builtin_export                                       191     206     +15
parse_stream                                        2196    2200      +4

diff --git a/shell/hush_leaktool.sh b/shell/hush_leaktool.sh
index f8e47ae..ca35ec1 100755
--- a/shell/hush_leaktool.sh
+++ b/shell/hush_leaktool.sh
@@ -6,8 +6,20 @@
 freelist=`grep 'free 0x' "$output" | cut -d' ' -f2 | sort | uniq | xargs`
 
 grep -v free "$output" >"$output.leaked"
+
+i=8
+list=
 for freed in $freelist; do
-    echo Dropping $freed
-    grep -v $freed <"$output.leaked" >"$output.temp"
+    list="$list -e $freed"
+    test $((--i)) != 0 && continue
+    echo Dropping $list
+    grep -F -v $list <"$output.leaked" >"$output.temp"
     mv "$output.temp" "$output.leaked"
+    i=8
+    list=
 done
+if test "$list"; then
+    echo Dropping $list
+    grep -F -v $list <"$output.leaked" >"$output.temp"
+    mv "$output.temp" "$output.leaked"
+fi