This commit is contained in:
Bohdan Kapliuk 2025-01-12 16:29:37 +02:00
parent 2af68a7e69
commit 3ccf4cc724
2 changed files with 10 additions and 8 deletions

View File

@ -88,7 +88,7 @@ unsigned char* decompress_1_buffer(const unsigned char* data, size_t size, size_
int decompress_1(const char* input_file_name, const char* output_file_name) { int decompress_1(const char* input_file_name, const char* output_file_name) {
size_t size; size_t size;
unsigned char* data; unsigned char* data;
if (read_file(input_file_name, &data, &size) != 0) return -1; if (read_file(output_file_name, &data, &size) != 0) return -1; // Змінили місцями файли
size_t out_size; size_t out_size;
unsigned char* decompressed = decompress_1_buffer(data, size, &out_size); unsigned char* decompressed = decompress_1_buffer(data, size, &out_size);
@ -96,9 +96,10 @@ int decompress_1(const char* input_file_name, const char* output_file_name) {
free(data); free(data);
return -1; return -1;
} }
int result = write_file(output_file_name, decompressed, out_size); int result = write_file(input_file_name, decompressed, out_size); // Змінили місцями файли
free(data); free(data);
free(decompressed); free(decompressed);
return result == 0 ? (int)out_size : -1; return result == 0 ? (int)out_size : -1;
} }
@ -173,11 +174,11 @@ int compress_2(const char* input_file_name, const char* output_file_name) {
int decompress_2(const char* input_file_name, const char* output_file_name) { int decompress_2(const char* input_file_name, const char* output_file_name) {
unsigned char* data; unsigned char* data;
size_t size; size_t size;
if (read_file(input_file_name, &data, &size) != 0) { if (read_file(output_file_name, &data, &size) != 0) { // Змінили місцями файли
return -1; return -1;
} }
FILE* output = fopen(output_file_name, "w"); FILE* output = fopen(input_file_name, "w"); // Змінили місцями файли
if (!output) { if (!output) {
free(data); free(data);
return -1; return -1;
@ -226,6 +227,7 @@ int decompress_2(const char* input_file_name, const char* output_file_name) {
dict_size++; dict_size++;
} }
} }
fclose(output); fclose(output);
free(data); free(data);
for (size_t i = 0; i < dict_size; i++) { for (size_t i = 0; i < dict_size; i++) {

View File

@ -36,22 +36,22 @@ int main(int argc, char* argv[]) {
if (strcmp(argv[1], "-c") == 0) { if (strcmp(argv[1], "-c") == 0) {
result = compress_1(input_file, output_file); result = compress_1(input_file, output_file);
if (result < 0) { if (result < 0) {
return 0; return 1;
} }
} else if (strcmp(argv[1], "-d") == 0) { } else if (strcmp(argv[1], "-d") == 0) {
result = decompress_1(input_file, output_file); result = decompress_1(input_file, output_file);
if (result < 0) { if (result < 0) {
return 0; return 1;
} }
} else if (strcmp(argv[1], "-c2") == 0) { } else if (strcmp(argv[1], "-c2") == 0) {
result = compress_2(input_file, output_file); result = compress_2(input_file, output_file);
if (result < 0) { if (result < 0) {
return 0; return 1;
} }
} else if (strcmp(argv[1], "-d2") == 0) { } else if (strcmp(argv[1], "-d2") == 0) {
result = decompress_2(input_file, output_file); result = decompress_2(input_file, output_file);
if (result < 0) { if (result < 0) {
return 0; return 1;
} }
} else { } else {
fprintf(stderr, "Chyba: Neznamy argument. Použite -h pre zobrazenie pomoci.\n"); fprintf(stderr, "Chyba: Neznamy argument. Použite -h pre zobrazenie pomoci.\n");