--- gtk+-1.2.10/gtk/gtkrc.iso88593.encoding Fri Jul 26 16:47:04 2002 +++ gtk+-1.2.10/gtk/gtkrc.iso88593 Fri Jul 26 16:47:04 2002 @@ -0,0 +1,8 @@ +style "gtk-default-iso-8859-3" { + fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-3,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-3,*-r-*" +} +class "GtkWidget" style "gtk-default-iso-8859-3" + --- gtk+-1.2.10/gtk/Makefile.am.encoding Fri Feb 2 12:09:02 2001 +++ gtk+-1.2.10/gtk/Makefile.am Fri Jul 26 16:47:04 2002 @@ -374,10 +374,12 @@ gtkconfdir = $(sysconfdir)/gtk -gtkconf_DATA = gtkrc.az gtkrc.el gtkrc.eo gtkrc.he gtkrc.hy gtkrc.ja \ - gtkrc.ko gtkrc.ru gtkrc.tr gtkrc.th gtkrc.uk gtkrc.iso-8859-2 \ - gtkrc.iso-8859-5 gtkrc.iso-8859-13 gtkrc.iso-8859-14 \ - gtkrc.iso-8859-15 gtkrc.zh_CN gtkrc.zh_TW.big5 \ +gtkconf_DATA = gtkrc.az gtkrc.he gtkrc.hy gtkrc.ja \ + gtkrc.ko gtkrc.ru gtkrc.th gtkrc.uk \ + gtkrc.utf8 gtkrc.iso88592 \ + gtkrc.iso88593 gtkrc.iso88595 gtkrc.iso88597 \ + gtkrc.iso88599 gtkrc.iso885913 gtkrc.iso885914 \ + gtkrc.iso885915 gtkrc.zh_CN gtkrc.zh_TW.big5 \ gtkrc.ka_GE.georgianacademy gtkrc.ka_GE.georgianps \ gtkrc.vi_VN.tcvn gtkrc.vi_VN.viscii gtkrc.cp1251 gtkrc.cp1255 @@ -390,11 +392,11 @@ cd $(DESTDIR)$(gtkconfdir) && \ for i in cs hr hu pl ro sk sl sq sr ; do \ rm -f gtkrc.$$i ; \ - ln -s gtkrc.iso-8859-2 gtkrc.$$i ; \ + ln -s gtkrc.iso88592 gtkrc.$$i ; \ done ; \ for i in bg_BG.iso88595 mk sp ru_RU.iso88595 ; do \ rm -f gtkrc.$$i ; \ - ln -s gtkrc.iso-8859-5 gtkrc.$$i ; \ + ln -s gtkrc.iso88595 gtkrc.$$i ; \ done ; \ for i in he_IL.cp1255 he_IL.microsoftcp1255 yi ; do \ rm -f gtkrc.$$i ; \ @@ -403,12 +405,12 @@ rm -f gtkrc.lt gtkrc.lv gtkrc.cy gtkrc.ga gtkrc.et gtkrc.ka \ gtkrc.vi_VN.viscii111 gtkrc.vi_VN.tcvn5712 gtkrc.vi \ gtkrc.be gtkrc.bg gtkrc.mi ; \ - ln -s gtkrc.iso-8859-13 gtkrc.mi ; \ - ln -s gtkrc.iso-8859-13 gtkrc.lt ; \ - ln -s gtkrc.iso-8859-13 gtkrc.lv ; \ - ln -s gtkrc.iso-8859-14 gtkrc.cy ; \ - ln -s gtkrc.iso-8859-14 gtkrc.ga ; \ - ln -s gtkrc.iso-8859-15 gtkrc.et ; \ + ln -s gtkrc.iso885913 gtkrc.mi ; \ + ln -s gtkrc.iso885913 gtkrc.lt ; \ + ln -s gtkrc.iso885913 gtkrc.lv ; \ + ln -s gtkrc.iso885914 gtkrc.cy ; \ + ln -s gtkrc.iso885914 gtkrc.ga ; \ + ln -s gtkrc.iso885915 gtkrc.et ; \ ln -s gtkrc.ka_GE.georgianps gtkrc.ka ; \ ln -s gtkrc.vi_VN.viscii gtkrc.vi_VN.viscii111 ; \ ln -s gtkrc.vi_VN.tcvn gtkrc.vi ; \ --- gtk+-1.2.10/gtk/gtkrc.c.encoding Thu Mar 15 13:41:40 2001 +++ gtk+-1.2.10/gtk/gtkrc.c Fri Jul 26 16:49:24 2002 @@ -33,6 +33,7 @@ #include #include #include +#include #include "gtkrc.h" #include "gtkbindings.h" @@ -440,7 +441,7 @@ void gtk_rc_init (void) { - static gchar *locale_suffixes[3]; + static gchar *locale_suffixes[8]; static gint n_locale_suffixes = 0; gint i, j; @@ -449,9 +450,7 @@ if (!initted) { - gint length; - - char *locale = setlocale (LC_CTYPE, NULL); + char *locale = g_strdup (setlocale (LC_CTYPE, NULL)); char *p; initted = TRUE; @@ -470,39 +469,88 @@ * We normalize the charset into a standard form, * which has all '-' and '_' characters removed, * and is lowercase. + * + * the search is done in that order: + * gtkrc.ll_cc.lowercasecodeset + * gtkrc.ll_cc.normalizedcodeset + * gtkrc.ll.lowercasecodeset + * gtkrc.ll.normalizedcodeset + * gtkrc.lowercasecodeset + * gtkrc.normalizedcodeset + * gtkrc.ll_cc + * gtkrc.ll + * */ - gchar *normalized_locale; + char *codeset = NULL; + char *normalized_codeset = NULL; + char *cc = NULL; + char *ll; p = strchr (locale, '@'); - length = p ? (p -locale) : strlen (locale); + if (p) + *p = '\0'; + codeset = nl_langinfo (CODESET); + p = strchr (locale, '.'); + if (!codeset && p) + codeset = p + 1; if (p) + *p = '\0'; + + if (codeset) { - gchar *tmp1 = g_strndup (locale, p - locale + 1); - gchar *tmp2 = _gtk_normalize_codeset (p + 1, length - (p - locale + 1)); + codeset = g_strdup (codeset); - normalized_locale = g_strconcat (tmp1, tmp2, NULL); - g_free (tmp1); - g_free (tmp2); - - locale_suffixes[n_locale_suffixes++] = g_strdup (normalized_locale); - length = p - locale; + p = codeset; + while (*p) + { + /* tolower not used, because some locales are not + * compatible with C locale in lowercasing ascii + */ + if (*p >= 'A' && *p <= 'Z') + *p = (*p) - 'A' + 'a'; + p++; + } + + normalized_codeset = _gtk_normalize_codeset(codeset, strlen (codeset)); + if (strcmp (normalized_codeset, codeset) == 0) + { + g_free (normalized_codeset); + normalized_codeset = NULL; + } } - else - normalized_locale = g_strndup (locale, length); - p = strchr (normalized_locale, '_'); + p = strchr (locale, '_'); if (p) { - locale_suffixes[n_locale_suffixes++] = g_strndup (normalized_locale, length); - length = p - normalized_locale; + cc = p + 1; + *p = '\0'; } - - locale_suffixes[n_locale_suffixes++] = g_strndup (normalized_locale, length); - g_free (normalized_locale); + ll = locale; + + if (cc && codeset) + locale_suffixes[n_locale_suffixes++] = g_strconcat (ll, "_", cc, ".", codeset, NULL); + if (cc && normalized_codeset) + locale_suffixes[n_locale_suffixes++] = g_strconcat (ll, "_", cc, ".", normalized_codeset, NULL); + if (codeset) + locale_suffixes[n_locale_suffixes++] = g_strconcat (ll, ".", codeset, NULL); + if (normalized_codeset) + locale_suffixes[n_locale_suffixes++] = g_strconcat (ll, ".", normalized_codeset, NULL); + if (codeset) + locale_suffixes[n_locale_suffixes++] = g_strdup (codeset); + if (normalized_codeset) + locale_suffixes[n_locale_suffixes++] = g_strdup (normalized_codeset); + if (cc) + locale_suffixes[n_locale_suffixes++] = g_strconcat (ll, "_", cc, NULL); + locale_suffixes[n_locale_suffixes++] = g_strdup (ll); + + g_free (normalized_codeset); + g_free (codeset); } + + g_free (locale); } i = 0; --- gtk+-1.2.10/gtk/gtkrc.iso88599.encoding Fri Jul 26 16:47:04 2002 +++ gtk+-1.2.10/gtk/gtkrc.iso88599 Fri Jul 26 16:47:04 2002 @@ -0,0 +1,8 @@ +style "gtk-default-iso-8859-9" { + fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-9,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-9,*-r-*" +} +class "GtkWidget" style "gtk-default-iso-8859-9" + --- gtk+-1.2.10/gtk/gtkrc.utf8.encoding Fri Jul 26 16:47:04 2002 +++ gtk+-1.2.10/gtk/gtkrc.utf8 Fri Jul 26 16:47:04 2002 @@ -0,0 +1,7 @@ +style "default-text" { + fontset = "-*-helvetica-medium-r-normal--*-120-*-*-p-*-*-*" + +} + +class "GtkWidget" style "default-text" + --- gtk+-1.2.10/gtk/gtkrc.iso885913.encoding Fri Jul 26 16:47:04 2002 +++ gtk+-1.2.10/gtk/gtkrc.iso885913 Fri Jul 26 16:47:04 2002 @@ -0,0 +1,7 @@ +style "gtk-default-iso-8859-13" { + fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-13,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-13,*-r-*" +} +class "GtkWidget" style "gtk-default-iso-8859-13" --- gtk+-1.2.10/gtk/gtkrc.iso885914.encoding Fri Jul 26 16:47:04 2002 +++ gtk+-1.2.10/gtk/gtkrc.iso885914 Fri Jul 26 16:47:04 2002 @@ -0,0 +1,8 @@ +style "gtk-default-iso-8859-14" { + fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-14,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-14,*-r-*" +} +class "GtkWidget" style "gtk-default-iso-8859-14" + --- gtk+-1.2.10/gtk/gtkrc.iso885915.encoding Fri Jul 26 16:47:04 2002 +++ gtk+-1.2.10/gtk/gtkrc.iso885915 Fri Jul 26 16:47:04 2002 @@ -0,0 +1,8 @@ +style "gtk-default-iso-8859-15" { + fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-15,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-15,*-r-*" +} +class "GtkWidget" style "gtk-default-iso-8859-15" + --- gtk+-1.2.10/gtk/gtkrc.iso88592.encoding Fri Jul 26 16:47:04 2002 +++ gtk+-1.2.10/gtk/gtkrc.iso88592 Fri Jul 26 16:47:04 2002 @@ -0,0 +1,14 @@ +#$(gtkconfigdir)/gtkrc.iso-8859-2 +# +# This file defines the fontsets for iso-8859-2 encoding +# make symliks or hardlinks to gtkrc.$LANG if your language uses iso-8859-2 +# and a gtkrc.$LANG doesn't exist yet. + +style "gtk-default-iso-8859-2" { + fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-2,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-2,*-r-*" +} +class "GtkWidget" style "gtk-default-iso-8859-2" + --- gtk+-1.2.10/gtk/gtkrc.iso88595.encoding Fri Jul 26 16:47:04 2002 +++ gtk+-1.2.10/gtk/gtkrc.iso88595 Fri Jul 26 16:47:04 2002 @@ -0,0 +1,14 @@ +#$(gtkconfigdir)/gtkrc.iso-8859-5 +# +# This file defines the fontsets for iso-8859-5 encoding +# make symliks or hardlinks to gtkrc.$LANG if your language uses iso-8859-5 +# and a gtkrc.$LANG doesn't exist yet. + +style "gtk-default-iso-8859-5" { + fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-5,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-5,*-r-*" +} +class "GtkWidget" style "gtk-default-iso-8859-5" + --- gtk+-1.2.10/gtk/gtkrc.iso88597.encoding Fri Jul 26 16:47:04 2002 +++ gtk+-1.2.10/gtk/gtkrc.iso88597 Fri Jul 26 16:47:04 2002 @@ -0,0 +1,8 @@ +style "gtk-default-iso-8859-7" { + fontset = "-*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\ + -*-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-7,\ + -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-7,*-r-*" +} +class "GtkWidget" style "gtk-default-iso-8859-7" +