printf reallocation for 0x and 0b prefixes

This commit is contained in:
Jack Halford 2016-12-09 19:20:56 +01:00
parent cf73ec7bd3
commit 45505dbca0
12 changed files with 37 additions and 36 deletions

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */ /* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/07 13:31:48 by jhalford #+# #+# */ /* Created: 2016/11/07 13:31:48 by jhalford #+# #+# */
/* Updated: 2016/11/16 18:30:20 by jhalford ### ########.fr */ /* Updated: 2016/12/09 18:00:52 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */ /* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/07 13:33:27 by jhalford #+# #+# */ /* Created: 2016/11/07 13:33:27 by jhalford #+# #+# */
/* Updated: 2016/12/07 17:14:27 by jhalford ### ########.fr */ /* Updated: 2016/12/09 19:14:24 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View file

@ -6,7 +6,7 @@
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */ /* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/06 18:07:39 by jhalford #+# #+# */ /* Created: 2016/12/06 18:07:39 by jhalford #+# #+# */
/* Updated: 2016/12/07 13:48:34 by jhalford ### ########.fr */ /* Updated: 2016/12/09 18:03:45 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */ /* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/07 13:33:24 by jhalford #+# #+# */ /* Created: 2016/11/07 13:33:24 by jhalford #+# #+# */
/* Updated: 2016/11/10 12:59:50 by jhalford ### ########.fr */ /* Updated: 2016/12/09 15:48:31 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */ /* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/07 13:33:32 by jhalford #+# #+# */ /* Created: 2016/11/07 13:33:32 by jhalford #+# #+# */
/* Updated: 2016/11/16 17:56:37 by jhalford ### ########.fr */ /* Updated: 2016/12/09 19:13:57 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -24,6 +24,8 @@ char *ft_transform(t_fmt *fmt, va_list ap)
ret = (*fmt->conv.converter)(fmt, ap); ret = (*fmt->conv.converter)(fmt, ap);
if (fmt->width > (int)ft_strlen(ret)) if (fmt->width > (int)ft_strlen(ret))
ret = ft_realloc(ret, fmt->width + 5); ret = ft_realloc(ret, fmt->width + 5);
else
ret = ft_realloc(ret, ft_strlen(ret) + 3);
if (ft_strchr(fmt->flags, '-')) if (ft_strchr(fmt->flags, '-'))
ft_pad_right(ret, fmt); ft_pad_right(ret, fmt);
else else

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */ /* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/07 13:33:45 by jhalford #+# #+# */ /* Created: 2016/11/07 13:33:45 by jhalford #+# #+# */
/* Updated: 2016/11/16 18:13:08 by jhalford ### ########.fr */ /* Updated: 2016/12/09 19:14:58 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */ /* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/07 13:33:48 by jhalford #+# #+# */ /* Created: 2016/11/07 13:33:48 by jhalford #+# #+# */
/* Updated: 2016/11/16 17:56:42 by jhalford ### ########.fr */ /* Updated: 2016/12/09 19:07:55 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -24,17 +24,20 @@ void ft_pad_sharp_o(char *str, t_fmt *fmt)
void ft_pad_sharp_xb(char *str, t_fmt *fmt) void ft_pad_sharp_xb(char *str, t_fmt *fmt)
{ {
char buf[100]; char start[3] = {'0',fmt->conversion, 0};
int i; int i;
i = 0; i = 0;
ft_bzero(buf, 100); if (str[0] == '0')
ft_strcpy(buf, "0"); {
ft_strcat(buf, &fmt->conversion); if (str[1] == '0')
if (*str == '0') str[1] = fmt->conversion;
i++; else
if (*str == '0') {
i++; str[0] = fmt->conversion;
ft_strcat(buf, str + i); ft_strcatf(str, "0");
ft_strcpy(str, buf); }
}
else
ft_strcatf(str, start);
} }

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */ /* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/11 17:37:53 by jhalford #+# #+# */ /* Created: 2016/11/11 17:37:53 by jhalford #+# #+# */
/* Updated: 2016/11/16 17:56:17 by jhalford ### ########.fr */ /* Updated: 2016/12/09 18:31:03 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View file

@ -6,7 +6,7 @@
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */ /* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/07 14:25:45 by jhalford #+# #+# */ /* Created: 2016/12/07 14:25:45 by jhalford #+# #+# */
/* Updated: 2016/12/07 16:29:08 by jhalford ### ########.fr */ /* Updated: 2016/12/09 19:14:52 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -20,7 +20,6 @@ char **ft_sstrdup(char **list)
i = 0; i = 0;
size = 0; size = 0;
DG("sstrdup call now");
while (list[size]) while (list[size])
size++; size++;
cpy = (char **)malloc(sizeof(char *) * (size + 1)); cpy = (char **)malloc(sizeof(char *) * (size + 1));
@ -29,7 +28,6 @@ char **ft_sstrdup(char **list)
cpy[i++] = ft_strdup(*list); cpy[i++] = ft_strdup(*list);
list++; list++;
} }
DG("sstrdup i=%i, size=%i (should be equal)", i, size);
cpy[i] = NULL; cpy[i] = NULL;
return (cpy); return (cpy);
} }

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */ /* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/08/07 10:56:53 by jhalford #+# #+# */ /* Created: 2016/08/07 10:56:53 by jhalford #+# #+# */
/* Updated: 2016/11/10 12:18:00 by jhalford ### ########.fr */ /* Updated: 2016/12/09 19:11:20 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,16 +14,13 @@
char *ft_strcat(char *s1, const char *s2) char *ft_strcat(char *s1, const char *s2)
{ {
size_t size; char *start;
size_t j;
size = ft_strlen(s1); start = s1;
j = 0; s1 += ft_strlen(s1);
while (s2 && s2[j]) if (s2)
{ while (*s2)
s1[size + j] = s2[j]; *s1++ = *s2++;
j++; *s1 = 0;
} return (start);
s1[size + j] = '\0';
return (s1);
} }

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */ /* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/07 15:46:03 by jhalford #+# #+# */ /* Created: 2016/11/07 15:46:03 by jhalford #+# #+# */
/* Updated: 2016/11/16 17:58:02 by jhalford ### ########.fr */ /* Updated: 2016/12/09 19:02:20 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */

View file

@ -6,7 +6,7 @@
/* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */ /* By: jhalford <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/11/03 14:58:18 by jhalford #+# #+# */ /* Created: 2016/11/03 14:58:18 by jhalford #+# #+# */
/* Updated: 2016/12/05 14:24:31 by jhalford ### ########.fr */ /* Updated: 2016/12/09 19:11:15 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -16,7 +16,8 @@ char *ft_strjoin(char const *s1, char const *s2)
{ {
char *join; char *join;
join = ft_strnew(ft_strlen(s1) + ft_strlen(s2) + 1); if (!(join = ft_strnew(ft_strlen(s1) + ft_strlen(s2) + 1)))
return (NULL);
if (s1) if (s1)
ft_strcpy(join, s1); ft_strcpy(join, s1);
if (s2) if (s2)