void do_builtins(t_lst *list, char **cmd) //, char **paths) { t_lst *new_list; new_list = NULL; if (check_is_builtin(cmd[0]) == 1) do_cd(list, cmd); if (check_is_builtin(cmd[0]) == 2) do_setenv(list, cmd, 1); else if (check_is_builtin(cmd[0]) == 3) do_unsetenv(list, cmd); else if (check_is_builtin(cmd[0]) == 4) do_env(list, cmd); //, paths); }
void manage_unsetenv(t_lst *list, char **cmd, int len) { if (len == 2) { ft_putendl_fd("env: option requires an argument -- u", 2); ft_putendl_fd("usage: env [-u name]", 2); } else if (len == 3) { do_unsetenv(list, cmd); do_print_env(list); } else if (len > 3) manage_multi_cmd(list, cmd); }
static int do_arg(t_lst *node, char *arg) { int i; char **cmd; i = 0; cmd = ft_strsplit_ws(arg); if (!*cmd) return (-1); if (ft_strcmp(*cmd, "exit") == 0) i = do_exit(arg); else if (ft_strcmp(*cmd, "env") == 0) i = deal_with_env(node, arg); else if (ft_strcmp(*cmd, "setenv") == 0) i = do_setenv(node, arg); else if (ft_strcmp(*cmd, "unsetenv") == 0) i = do_unsetenv(node, arg); else if (ft_strcmp(*cmd, "cd") == 0) i = do_cd(node, arg); else if (*cmd) i = deal_with_command(node, cmd); ft_strdel(cmd); return (i); }
void builtin_unsetenv(t_env *env) { const char error[] = "unsetenv: Too few arguments.\n"; char *ptr; char *name; ptr = env->line + sizeof("unsetenv") - 1; name = NULL; while (*ptr == ' ' || *ptr == '\t') ++ptr; if (!*ptr) write(1, error, sizeof(error) - 1); else { while (*ptr) { do_unsetenv(env, ptr); while (*ptr && !(*ptr == ' ' || *ptr == '\t' || *ptr == '\n')) ++ptr; while (*ptr == ' ' || *ptr == '\t' || *ptr == '\n') ++ptr; } } }