/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* export.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: cchauvet next != NULL) { write(fd, "declare -x ", 11); ft_putstr_fd(((t_env *)(current->content))->key, fd); ft_putstr_fd("=", fd); write(fd, "\"", 1); ft_putstr_fd(((t_env *)(current->content))->value, fd); write(fd, "\"\n", 2); current = current->next; } } int add_export(t_list **env, char *args, int fd, int *err) { char *key; char *value; key = args; value = ""; if (ft_strchr(args, '=') != NULL) { key = ft_strndup(args, ft_strnchr(args, '=')); if (key == NULL) return (1); if (ft_strlen(key) == 0) { error(args, fd); return (1); } value = ft_strchr(args, '=') + 1; } if (!possible_key(key)) { *err = error(key, fd); return (1); } create_value_by_key_dup(key, value, env); return (0); } int export(t_list **env, char **args, int fd) { int err; int i; err = 0; if (args[0] == NULL) print_export(env, fd); else { i = -1; while (args[++i]) if (add_export(env, args[i], fd, &err) == 1) err = 1; } return (err); } int main(int argc, char *argv[], char **env) { t_list **n_env; (void)argc; n_env = init_env(env); export(n_env, argv + 1, 1); return (0); }