diff --git a/src/exec/exec.c b/src/exec/exec.c index a604891..a05a6d8 100644 --- a/src/exec/exec.c +++ b/src/exec/exec.c @@ -18,10 +18,10 @@ int len(void** list) char* builtin_path(const char* executable) { - if (strcmp(executable, "cd") == 0) - return "cd"; + if (strcmp(executable, "cd") == 0); else return NULL; + return strdup(executable); } int change_directory(char** args, lst** env) diff --git a/src/input/input.c b/src/input/input.c index 6754c80..201475b 100644 --- a/src/input/input.c +++ b/src/input/input.c @@ -66,10 +66,10 @@ char *get_user_input(lst** env) if (prompt == NULL) return NULL; input = readline(prompt); - if (input != NULL && str_contain_only(input, "\t ") == 0) - add_history(input); free(prompt); if (input == NULL) printf("exit"); + if (input != NULL && str_contain_only(input, "\t ") == 0) + add_history(input); return (input); }