diff options
Diffstat (limited to 'girepository')
-rw-r--r-- | girepository/girparser.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/girepository/girparser.c b/girepository/girparser.c index 3edeac34..31ba5839 100644 --- a/girepository/girparser.c +++ b/girepository/girparser.c @@ -97,7 +97,8 @@ typedef enum STATE_ALIAS, STATE_TYPE, STATE_ATTRIBUTE, - STATE_PASSTHROUGH + STATE_PASSTHROUGH, + STATE_DOC_FORMAT /* 35 */ } ParseState; typedef struct _ParseContext ParseContext; @@ -2918,6 +2919,11 @@ start_element_handler (GMarkupParseContext *context, state_switch (ctx, STATE_PASSTHROUGH); goto out; } + else if (strcmp (element_name, "doc:format") == 0) + { + state_switch (ctx, STATE_DOC_FORMAT); + goto out; + } break; case 'e': @@ -3593,6 +3599,13 @@ end_element_handler (GMarkupParseContext *context, if (ctx->unknown_depth == 0) 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; default: g_error ("Unhandled state %d in end_element_handler\n", ctx->state); } |