int ft_setvar(char ***aarr, char *key, char *val) { size_t i; int len; char *tmp; char **arr; i = 0; len = ft_strlen(key); tmp = ft_setvar_prepare(key, val); if (tmp == NULL) return (1); if (!aarr || *aarr == NULL) return (ft_arradd(aarr, tmp)); arr = *aarr; while (arr[i] != NULL) { if (ft_strncmp(arr[i], key, len) == 0 && arr[i][len] == '=') { ft_strdel(&(arr[i])); arr[i] = tmp; return (0); } i++; } return (ft_arradd(aarr, tmp)); }
void ft_setenv(t_env **env) { char **split; if (array_size((*env)->av) > 1) if (ft_strchr((*env)->av[1], '=') != NULL) { split = ft_strsplit((*env)->av[1], '='); if (is_env(*env, split[0]) != -1) ft_replaceenv(&(*env), split, (*env)->av[1]); else (*env)->e = ft_arradd((*env)->e, (*env)->av[1]); } else { if (is_env(*env, split[0]) == -1) { split[0] = ft_strjoin(split[0], "="); (*env)->e = ft_arradd((*env)->e, split[0]); } } else ft_putendl("Usage : setenv KEY=VALUE"); }