Improve variable naming
This commit is contained in:
parent
adf779af8f
commit
e970d0a0fe
118
dsk2img.c
118
dsk2img.c
|
@ -196,92 +196,92 @@ void dump_dsk_header(struct dskheader* h)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void update_checksum(uint32_t* sum, uint8_t* buffer, size_t size)
|
void update_checksum(uint32_t* checksum, uint8_t* buffer, size_t size)
|
||||||
{
|
{
|
||||||
uint16_t* p = (uint16_t*)buffer;
|
uint16_t* p = (uint16_t*)buffer;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
for (i = 0; i < size / 2; i++)
|
for (i = 0; i < size / 2; i++)
|
||||||
*sum += p[i];
|
*checksum += p[i];
|
||||||
|
|
||||||
if (size & 1)
|
if (size & 1)
|
||||||
*sum += buffer[size - 1] << 8;
|
*checksum += buffer[size - 1] << 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
int copy_image_data(FILE* fin, FILE* fout, size_t size, uint32_t* checksum)
|
int copy_image_data(FILE* fin, FILE* fout, size_t size, uint32_t* checksum)
|
||||||
{
|
{
|
||||||
unsigned long int copied_bytes;
|
unsigned long int copied_bytes;
|
||||||
size_t rres, wres;
|
size_t read_count, write_count;
|
||||||
uint8_t* buffer = NULL;
|
uint8_t* read_buffer = NULL;
|
||||||
|
|
||||||
buffer = (uint8_t*)malloc(READ_BUFFER_SIZE);
|
read_buffer = (uint8_t*)malloc(READ_BUFFER_SIZE);
|
||||||
if (buffer == NULL) {
|
if (read_buffer == NULL) {
|
||||||
perror("malloc()");
|
perror("malloc()");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
for (copied_bytes = 0; copied_bytes < size;) {
|
for (copied_bytes = 0; copied_bytes < size;) {
|
||||||
rres = fread(buffer, 1, READ_BUFFER_SIZE, fin);
|
read_count = fread(read_buffer, 1, READ_BUFFER_SIZE, fin);
|
||||||
if (rres == 0) {
|
if (read_count == 0) {
|
||||||
perror("fread()");
|
perror("fread()");
|
||||||
free(buffer);
|
free(read_buffer);
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
update_checksum(checksum, buffer, rres);
|
update_checksum(checksum, read_buffer, read_count);
|
||||||
wres = fwrite(buffer, 1, rres, fout);
|
write_count = fwrite(read_buffer, 1, read_count, fout);
|
||||||
if (rres != wres) {
|
if (read_count != write_count) {
|
||||||
perror("fwrite()");
|
perror("fwrite()");
|
||||||
free(buffer);
|
free(read_buffer);
|
||||||
return -3;
|
return -3;
|
||||||
}
|
}
|
||||||
copied_bytes += rres;
|
copied_bytes += read_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(buffer);
|
free(read_buffer);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int copy_compressed_image_data(FILE* fin, FILE* fout)
|
int copy_compressed_image_data(FILE* fin, FILE* fout)
|
||||||
{
|
{
|
||||||
size_t rres, wres;
|
size_t read_count, write_count;
|
||||||
uint8_t* buffer = NULL;
|
uint8_t* read_buffer = NULL;
|
||||||
|
|
||||||
buffer = (uint8_t*)malloc(READ_BUFFER_SIZE);
|
read_buffer = (uint8_t*)malloc(READ_BUFFER_SIZE);
|
||||||
if (buffer == NULL) {
|
if (read_buffer == NULL) {
|
||||||
perror("malloc()");
|
perror("malloc()");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
rres = fread(buffer, 1, READ_BUFFER_SIZE, fin);
|
read_count = fread(read_buffer, 1, READ_BUFFER_SIZE, fin);
|
||||||
if (rres == 0) {
|
if (read_count == 0) {
|
||||||
perror("fread()");
|
perror("fread()");
|
||||||
free(buffer);
|
free(read_buffer);
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
wres = fwrite(buffer, 1, rres, fout);
|
write_count = fwrite(read_buffer, 1, read_count, fout);
|
||||||
if (rres != wres) {
|
if (read_count != write_count) {
|
||||||
perror("fwrite()");
|
perror("fwrite()");
|
||||||
free(buffer);
|
free(read_buffer);
|
||||||
return -3;
|
return -3;
|
||||||
}
|
}
|
||||||
if (rres < READ_BUFFER_SIZE)
|
if (read_count < READ_BUFFER_SIZE)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(buffer);
|
free(read_buffer);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int decompress_image_data(FILE* fin, FILE* fout, size_t size, uint32_t* checksum)
|
int decompress_image_data(FILE* fin, FILE* fout, size_t size, uint32_t* checksum)
|
||||||
{
|
{
|
||||||
unsigned long int copied_bytes = 0;
|
unsigned long int copied_bytes = 0;
|
||||||
size_t to_decompress, space;
|
size_t read_count, decompress_count;
|
||||||
uint8_t *buffer, *decompress_buffer;
|
uint8_t *read_buffer, *decompress_buffer;
|
||||||
uint8_t *pin, *pout;
|
uint8_t *read_ptr, *decompress_ptr;
|
||||||
struct lzw_ctx* ctx = NULL;
|
struct lzw_ctx* lzw = NULL;
|
||||||
|
|
||||||
buffer = (uint8_t*)malloc(READ_BUFFER_SIZE);
|
read_buffer = (uint8_t*)malloc(READ_BUFFER_SIZE);
|
||||||
if (buffer == NULL) {
|
if (read_buffer == NULL) {
|
||||||
perror("malloc()");
|
perror("malloc()");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -289,52 +289,52 @@ int decompress_image_data(FILE* fin, FILE* fout, size_t size, uint32_t* checksum
|
||||||
decompress_buffer = (uint8_t*)malloc(DECOMPRESS_BUFFER_SIZE);
|
decompress_buffer = (uint8_t*)malloc(DECOMPRESS_BUFFER_SIZE);
|
||||||
if (decompress_buffer == NULL) {
|
if (decompress_buffer == NULL) {
|
||||||
perror("malloc()");
|
perror("malloc()");
|
||||||
free(buffer);
|
free(read_buffer);
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx = (struct lzw_ctx*)malloc(sizeof(struct lzw_ctx));
|
lzw = (struct lzw_ctx*)malloc(sizeof(struct lzw_ctx));
|
||||||
if (ctx == NULL) {
|
if (lzw == NULL) {
|
||||||
perror("malloc()");
|
perror("malloc()");
|
||||||
free(buffer);
|
free(read_buffer);
|
||||||
free(decompress_buffer);
|
free(decompress_buffer);
|
||||||
return -3;
|
return -3;
|
||||||
}
|
}
|
||||||
|
|
||||||
lzw_init(ctx);
|
lzw_init(lzw);
|
||||||
|
|
||||||
to_decompress = 0;
|
read_count = 0;
|
||||||
space = DECOMPRESS_BUFFER_SIZE;
|
decompress_count = DECOMPRESS_BUFFER_SIZE;
|
||||||
pin = buffer;
|
read_ptr = read_buffer;
|
||||||
pout = decompress_buffer;
|
decompress_ptr = decompress_buffer;
|
||||||
while ((ctx->eos == 0) && (copied_bytes < size)) {
|
while ((lzw->eos == 0) && (copied_bytes < size)) {
|
||||||
if (to_decompress == 0) {
|
if (read_count == 0) {
|
||||||
to_decompress = fread(buffer, 1, READ_BUFFER_SIZE, fin);
|
read_count = fread(read_buffer, 1, READ_BUFFER_SIZE, fin);
|
||||||
pin = buffer;
|
read_ptr = read_buffer;
|
||||||
}
|
}
|
||||||
if (space == 0) {
|
if (decompress_count == 0) {
|
||||||
update_checksum(checksum, decompress_buffer, DECOMPRESS_BUFFER_SIZE);
|
update_checksum(checksum, decompress_buffer, DECOMPRESS_BUFFER_SIZE);
|
||||||
fwrite(decompress_buffer, 1, DECOMPRESS_BUFFER_SIZE, fout);
|
fwrite(decompress_buffer, 1, DECOMPRESS_BUFFER_SIZE, fout);
|
||||||
copied_bytes += DECOMPRESS_BUFFER_SIZE;
|
copied_bytes += DECOMPRESS_BUFFER_SIZE;
|
||||||
space = DECOMPRESS_BUFFER_SIZE;
|
decompress_count = DECOMPRESS_BUFFER_SIZE;
|
||||||
pout = decompress_buffer;
|
decompress_ptr = decompress_buffer;
|
||||||
}
|
}
|
||||||
lzw_decompress(ctx, pin, &to_decompress, pout, &space);
|
lzw_decompress(lzw, read_ptr, &read_count, decompress_ptr, &decompress_count);
|
||||||
pin = buffer + READ_BUFFER_SIZE - to_decompress;
|
read_ptr = read_buffer + READ_BUFFER_SIZE - read_count;
|
||||||
pout = decompress_buffer + DECOMPRESS_BUFFER_SIZE - space;
|
decompress_ptr = decompress_buffer + DECOMPRESS_BUFFER_SIZE - decompress_count;
|
||||||
}
|
}
|
||||||
if (space < DECOMPRESS_BUFFER_SIZE) {
|
if (decompress_count < DECOMPRESS_BUFFER_SIZE) {
|
||||||
update_checksum(checksum, decompress_buffer, DECOMPRESS_BUFFER_SIZE - space);
|
update_checksum(checksum, decompress_buffer, DECOMPRESS_BUFFER_SIZE - decompress_count);
|
||||||
fwrite(decompress_buffer, 1, DECOMPRESS_BUFFER_SIZE - space, fout);
|
fwrite(decompress_buffer, 1, DECOMPRESS_BUFFER_SIZE - decompress_count, fout);
|
||||||
copied_bytes += DECOMPRESS_BUFFER_SIZE - space;
|
copied_bytes += DECOMPRESS_BUFFER_SIZE - decompress_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (copied_bytes != size)
|
if (copied_bytes != size)
|
||||||
printf("WARNING: Decompressed image size (%lu) does not match expected (%lu)", copied_bytes, size);
|
printf("WARNING: Decompressed image size (%lu) does not match expected (%lu)", copied_bytes, size);
|
||||||
|
|
||||||
free(buffer);
|
free(read_buffer);
|
||||||
free(decompress_buffer);
|
free(decompress_buffer);
|
||||||
free(ctx);
|
free(lzw);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue