diff --git a/README.md b/README.md index 6ae1227..d6fecff 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A lot of amazing shell stuff - libncurses-dev ## TODO -- Find absolute path for command input ('/', './', 'cmd') +-[x] Find absolute path for command input ('/', './', 'cmd') - Add heredoc to tokenizer -[x] Environment to `t_list` -[x] Get environment array (export) diff --git a/inc/minishell.h b/inc/minishell.h index a6d1d9e..d67e2fe 100644 --- a/inc/minishell.h +++ b/inc/minishell.h @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/04 16:13:13 by whaffman #+# #+# */ -/* Updated: 2025/02/11 14:09:23 by whaffman ######## odam.nl */ +/* Updated: 2025/02/11 15:50:21 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -37,5 +37,6 @@ # define MAGENTA "\001\033[0;35m\002" # define CYAN "\001\033[0;36m\002" # define RESET "\001\033[0m\002" +# define PROMPT RESET "🐚" GREEN "minishell" RESET ": " #endif diff --git a/src/prompt/prompt.c b/src/prompt/prompt.c index 0aa07bf..26a5fbe 100644 --- a/src/prompt/prompt.c +++ b/src/prompt/prompt.c @@ -6,7 +6,7 @@ /* By: qmennen +#+ */ /* +#+ */ /* Created: 2025/02/04 16:13:08 by whaffman #+# #+# */ -/* Updated: 2025/02/08 14:34:53 by willem ######## odam.nl */ +/* Updated: 2025/02/11 16:06:17 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -14,19 +14,28 @@ char *get_user(t_list *environment) { - char *str1; - char *str2; + const char guest[] = "guest"; + int len; + t_environment *user; + char *username; + char *result; - str1 = ft_strdup(environment_get(environment, "USER")->value); - if (str1 == NULL) - str1 = ft_strdup("guest"); - if (str1 == NULL) + user = environment_get(environment, "USER"); + if (user == NULL) + username = (char *)guest; + else + username = user->value; + len = ft_strlen(username) + ft_strlen(PROMPT) + ft_strlen(GREEN) + 1; + result = (char *)malloc(len); + if (result == NULL) + { + perror("malloc"); return (NULL); - str2 = ft_strjoin(GREEN, str1); - free(str1); - str1 = ft_strjoin(str2, RESET "🐚" GREEN "minishell" RESET ": "); - free(str2); - return (str1); + } + ft_strlcpy(result, GREEN, ft_strlen(GREEN) + 1); + ft_strlcat(result, username, ft_strlen(GREEN) + ft_strlen(username) + 1); + ft_strlcat(result, PROMPT, len); + return (result); } char *get_path(t_list *environment) diff --git a/src/utils/free_minishell.c b/src/utils/free_minishell.c index eca8d94..9bb5dc3 100644 --- a/src/utils/free_minishell.c +++ b/src/utils/free_minishell.c @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/05 16:03:57 by whaffman #+# #+# */ -/* Updated: 2025/02/05 16:04:18 by whaffman ######## odam.nl */ +/* Updated: 2025/02/11 15:36:24 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -17,6 +17,6 @@ void free_minishell(t_minishell *minishell) if (minishell->line) free_minishell_line(minishell); if (minishell->environment) - environment_free(minishell->environment); + environment_free_list(&minishell->environment); free(minishell); }