- if (f_singlecol) {
- for (entry = 0; entry < num; ++entry) {
- (void)printaname(&stats[entry]);
- (void)putchar('\n');
- }
- return;
- }
-
- if (f_longform) {
- if (!f_firsttime) {
- for (i = 0, blocks = 0; i < num; ++i)
- blocks += stats[i].lstat.st_blocks;
- (void)printf("total %ld\n", blocks / 2);
- }
- for (i = 0; i < num; ++i) {
- if (f_inode)
- (void)printf("%6lu ", stats[i].lstat.st_ino);
- if (f_size)
- (void)printf("%4ld ",
- stats[i].lstat.st_blocks / 2);
- printperms(stats[i].lstat.st_mode);
- (void)printf("%3d ", stats[i].lstat.st_nlink);
- printowner(stats[i].lstat.st_uid);
- if (f_group)
- printgrp(stats[i].lstat.st_gid);
- if (S_ISCHR(stats[i].lstat.st_mode) ||
- S_ISBLK(stats[i].lstat.st_mode))
- (void)printf("%3d,%4d ",
- major(stats[i].lstat.st_rdev),
- minor(stats[i].lstat.st_rdev));
- else
- (void)printf("%8ld ", stats[i].lstat.st_size);
- if (f_accesstime)
- printtime(stats[i].lstat.st_atime);
- else if (f_statustime)
- printtime(stats[i].lstat.st_ctime);
- else
- printtime(stats[i].lstat.st_mtime);
- (void)printf("%s", stats[i].name);
- if (f_type)
- (void)printtype(stats[i].lstat.st_mode);
- if (S_ISLNK(stats[i].lstat.st_mode))
- printlink(stats[i].name);
- (void)putchar('\n');
- }
- return;
- }
-
- /*
- * assume tabs every 8 columns WARNING: bad code (hard coded
- * constants) follows:
- */
-
- /* figure out max width */
- maxlen = -1;
- for (i = 0; i < num; ++i) {
- if (maxlen < lengthfcn(stats[i].name))
- maxlen = lengthfcn(stats[i].name);
- }