Files
raddebugger/src/linker/lnk_cmd_line.h
T

33 lines
1.2 KiB
C

// Copyright (c) Epic Games Tools
// Licensed under the MIT license (https://opensource.org/license/mit/)
#pragma once
typedef struct LNK_CmdOption
{
struct LNK_CmdOption *next;
String8 string;
String8List value_strings;
} LNK_CmdOption;
typedef struct LNK_CmdLine
{
U64 option_count;
LNK_CmdOption *first_option;
LNK_CmdOption *last_option;
String8List input_list;
String8List raw_cmd_line;
} LNK_CmdLine;
internal String8List lnk_arg_list_parse_windows_rules(Arena *arena, String8 string);
internal LNK_CmdLine lnk_cmd_line_parse_windows_rules(Arena *arena, String8List arg_list);
internal LNK_CmdOption * lnk_cmd_line_option_from_string(LNK_CmdLine cmd_line, String8 string);
internal B32 lnk_cmd_line_has_option_string(LNK_CmdLine cmd_line, String8 string);
internal B32 lnk_cmd_line_has_option(LNK_CmdLine cmd_line, char *string);
internal LNK_CmdOption * lnk_cmd_line_push_option(Arena *arena, LNK_CmdLine *cmd_line, char *string, char *value);
internal LNK_CmdOption * lnk_cmd_line_push_option_if_not_present(Arena *arena, LNK_CmdLine *cmd_line, char *string, char *value);
internal String8List lnk_data_from_cmd_line(Arena *arena, LNK_CmdLine cmd_line);