Mercurial > hg > dmlib
diff jss.c @ 0:32250b436bca
Initial re-import.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 28 Sep 2012 01:54:23 +0300 |
parents | |
children | 54974f4f2ad6 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jss.c Fri Sep 28 01:54:23 2012 +0300 @@ -0,0 +1,79 @@ +/* + * miniJSS - General functions + * Programmed and designed by Matti 'ccr' Hamalainen + * (C) Copyright 2006-2007 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, char * filename, int linen, char * fmt, ...); +void (*jssWarning) (int code, char * filename, int linen, char * fmt, ...); +#endif + + +void jssDefaultPrint(int code, char * filename, int linen, char * fmt) +{ + fprintf(stderr, "JSS"); + if (filename) + fprintf(stderr, "[%s:%i]", filename, linen); + fprintf(stderr, fmt); + if (code > 0) + fprintf(stderr, "(%i)", code); + fprintf(stderr, ": "); +} + + +void jssDefaultError(int code, char * filename, int linen, 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, char * filename, int linen, char * fmt, ...) +{ + va_list ap; + jssDefaultPrint(code, filename, linen, "W"); + + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); +} + + +/* System initialization + */ +int jssInit(void) +{ + // Error handling + jssWarningIsFatal = FALSE; + jssErrorIsFatal = TRUE; + +#ifndef JSS_LIGHT + jssError = jssDefaultError; + jssWarning = jssDefaultWarning; +#endif + + // Allocate global tables + + return DMERR_OK; +} + + +/* System shutdown + */ +int jssClose(void) +{ + return DMERR_OK; +}