summaryrefslogtreecommitdiff
path: root/reformatter
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 /reformatter
parent4616b3a4abae56af75e9976a69ba6326de80a5c3 (diff)
downloadyajl-6bcb5f23c642e8428c5e4e4b644d4dd53e73583a.tar.gz
Add support for combining short options
Diffstat (limited to 'reformatter')
-rw-r--r--reformatter/json_reformat.c30
1 files changed, 18 insertions, 12 deletions
diff --git a/reformatter/json_reformat.c b/reformatter/json_reformat.c
index d39678d..01fa375 100644
--- a/reformatter/json_reformat.c
+++ b/reformatter/json_reformat.c
@@ -120,7 +120,8 @@ static yajl_callbacks callbacks = {
static void
usage(const char * progname)
{
- fprintf(stderr, "usage: %s <filename>\n"
+ fprintf(stderr, "%s: reformat json from stdin\n"
+ "usage: json_reformat [options]\n"
" -m minimize json rather than beautify (default)\n"
" -u allow invalid UTF8 inside strings during parsing\n",
progname);
@@ -143,20 +144,25 @@ main(int argc, char ** argv)
int retval = 0, done = 0;
/* check arguments.*/
- if (argc > 1 && argc < 4) {
+ int a = 1;
+ while ((a < argc) && (argv[a][0] == '-') && (strlen(argv[a]) > 1)) {
int i;
-
- for (i=1; i < argc;i++) {
- if (!strcmp("-m", argv[i])) {
- conf.beautify = 0;
- } 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 'm':
+ conf.beautify = 0;
+ 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]);
}