diff Modules/arraymodule.c @ 42112:ebc87b94e6ea

"Fix" the array module test -- by ripping out the 'c' typecode. (We already have 'b' for bytes and 'u' for unicode.)
author Guido van Rossum <guido@python.org>
date Mon, 18 Jun 2007 18:44:28 +0000
parents e4e8b12770e4
children 79c2656056f6
line wrap: on
line diff
--- a/Modules/arraymodule.c	Mon Jun 18 18:26:36 2007 +0000
+++ b/Modules/arraymodule.c	Mon Jun 18 18:44:28 2007 +0000
@@ -102,25 +102,6 @@
 ****************************************************************************/
 
 static PyObject *
-c_getitem(arrayobject *ap, Py_ssize_t i)
-{
-	Py_UNICODE buf[1];
-	buf[0] = ((unsigned char *)ap->ob_item)[i];
-	return PyUnicode_FromUnicode(buf, 1);
-}
-
-static int
-c_setitem(arrayobject *ap, Py_ssize_t i, PyObject *v)
-{
-	char x;
-	if (!PyArg_Parse(v, "c;array item must be char", &x))
-		return -1;
-	if (i >= 0)
-		((char *)ap->ob_item)[i] = x;
-	return 0;
-}
-
-static PyObject *
 b_getitem(arrayobject *ap, Py_ssize_t i)
 {
 	long x = ((char *)ap->ob_item)[i];
@@ -391,7 +372,6 @@
 
 /* Description of types */
 static struct arraydescr descriptors[] = {
-	{'c', sizeof(char), c_getitem, c_setitem},
 	{'b', sizeof(char), b_getitem, b_setitem},
 	{'B', sizeof(char), BB_getitem, BB_setitem},
 	{'u', sizeof(Py_UNICODE), u_getitem, u_setitem},
@@ -1403,8 +1383,8 @@
 static PyObject *
 array_tostring(arrayobject *self, PyObject *unused)
 {
-	return PyString_FromStringAndSize(self->ob_item,
-				    self->ob_size * self->ob_descr->itemsize);
+	return PyBytes_FromStringAndSize(self->ob_item,
+                                         self->ob_size * self->ob_descr->itemsize);
 }
 
 PyDoc_STRVAR(tostring_doc,
@@ -1562,9 +1542,7 @@
 	if (len == 0) {
 		return PyUnicode_FromFormat("array('%c')", typecode);
 	}
-	if (typecode == 'c')
-		v = array_tostring(a, NULL);
-	else if (typecode == 'u')
+        if (typecode == 'u')
 		v = array_tounicode(a, NULL);
 	else
 		v = array_tolist(a, NULL);
@@ -1899,7 +1877,7 @@
 		}
 	}
 	PyErr_SetString(PyExc_ValueError,
-		"bad typecode (must be c, b, B, u, h, H, i, I, l, L, f or d)");
+		"bad typecode (must be b, B, u, h, H, i, I, l, L, f or d)");
 	return NULL;
 }
 
@@ -1913,7 +1891,6 @@
 is a single character.  The following type codes are defined:\n\
 \n\
     Type code   C Type             Minimum size in bytes \n\
-    'c'         character          1 \n\
     'b'         signed integer     1 \n\
     'B'         unsigned integer   1 \n\
     'u'         Unicode character  2 \n\