#define COPYTOKEN 4\r
#define COPYLENGTH 8\r
#define LASTLITERALS 5\r
-#define MFLIMIT 12\r
-#define MINLENGTH 13\r
+#define MFLIMIT (COPYLENGTH+MINMATCH)\r
+#define MINLENGTH (MFLIMIT+1)\r
\r
#define MAXD_LOG 16\r
#define MAX_DISTANCE ((1 << MAXD_LOG) - 1)\r
{ \r
if (ref > oend) goto _output_error;\r
memcpy(op, ip, length);\r
+ ip+=length;\r
break; // Necessarily EOF\r
}\r
LZ4_WILDCOPY(ip, op, ref);\r
fprintf(stderr, " -c : force compression (default)\n");\r
fprintf(stderr, " -d : force decompression \n");\r
fprintf(stderr, " -h : help (this text)\n"); \r
- fprintf(stderr, "input : can be 'stdin' (pipe) or a filename\n");\r
- fprintf(stderr, "output : can be 'stdout' (pipe) or a filename\n");\r
+ fprintf(stderr, "input : can be 'stdin' (pipe) or a filename\n");\r
+ fprintf(stderr, "output : can be 'stdout'(pipe) or a filename or 'nul'\n");\r
return 0;\r
}\r
\r
FILE* foutput;\r
char stdinmark[] = "stdin";\r
char stdoutmark[] = "stdout";\r
+ char nulmark[] = "nul";\r
\r
if (!strcmp (input_filename, stdinmark)) {\r
fprintf(stderr, "Using stdin for input\n");\r
finput = stdin;\r
-#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */\r
+#ifdef _WIN32 // Need to set stdin/stdout to binary mode specifically for windows\r
_setmode( _fileno( stdin ), _O_BINARY );\r
#endif\r
} else {\r
if (!strcmp (output_filename, stdoutmark)) {\r
fprintf(stderr, "Using stdout for output\n");\r
foutput = stdout;\r
-#ifdef _WIN32 /* We need to set stdin/stdout to binary mode. Damn windows. */\r
+#ifdef _WIN32 // Need to set stdin/stdout to binary mode specifically for windows\r
_setmode( _fileno( stdout ), _O_BINARY );\r
#endif\r
+ } else if (!strcmp (input_filename, nulmark)) {\r
+ fprintf(stderr, "Sending output to nul\n");\r
+ foutput = NULL;\r
} else {\r
foutput = fopen( output_filename, "wb" );\r
}\r
FILE* foutput;\r
char stdinmark[] = "stdin";\r
char stdoutmark[] = "stdout";\r
+ char nulmark[] = "nul";\r
\r
if (!strcmp (input_filename, stdinmark)) {\r
fprintf(stderr, "Using stdin for input\n");\r
#ifdef _WIN32 // need to set stdin/stdout to binary mode\r
_setmode( _fileno( stdout ), _O_BINARY );\r
#endif\r
+ } else if (!strcmp (input_filename, nulmark)) {\r
+ fprintf(stderr, "Sending output to nul\n");\r
+ foutput = NULL;\r
} else {\r
foutput = fopen( output_filename, "wb" );\r
}\r