Enable yaz backtrace for programs YAZ-802
[yaz-moved-to-github.git] / util / json-parse.c
index 6621c4d..99a766c 100644 (file)
@@ -1,5 +1,5 @@
 /* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2011 Index Data
+ * Copyright (C) Index Data
  * See the file LICENSE for details.
  */
 #if HAVE_CONFIG_H
@@ -13,6 +13,7 @@
 #include <yaz/json.h>
 #include <yaz/wrbuf.h>
 #include <yaz/options.h>
+#include <yaz/backtrace.h>
 
 void usage(const char *prog)
 {
@@ -50,12 +51,14 @@ int main(int argc, char **argv)
     int print = 0;
     int ret;
     char *arg;
+
+    yaz_enable_panic_backtrace(*argv);
     while ((ret = options("p", argv, argc, &arg)) != YAZ_OPTIONS_EOF)
     {
         switch (ret)
         {
         case 'p':
-            print = 1;
+            print++;
             break;
         default:
             usage(argv[0]);
@@ -67,7 +70,10 @@ int main(int argc, char **argv)
     if (print)
     {
         WRBUF result = wrbuf_alloc();
-        json_write_wrbuf(n, result);
+        if (print > 1)
+            json_write_wrbuf_pretty(n, result);
+        else
+            json_write_wrbuf(n, result);
         puts(wrbuf_cstr(result));
         wrbuf_destroy(result);
     }