|
Message-ID: <4793858.F8r316W7xa@nimes> Date: Mon, 12 Jun 2023 22:53:24 +0200 From: Bruno Haible <bruno@...sp.org> To: Rich Felker <dalias@...c.org> Cc: musl@...ts.openwall.com Subject: Re: swprintf %lc directive does not work for some wide characters Rich Felker wrote: > Per my reading of the specification, this is not a bug but is the > expected behavior. > > In addition, all forms of fwprintf() shall fail if: > > [EILSEQ] > A wide-character code that does not correspond to a valid > character has been detected. From my reading of ISO C, it's a bug. Namely, in ISO C 23 ยง 7.31.2.3 the error conditions are specified as "The swprintf function returns the number of wide characters written in the array, not counting the terminating null wide character, or a negative value if an encoding error occurred or if n or more wide characters were requested to be written." In swprintf, where "the wint_t argument converted to wchar_t" is written and the output is to a wchar_t[], no "encoding error" should be possible. That's obvious. The "encoding errors" occur in %c and %s directives, AFAIU, not in %lc and %ls directives. Bruno
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.