[CLEANUP] shut warnings 'is*' macros from ctype.h on solaris

Solaris visibly uses an array for is*, which returns warnings
about the use of signed chars as indexes. Good opportunity to
put casts everywhere.
diff --git a/src/acl.c b/src/acl.c
index a474460..f7ac06c 100644
--- a/src/acl.c
+++ b/src/acl.c
@@ -324,7 +324,7 @@
 	const char *ptr = *text;
 
 
-	while (!isdigit(*ptr)) {
+	while (!isdigit((unsigned char)*ptr)) {
 		if      (strcmp(ptr, "eq") == 0) *opaque = 0;
 		else if (strcmp(ptr, "gt") == 0) *opaque = 1;
 		else if (strcmp(ptr, "ge") == 0) *opaque = 2;
diff --git a/src/cfgparse.c b/src/cfgparse.c
index f3aefa0..39abbc3 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -1335,7 +1335,7 @@
 		if (rport) {
 			*rport++ = 0;
 			realport = atol(rport);
-			if (!isdigit((int)*rport))
+			if (!isdigit((unsigned char)*rport))
 				newsrv->state |= SRV_MAPPORTS;
 		} else {
 			realport = 0;
@@ -2264,7 +2264,7 @@
 		end = line + strlen(line);
 
 		/* skip leading spaces */
-		while (isspace((int)*line))
+		while (isspace((unsigned char)*line))
 			line++;
 	
 		arg = 0;
@@ -2318,10 +2318,10 @@
 				*line = 0;
 				break;
 			}
-			else if (isspace((int)*line)) {
+			else if (isspace((unsigned char)*line)) {
 				/* a non-escaped space is an argument separator */
 				*line++ = 0;
-				while (isspace((int)*line))
+				while (isspace((unsigned char)*line))
 					line++;
 				args[++arg] = line;
 			}
diff --git a/src/proto_http.c b/src/proto_http.c
index 33f1a95..9044d5d 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -4264,7 +4264,7 @@
 			while (p1 < cur_end) {
 				if (*p1 == ';' || *p1 == ',')
 					colon = p1;
-				else if (!isspace((int)*p1))
+				else if (!isspace((unsigned char)*p1))
 					break;
 				p1++;
 			}
@@ -4285,7 +4285,7 @@
 				break;
 		    
 			p4 = p3;
-			while (p4 < cur_end && !isspace((int)*p4) && *p4 != ';' && *p4 != ',')
+			while (p4 < cur_end && !isspace((unsigned char)*p4) && *p4 != ';' && *p4 != ',')
 				p4++;
 
 			/* here, we have the cookie name between p1 and p2,
@@ -4833,7 +4833,7 @@
 				break;
 
 			p4 = p3;
-			while (p4 < cur_end && !isspace((int)*p4) && *p4 != ';')
+			while (p4 < cur_end && !isspace((unsigned char)*p4) && *p4 != ';')
 				p4++;
 
 			/* here, we have the cookie name between p1 and p2,
@@ -5025,7 +5025,7 @@
 		/* p1 is at the beginning of the value */
 		p2 = p1;
 
-		while (p2 < cur_end && *p2 != '=' && *p2 != ',' && !isspace((int)*p2))
+		while (p2 < cur_end && *p2 != '=' && *p2 != ',' && !isspace((unsigned char)*p2))
 			p2++;
 
 		/* we have a complete value between p1 and p2 */
@@ -5622,11 +5622,11 @@
 	if (*ptr == '*')
 		return 0;
 
-	if (isalpha(*ptr)) {
+	if (isalpha((unsigned char)*ptr)) {
 		/* this is a scheme as described by RFC3986, par. 3.1 */
 		ptr++;
 		while (ptr < end &&
-		       (isalnum(*ptr) || *ptr == '+' || *ptr == '-' || *ptr == '.'))
+		       (isalnum((unsigned char)*ptr) || *ptr == '+' || *ptr == '-' || *ptr == '.'))
 			ptr++;
 		/* skip '://' */
 		if (ptr == end || *ptr++ != ':')
diff --git a/src/regex.c b/src/regex.c
index ae76200..7009366 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -31,7 +31,7 @@
 	while (*str) {
 		if (*str == '\\') {
 			str++;
-			if (isdigit((int)*str)) {
+			if (isdigit((unsigned char)*str)) {
 				int len, num;
 
 				num = *str - '0';
@@ -74,7 +74,7 @@
 			str++;
 			if (!*str)
 				return err;
-			else if (isdigit((int)*str))
+			else if (isdigit((unsigned char)*str))
 				err = NULL;
 			else if (*str == 'x') {
 				str++;