Index: bsdsfv/bsdsfv.c
===================================================================
--- bsdsfv.orig/bsdsfv.c
+++ bsdsfv/bsdsfv.c
@@ -59,10 +59,10 @@ typedef struct sfvtable {
 #include <sys/stat.h>
 #include <sys/mman.h>
 #include <dirent.h>
+#include <inttypes.h>
 
-
-long
-UpdateCRC(unsigned long CRC, const char *buffer, long count)
+int32_t
+UpdateCRC(uint32_t CRC, const char *buffer, int32_t count)
 {
 	/*
 	 * Note: if you want to know how CRC32-checking works, I
@@ -70,7 +70,7 @@ UpdateCRC(unsigned long CRC, const char 
 	 * There is not much you can change in this function, so
 	 * if you need a CRC32-check yourself, feel free to rip.
 	 */
-	unsigned long CRCTABLE[] = {
+	uint32_t CRCTABLE[] = {
 		0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419,
 		    0x706af48f,
 		0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e,
@@ -175,13 +175,13 @@ UpdateCRC(unsigned long CRC, const char 
 
 
 
-long
+int32_t
 GetFileCRC(char *filename)
 {
-	unsigned long crc = 0xffffffff;
+	uint32_t crc = 0xffffffff;
 	FILE *f;
-	long totalread = 0;
-	long localread;
+	int32_t totalread = 0;
+	int32_t localread;
 
 	/*
 	 * Note: different buffer sizes may result in noticable 
@@ -306,7 +306,7 @@ main(int argc, char *argv[])
 	FILE *missingfile;
 	DIR *dirp;
 	struct dirent *dp;
-	long mycrc;
+	int32_t mycrc;
 	int cnt;
 	int dothisone;
 	char cfname[FNAMELEN];
@@ -487,8 +487,8 @@ main(int argc, char *argv[])
 				printf("Adding file: %s ... ", cfname);
 				fflush(stdout);
 				mycrc = GetFileCRC(cfname);
-				printf("CRC = 0x%08lX\n", mycrc);
-				sprintf(sfvline, "%s %08lX", cfname, mycrc);
+				printf("CRC = 0x%08" PRIX32 "\n", mycrc);
+				sprintf(sfvline, "%s %08" PRIX32, cfname, mycrc);
 
 				// uncomment next 2 lines to 
 				// convert filename to upper case, for whatever reason
@@ -516,7 +516,7 @@ main(int argc, char *argv[])
 			printf("Testing %s ... ", cfname);
 			fflush(stdout);
 			mycrc = GetFileCRC(cfname);
-			printf("local = 0x%08lX, listed = ", mycrc);
+			printf("local = 0x%08" PRIX32 ", listed = ", mycrc);
 			fflush(stdout);
 
 			sfvfile = fopen(sfvname, "rt");
@@ -675,7 +675,7 @@ main(int argc, char *argv[])
 
 					mycrc = GetFileCRC(dp->d_name);
 
-					printf("local = 0x%08lX ... ", mycrc);
+					printf("local = 0x%08" PRIX32 " ... ", mycrc);
 
 					if (mycrc == sfvTable[cnt].crc) {
 						printf("OK\n");