]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
checksum generation can be selected from command line (`--checksum`)
authorYann Collet <yann.collet.73@gmail.com>
Wed, 1 Jun 2016 17:22:15 +0000 (19:22 +0200)
committerYann Collet <yann.collet.73@gmail.com>
Wed, 1 Jun 2016 17:22:15 +0000 (19:22 +0200)
programs/fileio.c
programs/fileio.h
programs/zstdcli.c

index 55e36cc55c793df2b83fc7376c449a7c032aca52..48555424c28bed8d3c1ecde3af8a84d3263d6db6 100644 (file)
@@ -135,6 +135,8 @@ static U32 g_sparseFileSupport = 1;   /* 0 : no sparse allowed; 1: auto (file ye
 void FIO_setSparseWrite(unsigned sparse) { g_sparseFileSupport=sparse; }
 static U32 g_dictIDFlag = 1;
 void FIO_setDictIDFlag(unsigned dictIDFlag) { g_dictIDFlag = dictIDFlag; }
+static U32 g_checksumFlag = 0;
+void FIO_setChecksumFlag(unsigned checksumFlag) { g_checksumFlag = checksumFlag; }
 
 
 /*-*************************************
@@ -313,6 +315,7 @@ static int FIO_compressFilename_internal(cRess_t ress,
         memset(&params, 0, sizeof(params));
         params.cParams = ZSTD_getCParams(cLevel, fileSize, ress.dictBufferSize);
         params.fParams.contentSizeFlag = 1;
+        params.fParams.checksumFlag = g_checksumFlag;
         params.fParams.noDictIDFlag = !g_dictIDFlag;
         if (g_maxWLog) if (params.cParams.windowLog > g_maxWLog) params.cParams.windowLog = g_maxWLog;
         {   size_t const errorCode = ZBUFF_compressInit_advanced(ress.ctx, ress.dictBuffer, ress.dictBufferSize, params, fileSize);
index 5a9cdc1ce8c243dfa50c5f1e682cf39c76f405ce..01e308340886cbd84586d3d8f5c20d6ce3165876 100644 (file)
@@ -49,6 +49,7 @@ void FIO_setNotificationLevel(unsigned level);
 void FIO_setMaxWLog(unsigned maxWLog);     /**< if `maxWLog` == 0, no max enforced */
 void FIO_setSparseWrite(unsigned sparse);  /**< 0: no sparse; 1: disable on stdout; 2: always enabled */
 void FIO_setDictIDFlag(unsigned dictIDFlag);
+void FIO_setChecksumFlag(unsigned checksumFlag);
 
 
 /*-*************************************
index 24bba89dbf686053a11b6cfa7073f0673d1e7ffa..f31b6e1f811742749fee209ef40faa08dbcaadaf 100644 (file)
@@ -134,6 +134,7 @@ static int usage_advanced(const char* programName)
 #ifndef ZSTD_NOCOMPRESS
     DISPLAY( "--ultra : enable ultra modes (requires more memory to decompress)\n");
     DISPLAY( "--no-dictID:don't write dictID into header (dictionary compression)\n");
+    DISPLAY( "--checksum:compute checksum of content, for decompressor validation\n");
 #endif
 #ifndef ZSTD_NODECOMPRESS
     DISPLAY( " -t     : test compressed file integrity \n");
@@ -240,6 +241,7 @@ int main(int argCount, const char** argv)
         if (!strcmp(argument, "--quiet")) { displayLevel--; continue; }
         if (!strcmp(argument, "--stdout")) { forceStdout=1; outFileName=stdoutmark; displayLevel=1; continue; }
         if (!strcmp(argument, "--ultra")) { FIO_setMaxWLog(0); continue; }
+        if (!strcmp(argument, "--checksum")) { FIO_setChecksumFlag(2); continue; }
         if (!strcmp(argument, "--no-dictID")) { FIO_setDictIDFlag(0); continue; }
         if (!strcmp(argument, "--sparse")) { FIO_setSparseWrite(2); continue; }
         if (!strcmp(argument, "--no-sparse")) { FIO_setSparseWrite(0); continue; }