=================================================================== RCS file: /home/cvs/OpenXM/src/kxx/oxserver00.c,v retrieving revision 1.2 retrieving revision 1.6 diff -u -p -r1.2 -r1.6 --- OpenXM/src/kxx/oxserver00.c 1999/11/09 11:43:35 1.2 +++ OpenXM/src/kxx/oxserver00.c 2001/12/21 02:32:11 1.6 @@ -1,4 +1,4 @@ -/* $OpenXM$ */ +/* $OpenXM: OpenXM/src/kxx/oxserver00.c,v 1.5 2001/05/06 07:53:01 takayama Exp $ */ /* nullserver01 */ #include #include @@ -33,7 +33,7 @@ main(int argc, char *argv[]) { char *tigers[] = {"callsm1.sm1","tigers.sm1"}; char *basicCD[] = {"basicCD.sm1"}; /* If you change the above, you need to change the argc of Sm1_start below. - */ + */ if (argc > 1) { if (strcmp(argv[1],"-monitor")==0) { @@ -64,9 +64,13 @@ main(int argc, char *argv[]) { static char *getSuffix(char *s) { /* getSuffix("ox_sm1_forAsir") returns "forAsir" */ + /* getSuffix("ox_sm1_forAsir.exe") returns "forAsir" */ /* getSuffix("ox_sm1_gnuplot") returns "gnuplot" */ int n,i,k; n = strlen(s); + if (n > 5 && (strcmp(".exe",&(s[n-4]))==0 || strcmp(".EXE",&(s[n-4]))==0)) { + s[n-4] = '\0'; + } for (i=n-1; i>=0; i--) { if (s[i] == '_') { return( s+i+1 ); @@ -83,6 +87,7 @@ nullserver(int fdStream) { extern jmp_buf EnvOfStackMachine; int engineByteOrder; + fflush(NULL); engineByteOrder = oxTellMyByteOrder(fdStream); /* Set the network byte order. */ fprintf(stderr,"engineByteOrder=%x\n",engineByteOrder); @@ -115,10 +120,10 @@ nullserver(int fdStream) { /* In case of error in the stack machine, pop the error info and send the error packet. */ /* oxSendOXheader(ostream,OX_DATA,SerialOX++); - oxSendCmoError(ostream); - oxSendOXheader(ostream,OX_DATA,SerialOX++); - sprintf(sreason,"Jump here by sm1 error."); - oxSendCmoError2(ostream,sreason); + oxSendCmoError(ostream); + oxSendOXheader(ostream,OX_DATA,SerialOX++); + sprintf(sreason,"Jump here by sm1 error."); + oxSendCmoError2(ostream,sreason); */ Sm1_pushError2(SerialCurrent,-1,"Global jump by sm1 error"); @@ -163,7 +168,7 @@ nullserver(int fdStream) { case OX_DATA: fprintf(stderr," OX_DATA \n"); break; case OX_SYNC_BALL: fprintf(stderr," OX_SYNC_BALL \n"); break; case -1: fprintf(stderr," End of file. Exiting the server child.\n"); - exit(); break; + exit(); break; default: fprintf(stderr," ?! \n"); break; } } @@ -224,6 +229,10 @@ nullserverCommand(ox_stream ostream) { if (message) fprintf(stderr," dupErrors \n"); Sm1_dupErrors(); break; + case SM_pushCMOtag: + if (message) fprintf(stderr," pushCMOtag \n"); + Sm1_pushCMOtag(SerialCurrent); + break; case SM_setName: if (message) fprintf(stderr," setName \n"); iresult = Sm1_setName(); @@ -273,6 +282,9 @@ nullserverCommand(ox_stream ostream) { if (message) fprintf(stderr,"Done.\n"); break; case SM_shutdown: + fprintf(stderr,"Shutting down the engine.\n"); + exit(0); + break; case SM_beginBlock: case SM_endBlock: fprintf(stderr,"This command has not yet been implemented.\n"); @@ -297,7 +309,7 @@ nullserver_simplest(int fd) { void controlResetHandler(sig) -int sig; + int sig; { signal(sig,SIG_IGN); fprintf(stderr,"From controlResetHandler. OxCritical = %d\n",OxCritical);