diff --git a/7.3.581 b/7.3.581 new file mode 100644 index 0000000..5530030 --- /dev/null +++ b/7.3.581 @@ -0,0 +1,117 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.581 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.581 +Problem: Problems compiling with Python. +Solution: Pick UCS2 or UCS4 function at runtime. (lilydjwg) +Files: src/if_python.c + + +*** ../vim-7.3.580/src/if_python.c 2012-06-29 16:28:23.000000000 +0200 +--- src/if_python.c 2012-06-29 19:10:53.000000000 +0200 +*************** +*** 196,202 **** + # define PyString_Size dll_PyString_Size + # define PyString_Type (*dll_PyString_Type) + # define PyUnicode_Type (*dll_PyUnicode_Type) +! # define PyUnicodeUCS4_AsEncodedString (*dll_PyUnicodeUCS4_AsEncodedString) + # define PyFloat_AsDouble dll_PyFloat_AsDouble + # define PyFloat_FromDouble dll_PyFloat_FromDouble + # define PyFloat_Type (*dll_PyFloat_Type) +--- 196,203 ---- + # define PyString_Size dll_PyString_Size + # define PyString_Type (*dll_PyString_Type) + # define PyUnicode_Type (*dll_PyUnicode_Type) +! # undef PyUnicode_AsEncodedString +! # define PyUnicode_AsEncodedString py_PyUnicode_AsEncodedString + # define PyFloat_AsDouble dll_PyFloat_AsDouble + # define PyFloat_FromDouble dll_PyFloat_FromDouble + # define PyFloat_Type (*dll_PyFloat_Type) +*************** +*** 290,296 **** + static PyInt(*dll_PyString_Size)(PyObject *); + static PyTypeObject* dll_PyString_Type; + static PyTypeObject* dll_PyUnicode_Type; +! static PyObject *(*PyUnicodeUCS4_AsEncodedString)(PyObject *, char *, char *); + static double(*dll_PyFloat_AsDouble)(PyObject *); + static PyObject*(*dll_PyFloat_FromDouble)(double); + static PyTypeObject* dll_PyFloat_Type; +--- 291,297 ---- + static PyInt(*dll_PyString_Size)(PyObject *); + static PyTypeObject* dll_PyString_Type; + static PyTypeObject* dll_PyUnicode_Type; +! static PyObject *(*py_PyUnicode_AsEncodedString)(PyObject *, char *, char *); + static double(*dll_PyFloat_AsDouble)(PyObject *); + static PyObject*(*dll_PyFloat_FromDouble)(double); + static PyTypeObject* dll_PyFloat_Type; +*************** +*** 406,412 **** + {"PyString_Size", (PYTHON_PROC*)&dll_PyString_Size}, + {"PyString_Type", (PYTHON_PROC*)&dll_PyString_Type}, + {"PyUnicode_Type", (PYTHON_PROC*)&dll_PyUnicode_Type}, +- {"PyUnicodeUCS4_AsEncodedString", (PYTHON_PROC*)&dll_PyUnicodeUCS4_AsEncodedString}, + {"PyFloat_Type", (PYTHON_PROC*)&dll_PyFloat_Type}, + {"PyFloat_AsDouble", (PYTHON_PROC*)&dll_PyFloat_AsDouble}, + {"PyFloat_FromDouble", (PYTHON_PROC*)&dll_PyFloat_FromDouble}, +--- 407,412 ---- +*************** +*** 471,476 **** +--- 471,477 ---- + python_runtime_link_init(char *libname, int verbose) + { + int i; ++ void *ucs_as_encoded_string; + + #if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON3) + /* Can't have Python and Python3 loaded at the same time. +*************** +*** 506,511 **** +--- 507,531 ---- + return FAIL; + } + } ++ ++ /* Load unicode functions separately as only the ucs2 or the ucs4 functions ++ * will be present in the library. */ ++ ucs_as_encoded_string = symbol_from_dll(hinstPython, ++ "PyUnicodeUCS2_AsEncodedString"); ++ if (ucs_as_encoded_string == NULL) ++ ucs_as_encoded_string = symbol_from_dll(hinstPython, ++ "PyUnicodeUCS4_AsEncodedString"); ++ if (ucs_as_encoded_string != NULL) ++ py_PyUnicode_AsEncodedString = ucs_as_encoded_string; ++ else ++ { ++ close_dll(hinstPython); ++ hinstPython = 0; ++ if (verbose) ++ EMSG2(_(e_loadfunc), "PyUnicode_UCSX_*"); ++ return FAIL; ++ } ++ + return OK; + } + +*** ../vim-7.3.580/src/version.c 2012-06-29 17:51:58.000000000 +0200 +--- src/version.c 2012-06-29 19:13:47.000000000 +0200 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 581, + /**/ + +-- +ASCII stupid question, get a stupid ANSI. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///