OSErr PAS_encodeMisc(FSSpec *inFile, short outRefNum) { OSErr err; short inRefNum; PASMiscInfo infoBlock; FInfo fInfo; SInt32 currentRead; err = FSpOpenDF(inFile, fsRdPerm, &inRefNum); if (err != noErr) return err; memset(&infoBlock, 0, sizeof(PASMiscInfo)); err = FSpGetFInfo(inFile, &fInfo); if (err != noErr) return err; infoBlock.fileType = fInfo.fdType; infoBlock.fileCreator = fInfo.fdCreator; infoBlock.fileFlags = fInfo.fdFlags; FSClose(inRefNum); inRefNum = FSpOpenResFile(inFile, fsRdPerm); if (inRefNum > noErr) { infoBlock.fileHasResFork = 1; infoBlock.fileResAttrs = GetResFileAttrs(inRefNum); FSClose(inRefNum); } else { infoBlock.fileHasResFork = 0; infoBlock.fileResAttrs = 0; } currentRead = sizeof(PASMiscInfo); err = FSWrite(outRefNum, ¤tRead, &infoBlock); if (err != noErr) return err; CloseResFile(inRefNum); return noErr; }
static PyObject *Res_GetResFileAttrs(PyObject *_self, PyObject *_args) { PyObject *_res = NULL; short _rv; short refNum; #ifndef GetResFileAttrs PyMac_PRECHECK(GetResFileAttrs); #endif if (!PyArg_ParseTuple(_args, "h", &refNum)) return NULL; _rv = GetResFileAttrs(refNum); { OSErr _err = ResError(); if (_err != noErr) return PyMac_Error(_err); } _res = Py_BuildValue("h", _rv); return _res; }