summaryrefslogtreecommitdiff
path: root/tools/xor_compress.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/xor_compress.c')
-rw-r--r--tools/xor_compress.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/tools/xor_compress.c b/tools/xor_compress.c
index 555274a..56a74be 100644
--- a/tools/xor_compress.c
+++ b/tools/xor_compress.c
@@ -4,9 +4,7 @@
#include <string.h>
#include <errno.h>
-#define PROGRAM_NAME "xor_compress"
-
-extern int errno;
+char *program_name;
size_t file_size(FILE *f) {
if (fseek(f, 0, SEEK_END) == -1) return 0;
@@ -40,7 +38,7 @@ unsigned char *read_files(char *filenames[], int num_files, size_t *buf_size, in
fclose(f);
if (read_size != f_size) {
// fread does not set errno
- fprintf(stderr, PROGRAM_NAME ": %s: Read error\n", filename);
+ fprintf(stderr, "%s: %s: Read error\n", program_name, filename);
*err = 1;
return buffer;
}
@@ -50,7 +48,7 @@ unsigned char *read_files(char *filenames[], int num_files, size_t *buf_size, in
return buffer;
failure:
- fprintf(stderr, PROGRAM_NAME ": %s: %s\n", filename, strerror(errno));
+ fprintf(stderr, "%s: %s: %s\n", program_name, filename, strerror(errno));
*err = errno;
return buffer;
}
@@ -58,7 +56,7 @@ failure:
int write_compressed(const char *filename, unsigned char *data, size_t n, int *err) {
FILE *f = fopen(filename, "wb");
if (!f) {
- fprintf(stderr, PROGRAM_NAME ": %s: %s\n", filename, strerror(errno));
+ fprintf(stderr, "%s: %s: %s\n", program_name, filename, strerror(errno));
*err = errno;
return 0;
}
@@ -98,6 +96,8 @@ int write_compressed(const char *filename, unsigned char *data, size_t n, int *e
}
int main(int argc, char *argv[]) {
+ program_name = argc ? argv[0] : "xor_compress";
+
bool verbose = argc > 1 && !strcmp(argv[1], "-v");
if (verbose) {
argv++;
@@ -105,7 +105,7 @@ int main(int argc, char *argv[]) {
}
if (argc < 3) {
- fputs("Usage: " PROGRAM_NAME " [-v] file... files.xor\n", stderr);
+ fprintf(stderr, "Usage: %s [-v] file... files.xor\n", program_name);
exit(1);
}
argv++;
@@ -119,7 +119,7 @@ int main(int argc, char *argv[]) {
if (!err) {
int runs = write_compressed(out_filename, data, data_size, &err);
if (!err && verbose) {
- printf(PROGRAM_NAME ": %s: ld bc, $%x\n", out_filename, runs);
+ printf("%s: %s: ld bc, $%x\n", program_name, out_filename, runs);
}
}
free(data);