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

This commit is contained in:
Guido van Rossum 1995-02-27 10:17:52 +00:00
parent 0fbec64c56
commit 051ab123b4
22 changed files with 67 additions and 63 deletions

View File

@ -46,7 +46,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define AC_R_PUBLIC 0004
#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)
@ -58,7 +58,7 @@ void PyAccess_SetOwner Py_PROTO((PyObject *, PyObject *));
PyObject *PyAccess_Clone 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
}

View File

@ -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
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 NT
#undef DL_IMPORT
#define DL_IMPORT __declspec(dllimport)
#define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
#endif /* NT */
#ifdef __BORLANDC__
#undef DL_IMPORT
#define DL_IMPORT(RTYPE) RTYPE __import
#endif /* BORLANDC */
#endif /* USE_DL_IMPORT */
#ifdef HAVE_CONFIG_H

View File

@ -55,7 +55,7 @@ typedef struct {
PyObject *in_dict; /* A dictionary */
} 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 PyInstance_Check(op) ((op)->ob_type == &PyInstance_Type)

View File

@ -47,7 +47,7 @@ typedef struct {
PyObject *co_name; /* string */
} PyCodeObject;
extern DL_IMPORT PyTypeObject PyCode_Type;
extern DL_IMPORT(PyTypeObject) PyCode_Type;
#define PyCode_Check(op) ((op)->ob_type == &PyCode_Type)

View File

@ -40,25 +40,25 @@ void PyErr_Restore Py_PROTO((PyObject *, PyObject *, PyObject *));
/* Predefined exceptions */
extern DL_IMPORT PyObject *PyExc_AccessError;
extern DL_IMPORT PyObject *PyExc_AttributeError;
extern DL_IMPORT PyObject *PyExc_ConflictError;
extern DL_IMPORT PyObject *PyExc_EOFError;
extern DL_IMPORT PyObject *PyExc_IOError;
extern DL_IMPORT PyObject *PyExc_ImportError;
extern DL_IMPORT PyObject *PyExc_IndexError;
extern DL_IMPORT PyObject *PyExc_KeyError;
extern DL_IMPORT PyObject *PyExc_KeyboardInterrupt;
extern DL_IMPORT PyObject *PyExc_MemoryError;
extern DL_IMPORT PyObject *PyExc_NameError;
extern DL_IMPORT PyObject *PyExc_OverflowError;
extern DL_IMPORT PyObject *PyExc_RuntimeError;
extern DL_IMPORT PyObject *PyExc_SyntaxError;
extern DL_IMPORT PyObject *PyExc_SystemError;
extern DL_IMPORT PyObject *PyExc_SystemExit;
extern DL_IMPORT PyObject *PyExc_TypeError;
extern DL_IMPORT PyObject *PyExc_ValueError;
extern DL_IMPORT PyObject *PyExc_ZeroDivisionError;
extern DL_IMPORT(PyObject *) PyExc_AccessError;
extern DL_IMPORT(PyObject *) PyExc_AttributeError;
extern DL_IMPORT(PyObject *) PyExc_ConflictError;
extern DL_IMPORT(PyObject *) PyExc_EOFError;
extern DL_IMPORT(PyObject *) PyExc_IOError;
extern DL_IMPORT(PyObject *) PyExc_ImportError;
extern DL_IMPORT(PyObject *) PyExc_IndexError;
extern DL_IMPORT(PyObject *) PyExc_KeyError;
extern DL_IMPORT(PyObject *) PyExc_KeyboardInterrupt;
extern DL_IMPORT(PyObject *) PyExc_MemoryError;
extern DL_IMPORT(PyObject *) PyExc_NameError;
extern DL_IMPORT(PyObject *) PyExc_OverflowError;
extern DL_IMPORT(PyObject *) PyExc_RuntimeError;
extern DL_IMPORT(PyObject *) PyExc_SyntaxError;
extern DL_IMPORT(PyObject *) PyExc_SystemError;
extern DL_IMPORT(PyObject *) PyExc_SystemExit;
extern DL_IMPORT(PyObject *) PyExc_TypeError;
extern DL_IMPORT(PyObject *) PyExc_ValueError;
extern DL_IMPORT(PyObject *) PyExc_ZeroDivisionError;
/* Convenience functions */

View File

@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* File object interface */
extern DL_IMPORT PyTypeObject PyFile_Type;
extern DL_IMPORT(PyTypeObject) PyFile_Type;
#define PyFile_Check(op) ((op)->ob_type == &PyFile_Type)

View File

@ -39,7 +39,7 @@ typedef struct {
double ob_fval;
} PyFloatObject;
extern DL_IMPORT PyTypeObject PyFloat_Type;
extern DL_IMPORT(PyTypeObject) PyFloat_Type;
#define PyFloat_Check(op) ((op)->ob_type == &PyFloat_Type)

View File

@ -61,7 +61,7 @@ typedef struct _frame {
/* Standard object interface */
extern DL_IMPORT PyTypeObject PyFrame_Type;
extern DL_IMPORT(PyTypeObject) PyFrame_Type;
#define PyFrame_Check(op) ((op)->ob_type == &PyFrame_Type)

View File

@ -40,7 +40,7 @@ typedef struct {
PyObject *func_doc;
} PyFunctionObject;
extern DL_IMPORT PyTypeObject PyFunction_Type;
extern DL_IMPORT(PyTypeObject) PyFunction_Type;
#define PyFunction_Check(op) ((op)->ob_type == &PyFunction_Type)

View File

@ -50,7 +50,7 @@ typedef struct {
long ob_ival;
} PyIntObject;
extern DL_IMPORT PyTypeObject PyInt_Type;
extern DL_IMPORT(PyTypeObject) 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.
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_True ((PyObject *) &_Py_TrueStruct)

View File

@ -49,7 +49,7 @@ typedef struct {
PyObject **ob_item;
} PyListObject;
extern DL_IMPORT PyTypeObject PyList_Type;
extern DL_IMPORT(PyTypeObject) PyList_Type;
#define PyList_Check(op) ((op)->ob_type == &PyList_Type)

View File

@ -32,7 +32,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
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)

View File

@ -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 */
/* 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)

View File

@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* Method object interface */
extern DL_IMPORT PyTypeObject PyCFunction_Type;
extern DL_IMPORT(PyTypeObject) PyCFunction_Type;
#define PyCFunction_Check(op) ((op)->ob_type == &PyCFunction_Type)

View File

@ -30,7 +30,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
/* Module object interface */
extern DL_IMPORT PyTypeObject PyModule_Type;
extern DL_IMPORT(PyTypeObject) PyModule_Type;
#define PyModule_Check(op) ((op)->ob_type == &PyModule_Type)

View File

@ -237,7 +237,7 @@ typedef struct _typeobject {
#endif
} 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)
@ -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!!!
*/
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)

View File

@ -37,7 +37,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define DELIM '\n'
#endif
#if defined(MSDOS) || defined(NT)
#if defined(MSDOS) || defined(NT) || defined(__BORLANDC__)
#define SEP '\\'
#define MAXPATHLEN 256
#define DELIM ';'

View File

@ -40,25 +40,25 @@ void PyErr_Restore Py_PROTO((PyObject *, PyObject *, PyObject *));
/* Predefined exceptions */
extern DL_IMPORT PyObject *PyExc_AccessError;
extern DL_IMPORT PyObject *PyExc_AttributeError;
extern DL_IMPORT PyObject *PyExc_ConflictError;
extern DL_IMPORT PyObject *PyExc_EOFError;
extern DL_IMPORT PyObject *PyExc_IOError;
extern DL_IMPORT PyObject *PyExc_ImportError;
extern DL_IMPORT PyObject *PyExc_IndexError;
extern DL_IMPORT PyObject *PyExc_KeyError;
extern DL_IMPORT PyObject *PyExc_KeyboardInterrupt;
extern DL_IMPORT PyObject *PyExc_MemoryError;
extern DL_IMPORT PyObject *PyExc_NameError;
extern DL_IMPORT PyObject *PyExc_OverflowError;
extern DL_IMPORT PyObject *PyExc_RuntimeError;
extern DL_IMPORT PyObject *PyExc_SyntaxError;
extern DL_IMPORT PyObject *PyExc_SystemError;
extern DL_IMPORT PyObject *PyExc_SystemExit;
extern DL_IMPORT PyObject *PyExc_TypeError;
extern DL_IMPORT PyObject *PyExc_ValueError;
extern DL_IMPORT PyObject *PyExc_ZeroDivisionError;
extern DL_IMPORT(PyObject *) PyExc_AccessError;
extern DL_IMPORT(PyObject *) PyExc_AttributeError;
extern DL_IMPORT(PyObject *) PyExc_ConflictError;
extern DL_IMPORT(PyObject *) PyExc_EOFError;
extern DL_IMPORT(PyObject *) PyExc_IOError;
extern DL_IMPORT(PyObject *) PyExc_ImportError;
extern DL_IMPORT(PyObject *) PyExc_IndexError;
extern DL_IMPORT(PyObject *) PyExc_KeyError;
extern DL_IMPORT(PyObject *) PyExc_KeyboardInterrupt;
extern DL_IMPORT(PyObject *) PyExc_MemoryError;
extern DL_IMPORT(PyObject *) PyExc_NameError;
extern DL_IMPORT(PyObject *) PyExc_OverflowError;
extern DL_IMPORT(PyObject *) PyExc_RuntimeError;
extern DL_IMPORT(PyObject *) PyExc_SyntaxError;
extern DL_IMPORT(PyObject *) PyExc_SystemError;
extern DL_IMPORT(PyObject *) PyExc_SystemExit;
extern DL_IMPORT(PyObject *) PyExc_TypeError;
extern DL_IMPORT(PyObject *) PyExc_ValueError;
extern DL_IMPORT(PyObject *) PyExc_ZeroDivisionError;
/* Convenience functions */

View File

@ -32,7 +32,7 @@ Range objects behave like the corresponding tuple objects except that
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)

View File

@ -55,7 +55,7 @@ typedef struct {
char ob_sval[1];
} PyStringObject;
extern DL_IMPORT PyTypeObject PyString_Type;
extern DL_IMPORT(PyTypeObject) PyString_Type;
#define PyString_Check(op) ((op)->ob_type == &PyString_Type)

View File

@ -35,8 +35,8 @@ int PySys_SetObject Py_PROTO((char *, PyObject *));
FILE *PySys_GetFile Py_PROTO((char *, FILE *));
void PySys_Init Py_PROTO((void));
extern DL_IMPORT PyObject *_PySys_TraceFunc, *_PySys_ProfileFunc;
extern DL_IMPORT int _PySys_CheckInterval;
extern DL_IMPORT(PyObject *) _PySys_TraceFunc, *_PySys_ProfileFunc;
extern DL_IMPORT(int) _PySys_CheckInterval;
#ifdef __cplusplus
}

View File

@ -49,7 +49,7 @@ typedef struct {
PyObject *ob_item[1];
} PyTupleObject;
extern DL_IMPORT PyTypeObject PyTuple_Type;
extern DL_IMPORT(PyTypeObject) PyTuple_Type;
#define PyTuple_Check(op) ((op)->ob_type == &PyTuple_Type)