#ifdef DEBUGP #undef DEBUGP #endif #ifdef __cplusplus #include #if defined(WIN32) && !defined(__MINGW32__) #include #endif #else #include #if defined(WIN32) && !defined(__MINGW32__) #include #endif #endif #if defined(WIN32) && !defined(__MINGW32__) #ifndef __DEBUG_H__ #define __DEBUG_H__ #include inline void debugprintf(const char *format, ...) { va_list ap; char *f = NULL; const char *p="%s:%d "; size_t plen = strlen(p); va_start(ap, format); f = (char *)malloc(plen + strlen(format) + 1); if (!f) return; memcpy(f, p, plen); memcpy(f + plen, format, strlen(format) + 1); vfprintf(stderr, f, ap); va_end(ap); free(f); } inline void dummyprintf(const char *format, ...) {} #endif #endif #ifdef DEBUG #if defined(WIN32) && !defined(__MINGW32__) #define DEBUGP debugprintf #else #define DEBUGP(args...) do { fprintf(stderr, "%s:%d ", __FILE__, __LINE__); fprintf(stderr, ## args); } while(0) #endif #else #if defined(WIN32) && !defined(__MINGW32__) #define DEBUGP dummyprintf #else #define DEBUGP(args...) #endif #endif