aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/df.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/coreutils/df.c b/coreutils/df.c
index 01c41db38..3b533b610 100644
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -85,6 +85,9 @@
85//usage: ) 85//usage: )
86//usage: "\n -B SIZE Blocksize" 86//usage: "\n -B SIZE Blocksize"
87//usage: ) 87//usage: )
88//usage: IF_PLATFORM_MINGW32(
89//usage: "\n -w Show Windows volumes"
90//usage: )
88//usage: 91//usage:
89//usage:#define df_example_usage 92//usage:#define df_example_usage
90//usage: "$ df\n" 93//usage: "$ df\n"
@@ -139,6 +142,7 @@ int df_main(int argc UNUSED_PARAM, char **argv)
139 OPT_HUMAN = (1 << (4 + 2*ENABLE_FEATURE_DF_FANCY + ENABLE_FEATURE_DF_FANCY_POSIX)) * ENABLE_FEATURE_HUMAN_READABLE, 142 OPT_HUMAN = (1 << (4 + 2*ENABLE_FEATURE_DF_FANCY + ENABLE_FEATURE_DF_FANCY_POSIX)) * ENABLE_FEATURE_HUMAN_READABLE,
140 OPT_HUMANDEC = (1 << (5 + 2*ENABLE_FEATURE_DF_FANCY + ENABLE_FEATURE_DF_FANCY_POSIX)) * ENABLE_FEATURE_HUMAN_READABLE, 143 OPT_HUMANDEC = (1 << (5 + 2*ENABLE_FEATURE_DF_FANCY + ENABLE_FEATURE_DF_FANCY_POSIX)) * ENABLE_FEATURE_HUMAN_READABLE,
141 OPT_MEGA = (1 << (6 + 2*ENABLE_FEATURE_DF_FANCY + ENABLE_FEATURE_DF_FANCY_POSIX)) * ENABLE_FEATURE_HUMAN_READABLE, 144 OPT_MEGA = (1 << (6 + 2*ENABLE_FEATURE_DF_FANCY + ENABLE_FEATURE_DF_FANCY_POSIX)) * ENABLE_FEATURE_HUMAN_READABLE,
145 OPT_WINVOL = (1 << (7 + 2*ENABLE_FEATURE_DF_FANCY + ENABLE_FEATURE_DF_FANCY_POSIX)) * ENABLE_FEATURE_HUMAN_READABLE,
142 }; 146 };
143 const char *disp_units_hdr = NULL; 147 const char *disp_units_hdr = NULL;
144 char *chp, *opt_t; 148 char *chp, *opt_t;
@@ -160,6 +164,9 @@ int df_main(int argc UNUSED_PARAM, char **argv)
160 IF_FEATURE_DF_FANCY("aB:") 164 IF_FEATURE_DF_FANCY("aB:")
161#endif 165#endif
162 IF_FEATURE_HUMAN_READABLE("hHm") 166 IF_FEATURE_HUMAN_READABLE("hHm")
167#if ENABLE_PLATFORM_MINGW32
168 "w"
169#endif
163 "\0" 170 "\0"
164#if ENABLE_FEATURE_HUMAN_READABLE && ENABLE_FEATURE_DF_FANCY 171#if ENABLE_FEATURE_HUMAN_READABLE && ENABLE_FEATURE_DF_FANCY
165 "k-mB:m-Bk:B-km" 172 "k-mB:m-Bk:B-km"
@@ -248,7 +255,12 @@ int df_main(int argc UNUSED_PARAM, char **argv)
248 } 255 }
249 } 256 }
250 257
258#if ENABLE_PLATFORM_MINGW32
259 device = (opt & OPT_WINVOL) && mount_entry->mnt_volname[0] ?
260 mount_entry->mnt_volname : mount_entry->mnt_fsname;
261#else
251 device = mount_entry->mnt_fsname; 262 device = mount_entry->mnt_fsname;
263#endif
252 264
253 /* GNU coreutils 6.10 skips certain mounts, try to be compatible */ 265 /* GNU coreutils 6.10 skips certain mounts, try to be compatible */
254 if (ENABLE_FEATURE_SKIP_ROOTFS && strcmp(device, "rootfs") == 0) 266 if (ENABLE_FEATURE_SKIP_ROOTFS && strcmp(device, "rootfs") == 0)
@@ -266,6 +278,10 @@ int df_main(int argc UNUSED_PARAM, char **argv)
266 bb_simple_perror_msg(mount_point); 278 bb_simple_perror_msg(mount_point);
267 goto set_error; 279 goto set_error;
268 } 280 }
281#if ENABLE_PLATFORM_MINGW32
282 // Trailing slash was needed for statvfs(), strip it for display
283 bs_to_slash_strip_slash(mount_entry->mnt_dir);
284#endif
269 /* Some uclibc versions were seen to lose f_frsize 285 /* Some uclibc versions were seen to lose f_frsize
270 * (kernel does return it, but then uclibc does not copy it) 286 * (kernel does return it, but then uclibc does not copy it)
271 */ 287 */