primitiveGetMacintoshFileTypeAndCreatorFrom(void) { char *aFileName; char creator[8]; sqInt i; sqInt keyLength; sqInt oop; char *ptr; success(isBytes(stackValue(0))); aFileName = ((char *) (firstIndexableField(stackValue(0)))); if (failed()) { return null; } keyLength = byteSizeOf(((sqInt)(sqIntptr_t)(aFileName) - BaseHeaderSize)); sqInternetGetMacintoshFileTypeAndCreatorFromkeySizeinto(aFileName, keyLength, creator); oop = instantiateClassindexableSize(classString(), 8); ptr = firstIndexableField(oop); for (i = 0; i <= 7; i += 1) { ptr[i] = (creator[i]); } if (failed()) { return null; } popthenPush(2, oop); return null; }
EXPORT(sqInt) primitiveGetMacintoshFileTypeAndCreatorFrom(void) { sqInt i; sqInt keyLength; char * ptr; sqInt oop; char creator[8]; char *aFileName; interpreterProxy->success(interpreterProxy->isBytes(interpreterProxy->stackValue(0))); aFileName = ((char *) (interpreterProxy->firstIndexableField(interpreterProxy->stackValue(0)))); if (interpreterProxy->failed()) { return null; } keyLength = interpreterProxy->byteSizeOf((oopForPointer( aFileName ) - 4)); sqInternetGetMacintoshFileTypeAndCreatorFromkeySizeinto(aFileName, keyLength, creator); oop = interpreterProxy->instantiateClassindexableSize(interpreterProxy->classString(), 8); ptr = interpreterProxy->firstIndexableField(oop); for (i = 0; i <= 7; i += 1) { ptr[i] = (creator[i]); } if (interpreterProxy->failed()) { return null; } interpreterProxy->popthenPush(2, oop); return null; }