Exemple #1
0
void	refresh_stdout(char *g_cmd)
{
	int old_pos;

	old_pos = g_cursor_pos;
	save_cursor_pos();
	while (g_cursor_pos >= 1 && (g_cmd[g_cursor_pos]
		|| g_cmd[g_cursor_pos - 1]))
		move_cursor_left();
	delete_x_characters(ft_strlen(g_cmd));
	write(1, " ", 1);
	write(1, g_cmd, ft_strlen(g_cmd));
	g_cursor_pos = old_pos - 1;
	set_saved_cursor();
	move_cursor_right();
}
Exemple #2
0
terminal::terminal(){
  // save old terminal settings
  tcgetattr( STDIN_FILENO, &oldt);
  newt = oldt;

  // set new terminal settings
  newt.c_lflag &= ~(ICANON | ECHO);
  tcsetattr( STDIN_FILENO, TCSANOW, &newt);

  // print as many newlines as number_of_result_lines to
  // enable moving the cursor up and down.
  for(int i=0; i < options.number_of_result_lines; ++i){
    fprintf(stderr,"\n");
  }
  cursor_up(options.number_of_result_lines);
  save_cursor_pos();
  restore_cursor_pos();
}
Exemple #3
0
void	refresh_stdout_del(char *g_cmd)
{
	int old_pos;

	old_pos = g_cursor_pos;
	save_cursor_pos();
	while (g_cursor_pos >= 1)
		move_cursor_left();
	if (!ft_strlen(g_cmd))
		delete_x_characters(1);
	else
		delete_x_characters(ft_strlen(g_cmd));
	ft_putstr_fd(g_cmd, 1);
	g_cursor_pos = old_pos;
	set_saved_cursor();
	move_cursor_left();
	if (!ft_strlen(g_cmd))
		g_cursor_pos = 0;
}
Exemple #4
0
void	refresh_stdout_selected(char *g_cmd)
{
	int old_pos;
	int	i;

	i = 0;
	old_pos = g_cursor_pos;
	save_cursor_pos();
	while (g_cursor_pos >= 1 && (g_cmd[g_cursor_pos]
		|| g_cmd[g_cursor_pos - 1]))
		move_cursor_left();
	delete_x_characters(ft_strlen(g_cmd));
	while (g_cmd[i])
	{
		if (g_selected_position[g_cursor_pos])
			ft_putstr(PRINT_SELECTED);
		ft_putchar(g_cmd[i]);
		ft_putstr(RESET);
		ft_putstr(DEFAULT_COLOR);
		g_cursor_pos++;
		i++;
	}
}