fixes + norm
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/01/24 14:45:28 by nalebrun #+# #+# */
|
/* Created: 2025/01/24 14:45:28 by nalebrun #+# #+# */
|
||||||
/* Updated: 2025/01/24 14:45:28 by nalebrun ### ########.fr */
|
/* Updated: 2025/02/11 16:45:11 by nalebrun ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@@ -17,4 +17,8 @@
|
|||||||
|
|
||||||
t_ast_n *parser(char *input, t_msh *msh);
|
t_ast_n *parser(char *input, t_msh *msh);
|
||||||
|
|
||||||
|
int unexpected_token(t_node *node);
|
||||||
|
int is_aop_operator(t_node *node);
|
||||||
|
void interpret_cmd(char **input, t_msh *msh);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -64,5 +64,7 @@ int find_quote_node(t_node *head, char q);
|
|||||||
int syntax_error(t_node *head);
|
int syntax_error(t_node *head);
|
||||||
char *copy_meta(char *val, int *copied);
|
char *copy_meta(char *val, int *copied);
|
||||||
char *copy_unmeta(char *val, int *copied);
|
char *copy_unmeta(char *val, int *copied);
|
||||||
|
void debug_token_list(t_node* lst, char *msg);
|
||||||
|
void set_token(t_node *head);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
32
srcs/interpret_cmd.c
Normal file
32
srcs/interpret_cmd.c
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* interpret_cmd.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2025/02/11 16:42:53 by nalebrun #+# #+# */
|
||||||
|
/* Updated: 2025/02/11 16:45:31 by nalebrun ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "../includes/minishell.h"
|
||||||
|
|
||||||
|
void interpret_cmd(char **input, t_msh *msh)
|
||||||
|
{
|
||||||
|
msh->head = parser(*input, msh);
|
||||||
|
if (!msh->head)
|
||||||
|
{
|
||||||
|
ft_free(input);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
msh->here_fd = open(".heredoc", O_RDONLY);
|
||||||
|
msh->ex_code = execute_command(msh->head);
|
||||||
|
get_next_line(msh->here_fd, 1);
|
||||||
|
if (msh->here_fd != -1)
|
||||||
|
close(msh->here_fd);
|
||||||
|
unlink(".heredoc");
|
||||||
|
free_ast(msh->head);
|
||||||
|
msh->head = NULL;
|
||||||
|
ft_free(input);
|
||||||
|
}
|
||||||
48
srcs/main.c
48
srcs/main.c
@@ -3,10 +3,10 @@
|
|||||||
/* ::: :::::::: */
|
/* ::: :::::::: */
|
||||||
/* main.c :+: :+: :+: */
|
/* main.c :+: :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: lderidde <lderidde@student.s19.be> +#+ +:+ +#+ */
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/01/27 14:16:52 by lderidde #+# #+# */
|
/* Created: 2025/01/27 14:16:52 by lderidde #+# #+# */
|
||||||
/* Updated: 2025/02/11 13:22:49 by lderidde ### ########.fr */
|
/* Updated: 2025/02/11 16:44:10 by nalebrun ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@@ -48,23 +48,23 @@ static void add_prevhistory(t_msh *msh)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void interpret_cmd(char **input, t_msh *msh)
|
int interactive_mode(t_msh *msh)
|
||||||
{
|
{
|
||||||
msh->head = parser(*input, msh);
|
msh->input = malloc(1);
|
||||||
if (!msh->head)
|
msh->input[0] = 0;
|
||||||
|
while (!msh->input[0] || is_only_space(msh->input) || g_sig == SIGINT)
|
||||||
{
|
{
|
||||||
ft_free(input);
|
g_sig = 0;
|
||||||
return ;
|
free(msh->input);
|
||||||
|
msh->input = powerline(msh);
|
||||||
|
if (!msh->input)
|
||||||
|
return (0);
|
||||||
}
|
}
|
||||||
msh->here_fd = open(".heredoc", O_RDONLY);
|
if (!msh->input)
|
||||||
msh->ex_code = execute_command(msh->head);
|
return (1);
|
||||||
get_next_line(msh->here_fd, 1);
|
if (g_sig != SIGINT)
|
||||||
if (msh->here_fd != -1)
|
interpret_cmd(&msh->input, msh);
|
||||||
close(msh->here_fd);
|
return (1);
|
||||||
unlink(".heredoc");
|
|
||||||
free_ast(msh->head);
|
|
||||||
msh->head = NULL;
|
|
||||||
ft_free(input);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int ac, char **av, char **envp)
|
int main(int ac, char **av, char **envp)
|
||||||
@@ -79,23 +79,9 @@ int main(int ac, char **av, char **envp)
|
|||||||
if (ac == 1)
|
if (ac == 1)
|
||||||
{
|
{
|
||||||
while (1)
|
while (1)
|
||||||
{
|
if (!interactive_mode(msh))
|
||||||
msh->input = malloc (1);
|
|
||||||
msh->input[0] = 0;
|
|
||||||
while (!msh->input[0] || is_only_space(msh->input) || g_sig == SIGINT)
|
|
||||||
{
|
|
||||||
g_sig = 0;
|
|
||||||
free(msh->input);
|
|
||||||
msh->input = powerline(msh);
|
|
||||||
if (!msh->input)
|
|
||||||
break ;
|
break ;
|
||||||
}
|
}
|
||||||
if (!msh->input)
|
|
||||||
break;
|
|
||||||
if (g_sig != SIGINT)
|
|
||||||
interpret_cmd(&msh->input, msh);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
msh->input = ft_strdup(av[1]);
|
msh->input = ft_strdup(av[1]);
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
/* ::: :::::::: */
|
/* ::: :::::::: */
|
||||||
/* msh_struct.c :+: :+: :+: */
|
/* msh_struct.c :+: :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: lderidde <lderidde@student.s19.be> +#+ +:+ +#+ */
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/02/06 15:32:03 by lderidde #+# #+# */
|
/* Created: 2025/02/06 15:32:03 by lderidde #+# #+# */
|
||||||
/* Updated: 2025/02/11 13:18:58 by lderidde ### ########.fr */
|
/* Updated: 2025/02/11 16:34:46 by nalebrun ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
/* ::: :::::::: */
|
/* ::: :::::::: */
|
||||||
/* heredoc.c :+: :+: :+: */
|
/* heredoc.c :+: :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: lderidde <lderidde@student.s19.be> +#+ +:+ +#+ */
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/02/11 09:01:14 by lderidde #+# #+# */
|
/* Created: 2025/02/11 09:01:14 by lderidde #+# #+# */
|
||||||
/* Updated: 2025/02/11 10:45:08 by lderidde ### ########.fr */
|
/* Updated: 2025/02/11 16:31:50 by nalebrun ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@@ -25,8 +25,8 @@ static void remove_quote(char **str, char c)
|
|||||||
new = ft_calloc(len - 1, sizeof(char));
|
new = ft_calloc(len - 1, sizeof(char));
|
||||||
while (i < len - 2)
|
while (i < len - 2)
|
||||||
{
|
{
|
||||||
if ((&((*str)[k]) == ft_strchr(*str, c)) ||
|
if ((&((*str)[k]) == ft_strchr(*str, c))
|
||||||
(&((*str)[k]) == ft_strrchr(*str, c)))
|
|| (&((*str)[k]) == ft_strrchr(*str, c)))
|
||||||
{
|
{
|
||||||
k++;
|
k++;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/02/07 12:08:53 by nalebrun #+# #+# */
|
/* Created: 2025/02/07 12:08:53 by nalebrun #+# #+# */
|
||||||
/* Updated: 2025/02/07 17:58:30 by nalebrun ### ########.fr */
|
/* Updated: 2025/02/11 16:31:12 by nalebrun ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@@ -33,17 +33,7 @@ int syntax_err_mess(char *token_base, int selected)
|
|||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int unexpected_token(t_node *node)
|
static int check_unclosed(char *c, t_node *node)
|
||||||
{
|
|
||||||
if ((!ft_strncmp(node->val, "&", 1) && ft_strncmp(node->val, "&&", 2))
|
|
||||||
|| !ft_strncmp(node->val, ";", 1) || !ft_strncmp(node->val, "[", 1)
|
|
||||||
|| !ft_strncmp(node->val, "]", 1) || !ft_strncmp(node->val, "{", 1)
|
|
||||||
|| !ft_strncmp(node->val, "}", 1))
|
|
||||||
return (1);
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int check_unclosed(char *c, t_node *node)
|
|
||||||
{
|
{
|
||||||
t_node *cpy;
|
t_node *cpy;
|
||||||
int count;
|
int count;
|
||||||
@@ -65,7 +55,7 @@ int check_unclosed(char *c, t_node *node)
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int check_unclosed_quote(char *c, t_node *node)
|
static int check_unclosed_quote(char *c, t_node *node)
|
||||||
{
|
{
|
||||||
t_node *cpy;
|
t_node *cpy;
|
||||||
int count;
|
int count;
|
||||||
@@ -97,17 +87,6 @@ int unclosed(t_node *head)
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int is_aop_operator(t_node *node)
|
|
||||||
{
|
|
||||||
if (!node || node->token != OPERATOR)
|
|
||||||
return (0);
|
|
||||||
if (node->pressision == AND
|
|
||||||
|| node->pressision == OR
|
|
||||||
|| node->pressision == PIPE)
|
|
||||||
return (1);
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int syntax_error(t_node *head)
|
int syntax_error(t_node *head)
|
||||||
{
|
{
|
||||||
t_node *cpy;
|
t_node *cpy;
|
||||||
|
|||||||
33
srcs/parsing/syntax_utils.c
Normal file
33
srcs/parsing/syntax_utils.c
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* syntax_utils.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2025/02/11 16:00:49 by nalebrun #+# #+# */
|
||||||
|
/* Updated: 2025/02/11 16:34:22 by nalebrun ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "../../includes/minishell.h"
|
||||||
|
|
||||||
|
int is_aop_operator(t_node *node)
|
||||||
|
{
|
||||||
|
if (!node || node->token != OPERATOR)
|
||||||
|
return (0);
|
||||||
|
if (node->pressision == AND || node->pressision == OR
|
||||||
|
|| node->pressision == PIPE)
|
||||||
|
return (1);
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int unexpected_token(t_node *node)
|
||||||
|
{
|
||||||
|
if ((!ft_strncmp(node->val, "&", 1) && ft_strncmp(node->val, "&&", 2))
|
||||||
|
|| !ft_strncmp(node->val, ";", 1) || !ft_strncmp(node->val, "[", 1)
|
||||||
|
|| !ft_strncmp(node->val, "]", 1) || !ft_strncmp(node->val, "{", 1)
|
||||||
|
|| !ft_strncmp(node->val, "}", 1))
|
||||||
|
return (1);
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/01/15 13:27:57 by lderidde #+# #+# */
|
/* Created: 2025/01/15 13:27:57 by lderidde #+# #+# */
|
||||||
/* Updated: 2025/02/07 17:26:04 by nalebrun ### ########.fr */
|
/* Updated: 2025/02/11 16:31:30 by nalebrun ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@@ -33,26 +33,6 @@ static t_node *tokenize_base(char *str)
|
|||||||
return (head);
|
return (head);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_token(t_node *head)
|
|
||||||
{
|
|
||||||
t_node *it;
|
|
||||||
t_token last_token;
|
|
||||||
t_pres last_pres;
|
|
||||||
|
|
||||||
it = head;
|
|
||||||
last_token = UNSET;
|
|
||||||
last_pres = UNDEFINED;
|
|
||||||
while (it != NULL)
|
|
||||||
{
|
|
||||||
it->token = get_token(it->val);
|
|
||||||
it->pressision = get_pressision(it->val, it->token, last_token,
|
|
||||||
last_pres);
|
|
||||||
last_token = it->token;
|
|
||||||
last_pres = it->pressision;
|
|
||||||
it = it->next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int unstick_nodes(t_node *head)
|
static int unstick_nodes(t_node *head)
|
||||||
{
|
{
|
||||||
t_node *it;
|
t_node *it;
|
||||||
@@ -89,7 +69,8 @@ static int stick_quote_node(t_node *head, char q)
|
|||||||
it = head;
|
it = head;
|
||||||
while (it != NULL)
|
while (it != NULL)
|
||||||
{
|
{
|
||||||
if (ft_strchr(it->val, q) && ft_strchr(it->val, q) == ft_strrchr(it->val, q))
|
if (ft_strchr(it->val, q) && ft_strchr(it->val,
|
||||||
|
q) == ft_strrchr(it->val, q))
|
||||||
{
|
{
|
||||||
while (it->next && !ft_strchr(it->next->val, q))
|
while (it->next && !ft_strchr(it->next->val, q))
|
||||||
if (!merge_with_next_node(it))
|
if (!merge_with_next_node(it))
|
||||||
@@ -102,24 +83,7 @@ static int stick_quote_node(t_node *head, char q)
|
|||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void debug_token_list(t_node* lst, char *msg)
|
static void del_void_nodes(t_node **head)
|
||||||
{
|
|
||||||
t_node *cpy;
|
|
||||||
|
|
||||||
cpy = lst;
|
|
||||||
if (DEBUG)
|
|
||||||
{
|
|
||||||
ft_debug("==================================================================={%s}\n", msg);
|
|
||||||
while (cpy)
|
|
||||||
{
|
|
||||||
ft_fprintf(2, "| %10s | TOKEN : %3d | PRESSISION : %3d |\n", cpy->val, cpy->token, cpy->pressision);
|
|
||||||
cpy = cpy->next;
|
|
||||||
}
|
|
||||||
ft_debug("===================================================================\n\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void del_void_nodes(t_node **head)
|
|
||||||
{
|
{
|
||||||
t_node *cpy;
|
t_node *cpy;
|
||||||
t_node *tmp;
|
t_node *tmp;
|
||||||
@@ -152,19 +116,12 @@ t_node *tokenize(char *str)
|
|||||||
head = tokenize_base(str);
|
head = tokenize_base(str);
|
||||||
if (!head)
|
if (!head)
|
||||||
return (NULL);
|
return (NULL);
|
||||||
debug_token_list(head, "tokenize_base");
|
|
||||||
if (!trim_nodes(head))
|
if (!trim_nodes(head))
|
||||||
return (NULL);
|
return (NULL);
|
||||||
debug_token_list(head, "trim_nodes");
|
|
||||||
if (!unstick_nodes(head))
|
if (!unstick_nodes(head))
|
||||||
return (NULL);
|
return (NULL);
|
||||||
debug_token_list(head, "unstick_nodes");
|
|
||||||
stick_quote_node(head, 39);
|
stick_quote_node(head, 39);
|
||||||
stick_quote_node(head, '"');
|
stick_quote_node(head, '"');
|
||||||
debug_token_list(head, "stick quote node");
|
|
||||||
// if (!trim_nodes(head))
|
|
||||||
// return (NULL);
|
|
||||||
// debug_token_list(head, "trim_nodes");
|
|
||||||
set_token(head);
|
set_token(head);
|
||||||
del_void_nodes(&head);
|
del_void_nodes(&head);
|
||||||
debug_token_list(head, "tokenizer");
|
debug_token_list(head, "tokenizer");
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/01/22 14:24:05 by nalebrun #+# #+# */
|
/* Created: 2025/01/22 14:24:05 by nalebrun #+# #+# */
|
||||||
/* Updated: 2025/02/07 18:04:31 by nalebrun ### ########.fr */
|
/* Updated: 2025/02/11 16:33:45 by nalebrun ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@@ -15,8 +15,7 @@
|
|||||||
int is_meta(char c)
|
int is_meta(char c)
|
||||||
{
|
{
|
||||||
if (c == '&' || c == '|' || c == '<' || c == '>' || c == '(' || c == ')'
|
if (c == '&' || c == '|' || c == '<' || c == '>' || c == '(' || c == ')'
|
||||||
|| c == ';' || c == '{' || c == '}' || c == '['
|
|| c == ';' || c == '{' || c == '}' || c == '[' || c == ']')
|
||||||
|| c == ']')
|
|
||||||
return (1);
|
return (1);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
@@ -85,8 +84,7 @@ int trim_nodes(t_node *head)
|
|||||||
in_quote = 0;
|
in_quote = 0;
|
||||||
while (it != NULL)
|
while (it != NULL)
|
||||||
{
|
{
|
||||||
if (ft_str_count(it->val, 39) == 1
|
if (ft_str_count(it->val, 39) == 1 || ft_str_count(it->val, '"') == 1)
|
||||||
|| ft_str_count(it->val, '"') == 1)
|
|
||||||
{
|
{
|
||||||
if (!in_quote)
|
if (!in_quote)
|
||||||
in_quote = it->val[0];
|
in_quote = it->val[0];
|
||||||
@@ -103,17 +101,3 @@ int trim_nodes(t_node *head)
|
|||||||
}
|
}
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int find_quote_node(t_node *head, char q)
|
|
||||||
{
|
|
||||||
t_node *it;
|
|
||||||
|
|
||||||
it = head;
|
|
||||||
while (it != NULL)
|
|
||||||
{
|
|
||||||
if (it->val[0] == q)
|
|
||||||
return (1);
|
|
||||||
it = it->next;
|
|
||||||
}
|
|
||||||
return (0);
|
|
||||||
}
|
|
||||||
|
|||||||
68
srcs/parsing/tokenizer/tokenizer_utils2.c
Normal file
68
srcs/parsing/tokenizer/tokenizer_utils2.c
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* tokenizer_utils2.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2025/02/11 16:10:17 by nalebrun #+# #+# */
|
||||||
|
/* Updated: 2025/02/11 16:33:26 by nalebrun ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "../../../includes/minishell.h"
|
||||||
|
|
||||||
|
void debug_token_list(t_node *lst, char *msg)
|
||||||
|
{
|
||||||
|
t_node *cpy;
|
||||||
|
|
||||||
|
cpy = lst;
|
||||||
|
if (DEBUG)
|
||||||
|
{
|
||||||
|
ft_debug("====================================================\
|
||||||
|
==============={%s}\n",
|
||||||
|
msg);
|
||||||
|
while (cpy)
|
||||||
|
{
|
||||||
|
ft_fprintf(2, "| %10s | TOKEN : %3d | PRESSISION : %3d |\n",
|
||||||
|
cpy->val, cpy->token, cpy->pressision);
|
||||||
|
cpy = cpy->next;
|
||||||
|
}
|
||||||
|
ft_debug("====================================================\
|
||||||
|
===============\n\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_token(t_node *head)
|
||||||
|
{
|
||||||
|
t_node *it;
|
||||||
|
t_token last_token;
|
||||||
|
t_pres last_pres;
|
||||||
|
|
||||||
|
it = head;
|
||||||
|
last_token = UNSET;
|
||||||
|
last_pres = UNDEFINED;
|
||||||
|
while (it != NULL)
|
||||||
|
{
|
||||||
|
it->token = get_token(it->val);
|
||||||
|
it->pressision = get_pressision(it->val, it->token, last_token,
|
||||||
|
last_pres);
|
||||||
|
last_token = it->token;
|
||||||
|
last_pres = it->pressision;
|
||||||
|
it = it->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int find_quote_node(t_node *head, char q)
|
||||||
|
{
|
||||||
|
t_node *it;
|
||||||
|
|
||||||
|
it = head;
|
||||||
|
while (it != NULL)
|
||||||
|
{
|
||||||
|
if (it->val[0] == q)
|
||||||
|
return (1);
|
||||||
|
it = it->next;
|
||||||
|
}
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
@@ -3,10 +3,10 @@
|
|||||||
/* ::: :::::::: */
|
/* ::: :::::::: */
|
||||||
/* powerline.c :+: :+: :+: */
|
/* powerline.c :+: :+: :+: */
|
||||||
/* +:+ +:+ +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: lderidde <lderidde@student.s19.be> +#+ +:+ +#+ */
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/02/10 12:19:10 by lderidde #+# #+# */
|
/* Created: 2025/02/10 12:19:10 by lderidde #+# #+# */
|
||||||
/* Updated: 2025/02/11 14:19:32 by lderidde ### ########.fr */
|
/* Updated: 2025/02/11 16:34:51 by nalebrun ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ static void handle_input(char *in, t_msh *msh)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
char *get_pwd()
|
char *get_pwd(void)
|
||||||
{
|
{
|
||||||
char *pwd;
|
char *pwd;
|
||||||
char *pwd_base;
|
char *pwd_base;
|
||||||
@@ -55,8 +55,8 @@ char *powerline(t_msh *msh)
|
|||||||
char *prompt;
|
char *prompt;
|
||||||
|
|
||||||
pwd = get_pwd();
|
pwd = get_pwd();
|
||||||
prompt = ft_sprintf("\n%s MMOAT %s%s %s%s %s%s%s ",
|
prompt = ft_sprintf("\n%s MMOAT %s%s %s%s %s%s%s ", POW1, POW2, POW3,
|
||||||
POW1, POW2, POW3, POW4, pwd, RESET, POW5, RESET);
|
POW4, pwd, RESET, POW5, RESET);
|
||||||
input = readline(prompt);
|
input = readline(prompt);
|
||||||
handle_input(input, msh);
|
handle_input(input, msh);
|
||||||
free(prompt);
|
free(prompt);
|
||||||
|
|||||||
@@ -6,14 +6,14 @@
|
|||||||
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
/* By: nalebrun <nalebrun@student.s19.be> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/02/10 08:32:20 by nalebrun #+# #+# */
|
/* Created: 2025/02/10 08:32:20 by nalebrun #+# #+# */
|
||||||
/* Updated: 2025/02/10 08:32:20 by nalebrun ### ########.fr */
|
/* Updated: 2025/02/11 16:34:59 by nalebrun ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "../includes/minishell.h"
|
#include "../includes/minishell.h"
|
||||||
#include <readline/chardefs.h>
|
#include <readline/chardefs.h>
|
||||||
|
|
||||||
void init_sig()
|
void init_sig(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
struct sigaction sa[2];
|
struct sigaction sa[2];
|
||||||
|
|||||||
Reference in New Issue
Block a user