From bf5876e0aba41d6843bc1ec0d1d78b4769e0a86c Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 19 Jul 2019 08:12:08 -0700 Subject: Add pango_attr_list_get_attributes This was a gap in the attribute api - no way to get attributes back out of a list. --- docs/pango-sections.txt | 1 + pango/pango-attributes.c | 21 +++++++++++++++++++++ pango/pango-attributes.h | 3 +++ 3 files changed, 25 insertions(+) diff --git a/docs/pango-sections.txt b/docs/pango-sections.txt index 9d08d0b2..3b70e980 100644 --- a/docs/pango-sections.txt +++ b/docs/pango-sections.txt @@ -426,6 +426,7 @@ pango_attr_list_change pango_attr_list_splice pango_attr_list_filter PangoAttrFilterFunc +pango_attr_list_get_attributes pango_attr_list_get_iterator PangoAttrIterator pango_attr_iterator_copy diff --git a/pango/pango-attributes.c b/pango/pango-attributes.c index 54b13795..ac27251d 100644 --- a/pango/pango-attributes.c +++ b/pango/pango-attributes.c @@ -1681,6 +1681,27 @@ pango_attr_list_splice (PangoAttrList *list, #undef CLAMP_ADD } +/** + * pango_attr_list_get_attributes: + * @list: a #PangoAttrList + * + * Gets a list of all attributes in @list. + * + * Return value: (element-type Pango.Attribute) (transfer full): + * a list of all attributes in @list. To free this value, call + * pango_attribute_destroy() on each value and g_slist_free() + * on the list. + * + * Since: 1.44 + */ +GSList * +pango_attr_list_get_attributes (PangoAttrList *list) +{ + g_return_val_if_fail (list != NULL, NULL); + + return g_slist_copy_deep (list->attributes, (GCopyFunc)pango_attribute_copy, NULL); +} + /** * pango_attr_list_get_iterator: * @list: a #PangoAttrList diff --git a/pango/pango-attributes.h b/pango/pango-attributes.h index cff495b2..1f43c27f 100644 --- a/pango/pango-attributes.h +++ b/pango/pango-attributes.h @@ -553,6 +553,9 @@ PangoAttrList *pango_attr_list_filter (PangoAttrList *list, PangoAttrFilterFunc func, gpointer data); +PANGO_AVAILABLE_IN_1_44 +GSList *pango_attr_list_get_attributes (PangoAttrList *list); + PANGO_AVAILABLE_IN_ALL PangoAttrIterator *pango_attr_list_get_iterator (PangoAttrList *list); -- cgit v1.2.1