- printf(pformat, (gw_ent != 0L) ? gw_ent->gr_name : "UNKNOWN");
- break;
- case 't':
- strncat(pformat, "lx", buf_len);
- printf(pformat, (unsigned long int) major(statbuf->st_rdev));
- break;
- case 'T':
- strncat(pformat, "lx", buf_len);
- printf(pformat, (unsigned long int) minor(statbuf->st_rdev));
- break;
- case 's':
- strncat(pformat, "lu", buf_len);
- printf(pformat, (uintmax_t) (statbuf->st_size));
- break;
- case 'B':
- strncat(pformat, "lu", buf_len);
- printf(pformat, (unsigned long int) 512); //ST_NBLOCKSIZE
- break;
- case 'b':
- strncat(pformat, "lu", buf_len);
- printf(pformat, (uintmax_t) statbuf->st_blocks);
- break;
- case 'o':
- strncat(pformat, "lu", buf_len);
- printf(pformat, (unsigned long int) statbuf->st_blksize);
- break;
- case 'x':
- strncat(pformat, "s", buf_len);
- printf(pformat, human_time(statbuf->st_atime));
- break;
- case 'X':
- strncat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu", buf_len);
- printf(pformat, (unsigned long int) statbuf->st_atime);
- break;
- case 'y':
- strncat(pformat, "s", buf_len);
- printf(pformat, human_time(statbuf->st_mtime));
- break;
- case 'Y':
- strncat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu", buf_len);
- printf(pformat, (unsigned long int) statbuf->st_mtime);
- break;
- case 'z':
- strncat(pformat, "s", buf_len);
- printf(pformat, human_time(statbuf->st_ctime));
- break;
- case 'Z':
- strncat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu", buf_len);
- printf(pformat, (unsigned long int) statbuf->st_ctime);
- break;
- default:
- strncat(pformat, "c", buf_len);
+ printfs(pformat, (gw_ent != NULL) ? gw_ent->gr_name : "UNKNOWN");
+ } else if (m == 't') {
+ strcat(pformat, "lx");
+ printf(pformat, (unsigned long) major(statbuf->st_rdev));
+ } else if (m == 'T') {
+ strcat(pformat, "lx");
+ printf(pformat, (unsigned long) minor(statbuf->st_rdev));
+ } else if (m == 's') {
+ strcat(pformat, "llu");
+ printf(pformat, (unsigned long long) statbuf->st_size);
+ } else if (m == 'B') {
+ strcat(pformat, "lu");
+ printf(pformat, (unsigned long) 512); //ST_NBLOCKSIZE
+ } else if (m == 'b') {
+ strcat(pformat, "llu");
+ printf(pformat, (unsigned long long) statbuf->st_blocks);
+ } else if (m == 'o') {
+ strcat(pformat, "lu");
+ printf(pformat, (unsigned long) statbuf->st_blksize);
+ } else if (m == 'x') {
+ printfs(pformat, human_time(statbuf->st_atime));
+ } else if (m == 'X') {
+ strcat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu");
+ /* note: (unsigned long) would be wrong:
+ * imagine (unsigned long64)int32 */
+ printf(pformat, (long) statbuf->st_atime);
+ } else if (m == 'y') {
+ printfs(pformat, human_time(statbuf->st_mtime));
+ } else if (m == 'Y') {
+ strcat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu");
+ printf(pformat, (long) statbuf->st_mtime);
+ } else if (m == 'z') {
+ printfs(pformat, human_time(statbuf->st_ctime));
+ } else if (m == 'Z') {
+ strcat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu");
+ printf(pformat, (long) statbuf->st_ctime);
+# if ENABLE_SELINUX
+ } else if (m == 'C' && (option_mask32 & OPT_SELINUX)) {
+ printfs(pformat, scontext);
+# endif
+ } else {
+ strcatc(pformat, 'c');