From bea145636dae6274af4bba3cd83bd566fb7d597b Mon Sep 17 00:00:00 2001 From: starnakin Date: Wed, 28 Jun 2023 20:46:40 +0200 Subject: [PATCH] add: loop read input --- src/main.c | 21 ++++++++++++++++----- src/utils/is_in_quote.c | 25 +++++++++++++++++++++++++ src/utils/utils.h | 5 +++++ 3 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 src/utils/is_in_quote.c create mode 100644 src/utils/utils.h diff --git a/src/main.c b/src/main.c index adfe38b..b4aba98 100644 --- a/src/main.c +++ b/src/main.c @@ -1,12 +1,23 @@ -#include "prompt/prompt.h" #include "./env/env.h" +#include "./input/input.h" #include -int main(int ac, char **av, char **env) +int main(int ac, char **av, char **env_str) { - lst** lst_env; + char *line; + lst** env; + (void) av; (void) ac; - lst_env = env_init((const char **) env); - printf(get_prompt(lst_env)); + env = env_init((const char **) env_str); + if (env == NULL) + return (1); + line = get_user_input(env); + while (line != NULL) + { + free(line); + line = get_user_input(env); + } + lst_clear(env, &env_del); + return (0); } diff --git a/src/utils/is_in_quote.c b/src/utils/is_in_quote.c new file mode 100644 index 0000000..543a13b --- /dev/null +++ b/src/utils/is_in_quote.c @@ -0,0 +1,25 @@ +#include "utils.h" + +int is_in_quote(const char *str) +{ + int out = 0; + + for (size_t i = 0; str[i] != '\0'; i++) + { + if (str[i] == '\"') + { + if (out == 2) + out = 0; + else + out = 2; + } + else if (str[i] == '\'') + { + if (out == 1) + out = 0; + else + out = 1; + } + } + return (out); +} diff --git a/src/utils/utils.h b/src/utils/utils.h new file mode 100644 index 0000000..3c322fa --- /dev/null +++ b/src/utils/utils.h @@ -0,0 +1,5 @@ +#pragma once +#include + +int is_in_quote(const char *str); +