X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=93a62e07d1a55ad5bf4c2ca2627491b4ff83effb;hp=c1e8eee4f9c492a11ba7829282c967a89b09e4b8;hb=730deaee1a38f75d749a21cddbb562c2b339cc73;hpb=bc101e8e3ab8515fcc5fbed3d8bf8c3efc258846 diff --git a/src/libgame/misc.c b/src/libgame/misc.c index c1e8eee4..93a62e07 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -942,13 +942,18 @@ boolean strSuffixLower(char *s, char *suffix) /* command line option handling functions */ /* ------------------------------------------------------------------------- */ -void GetOptions(char *argv[], +void GetOptions(int argc, char *argv[], void (*print_usage_function)(void), void (*print_version_function)(void)) { char *ro_base_path = RO_BASE_PATH; char *rw_base_path = RW_BASE_PATH; - char **options_left = &argv[1]; + char **argvplus = checked_calloc((argc + 1) * sizeof(char **)); + char **options_left = &argvplus[1]; + + /* replace original "argv" with null-terminated array of string pointers */ + while (argc--) + argvplus[argc] = argv[argc]; /* if the program is configured to start from current directory (default), determine program package directory from program binary (some versions @@ -1134,6 +1139,12 @@ void GetOptions(char *argv[], /* when doing batch processing, always enable verbose mode (warnings) */ options.verbose = TRUE; } +#if defined(PLATFORM_MACOSX) + else if (strPrefix(option, "-psn")) + { + /* ignore process serial number when launched via GUI on Mac OS X */ + } +#endif else if (*option == '-') { Error(ERR_EXIT_HELP, "unrecognized option '%s'", option_str);