summaryrefslogtreecommitdiff
path: root/girepository/girparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'girepository/girparser.c')
-rw-r--r--girepository/girparser.c14
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;