void attrib_d_char(char **str, t_var **var, int count[3]) { int nbr; int flag; char c; int k; int check; int check_double; int neg; k = 0; c = 't'; neg = 0; nbr = ft_nbrlen(var[count[2]]->carac); flag = check_flag(str, count, &nbr, &c); check = ft_atoi_ultra(str[count[0]]); if (flag == 3500) check_double = ft_atoi_double(str[count[0]]); if (str[count[0]][0] == '.' && var[count[2]]->carac < 0) nbr--; str[count[0]] = ft_ntoa_base(var[count[2]]->carac, "0123456789"); if (var[count[2]]->carac < 0 && str[count[0]][0] != '0') neg = 1; if (flag == 1000 && var[count[2]]->carac >= 0) { neg = 1; str[count[0]] = ft_strjoin("+", str[count[0]]); } else if (flag == 3500) { if (var[count[2]]->carac < 0) { str[count[0]] = ft_strsub(str[count[0]], 1, ft_nbrlen(var[count[2]]->carac) + 1); while (k < check_double - nbr - 1) { str[count[0]] = ft_strjoin("0", str[count[0]]); k++; } k = 0; str[count[0]] = ft_strjoin("-", str[count[0]]); while (k < check - check_double) { str[count[0]] = ft_strjoin(" ", str[count[0]]); k++; } } else { while (k < check_double - nbr) { str[count[0]] = ft_strjoin("0", str[count[0]]); k++; } k = 0; while (k < check - check_double) { str[count[0]] = ft_strjoin(" ", str[count[0]]); k++; } } } else if (flag == 2000 && var[count[2]]->carac >= 0) str[count[0]] = ft_strjoin(" ", str[count[0]]); else if (flag == 4000) { if (var[count[2]]->carac >= 0) str[count[0]] = ft_strjoin("+", str[count[0]]); while (k < check - nbr) { str[count[0]] = ft_strjoin(str[count[0]], " "); k++; } } else if (flag == 3000) { if (var[count[2]]->stars < 0) { while (k > var[count[2]]->stars + nbr - 1) { str[count[0]] = ft_strjoin(str[count[0]], " "); k--; } } else { while (k < var[count[2]]->stars - nbr + 1) { str[count[0]] = ft_strjoin(" ", str[count[0]]); k++; } } } else if (flag != 1 && flag != 1000 && flag != 2000 && flag != 3000 && flag != 4000 && flag != 3500 && flag != 5000) { if (flag < -1 && c != '0') { while (k > flag + nbr + neg) { str[count[0]] = ft_strjoin(str[count[0]], " "); k--; } } else if (flag > 0 && (c == '0' || c == '.')) { if (var[count[2]]->carac < 0) str[count[0]] = ft_strsub(str[count[0]], 1, ft_nbrlen(var[count[2]]->entier) + 1); while (k < flag - nbr - neg) { str[count[0]] = ft_strjoin("0", str[count[0]]); k++; } if (var[count[2]]->carac < 0) str[count[0]] = ft_strjoin("-", str[count[0]]); } else if (flag < -1 && c == '0') { while (k > flag) { str[count[0]] = ft_strjoin("0", str[count[0]]); k--; } } else { while (k < flag - nbr - neg) { str[count[0]] = ft_strjoin(" ", str[count[0]]); k++; } } } count[2]++; }
int ft_putlonglong(long long value, char **str) { if ((*str = ft_ntoa_base(value, "0123456789"))) return (ft_strlen(*str)); return (0); }