void ft_fill_data(t_ls *new_elem, struct stat *buf, s_data *data) { t_ls *tmp; data->blocks = data->blocks + (long long int)buf->st_blocks; free(data->blocks_disp); data->blocks_disp = NULL; data->blocks_disp = ft_longlongtoa(data->blocks); new_elem->type = ft_get_type(buf); new_elem->size = ft_get_size(buf); new_elem->nbr_hl = ft_get_hl(buf); new_elem->group = ft_get_group(buf); new_elem->owner = ft_get_owner(buf); new_elem->permission = ft_get_permission(new_elem, buf); new_elem->modification = ft_get_modification(buf); new_elem->name = ft_strcpy(data->file_to_open_name); new_elem->name_low = ft_to_lower(data->file_to_open_name); if (data->dev) ft_get_device(new_elem, buf); new_elem->next = NULL; if (data->ls) { tmp = data->ls; while (tmp->next) tmp = tmp->next; tmp->next = new_elem; } else data->ls = new_elem; }
int main(int ac, char **av) { struct termios term; t_data d; t_list *list; if (ac <= 1) return (0); list = NULL; d.max_row = --ac; d.pos_init = d.max_row; d.pos = d.pos_init; list = ft_make_list(av, &d); if (ft_set_stage(ac, &term)) ft_get_size(&d); make_header(&d); get_col_nb(&d); ft_signals(); print_multi_tab(list, &d); tputs(tgetstr("vi", NULL), 1, tputs_putchar); d.us = 1; ft_while(&d, &term, list); tputs(tgetstr("ve", NULL), 1, tputs_putchar); return (0); }
char *ft_lltoa(long long n) { char *tmp; int a; int b; b = ft_get_size(n); if ((tmp = ft_strnew(b)) == NULL) return (NULL); a = 1; if (n < 0) { a = -1; tmp[0] = '-'; } if (n == 0) tmp[0] = '0'; if (b > 0) --b; while (n != 0) { tmp[b] = a * (n % 10) + '0'; n = n / 10; --b; } return (tmp); }