From c7f62eca710243f04759a1bf99f39a5f166a8886 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sun, 12 Aug 2012 22:51:33 +0200 Subject: [PATCH] mparse: Allow to choose the header fields to print --- mparse.c | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) 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); + } } } } -- 2.39.2