+
+ if (listFlag == TRUE) {
+ /* Special treatment if the list (-t) flag is on */
+ if (verboseFlag == TRUE) {
+ int len, len1;
+ char buf[35];
+ struct tm *tm = localtime (&(header.mtime));
+
+ len=printf("%s ", mode_string(header.mode));
+ my_getpwuid(buf, header.uid);
+ if (! *buf)
+ len+=printf("%d", header.uid);
+ else
+ len+=printf("%s", buf);
+ my_getgrgid(buf, header.gid);
+ if (! *buf)
+ len+=printf("/%-d ", header.gid);
+ else
+ len+=printf("/%-s ", buf);
+
+ if (header.type==CHRTYPE || header.type==BLKTYPE) {
+ len1=snprintf(buf, sizeof(buf), "%ld,%-ld ",
+ header.devmajor, header.devminor);
+ } else {
+ len1=snprintf(buf, sizeof(buf), "%lu ", (long)header.size);
+ }
+ /* Jump through some hoops to make the columns match up */
+ for(;(len+len1)<31;len++)
+ printf(" ");
+ printf(buf);
+
+ /* Use ISO 8610 time format */
+ if (tm) {
+ printf ("%04d-%02d-%02d %02d:%02d:%02d ",
+ tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
+ tm->tm_hour, tm->tm_min, tm->tm_sec);
+ }
+ }