1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-02-04 07:33:07 +00:00

Remove define direct dirent workarounds. (#47)

This also removes a workaround for L_SET, as well as some of the
dirent member fields.
This commit is contained in:
Bruce Mitchener
2020-12-15 03:16:59 +07:00
committed by GitHub
parent fd0e12e855
commit 7d2de5e4de
4 changed files with 18 additions and 34 deletions

View File

@@ -23,8 +23,6 @@ static char *id = "$Id: dir.c,v 1.4 2001/12/26 22:17:01 sybalsky Exp $ Copyright
#include <dirent.h>
#include <pwd.h>
#include <sys/param.h>
// TODO: Remove the need for this.
#define direct dirent
#else /* DOS, now */
#include <dos.h>
#define index strchr
@@ -615,7 +613,7 @@ static int enum_dsk_prop(char *dir, char *name, char *ver, FINFO **finfo_buf)
#else /* DOS */
static int enum_dsk_prop(char *dir, char *name, char *ver, FINFO **finfo_buf)
{
register struct direct *dp;
register struct dirent *dp;
register FINFO *prevp;
register FINFO *nextp;
int n, len, rval;
@@ -633,7 +631,7 @@ static int enum_dsk_prop(char *dir, char *name, char *ver, FINFO **finfo_buf)
}
for (S_TOUT(dp = readdir(dirp)), nextp = prevp = (FINFO *)NULL, n = 0;
dp != (struct direct *)NULL || errno == EINTR;
dp != (struct dirent *)NULL || errno == EINTR;
errno = 0, S_TOUT(dp = readdir(dirp)), prevp = nextp)
if (dp) {
if (strcmp(dp->d_name, ".") == 0 || strcmp(dp->d_name, "..") == 0 || dp->d_ino == 0) continue;
@@ -878,7 +876,7 @@ static int enum_dsk(char *dir, char *name, char *ver, FINFO **finfo_buf)
static int enum_dsk(char *dir, char *name, char *ver, FINFO **finfo_buf)
{
register struct direct *dp;
register struct dirent *dp;
register FINFO *prevp;
register FINFO *nextp;
int n, len, rval;
@@ -895,7 +893,7 @@ static int enum_dsk(char *dir, char *name, char *ver, FINFO **finfo_buf)
}
for (S_TOUT(dp = readdir(dirp)), nextp = prevp = (FINFO *)NULL, n = 0;
dp != (struct direct *)NULL || errno == EINTR;
dp != (struct dirent *)NULL || errno == EINTR;
errno = 0, S_TOUT(dp = readdir(dirp)), prevp = nextp)
if (dp) {
if (strcmp(dp->d_name, ".") == 0 || strcmp(dp->d_name, "..") == 0 || dp->d_ino == 0) continue;
@@ -1072,7 +1070,7 @@ static int enum_ufs_prop(char *dir, char *name, char *ver, FINFO **finfo_buf)
#else /* DOS */
static int enum_ufs_prop(char *dir, char *name, char *ver, FINFO **finfo_buf)
{
register struct direct *dp;
register struct dirent *dp;
register FINFO *prevp;
register FINFO *nextp;
int n, len, rval;
@@ -1089,7 +1087,7 @@ static int enum_ufs_prop(char *dir, char *name, char *ver, FINFO **finfo_buf)
}
for (S_TOUT(dp = readdir(dirp)), nextp = prevp = (FINFO *)NULL, n = 0;
dp != (struct direct *)NULL || errno == EINTR;
dp != (struct dirent *)NULL || errno == EINTR;
errno = 0, S_TOUT(dp = readdir(dirp)), prevp = nextp)
if (dp) {
if (strcmp(dp->d_name, ".") == 0 || strcmp(dp->d_name, "..") == 0 || dp->d_ino == 0) continue;
@@ -1255,7 +1253,7 @@ static int enum_ufs(char *dir, char *name, char *ver, FINFO **finfo_buf)
#else /* DOS */
static int enum_ufs(char *dir, char *name, char *ver, FINFO **finfo_buf)
{
register struct direct *dp;
register struct dirent *dp;
register FINFO *prevp;
register FINFO *nextp;
int n, len, rval;
@@ -1271,7 +1269,7 @@ static int enum_ufs(char *dir, char *name, char *ver, FINFO **finfo_buf)
}
for (S_TOUT(dp = readdir(dirp)), nextp = prevp = (FINFO *)NULL, n = 0;
dp != (struct direct *)NULL || errno == EINTR;
dp != (struct dirent *)NULL || errno == EINTR;
errno = 0, S_TOUT(dp = readdir(dirp)), prevp = nextp)
if (dp) {
if (strcmp(dp->d_name, ".") == 0 || strcmp(dp->d_name, "..") == 0 || dp->d_ino == 0) continue;

View File

@@ -28,15 +28,6 @@ static char *id = "$Id: dsk.c,v 1.4 2001/12/24 01:09:01 sybalsky Exp $ Copyright
#ifdef sun
#include <sys/vfs.h>
#endif /* sun */
// We should be using the POSIX definitions in this file.
#define direct dirent
#define d_namlen d_reclen
#define d_fileno d_ino
#ifndef LINUX
#define L_SET SEEK_SET
#endif
#else /* DOS */
#include <direct.h>
@@ -48,7 +39,6 @@ static char *id = "$Id: dsk.c,v 1.4 2001/12/24 01:09:01 sybalsky Exp $ Copyright
#define rindex strrchr
#define MAXPATHLEN _MAX_PATH
#define MAXNAMLEM _MAX_PATH
#define L_SET SEEK_SET
#define alarm(x) 0
#endif /* DOS */
@@ -81,10 +71,7 @@ static char *id = "$Id: dsk.c,v 1.4 2001/12/24 01:09:01 sybalsky Exp $ Copyright
#include <sys/statfs.h>
#endif
#endif /* AIXPS2 */
#define d_fileno d_ino
#endif /* AIX */
#endif /* MACOSX | FREEBSD */
#ifdef GCC386
@@ -731,7 +718,7 @@ LispPTR COM_closefile(register LispPTR *args)
char file[MAXPATHLEN], dir[MAXPATHLEN], name[MAXNAMLEN + 1];
char ver[VERSIONLEN];
register DIR *dirp;
register struct direct *dp;
register struct dirent *dp;
struct stat sbuf;
struct timeval time[2];
ino_t ino;
@@ -832,10 +819,10 @@ LispPTR COM_closefile(register LispPTR *args)
return (NIL);
}
for (S_TOUT(dp = readdir(dirp)); dp != (struct direct *)NULL || errno == EINTR;
for (S_TOUT(dp = readdir(dirp)); dp != (struct dirent *)NULL || errno == EINTR;
errno = 0, S_TOUT(dp = readdir(dirp)))
if (dp) {
if (ino == (ino_t)dp->d_fileno) sprintf(file, "%s/%s", dir, dp->d_name);
if (ino == (ino_t)dp->d_ino) sprintf(file, "%s/%s", dir, dp->d_name);
}
TIMEOUT(closedir(dirp));
}
@@ -1993,7 +1980,7 @@ LispPTR COM_readpage(register LispPTR *args)
* file. If the request file is special file, lseek is not needed.
*/
sklp:
TIMEOUT(rval = lseek(fd, (npage * FDEV_PAGE_SIZE), L_SET));
TIMEOUT(rval = lseek(fd, (npage * FDEV_PAGE_SIZE), SEEK_SET));
if (rval == -1) {
if (errno == EINTR) goto sklp; /* interrupted, retry */
*Lisp_errno = errno;
@@ -2065,7 +2052,7 @@ LispPTR COM_writepage(register LispPTR *args)
count = LispNumToCInt(args[3]);
sklp2:
TIMEOUT(rval = lseek(fd, (npage * FDEV_PAGE_SIZE), L_SET));
TIMEOUT(rval = lseek(fd, (npage * FDEV_PAGE_SIZE), SEEK_SET));
if (rval == -1) {
if (errno == EINTR) goto sklp2; /* interrupted; retry */
*Lisp_errno = errno;
@@ -2687,7 +2674,7 @@ static int locate_file(char *dir, char *name)
char nb1[MAXNAMLEN], nb2[MAXNAMLEN];
register int type, len;
DIR *dirp;
struct direct *dp;
struct dirent *dp;
/* First of all, recognize as if. */
sprintf(path, "%s/%s", dir, name);
@@ -2727,7 +2714,7 @@ static int locate_file(char *dir, char *name)
for (S_TOUT(dp = readdir(dirp)); dp != NULL || errno == EINTR;
errno = 0, S_TOUT(dp = readdir(dirp)))
if (dp) {
if (dp->d_namlen == len) {
if (dp->d_reclen == len) {
strcpy(nb2, dp->d_name);
UPCASE(nb2);
if (strcmp(nb1, nb2) == 0) {
@@ -3132,7 +3119,7 @@ static int get_version_array(char *dir, char *file, FileName *varray, CurrentVAr
char ver[VERSIONLEN];
register FileName *svarray;
register DIR *dirp;
register struct direct *dp;
register struct dirent *dp;
register int rval;
struct stat sbuf;

View File

@@ -286,7 +286,7 @@ LispPTR mess_read(LispPTR *args)
size = MESSAGE_BUFFER_SIZE;
else
logChanged = 0; /* only reset msg-pending flg if we cleaned it out! */
TIMEOUT(i = lseek(log_id, previous_size, L_SET));
TIMEOUT(i = lseek(log_id, previous_size, SEEK_SET));
if (i == -1) {
OSMESSAGE_PRINT(printf("seek err\n"));
return (NIL);
@@ -298,7 +298,7 @@ LispPTR mess_read(LispPTR *args)
OSMESSAGE_PRINT(printf("read err\n"));
return (NIL);
}
TIMEOUT(i = lseek(log_id, save_size, L_SET));
TIMEOUT(i = lseek(log_id, save_size, SEEK_SET));
if (i == -1) {
OSMESSAGE_PRINT(printf("seek err\n"));
return (NIL);