summaryrefslogtreecommitdiff
path: root/girepository
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2010-07-21 18:55:24 -0400
committerColin Walters <walters@verbum.org>2010-08-17 13:11:03 -0400
commitc79b5be318cc2a9e15976c395e3ad910ef623d40 (patch)
tree1caa54f4de1a44b28ea1b43dd6306852d9eabd8c /girepository
parent118f35bc7991730a291cc58fdcfb756879853949 (diff)
[girparser] Cleanly pass through c:include
Diffstat (limited to 'girepository')
-rw-r--r--girepository/girparser.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/girepository/girparser.c b/girepository/girparser.c
index 8af0396..11576e9 100644
--- a/girepository/girparser.c
+++ b/girepository/girparser.c
@@ -47,6 +47,7 @@ typedef enum
STATE_END,
STATE_REPOSITORY,
STATE_INCLUDE,
+ STATE_C_INCLUDE,
STATE_PACKAGE,
STATE_NAMESPACE, /* 5 */
STATE_ENUM,
@@ -2734,6 +2735,11 @@ start_element_handler (GMarkupParseContext *context,
attribute_names, attribute_values,
ctx, error))
goto out;
+ else if (strcmp (element_name, "c:include") == 0)
+ {
+ state_switch (ctx, STATE_C_INCLUDE);
+ goto out;
+ }
break;
case 'm':
@@ -3033,6 +3039,13 @@ end_element_handler (GMarkupParseContext *context,
}
break;
+ case STATE_C_INCLUDE:
+ if (require_end_element (context, ctx, "c:include", element_name, error))
+ {
+ state_switch (ctx, STATE_REPOSITORY);
+ }
+ break;
+
case STATE_PACKAGE:
if (require_end_element (context, ctx, "package", element_name, error))
{