comparison src/generic.h @ 43:f6db1f060a95

start on outlook 2003 64 bit format
author carl
date Sun, 06 Jan 2008 14:47:06 -0800
parents
children
comparison
equal deleted inserted replaced
42:7a97f50c39c5 43:f6db1f060a95
1 /* {{{ Generic.h - thigns every program does:
2 *
3 * - user output (log, debug, etc)
4 * - crash and burn
5 * - allocate memory (or explode)
6 * }}} */
7 #ifndef GENERIC_H
8 #define GENERIC_H
9 #include <stdlib.h>
10 #include <stdio.h>
11 #include <stdarg.h>
12 /***************************************************/
13
14 #define LOAD_DEBUG 1
15
16 #define DIE(...) { fprintf(stderr, "Fatal Error at %s,%d: ", __FILE__, __LINE__); pDIE(__VA_ARGS__); }
17
18 //#define WARN(...) { fprintf(stderr, "WARN: %s,%d: ", __FILE__, __LINE__); pWARN(__VA_ARGS__); }
19 void pDIE( char *fmt, ... );
20 //void pWARN( char *fmt, ... );
21
22 #define WARN(...) DB( DB_WARN, __VA_ARGS__ )
23 #define ASSERT(x,...) { if( !(x) ) DIE( __VA_ARGS__ ); }
24
25 void *F_MALLOC( size_t size );
26 void *F_REALLOC( void *p, size_t size );
27
28 #define DO_DEBUG 0
29 #define DEBUG(x) if( DO_DEBUG ) { x; }
30 #define STUPID_CR "\r\n"
31
32 #define DB_CRASH 0 // crashing
33 #define DB_ERR 1 // error
34 #define DB_WARN 2 // warning
35 #define DB_INFO 3 // normal, but significant, condition
36 #define DB_VERB 4 // verbose information
37 #define DB_0 5 // debug-level message
38 #define DB_1 6 // debug-level message
39 #define DB_2 7 // debug-level message
40
41 extern int DEBUG_LEVEL;
42 extern void (*dbfunc)(char *file, int line, int level, char *fmt, ...);
43
44 #define DB(...) { dbfunc( __FILE__, __LINE__, __VA_ARGS__ ); }
45
46 int set_db_function( void (*func)( char *file, int line, int level, char *fmt, ...) );
47
48 #endif