]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
introduced ZSTD_NOCOMPRESS to generate decompressor only
authorinikep <inikep@gmail.com>
Fri, 22 Apr 2016 11:59:05 +0000 (13:59 +0200)
committerinikep <inikep@gmail.com>
Fri, 22 Apr 2016 11:59:05 +0000 (13:59 +0200)
lib/compress/zstd_compress.c
lib/decompress/zbuff_decompress.c
programs/Makefile
programs/fileio.c
programs/zstdcli.c

index 1475d5fb3b9aa8408ca67652caf878dfcf971a32..a8ebaa549c1de6f592e08fdee8f4907a0dd2e7d7 100644 (file)
@@ -2432,7 +2432,7 @@ size_t ZSTD_compress(void* dst, size_t dstCapacity, const void* src, size_t srcS
 
 /*-=====  Pre-defined compression levels  =====-*/
 
-#define ZSTD_DEAFULT_CLEVEL 5
+#define ZSTD_DEFAULT_CLEVEL 5
 #define ZSTD_MAX_CLEVEL     22
 unsigned ZSTD_maxCLevel(void) { return ZSTD_MAX_CLEVEL; }
 
@@ -2552,7 +2552,7 @@ ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, U64 srcSize, si
     size_t const addedSize = srcSize ? 0 : 500;
     U64 const rSize = srcSize+dictSize ? srcSize+dictSize+addedSize : (U64)-1;
     U32 const tableID = (rSize <= 256 KB) + (rSize <= 128 KB) + (rSize <= 16 KB);   /* intentional underflow for srcSizeHint == 0 */
-    if (compressionLevel < 0) compressionLevel = ZSTD_DEAFULT_CLEVEL;
+    if (compressionLevel < 0) compressionLevel = ZSTD_DEFAULT_CLEVEL;
     if (compressionLevel==0) compressionLevel = 1;
     if (compressionLevel > ZSTD_MAX_CLEVEL) compressionLevel = ZSTD_MAX_CLEVEL;
     cp = ZSTD_defaultCParameters[tableID][compressionLevel];
index 614a79240dd24b8ec598000bc2d45230bf6a82d8..fef32f76d47333137fb94a03be203cfdc5f7d9a3 100644 (file)
 #include "zbuff_static.h"
 
 
-/* *************************************
-*  Constants
-***************************************/
-static size_t const ZBUFF_endFrameSize = ZSTD_BLOCKHEADERSIZE;
-
-
 /*-***************************************************************************
 *  Streaming decompression howto
 *
index e6c4e8047eac1310b61dcfee761fccbab6b18590..e0a26127c1dcdc41e97de4a40f50925782d42d41 100644 (file)
@@ -114,6 +114,9 @@ zstd-pgo : clean zstd
 zstd-frugal: $(ZSTD_FILES) $(ZBUFF_FILES) zstdcli.c fileio.c
        $(CC)      $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_LEGACY_SUPPORT=0 $^ -o zstd$(EXT)
 
+zstd-decompress: $(ZSTDDECOMP_FILES) $(ZSTDDIR)/decompress/zbuff_decompress.c zstdcli.c fileio.c
+       $(CC)      $(FLAGS) -DZSTD_NOBENCH -DZSTD_NODICT -DZSTD_NOCOMPRESS -DZSTD_LEGACY_SUPPORT=0 $^ -o $@$(EXT)
+
 zstd-small: clean 
        CFLAGS="-Os -s" $(MAKE) zstd-frugal 
 
index edd917e815a4a49c1d487343d15b4d362aabc4b5..e0ccee7f82fcde14e1210197912ce7efaf5b7348 100644 (file)
 
 #define MAX_DICT_SIZE (1 MB)   /* protection against large input (attack scenario) ; can be changed */
 
+#define FNSPACE 30
+
 
 /*-*************************************
 *  Macros
@@ -267,6 +269,7 @@ static size_t FIO_loadFile(void** bufferPtr, const char* fileName)
     return (size_t)fileSize;
 }
 
+#ifndef ZSTD_NOCOMPRESS
 
 /*-**********************************************************************
 *  Compression
@@ -460,7 +463,6 @@ int FIO_compressFilename(const char* dstFileName, const char* srcFileName,
 }
 
 
-#define FNSPACE 30
 int FIO_compressMultipleFilenames(const char** inFileNamesTable, unsigned nbFiles,
                                   const char* suffix,
                                   const char* dictFileName, int compressionLevel)
@@ -499,6 +501,8 @@ int FIO_compressMultipleFilenames(const char** inFileNamesTable, unsigned nbFile
     return missed_files;
 }
 
+#endif // #ifndef ZSTD_NOCOMPRESS
+
 
 /* **************************************************************************
 *  Decompression
index e43b94541b36e261f73f021c5936515897ca0ed7..feaddc3397bc5d327710ada4e27efed5c5db8824 100644 (file)
@@ -111,7 +111,9 @@ static int usage(const char* programName)
     DISPLAY( "FILE    : a filename\n");
     DISPLAY( "          with no FILE, or when FILE is - , read standard input\n");
     DISPLAY( "Arguments :\n");
+#ifndef ZSTD_NOCOMPRESS
     DISPLAY( " -#     : # compression level (1-%u, default:1) \n", ZSTD_maxCLevel());
+#endif
     DISPLAY( " -d     : decompression \n");
     DISPLAY( " -D file: use `file` as Dictionary \n");
     DISPLAY( " -o file: result stored into `file` (only if 1 input file) \n");
@@ -131,7 +133,9 @@ static int usage_advanced(const char* programName)
     DISPLAY( " -v     : verbose mode\n");
     DISPLAY( " -q     : suppress warnings; specify twice to suppress errors too\n");
     DISPLAY( " -c     : force write to standard output, even if it is the console\n");
+#ifndef ZSTD_NOCOMPRESS
     DISPLAY( "--ultra : enable ultra modes (requires more memory to decompress)\n");
+#endif
 #ifndef ZSTD_NODICT
     DISPLAY( "Dictionary builder :\n");
     DISPLAY( "--train : create a dictionary from a training set of files \n");
@@ -194,6 +198,7 @@ int main(int argCount, const char** argv)
 
     /* init */
     (void)cLevelLast; (void)dictCLevel;   /* not used when ZSTD_NOBENCH / ZSTD_NODICT set */
+    (void)decode; (void)cLevel; /* not used when ZSTD_NOCOMPRESS set */
     if (filenameTable==NULL) { DISPLAY("not enough memory\n"); exit(1); }
     displayOut = stderr;
     /* Pick out program name from path. Don't rely on stdlib because of conflicting behavior */
@@ -233,6 +238,7 @@ int main(int argCount, const char** argv)
             argument++;
 
             while (argument[0]!=0) {
+#ifndef ZSTD_NOCOMPRESS
                 /* compression Level */
                 if ((*argument>='0') && (*argument<='9')) {
                     cLevel = 0;
@@ -246,6 +252,7 @@ int main(int argCount, const char** argv)
                         CLEAN_RETURN(badusage(programName));
                     continue;
                 }
+#endif
 
                 switch(argument[0])
                 {
@@ -417,16 +424,19 @@ int main(int argCount, const char** argv)
 
     /* IO Stream/File */
     FIO_setNotificationLevel(displayLevel);
-    if (decode) {
-      if (filenameIdx==1 && outFileName)
-        operationResult = FIO_decompressFilename(outFileName, filenameTable[0], dictFileName);
-      else
-        operationResult = FIO_decompressMultipleFilenames(filenameTable, filenameIdx, outFileName ? outFileName : ZSTD_EXTENSION, dictFileName);
-    } else {  /* compression */
+#ifndef ZSTD_NOCOMPRESS
+    if (!decode) {
         if (filenameIdx==1 && outFileName)
           operationResult = FIO_compressFilename(outFileName, filenameTable[0], dictFileName, cLevel);
         else
           operationResult = FIO_compressMultipleFilenames(filenameTable, filenameIdx, outFileName ? outFileName : ZSTD_EXTENSION, dictFileName, cLevel);
+    } else 
+#endif
+    {  /* decompression */
+        if (filenameIdx==1 && outFileName)
+        operationResult = FIO_decompressFilename(outFileName, filenameTable[0], dictFileName);
+        else
+        operationResult = FIO_decompressMultipleFilenames(filenameTable, filenameIdx, outFileName ? outFileName : ZSTD_EXTENSION, dictFileName);
     }
 
 _end: