mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-14 18:27:54 +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) |
||
---|---|---|
.. | ||
BUILD.mk | ||
crypt_test.c | ||
devrand_test.c | ||
dirstream_test.c | ||
dtoa_test.c | ||
dumphexc_test.c | ||
ecvt_test.c | ||
fds_torture_test.c | ||
fgetln_test.c | ||
fgets_test.c | ||
fgetwc_test.c | ||
fmemopen_test.c | ||
fmt_test.c | ||
fprintf_test.c | ||
fputc_test.c | ||
fputs_test.c | ||
fread_test.c | ||
freopen_test.c | ||
fscanf_test.c | ||
fseeko_test.c | ||
ftell_test.c | ||
fwrite_test.c | ||
getdelim_test.c | ||
getentropy_test.c | ||
gz_test.c | ||
iconv_test.c | ||
joinstrlist_test.c | ||
lemur64_test.c | ||
memory_test.c | ||
mt19937_test.c | ||
palandprintf_test.c | ||
popen_test.c | ||
rand_test.c | ||
rngset_test.c | ||
snprintf_enomem_test.c | ||
snprintf_test.c | ||
sprintf_s.inc | ||
sprintf_s_test.c | ||
sscanf_test.c | ||
tmpfile_test.c | ||
ungetc_test.c | ||
vappendf_test.c | ||
zipdir_test.c |