--- src/lib/Unidraw/catalog.c.orig	Tue May 25 06:29:33 1993
+++ src/lib/Unidraw/catalog.c	Sun Jan 23 19:23:39 2000
@@ -58,7 +58,8 @@
 #include <IV-2_6/_enter.h>
 
 #include <ctype.h>
-#ifndef __DECCXX
+/*#ifndef __DECCXX*/
+#if !defined(__DECCXX) && (__FreeBSD_cc_version < 400002)
 #include <osfcn.h>
 #endif
 #include <stdio.h>
@@ -66,7 +67,7 @@
 #include <string.h>
 #include <stream.h>
 #include <strstream.h>
-#ifdef SYSV
+#if defined(SYSV) || (__FreeBSD_cc_version >= 400002)
 #include <unistd.h>
 #endif
 #include <sys/file.h>
@@ -1504,7 +1505,8 @@
             in >> graylevel;
 
         } else if (graylevel == nograylevel) {
-            for (int i = 0; in >> buf && i < patternHeight; i++) {
+	    int i;
+            for (i = 0; in >> buf && i < patternHeight; i++) {
                 if (buf[0] == '>' || sscanf(buf, "%x", &data[i]) != 1) {
                     break;
                 }
@@ -1611,9 +1613,9 @@
 
 	} else {
 	    istrstream in(definition, strlen(definition) + 1);
-            int data[patternHeight];
+            int data[patternHeight], i;
 
-	    for (int i = 0; in >> buf && i < patternHeight; i++) {
+	    for (i = 0; in >> buf && i < patternHeight; i++) {
 		if (sscanf(buf, "%x", &data[i]) != 1) {
 		    break;
 		}
