X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Ffileblocks.c;h=2c944307d700b7ca050c729515354ce5d089e28f;hb=607bcdf5ffd953cb80ba60808242284c14090490;hp=47a730898a93876986615712be107750a3910cbb;hpb=6377e850e1e182dc6f5e6a72284e522031c8ee1d;p=gnulib.git diff --git a/lib/fileblocks.c b/lib/fileblocks.c index 47a730898..2c944307d 100644 --- a/lib/fileblocks.c +++ b/lib/fileblocks.c @@ -1,5 +1,5 @@ /* Convert file size to number of blocks on System V-like machines. - Copyright (C) 1990, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 1990, 1997, 1998, 1999 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ /* Written by Brian L. Matthews, blm@6sceng.UUCP. */ -#ifdef HAVE_CONFIG_H +#if HAVE_CONFIG_H # include #endif @@ -27,13 +27,18 @@ # include #endif -#if !HAVE_ST_BLOCKS && !defined _POSIX_SOURCE && defined BSIZE +#if !HAVE_STRUCT_STAT_ST_BLOCKS && !defined _POSIX_SOURCE && defined BSIZE # if HAVE_UNISTD_H # include # endif # ifndef NINDIR + +# if defined (__DJGPP__) +typedef long daddr_t; /* for disk address */ +# endif + /* Some SysV's, like Irix, seem to lack this. Hope it's correct. */ /* Number of inode pointers per indirect block. */ # define NINDIR (BSIZE / sizeof (daddr_t)) @@ -45,8 +50,7 @@ /* Return the number of 512-byte blocks in a file of SIZE bytes. */ off_t -st_blocks (size) - off_t size; +st_blocks (off_t size) { off_t datablks = size / 512 + (size % 512 != 0); off_t indrblks = 0;