summaryrefslogtreecommitdiff
path: root/verify
diff options
context:
space:
mode:
authorJohn Stamp <jstamp@users.sourceforge.net>2009-07-19 20:06:04 -0700
committerLloyd Hilaiel <lloyd@hilaiel.com>2009-09-09 08:53:36 -0600
commit6bcb5f23c642e8428c5e4e4b644d4dd53e73583a (patch)
tree8e53dc8b983fdcf319461c8ce97f5f5c4de0ecf7 /verify
parent4616b3a4abae56af75e9976a69ba6326de80a5c3 (diff)
downloadyajl-6bcb5f23c642e8428c5e4e4b644d4dd53e73583a.tar.gz
Add support for combining short options
Diffstat (limited to 'verify')
-rw-r--r--verify/json_verify.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/verify/json_verify.c b/verify/json_verify.c
index d00738c..5817329 100644
--- a/verify/json_verify.c
+++ b/verify/json_verify.c
@@ -60,22 +60,28 @@ main(int argc, char ** argv)
yajl_parser_config cfg = { 0, 1 };
/* check arguments.*/
- if (argc > 1 && argc < 5) {
+ int a = 1;
+ while ((a < argc) && (argv[a][0] == '-') && (strlen(argv[a]) > 1)) {
int i;
-
- for (i=1; i < argc;i++) {
- if (!strcmp("-q", argv[i])) {
- quiet = 1;
- } else if (!strcmp("-c", argv[i])) {
- cfg.allowComments = 1;
- } else if (!strcmp("-u", argv[i])) {
- cfg.checkUTF8 = 0;
- } else {
- fprintf(stderr, "unrecognized option: '%s'\n\n", argv[i]);
- usage(argv[0]);
+ for ( i=1; i < strlen(argv[a]); i++) {
+ switch (argv[a][i]) {
+ case 'q':
+ quiet = 1;
+ break;
+ case 'c':
+ cfg.allowComments = 1;
+ break;
+ case 'u':
+ cfg.checkUTF8 = 0;
+ break;
+ default:
+ fprintf(stderr, "unrecognized option: '%c'\n\n", argv[a][i]);
+ usage(argv[0]);
}
}
- } else if (argc != 1) {
+ ++a;
+ }
+ if (a < argc) {
usage(argv[0]);
}