提交 628cf979 编写于 作者: R Rich Felker

fix iconv output of surrogate pairs in ucs2

in the unified code for handling utf-16 and ucs2 output, the check for
ucs2 wrongly looked at the source charset rather than the destination
charset.
上级 95c6044e
...@@ -630,7 +630,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri ...@@ -630,7 +630,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri
case UTF_16: case UTF_16:
case UTF_16BE: case UTF_16BE:
case UTF_16LE: case UTF_16LE:
if (c < 0x10000 || type-UCS2BE < 2U) { if (c < 0x10000 || totype-UCS2BE < 2U) {
if (c >= 0x10000) c = 0xFFFD; if (c >= 0x10000) c = 0xFFFD;
if (*outb < 2) goto toobig; if (*outb < 2) goto toobig;
put_16((void *)*out, c, totype); put_16((void *)*out, c, totype);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册