#define MAXDEPTH 1024
#define CSUMXL 32
-static int quiet=0, hidectime=0, filenamefieldsep=' ';
+static int quiet=0, hidectime=0, hideatime=0;
+static int hidedirsizelinkcount=0, hidelinkmtime=0;
+static int filenamefieldsep=' ';
static FILE *errfile;
static void fn_escaped(FILE *f, const char *fn) {
else linktarg[r]= 0;
}
- printf(" %10lu %4d %4o %10ld %10ld %10lu %10lu",
- (unsigned long)stab->st_size,
- (int)stab->st_nlink,
+ if (S_ISDIR(stab->st_mode) && hidedirsizelinkcount)
+ printf(" %10s %4s","dir","dir");
+ else
+ printf(" %10lu %4d",
+ (unsigned long)stab->st_size,
+ (int)stab->st_nlink);
+
+ printf(" %4o %10ld %10ld",
(unsigned)stab->st_mode & 07777U,
(unsigned long)stab->st_uid,
- (unsigned long)stab->st_gid,
- (unsigned long)stab->st_atime,
- (unsigned long)stab->st_mtime);
+ (unsigned long)stab->st_gid);
+
+ if (!hideatime)
+ printf(" %10lu",
+ (unsigned long)stab->st_atime);
+
+ if (S_ISLNK(stab->st_mode) && hidelinkmtime)
+ printf(" %10s","link");
+ else
+ printf(" %10lu",
+ (unsigned long)stab->st_mtime);
+
if (!hidectime)
printf(" %10lu",
(unsigned long)stab->st_ctime);
case 't':
filenamefieldsep= '\t';
break;
+ case 'D':
+ hidedirsizelinkcount= 1;
+ break;
+ case 'b':
+ hidelinkmtime= 1;
+ break;
case 'C':
hidectime= 1;
break;
+ case 'A':
+ hideatime= 1;
+ break;
case 'f':
errfile= stdout;
break;