Mercurial > vim
comparison src/if_python3.c @ 3910:2a7b2943be22 v7.3.711
updated for version 7.3.711
Problem: vim.current.buffer is not available. (lilydjwg)
Solution: Use py3_PyUnicode_AsUTF8 instead of py3_PyUnicode_AsUTF8String.
(Ken Takata)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Tue, 23 Oct 2012 05:17:37 +0200 |
parents | b5b892472ecb |
children | eb268db98f32 |
comparison
equal
deleted
inserted
replaced
3909:eb8c38e45aee | 3910:2a7b2943be22 |
---|---|
174 # define _PyObject_NextNotImplemented (*py3__PyObject_NextNotImplemented) | 174 # define _PyObject_NextNotImplemented (*py3__PyObject_NextNotImplemented) |
175 # define PyModule_AddObject py3_PyModule_AddObject | 175 # define PyModule_AddObject py3_PyModule_AddObject |
176 # define PyImport_AppendInittab py3_PyImport_AppendInittab | 176 # define PyImport_AppendInittab py3_PyImport_AppendInittab |
177 # if PY_VERSION_HEX >= 0x030300f0 | 177 # if PY_VERSION_HEX >= 0x030300f0 |
178 # undef _PyUnicode_AsString | 178 # undef _PyUnicode_AsString |
179 # define _PyUnicode_AsString py3_PyUnicode_AsUTF8String | 179 # define _PyUnicode_AsString py3_PyUnicode_AsUTF8 |
180 # else | 180 # else |
181 # define _PyUnicode_AsString py3__PyUnicode_AsString | 181 # define _PyUnicode_AsString py3__PyUnicode_AsString |
182 # endif | 182 # endif |
183 # undef PyUnicode_AsEncodedString | 183 # undef PyUnicode_AsEncodedString |
184 # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString | 184 # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString |
284 static PyObject* py3__Py_NoneStruct; | 284 static PyObject* py3__Py_NoneStruct; |
285 static PyObject* py3__Py_FalseStruct; | 285 static PyObject* py3__Py_FalseStruct; |
286 static PyObject* py3__Py_TrueStruct; | 286 static PyObject* py3__Py_TrueStruct; |
287 static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o); | 287 static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o); |
288 static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void)); | 288 static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void)); |
289 #if PY_VERSION_HEX >= 0x030300f0 | 289 # if PY_VERSION_HEX >= 0x030300f0 |
290 static char* (*py3_PyUnicode_AsUTF8String)(PyObject *unicode); | 290 static char* (*py3_PyUnicode_AsUTF8)(PyObject *unicode); |
291 #else | 291 # else |
292 static char* (*py3__PyUnicode_AsString)(PyObject *unicode); | 292 static char* (*py3__PyUnicode_AsString)(PyObject *unicode); |
293 #endif | 293 # endif |
294 static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors); | 294 static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors); |
295 static char* (*py3_PyBytes_AsString)(PyObject *bytes); | 295 static char* (*py3_PyBytes_AsString)(PyObject *bytes); |
296 static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length); | 296 static int (*py3_PyBytes_AsStringAndSize)(PyObject *bytes, char **buffer, int *length); |
297 static PyObject* (*py3_PyBytes_FromString)(char *str); | 297 static PyObject* (*py3_PyBytes_FromString)(char *str); |
298 static PyObject* (*py3_PyFloat_FromDouble)(double num); | 298 static PyObject* (*py3_PyFloat_FromDouble)(double num); |
346 } py3_funcname_table[] = | 346 } py3_funcname_table[] = |
347 { | 347 { |
348 {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv}, | 348 {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv}, |
349 {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome}, | 349 {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome}, |
350 {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize}, | 350 {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize}, |
351 #ifndef PY_SSIZE_T_CLEAN | 351 # ifndef PY_SSIZE_T_CLEAN |
352 {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple}, | 352 {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple}, |
353 {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue}, | 353 {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue}, |
354 #else | 354 # else |
355 {"_PyArg_ParseTuple_SizeT", (PYTHON_PROC*)&py3_PyArg_ParseTuple}, | 355 {"_PyArg_ParseTuple_SizeT", (PYTHON_PROC*)&py3_PyArg_ParseTuple}, |
356 {"_Py_BuildValue_SizeT", (PYTHON_PROC*)&py3_Py_BuildValue}, | 356 {"_Py_BuildValue_SizeT", (PYTHON_PROC*)&py3_Py_BuildValue}, |
357 #endif | 357 # endif |
358 {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free}, | 358 {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free}, |
359 {"PyMem_Malloc", (PYTHON_PROC*)&py3_PyMem_Malloc}, | 359 {"PyMem_Malloc", (PYTHON_PROC*)&py3_PyMem_Malloc}, |
360 {"PyList_New", (PYTHON_PROC*)&py3_PyList_New}, | 360 {"PyList_New", (PYTHON_PROC*)&py3_PyList_New}, |
361 {"PyGILState_Ensure", (PYTHON_PROC*)&py3_PyGILState_Ensure}, | 361 {"PyGILState_Ensure", (PYTHON_PROC*)&py3_PyGILState_Ensure}, |
362 {"PyGILState_Release", (PYTHON_PROC*)&py3_PyGILState_Release}, | 362 {"PyGILState_Release", (PYTHON_PROC*)&py3_PyGILState_Release}, |
404 {"_Py_TrueStruct", (PYTHON_PROC*)&py3__Py_TrueStruct}, | 404 {"_Py_TrueStruct", (PYTHON_PROC*)&py3__Py_TrueStruct}, |
405 {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear}, | 405 {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear}, |
406 {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init}, | 406 {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init}, |
407 {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject}, | 407 {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject}, |
408 {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab}, | 408 {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab}, |
409 #if PY_VERSION_HEX >= 0x030300f0 | 409 # if PY_VERSION_HEX >= 0x030300f0 |
410 {"PyUnicode_AsUTF8String", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8String}, | 410 {"PyUnicode_AsUTF8", (PYTHON_PROC*)&py3_PyUnicode_AsUTF8}, |
411 #else | 411 # else |
412 {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString}, | 412 {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString}, |
413 #endif | 413 # endif |
414 {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString}, | 414 {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString}, |
415 {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize}, | 415 {"PyBytes_AsStringAndSize", (PYTHON_PROC*)&py3_PyBytes_AsStringAndSize}, |
416 {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString}, | 416 {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString}, |
417 {"PyFloat_FromDouble", (PYTHON_PROC*)&py3_PyFloat_FromDouble}, | 417 {"PyFloat_FromDouble", (PYTHON_PROC*)&py3_PyFloat_FromDouble}, |
418 {"PyFloat_AsDouble", (PYTHON_PROC*)&py3_PyFloat_AsDouble}, | 418 {"PyFloat_AsDouble", (PYTHON_PROC*)&py3_PyFloat_AsDouble}, |
501 } | 501 } |
502 } | 502 } |
503 | 503 |
504 /* Load unicode functions separately as only the ucs2 or the ucs4 functions | 504 /* Load unicode functions separately as only the ucs2 or the ucs4 functions |
505 * will be present in the library. */ | 505 * will be present in the library. */ |
506 #if PY_VERSION_HEX >= 0x030300f0 | 506 # if PY_VERSION_HEX >= 0x030300f0 |
507 ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString"); | 507 ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicode_FromString"); |
508 ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode"); | 508 ucs_decode = symbol_from_dll(hinstPy3, "PyUnicode_Decode"); |
509 ucs_as_encoded_string = symbol_from_dll(hinstPy3, | 509 ucs_as_encoded_string = symbol_from_dll(hinstPy3, |
510 "PyUnicode_AsEncodedString"); | 510 "PyUnicode_AsEncodedString"); |
511 #else | 511 # else |
512 ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString"); | 512 ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString"); |
513 ucs_decode = symbol_from_dll(hinstPy3, | 513 ucs_decode = symbol_from_dll(hinstPy3, |
514 "PyUnicodeUCS2_Decode"); | 514 "PyUnicodeUCS2_Decode"); |
515 ucs_as_encoded_string = symbol_from_dll(hinstPy3, | 515 ucs_as_encoded_string = symbol_from_dll(hinstPy3, |
516 "PyUnicodeUCS2_AsEncodedString"); | 516 "PyUnicodeUCS2_AsEncodedString"); |
521 ucs_decode = symbol_from_dll(hinstPy3, | 521 ucs_decode = symbol_from_dll(hinstPy3, |
522 "PyUnicodeUCS4_Decode"); | 522 "PyUnicodeUCS4_Decode"); |
523 ucs_as_encoded_string = symbol_from_dll(hinstPy3, | 523 ucs_as_encoded_string = symbol_from_dll(hinstPy3, |
524 "PyUnicodeUCS4_AsEncodedString"); | 524 "PyUnicodeUCS4_AsEncodedString"); |
525 } | 525 } |
526 #endif | 526 # endif |
527 if (ucs_from_string && ucs_decode && ucs_as_encoded_string) | 527 if (ucs_from_string && ucs_decode && ucs_as_encoded_string) |
528 { | 528 { |
529 py3_PyUnicode_FromString = ucs_from_string; | 529 py3_PyUnicode_FromString = ucs_from_string; |
530 py3_PyUnicode_Decode = ucs_decode; | 530 py3_PyUnicode_Decode = ucs_decode; |
531 py3_PyUnicode_AsEncodedString = ucs_as_encoded_string; | 531 py3_PyUnicode_AsEncodedString = ucs_as_encoded_string; |