]> granicus.if.org Git - python/commitdiff
Renamed
authorJack Jansen <jack.jansen@cwi.nl>
Thu, 30 Jan 1997 15:48:07 +0000 (15:48 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Thu, 30 Jan 1997 15:48:07 +0000 (15:48 +0000)
Mac/Modules/ctbmodule.c
Mac/Modules/gestaltmodule.c
Mac/Modules/macfsmodule.c
Mac/Modules/macmodule.c
Mac/Modules/macspeechmodule.c

index ef03f9227fc0d909f4e4c79c75f7e68e728daffe..759264c8284edb589a9238588ccfb0b96f42bcac 100644 (file)
@@ -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");
 }
index 3494d646e3d2c6c525f3224174b9feb4e5978b6f..700cd2a26a82437a5a687c606ba4754f9fbae49c 100644 (file)
@@ -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);
 }
index e8a7fb9549e50d07189fef5f3d37ddccef43ca92..8eef28e98f1905f4c069dc46409fa942186be7f5 100644 (file)
@@ -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");
 }
index 4231346e401671fe9b7e8b7a03c546472862d204..b94b71305af62c3c39d986e3831ae8fa3c5f1aa2 100644 (file)
@@ -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");
 }
index 6a6e3d5a5eb22878c63ce8bd64b4463877d2f9ed..e804ac1c2ed736f9216951822bf077aeb97b02eb 100644 (file)
@@ -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");
 }