mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-07 15:03:34 +00:00
POSIX specifies the C conversion specifier as being "equivalent to %lc", i.e. printf("%C", arg) is equivalent in behaviour to printf("%lc", arg). This patch implements this conversion specifier, and adds a test for it, alongside another test, which ensures that va_arg uses the correct size, even though we set signbit to 63 in the code (which one might think will result in the wrong size of argument being va_arg-ed, but having signbit set to 63 is in fact what __fmt_stoa expects and is a requirement for it properly formatting the wchar_t argument - this does not result in wrong usage of va_arg because the implementation of the c conversion specifier (which the implementation of the C conversion specifier fallsthrough to) always calls va_arg with an argument type of int, to avoid the very same bug occuring with %lc, as the l length modifier also sets signbit to 63) |
||
---|---|---|
.. | ||
calls | ||
fmt | ||
intrin | ||
log | ||
mem | ||
nexgen32e | ||
proc | ||
runtime | ||
sock | ||
stdio | ||
str | ||
thread | ||
time | ||
tinymath | ||
x | ||
xed | ||
BUILD.mk |