+static void pu10(void) { printf(" %10s", "?"); }
+
+#define PTIME(stab, memb) ((stab) ? ptime((stab), (stab)->memb) : pu10())
+
+static void ptime(const struct stat *stab, unsigned long val) {
+ const char *instead;
+
+ if (!hidextime) goto justprint;
+ else if (S_ISCHR(stab->st_mode)) instead= "char";
+ else if (S_ISBLK(stab->st_mode)) instead= "block";
+ else if (S_ISLNK(stab->st_mode)) instead= "link";
+ else if (S_ISSOCK(stab->st_mode)) instead= "sock";
+ else if (S_ISFIFO(stab->st_mode)) instead= "pipe";
+ else {
+ justprint:
+ printf(" %10lu", val);
+ return;
+ }
+
+ printf(" %10s",instead);
+}
+