Lines Matching refs:uc
51 unicode_to_utf8(char *p, uint32_t uc)
56 if (uc <= 0x7f) {
57 *p++ = (char)uc;
58 } else if (uc <= 0x7ff) {
59 *p++ = 0xc0 | ((uc >> 6) & 0x1f);
60 *p++ = 0x80 | (uc & 0x3f);
61 } else if (uc <= 0xffff) {
62 *p++ = 0xe0 | ((uc >> 12) & 0x0f);
63 *p++ = 0x80 | ((uc >> 6) & 0x3f);
64 *p++ = 0x80 | (uc & 0x3f);
66 *p++ = 0xf0 | ((uc >> 18) & 0x07);
67 *p++ = 0x80 | ((uc >> 12) & 0x3f);
68 *p++ = 0x80 | ((uc >> 6) & 0x3f);
69 *p++ = 0x80 | (uc & 0x3f);
84 unicode_to_utf16be(char *p, uint32_t uc)
88 if (uc > 0xffff) {
91 uc -= 0x10000;
92 archive_be16enc(utf16, ((uc >> 10) & 0x3ff) + 0xD800);
93 archive_be16enc(utf16+2, (uc & 0x3ff) + 0xDC00);
96 archive_be16enc(utf16, uc);
111 unicode_to_utf16le(char *p, uint32_t uc)
115 if (uc > 0xffff) {
118 uc -= 0x10000;
119 archive_le16enc(utf16, ((uc >> 10) & 0x3ff) + 0xD800);
120 archive_le16enc(utf16+2, (uc & 0x3ff) + 0xDC00);
123 archive_le16enc(utf16, uc);
135 unicode_to_wc(wchar_t *wp, uint32_t uc)
138 *wp = (wchar_t)uc;
141 if (uc > 0xffff) {
144 uc -= 0x10000;
145 *wp++ = (wchar_t)(((uc >> 10) & 0x3ff) + 0xD800);
146 *wp = (wchar_t)((uc & 0x3ff) + 0xDC00);
149 *wp = (wchar_t)uc;
163 unsigned uc = 0;
173 uc = (uc << 4) + (*p - '0');
175 uc = (uc << 4) + (*p - 'A' + 0x0a);
184 switch (uc) {
216 op16be += unicode_to_utf16be(op16be, uc);
217 op16le += unicode_to_utf16le(op16le, uc);
218 owp += unicode_to_wc(owp, uc);
219 op += unicode_to_utf8(op, uc);
229 uc = 0;