|
|
Message-Id: <C6S7DCPAVDGM.3MUY7E2KQQCMO@mussels>
Date: Sun, 01 Nov 2020 17:17:49 -0300
From: Érico Nogueira <ericonr@...root.org>
To: <musl@...ts.openwall.com>, <musl@...ts.openwall.com>
Subject: Re: swprintf possible bug
On Sun Nov 1, 2020 at 6:06 PM -03, Alexander Vitiuk wrote:
> Hello!
> It seems, wsprintf() / wprintf() are not working in musl as expected, if
> uses with cyrillic:
>
> C testcase:
> #include <wchar.h>
> int main() {
> wprintf(L"[hello]\n");
> wprintf(L"[Привет]\n");
> return 0;
> }
> on x86_64-linux-gnu prints:
> [hello]
> [Privet]
> and on x86_64-linux-musl prints: [hello]
> [
>
> There are other cases described:
> https://github.com/emscripten-core/emscripten/issues/11947
For what it's worth, if this is a bug, it would seem to be in how musl
decides when to print characters (not the formatting functions
themselves), since the below program doesn't print anything:
#include <wchar.h>
#include <stdio.h>
int main() {
fputws(L"[Привет Василий]\n", stdout);
// I don't know if I'm accessing a wchar_t appropriately here
fputwc(L"[Привет Василий]\n"[3], stdout);
return 0;
}
I tried tracing the execution from fputws, and not printing anything
seems to be caused by the return value of wcsrtombs().
Hope this helps,
Érico
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.