/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* cmd_setenv.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: tmaze +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/09/20 14:41:08 by tmaze #+# #+# */ /* Updated: 2019/11/10 21:38:30 by tmaze ### ########.fr */ /* */ /* ************************************************************************** */ #include "minishell.h" int cmd_setenv(char **argv, t_env **env) { t_env *new; t_env *tmp; if (argv[1] && (new = ft_envnew(argv[1])) != NULL) { if (argv[1] && (tmp = ft_envgetelem(new->key, *env)) != NULL) { ft_strdel(&(tmp->val)); tmp->val = new->val; ft_strdel(&(new->key)); ft_memdel((void**)&new); } else ft_envaddend(env, new); ft_envclean(env); return (0); } else if (argv[1] && argv[1][0] != '=' && !ft_strchr(argv[1], '=')) ft_printf("minishell: setenv: memory error\n"); else ft_printf("usage: setenv [KEY]=[value]\n"); return (1); }