Mercurial > cpython-lru_cache-weakref
diff Include/pyerrors.h @ 25091:0337dad8403e legacy-trunk
PEP 293 implemention (from SF patch http://www.python.org/sf/432401)
| author | Walter Dörwald <walter@livinglogic.de> |
|---|---|
| date | Mon, 02 Sep 2002 13:14:32 +0000 |
| parents | 31d2860089e6 |
| children | 6a85a1c9d33d |
line wrap: on
line diff
--- a/Include/pyerrors.h Mon Sep 02 12:29:11 2002 +0000 +++ b/Include/pyerrors.h Mon Sep 02 13:14:32 2002 +0000 @@ -54,6 +54,9 @@ PyAPI_DATA(PyObject *) PyExc_TypeError; PyAPI_DATA(PyObject *) PyExc_UnboundLocalError; PyAPI_DATA(PyObject *) PyExc_UnicodeError; +PyAPI_DATA(PyObject *) PyExc_UnicodeEncodeError; +PyAPI_DATA(PyObject *) PyExc_UnicodeDecodeError; +PyAPI_DATA(PyObject *) PyExc_UnicodeTranslateError; PyAPI_DATA(PyObject *) PyExc_ValueError; PyAPI_DATA(PyObject *) PyExc_ZeroDivisionError; #ifdef MS_WINDOWS @@ -114,6 +117,69 @@ PyAPI_FUNC(void) PyErr_SyntaxLocation(char *, int); PyAPI_FUNC(PyObject *) PyErr_ProgramText(char *, int); +/* The following functions are used to create and modify unicode + exceptions from C */ +/* create a UnicodeDecodeError object */ +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_Create( + const char *, const char *, int, int, int, const char *); + +/* create a UnicodeEncodeError object */ +PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_Create( + const char *, const Py_UNICODE *, int, int, int, const char *); + +/* create a UnicodeTranslateError object */ +PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_Create( + const Py_UNICODE *, int, int, int, const char *); + +/* get the encoding attribute */ +PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetEncoding(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetEncoding(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_GetEncoding(PyObject *); + +/* get the object attribute */ +PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetObject(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetObject(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_GetObject(PyObject *); + +/* get the value of the start attribute (the int * may not be NULL) + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_GetStart(PyObject *, int *); +PyAPI_FUNC(int) PyUnicodeDecodeError_GetStart(PyObject *, int *); +PyAPI_FUNC(int) PyUnicodeTranslateError_GetStart(PyObject *, int *); + +/* assign a new value to the start attribute + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_SetStart(PyObject *, int); +PyAPI_FUNC(int) PyUnicodeDecodeError_SetStart(PyObject *, int); +PyAPI_FUNC(int) PyUnicodeTranslateError_SetStart(PyObject *, int); + +/* get the value of the end attribute (the int *may not be NULL) + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_GetEnd(PyObject *, int *); +PyAPI_FUNC(int) PyUnicodeDecodeError_GetEnd(PyObject *, int *); +PyAPI_FUNC(int) PyUnicodeTranslateError_GetEnd(PyObject *, int *); + +/* assign a new value to the end attribute + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_SetEnd(PyObject *, int); +PyAPI_FUNC(int) PyUnicodeDecodeError_SetEnd(PyObject *, int); +PyAPI_FUNC(int) PyUnicodeTranslateError_SetEnd(PyObject *, int); + +/* get the value of the reason attribute */ +PyAPI_FUNC(PyObject *) PyUnicodeEncodeError_GetReason(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_GetReason(PyObject *); +PyAPI_FUNC(PyObject *) PyUnicodeTranslateError_GetReason(PyObject *); + +/* assign a new value to the reason attribute + return 0 on success, -1 on failure */ +PyAPI_FUNC(int) PyUnicodeEncodeError_SetReason( + PyObject *, const char *); +PyAPI_FUNC(int) PyUnicodeDecodeError_SetReason( + PyObject *, const char *); +PyAPI_FUNC(int) PyUnicodeTranslateError_SetReason( + PyObject *, const char *); + + /* These APIs aren't really part of the error implementation, but often needed to format error messages; the native C lib APIs are not available on all platforms, which is why we provide emulations
