philosopher/libft/ft_strjoin_free.c
2023-03-06 17:38:20 +01:00

36 lines
1.3 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strjoin_free.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/07/27 14:47:27 by erey-bet #+# #+# */
/* Updated: 2023/01/17 16:25:07 by erey-bet ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft.h"
char *ft_strjoin_free(char *s1, char *s2, int b)
{
char *tmp;
int size;
if (s1 == NULL)
return (s2);
else if (s2 == NULL)
return (s1);
size = ft_strlen(s1) + ft_strlen(s2) + 1;
tmp = ft_calloc(size, 1);
if (tmp == NULL)
return (NULL);
ft_strlcpy(tmp, s1, size);
ft_strlcat(tmp, s2, size);
if (b > 0)
free(s1);
if (b > 1)
free(s2);
return (tmp);
}