aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-02-02 03:08:57 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-02-02 03:08:57 +0100
commit5b9b1365a086056e992e7868db8e49989fedcbaf (patch)
treeafa6360504fab7057acb7477df353b178b250512 /coreutils
parent4b061461d3f5cb62a6f384d80fd5a3f6be51bd25 (diff)
downloadbusybox-w32-5b9b1365a086056e992e7868db8e49989fedcbaf.tar.gz
busybox-w32-5b9b1365a086056e992e7868db8e49989fedcbaf.tar.bz2
busybox-w32-5b9b1365a086056e992e7868db8e49989fedcbaf.zip
stat: get rid on intmax_t
function old new delta print_it 225 218 -7 print_stat 919 889 -30 print_statfs 370 339 -31 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-68) Total: -68 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/stat.c181
1 files changed, 91 insertions, 90 deletions
diff --git a/coreutils/stat.c b/coreutils/stat.c
index bbd2e6a7c..57f1f145a 100644
--- a/coreutils/stat.c
+++ b/coreutils/stat.c
@@ -12,10 +12,8 @@
12 * 12 *
13 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. 13 * Licensed under GPLv2 or later, see file LICENSE in this tarball for details.
14 */ 14 */
15
16#include "libbb.h" 15#include "libbb.h"
17 16
18/* vars to control behavior */
19#define OPT_FILESYS (1 << 0) 17#define OPT_FILESYS (1 << 0)
20#define OPT_TERSE (1 << 1) 18#define OPT_TERSE (1 << 1)
21#define OPT_DEREFERENCE (1 << 2) 19#define OPT_DEREFERENCE (1 << 2)
@@ -154,7 +152,7 @@ static void printfs(char *pformat, const char *msg)
154} 152}
155 153
156/* print statfs info */ 154/* print statfs info */
157static void print_statfs(char *pformat, const char m, 155static void FAST_FUNC print_statfs(char *pformat, const char m,
158 const char *const filename, const void *data 156 const char *const filename, const void *data
159 IF_SELINUX(, security_context_t scontext)) 157 IF_SELINUX(, security_context_t scontext))
160{ 158{
@@ -166,34 +164,34 @@ static void print_statfs(char *pformat, const char m,
166 printf(pformat, get_f_fsid(statfsbuf)); 164 printf(pformat, get_f_fsid(statfsbuf));
167 } else if (m == 'l') { 165 } else if (m == 'l') {
168 strcat(pformat, "lu"); 166 strcat(pformat, "lu");
169 printf(pformat, (unsigned long) (statfsbuf->f_namelen)); 167 printf(pformat, (unsigned long) statfsbuf->f_namelen);
170 } else if (m == 't') { 168 } else if (m == 't') {
171 strcat(pformat, "lx"); 169 strcat(pformat, "lx");
172 printf(pformat, (unsigned long) (statfsbuf->f_type)); /* no equiv */ 170 printf(pformat, (unsigned long) statfsbuf->f_type); /* no equiv */
173 } else if (m == 'T') { 171 } else if (m == 'T') {
174 printfs(pformat, human_fstype(statfsbuf->f_type)); 172 printfs(pformat, human_fstype(statfsbuf->f_type));
175 } else if (m == 'b') { 173 } else if (m == 'b') {
176 strcat(pformat, "jd"); 174 strcat(pformat, "llu");
177 printf(pformat, (intmax_t) (statfsbuf->f_blocks)); 175 printf(pformat, (unsigned long long) statfsbuf->f_blocks);
178 } else if (m == 'f') { 176 } else if (m == 'f') {
179 strcat(pformat, "jd"); 177 strcat(pformat, "llu");
180 printf(pformat, (intmax_t) (statfsbuf->f_bfree)); 178 printf(pformat, (unsigned long long) statfsbuf->f_bfree);
181 } else if (m == 'a') { 179 } else if (m == 'a') {
182 strcat(pformat, "jd"); 180 strcat(pformat, "llu");
183 printf(pformat, (intmax_t) (statfsbuf->f_bavail)); 181 printf(pformat, (unsigned long long) statfsbuf->f_bavail);
184 } else if (m == 's' || m == 'S') { 182 } else if (m == 's' || m == 'S') {
185 strcat(pformat, "lu"); 183 strcat(pformat, "lu");
186 printf(pformat, (unsigned long) (statfsbuf->f_bsize)); 184 printf(pformat, (unsigned long) statfsbuf->f_bsize);
187 } else if (m == 'c') { 185 } else if (m == 'c') {
188 strcat(pformat, "jd"); 186 strcat(pformat, "llu");
189 printf(pformat, (intmax_t) (statfsbuf->f_files)); 187 printf(pformat, (unsigned long long) statfsbuf->f_files);
190 } else if (m == 'd') { 188 } else if (m == 'd') {
191 strcat(pformat, "jd"); 189 strcat(pformat, "llu");
192 printf(pformat, (intmax_t) (statfsbuf->f_ffree)); 190 printf(pformat, (unsigned long long) statfsbuf->f_ffree);
193#if ENABLE_SELINUX 191# if ENABLE_SELINUX
194 } else if (m == 'C' && (option_mask32 & OPT_SELINUX)) { 192 } else if (m == 'C' && (option_mask32 & OPT_SELINUX)) {
195 printfs(pformat, scontext); 193 printfs(pformat, scontext);
196#endif 194# endif
197 } else { 195 } else {
198 strcatc(pformat, 'c'); 196 strcatc(pformat, 'c');
199 printf(pformat, m); 197 printf(pformat, m);
@@ -201,7 +199,7 @@ static void print_statfs(char *pformat, const char m,
201} 199}
202 200
203/* print stat info */ 201/* print stat info */
204static void print_stat(char *pformat, const char m, 202static void FAST_FUNC print_stat(char *pformat, const char m,
205 const char *const filename, const void *data 203 const char *const filename, const void *data
206 IF_SELINUX(, security_context_t scontext)) 204 IF_SELINUX(, security_context_t scontext))
207{ 205{
@@ -227,14 +225,14 @@ static void print_stat(char *pformat, const char m,
227 printf(pformat, filename); 225 printf(pformat, filename);
228 } 226 }
229 } else if (m == 'd') { 227 } else if (m == 'd') {
230 strcat(pformat, "ju"); 228 strcat(pformat, "llu");
231 printf(pformat, (uintmax_t) statbuf->st_dev); 229 printf(pformat, (unsigned long long) statbuf->st_dev);
232 } else if (m == 'D') { 230 } else if (m == 'D') {
233 strcat(pformat, "jx"); 231 strcat(pformat, "llx");
234 printf(pformat, (uintmax_t) statbuf->st_dev); 232 printf(pformat, (unsigned long long) statbuf->st_dev);
235 } else if (m == 'i') { 233 } else if (m == 'i') {
236 strcat(pformat, "ju"); 234 strcat(pformat, "llu");
237 printf(pformat, (uintmax_t) statbuf->st_ino); 235 printf(pformat, (unsigned long long) statbuf->st_ino);
238 } else if (m == 'a') { 236 } else if (m == 'a') {
239 strcat(pformat, "lo"); 237 strcat(pformat, "lo");
240 printf(pformat, (unsigned long) (statbuf->st_mode & (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO))); 238 printf(pformat, (unsigned long) (statbuf->st_mode & (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)));
@@ -269,14 +267,14 @@ static void print_stat(char *pformat, const char m,
269 strcat(pformat, "lx"); 267 strcat(pformat, "lx");
270 printf(pformat, (unsigned long) minor(statbuf->st_rdev)); 268 printf(pformat, (unsigned long) minor(statbuf->st_rdev));
271 } else if (m == 's') { 269 } else if (m == 's') {
272 strcat(pformat, "ju"); 270 strcat(pformat, "llu");
273 printf(pformat, (uintmax_t) (statbuf->st_size)); 271 printf(pformat, (unsigned long long) statbuf->st_size);
274 } else if (m == 'B') { 272 } else if (m == 'B') {
275 strcat(pformat, "lu"); 273 strcat(pformat, "lu");
276 printf(pformat, (unsigned long) 512); //ST_NBLOCKSIZE 274 printf(pformat, (unsigned long) 512); //ST_NBLOCKSIZE
277 } else if (m == 'b') { 275 } else if (m == 'b') {
278 strcat(pformat, "ju"); 276 strcat(pformat, "llu");
279 printf(pformat, (uintmax_t) statbuf->st_blocks); 277 printf(pformat, (unsigned long long) statbuf->st_blocks);
280 } else if (m == 'o') { 278 } else if (m == 'o') {
281 strcat(pformat, "lu"); 279 strcat(pformat, "lu");
282 printf(pformat, (unsigned long) statbuf->st_blksize); 280 printf(pformat, (unsigned long) statbuf->st_blksize);
@@ -284,31 +282,34 @@ static void print_stat(char *pformat, const char m,
284 printfs(pformat, human_time(statbuf->st_atime)); 282 printfs(pformat, human_time(statbuf->st_atime));
285 } else if (m == 'X') { 283 } else if (m == 'X') {
286 strcat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu"); 284 strcat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu");
287 printf(pformat, (unsigned long) statbuf->st_atime); 285 /* note: (unsigned long) would be wrong:
286 * imagine (unsigned long64)int32 */
287 printf(pformat, (long) statbuf->st_atime);
288 } else if (m == 'y') { 288 } else if (m == 'y') {
289 printfs(pformat, human_time(statbuf->st_mtime)); 289 printfs(pformat, human_time(statbuf->st_mtime));
290 } else if (m == 'Y') { 290 } else if (m == 'Y') {
291 strcat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu"); 291 strcat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu");
292 printf(pformat, (unsigned long) statbuf->st_mtime); 292 printf(pformat, (long) statbuf->st_mtime);
293 } else if (m == 'z') { 293 } else if (m == 'z') {
294 printfs(pformat, human_time(statbuf->st_ctime)); 294 printfs(pformat, human_time(statbuf->st_ctime));
295 } else if (m == 'Z') { 295 } else if (m == 'Z') {
296 strcat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu"); 296 strcat(pformat, TYPE_SIGNED(time_t) ? "ld" : "lu");
297 printf(pformat, (unsigned long) statbuf->st_ctime); 297 printf(pformat, (long) statbuf->st_ctime);
298#if ENABLE_SELINUX 298# if ENABLE_SELINUX
299 } else if (m == 'C' && (option_mask32 & OPT_SELINUX)) { 299 } else if (m == 'C' && (option_mask32 & OPT_SELINUX)) {
300 printfs(pformat, scontext); 300 printfs(pformat, scontext);
301#endif 301# endif
302 } else { 302 } else {
303 strcatc(pformat, 'c'); 303 strcatc(pformat, 'c');
304 printf(pformat, m); 304 printf(pformat, m);
305 } 305 }
306} 306}
307 307
308static void print_it(const char *masterformat, const char *filename, 308static void print_it(const char *masterformat,
309 void (*print_func) (char*, char, const char*, const void* IF_SELINUX(, security_context_t scontext)), 309 const char *filename,
310 void FAST_FUNC (*print_func)(char*, char, const char*, const void* IF_SELINUX(, security_context_t scontext)),
310 const void *data 311 const void *data
311 IF_SELINUX(, security_context_t scontext) ) 312 IF_SELINUX(, security_context_t scontext))
312{ 313{
313 /* Create a working copy of the format string */ 314 /* Create a working copy of the format string */
314 char *format = xstrdup(masterformat); 315 char *format = xstrdup(masterformat);
@@ -355,7 +356,7 @@ static void print_it(const char *masterformat, const char *filename,
355 free(format); 356 free(format);
356 free(dest); 357 free(dest);
357} 358}
358#endif 359#endif /* FEATURE_STAT_FORMAT */
359 360
360/* Stat the file system and print what we find. */ 361/* Stat the file system and print what we find. */
361#if !ENABLE_FEATURE_STAT_FORMAT 362#if !ENABLE_FEATURE_STAT_FORMAT
@@ -364,7 +365,6 @@ static void print_it(const char *masterformat, const char *filename,
364static bool do_statfs(const char *filename, const char *format) 365static bool do_statfs(const char *filename, const char *format)
365{ 366{
366 struct statfs statfsbuf; 367 struct statfs statfsbuf;
367
368#if !ENABLE_FEATURE_STAT_FORMAT 368#if !ENABLE_FEATURE_STAT_FORMAT
369 const char *format; 369 const char *format;
370#endif 370#endif
@@ -389,7 +389,7 @@ static bool do_statfs(const char *filename, const char *format)
389 389
390#if ENABLE_FEATURE_STAT_FORMAT 390#if ENABLE_FEATURE_STAT_FORMAT
391 if (format == NULL) { 391 if (format == NULL) {
392#if !ENABLE_SELINUX 392# if !ENABLE_SELINUX
393 format = (option_mask32 & OPT_TERSE 393 format = (option_mask32 & OPT_TERSE
394 ? "%n %i %l %t %s %b %f %a %c %d\n" 394 ? "%n %i %l %t %s %b %f %a %c %d\n"
395 : " File: \"%n\"\n" 395 : " File: \"%n\"\n"
@@ -397,7 +397,7 @@ static bool do_statfs(const char *filename, const char *format)
397 "Block size: %-10s\n" 397 "Block size: %-10s\n"
398 "Blocks: Total: %-10b Free: %-10f Available: %a\n" 398 "Blocks: Total: %-10b Free: %-10f Available: %a\n"
399 "Inodes: Total: %-10c Free: %d"); 399 "Inodes: Total: %-10c Free: %d");
400#else 400# else
401 format = (option_mask32 & OPT_TERSE 401 format = (option_mask32 & OPT_TERSE
402 ? (option_mask32 & OPT_SELINUX ? "%n %i %l %t %s %b %f %a %c %d %C\n": 402 ? (option_mask32 & OPT_SELINUX ? "%n %i %l %t %s %b %f %a %c %d %C\n":
403 "%n %i %l %t %s %b %f %a %c %d\n") 403 "%n %i %l %t %s %b %f %a %c %d\n")
@@ -414,7 +414,7 @@ static bool do_statfs(const char *filename, const char *format)
414 "Blocks: Total: %-10b Free: %-10f Available: %a\n" 414 "Blocks: Total: %-10b Free: %-10f Available: %a\n"
415 "Inodes: Total: %-10c Free: %d\n") 415 "Inodes: Total: %-10c Free: %d\n")
416 ); 416 );
417#endif /* SELINUX */ 417# endif /* SELINUX */
418 } 418 }
419 print_it(format, filename, print_statfs, &statfsbuf IF_SELINUX(, scontext)); 419 print_it(format, filename, print_statfs, &statfsbuf IF_SELINUX(, scontext));
420#else /* FEATURE_STAT_FORMAT */ 420#else /* FEATURE_STAT_FORMAT */
@@ -428,47 +428,48 @@ static bool do_statfs(const char *filename, const char *format)
428 statfsbuf.f_namelen); 428 statfsbuf.f_namelen);
429 429
430 if (option_mask32 & OPT_TERSE) 430 if (option_mask32 & OPT_TERSE)
431 printf("%lx ", (unsigned long) (statfsbuf.f_type)); 431 printf("%lx ", (unsigned long) statfsbuf.f_type);
432 else 432 else
433 printf("Type: %s\n", human_fstype(statfsbuf.f_type)); 433 printf("Type: %s\n", human_fstype(statfsbuf.f_type));
434 434
435#if !ENABLE_SELINUX 435# if !ENABLE_SELINUX
436 format = (option_mask32 & OPT_TERSE 436 format = (option_mask32 & OPT_TERSE
437 ? "%lu %ld %ld %ld %ld %ld\n" 437 ? "%lu %llu %llu %llu %llu %llu\n"
438 : "Block size: %-10lu\n" 438 : "Block size: %-10lu\n"
439 "Blocks: Total: %-10jd Free: %-10jd Available: %jd\n" 439 "Blocks: Total: %-10llu Free: %-10llu Available: %llu\n"
440 "Inodes: Total: %-10jd Free: %jd\n"); 440 "Inodes: Total: %-10llu Free: %llu\n");
441 printf(format, 441 printf(format,
442 (unsigned long) (statfsbuf.f_bsize), 442 (unsigned long) statfsbuf.f_bsize,
443 (intmax_t) (statfsbuf.f_blocks), 443 (unsigned long long) statfsbuf.f_blocks,
444 (intmax_t) (statfsbuf.f_bfree), 444 (unsigned long long) statfsbuf.f_bfree,
445 (intmax_t) (statfsbuf.f_bavail), 445 (unsigned long long) statfsbuf.f_bavail,
446 (intmax_t) (statfsbuf.f_files), 446 (unsigned long long) statfsbuf.f_files,
447 (intmax_t) (statfsbuf.f_ffree)); 447 (unsigned long long) statfsbuf.f_ffree);
448#else 448# else
449 format = (option_mask32 & OPT_TERSE 449 format = (option_mask32 & OPT_TERSE
450 ? (option_mask32 & OPT_SELINUX ? "%lu %ld %ld %ld %ld %ld %C\n": 450 ? (option_mask32 & OPT_SELINUX ? "%lu %llu %llu %llu %llu %llu %C\n" : "%lu %llu %llu %llu %llu %llu\n")
451 "%lu %ld %ld %ld %ld %ld\n") 451 : (option_mask32 & OPT_SELINUX
452 : (option_mask32 & OPT_SELINUX ? 452 ? "Block size: %-10lu\n"
453 "Block size: %-10lu\n" 453 "Blocks: Total: %-10llu Free: %-10llu Available: %llu\n"
454 "Blocks: Total: %-10jd Free: %-10jd Available: %jd\n" 454 "Inodes: Total: %-10llu Free: %llu"
455 "Inodes: Total: %-10jd Free: %jd" 455 "S_context: %C\n"
456 "S_context: %C\n": 456 : "Block size: %-10lu\n"
457 "Block size: %-10lu\n" 457 "Blocks: Total: %-10llu Free: %-10llu Available: %llu\n"
458 "Blocks: Total: %-10jd Free: %-10jd Available: %jd\n" 458 "Inodes: Total: %-10llu Free: %llu\n"
459 "Inodes: Total: %-10jd Free: %jd\n")); 459 )
460 );
460 printf(format, 461 printf(format,
461 (unsigned long) (statfsbuf.f_bsize), 462 (unsigned long) statfsbuf.f_bsize,
462 (intmax_t) (statfsbuf.f_blocks), 463 (unsigned long long) statfsbuf.f_blocks,
463 (intmax_t) (statfsbuf.f_bfree), 464 (unsigned long long) statfsbuf.f_bfree,
464 (intmax_t) (statfsbuf.f_bavail), 465 (unsigned long long) statfsbuf.f_bavail,
465 (intmax_t) (statfsbuf.f_files), 466 (unsigned long long) statfsbuf.f_files,
466 (intmax_t) (statfsbuf.f_ffree), 467 (unsigned long long) statfsbuf.f_ffree,
467 scontext); 468 scontext);
468 469
469 if (scontext) 470 if (scontext)
470 freecon(scontext); 471 freecon(scontext);
471#endif 472# endif
472#endif /* FEATURE_STAT_FORMAT */ 473#endif /* FEATURE_STAT_FORMAT */
473 return 1; 474 return 1;
474} 475}
@@ -501,7 +502,7 @@ static bool do_stat(const char *filename, const char *format)
501 502
502#if ENABLE_FEATURE_STAT_FORMAT 503#if ENABLE_FEATURE_STAT_FORMAT
503 if (format == NULL) { 504 if (format == NULL) {
504#if !ENABLE_SELINUX 505# if !ENABLE_SELINUX
505 if (option_mask32 & OPT_TERSE) { 506 if (option_mask32 & OPT_TERSE) {
506 format = "%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %o"; 507 format = "%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %o";
507 } else { 508 } else {
@@ -522,7 +523,7 @@ static bool do_stat(const char *filename, const char *format)
522 "Access: %x\n" "Modify: %y\n" "Change: %z\n"; 523 "Access: %x\n" "Modify: %y\n" "Change: %z\n";
523 } 524 }
524 } 525 }
525#else 526# else
526 if (option_mask32 & OPT_TERSE) { 527 if (option_mask32 & OPT_TERSE) {
527 format = (option_mask32 & OPT_SELINUX ? 528 format = (option_mask32 & OPT_SELINUX ?
528 "%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %o %C\n": 529 "%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %o %C\n":
@@ -558,21 +559,21 @@ static bool do_stat(const char *filename, const char *format)
558 "Access: %x\n" "Modify: %y\n" "Change: %z\n"); 559 "Access: %x\n" "Modify: %y\n" "Change: %z\n");
559 } 560 }
560 } 561 }
561#endif 562# endif
562 } 563 }
563 print_it(format, filename, print_stat, &statbuf IF_SELINUX(, scontext)); 564 print_it(format, filename, print_stat, &statbuf IF_SELINUX(, scontext));
564#else /* FEATURE_STAT_FORMAT */ 565#else /* FEATURE_STAT_FORMAT */
565 if (option_mask32 & OPT_TERSE) { 566 if (option_mask32 & OPT_TERSE) {
566 printf("%s %ju %ju %lx %lu %lu %jx %ju %lu %lx %lx %lu %lu %lu %lu" 567 printf("%s %llu %llu %lx %lu %lu %llx %llu %lu %lx %lx %lu %lu %lu %lu"
567 IF_NOT_SELINUX("\n"), 568 IF_NOT_SELINUX("\n"),
568 filename, 569 filename,
569 (uintmax_t) (statbuf.st_size), 570 (unsigned long long) statbuf.st_size,
570 (uintmax_t) statbuf.st_blocks, 571 (unsigned long long) statbuf.st_blocks,
571 (unsigned long) statbuf.st_mode, 572 (unsigned long) statbuf.st_mode,
572 (unsigned long) statbuf.st_uid, 573 (unsigned long) statbuf.st_uid,
573 (unsigned long) statbuf.st_gid, 574 (unsigned long) statbuf.st_gid,
574 (uintmax_t) statbuf.st_dev, 575 (unsigned long long) statbuf.st_dev,
575 (uintmax_t) statbuf.st_ino, 576 (unsigned long long) statbuf.st_ino,
576 (unsigned long) statbuf.st_nlink, 577 (unsigned long) statbuf.st_nlink,
577 (unsigned long) major(statbuf.st_rdev), 578 (unsigned long) major(statbuf.st_rdev),
578 (unsigned long) minor(statbuf.st_rdev), 579 (unsigned long) minor(statbuf.st_rdev),
@@ -581,12 +582,12 @@ static bool do_stat(const char *filename, const char *format)
581 (unsigned long) statbuf.st_ctime, 582 (unsigned long) statbuf.st_ctime,
582 (unsigned long) statbuf.st_blksize 583 (unsigned long) statbuf.st_blksize
583 ); 584 );
584#if ENABLE_SELINUX 585# if ENABLE_SELINUX
585 if (option_mask32 & OPT_SELINUX) 586 if (option_mask32 & OPT_SELINUX)
586 printf(" %lc\n", *scontext); 587 printf(" %lc\n", *scontext);
587 else 588 else
588 bb_putchar('\n'); 589 bb_putchar('\n');
589#endif 590# endif
590 } else { 591 } else {
591 char *linkname = NULL; 592 char *linkname = NULL;
592 593
@@ -604,15 +605,15 @@ static bool do_stat(const char *filename, const char *format)
604 else 605 else
605 printf(" File: \"%s\"\n", filename); 606 printf(" File: \"%s\"\n", filename);
606 607
607 printf(" Size: %-10ju\tBlocks: %-10ju IO Block: %-6lu %s\n" 608 printf(" Size: %-10llu\tBlocks: %-10llu IO Block: %-6lu %s\n"
608 "Device: %jxh/%jud\tInode: %-10ju Links: %-5lu", 609 "Device: %llxh/%llud\tInode: %-10llu Links: %-5lu",
609 (uintmax_t) (statbuf.st_size), 610 (unsigned long long) statbuf.st_size,
610 (uintmax_t) statbuf.st_blocks, 611 (unsigned long long) statbuf.st_blocks,
611 (unsigned long) statbuf.st_blksize, 612 (unsigned long) statbuf.st_blksize,
612 file_type(&statbuf), 613 file_type(&statbuf),
613 (uintmax_t) statbuf.st_dev, 614 (unsigned long long) statbuf.st_dev,
614 (uintmax_t) statbuf.st_dev, 615 (unsigned long long) statbuf.st_dev,
615 (uintmax_t) statbuf.st_ino, 616 (unsigned long long) statbuf.st_ino,
616 (unsigned long) statbuf.st_nlink); 617 (unsigned long) statbuf.st_nlink);
617 if (S_ISBLK(statbuf.st_mode) || S_ISCHR(statbuf.st_mode)) 618 if (S_ISBLK(statbuf.st_mode) || S_ISCHR(statbuf.st_mode))
618 printf(" Device type: %lx,%lx\n", 619 printf(" Device type: %lx,%lx\n",
@@ -627,9 +628,9 @@ static bool do_stat(const char *filename, const char *format)
627 (pw_ent != NULL) ? pw_ent->pw_name : "UNKNOWN", 628 (pw_ent != NULL) ? pw_ent->pw_name : "UNKNOWN",
628 (unsigned long) statbuf.st_gid, 629 (unsigned long) statbuf.st_gid,
629 (gw_ent != NULL) ? gw_ent->gr_name : "UNKNOWN"); 630 (gw_ent != NULL) ? gw_ent->gr_name : "UNKNOWN");
630#if ENABLE_SELINUX 631# if ENABLE_SELINUX
631 printf(" S_Context: %lc\n", *scontext); 632 printf(" S_Context: %lc\n", *scontext);
632#endif 633# endif
633 printf("Access: %s\n" "Modify: %s\n" "Change: %s\n", 634 printf("Access: %s\n" "Modify: %s\n" "Change: %s\n",
634 human_time(statbuf.st_atime), 635 human_time(statbuf.st_atime),
635 human_time(statbuf.st_mtime), 636 human_time(statbuf.st_mtime),