summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJozanLeClerc <bousset.rudy@gmail.com>2020-09-06 18:25:02 +0200
committerJozanLeClerc <bousset.rudy@gmail.com>2020-09-06 18:25:02 +0200
commit9ed927a6d4fd26dcdc7c094a0001521f072d8ae4 (patch)
tree1ad8c70b67ccc85d9776f39768aaf28e24ffcf7b
parentGitignore update (diff)
download42-minishell-9ed927a6d4fd26dcdc7c094a0001521f072d8ae4.tar.gz
42-minishell-9ed927a6d4fd26dcdc7c094a0001521f072d8ae4.tar.bz2
42-minishell-9ed927a6d4fd26dcdc7c094a0001521f072d8ae4.tar.xz
42-minishell-9ed927a6d4fd26dcdc7c094a0001521f072d8ae4.tar.zst
42-minishell-9ed927a6d4fd26dcdc7c094a0001521f072d8ae4.zip
Update
-rw-r--r--TODO.org1
-rw-r--r--src/b_echo.c66
-rw-r--r--src/p_args.c27
-rw-r--r--src/p_args_escape.c2
4 files changed, 17 insertions, 79 deletions
diff --git a/TODO.org b/TODO.org
index fd602a9..3eadba8 100644
--- a/TODO.org
+++ b/TODO.org
@@ -7,6 +7,7 @@
** DONE [#A] fix pwd when cd /
** DONE [#A] Multiline pipes (ls |)
** TODO [#A] Go full tok + quotes
+** TODO [#A] Variables quotes qwe="okokoko kkok" asd='bav'
** TODO [#A] ls qweqwe; echo $? <---- substitute
** TODO [#A] Careful p_line \;
** TODO [#A] <>>
diff --git a/src/b_echo.c b/src/b_echo.c
index ec66049..b3d4953 100644
--- a/src/b_echo.c
+++ b/src/b_echo.c
@@ -18,79 +18,16 @@
#include "s_struct.h"
#include "u_utils.h"
-/* TODO: echo "quoted text", echo 'quoted text', done*/
-/* echo kill\nbackslash\nbut\nnot\nn, echo "quoted\nnew\nlines", done */
-/* full buffer */
-
-void
- e_put(char *str,
- uint8_t op)
-{
- size_t i;
-
- i = -1;
- if (op == 0)
- while (str[++i])
- {
- if (str[i] == '\\')
- i++;
- ft_putchar(str[i]);
- }
-}
-
-char
- *e_initb(char *ptr[],
- char *str)
-{
- size_t len;
- uint8_t i;
-
- len = 0;
- i = -1;
- while (ptr[++i])
- {
- len += ft_strlen(ptr[i]);
- }
- if (!(str = (char*)malloc(len * sizeof(char))))
- return (NULL);
- return (str);
-}
-
-/***********************************************/
-/* void */
-/* e_fill(char *ptr[], char **str) */
-/* { */
-/* char *bs; */
-/* */
-/* ft_sprintf(*str, "%s", *ptr); */
-/* if (*str[0] == '\"' || *str[0] == '\'') */
-/* { */
-/* *str = ft_strtrim(*str, "\"\'"); */
-/* ft_printf("%s", *str); */
-/* } */
-/* else if ((bs = ft_strrchr(*str, '\\'))) */
-/* { */
-/* e_put(*str, 0); */
-/* } */
-/* else */
-/* ft_printf("%s", *str); */
-/* } */
-/***********************************************/
-
uint8_t
- b_echo(char *args[],
- t_msh *msh)
+ b_echo(char *args[], t_msh *msh)
{
const uint64_t argc = u_builtins_get_argc((const char **)args);
char **ptr;
- char *str;
int8_t nopt;
(void)msh;
ptr = args;
nopt = 0;
- str = NULL;
- str = e_initb(ptr, str);
if (argc >= 1)
{
if (ft_strncmp(ptr[0], "-n", 3) == 0)
@@ -109,7 +46,6 @@ uint8_t
}
}
}
- ft_memdel((void*)&str);
if (nopt == 0)
ft_printf("\n");
return (0);
diff --git a/src/p_args.c b/src/p_args.c
index 7f5302f..79f66bd 100644
--- a/src/p_args.c
+++ b/src/p_args.c
@@ -24,18 +24,18 @@
/* TODO: DELETE THIS */
/* ================= */
-/* static void */
-/* p_print(char *words[]) */
-/* { */
-/* char **ptr; */
-
-/* ptr = words; */
-/* while (*ptr != NULL) */
-/* { */
-/* ft_printf("[%s]\n", *ptr); */
-/* ptr++; */
-/* } */
-/* } */
+static void
+p_print(char *words[])
+{
+ char **ptr;
+
+ ptr = words;
+ while (*ptr != NULL)
+ {
+ ft_printf("[%s]\n", *ptr);
+ ptr++;
+ }
+}
/* ================== */
/* TODO: DELETE ABOVE */
@@ -166,6 +166,8 @@ static char
return (NULL);
}
p_args_escape_chars_and_quotes(words);
+ p_print(words);
+ exit(0);
return (words);
}
@@ -179,7 +181,6 @@ char
{
if ((words = p_split_words_no_rdr(word)) == NULL)
return (NULL);
- exit(0);
return (words);
}
return (words);
diff --git a/src/p_args_escape.c b/src/p_args_escape.c
index 834d9f7..ed319a1 100644
--- a/src/p_args_escape.c
+++ b/src/p_args_escape.c
@@ -108,7 +108,7 @@ static void
{
if (*ptr == C_SQUOTE)
mode = p_escape_squote(ptr, &ptr, word, mode);
- else if (*ptr == C_DQUOTE)
+ if (*ptr == C_DQUOTE)
mode = p_escape_dquote(ptr, &ptr, word, mode);
if (*ptr == C_BACKS)
p_escape_bs(ptr, &ptr, word, mode);