/* error.c: afdrukken van waarschuwingen, fouten, fatale fouten */ #include #include #include #include "error.h" static int errorOccurred = FALSE; /* stel toestand "geen fouten gebeurd" in */ void ErrorReset(void) { errorOccurred = FALSE; } /* geeft FALSE terug indien sinds de vorige oproep zich geen fouten hebben * voorgedaan. */ int ErrorOccurred(void) { int errocc = errorOccurred; errorOccurred = FALSE; return errocc; } /* drukt een foutenboodschap af */ void Error(char *routine, char *text, ...) { va_list pvar; fprintf(stderr, "Error"); if (routine) fprintf(stderr, " (in subroutine %s)", routine); fprintf(stderr, ": "); va_start(pvar, text); vfprintf(stderr, text, pvar); va_end(pvar); fprintf(stderr, ".\n"); fflush(stderr); errorOccurred = TRUE; } /* een fatale fout: druk boodschap of en verlaat het programma * met de opgegeven foutencode */ void Fatal(int errcode, char *routine, char *text, ...) { va_list pvar; fprintf(stderr, "Fatal error"); if (routine) fprintf(stderr, " (in subroutine %s)", routine); fprintf(stderr, ": "); va_start(pvar, text); vfprintf(stderr, text, pvar); va_end(pvar); fprintf(stderr, ".\n"); fflush(stderr); /* exit(errcode); */ abort(); errorOccurred = TRUE; } void Warning(char *routine, char *text, ...) { va_list pvar; fprintf(stderr, "Warning"); if (routine) fprintf(stderr, " (in subroutine %s)", routine); fprintf(stderr, ": "); va_start(pvar, text); vfprintf(stderr, text, pvar); va_end(pvar); fprintf(stderr, ".\n"); fflush(stderr); }