X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmultibyte%2Fmbrtowc.c;h=db803661411519744cb195a802ef52093d0ce4a9;hb=4191d2447673e6b03722198871af0daf9390cb51;hp=cc497810298ca37b5c3581ebcc54693abaa72890;hpb=400c5e5c8307a2ebe44ef1f203f5a15669f20347;p=musl diff --git a/src/multibyte/mbrtowc.c b/src/multibyte/mbrtowc.c index cc497810..db803661 100644 --- a/src/multibyte/mbrtowc.c +++ b/src/multibyte/mbrtowc.c @@ -22,9 +22,8 @@ size_t mbrtowc(wchar_t *restrict wc, const char *restrict src, size_t n, mbstate c = *(unsigned *)st; if (!s) { - s = (void *)""; - wc = (void *)&wc; - n = 1; + if (c) goto ilseq; + return 0; } else if (!wc) wc = (void *)&wc; if (!n) return -2; @@ -52,7 +51,7 @@ loop: *(unsigned *)st = c; return -2; ilseq: - *(unsigned *)st = FAILSTATE; + *(unsigned *)st = 0; errno = EILSEQ; return -1; }