From 42abbc8f06fb56761502824b8085516299535534 Mon Sep 17 00:00:00 2001 From: iceyrazor Date: Mon, 9 Feb 2026 23:48:22 -0600 Subject: - readme. todo - update pwd - update SHLVL - basename pwd in prompt - updating pwd --- src/helper_functions.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'src/helper_functions.c') diff --git a/src/helper_functions.c b/src/helper_functions.c index 9427b87..5c81f15 100644 --- a/src/helper_functions.c +++ b/src/helper_functions.c @@ -1,6 +1,8 @@ #ifndef shell_helper_functions #define shell_helper_functions +#include +#include #include #include @@ -51,4 +53,38 @@ char *str_replace(char *orig, char *rep, char *with) { return result; } +char *basename(char *path_in) +{ + char *token = NULL; + char *lastToken = NULL; + char *basePath; + + basePath = (char *)malloc(sizeof(char) * (strlen(path_in) + 1)); + if (!basePath) { + fprintf(stderr, "lsh: allocatin error\n"); + exit(EXIT_FAILURE); + } + strcpy(basePath, path_in); + + token = strtok(basePath, "/"); + while (token != NULL) { + lastToken = token; + token = strtok(NULL, "/"); + } + + if (lastToken == NULL){ + free(basePath); + return NULL; + } + + char *ret_str = (char*)malloc(sizeof(char)*strlen(lastToken)+1); + if (!ret_str) { + fprintf(stderr, "lsh: allocation error\n"); + exit(EXIT_FAILURE); + } + strcpy(ret_str,lastToken); + free(basePath); + return ret_str; +} + #endif -- cgit v1.3