Handle null string and null pointer
This commit is contained in:
3
Makefile
3
Makefile
@@ -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
|
||||||
|
|||||||
@@ -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
6
main.c
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user