static int			st_get_choice(t_ctx *ctx)
{
	char			buf[BUF_LEN + 1];

	ft_raw_term();
	ft_place_cursor(ctx);
	while (1)
	{
		ft_bzero(buf, BUF_LEN + 1);
		if (-1 == read(STDIN_FILENO, buf, BUF_LEN))
			return (ERR);
		if (0 == ft_strcmp(buf, K_ENTER) && !ctx->grid[0][ctx->arrow])
		{
			ft_reset_term();
			ctx->player_last = ctx->arrow;
			return (ft_play(ctx, ctx->player_last));
		}
		if (0 == ft_strcmp(buf, K_QUIT))
		{
			tputs(tgetstr("cl", NULL), 1, ft_putput);
			ft_reset_term();
			return (ERR);
		}
		ft_treat_key(buf);
	}
	ft_reset_term();
	return (OK);
}
Exemple #2
0
void		ft_exit(int n)
{
	if (CTX->jobs)
		ft_putendl_fd("Error: There are jobs open.", 2);
	else
	{
		ft_reset_term();
		exit(n);
	}
}
Exemple #3
0
void		ft_ctrl_d(t_term *term)
{
	if (!term->cmdactual)
		term->inheredoc = 0;
	else
	{
		ft_putendl_fd(term->cmdactual, term->heredocfd);
		ft_reset_term(term);
		ft_putstr_fd("\nheredoc-> ", 2);
	}
}
Exemple #4
0
static char		*ft_wait_finish(char *str, t_mlist *mlist)
{
	char		*buf;
	char		*complete;

	ft_putstr("> ");
	ft_set_term();
	buf = ft_read_keys(ft_log_to_dlist(), 1, mlist);
	ft_reset_term();
	ft_bzero(g_cmd, BUFF_SIZE);
	g_idx = 0;
	complete = ft_strjoin(str, buf);
	free(str);
	free(buf);
	return (complete);
}
Exemple #5
0
int					main(int ac, char **av, char **env)
{
	t_ctx	*ctx;

	ctx = CTX;
	(void)ac;
	(void)av;
	ctx = CTX;
	ft_term_init();
	setup_signal();
	ft_copy_tab(&ctx->env, env);
	ft_load_history(ctx, 0, NULL, NULL);
	ft_aff_prompt();
	ft_loop();
	ft_reset_term();
	return (0);
}