diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index a60fa8bd1f1b1c7d3f9dab6dd990567eabbba67f..860e38b84dfe8eeff08fc67c136eee61116812f3 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -851,7 +851,7 @@ PyUnicode_FromFormatV(const char *format, va_list vargs) fail: if (callresults) { PyObject **callresult2 = callresults; - while (callresult2 <= callresult) { + while (callresult2 < callresult) { Py_DECREF(*callresult2); ++callresult2; } diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 08c1a0061ab57c0d42ed73e9fda9f17b9ee55586..2f4e5131525aa51f1a803b6564f1a7db70953557 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -314,14 +314,17 @@ builtin_chr(PyObject *self, PyObject *args) return PyUnicode_FromOrdinal(x); } -PyDoc_STRVAR(chr_doc, +PyDoc_VAR(chr_doc) = PyDoc_STR( "chr(i) -> Unicode character\n\ \n\ Return a Unicode string of one character with ordinal i; 0 <= i <= 0x10ffff." +) #ifndef Py_UNICODE_WIDE +PyDoc_STR( "\nIf 0x10000 <= i, a surrogate pair is returned." +) #endif -); +; static PyObject * @@ -1219,14 +1222,17 @@ builtin_ord(PyObject *self, PyObject* obj) return NULL; } -PyDoc_STRVAR(ord_doc, +PyDoc_VAR(ord_doc) = PyDoc_STR( "ord(c) -> integer\n\ \n\ Return the integer ordinal of a one-character string." +) #ifndef Py_UNICODE_WIDE +PyDoc_STR( "\nA valid surrogate pair is also accepted." +) #endif -); +; static PyObject * diff --git a/Python/errors.c b/Python/errors.c index 2a84c8d30dc56324b24fcf696b55074cbc379ff2..37705227352ad13601f8754721da8cfc7c4aeb3f 100644 --- a/Python/errors.c +++ b/Python/errors.c @@ -333,9 +333,9 @@ PyErr_SetFromErrnoWithFilenameObject(PyObject *exc, PyObject *filenameObject) #endif /* Unix/Windows */ #endif /* PLAN 9*/ if (filenameObject != NULL) - v = Py_BuildValue("(isO)", i, s, filenameObject); + v = Py_BuildValue("(iUO)", i, s, filenameObject); else - v = Py_BuildValue("(is)", i, s); + v = Py_BuildValue("(iU)", i, s); if (v != NULL) { PyErr_SetObject(exc, v); Py_DECREF(v); @@ -413,9 +413,9 @@ PyObject *PyErr_SetExcFromWindowsErrWithFilenameObject( s[--len] = '\0'; } if (filenameObject != NULL) - v = Py_BuildValue("(isO)", err, s, filenameObject); + v = Py_BuildValue("(iUO)", err, s, filenameObject); else - v = Py_BuildValue("(is)", err, s); + v = Py_BuildValue("(iU)", err, s); if (v != NULL) { PyErr_SetObject(exc, v); Py_DECREF(v);