void InitArgs( int argc,char **argv ) { int i; FILE *f; char *line,*word; Num_args=0; for (i=0; i<argc; i++ ) Args[Num_args++] = strdup( argv[i] ); for (i=0; i< Num_args; i++ ) { //killed 02/06/99 Matthew Mueller - interferes with filename args which might start with / // if ( Args[i][0] == '/' ) // Args[i][0] = '-'; //end kill -MM if ( Args[i][0] == '-' ) strlwr( Args[i] ); // Convert all args to lowercase } if((i=FindArg("-ini"))) f=fopen(Args[i+1],"rt"); else f=fopen("d1x.ini","rt"); if(f) { while(!feof(f)) { line=fsplitword(f,'\n'); word=splitword(line,' '); Args[Num_args++] = strdup(word); if(line) Args[Num_args++] = strdup(line); free(line); free(word); } fclose(f); } atexit(FreeArgs); }
void InitArgs (int argc, char **argv) { int i, j; CFILE *f; char *pszLine, *pszToken, fnIni [FILENAME_LEN]; static char **pszArgs = NULL; static int nArgs = 0; if (argv) { pszArgs = argv; nArgs = argc; } else if (pszArgs) { argv = pszArgs; argc = nArgs; } else return; LogErr ("Loading program arguments\n"); args_exit (); for (i = 0; i < argc; i++) Args [Num_args++] = D2_STRDUP (argv [i]); for (i = 0; i < Num_args; i++) if (Args [i] [0] == '-') strlwr (Args [i]); // Convert all args to lowercase // look for the ini file // for unix, allow both ~/.d2x-xl and <config dir>/d2x.ini #ifdef _DEBUG GetIniFileName (fnIni, 1); #else GetIniFileName (fnIni, 0); #endif f = CFOpen (fnIni, "", "rt", 0); #ifdef _DEBUG if (!f) { GetIniFileName (fnIni, 0); f = CFOpen (fnIni, "", "rt", 0); } #endif if (f) { while (!CFEoF (f)) { pszLine = fsplitword (f, '\n'); if (*pszLine && (*pszLine != ';')) { pszToken = splitword (pszLine, ' '); if (Num_args >= MAX_ARGS) break; Args [Num_args++] = pszToken; if (pszLine) { if (Num_args >= MAX_ARGS) { LogErr ("too many program arguments\n"); break; } Args [Num_args++] = *pszLine ? D2_STRDUP (pszLine) : NULL; } } D2_FREE (pszLine); } CFClose (f); } LogErr (" "); for (i = j = 0; i < Num_args; i++, j++) { if (!Args [i]) continue; if ((Args [i][0] == '-') && (isalpha (Args [i][1]) || (j == 2))) { LogErr ("\n "); j = 0; } LogErr (Args [i]); LogErr (" "); } LogErr ("\n"); atexit (args_exit); }