summaryrefslogtreecommitdiff
path: root/src/common.h
blob: 1c80ab8f5d4fd7549e97cf97bd53262363222871 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef LOG_H
#define LOG_H

#include <stdio.h>
#include <stdlib.h>

#define ARR_SIZE(a) (sizeof(a)/sizeof(*(a)))

#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 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