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 <torvalds@linux-foundation.org>
This commit is contained in:
Linus Torvalds 2011-08-30 16:28:59 -07:00
parent 8a670bfb5c
commit 83e0bf8b52

36
parse.c
View file

@ -7,6 +7,8 @@
#include <libxml/parser.h> #include <libxml/parser.h>
#include <libxml/tree.h> #include <libxml/tree.h>
static int verbose;
/* /*
* Some silly typedefs to make our units very explicit. * 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) static void nonmatch(const char *type, const char *fullname, const char *name, char *buffer)
{ {
printf("Unable to match %s '(%.*s)%s' (%s)\n", type, if (verbose)
(int) (name - fullname), fullname, name, printf("Unable to match %s '(%.*s)%s' (%s)\n", type,
buffer); (int) (name - fullname), fullname, name,
buffer);
free(buffer); free(buffer);
} }
@ -570,13 +573,36 @@ static void parse(const char *filename)
xmlCleanupParser(); 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 main(int argc, char **argv)
{ {
int i; int i;
LIBXML_TEST_VERSION LIBXML_TEST_VERSION
for (i = 1; i < argc; i++) for (i = 1; i < argc; i++) {
parse(argv[i]); const char *a = argv[i];
if (a[0] == '-') {
parse_argument(a);
continue;
}
parse(a);
}
return 0; return 0;
} }