From 83e0bf8b520c54a9ef0b90ccf676022ae27e7737 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 30 Aug 2011 16:28:59 -0700 Subject: [PATCH] Add 'verbose' flag Now that we actually parse some of the dives, don't spam stdout with the list of stuff we can't parse by default. Add a 'verbose' flag, which enables that output when set. Signed-off-by: Linus Torvalds --- parse.c | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/parse.c b/parse.c index 67aa5a0..4f7ba64 100644 --- a/parse.c +++ b/parse.c @@ -7,6 +7,8 @@ #include #include +static int verbose; + /* * Some silly typedefs to make our units very explicit. * @@ -115,9 +117,10 @@ static void record_dive(struct dive *dive) static void nonmatch(const char *type, const char *fullname, const char *name, char *buffer) { - printf("Unable to match %s '(%.*s)%s' (%s)\n", type, - (int) (name - fullname), fullname, name, - buffer); + if (verbose) + printf("Unable to match %s '(%.*s)%s' (%s)\n", type, + (int) (name - fullname), fullname, name, + buffer); free(buffer); } @@ -570,13 +573,36 @@ static void parse(const char *filename) xmlCleanupParser(); } +static void parse_argument(const char *arg) +{ + const char *p = arg+1; + + do { + switch (*p) { + case 'v': + verbose++; + continue; + default: + fprintf(stderr, "Bad argument '%s'\n", arg); + exit(1); + } + } while (*++p); +} + int main(int argc, char **argv) { int i; LIBXML_TEST_VERSION - for (i = 1; i < argc; i++) - parse(argv[i]); + for (i = 1; i < argc; i++) { + const char *a = argv[i]; + + if (a[0] == '-') { + parse_argument(a); + continue; + } + parse(a); + } return 0; } -- 2.45.2