staticforward bites the dust.
The staticforward define was needed to support certain broken C
compilers (notably SCO ODT 3.0, perhaps early AIX as well) botched the
static keyword when it was used with a forward declaration of a static
initialized structure. Standard C allows the forward declaration with
static, and we've decided to stop catering to broken C compilers. (In
fact, we expect that the compilers are all fixed eight years later.)
I'm leaving staticforward and statichere defined in object.h as
static. This is only for backwards compatibility with C extensions
that might still use it.
XXX I haven't updated the documentation.
diff --git a/Mac/Modules/Nav.c b/Mac/Modules/Nav.c
index fb0c21b..7dfe3e5 100644
--- a/Mac/Modules/Nav.c
+++ b/Mac/Modules/Nav.c
@@ -233,7 +233,7 @@
NavReplyRecord itself;
} navrrobject;
-staticforward PyTypeObject Navrrtype;
+static PyTypeObject Navrrtype;
diff --git a/Mac/Modules/calldll.c b/Mac/Modules/calldll.c
index e2c2e3e..f390a9d 100644
--- a/Mac/Modules/calldll.c
+++ b/Mac/Modules/calldll.c
@@ -471,7 +471,7 @@
char name[MAXNAME+1];
} cdfobject;
-staticforward PyTypeObject Cdftype;
+static PyTypeObject Cdftype;
@@ -485,7 +485,7 @@
char name[MAXNAME+1];
} cdrobject;
-staticforward PyTypeObject Cdrtype;
+static PyTypeObject Cdrtype;
@@ -503,7 +503,7 @@
conventry *argconv[MAXARG]; /* Value converter list */
} cdcobject;
-staticforward PyTypeObject Cdctype;
+static PyTypeObject Cdctype;
diff --git a/Mac/Modules/ctbmodule.c b/Mac/Modules/ctbmodule.c
index 3dc8f0f..f8bc25e 100644
--- a/Mac/Modules/ctbmodule.c
+++ b/Mac/Modules/ctbmodule.c
@@ -80,7 +80,7 @@
int err; /* Error to pass to the callback */
} ctbcmobject;
-staticforward PyTypeObject ctbcmtype;
+static PyTypeObject ctbcmtype;
#define is_ctbcmobject(v) ((v)->ob_type == &ctbcmtype)
diff --git a/Mac/Modules/ctl/_Ctlmodule.c b/Mac/Modules/ctl/_Ctlmodule.c
index c9a8aa4..cde42b7 100644
--- a/Mac/Modules/ctl/_Ctlmodule.c
+++ b/Mac/Modules/ctl/_Ctlmodule.c
@@ -35,7 +35,7 @@
#define CtlObj_Convert _CtlObj_Convert
#endif
-staticforward PyObject *CtlObj_WhichControl(ControlHandle);
+static PyObject *CtlObj_WhichControl(ControlHandle);
#define as_Control(h) ((ControlHandle)h)
#define as_Resource(ctl) ((Handle)ctl)
@@ -139,9 +139,9 @@
static ControlUserPaneHitTestUPP myhittestproc_upp;
static ControlUserPaneTrackingUPP mytrackingproc_upp;
-staticforward int settrackfunc(PyObject *); /* forward */
-staticforward void clrtrackfunc(void); /* forward */
-staticforward int setcallback(PyObject *, OSType, PyObject *, UniversalProcPtr *);
+static int settrackfunc(PyObject *); /* forward */
+static void clrtrackfunc(void); /* forward */
+static int setcallback(PyObject *, OSType, PyObject *, UniversalProcPtr *);
static PyObject *Ctl_Error;
diff --git a/Mac/Modules/hfsplusmodule.c b/Mac/Modules/hfsplusmodule.c
index 4135cd0..1c69031 100644
--- a/Mac/Modules/hfsplusmodule.c
+++ b/Mac/Modules/hfsplusmodule.c
@@ -43,7 +43,7 @@
short forkref;
} forkRefObject;
-staticforward PyTypeObject forkRefObject_Type;
+static PyTypeObject forkRefObject_Type;
#define forkRefObject_Check(v) ((v)->ob_type == &forkRefObject_Type)
@@ -359,7 +359,7 @@
FSIterator iterator;
} iteratorObject;
-staticforward PyTypeObject iteratorObject_Type;
+static PyTypeObject iteratorObject_Type;
#define iteratorObject_Check(v) ((v)->ob_type == &iteratorObject_Type)
@@ -534,7 +534,7 @@
Boolean directory;
} fsRefObject;
-staticforward PyTypeObject fsRefObject_Type;
+static PyTypeObject fsRefObject_Type;
#define fsRefObject_Check(v) ((v)->ob_type == &fsRefObject_Type)
diff --git a/Mac/Modules/icgluemodule.c b/Mac/Modules/icgluemodule.c
index 1368ff2..c974a0c 100644
--- a/Mac/Modules/icgluemodule.c
+++ b/Mac/Modules/icgluemodule.c
@@ -61,7 +61,7 @@
ICInstance inst;
} iciobject;
-staticforward PyTypeObject Icitype;
+static PyTypeObject Icitype;
diff --git a/Mac/Modules/macfsmodule.c b/Mac/Modules/macfsmodule.c
index a251811..488dd7e 100644
--- a/Mac/Modules/macfsmodule.c
+++ b/Mac/Modules/macfsmodule.c
@@ -70,7 +70,7 @@
AliasHandle alias;
} mfsaobject;
-staticforward PyTypeObject Mfsatype;
+static PyTypeObject Mfsatype;
#define is_mfsaobject(v) ((v)->ob_type == &Mfsatype)
@@ -82,7 +82,7 @@
FSSpec fsspec;
} mfssobject;
-staticforward PyTypeObject Mfsstype;
+static PyTypeObject Mfsstype;
#define is_mfssobject(v) ((v)->ob_type == &Mfsstype)
@@ -94,7 +94,7 @@
FSRef fsref;
} mfsrobject;
-staticforward PyTypeObject Mfsrtype;
+static PyTypeObject Mfsrtype;
#define is_mfsrobject(v) ((v)->ob_type == &Mfsrtype)
@@ -107,13 +107,13 @@
FInfo finfo;
} mfsiobject;
-staticforward PyTypeObject Mfsitype;
+static PyTypeObject Mfsitype;
#define is_mfsiobject(v) ((v)->ob_type == &Mfsitype)
-staticforward mfssobject *newmfssobject(FSSpec *fss); /* Forward */
-staticforward mfsrobject *newmfsrobject(FSRef *fsr); /* Forward */
+static mfssobject *newmfssobject(FSSpec *fss); /* Forward */
+static mfsrobject *newmfsrobject(FSRef *fsr); /* Forward */
/* ---------------------------------------------------------------- */
diff --git a/Mac/Modules/macosmodule.c b/Mac/Modules/macosmodule.c
index 671d67d..dc9a94f 100644
--- a/Mac/Modules/macosmodule.c
+++ b/Mac/Modules/macosmodule.c
@@ -60,7 +60,7 @@
int isclosed;
} rfobject;
-staticforward PyTypeObject Rftype;
+static PyTypeObject Rftype;
diff --git a/Mac/Modules/macspeechmodule.c b/Mac/Modules/macspeechmodule.c
index b8bed57..a8388e9 100644
--- a/Mac/Modules/macspeechmodule.c
+++ b/Mac/Modules/macspeechmodule.c
@@ -88,7 +88,7 @@
PyObject *curtext; /* If non-NULL current text being spoken */
} scobject;
-staticforward PyTypeObject sctype;
+static PyTypeObject sctype;
#define is_scobject(v) ((v)->ob_type == &sctype)
@@ -285,7 +285,7 @@
VoiceDescription vd;
} mvobject;
-staticforward PyTypeObject mvtype;
+static PyTypeObject mvtype;
#define is_mvobject(v) ((v)->ob_type == &mvtype)
diff --git a/Mac/Modules/mlte/_Mltemodule.c b/Mac/Modules/mlte/_Mltemodule.c
index ec512aa..12ef25a 100644
--- a/Mac/Modules/mlte/_Mltemodule.c
+++ b/Mac/Modules/mlte/_Mltemodule.c
@@ -27,10 +27,10 @@
#endif
/* For now we declare them forward here. They'll go to mactoolbox later */
-staticforward PyObject *TXNObj_New(TXNObject);
-staticforward int TXNObj_Convert(PyObject *, TXNObject *);
-staticforward PyObject *TXNFontMenuObj_New(TXNFontMenuObject);
-staticforward int TXNFontMenuObj_Convert(PyObject *, TXNFontMenuObject *);
+static PyObject *TXNObj_New(TXNObject);
+static int TXNObj_Convert(PyObject *, TXNObject *);
+static PyObject *TXNFontMenuObj_New(TXNFontMenuObject);
+static int TXNFontMenuObj_Convert(PyObject *, TXNFontMenuObject *);
// ADD declarations
#ifdef NOTYET_USE_TOOLBOX_OBJECT_GLUE
diff --git a/Mac/Modules/qd/_Qdmodule.c b/Mac/Modules/qd/_Qdmodule.c
index b174e02..f7956b8 100644
--- a/Mac/Modules/qd/_Qdmodule.c
+++ b/Mac/Modules/qd/_Qdmodule.c
@@ -111,7 +111,7 @@
#define QDIsPortBuffered(port) 0
#endif /* !TARGET_API_MAC_CARBON */
-staticforward PyObject *BMObj_NewCopied(BitMapPtr);
+static PyObject *BMObj_NewCopied(BitMapPtr);
/*
** Parse/generate RGB records
@@ -527,7 +527,7 @@
/* ------------------ Object type QDGlobalsAccess ------------------- */
-staticforward PyTypeObject QDGlobalsAccess_Type;
+static PyTypeObject QDGlobalsAccess_Type;
#define QDGA_Check(x) ((x)->ob_type == &QDGlobalsAccess_Type)
@@ -631,7 +631,7 @@
#define QDGA_hash NULL
-staticforward PyTypeObject QDGlobalsAccess_Type = {
+static PyTypeObject QDGlobalsAccess_Type = {
PyObject_HEAD_INIT(NULL)
0, /*ob_size*/
"_Qd.QDGlobalsAccess", /*tp_name*/
diff --git a/Mac/Modules/snd/_Sndmodule.c b/Mac/Modules/snd/_Sndmodule.c
index 1308bba..7a8f9fd 100644
--- a/Mac/Modules/snd/_Sndmodule.c
+++ b/Mac/Modules/snd/_Sndmodule.c
@@ -62,7 +62,7 @@
/* --------------------- Object type SndChannel --------------------- */
-staticforward PyTypeObject SndChannel_Type;
+static PyTypeObject SndChannel_Type;
#define SndCh_Check(x) ((x)->ob_type == &SndChannel_Type)
@@ -315,7 +315,7 @@
#define SndCh_hash NULL
-staticforward PyTypeObject SndChannel_Type = {
+static PyTypeObject SndChannel_Type = {
PyObject_HEAD_INIT(NULL)
0, /*ob_size*/
"_Snd.SndChannel", /*tp_name*/
@@ -339,7 +339,7 @@
/* ------------------------ Object type SPB ------------------------- */
-staticforward PyTypeObject SPB_Type;
+static PyTypeObject SPB_Type;
#define SPBObj_Check(x) ((x)->ob_type == &SPB_Type)
@@ -443,7 +443,7 @@
#define SPBObj_hash NULL
-staticforward PyTypeObject SPB_Type = {
+static PyTypeObject SPB_Type = {
PyObject_HEAD_INIT(NULL)
0, /*ob_size*/
"_Snd.SPB", /*tp_name*/
diff --git a/Mac/Modules/waste/wastemodule.c b/Mac/Modules/waste/wastemodule.c
index 0fd90d3..a1eab0b 100644
--- a/Mac/Modules/waste/wastemodule.c
+++ b/Mac/Modules/waste/wastemodule.c
@@ -33,8 +33,8 @@
extern int AEDesc_Convert(PyObject *, AppleEvent *);
/* Forward declaration */
-staticforward PyObject *WEOObj_New(WEObjectReference);
-staticforward PyObject *ExistingwasteObj_New(WEReference);
+static PyObject *WEOObj_New(WEObjectReference);
+static PyObject *ExistingwasteObj_New(WEReference);
/*
** Parse/generate TextStyle records