My patch to get the WIN32 compile -

diff --git a/src/stringfile.c b/src/stringfile.c
index de96f87..ba39f66 100644
--- a/src/stringfile.c
+++ b/src/stringfile.c
@@ -19,7 +19,7 @@
 char emptyString[] = "";
 bool showHiddenFiles, isInteractive;
 int debugLevel = 1;
-FILE *debugFile;
+FILE *debugFile = 0;
 char *downDir, *home;
 
 /*********************************************************************
@@ -642,9 +642,11 @@ void setDebugFile(const char *name)
  if (!name || !*name)
  return;
  debugFile = fopen(name, "w");
- if (debugFile)
+ if (debugFile) {
+#ifndef _MSC_VER // port setlinebuf(debugFile);, required???
  setlinebuf(debugFile);
- else
+#endif
+    } else
  printf("cannot create %s\n", name);
 } /* setDebugFile */
 

I do not know if specifically setting the debugFile to 0 is required,
but otherwise there is no guarantee that it starts as a zero... and I 
see it tested in a lots of places, maybe before it is otherwise 
initialized...

Regards,
Geoff.