/*
* Mini df implementation for busybox
*
- * Copyright (C) 1999,2000 by Lineo, inc. and Erik Andersen
- * Copyright (C) 1999,2000,2001 by Erik Andersen <andersee@debian.org>
+ * Copyright (C) 1999-2003 by Erik Andersen <andersen@codepoet.org>
* based on original code by (I think) Bruce Perens <bruce@pixar.com>.
*
* This program is free software; you can redistribute it and/or modify
unsigned long df_disp_hr = KILOBYTE;
#endif
int status = EXIT_SUCCESS;
- int opt;
+ unsigned long opt;
FILE *mount_table;
struct mntent *mount_entry;
struct statfs s;
static const char hdr_1k[] = "1k-blocks"; /* default display is kilobytes */
const char *disp_units_hdr = hdr_1k;
- while ((opt = getopt(argc, argv, "k"
#ifdef CONFIG_FEATURE_HUMAN_READABLE
- "hm"
-#endif
-)) > 0)
- {
- switch (opt) {
-#ifdef CONFIG_FEATURE_HUMAN_READABLE
- case 'h':
+ bb_opt_complementaly = "h-km:k-hm:m-hk";
+ opt = bb_getopt_ulflags(argc, argv, "hmk");
+ if(opt & 1) {
df_disp_hr = 0;
disp_units_hdr = " Size";
- break;
- case 'm':
+ }
+ if(opt & 2) {
df_disp_hr = MEGABYTE;
disp_units_hdr = "1M-blocks";
- break;
-#endif
- case 'k':
- /* default display is kilobytes */
-#ifdef CONFIG_FEATURE_HUMAN_READABLE
- df_disp_hr = KILOBYTE;
- disp_units_hdr = hdr_1k;
-#endif
- break;
- default:
- bb_show_usage();
- }
}
+#else
+ opt = bb_getopt_ulflags(argc, argv, "k");
+#endif
bb_printf("Filesystem%11s%-15sUsed Available Use%% Mounted on\n",
"", disp_units_hdr);
) / (blocks_used + s.f_bavail);
}
- if (strcmp(device, "/dev/root") == 0) {
+ if (strcmp(device, "rootfs") == 0) {
+ continue;
+ } else if (strcmp(device, "/dev/root") == 0) {
/* Adjusts device to be the real root device,
* or leaves device alone if it can't find it */
if ((device = find_real_root_device_name(device)) == NULL) {