summaryrefslogtreecommitdiff
path: root/girepository/girparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'girepository/girparser.c')
-rw-r--r--girepository/girparser.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/girepository/girparser.c b/girepository/girparser.c
index b6983d1a..2d30f201 100644
--- a/girepository/girparser.c
+++ b/girepository/girparser.c
@@ -807,6 +807,8 @@ start_function (GMarkupParseContext *context,
const gchar *symbol;
const gchar *deprecated;
const gchar *throws;
+ const gchar *set_property;
+ const gchar *get_property;
GIrNodeFunction *function;
gboolean found = FALSE;
ParseState in_embedded_state = STATE_NONE;
@@ -854,6 +856,8 @@ start_function (GMarkupParseContext *context,
symbol = find_attribute ("c:identifier", attribute_names, attribute_values);
deprecated = find_attribute ("deprecated", attribute_names, attribute_values);
throws = find_attribute ("throws", attribute_names, attribute_values);
+ set_property = find_attribute ("glib:set-property", attribute_names, attribute_values);
+ get_property = find_attribute ("glib:get-property", attribute_names, attribute_values);
if (name == NULL)
{
@@ -889,6 +893,25 @@ start_function (GMarkupParseContext *context,
function->is_constructor = TRUE;
else
function->is_constructor = FALSE;
+
+ if (set_property != NULL)
+ {
+ function->is_setter = TRUE;
+ function->is_getter = FALSE;
+ function->property = g_strdup (set_property);
+ }
+ else if (get_property != NULL)
+ {
+ function->is_setter = FALSE;
+ function->is_getter = TRUE;
+ function->property = g_strdup (get_property);
+ }
+ else
+ {
+ function->is_setter = FALSE;
+ function->is_getter = FALSE;
+ function->property = NULL;
+ }
}
else
{