#define SAPHIR_NODE_SIG 0x9999baca class SaphirAttr { I64 fg; I64 bg; }; class SaphirBorder : SaphirAttr { I64 focus_fg; I64 focus_bg; Bool list; }; class SaphirCursor : SaphirAttr { // Bool blink; U64 stub; }; class SaphirKeyDev { U64 sys_cbs; U64 null_cbs; }; class SaphirRect { I32 x1; I32 y1; I32 x2; I32 y2; }; class SaphirNode { U32 sig; Bool mode; SaphirRect rect; I64 count; I64 index; U64** child; SaphirNode* parent_node; }; class SaphirGlbls { Bool debug; Bool enabled; Bool blink; SaphirBorder border; SaphirCursor cursor; SaphirAttr status; SaphirKeyDev kd; SaphirNode* root_node; SaphirNode* current_node; I64 doc_cursor_state; } saphir; MemSet(&saphir, 0, sizeof(SaphirGlbls));