On Fri, 19 Dec 2025, Pali Rohár wrote:

Ok. Thank you. What about following text? To make it clear if the nul
char itself is ignored or printed.

Because this (narrow printf):
 printf("%d%hZ%d", 1, compose_ANSI_STRING("A\0B"), 2);
returns <success> and prints: "1A\0B2"

* There are some other changes between versions regarding nul chars.
* - msvcrt since Vista, msvcr80+ and UCRT do not accept nul chars in 
ANSI_STRING for wprintf.
*   If encountering a nul char, it stops processing the format string and 
returns -1.
* - crtdll, msvcrt10 and msvcrt before Vista accept nul char in ANSI_STRING for 
wprintf,
*   but the first nul char and everything after it in ANSI_STRING content is 
discarded.
* - ANSI_STRING for printf, and UNICODE_STRING for both printf and wprintf 
works fine
*   in all versions, every nul byte in the string is processed and printed.

"every nul byte and all following chars in the ANSI_STRING/UNICODE_STRING" maybe? Because now it sounds like it only includes the nul bytes, but doesn't say about the rest.

Other than that, this sounds good and clear now!

// Martin

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to