Comment 5 for bug 1665140

Revision history for this message
Egmont Koblinger (egmont-gmail) wrote :

You've reported this bug against Ubuntu 16.04, whereas Unicode 9.0 was released in June 2016. The expected behavior in that distro is hence Unicode 8.0's.

gnome-terminal takes the character width from glib (package: libglib2.0-0), which has surprisingly upgraded to Unicode 9.0 in a micro version, namely 2.50.1. Again surprisingly, Yakkety has released this version as an update (2.50.2), not in the original yakkety package (2.50.0), which again arguably shouldn't have happened.

Most terminal emulators and apps take the character width from glibc (package: libc6), which has not updated to Unicode 9.0 yet (as of the just released version 2.25). At least Fedora, however, has already patched it forward: https://fedoraproject.org/wiki/Changes/Unicode_9.0. Maybe Ubuntu too, or is planning to, I don't know.

Vim, as far as I know, has its own separate built-in database.

gnome-terminal being different from most of the apps is already causing quite a bit of a headache, see e.g.:

- https://bugzilla.gnome.org/show_bug.cgi?id=772812 (and follow the links from there as well to see some of the problems it causes),

- https://bugzilla.gnome.org/show_bug.cgi?id=772890 (a recommendation for gnome-terminal to use glibc's database instead - no work has been done yet).

vim using its own database adds yet another twist to the story. I don't know what version it ships.

The bug you reported is indeed a valid and (presumably especially in yakkety (with updates) and zesty) a quite serious one. Strictly speaking, though, I don't think it's a gnome-terminal bug. I think it's a much higher level issue that should be brought up in some core developer mailing list.

I believe it's the distro's responsibility to ship glib, glibc and vim so that all use the same Unicode version.

(Or even better, but it takes more time and a heavy refactoring: There should be a single core Unicode library that glibc, glib, vim etc. all depend on. Unfortunately I find it unlikely to get implemented.)