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:
Owen Taylor
2001-10-10 16:56:54 +00:00
committed by Owen Taylor
parent 63bd2b3030
commit dfb3a1b0f8
8 changed files with 45 additions and 18 deletions

View File

@ -363,6 +363,28 @@ load_modules (const char *module_str)
return gtk_modules;
}
static gboolean do_setlocale = TRUE;
/**
* gtk_disable_setlocale:
*
* Prevents gtk_init() and gtk_init_check() from automatically
* calling setlocale (LC_ALL, ""). You would want to use this
* function if you wanted to set the locale for your program
* to something other than the user's locale, or if you wanted
* to set different values for different locale categories.
*
* Most programs should not need to call this function.
**/
static void
gtk_disable_setlocale (void)
{
if (gtk_initialized)
g_warning ("gtk_disable_setlocale() must be called before gtk_init()");
do_setlocale = FALSE;
}
gboolean
gtk_init_check (int *argc,
char ***argv)
@ -384,6 +406,9 @@ gtk_init_check (int *argc,
g_set_message_handler (gtk_message);
g_set_print_handler (gtk_print);
#endif
if (do_setlocale)
setlocale (LC_ALL, "");
/* Initialize "gdk". We pass along the 'argc' and 'argv'
* parameters as they contain information that GDK uses
@ -656,17 +681,23 @@ gtk_exit (gint errorcode)
/**
* gtk_set_locale:
*
* Initializes internationalization support for GTK+. gtk_init()
* automatically does this, so there is typically no point
* in calling this function.
*
* Initializes internationalization support for GTK+. You
* should call this function before gtk_init() if your application
* supports internationalization.
* If you are calling this function because you changed the locale
* after GTK+ is was initialized, then calling this function
* may help a bit. (Note, however, that changing the locale
* after GTK+ is initialized may produce inconsistent results and
* is not really supported.)
*
* (In gory detail - sets the current locale according to the
* In detail - sets the current locale according to the
* program environment. This is the same as calling the libc function
* setlocale (LC_ALL, "") but also takes care of the locale specific
* setup of the windowing system used by GDK.)
* setup of the windowing system used by GDK.
*
* Return value: a string corresponding to the locale set, as with the C library function setlocale()
* Return value: a string corresponding to the locale set, as with the
* C library function setlocale()
**/
gchar*
gtk_set_locale (void)