Thread (4 messages) flat view 4 messages, 3 authors, 2018-03-27

Re: [RFC PATCH 1/1] json-writer: incorrect format specifier

From: Ramsay Jones <hidden>
Date: 2018-03-27 03:26:21


On 26/03/18 18:04, Junio C Hamano wrote:
Ramsay Jones [off-list ref] writes:
quoted
quoted
quoted
@@ -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);
In this code-base, that would normally be written as:

	strbuf_addf(&jw->json, ":%"PRIuMAX, (uintmax_t) value);
heh, I should learn not to reply in a hurry, just before
going out ...

I had not noticed that 'value' was declared with an 'sized type'
of uint64_t, so using PRIu64 should be fine.
But why is this codepath using a sized type in the first place?  It
is not like it wants to read/write a fixed binary file format---it
just wants to use an integer type that is wide enough to handle any
inttype the platform uses, for which uintmax_t would be a more
appropriate type, no?
I must confess to not having given any thought to the wider
implications of the code. I don't really know what this code
is going to be used for. [Although I did shudder when I read
some mention of a 'universal interchange format' - I still
have nightmares about XML :-D ]

ATB,
Ramsay Jones

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help