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;