diff options
author | Colin Walters <walters@verbum.org> | 2010-07-21 18:55:24 -0400 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2010-08-17 13:11:03 -0400 |
commit | c79b5be318cc2a9e15976c395e3ad910ef623d40 (patch) | |
tree | 1caa54f4de1a44b28ea1b43dd6306852d9eabd8c /girepository/girparser.c | |
parent | 118f35bc7991730a291cc58fdcfb756879853949 (diff) | |
download | gobject-introspection-c79b5be318cc2a9e15976c395e3ad910ef623d40.tar.gz |
[girparser] Cleanly pass through c:include
Diffstat (limited to 'girepository/girparser.c')
-rw-r--r-- | girepository/girparser.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/girepository/girparser.c b/girepository/girparser.c index 8af0396d..11576e91 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)) { |