X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmultibyte%2Fwcrtomb.c;h=ddc37a57b5c4b54dab0887b739c48cde7fe365c5;hb=fe7582f4f92152ab60e9523bf146fe28ceae51f6;hp=250649f55b4fb707b4216b96f9d9e2dba96968a7;hpb=400c5e5c8307a2ebe44ef1f203f5a15669f20347;p=musl diff --git a/src/multibyte/wcrtomb.c b/src/multibyte/wcrtomb.c index 250649f5..ddc37a57 100644 --- a/src/multibyte/wcrtomb.c +++ b/src/multibyte/wcrtomb.c @@ -5,10 +5,8 @@ */ #include -#include #include #include - #include "internal.h" size_t wcrtomb(char *restrict s, wchar_t wc, mbstate_t *restrict st) @@ -17,6 +15,13 @@ size_t wcrtomb(char *restrict s, wchar_t wc, mbstate_t *restrict st) if ((unsigned)wc < 0x80) { *s = wc; return 1; + } else if (MB_CUR_MAX == 1) { + if (!IS_CODEUNIT(wc)) { + errno = EILSEQ; + return -1; + } + *s = wc; + return 1; } else if ((unsigned)wc < 0x800) { *s++ = 0xc0 | (wc>>6); *s = 0x80 | (wc&0x3f);