]> icculus.org git repositories - taylor/freespace2.git/blob - src/freespace2/unixmain.cpp
various valgrind warning fixes
[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 #undef malloc
8 #undef free
9
10 int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int nCmdShow);
11
12 #if defined(__APPLE__) && !defined(MACOSX)
13 char full_path[1024];
14 #endif
15
16 void vm_dump();
17
18 int main(int argc, char **argv)
19 {
20         char userdir[MAX_PATH] = { 0 };
21
22 #if defined(__APPLE__) && !defined(MACOSX)
23         strcpy( full_path, *argv );
24 #endif
25
26         // create user game directory
27         snprintf(userdir, MAX_PATH, "%s/%s/", detect_home(), Osreg_user_dir);
28         _mkdir(userdir);        
29         
30         char *argptr = NULL;
31         int i;
32         int len = 0;
33
34         for (i = 1; i < argc; i++) {
35                 len += strlen(argv[i]) + 1;
36         }
37
38         argptr = (char *)malloc(len+5);
39
40         if (argptr == NULL) {
41                 fprintf(stderr, "ERROR: out of memory in main!\n");
42                 exit(1);
43         }
44
45         memset(argptr, 0, len+5);
46
47         for (i = 1; i < argc; i++) {
48                 strcat(argptr, argv[i]);
49                 strcat(argptr, " ");
50         }
51
52         int retr = WinMain(1, 0, argptr, 0);
53
54         free(argptr);
55                 
56         vm_dump();
57         
58         return retr;    
59 }