aboutsummaryrefslogtreecommitdiff
path: root/src/ft_printf/parse.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-15 10:04:09 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-15 10:04:09 +0100
commit1e9b077e0d9f3c50d7d518bf6ea7f08e7f5ec590 (patch)
tree21d906cd9f96c58af572ce3bb6784d1d8fca18d2 /src/ft_printf/parse.c
parent49ad59b0e773e92e93fb69ede889c781ca53e680 (diff)
downloadlibft-1e9b077e0d9f3c50d7d518bf6ea7f08e7f5ec590.tar.gz
libft-1e9b077e0d9f3c50d7d518bf6ea7f08e7f5ec590.tar.bz2
libft-1e9b077e0d9f3c50d7d518bf6ea7f08e7f5ec590.zip
splited src in category, more generic makefile
Diffstat (limited to 'src/ft_printf/parse.c')
-rw-r--r--src/ft_printf/parse.c61
1 files changed, 0 insertions, 61 deletions
diff --git a/src/ft_printf/parse.c b/src/ft_printf/parse.c
deleted file mode 100644
index 33928a0..0000000
--- a/src/ft_printf/parse.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* ************************************************************************** */
-/* */
-/* ::: :::::::: */
-/* parse.c :+: :+: :+: */
-/* +:+ +:+ +:+ */
-/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
-/* +#+#+#+#+#+ +#+ */
-/* Created: 2019/10/29 00:11:33 by cacharle #+# #+# */
-/* Updated: 2019/11/13 08:13:02 by cacharle ### ########.fr */
-/* */
-/* ************************************************************************** */
-
-#include "ft_vasprintf.h"
-
-int parse(const char *format, t_flist **flist)
-{
- t_flist *tmp;
- t_pformat *parsed;
-
- *flist = NULL;
- while (*format)
- {
- format++;
- if (format[-1] != '%')
- continue;
- if ((parsed = parse_reduced(format)) == NULL)
- return ((int)list_destroy(flist));
- if ((tmp = list_new(parsed)) == NULL)
- return ((int)list_destroy(flist));
- list_push_front(flist, tmp);
- format += (*flist)->content->fmt_len;
- }
- *flist = list_reverse(*flist);
- return (1);
-}
-
-t_pformat *parse_reduced(const char *fmt)
-{
- t_pformat *pformat;
- const char *start;
-
- if ((pformat = (t_pformat*)malloc(sizeof(t_pformat))) == NULL)
- return (NULL);
- pformat->precision = -1;
- pformat->width = -1;
- pformat->flags = 0;
- start = fmt;
- fmt = extract_flags(pformat, fmt);
- fmt = extract_width(pformat, fmt);
- fmt = extract_precision(pformat, fmt);
- fmt = extract_length_modifier(pformat, fmt);
- pformat->fmt_len = fmt - start + 1;
- if (*fmt == '\0' || ft_strchr(SPECIFIERS_STR, *fmt) == NULL)
- {
- pformat->fmt_len--;
- pformat->specifier = '_';
- }
- else
- pformat->specifier = *ft_strchr(SPECIFIERS_STR, *fmt);
- return (pformat);
-}