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'
This commit is contained in:
Willy Tarreau 2013-12-16 01:38:33 +01:00
parent 668ae532b9
commit 0f28f82cec

View File

@ -445,13 +445,13 @@ void parse_logformat_string(const char *fmt, struct proxy *curproxy, struct list
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 @@ void parse_logformat_string(const char *fmt, struct proxy *curproxy, struct list
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 @@ void parse_logformat_string(const char *fmt, struct proxy *curproxy, struct list
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;