Index: du.c =================================================================== RCS file: /private/FreeBSD/src/usr.bin/du/du.c,v retrieving revision 1.36 diff -u -p -r1.36 du.c --- du.c 28 Jul 2004 16:03:12 -0000 1.36 +++ du.c 4 Jan 2005 21:19:34 -0000 @@ -58,6 +58,7 @@ __FBSDID("$FreeBSD: src/usr.bin/du/du.c, #include #include #include +#include #include #include #include @@ -82,7 +83,8 @@ main(int argc, char *argv[]) { FTS *fts; FTSENT *p; - long blocksize, savednumber = 0; + off_t blocksize, savednumber = 0; + long bsize; int ftsoptions; int listall; int depth; @@ -206,8 +208,8 @@ main(int argc, char *argv[]) argv[1] = NULL; } - (void) getbsize(¬used, &blocksize); - blocksize /= 512; + (void) getbsize(¬used, &bsize); + blocksize = bsize / 512; rval = 0; @@ -224,16 +226,16 @@ main(int argc, char *argv[]) if (ignorep(p)) break; - p->fts_parent->fts_number += - p->fts_number += p->fts_statp->st_blocks; + p->fts_parent->fts_bignum += + p->fts_bignum += p->fts_statp->st_blocks; if (p->fts_level <= depth) { if (hflag) { - (void) prthumanval(howmany(p->fts_number, blocksize)); + (void) prthumanval(howmany(p->fts_bignum, blocksize)); (void) printf("\t%s\n", p->fts_path); } else { - (void) printf("%ld\t%s\n", - howmany(p->fts_number, blocksize), + (void) printf("%jd\t%s\n", + (intmax_t)howmany(p->fts_bignum, blocksize), p->fts_path); } } @@ -259,15 +261,15 @@ main(int argc, char *argv[]) blocksize)); (void) printf("\t%s\n", p->fts_path); } else { - (void) printf("%lld\t%s\n", - (long long)howmany(p->fts_statp->st_blocks, blocksize), + (void) printf("%jd\t%s\n", + (intmax_t)howmany(p->fts_statp->st_blocks, blocksize), p->fts_path); } } - p->fts_parent->fts_number += p->fts_statp->st_blocks; + p->fts_parent->fts_bignum += p->fts_statp->st_blocks; } - savednumber = p->fts_parent->fts_number; + savednumber = p->fts_parent->fts_bignum; } if (errno) @@ -278,7 +280,7 @@ main(int argc, char *argv[]) (void) prthumanval(howmany(savednumber, blocksize)); (void) printf("\ttotal\n"); } else { - (void) printf("%ld\ttotal\n", howmany(savednumber, blocksize)); + (void) printf("%jd\ttotal\n", (intmax_t)howmany(savednumber, blocksize)); } }