void ft_get_size_spaces(t_infos *entry_list, int i, int j, int ret) { static int nb; int k; int tmp; if (!nb) { k = 0; while (k <= i) { if ((tmp = ft_digitlen(entry_list[k].size)) > nb) nb = tmp; k++; } } if (ret == 1) nb = 8; tmp = ft_digitlen(entry_list[j].size); while (tmp < nb + 2) { ft_putchar(' '); tmp++; } ft_putnbr(entry_list[j].size); ft_putchar(' '); }
void ft_get_link_spaces(t_infos *entry_list, int i, int j) { static int nb; int k; int tmp; if (!nb) { k = 0; while (k <= i) { if ((tmp = ft_digitlen(entry_list[k].nb_link)) > nb) nb = tmp; k++; } } tmp = ft_digitlen(entry_list[j].nb_link); while (tmp < nb + 2) { ft_putchar(' '); tmp++; } ft_putnbr(entry_list[j].nb_link); ft_putchar(' '); ft_get_owner_spaces(entry_list, i, j); }
int ft_atoi(const char *str) { unsigned int i; int base; long tot; i = 0; base = 1; tot = 0; while (str && (*str == ' ' || (9 <= *str && *str <= 13))) str++; if (str && (*str == '-' || *str == '+')) i++; if (str && (i += ft_digitlen(str + i)) > 11) return (FTL_ERR); while (str && i-- > (*str == '-' || *str == '+')) { if (*str == '-') tot -= (str[i] - '0') * base; else tot += (str[i] - '0') * base; base *= 10; } return ((tot < FTL_B31 && tot >= FTL_INTMIN ? (int)tot : FTL_ERR)); }
int ft_digitlen(int i) { if (i < 0) i = -i; if (i <= 9) return (1); return (1 + ft_digitlen(i / 10)); }
int ft_get_minor_spaces(t_infos *entry_list, int i, int j) { static int nb; int k; int tmp; if (!nb) { k = 0; while (k <= i) { if ((tmp = ft_digitlen(minor(entry_list[k].st_dev))) > nb) nb = tmp; k++; } } tmp = ft_digitlen(minor(entry_list[j].st_dev)); while (tmp++ < nb + 1) ft_putchar(' '); ft_putnbr(minor(entry_list[j].st_dev)); ft_putchar(' '); return (0); }
int ft_precise(char *str, int len) { int i; int n; i = 0; n = 0; while (i < len) { if (str[i - 1] == '.' && ft_isdigit(str[i])) { n = ft_atoi(str + i); i += ft_digitlen(n); } else ++i; } return (n); }
unsigned int ft_area_flag(const char *sarea, t_options *stc, va_list ap) { if (sarea && stc && (('1' <= *sarea && *sarea <= '9') || *sarea == FT_STAR)) { if (ft_isdigit(*sarea)) stc->area = ft_atoi(sarea); else stc->area = va_arg(ap, int); stc->ck |= FT_AREA; stc->ck &= ~FT_CHECK_FLAG; if (*sarea == FT_STAR && (int)stc->area < 0) { stc->area = (int)(-stc->area); stc->fl |= FT_LESS; } if (stc->area >= FTL_B31) stc->area = 0; return (ft_digitlen(sarea + !(*sarea == FT_STAR))); } return (0); }
unsigned int ft_accu_flag(const char *saccu, t_options *stc, va_list ap) { if (saccu && stc && *saccu == '.') { stc->ck |= FT_ACCU; stc->ck &= ~FT_CHECK_FLAG; saccu++; if (ft_isdigit(*saccu) || *saccu == FT_STAR) { if (ft_isdigit(*saccu)) stc->accu = ft_atoi(saccu); else stc->accu = va_arg(ap, int); if ((int)stc->accu < 0) { stc->accu = 0; stc->ck &= ~FT_ACCU; } return (ft_digitlen(saccu) + (*saccu == FT_STAR)); } stc->accu = 0; }