]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Added [GS]etCreatorType methods to FSSpec objects
authorJack Jansen <jack.jansen@cwi.nl>
Thu, 2 Feb 1995 14:23:52 +0000 (14:23 +0000)
committerJack Jansen <jack.jansen@cwi.nl>
Thu, 2 Feb 1995 14:23:52 +0000 (14:23 +0000)
Mac/Modules/macfsmodule.c

index 09c788356e8ee605232bffd573988fdd6b09641d..d8f454c590aab4451e3f471e64c605fb518b5ba6 100644 (file)
@@ -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 */
 };