diff --git a/src/libutf.c b/src/libutf.c index cc67a27..ab2bbb6 100644 --- a/src/libutf.c +++ b/src/libutf.c @@ -98,17 +98,17 @@ utf32be_to_utf8(rune_t c, size_t m){ | 0x00800000 /* UTF-8 b24-23 */ | ((c & 0x03F000) << 4); /* UTF-32 b18-13 -> UTF-8 b24-17 */ if(m == 3) - case 3: r = (0xE << 4) /* UTF-8 b24-21 */ + case 3: r = 0x00E00000 /* 0xE == 0b1110 */ /* UTF-8 b24-21 */ | ((c & 0x00F000) << 4); /* UTF-32 b16-13 -> UTF-8 b20-17 */ r |= 0x00008000 /* UTF-8 b16-15 */ | ((c & 0x000FC0) << 2); /* UTF-32 b12- 7 -> UTF-8 b14- 9 */ if(m == 2) - case 2: r = (0xE << 3) /* UTF-8 b16-14 */ + case 2: r = 0x0000C000 /* 0xC == 0b1100 */ /* UTF-8 b16-14 */ | ((c & 0x007C00) << 2); /* UTF-32 b11- 7 -> UTF-8 b13- 9 */ r |= 0x00000080 /* UTF-8 b 8- 7 */ | (c & 0x00003F); /* UTF-8 b 6- 1 */ if(m == 1) - case 1: r = c & 0x00007F; /* UTF-8 b 7- 1 */ + case 1: r = c & 0x00007F; /* 0x7 == 0b0111 */ /* UTF-8 b 7- 1 */ } return r; }