krb5_ucs2
#define KRB5_MAX_UTF8_LEN (sizeof(krb5_ucs2) * 3/2)
int krb5int_utf8_to_ucs2(const char *p, krb5_ucs2 *out);
size_t krb5int_ucs2_to_utf8(krb5_ucs2 c, char *buf);
krb5int_ucs2s_to_utf8s(const krb5_ucs2 *ucs2s,
krb5int_ucs2cs_to_utf8s(const krb5_ucs2 *ucs2s,
krb5_ucs2 **ucs2s,
krb5_ucs2 **ucs2s,
int krb5int_utf8_to_ucs2(const char *p, krb5_ucs2 *out)
*out = (krb5_ucs2) ch;
size_t krb5int_ucs2_to_utf8(krb5_ucs2 c, char *buf)
ch |= (krb5_ucs2)(utf8str[i] & 0x3f);
krb5_ucs2 **ucs2s,
*ucs2s = (krb5_ucs2 *)malloc((chars + 1) * sizeof(krb5_ucs2));
krb5_ucs2 **ucs2s,
*ucs2s = (krb5_ucs2 *)malloc((chars + 1) * sizeof(krb5_ucs2));
*ucs2les = (unsigned char *)malloc((chars + 1) * sizeof(krb5_ucs2));
len = k5_utf8s_to_ucs2s((krb5_ucs2 *)*ucs2les, utf8s, chars + 1, 1);
*ucs2leslen = chars * sizeof(krb5_ucs2);
*ucs2les = (unsigned char *)malloc((chars + 1) * sizeof(krb5_ucs2));
len = k5_utf8s_to_ucs2s((krb5_ucs2 *)*ucs2les, utf8s, chars + 1, 1);
*ucs2leslen = chars * sizeof(krb5_ucs2);
k5_ucs2s_to_utf8s(char *utf8str, const krb5_ucs2 *ucs2str,
krb5_ucs2 empty = 0, ch;
krb5int_ucs2s_to_utf8s(const krb5_ucs2 *ucs2s,
len = k5_ucs2s_to_utf8s(NULL, (krb5_ucs2 *)ucs2les, 0, -1, 1);
len = k5_ucs2s_to_utf8s(*utf8s, (krb5_ucs2 *)ucs2les, (size_t)len + 1, -1, 1);
krb5int_ucs2cs_to_utf8s(const krb5_ucs2 *ucs2s,
len = k5_ucs2s_to_utf8s(NULL, (krb5_ucs2 *)ucs2s, 0,
len = k5_ucs2s_to_utf8s(*utf8s, (krb5_ucs2 *)ucs2s,
len = k5_ucs2s_to_utf8s(NULL, (krb5_ucs2 *)ucs2les, 0,
len = k5_ucs2s_to_utf8s(*utf8s, (krb5_ucs2 *)ucs2les,
k5_utf8s_to_ucs2s(krb5_ucs2 *ucs2str,
krb5_ucs2 ch;
ch = (krb5_ucs2)(utf8str[0] & mask[utflen]);