0 Norm errors

This commit is contained in:
whaffman 2025-02-28 14:19:54 +01:00
parent 3404d05bc5
commit 98451de1fa
11 changed files with 103 additions and 102 deletions

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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);

View File

@ -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++;
}

View File

@ -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);
}

View File

@ -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, &current, &redirects, token->type);
current = current->next;
}

View File

@ -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)
{

View File

@ -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)
{