From 7621190b3e57bedd3cf4bd9bf23f793d0a3e401b Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Mon, 22 Mar 2021 16:22:03 -0400 Subject: db_xml_get_bool_attr(): New function --- (limited to 'src/xml.c') diff --git a/src/xml.c b/src/xml.c index b6315ab..6fafd5b 100644 --- a/src/xml.c +++ b/src/xml.c @@ -58,6 +58,30 @@ db_xml_unexpected_end_tag(XML_Parser p, const char *found, } void +db_xml_get_bool_attr(XML_Parser p, const char **attr, const char *name, + SDL_bool *dest, int req) +{ + for (; attr[0] != NULL; attr += 2) { + if (strcmp(attr[0], name) == 0) { + if (strcmp(attr[1], "true") == 0) { + dest = SDL_TRUE; + return; + } else if (strcmp(attr[1], "false") == 0) { + dest = SDL_FALSE; + return; + } else if (req) { + db_warn("Invalid \"%s\" attribute value", name); + XML_StopParser(p, XML_FALSE); + } + } + } + if (req) { + db_warn("Required attribute \"%s\" not found", name); + XML_StopParser(p, XML_FALSE); + } +} + +void db_xml_get_uint32_attr(XML_Parser p, const char **attr, const char *name, Uint32 *dest, int req) { -- cgit v0.9.1