From 2b5b1de944ea928da48db16e5afb8301c36c846a Mon Sep 17 00:00:00 2001 From: gbaconni Date: Fri, 29 Apr 2022 15:18:54 +0200 Subject: [PATCH] Rename all ft_vprintf_*.c to ft_va_*.c --- libftprintf/Makefile | 30 ++++++++------- libftprintf/ft_eoflags.c | 2 +- .../{ft_vprintf_char.c => ft_va_char.c} | 6 +-- .../{ft_vprintf_decimal.c => ft_va_decimal.c} | 24 ++---------- libftprintf/ft_va_decimal_bonus.c | 38 +++++++++++++++++++ .../{ft_vprintf_escape.c => ft_va_escape.c} | 6 +-- ...intf_flags_bonus.c => ft_va_flags_bonus.c} | 6 +-- ...intf_hexadecimal.c => ft_va_hexadecimal.c} | 11 ++---- libftprintf/ft_va_hexadecimal_bonus.c | 26 +++++++++++++ .../{ft_vprintf_other.c => ft_va_other.c} | 6 +-- .../{ft_vprintf_percent.c => ft_va_percent.c} | 18 ++++----- .../{ft_vprintf_pointer.c => ft_va_pointer.c} | 6 +-- ...cision_bonus.c => ft_va_precision_bonus.c} | 6 +-- .../{ft_vprintf_string.c => ft_va_string.c} | 18 ++------- .../{ft_skipchars.c => ft_va_string_bonus.c} | 29 ++++++-------- libftprintf/ft_vprintf.c | 6 +-- libftprintf/libftprintf.h | 28 +++++++------- main.c | 24 +++++++++++- 18 files changed, 172 insertions(+), 118 deletions(-) rename libftprintf/{ft_vprintf_char.c => ft_va_char.c} (81%) rename libftprintf/{ft_vprintf_decimal.c => ft_va_decimal.c} (70%) create mode 100644 libftprintf/ft_va_decimal_bonus.c rename libftprintf/{ft_vprintf_escape.c => ft_va_escape.c} (90%) rename libftprintf/{ft_vprintf_flags_bonus.c => ft_va_flags_bonus.c} (85%) rename libftprintf/{ft_vprintf_hexadecimal.c => ft_va_hexadecimal.c} (78%) create mode 100644 libftprintf/ft_va_hexadecimal_bonus.c rename libftprintf/{ft_vprintf_other.c => ft_va_other.c} (81%) rename libftprintf/{ft_vprintf_percent.c => ft_va_percent.c} (70%) rename libftprintf/{ft_vprintf_pointer.c => ft_va_pointer.c} (85%) rename libftprintf/{ft_vprintf_precision_bonus.c => ft_va_precision_bonus.c} (84%) rename libftprintf/{ft_vprintf_string.c => ft_va_string.c} (71%) rename libftprintf/{ft_skipchars.c => ft_va_string_bonus.c} (61%) diff --git a/libftprintf/Makefile b/libftprintf/Makefile index 53a0913..d39d700 100644 --- a/libftprintf/Makefile +++ b/libftprintf/Makefile @@ -6,7 +6,7 @@ # By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2022/01/18 15:11:16 by gbaconni #+# #+# # -# Updated: 2022/04/29 10:20:22 by gbaconni ### ########.fr # +# Updated: 2022/04/29 14:18:53 by gbaconni ### ########.fr # # # # **************************************************************************** # # @@ -33,25 +33,27 @@ SRC = \ $(LIBFT)/ft_isdigit.c \ $(LIBFT)/ft_itoa.c \ ft_eoflags.c \ - ft_skipchars.c \ ft_strrev.c \ ft_ltoa_base.c \ ft_putchar.c \ ft_puts.c \ - ft_vprintf_char.c \ - ft_vprintf_string.c \ - ft_vprintf_pointer.c \ - ft_vprintf_decimal.c \ - ft_vprintf_hexadecimal.c \ - ft_vprintf_percent.c \ - ft_vprintf_escape.c \ - ft_vprintf_other.c \ + ft_va_char.c \ + ft_va_string.c \ + ft_va_pointer.c \ + ft_va_decimal.c \ + ft_va_hexadecimal.c \ + ft_va_percent.c \ + ft_va_escape.c \ + ft_va_other.c \ ft_vprintf.c \ ft_printf.c SRC_BONUS = \ - ft_vprintf_flags_bonus.c \ - ft_vprintf_precision_bonus.c + ft_va_flags_bonus.c \ + ft_va_precision_bonus.c \ + ft_va_string_bonus.c \ + ft_va_decimal_bonus.c \ + ft_va_hexadecimal_bonus.c OBJ = ${SRC:.c=.o} OBJ_BONUS = ${SRC_BONUS:.c=.o} @@ -95,7 +97,7 @@ MAKE = make all: $(NAME) -$(NAME): $(OBJ) +$(NAME): $(OBJ) $(OBJ_BONUS) $(AR) $(ARFLAGS) $@ $^ %.o: %.c @@ -110,7 +112,7 @@ fclean: clean re: fclean all -bonus: $(OBJ_BONUS) +bonus: $(OBJ) $(OBJ_BONUS) $(AR) $(ARFLAGS) $(NAME) $(OBJ_BONUS) rebonus: fclean bonus diff --git a/libftprintf/ft_eoflags.c b/libftprintf/ft_eoflags.c index 0b89451..265d8ca 100644 --- a/libftprintf/ft_eoflags.c +++ b/libftprintf/ft_eoflags.c @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/04/26 10:13:59 by gbaconni #+# #+# */ -/* Updated: 2022/04/29 08:58:41 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/29 14:36:20 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/libftprintf/ft_vprintf_char.c b/libftprintf/ft_va_char.c similarity index 81% rename from libftprintf/ft_vprintf_char.c rename to libftprintf/ft_va_char.c index bb097cc..ce26e44 100644 --- a/libftprintf/ft_vprintf_char.c +++ b/libftprintf/ft_va_char.c @@ -1,18 +1,18 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_vprintf_char.c :+: :+: :+: */ +/* ft_va_char.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:54:48 by gbaconni #+# #+# */ -/* Updated: 2022/04/17 20:56:56 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/29 14:33:41 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include "libftprintf.h" -int ft_vprintf_char(const char *format, va_list ap) +int ft_va_char(const char *format, va_list ap) { char c; int ret; diff --git a/libftprintf/ft_vprintf_decimal.c b/libftprintf/ft_va_decimal.c similarity index 70% rename from libftprintf/ft_vprintf_decimal.c rename to libftprintf/ft_va_decimal.c index 455223a..880619d 100644 --- a/libftprintf/ft_vprintf_decimal.c +++ b/libftprintf/ft_va_decimal.c @@ -1,18 +1,18 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_vprintf_decimal.c :+: :+: :+: */ +/* ft_va_decimal.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:55:02 by gbaconni #+# #+# */ -/* Updated: 2022/04/29 10:59:23 by gbaconni ### ########.fr */ +/* Updated: 2022/04/29 14:42:04 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include "libftprintf.h" -int ft_vprintf_decimal(const char *format, va_list ap) +int ft_va_decimal(const char *format, va_list ap) { int ret; unsigned int u; @@ -32,23 +32,7 @@ int ft_vprintf_decimal(const char *format, va_list ap) d = va_arg(ap, int); s = ft_itoa(d); } -#ifdef BONUS - int precision; - int len; - precision = ft_vprintf_precision_bonus(format, ap); - len = 0; - if (precision > 0) - { - len = precision - ft_strlen(s); - while (len-- > 0) - { - if (flags & F_ZERO) - ret += ft_putchar('0'); - else - ret += ft_putchar(' '); - } - } -#endif + ret += ft_va_decimal_bonus(format, ap, s); ret += ft_puts(s); free(s); return (ret); diff --git a/libftprintf/ft_va_decimal_bonus.c b/libftprintf/ft_va_decimal_bonus.c new file mode 100644 index 0000000..24c9ad3 --- /dev/null +++ b/libftprintf/ft_va_decimal_bonus.c @@ -0,0 +1,38 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_va_decimal_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/01/20 11:55:02 by gbaconni #+# #+# */ +/* Updated: 2022/04/29 14:41:04 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libftprintf.h" + +int ft_va_decimal_bonus(const char *format, va_list ap, char *s) +{ + int ret; + int flags; + int precision; + int len; + + ret = 0; + flags = ft_va_flags_bonus(format, ap); + precision = ft_va_precision_bonus(format, ap); + len = 0; + if (precision > 0) + { + len = precision - ft_strlen(s); + while (len-- > 0) + { + if (flags & F_ZERO) + ret += ft_putchar('0'); + else + ret += ft_putchar(' '); + } + } + return (ret); +} diff --git a/libftprintf/ft_vprintf_escape.c b/libftprintf/ft_va_escape.c similarity index 90% rename from libftprintf/ft_vprintf_escape.c rename to libftprintf/ft_va_escape.c index 62fd13a..d46b667 100644 --- a/libftprintf/ft_vprintf_escape.c +++ b/libftprintf/ft_va_escape.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_vprintf_escape.c :+: :+: :+: */ +/* ft_va_escape.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/04/17 22:35:03 by gbaconni #+# #+# */ -/* Updated: 2022/04/23 23:37:55 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/29 14:34:51 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -15,7 +15,7 @@ static char ft_unescape_char(const char c); static size_t ft_unescape_len(const char *str); -int ft_vprintf_escape(const char *format, va_list ap) +int ft_va_escape(const char *format, va_list ap) { int ret; diff --git a/libftprintf/ft_vprintf_flags_bonus.c b/libftprintf/ft_va_flags_bonus.c similarity index 85% rename from libftprintf/ft_vprintf_flags_bonus.c rename to libftprintf/ft_va_flags_bonus.c index a45640e..961e35e 100644 --- a/libftprintf/ft_vprintf_flags_bonus.c +++ b/libftprintf/ft_va_flags_bonus.c @@ -1,18 +1,18 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_vprintf_flags_bonus.c :+: :+: :+: */ +/* ft_va_flags_bonus.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/04/25 13:15:32 by gbaconni #+# #+# */ -/* Updated: 2022/04/29 08:59:37 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/29 14:41:08 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include "libftprintf.h" -int ft_vprintf_flags_bonus(const char *format, va_list ap) +int ft_va_flags_bonus(const char *format, va_list ap) { int ret; const char *f; diff --git a/libftprintf/ft_vprintf_hexadecimal.c b/libftprintf/ft_va_hexadecimal.c similarity index 78% rename from libftprintf/ft_vprintf_hexadecimal.c rename to libftprintf/ft_va_hexadecimal.c index 3b51a5c..f84c6c3 100644 --- a/libftprintf/ft_vprintf_hexadecimal.c +++ b/libftprintf/ft_va_hexadecimal.c @@ -1,18 +1,18 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_vprintf_hexadecimal.c :+: :+: :+: */ +/* ft_va_hexadecimal.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:55:33 by gbaconni #+# #+# */ -/* Updated: 2022/04/29 10:58:24 by gbaconni ### ########.fr */ +/* Updated: 2022/04/29 14:42:36 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include "libftprintf.h" -int ft_vprintf_hexadecimal(const char *format, va_list ap) +int ft_va_hexadecimal(const char *format, va_list ap) { int ret; long l; @@ -26,10 +26,7 @@ int ft_vprintf_hexadecimal(const char *format, va_list ap) s = ft_ltoa_base(l, HEXA_LOWER); else s = ft_ltoa_base(l, HEXA_UPPER); -#ifdef BONUS - if (ft_vprintf_flags_bonus(format, ap) & F_HASH) - ret += ft_puts("0x"); -#endif + ret += ft_va_hexadecimal_bonus(format, ap, s); ret += ft_puts(s); free(s); return (ret); diff --git a/libftprintf/ft_va_hexadecimal_bonus.c b/libftprintf/ft_va_hexadecimal_bonus.c new file mode 100644 index 0000000..effba5b --- /dev/null +++ b/libftprintf/ft_va_hexadecimal_bonus.c @@ -0,0 +1,26 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_va_hexadecimal_bonus.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/01/20 11:55:33 by gbaconni #+# #+# */ +/* Updated: 2022/04/29 14:41:30 by gbaconni ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libftprintf.h" + +int ft_va_hexadecimal_bonus(const char *format, va_list ap, char *s) +{ + int ret; + int flags; + + (void) s; + ret = 0; + flags = ft_va_flags_bonus(format, ap); + if (flags & F_HASH) + ret += ft_puts("0x"); + return (ret); +} diff --git a/libftprintf/ft_vprintf_other.c b/libftprintf/ft_va_other.c similarity index 81% rename from libftprintf/ft_vprintf_other.c rename to libftprintf/ft_va_other.c index 69c8715..f67b5db 100644 --- a/libftprintf/ft_vprintf_other.c +++ b/libftprintf/ft_va_other.c @@ -1,18 +1,18 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_vprintf_other.c :+: :+: :+: */ +/* ft_va_other.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 12:58:03 by gbaconni #+# #+# */ -/* Updated: 2022/04/24 00:34:40 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/29 14:35:25 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include "libftprintf.h" -int ft_vprintf_other(const char *format, va_list ap) +int ft_va_other(const char *format, va_list ap) { int ret; char c; diff --git a/libftprintf/ft_vprintf_percent.c b/libftprintf/ft_va_percent.c similarity index 70% rename from libftprintf/ft_vprintf_percent.c rename to libftprintf/ft_va_percent.c index 9908b62..7955b9d 100644 --- a/libftprintf/ft_vprintf_percent.c +++ b/libftprintf/ft_va_percent.c @@ -1,18 +1,18 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_vprintf_percent.c :+: :+: :+: */ +/* ft_va_percent.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:55:58 by gbaconni #+# #+# */ -/* Updated: 2022/04/26 15:40:34 by gbaconni ### ########.fr */ +/* Updated: 2022/04/29 14:35:15 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include "libftprintf.h" -int ft_vprintf_percent(const char *format, va_list ap) +int ft_va_percent(const char *format, va_list ap) { int ret; char c; @@ -20,16 +20,16 @@ int ft_vprintf_percent(const char *format, va_list ap) ret = 0; c = *(format + ft_eoflags(format)); if (c == 'c') - ret = ft_vprintf_char(format, ap); + ret = ft_va_char(format, ap); else if (c == 's') - ret = ft_vprintf_string(format, ap); + ret = ft_va_string(format, ap); else if (c == 'p') - ret = ft_vprintf_pointer(format, ap); + ret = ft_va_pointer(format, ap); else if (c == 'x' || c == 'X') - ret = ft_vprintf_hexadecimal(format, ap); + ret = ft_va_hexadecimal(format, ap); else if (c == 'd' || c == 'i' || c == 'u') - ret = ft_vprintf_decimal(format, ap); + ret = ft_va_decimal(format, ap); else - ret = ft_vprintf_other(format, ap); + ret = ft_va_other(format, ap); return (ret); } diff --git a/libftprintf/ft_vprintf_pointer.c b/libftprintf/ft_va_pointer.c similarity index 85% rename from libftprintf/ft_vprintf_pointer.c rename to libftprintf/ft_va_pointer.c index d114e81..35526b0 100644 --- a/libftprintf/ft_vprintf_pointer.c +++ b/libftprintf/ft_va_pointer.c @@ -1,18 +1,18 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_vprintf_pointer.c :+: :+: :+: */ +/* ft_va_pointer.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:56:16 by gbaconni #+# #+# */ -/* Updated: 2022/04/29 10:59:11 by gbaconni ### ########.fr */ +/* Updated: 2022/04/29 14:33:20 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include "libftprintf.h" -int ft_vprintf_pointer(const char *format, va_list ap) +int ft_va_pointer(const char *format, va_list ap) { int ret; void *p; diff --git a/libftprintf/ft_vprintf_precision_bonus.c b/libftprintf/ft_va_precision_bonus.c similarity index 84% rename from libftprintf/ft_vprintf_precision_bonus.c rename to libftprintf/ft_va_precision_bonus.c index 8caad5f..635d9e0 100644 --- a/libftprintf/ft_vprintf_precision_bonus.c +++ b/libftprintf/ft_va_precision_bonus.c @@ -1,18 +1,18 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_vprintf_string.c :+: :+: :+: */ +/* ft_va_precision_bonus.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:56:37 by gbaconni #+# #+# */ -/* Updated: 2022/04/29 11:01:29 by gbaconni ### ########.fr */ +/* Updated: 2022/04/29 14:41:33 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include "libftprintf.h" -int ft_vprintf_precision_bonus(const char *format, va_list ap) +int ft_va_precision_bonus(const char *format, va_list ap) { int ret; const char *f; diff --git a/libftprintf/ft_vprintf_string.c b/libftprintf/ft_va_string.c similarity index 71% rename from libftprintf/ft_vprintf_string.c rename to libftprintf/ft_va_string.c index 8353ac3..26b8bc1 100644 --- a/libftprintf/ft_vprintf_string.c +++ b/libftprintf/ft_va_string.c @@ -1,18 +1,18 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_vprintf_string.c :+: :+: :+: */ +/* ft_va_string.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:56:37 by gbaconni #+# #+# */ -/* Updated: 2022/04/29 10:52:32 by gbaconni ### ########.fr */ +/* Updated: 2022/04/29 14:42:58 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include "libftprintf.h" -int ft_vprintf_string(const char *format, va_list ap) +int ft_va_string(const char *format, va_list ap) { int ret; char *s; @@ -25,17 +25,7 @@ int ft_vprintf_string(const char *format, va_list ap) ret = ft_puts("(null)"); return (ret); } -#ifdef BONUS - int precision; - int len; - precision = ft_vprintf_precision_bonus(format, ap); - if (precision > 0) - { - len = precision - ft_strlen(s); - while (len-- > 0) - ret += ft_putchar(' '); - } -#endif + ret += ft_va_string_bonus(format, ap, s); ret += ft_puts(s); return (ret); } diff --git a/libftprintf/ft_skipchars.c b/libftprintf/ft_va_string_bonus.c similarity index 61% rename from libftprintf/ft_skipchars.c rename to libftprintf/ft_va_string_bonus.c index ff4120a..2b6ef79 100644 --- a/libftprintf/ft_skipchars.c +++ b/libftprintf/ft_va_string_bonus.c @@ -1,35 +1,30 @@ /* ************************************************************************** */ /* */ /* ::: :::::::: */ -/* ft_skipchars.c :+: :+: :+: */ +/* ft_va_string_bonus.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ -/* Created: 2022/04/23 23:49:26 by gbaconni #+# #+# */ -/* Updated: 2022/04/24 00:00:43 by gbaconni ### lausanne.ch */ +/* Created: 2022/01/20 11:56:37 by gbaconni #+# #+# */ +/* Updated: 2022/04/29 14:41:41 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ #include "libftprintf.h" -int ft_skipchars(const char *s, char *chars) +int ft_va_string_bonus(const char *format, va_list ap, char *s) { - int ret; - int i; - int hits; + int ret; + int precision; + int len; ret = 0; - while (*s != '\0') + precision = ft_va_precision_bonus(format, ap); + if (precision > 0) { - i = 0; - hits = 0; - while (chars[i] != '\0') - hits += (chars[i++] == *s); - if (hits > 0) - ret++; - else - break ; - s++; + len = precision - ft_strlen(s); + while (len-- > 0) + ret += ft_putchar(' '); } return (ret); } diff --git a/libftprintf/ft_vprintf.c b/libftprintf/ft_vprintf.c index c64884e..f09538c 100644 --- a/libftprintf/ft_vprintf.c +++ b/libftprintf/ft_vprintf.c @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:43:52 by gbaconni #+# #+# */ -/* Updated: 2022/04/29 08:48:39 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/29 14:19:39 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,11 +22,11 @@ int ft_vprintf(char const *format, va_list ap) if (*format == '%') { format++; - ret += ft_vprintf_percent(format, ap); + ret += ft_va_percent(format, ap); format += ft_eoflags(format); } else - ret += ft_vprintf_other(format, ap); + ret += ft_va_other(format, ap); format++; } return (ret); diff --git a/libftprintf/libftprintf.h b/libftprintf/libftprintf.h index 4899794..4fd76ad 100644 --- a/libftprintf/libftprintf.h +++ b/libftprintf/libftprintf.h @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/18 15:26:06 by gbaconni #+# #+# */ -/* Updated: 2022/04/29 10:58:37 by gbaconni ### ########.fr */ +/* Updated: 2022/04/29 14:45:30 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -32,7 +32,6 @@ /* Helper */ int ft_eoflags(const char *s); -int ft_skipchars(const char *s, char *chars); char *ft_strrev(char *s); char *ft_ltoa_base(long n, char *base); int ft_putchar(int c); @@ -43,16 +42,15 @@ char *ft_unescape(const char *str); int ft_printf(const char *format, ...); int ft_vprintf(char const *format, va_list ap); -int ft_vprintf_char(const char *format, va_list ap); -int ft_vprintf_string(const char *format, va_list ap); -int ft_vprintf_pointer(const char *format, va_list ap); -int ft_vprintf_decimal(const char *format, va_list ap); -int ft_vprintf_hexadecimal(const char *format, va_list ap); -int ft_vprintf_percent(const char *format, va_list ap); -int ft_vprintf_escape(const char *format, va_list ap); -int ft_vprintf_other(const char *format, va_list ap); +int ft_va_char(const char *format, va_list ap); +int ft_va_string(const char *format, va_list ap); +int ft_va_pointer(const char *format, va_list ap); +int ft_va_decimal(const char *format, va_list ap); +int ft_va_hexadecimal(const char *format, va_list ap); +int ft_va_percent(const char *format, va_list ap); +int ft_va_escape(const char *format, va_list ap); +int ft_va_other(const char *format, va_list ap); -# ifdef BONUS /* Bonus */ enum { @@ -63,8 +61,10 @@ enum { F_PLUS = 1 << 4 }; -int ft_vprintf_precision_bonus(const char *format, va_list ap); -int ft_vprintf_flags_bonus(const char *format, va_list ap); +int ft_va_precision_bonus(const char *format, va_list ap); +int ft_va_flags_bonus(const char *format, va_list ap); +int ft_va_string_bonus(const char *format, va_list ap, char *s); +int ft_va_decimal_bonus(const char *format, va_list ap, char *s); +int ft_va_hexadecimal_bonus(const char *format, va_list ap, char *s); -# endif #endif diff --git a/main.c b/main.c index 7cbf63b..826092f 100644 --- a/main.c +++ b/main.c @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/04/13 06:58:46 by gbaconni #+# #+# */ -/* Updated: 2022/04/29 08:23:07 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/29 15:14:41 by gbaconni ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,6 +17,28 @@ #include "libftprintf/libftprintf.h" +int ft_skipchars(const char *s, char *chars) +{ + int ret; + int i; + int hits; + + ret = 0; + while (*s != '\0') + { + i = 0; + hits = 0; + while (chars[i] != '\0') + hits += (chars[i++] == *s); + if (hits > 0) + ret++; + else + break ; + s++; + } + return (ret); +} + char *ft_fmtsplit(char **fmt) { char *format;