Ejemplo n.º 1
0
int
edit_swap(t_global *global, t_line **line, char *prompt, char *buff)
{
  t_line	*tmp;
  char	data;

  prompt = prompt;
  buff = buff;
  global = global;
  tmp = *line;
  while (tmp && !tmp->status)
    tmp = tmp->next;
  if (!tmp || (tmp && !tmp->prev))
    return (EXIT_FAILURE);
  else
    {
      data = tmp->letter;
      tmp->letter = tmp->prev->letter;
      tmp->prev->letter = data;
    }
  termcap_delete(2, LEFT_MOVE_STRING, NULL, 0);
  termcap_action(1, INSERT_ON, NULL, 0);
  write(1, &tmp->prev->letter, 1);
  write(1, &tmp->letter, 1);
  termcap_action(1, INSERT_OFF, NULL, 0);
  return (EXIT_SUCCESS);
}
Ejemplo n.º 2
0
int	termcap_delete(int size, char *flag)
{
    while ((--size + 1) > 0)
    {
        if (termcap_action(1, flag) ||
                termcap_action(1, BACKWARD_STRING))
            return (EXIT_FAILURE);
    }
    return (EXIT_SUCCESS);
}
Ejemplo n.º 3
0
static void
aff_rch(char **tab, t_global *global, t_line *line)
{
  char	**tmp;
  int	i;

  i = -1;
  termcap_action(1, CURSER_OFF, NULL, 0);
  termcap_action((edit_listlen(line) - edit_cp(line)),
		 RIGHT_MOVE_STRING, global, 1);
  termcap_action(1, DOWN_MOVE_STRING, NULL, 0);
  termcap_action(global->dom[X], LEFT_MOVE_STRING, NULL, 0);
  while (tab && tab[++i])
    {
      termcap_action(1, UNDERLINE_ON, NULL, 0);
      if ((tmp = my_strtok(tab[i], "/", TOK_DELIM)) != NULL)
	{
	  printf("%s\n", tmp[my_tablen(tmp) - 1]);
	  my_free_tab(tmp);
	}
      termcap_action(1, UNDERLINE_OFF, NULL, 0);
    }
  my_putstr(global->prompt);
  edit_global(global, 1);
  termcap_action(edit_cp(line), RIGHT_MOVE_STRING, global, 1);
  termcap_action(1, CURSER_ON, NULL, 0);
}
Ejemplo n.º 4
0
int
edit_uphistory(t_global *global, t_line **line, char *prompt, char *buff)
{
  buff = buff;
  prompt = prompt;
  if (global->hist)
    {
      if (termcap_action(1, CD_MOVE_STRING, NULL, 0) ||
	  termcap_delete(edit_cp(*line), LEFT_MOVE_STRING, global, -1))
	return (EXIT_FAILURE);
      edit_freelist(*line);
      *line = edit_convertstr(global->hist->command);
      if (global->hist->prev)
	global->hist = global->hist->prev;
      ultim_func(*line, global);
    }
  return (EXIT_SUCCESS);
}
Ejemplo n.º 5
0
int
edit_globing(t_global *global, t_line **line, char *prompt, char *buff)
{
  t_line	*data;
  char	*path;
  char	*sol;
  int	pos;

  buff = buff;
  prompt = prompt;
  path = edit_getword(*line, &pos);
  if ((sol = globing(path, global,
		     glob_select_flag(path, pos) | GLOB_SLASH)) == NULL)
    return (EXIT_FAILURE);
  data = edit_autocomplete(sol, path, global, *line);
  termcap_action(edit_listlen(data), RIGHT_MOVE_STRING, global, 1);
  *line = edit_concatlist(*line, data, edit_cp(*line));
  termcap_display(*line, global);
  (sol) ? free(sol) : (sol = NULL);
  return (EXIT_SUCCESS);
}