Fix SF bug #1072182, problems with signed characters.

Most of these can be backported.
diff --git a/Modules/stropmodule.c b/Modules/stropmodule.c
index ce19a05..ed72a71 100644
--- a/Modules/stropmodule.c
+++ b/Modules/stropmodule.c
@@ -757,7 +757,7 @@
 		x = (long) PyOS_strtoul(s, &end, base);
 	else
 		x = PyOS_strtol(s, &end, base);
-	if (end == s || !isalnum((int)end[-1]))
+	if (end == s || !isalnum(Py_CHARMASK(end[-1])))
 		goto bad;
 	while (*end && isspace(Py_CHARMASK(*end)))
 		end++;