/* | |
* UCS-4BE = UCS-4 big endian | |
*/ | |
static int | |
ucs4be_mbtowc (conv_t conv, wchar_t *pwc, const unsigned char *s, int n) | |
{ | |
if (n >= 4) { | |
*pwc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]; | |
return 4; | |
} | |
return RET_TOOFEW(0); | |
} | |
static int | |
ucs4be_wctomb (conv_t conv, unsigned char *r, wchar_t wc, int n) | |
{ | |
if (n >= 4) { | |
r[0] = (unsigned char) (wc >> 24); | |
r[1] = (unsigned char) (wc >> 16); | |
r[2] = (unsigned char) (wc >> 8); | |
r[3] = (unsigned char) wc; | |
return 4; | |
} else | |
return RET_TOOSMALL; | |
} |