#ifndef _JOVE_PRINT_H #define _JOVE_PRINT_H 1 #include enum { PRINT_DEBUG = 0, PRINT_LOG, PRINT_WARN, PRINT_ERROR }; #define PRINT_BUFFERW 512 void prawf(const char *fmt, ...); void _plogvf(const char *file, const char *func, int line, int lvl, const char *fmt, va_list ap); void _plogf(const char *file, const char *func, int line, int lvl, const char *fmt, ...); #define kdbgf(...) _plogf(__FILE__, __FUNCTION__, __LINE__, PRINT_DEBUG, __VA_ARGS__) #define klogf(...) _plogf(__FILE__, __FUNCTION__, __LINE__, PRINT_LOG , __VA_ARGS__) #define kwarnf(...) _plogf(__FILE__, __FUNCTION__, __LINE__, PRINT_WARN, __VA_ARGS__) #define kerrf(...) _plogf(__FILE__, __FUNCTION__, __LINE__, PRINT_ERROR, __VA_ARGS__) #endif