summaryrefslogtreecommitdiff
path: root/gtk/gtkbuilderparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkbuilderparser.c')
-rw-r--r--gtk/gtkbuilderparser.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/gtk/gtkbuilderparser.c b/gtk/gtkbuilderparser.c
index 94c5b8b6c1..dac4a75984 100644
--- a/gtk/gtkbuilderparser.c
+++ b/gtk/gtkbuilderparser.c
@@ -1269,8 +1269,19 @@ _gtk_builder_parser_parse_buffer (GtkBuilder *builder,
G_MARKUP_TREAT_CDATA_AS_TEXT,
&data, NULL);
- if (!g_markup_parse_context_parse (data.ctx, buffer, length, error))
- goto out;
+ if (buffer[0] == 'G' &&
+ buffer[1] == 'M' &&
+ buffer[2] == 'U' &&
+ buffer[3] == 0)
+ {
+ if (!g_markup_parse_context_replay (data.ctx, buffer, length, error))
+ goto out;
+ }
+ else
+ {
+ if (!g_markup_parse_context_parse (data.ctx, buffer, length, error))
+ goto out;
+ }
_gtk_builder_finish (builder);
if (_gtk_builder_lookup_failed (builder, error))