Rename all ft_vprintf_*.c to ft_va_*.c

This commit is contained in:
gbaconni
2022-04-29 15:18:54 +02:00
parent 1cb8c78ae3
commit 2b5b1de944
18 changed files with 172 additions and 118 deletions

View File

@@ -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

View File

@@ -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 */
/* */
/* ************************************************************************** */

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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

24
main.c
View File

@@ -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;