mirror of
https://github.com/lz4/lz4.git
synced 2024-11-28 20:33:34 +08:00
CLI : Added : capability to compress/decompress to NULL (useful for testings)
Corrected small bug into LZ4_uncompress(). Update is recommended. git-svn-id: https://lz4.googlecode.com/svn/trunk@28 650e7d94-2a16-8b24-b05c-7c0b3f6821cd
This commit is contained in:
parent
e1ae3a0b95
commit
dab6b9d3dc
5
lz4.c
5
lz4.c
@ -72,8 +72,8 @@
|
||||
#define COPYTOKEN 4
|
||||
#define COPYLENGTH 8
|
||||
#define LASTLITERALS 5
|
||||
#define MFLIMIT 12
|
||||
#define MINLENGTH 13
|
||||
#define MFLIMIT (COPYLENGTH+MINMATCH)
|
||||
#define MINLENGTH (MFLIMIT+1)
|
||||
|
||||
#define MAXD_LOG 16
|
||||
#define MAX_DISTANCE ((1 << MAXD_LOG) - 1)
|
||||
@ -302,6 +302,7 @@ int LZ4_uncompress(char* source,
|
||||
{
|
||||
if (ref > oend) goto _output_error;
|
||||
memcpy(op, ip, length);
|
||||
ip+=length;
|
||||
break; // Necessarily EOF
|
||||
}
|
||||
LZ4_WILDCOPY(ip, op, ref);
|
||||
|
16
main.c
16
main.c
@ -89,8 +89,8 @@ int usage()
|
||||
fprintf(stderr, " -c : force compression (default)\n");
|
||||
fprintf(stderr, " -d : force decompression \n");
|
||||
fprintf(stderr, " -h : help (this text)\n");
|
||||
fprintf(stderr, "input : can be 'stdin' (pipe) or a filename\n");
|
||||
fprintf(stderr, "output : can be 'stdout' (pipe) or a filename\n");
|
||||
fprintf(stderr, "input : can be 'stdin' (pipe) or a filename\n");
|
||||
fprintf(stderr, "output : can be 'stdout'(pipe) or a filename or 'nul'\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -113,11 +113,12 @@ int compress_file(char* input_filename, char* output_filename)
|
||||
FILE* foutput;
|
||||
char stdinmark[] = "stdin";
|
||||
char stdoutmark[] = "stdout";
|
||||
char nulmark[] = "nul";
|
||||
|
||||
if (!strcmp (input_filename, stdinmark)) {
|
||||
fprintf(stderr, "Using stdin for input\n");
|
||||
finput = stdin;
|
||||
#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */
|
||||
#ifdef _WIN32 // Need to set stdin/stdout to binary mode specifically for windows
|
||||
_setmode( _fileno( stdin ), _O_BINARY );
|
||||
#endif
|
||||
} else {
|
||||
@ -127,9 +128,12 @@ int compress_file(char* input_filename, char* output_filename)
|
||||
if (!strcmp (output_filename, stdoutmark)) {
|
||||
fprintf(stderr, "Using stdout for output\n");
|
||||
foutput = stdout;
|
||||
#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */
|
||||
#ifdef _WIN32 // Need to set stdin/stdout to binary mode specifically for windows
|
||||
_setmode( _fileno( stdout ), _O_BINARY );
|
||||
#endif
|
||||
} else if (!strcmp (input_filename, nulmark)) {
|
||||
fprintf(stderr, "Sending output to nul\n");
|
||||
foutput = NULL;
|
||||
} else {
|
||||
foutput = fopen( output_filename, "wb" );
|
||||
}
|
||||
@ -186,6 +190,7 @@ int decode_file(char* input_filename, char* output_filename)
|
||||
FILE* foutput;
|
||||
char stdinmark[] = "stdin";
|
||||
char stdoutmark[] = "stdout";
|
||||
char nulmark[] = "nul";
|
||||
|
||||
if (!strcmp (input_filename, stdinmark)) {
|
||||
fprintf(stderr, "Using stdin for input\n");
|
||||
@ -203,6 +208,9 @@ int decode_file(char* input_filename, char* output_filename)
|
||||
#ifdef _WIN32 // need to set stdin/stdout to binary mode
|
||||
_setmode( _fileno( stdout ), _O_BINARY );
|
||||
#endif
|
||||
} else if (!strcmp (input_filename, nulmark)) {
|
||||
fprintf(stderr, "Sending output to nul\n");
|
||||
foutput = NULL;
|
||||
} else {
|
||||
foutput = fopen( output_filename, "wb" );
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user