diff options
author | Owen Taylor <otaylor@redhat.com> | 2001-06-26 19:13:28 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2001-06-26 19:13:28 +0000 |
commit | 9c41176796502c33fec770dc5952bdcdc9db3783 (patch) | |
tree | e2c561525c5cdbe96aae959634e2cb3feceb3b8e /pango/pangoft2.c | |
parent | ac5989fb0fec8273fd4955611b6efb0317d138c1 (diff) | |
download | pango-9c41176796502c33fec770dc5952bdcdc9db3783.tar.gz |
Couple of bug fixes for the last change.
Tue Jun 26 15:11:30 2001 Owen Taylor <otaylor@redhat.com>
* pango/pango-context.c (font_set_get_font)
pango/pango-context.c (add_engines): Couple of
bug fixes for the last change.
* configure.in: Abort out when AM_PATH_GLIB fails.
Diffstat (limited to 'pango/pangoft2.c')
-rw-r--r-- | pango/pangoft2.c | 85 |
1 files changed, 5 insertions, 80 deletions
diff --git a/pango/pangoft2.c b/pango/pangoft2.c index 8cdf7fb1..99bd1376 100644 --- a/pango/pangoft2.c +++ b/pango/pangoft2.c @@ -48,7 +48,7 @@ typedef struct _PangoFT2ContextInfo PangoFT2ContextInfo; struct _PangoFT2MetricsInfo { - PangoLanguage *language; + const char *sample_str; PangoFontMetrics metrics; }; @@ -622,52 +622,6 @@ get_font_metrics_from_string (PangoFont *font, g_free (embedding_levels); } -typedef struct { - const char *lang; - const char *str; -} LangInfo; - -int -lang_info_compare (const void *key, - const void *val) -{ - const LangInfo *lang_info = val; - - return strncmp (key, lang_info->lang, 2); -} - -/* The following array is supposed to contain enough text to tickle all necessary fonts for each - * of the languages in the following. Yes, it's pretty lame. Not all of the languages - * in the following have sufficient text to excercise all the accents for the language, and - * there are obviously many more languages to include as well. - */ -LangInfo lang_texts[] = { - { "ar", "Arabic ا,DXXم عY(JY,CY(B" }, - { "cs", "Czech (česky) Dobrý den" }, - { "da", "Danish (Dansk) Hej, Goddag" }, - { "el", "Greek ($(GN;ληνικά(B) $(CN5ιά ,CNς(B" }, - { "en", "English Hello" }, - { "eo", "Esperanto Saluton" }, - { "es", "Spanish (Español) ¡Hola!" }, - { "et", "Estonian Tere, Tervist" }, - { "fi", "Finnish (Suomi) Hei, Hyvää päivää" }, - { "fr", "French (Français)" }, - { "de", "German Grüß Gott" }, - { "iw", "Hebrew שלום" }, - { "il", "Italiano Ciao, Buon giorno" }, - { "ja", "Japanese (日語) こん, コン,Foハ(B" }, - { "ko", "Korean (한글) ,Hk하,D8요(B, ,Hk하십j(B" }, - { "mt", "Maltese Ċaw, Saħħa" }, - { "nl", "Nederlands, Vlaams Hallo, Dag" }, - { "no", "Norwegian (Norsk) Hei, God dag" }, - { "pl", "Polish Dzień dobry, Hej" }, - { "ru", "Russian (Р,CQкий(B)" }, - { "sk", "Slovak Dobrý deň" }, - { "sv", "Swedish (Svenska) Hej på dej, Goddag" }, - { "tr", "Turkish (Türkçe) Merhaba" }, - { "zh", "Chinese (中文,$(1.i话(B,(Ih(B)" } -}; - static void pango_ft2_font_get_metrics (PangoFont *font, PangoLanguage *language, @@ -677,43 +631,14 @@ pango_ft2_font_get_metrics (PangoFont *font, PangoFT2Font *ft2font = (PangoFT2Font *)font; GSList *tmp_list; - PangoLanguage *lookup_lang; - const char *str; - - if (language) - { - const char *lang_str = pango_language_to_string (language); - - LangInfo *lang_info = bsearch (lang_str, lang_texts, - G_N_ELEMENTS (lang_texts), sizeof (LangInfo), - lang_info_compare); - - if (lang_info) - { - lookup_lang = pango_language_from_string (lang_info->lang); - str = lang_info->str; - } - else - { - lookup_lang = pango_language_from_string ("UNKNOWN"); - str = "French (Français)"; /* Assume iso-8859-1 */ - } - } - else - { - lookup_lang = pango_language_from_string ("NONE"); - - /* Complete junk - */ - str = "ا,DXXم عY(JY,CY č(Besky $(GN;ληνικά (BFrançais 日語 한글 Р,CQкий 中文(B,$(1.i话(B,(Ih (BTürkçe"; - } + const char *sample_str = pango_language_get_sample_string (language); tmp_list = ft2font->metrics_by_lang; while (tmp_list) { info = tmp_list->data; - if (info->language == lookup_lang) /* We _don't_ need strcmp */ + if (info->sample_str == sample_str) /* We _don't_ need strcmp */ break; tmp_list = tmp_list->next; @@ -722,11 +647,11 @@ pango_ft2_font_get_metrics (PangoFont *font, if (!tmp_list) { info = g_new (PangoFT2MetricsInfo, 1); - info->language = lookup_lang; + info->sample_str = sample_str; ft2font->metrics_by_lang = g_slist_prepend (ft2font->metrics_by_lang, info); - get_font_metrics_from_string (font, language, str, &info->metrics); + get_font_metrics_from_string (font, language, sample_str, &info->metrics); } *metrics = info->metrics; |