]> granicus.if.org Git - python/commitdiff
Py_BuildValue's 'c' code should use byte strings #5666
authorBenjamin Peterson <benjamin@python.org>
Fri, 3 Apr 2009 22:18:11 +0000 (22:18 +0000)
committerBenjamin Peterson <benjamin@python.org>
Fri, 3 Apr 2009 22:18:11 +0000 (22:18 +0000)
Doc/c-api/arg.rst
Modules/_cursesmodule.c
Modules/arraymodule.c
Python/modsupport.c

index a554bc9300d8c684e6cc32e90210b64562333d4c..8a40f22473c2038ff42adae8dbda5c0b2942df0c 100644 (file)
@@ -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.
index 9bc74a61f4e732345602c462693e48dc6b86c578..5cb198e9a83aa95e4b7d266743cdfc06149da72d 100644 (file)
@@ -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));
index b39da8e96358a8521c62996e13f1ec351c01648c..6dc46ad0b4d170c3ebe51160b30835bffdb9487a 100644 (file)
@@ -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);
index 2531d0d1cabcab5140cbf22c83ca0f810729d702..0cbc6f7cfbd8cb55db6cc5d4e88ed41b7db70d15 100644 (file)
@@ -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':
                {