diff --git a/src/standard.c b/src/standard.c
index 3c4081e..056710c 100644
--- a/src/standard.c
+++ b/src/standard.c
@@ -586,7 +586,7 @@
 		return name;
 
 	while (*name) {
-		if (!isalnum((int)(unsigned char)*name) && *name != '.' && *name != ':' &&
+		if (!isalnum((unsigned char)*name) && *name != '.' && *name != ':' &&
 		    *name != '_' && *name != '-')
 			return name;
 		name++;
@@ -606,7 +606,7 @@
 		return name;
 
 	while (*name) {
-		if (!f((int)(unsigned char)*name) && *name != '.' &&
+		if (!f((unsigned char)*name) && *name != '.' &&
 		    *name != '_' && *name != '-')
 			return name;
 
@@ -977,7 +977,7 @@
 			port1 = "";
 		}
 
-		if (isdigit((int)(unsigned char)*port1)) {	/* single port or range */
+		if (isdigit((unsigned char)*port1)) {	/* single port or range */
 			port2 = strchr(port1, '-');
 			if (port2)
 				*port2++ = '\0';
@@ -3820,7 +3820,7 @@
 				var_beg++;
 
 			var_end = var_beg;
-			while (isalnum((int)(unsigned char)*var_end) || *var_end == '_') {
+			while (isalnum((unsigned char)*var_end) || *var_end == '_') {
 				var_end++;
 			}
 
@@ -4087,7 +4087,7 @@
 
 	while (buf[ptr] && ptr < bsize) {
 		c = buf[ptr];
-		if (isprint(c) && isascii(c) && c != '\\' && c != ' ' && c != '=') {
+		if (isprint((unsigned char)c) && isascii((unsigned char)c) && c != '\\' && c != ' ' && c != '=') {
 			if (out->data > out->size - 1)
 				break;
 			out->area[out->data++] = c;
@@ -4183,7 +4183,7 @@
 				chunk_strcat(out, "'");
 			else if (unsafe > 1)
 				chunk_strcat(out, "*");
-			else if (isprint(d[i + j]))
+			else if (isprint((unsigned char)d[i + j]))
 				chunk_appendf(out, "%c", d[i + j]);
 			else
 				chunk_strcat(out, ".");
@@ -4214,7 +4214,7 @@
 
 	while (ptr < len && ptr < bsize) {
 		c = buf[ptr];
-		if (isprint(c) && isascii(c) && c != '\\') {
+		if (isprint((unsigned char)c) && isascii((unsigned char)c) && c != '\\') {
 			if (out->data > end - 2)
 				break;
 			out->area[out->data++] = c;
