diff --git a/includes/app/colors.h b/includes/app/colors.h new file mode 100644 index 00000000..6f80152e --- /dev/null +++ b/includes/app/colors.h @@ -0,0 +1,58 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* colors.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: maiboyer +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/07/20 15:06:54 by maiboyer #+# #+# */ +/* Updated: 2024/07/20 15:17:57 by maiboyer ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#ifndef COLORS_H +# define COLORS_H + +# define RESET "\x1b[0m" +# define BOLD "\x1b[1m" +# define WEAK "\x1b[2m" +# define ITALIC "\x1b[3m" +# define UNDERLINE "\x1b[4m" + +# define COL_BLACK "\x1b[30m" +# define COL_RED "\x1b[31m" +# define COL_GREEN "\x1b[32m" +# define COL_YELLOW "\x1b[33m" +# define COL_BLUE "\x1b[34m" +# define COL_MAGENTA "\x1b[35m" +# define COL_CYAN "\x1b[36m" +# define COL_WHITE "\x1b[37m" + +# define COLB_BLACK "\x1b[90m" +# define COLB_RED "\x1b[91m" +# define COLB_GREEN "\x1b[92m" +# define COLB_YELLOW "\x1b[93m" +# define COLB_BLUE "\x1b[94m" +# define COLB_MAGENTA "\x1b[95m" +# define COLB_CYAN "\x1b[96m" +# define COLB_WHITE "\x1b[97m" + +# define COLBG_BLACK "\x1b[40m" +# define COLBG_RED "\x1b[41m" +# define COLBG_GREEN "\x1b[42m" +# define COLBG_YELLOW "\x1b[43m" +# define COLBG_BLUE "\x1b[44m" +# define COLBG_MAGENTA "\x1b[45m" +# define COLBG_CYAN "\x1b[46m" +# define COLBG_WHITE "\x1b[47m" + +# define COLBBG_BLACK "\x1b[10m0" +# define COLBBG_RED "\x1b[10m1" +# define COLBBG_GREEN "\x1b[10m2" +# define COLBBG_YELLOW "\x1b[10m3" +# define COLBBG_BLUE "\x1b[10m4" +# define COLBBG_MAGENTA "\x1b[10m5" +# define COLBBG_CYAN "\x1b[10m6" +# define COLBBG_WHITE "\x1b[10m7" + +#endif /* COLORS_H */ diff --git a/line/src/line_editing.c b/line/src/line_editing.c index f2e3af51..0178f47d 100644 --- a/line/src/line_editing.c +++ b/line/src/line_editing.c @@ -6,7 +6,7 @@ /* By: maiboyer +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/11 18:21:45 by maiboyer #+# #+# */ -/* Updated: 2024/07/18 13:46:22 by maiboyer ### ########.fr */ +/* Updated: 2024/07/20 15:33:01 by maiboyer ### ########.fr */ /* */ /* ************************************************************************** */ @@ -45,17 +45,18 @@ t_usize line_get_prompt_len(t_const_str s) return (0); while (s[i]) { - if (s[i] == '\x1b' && s[i + 1] == '[') + if (s[i] == '\x1b' && s[++i] == '[') { - i += 2; - while (0x30 <= s[i] && s[i] <= 0x3F) + i++; + while ('0' <= s[i] && s[i] <= '?') i++; - while (0x20 <= s[i] && s[i] <= 0x2F) + while (' ' <= s[i] && s[i] <= '/') i++; - if (0x40 <= s[i] && s[i] <= 0x7E) + if ('@' <= s[i] && s[i] <= '~') i++; } - _modify_vars(&i, &ret, true); + else + _modify_vars(&i, &ret, true); } return (ret); } diff --git a/sources/main.c b/sources/main.c index d054c7eb..66ffef48 100644 --- a/sources/main.c +++ b/sources/main.c @@ -6,13 +6,15 @@ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/03/28 14:40:38 by rparodi #+# #+# */ -/* Updated: 2024/07/20 14:23:13 by maiboyer ### ########.fr */ +/* Updated: 2024/07/20 15:30:46 by maiboyer ### ########.fr */ /* */ /* ************************************************************************** */ +#include "app/colors.h" #include "app/env.h" #include "app/node.h" #include "app/signal_handler.h" +#include "ast/ast.h" #include "line/line.h" #include "me/hashmap/hashmap_env.h" #include "me/str/str.h" @@ -23,13 +25,6 @@ #include #include -#undef free -#undef malloc -#undef realloc -#undef calloc - -#include "ast/ast.h" - t_error ast_from_node(t_parse_node node, t_str input, t_ast_node *out); void ast_print_node(t_ast_node self); @@ -124,7 +119,7 @@ void exec_shcat(t_state *shcat) free_node(shcat->current_node); } -t_error handle_arguments(t_state *state) +t_error get_user_input(t_state *state) { t_line_state lstate; @@ -150,7 +145,7 @@ void ft_take_args(t_state *state) while (true) { state->str_input = NULL; - if (handle_arguments(state)) + if (get_user_input(state)) ft_exit(state, 1); if (state->str_input == NULL) ft_exit(state, 0); @@ -179,12 +174,10 @@ void free_myparser(t_parser self) ts_parser_delete(self.parser); } -#define IGN_START "\1" -#define IGN_END "\2" - t_i32 main(t_i32 argc, t_str argv[], t_str envp[]) { t_state state; + //char truc[] = COLB_YELLOW "42sh" COL_GREEN ">" COL_WHITE "$ " RESET; (void)argc; (void)argv; @@ -196,11 +189,6 @@ t_i32 main(t_i32 argc, t_str argv[], t_str envp[]) state.env = create_env_map(); if (populate_env(state.env, envp)) me_abort("Unable to build env hashmap"); - state.prompt = "\x1B[93m" - "42sh" - "\x1B[32m" - ">" - "\x1B[0m" - "$ "; + state.prompt = COLB_YELLOW "42sh" COL_GREEN ">" COL_WHITE "$ " RESET; ft_take_args(&state); }