From 0ab424df075f09aac376890a9a5a73cb74e053bf Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Fri, 11 Sep 2020 16:56:23 +0200 Subject: alias in progress --- src/b_alias.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/b_alias.c (limited to 'src/b_alias.c') diff --git a/src/b_alias.c b/src/b_alias.c new file mode 100644 index 0000000..6848b68 --- /dev/null +++ b/src/b_alias.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* b_alias.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: rbousset +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/02/14 17:19:27 by rbousset #+# #+# */ +/* Updated: 2020/02/14 17:19:29 by rbousset ### ########lyon.fr */ +/* */ +/* ************************************************************************** */ + +#include + +#include "s_struct.h" + +uint8_t + b_alias(char *args[], t_msh *msh) +{ + (void)args; + (void)msh; + return (0); +} -- cgit v1.2.3 From 32fb33b2dea95c00dc37efd14d34c799b23d09cf Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Fri, 11 Sep 2020 18:07:48 +0200 Subject: In progress --- src/b_alias.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/b_alias.c') diff --git a/src/b_alias.c b/src/b_alias.c index 6848b68..3b70a02 100644 --- a/src/b_alias.c +++ b/src/b_alias.c @@ -13,9 +13,28 @@ #include #include "s_struct.h" +#include "u_utils.h" + +static void + b_print_alias_list(t_msh *msh) +{ + (void)msh; +} uint8_t b_alias(char *args[], t_msh *msh) +{ + const uint64_t argc = u_builtins_get_argc((const char**)args); + + if (argc == 0) + { + b_print_alias_list(msh); + } + return (0); +} + +uint8_t + b_alias_mute(char *args[], t_msh *msh) { (void)args; (void)msh; -- cgit v1.2.3 From 32592aa00b7799b172e3a54eb5a525ae17fed9ae Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Fri, 11 Sep 2020 18:33:11 +0200 Subject: In progress --- src/b_alias.c | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) (limited to 'src/b_alias.c') diff --git a/src/b_alias.c b/src/b_alias.c index 3b70a02..08f40ed 100644 --- a/src/b_alias.c +++ b/src/b_alias.c @@ -18,25 +18,52 @@ static void b_print_alias_list(t_msh *msh) { - (void)msh; + t_lalias *ptr; + + ptr = msh->alias; + while (ptr != NULL) + { + ft_printf("alias %s='%s'\n", ptr->name, ptr->val); + ptr = ptr->next; + } +} + +static void + b_print_arg(const char arg[], t_msh *msh) +{ + char *ptr; } uint8_t b_alias(char *args[], t_msh *msh) { const uint64_t argc = u_builtins_get_argc((const char**)args); + int32_t i; if (argc == 0) { b_print_alias_list(msh); } + if (argc > 0) + { + i = 0; + while (args[i] != NULL) + { + b_print_arg(args[i], msh); + i++; + } + } return (0); } uint8_t b_alias_mute(char *args[], t_msh *msh) { - (void)args; + const uint64_t argc = u_builtins_get_argc((const char**)args); + (void)msh; + if (argc > 0) + { + } return (0); } -- cgit v1.2.3 From be1403ef70e51442df459b1ef89f547cbc9af4ca Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Fri, 11 Sep 2020 19:32:47 +0200 Subject: This shit is killing me --- src/b_alias.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 75 insertions(+), 6 deletions(-) (limited to 'src/b_alias.c') diff --git a/src/b_alias.c b/src/b_alias.c index 08f40ed..8aff531 100644 --- a/src/b_alias.c +++ b/src/b_alias.c @@ -10,9 +10,14 @@ /* */ /* ************************************************************************** */ +#include #include +#include +#include +#include "d_define.h" #include "s_struct.h" +#include "u_alias.h" #include "u_utils.h" static void @@ -28,10 +33,64 @@ static void } } -static void +static uint8_t b_print_arg(const char arg[], t_msh *msh) { char *ptr; + char val[ARG_MAX]; + t_bool invalid; + + ptr = (char*)arg; + invalid = FALSE; + while (*ptr != C_NUL && *ptr != C_EQUALS) + { + if (ft_iswhitespace(*ptr) == TRUE) + invalid = TRUE; + ptr++; + } + if (*ptr == C_NUL) + { + if (u_get_alias_value(val, arg, ARG_MAX, msh) == 0) + { + ft_printf("alias %s='%s'", arg, val); + return (0); + } + else + { + ft_dprintf(STDERR_FILENO, "minishell: alias: %s: not found\n", arg); + return (1); + } + } + else if (*ptr == C_EQUALS && invalid == TRUE) + { + ft_strlcpy(val, arg, ptr - arg); + ft_dprintf(STDERR_FILENO, + "minishell: alias: `%s': invalid alias name\n", + val); + return (1); + } + return (0); +} + +static void + b_register_arg(const char arg[], t_msh *msh) +{ + char *ptr; + char name[255]; + char value[ARG_MAX]; + + ptr = (char*)arg; + while (*ptr != C_NUL && *ptr != C_EQUALS) + { + ptr++; + } + if (*ptr == C_EQUALS) + { + ft_strlcpy(name, arg, (ptr - arg < 255) ? ((ptr - arg) + 1) : (255)); + ptr += 1; + ft_strlcpy(value, ptr, ARG_MAX); + u_set_alias_value(name, value, msh); + } } uint8_t @@ -39,7 +98,9 @@ uint8_t { const uint64_t argc = u_builtins_get_argc((const char**)args); int32_t i; + uint8_t ret; + ret = 0; if (argc == 0) { b_print_alias_list(msh); @@ -49,21 +110,29 @@ uint8_t i = 0; while (args[i] != NULL) { - b_print_arg(args[i], msh); + if (b_print_arg(args[i], msh) != 0) + { + ret = 1; + } i++; } } - return (0); + return (ret); } -uint8_t +void b_alias_mute(char *args[], t_msh *msh) { const uint64_t argc = u_builtins_get_argc((const char**)args); + int32_t i; - (void)msh; if (argc > 0) { + i = 0; + while (args[i] != NULL) + { + b_register_arg(args[i], msh); + i++; + } } - return (0); } -- cgit v1.2.3 From 949f93b57b6411b07eb12110e0db37cdf393db0c Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sat, 12 Sep 2020 16:33:02 +0200 Subject: Fuck --- src/b_alias.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/b_alias.c') diff --git a/src/b_alias.c b/src/b_alias.c index 8aff531..08298b3 100644 --- a/src/b_alias.c +++ b/src/b_alias.c @@ -50,7 +50,7 @@ static uint8_t } if (*ptr == C_NUL) { - if (u_get_alias_value(val, arg, ARG_MAX, msh) == 0) + if (u_get_alias_value(val, arg, ARG_MAX, msh) != 0) { ft_printf("alias %s='%s'", arg, val); return (0); -- cgit v1.2.3 From f7eb7d0c123e71f8b3998199a690b5d57aa96e1f Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sat, 12 Sep 2020 17:25:26 +0200 Subject: In progress --- src/b_alias.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/b_alias.c') diff --git a/src/b_alias.c b/src/b_alias.c index 08298b3..55b7232 100644 --- a/src/b_alias.c +++ b/src/b_alias.c @@ -24,6 +24,8 @@ static void b_print_alias_list(t_msh *msh) { t_lalias *ptr; + size_t i; + /* char buff[255][255][ARG_MAX]; */ ptr = msh->alias; while (ptr != NULL) -- cgit v1.2.3 From 3f726e2433438176a6b7f73df7d6bf51a185c5b2 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sat, 12 Sep 2020 18:11:56 +0200 Subject: Fix --- src/b_alias.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/b_alias.c') diff --git a/src/b_alias.c b/src/b_alias.c index 55b7232..5ca86da 100644 --- a/src/b_alias.c +++ b/src/b_alias.c @@ -28,11 +28,13 @@ static void /* char buff[255][255][ARG_MAX]; */ ptr = msh->alias; + i = 0; while (ptr != NULL) { - ft_printf("alias %s='%s'\n", ptr->name, ptr->val); ptr = ptr->next; + i++; } + ft_printf("alias %s='%s'\n", ptr->name, ptr->val); } static uint8_t -- cgit v1.2.3 From b41111c07a40ee405fb8e8b6c178a315272db7ae Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sat, 12 Sep 2020 19:16:21 +0200 Subject: Sorted alias --- src/b_alias.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 2 deletions(-) (limited to 'src/b_alias.c') diff --git a/src/b_alias.c b/src/b_alias.c index 5ca86da..c00a616 100644 --- a/src/b_alias.c +++ b/src/b_alias.c @@ -12,6 +12,7 @@ #include #include +#include #include #include @@ -20,12 +21,87 @@ #include "u_alias.h" #include "u_utils.h" +static char + **b_alloc_buff(t_lalias *ptr, size_t i) +{ + char **buff; + + if ((buff = (char**)malloc((i + 1) * sizeof(char*))) == NULL) + return (NULL); + i = 0; + while (ptr != NULL) + { + buff[i + 1] = NULL; + if ((buff[i] = (char*)malloc((6 + ft_strlen(ptr->name) + 2 + + ft_strlen(ptr->val) + 3) * sizeof(char))) == NULL) + { + ft_delwords(buff); + return (NULL); + } + ptr = ptr->next; + i++; + } + return (buff); +} + +static void + b_fill_buff(t_lalias *ptr, char *buff[]) +{ + size_t i; + + i = 0; + while (ptr != NULL) + { + ft_sprintf(buff[i], "alias %s='%s'\n", ptr->name, ptr->val); + ptr = ptr->next; + i++; + } +} + +static void + b_sort_buff(char *buff[]) +{ + size_t i; + int cmp; + char tmp[ARG_MAX]; + + i = 1; + while (buff[i] != NULL) + { + if ((cmp = ft_strncmp(buff[i - 1], buff[i], ARG_MAX)) > 0) + { + ft_strlcpy(tmp, buff[i - 1], ARG_MAX); + ft_memdel((void*)&buff[i - 1]); + if ((buff[i - 1] = ft_strdup(buff[i])) == NULL) + return ; + ft_memdel((void*)&buff[i]); + if ((buff[i] = ft_strdup(tmp)) == NULL) + return ; + i = 0; + } + i++; + } +} + +static void + b_print_buff(char *buff[]) +{ + char **ptr; + + ptr = buff; + while (*ptr != NULL) + { + ft_printf("%s", *ptr); + ptr++; + } +} + static void b_print_alias_list(t_msh *msh) { t_lalias *ptr; + char **buff; size_t i; - /* char buff[255][255][ARG_MAX]; */ ptr = msh->alias; i = 0; @@ -34,7 +110,14 @@ static void ptr = ptr->next; i++; } - ft_printf("alias %s='%s'\n", ptr->name, ptr->val); + ptr = msh->alias; + if ((buff = b_alloc_buff(ptr, i)) == NULL) + return ; + ptr = msh->alias; + b_fill_buff(ptr, buff); + b_sort_buff(buff); + b_print_buff(buff); + ft_delwords(buff); } static uint8_t -- cgit v1.2.3 From 690752d22b5aac9a836e8ba09c8c2544f8d026bd Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sat, 12 Sep 2020 20:00:38 +0200 Subject: Norme in progress --- src/b_alias.c | 100 +--------------------------------------------------------- 1 file changed, 1 insertion(+), 99 deletions(-) (limited to 'src/b_alias.c') diff --git a/src/b_alias.c b/src/b_alias.c index c00a616..badd281 100644 --- a/src/b_alias.c +++ b/src/b_alias.c @@ -16,110 +16,12 @@ #include #include +#include "b_alias_print.h" #include "d_define.h" #include "s_struct.h" #include "u_alias.h" #include "u_utils.h" -static char - **b_alloc_buff(t_lalias *ptr, size_t i) -{ - char **buff; - - if ((buff = (char**)malloc((i + 1) * sizeof(char*))) == NULL) - return (NULL); - i = 0; - while (ptr != NULL) - { - buff[i + 1] = NULL; - if ((buff[i] = (char*)malloc((6 + ft_strlen(ptr->name) + 2 - + ft_strlen(ptr->val) + 3) * sizeof(char))) == NULL) - { - ft_delwords(buff); - return (NULL); - } - ptr = ptr->next; - i++; - } - return (buff); -} - -static void - b_fill_buff(t_lalias *ptr, char *buff[]) -{ - size_t i; - - i = 0; - while (ptr != NULL) - { - ft_sprintf(buff[i], "alias %s='%s'\n", ptr->name, ptr->val); - ptr = ptr->next; - i++; - } -} - -static void - b_sort_buff(char *buff[]) -{ - size_t i; - int cmp; - char tmp[ARG_MAX]; - - i = 1; - while (buff[i] != NULL) - { - if ((cmp = ft_strncmp(buff[i - 1], buff[i], ARG_MAX)) > 0) - { - ft_strlcpy(tmp, buff[i - 1], ARG_MAX); - ft_memdel((void*)&buff[i - 1]); - if ((buff[i - 1] = ft_strdup(buff[i])) == NULL) - return ; - ft_memdel((void*)&buff[i]); - if ((buff[i] = ft_strdup(tmp)) == NULL) - return ; - i = 0; - } - i++; - } -} - -static void - b_print_buff(char *buff[]) -{ - char **ptr; - - ptr = buff; - while (*ptr != NULL) - { - ft_printf("%s", *ptr); - ptr++; - } -} - -static void - b_print_alias_list(t_msh *msh) -{ - t_lalias *ptr; - char **buff; - size_t i; - - ptr = msh->alias; - i = 0; - while (ptr != NULL) - { - ptr = ptr->next; - i++; - } - ptr = msh->alias; - if ((buff = b_alloc_buff(ptr, i)) == NULL) - return ; - ptr = msh->alias; - b_fill_buff(ptr, buff); - b_sort_buff(buff); - b_print_buff(buff); - ft_delwords(buff); -} - static uint8_t b_print_arg(const char arg[], t_msh *msh) { -- cgit v1.2.3 From ee62c034f1c6133976039fa51c31b91816befd63 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Sat, 12 Sep 2020 20:25:07 +0200 Subject: Aliases done --- src/b_alias.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'src/b_alias.c') diff --git a/src/b_alias.c b/src/b_alias.c index badd281..daa6e99 100644 --- a/src/b_alias.c +++ b/src/b_alias.c @@ -23,20 +23,10 @@ #include "u_utils.h" static uint8_t - b_print_arg(const char arg[], t_msh *msh) + b_print_arg_next(char *ptr, const char arg[], t_bool invalid, t_msh *msh) { - char *ptr; char val[ARG_MAX]; - t_bool invalid; - ptr = (char*)arg; - invalid = FALSE; - while (*ptr != C_NUL && *ptr != C_EQUALS) - { - if (ft_iswhitespace(*ptr) == TRUE) - invalid = TRUE; - ptr++; - } if (*ptr == C_NUL) { if (u_get_alias_value(val, arg, ARG_MAX, msh) != 0) @@ -61,6 +51,23 @@ static uint8_t return (0); } +static uint8_t + b_print_arg(const char arg[], t_msh *msh) +{ + char *ptr; + t_bool invalid; + + ptr = (char*)arg; + invalid = FALSE; + while (*ptr != C_NUL && *ptr != C_EQUALS) + { + if (ft_iswhitespace(*ptr) == TRUE) + invalid = TRUE; + ptr++; + } + return (b_print_arg_next(ptr, arg, invalid, msh)); +} + static void b_register_arg(const char arg[], t_msh *msh) { -- cgit v1.2.3 From 33a5806163fb91e4a72e188a9933ada20395f4e9 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Tue, 15 Sep 2020 20:44:45 +0200 Subject: Builtins ref toked --- src/b_alias.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/b_alias.c') diff --git a/src/b_alias.c b/src/b_alias.c index daa6e99..5ddc46f 100644 --- a/src/b_alias.c +++ b/src/b_alias.c @@ -99,9 +99,11 @@ uint8_t ret = 0; if (argc == 0) { + if (msh->alias == NULL) + return (0); b_print_alias_list(msh); } - if (argc > 0) + else if (argc > 0) { i = 0; while (args[i] != NULL) -- cgit v1.2.3