From 55ba6227149c01c0385763bd2b37ae865c15ea9b Mon Sep 17 00:00:00 2001 From: whaffman Date: Wed, 5 Feb 2025 12:48:04 +0100 Subject: [PATCH] fixed headers, and function defenitions for prompt --- inc/enviroment.h | 9 +----- inc/minishell.h | 67 ++++++++------------------------------------- inc/prompt.h | 2 +- inc/tokenizer.h | 33 ++++++++++++++++++++++ inc/typedef.h | 56 +++++++++++++++++++++++++++++++++++++ lib/libft | 2 +- src/main.c | 4 +-- src/prompt/prompt.c | 22 +++++++-------- src/util.c | 18 ------------ 9 files changed, 117 insertions(+), 96 deletions(-) create mode 100644 inc/tokenizer.h create mode 100644 inc/typedef.h delete mode 100644 src/util.c diff --git a/inc/enviroment.h b/inc/enviroment.h index 681e846..7f86da1 100644 --- a/inc/enviroment.h +++ b/inc/enviroment.h @@ -6,20 +6,13 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/04 16:26:35 by whaffman #+# #+# */ -/* Updated: 2025/02/04 16:28:59 by whaffman ######## odam.nl */ +/* Updated: 2025/02/05 12:36:59 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ #ifndef ENVIROMENT_H # define ENVIROMENT_H -typedef struct s_enviroment -{ - char *name; - char *value; - struct s_enviroment *next; -} t_enviroment; - void add_enviroment(t_enviroment **enviroment, char *name, char *value); void print_enviroment(t_enviroment *enviroment); char *get_enviroment(t_enviroment *enviroment, char *name); diff --git a/inc/minishell.h b/inc/minishell.h index 35a59c9..b6a1bd1 100644 --- a/inc/minishell.h +++ b/inc/minishell.h @@ -6,17 +6,20 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/04 16:13:13 by whaffman #+# #+# */ -/* Updated: 2025/02/04 18:58:01 by whaffman ######## odam.nl */ +/* Updated: 2025/02/05 12:37:14 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ #ifndef MINISHELL_H # define MINISHELL_H +# include "typedef.h" # include "allowed.h" # include "libft.h" # include "enviroment.h" # include "prompt.h" +# include "tokenizer.h" + # define TRUE 1 # define FALSE 0 @@ -24,62 +27,16 @@ # define SUCCESS 1 # define FAILURE 0 -# define RED "\033[0;31m" -# define GREEN "\033[0;32m" -# define YELLOW "\033[0;33m" -# define BLUE "\033[0;34m" -# define MAGENTA "\033[0;35m" -# define CYAN "\033[0;36m" -# define RESET "\033[0m" +# define BOLD "\001\033[1m\002" +# define RED "\001\033[0;31m\002" +# define GREEN "\001\033[0;32m\002" +# define YELLOW "\001\033[0;33m\002" +# define BLUE "\001\033[0;34m\002" +# define MAGENTA "\001\033[0;35m\002" +# define CYAN "\001\033[0;36m\002" +# define RESET "\001\033[0m\002" -typedef struct s_minishell -{ - t_enviroment *enviroment; - -} t_minishell; - -typedef enum -{ - T_WORD, - T_PIPE, - T_REDIRECT_IN, - T_REDIRECT_OUT, - T_APPEND_OUT, - T_EOF, - T_ERROR -} t_token_type; - -typedef struct s_token -{ - t_token_type type; - char *value; - int position; -} t_token; - -typedef struct s_lexer -{ - char *input; - int pos; - int n_pos; - char current_char; -} t_lexer; int ft_isspace(const char c); -/** - * Lexer - */ -t_lexer *ft_lexer_new(const char *input); -void ft_lexer_free(t_lexer *lexer); -void ft_lexer_readchar(t_lexer *lexer); -char *ft_lexer_readword(t_lexer *lexer); -t_list *ft_parse_input(t_lexer *lexer); -/** - * Token - */ -t_token *ft_token_next(t_lexer *lexer); -t_token *ft_token_new(t_token_type type, char *c, int pos); -void ft_token_free(t_token *token); -void ft_clear_tokenlist(void *content); -t_token *ft_parse_token(t_lexer *lexer); #endif diff --git a/inc/prompt.h b/inc/prompt.h index 9981ef3..8d64c5f 100644 --- a/inc/prompt.h +++ b/inc/prompt.h @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/04 16:35:35 by whaffman #+# #+# */ -/* Updated: 2025/02/04 18:58:19 by whaffman ######## odam.nl */ +/* Updated: 2025/02/05 11:54:38 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ diff --git a/inc/tokenizer.h b/inc/tokenizer.h new file mode 100644 index 0000000..1e8d893 --- /dev/null +++ b/inc/tokenizer.h @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* tokenizer.h :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/02/05 12:36:00 by whaffman #+# #+# */ +/* Updated: 2025/02/05 12:36:01 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#ifndef TOKENIZER_H +# define TOKENIZER_H + +/** + * Lexer + */ +t_lexer *ft_lexer_new(const char *input); +void ft_lexer_free(t_lexer *lexer); +void ft_lexer_readchar(t_lexer *lexer); +char *ft_lexer_readword(t_lexer *lexer); +t_list *ft_parse_input(t_lexer *lexer); +/** + * Token + */ +t_token *ft_token_next(t_lexer *lexer); +t_token *ft_token_new(t_token_type type, char *c, int pos); +void ft_token_free(t_token *token); +void ft_clear_tokenlist(void *content); +t_token *ft_parse_token(t_lexer *lexer); + +#endif // TOKENIZER_H diff --git a/inc/typedef.h b/inc/typedef.h new file mode 100644 index 0000000..ee4eb4e --- /dev/null +++ b/inc/typedef.h @@ -0,0 +1,56 @@ +/* ************************************************************************** */ +/* */ +/* :::::::: */ +/* typedef.h :+: :+: */ +/* +:+ */ +/* By: whaffman +#+ */ +/* +#+ */ +/* Created: 2025/02/05 12:36:08 by whaffman #+# #+# */ +/* Updated: 2025/02/05 12:36:44 by whaffman ######## odam.nl */ +/* */ +/* ************************************************************************** */ + +#ifndef TYPEDEF_H +# define TYPEDEF_H + + +typedef struct s_enviroment +{ + char *name; + char *value; + struct s_enviroment *next; +} t_enviroment; + +typedef struct s_minishell +{ + t_enviroment *enviroment; + +} t_minishell; + +typedef enum e_token_type +{ + T_WORD, + T_PIPE, + T_REDIRECT_IN, + T_REDIRECT_OUT, + T_APPEND_OUT, + T_EOF, + T_ERROR +} t_token_type; + +typedef struct s_token +{ + t_token_type type; + char *value; + int position; +} t_token; + +typedef struct s_lexer +{ + char *input; + int pos; + int n_pos; + char current_char; +} t_lexer; + +#endif // TYPEDEF_H diff --git a/lib/libft b/lib/libft index 1098b01..d76fa93 160000 --- a/lib/libft +++ b/lib/libft @@ -1 +1 @@ -Subproject commit 1098b014604dad0dc80e63456b3f7d70d7b4541a +Subproject commit d76fa9350d07e61e0b2524a411e8aca5151381e4 diff --git a/src/main.c b/src/main.c index 796d380..b824484 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/04 16:19:22 by whaffman #+# #+# */ -/* Updated: 2025/02/04 18:04:25 by whaffman ######## odam.nl */ +/* Updated: 2025/02/05 11:59:23 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -15,7 +15,7 @@ void print_banner(void) { - ft_printf("%s\n", RED "__ ________________________________________________________________ __" GREEN); + ft_printf("%s\n", BOLD RED "__ ________________________________________________________________ __" GREEN); ft_printf("%s\n", RED "__" GREEN " _______ _____ __ _ _____ _______ _ _ _______ " RED "__"); ft_printf("%s\n", RED "__" GREEN " | | | | | \\ | | |______ |_____| |______ | | "RED "__"); ft_printf("%s\n", RED "__" GREEN " | | | __|__ | \\_| __|__ ______| | | |______ |_____ |_____ "RED "__"); diff --git a/src/prompt/prompt.c b/src/prompt/prompt.c index d212e9c..39f9d88 100644 --- a/src/prompt/prompt.c +++ b/src/prompt/prompt.c @@ -6,22 +6,22 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/04 16:13:08 by whaffman #+# #+# */ -/* Updated: 2025/02/04 18:56:08 by whaffman ######## odam.nl */ +/* Updated: 2025/02/05 11:54:12 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ #include "minishell.h" -char *get_user(t_minishell *minishell) +char *get_user(t_enviroment *enviroment) { char *str1; char *str2; - - str1 = ft_strdup(get_enviroment(minishell->enviroment, "USER")); + + str1 = ft_strdup(get_enviroment(enviroment, "USER")); if (str1 == NULL) { str1 = ft_strdup("guest"); - } + } str2 = ft_strjoin(GREEN, str1); free(str1); str1 = ft_strjoin(str2, RESET "@" GREEN "minishell" RESET ": "); @@ -31,15 +31,15 @@ char *get_user(t_minishell *minishell) } -char *get_path(t_minishell *minishell) +char *get_path(t_enviroment *enviroment) { - + char *home; char *temp; char *cwd; - + cwd = getcwd(NULL, 0); - home = get_enviroment(minishell->enviroment, "HOME"); + home = get_enviroment(enviroment, "HOME"); if (cwd == NULL) { perror("getcwd"); @@ -66,12 +66,12 @@ char *ft_prompt(t_minishell *minishell) char *user; char *temp; - cwd = get_path(minishell); + cwd = get_path(minishell->enviroment); if (cwd == NULL) { return (NULL); } - user = get_user(minishell); + user = get_user(minishell->enviroment); temp = ft_strjoin(user, cwd); free(user); free(cwd); diff --git a/src/util.c b/src/util.c deleted file mode 100644 index c9d402a..0000000 --- a/src/util.c +++ /dev/null @@ -1,18 +0,0 @@ -/* ************************************************************************** */ -/* */ -/* ::: :::::::: */ -/* util.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: qmennen +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2025/02/04 16:31:29 by qmennen #+# #+# */ -/* Updated: 2025/02/04 20:54:21 by qmennen ### ########.fr */ -/* */ -/* ************************************************************************** */ - -#include "minishell.h" - -int ft_isspace(const char c) -{ - return (c == ' ' || c == '\t' || c == '\v' || c == '\n' || c == '\v'); -}