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