ft_ls/src/long_output.c
Gregory Tertyshny 2b3c0fd164 almost done
2017-04-02 06:53:04 +03:00

72 lines
2.2 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* 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");
}