comparison src/if_python.c @ 4972:537bbfff0c5c v7.3.1231

updated for version 7.3.1231 Problem: Python: use of numbers not consistent. Solution: Add support for Number protocol. (ZyX)
author Bram Moolenaar <bram@vim.org>
date Sun, 23 Jun 2013 14:16:57 +0200
parents f5c822e5a0eb
children 39980afcf54a
comparison
equal deleted inserted replaced
4971:7faa16c489af 4972:537bbfff0c5c
218 # define PyObject_HasAttrString dll_PyObject_HasAttrString 218 # define PyObject_HasAttrString dll_PyObject_HasAttrString
219 # define PyObject_SetAttrString dll_PyObject_SetAttrString 219 # define PyObject_SetAttrString dll_PyObject_SetAttrString
220 # define PyObject_CallFunctionObjArgs dll_PyObject_CallFunctionObjArgs 220 # define PyObject_CallFunctionObjArgs dll_PyObject_CallFunctionObjArgs
221 # define PyObject_CallFunction dll_PyObject_CallFunction 221 # define PyObject_CallFunction dll_PyObject_CallFunction
222 # define PyObject_Call dll_PyObject_Call 222 # define PyObject_Call dll_PyObject_Call
223 # define PyObject_Repr dll_PyObject_Repr
223 # define PyString_AsString dll_PyString_AsString 224 # define PyString_AsString dll_PyString_AsString
224 # define PyString_AsStringAndSize dll_PyString_AsStringAndSize 225 # define PyString_AsStringAndSize dll_PyString_AsStringAndSize
225 # define PyString_FromString dll_PyString_FromString 226 # define PyString_FromString dll_PyString_FromString
226 # define PyString_FromFormat dll_PyString_FromFormat 227 # define PyString_FromFormat dll_PyString_FromFormat
227 # define PyString_FromStringAndSize dll_PyString_FromStringAndSize 228 # define PyString_FromStringAndSize dll_PyString_FromStringAndSize
231 # undef PyUnicode_AsEncodedString 232 # undef PyUnicode_AsEncodedString
232 # define PyUnicode_AsEncodedString py_PyUnicode_AsEncodedString 233 # define PyUnicode_AsEncodedString py_PyUnicode_AsEncodedString
233 # define PyFloat_AsDouble dll_PyFloat_AsDouble 234 # define PyFloat_AsDouble dll_PyFloat_AsDouble
234 # define PyFloat_FromDouble dll_PyFloat_FromDouble 235 # define PyFloat_FromDouble dll_PyFloat_FromDouble
235 # define PyFloat_Type (*dll_PyFloat_Type) 236 # define PyFloat_Type (*dll_PyFloat_Type)
237 # define PyNumber_Check dll_PyNumber_Check
238 # define PyNumber_Long dll_PyNumber_Long
236 # define PyImport_AddModule (*dll_PyImport_AddModule) 239 # define PyImport_AddModule (*dll_PyImport_AddModule)
237 # define PySys_SetObject dll_PySys_SetObject 240 # define PySys_SetObject dll_PySys_SetObject
238 # define PySys_GetObject dll_PySys_GetObject 241 # define PySys_GetObject dll_PySys_GetObject
239 # define PySys_SetArgv dll_PySys_SetArgv 242 # define PySys_SetArgv dll_PySys_SetArgv
240 # define PyType_Type (*dll_PyType_Type) 243 # define PyType_Type (*dll_PyType_Type)
358 static int (*dll_PyObject_HasAttrString)(PyObject *, const char *); 361 static int (*dll_PyObject_HasAttrString)(PyObject *, const char *);
359 static PyObject* (*dll_PyObject_SetAttrString)(PyObject *, const char *, PyObject *); 362 static PyObject* (*dll_PyObject_SetAttrString)(PyObject *, const char *, PyObject *);
360 static PyObject* (*dll_PyObject_CallFunctionObjArgs)(PyObject *, ...); 363 static PyObject* (*dll_PyObject_CallFunctionObjArgs)(PyObject *, ...);
361 static PyObject* (*dll_PyObject_CallFunction)(PyObject *, char *, ...); 364 static PyObject* (*dll_PyObject_CallFunction)(PyObject *, char *, ...);
362 static PyObject* (*dll_PyObject_Call)(PyObject *, PyObject *, PyObject *); 365 static PyObject* (*dll_PyObject_Call)(PyObject *, PyObject *, PyObject *);
366 static PyObject* (*dll_PyObject_Repr)(PyObject *);
363 static char*(*dll_PyString_AsString)(PyObject *); 367 static char*(*dll_PyString_AsString)(PyObject *);
364 static int(*dll_PyString_AsStringAndSize)(PyObject *, char **, int *); 368 static int(*dll_PyString_AsStringAndSize)(PyObject *, char **, int *);
365 static PyObject*(*dll_PyString_FromString)(const char *); 369 static PyObject*(*dll_PyString_FromString)(const char *);
366 static PyObject*(*dll_PyString_FromFormat)(const char *, ...); 370 static PyObject*(*dll_PyString_FromFormat)(const char *, ...);
367 static PyObject*(*dll_PyString_FromStringAndSize)(const char *, PyInt); 371 static PyObject*(*dll_PyString_FromStringAndSize)(const char *, PyInt);
370 static PyTypeObject* dll_PyUnicode_Type; 374 static PyTypeObject* dll_PyUnicode_Type;
371 static PyObject *(*py_PyUnicode_AsEncodedString)(PyObject *, char *, char *); 375 static PyObject *(*py_PyUnicode_AsEncodedString)(PyObject *, char *, char *);
372 static double(*dll_PyFloat_AsDouble)(PyObject *); 376 static double(*dll_PyFloat_AsDouble)(PyObject *);
373 static PyObject*(*dll_PyFloat_FromDouble)(double); 377 static PyObject*(*dll_PyFloat_FromDouble)(double);
374 static PyTypeObject* dll_PyFloat_Type; 378 static PyTypeObject* dll_PyFloat_Type;
379 static int(*dll_PyNumber_Check)(PyObject *);
380 static PyObject*(*dll_PyNumber_Long)(PyObject *);
375 static int(*dll_PySys_SetObject)(char *, PyObject *); 381 static int(*dll_PySys_SetObject)(char *, PyObject *);
376 static PyObject *(*dll_PySys_GetObject)(char *); 382 static PyObject *(*dll_PySys_GetObject)(char *);
377 static int(*dll_PySys_SetArgv)(int, char **); 383 static int(*dll_PySys_SetArgv)(int, char **);
378 static PyTypeObject* dll_PyType_Type; 384 static PyTypeObject* dll_PyType_Type;
379 static int (*dll_PyType_Ready)(PyTypeObject *type); 385 static int (*dll_PyType_Ready)(PyTypeObject *type);
438 static PyObject *imp_PyExc_KeyboardInterrupt; 444 static PyObject *imp_PyExc_KeyboardInterrupt;
439 static PyObject *imp_PyExc_TypeError; 445 static PyObject *imp_PyExc_TypeError;
440 static PyObject *imp_PyExc_ValueError; 446 static PyObject *imp_PyExc_ValueError;
441 static PyObject *imp_PyExc_RuntimeError; 447 static PyObject *imp_PyExc_RuntimeError;
442 static PyObject *imp_PyExc_ImportError; 448 static PyObject *imp_PyExc_ImportError;
449 static PyObject *imp_PyExc_OverflowError;
443 450
444 # define PyExc_AttributeError imp_PyExc_AttributeError 451 # define PyExc_AttributeError imp_PyExc_AttributeError
445 # define PyExc_IndexError imp_PyExc_IndexError 452 # define PyExc_IndexError imp_PyExc_IndexError
446 # define PyExc_KeyError imp_PyExc_KeyError 453 # define PyExc_KeyError imp_PyExc_KeyError
447 # define PyExc_KeyboardInterrupt imp_PyExc_KeyboardInterrupt 454 # define PyExc_KeyboardInterrupt imp_PyExc_KeyboardInterrupt
448 # define PyExc_TypeError imp_PyExc_TypeError 455 # define PyExc_TypeError imp_PyExc_TypeError
449 # define PyExc_ValueError imp_PyExc_ValueError 456 # define PyExc_ValueError imp_PyExc_ValueError
450 # define PyExc_RuntimeError imp_PyExc_RuntimeError 457 # define PyExc_RuntimeError imp_PyExc_RuntimeError
451 # define PyExc_ImportError imp_PyExc_ImportError 458 # define PyExc_ImportError imp_PyExc_ImportError
459 # define PyExc_OverflowError imp_PyExc_OverflowError
452 460
453 /* 461 /*
454 * Table of name to function pointer of python. 462 * Table of name to function pointer of python.
455 */ 463 */
456 # define PYTHON_PROC FARPROC 464 # define PYTHON_PROC FARPROC
531 {"PyObject_HasAttrString", (PYTHON_PROC*)&dll_PyObject_HasAttrString}, 539 {"PyObject_HasAttrString", (PYTHON_PROC*)&dll_PyObject_HasAttrString},
532 {"PyObject_SetAttrString", (PYTHON_PROC*)&dll_PyObject_SetAttrString}, 540 {"PyObject_SetAttrString", (PYTHON_PROC*)&dll_PyObject_SetAttrString},
533 {"PyObject_CallFunctionObjArgs", (PYTHON_PROC*)&dll_PyObject_CallFunctionObjArgs}, 541 {"PyObject_CallFunctionObjArgs", (PYTHON_PROC*)&dll_PyObject_CallFunctionObjArgs},
534 {"PyObject_CallFunction", (PYTHON_PROC*)&dll_PyObject_CallFunction}, 542 {"PyObject_CallFunction", (PYTHON_PROC*)&dll_PyObject_CallFunction},
535 {"PyObject_Call", (PYTHON_PROC*)&dll_PyObject_Call}, 543 {"PyObject_Call", (PYTHON_PROC*)&dll_PyObject_Call},
544 {"PyObject_Repr", (PYTHON_PROC*)&dll_PyObject_Repr},
536 {"PyString_AsString", (PYTHON_PROC*)&dll_PyString_AsString}, 545 {"PyString_AsString", (PYTHON_PROC*)&dll_PyString_AsString},
537 {"PyString_AsStringAndSize", (PYTHON_PROC*)&dll_PyString_AsStringAndSize}, 546 {"PyString_AsStringAndSize", (PYTHON_PROC*)&dll_PyString_AsStringAndSize},
538 {"PyString_FromString", (PYTHON_PROC*)&dll_PyString_FromString}, 547 {"PyString_FromString", (PYTHON_PROC*)&dll_PyString_FromString},
539 {"PyString_FromFormat", (PYTHON_PROC*)&dll_PyString_FromFormat}, 548 {"PyString_FromFormat", (PYTHON_PROC*)&dll_PyString_FromFormat},
540 {"PyString_FromStringAndSize", (PYTHON_PROC*)&dll_PyString_FromStringAndSize}, 549 {"PyString_FromStringAndSize", (PYTHON_PROC*)&dll_PyString_FromStringAndSize},
543 {"PyUnicode_Type", (PYTHON_PROC*)&dll_PyUnicode_Type}, 552 {"PyUnicode_Type", (PYTHON_PROC*)&dll_PyUnicode_Type},
544 {"PyFloat_Type", (PYTHON_PROC*)&dll_PyFloat_Type}, 553 {"PyFloat_Type", (PYTHON_PROC*)&dll_PyFloat_Type},
545 {"PyFloat_AsDouble", (PYTHON_PROC*)&dll_PyFloat_AsDouble}, 554 {"PyFloat_AsDouble", (PYTHON_PROC*)&dll_PyFloat_AsDouble},
546 {"PyFloat_FromDouble", (PYTHON_PROC*)&dll_PyFloat_FromDouble}, 555 {"PyFloat_FromDouble", (PYTHON_PROC*)&dll_PyFloat_FromDouble},
547 {"PyImport_AddModule", (PYTHON_PROC*)&dll_PyImport_AddModule}, 556 {"PyImport_AddModule", (PYTHON_PROC*)&dll_PyImport_AddModule},
557 {"PyNumber_Check", (PYTHON_PROC*)&dll_PyNumber_Check},
558 {"PyNumber_Long", (PYTHON_PROC*)&dll_PyNumber_Long},
548 {"PySys_SetObject", (PYTHON_PROC*)&dll_PySys_SetObject}, 559 {"PySys_SetObject", (PYTHON_PROC*)&dll_PySys_SetObject},
549 {"PySys_GetObject", (PYTHON_PROC*)&dll_PySys_GetObject}, 560 {"PySys_GetObject", (PYTHON_PROC*)&dll_PySys_GetObject},
550 {"PySys_SetArgv", (PYTHON_PROC*)&dll_PySys_SetArgv}, 561 {"PySys_SetArgv", (PYTHON_PROC*)&dll_PySys_SetArgv},
551 {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type}, 562 {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type},
552 {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready}, 563 {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
720 imp_PyExc_KeyboardInterrupt = PyDict_GetItemString(exdict, "KeyboardInterrupt"); 731 imp_PyExc_KeyboardInterrupt = PyDict_GetItemString(exdict, "KeyboardInterrupt");
721 imp_PyExc_TypeError = PyDict_GetItemString(exdict, "TypeError"); 732 imp_PyExc_TypeError = PyDict_GetItemString(exdict, "TypeError");
722 imp_PyExc_ValueError = PyDict_GetItemString(exdict, "ValueError"); 733 imp_PyExc_ValueError = PyDict_GetItemString(exdict, "ValueError");
723 imp_PyExc_RuntimeError = PyDict_GetItemString(exdict, "RuntimeError"); 734 imp_PyExc_RuntimeError = PyDict_GetItemString(exdict, "RuntimeError");
724 imp_PyExc_ImportError = PyDict_GetItemString(exdict, "ImportError"); 735 imp_PyExc_ImportError = PyDict_GetItemString(exdict, "ImportError");
736 imp_PyExc_OverflowError = PyDict_GetItemString(exdict, "OverflowError");
725 Py_XINCREF(imp_PyExc_AttributeError); 737 Py_XINCREF(imp_PyExc_AttributeError);
726 Py_XINCREF(imp_PyExc_IndexError); 738 Py_XINCREF(imp_PyExc_IndexError);
727 Py_XINCREF(imp_PyExc_KeyError); 739 Py_XINCREF(imp_PyExc_KeyError);
728 Py_XINCREF(imp_PyExc_KeyboardInterrupt); 740 Py_XINCREF(imp_PyExc_KeyboardInterrupt);
729 Py_XINCREF(imp_PyExc_TypeError); 741 Py_XINCREF(imp_PyExc_TypeError);
730 Py_XINCREF(imp_PyExc_ValueError); 742 Py_XINCREF(imp_PyExc_ValueError);
731 Py_XINCREF(imp_PyExc_RuntimeError); 743 Py_XINCREF(imp_PyExc_RuntimeError);
732 Py_XINCREF(imp_PyExc_ImportError); 744 Py_XINCREF(imp_PyExc_ImportError);
745 Py_XINCREF(imp_PyExc_OverflowError);
733 Py_XDECREF(exmod); 746 Py_XDECREF(exmod);
734 } 747 }
735 #endif /* DYNAMIC_PYTHON */ 748 #endif /* DYNAMIC_PYTHON */
736 749
737 static int initialised = 0; 750 static int initialised = 0;