[girparser] Cleanly pass through c:include

This commit is contained in:
Colin Walters 2010-07-21 18:55:24 -04:00
parent 439753a5b3
commit f552f46f88

View File

@ -47,6 +47,7 @@ typedef enum
STATE_END, STATE_END,
STATE_REPOSITORY, STATE_REPOSITORY,
STATE_INCLUDE, STATE_INCLUDE,
STATE_C_INCLUDE,
STATE_PACKAGE, STATE_PACKAGE,
STATE_NAMESPACE, /* 5 */ STATE_NAMESPACE, /* 5 */
STATE_ENUM, STATE_ENUM,
@ -2734,6 +2735,11 @@ start_element_handler (GMarkupParseContext *context,
attribute_names, attribute_values, attribute_names, attribute_values,
ctx, error)) ctx, error))
goto out; goto out;
else if (strcmp (element_name, "c:include") == 0)
{
state_switch (ctx, STATE_C_INCLUDE);
goto out;
}
break; break;
case 'm': case 'm':
@ -3033,6 +3039,13 @@ end_element_handler (GMarkupParseContext *context,
} }
break; 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: case STATE_PACKAGE:
if (require_end_element (context, ctx, "package", element_name, error)) if (require_end_element (context, ctx, "package", element_name, error))
{ {