Skip to content

Commit f7ed3b8

Browse files
committed
feat(builder): output details when an error occurs
1 parent 24e89aa commit f7ed3b8

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

src/gui/builder.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,13 @@ static struct ModuleContext {
8484
code = CODE; \
8585
goto exit;
8686

87+
static void xmlPrintErrorMessage(xmlErrorPtr err)
88+
{
89+
Logger_Error("[builder] %s (%d): error %d: %s\n",
90+
err->file ? err->file : "(memory)", err->line, err->code,
91+
err->message);
92+
}
93+
8794
/** 解析 <resource> 元素,根据相关参数载入资源 */
8895
static int ParseResource(XMLParserContext ctx, xmlNodePtr node)
8996
{
@@ -333,7 +340,8 @@ LCUI_Widget LCUIBuilder_LoadString(const char *str, int size)
333340
memset(&ctx, 0, sizeof(ctx));
334341
doc = xmlParseMemory(str, size);
335342
if (!doc) {
336-
Logger_Error("[builder] Failed to parse xml form memory\n");
343+
xmlPrintErrorMessage(xmlGetLastError());
344+
Logger_Error("[builder] failed to parse xml form memory\n");
337345
goto FAILED;
338346
}
339347
cur = xmlDocGetRootElement(doc);
@@ -367,8 +375,8 @@ LCUI_Widget LCUIBuilder_LoadFile(const char *filepath)
367375
ctx.space = filepath;
368376
doc = xmlParseFile(filepath);
369377
if (!doc) {
370-
Logger_Error("[builder] Failed to parse xml file: %s\n",
371-
filepath);
378+
xmlPrintErrorMessage(xmlGetLastError());
379+
Logger_Error("[builder] failed to parse xml form file\n");
372380
goto FAILED;
373381
}
374382
cur = xmlDocGetRootElement(doc);

0 commit comments

Comments
 (0)