From 8828fcf7383aa38539fd331d9b93138c156f8810 Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Thu, 2 Feb 1995 14:23:52 +0000 Subject: Added [GS]etCreatorType methods to FSSpec objects --- Mac/Modules/macfsmodule.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/Mac/Modules/macfsmodule.c b/Mac/Modules/macfsmodule.c index 09c7883..d8f454c 100644 --- a/Mac/Modules/macfsmodule.c +++ b/Mac/Modules/macfsmodule.c @@ -288,11 +288,60 @@ mfss_NewAliasMinimal(self, args) return (object *)newmfsaobject(alias); } +/* XXXX These routines should be replaced with a complete interface to *FInfo */ +static object * +mfss_GetCreatorType(self, args) + mfssobject *self; + object *args; +{ + OSErr err; + FInfo info; + + if (!newgetargs(args, "")) + return NULL; + err = FSpGetFInfo(&self->fsspec, &info); + if ( err ) { + PyErr_Mac(ErrorObject, err); + return NULL; + } + return Py_BuildValue("(O&O&)", + PyMac_BuildOSType, info.fdCreator, PyMac_BuildOSType, info.fdType); +} + +static object * +mfss_SetCreatorType(self, args) + mfssobject *self; + object *args; +{ + OSErr err; + OSType creator, type; + FInfo info; + + if (!newgetargs(args, "O&O&", PyMac_GetOSType, &creator, PyMac_GetOSType, &type)) + return NULL; + err = FSpGetFInfo(&self->fsspec, &info); + if ( err ) { + PyErr_Mac(ErrorObject, err); + return NULL; + } + info.fdType = type; + info.fdCreator = creator; + err = FSpSetFInfo(&self->fsspec, &info); + if ( err ) { + 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}, {NULL, NULL} /* sentinel */ }; -- cgit v0.12