summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-07-30 22:14:06 +0200
committerJozanLeClerc <bousset.rudy@gmail.com>2020-07-30 22:14:06 +0200
commitdb381c5a5d8755937663a5ea61e655186f7606e7 (patch)
treee0cd8079eda191e838e994e8f31a83f838b6bf79 /src
parentDouble exit no more (diff)
download42-minishell-db381c5a5d8755937663a5ea61e655186f7606e7.tar.gz
42-minishell-db381c5a5d8755937663a5ea61e655186f7606e7.tar.bz2
42-minishell-db381c5a5d8755937663a5ea61e655186f7606e7.tar.xz
42-minishell-db381c5a5d8755937663a5ea61e655186f7606e7.tar.zst
42-minishell-db381c5a5d8755937663a5ea61e655186f7606e7.zip
Not too bad
Diffstat (limited to '')
-rw-r--r--src/e_externs.c1
-rw-r--r--src/p_lcom_next.c30
-rw-r--r--src/p_lcom_next.h1
-rw-r--r--src/s_lcom.c6
4 files changed, 33 insertions, 5 deletions
diff --git a/src/e_externs.c b/src/e_externs.c
index 3d55fa9..93d989f 100644
--- a/src/e_externs.c
+++ b/src/e_externs.c
@@ -76,7 +76,6 @@ void
if (fullpath == NULL)
{
f_fail_command_not_found(ptr->com);
- /* TODO: deal if not found etc */
}
else
{
diff --git a/src/p_lcom_next.c b/src/p_lcom_next.c
index a0ca8d1..4d0ca72 100644
--- a/src/p_lcom_next.c
+++ b/src/p_lcom_next.c
@@ -14,6 +14,7 @@
#include <stdlib.h>
#include <stdint.h>
+#include "d_enum.h"
#include "s_struct.h"
#include "u_vars.h"
@@ -95,3 +96,32 @@ char
ft_memdel((void*)&subst);
return (words);
}
+
+char
+ **p_check_first_arg_equals(char *words[])
+{
+ t_bool equals;
+ char *ptr;
+
+ equals = FALSE;
+ ptr = words[0];
+ while (*ptr != '\0')
+ {
+ if (*ptr == '=')
+ {
+ equals = TRUE;
+ break ;
+ }
+ ptr++;
+ }
+ if (equals == TRUE && words[1] != NULL)
+ {
+ ft_memdel((void*)&words[0]);
+ words = words + 1;
+ return (words);
+ }
+ else
+ {
+ return (words);
+ }
+}
diff --git a/src/p_lcom_next.h b/src/p_lcom_next.h
index 3113b6b..ad5c5c5 100644
--- a/src/p_lcom_next.h
+++ b/src/p_lcom_next.h
@@ -21,5 +21,6 @@ char **subst_vars(char *words[],
t_msh *msh);
char **subst_args(const char word[],
int8_t redir);
+char **p_check_first_arg_equals(char *words[]);
#endif
diff --git a/src/s_lcom.c b/src/s_lcom.c
index 31b14d6..773814f 100644
--- a/src/s_lcom.c
+++ b/src/s_lcom.c
@@ -49,11 +49,8 @@ static int8_t
j = 0;
while (i > 0 && j < i)
{
- if (!((*lcom)->argv[j] =
- (char*)malloc((ft_strlen(words[j]) + 1) * sizeof(char))))
+ if (!((*lcom)->argv[j] = ft_strdup(words[j])))
return (-1);
- ft_strlcpy((*lcom)->argv[j], words[j],
- ft_strlen(words[j]) + 1);
j++;
}
(*lcom)->argv[j] = 0;
@@ -134,6 +131,7 @@ t_lcom
return (NULL);
if (!(words = subst_vars(words, msh)))
return (NULL);
+ words = p_check_first_arg_equals(words);
if (fill_lcom(words, &link) < 0)
{
ft_delwords(words);