//debug.h
#ifndef _DEBUG_H_
#define _DEBUG_H_
#define BLACK_WORD "\033[22m\033[30m"
#define RED_WORD "\033[22m\033[31m"
#define GREEN_WORD "\033[22m\033[32m"
#define YELLOW_WORD "\033[22m\033[33m"
#define BLUE_WORD "\033[22m\033[34m"
#define PURPLE_WORD "\033[22m\033[35m"
#define DEEPGREEN_WORD "\033[22m\033[36m"
#define WHITE_WORD "\033[22m\033[37m"
#define COLOUR_WORD BLUE_WORD
#define COLOUR_KEY GREEN_WORD
#define COLOUR_ERR RED_WORD
#define OUTPUT_DEVICE stderr
#define DEBUG
#ifdef DEBUG
#define DEBUG_CODE(fmt, args...)\
do{\
fflush (OUTPUT_DEVICE);\
fprintf (OUTPUT_DEVICE, COLOUR_KEY"FILE: "COLOUR_WORD"%s "\
COLOUR_KEY"LINE: "COLOUR_WORD"%d " COLOUR_KEY"FUNC: "\
COLOUR_WORD"%s ", __FILE__, __LINE__, __func__);\
fprintf(OUTPUT_DEVICE, COLOUR_KEY"ERR: "COLOUR_ERR""fmt"\n", ##args);\
fprintf (OUTPUT_DEVICE, WHITE_WORD);\
}while(0)
#else
#define DEBUG_CODE(fmt, args...)
#endif
#endif