Commit deb8086b08776b69696e474335157ed3f078d4ec

Sam Lantinga 2013-10-21T00:20:27

Fixed bug 2072 - Make OS X's filesystem calls use -[NSString fileSystemRepresentation] C.W. Betts The recommended way of getting a file name that POSIX file APIs can open in OS X when using an NSString is -[NSString fileSystemRepresentation]. However, the current filesystem API in hg uses -[NSString UTF8String].

diff --git a/src/filesystem/cocoa/SDL_sysfilesystem.m b/src/filesystem/cocoa/SDL_sysfilesystem.m
index 43e024c..67ae24a 100644
--- a/src/filesystem/cocoa/SDL_sysfilesystem.m
+++ b/src/filesystem/cocoa/SDL_sysfilesystem.m
@@ -45,12 +45,12 @@ SDL_GetBasePath(void)
         baseType = "resource";
     }
     if (SDL_strcasecmp(baseType, "bundle")==0) {
-        base = [[bundle bundlePath] UTF8String];
+        base = [[bundle bundlePath] fileSystemRepresentation];
     } else if (SDL_strcasecmp(baseType, "parent")==0) {
-        base = [[[bundle bundlePath] stringByDeletingLastPathComponent] UTF8String];
+        base = [[[bundle bundlePath] stringByDeletingLastPathComponent] fileSystemRepresentation];
     } else {
         /* this returns the exedir for non-bundled  and the resourceDir for bundled apps */
-        base = [[bundle resourcePath] UTF8String];
+        base = [[bundle resourcePath] fileSystemRepresentation];
     }
     if (base) {
         const size_t len = SDL_strlen(base) + 2;
@@ -77,7 +77,7 @@ SDL_GetPrefPath(const char *org, const char *app)
 
     if ([array count] > 0) {  /* we only want the first item in the list. */
         NSString *str = [array objectAtIndex:0];
-        const char *base = [str UTF8String];
+        const char *base = [str fileSystemRepresentation];
         if (base) {
             const size_t len = SDL_strlen(base) + SDL_strlen(app) + 3;
             retval = (char *) SDL_malloc(len);