aboutsummaryrefslogtreecommitdiff
path: root/ft_printf
diff options
context:
space:
mode:
Diffstat (limited to 'ft_printf')
-rw-r--r--ft_printf/convert.c122
-rw-r--r--ft_printf/convert_char.c53
-rw-r--r--ft_printf/convert_hex.c34
-rw-r--r--ft_printf/convert_int.c40
-rw-r--r--ft_printf/convert_none.c25
-rw-r--r--ft_printf/convert_percent.c23
-rw-r--r--ft_printf/convert_ptr.c29
-rw-r--r--ft_printf/convert_str.c25
-rw-r--r--ft_printf/convert_uint.c34
-rw-r--r--ft_printf/convert_written.c28
-rw-r--r--ft_printf/extract.c98
-rw-r--r--ft_printf/ft_printf.c92
-rw-r--r--ft_printf/ft_vasprintf.h155
-rw-r--r--ft_printf/length_modifier.c39
-rw-r--r--ft_printf/list.c67
-rw-r--r--ft_printf/parse.c61
-rw-r--r--ft_printf/utils.c115
17 files changed, 0 insertions, 1040 deletions
diff --git a/ft_printf/convert.c b/ft_printf/convert.c
deleted file mode 100644
index 398c754..0000000
--- a/ft_printf/convert.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* printer.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/28 23:19:24 by cacharle #+# #+# */
-/* Updated: 2019/11/14 10:22:04 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include "libft.h"
-#include "ft_vasprintf.h"
-
-char *convert(t_pformat *pformat, va_list ap)
-{
- char *str;
-
- if (pformat == NULL)
- return (NULL);
- if (pformat->flags & FLAG_WIDTH_WILDCARD)
- {
- if (pformat->flags & FLAG_WIDTH_OVERWRITE)
- (void)va_arg(ap, int);
- else
- pformat->width = va_arg(ap, int);
- if (pformat->width < 0)
- {
- pformat->flags |= FLAG_MINUS;
- pformat->width *= -1;
- }
- }
- if (pformat->flags & FLAG_PRECISION_WILDCARD)
- pformat->precision = va_arg(ap, int);
- if ((str = convert_specifier(ap, pformat)) == NULL)
- return (NULL);
- return (str);
-}
-
-char *convert_specifier(va_list ap, t_pformat *pformat)
-{
- if (pformat->specifier == 'c')
- return (convert_char(ap, pformat));
- if (pformat->specifier == 's')
- return (convert_str(ap, pformat));
- if (pformat->specifier == 'p')
- return (convert_ptr(ap, pformat));
- if (pformat->specifier == 'd' || pformat->specifier == 'i')
- return (convert_int(ap, pformat));
- if (pformat->specifier == 'u')
- return (convert_uint(ap, pformat));
- if (pformat->specifier == 'x')
- return (convert_hex(ap, pformat));
- if (pformat->specifier == 'X')
- return (convert_hex(ap, pformat));
- if (pformat->specifier == '%')
- return (convert_percent(ap, pformat));
- if (pformat->specifier == 'n')
- return (convert_written(ap, pformat));
- else
- return (convert_none(ap, pformat));
- return (NULL);
-}
-
-char *handle_width(t_pformat *pformat, char *str)
-{
- char *tmp;
- int len;
- int i;
-
- if ((len = ft_strlen(str)) >= pformat->width)
- return (str);
- if ((tmp = (char*)malloc(sizeof(char) * (pformat->width + 1))) == NULL)
- return (NULL);
- if (pformat->flags & FLAG_MINUS)
- {
- i = len;
- ft_strcpy(tmp, str);
- while (i < pformat->width)
- tmp[i++] = ' ';
- tmp[i] = 0;
- }
- else
- {
- i = 0;
- while (i <= pformat->width - len)
- tmp[i++] = pformat->flags & FLAG_ZERO ? '0' : ' ';
- ft_strcpy(tmp + i - 1, str);
- }
- free(str);
- return (tmp);
-}
-
-char *handle_precision(t_pformat *pformat, char *str)
-{
- int len;
- char *tmp;
-
- if (pformat == NULL || str == NULL)
- return (NULL);
- if (ft_strchr("diuxX", pformat->specifier) && pformat->precision >= 0)
- pformat->flags &= ~FLAG_ZERO;
- len = ft_strlen(str);
- if (pformat->precision == 0 && str[0] == '0')
- {
- free(str);
- return (ft_strdup(""));
- }
- if (!ft_strchr("diuxXp", pformat->specifier) || len >= pformat->precision)
- return (str);
- if ((tmp = (char*)malloc(sizeof(char) * (pformat->precision + 1))) == NULL)
- return (NULL);
- ft_strcpy(tmp + pformat->precision - len, str);
- while (pformat->precision-- > len)
- tmp[pformat->precision - len] = '0';
- free(str);
- return (tmp);
-}
diff --git a/ft_printf/convert_char.c b/ft_printf/convert_char.c
deleted file mode 100644
index c5f3a93..0000000
--- a/ft_printf/convert_char.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* convert_char.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/30 23:22:29 by cacharle #+# #+# */
-/* Updated: 2019/11/05 23:44:42 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-static char *handle_width_char(t_pformat *pformat, char *str)
-{
- char *tmp;
- int i;
-
- pformat->size = 1;
- if (1 >= pformat->width)
- return (str);
- if ((tmp = (char*)malloc(sizeof(char) * (pformat->width + 1))) == NULL)
- return (NULL);
- if (pformat->flags & FLAG_MINUS)
- {
- ft_memcpy(tmp, str, (i = 1) + 1);
- while (i < pformat->width)
- tmp[i++] = ' ';
- tmp[i] = 0;
- }
- else
- {
- i = 0;
- while (i <= pformat->width - 1)
- tmp[i++] = pformat->flags & FLAG_ZERO ? '0' : ' ';
- ft_memcpy(tmp + i - 1, str, 2);
- }
- free(str);
- pformat->size = pformat->width;
- return (tmp);
-}
-
-char *convert_char(va_list ap, t_pformat *pformat)
-{
- char *str;
-
- if ((str = ft_strnew(2)) == NULL)
- return (NULL);
- str[0] = va_arg(ap, int);
- str[1] = '\0';
- return (handle_width_char(pformat, str));
-}
diff --git a/ft_printf/convert_hex.c b/ft_printf/convert_hex.c
deleted file mode 100644
index 0464dc7..0000000
--- a/ft_printf/convert_hex.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* convert_hex.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/30 23:23:06 by cacharle #+# #+# */
-/* Updated: 2019/11/05 23:58:59 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-char *convert_hex(va_list ap, t_pformat *pformat)
-{
- char *str;
- long long unsigned int n;
-
- n = length_modifier_unsigned_int(ap, pformat);
- str = pformat->specifier == 'x' ? ITOA_HEX_LOW(n) : ITOA_HEX_UP(n);
- str = handle_precision(pformat, str);
- if (pformat->flags & FLAG_ZERO)
- {
- if (pformat->flags & FLAG_ALTERNATE && n != 0)
- pformat->width -= 2;
- str = handle_width(pformat, str);
- }
- if (pformat->flags & FLAG_ALTERNATE && n != 0)
- str = ft_strjoin_free_snd(pformat->specifier == 'X' ? "0X" : "0x", str);
- if (!(pformat->flags & FLAG_ZERO))
- str = handle_width(pformat, str);
- return (str);
-}
diff --git a/ft_printf/convert_int.c b/ft_printf/convert_int.c
deleted file mode 100644
index 2345f76..0000000
--- a/ft_printf/convert_int.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* convert_int.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/30 23:29:53 by cacharle #+# #+# */
-/* Updated: 2019/11/06 00:00:09 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-char *convert_int(va_list ap, t_pformat *pformat)
-{
- int is_neg;
- long long int n;
- char *str;
-
- n = length_modifier_int(ap, pformat);
- is_neg = n < 0;
- str = ITOA_DEC(n);
- if (is_neg)
- ft_strcpy(str, str + 1);
- str = handle_precision(pformat, str);
- if (pformat->flags & FLAG_ZERO)
- {
- if (is_neg || pformat->flags & (FLAG_SIGNED | FLAG_SPACE))
- pformat->width--;
- str = handle_width(pformat, str);
- }
- if (is_neg)
- str = ft_strjoin_free_snd("-", str);
- else if (pformat->flags & (FLAG_SIGNED | FLAG_SPACE))
- str = ft_strjoin_free_snd(pformat->flags & FLAG_SPACE ? " " : "+", str);
- if (!(pformat->flags & FLAG_ZERO))
- str = handle_width(pformat, str);
- return (str);
-}
diff --git a/ft_printf/convert_none.c b/ft_printf/convert_none.c
deleted file mode 100644
index 358ef1b..0000000
--- a/ft_printf/convert_none.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* convert_none.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/11/04 19:30:25 by cacharle #+# #+# */
-/* Updated: 2019/11/05 23:44:13 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-char *convert_none(va_list ap, t_pformat *pformat)
-{
- char *str;
-
- (void)ap;
- if ((str = ft_strdup("")) == NULL)
- return (NULL);
- str = handle_precision(pformat, str);
- str = handle_width(pformat, str);
- return (str);
-}
diff --git a/ft_printf/convert_percent.c b/ft_printf/convert_percent.c
deleted file mode 100644
index 813bb77..0000000
--- a/ft_printf/convert_percent.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* convert_percent.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/30 23:23:27 by cacharle #+# #+# */
-/* Updated: 2019/11/05 23:44:07 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-char *convert_percent(va_list ap, t_pformat *pformat)
-{
- char *str;
-
- (void)ap;
- str = ft_strdup("%");
- str = handle_width(pformat, str);
- return (str);
-}
diff --git a/ft_printf/convert_ptr.c b/ft_printf/convert_ptr.c
deleted file mode 100644
index 63babb9..0000000
--- a/ft_printf/convert_ptr.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* convert_ptr.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/30 23:24:08 by cacharle #+# #+# */
-/* Updated: 2019/11/05 23:43:45 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-char *convert_ptr(va_list ap, t_pformat *pformat)
-{
- char *str;
-
- str = ITOA_HEX_LOW((long long unsigned int)va_arg(ap, void*));
- str = handle_precision(pformat, str);
- if (!(pformat->flags & FLAG_ZERO))
- str = ft_strjoin_free_snd("0x", str);
- if (pformat->flags & FLAG_ZERO)
- pformat->width -= 2;
- str = handle_width(pformat, str);
- if (pformat->flags & FLAG_ZERO)
- str = ft_strjoin_free_snd("0x", str);
- return (str);
-}
diff --git a/ft_printf/convert_str.c b/ft_printf/convert_str.c
deleted file mode 100644
index 7d51a5e..0000000
--- a/ft_printf/convert_str.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* convert_str.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/30 23:22:25 by cacharle #+# #+# */
-/* Updated: 2019/11/09 01:07:24 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-char *convert_str(va_list ap, t_pformat *pformat)
-{
- char *str;
-
- str = va_arg(ap, char*);
- str = str == NULL ? ft_strdup("(null)") : ft_strdup(str);
- if (pformat->precision >= 0 && pformat->precision < (int)ft_strlen(str))
- str[pformat->precision] = '\0';
- str = handle_width(pformat, str);
- return (str);
-}
diff --git a/ft_printf/convert_uint.c b/ft_printf/convert_uint.c
deleted file mode 100644
index 4207165..0000000
--- a/ft_printf/convert_uint.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* convert_uint.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/30 23:25:40 by cacharle #+# #+# */
-/* Updated: 2019/11/05 23:44:19 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-char *convert_uint(va_list ap, t_pformat *pformat)
-{
- char *str;
- long long unsigned int n;
-
- if (pformat->flags & FLAG_SHORT)
- n = (unsigned short)va_arg(ap, int);
- else if (pformat->flags & FLAG_SHORT_SHORT)
- n = (unsigned char)va_arg(ap, int);
- else if (pformat->flags & FLAG_LONG)
- n = va_arg(ap, long unsigned int);
- else if (pformat->flags & FLAG_LONG_LONG)
- n = va_arg(ap, long long unsigned int);
- else
- n = va_arg(ap, unsigned int);
- str = ft_itoa_unsigned_base(n, "0123456789");
- str = handle_precision(pformat, str);
- str = handle_width(pformat, str);
- return (str);
-}
diff --git a/ft_printf/convert_written.c b/ft_printf/convert_written.c
deleted file mode 100644
index 4beeaef..0000000
--- a/ft_printf/convert_written.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* convert_written.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/30 23:38:28 by cacharle #+# #+# */
-/* Updated: 2019/11/05 23:59:24 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-char *convert_written(va_list ap, t_pformat *pformat)
-{
- if (pformat->flags & FLAG_SHORT)
- pformat->written = (long long int*)va_arg(ap, signed char*);
- if (pformat->flags & FLAG_SHORT_SHORT)
- pformat->written = (long long int*)va_arg(ap, short*);
- if (pformat->flags & FLAG_LONG)
- pformat->written = (long long int*)va_arg(ap, long int*);
- if (pformat->flags & FLAG_LONG_LONG)
- pformat->written = va_arg(ap, long long int*);
- else
- pformat->written = (long long int*)va_arg(ap, int*);
- return (NULL);
-}
diff --git a/ft_printf/extract.c b/ft_printf/extract.c
deleted file mode 100644
index c56a777..0000000
--- a/ft_printf/extract.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* extract.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/29 00:10:36 by cacharle #+# #+# */
-/* Updated: 2019/11/10 10:33:33 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-const char *extract_flags(t_pformat *pformat, const char *fmt)
-{
- if (*fmt == '\0')
- return (fmt);
- while (ft_strchr(FLAGS_STR, *fmt) != NULL)
- {
- if (*fmt == '0')
- pformat->flags |= FLAG_ZERO;
- if (*fmt == '-')
- pformat->flags |= FLAG_MINUS;
- if (*fmt == '+')
- pformat->flags |= FLAG_SIGNED;
- if (*fmt == ' ')
- pformat->flags |= FLAG_SPACE;
- if (*fmt == '#')
- pformat->flags |= FLAG_ALTERNATE;
- if (*fmt == '\'')
- ;
- fmt++;
- }
- if (pformat->flags & FLAG_SIGNED)
- pformat->flags &= ~FLAG_SPACE;
- return (fmt);
-}
-
-const char *extract_width(t_pformat *pformat, const char *fmt)
-{
- if (*fmt == '\0')
- return (fmt);
- if (*fmt == '*')
- {
- pformat->flags |= FLAG_WIDTH_WILDCARD;
- fmt++;
- }
- if (!ft_isdigit(*fmt))
- return (fmt);
- pformat->width = ft_atoi(fmt);
- while (*fmt && ft_isdigit(*fmt))
- fmt++;
- if (pformat->flags & FLAG_WIDTH_WILDCARD)
- pformat->flags |= FLAG_WIDTH_OVERWRITE;
- return (fmt);
-}
-
-const char *extract_precision(t_pformat *pformat, const char *fmt)
-{
- if (*fmt == '\0' || *fmt != '.')
- return (fmt);
- fmt++;
- if (*fmt == '*')
- {
- pformat->flags |= FLAG_PRECISION_WILDCARD;
- fmt++;
- }
- pformat->precision = ft_atoi(fmt);
- while (*fmt && ft_isdigit(*fmt))
- fmt++;
- return (fmt);
-}
-
-const char *extract_length_modifier(t_pformat *pformat, const char *fmt)
-{
- if (fmt[0] && fmt[0] == 'l')
- {
- if (fmt[1] && fmt[1] == 'l')
- {
- pformat->flags |= FLAG_LONG_LONG;
- return (fmt + 2);
- }
- pformat->flags |= FLAG_LONG;
- return (fmt + 1);
- }
- if (fmt[0] && fmt[0] == 'h')
- {
- if (fmt[1] && fmt[1] == 'h')
- {
- pformat->flags |= FLAG_SHORT_SHORT;
- return (fmt + 2);
- }
- pformat->flags |= FLAG_SHORT;
- return (fmt + 1);
- }
- return (fmt);
-}
diff --git a/ft_printf/ft_printf.c b/ft_printf/ft_printf.c
deleted file mode 100644
index daa0cf2..0000000
--- a/ft_printf/ft_printf.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* ft_printf.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/29 00:15:28 by cacharle #+# #+# */
-/* Updated: 2019/11/13 08:56:49 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-int ft_printf(const char *format, ...)
-{
- t_printf_status status;
-
- if (format == NULL)
- return (STATUS_ERROR);
- if (!parse(format, &status.flist))
- return (STATUS_ERROR);
- va_start(status.ap, format);
- status.format = format;
- status.out = NULL;
- status.out_size = 0;
- while (*status.format)
- {
- if (*status.format == '%'
- && (status.format =
- add_conversion(&status, status.flist->content)) == NULL)
- return (destroy_status_error(&status));
- else if ((status.format = add_between(&status)) == NULL)
- return (destroy_status_error(&status));
- }
- va_end(status.ap);
- list_destroy(&status.flist);
- write(STDOUT_FILENO, status.out, status.out_size);
- free(status.out);
- return (status.out_size);
-}
-
-const char *add_conversion(t_printf_status *status, t_pformat *pformat)
-{
- char *conversion_str;
-
- conversion_str = convert(pformat, status->ap);
- if (pformat->specifier == 'n')
- {
- if (pformat->written != NULL)
- *pformat->written = status->out_size;
- status->format += pformat->fmt_len;
- list_pop_front(&status->flist);
- return (status->format + 1);
- }
- if (conversion_str == NULL)
- return (NULL);
- if (pformat->specifier != 'c')
- pformat->size = ft_strlen(conversion_str);
- if ((status->out = ft_memjoin_free(status->out, status->out_size,
- conversion_str, pformat->size)) == NULL)
- return (NULL);
- status->out_size += pformat->size;
- free(conversion_str);
- status->format += pformat->fmt_len;
- list_pop_front(&status->flist);
- return (status->format + 1);
-}
-
-const char *add_between(t_printf_status *status)
-{
- int i;
-
- i = 0;
- while (status->format[i] && status->format[i] != '%')
- i++;
- if ((status->out = ft_memjoin_free(status->out, status->out_size,
- (void*)status->format, i)) == NULL)
- return (NULL);
- status->out_size += i;
- return (status->format + i);
-}
-
-int destroy_status_error(t_printf_status *status)
-{
- if (status == NULL)
- return (STATUS_ERROR);
- va_end(status->ap);
- list_destroy(&status->flist);
- free(status->out);
- return (STATUS_ERROR);
-}
diff --git a/ft_printf/ft_vasprintf.h b/ft_printf/ft_vasprintf.h
deleted file mode 100644
index 4110557..0000000
--- a/ft_printf/ft_vasprintf.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* header.h :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/29 00:06:46 by cacharle #+# #+# */
-/* Updated: 2019/11/13 09:29:23 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#ifndef HEADER_H
-# define HEADER_H
-
-# include <unistd.h>
-# include <stdlib.h>
-# include <stdarg.h>
-# include "libft.h"
-
-# define STATUS_ERROR -1
-
-# define SPECIFIERS_STR "nfcspdiuxX%"
-# define FLAGS_STR "#0- +'"
-
-# define IS_STANDALONE_FLAG(c) (ft_strchr(FLAGS_STR, c) != NULL)
-
-# define FLAG_MINUS (1 << 0)
-# define FLAG_ZERO (1 << 1)
-# define FLAG_SIGNED (1 << 2)
-# define FLAG_SPACE (1 << 3)
-# define FLAG_ALTERNATE (1 << 4)
-# define FLAG_SHORT (1 << 5)
-# define FLAG_SHORT_SHORT (1 << 6)
-# define FLAG_LONG (1 << 7)
-# define FLAG_LONG_LONG (1 << 8)
-# define FLAG_WIDTH_WILDCARD (1 << 9)
-# define FLAG_PRECISION_WILDCARD (1 << 10)
-# define FLAG_WIDTH_OVERWRITE (1 << 11)
-
-# define ITOA_HEX_LOW(x) (ft_itoa_unsigned_base(x, "0123456789abcdef"))
-# define ITOA_HEX_UP(x) (ft_itoa_unsigned_base(x, "0123456789ABCDEF"))
-# define ITOA_DEC(x) (ft_itoa_base(x, "0123456789"))
-
-typedef int t_bool;
-typedef short t_flags;
-typedef long long int t_big_int;
-typedef long long unsigned int t_big_uint;
-
-typedef struct
-{
- int precision;
- int width;
- t_flags flags;
- char specifier;
- int fmt_len;
- int size;
- long long int *written;
-} t_pformat;
-
-typedef struct s_flist
-{
- struct s_flist *next;
- t_pformat *content;
-} t_flist;
-
-typedef struct s_printf_status
-{
- va_list ap;
- t_flist *flist;
- const char *format;
- char *out;
- int out_size;
-} t_printf_status;
-
-/*
-** ft_printf.c
-*/
-
-int ft_printf(const char *format, ...);
-const char *add_conversion(t_printf_status *status,
- t_pformat *pformat);
-const char *add_between(t_printf_status *status);
-int destroy_status_error(t_printf_status *status);
-
-/*
-** parse.c
-*/
-
-int parse(const char *format, t_flist **flist);
-t_pformat *parse_reduced(const char *fmt);
-
-/*
-** printer.c
-*/
-
-char *convert(t_pformat *pformat, va_list ap);
-char *convert_specifier(va_list ap, t_pformat *pformat);
-char *handle_width(t_pformat *pformat, char *str);
-char *handle_precision(t_pformat *pformat, char *str);
-
-/*
-** utils.c
-*/
-
-char *ft_itoa_base(long long int n, char *base);
-char *ft_itoa_unsigned_base(long long unsigned int n,
- char *base);
-void *ft_memjoin_free(void *dst, int dst_size, void *src,
- int src_size);
-
-/*
-** extract.c
-*/
-
-const char *extract_flags(t_pformat *pformat, const char *fmt);
-const char *extract_width(t_pformat *pformat, const char *fmt);
-const char *extract_precision(t_pformat *pformat, const char *fmt);
-const char *extract_length_modifier(t_pformat *pformat,
- const char *fmt);
-
-/*
-** list.c
-*/
-
-t_flist *list_new(t_pformat *content);
-void *list_destroy(t_flist **lst);
-void list_push_front(t_flist **lst, t_flist *new);
-void list_pop_front(t_flist **lst);
-t_flist *list_reverse(t_flist *lst);
-
-/*
-** convert_*.c
-*/
-
-char *convert_char(va_list ap, t_pformat *pformat);
-char *convert_str(va_list ap, t_pformat *pformat);
-char *convert_ptr(va_list ap, t_pformat *pformat);
-char *convert_int(va_list ap, t_pformat *pformat);
-char *convert_uint(va_list ap, t_pformat *pformat);
-char *convert_hex(va_list ap, t_pformat *pformat);
-char *convert_percent(va_list ap, t_pformat *pformat);
-char *convert_written(va_list ap, t_pformat *pformat);
-char *convert_double(va_list ap, t_pformat *pformat);
-char *convert_none(va_list ap, t_pformat *pformat);
-
-/*
-** length_modifier.c
-*/
-
-t_big_uint length_modifier_unsigned_int(
- va_list ap, t_pformat *pformat);
-t_big_int length_modifier_int(va_list ap, t_pformat *pformat);
-
-#endif
diff --git a/ft_printf/length_modifier.c b/ft_printf/length_modifier.c
deleted file mode 100644
index 88226da..0000000
--- a/ft_printf/length_modifier.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* length_modifier.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/11/05 23:56:07 by cacharle #+# #+# */
-/* Updated: 2019/11/09 00:50:06 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-t_big_uint length_modifier_unsigned_int(va_list ap, t_pformat *pformat)
-{
- if (pformat->flags & FLAG_SHORT)
- return ((unsigned short)va_arg(ap, int));
- else if (pformat->flags & FLAG_SHORT_SHORT)
- return ((unsigned char)va_arg(ap, int));
- else if (pformat->flags & FLAG_LONG)
- return (va_arg(ap, long unsigned int));
- else if (pformat->flags & FLAG_LONG_LONG)
- return (va_arg(ap, long long unsigned int));
- return (va_arg(ap, unsigned int));
-}
-
-t_big_int length_modifier_int(va_list ap, t_pformat *pformat)
-{
- if (pformat->flags & FLAG_SHORT)
- return ((short)va_arg(ap, int));
- else if (pformat->flags & FLAG_SHORT_SHORT)
- return ((signed char)va_arg(ap, int));
- else if (pformat->flags & FLAG_LONG)
- return (va_arg(ap, long int));
- else if (pformat->flags & FLAG_LONG_LONG)
- return (va_arg(ap, long long int));
- return (va_arg(ap, int));
-}
diff --git a/ft_printf/list.c b/ft_printf/list.c
deleted file mode 100644
index 99491f4..0000000
--- a/ft_printf/list.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* list.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/29 00:14:50 by cacharle #+# #+# */
-/* Updated: 2019/11/05 23:45:42 by cacharle ### ########.fr */
-/* */
-/* ******************************************