… | … | ||
---|---|---|---|
38 | while (len--) | 38 | while (len--) |
39 | { | 39 | { |
40 | ssize_t l = wcrtomb (dst, *str++, mbs); | 40 | ssize_t l = wcrtomb (dst, *str++, mbs); |
41 | 41 | ||
42 | if (l < 0) | 42 | if (l < 0) |
43 | { | ||
43 | *dst++ = '?'; | 44 | *dst++ = '?'; |
45 | wcrtomb (0, 0, mbs); // reset undefined state | ||
46 | } | ||
44 | else | 47 | else |
45 | dst += l; | 48 | dst += l; |
46 | } | 49 | } |
47 | 50 | ||
48 | *dst++ = 0; | 51 | *dst++ = 0; |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |