hush: add support for "set -e"
[oweals/busybox.git] / shell / hush_leaktool.sh
old mode 100644 (file)
new mode 100755 (executable)
index 54161b3..ca35ec1
@@ -5,9 +5,21 @@ output=output
 
 freelist=`grep 'free 0x' "$output" | cut -d' ' -f2 | sort | uniq | xargs`
 
-grep -v free "$output" >temp1
+grep -v free "$output" >"$output.leaked"
+
+i=8
+list=
 for freed in $freelist; do
-    echo Dropping $freed
-    grep -v $freed <temp1 >temp2
-    mv temp2 temp1
+    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