diff --git a/src/include/loop.h b/src/include/loop.h index 89a9364..3a6a208 100644 --- a/src/include/loop.h +++ b/src/include/loop.h @@ -16,6 +16,7 @@ #ifndef _MYSHELLIN_LOOP #define _MYSHELLIN_LOOP void remove_new_line(char *line); +char *get_working_directory(); void print_input_line(); void loop(); #endif diff --git a/src/loop.c b/src/loop.c index 44ad49f..35dedea 100644 --- a/src/loop.c +++ b/src/loop.c @@ -15,19 +15,36 @@ #define _GNU_SOURCE #include +#include #include #include #include #include +#include #include "user.h" void remove_new_line(char* line) { line[strcspn(line, "\n")] = 0; } +char *get_working_directory() { + char *cwd = NULL; + cwd = getcwd(NULL, PATH_MAX); + if (cwd != NULL) { + return cwd; + } + else { + perror("getcwd() error: "); + exit(EXIT_FAILURE); + } +} + void print_input_line() { char *name = get_user(); - printf("%s $ ", name); + char *cwd = get_working_directory(); + printf("%s:%s $ ", name, cwd); + free(name); + free(cwd); } void loop() { @@ -44,8 +61,7 @@ void loop() { break; } else { - perror("Error: "); - printf("\n"); + perror("getline() error: "); if (line != NULL) { free(line); }