diff options
author | Bram Moolenaar <Bram@vim.org> | 2013-05-30 12:40:39 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2013-05-30 12:40:39 +0200 |
commit | 1a3b56953e22f9e50d34c50edb5c24292741eb3d (patch) | |
tree | 087d4952781c37f686e0a0586b327c71260af5f9 /src/if_python3.c | |
parent | a1544c00c8ace9b74714b609b5079ae61faa20b5 (diff) | |
download | vim-git-1a3b56953e22f9e50d34c50edb5c24292741eb3d.tar.gz |
updated for version 7.3.1059v7.3.1059
Problem: Python: Using fixed size buffers.
Solution: Python patch 18: Use python's own formatter. (ZyX)
Diffstat (limited to 'src/if_python3.c')
-rw-r--r-- | src/if_python3.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/if_python3.c b/src/if_python3.c index 02132d63d..5d87fa384 100644 --- a/src/if_python3.c +++ b/src/if_python3.c @@ -90,6 +90,7 @@ #define PyString_AsString(obj) PyBytes_AsString(obj) #define PyString_Size(obj) PyBytes_GET_SIZE(bytes) #define PyString_FromString(repr) PyUnicode_FromString(repr) +#define PyString_FromFormat PyUnicode_FromFormat #define PyString_AsStringAndSize(obj, buffer, len) PyBytes_AsStringAndSize(obj, buffer, len) #define PyInt_Check(obj) PyLong_Check(obj) #define PyInt_FromLong(i) PyLong_FromLong(i) @@ -230,6 +231,16 @@ # define PyType_GenericNew py3_PyType_GenericNew # undef PyUnicode_FromString # define PyUnicode_FromString py3_PyUnicode_FromString +# ifndef PyUnicode_FromFormat +# define PyUnicode_FromFormat py3_PyUnicode_FromFormat +# else +# define Py_UNICODE_USE_UCS_FUNCTIONS +# ifdef Py_UNICODE_WIDE +# define PyUnicodeUCS4_FromFormat py3_PyUnicodeUCS4_FromFormat +# else +# define PyUnicodeUCS2_FromFormat py3_PyUnicodeUCS2_FromFormat +# endif +# endif # undef PyUnicode_Decode # define PyUnicode_Decode py3_PyUnicode_Decode # define PyType_IsSubtype py3_PyType_IsSubtype @@ -293,6 +304,15 @@ static PyObject* (*py3_Py_BuildValue)(char *, ...); static int (*py3_PyType_Ready)(PyTypeObject *type); static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item); static PyObject* (*py3_PyUnicode_FromString)(const char *u); +# ifndef Py_UNICODE_USE_UCS_FUNCTIONS +static PyObject* (*py3_PyUnicode_FromFormat)(const char *u, ...); +# else +# ifdef Py_UNICODE_WIDE +static PyObject* (*py3_PyUnicodeUCS4_FromFormat)(const char *u, ...); +# else +static PyObject* (*py3_PyUnicodeUCS2_FromFormat)(const char *u, ...); +# endif +# endif static PyObject* (*py3_PyUnicode_Decode)(const char *u, Py_ssize_t size, const char *encoding, const char *errors); static long (*py3_PyLong_AsLong)(PyObject *); @@ -458,6 +478,15 @@ static struct # else {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString}, # endif +# ifndef Py_UNICODE_USE_UCS_FUNCTIONS + {"PyUnicode_FromFormat", (PYTHON_PROC*)&py3_PyUnicode_FromFormat}, +# else +# ifdef Py_UNICODE_WIDE + {"PyUnicodeUCS4_FromFormat", (PYTHON_PROC*)&py3_PyUnicodeUCS4_FromFormat}, +# else + {"PyUnicodeUCS2_FromFormat", (PYTHON_PROC*)&py3_PyUnicodeUCS2_FromFormat}, +# endif +# endif {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString}, {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize}, {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString}, |