Index: vendor/zstd/dist/examples/dictionary_compression.c =================================================================== --- vendor/zstd/dist/examples/dictionary_compression.c (revision 322652) +++ vendor/zstd/dist/examples/dictionary_compression.c (nonexistent) @@ -1,155 +0,0 @@ -/** - * Copyright 2016-present, Yann Collet, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the license found in the - * LICENSE-examples file in the root directory of this source tree. - */ - - -#include // malloc, exit -#include // printf -#include // strerror -#include // errno -#include // stat -#include // presumes zstd library is installed - - -static off_t fsize_orDie(const char *filename) -{ - struct stat st; - if (stat(filename, &st) == 0) return st.st_size; - /* error */ - perror(filename); - exit(1); -} - -static FILE* fopen_orDie(const char *filename, const char *instruction) -{ - FILE* const inFile = fopen(filename, instruction); - if (inFile) return inFile; - /* error */ - perror(filename); - exit(2); -} - -static void* malloc_orDie(size_t size) -{ - void* const buff = malloc(size); - if (buff) return buff; - /* error */ - perror("malloc"); - exit(3); -} - -static void* loadFile_orDie(const char* fileName, size_t* size) -{ - off_t const buffSize = fsize_orDie(fileName); - FILE* const inFile = fopen_orDie(fileName, "rb"); - void* const buffer = malloc_orDie(buffSize); - size_t const readSize = fread(buffer, 1, buffSize, inFile); - if (readSize != (size_t)buffSize) { - fprintf(stderr, "fread: %s : %s \n", fileName, strerror(errno)); - exit(4); - } - fclose(inFile); - *size = buffSize; - return buffer; -} - -static void saveFile_orDie(const char* fileName, const void* buff, size_t buffSize) -{ - FILE* const oFile = fopen_orDie(fileName, "wb"); - size_t const wSize = fwrite(buff, 1, buffSize, oFile); - if (wSize != (size_t)buffSize) { - fprintf(stderr, "fwrite: %s : %s \n", fileName, strerror(errno)); - exit(5); - } - if (fclose(oFile)) { - perror(fileName); - exit(6); - } -} - -/* createDict() : - `dictFileName` is supposed to have been created using `zstd --train` */ -static ZSTD_CDict* createCDict_orDie(const char* dictFileName, int cLevel) -{ - size_t dictSize; - printf("loading dictionary %s \n", dictFileName); - void* const dictBuffer = loadFile_orDie(dictFileName, &dictSize); - ZSTD_CDict* const cdict = ZSTD_createCDict(dictBuffer, dictSize, cLevel); - if (!cdict) { - fprintf(stderr, "ZSTD_createCDict error \n"); - exit(7); - } - free(dictBuffer); - return cdict; -} - - -static void compress(const char* fname, const char* oname, const ZSTD_CDict* cdict) -{ - size_t fSize; - void* const fBuff = loadFile_orDie(fname, &fSize); - size_t const cBuffSize = ZSTD_compressBound(fSize); - void* const cBuff = malloc_orDie(cBuffSize); - - ZSTD_CCtx* const cctx = ZSTD_createCCtx(); - if (cctx==NULL) { fprintf(stderr, "ZSTD_createCCtx() error \n"); exit(10); } - size_t const cSize = ZSTD_compress_usingCDict(cctx, cBuff, cBuffSize, fBuff, fSize, cdict); - if (ZSTD_isError(cSize)) { - fprintf(stderr, "error compressing %s : %s \n", fname, ZSTD_getErrorName(cSize)); - exit(7); - } - - saveFile_orDie(oname, cBuff, cSize); - - /* success */ - printf("%25s : %6u -> %7u - %s \n", fname, (unsigned)fSize, (unsigned)cSize, oname); - - ZSTD_freeCCtx(cctx); /* never fails */ - free(fBuff); - free(cBuff); -} - - -static char* createOutFilename_orDie(const char* filename) -{ - size_t const inL = strlen(filename); - size_t const outL = inL + 5; - void* outSpace = malloc_orDie(outL); - memset(outSpace, 0, outL); - strcat(outSpace, filename); - strcat(outSpace, ".zst"); - return (char*)outSpace; -} - -int main(int argc, const char** argv) -{ - const char* const exeName = argv[0]; - int const cLevel = 3; - - if (argc<3) { - fprintf(stderr, "wrong arguments\n"); - fprintf(stderr, "usage:\n"); - fprintf(stderr, "%s [FILES] dictionary\n", exeName); - return 1; - } - - /* load dictionary only once */ - const char* const dictName = argv[argc-1]; - ZSTD_CDict* const dictPtr = createCDict_orDie(dictName, cLevel); - - int u; - for (u=1; u // malloc, exit -#include // fprintf, perror, feof -#include // strerror -#include // errno -#include // presumes zstd library is installed - - -static void* malloc_orDie(size_t size) -{ - void* const buff = malloc(size); - if (buff) return buff; - /* error */ - perror("malloc:"); - exit(1); -} - -static FILE* fopen_orDie(const char *filename, const char *instruction) -{ - FILE* const inFile = fopen(filename, instruction); - if (inFile) return inFile; - /* error */ - perror(filename); - exit(3); -} - -static size_t fread_orDie(void* buffer, size_t sizeToRead, FILE* file) -{ - size_t const readSize = fread(buffer, 1, sizeToRead, file); - if (readSize == sizeToRead) return readSize; /* good */ - if (feof(file)) return readSize; /* good, reached end of file */ - /* error */ - perror("fread"); - exit(4); -} - -static size_t fwrite_orDie(const void* buffer, size_t sizeToWrite, FILE* file) -{ - size_t const writtenSize = fwrite(buffer, 1, sizeToWrite, file); - if (writtenSize == sizeToWrite) return sizeToWrite; /* good */ - /* error */ - perror("fwrite"); - exit(5); -} - -static size_t fclose_orDie(FILE* file) -{ - if (!fclose(file)) return 0; - /* error */ - perror("fclose"); - exit(6); -} - - -static void decompressFile_orDie(const char* fname) -{ - FILE* const fin = fopen_orDie(fname, "rb"); - size_t const buffInSize = ZSTD_DStreamInSize(); - void* const buffIn = malloc_orDie(buffInSize); - FILE* const fout = stdout; - size_t const buffOutSize = ZSTD_DStreamOutSize(); /* Guarantee to successfully flush at least one complete compressed block in all circumstances. */ - void* const buffOut = malloc_orDie(buffOutSize); - - ZSTD_DStream* const dstream = ZSTD_createDStream(); - if (dstream==NULL) { fprintf(stderr, "ZSTD_createDStream() error \n"); exit(10); } - - /* In more complex scenarios, a file may consist of multiple appended frames (ex : pzstd). - * The following example decompresses only the first frame. - * It is compatible with other provided streaming examples */ - size_t const initResult = ZSTD_initDStream(dstream); - if (ZSTD_isError(initResult)) { fprintf(stderr, "ZSTD_initDStream() error : %s \n", ZSTD_getErrorName(initResult)); exit(11); } - size_t read, toRead = initResult; - while ( (read = fread_orDie(buffIn, toRead, fin)) ) { - ZSTD_inBuffer input = { buffIn, read, 0 }; - while (input.pos < input.size) { - ZSTD_outBuffer output = { buffOut, buffOutSize, 0 }; - toRead = ZSTD_decompressStream(dstream, &output , &input); /* toRead : size of next compressed block */ - if (ZSTD_isError(toRead)) { fprintf(stderr, "ZSTD_decompressStream() error : %s \n", ZSTD_getErrorName(toRead)); exit(12); } - fwrite_orDie(buffOut, output.pos, fout); - } - } - - ZSTD_freeDStream(dstream); - fclose_orDie(fin); - fclose_orDie(fout); - free(buffIn); - free(buffOut); -} - - -int main(int argc, const char** argv) -{ - const char* const exeName = argv[0]; - - if (argc!=2) { - fprintf(stderr, "wrong arguments\n"); - fprintf(stderr, "usage:\n"); - fprintf(stderr, "%s FILE\n", exeName); - return 1; - } - - const char* const inFilename = argv[1]; - - decompressFile_orDie(inFilename); - return 0; -} Property changes on: vendor/zstd/dist/examples/streaming_decompression.c ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: vendor/zstd/dist/examples/streaming_compression.c =================================================================== --- vendor/zstd/dist/examples/streaming_compression.c (revision 322652) +++ vendor/zstd/dist/examples/streaming_compression.c (nonexistent) @@ -1,129 +0,0 @@ -/** - * Copyright 2016-present, Yann Collet, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the license found in the - * LICENSE-examples file in the root directory of this source tree. - */ - - -#include // malloc, free, exit -#include // fprintf, perror, feof, fopen, etc. -#include // strlen, memset, strcat -#include // presumes zstd library is installed - - -static void* malloc_orDie(size_t size) -{ - void* const buff = malloc(size); - if (buff) return buff; - /* error */ - perror("malloc:"); - exit(1); -} - -static FILE* fopen_orDie(const char *filename, const char *instruction) -{ - FILE* const inFile = fopen(filename, instruction); - if (inFile) return inFile; - /* error */ - perror(filename); - exit(3); -} - -static size_t fread_orDie(void* buffer, size_t sizeToRead, FILE* file) -{ - size_t const readSize = fread(buffer, 1, sizeToRead, file); - if (readSize == sizeToRead) return readSize; /* good */ - if (feof(file)) return readSize; /* good, reached end of file */ - /* error */ - perror("fread"); - exit(4); -} - -static size_t fwrite_orDie(const void* buffer, size_t sizeToWrite, FILE* file) -{ - size_t const writtenSize = fwrite(buffer, 1, sizeToWrite, file); - if (writtenSize == sizeToWrite) return sizeToWrite; /* good */ - /* error */ - perror("fwrite"); - exit(5); -} - -static size_t fclose_orDie(FILE* file) -{ - if (!fclose(file)) return 0; - /* error */ - perror("fclose"); - exit(6); -} - - -static void compressFile_orDie(const char* fname, const char* outName, int cLevel) -{ - FILE* const fin = fopen_orDie(fname, "rb"); - FILE* const fout = fopen_orDie(outName, "wb"); - size_t const buffInSize = ZSTD_CStreamInSize(); /* can always read one full block */ - void* const buffIn = malloc_orDie(buffInSize); - size_t const buffOutSize = ZSTD_CStreamOutSize(); /* can always flush a full block */ - void* const buffOut = malloc_orDie(buffOutSize); - - ZSTD_CStream* const cstream = ZSTD_createCStream(); - if (cstream==NULL) { fprintf(stderr, "ZSTD_createCStream() error \n"); exit(10); } - size_t const initResult = ZSTD_initCStream(cstream, cLevel); - if (ZSTD_isError(initResult)) { fprintf(stderr, "ZSTD_initCStream() error : %s \n", ZSTD_getErrorName(initResult)); exit(11); } - - size_t read, toRead = buffInSize; - while( (read = fread_orDie(buffIn, toRead, fin)) ) { - ZSTD_inBuffer input = { buffIn, read, 0 }; - while (input.pos < input.size) { - ZSTD_outBuffer output = { buffOut, buffOutSize, 0 }; - toRead = ZSTD_compressStream(cstream, &output , &input); /* toRead is guaranteed to be <= ZSTD_CStreamInSize() */ - if (ZSTD_isError(toRead)) { fprintf(stderr, "ZSTD_compressStream() error : %s \n", ZSTD_getErrorName(toRead)); exit(12); } - if (toRead > buffInSize) toRead = buffInSize; /* Safely handle case when `buffInSize` is manually changed to a value < ZSTD_CStreamInSize()*/ - fwrite_orDie(buffOut, output.pos, fout); - } - } - - ZSTD_outBuffer output = { buffOut, buffOutSize, 0 }; - size_t const remainingToFlush = ZSTD_endStream(cstream, &output); /* close frame */ - if (remainingToFlush) { fprintf(stderr, "not fully flushed"); exit(13); } - fwrite_orDie(buffOut, output.pos, fout); - - ZSTD_freeCStream(cstream); - fclose_orDie(fout); - fclose_orDie(fin); - free(buffIn); - free(buffOut); -} - - -static const char* createOutFilename_orDie(const char* filename) -{ - size_t const inL = strlen(filename); - size_t const outL = inL + 5; - void* outSpace = malloc_orDie(outL); - memset(outSpace, 0, outL); - strcat(outSpace, filename); - strcat(outSpace, ".zst"); - return (const char*)outSpace; -} - -int main(int argc, const char** argv) -{ - const char* const exeName = argv[0]; - - if (argc!=2) { - printf("wrong arguments\n"); - printf("usage:\n"); - printf("%s FILE\n", exeName); - return 1; - } - - const char* const inFilename = argv[1]; - - const char* const outFilename = createOutFilename_orDie(inFilename); - compressFile_orDie(inFilename, outFilename, 1); - - return 0; -} Property changes on: vendor/zstd/dist/examples/streaming_compression.c ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: vendor/zstd/dist/examples/.gitignore =================================================================== --- vendor/zstd/dist/examples/.gitignore (revision 322652) +++ vendor/zstd/dist/examples/.gitignore (nonexistent) @@ -1,13 +0,0 @@ -#build -simple_compression -simple_decompression -dictionary_compression -dictionary_decompression -streaming_compression -streaming_decompression -multiple_streaming_compression - -#test artefact -tmp* -test* -*.zst Index: vendor/zstd/dist/examples/README.md =================================================================== --- vendor/zstd/dist/examples/README.md (revision 322652) +++ vendor/zstd/dist/examples/README.md (nonexistent) @@ -1,36 +0,0 @@ -Zstandard library : usage examples -================================== - -- [Simple compression](simple_compression.c) : - Compress a single file. - Introduces usage of : `ZSTD_compress()` - -- [Simple decompression](simple_decompression.c) : - Decompress a single file. - Only compatible with simple compression. - Result remains in memory. - Introduces usage of : `ZSTD_decompress()` - -- [Streaming compression](streaming_compression.c) : - Compress a single file. - Introduces usage of : `ZSTD_compressStream()` - -- [Multiple Streaming compression](multiple_streaming_compression.c) : - Compress multiple files in a single command line. - Introduces memory usage preservation technique, - reducing impact of malloc()/free() and memset() by re-using existing resources. - -- [Streaming decompression](streaming_decompression.c) : - Decompress a single file compressed by zstd. - Compatible with both simple and streaming compression. - Result is sent to stdout. - Introduces usage of : `ZSTD_decompressStream()` - -- [Dictionary compression](dictionary_compression.c) : - Compress multiple files using the same dictionary. - Introduces usage of : `ZSTD_createCDict()` and `ZSTD_compress_usingCDict()` - -- [Dictionary decompression](dictionary_decompression.c) : - Decompress multiple files using the same dictionary. - Result remains in memory. - Introduces usage of : `ZSTD_createDDict()` and `ZSTD_decompress_usingDDict()` Index: vendor/zstd/dist/examples/simple_decompression.c =================================================================== --- vendor/zstd/dist/examples/simple_decompression.c (revision 322652) +++ vendor/zstd/dist/examples/simple_decompression.c (nonexistent) @@ -1,108 +0,0 @@ -/** - * Copyright 2016-present, Yann Collet, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the license found in the - * LICENSE-examples file in the root directory of this source tree. - */ - -#include // malloc, exit -#include // printf -#include // strerror -#include // errno -#include // stat -#define ZSTD_STATIC_LINKING_ONLY // ZSTD_findDecompressedSize -#include // presumes zstd library is installed - - -static off_t fsize_orDie(const char *filename) -{ - struct stat st; - if (stat(filename, &st) == 0) return st.st_size; - /* error */ - fprintf(stderr, "stat: %s : %s \n", filename, strerror(errno)); - exit(1); -} - -static FILE* fopen_orDie(const char *filename, const char *instruction) -{ - FILE* const inFile = fopen(filename, instruction); - if (inFile) return inFile; - /* error */ - fprintf(stderr, "fopen: %s : %s \n", filename, strerror(errno)); - exit(2); -} - -static void* malloc_orDie(size_t size) -{ - void* const buff = malloc(size + !size); /* avoid allocating size of 0 : may return NULL (implementation dependent) */ - if (buff) return buff; - /* error */ - fprintf(stderr, "malloc: %s \n", strerror(errno)); - exit(3); -} - -static void* loadFile_orDie(const char* fileName, size_t* size) -{ - off_t const buffSize = fsize_orDie(fileName); - FILE* const inFile = fopen_orDie(fileName, "rb"); - void* const buffer = malloc_orDie(buffSize); - size_t const readSize = fread(buffer, 1, buffSize, inFile); - if (readSize != (size_t)buffSize) { - fprintf(stderr, "fread: %s : %s \n", fileName, strerror(errno)); - exit(4); - } - fclose(inFile); /* can't fail (read only) */ - *size = buffSize; - return buffer; -} - - -static void decompress(const char* fname) -{ - size_t cSize; - void* const cBuff = loadFile_orDie(fname, &cSize); - unsigned long long const rSize = ZSTD_findDecompressedSize(cBuff, cSize); - if (rSize==ZSTD_CONTENTSIZE_ERROR) { - fprintf(stderr, "%s : it was not compressed by zstd.\n", fname); - exit(5); - } else if (rSize==ZSTD_CONTENTSIZE_UNKNOWN) { - fprintf(stderr, - "%s : original size unknown. Use streaming decompression instead.\n", fname); - exit(6); - } - - void* const rBuff = malloc_orDie((size_t)rSize); - - size_t const dSize = ZSTD_decompress(rBuff, rSize, cBuff, cSize); - - if (dSize != rSize) { - fprintf(stderr, "error decoding %s : %s \n", fname, ZSTD_getErrorName(dSize)); - exit(7); - } - - /* success */ - printf("%25s : %6u -> %7u \n", fname, (unsigned)cSize, (unsigned)rSize); - - free(rBuff); - free(cBuff); -} - - -int main(int argc, const char** argv) -{ - const char* const exeName = argv[0]; - - if (argc!=2) { - printf("wrong arguments\n"); - printf("usage:\n"); - printf("%s FILE\n", exeName); - return 1; - } - - decompress(argv[1]); - - printf("%s correctly decoded (in memory). \n", argv[1]); - - return 0; -} Property changes on: vendor/zstd/dist/examples/simple_decompression.c ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: vendor/zstd/dist/examples/Makefile =================================================================== --- vendor/zstd/dist/examples/Makefile (revision 322652) +++ vendor/zstd/dist/examples/Makefile (nonexistent) @@ -1,75 +0,0 @@ -# ################################################################ -# Copyright (c) 2016-present, Yann Collet, Facebook, Inc. -# All rights reserved. -# -# This source code is licensed under the BSD-style license found in the -# LICENSE file in the root directory of this source tree. An additional grant -# of patent rights can be found in the PATENTS file in the same directory. -# ################################################################ - -# This Makefile presumes libzstd is installed, using `sudo make install` - -LDFLAGS += -lzstd - -.PHONY: default all clean test - -default: all - -all: simple_compression simple_decompression \ - dictionary_compression dictionary_decompression \ - streaming_compression streaming_decompression \ - multiple_streaming_compression - -simple_compression : simple_compression.c - $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ - -simple_decompression : simple_decompression.c - $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ - -dictionary_compression : dictionary_compression.c - $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ - -dictionary_decompression : dictionary_decompression.c - $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ - -streaming_compression : streaming_compression.c - $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ - -multiple_streaming_compression : multiple_streaming_compression.c - $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ - -streaming_decompression : streaming_decompression.c - $(CC) $(CPPFLAGS) $(CFLAGS) $^ $(LDFLAGS) -o $@ - -clean: - @rm -f core *.o tmp* result* *.zst \ - simple_compression simple_decompression \ - dictionary_compression dictionary_decompression \ - streaming_compression streaming_decompression \ - multiple_streaming_compression - @echo Cleaning completed - -test: all - cp README.md tmp - cp Makefile tmp2 - @echo -- Simple compression tests - ./simple_compression tmp - ./simple_decompression tmp.zst - ./streaming_decompression tmp.zst > /dev/null - @echo -- Streaming compression tests - ./streaming_compression tmp - ./streaming_decompression tmp.zst > /dev/null - @echo -- Edge cases detection - ! ./streaming_decompression tmp # invalid input, must fail - ! ./simple_decompression tmp # invalid input, must fail - ! ./simple_decompression tmp.zst # unknown input size, must fail - touch tmpNull # create 0-size file - ./simple_compression tmpNull - ./simple_decompression tmpNull.zst # 0-size frame : must work - @echo -- Multiple streaming tests - ./multiple_streaming_compression *.c - @echo -- Dictionary compression tests - ./dictionary_compression tmp2 tmp README.md - ./dictionary_decompression tmp2.zst tmp.zst README.md - $(RM) tmp* *.zst - @echo tests completed Property changes on: vendor/zstd/dist/examples/Makefile ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: vendor/zstd/dist/examples/multiple_streaming_compression.c =================================================================== --- vendor/zstd/dist/examples/multiple_streaming_compression.c (revision 322652) +++ vendor/zstd/dist/examples/multiple_streaming_compression.c (nonexistent) @@ -1,163 +0,0 @@ -/** - * Copyright 2016-present, Yann Collet, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the license found in the - * LICENSE-examples file in the root directory of this source tree. - */ - - -/* The objective of this example is to show of to compress multiple successive files -* while preserving memory management. -* All structures and buffers will be created only once, -* and shared across all compression operations */ - -#include // malloc, exit -#include // fprintf, perror, feof -#include // strerror -#include // errno -#define ZSTD_STATIC_LINKING_ONLY // streaming API defined as "experimental" for the time being -#include // presumes zstd library is installed - - -static void* malloc_orDie(size_t size) -{ - void* const buff = malloc(size); - if (buff) return buff; - /* error */ - perror("malloc:"); - exit(1); -} - -static FILE* fopen_orDie(const char *filename, const char *instruction) -{ - FILE* const inFile = fopen(filename, instruction); - if (inFile) return inFile; - /* error */ - perror(filename); - exit(3); -} - -static size_t fread_orDie(void* buffer, size_t sizeToRead, FILE* file) -{ - size_t const readSize = fread(buffer, 1, sizeToRead, file); - if (readSize == sizeToRead) return readSize; /* good */ - if (feof(file)) return readSize; /* good, reached end of file */ - /* error */ - perror("fread"); - exit(4); -} - -static size_t fwrite_orDie(const void* buffer, size_t sizeToWrite, FILE* file) -{ - size_t const writtenSize = fwrite(buffer, 1, sizeToWrite, file); - if (writtenSize == sizeToWrite) return sizeToWrite; /* good */ - /* error */ - perror("fwrite"); - exit(5); -} - -static size_t fclose_orDie(FILE* file) -{ - if (!fclose(file)) return 0; - /* error */ - perror("fclose"); - exit(6); -} - - -typedef struct { - void* buffIn; - void* buffOut; - size_t buffInSize; - size_t buffOutSize; - ZSTD_CStream* cstream; -} resources ; - -static resources createResources_orDie() -{ - resources ress; - ress.buffInSize = ZSTD_CStreamInSize(); /* can always read one full block */ - ress.buffOutSize= ZSTD_CStreamOutSize(); /* can always flush a full block */ - ress.buffIn = malloc_orDie(ress.buffInSize); - ress.buffOut= malloc_orDie(ress.buffOutSize); - ress.cstream = ZSTD_createCStream(); - if (ress.cstream==NULL) { fprintf(stderr, "ZSTD_createCStream() error \n"); exit(10); } - return ress; -} - -static void freeResources(resources ress) -{ - ZSTD_freeCStream(ress.cstream); - free(ress.buffIn); - free(ress.buffOut); -} - - -static void compressFile_orDie(resources ress, const char* fname, const char* outName, int cLevel) -{ - FILE* const fin = fopen_orDie(fname, "rb"); - FILE* const fout = fopen_orDie(outName, "wb"); - - size_t const initResult = ZSTD_initCStream(ress.cstream, cLevel); - if (ZSTD_isError(initResult)) { fprintf(stderr, "ZSTD_initCStream() error : %s \n", ZSTD_getErrorName(initResult)); exit(11); } - - size_t read, toRead = ress.buffInSize; - while( (read = fread_orDie(ress.buffIn, toRead, fin)) ) { - ZSTD_inBuffer input = { ress.buffIn, read, 0 }; - while (input.pos < input.size) { - ZSTD_outBuffer output = { ress.buffOut, ress.buffOutSize, 0 }; - toRead = ZSTD_compressStream(ress.cstream, &output , &input); /* toRead is guaranteed to be <= ZSTD_CStreamInSize() */ - if (ZSTD_isError(toRead)) { fprintf(stderr, "ZSTD_compressStream() error : %s \n", ZSTD_getErrorName(toRead)); exit(12); } - if (toRead > ress.buffInSize) toRead = ress.buffInSize; /* Safely handle when `buffInSize` is manually changed to a smaller value */ - fwrite_orDie(ress.buffOut, output.pos, fout); - } - } - - ZSTD_outBuffer output = { ress.buffOut, ress.buffOutSize, 0 }; - size_t const remainingToFlush = ZSTD_endStream(ress.cstream, &output); /* close frame */ - if (remainingToFlush) { fprintf(stderr, "not fully flushed"); exit(13); } - fwrite_orDie(ress.buffOut, output.pos, fout); - - fclose_orDie(fout); - fclose_orDie(fin); -} - - -int main(int argc, const char** argv) -{ - const char* const exeName = argv[0]; - - if (argc<2) { - printf("wrong arguments\n"); - printf("usage:\n"); - printf("%s FILE(s)\n", exeName); - return 1; - } - - resources const ress = createResources_orDie(); - void* ofnBuffer = NULL; - size_t ofnbSize = 0; - - int argNb; - for (argNb = 1; argNb < argc; argNb++) { - const char* const ifn = argv[argNb]; - size_t const ifnSize = strlen(ifn); - size_t const ofnSize = ifnSize + 5; - if (ofnbSize <= ofnSize) { - ofnbSize = ofnSize + 16; - free(ofnBuffer); - ofnBuffer = malloc_orDie(ofnbSize); - } - memset(ofnBuffer, 0, ofnSize); - strcat(ofnBuffer, ifn); - strcat(ofnBuffer, ".zst"); - compressFile_orDie(ress, ifn, ofnBuffer, 7); - } - - freeResources(ress); - /* success */ - printf("compressed %i files \n", argc-1); - - return 0; -} Property changes on: vendor/zstd/dist/examples/multiple_streaming_compression.c ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: vendor/zstd/dist/examples/dictionary_decompression.c =================================================================== --- vendor/zstd/dist/examples/dictionary_decompression.c (revision 322652) +++ vendor/zstd/dist/examples/dictionary_decompression.c (nonexistent) @@ -1,129 +0,0 @@ -/** - * Copyright 2016-present, Yann Collet, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the license found in the - * LICENSE-examples file in the root directory of this source tree. - */ - - - -#include // malloc, exit -#include // printf -#include // strerror -#include // errno -#include // stat -#define ZSTD_STATIC_LINKING_ONLY // ZSTD_findDecompressedSize -#include // presumes zstd library is installed - - -static off_t fsize_orDie(const char *filename) -{ - struct stat st; - if (stat(filename, &st) == 0) return st.st_size; - /* error */ - perror(filename); - exit(1); -} - -static FILE* fopen_orDie(const char *filename, const char *instruction) -{ - FILE* const inFile = fopen(filename, instruction); - if (inFile) return inFile; - /* error */ - perror(filename); - exit(2); -} - -static void* malloc_orDie(size_t size) -{ - void* const buff = malloc(size); - if (buff) return buff; - /* error */ - perror("malloc"); - exit(3); -} - -static void* loadFile_orDie(const char* fileName, size_t* size) -{ - off_t const buffSize = fsize_orDie(fileName); - FILE* const inFile = fopen_orDie(fileName, "rb"); - void* const buffer = malloc_orDie(buffSize); - size_t const readSize = fread(buffer, 1, buffSize, inFile); - if (readSize != (size_t)buffSize) { - fprintf(stderr, "fread: %s : %s \n", fileName, strerror(errno)); - exit(4); - } - fclose(inFile); - *size = buffSize; - return buffer; -} - -/* createDict() : - `dictFileName` is supposed to have been created using `zstd --train` */ -static ZSTD_DDict* createDict_orDie(const char* dictFileName) -{ - size_t dictSize; - printf("loading dictionary %s \n", dictFileName); - void* const dictBuffer = loadFile_orDie(dictFileName, &dictSize); - ZSTD_DDict* const ddict = ZSTD_createDDict(dictBuffer, dictSize); - if (ddict==NULL) { fprintf(stderr, "ZSTD_createDDict error \n"); exit(5); } - free(dictBuffer); - return ddict; -} - - -static void decompress(const char* fname, const ZSTD_DDict* ddict) -{ - size_t cSize; - void* const cBuff = loadFile_orDie(fname, &cSize); - unsigned long long const rSize = ZSTD_findDecompressedSize(cBuff, cSize); - if (rSize==ZSTD_CONTENTSIZE_ERROR) { - fprintf(stderr, "%s : it was not compressed by zstd.\n", fname); - exit(5); - } else if (rSize==ZSTD_CONTENTSIZE_UNKNOWN) { - fprintf(stderr, "%s : original size unknown \n", fname); - exit(6); - } - - void* const rBuff = malloc_orDie((size_t)rSize); - - ZSTD_DCtx* const dctx = ZSTD_createDCtx(); - if (dctx==NULL) { fprintf(stderr, "ZSTD_createDCtx() error \n"); exit(10); } - size_t const dSize = ZSTD_decompress_usingDDict(dctx, rBuff, rSize, cBuff, cSize, ddict); - if (dSize != rSize) { - fprintf(stderr, "error decoding %s : %s \n", fname, ZSTD_getErrorName(dSize)); - exit(7); - } - - /* success */ - printf("%25s : %6u -> %7u \n", fname, (unsigned)cSize, (unsigned)rSize); - - ZSTD_freeDCtx(dctx); - free(rBuff); - free(cBuff); -} - - -int main(int argc, const char** argv) -{ - const char* const exeName = argv[0]; - - if (argc<3) { - printf("wrong arguments\n"); - printf("usage:\n"); - printf("%s [FILES] dictionary\n", exeName); - return 1; - } - - /* load dictionary only once */ - const char* const dictName = argv[argc-1]; - ZSTD_DDict* const dictPtr = createDict_orDie(dictName); - - int u; - for (u=1; u // malloc, free, exit -#include // fprintf, perror, fopen, etc. -#include // strlen, strcat, memset, strerror -#include // errno -#include // stat -#include // presumes zstd library is installed - - -static off_t fsize_orDie(const char *filename) -{ - struct stat st; - if (stat(filename, &st) == 0) return st.st_size; - /* error */ - perror(filename); - exit(1); -} - -static FILE* fopen_orDie(const char *filename, const char *instruction) -{ - FILE* const inFile = fopen(filename, instruction); - if (inFile) return inFile; - /* error */ - perror(filename); - exit(2); -} - -static void* malloc_orDie(size_t size) -{ - void* const buff = malloc(size); - if (buff) return buff; - /* error */ - perror(NULL); - exit(3); -} - -static void* loadFile_orDie(const char* fileName, size_t* size) -{ - off_t const fileSize = fsize_orDie(fileName); - size_t const buffSize = (size_t)fileSize; - if ((off_t)buffSize < fileSize) { /* narrowcast overflow */ - fprintf(stderr, "%s : filesize too large \n", fileName); - exit(4); - } - FILE* const inFile = fopen_orDie(fileName, "rb"); - void* const buffer = malloc_orDie(buffSize); - size_t const readSize = fread(buffer, 1, buffSize, inFile); - if (readSize != (size_t)buffSize) { - fprintf(stderr, "fread: %s : %s \n", fileName, strerror(errno)); - exit(5); - } - fclose(inFile); /* can't fail, read only */ - *size = buffSize; - return buffer; -} - - -static void saveFile_orDie(const char* fileName, const void* buff, size_t buffSize) -{ - FILE* const oFile = fopen_orDie(fileName, "wb"); - size_t const wSize = fwrite(buff, 1, buffSize, oFile); - if (wSize != (size_t)buffSize) { - fprintf(stderr, "fwrite: %s : %s \n", fileName, strerror(errno)); - exit(6); - } - if (fclose(oFile)) { - perror(fileName); - exit(7); - } -} - - -static void compress_orDie(const char* fname, const char* oname) -{ - size_t fSize; - void* const fBuff = loadFile_orDie(fname, &fSize); - size_t const cBuffSize = ZSTD_compressBound(fSize); - void* const cBuff = malloc_orDie(cBuffSize); - - size_t const cSize = ZSTD_compress(cBuff, cBuffSize, fBuff, fSize, 1); - if (ZSTD_isError(cSize)) { - fprintf(stderr, "error compressing %s : %s \n", fname, ZSTD_getErrorName(cSize)); - exit(8); - } - - saveFile_orDie(oname, cBuff, cSize); - - /* success */ - printf("%25s : %6u -> %7u - %s \n", fname, (unsigned)fSize, (unsigned)cSize, oname); - - free(fBuff); - free(cBuff); -} - - -static char* createOutFilename_orDie(const char* filename) -{ - size_t const inL = strlen(filename); - size_t const outL = inL + 5; - void* const outSpace = malloc_orDie(outL); - memset(outSpace, 0, outL); - strcat(outSpace, filename); - strcat(outSpace, ".zst"); - return (char*)outSpace; -} - -int main(int argc, const char** argv) -{ - const char* const exeName = argv[0]; - - if (argc!=2) { - printf("wrong arguments\n"); - printf("usage:\n"); - printf("%s FILE\n", exeName); - return 1; - } - - const char* const inFilename = argv[1]; - - char* const outFilename = createOutFilename_orDie(inFilename); - compress_orDie(inFilename, outFilename); - free(outFilename); - return 0; -} Property changes on: vendor/zstd/dist/examples/simple_compression.c ___________________________________________________________________ Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:keywords ## -1 +0,0 ## -FreeBSD=%H \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property