@@ -27,11 +27,11 @@ #include "unistd_wrapper.h" #ifdef HAVE_SPAWN_H # include #endif -#import "OFProcess.h" +#import "OFSubprocess.h" #import "OFString.h" #import "OFArray.h" #import "OFDictionary.h" #import "OFLocale.h" @@ -43,43 +43,43 @@ #ifndef HAVE_POSIX_SPAWNP extern char **environ; #endif -@interface OFProcess () +@interface OFSubprocess () - (void)of_getArgv: (char ***)argv forProgramName: (OFString *)programName andArguments: (OFArray *)arguments; - (char **)of_environmentForDictionary: (OFDictionary *)dictionary; @end -@implementation OFProcess -+ (instancetype)processWithProgram: (OFString *)program +@implementation OFSubprocess ++ (instancetype)subprocessWithProgram: (OFString *)program { return [[[self alloc] initWithProgram: program] autorelease]; } -+ (instancetype)processWithProgram: (OFString *)program - arguments: (OFArray *)arguments ++ (instancetype)subprocessWithProgram: (OFString *)program + arguments: (OFArray *)arguments { return [[[self alloc] initWithProgram: program arguments: arguments] autorelease]; } -+ (instancetype)processWithProgram: (OFString *)program - programName: (OFString *)programName - arguments: (OFArray *)arguments ++ (instancetype)subprocessWithProgram: (OFString *)program + programName: (OFString *)programName + arguments: (OFArray *)arguments { return [[[self alloc] initWithProgram: program programName: programName arguments: arguments] autorelease]; } -+ (instancetype)processWithProgram: (OFString *)program - programName: (OFString *)programName - arguments: (OFArray *)arguments - environment: (OFDictionary *)environment ++ (instancetype)subprocessWithProgram: (OFString *)program + programName: (OFString *)programName + arguments: (OFArray *)arguments + environment: (OFDictionary *)environment { return [[[self alloc] initWithProgram: program programName: programName arguments: arguments environment: environment] autorelease]; @@ -205,16 +205,16 @@ } @finally { char **iter; close(_readPipe[1]); close(_writePipe[0]); - free(argv); + OFFreeMemory(argv); for (iter = env; *iter != NULL; iter++) - free(*iter); + OFFreeMemory(*iter); - free(env); + OFFreeMemory(env); } objc_autoreleasePoolPop(pool); } @catch (id e) { [self release]; @@ -236,13 +236,13 @@ forProgramName: (OFString *)programName andArguments: (OFArray *)arguments { OFString *const *objects = arguments.objects; size_t i, count = arguments.count; - of_string_encoding_t encoding; + OFStringEncoding encoding; - *argv = of_alloc(count + 2, sizeof(char *)); + *argv = OFAllocMemory(count + 2, sizeof(char *)); encoding = [OFLocale encoding]; (*argv)[0] = (char *)[programName cStringWithEncoding: encoding]; @@ -255,19 +255,19 @@ - (char **)of_environmentForDictionary: (OFDictionary *)environment { char **envp; size_t count; - of_string_encoding_t encoding; + OFStringEncoding encoding; if (environment == nil) return NULL; encoding = [OFLocale encoding]; count = environment.count; - envp = of_alloc_zeroed(count + 1, sizeof(char *)); + envp = OFAllocZeroedMemory(count + 1, sizeof(char *)); @try { OFEnumerator *keyEnumerator = [environment keyEnumerator]; OFEnumerator *objectEnumerator = [environment objectEnumerator]; @@ -281,11 +281,11 @@ keyLen = [key cStringLengthWithEncoding: encoding]; objectLen = [object cStringLengthWithEncoding: encoding]; - envp[i] = of_alloc(keyLen + objectLen + 2, 1); + envp[i] = OFAllocMemory(keyLen + objectLen + 2, 1); memcpy(envp[i], [key cStringWithEncoding: encoding], keyLen); envp[i][keyLen] = '='; memcpy(envp[i] + keyLen + 1, @@ -292,13 +292,13 @@ [object cStringWithEncoding: encoding], objectLen); envp[i][keyLen + objectLen + 1] = '\0'; } } @catch (id e) { for (size_t i = 0; i < count; i++) - free(envp[i]); + OFFreeMemory(envp[i]); - free(envp); + OFFreeMemory(envp); @throw e; } return envp;