From 73fa47a67287909638b784fc792d6e5f7d5f6097 Mon Sep 17 00:00:00 2001 From: Allen Webster Date: Tue, 1 Oct 2019 14:49:05 -0700 Subject: [PATCH] Fixing up lexer build and preprocessor parsing logic --- 4ed_api_implementation.cpp | 362 +++++++++--------- custom/4coder_base_types.h | 5 +- custom/4coder_file.h | 15 +- custom/bin/build_one_time.bat | 33 +- custom/{ => languages}/4coder_lex_gen_cpp.cpp | 62 ++- .../lexer_generator/4coder_lex_gen_main.cpp | 39 +- project.4coder | 2 +- 7 files changed, 281 insertions(+), 237 deletions(-) rename custom/{ => languages}/4coder_lex_gen_cpp.cpp (95%) diff --git a/4ed_api_implementation.cpp b/4ed_api_implementation.cpp index 3c9d8629..53b8b4d9 100644 --- a/4ed_api_implementation.cpp +++ b/4ed_api_implementation.cpp @@ -48,7 +48,7 @@ is_running_coroutine(Application_Links *app){ return(app->current_coroutine != 0); } -API_EXPORT b32 +api(custom) function b32 Global_Set_Setting(Application_Links *app, Global_Setting_ID setting, i32 value) { Models *models = (Models*)app->cmd_context; @@ -66,7 +66,7 @@ Global_Set_Setting(Application_Links *app, Global_Setting_ID setting, i32 value) return(result); } -API_EXPORT b32 +api(custom) function b32 Global_Set_Mapping(Application_Links *app, void *data, i32 size) { Models *models = (Models*)app->cmd_context; @@ -74,26 +74,26 @@ Global_Set_Mapping(Application_Links *app, void *data, i32 size) return(result); } -API_EXPORT Rect_f32 +api(custom) function Rect_f32 Global_Get_Screen_Rectangle(Application_Links *app){ Models *models = (Models*)app->cmd_context; return(Rf32(V2(0, 0), V2(layout_get_root_size(&models->layout)))); } -API_EXPORT Thread_Context* +api(custom) function Thread_Context* Get_Thread_Context(Application_Links *app){ Models *models = (Models*)app->cmd_context; return(models->tctx); } -API_EXPORT b32 +api(custom) function b32 Create_Child_Process(Application_Links *app, String_Const_u8 path, String_Const_u8 command, Child_Process_ID *child_process_id_out){ Models *models = (Models*)app->cmd_context; System_Functions *system = models->system; return(child_process_call(models, system, path, command, child_process_id_out)); } -API_EXPORT b32 +api(custom) function b32 Child_Process_Set_Target_Buffer(Application_Links *app, Child_Process_ID child_process_id, Buffer_ID buffer_id, Child_Process_Set_Target_Flags flags){ Models *models = (Models*)app->cmd_context; Child_Process *child_process = child_process_from_id(&models->child_processes, child_process_id); @@ -105,7 +105,7 @@ Child_Process_Set_Target_Buffer(Application_Links *app, Child_Process_ID child_p return(result); } -API_EXPORT Child_Process_ID +api(custom) function Child_Process_ID Buffer_Get_Attached_Child_Process(Application_Links *app, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -116,7 +116,7 @@ Buffer_Get_Attached_Child_Process(Application_Links *app, Buffer_ID buffer_id){ return(result); } -API_EXPORT Buffer_ID +api(custom) function Buffer_ID Child_Process_Get_Attached_Buffer(Application_Links *app, Child_Process_ID child_process_id){ Models *models = (Models*)app->cmd_context; Child_Process *child_process = child_process_from_id(&models->child_processes, child_process_id); @@ -127,13 +127,13 @@ Child_Process_Get_Attached_Buffer(Application_Links *app, Child_Process_ID child return(result); } -API_EXPORT Process_State +api(custom) function Process_State Child_Process_Get_State(Application_Links *app, Child_Process_ID child_process_id){ Models *models = (Models*)app->cmd_context; return(child_process_get_state(&models->child_processes, child_process_id)); } -API_EXPORT b32 +api(custom) function b32 Clipboard_Post(Application_Links *app, i32 clipboard_id, String_Const_u8 string) { Models *models = (Models*)app->cmd_context; @@ -143,14 +143,14 @@ Clipboard_Post(Application_Links *app, i32 clipboard_id, String_Const_u8 string) return(true); } -API_EXPORT i32 +api(custom) function i32 Clipboard_Count(Application_Links *app, i32 clipboard_id) { Models *models = (Models*)app->cmd_context; return(models->working_set.clipboard_size); } -API_EXPORT String_Const_u8 +api(custom) function String_Const_u8 Push_Clipboard_Index(Application_Links *app, Arena *arena, i32 clipboard_id, i32 item_index) { Models *models = (Models*)app->cmd_context; @@ -162,7 +162,7 @@ Push_Clipboard_Index(Application_Links *app, Arena *arena, i32 clipboard_id, i32 return(result); } -API_EXPORT i32 +api(custom) function i32 Get_Buffer_Count(Application_Links *app) { Models *models = (Models*)app->cmd_context; @@ -170,7 +170,7 @@ Get_Buffer_Count(Application_Links *app) return(working_set->active_file_count); } -API_EXPORT Buffer_ID +api(custom) function Buffer_ID Get_Buffer_Next(Application_Links *app, Buffer_ID buffer_id, Access_Flag access) { Models *models = (Models*)app->cmd_context; @@ -187,7 +187,7 @@ Get_Buffer_Next(Application_Links *app, Buffer_ID buffer_id, Access_Flag access) return(result); } -API_EXPORT Buffer_ID +api(custom) function Buffer_ID Get_Buffer_By_Name(Application_Links *app, String_Const_u8 name, Access_Flag access) { Models *models = (Models*)app->cmd_context; @@ -200,7 +200,7 @@ Get_Buffer_By_Name(Application_Links *app, String_Const_u8 name, Access_Flag acc return(result); } -API_EXPORT Buffer_ID +api(custom) function Buffer_ID Get_Buffer_By_File_Name(Application_Links *app, String_Const_u8 file_name, Access_Flag access) { Models *models = (Models*)app->cmd_context; @@ -218,7 +218,7 @@ Get_Buffer_By_File_Name(Application_Links *app, String_Const_u8 file_name, Acces return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_Read_Range(Application_Links *app, Buffer_ID buffer_id, Range_i64 range, char *out) { Models *models = (Models*)app->cmd_context; @@ -236,7 +236,7 @@ Buffer_Read_Range(Application_Links *app, Buffer_ID buffer_id, Range_i64 range, return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_Replace_Range(Application_Links *app, Buffer_ID buffer_id, Range_i64 range, String_Const_u8 string) { Models *models = (Models*)app->cmd_context; @@ -253,7 +253,7 @@ Buffer_Replace_Range(Application_Links *app, Buffer_ID buffer_id, Range_i64 rang return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_Batch_Edit(Application_Links *app, Buffer_ID buffer_id, Batch_Edit *batch) { Models *models = (Models*)app->cmd_context; @@ -266,7 +266,7 @@ Buffer_Batch_Edit(Application_Links *app, Buffer_ID buffer_id, Batch_Edit *batch return(result); } -API_EXPORT String_Match +api(custom) function String_Match Buffer_Seek_String(Application_Links *app, Buffer_ID buffer, String_Const_u8 needle, Scan_Direction direction, i64 start_pos){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer); @@ -312,7 +312,7 @@ Buffer_Seek_String(Application_Links *app, Buffer_ID buffer, String_Const_u8 nee return(result); } -API_EXPORT String_Match +api(custom) function String_Match Buffer_Seek_Character_Class(Application_Links *app, Buffer_ID buffer, Character_Predicate *predicate, Scan_Direction direction, i64 start_pos){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer); @@ -366,7 +366,7 @@ Buffer_Seek_Character_Class(Application_Links *app, Buffer_ID buffer, Character_ return(result); } -API_EXPORT f32 +api(custom) function f32 Buffer_Line_Y_Difference(Application_Links *app, Buffer_ID buffer_id, f32 width, Face_ID face_id, i64 line_a, i64 line_b){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -380,7 +380,7 @@ Buffer_Line_Y_Difference(Application_Links *app, Buffer_ID buffer_id, f32 width, return(result); } -API_EXPORT Line_Shift_Vertical +api(custom) function Line_Shift_Vertical Buffer_Line_Shift_Y(Application_Links *app, Buffer_ID buffer_id, f32 width, Face_ID face_id, i64 line, f32 y_shift){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -394,7 +394,7 @@ Buffer_Line_Shift_Y(Application_Links *app, Buffer_ID buffer_id, f32 width, Face return(result); } -API_EXPORT i64 +api(custom) function i64 Buffer_Pos_At_Relative_XY(Application_Links *app, Buffer_ID buffer_id, f32 width, Face_ID face_id, i64 base_line, Vec2_f32 relative_xy){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -408,7 +408,7 @@ Buffer_Pos_At_Relative_XY(Application_Links *app, Buffer_ID buffer_id, f32 width return(result); } -API_EXPORT Vec2_f32 +api(custom) function Vec2_f32 Buffer_Relative_XY_Of_Pos(Application_Links *app, Buffer_ID buffer_id, f32 width, Face_ID face_id, i64 base_line, i64 pos) { Models *models = (Models*)app->cmd_context; @@ -423,7 +423,7 @@ Buffer_Relative_XY_Of_Pos(Application_Links *app, Buffer_ID buffer_id, f32 width return(result); } -API_EXPORT i64 +api(custom) function i64 Buffer_Relative_Character_From_Pos(Application_Links *app, Buffer_ID buffer_id, f32 width, Face_ID face_id, i64 base_line, i64 pos) { Models *models = (Models*)app->cmd_context; @@ -438,7 +438,7 @@ Buffer_Relative_Character_From_Pos(Application_Links *app, Buffer_ID buffer_id, return(result); } -API_EXPORT i64 +api(custom) function i64 Buffer_Pos_From_Relative_Character(Application_Links *app, Buffer_ID buffer_id, f32 width, Face_ID face_id, i64 base_line, i64 relative_character) { Models *models = (Models*)app->cmd_context; @@ -453,7 +453,7 @@ Buffer_Pos_From_Relative_Character(Application_Links *app, Buffer_ID buffer_id, return(result); } -API_EXPORT f32 +api(custom) function f32 View_Line_Y_Difference(Application_Links *app, View_ID view_id, i64 line_a, i64 line_b){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -464,7 +464,7 @@ View_Line_Y_Difference(Application_Links *app, View_ID view_id, i64 line_a, i64 return(result); } -API_EXPORT Line_Shift_Vertical +api(custom) function Line_Shift_Vertical View_Line_Shift_Y(Application_Links *app, View_ID view_id, i64 line, f32 y_shift){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -475,7 +475,7 @@ View_Line_Shift_Y(Application_Links *app, View_ID view_id, i64 line, f32 y_shift return(result); } -API_EXPORT i64 +api(custom) function i64 View_Pos_At_Relative_XY(Application_Links *app, View_ID view_id, i64 base_line, Vec2_f32 relative_xy){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -486,7 +486,7 @@ View_Pos_At_Relative_XY(Application_Links *app, View_ID view_id, i64 base_line, return(result); } -API_EXPORT Vec2_f32 +api(custom) function Vec2_f32 View_Relative_XY_Of_Pos(Application_Links *app, View_ID view_id, i64 base_line, i64 pos){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -497,7 +497,7 @@ View_Relative_XY_Of_Pos(Application_Links *app, View_ID view_id, i64 base_line, return(result); } -API_EXPORT i64 +api(custom) function i64 View_Relative_Character_From_Pos(Application_Links *app, View_ID view_id, i64 base_line, i64 pos){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -508,7 +508,7 @@ View_Relative_Character_From_Pos(Application_Links *app, View_ID view_id, i64 b return(result); } -API_EXPORT i64 +api(custom) function i64 View_Pos_From_Relative_Character(Application_Links *app, View_ID view_id, i64 base_line, i64 character){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -519,14 +519,14 @@ View_Pos_From_Relative_Character(Application_Links *app, View_ID view_id, i64 b return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_Exists(Application_Links *app, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); return(api_check_buffer(file)); } -API_EXPORT b32 +api(custom) function b32 Buffer_Ready(Application_Links *app, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -537,7 +537,7 @@ Buffer_Ready(Application_Links *app, Buffer_ID buffer_id){ return(result); } -API_EXPORT Access_Flag +api(custom) function Access_Flag Buffer_Get_Access_Flags(Application_Links *app, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -548,7 +548,7 @@ Buffer_Get_Access_Flags(Application_Links *app, Buffer_ID buffer_id){ return(result); } -API_EXPORT i64 +api(custom) function i64 Buffer_Get_Size(Application_Links *app, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -559,7 +559,7 @@ Buffer_Get_Size(Application_Links *app, Buffer_ID buffer_id){ return(result); } -API_EXPORT i64 +api(custom) function i64 Buffer_Get_Line_Count(Application_Links *app, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -570,7 +570,7 @@ Buffer_Get_Line_Count(Application_Links *app, Buffer_ID buffer_id){ return(result); } -API_EXPORT String_Const_u8 +api(custom) function String_Const_u8 Push_Buffer_Base_Name(Application_Links *app, Arena *arena, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -581,7 +581,7 @@ Push_Buffer_Base_Name(Application_Links *app, Arena *arena, Buffer_ID buffer_id) return(result); } -API_EXPORT String_Const_u8 +api(custom) function String_Const_u8 Push_Buffer_Unique_Name(Application_Links *app, Arena *out, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -592,7 +592,7 @@ Push_Buffer_Unique_Name(Application_Links *app, Arena *out, Buffer_ID buffer_id) return(result); } -API_EXPORT String_Const_u8 +api(custom) function String_Const_u8 Push_Buffer_File_Name(Application_Links *app, Arena *arena, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -603,7 +603,7 @@ Push_Buffer_File_Name(Application_Links *app, Arena *arena, Buffer_ID buffer_id) return(result); } -API_EXPORT Dirty_State +api(custom) function Dirty_State Buffer_Get_Dirty_State(Application_Links *app, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -614,7 +614,7 @@ Buffer_Get_Dirty_State(Application_Links *app, Buffer_ID buffer_id){ return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_Set_Dirty_State(Application_Links *app, Buffer_ID buffer_id, Dirty_State dirty_state){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -626,7 +626,7 @@ Buffer_Set_Dirty_State(Application_Links *app, Buffer_ID buffer_id, Dirty_State return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_Get_Setting(Application_Links *app, Buffer_ID buffer_id, Buffer_Setting_ID setting, i32 *value_out) { Models *models = (Models*)app->cmd_context; @@ -669,7 +669,7 @@ Buffer_Get_Setting(Application_Links *app, Buffer_ID buffer_id, Buffer_Setting_I return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_Set_Setting(Application_Links *app, Buffer_ID buffer_id, Buffer_Setting_ID setting, i32 value) { Models *models = (Models*)app->cmd_context; @@ -774,7 +774,7 @@ Buffer_Set_Setting(Application_Links *app, Buffer_ID buffer_id, Buffer_Setting_I return(result); } -API_EXPORT Managed_Scope +api(custom) function Managed_Scope Buffer_Get_Managed_Scope(Application_Links *app, Buffer_ID buffer_id) { Models *models = (Models*)app->cmd_context; @@ -786,7 +786,7 @@ Buffer_Get_Managed_Scope(Application_Links *app, Buffer_ID buffer_id) return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_Send_End_Signal(Application_Links *app, Buffer_ID buffer_id) { Models *models = (Models*)app->cmd_context; @@ -799,7 +799,7 @@ Buffer_Send_End_Signal(Application_Links *app, Buffer_ID buffer_id) return(result); } -API_EXPORT Buffer_ID +api(custom) function Buffer_ID Create_Buffer(Application_Links *app, String_Const_u8 file_name, Buffer_Create_Flag flags) { Models *models = (Models*)app->cmd_context; @@ -811,7 +811,7 @@ Create_Buffer(Application_Links *app, String_Const_u8 file_name, Buffer_Create_F return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_Save(Application_Links *app, Buffer_ID buffer_id, String_Const_u8 file_name, Buffer_Save_Flag flags) { Models *models = (Models*)app->cmd_context; @@ -838,7 +838,7 @@ Buffer_Save(Application_Links *app, Buffer_ID buffer_id, String_Const_u8 file_na return(result); } -API_EXPORT Buffer_Kill_Result +api(custom) function Buffer_Kill_Result Buffer_Kill(Application_Links *app, Buffer_ID buffer_id, Buffer_Kill_Flag flags) { Models *models = (Models*)app->cmd_context; @@ -895,7 +895,7 @@ Buffer_Kill(Application_Links *app, Buffer_ID buffer_id, Buffer_Kill_Flag flags) return(result); } -API_EXPORT Buffer_Reopen_Result +api(custom) function Buffer_Reopen_Result Buffer_Reopen(Application_Links *app, Buffer_ID buffer_id, Buffer_Reopen_Flag flags) { Models *models = (Models*)app->cmd_context; @@ -967,7 +967,7 @@ Buffer_Reopen(Application_Links *app, Buffer_ID buffer_id, Buffer_Reopen_Flag fl return(result); } -API_EXPORT File_Attributes +api(custom) function File_Attributes Buffer_Get_File_Attributes(Application_Links *app, Buffer_ID buffer_id) { Models *models = (Models*)app->cmd_context; @@ -979,7 +979,7 @@ Buffer_Get_File_Attributes(Application_Links *app, Buffer_ID buffer_id) return(result); } -API_EXPORT File_Attributes +api(custom) function File_Attributes Get_File_Attributes(Application_Links *app, String_Const_u8 file_name) { Models *models = (Models*)app->cmd_context; @@ -1025,7 +1025,7 @@ get_view_prev__inner(Layout *layout, View *view){ return(view); } -API_EXPORT View_ID +api(custom) function View_ID Get_View_Next(Application_Links *app, View_ID view_id, Access_Flag access) { Models *models = (Models*)app->cmd_context; @@ -1042,7 +1042,7 @@ Get_View_Next(Application_Links *app, View_ID view_id, Access_Flag access) return(result); } -API_EXPORT View_ID +api(custom) function View_ID Get_View_Prev(Application_Links *app, View_ID view_id, Access_Flag access) { Models *models = (Models*)app->cmd_context; @@ -1059,7 +1059,7 @@ Get_View_Prev(Application_Links *app, View_ID view_id, Access_Flag access) return(result); } -API_EXPORT View_ID +api(custom) function View_ID Get_Active_View(Application_Links *app, Access_Flag access) { Models *models = (Models*)app->cmd_context; @@ -1074,7 +1074,7 @@ Get_Active_View(Application_Links *app, Access_Flag access) return(result); } -API_EXPORT Panel_ID +api(custom) function Panel_ID Get_Active_Panel(Application_Links *app){ Models *models = (Models*)app->cmd_context; Panel *panel = layout_get_active_panel(&models->layout); @@ -1086,7 +1086,7 @@ Get_Active_Panel(Application_Links *app){ return(result); } -API_EXPORT b32 +api(custom) function b32 View_Exists(Application_Links *app, View_ID view_id){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -1097,7 +1097,7 @@ View_Exists(Application_Links *app, View_ID view_id){ return(result); } -API_EXPORT Buffer_ID +api(custom) function Buffer_ID View_Get_Buffer(Application_Links *app, View_ID view_id, Access_Flag access){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -1111,7 +1111,7 @@ View_Get_Buffer(Application_Links *app, View_ID view_id, Access_Flag access){ return(result); } -API_EXPORT i64 +api(custom) function i64 View_Get_Cursor_Pos(Application_Links *app, View_ID view_id){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -1123,7 +1123,7 @@ View_Get_Cursor_Pos(Application_Links *app, View_ID view_id){ return(result); } -API_EXPORT i64 +api(custom) function i64 View_Get_Mark_Pos(Application_Links *app, View_ID view_id){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -1134,7 +1134,7 @@ View_Get_Mark_Pos(Application_Links *app, View_ID view_id){ return(result); } -API_EXPORT f32 +api(custom) function f32 View_Get_Preferred_X(Application_Links *app, View_ID view_id){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -1145,7 +1145,7 @@ View_Get_Preferred_X(Application_Links *app, View_ID view_id){ return(result); } -API_EXPORT b32 +api(custom) function b32 View_Set_Preferred_X(Application_Links *app, View_ID view_id, f32 x){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -1157,7 +1157,7 @@ View_Set_Preferred_X(Application_Links *app, View_ID view_id, f32 x){ return(result); } -API_EXPORT Rect_f32 +api(custom) function Rect_f32 View_Get_Screen_Rect(Application_Links *app, View_ID view_id){ Models *models = (Models*)app->cmd_context; Rect_f32 result = {}; @@ -1168,7 +1168,7 @@ View_Get_Screen_Rect(Application_Links *app, View_ID view_id){ return(result); } -API_EXPORT Panel_ID +api(custom) function Panel_ID View_Get_Panel(Application_Links *app, View_ID view_id){ Models *models = (Models*)app->cmd_context; Layout *layout = &models->layout; @@ -1181,7 +1181,7 @@ View_Get_Panel(Application_Links *app, View_ID view_id){ return(result); } -API_EXPORT View_ID +api(custom) function View_ID Panel_Get_View(Application_Links *app, Panel_ID panel_id){ Models *models = (Models*)app->cmd_context; Panel *panel = imp_get_panel(models, panel_id); @@ -1196,7 +1196,7 @@ Panel_Get_View(Application_Links *app, Panel_ID panel_id){ return(result); } -API_EXPORT b32 +api(custom) function b32 Panel_Is_Split(Application_Links *app, Panel_ID panel_id){ Models *models = (Models*)app->cmd_context; b32 result = false; @@ -1209,7 +1209,7 @@ Panel_Is_Split(Application_Links *app, Panel_ID panel_id){ return(result); } -API_EXPORT b32 +api(custom) function b32 Panel_Is_Leaf(Application_Links *app, Panel_ID panel_id){ Models *models = (Models*)app->cmd_context; b32 result = false; @@ -1222,7 +1222,7 @@ Panel_Is_Leaf(Application_Links *app, Panel_ID panel_id){ return(result); } -API_EXPORT b32 +api(custom) function b32 Panel_Split(Application_Links *app, Panel_ID panel_id, Panel_Split_Orientation orientation){ Models *models = (Models*)app->cmd_context; Layout *layout = &models->layout; @@ -1240,7 +1240,7 @@ Panel_Split(Application_Links *app, Panel_ID panel_id, Panel_Split_Orientation o return(result); } -API_EXPORT b32 +api(custom) function b32 Panel_Set_Split(Application_Links *app, Panel_ID panel_id, Panel_Split_Kind kind, float t){ Models *models = (Models*)app->cmd_context; Layout *layout = &models->layout; @@ -1274,7 +1274,7 @@ Panel_Set_Split(Application_Links *app, Panel_ID panel_id, Panel_Split_Kind kind return(result); } -API_EXPORT b32 +api(custom) function b32 Panel_Swap_Children(Application_Links *app, Panel_ID panel_id, Panel_Split_Kind kind, float t){ Models *models = (Models*)app->cmd_context; Layout *layout = &models->layout; @@ -1289,7 +1289,7 @@ Panel_Swap_Children(Application_Links *app, Panel_ID panel_id, Panel_Split_Kind return(result); } -API_EXPORT Panel_ID +api(custom) function Panel_ID Panel_Get_Parent(Application_Links *app, Panel_ID panel_id){ Models *models = (Models*)app->cmd_context; Layout *layout = &models->layout; @@ -1301,7 +1301,7 @@ Panel_Get_Parent(Application_Links *app, Panel_ID panel_id){ return(result); } -API_EXPORT Panel_ID +api(custom) function Panel_ID Panel_Get_Child(Application_Links *app, Panel_ID panel_id, Panel_Child which_child){ Models *models = (Models*)app->cmd_context; Layout *layout = &models->layout; @@ -1328,7 +1328,7 @@ Panel_Get_Child(Application_Links *app, Panel_ID panel_id, Panel_Child which_chi return(result); } -API_EXPORT Panel_ID +api(custom) function Panel_ID Panel_Get_Max(Application_Links *app, Panel_ID panel_id){ Models *models = (Models*)app->cmd_context; Layout *layout = &models->layout; @@ -1343,7 +1343,7 @@ Panel_Get_Max(Application_Links *app, Panel_ID panel_id){ return(result); } -API_EXPORT Rect_i32 +api(custom) function Rect_i32 Panel_Get_Margin(Application_Links *app, Panel_ID panel_id){ Models *models = (Models*)app->cmd_context; Layout *layout = &models->layout; @@ -1361,7 +1361,7 @@ Panel_Get_Margin(Application_Links *app, Panel_ID panel_id){ return(result); } -API_EXPORT b32 +api(custom) function b32 View_Close(Application_Links *app, View_ID view_id) { Models *models = (Models*)app->cmd_context; @@ -1377,7 +1377,7 @@ View_Close(Application_Links *app, View_ID view_id) return(result); } -API_EXPORT Rect_f32 +api(custom) function Rect_f32 View_Get_Buffer_Region(Application_Links *app, View_ID view_id){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -1388,7 +1388,7 @@ View_Get_Buffer_Region(Application_Links *app, View_ID view_id){ return(result); } -API_EXPORT Buffer_Scroll +api(custom) function Buffer_Scroll View_Get_Buffer_Scroll(Application_Links *app, View_ID view_id){ Models *models = (Models*)app->cmd_context; Buffer_Scroll result = {}; @@ -1402,7 +1402,7 @@ View_Get_Buffer_Scroll(Application_Links *app, View_ID view_id){ return(result); } -API_EXPORT Basic_Scroll +api(custom) function Basic_Scroll View_Get_Basic_Scroll(Application_Links *app, View_ID view_id){ Models *models = (Models*)app->cmd_context; Basic_Scroll result = {}; @@ -1415,7 +1415,7 @@ View_Get_Basic_Scroll(Application_Links *app, View_ID view_id){ return(result); } -API_EXPORT b32 +api(custom) function b32 View_Set_Active(Application_Links *app, View_ID view_id) { Models *models = (Models*)app->cmd_context; @@ -1428,7 +1428,7 @@ View_Set_Active(Application_Links *app, View_ID view_id) return(result); } -API_EXPORT b32 +api(custom) function b32 View_Get_Setting(Application_Links *app, View_ID view_id, View_Setting_ID setting, i32 *value_out) { Models *models = (Models*)app->cmd_context; @@ -1467,7 +1467,7 @@ View_Get_Setting(Application_Links *app, View_ID view_id, View_Setting_ID settin return(result); } -API_EXPORT b32 +api(custom) function b32 View_Set_Setting(Application_Links *app, View_ID view_id, View_Setting_ID setting, i32 value) { Models *models = (Models*)app->cmd_context; @@ -1506,7 +1506,7 @@ View_Set_Setting(Application_Links *app, View_ID view_id, View_Setting_ID settin return(result); } -API_EXPORT Managed_Scope +api(custom) function Managed_Scope View_Get_Managed_Scope(Application_Links *app, View_ID view_id) { Models *models = (Models*)app->cmd_context; @@ -1519,7 +1519,7 @@ View_Get_Managed_Scope(Application_Links *app, View_ID view_id) return(result); } -API_EXPORT Buffer_Cursor +api(custom) function Buffer_Cursor Buffer_Compute_Cursor(Application_Links *app, Buffer_ID buffer, Buffer_Seek seek) { Models *models = (Models*)app->cmd_context; @@ -1531,7 +1531,7 @@ Buffer_Compute_Cursor(Application_Links *app, Buffer_ID buffer, Buffer_Seek seek return(result); } -API_EXPORT Buffer_Cursor +api(custom) function Buffer_Cursor View_Compute_Cursor(Application_Links *app, View_ID view_id, Buffer_Seek seek){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -1542,7 +1542,7 @@ View_Compute_Cursor(Application_Links *app, View_ID view_id, Buffer_Seek seek){ return(result); } -API_EXPORT b32 +api(custom) function b32 View_Set_Cursor(Application_Links *app, View_ID view_id, Buffer_Seek seek) { Models *models = (Models*)app->cmd_context; @@ -1560,7 +1560,7 @@ View_Set_Cursor(Application_Links *app, View_ID view_id, Buffer_Seek seek) return(result); } -API_EXPORT b32 +api(custom) function b32 View_Set_Buffer_Scroll(Application_Links *app, View_ID view_id, Buffer_Scroll scroll) { Models *models = (Models*)app->cmd_context; @@ -1583,7 +1583,7 @@ View_Set_Buffer_Scroll(Application_Links *app, View_ID view_id, Buffer_Scroll sc return(result); } -API_EXPORT b32 +api(custom) function b32 View_Set_Basic_Scroll(Application_Links *app, View_ID view_id, Basic_Scroll scroll) { Models *models = (Models*)app->cmd_context; @@ -1601,7 +1601,7 @@ View_Set_Basic_Scroll(Application_Links *app, View_ID view_id, Basic_Scroll scro return(result); } -API_EXPORT b32 +api(custom) function b32 View_Set_Mark(Application_Links *app, View_ID view_id, Buffer_Seek seek) { Models *models = (Models*)app->cmd_context; @@ -1625,7 +1625,7 @@ View_Set_Mark(Application_Links *app, View_ID view_id, Buffer_Seek seek) return(result); } -API_EXPORT b32 +api(custom) function b32 View_Set_Buffer(Application_Links *app, View_ID view_id, Buffer_ID buffer_id, Set_Buffer_Flag flags) { Models *models = (Models*)app->cmd_context; @@ -1646,7 +1646,7 @@ View_Set_Buffer(Application_Links *app, View_ID view_id, Buffer_ID buffer_id, Se return(result); } -API_EXPORT b32 +api(custom) function b32 View_Post_Fade(Application_Links *app, View_ID view_id, f32 seconds, Range_i64 range, int_color color) { Models *models = (Models*)app->cmd_context; @@ -1662,7 +1662,7 @@ View_Post_Fade(Application_Links *app, View_ID view_id, f32 seconds, Range_i64 r return(result); } -API_EXPORT b32 +api(custom) function b32 View_Begin_UI_Mode(Application_Links *app, View_ID view_id) { Models *models = (Models*)app->cmd_context; @@ -1677,7 +1677,7 @@ View_Begin_UI_Mode(Application_Links *app, View_ID view_id) return(result); } -API_EXPORT b32 +api(custom) function b32 View_End_UI_Mode(Application_Links *app, View_ID view_id) { Models *models = (Models*)app->cmd_context; @@ -1691,7 +1691,7 @@ View_End_UI_Mode(Application_Links *app, View_ID view_id) return(result); } -API_EXPORT b32 +api(custom) function b32 View_Is_In_UI_Mode(Application_Links *app, View_ID view_id){ Models *models = (Models*)app->cmd_context; View *view = imp_get_view(models, view_id); @@ -1702,7 +1702,7 @@ View_Is_In_UI_Mode(Application_Links *app, View_ID view_id){ return(result); } -API_EXPORT b32 +api(custom) function b32 View_Set_Quit_UI_Handler(Application_Links *app, View_ID view_id, UI_Quit_Function_Type *quit_function) { Models *models = (Models*)app->cmd_context; @@ -1715,7 +1715,7 @@ View_Set_Quit_UI_Handler(Application_Links *app, View_ID view_id, UI_Quit_Functi return(result); } -API_EXPORT b32 +api(custom) function b32 View_Get_Quit_UI_Handler(Application_Links *app, View_ID view_id, UI_Quit_Function_Type **quit_function_out) { Models *models = (Models*)app->cmd_context; @@ -1740,7 +1740,7 @@ get_dynamic_workspace(Models *models, Managed_Scope handle){ return(result); } -API_EXPORT Managed_Scope +api(custom) function Managed_Scope Create_User_Managed_Scope(Application_Links *app) { Models *models = (Models*)app->cmd_context; @@ -1750,7 +1750,7 @@ Create_User_Managed_Scope(Application_Links *app) return(scope); } -API_EXPORT b32 +api(custom) function b32 Destroy_User_Managed_Scope(Application_Links *app, Managed_Scope scope) { Models *models = (Models*)app->cmd_context; @@ -1764,7 +1764,7 @@ Destroy_User_Managed_Scope(Application_Links *app, Managed_Scope scope) return(result); } -API_EXPORT Managed_Scope +api(custom) function Managed_Scope Get_Global_Managed_Scope(Application_Links *app) { Models *models = (Models*)app->cmd_context; @@ -1797,7 +1797,7 @@ get_lifetime_object_from_workspace(Dynamic_Workspace *workspace){ return(result); } -API_EXPORT Managed_Scope +api(custom) function Managed_Scope Get_Managed_Scope_With_Multiple_Dependencies(Application_Links *app, Managed_Scope *scopes, i32 count) { Models *models = (Models*)app->cmd_context; @@ -1881,7 +1881,7 @@ Get_Managed_Scope_With_Multiple_Dependencies(Application_Links *app, Managed_Sco return(result); } -API_EXPORT b32 +api(custom) function b32 Managed_Scope_Clear_Contents(Application_Links *app, Managed_Scope scope) { Models *models = (Models*)app->cmd_context; @@ -1894,7 +1894,7 @@ Managed_Scope_Clear_Contents(Application_Links *app, Managed_Scope scope) return(result); } -API_EXPORT b32 +api(custom) function b32 Managed_Scope_Clear_Self_All_Dependent_Scopes(Application_Links *app, Managed_Scope scope) { Models *models = (Models*)app->cmd_context; @@ -1909,7 +1909,7 @@ Managed_Scope_Clear_Self_All_Dependent_Scopes(Application_Links *app, Managed_Sc return(result); } -API_EXPORT Base_Allocator* +api(custom) function Base_Allocator* Managed_Scope_Allocator(Application_Links *app, Managed_Scope scope) { Models *models = (Models*)app->cmd_context; @@ -1921,7 +1921,7 @@ Managed_Scope_Allocator(Application_Links *app, Managed_Scope scope) return(result); } -API_EXPORT Managed_ID +api(custom) function Managed_ID Managed_Id_Declare(Application_Links *app, String_Const_u8 name) { Models *models = (Models*)app->cmd_context; @@ -1929,7 +1929,7 @@ Managed_Id_Declare(Application_Links *app, String_Const_u8 name) return(managed_ids_declare(set, name)); } -API_EXPORT void* +api(custom) function void* Managed_Scope_Get_Attachment(Application_Links *app, Managed_Scope scope, Managed_ID id, umem size){ Models *models = (Models*)app->cmd_context; Dynamic_Workspace *workspace = get_dynamic_workspace(models, scope); @@ -1949,7 +1949,7 @@ Managed_Scope_Get_Attachment(Application_Links *app, Managed_Scope scope, Manage return(result); } -API_EXPORT void* +api(custom) function void* Managed_Scope_Attachment_Erase(Application_Links *app, Managed_Scope scope, Managed_ID id){ Models *models = (Models*)app->cmd_context; Dynamic_Workspace *workspace = get_dynamic_workspace(models, scope); @@ -1961,7 +1961,7 @@ Managed_Scope_Attachment_Erase(Application_Links *app, Managed_Scope scope, Mana return(result); } -API_EXPORT Managed_Object +api(custom) function Managed_Object Alloc_Managed_Memory_In_Scope(Application_Links *app, Managed_Scope scope, i32 item_size, i32 count) { Models *models = (Models*)app->cmd_context; @@ -1973,7 +1973,7 @@ Alloc_Managed_Memory_In_Scope(Application_Links *app, Managed_Scope scope, i32 i return(result); } -API_EXPORT Managed_Object +api(custom) function Managed_Object Alloc_Buffer_Markers_On_Buffer(Application_Links *app, Buffer_ID buffer_id, i32 count, Managed_Scope *optional_extra_scope) { Models *models = (Models*)app->cmd_context; @@ -2009,7 +2009,7 @@ get_dynamic_object_ptrs(Models *models, Managed_Object object){ return(result); } -API_EXPORT u32 +api(custom) function u32 Managed_Object_Get_Item_Size(Application_Links *app, Managed_Object object) { Models *models = (Models*)app->cmd_context; @@ -2021,7 +2021,7 @@ Managed_Object_Get_Item_Size(Application_Links *app, Managed_Object object) return(result); } -API_EXPORT u32 +api(custom) function u32 Managed_Object_Get_Item_Count(Application_Links *app, Managed_Object object) { Models *models = (Models*)app->cmd_context; @@ -2033,7 +2033,7 @@ Managed_Object_Get_Item_Count(Application_Links *app, Managed_Object object) return(result); } -API_EXPORT void* +api(custom) function void* Managed_Object_Get_Pointer(Application_Links *app, Managed_Object object) { Models *models = (Models*)app->cmd_context; @@ -2041,7 +2041,7 @@ Managed_Object_Get_Pointer(Application_Links *app, Managed_Object object) return(get_dynamic_object_memory_ptr(object_ptrs.header)); } -API_EXPORT Managed_Object_Type +api(custom) function Managed_Object_Type Managed_Object_Get_Type(Application_Links *app, Managed_Object object) { Models *models = (Models*)app->cmd_context; @@ -2056,7 +2056,7 @@ Managed_Object_Get_Type(Application_Links *app, Managed_Object object) return(ManagedObjectType_Error); } -API_EXPORT Managed_Scope +api(custom) function Managed_Scope Managed_Object_Get_Containing_Scope(Application_Links *app, Managed_Object object) { Models *models = (Models*)app->cmd_context; @@ -2068,7 +2068,7 @@ Managed_Object_Get_Containing_Scope(Application_Links *app, Managed_Object objec return(0); } -API_EXPORT b32 +api(custom) function b32 Managed_Object_Free(Application_Links *app, Managed_Object object) { Models *models = (Models*)app->cmd_context; @@ -2082,7 +2082,7 @@ Managed_Object_Free(Application_Links *app, Managed_Object object) } // TODO(allen): ELIMINATE STORE & LOAD -API_EXPORT b32 +api(custom) function b32 Managed_Object_Store_Data(Application_Links *app, Managed_Object object, u32 first_index, u32 count, void *mem) { Models *models = (Models*)app->cmd_context; @@ -2101,7 +2101,7 @@ Managed_Object_Store_Data(Application_Links *app, Managed_Object object, u32 fir return(result); } -API_EXPORT b32 +api(custom) function b32 Managed_Object_Load_Data(Application_Links *app, Managed_Object object, u32 first_index, u32 count, void *mem_out) { Models *models = (Models*)app->cmd_context; @@ -2120,7 +2120,7 @@ Managed_Object_Load_Data(Application_Links *app, Managed_Object object, u32 firs return(result); } -API_EXPORT User_Input +api(custom) function User_Input Get_User_Input(Application_Links *app, Input_Type_Flag get_type, Input_Type_Flag abort_type) { Models *models = (Models*)app->cmd_context; @@ -2137,7 +2137,7 @@ Get_User_Input(Application_Links *app, Input_Type_Flag get_type, Input_Type_Flag return(result); } -API_EXPORT User_Input +api(custom) function User_Input Get_Command_Input(Application_Links *app) { Models *models = (Models*)app->cmd_context; @@ -2146,21 +2146,21 @@ Get_Command_Input(Application_Links *app) return(result); } -API_EXPORT void +api(custom) function void Set_Command_Input(Application_Links *app, Key_Event_Data key_data) { Models *models = (Models*)app->cmd_context; models->key = key_data; } -API_EXPORT Mouse_State +api(custom) function Mouse_State Get_Mouse_State(Application_Links *app) { Models *models = (Models*)app->cmd_context; return(models->input->mouse); } -API_EXPORT b32 +api(custom) function b32 Get_Active_Query_Bars(Application_Links *app, View_ID view_id, i32 max_result_count, Query_Bar_Ptr_Array *array_out) { Models *models = (Models*)app->cmd_context; @@ -2182,7 +2182,7 @@ Get_Active_Query_Bars(Application_Links *app, View_ID view_id, i32 max_result_co return(result); } -API_EXPORT b32 +api(custom) function b32 Start_Query_Bar(Application_Links *app, Query_Bar *bar, u32 flags) { Models *models = (Models*)app->cmd_context; @@ -2196,7 +2196,7 @@ Start_Query_Bar(Application_Links *app, Query_Bar *bar, u32 flags) return(result); } -API_EXPORT void +api(custom) function void End_Query_Bar(Application_Links *app, Query_Bar *bar, u32 flags) { Models *models = (Models*)app->cmd_context; @@ -2205,7 +2205,7 @@ End_Query_Bar(Application_Links *app, Query_Bar *bar, u32 flags) free_query_slot(&active_view->query_set, bar); } -API_EXPORT b32 +api(custom) function b32 Print_Message(Application_Links *app, String_Const_u8 message) { Models *models = (Models*)app->cmd_context; @@ -2219,25 +2219,25 @@ Print_Message(Application_Links *app, String_Const_u8 message) return(result); } -API_EXPORT b32 +api(custom) function b32 Log_String(Application_Links *app, String_Const_u8 str){ return(log_string(str)); } -API_EXPORT i32 +api(custom) function i32 Thread_Get_ID(Application_Links *app){ Models *models = (Models*)app->cmd_context; return(models->system->thread_get_id()); } -API_EXPORT Face_ID +api(custom) function Face_ID Get_Largest_Face_ID(Application_Links *app) { Models *models = (Models*)app->cmd_context; return(font_set_get_largest_id(&models->font_set)); } -API_EXPORT b32 +api(custom) function b32 Set_Global_Face(Application_Links *app, Face_ID id, b32 apply_to_all_buffers) { Models *models = (Models*)app->cmd_context; @@ -2258,7 +2258,7 @@ Set_Global_Face(Application_Links *app, Face_ID id, b32 apply_to_all_buffers) return(did_change); } -API_EXPORT History_Record_Index +api(custom) function History_Record_Index Buffer_History_Get_Max_Record_Index(Application_Links *app, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -2291,7 +2291,7 @@ buffer_history__fill_record_info(Record *record, Record_Info *out){ } } -API_EXPORT Record_Info +api(custom) function Record_Info Buffer_History_Get_Record_Info(Application_Links *app, Buffer_ID buffer_id, History_Record_Index index){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -2323,7 +2323,7 @@ Buffer_History_Get_Record_Info(Application_Links *app, Buffer_ID buffer_id, Hist return(result); } -API_EXPORT Record_Info +api(custom) function Record_Info Buffer_History_Get_Group_Sub_Record(Application_Links *app, Buffer_ID buffer_id, History_Record_Index index, i32 sub_index){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -2366,7 +2366,7 @@ Buffer_History_Get_Group_Sub_Record(Application_Links *app, Buffer_ID buffer_id, return(result); } -API_EXPORT History_Record_Index +api(custom) function History_Record_Index Buffer_History_Get_Current_State_Index(Application_Links *app, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -2377,7 +2377,7 @@ Buffer_History_Get_Current_State_Index(Application_Links *app, Buffer_ID buffer_ return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_History_Set_Current_State_Index(Application_Links *app, Buffer_ID buffer_id, History_Record_Index index){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -2393,7 +2393,7 @@ Buffer_History_Set_Current_State_Index(Application_Links *app, Buffer_ID buffer_ return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_History_Merge_Record_Range(Application_Links *app, Buffer_ID buffer_id, History_Record_Index first_index, History_Record_Index last_index, Record_Merge_Flag flags){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -2404,7 +2404,7 @@ Buffer_History_Merge_Record_Range(Application_Links *app, Buffer_ID buffer_id, H return(result); } -API_EXPORT b32 +api(custom) function b32 Buffer_History_Clear_After_Current_State(Application_Links *app, Buffer_ID buffer_id){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -2416,19 +2416,19 @@ Buffer_History_Clear_After_Current_State(Application_Links *app, Buffer_ID buffe return(result); } -API_EXPORT void +api(custom) function void Global_History_Edit_Group_Begin(Application_Links *app){ Models *models = (Models*)app->cmd_context; global_history_adjust_edit_grouping_counter(&models->global_history, 1); } -API_EXPORT void +api(custom) function void Global_History_Edit_Group_End(Application_Links *app){ Models *models = (Models*)app->cmd_context; global_history_adjust_edit_grouping_counter(&models->global_history, -1); } -API_EXPORT b32 +api(custom) function b32 Buffer_Set_Face(Application_Links *app, Buffer_ID buffer_id, Face_ID id) { Models *models = (Models*)app->cmd_context; @@ -2445,7 +2445,7 @@ Buffer_Set_Face(Application_Links *app, Buffer_ID buffer_id, Face_ID id) return(did_change); } -API_EXPORT Face_Description +api(custom) function Face_Description Get_Face_Description(Application_Links *app, Face_ID face_id) { Models *models = (Models*)app->cmd_context; @@ -2463,7 +2463,7 @@ Get_Face_Description(Application_Links *app, Face_ID face_id) return(description); } -API_EXPORT Face_Metrics +api(custom) function Face_Metrics Get_Face_Metrics(Application_Links *app, Face_ID face_id){ Models *models = (Models*)app->cmd_context; System_Functions *system = models->system; @@ -2478,7 +2478,7 @@ Get_Face_Metrics(Application_Links *app, Face_ID face_id){ return(result); } -API_EXPORT Face_ID +api(custom) function Face_ID Get_Face_ID(Application_Links *app, Buffer_ID buffer_id) { Models *models = (Models*)app->cmd_context; @@ -2495,7 +2495,7 @@ Get_Face_ID(Application_Links *app, Buffer_ID buffer_id) return(result); } -API_EXPORT Face_ID +api(custom) function Face_ID Try_Create_New_Face(Application_Links *app, Face_Description *description) { Models *models = (Models*)app->cmd_context; @@ -2516,7 +2516,7 @@ Try_Create_New_Face(Application_Links *app, Face_Description *description) return(result); } -API_EXPORT b32 +api(custom) function b32 Try_Modify_Face(Application_Links *app, Face_ID id, Face_Description *description) { Models *models = (Models*)app->cmd_context; @@ -2537,7 +2537,7 @@ Try_Modify_Face(Application_Links *app, Face_ID id, Face_Description *descriptio return(result); } -API_EXPORT b32 +api(custom) function b32 Try_Release_Face(Application_Links *app, Face_ID id, Face_ID replacement_id) { Models *models = (Models*)app->cmd_context; @@ -2547,7 +2547,7 @@ Try_Release_Face(Application_Links *app, Face_ID id, Face_ID replacement_id) return(release_font_and_update(models->system, models, face, replacement)); } -API_EXPORT void +api(custom) function void Set_Theme_Colors(Application_Links *app, Theme_Color *colors, i32 count) { Models *models = (Models*)app->cmd_context; @@ -2560,7 +2560,7 @@ Set_Theme_Colors(Application_Links *app, Theme_Color *colors, i32 count) } } -API_EXPORT void +api(custom) function void Get_Theme_Colors(Application_Links *app, Theme_Color *colors, i32 count) { Models *models = (Models*)app->cmd_context; @@ -2571,7 +2571,7 @@ Get_Theme_Colors(Application_Links *app, Theme_Color *colors, i32 count) } } -API_EXPORT argb_color +api(custom) function argb_color Finalize_Color(Application_Links *app, int_color color){ Models *models = (Models*)app->cmd_context; Color_Table color_table = models->color_table; @@ -2582,7 +2582,7 @@ Finalize_Color(Application_Links *app, int_color color){ return(color_rgb); } -API_EXPORT String_Const_u8 +api(custom) function String_Const_u8 Push_Hot_Directory(Application_Links *app, Arena *arena) { Models *models = (Models*)app->cmd_context; @@ -2591,7 +2591,7 @@ Push_Hot_Directory(Application_Links *app, Arena *arena) return(push_string_copy(arena, hot->string)); } -API_EXPORT b32 +api(custom) function b32 Set_Hot_Directory(Application_Links *app, String_Const_u8 string) { Models *models = (Models*)app->cmd_context; @@ -2600,7 +2600,7 @@ Set_Hot_Directory(Application_Links *app, String_Const_u8 string) return(true); } -API_EXPORT File_List +api(custom) function File_List Get_File_List(Application_Links *app, Arena *arena, String_Const_u8 directory){ Models *models = (Models*)app->cmd_context; System_Functions *system = models->system; @@ -2612,7 +2612,7 @@ Get_File_List(Application_Links *app, Arena *arena, String_Const_u8 directory){ return(list); } -API_EXPORT void +api(custom) function void Set_GUI_Up_Down_Keys(Application_Links *app, Key_Code up_key, Key_Modifier up_key_modifier, Key_Code down_key, Key_Modifier down_key_modifier) { Models *models = (Models*)app->cmd_context; @@ -2622,7 +2622,7 @@ Set_GUI_Up_Down_Keys(Application_Links *app, Key_Code up_key, Key_Modifier up_ke models->user_down_key_modifier = down_key_modifier; } -API_EXPORT void* +api(custom) function void* Memory_Allocate(Application_Links *app, i32 size) { Models *models = (Models*)app->cmd_context; @@ -2630,21 +2630,21 @@ Memory_Allocate(Application_Links *app, i32 size) return(result); } -API_EXPORT b32 +api(custom) function b32 Memory_Set_Protection(Application_Links *app, void *ptr, i32 size, Memory_Protect_Flags flags) { Models *models = (Models*)app->cmd_context; return(models->system->memory_set_protection(ptr, size, flags)); } -API_EXPORT void +api(custom) function void Memory_Free(Application_Links *app, void *ptr, i32 size) { Models *models = (Models*)app->cmd_context; models->system->memory_free(ptr, size); } -API_EXPORT String_Const_u8 +api(custom) function String_Const_u8 Push_4ed_Path(Application_Links *app, Arena *arena) { Models *models = (Models*)app->cmd_context; @@ -2653,21 +2653,21 @@ Push_4ed_Path(Application_Links *app, Arena *arena) } // TODO(allen): do(add a "shown but auto-hides on timer" setting for cursor show type) -API_EXPORT void +api(custom) function void Show_Mouse_Cursor(Application_Links *app, Mouse_Cursor_Show_Type show) { Models *models = (Models*)app->cmd_context; models->system->show_mouse_cursor(show); } -API_EXPORT b32 +api(custom) function b32 Set_Edit_Finished_Hook_Repeat_Speed(Application_Links *app, u32 milliseconds){ Models *models = (Models*)app->cmd_context; models->edit_finished_hook_repeat_speed = milliseconds; return(true); } -API_EXPORT b32 +api(custom) function b32 Set_Fullscreen(Application_Links *app, b32 full_screen) { Models *models = (Models*)app->cmd_context; @@ -2678,7 +2678,7 @@ Set_Fullscreen(Application_Links *app, b32 full_screen) return(success); } -API_EXPORT b32 +api(custom) function b32 Is_Fullscreen(Application_Links *app) { Models *models = (Models*)app->cmd_context; @@ -2686,14 +2686,14 @@ Is_Fullscreen(Application_Links *app) return(result); } -API_EXPORT void +api(custom) function void Send_Exit_Signal(Application_Links *app) { Models *models = (Models*)app->cmd_context; models->keep_playing = false; } -API_EXPORT b32 +api(custom) function b32 Set_Window_Title(Application_Links *app, String_Const_u8 title) { Models *models = (Models*)app->cmd_context; @@ -2705,7 +2705,7 @@ Set_Window_Title(Application_Links *app, String_Const_u8 title) return(true); } -API_EXPORT Microsecond_Time_Stamp +api(custom) function Microsecond_Time_Stamp Get_Microseconds_Timestamp(Application_Links *app) { // TODO(allen): do(decrease indirection in API calls) @@ -2737,7 +2737,7 @@ draw_helper__models_space_to_screen_space(Models *models, f32_Rect rect){ return(rect); } -API_EXPORT Vec2 +api(custom) function Vec2 Draw_String(Application_Links *app, Face_ID font_id, String_Const_u8 str, Vec2 point, int_color color, u32 flags, Vec2 delta) { Vec2 result = point; @@ -2757,7 +2757,7 @@ Draw_String(Application_Links *app, Face_ID font_id, String_Const_u8 str, Vec2 p return(result); } -API_EXPORT f32 +api(custom) function f32 Get_String_Advance(Application_Links *app, Face_ID font_id, String_Const_u8 str) { Models *models = (Models*)app->cmd_context; @@ -2765,7 +2765,7 @@ Get_String_Advance(Application_Links *app, Face_ID font_id, String_Const_u8 str) return(font_string_width(models->target, face, str)); } -API_EXPORT void +api(custom) function void Draw_Rectangle(Application_Links *app, Rect_f32 rect, int_color color){ Models *models = (Models*)app->cmd_context; if (models->in_render_mode){ @@ -2776,7 +2776,7 @@ Draw_Rectangle(Application_Links *app, Rect_f32 rect, int_color color){ } } -API_EXPORT void +api(custom) function void Draw_Rectangle_Outline(Application_Links *app, Rect_f32 rect, int_color color) { Models *models = (Models*)app->cmd_context; @@ -2788,20 +2788,20 @@ Draw_Rectangle_Outline(Application_Links *app, Rect_f32 rect, int_color color) } } -API_EXPORT void +api(custom) function void Draw_Clip_Push(Application_Links *app, Rect_f32 clip_box){ Models *models = (Models*)app->cmd_context; //clip_box = draw_helper__models_space_to_screen_space(models, clip_box); draw_push_clip(models->target, Ri32(clip_box)); } -API_EXPORT f32_Rect +api(custom) function f32_Rect Draw_Clip_Pop(Application_Links *app){ Models *models = (Models*)app->cmd_context; return(Rf32(draw_pop_clip(models->target))); } -API_EXPORT void +api(custom) function void Draw_Coordinate_Center_Push(Application_Links *app, Vec2 point){ Models *models = (Models*)app->cmd_context; if (models->coordinate_center_stack_top < ArrayCount(models->coordinate_center_stack)){ @@ -2811,7 +2811,7 @@ Draw_Coordinate_Center_Push(Application_Links *app, Vec2 point){ } } -API_EXPORT Vec2 +api(custom) function Vec2 Draw_Coordinate_Center_Pop(Application_Links *app){ Models *models = (Models*)app->cmd_context; Vec2 result = {}; @@ -2822,7 +2822,7 @@ Draw_Coordinate_Center_Pop(Application_Links *app){ return(result); } -API_EXPORT Text_Layout_ID +api(custom) function Text_Layout_ID Text_Layout_Create(Application_Links *app, Buffer_ID buffer_id, Rect_f32 rect, Buffer_Point buffer_point){ Models *models = (Models*)app->cmd_context; Editing_File *file = imp_get_file(models, buffer_id); @@ -2864,7 +2864,7 @@ Text_Layout_Create(Application_Links *app, Buffer_ID buffer_id, Rect_f32 rect, B return(result); } -API_EXPORT b32 +api(custom) function b32 Text_Layout_Get_Buffer(Application_Links *app, Text_Layout_ID text_layout_id, Buffer_ID *buffer_id_out){ Models *models = (Models*)app->cmd_context; b32 result = false; @@ -2876,7 +2876,7 @@ Text_Layout_Get_Buffer(Application_Links *app, Text_Layout_ID text_layout_id, Bu return(result); } -API_EXPORT Interval_i64 +api(custom) function Interval_i64 Text_Layout_Get_Visible_Range(Application_Links *app, Text_Layout_ID text_layout_id){ Models *models = (Models*)app->cmd_context; Range_i64 result = {}; @@ -2887,7 +2887,7 @@ Text_Layout_Get_Visible_Range(Application_Links *app, Text_Layout_ID text_layout return(result); } -API_EXPORT Rect_f32 +api(custom) function Rect_f32 Text_Layout_Line_On_Screen(Application_Links *app, Text_Layout_ID layout_id, i64 line_number){ Models *models = (Models*)app->cmd_context; Rect_f32 result = {}; @@ -2925,7 +2925,7 @@ Text_Layout_Line_On_Screen(Application_Links *app, Text_Layout_ID layout_id, i64 return(result); } -API_EXPORT Rect_f32 +api(custom) function Rect_f32 Text_Layout_Character_On_Screen(Application_Links *app, Text_Layout_ID layout_id, i64 pos){ Models *models = (Models*)app->cmd_context; Rect_f32 result = {}; @@ -2984,7 +2984,7 @@ Text_Layout_Character_On_Screen(Application_Links *app, Text_Layout_ID layout_id return(result); } -API_EXPORT void +api(custom) function void Paint_Text_Color(Application_Links *app, Text_Layout_ID layout_id, Interval_i64 range, int_color color){ Models *models = (Models*)app->cmd_context; Rect_f32 result = {}; @@ -3001,13 +3001,13 @@ Paint_Text_Color(Application_Links *app, Text_Layout_ID layout_id, Interval_i64 } } -API_EXPORT b32 +api(custom) function b32 Text_Layout_Free(Application_Links *app, Text_Layout_ID text_layout_id){ Models *models = (Models*)app->cmd_context; return(text_layout_erase(models, &models->text_layouts, text_layout_id)); } -API_EXPORT void +api(custom) function void Draw_Text_Layout(Application_Links *app, Text_Layout_ID layout_id){ Models *models = (Models*)app->cmd_context; Text_Layout *layout = text_layout_get(&models->text_layouts, layout_id); @@ -3016,7 +3016,7 @@ Draw_Text_Layout(Application_Links *app, Text_Layout_ID layout_id){ } } -API_EXPORT void +api(custom) function void Open_Color_Picker(Application_Links *app, Color_Picker *picker) { Models *models = (Models*)app->cmd_context; @@ -3027,7 +3027,7 @@ Open_Color_Picker(Application_Links *app, Color_Picker *picker) system->open_color_picker(picker); } -API_EXPORT void +api(custom) function void Animate_In_N_Milliseconds(Application_Links *app, u32 n) { Models *models = (Models*)app->cmd_context; @@ -3039,7 +3039,7 @@ Animate_In_N_Milliseconds(Application_Links *app, u32 n) } } -API_EXPORT String_Match_List +api(custom) function String_Match_List Buffer_Find_All_Matches(Application_Links *app, Arena *arena, Buffer_ID buffer, i32 string_id, Range_i64 range, String_Const_u8 needle, Character_Predicate *predicate, Scan_Direction direction) { Models *models = (Models*)app->cmd_context; diff --git a/custom/4coder_base_types.h b/custom/4coder_base_types.h index f84c7c8e..8aadc6d2 100644 --- a/custom/4coder_base_types.h +++ b/custom/4coder_base_types.h @@ -172,6 +172,9 @@ typedef void Void_Func(void); #define stringify_(a) #a #define stringify(a) stringify_(a) +#define function static +#define api(x) + #define internal static #define local_persist static #define global static @@ -297,8 +300,6 @@ global_const f32 epsilon_f32 = 5.96046448e-8f; #define require(c) Stmnt( if (!(c)){ return(0); } ) -#define API_EXPORT - //////////////////////////////// global_const u32 bit_1 = 0x00000001; diff --git a/custom/4coder_file.h b/custom/4coder_file.h index 6df08572..d2476513 100644 --- a/custom/4coder_file.h +++ b/custom/4coder_file.h @@ -16,25 +16,16 @@ #if OS_WINDOWS //// WINDOWS BEGIN //// +#undef function #define UNICODE #include typedef TCHAR Filename_Character; #define SLASH '\\' +#define function static //// WINDOWS END //// -#elif OS_LINUX || OS_MAC - -//// UNIX BEGIN //// -#include -#include -#include -#include -typedef char Filename_Character; -#define SLASH '/' -//// UNIX END //// - #else -# error metdata generator not supported on this platform +# error 4coder file not defined #endif struct Cross_Platform_File_Info{ diff --git a/custom/bin/build_one_time.bat b/custom/bin/build_one_time.bat index 3d8345e0..236c5854 100644 --- a/custom/bin/build_one_time.bat +++ b/custom/bin/build_one_time.bat @@ -1,32 +1,41 @@ @echo off -REM usage: build_generator [release] -REM src-file: a relative path to the target of a unity-build for a generator -REM binary-output-path: a relative path where the generator.exe will be written, assumed to be "." if unset +REM usage: