Changed ft_strlcat so it correctly handles size = 0 with dst = NULL. 42Project
authorLukas Jiriste <ljiriste@student.42prague.com>
Thu, 7 Sep 2023 12:57:26 +0000 (14:57 +0200)
committerLukas Jiriste <ljiriste@student.42prague.com>
Thu, 7 Sep 2023 12:57:26 +0000 (14:57 +0200)
(according to alelievr/libft-unit-test)

ft_strlcat.c

index 08395ca93b63dc27377cc542364734faa0f38bfc..0fdfb1e8799fa24512e2e1b5a5bceb13d0f6c64b 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: ljiriste <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2023/06/12 17:32:33 by ljiriste          #+#    #+#             */
-/*   Updated: 2023/09/05 18:40:14 by ljiriste         ###   ########.fr       */
+/*   Updated: 2023/09/07 14:51:19 by ljiriste         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
 #include <sys/types.h>
 #include "libft.h"
 
-size_t ft_strlcat(char *dst, const char *src, size_t size)
+static size_t  unprotected_strlcat(char *dst, const char *src, size_t size)
 {
        size_t  length;
 
-       if ((dst == NULL && src == NULL) || size == 0)
-               return (0);
        length = 0;
        while (*dst && size > length)
        {
@@ -42,3 +40,12 @@ size_t       ft_strlcat(char *dst, const char *src, size_t size)
        }
        return (length);
 }
+
+size_t ft_strlcat(char *dst, const char *src, size_t size)
+{
+       if (dst == NULL && src == NULL)
+               return (0);
+       if (size == 0)
+               return (ft_strlen(src));
+       return (unprotected_strlcat(dst, src, size));
+}