/*run buildin cmds*/ int buildin(/*0: Is not a buildin cmd */ /*1: Is a buildin cmd*/ int arg_c, /*argument count*/ char arg[][MAXLEN + 1] /*arguments*/ ) { /*compare cmds*/ if (!strcmp(arg[0],"cd")) { if (arg_c) b_cd(arg[1]); else b_pwd(); return 1; } if (!strcmp(arg[0],"pwd")) { b_pwd(); return 1; } if (!strcmp(arg[0],"clr")) { b_clr(); return 1; } if (!strcmp(arg[0],"dir")) { if (arg_c > 0) b_dir(arg[1]); else b_dir("."); return 1; } if (!strcmp(arg[0],"echo")) { b_echo(arg_c,arg); return 1; } if (!strcmp(arg[0],"help")) { b_help(); return 1; } if (!strcmp(arg[0],"quit")) { b_quit(); return 1; } if (!strcmp(arg[0],"environ")) { b_env(); return 1; } return 0; }
void back(char ***penv) { int j; char *str; char **tab; j = -1; while ((*penv)[++j]) { if (ft_strncmp((*penv)[j], "OLDPWD", 6) == 0) { str = ft_strsub((*penv)[j], 8, ft_strlen((*penv)[j])); tab = ft_strsplit(ft_strjoin("cd /", str), ' '); b_cd(0, tab, penv); break; } } }
void home(char ***penv) { int j; char **tab; char *str; j = -1; while ((*penv)[++j]) { if (ft_strncmp((*penv)[j], "HOME", 4) == 0) { str = ft_strsub((*penv)[j], 6, ft_strlen((*penv)[j])); tab = ft_strsplit(ft_strjoin("cd /", str), ' '); b_cd(0, tab, penv); break; } } }