for c in $all_compressors; do
case $c in
# Assume gzip(1) is available on every reasonable portability target.
- gzip) continue;;
+ gzip)
+ continue;;
# On Cygwin, as of 9/2/2012, 'compress' is provided by sharutils
# and is just a dummy script that is not able to actually compress
# (it can only decompress). So, check that the 'compress' program
# is actually able to compress input.
- compress) $c -c </dev/null >/dev/null && continue;;
- *) $c --version </dev/null >&2 && continue;;
+ # Note that, at least on GNU/Linux, 'compress' does (and is
+ # documented to) exit with status 2 if the output is larger than
+ # the input after (attempted) compression; so we need to pass it
+ # an input that it can actually reduce in size when compressing.
+ compress)
+ for x in 1 2 3 4 5 6 7 8; do
+ echo aaaaaaaaaaaaaaa
+ done | $c -c >/dev/null && continue;;
+ *)
+ $c --version </dev/null >&2 && continue;;
esac
echo $c
done | tr "$nl" ' '`