diff options
author | Tor Lillqvist <tml@iki.fi> | 2003-09-20 23:52:16 +0000 |
---|---|---|
committer | Tor Lillqvist <tml@src.gnome.org> | 2003-09-20 23:52:16 +0000 |
commit | 71e847d11c4a94291b8068eeae924a3978cc91c5 (patch) | |
tree | 86bfedba20cc2c25fb4c34f0f83e9f9be6ce91b4 | |
parent | e95ad99afe722788319dd0fcb9f4e7ed9ab6e2e6 (diff) | |
download | gtk+-71e847d11c4a94291b8068eeae924a3978cc91c5.tar.gz |
Don't use zip -r on the etc directory, to avoid including editor backup
2003-09-20 Tor Lillqvist <tml@iki.fi>
* gtk-zip.sh.in: Don't use zip -r on the etc directory, to avoid
including editor backup files. List files we want explicitly.
* gtk/gtkmain.c (_gtk_get_lc_ctype): New function. On Unix, just
calls setlocale (LC_CTYPE, NULL). On Windows, looks for the
LC_ALL, LC_CTYPE and LANG environment variables, than calls
g_win32_getlocale().
(gtk_get_default_language): Code snippet moved to above function,
call it.
* gtk/gtkimmulticontext.c (gtk_im_multicontext_get_slave)
* gtk/gtkrc.c (gtk_rc_context_parse_file): Call
_gtk_get_lc_ctype() instead of setlocale().
-rw-r--r-- | ChangeLog | 17 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 17 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 17 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 17 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 17 | ||||
-rwxr-xr-x | gtk-zip.sh.in | 6 | ||||
-rw-r--r-- | gtk/gtkimmulticontext.c | 7 | ||||
-rw-r--r-- | gtk/gtkmain.c | 104 | ||||
-rw-r--r-- | gtk/gtkmain.h | 2 | ||||
-rw-r--r-- | gtk/gtkrc.c | 10 |
10 files changed, 168 insertions, 46 deletions
@@ -1,3 +1,20 @@ +2003-09-20 Tor Lillqvist <tml@iki.fi> + + * gtk-zip.sh.in: Don't use zip -r on the etc directory, to avoid + including editor backup files. List files we want explicitly. + + * gtk/gtkmain.c (_gtk_get_lc_ctype): New function. On Unix, just + calls setlocale (LC_CTYPE, NULL). On Windows, looks for the + LC_ALL, LC_CTYPE and LANG environment variables, than calls + g_win32_getlocale(). + + (gtk_get_default_language): Code snippet moved to above function, + call it. + + * gtk/gtkimmulticontext.c (gtk_im_multicontext_get_slave) + * gtk/gtkrc.c (gtk_rc_context_parse_file): Call + _gtk_get_lc_ctype() instead of setlocale(). + Fri Sep 19 18:15:31 2003 Soeren Sandmann <sandmann@daimi.au.dk> * gtk/gtkpaned.c, gtk/gtkhpaned.c: implement RTL flipping diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index dff289a954..cf31739478 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,20 @@ +2003-09-20 Tor Lillqvist <tml@iki.fi> + + * gtk-zip.sh.in: Don't use zip -r on the etc directory, to avoid + including editor backup files. List files we want explicitly. + + * gtk/gtkmain.c (_gtk_get_lc_ctype): New function. On Unix, just + calls setlocale (LC_CTYPE, NULL). On Windows, looks for the + LC_ALL, LC_CTYPE and LANG environment variables, than calls + g_win32_getlocale(). + + (gtk_get_default_language): Code snippet moved to above function, + call it. + + * gtk/gtkimmulticontext.c (gtk_im_multicontext_get_slave) + * gtk/gtkrc.c (gtk_rc_context_parse_file): Call + _gtk_get_lc_ctype() instead of setlocale(). + Fri Sep 19 18:15:31 2003 Soeren Sandmann <sandmann@daimi.au.dk> * gtk/gtkpaned.c, gtk/gtkhpaned.c: implement RTL flipping diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index dff289a954..cf31739478 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,20 @@ +2003-09-20 Tor Lillqvist <tml@iki.fi> + + * gtk-zip.sh.in: Don't use zip -r on the etc directory, to avoid + including editor backup files. List files we want explicitly. + + * gtk/gtkmain.c (_gtk_get_lc_ctype): New function. On Unix, just + calls setlocale (LC_CTYPE, NULL). On Windows, looks for the + LC_ALL, LC_CTYPE and LANG environment variables, than calls + g_win32_getlocale(). + + (gtk_get_default_language): Code snippet moved to above function, + call it. + + * gtk/gtkimmulticontext.c (gtk_im_multicontext_get_slave) + * gtk/gtkrc.c (gtk_rc_context_parse_file): Call + _gtk_get_lc_ctype() instead of setlocale(). + Fri Sep 19 18:15:31 2003 Soeren Sandmann <sandmann@daimi.au.dk> * gtk/gtkpaned.c, gtk/gtkhpaned.c: implement RTL flipping diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index dff289a954..cf31739478 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,20 @@ +2003-09-20 Tor Lillqvist <tml@iki.fi> + + * gtk-zip.sh.in: Don't use zip -r on the etc directory, to avoid + including editor backup files. List files we want explicitly. + + * gtk/gtkmain.c (_gtk_get_lc_ctype): New function. On Unix, just + calls setlocale (LC_CTYPE, NULL). On Windows, looks for the + LC_ALL, LC_CTYPE and LANG environment variables, than calls + g_win32_getlocale(). + + (gtk_get_default_language): Code snippet moved to above function, + call it. + + * gtk/gtkimmulticontext.c (gtk_im_multicontext_get_slave) + * gtk/gtkrc.c (gtk_rc_context_parse_file): Call + _gtk_get_lc_ctype() instead of setlocale(). + Fri Sep 19 18:15:31 2003 Soeren Sandmann <sandmann@daimi.au.dk> * gtk/gtkpaned.c, gtk/gtkhpaned.c: implement RTL flipping diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index dff289a954..cf31739478 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,20 @@ +2003-09-20 Tor Lillqvist <tml@iki.fi> + + * gtk-zip.sh.in: Don't use zip -r on the etc directory, to avoid + including editor backup files. List files we want explicitly. + + * gtk/gtkmain.c (_gtk_get_lc_ctype): New function. On Unix, just + calls setlocale (LC_CTYPE, NULL). On Windows, looks for the + LC_ALL, LC_CTYPE and LANG environment variables, than calls + g_win32_getlocale(). + + (gtk_get_default_language): Code snippet moved to above function, + call it. + + * gtk/gtkimmulticontext.c (gtk_im_multicontext_get_slave) + * gtk/gtkrc.c (gtk_rc_context_parse_file): Call + _gtk_get_lc_ctype() instead of setlocale(). + Fri Sep 19 18:15:31 2003 Soeren Sandmann <sandmann@daimi.au.dk> * gtk/gtkpaned.c, gtk/gtkhpaned.c: implement RTL flipping diff --git a/gtk-zip.sh.in b/gtk-zip.sh.in index cee5bac8c2..16ed3cb71e 100755 --- a/gtk-zip.sh.in +++ b/gtk-zip.sh.in @@ -10,9 +10,11 @@ rm $ZIP DLLDIR=lib [ -f bin/libgdk_pixbuf-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll ] && DLLDIR=bin -zip -r $ZIP -@ <<EOF +zip $ZIP -@ <<EOF COPYING.LIB-2 -etc/gtk-2.0 +etc/gtk-2.0/gdk-pixbuf.loaders +etc/gtk-2.0/gtkrc +etc/gtk-2.0/gtk.immodues $DLLDIR/libgdk_pixbuf-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll $DLLDIR/libgdk-win32-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll $DLLDIR/libgtk-win32-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll diff --git a/gtk/gtkimmulticontext.c b/gtk/gtkimmulticontext.c index 7563682015..6a2e44f301 100644 --- a/gtk/gtkimmulticontext.c +++ b/gtk/gtkimmulticontext.c @@ -24,6 +24,7 @@ #include "gtkimmulticontext.h" #include "gtkimmodule.h" +#include "gtkmain.h" #include "gtkradiomenuitem.h" #include "gtkintl.h" #include "gtkprivate.h" @@ -254,11 +255,9 @@ gtk_im_multicontext_get_slave (GtkIMMulticontext *multicontext) if (!global_context_id) { - const char *locale; - - locale = setlocale (LC_CTYPE, NULL); - + gchar *locale = _gtk_get_lc_ctype (); global_context_id = _gtk_im_module_get_default_context_id (locale); + g_free (locale); } slave = _gtk_im_module_create (global_context_id); diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 02e2361405..78dc4d1c02 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -989,8 +989,13 @@ gtk_exit (gint errorcode) * <literal>setlocale (LC_ALL, "")</literal> but also takes care of the * locale specific setup of the windowing system used by GDK. * - * Return value: a string corresponding to the locale set, as with the - * C library function <function>setlocale()</function>. + * Return: a string corresponding to the locale set, typically in the + * form lang_COUNTRY, where lang is an ISO-639 language code, and + * COUNTRY is an ISO-3166 country code. On Unix, this form matches the + * result of the <function>setlocale()</function>; it is also used on + * other machines, such as Windows, where the C library returns a + * different result. The string is owned by GTK+ and should not be + * modified or freed. **/ gchar * gtk_set_locale (void) @@ -999,55 +1004,86 @@ gtk_set_locale (void) } /** - * gtk_get_default_language: + * _gtk_get_lc_ctype: * - * Returns the #PangoLanguage for the default language currently in - * effect. (Note that this can change over the life of an - * application.) The default language is derived from the current - * locale. It determines, for example, whether GTK+ uses the - * right-to-left or left-to-right text direction. + * Return the Unix-style locale string for the language currently in + * effect. On Unix systems, this is the return value from + * <literal>setlocale(LC_CTYPE, NULL)</literal>, and the user can + * affect this through the environment variables LC_ALL, LC_CTYPE or + * LANG (checked in that order). The locale strings typically is in + * the form lang_COUNTRY, where lang is an ISO-639 language code, and + * COUNTRY is an ISO-3166 country code. For instance, sv_FI for + * Swedish as written in Finland or pt_BR for Portuguese as written in + * Brazil. * - * Return value: the default language as a #PangoLanguage, must not be - * freed - **/ -PangoLanguage * -gtk_get_default_language (void) + * On Windows, the C library doesn't use any such environment + * variables, and setting them won't affect the behaviour of functions + * like <function>ctime()</function>. The user sets the locale through + * the Regional Options in the Control Panel. The C library (in the + * <function>setlocale()</function> function) does not use country and + * language codes, but country and language names spelled out in + * English. However, this function does check the above environment + * variables, and does return a Unix-style locale string based on + * either said environment variables or the thread's current locale. + * + * Return value: a dynamically allocated string, free with g_free(). + */ + +gchar * +_gtk_get_lc_ctype (void) { - gchar *lang; - PangoLanguage *result; gchar *p; - + #ifdef G_OS_WIN32 /* Somebody might try to set the locale for this process using the * LANG or LC_ environment variables. The Microsoft C library * doesn't know anything about them. You set the locale in the * Control Panel. Setting these env vars won't have any affect on - * locale-dependent C library functions like ctime. But just for - * kicks, do obey LC_ALL, LANG and LC_CTYPE in GTK. (This also makes + * locale-dependent C library functions like ctime(). But just for + * kicks, do obey LC_ALL, LC_CTYPE and LANG in GTK. (This also makes * it easier to test GTK and Pango in various default languages, you * don't have to clickety-click in the Control Panel, you can simply * start the program with LC_ALL=something on the command line.) */ p = getenv ("LC_ALL"); if (p != NULL) - lang = g_strdup (p); - else - { - p = getenv ("LANG"); - if (p != NULL) - lang = g_strdup (p); - else - { - p = getenv ("LC_CTYPE"); - if (p != NULL) - lang = g_strdup (p); - else - lang = g_win32_getlocale (); - } - } + return g_strdup (p); + + p = getenv ("LC_CTYPE"); + if (p != NULL) + return g_strdup (p); + + p = getenv ("LANG"); + if (p != NULL) + return g_strdup (p); + + return g_win32_getlocale (); #else - lang = g_strdup (setlocale (LC_CTYPE, NULL)); + return g_strdup (setlocale (LC_CTYPE, NULL)); #endif +} + +/** + * gtk_get_default_language: + * + * Returns the #PangoLanguage for the default language currently in + * effect. (Note that this can change over the life of an + * application.) The default language is derived from the current + * locale. It determines, for example, whether GTK+ uses the + * right-to-left or left-to-right text direction. See + * _gtk_get_lc_ctype for notes on behaviour on Windows. + * + * Return value: the default language as a #PangoLanguage, must not be + * freed + **/ +PangoLanguage * +gtk_get_default_language (void) +{ + gchar *lang; + PangoLanguage *result; + gchar *p; + + lang = _gtk_get_lc_ctype (); p = strchr (lang, '.'); if (p) *p = '\0'; diff --git a/gtk/gtkmain.h b/gtk/gtkmain.h index 45527b7203..a159aff0a3 100644 --- a/gtk/gtkmain.h +++ b/gtk/gtkmain.h @@ -215,6 +215,8 @@ gchar * _gtk_find_module (const gchar *name, const gchar *type); gchar **_gtk_get_module_path (const gchar *type); +gchar *_gtk_get_lc_ctype (void); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/gtk/gtkrc.c b/gtk/gtkrc.c index ff6864e949..1c48897344 100644 --- a/gtk/gtkrc.c +++ b/gtk/gtkrc.c @@ -840,15 +840,11 @@ gtk_rc_context_parse_file (GtkRcContext *context, gchar *locale_suffixes[2]; gint n_locale_suffixes = 0; gchar *p; - const gchar *locale; + gchar *locale; gint length, j; gboolean found = FALSE; -#ifdef G_OS_WIN32 - locale = g_win32_getlocale (); -#else - locale = setlocale (LC_CTYPE, NULL); -#endif + locale = _gtk_get_lc_ctype (); if (strcmp (locale, "C") && strcmp (locale, "POSIX")) { @@ -873,6 +869,8 @@ gtk_rc_context_parse_file (GtkRcContext *context, locale_suffixes[n_locale_suffixes++] = g_strndup (locale, length); } } + + g_free (locale); gtk_rc_context_parse_one_file (context, filename, priority, reload); for (j = 0; j < n_locale_suffixes; j++) |