Closed ZyX-I closed 9 years ago
The limitation is imposed by Xorg itself, it can't use more than 16 bits for codepoint, so this issue is a no-go (at least until I move away from server side rendering) But you're right, that comment is incorrect, will adjust that soon :)
@LemonBoy I would suggest to show U+FFFD REPLACEMENT CHARACTER in place of Unicode-7 characters then, not treat this as latin1.
This should do the trick, sadly many fonts don't even have the U+FFFD character, but that's another problem
I guess they are relying on fallbacks. I.e. there is no character in font, but either
Cannot say how XCB copes with this problem.
You should take into account that XCB doesn't even support unicode, but ucs-2
I have not actually tried
bar
, but I see in your code that it usesuint16_t
for representing a character. This obviously means that unicode code points above U+FFFF cannot be represented. If I am not mistaking they will fall into an else clause which is talking about some nonsense (“Handle ascii > 0x80”: there is no such a thing because ASCII only defines characters up to 0x7F, characters above are part of latin1 encoding if you want to have character value == unicode codepoint).