diff options
-rw-r--r-- | Mac/Modules/ctbmodule.c | 274 | ||||
-rw-r--r-- | Mac/Modules/gestaltmodule.c | 21 | ||||
-rw-r--r-- | Mac/Modules/macfsmodule.c | 343 | ||||
-rw-r--r-- | Mac/Modules/macmodule.c | 369 | ||||
-rw-r--r-- | Mac/Modules/macspeechmodule.c | 231 |
5 files changed, 617 insertions, 621 deletions
diff --git a/Mac/Modules/ctbmodule.c b/Mac/Modules/ctbmodule.c index ef03f92..759264c 100644 --- a/Mac/Modules/ctbmodule.c +++ b/Mac/Modules/ctbmodule.c @@ -26,7 +26,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. /* ctbcm objects */ -#include "allobjects.h" +#include "Python.h" #include "macglue.h" @@ -46,19 +46,19 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #define _CommToolboxTrap 0x8B #define _UnimplementedOSTrap 0x9F -extern object *PyErr_Mac(object *,int); +extern PyObject *PyErr_Mac(PyObject *,int); -static object *ErrorObject; +static PyObject *ErrorObject; typedef struct { - OB_HEAD + PyObject_HEAD ConnHandle hdl; /* The handle to the connection */ - object *callback; /* Python callback routine */ + PyObject *callback; /* Python callback routine */ int has_callback; /* True if callback not None */ int err; /* Error to pass to the callback */ } ctbcmobject; -staticforward typeobject ctbcmtype; +staticforward PyTypeObject ctbcmtype; #define is_ctbcmobject(v) ((v)->ob_type == &ctbcmtype) @@ -86,7 +86,7 @@ initialize_ctb() initialized = 0; if ( !TrapAvailable(_CommToolboxTrap, OSTrap) ) { - err_setstr(ErrorObject, "CTB not available"); + PyErr_SetString(ErrorObject, "CTB not available"); return 0; } if ( (err=InitCTBUtilities()) ) { @@ -110,16 +110,16 @@ ctbcm_pycallback(arg) void *arg; { ctbcmobject *self = (ctbcmobject *)arg; - object *args, *rv; + PyObject *args, *rv; if ( !self->has_callback ) /* It could have been removed in the meantime */ return 0; - args = mkvalue("(i)", self->err); - rv = call_object(self->callback, args); - DECREF(args); + args = Py_BuildValue("(i)", self->err); + rv = PyEval_CallObject(self->callback, args); + Py_DECREF(args); if( rv == NULL ) return -1; - DECREF(rv); + Py_DECREF(rv); return 0; } @@ -139,15 +139,15 @@ ctbcm_ctbcallback(hconn) static ctbcmobject * newctbcmobject(arg) - object *arg; + PyObject *arg; { ctbcmobject *self; - self = NEWOBJ(ctbcmobject, &ctbcmtype); + self = PyObject_NEW(ctbcmobject, &ctbcmtype); if (self == NULL) return NULL; self->hdl = NULL; - INCREF(None); - self->callback = None; + Py_INCREF(Py_None); + self->callback = Py_None; self->has_callback = 0; return self; } @@ -164,104 +164,104 @@ ctbcm_dealloc(self) CMDispose(self->hdl); self->hdl = NULL; } - DEL(self); + PyMem_DEL(self); } -static object * +static PyObject * ctbcm_open(self, args) ctbcmobject *self; - object *args; + PyObject *args; { long timeout; OSErr err; ConnectionCompletionUPP cb_upp = NewConnectionCompletionProc(ctbcm_ctbcallback); - if (!getargs(args, "l", &timeout)) + if (!PyArg_Parse(args, "l", &timeout)) return NULL; if ( (err=CMOpen(self->hdl, self->has_callback, cb_upp, timeout)) < 0) return PyErr_Mac(ErrorObject, (int)err); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * ctbcm_listen(self, args) ctbcmobject *self; - object *args; + PyObject *args; { long timeout; OSErr err; ConnectionCompletionUPP cb_upp = NewConnectionCompletionProc(ctbcm_ctbcallback); - if (!getargs(args, "l", &timeout)) + if (!PyArg_Parse(args, "l", &timeout)) return NULL; if ( (err=CMListen(self->hdl,self->has_callback, cb_upp, timeout)) < 0) return PyErr_Mac(ErrorObject, (int)err); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * ctbcm_accept(self, args) ctbcmobject *self; - object *args; + PyObject *args; { int accept; OSErr err; - if (!getargs(args, "i", &accept)) + if (!PyArg_Parse(args, "i", &accept)) return NULL; if ( (err=CMAccept(self->hdl, accept)) < 0) return PyErr_Mac(ErrorObject, (int)err); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * ctbcm_close(self, args) ctbcmobject *self; - object *args; + PyObject *args; { int now; long timeout; OSErr err; ConnectionCompletionUPP cb_upp = NewConnectionCompletionProc(ctbcm_ctbcallback); - if (!getargs(args, "(li)", &timeout, &now)) + if (!PyArg_Parse(args, "(li)", &timeout, &now)) return NULL; if ( (err=CMClose(self->hdl, self->has_callback, cb_upp, timeout, now)) < 0) return PyErr_Mac(ErrorObject, (int)err); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * ctbcm_read(self, args) ctbcmobject *self; - object *args; + PyObject *args; { long timeout, len; int chan; CMFlags flags; OSErr err; - object *rv; + PyObject *rv; ConnectionCompletionUPP cb_upp = NewConnectionCompletionProc(ctbcm_ctbcallback); - if (!getargs(args, "(lil)", &len, &chan, &timeout)) + if (!PyArg_Parse(args, "(lil)", &len, &chan, &timeout)) return NULL; - if ((rv=newsizedstringobject(NULL, len)) == NULL) + if ((rv=PyString_FromStringAndSize(NULL, len)) == NULL) return NULL; - if ((err=CMRead(self->hdl, (Ptr)getstringvalue(rv), &len, (CMChannel)chan, + if ((err=CMRead(self->hdl, (Ptr)PyString_AsString(rv), &len, (CMChannel)chan, self->has_callback, cb_upp, timeout, &flags)) < 0) return PyErr_Mac(ErrorObject, (int)err); - resizestring(&rv, len); - return mkvalue("(Oi)", rv, (int)flags); + _PyString_Resize(&rv, len); + return Py_BuildValue("(Oi)", rv, (int)flags); } -static object * +static PyObject * ctbcm_write(self, args) ctbcmobject *self; - object *args; + PyObject *args; { long timeout, len; int chan, ilen, flags; @@ -269,184 +269,184 @@ ctbcm_write(self, args) char *buf; ConnectionCompletionUPP cb_upp = NewConnectionCompletionProc(ctbcm_ctbcallback); - if (!getargs(args, "(s#ili)", &buf, &ilen, &chan, &timeout, &flags)) + if (!PyArg_Parse(args, "(s#ili)", &buf, &ilen, &chan, &timeout, &flags)) return NULL; len = ilen; if ((err=CMWrite(self->hdl, (Ptr)buf, &len, (CMChannel)chan, self->has_callback, cb_upp, timeout, (CMFlags)flags)) < 0) return PyErr_Mac(ErrorObject, (int)err); - return newintobject((int)len); + return PyInt_FromLong((int)len); } -static object * +static PyObject * ctbcm_status(self, args) ctbcmobject *self; - object *args; + PyObject *args; { CMBufferSizes sizes; CMStatFlags flags; OSErr err; - object *rv; + PyObject *rv; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; if ((err=CMStatus(self->hdl, sizes, &flags)) < 0) return PyErr_Mac(ErrorObject, (int)err); - rv = mkvalue("(llllll)", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5]); + rv = Py_BuildValue("(llllll)", sizes[0], sizes[1], sizes[2], sizes[3], sizes[4], sizes[5]); if ( rv == NULL ) return NULL; - return mkvalue("(Ol)", rv, (long)flags); + return Py_BuildValue("(Ol)", rv, (long)flags); } -static object * +static PyObject * ctbcm_getconfig(self, args) ctbcmobject *self; - object *args; + PyObject *args; { char *rv; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; if ((rv=(char *)CMGetConfig(self->hdl)) == NULL ) { - err_setstr(ErrorObject, "CMGetConfig failed"); + PyErr_SetString(ErrorObject, "CMGetConfig failed"); return NULL; } - return newstringobject(rv); + return PyString_FromString(rv); } -static object * +static PyObject * ctbcm_setconfig(self, args) ctbcmobject *self; - object *args; + PyObject *args; { char *cfg; OSErr err; - if (!getargs(args, "s", &cfg)) + if (!PyArg_Parse(args, "s", &cfg)) return NULL; if ((err=CMSetConfig(self->hdl, (Ptr)cfg)) < 0) return PyErr_Mac(ErrorObject, err); - return newintobject((int)err); + return PyInt_FromLong((int)err); } -static object * +static PyObject * ctbcm_choose(self, args) ctbcmobject *self; - object *args; + PyObject *args; { int rv; Point pt; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; pt.v = 40; pt.h = 40; rv=CMChoose(&self->hdl, pt, (ConnectionChooseIdleUPP)0); - return newintobject(rv); + return PyInt_FromLong(rv); } -static object * +static PyObject * ctbcm_idle(self, args) ctbcmobject *self; - object *args; + PyObject *args; { - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; CMIdle(self->hdl); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * ctbcm_abort(self, args) ctbcmobject *self; - object *args; + PyObject *args; { - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; CMAbort(self->hdl); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * ctbcm_reset(self, args) ctbcmobject *self; - object *args; + PyObject *args; { - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; CMReset(self->hdl); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * ctbcm_break(self, args) ctbcmobject *self; - object *args; + PyObject *args; { long duration; ConnectionCompletionUPP cb_upp = NewConnectionCompletionProc(ctbcm_ctbcallback); - if (!getargs(args, "l", &duration)) + if (!PyArg_Parse(args, "l", &duration)) return NULL; CMBreak(self->hdl, duration,self->has_callback, cb_upp); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static struct methodlist ctbcm_methods[] = { - {"Open", (method)ctbcm_open}, - {"Close", (method)ctbcm_close}, - {"Read", (method)ctbcm_read}, - {"Write", (method)ctbcm_write}, - {"Status", (method)ctbcm_status}, - {"GetConfig", (method)ctbcm_getconfig}, - {"SetConfig", (method)ctbcm_setconfig}, - {"Choose", (method)ctbcm_choose}, - {"Idle", (method)ctbcm_idle}, - {"Listen", (method)ctbcm_listen}, - {"Accept", (method)ctbcm_accept}, - {"Abort", (method)ctbcm_abort}, - {"Reset", (method)ctbcm_reset}, - {"Break", (method)ctbcm_break}, +static struct PyMethodDef ctbcm_methods[] = { + {"Open", (PyCFunction)ctbcm_open}, + {"Close", (PyCFunction)ctbcm_close}, + {"Read", (PyCFunction)ctbcm_read}, + {"Write", (PyCFunction)ctbcm_write}, + {"Status", (PyCFunction)ctbcm_status}, + {"GetConfig", (PyCFunction)ctbcm_getconfig}, + {"SetConfig", (PyCFunction)ctbcm_setconfig}, + {"Choose", (PyCFunction)ctbcm_choose}, + {"Idle", (PyCFunction)ctbcm_idle}, + {"Listen", (PyCFunction)ctbcm_listen}, + {"Accept", (PyCFunction)ctbcm_accept}, + {"Abort", (PyCFunction)ctbcm_abort}, + {"Reset", (PyCFunction)ctbcm_reset}, + {"Break", (PyCFunction)ctbcm_break}, {NULL, NULL} /* sentinel */ }; -static object * +static PyObject * ctbcm_getattr(self, name) ctbcmobject *self; char *name; { if ( strcmp(name, "callback") == 0 ) { - INCREF(self->callback); + Py_INCREF(self->callback); return self->callback; } - return findmethod(ctbcm_methods, (object *)self, name); + return Py_FindMethod(ctbcm_methods, (PyObject *)self, name); } static int ctbcm_setattr(self, name, v) ctbcmobject *self; char *name; - object *v; + PyObject *v; { if ( strcmp(name, "callback") != 0 ) { - err_setstr(AttributeError, "ctbcm objects have callback attr only"); + PyErr_SetString(PyExc_AttributeError, "ctbcm objects have callback attr only"); return -1; } if ( v == NULL ) { - v = None; + v = Py_None; } - INCREF(v); /* XXXX Must I do this? */ + Py_INCREF(v); /* XXXX Must I do this? */ self->callback = v; - self->has_callback = (v != None); + self->has_callback = (v != Py_None); return 0; } -statichere typeobject ctbcmtype = { - OB_HEAD_INIT(&Typetype) +statichere PyTypeObject ctbcmtype = { + PyObject_HEAD_INIT(&PyType_Type) 0, /*ob_size*/ "ctbcm", /*tp_name*/ sizeof(ctbcmobject), /*tp_basicsize*/ @@ -467,13 +467,13 @@ statichere typeobject ctbcmtype = { /* Function of no arguments returning new ctbcm object */ -static object * +static PyObject * ctb_cmnew(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { int strlen; - object *sizes_obj; + PyObject *sizes_obj; char *c_str; unsigned char p_str[255]; CMBufferSizes sizes; @@ -481,16 +481,16 @@ ctb_cmnew(self, args) ConnHandle hdl; ctbcmobject *rv; - if (!getargs(args, "(s#O)", &c_str, &strlen, &sizes_obj)) + if (!PyArg_Parse(args, "(s#O)", &c_str, &strlen, &sizes_obj)) return NULL; strncpy((char *)p_str+1, c_str, strlen); p_str[0] = strlen; if (!initialize_ctb()) return NULL; - if ( sizes_obj == None ) { + if ( sizes_obj == Py_None ) { memset(sizes, '\0', sizeof sizes); } else { - if ( !getargs(sizes_obj, "(llllll)", &sizes[0], &sizes[1], &sizes[2], + if ( !PyArg_Parse(sizes_obj, "(llllll)", &sizes[0], &sizes[1], &sizes[2], &sizes[3], &sizes[4], &sizes[5])) return NULL; } @@ -498,7 +498,7 @@ ctb_cmnew(self, args) return PyErr_Mac(ErrorObject, procid); hdl = CMNew(procid, cmNoMenus|cmQuiet, sizes, 0, 0); if ( hdl == NULL ) { - err_setstr(ErrorObject, "CMNew failed"); + PyErr_SetString(ErrorObject, "CMNew failed"); return NULL; } rv = newctbcmobject(args); @@ -506,26 +506,26 @@ ctb_cmnew(self, args) return NULL; /* XXXX Should dispose of hdl */ rv->hdl = hdl; CMSetUserData(hdl, (long)rv); - return (object *)rv; + return (PyObject *)rv; } -static object * +static PyObject * ctb_available(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { int ok; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; ok = initialize_ctb(); - err_clear(); - return newintobject(ok); + PyErr_Clear(); + return PyInt_FromLong(ok); } /* List of functions defined in the module */ -static struct methodlist ctb_methods[] = { +static struct PyMethodDef ctb_methods[] = { {"CMNew", ctb_cmnew}, {"available", ctb_available}, {NULL, NULL} /* sentinel */ @@ -537,15 +537,15 @@ static struct methodlist ctb_methods[] = { void initctb() { - object *m, *d, *o; + PyObject *m, *d, *o; /* Create the module and add the functions */ - m = initmodule("ctb", ctb_methods); + m = Py_InitModule("ctb", ctb_methods); /* Add some symbolic constants to the module */ - d = getmoduledict(m); + d = PyModule_GetDict(m); -#define CMCONST(name, value) o = newintobject(value); dictinsert(d, name, o) +#define CMCONST(name, value) o = PyInt_FromLong(value); PyDict_SetItemString(d, name, o) CMCONST("cmData", 1); CMCONST("cmCntl", 2); @@ -576,10 +576,10 @@ initctb() CMCONST("cmStatusListenPend", 0x2000); CMCONST("cmStatusIncomingCallPresent", 0x4000); - ErrorObject = newstringobject("ctb.error"); - dictinsert(d, "error", ErrorObject); + ErrorObject = PyString_FromString("ctb.error"); + PyDict_SetItemString(d, "error", ErrorObject); /* Check for errors */ - if (err_occurred()) - fatal("can't initialize module ctb"); + if (PyErr_Occurred()) + Py_FatalError("can't initialize module ctb"); } diff --git a/Mac/Modules/gestaltmodule.c b/Mac/Modules/gestaltmodule.c index 3494d64..700cd2a 100644 --- a/Mac/Modules/gestaltmodule.c +++ b/Mac/Modules/gestaltmodule.c @@ -24,26 +24,25 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. /* Macintosh Gestalt interface */ -#include "allobjects.h" -#include "modsupport.h" +#include "Python.h" #include <Types.h> #include <GestaltEqu.h> -static object * +static PyObject * gestalt_gestalt(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { OSErr iErr; char *str; int size; OSType selector; long response; - if (!getargs(args, "s#", &str, &size)) + if (!PyArg_Parse(args, "s#", &str, &size)) return NULL; if (size != 4) { - err_setstr(TypeError, "gestalt arg must be 4-char string"); + PyErr_SetString(PyExc_TypeError, "gestalt arg must be 4-char string"); return NULL; } selector = *(OSType*)str; @@ -51,13 +50,13 @@ gestalt_gestalt(self, args) if (iErr != 0) { char buf[100]; sprintf(buf, "Gestalt error code %d", iErr); - err_setstr(RuntimeError, buf); + PyErr_SetString(PyExc_RuntimeError, buf); return NULL; } - return newintobject(response); + return PyInt_FromLong(response); } -static struct methodlist gestalt_methods[] = { +static struct PyMethodDef gestalt_methods[] = { {"gestalt", gestalt_gestalt}, {NULL, NULL} /* Sentinel */ }; @@ -65,5 +64,5 @@ static struct methodlist gestalt_methods[] = { void initgestalt() { - initmodule("gestalt", gestalt_methods); + Py_InitModule("gestalt", gestalt_methods); } diff --git a/Mac/Modules/macfsmodule.c b/Mac/Modules/macfsmodule.c index e8a7fb9..8eef28e 100644 --- a/Mac/Modules/macfsmodule.c +++ b/Mac/Modules/macfsmodule.c @@ -22,8 +22,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -#include "allobjects.h" -#include "modsupport.h" /* For getargs() etc. */ +#include "Python.h" #include "macglue.h" #include <Memory.h> @@ -39,17 +38,17 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #define FileFilterUPP FileFilterProcPtr #endif -static object *ErrorObject; +static PyObject *ErrorObject; /* ----------------------------------------------------- */ /* Declarations for objects of type Alias */ typedef struct { - OB_HEAD + PyObject_HEAD AliasHandle alias; } mfsaobject; -staticforward typeobject Mfsatype; +staticforward PyTypeObject Mfsatype; #define is_mfsaobject(v) ((v)->ob_type == &Mfsatype) @@ -57,11 +56,11 @@ staticforward typeobject Mfsatype; /* Declarations for objects of type FSSpec */ typedef struct { - OB_HEAD + PyObject_HEAD FSSpec fsspec; } mfssobject; -staticforward typeobject Mfsstype; +staticforward PyTypeObject Mfsstype; #define is_mfssobject(v) ((v)->ob_type == &Mfsstype) @@ -70,11 +69,11 @@ staticforward typeobject Mfsstype; /* Declarations for objects of type FInfo */ typedef struct { - OB_HEAD + PyObject_HEAD FInfo finfo; } mfsiobject; -staticforward typeobject Mfsitype; +staticforward PyTypeObject Mfsitype; #define is_mfsiobject(v) ((v)->ob_type == &Mfsitype) @@ -83,17 +82,17 @@ mfssobject *newmfssobject(FSSpec *fss); /* Forward */ /* ---------------------------------------------------------------- */ -static object * +static PyObject * mfsa_Resolve(self, args) mfsaobject *self; - object *args; + PyObject *args; { FSSpec from, *fromp, result; Boolean changed; OSErr err; from.name[0] = 0; - if (!newgetargs(args, "|O&", PyMac_GetFSSpec, &from)) + if (!PyArg_ParseTuple(args, "|O&", PyMac_GetFSSpec, &from)) return NULL; if (from.name[0] ) fromp = &from; @@ -104,39 +103,39 @@ mfsa_Resolve(self, args) PyErr_Mac(ErrorObject, err); return NULL; } - return mkvalue("(Oi)", newmfssobject(&result), (int)changed); + return Py_BuildValue("(Oi)", newmfssobject(&result), (int)changed); } -static object * +static PyObject * mfsa_GetInfo(self, args) mfsaobject *self; - object *args; + PyObject *args; { Str63 value; int i; OSErr err; - if (!newgetargs(args, "i", &i)) + if (!PyArg_ParseTuple(args, "i", &i)) return NULL; err = GetAliasInfo(self->alias, (AliasInfoType)i, value); if ( err ) { PyErr_Mac(ErrorObject, err); return 0; } - return newsizedstringobject((char *)&value[1], value[0]); + return PyString_FromStringAndSize((char *)&value[1], value[0]); } -static object * +static PyObject * mfsa_Update(self, args) mfsaobject *self; - object *args; + PyObject *args; { FSSpec target, fromfile, *fromfilep; OSErr err; Boolean changed; fromfile.name[0] = 0; - if (!newgetargs(args, "O&|O&", PyMac_GetFSSpec, &target, + if (!PyArg_ParseTuple(args, "O&|O&", PyMac_GetFSSpec, &target, PyMac_GetFSSpec, &fromfile)) return NULL; if ( fromfile.name[0] ) @@ -148,20 +147,20 @@ mfsa_Update(self, args) PyErr_Mac(ErrorObject, err); return 0; } - return mkvalue("i", (int)changed); + return Py_BuildValue("i", (int)changed); } -static struct methodlist mfsa_methods[] = { - {"Resolve", (method)mfsa_Resolve, 1}, - {"GetInfo", (method)mfsa_GetInfo, 1}, - {"Update", (method)mfsa_Update, 1}, +static struct PyMethodDef mfsa_methods[] = { + {"Resolve", (PyCFunction)mfsa_Resolve, 1}, + {"GetInfo", (PyCFunction)mfsa_GetInfo, 1}, + {"Update", (PyCFunction)mfsa_Update, 1}, {NULL, NULL} /* sentinel */ }; /* ---------- */ -static object * +static PyObject * mfsa_getattr(self, name) mfsaobject *self; char *name; @@ -176,7 +175,7 @@ mfsa_getattr(self, name) HUnlock((Handle)self->alias); return rv; } - return findmethod(mfsa_methods, (object *)self, name); + return Py_FindMethod(mfsa_methods, (PyObject *)self, name); } mfsaobject * @@ -185,7 +184,7 @@ newmfsaobject(alias) { mfsaobject *self; - self = NEWOBJ(mfsaobject, &Mfsatype); + self = PyObject_NEW(mfsaobject, &Mfsatype); if (self == NULL) return NULL; self->alias = alias; @@ -203,11 +202,11 @@ mfsa_dealloc(self) } #endif - DEL(self); + PyMem_DEL(self); } -statichere typeobject Mfsatype = { - OB_HEAD_INIT(&Typetype) +statichere PyTypeObject Mfsatype = { + PyObject_HEAD_INIT(&PyType_Type) 0, /*ob_size*/ "Alias", /*tp_name*/ sizeof(mfsaobject), /*tp_basicsize*/ @@ -230,7 +229,7 @@ statichere typeobject Mfsatype = { /* ---------------------------------------------------------------- */ -static struct methodlist mfsi_methods[] = { +static struct PyMethodDef mfsi_methods[] = { {NULL, NULL} /* sentinel */ }; @@ -242,7 +241,7 @@ newmfsiobject() { mfsiobject *self; - self = NEWOBJ(mfsiobject, &Mfsitype); + self = PyObject_NEW(mfsiobject, &Mfsitype); if (self == NULL) return NULL; memset((char *)&self->finfo, '\0', sizeof(self->finfo)); @@ -253,10 +252,10 @@ static void mfsi_dealloc(self) mfsiobject *self; { - DEL(self); + PyMem_DEL(self); } -static object * +static PyObject * mfsi_getattr(self, name) mfsiobject *self; char *name; @@ -272,7 +271,7 @@ mfsi_getattr(self, name) else if ( strcmp(name, "Fldr") == 0 ) return Py_BuildValue("i", (int)self->finfo.fdFldr); else - return findmethod(mfsi_methods, (object *)self, name); + return Py_FindMethod(mfsi_methods, (PyObject *)self, name); } @@ -280,13 +279,13 @@ static int mfsi_setattr(self, name, v) mfsiobject *self; char *name; - object *v; + PyObject *v; { int rv; int i; if ( v == NULL ) { - err_setstr(AttributeError, "Cannot delete attribute"); + PyErr_SetString(PyExc_AttributeError, "Cannot delete attribute"); return -1; } if ( strcmp(name, "Type") == 0 ) @@ -302,7 +301,7 @@ mfsi_setattr(self, name, v) rv = PyArg_Parse(v, "i", &i); self->finfo.fdFldr = (short)i; } else { - err_setstr(AttributeError, "No such attribute"); + PyErr_SetString(PyExc_AttributeError, "No such attribute"); return -1; } if (rv) @@ -311,8 +310,8 @@ mfsi_setattr(self, name, v) } -static typeobject Mfsitype = { - OB_HEAD_INIT(&Typetype) +static PyTypeObject Mfsitype = { + PyObject_HEAD_INIT(&PyType_Type) 0, /*ob_size*/ "FInfo object", /*tp_name*/ sizeof(mfsiobject), /*tp_basicsize*/ @@ -340,7 +339,7 @@ static typeobject Mfsitype = { */ FSSpec * mfs_GetFSSpecFSSpec(self) - object *self; + PyObject *self; { if ( is_mfssobject(self) ) return &((mfssobject *)self)->fsspec; @@ -395,46 +394,46 @@ PyMac_SetFileDates(fss, crdat, mddat, bkdat) return error; } -static object * +static PyObject * mfss_as_pathname(self, args) mfssobject *self; - object *args; + PyObject *args; { char strbuf[257]; OSErr err; - if (!newgetargs(args, "")) + if (!PyArg_ParseTuple(args, "")) return NULL; err = PyMac_GetFullPath(&self->fsspec, strbuf); if ( err ) { PyErr_Mac(ErrorObject, err); return NULL; } - return newstringobject(strbuf); + return PyString_FromString(strbuf); } -static object * +static PyObject * mfss_as_tuple(self, args) mfssobject *self; - object *args; + PyObject *args; { - if (!newgetargs(args, "")) + if (!PyArg_ParseTuple(args, "")) return NULL; return Py_BuildValue("(iis#)", self->fsspec.vRefNum, self->fsspec.parID, &self->fsspec.name[1], self->fsspec.name[0]); } -static object * +static PyObject * mfss_NewAlias(self, args) mfssobject *self; - object *args; + PyObject *args; { FSSpec src, *srcp; OSErr err; AliasHandle alias; src.name[0] = 0; - if (!newgetargs(args, "|O&", PyMac_GetFSSpec, &src)) + if (!PyArg_ParseTuple(args, "|O&", PyMac_GetFSSpec, &src)) return NULL; if ( src.name[0] ) srcp = &src; @@ -446,37 +445,37 @@ mfss_NewAlias(self, args) return NULL; } - return (object *)newmfsaobject(alias); + return (PyObject *)newmfsaobject(alias); } -static object * +static PyObject * mfss_NewAliasMinimal(self, args) mfssobject *self; - object *args; + PyObject *args; { OSErr err; AliasHandle alias; - if (!newgetargs(args, "")) + if (!PyArg_ParseTuple(args, "")) return NULL; err = NewAliasMinimal(&self->fsspec, &alias); if ( err ) { PyErr_Mac(ErrorObject, err); return NULL; } - return (object *)newmfsaobject(alias); + return (PyObject *)newmfsaobject(alias); } /* XXXX These routines should be replaced by a wrapper to the *FInfo routines */ -static object * +static PyObject * mfss_GetCreatorType(self, args) mfssobject *self; - object *args; + PyObject *args; { OSErr err; FInfo info; - if (!newgetargs(args, "")) + if (!PyArg_ParseTuple(args, "")) return NULL; err = FSpGetFInfo(&self->fsspec, &info); if ( err ) { @@ -487,16 +486,16 @@ mfss_GetCreatorType(self, args) PyMac_BuildOSType, info.fdCreator, PyMac_BuildOSType, info.fdType); } -static object * +static PyObject * mfss_SetCreatorType(self, args) mfssobject *self; - object *args; + PyObject *args; { OSErr err; OSType creator, type; FInfo info; - if (!newgetargs(args, "O&O&", PyMac_GetOSType, &creator, PyMac_GetOSType, &type)) + if (!PyArg_ParseTuple(args, "O&O&", PyMac_GetOSType, &creator, PyMac_GetOSType, &type)) return NULL; err = FSpGetFInfo(&self->fsspec, &info); if ( err ) { @@ -510,78 +509,78 @@ mfss_SetCreatorType(self, args) PyErr_Mac(ErrorObject, err); return NULL; } - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * mfss_GetFInfo(self, args) mfssobject *self; - object *args; + PyObject *args; { OSErr err; mfsiobject *fip; - if (!newgetargs(args, "")) + if (!PyArg_ParseTuple(args, "")) return NULL; if ( (fip=newmfsiobject()) == NULL ) return NULL; err = FSpGetFInfo(&self->fsspec, &fip->finfo); if ( err ) { PyErr_Mac(ErrorObject, err); - DECREF(fip); + Py_DECREF(fip); return NULL; } - return (object *)fip; + return (PyObject *)fip; } -static object * +static PyObject * mfss_SetFInfo(self, args) mfssobject *self; - object *args; + PyObject *args; { OSErr err; mfsiobject *fip; - if (!newgetargs(args, "O!", &Mfsitype, &fip)) + if (!PyArg_ParseTuple(args, "O!", &Mfsitype, &fip)) return NULL; err = FSpSetFInfo(&self->fsspec, &fip->finfo); if ( err ) { PyErr_Mac(ErrorObject, err); return NULL; } - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * mfss_GetDates(self, args) mfssobject *self; - object *args; + PyObject *args; { OSErr err; unsigned long crdat, mddat, bkdat; - if (!newgetargs(args, "")) + if (!PyArg_ParseTuple(args, "")) return NULL; err = PyMac_GetFileDates(&self->fsspec, &crdat, &mddat, &bkdat); if ( err ) { PyErr_Mac(ErrorObject, err); return NULL; } - return mkvalue("ddd", (double)crdat, (double)mddat, (double)bkdat); + return Py_BuildValue("ddd", (double)crdat, (double)mddat, (double)bkdat); } -static object * +static PyObject * mfss_SetDates(self, args) mfssobject *self; - object *args; + PyObject *args; { OSErr err; double crdat, mddat, bkdat; - if (!newgetargs(args, "ddd", &crdat, &mddat, &bkdat)) + if (!PyArg_ParseTuple(args, "ddd", &crdat, &mddat, &bkdat)) return NULL; err = PyMac_SetFileDates(&self->fsspec, (unsigned long)crdat, (unsigned long)mddat, (unsigned long)bkdat); @@ -589,35 +588,35 @@ mfss_SetDates(self, args) PyErr_Mac(ErrorObject, err); return NULL; } - INCREF(None); - return None; -} - -static struct methodlist mfss_methods[] = { - {"as_pathname", (method)mfss_as_pathname, 1}, - {"as_tuple", (method)mfss_as_tuple, 1}, - {"NewAlias", (method)mfss_NewAlias, 1}, - {"NewAliasMinimal", (method)mfss_NewAliasMinimal, 1}, - {"GetCreatorType", (method)mfss_GetCreatorType, 1}, - {"SetCreatorType", (method)mfss_SetCreatorType, 1}, - {"GetFInfo", (method)mfss_GetFInfo, 1}, - {"SetFInfo", (method)mfss_SetFInfo, 1}, - {"GetDates", (method)mfss_GetDates, 1}, - {"SetDates", (method)mfss_SetDates, 1}, + Py_INCREF(Py_None); + return Py_None; +} + +static struct PyMethodDef mfss_methods[] = { + {"as_pathname", (PyCFunction)mfss_as_pathname, 1}, + {"as_tuple", (PyCFunction)mfss_as_tuple, 1}, + {"NewAlias", (PyCFunction)mfss_NewAlias, 1}, + {"NewAliasMinimal", (PyCFunction)mfss_NewAliasMinimal, 1}, + {"GetCreatorType", (PyCFunction)mfss_GetCreatorType, 1}, + {"SetCreatorType", (PyCFunction)mfss_SetCreatorType, 1}, + {"GetFInfo", (PyCFunction)mfss_GetFInfo, 1}, + {"SetFInfo", (PyCFunction)mfss_SetFInfo, 1}, + {"GetDates", (PyCFunction)mfss_GetDates, 1}, + {"SetDates", (PyCFunction)mfss_SetDates, 1}, {NULL, NULL} /* sentinel */ }; /* ---------- */ -static object * +static PyObject * mfss_getattr(self, name) mfssobject *self; char *name; { if ( strcmp(name, "data") == 0) return PyString_FromStringAndSize((char *)&self->fsspec, sizeof(FSSpec)); - return findmethod(mfss_methods, (object *)self, name); + return Py_FindMethod(mfss_methods, (PyObject *)self, name); } mfssobject * @@ -626,7 +625,7 @@ newmfssobject(fss) { mfssobject *self; - self = NEWOBJ(mfssobject, &Mfsstype); + self = PyObject_NEW(mfssobject, &Mfsstype); if (self == NULL) return NULL; self->fsspec = *fss; @@ -637,10 +636,10 @@ static void mfss_dealloc(self) mfssobject *self; { - DEL(self); + PyMem_DEL(self); } -static object * +static PyObject * mfss_repr(self) mfssobject *self; { @@ -650,7 +649,7 @@ mfss_repr(self) self->fsspec.vRefNum, self->fsspec.parID, self->fsspec.name[0], self->fsspec.name+1); - return newstringobject(buf); + return PyString_FromString(buf); } static int @@ -673,8 +672,8 @@ mfss_compare(v, w) return res; } -statichere typeobject Mfsstype = { - OB_HEAD_INIT(&Typetype) +statichere PyTypeObject Mfsstype = { + PyObject_HEAD_INIT(&PyType_Type) 0, /*ob_size*/ "FSSpec", /*tp_name*/ sizeof(mfssobject), /*tp_basicsize*/ @@ -695,29 +694,29 @@ statichere typeobject Mfsstype = { /* End of code for FSSpec objects */ /* -------------------------------------------------------- */ -static object * +static PyObject * mfs_ResolveAliasFile(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { FSSpec fss; Boolean chain = 1, isfolder, wasaliased; OSErr err; - if (!newgetargs(args, "O&|i", PyMac_GetFSSpec, &fss, &chain)) + if (!PyArg_ParseTuple(args, "O&|i", PyMac_GetFSSpec, &fss, &chain)) return NULL; err = ResolveAliasFile(&fss, chain, &isfolder, &wasaliased); if ( err ) { PyErr_Mac(ErrorObject, err); return NULL; } - return mkvalue("Oii", newmfssobject(&fss), (int)isfolder, (int)wasaliased); + return Py_BuildValue("Oii", newmfssobject(&fss), (int)isfolder, (int)wasaliased); } -static object * +static PyObject * mfs_StandardGetFile(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { SFTypeList list; short numtypes; @@ -725,7 +724,7 @@ mfs_StandardGetFile(self, args) list[0] = list[1] = list[2] = list[3] = 0; numtypes = 0; - if (!newgetargs(args, "|O&O&O&O&", PyMac_GetOSType, &list[0], + if (!PyArg_ParseTuple(args, "|O&O&O&O&", PyMac_GetOSType, &list[0], PyMac_GetOSType, &list[1], PyMac_GetOSType, &list[2], PyMac_GetOSType, &list[3]) ) return NULL; @@ -735,13 +734,13 @@ mfs_StandardGetFile(self, args) if ( numtypes == 0 ) numtypes = -1; StandardGetFile((FileFilterUPP)0, numtypes, list, &reply); - return mkvalue("(Oi)", newmfssobject(&reply.sfFile), reply.sfGood); + return Py_BuildValue("(Oi)", newmfssobject(&reply.sfFile), reply.sfGood); } -static object * +static PyObject * mfs_PromptGetFile(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { SFTypeList list; short numtypes; @@ -750,7 +749,7 @@ mfs_PromptGetFile(self, args) list[0] = list[1] = list[2] = list[3] = 0; numtypes = 0; - if (!newgetargs(args, "s|O&O&O&O&", &prompt, PyMac_GetOSType, &list[0], + if (!PyArg_ParseTuple(args, "s|O&O&O&O&", &prompt, PyMac_GetOSType, &list[0], PyMac_GetOSType, &list[1], PyMac_GetOSType, &list[2], PyMac_GetOSType, &list[3]) ) return NULL; @@ -760,30 +759,30 @@ mfs_PromptGetFile(self, args) if ( numtypes == 0 ) numtypes = -1; PyMac_PromptGetFile(numtypes, list, &reply, prompt); - return mkvalue("(Oi)", newmfssobject(&reply.sfFile), reply.sfGood); + return Py_BuildValue("(Oi)", newmfssobject(&reply.sfFile), reply.sfGood); } -static object * +static PyObject * mfs_StandardPutFile(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { Str255 prompt, dft; StandardFileReply reply; dft[0] = 0; - if (!newgetargs(args, "O&|O&", PyMac_GetStr255, &prompt, PyMac_GetStr255, &dft) ) + if (!PyArg_ParseTuple(args, "O&|O&", PyMac_GetStr255, &prompt, PyMac_GetStr255, &dft) ) return NULL; StandardPutFile(prompt, dft, &reply); - return mkvalue("(Oi)",newmfssobject(&reply.sfFile), reply.sfGood); + return Py_BuildValue("(Oi)",newmfssobject(&reply.sfFile), reply.sfGood); } /* ** Set initial directory for file dialogs */ -static object * +static PyObject * mfs_SetFolder(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { FSSpec spec; FSSpec ospec; @@ -797,53 +796,53 @@ mfs_SetFolder(self, args) /* Go to working directory by default */ (void)FSMakeFSSpec(0, 0, "\p:placeholder", &spec); - if (!newgetargs(args, "|O&", PyMac_GetFSSpec, &spec)) + if (!PyArg_ParseTuple(args, "|O&", PyMac_GetFSSpec, &spec)) return NULL; /* Set standard-file working directory */ LMSetSFSaveDisk(-spec.vRefNum); LMSetCurDirStore(spec.parID); - return (object *)newmfssobject(&ospec); + return (PyObject *)newmfssobject(&ospec); } -static object * +static PyObject * mfs_FSSpec(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { FSSpec fss; - if (!newgetargs(args, "O&", PyMac_GetFSSpec, &fss)) + if (!PyArg_ParseTuple(args, "O&", PyMac_GetFSSpec, &fss)) return NULL; - return (object *)newmfssobject(&fss); + return (PyObject *)newmfssobject(&fss); } -static object * +static PyObject * mfs_RawFSSpec(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { FSSpec *fssp; int size; - if (!newgetargs(args, "s#", &fssp, &size)) + if (!PyArg_ParseTuple(args, "s#", &fssp, &size)) return NULL; if ( size != sizeof(FSSpec) ) { PyErr_SetString(PyExc_TypeError, "Incorrect size for FSSpec record"); return NULL; } - return (object *)newmfssobject(fssp); + return (PyObject *)newmfssobject(fssp); } -static object * +static PyObject * mfs_RawAlias(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { char *dataptr; Handle h; int size; - if (!newgetargs(args, "s#", &dataptr, &size)) + if (!PyArg_ParseTuple(args, "s#", &dataptr, &size)) return NULL; h = NewHandle(size); if ( h == NULL ) { @@ -853,29 +852,29 @@ mfs_RawAlias(self, args) HLock(h); memcpy((char *)*h, dataptr, size); HUnlock(h); - return (object *)newmfsaobject((AliasHandle)h); + return (PyObject *)newmfsaobject((AliasHandle)h); } -static object * +static PyObject * mfs_GetDirectory(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { FSSpec fsdir; int ok; char *prompt = NULL; - if (!newgetargs(args, "|s", &prompt) ) + if (!PyArg_ParseTuple(args, "|s", &prompt) ) return NULL; ok = PyMac_GetDirectory(&fsdir, prompt); - return mkvalue("(Oi)", newmfssobject(&fsdir), ok); + return Py_BuildValue("(Oi)", newmfssobject(&fsdir), ok); } -static object * +static PyObject * mfs_FindFolder(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { OSErr err; short where; @@ -884,46 +883,46 @@ mfs_FindFolder(self, args) short refnum; long dirid; - if (!newgetargs(args, "hO&i", &where, PyMac_GetOSType, &which, &create) ) + if (!PyArg_ParseTuple(args, "hO&i", &where, PyMac_GetOSType, &which, &create) ) return NULL; err = FindFolder(where, which, (Boolean)create, &refnum, &dirid); if ( err ) { PyErr_Mac(ErrorObject, err); return NULL; } - return mkvalue("(ii)", refnum, dirid); + return Py_BuildValue("(ii)", refnum, dirid); } -static object * +static PyObject * mfs_FindApplication(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { OSErr err; OSType which; FSSpec fss; - if (!newgetargs(args, "O&", PyMac_GetOSType, &which) ) + if (!PyArg_ParseTuple(args, "O&", PyMac_GetOSType, &which) ) return NULL; err = FindApplicationFromCreator(which, &fss); if ( err ) { PyErr_Mac(ErrorObject, err); return NULL; } - return (object *)newmfssobject(&fss); + return (PyObject *)newmfssobject(&fss); } -static object * +static PyObject * mfs_FInfo(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { - return (object *)newmfsiobject(); + return (PyObject *)newmfsiobject(); } /* List of methods defined in the module */ -static struct methodlist mfs_methods[] = { +static struct PyMethodDef mfs_methods[] = { {"ResolveAliasFile", mfs_ResolveAliasFile, 1}, {"StandardGetFile", mfs_StandardGetFile, 1}, {"PromptGetFile", mfs_PromptGetFile, 1}, @@ -946,19 +945,19 @@ static struct methodlist mfs_methods[] = { void initmacfs() { - object *m, *d; + PyObject *m, *d; /* Create the module and add the functions */ - m = initmodule("macfs", mfs_methods); + m = Py_InitModule("macfs", mfs_methods); /* Add some symbolic constants to the module */ - d = getmoduledict(m); - ErrorObject = newstringobject("macfs.error"); - dictinsert(d, "error", ErrorObject); + d = PyModule_GetDict(m); + ErrorObject = PyString_FromString("macfs.error"); + PyDict_SetItemString(d, "error", ErrorObject); /* XXXX Add constants here */ /* Check for errors */ - if (err_occurred()) - fatal("can't initialize module macfs"); + if (PyErr_Occurred()) + Py_FatalError("can't initialize module macfs"); } diff --git a/Mac/Modules/macmodule.c b/Mac/Modules/macmodule.c index 4231346..b94b713 100644 --- a/Mac/Modules/macmodule.c +++ b/Mac/Modules/macmodule.c @@ -24,8 +24,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. /* Mac module implementation */ -#include "allobjects.h" -#include "modsupport.h" +#include "Python.h" #include "ceval.h" #include <stdio.h> @@ -89,100 +88,100 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef USE_GUSI -int chdir PROTO((const char *path)); -int mkdir PROTO((const char *path, int mode)); -DIR * opendir PROTO((char *)); -void closedir PROTO((DIR *)); -struct dirent * readdir PROTO((DIR *)); -int rmdir PROTO((const char *path)); -int sync PROTO((void)); +int chdir Py_PROTO((const char *path)); +int mkdir Py_PROTO((const char *path, int mode)); +DIR * opendir Py_PROTO((char *)); +void closedir Py_PROTO((DIR *)); +struct dirent * readdir Py_PROTO((DIR *)); +int rmdir Py_PROTO((const char *path)); +int sync Py_PROTO((void)); #if defined(THINK_C) || defined(__SC__) -int unlink PROTO((char *)); +int unlink Py_PROTO((char *)); #else -int unlink PROTO((const char *)); +int unlink Py_PROTO((const char *)); #endif #endif /* USE_GUSI */ -char *getwd PROTO((char *)); -char *getbootvol PROTO((void)); +char *getwd Py_PROTO((char *)); +char *getbootvol Py_PROTO((void)); -static object *MacError; /* Exception mac.error */ +static PyObject *MacError; /* Exception mac.error */ /* Set a MAC-specific error from errno, and return NULL */ -static object * +static PyObject * mac_error() { - return err_errno(MacError); + return PyErr_SetFromErrno(MacError); } /* MAC generic methods */ -static object * +static PyObject * mac_1str(args, func) - object *args; - int (*func) FPROTO((const char *)); + PyObject *args; + int (*func) Py_FPROTO((const char *)); { char *path1; int res; - if (!getargs(args, "s", &path1)) + if (!PyArg_Parse(args, "s", &path1)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS res = (*func)(path1); - END_SAVE + Py_END_ALLOW_THREADS if (res < 0) return mac_error(); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * mac_2str(args, func) - object *args; - int (*func) FPROTO((const char *, const char *)); + PyObject *args; + int (*func) Py_FPROTO((const char *, const char *)); { char *path1, *path2; int res; - if (!getargs(args, "(ss)", &path1, &path2)) + if (!PyArg_Parse(args, "(ss)", &path1, &path2)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS res = (*func)(path1, path2); - END_SAVE + Py_END_ALLOW_THREADS if (res < 0) return mac_error(); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * mac_strint(args, func) - object *args; - int (*func) FPROTO((const char *, int)); + PyObject *args; + int (*func) Py_FPROTO((const char *, int)); { char *path; int i; int res; - if (!getargs(args, "(si)", &path, &i)) + if (!PyArg_Parse(args, "(si)", &path, &i)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS res = (*func)(path, i); - END_SAVE + Py_END_ALLOW_THREADS if (res < 0) return mac_error(); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * mac_chdir(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { #ifdef USE_GUSI - object *rv; + PyObject *rv; /* Change MacOS's idea of wd too */ rv = mac_1str(args, chdir); @@ -194,264 +193,264 @@ mac_chdir(self, args) } -static object * +static PyObject * mac_close(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { int fd, res; - if (!getargs(args, "i", &fd)) + if (!PyArg_Parse(args, "i", &fd)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS res = close(fd); - END_SAVE + Py_END_ALLOW_THREADS #ifndef USE_GUSI /* GUSI gives surious errors here? */ if (res < 0) return mac_error(); #endif - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } #ifdef WEHAVE_DUP -static object * +static PyObject * mac_dup(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { int fd; - if (!getargs(args, "i", &fd)) + if (!PyArg_Parse(args, "i", &fd)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS fd = dup(fd); - END_SAVE + Py_END_ALLOW_THREADS if (fd < 0) return mac_error(); - return newintobject((long)fd); + return PyInt_FromLong((long)fd); } #endif #ifdef WEHAVE_FDOPEN -static object * +static PyObject * mac_fdopen(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { - extern int fclose PROTO((FILE *)); + extern int fclose Py_PROTO((FILE *)); int fd; char *mode; FILE *fp; - if (!getargs(args, "(is)", &fd, &mode)) + if (!PyArg_Parse(args, "(is)", &fd, &mode)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS fp = fdopen(fd, mode); - END_SAVE + Py_END_ALLOW_THREADS if (fp == NULL) return mac_error(); - return newopenfileobject(fp, "(fdopen)", mode, fclose); + return PyFile_FromFile(fp, "(fdopen)", mode, fclose); } #endif -static object * +static PyObject * mac_getbootvol(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { char *res; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS res = getbootvol(); - END_SAVE + Py_END_ALLOW_THREADS if (res == NULL) return mac_error(); - return newstringobject(res); + return PyString_FromString(res); } -static object * +static PyObject * mac_getcwd(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { char path[MAXPATHLEN]; char *res; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS #ifdef USE_GUSI res = getcwd(path, sizeof path); #else res = getwd(path); #endif - END_SAVE + Py_END_ALLOW_THREADS if (res == NULL) { - err_setstr(MacError, path); + PyErr_SetString(MacError, path); return NULL; } - return newstringobject(res); + return PyString_FromString(res); } -static object * +static PyObject * mac_listdir(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { char *name; - object *d, *v; + PyObject *d, *v; DIR *dirp; struct dirent *ep; - if (!getargs(args, "s", &name)) + if (!PyArg_Parse(args, "s", &name)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS if ((dirp = opendir(name)) == NULL) { - RET_SAVE + Py_BLOCK_THREADS return mac_error(); } - if ((d = newlistobject(0)) == NULL) { + if ((d = PyList_New(0)) == NULL) { closedir(dirp); - RET_SAVE + Py_BLOCK_THREADS return NULL; } while ((ep = readdir(dirp)) != NULL) { - v = newstringobject(ep->d_name); + v = PyString_FromString(ep->d_name); if (v == NULL) { - DECREF(d); + Py_DECREF(d); d = NULL; break; } - if (addlistitem(d, v) != 0) { - DECREF(v); - DECREF(d); + if (PyList_Append(d, v) != 0) { + Py_DECREF(v); + Py_DECREF(d); d = NULL; break; } - DECREF(v); + Py_DECREF(v); } closedir(dirp); - END_SAVE + Py_END_ALLOW_THREADS return d; } -static object * +static PyObject * mac_lseek(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { int fd; int where; int how; long res; - if (!getargs(args, "(iii)", &fd, &where, &how)) + if (!PyArg_Parse(args, "(iii)", &fd, &where, &how)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS res = lseek(fd, (long)where, how); - END_SAVE + Py_END_ALLOW_THREADS if (res < 0) return mac_error(); - return newintobject(res); + return PyInt_FromLong(res); } -static object * +static PyObject * mac_mkdir(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { int res; char *path; int mode = 0777; /* Unused */ - if (!newgetargs(args, "s|i", &path, &mode)) + if (!PyArg_ParseTuple(args, "s|i", &path, &mode)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS #ifdef USE_GUSI res = mkdir(path); #else res = mkdir(path, mode); #endif - END_SAVE + Py_END_ALLOW_THREADS if (res < 0) return mac_error(); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * mac_open(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { char *path; int mode; int fd; - if (!getargs(args, "(si)", &path, &mode)) + if (!PyArg_Parse(args, "(si)", &path, &mode)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS fd = open(path, mode); - END_SAVE + Py_END_ALLOW_THREADS if (fd < 0) return mac_error(); - return newintobject((long)fd); + return PyInt_FromLong((long)fd); } -static object * +static PyObject * mac_read(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { int fd, size; - object *buffer; - if (!getargs(args, "(ii)", &fd, &size)) + PyObject *buffer; + if (!PyArg_Parse(args, "(ii)", &fd, &size)) return NULL; - buffer = newsizedstringobject((char *)NULL, size); + buffer = PyString_FromStringAndSize((char *)NULL, size); if (buffer == NULL) return NULL; - BGN_SAVE - size = read(fd, getstringvalue(buffer), size); - END_SAVE + Py_BEGIN_ALLOW_THREADS + size = read(fd, PyString_AsString(buffer), size); + Py_END_ALLOW_THREADS if (size < 0) { - DECREF(buffer); + Py_DECREF(buffer); return mac_error(); } - resizestring(&buffer, size); + _PyString_Resize(&buffer, size); return buffer; } -static object * +static PyObject * mac_rename(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { return mac_2str(args, rename); } -static object * +static PyObject * mac_rmdir(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { return mac_1str(args, rmdir); } -static object * +static PyObject * mac_stat(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { struct stat st; char *path; int res; - if (!getargs(args, "s", &path)) + if (!PyArg_Parse(args, "s", &path)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS res = stat(path, &st); - END_SAVE + Py_END_ALLOW_THREADS if (res != 0) return mac_error(); #if 1 - return mkvalue("(lllllllddd)", + return Py_BuildValue("(lllllllddd)", (long)st.st_mode, (long)st.st_ino, (long)st.st_dev, @@ -463,7 +462,7 @@ mac_stat(self, args) (double)st.st_mtime, (double)st.st_ctime); #else - return mkvalue("(llllllllll)", + return Py_BuildValue("(llllllllll)", (long)st.st_mode, (long)st.st_ino, (long)st.st_dev, @@ -477,34 +476,34 @@ mac_stat(self, args) #endif } -static object * +static PyObject * mac_xstat(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { struct macstat mst; struct stat st; char *path; int res; - if (!getargs(args, "s", &path)) + if (!PyArg_Parse(args, "s", &path)) return NULL; /* ** Convoluted: we want stat() and xstat() to agree, so we call both ** stat and macstat, and use the latter only for values not provided by ** the former. */ - BGN_SAVE + Py_BEGIN_ALLOW_THREADS res = macstat(path, &mst); - END_SAVE + Py_END_ALLOW_THREADS if (res != 0) return mac_error(); - BGN_SAVE + Py_BEGIN_ALLOW_THREADS res = stat(path, &st); - END_SAVE + Py_END_ALLOW_THREADS if (res != 0) return mac_error(); #if 1 - return mkvalue("(llllllldddls#s#)", + return Py_BuildValue("(llllllldddls#s#)", (long)st.st_mode, (long)st.st_ino, (long)st.st_dev, @@ -519,7 +518,7 @@ mac_xstat(self, args) mst.st_creator, 4, mst.st_type, 4); #else - return mkvalue("(llllllllllls#s#)", + return Py_BuildValue("(llllllllllls#s#)", (long)st.st_mode, (long)st.st_ino, (long)st.st_dev, @@ -536,61 +535,61 @@ mac_xstat(self, args) #endif } -static object * +static PyObject * mac_sync(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { int res; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS res = sync(); - END_SAVE + Py_END_ALLOW_THREADS if (res != 0) return mac_error(); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * mac_unlink(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { return mac_1str(args, (int (*)(const char *))unlink); } -static object * +static PyObject * mac_write(self, args) - object *self; - object *args; + PyObject *self; + PyObject *args; { int fd, size; char *buffer; - if (!getargs(args, "(is#)", &fd, &buffer, &size)) + if (!PyArg_Parse(args, "(is#)", &fd, &buffer, &size)) return NULL; - BGN_SAVE + Py_BEGIN_ALLOW_THREADS size = write(fd, buffer, size); - END_SAVE + Py_END_ALLOW_THREADS if (size < 0) return mac_error(); - return newintobject((long)size); + return PyInt_FromLong((long)size); } #ifdef USE_MALLOC_DEBUG -static object * +static PyObject * mac_mstats(self, args) - object*self; - object *args; + PyObject*self; + PyObject *args; { mstats("python"); - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } #endif USE_MALLOC_DEBUG -static struct methodlist mac_methods[] = { +static struct PyMethodDef mac_methods[] = { {"chdir", mac_chdir}, {"close", mac_close}, #ifdef WEHAVE_DUP @@ -625,13 +624,13 @@ static struct methodlist mac_methods[] = { void initmac() { - object *m, *d; + PyObject *m, *d; - m = initmodule("mac", mac_methods); - d = getmoduledict(m); + m = Py_InitModule("mac", mac_methods); + d = PyModule_GetDict(m); /* Initialize mac.error exception */ - MacError = newstringobject("mac.error"); - if (MacError == NULL || dictinsert(d, "error", MacError) != 0) - fatal("can't define mac.error"); + MacError = PyString_FromString("mac.error"); + if (MacError == NULL || PyDict_SetItemString(d, "error", MacError) != 0) + Py_FatalError("can't define mac.error"); } diff --git a/Mac/Modules/macspeechmodule.c b/Mac/Modules/macspeechmodule.c index 6a6e3d5..e804ac1 100644 --- a/Mac/Modules/macspeechmodule.c +++ b/Mac/Modules/macspeechmodule.c @@ -24,8 +24,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. /* xx module */ -#include "allobjects.h" -#include "modsupport.h" +#include "Python.h" #include <GestaltEqu.h> #include "Speech.h" @@ -48,7 +47,7 @@ int lib_available; #define double2fixed(x) ((Fixed)((x)*32768.0)) char *CurrentSpeech; -object *ms_error_object; +PyObject *ms_error_object; int speech_available; static @@ -68,12 +67,12 @@ init_available() { static check_available() { if ( !speech_available ) { - err_setstr(ms_error_object, "Speech Mgr not available"); + PyErr_SetString(ms_error_object, "Speech Mgr not available"); return 0; } #ifdef __powerc if ( !lib_available ) { - err_setstr(ms_error_object, "Speech Mgr available, but shared lib missing"); + PyErr_SetString(ms_error_object, "Speech Mgr available, but shared lib missing"); return 0; } #endif @@ -85,12 +84,12 @@ check_available() { ** Part one - the speech channel object */ typedef struct { - OB_HEAD + PyObject_HEAD SpeechChannel chan; - object *curtext; /* If non-NULL current text being spoken */ + PyObject *curtext; /* If non-NULL current text being spoken */ } scobject; -staticforward typeobject sctype; +staticforward PyTypeObject sctype; #define is_scobject(v) ((v)->ob_type == &sctype) @@ -101,11 +100,11 @@ newscobject(arg) scobject *self; OSErr err; - self = NEWOBJ(scobject, &sctype); + self = PyObject_NEW(scobject, &sctype); if (self == NULL) return NULL; if ( (err=NewSpeechChannel(arg, &self->chan)) != 0) { - DECREF(self); + Py_DECREF(self); return (scobject *)PyErr_Mac(ms_error_object, err); } self->curtext = NULL; @@ -119,146 +118,146 @@ sc_dealloc(self) scobject *self; { DisposeSpeechChannel(self->chan); - DEL(self); + PyMem_DEL(self); } -static object * +static PyObject * sc_Stop(self, args) scobject *self; - object *args; + PyObject *args; { OSErr err; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; if ((err=StopSpeech(self->chan)) != 0) { PyErr_Mac(ms_error_object, err); return NULL; } if ( self->curtext ) { - DECREF(self->curtext); + Py_DECREF(self->curtext); self->curtext = NULL; } - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * sc_SpeakText(self, args) scobject *self; - object *args; + PyObject *args; { OSErr err; char *str; int len; - if (!getargs(args, "s#", &str, &len)) + if (!PyArg_Parse(args, "s#", &str, &len)) return NULL; if ( self->curtext ) { StopSpeech(self->chan); - DECREF(self->curtext); + Py_DECREF(self->curtext); self->curtext = NULL; } if ((err=SpeakText(self->chan, (Ptr)str, (long)len)) != 0) { PyErr_Mac(ms_error_object, err); return 0; } - (void)getargs(args, "O", &self->curtext); /* Or should I check this? */ - INCREF(self->curtext); - INCREF(None); - return None; + (void)PyArg_Parse(args, "O", &self->curtext); /* Or should I check this? */ + Py_INCREF(self->curtext); + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * sc_GetRate(self, args) scobject *self; - object *args; + PyObject *args; { OSErr err; Fixed farg; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; if ((err=GetSpeechRate(self->chan, &farg)) != 0) { PyErr_Mac(ms_error_object, err); return 0; } - return newfloatobject(fixed2double(farg)); + return PyFloat_FromDouble(fixed2double(farg)); } -static object * +static PyObject * sc_GetPitch(self, args) scobject *self; - object *args; + PyObject *args; { OSErr err; Fixed farg; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; if ((err=GetSpeechPitch(self->chan, &farg)) != 0) { PyErr_Mac(ms_error_object, err); return 0; } - return newfloatobject(fixed2double(farg)); + return PyFloat_FromDouble(fixed2double(farg)); } -static object * +static PyObject * sc_SetRate(self, args) scobject *self; - object *args; + PyObject *args; { OSErr err; double darg; - if (!getargs(args, "d", &darg)) + if (!PyArg_Parse(args, "d", &darg)) return NULL; if ((err=SetSpeechRate(self->chan, double2fixed(darg))) != 0) { PyErr_Mac(ms_error_object, err); return 0; } - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static object * +static PyObject * sc_SetPitch(self, args) scobject *self; - object *args; + PyObject *args; { OSErr err; double darg; - if (!getargs(args, "d", &darg)) + if (!PyArg_Parse(args, "d", &darg)) return NULL; if ((err=SetSpeechPitch(self->chan, double2fixed(darg))) != 0) { PyErr_Mac(ms_error_object, err); return NULL; } - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } -static struct methodlist sc_methods[] = { - {"Stop", (method)sc_Stop}, - {"SetRate", (method)sc_SetRate}, - {"GetRate", (method)sc_GetRate}, - {"SetPitch", (method)sc_SetPitch}, - {"GetPitch", (method)sc_GetPitch}, - {"SpeakText", (method)sc_SpeakText}, +static struct PyMethodDef sc_methods[] = { + {"Stop", (PyCFunction)sc_Stop}, + {"SetRate", (PyCFunction)sc_SetRate}, + {"GetRate", (PyCFunction)sc_GetRate}, + {"SetPitch", (PyCFunction)sc_SetPitch}, + {"GetPitch", (PyCFunction)sc_GetPitch}, + {"SpeakText", (PyCFunction)sc_SpeakText}, {NULL, NULL} /* sentinel */ }; -static object * +static PyObject * sc_getattr(self, name) scobject *self; char *name; { - return findmethod(sc_methods, (object *)self, name); + return Py_FindMethod(sc_methods, (PyObject *)self, name); } -static typeobject sctype = { - OB_HEAD_INIT(&Typetype) +static PyTypeObject sctype = { + PyObject_HEAD_INIT(&PyType_Type) 0, /*ob_size*/ "MacSpeechChannel", /*tp_name*/ sizeof(scobject), /*tp_basicsize*/ @@ -281,13 +280,13 @@ static typeobject sctype = { ** Part two - the voice object */ typedef struct { - OB_HEAD + PyObject_HEAD int initialized; VoiceSpec vs; VoiceDescription vd; } mvobject; -staticforward typeobject mvtype; +staticforward PyTypeObject mvtype; #define is_mvobject(v) ((v)->ob_type == &mvtype) @@ -295,7 +294,7 @@ static mvobject * newmvobject() { mvobject *self; - self = NEWOBJ(mvobject, &mvtype); + self = PyObject_NEW(mvobject, &mvtype); if (self == NULL) return NULL; self->initialized = 0; @@ -326,56 +325,56 @@ static void mv_dealloc(self) mvobject *self; { - DEL(self); + PyMem_DEL(self); } -static object * +static PyObject * mv_getgender(self, args) mvobject *self; - object *args; + PyObject *args; { - object *rv; + PyObject *rv; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; if (!self->initialized) { - err_setstr(ms_error_object, "Uninitialized voice"); + PyErr_SetString(ms_error_object, "Uninitialized voice"); return NULL; } - rv = newintobject(self->vd.gender); + rv = PyInt_FromLong(self->vd.gender); return rv; } -static object * +static PyObject * mv_newchannel(self, args) mvobject *self; - object *args; + PyObject *args; { - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; if (!self->initialized) { - err_setstr(ms_error_object, "Uninitialized voice"); + PyErr_SetString(ms_error_object, "Uninitialized voice"); return NULL; } - return (object *)newscobject(&self->vs); + return (PyObject *)newscobject(&self->vs); } -static struct methodlist mv_methods[] = { - {"GetGender", (method)mv_getgender}, - {"NewChannel", (method)mv_newchannel}, +static struct PyMethodDef mv_methods[] = { + {"GetGender", (PyCFunction)mv_getgender}, + {"NewChannel", (PyCFunction)mv_newchannel}, {NULL, NULL} /* sentinel */ }; -static object * +static PyObject * mv_getattr(self, name) mvobject *self; char *name; { - return findmethod(mv_methods, (object *)self, name); + return Py_FindMethod(mv_methods, (PyObject *)self, name); } -static typeobject mvtype = { - OB_HEAD_INIT(&Typetype) +static PyTypeObject mvtype = { + PyObject_HEAD_INIT(&PyType_Type) 0, /*ob_size*/ "MacVoice", /*tp_name*/ sizeof(mvobject), /*tp_basicsize*/ @@ -401,46 +400,46 @@ static typeobject mvtype = { /* See if Speech manager available */ -static object * +static PyObject * ms_Available(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; - return newintobject(speech_available); + return PyInt_FromLong(speech_available); } /* Count number of busy speeches */ -static object * +static PyObject * ms_Busy(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { short result; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; if ( !check_available() ) return NULL; result = SpeechBusy(); - return newintobject(result); + return PyInt_FromLong(result); } /* Say something */ -static object * +static PyObject * ms_SpeakString(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { OSErr err; char *str; int len; - if (!getstrarg(args, &str)) + if (!PyArg_Parse(args, "s", &str)) return NULL; if ( !check_available()) return NULL; @@ -459,68 +458,68 @@ ms_SpeakString(self, args) PyErr_Mac(ms_error_object, err); return NULL; } - INCREF(None); - return None; + Py_INCREF(Py_None); + return Py_None; } /* Count number of available voices */ -static object * +static PyObject * ms_CountVoices(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { short result; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; if ( !check_available()) return NULL; CountVoices(&result); - return newintobject(result); + return PyInt_FromLong(result); } -static object * +static PyObject * ms_GetIndVoice(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { mvobject *rv; long ind; - if( !getargs(args, "i", &ind)) + if( !PyArg_Parse(args, "i", &ind)) return NULL; if ( !check_available() ) return NULL; rv = newmvobject(); if ( !initmvobject(rv, ind) ) { - DECREF(rv); + Py_DECREF(rv); return NULL; } - return (object *)rv; + return (PyObject *)rv; } -static object * +static PyObject * ms_Version(self, args) - object *self; /* Not used */ - object *args; + PyObject *self; /* Not used */ + PyObject *args; { NumVersion v; - if (!getnoarg(args)) + if (!PyArg_NoArgs(args)) return NULL; if ( !check_available()) return NULL; v = SpeechManagerVersion(); - return newintobject(*(int *)&v); + return PyInt_FromLong(*(int *)&v); } /* List of functions defined in the module */ -static struct methodlist ms_methods[] = { +static struct PyMethodDef ms_methods[] = { {"Available", ms_Available}, {"CountVoices", ms_CountVoices}, {"Busy", ms_Busy}, @@ -535,18 +534,18 @@ static struct methodlist ms_methods[] = { void initmacspeech() { - object *m, *d; + PyObject *m, *d; speech_available = init_available(); /* Create the module and add the functions */ - m = initmodule("macspeech", ms_methods); + m = Py_InitModule("macspeech", ms_methods); /* Add some symbolic constants to the module */ - d = getmoduledict(m); - ms_error_object = newstringobject("macspeech.error"); - dictinsert(d, "error", ms_error_object); + d = PyModule_GetDict(m); + ms_error_object = PyString_FromString("macspeech.error"); + PyDict_SetItemString(d, "error", ms_error_object); /* Check for errors */ - if (err_occurred()) - fatal("can't initialize module macspeech"); + if (PyErr_Occurred()) + Py_FatalError("can't initialize module macspeech"); } |