util/xmlconfig: Drop use of XML_Char in parsing.

We don't define the use-16-bit-unicode defines (and our strings are plain
utf8), so it's just char.  This will let me use some of this code in the
absence of expat.

Reviewed-by: Eric Engestrom <eric@engestrom.ch>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6916>
This commit is contained in:
Eric Anholt 2020-09-11 13:36:24 -07:00 committed by Marge Bot
parent 6f3352b6a7
commit 7edb2aed55

View file

@ -105,10 +105,10 @@ static int compare(const void *a, const void *b) {
}
/** \brief Binary search in a string array. */
static uint32_t
bsearchStr(const XML_Char *name, const XML_Char *elems[], uint32_t count)
bsearchStr(const char *name, const char *elems[], uint32_t count)
{
const XML_Char **found;
found = bsearch(&name, elems, count, sizeof(XML_Char *), compare);
const char **found;
found = bsearch(&name, elems, count, sizeof(char *), compare);
if (found)
return found - elems;
else
@ -125,13 +125,13 @@ bsearchStr(const XML_Char *name, const XML_Char *elems[], uint32_t count)
* the integer number. If no number was found then tail points to the
* start of the input string. */
static int
strToI(const XML_Char *string, const XML_Char **tail, int base)
strToI(const char *string, const char **tail, int base)
{
int radix = base == 0 ? 10 : base;
int result = 0;
int sign = 1;
bool numberFound = false;
const XML_Char *start = string;
const char *start = string;
assert(radix >= 2 && radix <= 36);
@ -187,11 +187,11 @@ strToI(const XML_Char *string, const XML_Char **tail, int base)
*
* Uses two passes for maximum accuracy. */
static float
strToF(const XML_Char *string, const XML_Char **tail)
strToF(const char *string, const char **tail)
{
int nDigits = 0, pointPos, exponent;
float sign = 1.0f, result = 0.0f, scale;
const XML_Char *start = string, *numStart;
const char *start = string, *numStart;
/* sign */
if (*string == '-') {
@ -222,7 +222,7 @@ strToF(const XML_Char *string, const XML_Char **tail)
}
*tail = string;
if (*string == 'e' || *string == 'E') {
const XML_Char *expTail;
const char *expTail;
exponent = strToI(string+1, &expTail, 10);
if (expTail == string+1)
exponent = 0;
@ -251,9 +251,9 @@ strToF(const XML_Char *string, const XML_Char **tail)
/** \brief Parse a value of a given type. */
static unsigned char
parseValue(driOptionValue *v, driOptionType type, const XML_Char *string)
parseValue(driOptionValue *v, driOptionType type, const char *string)
{
const XML_Char *tail = NULL;
const char *tail = NULL;
/* skip leading white-space */
string += strspn(string, " \f\n\r\t\v");
switch (type) {
@ -296,13 +296,13 @@ parseValue(driOptionValue *v, driOptionType type, const XML_Char *string)
/** \brief Parse a list of ranges of type info->type. */
static unsigned char
parseRange(driOptionInfo *info, const XML_Char *string)
parseRange(driOptionInfo *info, const char *string)
{
XML_Char *cp;
char *cp;
XSTRDUP(cp, string);
XML_Char *sep;
char *sep;
sep = strchr(cp, ':');
if (!sep) {
free(cp);
@ -612,7 +612,7 @@ struct OptConfData {
enum OptConfElem {
OC_APPLICATION = 0, OC_DEVICE, OC_DRICONF, OC_ENGINE, OC_OPTION, OC_COUNT
};
static const XML_Char *OptConfElems[] = {
static const char *OptConfElems[] = {
[OC_APPLICATION] = "application",
[OC_DEVICE] = "device",
[OC_DRICONF] = "driconf",
@ -622,10 +622,10 @@ static const XML_Char *OptConfElems[] = {
/** \brief Parse attributes of a device element. */
static void
parseDeviceAttr(struct OptConfData *data, const XML_Char **attr)
parseDeviceAttr(struct OptConfData *data, const char **attr)
{
uint32_t i;
const XML_Char *driver = NULL, *screen = NULL, *kernel = NULL;
const char *driver = NULL, *screen = NULL, *kernel = NULL;
for (i = 0; attr[i]; i += 2) {
if (!strcmp(attr[i], "driver")) driver = attr[i+1];
else if (!strcmp(attr[i], "screen")) screen = attr[i+1];
@ -648,13 +648,13 @@ parseDeviceAttr(struct OptConfData *data, const XML_Char **attr)
/** \brief Parse attributes of an application element. */
static void
parseAppAttr(struct OptConfData *data, const XML_Char **attr)
parseAppAttr(struct OptConfData *data, const char **attr)
{
uint32_t i;
const XML_Char *exec = NULL;
const XML_Char *sha1 = NULL;
const XML_Char *application_name_match = NULL;
const XML_Char *application_versions = NULL;
const char *exec = NULL;
const char *sha1 = NULL;
const char *application_name_match = NULL;
const char *application_versions = NULL;
driOptionInfo version_range = {
.type = DRI_INT,
};
@ -715,10 +715,10 @@ parseAppAttr(struct OptConfData *data, const XML_Char **attr)
/** \brief Parse attributes of an application element. */
static void
parseEngineAttr(struct OptConfData *data, const XML_Char **attr)
parseEngineAttr(struct OptConfData *data, const char **attr)
{
uint32_t i;
const XML_Char *engine_name_match = NULL, *engine_versions = NULL;
const char *engine_name_match = NULL, *engine_versions = NULL;
driOptionInfo version_range = {
.type = DRI_INT,
};
@ -748,10 +748,10 @@ parseEngineAttr(struct OptConfData *data, const XML_Char **attr)
/** \brief Parse attributes of an option element. */
static void
parseOptConfAttr(struct OptConfData *data, const XML_Char **attr)
parseOptConfAttr(struct OptConfData *data, const char **attr)
{
uint32_t i;
const XML_Char *name = NULL, *value = NULL;
const char *name = NULL, *value = NULL;
for (i = 0; attr[i]; i += 2) {
if (!strcmp(attr[i], "name")) name = attr[i+1];
else if (!strcmp(attr[i], "value")) value = attr[i+1];
@ -780,8 +780,8 @@ parseOptConfAttr(struct OptConfData *data, const XML_Char **attr)
/** \brief Handler for start element events. */
static void
optConfStartElem(void *userData, const XML_Char *name,
const XML_Char **attr)
optConfStartElem(void *userData, const char *name,
const char **attr)
{
struct OptConfData *data = (struct OptConfData *)userData;
enum OptConfElem elem = bsearchStr(name, OptConfElems, OC_COUNT);
@ -836,7 +836,7 @@ optConfStartElem(void *userData, const XML_Char *name,
/** \brief Handler for end element events. */
static void
optConfEndElem(void *userData, const XML_Char *name)
optConfEndElem(void *userData, const char *name)
{
struct OptConfData *data = (struct OptConfData *)userData;
enum OptConfElem elem = bsearchStr(name, OptConfElems, OC_COUNT);