Call setlocale (LC_ALL, ""). (#60606)
Wed Oct 10 12:48:38 2001 Owen Taylor <otaylor@redhat.com> * gtk/gtkmain.c (gtk_init_check): Call setlocale (LC_ALL, ""). (#60606) * gtk/gtkmain.c (gtk_disable_setlocale): Add function to disable calling setlocale (LC_ALL, ""). * gtk/gtkmain.c (gtk_set_locale): Indicate in the docs that this function is not typically useful. * gdk/x11/{gdkim-x11.c,gdkmain-x11.c,gdkprivate-x11.h}: Automatically initialize GDK for the current locale on gdk_init(). Don't reset locale to C when XSupportsLocale() fails. * gdk/linux-fb/gdkim-fb.c (gdk_set_locale): Remove useless checks for UTF-8 locale breakage that mattered only for X. * examples/calendar/calendar.c tests/{testgtk.c,testtext.c,testcalendar.c}: Remove calls to gtk_set_locale(). * gtk/gtkiconfactory.c gtk/gtkitemfactory.c: gdk_pixbuf_new_from_stream => gdk_pixbuf_new_from_inline.
This commit is contained in:
		| @ -46,47 +46,35 @@ | ||||
|  */ | ||||
| static gboolean gdk_use_mb; | ||||
|  | ||||
| /* | ||||
|  *-------------------------------------------------------------- | ||||
|  * gdk_set_locale | ||||
|  * | ||||
|  * Arguments: | ||||
|  * | ||||
|  * Results: | ||||
|  * | ||||
|  * Side effects: | ||||
|  * | ||||
|  *-------------------------------------------------------------- | ||||
|  */ | ||||
|  | ||||
| gchar* | ||||
| gdk_set_locale (void) | ||||
| void | ||||
| _gdk_x11_initialize_locale (void) | ||||
| { | ||||
|   wchar_t result; | ||||
|   gchar *current_locale; | ||||
|   static char *last_locale = NULL; | ||||
|  | ||||
|   gdk_use_mb = FALSE; | ||||
|  | ||||
|   if (!setlocale (LC_ALL,"")) | ||||
|     g_warning ("locale not supported by C library"); | ||||
|    | ||||
|   current_locale = setlocale (LC_ALL, NULL); | ||||
|  | ||||
|   if (last_locale && strcmp (last_locale, current_locale) == 0) | ||||
|     return; | ||||
|  | ||||
|   g_free (last_locale); | ||||
|   last_locale = g_strdup (current_locale); | ||||
|  | ||||
|   if (!XSupportsLocale ()) | ||||
|     { | ||||
|       g_warning ("locale not supported by Xlib, locale set to C"); | ||||
|       setlocale (LC_ALL, "C"); | ||||
|     } | ||||
|     g_warning ("locale not supported by Xlib"); | ||||
|    | ||||
|   if (!XSetLocaleModifiers ("")) | ||||
|     g_warning ("can not set locale modifiers"); | ||||
|  | ||||
|   current_locale = setlocale (LC_ALL, NULL); | ||||
|  | ||||
|   if ((strcmp (current_locale, "C")) && (strcmp (current_locale, "POSIX"))) | ||||
|     { | ||||
|       gdk_use_mb = TRUE; | ||||
|  | ||||
| #ifndef X_LOCALE | ||||
|       /* Detect GNU libc, where mb == UTF8. Not useful unless it's | ||||
|       /* Detect ancient GNU libc, where mb == UTF8. Not useful unless it's | ||||
|        * really a UTF8 locale. The below still probably will | ||||
|        * screw up on Greek, Cyrillic, etc, encoded as UTF8. | ||||
|        */ | ||||
| @ -109,6 +97,17 @@ gdk_set_locale (void) | ||||
|   return current_locale; | ||||
| } | ||||
|  | ||||
| gchar* | ||||
| gdk_set_locale (void) | ||||
| { | ||||
|   if (!setlocale (LC_ALL,"")) | ||||
|     g_warning ("locale not supported by C library"); | ||||
|  | ||||
|   _gdk_x11_initialize_locale (); | ||||
|    | ||||
|   return setlocale (LC_ALL, NULL); | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * gdk_wcstombs  | ||||
|  * | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Owen Taylor
					Owen Taylor