Kaydet (Commit) 051ab123 authored tarafından Guido van Rossum's avatar Guido van Rossum

make the type a parameter of the DL_IMPORT macro, for Borland C

üst 0fbec64c
...@@ -46,7 +46,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -46,7 +46,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define AC_R_PUBLIC 0004 #define AC_R_PUBLIC 0004
#define AC_W_PUBLIC 0002 #define AC_W_PUBLIC 0002
extern DL_IMPORT PyTypeObject PyAccess_Type; extern DL_IMPORT(PyTypeObject) PyAccess_Type;
#define PyAccess_Check(v) ((v)->ob_type == &PyAccess_Type) #define PyAccess_Check(v) ((v)->ob_type == &PyAccess_Type)
...@@ -58,7 +58,7 @@ void PyAccess_SetOwner Py_PROTO((PyObject *, PyObject *)); ...@@ -58,7 +58,7 @@ void PyAccess_SetOwner Py_PROTO((PyObject *, PyObject *));
PyObject *PyAccess_Clone Py_PROTO((PyObject *)); PyObject *PyAccess_Clone Py_PROTO((PyObject *));
int PyAccess_HasValue Py_PROTO((PyObject *)); int PyAccess_HasValue Py_PROTO((PyObject *));
extern DL_IMPORT PyTypeObject PyAnyNumber_Type, PyAnySequence_Type, PyAnyMapping_Type; extern DL_IMPORT(PyTypeObject) PyAnyNumber_Type, PyAnySequence_Type, PyAnyMapping_Type;
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -35,12 +35,16 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -35,12 +35,16 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
only turned on for the modules built as DL modules, not for python only turned on for the modules built as DL modules, not for python
itself. itself.
*/ */
#define DL_IMPORT /* Save lots of #else/#if's */ #define DL_IMPORT( RTYPE ) RTYPE /* Save lots of #else/#if's */
#ifdef USE_DL_IMPORT #ifdef USE_DL_IMPORT
#ifdef NT #ifdef NT
#undef DL_IMPORT #undef DL_IMPORT
#define DL_IMPORT __declspec(dllimport) #define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
#endif /* NT */ #endif /* NT */
#ifdef __BORLANDC__
#undef DL_IMPORT
#define DL_IMPORT(RTYPE) RTYPE __import
#endif /* BORLANDC */
#endif /* USE_DL_IMPORT */ #endif /* USE_DL_IMPORT */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
......
...@@ -55,7 +55,7 @@ typedef struct { ...@@ -55,7 +55,7 @@ typedef struct {
PyObject *in_dict; /* A dictionary */ PyObject *in_dict; /* A dictionary */
} PyInstanceObject; } PyInstanceObject;
extern DL_IMPORT PyTypeObject PyClass_Type, PyInstance_Type, PyMethod_Type; extern DL_IMPORT(PyTypeObject) PyClass_Type, PyInstance_Type, PyMethod_Type;
#define PyClass_Check(op) ((op)->ob_type == &PyClass_Type) #define PyClass_Check(op) ((op)->ob_type == &PyClass_Type)
#define PyInstance_Check(op) ((op)->ob_type == &PyInstance_Type) #define PyInstance_Check(op) ((op)->ob_type == &PyInstance_Type)
......
...@@ -47,7 +47,7 @@ typedef struct { ...@@ -47,7 +47,7 @@ typedef struct {
PyObject *co_name; /* string */ PyObject *co_name; /* string */
} PyCodeObject; } PyCodeObject;
extern DL_IMPORT PyTypeObject PyCode_Type; extern DL_IMPORT(PyTypeObject) PyCode_Type;
#define PyCode_Check(op) ((op)->ob_type == &PyCode_Type) #define PyCode_Check(op) ((op)->ob_type == &PyCode_Type)
......
...@@ -40,25 +40,25 @@ void PyErr_Restore Py_PROTO((PyObject *, PyObject *, PyObject *)); ...@@ -40,25 +40,25 @@ void PyErr_Restore Py_PROTO((PyObject *, PyObject *, PyObject *));
/* Predefined exceptions */ /* Predefined exceptions */
extern DL_IMPORT PyObject *PyExc_AccessError; extern DL_IMPORT(PyObject *) PyExc_AccessError;
extern DL_IMPORT PyObject *PyExc_AttributeError; extern DL_IMPORT(PyObject *) PyExc_AttributeError;
extern DL_IMPORT PyObject *PyExc_ConflictError; extern DL_IMPORT(PyObject *) PyExc_ConflictError;
extern DL_IMPORT PyObject *PyExc_EOFError; extern DL_IMPORT(PyObject *) PyExc_EOFError;
extern DL_IMPORT PyObject *PyExc_IOError; extern DL_IMPORT(PyObject *) PyExc_IOError;
extern DL_IMPORT PyObject *PyExc_ImportError; extern DL_IMPORT(PyObject *) PyExc_ImportError;
extern DL_IMPORT PyObject *PyExc_IndexError; extern DL_IMPORT(PyObject *) PyExc_IndexError;
extern DL_IMPORT PyObject *PyExc_KeyError; extern DL_IMPORT(PyObject *) PyExc_KeyError;
extern DL_IMPORT PyObject *PyExc_KeyboardInterrupt; extern DL_IMPORT(PyObject *) PyExc_KeyboardInterrupt;
extern DL_IMPORT PyObject *PyExc_MemoryError; extern DL_IMPORT(PyObject *) PyExc_MemoryError;
extern DL_IMPORT PyObject *PyExc_NameError; extern DL_IMPORT(PyObject *) PyExc_NameError;
extern DL_IMPORT PyObject *PyExc_OverflowError; extern DL_IMPORT(PyObject *) PyExc_OverflowError;
extern DL_IMPORT PyObject *PyExc_RuntimeError; extern DL_IMPORT(PyObject *) PyExc_RuntimeError;
extern DL_IMPORT PyObject *PyExc_SyntaxError; extern DL_IMPORT(PyObject *) PyExc_SyntaxError;
extern DL_IMPORT PyObject *PyExc_SystemError; extern DL_IMPORT(PyObject *) PyExc_SystemError;
extern DL_IMPORT PyObject *PyExc_SystemExit; extern DL_IMPORT(PyObject *) PyExc_SystemExit;
extern DL_IMPORT PyObject *PyExc_TypeError; extern DL_IMPORT(PyObject *) PyExc_TypeError;
extern DL_IMPORT PyObject *PyExc_ValueError; extern DL_IMPORT(PyObject *) PyExc_ValueError;
extern DL_IMPORT PyObject *PyExc_ZeroDivisionError; extern DL_IMPORT(PyObject *) PyExc_ZeroDivisionError;
/* Convenience functions */ /* Convenience functions */
......
...@@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* File object interface */ /* File object interface */
extern DL_IMPORT PyTypeObject PyFile_Type; extern DL_IMPORT(PyTypeObject) PyFile_Type;
#define PyFile_Check(op) ((op)->ob_type == &PyFile_Type) #define PyFile_Check(op) ((op)->ob_type == &PyFile_Type)
......
...@@ -39,7 +39,7 @@ typedef struct { ...@@ -39,7 +39,7 @@ typedef struct {
double ob_fval; double ob_fval;
} PyFloatObject; } PyFloatObject;
extern DL_IMPORT PyTypeObject PyFloat_Type; extern DL_IMPORT(PyTypeObject) PyFloat_Type;
#define PyFloat_Check(op) ((op)->ob_type == &PyFloat_Type) #define PyFloat_Check(op) ((op)->ob_type == &PyFloat_Type)
......
...@@ -61,7 +61,7 @@ typedef struct _frame { ...@@ -61,7 +61,7 @@ typedef struct _frame {
/* Standard object interface */ /* Standard object interface */
extern DL_IMPORT PyTypeObject PyFrame_Type; extern DL_IMPORT(PyTypeObject) PyFrame_Type;
#define PyFrame_Check(op) ((op)->ob_type == &PyFrame_Type) #define PyFrame_Check(op) ((op)->ob_type == &PyFrame_Type)
......
...@@ -40,7 +40,7 @@ typedef struct { ...@@ -40,7 +40,7 @@ typedef struct {
PyObject *func_doc; PyObject *func_doc;
} PyFunctionObject; } PyFunctionObject;
extern DL_IMPORT PyTypeObject PyFunction_Type; extern DL_IMPORT(PyTypeObject) PyFunction_Type;
#define PyFunction_Check(op) ((op)->ob_type == &PyFunction_Type) #define PyFunction_Check(op) ((op)->ob_type == &PyFunction_Type)
......
...@@ -50,7 +50,7 @@ typedef struct { ...@@ -50,7 +50,7 @@ typedef struct {
long ob_ival; long ob_ival;
} PyIntObject; } PyIntObject;
extern DL_IMPORT PyTypeObject PyInt_Type; extern DL_IMPORT(PyTypeObject) PyInt_Type;
#define PyInt_Check(op) ((op)->ob_type == &PyInt_Type) #define PyInt_Check(op) ((op)->ob_type == &PyInt_Type)
...@@ -69,7 +69,7 @@ Hope these macros don't conflict with other people's. ...@@ -69,7 +69,7 @@ Hope these macros don't conflict with other people's.
Don't forget to apply Py_INCREF() when returning True or False!!! Don't forget to apply Py_INCREF() when returning True or False!!!
*/ */
extern DL_IMPORT PyIntObject _Py_ZeroStruct, _Py_TrueStruct; /* Don't use these directly */ extern DL_IMPORT(PyIntObject) _Py_ZeroStruct, _Py_TrueStruct; /* Don't use these directly */
#define Py_False ((PyObject *) &_Py_ZeroStruct) #define Py_False ((PyObject *) &_Py_ZeroStruct)
#define Py_True ((PyObject *) &_Py_TrueStruct) #define Py_True ((PyObject *) &_Py_TrueStruct)
......
...@@ -49,7 +49,7 @@ typedef struct { ...@@ -49,7 +49,7 @@ typedef struct {
PyObject **ob_item; PyObject **ob_item;
} PyListObject; } PyListObject;
extern DL_IMPORT PyTypeObject PyList_Type; extern DL_IMPORT(PyTypeObject) PyList_Type;
#define PyList_Check(op) ((op)->ob_type == &PyList_Type) #define PyList_Check(op) ((op)->ob_type == &PyList_Type)
......
...@@ -32,7 +32,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -32,7 +32,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
typedef struct _longobject PyLongObject; /* Revealed in longintrepr.h */ typedef struct _longobject PyLongObject; /* Revealed in longintrepr.h */
extern DL_IMPORT PyTypeObject PyLong_Type; extern DL_IMPORT(PyTypeObject) PyLong_Type;
#define PyLong_Check(op) ((op)->ob_type == &PyLong_Type) #define PyLong_Check(op) ((op)->ob_type == &PyLong_Type)
......
...@@ -31,7 +31,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -31,7 +31,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* Dictionary object type -- mapping from hashable object to object */ /* Dictionary object type -- mapping from hashable object to object */
/* NB Should be moved back to dictobject.h */ /* NB Should be moved back to dictobject.h */
extern DL_IMPORT PyTypeObject PyDict_Type; extern DL_IMPORT(PyTypeObject) PyDict_Type;
#define PyDict_Check(op) ((op)->ob_type == &PyDict_Type) #define PyDict_Check(op) ((op)->ob_type == &PyDict_Type)
......
...@@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* Method object interface */ /* Method object interface */
extern DL_IMPORT PyTypeObject PyCFunction_Type; extern DL_IMPORT(PyTypeObject) PyCFunction_Type;
#define PyCFunction_Check(op) ((op)->ob_type == &PyCFunction_Type) #define PyCFunction_Check(op) ((op)->ob_type == &PyCFunction_Type)
......
...@@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* Module object interface */ /* Module object interface */
extern DL_IMPORT PyTypeObject PyModule_Type; extern DL_IMPORT(PyTypeObject) PyModule_Type;
#define PyModule_Check(op) ((op)->ob_type == &PyModule_Type) #define PyModule_Check(op) ((op)->ob_type == &PyModule_Type)
......
...@@ -237,7 +237,7 @@ typedef struct _typeobject { ...@@ -237,7 +237,7 @@ typedef struct _typeobject {
#endif #endif
} PyTypeObject; } PyTypeObject;
extern DL_IMPORT PyTypeObject PyType_Type; /* The type of type objects */ extern DL_IMPORT(PyTypeObject) PyType_Type; /* The type of type objects */
#define PyType_Check(op) ((op)->ob_type == &PyType_Type) #define PyType_Check(op) ((op)->ob_type == &PyType_Type)
...@@ -353,7 +353,7 @@ where NULL (nil) is not suitable (since NULL often means 'error'). ...@@ -353,7 +353,7 @@ where NULL (nil) is not suitable (since NULL often means 'error').
Don't forget to apply Py_INCREF() when returning this value!!! Don't forget to apply Py_INCREF() when returning this value!!!
*/ */
extern DL_IMPORT PyObject _Py_NoneStruct; /* Don't use this directly */ extern DL_IMPORT(PyObject) _Py_NoneStruct; /* Don't use this directly */
#define Py_None (&_Py_NoneStruct) #define Py_None (&_Py_NoneStruct)
......
...@@ -37,7 +37,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ...@@ -37,7 +37,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define DELIM '\n' #define DELIM '\n'
#endif #endif
#if defined(MSDOS) || defined(NT) #if defined(MSDOS) || defined(NT) || defined(__BORLANDC__)
#define SEP '\\' #define SEP '\\'
#define MAXPATHLEN 256 #define MAXPATHLEN 256
#define DELIM ';' #define DELIM ';'
......
...@@ -40,25 +40,25 @@ void PyErr_Restore Py_PROTO((PyObject *, PyObject *, PyObject *)); ...@@ -40,25 +40,25 @@ void PyErr_Restore Py_PROTO((PyObject *, PyObject *, PyObject *));
/* Predefined exceptions */ /* Predefined exceptions */
extern DL_IMPORT PyObject *PyExc_AccessError; extern DL_IMPORT(PyObject *) PyExc_AccessError;
extern DL_IMPORT PyObject *PyExc_AttributeError; extern DL_IMPORT(PyObject *) PyExc_AttributeError;
extern DL_IMPORT PyObject *PyExc_ConflictError; extern DL_IMPORT(PyObject *) PyExc_ConflictError;
extern DL_IMPORT PyObject *PyExc_EOFError; extern DL_IMPORT(PyObject *) PyExc_EOFError;
extern DL_IMPORT PyObject *PyExc_IOError; extern DL_IMPORT(PyObject *) PyExc_IOError;
extern DL_IMPORT PyObject *PyExc_ImportError; extern DL_IMPORT(PyObject *) PyExc_ImportError;
extern DL_IMPORT PyObject *PyExc_IndexError; extern DL_IMPORT(PyObject *) PyExc_IndexError;
extern DL_IMPORT PyObject *PyExc_KeyError; extern DL_IMPORT(PyObject *) PyExc_KeyError;
extern DL_IMPORT PyObject *PyExc_KeyboardInterrupt; extern DL_IMPORT(PyObject *) PyExc_KeyboardInterrupt;
extern DL_IMPORT PyObject *PyExc_MemoryError; extern DL_IMPORT(PyObject *) PyExc_MemoryError;
extern DL_IMPORT PyObject *PyExc_NameError; extern DL_IMPORT(PyObject *) PyExc_NameError;
extern DL_IMPORT PyObject *PyExc_OverflowError; extern DL_IMPORT(PyObject *) PyExc_OverflowError;
extern DL_IMPORT PyObject *PyExc_RuntimeError; extern DL_IMPORT(PyObject *) PyExc_RuntimeError;
extern DL_IMPORT PyObject *PyExc_SyntaxError; extern DL_IMPORT(PyObject *) PyExc_SyntaxError;
extern DL_IMPORT PyObject *PyExc_SystemError; extern DL_IMPORT(PyObject *) PyExc_SystemError;
extern DL_IMPORT PyObject *PyExc_SystemExit; extern DL_IMPORT(PyObject *) PyExc_SystemExit;
extern DL_IMPORT PyObject *PyExc_TypeError; extern DL_IMPORT(PyObject *) PyExc_TypeError;
extern DL_IMPORT PyObject *PyExc_ValueError; extern DL_IMPORT(PyObject *) PyExc_ValueError;
extern DL_IMPORT PyObject *PyExc_ZeroDivisionError; extern DL_IMPORT(PyObject *) PyExc_ZeroDivisionError;
/* Convenience functions */ /* Convenience functions */
......
...@@ -32,7 +32,7 @@ Range objects behave like the corresponding tuple objects except that ...@@ -32,7 +32,7 @@ Range objects behave like the corresponding tuple objects except that
they are represented by a start, stop, and step datamembers. they are represented by a start, stop, and step datamembers.
*/ */
extern DL_IMPORT PyTypeObject PyRange_Type; extern DL_IMPORT(PyTypeObject) PyRange_Type;
#define PyRange_Check(op) ((op)->ob_type == &PyRange_Type) #define PyRange_Check(op) ((op)->ob_type == &PyRange_Type)
......
...@@ -55,7 +55,7 @@ typedef struct { ...@@ -55,7 +55,7 @@ typedef struct {
char ob_sval[1]; char ob_sval[1];
} PyStringObject; } PyStringObject;
extern DL_IMPORT PyTypeObject PyString_Type; extern DL_IMPORT(PyTypeObject) PyString_Type;
#define PyString_Check(op) ((op)->ob_type == &PyString_Type) #define PyString_Check(op) ((op)->ob_type == &PyString_Type)
......
...@@ -35,8 +35,8 @@ int PySys_SetObject Py_PROTO((char *, PyObject *)); ...@@ -35,8 +35,8 @@ int PySys_SetObject Py_PROTO((char *, PyObject *));
FILE *PySys_GetFile Py_PROTO((char *, FILE *)); FILE *PySys_GetFile Py_PROTO((char *, FILE *));
void PySys_Init Py_PROTO((void)); void PySys_Init Py_PROTO((void));
extern DL_IMPORT PyObject *_PySys_TraceFunc, *_PySys_ProfileFunc; extern DL_IMPORT(PyObject *) _PySys_TraceFunc, *_PySys_ProfileFunc;
extern DL_IMPORT int _PySys_CheckInterval; extern DL_IMPORT(int) _PySys_CheckInterval;
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -49,7 +49,7 @@ typedef struct { ...@@ -49,7 +49,7 @@ typedef struct {
PyObject *ob_item[1]; PyObject *ob_item[1];
} PyTupleObject; } PyTupleObject;
extern DL_IMPORT PyTypeObject PyTuple_Type; extern DL_IMPORT(PyTypeObject) PyTuple_Type;
#define PyTuple_Check(op) ((op)->ob_type == &PyTuple_Type) #define PyTuple_Check(op) ((op)->ob_type == &PyTuple_Type)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment