fixed headers, and function defenitions for prompt
This commit is contained in:
parent
ebecccc201
commit
55ba622714
@ -6,20 +6,13 @@
|
||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* 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);
|
||||
|
||||
@ -6,17 +6,20 @@
|
||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* 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
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* 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 */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
|
||||
33
inc/tokenizer.h
Normal file
33
inc/tokenizer.h
Normal file
@ -0,0 +1,33 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* :::::::: */
|
||||
/* tokenizer.h :+: :+: */
|
||||
/* +:+ */
|
||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* 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
|
||||
56
inc/typedef.h
Normal file
56
inc/typedef.h
Normal file
@ -0,0 +1,56 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* :::::::: */
|
||||
/* typedef.h :+: :+: */
|
||||
/* +:+ */
|
||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* 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
|
||||
@ -1 +1 @@
|
||||
Subproject commit 1098b014604dad0dc80e63456b3f7d70d7b4541a
|
||||
Subproject commit d76fa9350d07e61e0b2524a411e8aca5151381e4
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* 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 "__");
|
||||
|
||||
@ -6,18 +6,18 @@
|
||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* 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");
|
||||
@ -31,7 +31,7 @@ char *get_user(t_minishell *minishell)
|
||||
}
|
||||
|
||||
|
||||
char *get_path(t_minishell *minishell)
|
||||
char *get_path(t_enviroment *enviroment)
|
||||
{
|
||||
|
||||
char *home;
|
||||
@ -39,7 +39,7 @@ char *get_path(t_minishell *minishell)
|
||||
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);
|
||||
|
||||
18
src/util.c
18
src/util.c
@ -1,18 +0,0 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* util.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* 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');
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user