Print size_t properly with C11 %zd support.

This commit is contained in:
Kelvin Lee 2020-11-05 22:05:54 +11:00
parent a740f15c17
commit 1d8201c656

View File

@ -30,7 +30,7 @@
void print_json(json_t *root);
void print_json_aux(json_t *element, int indent);
void print_json_indent(int indent);
const char *json_plural(int count);
const char *json_plural(size_t count);
void print_json_object(json_t *element, int indent);
void print_json_array(json_t *element, int indent);
void print_json_string(json_t *element, int indent);
@ -80,7 +80,7 @@ void print_json_indent(int indent) {
}
}
const char *json_plural(int count) { return count == 1 ? "" : "s"; }
const char *json_plural(size_t count) { return count == 1 ? "" : "s"; }
void print_json_object(json_t *element, int indent) {
size_t size;
@ -90,7 +90,11 @@ void print_json_object(json_t *element, int indent) {
print_json_indent(indent);
size = json_object_size(element);
printf("JSON Object of %ld pair%s:\n", size, json_plural(size));
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
printf("JSON Object of %zd pair%s:\n", size, json_plural(size));
#else
printf("JSON Object of %lld pair%s:\n", (long long)size, json_plural(size));
#endif
json_object_foreach(element, key, value) {
print_json_indent(indent + 2);
printf("JSON Key: \"%s\"\n", key);
@ -103,7 +107,11 @@ void print_json_array(json_t *element, int indent) {
size_t size = json_array_size(element);
print_json_indent(indent);
printf("JSON Array of %ld element%s:\n", size, json_plural(size));
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
printf("JSON Array of %zd element%s:\n", size, json_plural(size));
#else
printf("JSON Array of %lld element%s:\n", (long long)size, json_plural(size));
#endif
for (i = 0; i < size; i++) {
print_json_aux(json_array_get(element, i), indent + 2);
}