Print this page
5005 libnvpair JSON output broken by lint fixes
5006 libnvpair JSON cannot print int16 arrays
Reviewed by: Robert Mustacchi <rm@joyent.com>
*** 7,17 ****
* A full copy of the text of the CDDL should have accompanied this
* source. A copy of the CDDL is also available via the Internet at
* http://www.illumos.org/license/CDDL.
*/
/*
! * Copyright (c) 2013, Joyent, Inc. All rights reserved.
*/
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
--- 7,17 ----
* A full copy of the text of the CDDL should have accompanied this
* source. A copy of the CDDL is also available via the Internet at
* http://www.illumos.org/license/CDDL.
*/
/*
! * Copyright (c) 2014, Joyent, Inc. All rights reserved.
*/
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
*** 19,30 ****
#include <sys/debug.h>
#include "libnvpair.h"
#define FPRINTF(fp, ...) \
if (fprintf(fp, __VA_ARGS__) < 0) \
! return (-1) \
/*
* When formatting a string for JSON output we must escape certain characters,
* as described in RFC4627. This applies to both member names and
* DATA_TYPE_STRING values.
--- 19,32 ----
#include <sys/debug.h>
#include "libnvpair.h"
#define FPRINTF(fp, ...) \
+ do { \
if (fprintf(fp, __VA_ARGS__) < 0) \
! return (-1); \
! } while (0)
/*
* When formatting a string for JSON output we must escape certain characters,
* as described in RFC4627. This applies to both member names and
* DATA_TYPE_STRING values.
*** 326,336 ****
VERIFY0(nvpair_value_int16_array(curr, &val, &valsz));
FPRINTF(fp, "[");
for (i = 0; i < valsz; i++) {
if (i > 0)
FPRINTF(fp, ",");
! FPRINTF(fp, "%hhd", val[i]);
}
FPRINTF(fp, "]");
break;
}
--- 328,338 ----
VERIFY0(nvpair_value_int16_array(curr, &val, &valsz));
FPRINTF(fp, "[");
for (i = 0; i < valsz; i++) {
if (i > 0)
FPRINTF(fp, ",");
! FPRINTF(fp, "%hd", val[i]);
}
FPRINTF(fp, "]");
break;
}