From 54b4f22d9bb2bec546ad4abc058432daa69172ee Mon Sep 17 00:00:00 2001 From: Bruce Mitchener Date: Tue, 15 Dec 2020 10:30:25 +0700 Subject: [PATCH] Modernize / simplify statfs / statvfs handling. (#52) `statfs` was replaced by `statvfs` some years ago in SuSv4 and is significantly more portable. --- src/dsk.c | 49 +++++-------------------------------------------- 1 file changed, 5 insertions(+), 44 deletions(-) diff --git a/src/dsk.c b/src/dsk.c index 99c8d4e..c7639b0 100644 --- a/src/dsk.c +++ b/src/dsk.c @@ -16,6 +16,7 @@ static char *id = "$Id: dsk.c,v 1.4 2001/12/24 01:09:01 sybalsky Exp $ Copyright #include #include #include +#include #include #include @@ -23,16 +24,11 @@ static char *id = "$Id: dsk.c,v 1.4 2001/12/24 01:09:01 sybalsky Exp $ Copyright #include #include #include -#include +#include #include -#ifdef sun -#include -#endif /* sun */ #else /* DOS */ - #include #include -#include #include #include #define index strchr @@ -60,18 +56,6 @@ static char *id = "$Id: dsk.c,v 1.4 2001/12/24 01:09:01 sybalsky Exp $ Copyright #include "commondefs.h" #include "ufsdefs.h" -#if defined(MACOSX) || defined(FREEBSD) -#include -#else -#ifdef AIX -#ifdef LINUX -#include -#else -#include -#endif -#endif /* AIX */ -#endif /* MACOSX | FREEBSD */ - #ifdef GCC386 #include "inlnPS2.h" #endif /* GCC386 */ @@ -2284,16 +2268,11 @@ LispPTR COM_getfreeblock(register LispPTR *args) char lfname[MAXPATHLEN + 5], dir[MAXPATHLEN], host[MAXNAMLEN]; char name[MAXNAMLEN + 1], file[MAXPATHLEN], ver[VERSIONLEN]; char drive[2]; -#if defined(OS5) - struct statvfs sfsbuf; -#else -#ifndef DOS - struct statfs sfsbuf; -#endif /* DOS */ -#endif /* OS5 */ #ifdef DOS struct diskfree_t sfsbuf; -#endif /* DOS */ +#else + struct statvfs sfsbuf; +#endif ERRSETJMP(NIL); Lisp_errno = &Dummy_errno; @@ -2359,30 +2338,12 @@ LispPTR COM_getfreeblock(register LispPTR *args) *buf = sfsbuf.avail_clusters * sfsbuf.sectors_per_cluster * sfsbuf.bytes_per_sector; } #else -#if defined(LINUX) - TIMEOUT(rval = statfs(dir, &sfsbuf)); - if (rval != 0) { -#elif defined(MACOSX) || defined(FREEBSD) - TIMEOUT(rval = statfs(dir, &sfsbuf)); - if (rval != 0) { -#elif defined(SYSVONLY) - TIMEOUT(rval = statfs(dir, &sfsbuf, sizeof(struct statfs), 0)); - if (rval != 0) { -#elif defined(OS5) TIMEOUT(rval = statvfs(dir, &sfsbuf)); if (rval != 0) { -#else - TIMEOUT(rval = statfs(dir, &sfsbuf)); - if (rval != 0) { -#endif *Lisp_errno = errno; return (NIL); } -#if defined(SYSVONLY) || defined(OS5) - *buf = sfsbuf.f_bfree; -#else *buf = sfsbuf.f_bavail; -#endif #endif /* DOS */ return (ATOM_T); }