minishell/src/treedrawing.c

46 lines
1.5 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* treedrawing.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: khais <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/03/18 15:24:50 by khais #+# #+# */
/* Updated: 2025/03/18 15:33:39 by khais ### ########.fr */
/* */
/* ************************************************************************** */
#include "treedrawing.h"
#include "libft.h"
void indent(t_buffer **leader, bool is_last)
{
ft_printf("%s", (*leader)->buffer);
if (is_last)
{
ft_printf("%s", CORNER);
*leader = ft_buffer_push_buf(*leader, SPACE, ft_strlen(SPACE));
}
else
{
ft_printf("%s", CROSS);
*leader = ft_buffer_push_buf(*leader, VERTICAL, ft_strlen(VERTICAL));
}
}
void dedent(t_buffer **leader, bool is_last)
{
size_t length_to_remove;
size_t idx;
if (is_last)
length_to_remove = ft_strlen(SPACE);
else
length_to_remove = ft_strlen(VERTICAL);
idx = (*leader)->length - length_to_remove;
if (idx >= 0)
{
(*leader)->buffer[idx] = '\0';
(*leader)->length = idx;
}
}