@@ -47,10 +47,16 @@ #ifdef _PSP # include # include #endif + +#ifdef OF_NINTENDO_DS +# define asm __asm__ +# include +# undef asm +#endif @interface OFApplication (OF_PRIVATE_CATEGORY) - (void)OF_setArgumentCount: (int*)argc andArgumentValues: (char**[])argv; #ifdef _WIN32 @@ -333,20 +339,28 @@ _argc = argc; _argv = argv; encoding = [OFString nativeOSEncoding]; - _programName = [[OFString alloc] initWithCString: (*argv)[0] - encoding: encoding]; - arguments = [[OFMutableArray alloc] init]; - - for (i = 1; i < *argc; i++) - [arguments addObject: [OFString stringWithCString: (*argv)[i] - encoding: encoding]]; - - [arguments makeImmutable]; - _arguments = arguments; +# ifdef OF_NINTENDO_DS + if (__system_argv->argvMagic == ARGV_MAGIC && + __system_argv->argc >= 1) { +# endif + _programName = [[OFString alloc] initWithCString: (*argv)[0] + encoding: encoding]; + arguments = [[OFMutableArray alloc] init]; + _arguments = arguments; + + for (i = 1; i < *argc; i++) + [arguments addObject: + [OFString stringWithCString: (*argv)[i] + encoding: encoding]]; + + [arguments makeImmutable]; +# ifdef OF_NINTENDO_DS + } +# endif objc_autoreleasePoolPop(pool); #else _argc = argc; _argv = argv;