cli hang bug fixed
parent
69349fd749
commit
5144c3eed2
|
@ -165,6 +165,7 @@ enum Command_ID{
|
||||||
enum{
|
enum{
|
||||||
CLI_OverlapWithConflict = 0x1,
|
CLI_OverlapWithConflict = 0x1,
|
||||||
CLI_AlwaysBindToView = 0x2,
|
CLI_AlwaysBindToView = 0x2,
|
||||||
|
CLI_CursorAtEnd = 0x4,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum{
|
enum{
|
||||||
|
|
|
@ -117,7 +117,7 @@ HOOK_SIG(my_start){
|
||||||
exec_command(app, cmdid_hide_scrollbar);
|
exec_command(app, cmdid_hide_scrollbar);
|
||||||
|
|
||||||
app->change_theme(app, literal("4coder"));
|
app->change_theme(app, literal("4coder"));
|
||||||
app->change_font(app, literal("liberation sans"));
|
app->change_font(app, literal("Liberation Sans"));
|
||||||
|
|
||||||
// Theme options:
|
// Theme options:
|
||||||
// "4coder"
|
// "4coder"
|
||||||
|
@ -125,14 +125,14 @@ HOOK_SIG(my_start){
|
||||||
// "Twilight"
|
// "Twilight"
|
||||||
// "Woverine"
|
// "Woverine"
|
||||||
// "stb"
|
// "stb"
|
||||||
|
|
||||||
// Font options:
|
// Font options:
|
||||||
// "liberation sans"
|
// "Liberation Sans"
|
||||||
// "liberation mono"
|
// "Liberation Mono"
|
||||||
// "hack"
|
// "Hack"
|
||||||
// "cutive mono"
|
// "Cutive Mono"
|
||||||
// "inconsolata"
|
// "Inconsolata"
|
||||||
|
|
||||||
// no meaning for return
|
// no meaning for return
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
@ -164,15 +164,11 @@ HOOK_SIG(my_file_settings){
|
||||||
wrap_lines = 0;
|
wrap_lines = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE(allen|a4.0.5): Unlike previous versions the command cmdid_set_settings
|
|
||||||
// no longer automatically effects the active buffer. This command will actually be
|
|
||||||
// phased out in favor of an app call soon.
|
|
||||||
|
|
||||||
// TODO(allen): also eliminate this hook if you can.
|
|
||||||
app->buffer_set_setting(app, &buffer, BufferSetting_Lex, treat_as_code);
|
app->buffer_set_setting(app, &buffer, BufferSetting_Lex, treat_as_code);
|
||||||
app->buffer_set_setting(app, &buffer, BufferSetting_WrapLine, wrap_lines);
|
app->buffer_set_setting(app, &buffer, BufferSetting_WrapLine, wrap_lines);
|
||||||
app->buffer_set_setting(app, &buffer, BufferSetting_MapID, (treat_as_code)?((int)my_code_map):((int)mapid_file));
|
app->buffer_set_setting(app, &buffer, BufferSetting_MapID, (treat_as_code)?((int)my_code_map):((int)mapid_file));
|
||||||
|
|
||||||
|
// TODO(allen): eliminate this hook if you can.
|
||||||
// no meaning for return
|
// no meaning for return
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -256,11 +256,9 @@ clipboard_cut(Application_Links *app, int start, int end, Buffer_Summary *buffer
|
||||||
Buffer_Summary buffer = {0};
|
Buffer_Summary buffer = {0};
|
||||||
int result = false;
|
int result = false;
|
||||||
|
|
||||||
if (buffer.exists){
|
if (clipboard_copy(app, start, end, &buffer, access)){
|
||||||
if (clipboard_copy(app, start, end, &buffer, access)){
|
app->buffer_replace_range(app, &buffer, start, end, 0, 0);
|
||||||
app->buffer_replace_range(app, &buffer, start, end, 0, 0);
|
if (buffer_out){*buffer_out = buffer;}
|
||||||
if (buffer_out){*buffer_out = buffer;}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return(result);
|
return(result);
|
||||||
|
@ -1137,7 +1135,9 @@ CUSTOM_COMMAND_SIG(open_all_code){
|
||||||
app->free_file_list(app, list);
|
app->free_file_list(app, list);
|
||||||
}
|
}
|
||||||
|
|
||||||
char out_buffer_space[1024], command_space[1024], hot_directory_space[1024];
|
char out_buffer_space[1024];
|
||||||
|
char command_space[1024];
|
||||||
|
char hot_directory_space[1024];
|
||||||
|
|
||||||
CUSTOM_COMMAND_SIG(execute_any_cli){
|
CUSTOM_COMMAND_SIG(execute_any_cli){
|
||||||
Query_Bar bar_out, bar_cmd;
|
Query_Bar bar_out, bar_cmd;
|
||||||
|
@ -1161,8 +1161,7 @@ CUSTOM_COMMAND_SIG(execute_any_cli){
|
||||||
buffer_identifier(bar_out.string.str, bar_out.string.size),
|
buffer_identifier(bar_out.string.str, bar_out.string.size),
|
||||||
hot_directory.str, hot_directory.size,
|
hot_directory.str, hot_directory.size,
|
||||||
bar_cmd.string.str, bar_cmd.string.size,
|
bar_cmd.string.str, bar_cmd.string.size,
|
||||||
CLI_OverlapWithConflict);
|
CLI_OverlapWithConflict | CLI_CursorAtEnd);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CUSTOM_COMMAND_SIG(execute_previous_cli){
|
CUSTOM_COMMAND_SIG(execute_previous_cli){
|
||||||
|
@ -1180,7 +1179,7 @@ CUSTOM_COMMAND_SIG(execute_previous_cli){
|
||||||
buffer_identifier(out_buffer.str, out_buffer.size),
|
buffer_identifier(out_buffer.str, out_buffer.size),
|
||||||
hot_directory.str, hot_directory.size,
|
hot_directory.str, hot_directory.size,
|
||||||
cmd.str, cmd.size,
|
cmd.str, cmd.size,
|
||||||
CLI_OverlapWithConflict);
|
CLI_OverlapWithConflict | CLI_CursorAtEnd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
4ed.cpp
12
4ed.cpp
|
@ -26,6 +26,7 @@ struct App_State_Resizing{
|
||||||
struct CLI_Process{
|
struct CLI_Process{
|
||||||
CLI_Handles cli;
|
CLI_Handles cli;
|
||||||
Editing_File *out_file;
|
Editing_File *out_file;
|
||||||
|
b32 cursor_at_end;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CLI_List{
|
struct CLI_List{
|
||||||
|
@ -1871,10 +1872,10 @@ internal i32
|
||||||
update_cli_handle_with_file(System_Functions *system, Models *models,
|
update_cli_handle_with_file(System_Functions *system, Models *models,
|
||||||
CLI_Handles *cli, Editing_File *file, char *dest, i32 max, b32 cursor_at_end){
|
CLI_Handles *cli, Editing_File *file, char *dest, i32 max, b32 cursor_at_end){
|
||||||
i32 result = 0;
|
i32 result = 0;
|
||||||
u32 amount;
|
u32 amount = 0;
|
||||||
|
|
||||||
for (system->cli_begin_update(cli);
|
system->cli_begin_update(cli);
|
||||||
system->cli_update_step(cli, dest, max, &amount);){
|
if (system->cli_update_step(cli, dest, max, &amount)){
|
||||||
amount = eol_in_place_convert_in(dest, amount);
|
amount = eol_in_place_convert_in(dest, amount);
|
||||||
output_file_append(system, models, file, make_string(dest, amount), cursor_at_end);
|
output_file_append(system, models, file, make_string(dest, amount), cursor_at_end);
|
||||||
result = 1;
|
result = 1;
|
||||||
|
@ -2090,7 +2091,7 @@ App_Step_Sig(app_step){
|
||||||
// NOTE(allen): update child processes
|
// NOTE(allen): update child processes
|
||||||
if (input->dt > 0){
|
if (input->dt > 0){
|
||||||
Temp_Memory temp = begin_temp_memory(&models->mem.part);
|
Temp_Memory temp = begin_temp_memory(&models->mem.part);
|
||||||
u32 max = Kbytes(32);
|
u32 max = Kbytes(128);
|
||||||
char *dest = push_array(&models->mem.part, char, max);
|
char *dest = push_array(&models->mem.part, char, max);
|
||||||
|
|
||||||
i32 count = vars->cli_processes.count;
|
i32 count = vars->cli_processes.count;
|
||||||
|
@ -2099,7 +2100,8 @@ App_Step_Sig(app_step){
|
||||||
Editing_File *file = proc->out_file;
|
Editing_File *file = proc->out_file;
|
||||||
|
|
||||||
if (file != 0){
|
if (file != 0){
|
||||||
i32 r = update_cli_handle_with_file(system, models, &proc->cli, file, dest, max, 0);
|
i32 r = update_cli_handle_with_file(
|
||||||
|
system, models, &proc->cli, file, dest, max, proc->cursor_at_end);
|
||||||
if (r < 0){
|
if (r < 0){
|
||||||
*proc = vars->cli_processes.procs[--count];
|
*proc = vars->cli_processes.procs[--count];
|
||||||
--i;
|
--i;
|
||||||
|
|
|
@ -289,6 +289,12 @@ EXEC_SYSTEM_COMMAND_SIG(external_exec_system_command){
|
||||||
|
|
||||||
proc = procs + vars->cli_processes.count++;
|
proc = procs + vars->cli_processes.count++;
|
||||||
proc->out_file = file;
|
proc->out_file = file;
|
||||||
|
if (flags & CLI_CursorAtEnd){
|
||||||
|
proc->cursor_at_end = 1;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
proc->cursor_at_end = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (!system->cli_call(path_string.str, command_string.str, &proc->cli)){
|
if (!system->cli_call(path_string.str, command_string.str, &proc->cli)){
|
||||||
--vars->cli_processes.count;
|
--vars->cli_processes.count;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Distribution Date: 20.6.2016 (dd.mm.yyyy)
|
Distribution Date: 21.6.2016 (dd.mm.yyyy)
|
||||||
|
|
||||||
Thank you for contributing to the 4coder project!
|
Thank you for contributing to the 4coder project!
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Distribution Date: 20.6.2016 (dd.mm.yyyy)
|
Distribution Date: 21.6.2016 (dd.mm.yyyy)
|
||||||
|
|
||||||
Thank you for contributing to the 4coder project!
|
Thank you for contributing to the 4coder project!
|
||||||
|
|
||||||
|
|
|
@ -1519,7 +1519,7 @@ HOOK_SIG(casey_start)
|
||||||
exec_command(app, cmdid_change_active_panel);
|
exec_command(app, cmdid_change_active_panel);
|
||||||
|
|
||||||
app->change_theme(app, literal("Handmade Hero"));
|
app->change_theme(app, literal("Handmade Hero"));
|
||||||
app->change_font(app, literal("liberation mono"));
|
app->change_font(app, literal("Liberation Mono"));
|
||||||
|
|
||||||
Theme_Color colors[] =
|
Theme_Color colors[] =
|
||||||
{
|
{
|
||||||
|
|
|
@ -38,7 +38,7 @@ HOOK_SIG(chronal_init){
|
||||||
exec_command(app, cmdid_change_active_panel);
|
exec_command(app, cmdid_change_active_panel);
|
||||||
|
|
||||||
app->change_theme(app, literal("4coder"));
|
app->change_theme(app, literal("4coder"));
|
||||||
app->change_font(app, literal("hack"));
|
app->change_font(app, literal("Hack"));
|
||||||
|
|
||||||
const int color_bg = 0x15100f;
|
const int color_bg = 0x15100f;
|
||||||
const int color_bar = 0x1c1212;
|
const int color_bar = 0x1c1212;
|
||||||
|
|
Loading…
Reference in New Issue