Match LZ compressed files (#724)
Replace lzcomp with new version and match all LZ compressed files
This commit is contained in:
20
tools/lz/nullcomp.c
Normal file
20
tools/lz/nullcomp.c
Normal file
@@ -0,0 +1,20 @@
|
||||
#include "proto.h"
|
||||
|
||||
/*
|
||||
Null compressor: stores data uncompressed, using literal (0) commands only.
|
||||
Methods defined: 2
|
||||
Flags values: 0 = split a trailing 33-to-64-byte block at the end into two short blocks; 1 = don't
|
||||
*/
|
||||
|
||||
struct command * store_uncompressed (__attribute__((unused)) const unsigned char * data, __attribute__((unused)) const unsigned char * bitflipped, unsigned short * size, unsigned flags) {
|
||||
unsigned short position, block, remainder = *size;
|
||||
struct command * result = NULL;
|
||||
*size = 0;
|
||||
for (position = 0; remainder; position += block, remainder -= block) {
|
||||
block = (remainder > MAX_COMMAND_COUNT) ? MAX_COMMAND_COUNT : remainder;
|
||||
if (!(flags & 1) && (block <= (2 * SHORT_COMMAND_COUNT)) && (block > SHORT_COMMAND_COUNT)) block = SHORT_COMMAND_COUNT;
|
||||
result = realloc(result, sizeof(struct command) * (1 + *size));
|
||||
result[(*size) ++] = (struct command) {.command = 0, .count = block, .value = position};
|
||||
}
|
||||
return result;
|
||||
}
|
Reference in New Issue
Block a user