diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ChangeLog.pre-1-10 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-1-6 | 6 | ||||
-rw-r--r-- | ChangeLog.pre-1-8 | 6 | ||||
-rw-r--r-- | pango/pango-script.c | 33 |
5 files changed, 52 insertions, 5 deletions
@@ -1,3 +1,9 @@ +Wed Jul 14 17:42:49 2004 Owen Taylor <otaylor@redhat.com> + + * pango/pango-script.c (pango_language_includes_script): + Fix problem when we only figured out latin script for 'en' + not for 'en-us'. Fix reversed arguments to bsearch. + Tue Jul 13 16:23:15 2004 Owen Taylor <otaylor@redhat.com> * pango/pango-types.h pango/pango-utils.c diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10 index 71375f52..53530042 100644 --- a/ChangeLog.pre-1-10 +++ b/ChangeLog.pre-1-10 @@ -1,3 +1,9 @@ +Wed Jul 14 17:42:49 2004 Owen Taylor <otaylor@redhat.com> + + * pango/pango-script.c (pango_language_includes_script): + Fix problem when we only figured out latin script for 'en' + not for 'en-us'. Fix reversed arguments to bsearch. + Tue Jul 13 16:23:15 2004 Owen Taylor <otaylor@redhat.com> * pango/pango-types.h pango/pango-utils.c diff --git a/ChangeLog.pre-1-6 b/ChangeLog.pre-1-6 index 71375f52..53530042 100644 --- a/ChangeLog.pre-1-6 +++ b/ChangeLog.pre-1-6 @@ -1,3 +1,9 @@ +Wed Jul 14 17:42:49 2004 Owen Taylor <otaylor@redhat.com> + + * pango/pango-script.c (pango_language_includes_script): + Fix problem when we only figured out latin script for 'en' + not for 'en-us'. Fix reversed arguments to bsearch. + Tue Jul 13 16:23:15 2004 Owen Taylor <otaylor@redhat.com> * pango/pango-types.h pango/pango-utils.c diff --git a/ChangeLog.pre-1-8 b/ChangeLog.pre-1-8 index 71375f52..53530042 100644 --- a/ChangeLog.pre-1-8 +++ b/ChangeLog.pre-1-8 @@ -1,3 +1,9 @@ +Wed Jul 14 17:42:49 2004 Owen Taylor <otaylor@redhat.com> + + * pango/pango-script.c (pango_language_includes_script): + Fix problem when we only figured out latin script for 'en' + not for 'en-us'. Fix reversed arguments to bsearch. + Tue Jul 13 16:23:15 2004 Owen Taylor <otaylor@redhat.com> * pango/pango-types.h pango/pango-utils.c diff --git a/pango/pango-script.c b/pango/pango-script.c index b5045c42..68814984 100644 --- a/pango/pango-script.c +++ b/pango/pango-script.c @@ -351,15 +351,38 @@ pango_script_iter_next (PangoScriptIter *iter) #include "pango-script-lang-table.h" +/* The fact that this comparison function works is dependent + * on a property of the pango_script_lang_table which accidental rather + * than inherent. + * + * The property is if we take any element in the table and suffix it + * <elem>-<suffix> then that must strcmp() between any elements + * preceding the element in the table and any element following in the + * table. So, if we had something like: + * + * 'zh' + *' zh-cn' + * + * in the table we would have a problem since 'zh-tw' follows 'zh-cn'. + * On the other hand: + * + * 'zh' + * 'zha' + * + * Works because 'zh-tw' precedes 'zha'. + */ static int script_for_lang_compare (gconstpointer key, gconstpointer member) { - const char *lang = key; + PangoLanguage *lang = (PangoLanguage *)key; const PangoScriptForLang *script_for_lang = member; - - return strcmp (lang, - pango_language_to_string (script_for_lang->lang)); + + if (pango_language_matches (lang, script_for_lang->lang)) + return 0; + else + return strcmp (pango_language_to_string (lang), + script_for_lang->lang); } /** @@ -398,8 +421,8 @@ pango_language_includes_script (PangoLanguage *language, */ script_for_lang = bsearch (pango_language_to_string (language), pango_script_for_lang, - sizeof (PangoScriptForLang), G_N_ELEMENTS (pango_script_for_lang), + sizeof (PangoScriptForLang), script_for_lang_compare); if (!script_for_lang) return TRUE; |