Index: src/OFApplication.m ================================================================== --- src/OFApplication.m +++ src/OFApplication.m @@ -74,11 +74,14 @@ OF_DIRECT_MEMBERS @interface OFApplication () - (instancetype)of_init OF_METHOD_FAMILY(init); - (void)of_setArgumentCount: (int *)argc andArgumentValues: (char **[])argv; #ifdef OF_WINDOWS -- (void)of_setArgumentCount: (int)argc andWideArgumentValues: (wchar_t *[])argv; +- (void)of_setArgumentCount: (int *)argc + andArgumentValues: (char **[])argv + andWideArgumentCount: (int)wargc + andWideArgumentValues: (wchar_t *[])wargv; #endif - (void)of_run; @end const OFNotificationName OFApplicationWillTerminateNotification = @@ -118,11 +121,14 @@ app = [[OFApplication alloc] of_init]; #ifdef OF_WINDOWS if ([OFSystemInfo isWindowsNT]) { __wgetmainargs(&wargc, &wargv, &wenvp, _CRT_glob, &si); - [app of_setArgumentCount: wargc andWideArgumentValues: wargv]; + [app of_setArgumentCount: argc + andArgumentValues: argv + andWideArgumentCount: wargc + andWideArgumentValues: wargv]; } else #endif [app of_setArgumentCount: argc andArgumentValues: argv]; app.delegate = delegate; @@ -467,11 +473,11 @@ [_environment release]; [super dealloc]; } -- (void)of_setArgumentCount: (int *)argc andArgumentValues: (char ***)argv +- (void)of_setArgumentCount: (int *)argc andArgumentValues: (char **[])argv { void *pool = objc_autoreleasePoolPush(); OFMutableArray *arguments; OFStringEncoding encoding; @@ -500,22 +506,28 @@ objc_autoreleasePoolPop(pool); } #ifdef OF_WINDOWS -- (void)of_setArgumentCount: (int)argc andWideArgumentValues: (wchar_t **)argv +- (void)of_setArgumentCount: (int *)argc + andArgumentValues: (char **[])argv + andWideArgumentCount: (int)wargc + andWideArgumentValues: (wchar_t *[])wargv { void *pool = objc_autoreleasePoolPush(); OFMutableArray *arguments; - if (argc > 0) { - _programName = [[OFString alloc] initWithUTF16String: argv[0]]; + _argc = argc; + _argv = argv; + + if (wargc > 0) { + _programName = [[OFString alloc] initWithUTF16String: wargv[0]]; arguments = [[OFMutableArray alloc] init]; - for (int i = 1; i < argc; i++) + for (int i = 1; i < wargc; i++) [arguments addObject: - [OFString stringWithUTF16String: argv[i]]]; + [OFString stringWithUTF16String: wargv[i]]]; [arguments makeImmutable]; _arguments = arguments; }