This commit is contained in:
Loic Deridder
2025-02-12 11:40:38 +01:00
parent 99a74ea9ac
commit 3e35d58aa3
5 changed files with 23 additions and 11 deletions

View File

@@ -6,7 +6,7 @@
/* By: lderidde <lderidde@student.s19.be> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/01/27 11:22:33 by lderidde #+# #+# */
/* Updated: 2025/02/11 12:30:00 by lderidde ### ########.fr */
/* Updated: 2025/02/12 11:14:14 by lderidde ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,6 +14,8 @@
int execute_command(t_ast_n *node)
{
if (!node->cmd)
return (0);
if (node->state == _CMD)
handle_redir(node);
if (node->state == _CMD)

View File

@@ -84,7 +84,9 @@ int exec_scmd(t_ast_n *node)
pid_t pid;
int status;
if (is_builtin(node->cmd))
if (!node->cmd)
return (0);
else if (is_builtin(node->cmd))
return (exec_builtin(node));
else
{

View File

@@ -6,7 +6,7 @@
/* By: lderidde <lderidde@student.s19.be> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/02/07 12:58:25 by lderidde #+# #+# */
/* Updated: 2025/02/12 09:06:11 by lderidde ### ########.fr */
/* Updated: 2025/02/12 11:02:35 by lderidde ### ########.fr */
/* */
/* ************************************************************************** */
@@ -46,8 +46,9 @@ static char *extract_env(char *str, char **envp)
int get_new_len(t_ast_n *node, int j)
{
int i;
int len;
int i;
int len;
char *itoa;
i = 0;
len = ft_strlen(node->args[j]);
@@ -57,7 +58,9 @@ int get_new_len(t_ast_n *node, int j)
&& node->args[j][i + 1] == '?')
&& !in_squote(node->args[j], &node->args[j][i]))
{
len -= 1;
itoa = ft_itoa(node->msh->ex_code);
len += ft_strlen(itoa) - 2;
free(itoa);
}
else if (node->args[j][i] == '$' &&
!in_squote(node->args[j], &node->args[j][i]))
@@ -87,7 +90,7 @@ void expander_var(t_ast_n *nd, int j)
if (nd->args[j][k] != '$' || in_squote(nd->args[j], &nd->args[j][k]))
new[i] = nd->args[j][k++];
else if (expand_exit(nd, j, k))
cat_exit(nd, &new, i, &k);
cat_exit(nd, &new, &i, &k);
else if (valid_expand(nd, j, k))
{
ft_strlcat(new, extract_env(&nd->args[j][k], nd->msh->env), -1);

View File

@@ -6,7 +6,7 @@
/* By: lderidde <lderidde@student.s19.be> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/02/12 09:17:28 by lderidde #+# #+# */
/* Updated: 2025/02/12 09:17:28 by lderidde ### ########.fr */
/* Updated: 2025/02/12 11:01:55 by lderidde ### ########.fr */
/* */
/* ************************************************************************** */
@@ -48,8 +48,13 @@ void handle_copy(t_ast_n *node, int j, char **new)
node->args[j] = *new;
}
void cat_exit(t_ast_n *node, char **new, int i, int *k)
void cat_exit(t_ast_n *node, char **new, int *i, int *k)
{
(*new)[i] = node->msh->ex_code + '0';
char *itoa;
itoa = ft_itoa(node->msh->ex_code);
ft_strlcat(*new, itoa, -1);
*i = ft_strlen(*new) - 1;
*k += 2;
free(itoa);
}