43 lines
931 B
C
43 lines
931 B
C
////////////////////////////////////////////////////////////
|
|
//~ Command line types
|
|
|
|
Struct(CommandlineArg)
|
|
{
|
|
b32 exists;
|
|
String name;
|
|
String value;
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ Lookup types
|
|
|
|
Struct(CommandlineArgNode)
|
|
{
|
|
CommandlineArgNode *next;
|
|
u64 hash;
|
|
CommandlineArg arg;
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ State types
|
|
|
|
#define CommandlineArgBinsCount 1024
|
|
|
|
Struct(SharedCmdlineState)
|
|
{
|
|
String *positional_args;
|
|
u64 positional_args_count;
|
|
CommandlineArgNode *arg_bins[CommandlineArgBinsCount];
|
|
} extern shared_cmdline_state;
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ Initialization
|
|
|
|
void InitCmdline(void);
|
|
|
|
////////////////////////////////////////////////////////////
|
|
//~ Command line operations
|
|
|
|
String StringFromCommandlineIdx(i32 idx);
|
|
CommandlineArg CommandlineArgFromName(String name);
|