diff options
author | Owen Taylor <otaylor@redhat.com> | 2001-06-14 20:38:25 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2001-06-14 20:38:25 +0000 |
commit | 5ee19fca3c7c3da53ef4f000efdb3bbf4dcb1a04 (patch) | |
tree | 17a70e18597aae753e36a983150500bd9362dcfd /pango/pango-item.c | |
parent | 3a42444e7f2449598106338be7e6ec9468bb7946 (diff) | |
download | pango-5ee19fca3c7c3da53ef4f000efdb3bbf4dcb1a04.tar.gz |
Add a new PangoLanguage type to represent language tags; these can
Sat Jun 9 17:36:09 2001 Owen Taylor <otaylor@redhat.com>
* pango/pango-types.h pango/pango-utils.c: Add a new PangoLanguage
type to represent language tags; these can efficiently be compared
and don't need to be copied. Also add pango_language_matches()
to match a language tag against a pattern.
* pango/pango-item.[ch] pango/pango-layout.c: Move extra_attrs
from PangoItem to PangoAnalysis. Add a language tag field to
PangoAnalysis. (#55894)
* pango/pango-attributes.[ch] (pango_attr_iterator_get_font): Return
the language tag as well.
* pango/pango-attributes.[ch]: Rename PangoAttrLang to PangoAttrLanguage,
and make it hold a PangoLanguage.
* pango/pango-context.[ch]: Rename pango_context_{get,set}_lang() to
pango_context_{get,set}_language().
* **.[ch]: Adapt to PangoLanguage and s/lang/language/ changes.
* modules/basic/basic-x.c modules/basic/tables-big.i: Add support
for ordering character sets differently for different language
tags.
* pango/itemize.c: Remove old, unused file.
* pango/pango-context.c (pango_itemize): Reduce number of mallocs
by allocating one array of PangoAnalysis instead of many arrays.
Diffstat (limited to 'pango/pango-item.c')
-rw-r--r-- | pango/pango-item.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/pango/pango-item.c b/pango/pango-item.c index 73f96d2b..e090fe57 100644 --- a/pango/pango-item.c +++ b/pango/pango-item.c @@ -55,18 +55,18 @@ pango_item_copy (PangoItem *item) result->length = item->length; result->num_chars = item->num_chars; + result->analysis = item->analysis; + g_object_ref (result->analysis.font); + extra_attrs = NULL; - tmp_list = item->extra_attrs; + tmp_list = item->analysis.extra_attrs; while (tmp_list) { extra_attrs = g_slist_prepend (extra_attrs, pango_attribute_copy (tmp_list->data)); tmp_list = tmp_list->next; } - result->extra_attrs = g_slist_reverse (extra_attrs); - - result->analysis = item->analysis; - g_object_ref (G_OBJECT (result->analysis.font)); + result->analysis.extra_attrs = g_slist_reverse (extra_attrs); return result; } @@ -80,13 +80,13 @@ pango_item_copy (PangoItem *item) void pango_item_free (PangoItem *item) { - if (item->extra_attrs) + if (item->analysis.extra_attrs) { - g_slist_foreach (item->extra_attrs, (GFunc)pango_attribute_destroy, NULL); - g_slist_free (item->extra_attrs); + g_slist_foreach (item->analysis.extra_attrs, (GFunc)pango_attribute_destroy, NULL); + g_slist_free (item->analysis.extra_attrs); } - - g_object_unref (G_OBJECT (item->analysis.font)); + + g_object_unref (item->analysis.font); g_free (item); } |