diff --git a/src/builtin/builtin_alias.c b/src/builtin/builtin_alias.c index 31229fb..c548416 100644 --- a/src/builtin/builtin_alias.c +++ b/src/builtin/builtin_alias.c @@ -14,10 +14,13 @@ int builtin_alias(char **argv, env_t *env) { - if (!argv[1]) + if (!argv[1]) { print_aliases(env->alias); - if (argv[1]) + env->vars = my_setenv(env->vars, "?", "0"); + } else if (argv[1]) { + env->vars = my_setenv(env->vars, "?", "0"); return (add_alias(&(env->alias), argv[1], &argv[2])); + } return (0); } diff --git a/src/builtin/builtin_env.c b/src/builtin/builtin_env.c index d32e12e..57f073e 100644 --- a/src/builtin/builtin_env.c +++ b/src/builtin/builtin_env.c @@ -17,6 +17,7 @@ int builtin_env(char **argv, env_t *env) write(1, env->env[i], strlen(env->env[i])); write(1, "\n", 1); } + env->vars = my_setenv(env->vars, "?", "0"); free(argv); return (0); } @@ -37,6 +38,7 @@ int builtin_setenv(char **argv, env_t *env) return (0); } env->env = my_setenv(env->env, argv[1], argv[2]); + env->vars = my_setenv(env->vars, "?", "0"); free(argv); return (0); } @@ -52,6 +54,7 @@ int builtin_unsetenv(char **argv, env_t *env) for (int i = 1; argv[i]; i++) if (!strchr(argv[i], '=')) env->env = my_unsetenv(env->env, argv[i]); + env->vars = my_setenv(env->vars, "?", "0"); free(argv); return (0); } \ No newline at end of file diff --git a/src/builtin/builtin_history_two.c b/src/builtin/builtin_history_two.c index 86ec9a5..f5f04c1 100644 --- a/src/builtin/builtin_history_two.c +++ b/src/builtin/builtin_history_two.c @@ -33,6 +33,7 @@ int show_history(env_t *env) printf("%6d\t%d:%02d\t%s\n", tmp->index, tmp->hour, tmp->minute, tmp->command); } + env->vars = my_setenv(env->vars, "?", "0"); return (0); } @@ -42,5 +43,6 @@ int clear_history(env_t *env) for (tmp = env->history; tmp; tmp = tmp->next) tmp->print = 0; + env->vars = my_setenv(env->vars, "?", "0"); return (0); } \ No newline at end of file diff --git a/src/builtin/builtin_manager.c b/src/builtin/builtin_manager.c index 2cf8633..2f062e8 100644 --- a/src/builtin/builtin_manager.c +++ b/src/builtin/builtin_manager.c @@ -50,6 +50,7 @@ int builtin_cd(char **argv, env_t *env) env->vars = my_setenv(env->vars, "?", "1"); return (0); } + env->vars = my_setenv(env->vars, "?", "0"); if (!argv[1]) path = my_getenv(env->env, "HOME"); else if (argv[1] && !strcmp(argv[1], "-")) @@ -66,7 +67,8 @@ int builtin_cd(char **argv, env_t *env) int builtin_exit(char **argv, env_t *env) { + if (argv[1]) + env->vars = my_setenv(env->vars, "?", "1"); free(argv); - (void)env; return (-1); } diff --git a/src/builtin/builtin_unalias.c b/src/builtin/builtin_unalias.c index ea7e21b..207260c 100644 --- a/src/builtin/builtin_unalias.c +++ b/src/builtin/builtin_unalias.c @@ -20,6 +20,7 @@ int builtin_unalias(char **argv, env_t *env) } for (int i = 1; argv[i]; i++) remove_alias(argv[i], &(env->alias)); + env->vars = my_setenv(env->vars, "?", "0"); return (0); }