git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Ramsay Jones <ramsay@ramsayjones.plus.com>
Date
Mar 24, 2018, 16:07 UTC
Message-ID
<c8628770-71d7-42f4-4bc5-444ea0160d26@ramsayjones.plus.com>
In-Reply-To
<4f4221d9-2ad9-2282-d26f-412ba0bfd719@ramsayjones.plus.com>
On 24/03/18 15:14, Ramsay Jones wrote:
Show 28 quoted lines
> 
> 
> On 24/03/18 05:37, 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@saville.com>
>> ---
>>  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);
> 
> 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. Well, except that you may have to add a 'fallback' definition of PRIu64 to one of the 'compat/mingw.h', 'compat/msvc.h' or 'git-compat-util.h' header files. (see e.g. PRId64 at compat/mingw.h:429).

[About a decade ago, I heard microsoft were implementing C99 'real soon now' ;-) ]

ATB, Ramsay Jones

Previous: Ramsay JonesNext: Junio C Hamano
Message 5 of 12 in “json-writer: incorrect format specifier”
  1. 0/1 json-writer: incorrect format specifierWink Saville, Mar 24, 2018
  2. 1/1 json-writer: incorrect format specifierWink Saville, Mar 24, 2018
  3. Jeff HostetlerMar 24, 2018
  4. Ramsay JonesMar 24, 2018
  5. Ramsay JonesMar 24, 2018
  6. Junio C HamanoMar 26, 2018
  7. Jeff HostetlerMar 26, 2018
  8. Ramsay JonesMar 27, 2018
  9. Jeff HostetlerMar 27, 2018
  10. 0/1 json-writer: add cast to uintmax_tWink Saville, Mar 24, 2018
  11. 1/1 json-writer: add cast to uintmax_tWink Saville, Mar 24, 2018
  12. Jeff HostetlerMar 26, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.