X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=du.c;h=6197b0bc18115d40da1743c957be38691a5803bd;hb=cbe31dace5fb24304694d399b9eb267fbe752516;hp=8628732d8f1292a0159c4d7c6a913d0b9b8f45f0;hpb=12f417edbd21b322a8eaa8feb0ab238f13fa83c6;p=oweals%2Fbusybox.git diff --git a/du.c b/du.c index 8628732d8..6197b0bc1 100644 --- a/du.c +++ b/du.c @@ -3,7 +3,7 @@ * Mini du implementation for busybox * * - * Copyright (C) 1999,2000 by Lineo, inc. + * Copyright (C) 1999,2000,2001 by Lineo, inc. * Written by John Beppu * * This program is free software; you can redistribute it and/or modify @@ -22,16 +22,22 @@ * */ -#include "busybox.h" -#define BB_DECLARE_EXTERN -#define bb_need_name_too_long -#include "messages.c" - #include #include #include #include +#include +#include #include +#include "busybox.h" +#define BB_DECLARE_EXTERN +#define bb_need_name_too_long +#include "messages.c" + + +#ifdef BB_FEATURE_HUMAN_READABLE +unsigned long du_disp_hr = KILOBYTE; +#endif typedef void (Display) (long, char *); @@ -42,12 +48,17 @@ static Display *print; static void print_normal(long size, char *filename) { +#ifdef BB_FEATURE_HUMAN_READABLE + printf("%s\t%s\n", format((size * KILOBYTE), du_disp_hr), filename); +#else printf("%ld\t%s\n", size, filename); +#endif } static void print_summary(long size, char *filename) { if (du_depth == 1) { +printf("summary\n"); print_normal(size, filename); } } @@ -132,7 +143,11 @@ int du_main(int argc, char **argv) print = print_normal; /* parse argv[] */ - while ((c = getopt(argc, argv, "sl")) != EOF) { + while ((c = getopt(argc, argv, "sl" +#ifdef BB_FEATURE_HUMAN_READABLE +"hm" +#endif +"k")) != EOF) { switch (c) { case 's': print = print_summary; @@ -140,8 +155,15 @@ int du_main(int argc, char **argv) case 'l': count_hardlinks = 1; break; +#ifdef BB_FEATURE_HUMAN_READABLE + case 'h': du_disp_hr = 0; break; + case 'm': du_disp_hr = MEGABYTE; break; + case 'k': du_disp_hr = KILOBYTE; break; +#else + case 'k': break; +#endif default: - usage(du_usage); + show_usage(); } } @@ -155,7 +177,7 @@ int du_main(int argc, char **argv) for (i=optind; i < argc; i++) { if ((sum = du(argv[i])) == 0) status = EXIT_FAILURE; - if (is_directory(argv[i], FALSE, NULL)==FALSE) { + if(is_directory(argv[i], FALSE, NULL)==FALSE) { print_normal(sum, argv[i]); } reset_ino_dev_hashtable(); @@ -165,7 +187,7 @@ int du_main(int argc, char **argv) return status; } -/* $Id: du.c,v 1.33 2001/01/18 02:57:08 kraai Exp $ */ +/* $Id: du.c,v 1.38 2001/02/20 06:14:07 andersen Exp $ */ /* Local Variables: c-file-style: "linux"