@@ -32,10 +32,11 @@ #import "OFFile.h" #import "OFString.h" #import "OFArray.h" #import "OFDate.h" #import "OFSystemInfo.h" +#import "OFLocalization.h" #ifdef OF_HAVE_THREADS # import "OFMutex.h" #endif @@ -97,15 +98,15 @@ of_stat(OFString *path, of_stat_t *buffer) { #if defined(OF_WINDOWS) return _wstat64([path UTF16String], buffer); #elif defined(OF_HAVE_OFF64_T) - return stat64([path cStringWithEncoding: - [OFSystemInfo native8BitEncoding]], buffer); + return stat64([path cStringWithEncoding: [OFLocalization encoding]], + buffer); #else - return stat([path cStringWithEncoding: - [OFSystemInfo native8BitEncoding]], buffer); + return stat([path cStringWithEncoding: [OFLocalization encoding]], + buffer); #endif } int of_lstat(OFString *path, of_stat_t *buffer) @@ -112,23 +113,23 @@ { #if defined(OF_WINDOWS) return _wstat64([path UTF16String], buffer); #elif defined(HAVE_LSTAT) # ifdef OF_HAVE_OFF64_T - return lstat64([path cStringWithEncoding: - [OFSystemInfo native8BitEncoding]], buffer); + return lstat64([path cStringWithEncoding: [OFLocalization encoding]], + buffer); # else - return lstat([path cStringWithEncoding: - [OFSystemInfo native8BitEncoding]], buffer); + return lstat([path cStringWithEncoding: [OFLocalization encoding]], + buffer); # endif #else # ifdef OF_HAVE_OFF64_T - return stat64([path cStringWithEncoding: - [OFSystemInfo native8BitEncoding]], buffer); + return stat64([path cStringWithEncoding: [OFLocalization encoding]], + buffer); # else - return stat([path cStringWithEncoding: - [OFSystemInfo native8BitEncoding]], buffer); + return stat([path cStringWithEncoding: [OFLocalization encoding]], + buffer); # endif #endif } @implementation OFFileManager @@ -180,11 +181,11 @@ @try { #ifndef OF_WINDOWS ret = [OFString stringWithCString: buffer - encoding: [OFSystemInfo native8BitEncoding]]; + encoding: [OFLocalization encoding]]; #else ret = [OFString stringWithUTF16String: buffer]; #endif } @finally { free(buffer); @@ -261,11 +262,11 @@ { if (path == nil) @throw [OFInvalidArgumentException exception]; #ifndef OF_WINDOWS - if (mkdir([path cStringWithEncoding: [OFSystemInfo native8BitEncoding]], + if (mkdir([path cStringWithEncoding: [OFLocalization encoding]], DIR_MODE) != 0) #else if (_wmkdir([path UTF16String]) != 0) #endif @throw [OFCreateDirectoryFailedException @@ -320,11 +321,11 @@ files = [OFMutableArray array]; #ifndef OF_WINDOWS DIR *dir; - encoding = [OFSystemInfo native8BitEncoding]; + encoding = [OFLocalization encoding]; if ((dir = opendir([path cStringWithEncoding: encoding])) == NULL) @throw [OFOpenItemFailedException exceptionWithPath: path errNo: errno]; @@ -431,12 +432,11 @@ { if (path == nil) @throw [OFInvalidArgumentException exception]; #ifndef OF_WINDOWS - if (chdir([path cStringWithEncoding: - [OFSystemInfo native8BitEncoding]]) != 0) + if (chdir([path cStringWithEncoding: [OFLocalization encoding]]) != 0) #else if (_wchdir([path UTF16String]) != 0) #endif @throw [OFChangeCurrentDirectoryPathFailedException exceptionWithPath: path @@ -522,11 +522,11 @@ { if (path == nil) @throw [OFInvalidArgumentException exception]; # ifndef OF_WINDOWS - if (chmod([path cStringWithEncoding: [OFSystemInfo native8BitEncoding]], + if (chmod([path cStringWithEncoding: [OFLocalization encoding]], permissions) != 0) # else if (_wchmod([path UTF16String], permissions) != 0) # endif @throw [OFChangePermissionsFailedException @@ -552,12 +552,11 @@ # ifdef OF_HAVE_THREADS [passwdMutex lock]; @try { # endif - of_string_encoding_t encoding = - [OFSystemInfo native8BitEncoding]; + of_string_encoding_t encoding = [OFLocalization encoding]; if (owner != NULL) { struct passwd *passwd = getpwuid(s.st_uid); *owner = [OFString stringWithCString: passwd->pw_name @@ -586,11 +585,11 @@ of_string_encoding_t encoding; if (path == nil || (owner == nil && group == nil)) @throw [OFInvalidArgumentException exception]; - encoding = [OFSystemInfo native8BitEncoding]; + encoding = [OFLocalization encoding]; # ifdef OF_HAVE_THREADS [passwdMutex lock]; @try { # endif @@ -798,11 +797,11 @@ exceptionWithSourcePath: source destinationPath: destination errNo: EEXIST]; #ifndef OF_WINDOWS - encoding = [OFSystemInfo native8BitEncoding]; + encoding = [OFLocalization encoding]; if (rename([source cStringWithEncoding: encoding], [destination cStringWithEncoding: encoding]) != 0) { #else if (_wrename([source UTF16String], [destination UTF16String]) != 0) { @@ -882,21 +881,21 @@ objc_autoreleasePoolPop(pool2); } #ifndef OF_WINDOWS if (rmdir([path cStringWithEncoding: - [OFSystemInfo native8BitEncoding]]) != 0) + [OFLocalization encoding]]) != 0) #else if (_wrmdir([path UTF16String]) != 0) #endif @throw [OFRemoveItemFailedException exceptionWithPath: path errNo: errno]; } else { #ifndef OF_WINDOWS if (unlink([path cStringWithEncoding: - [OFSystemInfo native8BitEncoding]]) != 0) + [OFLocalization encoding]]) != 0) #else if (_wunlink([path UTF16String]) != 0) #endif @throw [OFRemoveItemFailedException exceptionWithPath: path @@ -915,11 +914,11 @@ if (source == nil || destination == nil) @throw [OFInvalidArgumentException exception]; pool = objc_autoreleasePoolPush(); - encoding = [OFSystemInfo native8BitEncoding]; + encoding = [OFLocalization encoding]; if (link([source cStringWithEncoding: encoding], [destination cStringWithEncoding: encoding]) != 0) @throw [OFLinkFailedException exceptionWithSourcePath: source @@ -958,11 +957,11 @@ if (source == nil || destination == nil) @throw [OFInvalidArgumentException exception]; pool = objc_autoreleasePoolPush(); - encoding = [OFSystemInfo native8BitEncoding]; + encoding = [OFLocalization encoding]; if (symlink([source cStringWithEncoding: encoding], [destination cStringWithEncoding: encoding]) != 0) @throw [OFCreateSymbolicLinkFailedException exceptionWithSourcePath: source @@ -1004,11 +1003,11 @@ of_string_encoding_t encoding; if (path == nil) @throw [OFInvalidArgumentException exception]; - encoding = [OFSystemInfo native8BitEncoding]; + encoding = [OFLocalization encoding]; length = readlink([path cStringWithEncoding: encoding], destination, PATH_MAX); if (length < 0) @throw [OFStatItemFailedException exceptionWithPath: path