frodo-wii/utils.hh

55 lines
1.1 KiB
C++
Raw Normal View History

#ifndef __UTILS_H__
#define __UTILS_H__
#define BUG_ON(cond)
2009-11-19 21:18:45 +01:00
#define panic(x...) do \
{ \
2009-11-23 19:52:30 +01:00
fprintf(stderr, "=============PANIC PANIC PANIC===========\n"); \
2009-11-19 21:18:45 +01:00
fprintf(stderr, x); \
2009-11-23 19:52:30 +01:00
fprintf(stderr, "=========================================\n"); \
2009-11-19 21:18:45 +01:00
exit(1); \
} while(0)
#define panic_if(cond, x...) \
do { if ((cond)) panic(x); } while(0)
static inline char *xstrdup(const char *s)
{
char *out = strdup(s);
panic_if(!out, "strdup failed");
return out;
}
static inline void *xmalloc(size_t sz)
{
void *out = malloc(sz);
panic_if(!out, "malloc failed");
2009-11-20 21:28:48 +01:00
memset(out, 0, sz);
2009-11-19 21:18:45 +01:00
return out;
}
static inline void *xrealloc(void *ptr, size_t sz)
{
void *out = realloc(ptr, sz);
panic_if(!out, "malloc failed");
return out;
}
2009-11-19 21:18:45 +01:00
#define xsnprintf(buf, size, fmt, x...) do { \
int r = snprintf(buf, size, fmt, x); \
panic_if(r < 0 || r >= (int)(size), "snprintf failed for %s with %d\n", fmt, r); \
} while(0)
2009-11-26 19:29:10 +01:00
TTF_Font *read_and_alloc_font(const char *path, int pt_size);
2009-11-23 19:52:30 +01:00
const char **get_file_list(const char *base_dir, const char *exts[]);
#endif /* __UTILS_H__ */