Revision: 3411 Author: eliot Date: 2015-07-20 23:18:27 -0700 (Mon, 20 Jul 2015) Log Message: ----------- Do the Pahro/Squeak split for directory entry creation for the iOS platform.
Modified Paths: -------------- branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m
Property Changed: ---------------- branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h ___________________________________________________________________ Modified: checkindate - Sat Jul 18 19:13:50 PDT 2015 + Mon Jul 20 23:17:35 PDT 2015
Modified: branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m =================================================================== --- branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m 2015-07-19 02:15:20 UTC (rev 3410) +++ branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryAPI.m 2015-07-21 06:18:27 UTC (rev 3411) @@ -133,23 +133,26 @@ /* outputs: */ char *name, sqInt *nameLength, sqInt *creationDate, sqInt *modificationDate, sqInt *isDirectory, squeakFileOffsetType *sizeIfFile, sqInt *posixPermissions, sqInt *isSymlink) { - +#if !defined(PharoVM) +# define PharoVM 0 +#endif /*Implementation notes if pathStringLength = 0 then we use the current working directory if pathStringLength > 0 then we resolve the pathString and alias */ sqInt status = - [gDelegateApp.squeakApplication.fileDirectoryLogic dir_EntryLookup: pathString - length: pathStringLength - returnName: nameString - returnNameLength: nameStringLength - name: name - length: nameLength - creationDate: creationDate - modificationDate: modificationDate - isDirectory: isDirectory - sizeIfFile: sizeIfFile - posixPermissions: posixPermissions - isSymlink: isSymlink]; + [gDelegateApp.squeakApplication.fileDirectoryLogic + dir_EntryLookup: pathString + length: pathStringLength + returnName: nameString + returnNameLength: nameStringLength + name: name + length: nameLength + creationDate: creationDate + modificationDate: modificationDate + isDirectory: isDirectory + sizeIfFile: sizeIfFile + posixPermissions: (PharoVM ? posixPermissions : 0) + isSymlink: (PharoVM ? isSymlink : 0)]; return status; }
Modified: branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m =================================================================== --- branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m 2015-07-19 02:15:20 UTC (rev 3410) +++ branches/Cog/platforms/iOS/vm/Common/Classes/sqSqueakFileDirectoryInterface.m 2015-07-21 06:18:27 UTC (rev 3411) @@ -75,8 +75,8 @@ creationDate:(sqInt *)creationDate modificationDate:(sqInt *)modificationDate sizeIfFile:(off_t *)sizeIfFile - posixPermissions:(sqInt *)posixPermissions - isSymlink:(sqInt *)isSymlink { + posixPermissions:(sqInt *)posixPermissionsp + isSymlink:(sqInt *)isSymlinkp {
//This minics the unix port where we resolve the file name, but the symbolic file lookup can fail. //The unix port says, oh file was there, but stat/lstat fails, so mmm kinda continue @@ -84,23 +84,24 @@ NSDictionary *fileAttributes; NSError *error; - + int isSymlink; fileAttributes = [fileMgr attributesOfItemAtPath: filePath error: &error]; if (!fileAttributes) { return BAD_PATH; } - - *isSymlink = [[fileAttributes objectForKey: NSFileType] isEqualToString: NSFileTypeSymbolicLink] ? 1 : 0; - if(*isSymlink) { + + isSymlink = [[fileAttributes objectForKey: NSFileType] isEqualToString: NSFileTypeSymbolicLink] ? 1 : 0; + if (isSymlinkp) *isSymlinkp = isSymlink; + if(isSymlink) //I need to check if symlink points to a directory *isDirectory = [self linkIsDirectory:filePath fileManager:fileMgr]; - } else { + else *isDirectory = [[fileAttributes objectForKey: NSFileType] isEqualToString: NSFileTypeDirectory] ? 1 : 0; - } *creationDate = convertToSqueakTime([fileAttributes objectForKey: NSFileCreationDate ]); *modificationDate = convertToSqueakTime([fileAttributes objectForKey: NSFileModificationDate]); *sizeIfFile = [[fileAttributes objectForKey: NSFileSize] integerValue]; - *posixPermissions = [[fileAttributes objectForKey: NSFilePosixPermissions] shortValue]; + if (posixPermissionsp) + *posixPermissionsp = [[fileAttributes objectForKey: NSFilePosixPermissions] shortValue]; /* POSSIBLE IPHONE BUG CHECK */ if (*creationDate == 0)
vm-dev@lists.squeakfoundation.org