From 3bd859aaa3e3d59fb4c636d5b92cc379c7dc2641 Mon Sep 17 00:00:00 2001 From: Charles Lehner Date: Fri, 26 Sep 2014 01:37:18 -0400 Subject: [PATCH] Add file Create function --- libretro/glue.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/libretro/glue.c b/libretro/glue.c index c9b13a1a12..0965985b21 100644 --- a/libretro/glue.c +++ b/libretro/glue.c @@ -154,3 +154,26 @@ pascal OSErr SetFPos (short refNum, short posMode, long posOff) pb.ioParam.ioPosOffset = posOff; return PBSetFPosSync(&pb); } + +pascal OSErr Create (ConstStr255Param fileName, short vRefNum, OSType creator, + OSType fileType) +{ + ParamBlockRec pb; + OSErr err; + memset(&pb, 0, sizeof(pb)); + pb.fileParam.ioVRefNum = vRefNum; + pb.fileParam.ioNamePtr = (StringPtr)fileName; + // create the file + err = PBCreateSync(&pb); + if (err != noErr) return err; + // get previous finder info + err = PBGetFInfoSync(&pb); + if (err != noErr) return err; + // clear directory index + pb.fileParam.ioFDirIndex = 0; + // copy finder info words + pb.fileParam.ioFlFndrInfo.fdType = fileType; + pb.fileParam.ioFlFndrInfo.fdCreator = creator; + // save finder info + return PBSetFInfoSync(&pb); +}