From: Yann Collet Date: Wed, 1 Jun 2016 17:22:15 +0000 (+0200) Subject: checksum generation can be selected from command line (`--checksum`) X-Git-Tag: v0.7.0^2~49^2~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87cfbe3e5fede455209457120b6292d7e389f20e;p=thirdparty%2Fzstd.git checksum generation can be selected from command line (`--checksum`) --- diff --git a/programs/fileio.c b/programs/fileio.c index 55e36cc55..48555424c 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -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(¶ms, 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); diff --git a/programs/fileio.h b/programs/fileio.h index 5a9cdc1ce..01e308340 100644 --- a/programs/fileio.h +++ b/programs/fileio.h @@ -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); /*-************************************* diff --git a/programs/zstdcli.c b/programs/zstdcli.c index 24bba89db..f31b6e1f8 100644 --- a/programs/zstdcli.c +++ b/programs/zstdcli.c @@ -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; }