[EMAIL PROTECTED] wrote:

> ...
> Else if U+0800 <= U <= U+D7FF, or if U+E000 <= U <= U+FFFF, then
>         C1 = U \ x1000 + xE0
>         C2 = (U mod x1000) \ x40 + x80
>         C3 = U mod x40 + x80
> Else if U >= U+FFFF, then


This looks like it includes U+FFFF in two branches.
Well, you catch U+FFFF in the previous condition, but to make it cleaner you should 
change this to either > U+FFFF or >= U+10000.


>         C1 = U \ x40000 + xF0
>         C2 = (U mod x40000) \ x1000 + x80
>         C3 = (U mod 100016) \ x40 + x80


         C3 = (U mod 0x1000) \ x40 + x80
                     ^^    ^^            (you knew that)

>         C4 = U mod x40 + x80
> Else 
>         Error
> End if

markus


Reply via email to