Support marshal.dump(x, f) where f is not a real file.

Support ord(b) where b is a 1-byte string.
In zipfile.py, work around bytes being ints instead of chars, sometimes.
This commit is contained in:
Guido van Rossum 2007-04-13 03:31:13 +00:00
parent 84d79ddce2
commit 98f9746740
3 changed files with 27 additions and 6 deletions

View file

@ -1451,14 +1451,24 @@ builtin_ord(PyObject *self, PyObject* obj)
return PyInt_FromLong(ord);
}
#ifdef Py_USING_UNICODE
} else if (PyUnicode_Check(obj)) {
}
else if (PyUnicode_Check(obj)) {
size = PyUnicode_GET_SIZE(obj);
if (size == 1) {
ord = (long)*PyUnicode_AS_UNICODE(obj);
return PyInt_FromLong(ord);
}
#endif
} else {
}
else if (PyBytes_Check(obj)) {
/* XXX Hopefully this is temporary */
size = PyBytes_GET_SIZE(obj);
if (size == 1) {
ord = (long)*PyBytes_AS_STRING(obj);
return PyInt_FromLong(ord);
}
}
else {
PyErr_Format(PyExc_TypeError,
"ord() expected string of length 1, but " \
"%.200s found", obj->ob_type->tp_name);