faboussard / 42_minishell

1 stars 0 forks source link

fake env si env -i ./minishell : affiche home/faboussa : faire leval sur ma session (cest un detail) #79

Closed faboussard closed 4 months ago

melobern commented 4 months ago

Géré avec getcwd. Le chemin est donc bien le chemin réel maintenant. Il reste juste à voir le chemin donné par la session en cas d'échec de getcwd, sachant que getcwd n'est vraiment pas censé échouer.

void create_3_env_variables(t_minishell *m)
{
    char PWD[PATH_MAX];

    if (add_new_envp(&m->list_envp,"_=", "/usr/bin/env"))
        exit_msg_minishell(m, "Malloc failed at create_3_env_variables", -1);
    m->total_size_envp += ft_strlen("_=") + ft_strlen("/usr/bin/env");
    if (add_new_envp(&m->list_envp, "SHLVL=", "1"))
        exit_msg_minishell(m, "Malloc failed at create_3_env_variables", -1);
    m->total_size_envp += ft_strlen("SHLVL") + ft_strlen("1");
    if (getcwd(PWD, sizeof(PWD)) == NULL)
    {
        perror("minishell: getcwd");
        ft_strlcpy(PWD, "/home/goinfre/faboussa", 22);
    }   
    if (add_new_envp(&m->list_envp, "PWD=", PWD))
        exit_msg_minishell(m, "Malloc failed at create_3_env_variables", -1);
    m->total_size_envp += ft_strlen("PWD=") + ft_strlen(PWD);
}