diff --git a/src/modules/files/efuns.c b/src/modules/files/efuns.c index fd4a628717430e3c9aa87f81f6779b6c3684715c..6c4a9f8d4837aab03f23bb1ac148db06b719be98 100644 --- a/src/modules/files/efuns.c +++ b/src/modules/files/efuns.c @@ -24,7 +24,7 @@ #include "file_machine.h" #include "file.h" -RCSID("$Id: efuns.c,v 1.72 1999/06/19 20:26:28 hubbe Exp $"); +RCSID("$Id: efuns.c,v 1.73 1999/06/25 20:43:47 per Exp $"); #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> @@ -334,66 +334,52 @@ void f_filesystem_stat(INT32 args) { push_int(0); }else{ -#ifdef HAVE_STATVFS int num_fields = 8; - push_text("blocksize"); - push_int(st.f_frsize); - push_text("blocks"); - push_int(st.f_blocks); - push_text("bfree"); - push_int(st.f_bfree); - push_text("bavail"); - push_int(st.f_bavail); - push_text("files"); - push_int(st.f_files); - push_text("ffree"); - push_int(st.f_ffree); - push_text("favail"); - push_int(st.f_favail); +#ifdef HAVE_STATVFS + push_text("id"); push_int(st.f_fsid); + push_text("blocksize"); push_int(st.f_frsize); + push_text("blocks"); push_int(st.f_blocks); + push_text("bfree"); push_int(st.f_bfree); + push_text("bavail"); push_int(st.f_bavail); + push_text("files"); push_int(st.f_files); + push_text("ffree"); push_int(st.f_ffree); + push_text("favail"); push_int(st.f_favail); #ifdef HAVE_STATVFS_F_FSTR - push_text("fsname"); - push_text(st.f_fstr); + push_text("fsname"); push_text(st.f_fstr); num_fields++; #endif /* HAVE_STATVFS_F_FSTR */ #ifdef HAVE_STATVFS_F_BASETYPE - push_text("fstype"); - push_text(st.f_basetype); + push_text("fstype"); push_text(st.f_basetype); num_fields++; #endif /* HAVE_STATVFS_F_BASETYPE */ f_aggregate_mapping(num_fields*2); #else /* !HAVE_STATVFS */ #ifdef HAVE_STATFS #ifdef HAVE_STRUCT_STATFS - push_text("blocksize"); - push_int(st.f_bsize); - push_text("blocks"); - push_int(st.f_blocks); - push_text("bfree"); - push_int(st.f_bfree); - push_text("files"); - push_int(st.f_files); - push_text("ffree"); - push_int(st.f_ffree); - push_text("favail"); - push_int(st.f_ffree); +#ifdef HAVE_STATFS_F_FSID + push_text("id"); push_int(st.f_fsid); +#else + num_fields--; +#endif + push_text("blocksize"); push_int(st.f_bsize); + push_text("blocks"); push_int(st.f_blocks); + push_text("bfree"); push_int(st.f_bfree); + push_text("files"); push_int(st.f_files); + push_text("ffree"); push_int(st.f_ffree); + push_text("favail"); push_int(st.f_ffree); #ifdef HAVE_STATFS_F_BAVAIL - push_text("bavail"); - push_int(st.f_bavail); - f_aggregate_mapping(7*2); + push_text("bavail"); push_int(st.f_bavail); + f_aggregate_mapping((num_fields-1)*2); #else - f_aggregate_mapping(6*2); + f_aggregate_mapping((num_fields-2)*2); #endif /* HAVE_STATFS_F_BAVAIL */ #else /* !HAVE_STRUCT_STATFS */ #ifdef HAVE_STRUCT_FS_DATA /* ULTRIX */ - push_text("blocksize"); - push_int(st.fd_bsize); - push_text("blocks"); - push_int(st.fd_btot); - push_text("bfree"); - push_int(st.fd_bfree); - push_text("bavail"); - push_int(st.fd_bfreen); + push_text("blocksize"); push_int(st.fd_bsize); + push_text("blocks"); push_int(st.fd_btot); + push_text("bfree"); push_int(st.fd_bfree); + push_text("bavail"); push_int(st.fd_bfreen); f_aggregate_mapping(4*2); #else /* !HAVE_STRUCT_FS_DATA */ /* Should not be reached */ @@ -402,12 +388,9 @@ void f_filesystem_stat(INT32 args) #endif /* HAVE_STRUCT_STATFS */ #else /* !HAVE_STATFS */ #ifdef HAVE_USTAT - push_text("bfree"); - push_int(st.f_tfree); - push_text("ffree"); - push_int(st.f_tinode); - push_text("fsname"); - push_text(st.f_fname); + push_text("bfree"); push_int(st.f_tfree); + push_text("ffree"); push_int(st.f_tinode); + push_text("fsname"); push_text(st.f_fname); f_aggregate_mapping(3*2); #else /* Should not be reached */