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): gtk+-1.2.10-11.i386.rpm How Reproducible: every time Steps to Reproduce: 1. Compile attached source code Actual Results: Labels with iso-8859-2 characters are not shown at all Expected Results: Labels shown correctly. Additional Information: 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 or 2. use "low, inefficient, unreliable emulation done through Xlib." Regards, Olaf
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.