void printstream(DISPLAY *dp) { FTSENT *p; int col; int extwidth; extwidth = 0; if (f_inode) extwidth += dp->s_inode + 1; if (f_size) { if (f_humanize) extwidth += dp->s_size + 1; else extwidth += dp->s_block + 1; } if (f_type) extwidth += 1; for (col = 0, p = dp->list; p != NULL; p = p->fts_link) { if (IS_NOPRINT(p)) continue; if (col > 0) { (void)putchar(','), col++; if (col + 1 + extwidth + (int)p->fts_namelen >= termwidth) (void)putchar('\n'), col = 0; else (void)putchar(' '), col++; } col += printaname(p, dp->s_inode, f_humanize ? dp->s_size : dp->s_block); } (void)putchar('\n'); }
void printacol(DISPLAY *dp) { FTSENT *p; int chcnt, col, colwidth; int numcols; if ( (colwidth = compute_columns(dp, &numcols)) == 0) return; if (dp->list->fts_level != FTS_ROOTLEVEL && (f_longform || f_size)) (void)printf("total %llu\n", howmany(dp->btotal, blocksize)); col = 0; for (p = dp->list; p; p = p->fts_link) { if (IS_NOPRINT(p)) continue; if (col >= numcols) { col = 0; (void)putchar('\n'); } chcnt = printaname(p, dp->s_inode, dp->s_block); col++; if (col < numcols) while (chcnt++ < colwidth) (void)putchar(' '); } (void)putchar('\n'); }
void printstream (DISPLAY *dp) { extern int termwidth; FTSENT *p; int col; int extwidth; extwidth = 0; if (f_inode) extwidth += dp->s_inode + 1; if (f_size) extwidth += dp->s_block + 1; if (f_type) extwidth += 1; for (col = 0, p = dp->list; p != NULL; p = p->fts_link) { if (IS_NOPRINT (p)) continue; if (col > 0) { putchar (','), col++; if (col + 1 + extwidth + p->fts_namelen >= termwidth) putchar ('\n'), col = 0; else putchar (' '), col++; } col += printaname (p, dp->s_inode, dp->s_block); } putchar ('\n'); }
void printscol(DISPLAY *dp) { FTSENT *p; for (p = dp->list; p; p = p->fts_link) { if (IS_NOPRINT(p)) continue; (void)printaname(p, dp->s_inode, dp->s_block); (void)putchar('\n'); } }
void printlong(DISPLAY *dp) { struct stat *sp; FTSENT *p; NAMES *np; char buf[20]; if (dp->list->fts_level != FTS_ROOTLEVEL && (f_longform || f_size)) (void)printf("total %llu\n", howmany(dp->btotal, blocksize)); for (p = dp->list; p; p = p->fts_link) { if (IS_NOPRINT(p)) continue; sp = p->fts_statp; if (f_inode) (void)printf("%*llu ", dp->s_inode, (unsigned long long)sp->st_ino); if (f_size) (void)printf("%*lld ", dp->s_block, howmany((long long)sp->st_blocks, blocksize)); (void)strmode(sp->st_mode, buf); np = p->fts_pointer; (void)printf("%s %*u ", buf, dp->s_nlink, sp->st_nlink); if (!f_grouponly) (void)printf("%-*s ", dp->s_user, np->user); (void)printf("%-*s ", dp->s_group, np->group); if (f_flags) (void)printf("%-*s ", dp->s_flags, np->flags); if (S_ISCHR(sp->st_mode) || S_ISBLK(sp->st_mode)) (void)printf("%3d, %3d ", major(sp->st_rdev), minor(sp->st_rdev)); else if (dp->bcfile) (void)printf("%*s%*lld ", 8 - dp->s_size, "", dp->s_size, (long long)sp->st_size); else printsize(dp->s_size, sp->st_size); if (f_accesstime) printtime(sp->st_atime); else if (f_statustime) printtime(sp->st_ctime); else printtime(sp->st_mtime); (void)mbsprint(p->fts_name, 1); if (f_type || (f_typedir && S_ISDIR(sp->st_mode))) (void)printtype(sp->st_mode); if (S_ISLNK(sp->st_mode)) printlink(p); (void)putchar('\n'); } }
void printscol(const DISPLAY *dp) { FTSENT *p; xo_open_list("entry"); for (p = dp->list; p; p = p->fts_link) { if (IS_NOPRINT(p)) continue; xo_open_instance("entry"); (void)printaname(p, dp->s_inode, dp->s_block); xo_close_instance("entry"); xo_emit("\n"); } xo_close_list("entry"); }
void printacol(DISPLAY *dp) { FTSENT *p; int chcnt, col, colwidth; int numcols; colwidth = dp->maxlen; if (f_inode) colwidth += dp->s_inode + 1; if (f_size) { if (f_humanize) colwidth += dp->s_size + 1; else colwidth += dp->s_block + 1; } if (f_type || f_typedir) colwidth += 1; colwidth += 1; if (termwidth < 2 * colwidth) { printscol(dp); return; } numcols = termwidth / colwidth; colwidth = termwidth / numcols; /* spread out if possible */ printtotal(dp); /* "total: %u\n" */ chcnt = col = 0; for (p = dp->list; p; p = p->fts_link) { if (IS_NOPRINT(p)) continue; if (col >= numcols) { chcnt = col = 0; (void)putchar('\n'); } chcnt = printaname(p, dp->s_inode, f_humanize ? dp->s_size : dp->s_block); while (chcnt++ < colwidth) (void)putchar(' '); col++; } (void)putchar('\n'); }
void printlong(const DISPLAY *dp) { struct stat *sp; FTSENT *p; NAMES *np; char buf[20]; #ifdef COLORLS int color_printed = 0; #endif if ((dp->list == NULL || dp->list->fts_level != FTS_ROOTLEVEL) && (f_longform || f_size)) { xo_emit("{L:total} {:total-blocks/%lu}\n", howmany(dp->btotal, blocksize)); } xo_open_list("entry"); for (p = dp->list; p; p = p->fts_link) { char *name, *type; if (IS_NOPRINT(p)) continue; xo_open_instance("entry"); sp = p->fts_statp; name = getname(p->fts_name); if (name) xo_emit("{ke:name/%hs}", name); if (f_inode) xo_emit("{t:inode/%*ju} ", dp->s_inode, (uintmax_t)sp->st_ino); if (f_size) xo_emit("{t:blocks/%*jd} ", dp->s_block, howmany(sp->st_blocks, blocksize)); strmode(sp->st_mode, buf); aclmode(buf, p); np = p->fts_pointer; xo_attr("value", "%03o", (int) sp->st_mode & ALLPERMS); if (f_numericonly) { xo_emit("{t:mode/%s}{e:mode_octal/%03o} {t:links/%*u} {td:user/%-*s}{e:user/%ju} {td:group/%-*s}{e:group/%ju} ", buf, (int) sp->st_mode & ALLPERMS, dp->s_nlink, sp->st_nlink, dp->s_user, np->user, sp->st_uid, dp->s_group, np->group, sp->st_gid); } else { xo_emit("{t:mode/%s}{e:mode_octal/%03o} {t:links/%*u} {t:user/%-*s} {t:group/%-*s} ", buf, (int) sp->st_mode & ALLPERMS, dp->s_nlink, sp->st_nlink, dp->s_user, np->user, dp->s_group, np->group); } if (S_ISBLK(sp->st_mode)) asprintf(&type, "block"); if (S_ISCHR(sp->st_mode)) asprintf(&type, "character"); if (S_ISDIR(sp->st_mode)) asprintf(&type, "directory"); if (S_ISFIFO(sp->st_mode)) asprintf(&type, "fifo"); if (S_ISLNK(sp->st_mode)) asprintf(&type, "symlink"); if (S_ISREG(sp->st_mode)) asprintf(&type, "regular"); if (S_ISSOCK(sp->st_mode)) asprintf(&type, "socket"); if (S_ISWHT(sp->st_mode)) asprintf(&type, "whiteout"); xo_emit("{e:type/%s}", type); free(type); if (f_flags) xo_emit("{:flags/%-*s} ", dp->s_flags, np->flags); if (f_label) xo_emit("{t:label/%-*s} ", dp->s_label, np->label); if (S_ISCHR(sp->st_mode) || S_ISBLK(sp->st_mode)) printdev(dp->s_size, sp->st_rdev); else printsize("size", dp->s_size, sp->st_size); if (f_accesstime) printtime("access-time", sp->st_atime); else if (f_birthtime) printtime("birth-time", sp->st_birthtime); else if (f_statustime) printtime("change-time", sp->st_ctime); else printtime("modify-time", sp->st_mtime); #ifdef COLORLS if (f_color) color_printed = colortype(sp->st_mode); #endif if (name) { xo_emit("{dk:name/%hs}", name); free(name); } #ifdef COLORLS if (f_color && color_printed) endcolor(0); #endif if (f_type) (void)printtype(sp->st_mode); if (S_ISLNK(sp->st_mode)) printlink(p); xo_close_instance("entry"); xo_emit("\n"); } xo_close_list("entry"); }
void printlong(DISPLAY *dp) { struct stat *sp; FTSENT *p; NAMES *np; char buf[20], szbuf[5]; now = time(NULL); if (!f_leafonly) printtotal(dp); /* "total: %u\n" */ for (p = dp->list; p; p = p->fts_link) { if (IS_NOPRINT(p)) continue; sp = p->fts_statp; if (f_inode) (void)printf("%*"PRIu64" ", dp->s_inode, sp->st_ino); if (f_size) { if (f_humanize) { if ((humanize_number(szbuf, sizeof(szbuf), sp->st_blocks * S_BLKSIZE, "", HN_AUTOSCALE, (HN_DECIMAL | HN_B | HN_NOSPACE))) == -1) err(1, "humanize_number"); (void)printf("%*s ", dp->s_block, szbuf); } else { (void)printf(f_commas ? "%'*llu " : "%*llu ", dp->s_block, (unsigned long long)howmany(sp->st_blocks, blocksize)); } } (void)strmode(sp->st_mode, buf); np = p->fts_pointer; (void)printf("%s %*lu ", buf, dp->s_nlink, (unsigned long)sp->st_nlink); if (!f_grouponly) (void)printf("%-*s ", dp->s_user, np->user); (void)printf("%-*s ", dp->s_group, np->group); if (f_flags) (void)printf("%-*s ", dp->s_flags, np->flags); if (S_ISCHR(sp->st_mode) || S_ISBLK(sp->st_mode)) (void)printf("%*lld, %*lld ", dp->s_major, (long long)major(sp->st_rdev), dp->s_minor, (long long)minor(sp->st_rdev)); else if (f_humanize) { if ((humanize_number(szbuf, sizeof(szbuf), sp->st_size, "", HN_AUTOSCALE, (HN_DECIMAL | HN_B | HN_NOSPACE))) == -1) err(1, "humanize_number"); (void)printf("%*s ", dp->s_size, szbuf); } else { (void)printf(f_commas ? "%'*llu " : "%*llu ", dp->s_size, (unsigned long long) sp->st_size); } if (f_accesstime) printtime(sp->st_atime); else if (f_statustime) printtime(sp->st_ctime); else printtime(sp->st_mtime); if (f_octal || f_octal_escape) (void)safe_printpath(p); else if (f_nonprint) (void)printescapedpath(p); else (void)printpath(p); if (f_type || (f_typedir && S_ISDIR(sp->st_mode))) (void)printtype(sp->st_mode); if (S_ISLNK(sp->st_mode)) printlink(p); (void)putchar('\n'); } }
void printlong(const DISPLAY *dp) { struct stat *sp; FTSENT *p; NAMES *np; char buf[20]; #ifdef COLORLS int color_printed = 0; #endif if ((dp->list == NULL || dp->list->fts_level != FTS_ROOTLEVEL) && (f_longform || f_size)) { (void)printf("total %lu\n", howmany(dp->btotal, blocksize)); } for (p = dp->list; p; p = p->fts_link) { if (IS_NOPRINT(p)) continue; sp = p->fts_statp; if (f_inode) (void)printf("%*lu ", dp->s_inode, (u_long)sp->st_ino); if (f_size) (void)printf("%*jd ", dp->s_block, howmany(sp->st_blocks, blocksize)); strmode(sp->st_mode, buf); aclmode(buf, p); np = p->fts_pointer; (void)printf("%s %*u %-*s %-*s ", buf, dp->s_nlink, sp->st_nlink, dp->s_user, np->user, dp->s_group, np->group); if (f_flags) (void)printf("%-*s ", dp->s_flags, np->flags); if (f_label) (void)printf("%-*s ", dp->s_label, np->label); if (S_ISCHR(sp->st_mode) || S_ISBLK(sp->st_mode)) printdev(dp->s_size, sp->st_rdev); else printsize(dp->s_size, sp->st_size); if (f_accesstime) printtime(sp->st_atime); else if (f_birthtime) printtime(sp->st_birthtime); else if (f_statustime) printtime(sp->st_ctime); else printtime(sp->st_mtime); #ifdef COLORLS if (f_color) color_printed = colortype(sp->st_mode); #endif (void)printname(p->fts_name); #ifdef COLORLS if (f_color && color_printed) endcolor(0); #endif if (f_type) (void)printtype(sp->st_mode); if (S_ISLNK(sp->st_mode)) printlink(p); (void)putchar('\n'); } }