// Command exectuion void Push_Parameter(Application_Links *app, Dynamic param, Dynamic value) char* Push_Memory(Application_Links *app, int len) void Exec_Command_Keep_Stack(Application_Links *app, int command_id) void Clear_Parameters(Application_Links *app) // File system navigation int Directory_Get_Hot(Application_Links *app, char *out, int capacity) int Get_4ed_Path(Application_Links *app, char *out, int capacity) int File_Exists(Application_Links *app, char *filename, int len) int Directory_CD(Application_Links *app, char *dir, int *len, int capacity, char *rel_path, int rel_len) File_List Get_File_List(Application_Links *app, char *dir, int len) void Free_File_List(Application_Links *app, File_List list) // Direct buffer manipulation Buffer_Summary Get_Buffer_First(Application_Links *app) void Get_Buffer_Next(Application_Links *app, Buffer_Summary *buffer) Buffer_Summary Get_Buffer(Application_Links *app, int index) Buffer_Summary Get_Active_Buffer(Application_Links *app) Buffer_Summary Get_Parameter_Buffer(Application_Links *app, int param_index) Buffer_Summary Get_Buffer_By_Name(Application_Links *app, char *filename, int len) // TODO(allen): Need more flexible seek system somehow. Regex? Just expose the text stream to the user? int Buffer_Seek_Delimiter(Application_Links *app, Buffer_Summary *buffer, int start, char delim, int seek_forward, int *out) int Buffer_Seek_String(Application_Links *app, Buffer_Summary *buffer, int start, char *str, int len, int seek_forward, int *out) int Buffer_Seek_String_Insensitive(Application_Links *app, Buffer_Summary *buffer, int start, char *str, int len, int seek_forward, int *out) int Refresh_Buffer(Application_Links *app, Buffer_Summary *buffer) int Buffer_Read_Range(Application_Links *app, Buffer_Summary *buffer, int start, int end, char *out) int Buffer_Replace_Range(Application_Links *app, Buffer_Summary *buffer, int start, int end, char *str, int len) int Buffer_Set_Pos(Application_Links *app, Buffer_Summary *buffer, int pos) // File view manipulation View_Summary Get_View_First(Application_Links *app) void Get_View_Next(Application_Links *app, View_Summary *view) View_Summary Get_View(Application_Links *app, int index) View_Summary Get_Active_View(Application_Links *app) int Refresh_View(Application_Links *app, View_Summary *view) Full_Cursor View_Compute_Cursor(Application_Links *app, View_Summary *view, Buffer_Seek seek) int View_Set_Cursor(Application_Links *app, View_Summary *view, Buffer_Seek seek, int set_preferred_x) int View_Set_Mark(Application_Links *app, View_Summary *view, Buffer_Seek seek) int View_Set_Highlight(Application_Links *app, View_Summary *view, int start, int end, int turn_on) int View_Set_Buffer(Application_Links *app, View_Summary *view, int buffer_id) // Directly get user input User_Input Get_User_Input(Application_Links *app, unsigned int get_type, unsigned int abort_type) User_Input Get_Command_Input(Application_Links *app) Event_Message Get_Event_Message(Application_Links *app) // Queries and information display int Start_Query_Bar(Application_Links *app, Query_Bar *bar, unsigned int flags) void End_Query_Bar(Application_Links *app, Query_Bar *bar, unsigned int flags) void Print_Message(Application_Links *app, char *string, int len) GUI_Functions* Get_GUI_Functions(Application_Links *app) GUI* Get_GUI(Application_Links *app, int view_id) // Color settings void Change_Theme(Application_Links *app, char *name, int len) void Change_Font(Application_Links *app, char *name, int len) void Set_Theme_Colors(Application_Links *app, Theme_Color *colors, int count)