BUILD: log: fix build warning on Solaris
The is* macros must not use a char on Solaris. Unsigned char is OK.
Casting char to int is wrong as well since we get a negative value.
src/log.c: In function `parse_logformat_string':
src/log.c:454: warning: subscript has type `char'
diff --git a/src/log.c b/src/log.c
index 5cfd17e..f2ba621 100644
--- a/src/log.c
+++ b/src/log.c
@@ -445,13 +445,13 @@
cformat = LF_STEXPR;
var = str + 1; // store expr in variable name
}
- else if (isalpha((int)*str)) { // variable name
+ else if (isalpha((unsigned char)*str)) { // variable name
cformat = LF_VAR;
var = str;
}
else if (*str == '%')
cformat = LF_TEXT; // convert this character to a litteral (useful for '%')
- else if (isdigit(*str) || *str == ' ' || *str == '\t') {
+ else if (isdigit((unsigned char)*str) || *str == ' ' || *str == '\t') {
/* single '%' followed by blank or digit, send them both */
cformat = LF_TEXT;
pformat = LF_TEXT; /* finally we include the previous char as well */
@@ -478,7 +478,7 @@
var = str + 1; // store expr in variable name
break;
}
- else if (isalnum((int)*str)) { // variable name
+ else if (isalnum((unsigned char)*str)) { // variable name
cformat = LF_VAR;
var = str;
break;
@@ -498,7 +498,7 @@
case LF_VAR: // text part of a variable name
var_len = str - var;
- if (!isalnum((int)*str))
+ if (!isalnum((unsigned char)*str))
cformat = LF_INIT; // not variable name anymore
break;