function void custom_api_fill_vtable(API_VTable_custom *vtable){ vtable->global_set_setting = global_set_setting; vtable->global_set_mapping = global_set_mapping; vtable->global_get_screen_rectangle = global_get_screen_rectangle; vtable->get_thread_context = get_thread_context; vtable->create_child_process = create_child_process; vtable->child_process_set_target_buffer = child_process_set_target_buffer; vtable->buffer_get_attached_child_process = buffer_get_attached_child_process; vtable->child_process_get_attached_buffer = child_process_get_attached_buffer; vtable->child_process_get_state = child_process_get_state; vtable->clipboard_post = clipboard_post; vtable->clipboard_count = clipboard_count; vtable->push_clipboard_index = push_clipboard_index; vtable->get_buffer_count = get_buffer_count; vtable->get_buffer_next = get_buffer_next; vtable->get_buffer_by_name = get_buffer_by_name; vtable->get_buffer_by_file_name = get_buffer_by_file_name; vtable->buffer_read_range = buffer_read_range; vtable->buffer_replace_range = buffer_replace_range; vtable->buffer_batch_edit = buffer_batch_edit; vtable->buffer_seek_string = buffer_seek_string; vtable->buffer_seek_character_class = buffer_seek_character_class; vtable->buffer_line_y_difference = buffer_line_y_difference; vtable->buffer_line_shift_y = buffer_line_shift_y; vtable->buffer_pos_at_relative_xy = buffer_pos_at_relative_xy; vtable->buffer_relative_xy_of_pos = buffer_relative_xy_of_pos; vtable->buffer_relative_character_from_pos = buffer_relative_character_from_pos; vtable->buffer_pos_from_relative_character = buffer_pos_from_relative_character; vtable->view_line_y_difference = view_line_y_difference; vtable->view_line_shift_y = view_line_shift_y; vtable->view_pos_at_relative_xy = view_pos_at_relative_xy; vtable->view_relative_xy_of_pos = view_relative_xy_of_pos; vtable->view_relative_character_from_pos = view_relative_character_from_pos; vtable->view_pos_from_relative_character = view_pos_from_relative_character; vtable->buffer_exists = buffer_exists; vtable->buffer_ready = buffer_ready; vtable->buffer_get_access_flags = buffer_get_access_flags; vtable->buffer_get_size = buffer_get_size; vtable->buffer_get_line_count = buffer_get_line_count; vtable->push_buffer_base_name = push_buffer_base_name; vtable->push_buffer_unique_name = push_buffer_unique_name; vtable->push_buffer_file_name = push_buffer_file_name; vtable->buffer_get_dirty_state = buffer_get_dirty_state; vtable->buffer_set_dirty_state = buffer_set_dirty_state; vtable->buffer_get_setting = buffer_get_setting; vtable->buffer_set_setting = buffer_set_setting; vtable->buffer_get_managed_scope = buffer_get_managed_scope; vtable->buffer_send_end_signal = buffer_send_end_signal; vtable->create_buffer = create_buffer; vtable->buffer_save = buffer_save; vtable->buffer_kill = buffer_kill; vtable->buffer_reopen = buffer_reopen; vtable->buffer_get_file_attributes = buffer_get_file_attributes; vtable->get_file_attributes = get_file_attributes; vtable->get_view_next = get_view_next; vtable->get_view_prev = get_view_prev; vtable->get_active_view = get_active_view; vtable->get_active_panel = get_active_panel; vtable->view_exists = view_exists; vtable->view_get_buffer = view_get_buffer; vtable->view_get_cursor_pos = view_get_cursor_pos; vtable->view_get_mark_pos = view_get_mark_pos; vtable->view_get_preferred_x = view_get_preferred_x; vtable->view_set_preferred_x = view_set_preferred_x; vtable->view_get_screen_rect = view_get_screen_rect; vtable->view_get_panel = view_get_panel; vtable->panel_get_view = panel_get_view; vtable->panel_is_split = panel_is_split; vtable->panel_is_leaf = panel_is_leaf; vtable->panel_split = panel_split; vtable->panel_set_split = panel_set_split; vtable->panel_swap_children = panel_swap_children; vtable->panel_get_parent = panel_get_parent; vtable->panel_get_child = panel_get_child; vtable->panel_get_max = panel_get_max; vtable->panel_get_margin = panel_get_margin; vtable->view_close = view_close; vtable->view_get_buffer_region = view_get_buffer_region; vtable->view_get_buffer_scroll = view_get_buffer_scroll; vtable->view_get_basic_scroll = view_get_basic_scroll; vtable->view_set_active = view_set_active; vtable->view_get_setting = view_get_setting; vtable->view_set_setting = view_set_setting; vtable->view_get_managed_scope = view_get_managed_scope; vtable->buffer_compute_cursor = buffer_compute_cursor; vtable->view_compute_cursor = view_compute_cursor; vtable->view_set_cursor = view_set_cursor; vtable->view_set_buffer_scroll = view_set_buffer_scroll; vtable->view_set_basic_scroll = view_set_basic_scroll; vtable->view_set_mark = view_set_mark; vtable->view_set_buffer = view_set_buffer; vtable->view_post_fade = view_post_fade; vtable->view_begin_ui_mode = view_begin_ui_mode; vtable->view_end_ui_mode = view_end_ui_mode; vtable->view_is_in_ui_mode = view_is_in_ui_mode; vtable->view_set_quit_ui_handler = view_set_quit_ui_handler; vtable->view_get_quit_ui_handler = view_get_quit_ui_handler; vtable->create_user_managed_scope = create_user_managed_scope; vtable->destroy_user_managed_scope = destroy_user_managed_scope; vtable->get_global_managed_scope = get_global_managed_scope; vtable->get_managed_scope_with_multiple_dependencies = get_managed_scope_with_multiple_dependencies; vtable->managed_scope_clear_contents = managed_scope_clear_contents; vtable->managed_scope_clear_self_all_dependent_scopes = managed_scope_clear_self_all_dependent_scopes; vtable->managed_scope_allocator = managed_scope_allocator; vtable->managed_id_declare = managed_id_declare; vtable->managed_scope_get_attachment = managed_scope_get_attachment; vtable->managed_scope_attachment_erase = managed_scope_attachment_erase; vtable->alloc_managed_memory_in_scope = alloc_managed_memory_in_scope; vtable->alloc_buffer_markers_on_buffer = alloc_buffer_markers_on_buffer; vtable->managed_object_get_item_size = managed_object_get_item_size; vtable->managed_object_get_item_count = managed_object_get_item_count; vtable->managed_object_get_pointer = managed_object_get_pointer; vtable->managed_object_get_type = managed_object_get_type; vtable->managed_object_get_containing_scope = managed_object_get_containing_scope; vtable->managed_object_free = managed_object_free; vtable->managed_object_store_data = managed_object_store_data; vtable->managed_object_load_data = managed_object_load_data; vtable->get_user_input = get_user_input; vtable->get_command_input = get_command_input; vtable->set_command_input = set_command_input; vtable->get_mouse_state = get_mouse_state; vtable->get_active_query_bars = get_active_query_bars; vtable->start_query_bar = start_query_bar; vtable->end_query_bar = end_query_bar; vtable->print_message = print_message; vtable->log_string = log_string; vtable->thread_get_id = thread_get_id; vtable->get_largest_face_id = get_largest_face_id; vtable->set_global_face = set_global_face; vtable->buffer_history_get_max_record_index = buffer_history_get_max_record_index; vtable->buffer_history_get_record_info = buffer_history_get_record_info; vtable->buffer_history_get_group_sub_record = buffer_history_get_group_sub_record; vtable->buffer_history_get_current_state_index = buffer_history_get_current_state_index; vtable->buffer_history_set_current_state_index = buffer_history_set_current_state_index; vtable->buffer_history_merge_record_range = buffer_history_merge_record_range; vtable->buffer_history_clear_after_current_state = buffer_history_clear_after_current_state; vtable->global_history_edit_group_begin = global_history_edit_group_begin; vtable->global_history_edit_group_end = global_history_edit_group_end; vtable->buffer_set_face = buffer_set_face; vtable->get_face_description = get_face_description; vtable->get_face_metrics = get_face_metrics; vtable->get_face_id = get_face_id; vtable->try_create_new_face = try_create_new_face; vtable->try_modify_face = try_modify_face; vtable->try_release_face = try_release_face; vtable->set_theme_colors = set_theme_colors; vtable->get_theme_colors = get_theme_colors; vtable->finalize_color = finalize_color; vtable->push_hot_directory = push_hot_directory; vtable->set_hot_directory = set_hot_directory; vtable->get_file_list = get_file_list; vtable->set_gui_up_down_keys = set_gui_up_down_keys; vtable->memory_allocate = memory_allocate; vtable->memory_set_protection = memory_set_protection; vtable->memory_free = memory_free; vtable->push_4ed_path = push_4ed_path; vtable->show_mouse_cursor = show_mouse_cursor; vtable->set_edit_finished_hook_repeat_speed = set_edit_finished_hook_repeat_speed; vtable->set_fullscreen = set_fullscreen; vtable->is_fullscreen = is_fullscreen; vtable->send_exit_signal = send_exit_signal; vtable->set_window_title = set_window_title; vtable->get_microseconds_timestamp = get_microseconds_timestamp; vtable->draw_string_oriented = draw_string_oriented; vtable->get_string_advance = get_string_advance; vtable->draw_rectangle = draw_rectangle; vtable->draw_rectangle_outline = draw_rectangle_outline; vtable->draw_clip_push = draw_clip_push; vtable->draw_clip_pop = draw_clip_pop; vtable->draw_coordinate_center_push = draw_coordinate_center_push; vtable->draw_coordinate_center_pop = draw_coordinate_center_pop; vtable->text_layout_create = text_layout_create; vtable->text_layout_region = text_layout_region; vtable->text_layout_get_buffer = text_layout_get_buffer; vtable->text_layout_get_visible_range = text_layout_get_visible_range; vtable->text_layout_line_on_screen = text_layout_line_on_screen; vtable->text_layout_character_on_screen = text_layout_character_on_screen; vtable->paint_text_color = paint_text_color; vtable->text_layout_free = text_layout_free; vtable->draw_text_layout = draw_text_layout; vtable->open_color_picker = open_color_picker; vtable->animate_in_n_milliseconds = animate_in_n_milliseconds; vtable->buffer_find_all_matches = buffer_find_all_matches; } #if defined(DYNAMIC_LINK_API) function void custom_api_read_vtable(API_VTable_custom *vtable){ global_set_setting = vtable->global_set_setting; global_set_mapping = vtable->global_set_mapping; global_get_screen_rectangle = vtable->global_get_screen_rectangle; get_thread_context = vtable->get_thread_context; create_child_process = vtable->create_child_process; child_process_set_target_buffer = vtable->child_process_set_target_buffer; buffer_get_attached_child_process = vtable->buffer_get_attached_child_process; child_process_get_attached_buffer = vtable->child_process_get_attached_buffer; child_process_get_state = vtable->child_process_get_state; clipboard_post = vtable->clipboard_post; clipboard_count = vtable->clipboard_count; push_clipboard_index = vtable->push_clipboard_index; get_buffer_count = vtable->get_buffer_count; get_buffer_next = vtable->get_buffer_next; get_buffer_by_name = vtable->get_buffer_by_name; get_buffer_by_file_name = vtable->get_buffer_by_file_name; buffer_read_range = vtable->buffer_read_range; buffer_replace_range = vtable->buffer_replace_range; buffer_batch_edit = vtable->buffer_batch_edit; buffer_seek_string = vtable->buffer_seek_string; buffer_seek_character_class = vtable->buffer_seek_character_class; buffer_line_y_difference = vtable->buffer_line_y_difference; buffer_line_shift_y = vtable->buffer_line_shift_y; buffer_pos_at_relative_xy = vtable->buffer_pos_at_relative_xy; buffer_relative_xy_of_pos = vtable->buffer_relative_xy_of_pos; buffer_relative_character_from_pos = vtable->buffer_relative_character_from_pos; buffer_pos_from_relative_character = vtable->buffer_pos_from_relative_character; view_line_y_difference = vtable->view_line_y_difference; view_line_shift_y = vtable->view_line_shift_y; view_pos_at_relative_xy = vtable->view_pos_at_relative_xy; view_relative_xy_of_pos = vtable->view_relative_xy_of_pos; view_relative_character_from_pos = vtable->view_relative_character_from_pos; view_pos_from_relative_character = vtable->view_pos_from_relative_character; buffer_exists = vtable->buffer_exists; buffer_ready = vtable->buffer_ready; buffer_get_access_flags = vtable->buffer_get_access_flags; buffer_get_size = vtable->buffer_get_size; buffer_get_line_count = vtable->buffer_get_line_count; push_buffer_base_name = vtable->push_buffer_base_name; push_buffer_unique_name = vtable->push_buffer_unique_name; push_buffer_file_name = vtable->push_buffer_file_name; buffer_get_dirty_state = vtable->buffer_get_dirty_state; buffer_set_dirty_state = vtable->buffer_set_dirty_state; buffer_get_setting = vtable->buffer_get_setting; buffer_set_setting = vtable->buffer_set_setting; buffer_get_managed_scope = vtable->buffer_get_managed_scope; buffer_send_end_signal = vtable->buffer_send_end_signal; create_buffer = vtable->create_buffer; buffer_save = vtable->buffer_save; buffer_kill = vtable->buffer_kill; buffer_reopen = vtable->buffer_reopen; buffer_get_file_attributes = vtable->buffer_get_file_attributes; get_file_attributes = vtable->get_file_attributes; get_view_next = vtable->get_view_next; get_view_prev = vtable->get_view_prev; get_active_view = vtable->get_active_view; get_active_panel = vtable->get_active_panel; view_exists = vtable->view_exists; view_get_buffer = vtable->view_get_buffer; view_get_cursor_pos = vtable->view_get_cursor_pos; view_get_mark_pos = vtable->view_get_mark_pos; view_get_preferred_x = vtable->view_get_preferred_x; view_set_preferred_x = vtable->view_set_preferred_x; view_get_screen_rect = vtable->view_get_screen_rect; view_get_panel = vtable->view_get_panel; panel_get_view = vtable->panel_get_view; panel_is_split = vtable->panel_is_split; panel_is_leaf = vtable->panel_is_leaf; panel_split = vtable->panel_split; panel_set_split = vtable->panel_set_split; panel_swap_children = vtable->panel_swap_children; panel_get_parent = vtable->panel_get_parent; panel_get_child = vtable->panel_get_child; panel_get_max = vtable->panel_get_max; panel_get_margin = vtable->panel_get_margin; view_close = vtable->view_close; view_get_buffer_region = vtable->view_get_buffer_region; view_get_buffer_scroll = vtable->view_get_buffer_scroll; view_get_basic_scroll = vtable->view_get_basic_scroll; view_set_active = vtable->view_set_active; view_get_setting = vtable->view_get_setting; view_set_setting = vtable->view_set_setting; view_get_managed_scope = vtable->view_get_managed_scope; buffer_compute_cursor = vtable->buffer_compute_cursor; view_compute_cursor = vtable->view_compute_cursor; view_set_cursor = vtable->view_set_cursor; view_set_buffer_scroll = vtable->view_set_buffer_scroll; view_set_basic_scroll = vtable->view_set_basic_scroll; view_set_mark = vtable->view_set_mark; view_set_buffer = vtable->view_set_buffer; view_post_fade = vtable->view_post_fade; view_begin_ui_mode = vtable->view_begin_ui_mode; view_end_ui_mode = vtable->view_end_ui_mode; view_is_in_ui_mode = vtable->view_is_in_ui_mode; view_set_quit_ui_handler = vtable->view_set_quit_ui_handler; view_get_quit_ui_handler = vtable->view_get_quit_ui_handler; create_user_managed_scope = vtable->create_user_managed_scope; destroy_user_managed_scope = vtable->destroy_user_managed_scope; get_global_managed_scope = vtable->get_global_managed_scope; get_managed_scope_with_multiple_dependencies = vtable->get_managed_scope_with_multiple_dependencies; managed_scope_clear_contents = vtable->managed_scope_clear_contents; managed_scope_clear_self_all_dependent_scopes = vtable->managed_scope_clear_self_all_dependent_scopes; managed_scope_allocator = vtable->managed_scope_allocator; managed_id_declare = vtable->managed_id_declare; managed_scope_get_attachment = vtable->managed_scope_get_attachment; managed_scope_attachment_erase = vtable->managed_scope_attachment_erase; alloc_managed_memory_in_scope = vtable->alloc_managed_memory_in_scope; alloc_buffer_markers_on_buffer = vtable->alloc_buffer_markers_on_buffer; managed_object_get_item_size = vtable->managed_object_get_item_size; managed_object_get_item_count = vtable->managed_object_get_item_count; managed_object_get_pointer = vtable->managed_object_get_pointer; managed_object_get_type = vtable->managed_object_get_type; managed_object_get_containing_scope = vtable->managed_object_get_containing_scope; managed_object_free = vtable->managed_object_free; managed_object_store_data = vtable->managed_object_store_data; managed_object_load_data = vtable->managed_object_load_data; get_user_input = vtable->get_user_input; get_command_input = vtable->get_command_input; set_command_input = vtable->set_command_input; get_mouse_state = vtable->get_mouse_state; get_active_query_bars = vtable->get_active_query_bars; start_query_bar = vtable->start_query_bar; end_query_bar = vtable->end_query_bar; print_message = vtable->print_message; log_string = vtable->log_string; thread_get_id = vtable->thread_get_id; get_largest_face_id = vtable->get_largest_face_id; set_global_face = vtable->set_global_face; buffer_history_get_max_record_index = vtable->buffer_history_get_max_record_index; buffer_history_get_record_info = vtable->buffer_history_get_record_info; buffer_history_get_group_sub_record = vtable->buffer_history_get_group_sub_record; buffer_history_get_current_state_index = vtable->buffer_history_get_current_state_index; buffer_history_set_current_state_index = vtable->buffer_history_set_current_state_index; buffer_history_merge_record_range = vtable->buffer_history_merge_record_range; buffer_history_clear_after_current_state = vtable->buffer_history_clear_after_current_state; global_history_edit_group_begin = vtable->global_history_edit_group_begin; global_history_edit_group_end = vtable->global_history_edit_group_end; buffer_set_face = vtable->buffer_set_face; get_face_description = vtable->get_face_description; get_face_metrics = vtable->get_face_metrics; get_face_id = vtable->get_face_id; try_create_new_face = vtable->try_create_new_face; try_modify_face = vtable->try_modify_face; try_release_face = vtable->try_release_face; set_theme_colors = vtable->set_theme_colors; get_theme_colors = vtable->get_theme_colors; finalize_color = vtable->finalize_color; push_hot_directory = vtable->push_hot_directory; set_hot_directory = vtable->set_hot_directory; get_file_list = vtable->get_file_list; set_gui_up_down_keys = vtable->set_gui_up_down_keys; memory_allocate = vtable->memory_allocate; memory_set_protection = vtable->memory_set_protection; memory_free = vtable->memory_free; push_4ed_path = vtable->push_4ed_path; show_mouse_cursor = vtable->show_mouse_cursor; set_edit_finished_hook_repeat_speed = vtable->set_edit_finished_hook_repeat_speed; set_fullscreen = vtable->set_fullscreen; is_fullscreen = vtable->is_fullscreen; send_exit_signal = vtable->send_exit_signal; set_window_title = vtable->set_window_title; get_microseconds_timestamp = vtable->get_microseconds_timestamp; draw_string_oriented = vtable->draw_string_oriented; get_string_advance = vtable->get_string_advance; draw_rectangle = vtable->draw_rectangle; draw_rectangle_outline = vtable->draw_rectangle_outline; draw_clip_push = vtable->draw_clip_push; draw_clip_pop = vtable->draw_clip_pop; draw_coordinate_center_push = vtable->draw_coordinate_center_push; draw_coordinate_center_pop = vtable->draw_coordinate_center_pop; text_layout_create = vtable->text_layout_create; text_layout_region = vtable->text_layout_region; text_layout_get_buffer = vtable->text_layout_get_buffer; text_layout_get_visible_range = vtable->text_layout_get_visible_range; text_layout_line_on_screen = vtable->text_layout_line_on_screen; text_layout_character_on_screen = vtable->text_layout_character_on_screen; paint_text_color = vtable->paint_text_color; text_layout_free = vtable->text_layout_free; draw_text_layout = vtable->draw_text_layout; open_color_picker = vtable->open_color_picker; animate_in_n_milliseconds = vtable->animate_in_n_milliseconds; buffer_find_all_matches = vtable->buffer_find_all_matches; } #undef DYNAMIC_LINK_API #endif