summaryrefslogtreecommitdiff
path: root/src/stat.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2005-02-08 21:38:53 +0000
committerPaul Eggert <eggert@cs.ucla.edu>2005-02-08 21:38:53 +0000
commit058d7358ed569434d136ddfa7a21550aa68b76cb (patch)
tree746270ca27285304a2ae87281492571d6473bef7 /src/stat.c
parent333b98170faa1ecc76845572efaf5b566d651378 (diff)
downloadcoreutils-058d7358ed569434d136ddfa7a21550aa68b76cb.tar.xz
(STATFS_FRSIZE): New macro.
(print_statfs): Use it to implement %S. (do_statfs): Change default formats to include %S. (usage): Document %S (versus %s).
Diffstat (limited to 'src/stat.c')
-rw-r--r--src/stat.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/stat.c b/src/stat.c
index 90a340bac..3d302e7fd 100644
--- a/src/stat.c
+++ b/src/stat.c
@@ -65,6 +65,7 @@
# endif
# if STAT_STATVFS
# define STATFS statvfs
+# define STATFS_FRSIZE(S) ((S)->f_frsize)
# endif
#else
# define STRUCT_STATVFS struct statfs
@@ -76,6 +77,7 @@
#ifndef STATFS
# define STATFS statfs
+# define STATFS_FRSIZE(S) 0
#endif
#ifndef SB_F_NAMEMAX
@@ -347,6 +349,15 @@ print_statfs (char *pformat, char m, char const *filename,
strcat (pformat, "lu");
printf (pformat, (unsigned long int) (statfsbuf->f_bsize));
break;
+ case 'S':
+ {
+ unsigned long int frsize = STATFS_FRSIZE (statfsbuf);
+ if (! frsize)
+ frsize = statfsbuf->f_bsize;
+ strcat (pformat, "lu");
+ printf (pformat, frsize);
+ }
+ break;
case 'c':
strcat (pformat, PRIdMAX);
printf (pformat, (intmax_t) (statfsbuf->f_files));
@@ -577,11 +588,12 @@ do_statfs (char const *filename, bool terse, char const *format)
if (format == NULL)
{
format = (terse
- ? "%n %i %l %t %b %f %a %s %c %d\n"
+ ? "%n %i %l %t %s %S %b %f %a %c %d\n"
: " File: \"%n\"\n"
" ID: %-8i Namelen: %-7l Type: %T\n"
- "Blocks: Total: %-10b Free: %-10f Available: %-10a Size: %s\n"
- "Inodes: Total: %-10c Free: %-10d\n");
+ "Block size: %-10s Fundamental block size: %S\n"
+ "Blocks: Total: %-10b Free: %-10f Available: %a\n"
+ "Inodes: Total: %-10c Free: %d\n");
}
print_it (format, filename, print_statfs, &statfsbuf);
@@ -707,7 +719,8 @@ Valid format sequences for file systems:\n\
%i File System ID in hex\n\
%l Maximum length of filenames\n\
%n File name\n\
- %s Fundamental block size\n\
+ %s Block size (for faster transfers)\n\
+ %S Fundamental block size (for block counts)\n\
%t Type in hex\n\
%T Type in human readable form\n\
"), stdout);