diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2009-04-19 23:07:51 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2009-04-19 23:07:51 +0000 |
commit | dcd78c4d0ff71a36d5c88953a62f5df6a4f31a9c (patch) | |
tree | 0fe10d42d2e0a35a4231aa81314691a972098819 /shell/hush_leaktool.sh | |
parent | 3798db58cfa0e939d0fc1822c9864355c1422cd0 (diff) |
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
Diffstat (limited to 'shell/hush_leaktool.sh')
-rwxr-xr-x | shell/hush_leaktool.sh | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/shell/hush_leaktool.sh b/shell/hush_leaktool.sh index f8e47aecd..ca35ec144 100755 --- a/shell/hush_leaktool.sh +++ b/shell/hush_leaktool.sh @@ -6,8 +6,20 @@ output=output 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 |