@@ -1382,6 +1382,36 @@ static PyObject *Res_FSOpenResFile(PyObject *_self, PyObject *_args)
13821382 return _res ;
13831383}
13841384
1385+ static PyObject * Res_FSCreateResFile (PyObject * _self , PyObject * _args )
1386+ {
1387+ PyObject * _res = NULL ;
1388+ FSRef parentRef ;
1389+ UniChar * nameLength__in__ ;
1390+ UniCharCount nameLength__len__ ;
1391+ int nameLength__in_len__ ;
1392+ FSRef newRef ;
1393+ FSSpec newSpec ;
1394+ if (!PyArg_ParseTuple (_args , "O&u#" ,
1395+ PyMac_GetFSRef , & parentRef ,
1396+ & nameLength__in__ , & nameLength__in_len__ ))
1397+ return NULL ;
1398+ nameLength__len__ = nameLength__in_len__ ;
1399+ FSCreateResFile (& parentRef ,
1400+ nameLength__len__ , nameLength__in__ ,
1401+ 0 ,
1402+ (FSCatalogInfo * )0 ,
1403+ & newRef ,
1404+ & newSpec );
1405+ {
1406+ OSErr _err = ResError ();
1407+ if (_err != noErr ) return PyMac_Error (_err );
1408+ }
1409+ _res = Py_BuildValue ("O&O&" ,
1410+ PyMac_BuildFSRef , newRef ,
1411+ PyMac_BuildFSSpec , newSpec );
1412+ return _res ;
1413+ }
1414+
13851415static PyObject * Res_FSResourceFileAlreadyOpen (PyObject * _self , PyObject * _args )
13861416{
13871417 PyObject * _res = NULL ;
@@ -1406,6 +1436,74 @@ static PyObject *Res_FSResourceFileAlreadyOpen(PyObject *_self, PyObject *_args)
14061436 return _res ;
14071437}
14081438
1439+ static PyObject * Res_FSCreateResourceFile (PyObject * _self , PyObject * _args )
1440+ {
1441+ PyObject * _res = NULL ;
1442+ OSErr _rv ;
1443+ FSRef parentRef ;
1444+ UniChar * nameLength__in__ ;
1445+ UniCharCount nameLength__len__ ;
1446+ int nameLength__in_len__ ;
1447+ UniChar * forkNameLength__in__ ;
1448+ UniCharCount forkNameLength__len__ ;
1449+ int forkNameLength__in_len__ ;
1450+ FSRef newRef ;
1451+ FSSpec newSpec ;
1452+ if (!PyArg_ParseTuple (_args , "O&u#u#" ,
1453+ PyMac_GetFSRef , & parentRef ,
1454+ & nameLength__in__ , & nameLength__in_len__ ,
1455+ & forkNameLength__in__ , & forkNameLength__in_len__ ))
1456+ return NULL ;
1457+ nameLength__len__ = nameLength__in_len__ ;
1458+ forkNameLength__len__ = forkNameLength__in_len__ ;
1459+ _rv = FSCreateResourceFile (& parentRef ,
1460+ nameLength__len__ , nameLength__in__ ,
1461+ 0 ,
1462+ (FSCatalogInfo * )0 ,
1463+ forkNameLength__len__ , forkNameLength__in__ ,
1464+ & newRef ,
1465+ & newSpec );
1466+ {
1467+ OSErr _err = ResError ();
1468+ if (_err != noErr ) return PyMac_Error (_err );
1469+ }
1470+ _res = Py_BuildValue ("hO&O&" ,
1471+ _rv ,
1472+ PyMac_BuildFSRef , newRef ,
1473+ PyMac_BuildFSSpec , newSpec );
1474+ return _res ;
1475+ }
1476+
1477+ static PyObject * Res_FSOpenResourceFile (PyObject * _self , PyObject * _args )
1478+ {
1479+ PyObject * _res = NULL ;
1480+ OSErr _rv ;
1481+ FSRef ref ;
1482+ UniChar * forkNameLength__in__ ;
1483+ UniCharCount forkNameLength__len__ ;
1484+ int forkNameLength__in_len__ ;
1485+ SignedByte permissions ;
1486+ SInt16 refNum ;
1487+ if (!PyArg_ParseTuple (_args , "O&u#b" ,
1488+ PyMac_GetFSRef , & ref ,
1489+ & forkNameLength__in__ , & forkNameLength__in_len__ ,
1490+ & permissions ))
1491+ return NULL ;
1492+ forkNameLength__len__ = forkNameLength__in_len__ ;
1493+ _rv = FSOpenResourceFile (& ref ,
1494+ forkNameLength__len__ , forkNameLength__in__ ,
1495+ permissions ,
1496+ & refNum );
1497+ {
1498+ OSErr _err = ResError ();
1499+ if (_err != noErr ) return PyMac_Error (_err );
1500+ }
1501+ _res = Py_BuildValue ("hh" ,
1502+ _rv ,
1503+ refNum );
1504+ return _res ;
1505+ }
1506+
14091507static PyObject * Res_Resource (PyObject * _self , PyObject * _args )
14101508{
14111509 PyObject * _res = NULL ;
@@ -1569,8 +1667,14 @@ static PyMethodDef Res_methods[] = {
15691667#endif
15701668 {"FSOpenResFile" , (PyCFunction )Res_FSOpenResFile , 1 ,
15711669 "(FSRef ref, SignedByte permission) -> (short _rv)" },
1670+ {"FSCreateResFile" , (PyCFunction )Res_FSCreateResFile , 1 ,
1671+ "(FSRef parentRef, Buffer nameLength) -> (FSRef newRef, FSSpec newSpec)" },
15721672 {"FSResourceFileAlreadyOpen" , (PyCFunction )Res_FSResourceFileAlreadyOpen , 1 ,
15731673 "(FSRef resourceFileRef) -> (Boolean _rv, Boolean inChain, SInt16 refNum)" },
1674+ {"FSCreateResourceFile" , (PyCFunction )Res_FSCreateResourceFile , 1 ,
1675+ "(FSRef parentRef, Buffer nameLength, Buffer forkNameLength) -> (OSErr _rv, FSRef newRef, FSSpec newSpec)" },
1676+ {"FSOpenResourceFile" , (PyCFunction )Res_FSOpenResourceFile , 1 ,
1677+ "(FSRef ref, Buffer forkNameLength, SignedByte permissions) -> (OSErr _rv, SInt16 refNum)" },
15741678 {"Resource" , (PyCFunction )Res_Resource , 1 ,
15751679 "Convert a string to a resource object.\n\nThe created resource object is actually just a handle,\napply AddResource() to write it to a resource file.\nSee also the Handle() docstring.\n" },
15761680 {"Handle" , (PyCFunction )Res_Handle , 1 ,
0 commit comments