diff --git a/misc/tools/xzipdiff b/misc/tools/xzipdiff index 03824be..25c85f7 100755 --- a/misc/tools/xzipdiff +++ b/misc/tools/xzipdiff @@ -33,7 +33,7 @@ makepatchname() echo "$prefix$fromversion"patch"$toversion$suffix" } -zipdiff -z "zip -9r" -f "$from" -t "$to" -o "$output" -x "$excludes" +zipdiff -f "$from" -t "$to" -o "$output" -x "$excludes" tempdir=`mktemp -d -t zipdiff.XXXXXX` cd "$tempdir" @@ -47,7 +47,7 @@ for x in $excludes; do patchname=`makepatchname "$x" "$fromname" "$toname"` patchdir="c/$patchname"; patchdir=${patchdir%/*} mkdir -p "$patchdir" - zipdiff -z "zip -9r" -f a/"$fromname" -t b/"$toname" -o c/"$patchname" + zipdiff -f a/"$fromname" -t b/"$toname" -o c/"$patchname" if [ -f c/"$patchname" ]; then (cd c && zip -0r "$output" "$patchname") fi diff --git a/misc/tools/zipdiff b/misc/tools/zipdiff index 4b61c35..88ea560 100755 --- a/misc/tools/zipdiff +++ b/misc/tools/zipdiff @@ -14,7 +14,19 @@ output= from= to= excludes= -ziptool="7za a -tzip -mx=9" +ziptool="mkzip" + +mkzip() +{ + archive=$1; shift + sevenzipflags=-mx=9 + zipflags=-9 + ziplist=`mktemp` + find "$@" -xtype f \( -executable -or -type l \) -print > "$ziplist" + 7za a -tzip $sevenzipflags -x@"$ziplist" "$archive" "$@" || true + zip $zipflags -y -@<"$ziplist" "$archive" || true + rm -f "$ziplist" +} while [ $# -gt 0 ]; do o=$1