int conversion_d_up(int *i, va_list params, int nb_char) { long nb; char *str; nb = va_arg(params, long); str = ft_itoa_l(nb); ft_putstr(str); nb_char += ft_strlen(str); (*i)++; return (nb_char); }
static void print_addr(t_struct var) { int i; char *str; str = ft_itoa_l(var.addr, 16, 'a'); i = -1; while (++i < 16 - ft_strlen(str)) write(1, "0", 1); ft_printf("%s ", str); free(str); }
int conversion_u(int *i, va_list params, int nb_char) { unsigned int nb; char *unb; nb = va_arg(params, unsigned int); unb = ft_itoa_l(nb); ft_putstr(unb); nb_char += ft_strlen(unb); (*i)++; return (nb_char); }
static int align_left(unsigned long l, int w, int p, t_format *f) { char *str; int ret; ret = 0; if (!(str = (l == 0 && p == 0) ? ft_strdup("") : ft_itoa_l(l, 16, 'a'))) return (-1); if (p >= 0 && f->flags & 2) f->flags ^= 2; p = (p < ft_strlen(str)) ? ft_strlen(str) : p; ret += ft_putstr("0x"); if (p > ft_strlen(str)) ret += filling('0', p - ft_strlen(str)); ret += ft_putstr(str); ret += filling(' ', w - p - 2); free(str); return (ret); }