comparison src/if_python3.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
158 # define PyDict_Next py3_PyDict_Next 158 # define PyDict_Next py3_PyDict_Next
159 # define PyMapping_Check py3_PyMapping_Check 159 # define PyMapping_Check py3_PyMapping_Check
160 # define PyMapping_Keys py3_PyMapping_Keys 160 # define PyMapping_Keys py3_PyMapping_Keys
161 # define PyIter_Next py3_PyIter_Next 161 # define PyIter_Next py3_PyIter_Next
162 # define PyObject_GetIter py3_PyObject_GetIter 162 # define PyObject_GetIter py3_PyObject_GetIter
163 # define PyObject_Repr py3_PyObject_Repr
163 # define PyObject_GetItem py3_PyObject_GetItem 164 # define PyObject_GetItem py3_PyObject_GetItem
164 # define PyObject_IsTrue py3_PyObject_IsTrue 165 # define PyObject_IsTrue py3_PyObject_IsTrue
165 # define PyModule_GetDict py3_PyModule_GetDict 166 # define PyModule_GetDict py3_PyModule_GetDict
166 #undef PyRun_SimpleString 167 #undef PyRun_SimpleString
167 # define PyRun_SimpleString py3_PyRun_SimpleString 168 # define PyRun_SimpleString py3_PyRun_SimpleString
209 # define PyFloat_AsDouble py3_PyFloat_AsDouble 210 # define PyFloat_AsDouble py3_PyFloat_AsDouble
210 # define PyObject_GenericGetAttr py3_PyObject_GenericGetAttr 211 # define PyObject_GenericGetAttr py3_PyObject_GenericGetAttr
211 # define PyType_Type (*py3_PyType_Type) 212 # define PyType_Type (*py3_PyType_Type)
212 # define PySlice_Type (*py3_PySlice_Type) 213 # define PySlice_Type (*py3_PySlice_Type)
213 # define PyFloat_Type (*py3_PyFloat_Type) 214 # define PyFloat_Type (*py3_PyFloat_Type)
215 # define PyNumber_Check (*py3_PyNumber_Check)
216 # define PyNumber_Long (*py3_PyNumber_Long)
214 # define PyBool_Type (*py3_PyBool_Type) 217 # define PyBool_Type (*py3_PyBool_Type)
215 # define PyErr_NewException py3_PyErr_NewException 218 # define PyErr_NewException py3_PyErr_NewException
216 # ifdef Py_DEBUG 219 # ifdef Py_DEBUG
217 # define _Py_NegativeRefcount py3__Py_NegativeRefcount 220 # define _Py_NegativeRefcount py3__Py_NegativeRefcount
218 # define _Py_RefTotal (*py3__Py_RefTotal) 221 # define _Py_RefTotal (*py3__Py_RefTotal)
308 static int (*py3_PyDict_Next)(PyObject *, Py_ssize_t *, PyObject **, PyObject **); 311 static int (*py3_PyDict_Next)(PyObject *, Py_ssize_t *, PyObject **, PyObject **);
309 static PyObject* (*py3_PyLong_FromLong)(long); 312 static PyObject* (*py3_PyLong_FromLong)(long);
310 static PyObject* (*py3_PyDict_New)(void); 313 static PyObject* (*py3_PyDict_New)(void);
311 static PyObject* (*py3_PyIter_Next)(PyObject *); 314 static PyObject* (*py3_PyIter_Next)(PyObject *);
312 static PyObject* (*py3_PyObject_GetIter)(PyObject *); 315 static PyObject* (*py3_PyObject_GetIter)(PyObject *);
316 static PyObject* (*py3_PyObject_Repr)(PyObject *);
313 static PyObject* (*py3_PyObject_GetItem)(PyObject *, PyObject *); 317 static PyObject* (*py3_PyObject_GetItem)(PyObject *, PyObject *);
314 static int (*py3_PyObject_IsTrue)(PyObject *); 318 static int (*py3_PyObject_IsTrue)(PyObject *);
315 static PyObject* (*py3_Py_BuildValue)(char *, ...); 319 static PyObject* (*py3_Py_BuildValue)(char *, ...);
316 static int (*py3_PyType_Ready)(PyTypeObject *type); 320 static int (*py3_PyType_Ready)(PyTypeObject *type);
317 static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item); 321 static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
363 static PyObject* (*py3_PyType_GenericNew)(PyTypeObject *type, PyObject *args, PyObject *kwds); 367 static PyObject* (*py3_PyType_GenericNew)(PyTypeObject *type, PyObject *args, PyObject *kwds);
364 static PyTypeObject* py3_PyType_Type; 368 static PyTypeObject* py3_PyType_Type;
365 static PyTypeObject* py3_PySlice_Type; 369 static PyTypeObject* py3_PySlice_Type;
366 static PyTypeObject* py3_PyFloat_Type; 370 static PyTypeObject* py3_PyFloat_Type;
367 static PyTypeObject* py3_PyBool_Type; 371 static PyTypeObject* py3_PyBool_Type;
372 static int (*py3_PyNumber_Check)(PyObject *);
373 static PyObject* (*py3_PyNumber_Long)(PyObject *);
368 static PyObject* (*py3_PyErr_NewException)(char *name, PyObject *base, PyObject *dict); 374 static PyObject* (*py3_PyErr_NewException)(char *name, PyObject *base, PyObject *dict);
369 static PyObject* (*py3_PyCapsule_New)(void *, char *, PyCapsule_Destructor); 375 static PyObject* (*py3_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
370 static void* (*py3_PyCapsule_GetPointer)(PyObject *, char *); 376 static void* (*py3_PyCapsule_GetPointer)(PyObject *, char *);
371 # ifdef Py_DEBUG 377 # ifdef Py_DEBUG
372 static void (*py3__Py_NegativeRefcount)(const char *fname, int lineno, PyObject *op); 378 static void (*py3__Py_NegativeRefcount)(const char *fname, int lineno, PyObject *op);
397 static PyObject *p3imp_PyExc_KeyboardInterrupt; 403 static PyObject *p3imp_PyExc_KeyboardInterrupt;
398 static PyObject *p3imp_PyExc_TypeError; 404 static PyObject *p3imp_PyExc_TypeError;
399 static PyObject *p3imp_PyExc_ValueError; 405 static PyObject *p3imp_PyExc_ValueError;
400 static PyObject *p3imp_PyExc_RuntimeError; 406 static PyObject *p3imp_PyExc_RuntimeError;
401 static PyObject *p3imp_PyExc_ImportError; 407 static PyObject *p3imp_PyExc_ImportError;
408 static PyObject *p3imp_PyExc_OverflowError;
402 409
403 # define PyExc_AttributeError p3imp_PyExc_AttributeError 410 # define PyExc_AttributeError p3imp_PyExc_AttributeError
404 # define PyExc_IndexError p3imp_PyExc_IndexError 411 # define PyExc_IndexError p3imp_PyExc_IndexError
405 # define PyExc_KeyError p3imp_PyExc_KeyError 412 # define PyExc_KeyError p3imp_PyExc_KeyError
406 # define PyExc_KeyboardInterrupt p3imp_PyExc_KeyboardInterrupt 413 # define PyExc_KeyboardInterrupt p3imp_PyExc_KeyboardInterrupt
407 # define PyExc_TypeError p3imp_PyExc_TypeError 414 # define PyExc_TypeError p3imp_PyExc_TypeError
408 # define PyExc_ValueError p3imp_PyExc_ValueError 415 # define PyExc_ValueError p3imp_PyExc_ValueError
409 # define PyExc_RuntimeError p3imp_PyExc_RuntimeError 416 # define PyExc_RuntimeError p3imp_PyExc_RuntimeError
410 # define PyExc_ImportError p3imp_PyExc_ImportError 417 # define PyExc_ImportError p3imp_PyExc_ImportError
418 # define PyExc_OverflowError p3imp_PyExc_OverflowError
411 419
412 /* 420 /*
413 * Table of name to function pointer of python. 421 * Table of name to function pointer of python.
414 */ 422 */
415 # define PYTHON_PROC FARPROC 423 # define PYTHON_PROC FARPROC
467 {"PyDict_Next", (PYTHON_PROC*)&py3_PyDict_Next}, 475 {"PyDict_Next", (PYTHON_PROC*)&py3_PyDict_Next},
468 {"PyMapping_Check", (PYTHON_PROC*)&py3_PyMapping_Check}, 476 {"PyMapping_Check", (PYTHON_PROC*)&py3_PyMapping_Check},
469 {"PyMapping_Keys", (PYTHON_PROC*)&py3_PyMapping_Keys}, 477 {"PyMapping_Keys", (PYTHON_PROC*)&py3_PyMapping_Keys},
470 {"PyIter_Next", (PYTHON_PROC*)&py3_PyIter_Next}, 478 {"PyIter_Next", (PYTHON_PROC*)&py3_PyIter_Next},
471 {"PyObject_GetIter", (PYTHON_PROC*)&py3_PyObject_GetIter}, 479 {"PyObject_GetIter", (PYTHON_PROC*)&py3_PyObject_GetIter},
480 {"PyObject_Repr", (PYTHON_PROC*)&py3_PyObject_Repr},
472 {"PyObject_GetItem", (PYTHON_PROC*)&py3_PyObject_GetItem}, 481 {"PyObject_GetItem", (PYTHON_PROC*)&py3_PyObject_GetItem},
473 {"PyObject_IsTrue", (PYTHON_PROC*)&py3_PyObject_IsTrue}, 482 {"PyObject_IsTrue", (PYTHON_PROC*)&py3_PyObject_IsTrue},
474 {"PyLong_FromLong", (PYTHON_PROC*)&py3_PyLong_FromLong}, 483 {"PyLong_FromLong", (PYTHON_PROC*)&py3_PyLong_FromLong},
475 {"PyDict_New", (PYTHON_PROC*)&py3_PyDict_New}, 484 {"PyDict_New", (PYTHON_PROC*)&py3_PyDict_New},
476 {"PyType_Ready", (PYTHON_PROC*)&py3_PyType_Ready}, 485 {"PyType_Ready", (PYTHON_PROC*)&py3_PyType_Ready},
516 {"PyType_GenericNew", (PYTHON_PROC*)&py3_PyType_GenericNew}, 525 {"PyType_GenericNew", (PYTHON_PROC*)&py3_PyType_GenericNew},
517 {"PyType_Type", (PYTHON_PROC*)&py3_PyType_Type}, 526 {"PyType_Type", (PYTHON_PROC*)&py3_PyType_Type},
518 {"PySlice_Type", (PYTHON_PROC*)&py3_PySlice_Type}, 527 {"PySlice_Type", (PYTHON_PROC*)&py3_PySlice_Type},
519 {"PyFloat_Type", (PYTHON_PROC*)&py3_PyFloat_Type}, 528 {"PyFloat_Type", (PYTHON_PROC*)&py3_PyFloat_Type},
520 {"PyBool_Type", (PYTHON_PROC*)&py3_PyBool_Type}, 529 {"PyBool_Type", (PYTHON_PROC*)&py3_PyBool_Type},
530 {"PyNumber_Check", (PYTHON_PROC*)&py3_PyNumber_Check},
531 {"PyNumber_Long", (PYTHON_PROC*)&py3_PyNumber_Long},
521 {"PyErr_NewException", (PYTHON_PROC*)&py3_PyErr_NewException}, 532 {"PyErr_NewException", (PYTHON_PROC*)&py3_PyErr_NewException},
522 # ifdef Py_DEBUG 533 # ifdef Py_DEBUG
523 {"_Py_NegativeRefcount", (PYTHON_PROC*)&py3__Py_NegativeRefcount}, 534 {"_Py_NegativeRefcount", (PYTHON_PROC*)&py3__Py_NegativeRefcount},
524 {"_Py_RefTotal", (PYTHON_PROC*)&py3__Py_RefTotal}, 535 {"_Py_RefTotal", (PYTHON_PROC*)&py3__Py_RefTotal},
525 {"_Py_Dealloc", (PYTHON_PROC*)&py3__Py_Dealloc}, 536 {"_Py_Dealloc", (PYTHON_PROC*)&py3__Py_Dealloc},
670 p3imp_PyExc_KeyboardInterrupt = PyDict_GetItemString(exdict, "KeyboardInterrupt"); 681 p3imp_PyExc_KeyboardInterrupt = PyDict_GetItemString(exdict, "KeyboardInterrupt");
671 p3imp_PyExc_TypeError = PyDict_GetItemString(exdict, "TypeError"); 682 p3imp_PyExc_TypeError = PyDict_GetItemString(exdict, "TypeError");
672 p3imp_PyExc_ValueError = PyDict_GetItemString(exdict, "ValueError"); 683 p3imp_PyExc_ValueError = PyDict_GetItemString(exdict, "ValueError");
673 p3imp_PyExc_RuntimeError = PyDict_GetItemString(exdict, "RuntimeError"); 684 p3imp_PyExc_RuntimeError = PyDict_GetItemString(exdict, "RuntimeError");
674 p3imp_PyExc_ImportError = PyDict_GetItemString(exdict, "ImportError"); 685 p3imp_PyExc_ImportError = PyDict_GetItemString(exdict, "ImportError");
686 p3imp_PyExc_OverflowError = PyDict_GetItemString(exdict, "OverflowError");
675 Py_XINCREF(p3imp_PyExc_AttributeError); 687 Py_XINCREF(p3imp_PyExc_AttributeError);
676 Py_XINCREF(p3imp_PyExc_IndexError); 688 Py_XINCREF(p3imp_PyExc_IndexError);
677 Py_XINCREF(p3imp_PyExc_KeyError); 689 Py_XINCREF(p3imp_PyExc_KeyError);
678 Py_XINCREF(p3imp_PyExc_KeyboardInterrupt); 690 Py_XINCREF(p3imp_PyExc_KeyboardInterrupt);
679 Py_XINCREF(p3imp_PyExc_TypeError); 691 Py_XINCREF(p3imp_PyExc_TypeError);
680 Py_XINCREF(p3imp_PyExc_ValueError); 692 Py_XINCREF(p3imp_PyExc_ValueError);
681 Py_XINCREF(p3imp_PyExc_RuntimeError); 693 Py_XINCREF(p3imp_PyExc_RuntimeError);
682 Py_XINCREF(p3imp_PyExc_ImportError); 694 Py_XINCREF(p3imp_PyExc_ImportError);
695 Py_XINCREF(p3imp_PyExc_OverflowError);
683 Py_XDECREF(exmod); 696 Py_XDECREF(exmod);
684 } 697 }
685 #endif /* DYNAMIC_PYTHON3 */ 698 #endif /* DYNAMIC_PYTHON3 */
686 699
687 static int py3initialised = 0; 700 static int py3initialised = 0;