From 22f334a19cabebf10727d7894102946ba23d0e37 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 30 Oct 2019 18:07:21 +0100 Subject: Fixed %d segfault, merge hex_* in hex, fixed c = 0 --- convert_char.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'convert_char.c') diff --git a/convert_char.c b/convert_char.c index ee30a2c..d6c3422 100644 --- a/convert_char.c +++ b/convert_char.c @@ -1,4 +1,5 @@ #include +#include #include "header.h" char *convert_char(va_list ap, t_pformat *pformat) @@ -8,6 +9,33 @@ char *convert_char(va_list ap, t_pformat *pformat) return (NULL); str[0] = va_arg(ap, int); str[1] = '\0'; - str = handle_padding(pformat, str); + + /* str = handle_padding(pformat, str); */ + pformat->size = 1;//ft_strlen(str); + /* return (str); */ + char *tmp; + int i; + if (1 >= pformat->min_width) + return (str); + if ((tmp = (char*)malloc(sizeof(char) * (pformat->min_width + 1))) == NULL) + return (NULL); + if (pformat->flags & FLAG_LEFT_ADJUSTED) + { + i = 1; + ft_memcpy(tmp, str, 2); + while (i < pformat->min_width) + tmp[i++] = ' '; + tmp[i] = 0; + } + else + { + i = 0; + while (i <= pformat->min_width - 1) + tmp[i++] = pformat->flags & FLAG_ZERO_PADDING ? '0' : ' '; + ft_memcpy(tmp + i - 1, str, 2); + } + free(str); + pformat->size = pformat->min_width; + return (tmp); return (str); } -- cgit