diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2010-10-09 10:12:11 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2010-10-09 10:12:11 (GMT) |
commit | 257d38ffdd5e85c17e14d63e1930e4756864878f (patch) | |
tree | 5ea1ceab49198640d7fbf13317f84354945a7b5a | |
parent | fc8408cbe85dfc549686036668ceed77f2d8e76f (diff) | |
download | cpython-257d38ffdd5e85c17e14d63e1930e4756864878f.zip cpython-257d38ffdd5e85c17e14d63e1930e4756864878f.tar.gz cpython-257d38ffdd5e85c17e14d63e1930e4756864878f.tar.bz2 |
Issue #9738: Document PyErr_SetString() and PyErr_SetFromErrnoWithFilename()
encodings
-rw-r--r-- | Doc/c-api/exceptions.rst | 4 | ||||
-rw-r--r-- | Include/pyerrors.h | 9 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 13 insertions, 3 deletions
diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst index 3fce3b2..0094af3 100644 --- a/Doc/c-api/exceptions.rst +++ b/Doc/c-api/exceptions.rst @@ -134,7 +134,7 @@ in various ways. There is a separate error indicator for each thread. This is the most common way to set the error indicator. The first argument specifies the exception type; it is normally one of the standard exceptions, e.g. :c:data:`PyExc_RuntimeError`. You need not increment its reference count. - The second argument is an error message; it is converted to a string object. + The second argument is an error message; it is decoded from ``'utf-8``'. .. c:function:: void PyErr_SetObject(PyObject *type, PyObject *value) @@ -261,6 +261,8 @@ in various ways. There is a separate error indicator for each thread. *filename* is not *NULL*, it is passed to the constructor of *type* as a third parameter. In the case of exceptions such as :exc:`IOError` and :exc:`OSError`, this is used to define the :attr:`filename` attribute of the exception instance. + *filename* is decoded from the filesystem encoding + (:func:`sys.getfilesystemencoding`). .. c:function:: PyObject* PyErr_SetFromWindowsErr(int ierr) diff --git a/Include/pyerrors.h b/Include/pyerrors.h index fb9ce91..58a3df7 100644 --- a/Include/pyerrors.h +++ b/Include/pyerrors.h @@ -60,7 +60,10 @@ typedef struct { PyAPI_FUNC(void) PyErr_SetNone(PyObject *); PyAPI_FUNC(void) PyErr_SetObject(PyObject *, PyObject *); -PyAPI_FUNC(void) PyErr_SetString(PyObject *, const char *); +PyAPI_FUNC(void) PyErr_SetString( + PyObject *exception, + const char *string /* decoded from utf-8 */ + ); PyAPI_FUNC(PyObject *) PyErr_Occurred(void); PyAPI_FUNC(void) PyErr_Clear(void); PyAPI_FUNC(void) PyErr_Fetch(PyObject **, PyObject **, PyObject **); @@ -177,7 +180,9 @@ PyAPI_FUNC(PyObject *) PyErr_SetFromErrno(PyObject *); PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilenameObject( PyObject *, PyObject *); PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithFilename( - PyObject *, const char *); + PyObject *exc, + const char *filename /* decoded from the filesystem encoding */ + ); #ifdef MS_WINDOWS PyAPI_FUNC(PyObject *) PyErr_SetFromErrnoWithUnicodeFilename( PyObject *, const Py_UNICODE *); @@ -10,6 +10,9 @@ What's New in Python 3.2 Alpha 3? Core and Builtins ----------------- +- Issue #9738: Document PyErr_SetString() and PyErr_SetFromErrnoWithFilename() + encodings + - ast.literal_eval() can now handle negative numbers. It is also a little more liberal in what it accepts without compromising the safety of the evaluation. For example, 3j+4 and 3+4+5 are both accepted. |