diff --git a/src/Makefile b/src/Makefile index 33f3998..4174efe 100644 --- a/src/Makefile +++ b/src/Makefile @@ -11,6 +11,7 @@ $(TARGET): $(OBJ) debug: gcc -g $(FILES) + mv a.out ../build/ main.o: include/hex.h include/file.h hex.o: include/hex.h diff --git a/src/a.out b/src/a.out deleted file mode 100755 index a029efd..0000000 Binary files a/src/a.out and /dev/null differ diff --git a/src/hex.c b/src/hex.c index ddd759e..23a2cba 100644 --- a/src/hex.c +++ b/src/hex.c @@ -85,7 +85,7 @@ static void write_offset(int num, FILE* stream) fprintf(stream, "%08d", num); else fprintf(stream, "%08x", num); - fprintf(stream, ": %s", GREEN_TEXT_STR); + fprintf(stream, ": %s", (flags.coloured) ? GREEN_TEXT_STR : ""); } static void write_text(char** text, FILE* stream) @@ -123,12 +123,12 @@ static void standard_output(char** text, FILE* stream) for (i = 0; i < (flags.cols * 2); i += (flags.octets * 2)) { for (j = 0; j < (flags.octets * 2); j += 2) write_octet(((*text) + i + j)[0], ((*text) + i + j)[1], stream); - fprintf(stream, " "); + if (!flags.postscript) + fprintf(stream, " "); } } - void display_hex_chunk(hex_chunk_t* chunk, FILE* stream) { if (!flags.postscript && !flags.c_style) diff --git a/src/main.c b/src/main.c index ade7608..a53c8c0 100644 --- a/src/main.c +++ b/src/main.c @@ -17,6 +17,7 @@ static struct argp_option options[] = { {"len", 'l', "len", 0, "stop after octets.", 0}, {"uppercase", 'u', 0, 0, "use upper case hex letters.", 0}, {"decimaloffset", 'd', 0, 0, "show offset in decimal instead of hex.", 0}, + {"ps", 'p', 0, 0, "output in postscript plain hexdump style.", 0}, {0} }; @@ -40,6 +41,9 @@ static error_t parse_opt(int key, char* arg, struct argp_state* state) case 'd': flags->decimaloffset = true; break; + case 'p': + flags->postscript = true; + flags->coloured = false; case ARGP_KEY_ARG: if (state->arg_num >= 2) argp_usage(state); @@ -137,10 +141,7 @@ int main(int argc, char* argv[]) i = 0; while (lines[i].line != -1) free_hex_chunk(&(lines[i++])); - free_hex_chunk(&(lines[i])); - free(lines); - return 0; }