utils/HtmlOutputDev.cc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
New commits: commit 466340d257ff0fe7e3a88a4e013e3feec3f7b70a Author: Albert Astals Cid <[email protected]> Date: Thu Feb 23 23:47:15 2012 +0100 Combine UTF16 surrogate pairs Bug 46521 diff --git a/utils/HtmlOutputDev.cc b/utils/HtmlOutputDev.cc index 9e113eb..17541a2 100644 --- a/utils/HtmlOutputDev.cc +++ b/utils/HtmlOutputDev.cc @@ -398,7 +398,19 @@ void HtmlPage::addChar(GfxState *state, double x, double y, h1 /= uLen; } for (i = 0; i < uLen; ++i) { - curStr->addChar(state, x1 + i*w1, y1 + i*h1, w1, h1, u[i]); + Unicode u1 = u[i]; + if (u1 >= 0xd800 && u1 <= 0xdbff && i < uLen) { + // surrogate pair + const Unicode u2 = u[i + 1]; + if (u2 >= 0xdc00 && u2 <= 0xdfff) { + u1 = 0x10000 + ((u1 - 0xd800) << 10) + (u2 - 0xdc00); + + curStr->addChar(state, x1 + i*w1, y1 + i*h1, w1, h1, u1); + } + ++i; + } else { + curStr->addChar(state, x1 + i*w1, y1 + i*h1, w1, h1, u1); + } } } _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
