$OpenBSD: patch-src_chm_lib_c,v 1.5 2007/01/31 21:42:03 jasper Exp $
--- src/chm_lib.c.orig	Thu Jan 25 04:12:58 2007
+++ src/chm_lib.c	Mon Jan 29 18:29:00 2007
@@ -153,7 +153,8 @@ typedef unsigned __int64        UInt64;
 /* Sparc        */
 /* MIPS         */
 /* PPC          */
-#elif __i386__ || __sun || __sgi || __ppc__
+/* other non-64 bit */
+#elif !__LP64__
 typedef unsigned char           UChar;
 typedef short                   Int16;
 typedef unsigned short          UInt16;
@@ -163,8 +164,8 @@ typedef long long               Int64;
 typedef unsigned long long      UInt64;
 
 /* x86-64 */
-/* Note that these may be appropriate for other 64-bit machines. */
-#elif __x86_64__ || __ia64__
+/* other 64-bit machines. */
+#else
 typedef unsigned char           UChar;
 typedef short                   Int16;
 typedef unsigned short          UInt16;
@@ -172,11 +173,6 @@ typedef int                     Int32;
 typedef unsigned int            UInt32;
 typedef long                    Int64;
 typedef unsigned long           UInt64;
-
-#else
-
-/* yielding an error is preferable to yielding incorrect behavior */
-#error "Please define the sized types for your platform in chm_lib.c"
 #endif
 
 /* GCC */
@@ -726,7 +722,7 @@ static Int64 _chm_fetch_bytes(struct chm
 #ifdef CHM_USE_IO64
     readLen = pread64(h->fd, buf, (long)len, os);
 #else
-    readLen = pread(h->fd, buf, (long)len, (unsigned int)os);
+    readLen = pread(h->fd, buf, (size_t)len, (off_t)os);
 #endif
 #else
 #ifdef CHM_USE_IO64
@@ -736,9 +732,9 @@ static Int64 _chm_fetch_bytes(struct chm
     lseek64(h->fd, oldOs, SEEK_SET);
 #else
     oldOs = lseek(h->fd, 0, SEEK_CUR);
-    lseek(h->fd, (long)os, SEEK_SET);
+    lseek(h->fd, (off_t)os, SEEK_SET);
     readLen = read(h->fd, buf, len);
-    lseek(h->fd, (long)oldOs, SEEK_SET);
+    lseek(h->fd, (off_t)oldOs, SEEK_SET);
 #endif
 #endif
 #endif
