Index: src/OFApplication.m ================================================================== --- src/OFApplication.m +++ src/OFApplication.m @@ -336,13 +336,15 @@ _argc = argc; _argv = argv; encoding = [OFString nativeOSEncoding]; -# ifdef OF_NINTENDO_DS +# ifndef OF_NINTENDO_DS + if (*argc > 0) { +# else if (__system_argv->argvMagic == ARGV_MAGIC && - __system_argv->argc >= 1) { + __system_argv->argc > 0) { # endif _programName = [[OFString alloc] initWithCString: (*argv)[0] encoding: encoding]; arguments = [[OFMutableArray alloc] init]; _arguments = arguments; @@ -351,13 +353,11 @@ [arguments addObject: [OFString stringWithCString: (*argv)[i] encoding: encoding]]; [arguments makeImmutable]; -# ifdef OF_NINTENDO_DS } -# endif objc_autoreleasePoolPop(pool); #else _argc = argc; _argv = argv; @@ -370,19 +370,21 @@ { void *pool = objc_autoreleasePoolPush(); OFMutableArray *arguments; int i; - _programName = [[OFString alloc] initWithUTF16String: argv[0]]; - arguments = [[OFMutableArray alloc] init]; - - for (i = 1; i < argc; i++) - [arguments addObject: - [OFString stringWithUTF16String: argv[i]]]; - - [arguments makeImmutable]; - _arguments = arguments; + if (argc > 0) { + _programName = [[OFString alloc] initWithUTF16String: argv[0]]; + arguments = [[OFMutableArray alloc] init]; + + for (i = 1; i < argc; i++) + [arguments addObject: + [OFString stringWithUTF16String: argv[i]]]; + + [arguments makeImmutable]; + _arguments = arguments; + } objc_autoreleasePoolPop(pool); } #endif