示例#1
0
t_env		*ft_init(char **env)
{
	char	*shlvl;
	t_env	*e;

	if (!(e = (t_env *)malloc(sizeof(t_env))))
		return (ERROR);
	if (!*env)
	{
		creat_env(&e->env);
		e->list = ft_create_list(e->env);
	}
	else
	{
		e->list = ft_create_list(env);
		shlvl = ft_itoa(ft_atoi(ft_check_var(e->list, "SHLVL")) + 1);
		ft_set(e->list, "SHLVL", shlvl);
		free(shlvl);
		e->env = conv_lst(e->list);
	}
	ft_init_line(&e);
	e->prompt = ft_strjoin(ft_check_var(e->list, "USER"), "$>");
	e->shell = ft_strdup("MISHELL");
	ft_putstr(e->prompt);
	return (e);
}
示例#2
0
文件: heredoc.c 项目: jaybi42/21sh
static int	init_heredoc(t_line *l, char *prompt)
{
	ft_init_line(l, NULL);
	l->strcpy = NULL;
	l->sizeprompt = ft_strlen(prompt);
	l->line1 = l->largeur - l->sizeprompt;
	g_inheredoc = 1;
	g_inheredoc_2 = 0;
	if (ft_strcmp("heredoc> ", prompt) == 0)
		g_inheredoc_2 = 1;
	g_heredoc = l;
	return (0);
}