summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Mac/Modules/ctbmodule.c274
-rw-r--r--Mac/Modules/gestaltmodule.c21
-rw-r--r--Mac/Modules/macfsmodule.c343
-rw-r--r--Mac/Modules/macmodule.c369
-rw-r--r--Mac/Modules/macspeechmodule.c231
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");
}