Mercurial > hg > dmlib
view minijss/jss.c @ 2554:aabfa00eafd9
Improve error handling.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 27 Feb 2022 16:37:14 +0200 |
parents | aa3738b121d1 |
children | 9807ae37ad69 |
line wrap: on
line source
/* * miniJSS - General functions * Programmed and designed by Matti 'ccr' Hamalainen * (C) Copyright 2006-2015 Tecnic Software productions (TNSP) */ #include "jss.h" #include <stdarg.h> /* Memory and error handling functions */ BOOL jssWarningIsFatal, jssErrorIsFatal; #ifndef JSS_LIGHT void (*jssError) (int code, const char *filename, int linen, const char *fmt, ...); void (*jssWarning) (int code, const char *filename, int linen, const char *fmt, ...); void jssDefaultPrint(int code, const char *filename, int linen, const char *fmt) { fprintf(stderr, "JSS"); if (filename) fprintf(stderr, "[%s:%i]", filename, linen); fprintf(stderr, "%s", fmt); if (code > 0) fprintf(stderr, "(%i)", code); fprintf(stderr, ": "); } void jssDefaultError(int code, const char *filename, int linen, const char *fmt, ...) { va_list ap; jssDefaultPrint(code, filename, linen, "E"); va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); } void jssDefaultWarning(int code, const char *filename, int linen, const char *fmt, ...) { va_list ap; jssDefaultPrint(code, filename, linen, "W"); va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); } #endif /* System initialization */ int jssInit(void) { // Error handling #ifndef JSS_LIGHT jssWarningIsFatal = FALSE; jssErrorIsFatal = TRUE; jssError = jssDefaultError; jssWarning = jssDefaultWarning; #endif // Allocate global tables return DMERR_OK; } /* System shutdown */ int jssClose(void) { return DMERR_OK; }