diff --git a/src/Makefile b/src/Makefile index 5d65a08..33f3998 100644 --- a/src/Makefile +++ b/src/Makefile @@ -4,14 +4,14 @@ CC=gcc OBJ = main.o hex.o file.o FILES = main.c hex.c file.c -DEBUG: - gcc -g $(FILES) - $(TARGET): $(OBJ) mkdir -p ../build $(CC) -g -o $(TARGET) $(OBJ) mv $(TARGET) ../build/ +debug: + gcc -g $(FILES) + main.o: include/hex.h include/file.h hex.o: include/hex.h file.o: include/file.h diff --git a/src/a.out b/src/a.out index 4f3f5a1..a029efd 100755 Binary files a/src/a.out and b/src/a.out differ diff --git a/src/main.c b/src/main.c index b881d61..d7552bd 100644 --- a/src/main.c +++ b/src/main.c @@ -68,13 +68,19 @@ int get_hex_lines(int len) return out; } -void do_file_read(hex_chunk_t** lines) +void do_text_parse(hex_chunk_t** lines, bool interactive) { - char* file_content; + char* file_content = NULL; int hex_lines, i; - size_t filesize; + size_t filesize, max_len; + + if (interactive) { + max_len = INT_MAX; + getdelim(&file_content, &max_len, EOF, stdin); + } else { + read_file_to_buf(flags.files[0], &file_content); + } - read_file_to_buf(flags.files[0], &file_content); filesize = (flags.len == -1) ? strlen(file_content) : flags.len; hex_lines = get_hex_lines(filesize); @@ -95,6 +101,7 @@ void do_display(hex_chunk_t** lines) { int i; bool fileout = false; + FILE* stream = stdout; if (flags.files[1] != NULL) { @@ -119,9 +126,9 @@ int main(int argc, char* argv[]) init_flags(&flags); argp_parse(&argp, argc, argv, 0, 0, &flags); - flags.files[0] = "main.c"; - do_file_read(&lines); + + do_text_parse(&lines, (flags.files[0] == NULL ? true : false)); do_display(&lines);