int rl_backward_word(t_rl_reader *r, long key) { (void)key; while (r->cursor > 0 && !ft_isspace(r->line[r->cursor])) rl_backward_char(r, 0); while (r->cursor > 0 && ft_isspace(r->line[r->cursor])) rl_backward_char(r, 0); while (r->cursor > 0 && !ft_isspace(r->line[r->cursor - 1])) rl_backward_char(r, 0); return (0); }
int rl_vi_delete(int count, int key) { int end; if (rl_end == 0) { rl_ding (); return -1; } if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) end = _rl_find_next_mbchar (rl_line_buffer, rl_point, count, MB_FIND_NONZERO); else end = rl_point + count; if (end >= rl_end) end = rl_end; rl_kill_text (rl_point, end); if (rl_point > 0 && rl_point == rl_end) rl_backward_char (1, key); return (0); }
int rl_vi_put(int count, int key) { if (!_rl_uppercase_p (key) && (rl_point + 1 <= rl_end)) rl_point = _rl_find_next_mbchar (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO); rl_yank (1, key); rl_backward_char (1, key); return (0); }
int rl_vi_movement_mode(int count, int key) { if (rl_point > 0) rl_backward_char(1, key); _rl_keymap = vi_movement_keymap; _rl_vi_done_inserting(); return (0); }
int rl_backdel(t_rl_reader *r, long key) { (void)key; if (r->cursor == 0) return (0); ft_memmove(r->line + r->cursor - 1, r->line + r->cursor, r->size - r->cursor); (r->end)--; //ft_memset(r->line + r->end, 0, r->size - r->end); rl_backward_char(r, 0); exec_tcaps("cd"); ft_putstr(r->line + r->cursor); exec_tcaps_n("le", ft_strlen(r->line + r->cursor)); return (0); }