#include "minishell.h" int getenv_position(char **envp, char *name) // TODO : virer arg envp et utiliser "extern **environ" à la place { int i; i = 0; while (envp[i] && ft_strncmp(envp[i], name, ft_strlen(name))) i++; return (i); } int builtin_export(int argc, char *argv[], t_all *c) { char **var; int env_position; (void)argc; (void)c; if (!ft_strchr(argv[1], '=')) return (0); var = ft_split(argv[1], '='); env_position = getenv_position(environ, var[0]); if (environ[env_position] == '\0') environ = ft_resize_2d_arr(environ, 1); environ[env_position] = ft_strdup(argv[1]); if (!ft_strncmp(var[0], "PATH", 4 + 1)) c->path = retrieve_path(); // free var return (0); }