libutf: utf32be_to_utf8: fix constants

This commit is contained in:
dtb 2024-05-29 20:16:59 -06:00
parent 55fdca9123
commit dc4091b43f
Signed by: trinity
GPG Key ID: 6CDF230C17CC3349

View File

@ -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;
}