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);
}
Exemple #2
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);
}
Exemple #3
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);
}
Exemple #4
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);
}