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

View File

@@ -73,6 +73,13 @@ typedef xchar boolean; /* 0 or 1 */
#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 */
#define TRUE ((boolean) 1)
#define FALSE ((boolean) 0)

View File

@@ -1443,7 +1443,7 @@ restore_menu(
int
validate(NHFILE* nhfp, const char *name)
{
int rlen = 0;
readLenType rlen = 0;
struct savefile_info sfi;
unsigned long utdflags = 0L;
boolean verbose = name ? TRUE : FALSE, reslt = FALSE;
@@ -1454,10 +1454,10 @@ validate(NHFILE* nhfp, const char *name)
if ((nhfp->mode & WRITING) == 0) {
if (nhfp->structlevel)
rlen = read(nhfp->fd, (genericptr_t) &sfi, sizeof sfi);
rlen = (readLenType) read(nhfp->fd, (genericptr_t) &sfi, sizeof sfi);
} else {
if (nhfp->structlevel)
rlen = read(nhfp->fd, (genericptr_t) &sfi, sizeof sfi);
rlen = (readLenType) read(nhfp->fd, (genericptr_t) &sfi, sizeof sfi);
minit(); /* ZEROCOMP */
if (rlen == 0) {
if (verbose) {

View File

@@ -215,14 +215,14 @@ minit(void)
void
mread(int fd, genericptr_t buf, unsigned len)
{
int rlen;
#if defined(BSD) || defined(ULTRIX)
#define readLenType int
#else /* e.g. SYSV, __TURBOC__ */
#define readLenType unsigned
#endif
rlen = read(fd, buf, (readLenType) len);
readLenType rlen;
/* Not perfect, but we don't have ssize_t available. */
rlen = (readLenType) read(fd, buf, (readLenType) len);
if ((readLenType) rlen != (readLenType) len) {
if (restoreinfo.mread_flags == 1) { /* means "return anyway" */
restoreinfo.mread_flags = -1;