diff --git a/c/human.c b/c/human.c index 5b1a7bb..457ef00 100644 --- a/c/human.c +++ b/c/human.c @@ -84,6 +84,8 @@ print_token_to_human (const char *token) printf("%s ", stmp); free(stmp); } + + // TODO prints error then exits } void @@ -107,11 +109,10 @@ print_delim (char *s, const char *delim, const struct fields *f) // check if we need to print the current token humanized int found = 0; - for (j = 0 ; j < f->nbfields ; j++ ) { + for (j = 0 ; j < f->nbfields && found == 0; j++ ) { if( i == f->fields[j] ) { print_token_to_human(token); found = 1; - break; } } @@ -122,21 +123,6 @@ print_delim (char *s, const char *delim, const struct fields *f) } } -/* - * print every line, with the first token humanized - * there is a split in the line by the space character to get tokens - */ - -void -print_human (char *s) -{ - struct fields f; - f.nbfields = 1; - f.fields = malloc(sizeof(unsigned int) * 1); - f.fields[0] = 1; - print_delim (s, " ", &f); -} - // get the index of every token to humanize int get_tok_to_humanize (char *s, struct fields *f) @@ -197,20 +183,17 @@ main (int argc, char *argv[]) } while(fgets(strtmp, BUFSIZ, stdin)) { - chomp(strtmp); - - if(delim) { - print_delim (strtmp, delim, &fields); - } - else { - print_human (strtmp); - } - + print_delim (strtmp, delim, &fields); printf("\n"); } free(strtmp); + free(fields.fields); + + if(argc == 2) + free(delim); + exit(EXIT_SUCCESS); }