Make readLenType generally available. Fix some warnings around read(2).

This commit is contained in:
nhkeni
2022-03-16 18:41:45 -04:00
parent a64a666f78
commit dc72e07a2b
3 changed files with 13 additions and 6 deletions
+7
View File
@@ -73,6 +73,13 @@ typedef xchar boolean; /* 0 or 1 */
#endif #endif
#endif #endif
/* Type for third parameter of read(2) */
#if defined(BSD) || defined(ULTRIX)
typedef int readLenType;
#else /* e.g. SYSV, __TURBOC__ */
typedef unsigned readLenType;
#endif
#ifndef TRUE /* defined in some systems' native include files */ #ifndef TRUE /* defined in some systems' native include files */
#define TRUE ((boolean) 1) #define TRUE ((boolean) 1)
#define FALSE ((boolean) 0) #define FALSE ((boolean) 0)
+3 -3
View File
@@ -1443,7 +1443,7 @@ restore_menu(
int int
validate(NHFILE* nhfp, const char *name) validate(NHFILE* nhfp, const char *name)
{ {
int rlen = 0; readLenType rlen = 0;
struct savefile_info sfi; struct savefile_info sfi;
unsigned long utdflags = 0L; unsigned long utdflags = 0L;
boolean verbose = name ? TRUE : FALSE, reslt = FALSE; boolean verbose = name ? TRUE : FALSE, reslt = FALSE;
@@ -1454,10 +1454,10 @@ validate(NHFILE* nhfp, const char *name)
if ((nhfp->mode & WRITING) == 0) { if ((nhfp->mode & WRITING) == 0) {
if (nhfp->structlevel) if (nhfp->structlevel)
rlen = read(nhfp->fd, (genericptr_t) &sfi, sizeof sfi); rlen = (readLenType) read(nhfp->fd, (genericptr_t) &sfi, sizeof sfi);
} else { } else {
if (nhfp->structlevel) if (nhfp->structlevel)
rlen = read(nhfp->fd, (genericptr_t) &sfi, sizeof sfi); rlen = (readLenType) read(nhfp->fd, (genericptr_t) &sfi, sizeof sfi);
minit(); /* ZEROCOMP */ minit(); /* ZEROCOMP */
if (rlen == 0) { if (rlen == 0) {
if (verbose) { if (verbose) {
+3 -3
View File
@@ -215,14 +215,14 @@ minit(void)
void void
mread(int fd, genericptr_t buf, unsigned len) mread(int fd, genericptr_t buf, unsigned len)
{ {
int rlen;
#if defined(BSD) || defined(ULTRIX) #if defined(BSD) || defined(ULTRIX)
#define readLenType int #define readLenType int
#else /* e.g. SYSV, __TURBOC__ */ #else /* e.g. SYSV, __TURBOC__ */
#define readLenType unsigned #define readLenType unsigned
#endif #endif
readLenType rlen;
rlen = read(fd, buf, (readLenType) len); /* Not perfect, but we don't have ssize_t available. */
rlen = (readLenType) read(fd, buf, (readLenType) len);
if ((readLenType) rlen != (readLenType) len) { if ((readLenType) rlen != (readLenType) len) {
if (restoreinfo.mread_flags == 1) { /* means "return anyway" */ if (restoreinfo.mread_flags == 1) { /* means "return anyway" */
restoreinfo.mread_flags = -1; restoreinfo.mread_flags = -1;