From: Martin Mares Date: Sun, 12 Aug 2012 20:51:33 +0000 (+0200) Subject: mparse: Allow to choose the header fields to print X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=c7f62eca710243f04759a1bf99f39a5f166a8886;p=maildups.git mparse: Allow to choose the header fields to print --- diff --git a/mparse.c b/mparse.c index 9c31851..962755e 100644 --- a/mparse.c +++ b/mparse.c @@ -18,7 +18,7 @@ const char progname[] = "mparse"; static char buf[BUFSIZE]; static char *bpos=buf, *bend=buf; -static char *getline(void) +static char *get_line(void) { if (!bpos) return NULL; @@ -63,6 +63,21 @@ static char *getline(void) } } +static int want_header(char *line, char **want, int n_want) +{ + if (!n_want) + return 1; + + for (int i=0; i\n", c); if (state == S_INITIAL || state == S_BODY) @@ -95,15 +111,22 @@ main(int argc UNUSED, char **argv UNUSED) } else if (*c == ' ' || *c == '\t') { - while (*c == ' ' || *c == '\t') - c++; - putchar(' '); - fputs(c, stdout); + if (want) + { + while (*c == ' ' || *c == '\t') + c++; + putchar(' '); + fputs(c, stdout); + } } else { - putchar('\n'); - fputs(c, stdout); + want = want_header(c, argv+1, argc-1); + if (want) + { + putchar('\n'); + fputs(c, stdout); + } } } }