aboutsummaryrefslogtreecommitdiff
path: root/src/sg_rep_zones.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sg_rep_zones.c')
-rw-r--r--src/sg_rep_zones.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/sg_rep_zones.c b/src/sg_rep_zones.c
index a8d4cbc9..8fc733ff 100644
--- a/src/sg_rep_zones.c
+++ b/src/sg_rep_zones.c
@@ -40,7 +40,7 @@
* Based on zbc2r12.pdf
*/
-static const char * version_str = "1.39 20220616";
+static const char * version_str = "1.40 20220625";
#define MY_NAME "sg_rep_zones"
@@ -188,8 +188,7 @@ usage(int h)
" --inhex=FN|-i FN decode contents of FN, ignore DEVICE\n"
" --json[=JO]|-j[JO] output in JSON instead of human "
"readable text.\n"
- " Optional argument JO see sg3_utils "
- "manpage\n"
+ " Use --json=? for JSON help\n"
" --locator=LBA|-l LBA similar to --start= option\n"
" --maxlen=LEN|-m LEN max response length (allocation "
"length in cdb)\n"
@@ -1216,8 +1215,15 @@ main(int argc, char * argv[])
break;
case 'j':
if (! sgj_init_state(&op->json_st, optarg)) {
- pr2serr("bad argument to --json= option, unrecognized "
- "character '%c'\n", op->json_st.first_bad_char);
+ int bad_char = op->json_st.first_bad_char;
+ char e[1500];
+
+ if (bad_char) {
+ pr2serr("bad argument to --json= option, unrecognized "
+ "character '%c'\n\n", bad_char);
+ }
+ sg_json_usage(0, e, sizeof(e));
+ pr2serr("%s", e);
return SG_LIB_SYNTAX_ERROR;
}
break;
@@ -1512,7 +1518,7 @@ the_end:
ret = (ret >= 0) ? ret : SG_LIB_CAT_OTHER;
if (as_json) {
if (0 == op->do_hex)
- sgj_pr2file(&op->json_st, NULL, ret, stdout);
+ sgj_pr2file(jsp, NULL, ret, stdout);
sgj_finish(jsp);
}
return ret;