Issue #8949: "z" format of PyArg_Parse*() functions doesn't accept bytes
objects, as described in the documentation.
This commit is contained in:
parent
2f7105dde7
commit
4aae1ebab2
|
@ -325,7 +325,7 @@ class Bytes_TestCase(unittest.TestCase):
|
||||||
from _testcapi import getargs_z
|
from _testcapi import getargs_z
|
||||||
self.assertEqual(getargs_z('abc\xe9'), b'abc\xc3\xa9')
|
self.assertEqual(getargs_z('abc\xe9'), b'abc\xc3\xa9')
|
||||||
self.assertRaises(TypeError, getargs_z, 'nul:\0')
|
self.assertRaises(TypeError, getargs_z, 'nul:\0')
|
||||||
self.assertEqual(getargs_z(b'bytes'), b'bytes')
|
self.assertRaises(TypeError, getargs_z, b'bytes')
|
||||||
self.assertRaises(TypeError, getargs_z, bytearray(b'bytearray'))
|
self.assertRaises(TypeError, getargs_z, bytearray(b'bytearray'))
|
||||||
self.assertRaises(TypeError, getargs_z, memoryview(b'memoryview'))
|
self.assertRaises(TypeError, getargs_z, memoryview(b'memoryview'))
|
||||||
self.assertIsNone(getargs_z(None))
|
self.assertIsNone(getargs_z(None))
|
||||||
|
|
|
@ -12,6 +12,9 @@ What's New in Python 3.2 Alpha 1?
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #8949: "z" format of PyArg_Parse*() functions doesn't accept bytes
|
||||||
|
objects, as described in the documentation.
|
||||||
|
|
||||||
- Issue #6543: Write the traceback in the terminal encoding instead of utf-8.
|
- Issue #6543: Write the traceback in the terminal encoding instead of utf-8.
|
||||||
Fix the encoding of the modules filename. Patch written by Amaury Forgeot
|
Fix the encoding of the modules filename. Patch written by Amaury Forgeot
|
||||||
d'Arc.
|
d'Arc.
|
||||||
|
|
|
@ -1005,11 +1005,6 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
|
||||||
|
|
||||||
if (arg == Py_None)
|
if (arg == Py_None)
|
||||||
*p = 0;
|
*p = 0;
|
||||||
else if (PyBytes_Check(arg)) {
|
|
||||||
/* Enable null byte check below */
|
|
||||||
uarg = arg;
|
|
||||||
*p = PyBytes_AS_STRING(arg);
|
|
||||||
}
|
|
||||||
else if (PyUnicode_Check(arg)) {
|
else if (PyUnicode_Check(arg)) {
|
||||||
uarg = UNICODE_DEFAULT_ENCODING(arg);
|
uarg = UNICODE_DEFAULT_ENCODING(arg);
|
||||||
if (uarg == NULL)
|
if (uarg == NULL)
|
||||||
|
|
Loading…
Reference in New Issue