Go to the documentation of this file.
27 #define DECLARE_MAIN(ARGC,ARGV)\
28 STRING_VAR(init_config_file,"config","Config file to read on startup");\
29 REALLY_DECLARE_MAIN(ARGC,ARGV)
31 #define DECLARE_MAIN_CONFIG(ARGC,ARGV,NAME)\
32 STRING_VAR(init_config_file,NAME,"Config file to read on startup");\
33 REALLY_DECLARE_MAIN(ARGC,ARGV)
37 #define REALLY_DECLARE_MAIN(ARGC,ARGV)\
57 for (arg=0;arg<argc;arg++)\
63 && (*testchar==' ' || *testchar=='"' || *testchar=='\n' || *testchar=='\t'))\
67 arglist[argcount++]=testchar; \
70 for (testchar++;*testchar\
71 && *testchar!=' ' && *testchar!='"' && *testchar!='\n' && *testchar!='\t';\
74 while (*testchar=='"' && testchar[1]!=' ' && testchar[1]!='\0' && testchar[1]!='\n' && testchar[1]!='\t');\
84 inT32 global_exit_code;\
85 inT32 real_main(inT32,const char**);\
96 argsin[0]=strdup(theapp->m_pszExeName);\
97 argsin[1]=strdup(theapp->m_lpCmdLine);\
100 argv=(char**)malloc(((strlen(argsin[0])+strlen(argsin[1]))/2+1)*sizeof(char*));\
103 argc=parse_args(2,argsin,argv);\
106 exit_code=real_main(argc,(const char **)argv);\
110 if (theapp!=NULL && theapp->m_pMainWnd!=NULL)\
111 PostMessage(theapp->m_pMainWnd->m_hWnd,WM_QUIT,0,0);\
115 global_exit_code=exit_code;\
119 inT32 real_main(inT32 ARGC,const char* ARGV[])\
123 #define REALLY_DECLARE_MAIN(ARGC,ARGV)\
143 for (arg=0;arg<argc;arg++)\
145 testchar=argv[arg]; \
149 && (*testchar==' ' || *testchar=='"' || *testchar=='\n' || *testchar=='\t'))\
153 arglist[argcount++]=testchar; \
156 for (testchar++;*testchar\
157 && *testchar!=' ' && *testchar!='"' && *testchar!='\n' && *testchar!='\t';\
160 while (*testchar=='"' && testchar[1]!=' ' && testchar[1]!='\0' && testchar[1]!='\n' && testchar[1]!='\t');\
170 inT32 main(inT32 ARGC,const char* ARGV[])\
175 #error "NOT allowed to include nwmain.h or runmain.h twice!!"