summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/skin_parser/skin_debug.c3
-rw-r--r--lib/skin_parser/skin_parser.c6
-rw-r--r--lib/skin_parser/skin_parser.h3
3 files changed, 11 insertions, 1 deletions
diff --git a/lib/skin_parser/skin_debug.c b/lib/skin_parser/skin_debug.c
index 9537182341..a2042744b9 100644
--- a/lib/skin_parser/skin_debug.c
+++ b/lib/skin_parser/skin_debug.c
@@ -105,6 +105,9 @@ void skin_error(enum skin_errorcode error, const char* cursor)
case MULTILINE_EXPECTED:
error_message = "Expected subline separator";
break;
+ case GOT_CALLBACK_ERROR:
+ error_message = "Parser callback returned error";
+ break;
};
}
diff --git a/lib/skin_parser/skin_parser.c b/lib/skin_parser/skin_parser.c
index 1f4b87a328..39a41e9dd3 100644
--- a/lib/skin_parser/skin_parser.c
+++ b/lib/skin_parser/skin_parser.c
@@ -546,7 +546,10 @@ static int skin_parse_tag(struct skin_element* element, const char** document)
if (callback)
{
if (callback(element, callback_data) == CALLBACK_ERROR)
+ {
+ skin_error(GOT_CALLBACK_ERROR, cursor);
return 0;
+ }
}
#endif
*document = cursor;
@@ -822,7 +825,10 @@ static int skin_parse_tag(struct skin_element* element, const char** document)
if (callback)
{
if (callback(element, callback_data) == CALLBACK_ERROR)
+ {
+ skin_error(GOT_CALLBACK_ERROR, *document);
return 0;
+ }
}
#endif
*document = cursor;
diff --git a/lib/skin_parser/skin_parser.h b/lib/skin_parser/skin_parser.h
index ec51b64c8b..c53896ca30 100644
--- a/lib/skin_parser/skin_parser.h
+++ b/lib/skin_parser/skin_parser.h
@@ -79,7 +79,8 @@ enum skin_errorcode
DECIMAL_EXPECTED,
SEPARATOR_EXPECTED,
CLOSE_EXPECTED,
- MULTILINE_EXPECTED
+ MULTILINE_EXPECTED,
+ GOT_CALLBACK_ERROR
};
/* Holds a tag parameter, either numeric or text */