On 3/24/2018 1:37 AM, Wink Saville wrote:
In routines jw_object_uint64 and jw_object_double strbuf_addf is
invoked with strbuf_addf(&jw->json, ":%"PRIuMAX, value) where value
is a uint64_t. This causes a compile error on OSX.
The correct format specifier is PRIu64 instead of PRIuMax.
Signed-off-by: Wink Saville <wink@xxxxxxxxxxx>
That's odd.
A grep on the Git source tree did not find a "PRIu64" symbol.
Searching public-inbox only found one message [1] talking about it
(other than the ones associated with your messages here).
I have to wonder if that is defined in a OSX header file and
you're getting it from there [2]. (I don't have a MAC in front of
me, so I can't verify what's in that header.) But [2] defines
PRIuMAX as PRIu64, so we shouldn't need to make that change in
json-writer -- unless something is getting lost in the #ifdefs.
Could you double check this in the header files on your system?
Any chance you are doing a 32-bit build?
Thanks
Jeff
[1]
https://public-inbox.org/git/MWHPR21MB0478181AE0B64901DA2C07CDF4600@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/raw
[2] https://opensource.apple.com/source/gcc/gcc-926/inttypes.h.auto.html
---
json-writer.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/json-writer.c b/json-writer.c
index 89a6abb57..04045448a 100644
--- a/json-writer.c
+++ b/json-writer.c
@@ -120,7 +120,7 @@ void jw_object_uint64(struct json_writer *jw, const char *key, uint64_t value)
maybe_add_comma(jw);
append_quoted_string(&jw->json, key);
- strbuf_addf(&jw->json, ":%"PRIuMAX, value);
+ strbuf_addf(&jw->json, ":%"PRIu64, value);
}
void jw_object_double(struct json_writer *jw, const char *fmt,
@@ -225,7 +225,7 @@ void jw_array_uint64(struct json_writer *jw, uint64_t value)
assert_in_array(jw);
maybe_add_comma(jw);
- strbuf_addf(&jw->json, "%"PRIuMAX, value);
+ strbuf_addf(&jw->json, "%"PRIu64, value);
}
void jw_array_double(struct json_writer *jw, const char *fmt, double value)