Red Hat Bugzilla – Bug 54797
With gtk+-1.2.10-11.i386.rpm package characters from other than iso-8859-1 sets are shown in wrong way
Last modified: 2007-03-26 23:49:16 EDT
Description of Problem:
Labels with iso-8859-2 characters are not shown at all, if we don't
initialise locale in gtk program.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Compile attached source code
Labels with iso-8859-2 characters are not shown at all
Labels shown correctly.
This bug is not observed in other gtk+-1.2.10 (made self, and from other
vendors e.g. ximian)
Also, in previous version of gtk+ shipped by redhat it was shown correctly
(tested for 1.2.8 and below - 1.2.9 - not tested)
Created attachment 34401 [details]
source code explaining bug
It's not a bug. If you haven't initialized localized operation
you can't expect localized operation to work. :-)
If you want to reproduce the behavior from the tarball, you probably
need to compile passing the --with-native-locale flag, which
uses the native libc locale conversion code rather than
slow, inefficient, unreliable emulation done through Xlib.
So the 'native libc conversion code' is more buggy ;)
Even if you initialise locale operation, the problem remains for:
locale set to "POSIX", and "C".
So it is needed to:
1. fix glibc
2. use "low, inefficient, unreliable emulation done through Xlib."
How would you expect your program to know that the high characters
in the POSIX or C locale are iso-8859-2? How does it know that
they aren't iso-8859-1, UTF-8, etc?
style->font only tells GTK+ what to use to display the string; it
still needs to know how to manipulate it before it gets to that
point. And if the locale is C or POSIX, either because gtk_set_locale()
hasn't been called or because that's the user's locale, then the
only thing it can manipulate is ASCII.