diff --git a/libft/src/btree/btree_print.c b/libft/src/btree/btree_print.c index 757fa330..ec3108bd 100644 --- a/libft/src/btree/btree_print.c +++ b/libft/src/btree/btree_print.c @@ -37,29 +37,12 @@ static int print_t(t_btree *tree, right = print_t(tree->right, (int[3]){ 0, data[offset] + left + width, data[depth] + 1}, s, printer); i = -1; - while (++i < width) - s[data[depth]][data[offset] + left + i] = b[i]; - if (data[depth] && data[is_left]) - { - i = -1; - while (++i < width) - s[data[depth] - 1][data[offset] + left + width / 2 + i] = '-'; - s[data[depth] - 1][data[offset] + left + width / 2] = '.'; - } - else if (data[depth] && !data[is_left]) - { - i = -1; - while (++i < width) - s[data[depth] - 1][data[offset] - width / 2 + i] = '-'; - s[data[depth] - 1][data[offset] + left + width / 2] = '.'; - } - i = -1; while (++i < width) s[2 * data[depth]][data[offset] + left + i] = b[i]; if (data[depth] && data[is_left]) { i = -1; - while (++i < width) + while (++i < width + right) s[2 * data[depth] - 1][data[offset] + left + width / 2 + i] = '-'; s[2 * data[depth] - 1][data[offset] + left + width / 2] = '+'; s[2 * data[depth] - 1][ @@ -68,7 +51,7 @@ static int print_t(t_btree *tree, else if (data[depth] && !data[is_left]) { i = -1; - while (++i < width) + while (++i < width + left) s[2 * data[depth] - 1][data[offset] - width / 2 + i] = '-'; s[2 * data[depth] - 1][data[offset] + left + width / 2] = '+'; s[2 * data[depth] - 1][data[offset] - width / 2 - 1] = '+'; diff --git a/libft/src/sstr/ft_sstradd.c b/libft/src/sstr/ft_sstradd.c index 55cad1f1..f0ba213b 100644 --- a/libft/src/sstr/ft_sstradd.c +++ b/libft/src/sstr/ft_sstradd.c @@ -20,13 +20,19 @@ char **ft_sstradd(char **sstr, char *new) i = 0; size = 0; - while (sstr && sstr[size]) - size++; + if (sstr) + while (sstr[size]) + size++; if (!(newlist = (char **)malloc(sizeof(char *) * (size + 2)))) return (NULL); - while (sstr && *sstr) - newlist[i++] = *sstr++; - newlist[i++] = new; + if (sstr) + while (sstr[i]) + { + newlist[i] = sstr[i]; + i++; + } + newlist[i++] = ft_strdup(new); newlist[i] = NULL; + free(sstr); return (newlist); } diff --git a/libft/src/sstr/ft_sstrprint.c b/libft/src/sstr/ft_sstrprint.c index 5d0b0c31..a6b5f248 100644 --- a/libft/src/sstr/ft_sstrprint.c +++ b/libft/src/sstr/ft_sstrprint.c @@ -18,5 +18,9 @@ void ft_sstrprint(char **list, char sep) i = 0; while (list[i]) - ft_printf("%s%c", list[i++], sep); + { + ft_putstr(list[i++]); + if (list[i]) + ft_putchar(sep); + } }