From: daniellerozenblit <48103643+daniellerozenblit@users.noreply.github.com> Date: Tue, 12 Mar 2024 17:49:06 +0000 (-0400) Subject: Add common file extensions to --exclude-compressed (#3951) X-Git-Tag: v1.5.6^2~32 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a66afa0514d0853b0f2a6b5ff3df1ae706f4862;p=thirdparty%2Fzstd.git Add common file extensions to --exclude-compressed (#3951) --- diff --git a/programs/fileio.c b/programs/fileio.c index a7597d893..6fd55d9a8 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -1907,6 +1907,110 @@ static const char *compressedFileExtensions[] = { TXZ_EXTENSION, LZ4_EXTENSION, TLZ4_EXTENSION, + ".7z", + ".aa3", + ".aac", + ".aar", + ".ace", + ".alac", + ".ape", + ".apk", + ".apng", + ".arc", + ".archive", + ".arj", + ".ark", + ".asf", + ".avi", + ".avif", + ".ba", + ".br", + ".bz2", + ".cab", + ".cdx", + ".chm", + ".cr2", + ".divx", + ".dmg", + ".dng", + ".docm", + ".docx", + ".dotm", + ".dotx", + ".dsft", + ".ear", + ".eftx", + ".emz", + ".eot", + ".epub", + ".f4v", + ".flac", + ".flv", + ".gho", + ".gif", + ".gifv", + ".gnp", + ".iso", + ".jar", + ".jpeg", + ".jpg", + ".jxl", + ".lz", + ".lzh", + ".m4a", + ".m4v", + ".mkv", + ".mov", + ".mp2", + ".mp3", + ".mp4", + ".mpa", + ".mpc", + ".mpe", + ".mpeg", + ".mpg", + ".mpl", + ".mpv", + ".msi", + ".odp", + ".ods", + ".odt", + ".ogg", + ".ogv", + ".otp", + ".ots", + ".ott", + ".pea", + ".png", + ".pptx", + ".qt", + ".rar", + ".s7z", + ".sfx", + ".sit", + ".sitx", + ".sqx", + ".svgz", + ".swf", + ".tbz2", + ".tib", + ".tlz", + ".vob", + ".war", + ".webm", + ".webp", + ".wma", + ".wmv", + ".woff", + ".woff2", + ".wvl", + ".xlsx", + ".xpi", + ".xps", + ".zip", + ".zipx", + ".zoo", + ".zpaq", NULL }; diff --git a/programs/zstd.1.md b/programs/zstd.1.md index 646e3cf28..a5046932e 100644 --- a/programs/zstd.1.md +++ b/programs/zstd.1.md @@ -307,6 +307,8 @@ the last one takes effect. * `--show-default-cparams`: shows the default compression parameters that will be used for a particular input file, based on the provided compression level and the input size. If the provided file is not a regular file (e.g. a pipe), this flag will output the parameters used for inputs of unknown size. +* `--exclude-compressed`: + only compress files that are not already compressed. * `--`: All arguments after `--` are treated as files diff --git a/tests/playTests.sh b/tests/playTests.sh index a79c06c99..e2a0694f5 100755 --- a/tests/playTests.sh +++ b/tests/playTests.sh @@ -410,6 +410,19 @@ zstd --long --rm -r precompressedFilterTestDir # Files should get compressed again without the --exclude-compressed flag. test -f precompressedFilterTestDir/input.5.zst.zst test -f precompressedFilterTestDir/input.6.zst.zst + +# Test some other compressed file extensions +datagen $size > precompressedFilterTestDir/input.flac +datagen $size > precompressedFilterTestDir/input.mov +datagen $size > precompressedFilterTestDir/input.mp3 +zstd --exclude-compressed --long --rm -r precompressedFilterTestDir +test ! -f precompressedFilterTestDir/input.flac.zst +test ! -f precompressedFilterTestDir/input.mov.zst +test ! -f precompressedFilterTestDir/input.mp3.zst +zstd --long --rm -r precompressedFilterTestDir +test -f precompressedFilterTestDir/input.flac.zst +test -f precompressedFilterTestDir/input.mov.zst +test -f precompressedFilterTestDir/input.mp3.zst rm -rf precompressedFilterTestDir println "Test completed"