diff --git a/SICSmain.c b/SICSmain.c index c94e6190..300dad15 100644 --- a/SICSmain.c +++ b/SICSmain.c @@ -39,30 +39,39 @@ int main(int argc, char *argv[]) { - int iRet; - - /* initialise, will die on you if problems */ - if(argc >= 2) - { - iRet = InitServer(argv[1],&pServ); - } - else - { - iRet = InitServer(NULL,&pServ); - } - if(!iRet) - { - printf("Unrecoverable error on server startup, exiting.........\n"); - exit(1); - } - daemon(1,1); - - - RunServer(pServ); - - StopServer(pServ); - pServ = NULL; - exit(0); + int iRet; + int debug = 0; + const char* filename = NULL; + + /* initialise, will die on you if problems */ + if(argc >= 2) + { + if (strcasecmp(argv[1], "-d") == 0) + { + debug = 1; + if (argc > 2) + filename = argv[2]; + } + else + { + filename = argv[1]; + } + } + iRet = InitServer(filename, &pServ); + if(!iRet) + { + printf("Unrecoverable error on server startup, exiting.........\n"); + exit(1); + } + if (debug == 0) + daemon(1,1); + + + RunServer(pServ); + + StopServer(pServ); + pServ = NULL; + exit(0); } /*--------------------------------------------------------------------------*/ SicsInterp *GetInterpreter(void)