#ifndef COMMON_H #define COMMON_H #include #include #include #define __RED__ "\033[0;31m" #define __GREEN__ "\033[0;32m" #define __YELLOW__ "\033[0;33m" #define __RESET__ "\033[0m" #define STR(x) #x #define XSTR(x) STR(x) #define info(...) do { fprintf(stdout, __GREEN__"[INFO]"__RESET__" "__VA_ARGS__); fprintf(stdout, "\n"); } while(0) #define err(...) do { fprintf(stderr, __RED__"[ERROR]"__RESET__" "__FILE__":"XSTR(__LINE__)": "__VA_ARGS__); fprintf(stderr, "\n"); }while(0) #define warn(...) do { fprintf(stderr, __YELLOW__"[WARN]"__RESET__" "__FILE__":"XSTR(__LINE__)": "__VA_ARGS__); fprintf(stderr, "\n"); }while(0) // #define info(...) printf(__VA_ARGS__); // #define err(...) printf(__VA_ARGS__); #define die(...) do { \ err(__VA_ARGS__); \ abort(); \ } while(0) void *xmalloc(size_t size); void *xcalloc(size_t nmemb, size_t size); void *xrealloc(void *ptr, size_t size); #endif