Handle null string and null pointer

This commit is contained in:
gbaconni
2022-04-25 07:14:14 +02:00
parent 7cd65fdc9e
commit be4099ab31
3 changed files with 13 additions and 4 deletions

View File

@@ -6,7 +6,7 @@
# By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ # # By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2022/01/18 15:11:16 by gbaconni #+# #+# # # Created: 2022/01/18 15:11:16 by gbaconni #+# #+# #
# Updated: 2022/04/24 11:41:45 by gbaconni ### lausanne.ch # # Updated: 2022/04/25 07:11:15 by gbaconni ### lausanne.ch #
# # # #
# **************************************************************************** # # **************************************************************************** #
# #
@@ -89,6 +89,7 @@ fast:
test: clean $(NAME) test: clean $(NAME)
@$(PREFIX) ./$(NAME) "%c" C @$(PREFIX) ./$(NAME) "%c" C
@$(PREFIX) ./$(NAME) "%s" "42 Lausanne" @$(PREFIX) ./$(NAME) "%s" "42 Lausanne"
@$(PREFIX) ./$(NAME) "%s" ""
@$(PREFIX) ./$(NAME) "%d" 42 @$(PREFIX) ./$(NAME) "%d" 42
@$(PREFIX) ./$(NAME) "%i" 2147483647 @$(PREFIX) ./$(NAME) "%i" 2147483647
@$(PREFIX) ./$(NAME) "%i" -2147483646 @$(PREFIX) ./$(NAME) "%i" -2147483646

View File

@@ -6,7 +6,7 @@
/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/01/20 11:56:37 by gbaconni #+# #+# */ /* Created: 2022/01/20 11:56:37 by gbaconni #+# #+# */
/* Updated: 2022/04/24 00:59:10 by gbaconni ### lausanne.ch */ /* Updated: 2022/04/25 07:12:44 by gbaconni ### lausanne.ch */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@@ -18,7 +18,13 @@ int ft_vprintf_string(const char *format, va_list ap)
char *s; char *s;
(void) format; (void) format;
ret = 0;
s = va_arg(ap, char *); s = va_arg(ap, char *);
if (s == NULL)
{
ret = ft_puts("(null)");
return (ret);
}
ret = ft_puts(s); ret = ft_puts(s);
return (ret); return (ret);
} }

6
main.c
View File

@@ -6,7 +6,7 @@
/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2022/04/13 06:58:46 by gbaconni #+# #+# */ /* Created: 2022/04/13 06:58:46 by gbaconni #+# #+# */
/* Updated: 2022/04/24 11:14:40 by gbaconni ### lausanne.ch */ /* Updated: 2022/04/25 07:08:49 by gbaconni ### lausanne.ch */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@@ -59,7 +59,7 @@ int _printf(int (*f)(const char *restrict, ...), \
else if (c == 's') else if (c == 's')
ret = (*f)(format, arg); ret = (*f)(format, arg);
else if (c == 'p') else if (c == 'p')
ret = (*f)(format, &arg); ret = (*f)(format, (arg)? &arg: NULL);
else if (c == 'x' || c == 'X') else if (c == 'x' || c == 'X')
ret = (*f)(format, atol(arg)); ret = (*f)(format, atol(arg));
else if (c == 'd' || c == 'i' || c == 'u') else if (c == 'd' || c == 'i' || c == 'u')
@@ -99,6 +99,8 @@ int assert_printf(char *format, char *arg)
char out[256]; char out[256];
char ft_out[256]; char ft_out[256];
if (arg == NULL || strcmp(arg, "") == 0)
arg = NULL;
ret = _sprintf(printf, out, format, arg); ret = _sprintf(printf, out, format, arg);
printf("%d = printf(\"%s\", '%s')\n%s\n", ret, format, arg, out); printf("%d = printf(\"%s\", '%s')\n%s\n", ret, format, arg, out);
ft_ret = _sprintf(ft_printf, ft_out, format, arg); ft_ret = _sprintf(ft_printf, ft_out, format, arg);