diff options
Diffstat (limited to 'girepository/girparser.c')
-rw-r--r-- | girepository/girparser.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/girepository/girparser.c b/girepository/girparser.c index f7269b92..02c04427 100644 --- a/girepository/girparser.c +++ b/girepository/girparser.c @@ -1030,6 +1030,7 @@ start_parameter (GMarkupParseContext *context, const gchar *scope; const gchar *closure; const gchar *destroy; + const gchar *skip; GIrNodeParam *param; if (!(strcmp (element_name, "parameter") == 0 && @@ -1046,6 +1047,7 @@ start_parameter (GMarkupParseContext *context, scope = find_attribute ("scope", attribute_names, attribute_values); closure = find_attribute ("closure", attribute_names, attribute_values); destroy = find_attribute ("destroy", attribute_names, attribute_values); + skip = find_attribute ("skip", attribute_names, attribute_values); if (name == NULL) name = "unknown"; @@ -1095,6 +1097,11 @@ start_parameter (GMarkupParseContext *context, else param->allow_none = FALSE; + if (skip && strcmp (skip, "1") == 0) + param->skip = TRUE; + else + param->skip = FALSE; + if (!parse_param_transfer (param, transfer, name, error)) return FALSE; @@ -2200,6 +2207,7 @@ start_return_value (GMarkupParseContext *context, { GIrNodeParam *param; const gchar *transfer; + const gchar *skip; if (!(strcmp (element_name, "return-value") == 0 && ctx->state == STATE_FUNCTION)) @@ -2215,6 +2223,12 @@ start_return_value (GMarkupParseContext *context, state_switch (ctx, STATE_FUNCTION_RETURN); + skip = find_attribute ("skip", attribute_names, attribute_values); + if (skip && strcmp (skip, "1") == 0) + param->skip = TRUE; + else + param->skip = FALSE; + transfer = find_attribute ("transfer-ownership", attribute_names, attribute_values); if (!parse_param_transfer (param, transfer, NULL, error)) return FALSE; |