summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/pango-sections.txt1
-rw-r--r--pango/pango-attributes.c21
-rw-r--r--pango/pango-attributes.h3
3 files changed, 25 insertions, 0 deletions
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
@@ -1682,6 +1682,27 @@ pango_attr_list_splice (PangoAttrList *list,
}
/**
+ * 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);