Hi for OS/2 support we need a couple of minor patches. For binary file support,

<verbatim>
--- main.c.orig Fri Aug 28 16:17:16 2009
+++ main.c      Fri Aug 28 19:14:00 2009
@@ -627,6 +627,11 @@
   setmode(_fileno(g.httpOut), _O_BINARY);
   setmode(_fileno(g.httpIn), _O_BINARY);
 #endif
+#ifdef __EMX__
+  /* Likewise for OS/2 */
+  setmode(fileno(g.httpOut), O_BINARY);
+  setmode(fileno(g.httpIn), O_BINARY);
+#endif
   g.cgiPanic = 1;
   blob_read_from_file(&config, zFile);
   while( blob_line(&config, &line) ){
</verbatim>

We also don't have socklen_t, I did this, might not be the best spot for a typedef,

<verbatim>
--- cgi.c.orig  Fri Aug 28 16:17:16 2009
+++ cgi.c       Fri Aug 28 18:54:38 2009
@@ -48,6 +48,10 @@
 #include <unistd.h>
 #include "cgi.h"

+#ifdef __EMX__
+typedef int socklen_t;
+#endif
+
 #if INTERFACE
 /*
 ** Shortcuts for cgi_parameter.  P("x") returns the value of query parameter
</verbatim>

Also ideally the build process for translate etc should build translate$(E), I added -Zexe to the CFLAGS which is a workaround to force building foo and foo.exe.

Sorry for the badly formatted patches, without the extra lines they ran together as one line and I couldn't see any where to attach them.