diff --git a/girepository/girparser.c b/girepository/girparser.c index 63143718d..be88d871a 100644 --- a/girepository/girparser.c +++ b/girepository/girparser.c @@ -107,7 +107,8 @@ typedef enum STATE_ALIAS, STATE_TYPE, STATE_ATTRIBUTE, - STATE_PASSTHROUGH + STATE_PASSTHROUGH, + STATE_DOC_FORMAT, /* 35 */ } ParseState; typedef struct _ParseContext ParseContext; @@ -3159,6 +3160,11 @@ start_element_handler (GMarkupParseContext *context, state_switch (ctx, STATE_PASSTHROUGH); goto out; } + else if (strcmp ("doc:format", element_name) == 0) + { + state_switch (ctx, STATE_DOC_FORMAT); + goto out; + } break; case 'e': @@ -3843,6 +3849,10 @@ end_element_handler (GMarkupParseContext *context, state_switch (ctx, ctx->prev_state); } break; + case STATE_DOC_FORMAT: + if (require_end_element (context, ctx, "doc:format", element_name, error)) + state_switch (ctx, STATE_REPOSITORY); + break; case STATE_PASSTHROUGH: ctx->unknown_depth -= 1;