File source-binary-open.dif of Package texlive

Index: texk/web2c/lib/texmfmp.c
===================================================================
--- texk/web2c/lib/texmfmp.c	(revision 26897)
+++ texk/web2c/lib/texmfmp.c	(working copy)
@@ -533,7 +533,11 @@
   char *cmdname = NULL;
   int allow;
 
+  string realmode = xmalloc(strlen(mode)+2);
+  strcpy(realmode, mode);
 #ifdef WIN32
+  strcat(realmode, "b");
+
   char *pp;
 
   for (pp = cmd; *pp; pp++) {
@@ -548,9 +552,9 @@
     allow = shell_cmd_is_allowed (cmd, &safecmd, &cmdname);
 
   if (allow == 1)
-    f = popen (cmd, mode);
+    f = popen (cmd, realmode);
   else if (allow == 2)
-    f = popen (safecmd, mode);
+    f = popen (safecmd, realmode);
   else if (allow == -1)
     fprintf (stderr, "\nrunpopen quotation error in command line: %s\n",
              cmd);
@@ -561,6 +565,7 @@
     free (safecmd);
   if (cmdname)
     free (cmdname);
+  free (realmode);
   return f;
 }
 #endif /* ENABLE_PIPES */
@@ -1853,7 +1858,7 @@
       fname = xmalloc(strlen((const_string)(nameoffile+1))+1);
       strcpy(fname,(const_string)(nameoffile+1));
       recorder_record_input (fname + 1);
-      *f_ptr = runpopen(fname+1,"rb");
+      *f_ptr = runpopen(fname+1,"r");
       free(fname);
       for (i=0; i<NUM_PIPES; i++) {
         if (pipes[i]==NULL) {
@@ -1895,10 +1900,10 @@
            is better to be prepared */
         if (STREQ((fname+strlen(fname)-4),".tex"))
           *(fname+strlen(fname)-4) = 0;
-        *f_ptr = runpopen(fname+1,"wb");
+        *f_ptr = runpopen(fname+1,"w");
         *(fname+strlen(fname)) = '.';
       } else {
-        *f_ptr = runpopen(fname+1,"wb");
+        *f_ptr = runpopen(fname+1,"w");
       }
       recorder_record_output (fname + 1);
       free(fname);
openSUSE Build Service is sponsored by