ANSIfied somewhat.
diff --git a/Modules/rgbimgmodule.c b/Modules/rgbimgmodule.c
index 663a460..4a983ef 100644
--- a/Modules/rgbimgmodule.c
+++ b/Modules/rgbimgmodule.c
@@ -17,6 +17,7 @@
 #include "allobjects.h"
 #include "modsupport.h"
 #include <unistd.h>
+#include <string.h>
 
 /*
  *	from image.h
@@ -80,12 +81,12 @@
 
 #define CHANOFFSET(z)	(3-(z))	/* this is byte order dependent */
 
-static expandrow();
-static setalpha();
-static copybw();
-static interleaverow();
-static int compressrow();
-static lumrow();
+static expandrow PROTO((unsigned char *, unsigned char *, int));
+static setalpha PROTO((unsigned char *, int));
+static copybw PROTO((long *, int));
+static interleaverow PROTO((unsigned char *, unsigned char *, int, int));
+static int compressrow PROTO((unsigned char *, unsigned char *, int, int));
+static lumrow PROTO((unsigned char *, unsigned char *, int));
 
 #ifdef ADD_TAGS
 #define TAGLEN	(5)
@@ -164,7 +165,7 @@
 FILE *inf;
 IMAGE *image;
 {
-    bzero(image,sizeof(IMAGE));
+    memset(image,0,sizeof(IMAGE));
     image->imagic = getshort(inf);
     image->type = getshort(inf);
     image->dim = getshort(inf);
@@ -179,7 +180,7 @@
 {
     IMAGE t;
 
-    bzero(&t,sizeof(IMAGE));
+    memset(&t,0,sizeof(IMAGE));
     fwrite(&t,sizeof(IMAGE),1,outf);
     fseek(outf,0,SEEK_SET);
     putshort(outf,image->imagic);
@@ -260,7 +261,7 @@
     object *self, *args;
 {
     char *name;
-    unsigned long *base, *lptr;
+    unsigned char *base, *lptr;
     unsigned char *rledat, *verdat;
     long *starttab, *lengthtab;
     FILE *inf;
@@ -331,7 +332,7 @@
 	    free(rledat);
 	    return NULL;
 	}
-	base = (unsigned long *) getstringvalue(rv);
+	base = (unsigned char *) getstringvalue(rv);
 #ifdef ADD_TAGS
 	addlongimgtag(base,xsize,ysize);
 #endif
@@ -355,7 +356,7 @@
 		    fread(rledat,lengthtab[y+z*ysize],1,inf);
 		    cur += lengthtab[y+z*ysize];
 		    expandrow(lptr,rledat,3-z);
-		    lptr += xsize;
+		    lptr += xsize * sizeof(unsigned long);
 		}
 	    }
 	} else {
@@ -370,13 +371,13 @@
 		    cur += lengthtab[y+z*ysize];
 		    expandrow(lptr,rledat,3-z);
 		}
-		lptr += xsize;
+		lptr += xsize * sizeof(unsigned long);
 	    }
     	}
 	if(zsize == 3) 
 	    setalpha(base,xsize*ysize);
 	else if(zsize<3) 
-	    copybw(base,xsize*ysize);
+	    copybw((long *) base,xsize*ysize);
 	fclose(inf);
 	free(starttab);
 	free(lengthtab);
@@ -389,7 +390,7 @@
 	    fclose(inf);
 	    return NULL;
 	}
-	base = (unsigned long *) getstringvalue(rv);
+	base = (unsigned char *) getstringvalue(rv);
 #ifdef ADD_TAGS
 	addlongimgtag(base,xsize,ysize);
 #endif
@@ -400,13 +401,13 @@
 	    for(y=0; y<ysize; y++) {
 		fread(verdat,xsize,1,inf);
 		interleaverow(lptr,verdat,3-z,xsize);
-		lptr += xsize;
+		lptr += xsize * sizeof(unsigned long);
 	    }
 	}
 	if(zsize == 3) 
 	    setalpha(base,xsize*ysize);
 	else if(zsize<3) 
-	    copybw(base,xsize*ysize);
+	    copybw((long *) base,xsize*ysize);
 	fclose(inf);
 	free(verdat);
 	return rv;
@@ -535,7 +536,7 @@
 longstoimage(self, args)
     object *self, *args;
 {
-    unsigned long *lptr;
+    unsigned char *lptr;
     char *name;
     int xsize, ysize, zsize;
     FILE *outf;
@@ -543,7 +544,7 @@
     int tablen, y, z, pos, len;
     long *starttab, *lengthtab;
     unsigned char *rlebuf;
-    unsigned long *lumbuf;
+    unsigned char *lumbuf;
     int rlebuflen, goodwrite;
 
     if (!getargs(args, "(s#iiis)", &lptr, &len, &xsize, &ysize, &zsize, &name))
@@ -561,9 +562,9 @@
     lengthtab = (long *)malloc(tablen);
     rlebuflen = 1.05*xsize+10;
     rlebuf = (unsigned char *)malloc(rlebuflen);
-    lumbuf = (unsigned long *)malloc(xsize*sizeof(long));
+    lumbuf = (unsigned char *)malloc(xsize*sizeof(long));
 
-    bzero(&image,sizeof(IMAGE));
+    memset(&image,0,sizeof(IMAGE));
     image.imagic = IMAGIC; 
     image.type = RLE(1);
     if(zsize>1)
@@ -600,7 +601,7 @@
 	    lengthtab[y+z*ysize] = len;
 	    pos += len;
 	}
-	lptr += xsize;
+	lptr += xsize * sizeof(unsigned long);
     }
 
     fseek(outf,512,SEEK_SET);