static void cmd_ctrl_h(key_info_t key_info, keys_info_t *keys_info) { input_stat.history_search = HIST_NONE; stop_completion(); if(input_stat.index == 0 && input_stat.len == 0 && sub_mode != PROMPT_SUBMODE) { cmd_ctrl_c(key_info, keys_info); return; } if(input_stat.index == 0) return; if(input_stat.index == input_stat.len) { input_stat.index--; input_stat.len--; input_stat.curs_pos -= wcwidth(input_stat.line[input_stat.index]); input_stat.line[input_stat.index] = L'\0'; } else { input_stat.index--; input_stat.len--; input_stat.curs_pos -= wcwidth(input_stat.line[input_stat.index]); wcsdel(input_stat.line, input_stat.index + 1, 1); } update_cmdline_text(); }
/* Handles backspace. */ static void cmd_ctrl_h(key_info_t key_info, keys_info_t *keys_info) { input_stat.history_search = HIST_NONE; stop_completion(); if(should_quit_on_backspace()) { cmd_ctrl_c(key_info, keys_info); return; } if(input_stat.index == 0) { return; } input_stat.index--; input_stat.len--; input_stat.curs_pos -= vifm_wcwidth(input_stat.line[input_stat.index]); if(input_stat.index == input_stat.len) { input_stat.line[input_stat.index] = L'\0'; } else { wcsdel(input_stat.line, input_stat.index + 1, 1); } update_cmdline_text(); }