]> granicus.if.org Git - nethack/commitdiff
Make readLenType generally available. Fix some warnings around read(2).
authornhkeni <keni@his.com>
Wed, 16 Mar 2022 22:41:45 +0000 (18:41 -0400)
committernhkeni <keni@his.com>
Wed, 16 Mar 2022 22:41:45 +0000 (18:41 -0400)
include/global.h
src/restore.c
src/sfstruct.c

index 4ec90f84baa00b653e81b15b1ba2eb35497bb96a..0e31377d411bf3bde6f35ccf57305f928af21891 100644 (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)
index 59e61d36b936ce7998fd8bf195e796021fca4339..c2eb6737e8a36f0e5d316cd991bae889678c907a 100644 (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) {
index 73ebe28bfb0b4f9c118404539dc9cb6c7dacce4f..c83f22749250b355f017e33b7ae1d356e2951c0d 100644 (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;