int hexa_min_ll(t_struct data, unsigned long long nb, int i, int lower) { int j; int ret; int l; l = data.flag & 1 ? 2 : 0; ret = 0; j = i; if (data.flag & 1 && data.min != 0 && data.flag & 2) { if (data.flag & 0b00000001 && nb != 0) ret += pf_putstr(lower == 1 ? "0x" : "0X"); while (ret < data.min - (data.prec < j ? 0 : data.prec)) ret += pf_putchar(data.flag & 0b00000010 ? '0' : ' '); } else { while (ret < data.min - (data.prec < j ? j : data.prec)) ret += pf_putchar(data.flag & 0b00000010 ? '0' : ' '); if (data.flag & 0b00000001 && nb != 0) ret += pf_putstr(lower == 1 ? "0x" : "0X"); } ret += put_prec_nb(data.prec - j); pf_puthexa_noflag_ll(nb, lower); return (ret); }
void conv_str(char *str, t_flags *flags, int *ret) { int counter; char *tmp; counter = 0; tmp = str; while (*tmp && (counter < flags->precision || flags->precision < 0)) { counter++; tmp += 1; } flags->padding -= counter; while (!flags->left && flags->padding > 0) { flags->padding -= 1; flags->zero ? pf_putchar('0', ret) : pf_putchar(' ', ret); } pf_putstr(str, flags, ret); while (flags->left && flags->padding > 0) { flags->padding -= 1; pf_putchar(' ', ret); } }
int hexa_prec_ll(t_struct data, unsigned long long nb, int i, int lower) { int ret; ret = 0; ret += put_prec_nb(data.prec - i); if (data.flag & 0b00000001) ret += pf_putstr(lower == 1 ? "0x" : "0X"); pf_puthexa_noflag_ll(nb, lower); return (ret); }
static int hexa_prec(t_struct data, unsigned int nb, int i, int lower) { int ret; ret = 0; ret += put_prec_nb(data.prec - i); if (data.flag & 0b00000001) ret += pf_putstr(lower == 1 ? "0x" : "0X"); if (data.prec != -1) pf_puthexa_noflag(nb, lower); return (ret); }
int hexa_hash_ll(t_struct data, unsigned long long nb, int i, int lower) { int j; int ret; ret = 0; j = i; if (data.flag & 0b00000001 && nb != 0) ret += pf_putstr(lower == 1 ? "0x" : "0X"); ret += put_prec_nb(data.prec - j); pf_puthexa_noflag_ll(nb, lower); while (ret < data.min + (data.flag & 1 ? 2 : 0) - j) ret += pf_putchar(' '); return (ret); }
int ft_printf(const char *format, ...) { va_list ap; const char *str; int len; len = 0; va_start(ap, format); str = format; while (*str) { if (*str == '%') { len += print_part(format, str); str = str + 1; len += do_format(&str, ap); format = str + 1; } str++; } len += pf_putstr(format); va_end(ap); return (len); }