subsh bool
This commit is contained in:
@@ -12,12 +12,12 @@
|
||||
|
||||
#include "../../../includes/minishell.h"
|
||||
|
||||
void create_and_or(t_ast_n *parrent, t_node *lst, t_node *token, t_msh *msh)
|
||||
void create_and_or(t_ast_n *self, t_node *lst, t_node *token, t_msh *msh)
|
||||
{
|
||||
t_nodell *nodell;
|
||||
|
||||
nodell = cutll(lst, token, 1);
|
||||
parrent->left = create_ast_n(nodell->node, parrent, msh);
|
||||
parrent->right = create_ast_n(nodell->next->node, parrent, msh);
|
||||
self->left = create_ast_n(nodell->node, self, msh, self->sh);
|
||||
self->right = create_ast_n(nodell->next->node, self, msh, self->sh);
|
||||
// free_lltab(sublsts);
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "../../../includes/minishell.h"
|
||||
#include <unistd.h>
|
||||
|
||||
t_ast_n *create_ast_n(t_node *lst, t_ast_n *parent, t_msh *msh)
|
||||
t_ast_n *create_ast_n(t_node *lst, t_ast_n *parent, t_msh *msh, bool subsh)
|
||||
{
|
||||
t_ast_n *node;
|
||||
t_node *token;
|
||||
@@ -29,6 +29,7 @@ t_ast_n *create_ast_n(t_node *lst, t_ast_n *parent, t_msh *msh)
|
||||
node->_stdin = 0;
|
||||
node->save_stdo = 1;
|
||||
node->save_stdi = 0;
|
||||
node->sh = subsh;
|
||||
if (node->state == _AND || node->state == _OR)
|
||||
create_and_or(node, lst, token, msh);
|
||||
else if (node->state == _SUBSH)
|
||||
@@ -44,6 +45,6 @@ t_ast_n *get_ast(t_msh *msh, t_node *lst)
|
||||
{
|
||||
t_ast_n *head;
|
||||
|
||||
head = create_ast_n(lst, NULL, msh);
|
||||
head = create_ast_n(lst, NULL, msh, false);
|
||||
return (head);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ void create_pline(t_ast_n *self, t_node *lst, t_node *token, t_msh *msh)
|
||||
i = 0;
|
||||
while (cpy)
|
||||
{
|
||||
self->pline[i] = create_ast_n(cpy->node, self, msh);
|
||||
self->pline[i] = create_ast_n(cpy->node, self, msh, self->sh);
|
||||
cpy = cpy->next;
|
||||
i++;
|
||||
}
|
||||
|
||||
@@ -40,8 +40,9 @@ void create_subsh(t_ast_n *self, t_node *lst, t_msh *msh)
|
||||
{
|
||||
t_node *cutted;
|
||||
|
||||
self->sh = true;
|
||||
cutted = remove_parentheses(lst);
|
||||
self->left = create_ast_n(cutted, self, msh);
|
||||
self->left = create_ast_n(cutted, self, msh, self->sh);
|
||||
self->files = NULL;
|
||||
self->redir = ft_calloc(1, sizeof(t_redir));
|
||||
self->redir[0] = _NR;
|
||||
|
||||
Reference in New Issue
Block a user