summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2009-04-03 22:18:11 (GMT)
committerBenjamin Peterson <benjamin@python.org>2009-04-03 22:18:11 (GMT)
commita921fb0f66e082a61277e97e1326a26fa59be3f0 (patch)
tree5f9897b1acee7cbf88c253003e62fc7f79824aae
parenta3b1ac8dca5afa01d9d542e125052014a9af56eb (diff)
downloadcpython-a921fb0f66e082a61277e97e1326a26fa59be3f0.zip
cpython-a921fb0f66e082a61277e97e1326a26fa59be3f0.tar.gz
cpython-a921fb0f66e082a61277e97e1326a26fa59be3f0.tar.bz2
Py_BuildValue's 'c' code should use byte strings #5666
-rw-r--r--Doc/c-api/arg.rst10
-rw-r--r--Modules/_cursesmodule.c2
-rw-r--r--Modules/arraymodule.c4
-rw-r--r--Python/modsupport.c2
4 files changed, 11 insertions, 7 deletions
diff --git a/Doc/c-api/arg.rst b/Doc/c-api/arg.rst
index a554bc9..8a40f22 100644
--- a/Doc/c-api/arg.rst
+++ b/Doc/c-api/arg.rst
@@ -212,7 +212,7 @@ variable(s) whose address should be passed.
:ctype:`char`.
``C`` (string of length 1) [int]
- Covert a Python character, represented as a unicode string of length 1, to a
+ Convert a Python character, represented as a unicode string of length 1, to a
C :ctype:`int`.
``f`` (float) [float]
@@ -511,8 +511,12 @@ and the following format units are left untouched.
Convert a C :ctype:`Py_ssize_t` to a Python integer.
``c`` (string of length 1) [char]
- Convert a C :ctype:`int` representing a character to a Python string of length
- 1.
+ Convert a C :ctype:`int` representing a byte to a Python byte string of
+ length 1.
+
+ ``C`` (string of length 1) [int]
+ Convert a C :ctype:`int` representing a character to Python unicode
+ string of length 1.
``d`` (float) [double]
Convert a C :ctype:`double` to a Python floating point number.
diff --git a/Modules/_cursesmodule.c b/Modules/_cursesmodule.c
index 9bc74a6..5cb198e 100644
--- a/Modules/_cursesmodule.c
+++ b/Modules/_cursesmodule.c
@@ -890,7 +890,7 @@ PyCursesWindow_GetKey(PyCursesWindowObject *self, PyObject *args)
PyErr_SetString(PyCursesError, "no input");
return NULL;
} else if (rtn<=255)
- return Py_BuildValue("c", rtn);
+ return Py_BuildValue("C", rtn);
else
#if defined(__NetBSD__)
return PyUnicode_FromString(unctrl(rtn));
diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c
index b39da8e..6dc46ad 100644
--- a/Modules/arraymodule.c
+++ b/Modules/arraymodule.c
@@ -1141,14 +1141,14 @@ array_reduce(arrayobject *array)
> PY_SSIZE_T_MAX / Py_SIZE(array)) {
return PyErr_NoMemory();
}
- result = Py_BuildValue("O(cy#)O",
+ result = Py_BuildValue("O(Cy#)O",
Py_TYPE(array),
array->ob_descr->typecode,
array->ob_item,
Py_SIZE(array) * array->ob_descr->itemsize,
dict);
} else {
- result = Py_BuildValue("O(c)O",
+ result = Py_BuildValue("O(C)O",
Py_TYPE(array),
array->ob_descr->typecode,
dict);
diff --git a/Python/modsupport.c b/Python/modsupport.c
index 2531d0d..0cbc6f7 100644
--- a/Python/modsupport.c
+++ b/Python/modsupport.c
@@ -289,7 +289,7 @@ do_mkvalue(const char **p_format, va_list *p_va, int flags)
{
char p[1];
p[0] = (char)va_arg(*p_va, int);
- return PyUnicode_FromStringAndSize(p, 1);
+ return PyBytes_FromStringAndSize(p, 1);
}
case 'C':
{