fixes
This commit is contained in:
28
core.h
28
core.h
@@ -45,8 +45,10 @@ typedef struct string string;
|
||||
#define Billion(n) ((n)*1000000000LL)
|
||||
|
||||
#define ArrayCount(arr) (sizeof(arr) / sizeof((arr)[0]))
|
||||
#define MemberSize(type, memberName) (sizeof(((type*)0)->data))
|
||||
#define MemberSizeUnderlying(type, memberName) (sizeof(*((type*)0)->data))
|
||||
#define MemberSize(type, memberName) sizeof(((type *)0)->memberName)
|
||||
#define MemberType(type, memberName) typeof(((type *)0)->memberName)
|
||||
#define MemberSizeUnderlying(type, memberName) sizeof(*((type *)0)->memberName)
|
||||
#define MemberTypeUnderlying(type, memberName) typeof(*((type *)0)->memberName)
|
||||
|
||||
// ### Arenas ###
|
||||
typedef struct {
|
||||
@@ -142,14 +144,14 @@ inline function Vec4 vec4(real32 x, real32 y, real32 z, real32 w) {
|
||||
|
||||
DefineList(string, String);
|
||||
|
||||
#define PushList(arena, type, size) ((type){ pushSize(arena, MemberSizeUnderlying(type, data)), size, 0 })
|
||||
#define EmptyList(type) ((type){ NULL, 0, 0 })
|
||||
#define PushListZero(arena, type, size) ((type){ pushSizeFill(arena, MemberSizeUnderlying(type, data), 0), size, 0 })
|
||||
#define PushFullList(arena, type, size) ((type){ pushSize(arena, MemberSizeUnderlying(type, data)), size, size })
|
||||
#define PushFullListZero(arena, type, size) ((type){ pushSizeFill(arena, MemberSizeUnderlying(type, data), 0), size, size })
|
||||
#define ArrayAsList(type, array) ((type){ array, ArrayCount(array), ArrayCount(array) })
|
||||
#define PushList(arena, type, size) (type){ (MemberTypeUnderlying(type, data) *)pushSize(arena, MemberSizeUnderlying(type, data)*size), size, 0 }
|
||||
#define EmptyList(type) (type){ NULL, 0, 0 }
|
||||
#define PushListZero(arena, type, size) (type){ (MemberTypeUnderlying(type, data) *)pushSizeFill(arena, MemberSizeUnderlying(type, data)*size, 0), size, 0 }
|
||||
#define PushFullList(arena, type, size) (type){ (MemberTypeUnderlying(type, data) *)pushSize(arena, MemberSizeUnderlying(type, data))*size, size, size }
|
||||
#define PushFullListZero(arena, type, size) (type){ (MemberTypeUnderlying(type, data) *)pushSizeFill(arena, MemberSizeUnderlying(type, data)*size, 0), size, size }
|
||||
#define ArrayAsList(type, array) (type){ array, ArrayCount(array), ArrayCount(array) }
|
||||
|
||||
#define AppendList(type, list, element) \
|
||||
#define AppendList(list, element) \
|
||||
if ((list)->head < (list)->length) { \
|
||||
(list)->data[(list)->head++] = (element); \
|
||||
}
|
||||
@@ -264,12 +266,10 @@ typedef enum {
|
||||
#define COLOR_TEXT_FG_BG(text, foregroundcolor, backgroundcolor) ANSI_INSTRUCTION_FROM_ENUM(foregroundcolor) ANSI_INSTRUCTION_FROM_ENUM(backgroundcolor) text ANSI_RESET
|
||||
#define COLOR_TEXT_RGB(text, red, green, blue) ANSI_INSTRUCTION_STR("38;2;" #red ";" #green ";" #blue) text ANSI_RESET
|
||||
|
||||
#define SetStdErr() DeferLoop
|
||||
DefineList(int, Int);
|
||||
void printIntListErr(IntList l);
|
||||
void printStrListErr(StringList l);
|
||||
void print(const char *fmt, ...);
|
||||
void printErr(const char *fmt, ...);
|
||||
void printIntList(IntList l);
|
||||
void printStrList(StringList l);
|
||||
extern void (*print)(const char *fmt, ...);
|
||||
|
||||
// ### Loops ###
|
||||
#define EachIn(list, it) size_t it = 0; it < (list).head; it++
|
||||
|
||||
Reference in New Issue
Block a user