summaryrefslogtreecommitdiff
path: root/girepository/girparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'girepository/girparser.c')
-rw-r--r--girepository/girparser.c15
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);
}