diff options
Diffstat (limited to 'src/b_alias.c')
-rw-r--r-- | src/b_alias.c | 100 |
1 files changed, 1 insertions, 99 deletions
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 <unistd.h> #include <limits.h> +#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) { |