| @@ -35,7 +35,7 @@ | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| static int formatted_output = 0; | |||||
| static int formatted_output = JSON_C_TO_STRING_SPACED; | |||||
| static int show_output = 1; | static int show_output = 1; | ||||
| static int strict_mode = 0; | static int strict_mode = 0; | ||||
| static const char *fname = NULL; | static const char *fname = NULL; | ||||
| @@ -55,7 +55,7 @@ static void showmem(void) | |||||
| struct rusage rusage; | struct rusage rusage; | ||||
| memset(&rusage, 0, sizeof(rusage)); | memset(&rusage, 0, sizeof(rusage)); | ||||
| getrusage(RUSAGE_SELF, &rusage); | getrusage(RUSAGE_SELF, &rusage); | ||||
| printf("maxrss: %ld KB\n", rusage.ru_maxrss); | |||||
| fprintf(stderr, "maxrss: %ld KB\n", rusage.ru_maxrss); | |||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -136,15 +136,12 @@ static int showobj(struct json_object *new_obj) | |||||
| return 1; | return 1; | ||||
| } | } | ||||
| printf("Successfully parsed object from %s\n", fname); | |||||
| fprintf(stderr, "Successfully parsed object from %s\n", fname); | |||||
| if (show_output) | if (show_output) | ||||
| { | { | ||||
| const char *output; | const char *output; | ||||
| if (formatted_output) | |||||
| output = json_object_to_json_string(new_obj); | |||||
| else | |||||
| output = json_object_to_json_string_ext(new_obj, JSON_C_TO_STRING_PRETTY); | |||||
| output = json_object_to_json_string_ext(new_obj, formatted_output); | |||||
| printf("%s\n", output); | printf("%s\n", output); | ||||
| } | } | ||||
| @@ -159,11 +156,13 @@ static void usage(const char *argv0, int exitval, const char *errmsg) | |||||
| fp = stderr; | fp = stderr; | ||||
| if (errmsg != NULL) | if (errmsg != NULL) | ||||
| fprintf(fp, "ERROR: %s\n\n", errmsg); | fprintf(fp, "ERROR: %s\n\n", errmsg); | ||||
| fprintf(fp, "Usage: %s [-f] [-n] [-s]\n", argv0); | |||||
| fprintf(fp, " -f - Format the output with JSON_C_TO_STRING_PRETTY\n"); | |||||
| fprintf(fp, "Usage: %s [-f|-F <arg>] [-n] [-s]\n", argv0); | |||||
| fprintf(fp, " -f - Format the output to stdout with JSON_C_TO_STRING_PRETTY (default is JSON_C_TO_STRING_SPACED)\n"); | |||||
| fprintf(fp, " -F - Format the output to stdout with <arg>, e.g. 0 for JSON_C_TO_STRING_PLAIN\n"); | |||||
| fprintf(fp, " -n - No output\n"); | fprintf(fp, " -n - No output\n"); | ||||
| fprintf(fp, " -s - Parse in strict mode, flags:\n"); | fprintf(fp, " -s - Parse in strict mode, flags:\n"); | ||||
| fprintf(fp, " JSON_TOKENER_STRICT|JSON_TOKENER_ALLOW_TRAILING_CHARS\n"); | fprintf(fp, " JSON_TOKENER_STRICT|JSON_TOKENER_ALLOW_TRAILING_CHARS\n"); | ||||
| fprintf(fp, " Diagnostic information will be emitted to stderr\n"); | |||||
| fprintf(fp, "\nWARNING WARNING WARNING\n"); | fprintf(fp, "\nWARNING WARNING WARNING\n"); | ||||
| fprintf(fp, "This is a prototype, it may change or be removed at any time!\n"); | fprintf(fp, "This is a prototype, it may change or be removed at any time!\n"); | ||||
| @@ -174,11 +173,12 @@ int main(int argc, char **argv) | |||||
| { | { | ||||
| int opt; | int opt; | ||||
| while ((opt = getopt(argc, argv, "fhns")) != -1) | |||||
| while ((opt = getopt(argc, argv, "fF:hns")) != -1) | |||||
| { | { | ||||
| switch (opt) | switch (opt) | ||||
| { | { | ||||
| case 'f': formatted_output = 1; break; | |||||
| case 'f': formatted_output = JSON_C_TO_STRING_PRETTY; break; | |||||
| case 'F': formatted_output = atoi(optarg); break; | |||||
| case 'n': show_output = 0; break; | case 'n': show_output = 0; break; | ||||
| case 's': strict_mode = 1; break; | case 's': strict_mode = 1; break; | ||||
| case 'h': usage(argv[0], 0, NULL); | case 'h': usage(argv[0], 0, NULL); | ||||