/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* long_output.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: gtertysh <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/04/02 06:30:33 by gtertysh #+# #+# */ /* Updated: 2017/04/02 06:30:55 by gtertysh ### ########.fr */ /* */ /* ************************************************************************** */ #include "ft_ls.h" void put_sp(int num) { while (num--) ft_putstr(" "); } void put_total(int total) { ft_putstr("total"); ft_putstr(" "); ft_putnbr(total); ft_putstr("\n"); } void put_link(t_dir_elm *d_elm) { char *tmp_link; tmp_link = ft_strjoin(" -> ", d_elm->link_name); ft_putstr(tmp_link); free(tmp_link); } void put_minor_major(t_dir_elm *d_elm) { ft_putnbr(major(d_elm->stat_copy->st_rdev)); ft_putstr(","); ft_putstr(" "); ft_putnbr(minor(d_elm->stat_copy->st_rdev)); } void long_format(t_list *lst_d_elm, t_ft_ls *s_ls) { t_dir_elm *de; de = (t_dir_elm *)lst_d_elm->content; ft_putstr(de->attr_str); put_sp(s_ls->max_cols_padd->link_col - de->cols_padd.link_col + 1); ft_putnbr((int)de->stat_copy->st_nlink); ft_putstr(" "); ft_putstr(de->u_name); put_sp(s_ls->max_cols_padd->name_col - de->cols_padd.name_col + 2); ft_putstr(de->g_name); put_sp(s_ls->max_cols_padd->group_col - de->cols_padd.group_col + 1); put_sp(s_ls->max_cols_padd->size_mn_col - de->cols_padd.size_mn_col + 2); if (S_ISBLK(de->stat_copy->st_mode) || S_ISCHR(de->stat_copy->st_mode)) put_minor_major(de); else ft_putnbr((int)de->stat_copy->st_size); ft_putstr(" "); ft_putstr(de->m_time); ft_putstr(" "); ft_putstr(de->elm_name); if (S_ISLNK(de->stat_copy->st_mode)) put_link(de); ft_putstr("\n"); }