core :: Char :: u8char_tos
private fun u8char_tos(r: CString, len: Int) `{
r[len] = '\0';
switch(len){
case 1:
r[0] = self;
break;
case 2:
r[0] = 0xC0 | ((self & 0x7C0) >> 6);
r[1] = 0x80 | (self & 0x3F);
break;
case 3:
r[0] = 0xE0 | ((self & 0xF000) >> 12);
r[1] = 0x80 | ((self & 0xFC0) >> 6);
r[2] = 0x80 | (self & 0x3F);
break;
case 4:
r[0] = 0xF0 | ((self & 0x1C0000) >> 18);
r[1] = 0x80 | ((self & 0x3F000) >> 12);
r[2] = 0x80 | ((self & 0xFC0) >> 6);
r[3] = 0x80 | (self & 0x3F);
break;
}
`}
lib/core/text/abstract_text.nit:2243,2--2265,3