#ifndef REPORT_H #define REPORT_H #define REPORT_GENERIC 1 #define REPORT_WARNING 2 #define REPORT_ERROR 4 #define REPORT_SEVERE 8 #define REPORT_DEBUG 16 #define REPORT_NIL 32 #define REPORT_ALL REPORT_GENERIC|REPORT_WARNING|REPORT_ERROR|REPORT_SEVERE|REPORT_DEBUG|REPORT_NIL #define REPORT_NORMAL REPORT_ERROR|REPORT_SEVERE #define GENERIC 0 #define WARNING 1 #define ERROR 2 #define SEVERE 3 #define DEBUG 4 #define NIL 5 extern char severity_names[][4]; extern int severity_levels[]; struct Report* reports[128]; extern int report_count; void (*doReport)(const char *message, ...); extern int report_level; struct ReportEntry { int severity; // DEFAULT, WARNING, ERROR, etc. char *context; char *message; }; // Breaking my own syntax here, with a function name as a var name, but w/e void report(int severity, const char *context, const char *message, ...); int setReportLevel(int flags); #endif