diff options
| author | Ron Yorston <rmy@pobox.com> | 2026-06-15 12:36:38 +0100 |
|---|---|---|
| committer | Ron Yorston <rmy@pobox.com> | 2026-06-15 12:43:03 +0100 |
| commit | d4fefaceac846bbf8acbb110924b0caff6df698e (patch) | |
| tree | de208d030a8955772f6cd7b156a264b84341c3d4 /coreutils | |
| parent | 862f87a8725d5cc9693021066869e94512d5d8e1 (diff) | |
| download | busybox-w32-mount_point.tar.gz busybox-w32-mount_point.tar.bz2 busybox-w32-mount_point.zip | |
df,lsattr: support Unix-like mount pointsmount_point
Update 'lsattr' to distinguish between mount points and junctions.
Use the new 'mntent' functions in 'df' to display mount points as
well as drive letters. If mount point is associated with a drive
letter this is displayed as the filesystem. The Windows-specific
'-w' option forces the volume name to be displayed instead, if
avaialable.
Adds 87-111 bytes.
Signed-off-by: Ron Yorston <rmy@pobox.com>
Diffstat (limited to 'coreutils')
| -rw-r--r-- | coreutils/df.c | 16 |
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 | */ |
