diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2018-06-04 22:12:57 +0200 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2018-06-04 22:12:57 +0200 |
commit | d8a3f1404382b338571624794254c606d0ef3e99 (patch) | |
tree | 8ddb565552ff7c3d9296eb9d3597373c0ac23a73 /src/3rdParty/json-c/tests/parse_flags.c | |
parent | c03d5d4bfc92e48ea1781db82a29f33b2a69f151 (diff) | |
download | biruda-d8a3f1404382b338571624794254c606d0ef3e99.tar.gz biruda-d8a3f1404382b338571624794254c606d0ef3e99.tar.bz2 |
added local win32 fork of json-c here
Diffstat (limited to 'src/3rdParty/json-c/tests/parse_flags.c')
-rw-r--r-- | src/3rdParty/json-c/tests/parse_flags.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/3rdParty/json-c/tests/parse_flags.c b/src/3rdParty/json-c/tests/parse_flags.c new file mode 100644 index 0000000..1af61ea --- /dev/null +++ b/src/3rdParty/json-c/tests/parse_flags.c @@ -0,0 +1,50 @@ +#include "config.h" + +#include <stdio.h> +#include <string.h> + +#include "json.h" +#include "parse_flags.h" + +#if !defined(HAVE_STRCASECMP) && defined(_MSC_VER) +# define strcasecmp _stricmp +#elif !defined(HAVE_STRCASECMP) +# error You do not have strcasecmp on your system. +#endif /* HAVE_STRNCASECMP */ + +static struct { + const char *arg; + int flag; +} format_args[] = { + { "plain", JSON_C_TO_STRING_PLAIN }, + { "spaced", JSON_C_TO_STRING_SPACED }, + { "pretty", JSON_C_TO_STRING_PRETTY }, +}; + +#ifndef NELEM +#define NELEM(x) (sizeof(x) / sizeof(&x[0])) +#endif + +int parse_flags(int argc, char **argv) +{ + int arg_idx; + int sflags = 0; + for (arg_idx = 1; arg_idx < argc ; arg_idx++) + { + int jj; + for (jj = 0; jj < (int)NELEM(format_args); jj++) + { + if (strcasecmp(argv[arg_idx], format_args[jj].arg) == 0) + { + sflags |= format_args[jj].flag; + break; + } + } + if (jj == NELEM(format_args)) + { + printf("Unknown arg: %s\n", argv[arg_idx]); + exit(1); + } + } + return sflags; +} |