/* * This part was written by Harald Kipp * * Bug reports should be sent to * * harald@os2point.ping.de * harald@sesam.com * Fido: 2:2448/434 * * This module contains routines to read the configuration file. * */ #define INCL_DOSPROCESS #include #include #include #include #include #include "config.h" /************************************************************************/ /* */ /* */ /************************************************************************/ static VOID PASCAL FAR ExitChangi(USHORT usTermCode) { cfg.logflg |= LOG_FLUSH; lflush(1); switch(usTermCode) { case TC_EXIT: lprintf("Normal exit"); break; case TC_HARDERROR: lprintf("Hard-error, aborting"); break; case TC_TRAP: lprintf("System trap, aborting"); break; case TC_KILLPROCESS: lprintf("Oh dear, changi was killed"); break; default: lprintf("Unknown exit"); break; } unlink(cfg.pidfile); #ifdef DBG_HEAP DbgHeapDump(); #endif DosExitList(EXLST_EXIT, 0); } /************************************************************************/ /* */ /* */ /************************************************************************/ int initexit(void) { USHORT rc = DosExitList(EXLST_ADD, ExitChangi); FILE *fp = fopen(cfg.pidfile, "wt"); if(fp) { PIDINFO pidi; DosGetPID(&pidi); fprintf(fp, "%u\n", pidi.pid); fclose(fp); } return(rc == 0); }