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);