Hi,
The following program:
===================================
#include <stdio.h>
#include <wchar.h>
int main()
{
wchar_t buf[ 32 ];
swprintf( buf, sizeof( buf ) / sizeof( *buf ), L"ab\u00E1c" );
for ( wchar_t * p = buf; *p; ++p )
printf( "%u\n", ( unsigned ) *p );
return 0;
}
===================================
With musl 1.2.2 produces the following output:
97
98
The expected output is:
97
98
225
99
With musl, only the first two characters ('a' and 'b') are processed, and the string ends on a Unicode character (U+00E1, which is an 'a' with acute accent), instead of outputting it and the last character, 'c'.
Please CC me when replying. Thanks!