]> icculus.org git repositories - taylor/freespace2.git/blob - src/freespace2/unixmain.cpp
recursively create directories (hurt more on OSX) and update all _mkdir() calls accor...
[taylor/freespace2.git] / src / freespace2 / unixmain.cpp
1 #include <sys/stat.h>
2
3 #include "pstypes.h"
4 #include "osregistry.h"
5 #include "osapi.h"
6
7 int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int nCmdShow);
8
9 #ifdef __APPLE__
10 char full_path[1024];
11 #endif
12
13 void vm_dump();
14
15 int main(int argc, char **argv)
16 {
17 #ifdef __APPLE__
18         strcpy( full_path, *argv );
19 #endif
20         char userdir[MAX_PATH];
21         
22         // create user game directory
23         snprintf(userdir, MAX_PATH, "%s/%s/", detect_home(), Osreg_user_dir);
24         _mkdir(userdir);        
25         
26         char *argptr = NULL;
27         int i;
28         int len = 1;
29         
30         argptr = (char *)malloc(1);
31         *argptr = 0;
32         
33         for (i = 1; i < argc; i++) {
34                 int oldlen = len-1;
35                 
36                 len += strlen(argv[i])+1;
37                 
38                 argptr = (char *)realloc(argptr, len);
39                 if (argptr == NULL) {
40                         fprintf(stderr, "ERROR: out of memory in main!\n");
41                         exit(1);
42                 }
43                 
44                 strcpy(argptr+oldlen, argv[i]);
45                 strcat(argptr, " ");
46         }
47          
48         int retr = WinMain(1, 0, argptr, 0);
49
50         free(argptr);
51                 
52         vm_dump();
53         
54         return retr;    
55 }