Fix signedness of various char variables to stop causing a warning under gcc 4.
diff --git a/Python/ceval.c b/Python/ceval.c
index 972061d..1103dfc 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -721,7 +721,7 @@
 	consts = co->co_consts;
 	fastlocals = f->f_localsplus;
 	freevars = f->f_localsplus + f->f_nlocals;
-	first_instr = PyString_AS_STRING(co->co_code);
+	first_instr = (unsigned char*) PyString_AS_STRING(co->co_code);
 	/* An explanation is in order for the next line.
 
 	   f->f_lasti now refers to the index of the last instruction
diff --git a/Python/compile.c b/Python/compile.c
index 5781b21..476dbe6 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -662,7 +662,7 @@
 
 	/* Bypass optimization when the lineno table is too complex */
 	assert(PyString_Check(lineno_obj));
-	lineno = PyString_AS_STRING(lineno_obj);
+	lineno = (unsigned char*)PyString_AS_STRING(lineno_obj);
 	tabsiz = PyString_GET_SIZE(lineno_obj);
 	if (memchr(lineno, 255, tabsiz) != NULL)
 		goto exitUnchanged;
diff --git a/Python/marshal.c b/Python/marshal.c
index 7f38a46..3eb7b1e 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -169,14 +169,14 @@
 	}
 	else if (PyFloat_Check(v)) {
 		if (p->version > 1) {
-			char buf[8];
+			unsigned char buf[8];
 			if (_PyFloat_Pack8(PyFloat_AsDouble(v), 
 					   buf, 1) < 0) {
 				p->error = 1;
 				return;
 			}
 			w_byte(TYPE_BINARY_FLOAT, p);
-			w_string(buf, 8, p);
+			w_string((char*)buf, 8, p);
 		}
 		else {
 			char buf[256]; /* Plenty to format any double */
@@ -190,20 +190,20 @@
 #ifndef WITHOUT_COMPLEX
 	else if (PyComplex_Check(v)) {
 		if (p->version > 1) {
-			char buf[8];
+			unsigned char buf[8];
 			if (_PyFloat_Pack8(PyComplex_RealAsDouble(v),
 					   buf, 1) < 0) {
 				p->error = 1;
 				return;
 			}
 			w_byte(TYPE_BINARY_COMPLEX, p);
-			w_string(buf, 8, p);
+			w_string((char*)buf, 8, p);
 			if (_PyFloat_Pack8(PyComplex_ImagAsDouble(v), 
 					   buf, 1) < 0) {
 				p->error = 1;
 				return;
 			}
-			w_string(buf, 8, p);
+			w_string((char*)buf, 8, p);
 		}
 		else {
 			char buf[256]; /* Plenty to format any double */
@@ -556,9 +556,9 @@
 
 	case TYPE_BINARY_FLOAT:
 		{
-			char buf[8];
+			unsigned char buf[8];
 			double x;
-			if (r_string(buf, 8, p) != 8) {
+			if (r_string((char*)buf, 8, p) != 8) {
 				PyErr_SetString(PyExc_EOFError,
 					"EOF read where object expected");
 				return NULL;
@@ -600,9 +600,9 @@
 
 	case TYPE_BINARY_COMPLEX:
 		{
-			char buf[8];
+			unsigned char buf[8];
 			Py_complex c;
-			if (r_string(buf, 8, p) != 8) {
+			if (r_string((char*)buf, 8, p) != 8) {
 				PyErr_SetString(PyExc_EOFError,
 					"EOF read where object expected");
 				return NULL;
@@ -611,7 +611,7 @@
 			if (c.real == -1.0 && PyErr_Occurred()) {
 				return NULL;
 			}
-			if (r_string(buf, 8, p) != 8) {
+			if (r_string((char*)buf, 8, p) != 8) {
 				PyErr_SetString(PyExc_EOFError,
 					"EOF read where object expected");
 				return NULL;