#pragma once #include #include #include #define Bit(i) (7-(i)) /* N 0's preceded by i 1's e.g. T(Bit(2)) is 1100 0000 */ #define Tbyte(i) (((1 << (Bit(i)+1))-1) ^ 0xFF) /* 0000 0000 0000 0111 1111 1111 */ #define RuneX(i) ((1 << (Bit(i) + ((i)-1)*Bitx))-1) enum { Bitx = Bit(1), Tx = Tbyte(1), Rune1 = (1 << (Bit(0)+0*Bitx)) - 1, Maskx = (1 << Bitx) - 1, /* 0011 1111 */ Testx = Maskx ^ 0xff, /* 1100 0000 */ SurrogateMin = 0xD800, SurrogateMax = 0xDFFF, Bad = RuneErr, };