0 Norm errors
This commit is contained in:
parent
3404d05bc5
commit
98451de1fa
@ -6,7 +6,7 @@
|
||||
/* By: marvin <marvin@student.42.fr> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/04 16:13:13 by whaffman #+# #+# */
|
||||
/* Updated: 2025/02/28 01:36:31 by whaffman ######## odam.nl */
|
||||
/* Updated: 2025/02/28 14:18:54 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -42,8 +42,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 ": "
|
||||
# define PROMPT_LEN 51
|
||||
|
||||
# ifndef DBG
|
||||
# define DBG
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/11 14:03:03 by qmennen #+# #+# */
|
||||
/* Updated: 2025/02/11 17:19:01 by whaffman ######## odam.nl */
|
||||
/* Updated: 2025/02/28 14:08:11 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -18,7 +18,8 @@
|
||||
t_command *parser_alloc_command(t_minishell *msh, char *cmd);
|
||||
t_list *parser_get_commands(t_minishell *msh);
|
||||
t_list *parser_get_input_redirects(t_list *list);
|
||||
void parser_create_command(t_minishell *msh, t_command *cmd, t_list **l_tkn);
|
||||
void parser_create_command(t_minishell *msh,
|
||||
t_command *cmd, t_list **l_tkn);
|
||||
char **parser_get_arguments(t_list *list, t_minishell *msh);
|
||||
int parser_validate_command(t_command *command);
|
||||
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* redirect.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/02/23 12:26:29 by Quinten #+# #+# */
|
||||
/* Updated: 2025/02/27 18:09:47 by qmennen ### ########.fr */
|
||||
/* :::::::: */
|
||||
/* redirect.h :+: :+: */
|
||||
/* +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/23 12:26:29 by Quinten #+# #+# */
|
||||
/* Updated: 2025/02/28 14:08:33 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -16,12 +16,13 @@
|
||||
|
||||
t_redirect *redirect_new(t_minishell *msh, t_token_type type, char *value);
|
||||
void redirect_new_error(t_minishell *msh, t_list **redirects, int flag);
|
||||
int redirect_create(t_minishell *msh, t_list **tokens, t_list **redirects, t_token_type type);
|
||||
t_list *redirect_get_inputs(t_minishell *msh, t_list *list);
|
||||
t_list *redirect_get_outputs(t_minishell *msh, t_list *list);
|
||||
int redirect_is_valid(t_list *lst, t_token *token, int mode);
|
||||
int redirect_token_type(t_token *token);
|
||||
int redirect_is_delimiter(t_token *token);
|
||||
int redirect_create(t_minishell *msh, t_list **tokens,
|
||||
t_list **redirects, t_token_type type);
|
||||
t_list *redirect_get_inputs(t_minishell *msh, t_list *list);
|
||||
t_list *redirect_get_outputs(t_minishell *msh, t_list *list);
|
||||
int redirect_is_valid(t_list *lst, t_token *token, int mode);
|
||||
int redirect_token_type(t_token *token);
|
||||
int redirect_is_delimiter(t_token *token);
|
||||
int process_heredoc(t_minishell *msh, t_token *heredoc, t_token *delim);
|
||||
|
||||
#endif
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* tokenizer.h :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/02/05 12:36:00 by whaffman #+# #+# */
|
||||
/* Updated: 2025/02/27 19:03:09 by qmennen ### ########.fr */
|
||||
/* :::::::: */
|
||||
/* tokenizer.h :+: :+: */
|
||||
/* +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/05 12:36:00 by whaffman #+# #+# */
|
||||
/* Updated: 2025/02/28 14:09:17 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -16,17 +16,18 @@
|
||||
/**
|
||||
* Lexer
|
||||
*/
|
||||
t_lexer *ft_lexer_new(t_minishell *msh);
|
||||
void ft_lexer_free(t_minishell *msh, t_lexer *lexer);
|
||||
void lexer_readchar(t_lexer *lexer);
|
||||
char *lexer_readword(t_minishell *msh, t_lexer *lexer);
|
||||
t_list *ft_parse_input(t_minishell *msh);
|
||||
char *lexer_parse_quotes(t_minishell *msh, t_lexer *lexer);
|
||||
t_lexer *ft_lexer_new(t_minishell *msh);
|
||||
void ft_lexer_free(t_minishell *msh, t_lexer *lexer);
|
||||
void lexer_readchar(t_lexer *lexer);
|
||||
char *lexer_readword(t_minishell *msh, t_lexer *lexer);
|
||||
t_list *ft_parse_input(t_minishell *msh);
|
||||
char *lexer_parse_quotes(t_minishell *msh, t_lexer *lexer);
|
||||
/**
|
||||
* Token
|
||||
*/
|
||||
t_token *ft_token_next(t_minishell *msh, t_lexer *lexer);
|
||||
t_token *token_new(t_minishell *msh, t_token_type type, char *c, int pos);
|
||||
t_token *token_new(t_minishell *msh,
|
||||
t_token_type type, char *c, int pos);
|
||||
void ft_token_free(t_minishell *msh, t_token *token);
|
||||
void ft_clear_tokenlist(t_minishell *msh, void *content);
|
||||
t_token *token_parse(t_minishell *msh, t_lexer *lexer);
|
||||
|
||||
74
inc/utils.h
74
inc/utils.h
@ -1,37 +1,37 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* :::::::: */
|
||||
/* utils.h :+: :+: */
|
||||
/* +:+ */
|
||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/05 16:06:35 by whaffman #+# #+# */
|
||||
/* Updated: 2025/02/20 18:07:19 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef UTILS_H
|
||||
# define UTILS_H
|
||||
|
||||
void free_minishell_line(t_minishell *msh);
|
||||
void free_minishell(t_minishell **msh);
|
||||
void free_command_list(t_minishell *msh, void *content);
|
||||
t_minishell *init_minishell(void);
|
||||
void print_banner(void);
|
||||
void print_list(void *content);
|
||||
void simple_builtins(t_minishell *msh);
|
||||
void error_msg(char *func, char *msg);
|
||||
void check_malloc(t_minishell *msh, void *ptr);
|
||||
char *ft_strdup_safe(t_minishell *msh, const char *str);
|
||||
char *ft_substr_safe(t_minishell *msh, const char *str,
|
||||
unsigned int start, size_t len);
|
||||
char *ft_strjoin_safe(t_minishell *msh,
|
||||
const char *s1, const char *s2);
|
||||
void *malloc_safe(t_minishell *msh, size_t size);
|
||||
void free_safe(t_minishell *msh, void **ptr);
|
||||
void free_freelist(t_minishell *msh);
|
||||
void ft_lstclear_safe(t_minishell *msh, t_list **lst,
|
||||
void (*del)(t_minishell *msh, void *));
|
||||
t_list *ft_lstnew_safe(t_minishell *msh, void *content);
|
||||
|
||||
#endif // UTILS_H
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* :::::::: */
|
||||
/* utils.h :+: :+: */
|
||||
/* +:+ */
|
||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/05 16:06:35 by whaffman #+# #+# */
|
||||
/* Updated: 2025/02/28 14:10:11 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef UTILS_H
|
||||
# define UTILS_H
|
||||
|
||||
void free_minishell_line(t_minishell *msh);
|
||||
void free_minishell(t_minishell **msh);
|
||||
void free_command_list(t_minishell *msh, void *content);
|
||||
t_minishell *init_minishell(void);
|
||||
void print_banner(void);
|
||||
void print_list(void *content);
|
||||
void simple_builtins(t_minishell *msh);
|
||||
void error_msg(char *func, char *msg);
|
||||
void check_malloc(t_minishell *msh, void *ptr);
|
||||
char *ft_strdup_safe(t_minishell *msh, const char *str);
|
||||
char *ft_substr_safe(t_minishell *msh,
|
||||
const char *str, unsigned int start, size_t len);
|
||||
char *ft_strjoin_safe(t_minishell *msh,
|
||||
const char *s1, const char *s2);
|
||||
void *malloc_safe(t_minishell *msh, size_t size);
|
||||
void free_safe(t_minishell *msh, void **ptr);
|
||||
void free_freelist(t_minishell *msh);
|
||||
void ft_lstclear_safe(t_minishell *msh,
|
||||
t_list **lst, void (*del)(t_minishell *msh, void *));
|
||||
t_list *ft_lstnew_safe(t_minishell *msh, void *content);
|
||||
|
||||
#endif // UTILS_H
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/05 19:03:47 by qmennen #+# #+# */
|
||||
/* Updated: 2025/02/28 14:04:22 by whaffman ######## odam.nl */
|
||||
/* Updated: 2025/02/28 14:06:32 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -70,7 +70,6 @@ char *lexer_readword(t_minishell *msh, t_lexer *lexer)
|
||||
if (lexer->current_char == '"' || lexer->current_char == '\'')
|
||||
{
|
||||
return (lexer_parse_quotes(msh, lexer));
|
||||
|
||||
}
|
||||
if (!match_quotes(msh, lexer))
|
||||
return (NULL);
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* parser_get_arguments.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/02/11 16:20:09 by qmennen #+# #+# */
|
||||
/* Updated: 2025/02/27 18:58:48 by qmennen ### ########.fr */
|
||||
/* :::::::: */
|
||||
/* parser_get_arguments.c :+: :+: */
|
||||
/* +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/11 16:20:09 by qmennen #+# #+# */
|
||||
/* Updated: 2025/02/28 14:07:23 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -44,7 +44,8 @@ static int parser_should_expand(t_list *value)
|
||||
{
|
||||
while (token->value[i])
|
||||
{
|
||||
if (token->value[i] == '$' && !expander_character_valid(token->value[i + 1]))
|
||||
if (token->value[i] == '$'
|
||||
&& !expander_character_valid(token->value[i + 1]))
|
||||
return (0);
|
||||
i++;
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/04 16:13:08 by whaffman #+# #+# */
|
||||
/* Updated: 2025/02/26 16:15:04 by whaffman ######## odam.nl */
|
||||
/* Updated: 2025/02/28 14:18:20 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -14,22 +14,22 @@
|
||||
|
||||
char *get_user(t_minishell *msh)
|
||||
{
|
||||
const char guest[] = "guest";
|
||||
int len;
|
||||
t_environment *user;
|
||||
char *username;
|
||||
char *result;
|
||||
const char *prompt = RESET "🐚" GREEN "minishell" RESET ": ";
|
||||
|
||||
user = environment_get(msh, "USER");
|
||||
if (user == NULL)
|
||||
username = (char *)guest;
|
||||
username = "guest";
|
||||
else
|
||||
username = user->value;
|
||||
len = ft_strlen(username) + ft_strlen(PROMPT GREEN) + 1;
|
||||
len = ft_strlen(username) + ft_strlen(prompt) + ft_strlen(GREEN) + 1;
|
||||
result = (char *)malloc_safe(msh, len);
|
||||
ft_strlcpy(result, GREEN, ft_strlen(GREEN) + 1);
|
||||
ft_strlcat(result, username, ft_strlen(GREEN) + ft_strlen(username) + 1);
|
||||
ft_strlcat(result, PROMPT, len);
|
||||
ft_strlcat(result, prompt, len);
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/23 12:29:05 by Quinten #+# #+# */
|
||||
/* Updated: 2025/02/28 01:19:39 by whaffman ######## odam.nl */
|
||||
/* Updated: 2025/02/28 14:00:39 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -39,7 +39,7 @@ t_list *redirect_get_inputs(t_minishell *msh, t_list *list)
|
||||
}
|
||||
check_heredoc(msh, current, token);
|
||||
flag = redirect_is_valid(current, token, F_OK | R_OK);
|
||||
if(flag)
|
||||
if (flag)
|
||||
redirect_create(msh, ¤t, &redirects, token->type);
|
||||
current = current->next;
|
||||
}
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* token_char_convert.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/02/27 18:25:34 by qmennen #+# #+# */
|
||||
/* Updated: 2025/02/27 18:28:13 by qmennen ### ########.fr */
|
||||
/* :::::::: */
|
||||
/* token_char_convert.c :+: :+: */
|
||||
/* +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/27 18:25:34 by qmennen #+# #+# */
|
||||
/* Updated: 2025/02/28 14:07:08 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
# include "minishell.h"
|
||||
#include "minishell.h"
|
||||
|
||||
t_token_type token_char_convert(char c, int is_double)
|
||||
{
|
||||
|
||||
@ -1,16 +1,16 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* ::: :::::::: */
|
||||
/* token_type_convert.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/02/27 18:25:34 by qmennen #+# #+# */
|
||||
/* Updated: 2025/02/27 18:26:40 by qmennen ### ########.fr */
|
||||
/* :::::::: */
|
||||
/* token_type_convert.c :+: :+: */
|
||||
/* +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/02/27 18:25:34 by qmennen #+# #+# */
|
||||
/* Updated: 2025/02/28 14:07:12 by whaffman ######## odam.nl */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
# include "minishell.h"
|
||||
#include "minishell.h"
|
||||
|
||||
char *token_type_convert(t_token_type type)
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user