Incorrect wcwidth() result for characters in the enclosed alphanumerics block
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
glibc (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Glibc's wcwidth() returns 1 for characters in the enclosed alphanumerics block (U+2460 to U+24FF). However, monospace fonts seem to assume these characters are wide characters. The result is programs which rely on the width data being inaccurate (eg, urxvt) cannot render characters such as ⑨.
To demonstrate this problem, simply open up urxvt and try to paste in ⑨. You will see it rendered as a broken character block. You can work around this by adding another font with a small font size, or you can use the attached LD_PRELOAD library to see the character rendered properly once wcwidth() returns the right value of 2.
I'd be happy to roll a patch to fix this if someone can point me in the right direction - I've been poking around the glibc source and can't seem to find the unicode attribute tables...