Huub Schaeks fix for .schange
[swftools.git] / pdf2swf / ttf2pt1 / t1asm.c
index d9c3061..1fa21d7 100644 (file)
@@ -54,10 +54,10 @@ static char portnotice[] =
 #include <ctype.h>
 #include <limits.h>
 
-#ifdef WINDOWS
+#ifdef WIN32
 #      ifdef STANDALONE
 #              define WINDOWS_FUNCTIONS
-#              include "windows.h"
+#              include "win_missing.h"
 #      endif
 #endif
 
@@ -431,6 +431,7 @@ static void parse_charstring()
 
   charstring_start();
   while (fscanf(ifp, "%s", line) == 1) {
+    //char*bracket;
     if (line[0] == '%') {
       /* eat comment to end of line */
       while (fgetc(ifp) != '\n' && !feof(ifp))
@@ -439,6 +440,9 @@ static void parse_charstring()
     }
     if (line[0] == '}')
       break;
+    //if(bracket=strchr(line, '}')) {
+    //    *bracket = 0;
+    //}
     if (is_integer(line)) {
       charstring_int(atoi(line));
     } else {
@@ -456,6 +460,10 @@ static void parse_charstring()
         exit(1);
       }
     }
+    //if(bracket) {
+    //    //line ended with }
+    //    break;
+    //}
   }
   charstring_end();
 }
@@ -526,14 +534,14 @@ int main(int argc, char **argv)
 
   /* possibly open input & output files */
   if (argc - optind >= 1) {
-    ifp = fopen(argv[optind], "r");
+    ifp = fopen(argv[optind], "rb");
     if (!ifp) {
       fprintf(stderr, "error: cannot open %s for reading\n", argv[1]);
       exit(1);
     }
   }
   if (argc - optind >= 2) {
-    ofp = fopen(argv[optind + 1], "w");
+    ofp = fopen(argv[optind + 1], "wb");
     if (!ofp) {
       fprintf(stderr, "error: cannot open %s for writing\n", argv[2]);
       exit(1);
@@ -545,6 +553,11 @@ int runt1asm(int pfbflag)
 {
   char *p, *q, *r;
 
+  /* need to reset this. (For some reason, if ttf2pt1.c fork()s, it doesn't
+     matter whether we reset this or not, triggering a bug which only appears
+     on Win32 */
+  active = 0;
+
   pfb = pfbflag;
 #endif