Exemple #1
0
void		ft_processing(t_data *d, char *str)
{
	t_lexer		*lex;
	t_parser	*parser;

	parser = NULL;
	lex = NULL;
	d->pipe = 0;
	if (!str)
		return ;
	ft_backup_termcap(d);
	ft_lexer(&lex, str);
	if (lex)
	{
		ft_parser(&parser, lex, 1);
		ft_free_lex(&lex);
		ft_process_tree(parser, d);
		ft_free_pars(&parser);
	}
	else
		ft_process(d, str);
	ft_reset_termcap(d);
	if (d->first)
		ft_free_list(d->first);
}
Exemple #2
0
int		main( void )
{
	char			buf[BUFF_SIZE];
	extern char 	**environ;
	t_sh1			sh1;
	int				call;
	// void			*sign_f;

	// sign_f = ft_kill_them_all;
	ft_init(&sh1, environ);
	write(1, "> ", 2);
	// signal(SIGINT, sign_f);
	while (42)
	{
		buf[read(0, buf, (BUFF_SIZE + 1))] = '\0';
		call = ft_parser(&sh1, buf);
		if (call == 1)
		{
			// printf("\n");
			// debug_array(sh1.params);
			// printf("\n");
			// printf("%s\n", sh1.command);
			// printf("\n");
			// sleep(50);
			ft_execve(&sh1);
		}
		else
			write(1, "> ", 2);
	}
	return (0);
}
Exemple #3
0
int	main(int argc, char **argv, char **env)
{
	t_env	e;

	if (!*env)
		return (ft_perror("Environnement indisponible."));
	else if (!(argc - 1))
		return (ft_perror("Usage: ./wolf3d [map]"));
	ft_parser(argv[1], &e);
	ft_init(&e);
	mlx_loop(e.mlx);
	return (0);
}
Exemple #4
0
void		printselected(t_data *e, int q)
{
	t_overview	over;
	char		*path;

	e->index_q = q;
	e->img = mlx_new_image(e->mlx_ptr, IMG_H, IMG_W);
	e->str = mlx_get_data_addr(e->img, &(e->bpp), &(e->sl), &(e->nd));
	path = ft_strjoin("./samples/", e->path);
	over = ft_parser(path);
	render(e, over);
	ft_expose_hook(e);
	mlx_expose_hook(e->mlx_win, ft_expose_hook, e);
	free(path);
}
Exemple #5
0
void	ft_go(char ***env)
{
	char	*tmp;
	char	**path;
	t_list	*arg;
	t_tree	*tree;

	if (!(tmp = ft_getenv("PATH", *env)))
		path = ft_path();
	else
		path = ft_strsplit(tmp, ':');
	if ((arg = ft_parser(g_e.buff))
			&& (tree = ft_make_tree(arg)))
	{
		ft_exec(tree, path, env);
		ft_del_tree(tree);
	}
	ft_tabdel(path);
	free(path);
}
static void	lauch_execute_backquote(t_cmd *cmd,
	t_env *env, char *newcmd)
{
	t_list		*arg;
	t_env		c_env;
	t_cmd		c_cmd;
	t_dir		c_dir;

	arg = NULL;
	init_copy_env(&c_env, &c_cmd, &c_dir);
	c_cmd.raw = ft_strdup(newcmd);
	c_cmd.split = NULL;
	c_env.var = env_lst_copy(env);
	c_env.nb = env->nb;
	c_cmd.paths = ft_tab_dup(cmd->paths);
	c_cmd.env = env_list_to_array(c_env.var, c_env.nb);
	arg = ft_parser(c_cmd.raw);
	ft_open_close();
	ft_launcher(&arg, &c_cmd, &c_env, &c_dir);
	if (arg)
		ft_free_arg(&arg);
	ft_free_c_env(&c_env, &c_cmd, &c_dir);
	ft_open_close();
}