]> granicus.if.org Git - re2c/commitdiff
- Fixed #1251653 re2c generate some invalid #line on WIN32.
authorhelly <helly@642ea486-5414-0410-9d7f-a0204ed87703>
Thu, 4 Aug 2005 18:47:40 +0000 (18:47 +0000)
committerhelly <helly@642ea486-5414-0410-9d7f-a0204ed87703>
Thu, 4 Aug 2005 18:47:40 +0000 (18:47 +0000)
CHANGELOG
main.cc

index 84afb9c116a4c1340437671a1d8f428c5beadd5c..00efde536f752b1cfbcf59d4fabe898f670ca439 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 Version 0.9.10 (????-??-??)
 ---------------------------
 - Add -i switch to avoid generating #line information.
+- Fixed bug #1251653 re2c generate some invalid #line on WIN32.
 
 Version 0.9.9 (2005-07-21)
 --------------------------
diff --git a/main.cc b/main.cc
index 6e58594532a9424d31c9dac55dc6c0e8945c1f53..2cf85d6a0fd60aaef55c9435dbed64414048bb54 100644 (file)
--- a/main.cc
+++ b/main.cc
@@ -195,7 +195,7 @@ int main(int argc, char *argv[])
 
        if (outputFileName == 0 || (fileName[0] == '-' && fileName[1] == '\0'))
        {
-               outputFileName = "<stdout>";
+               outputFileName = strdup("<stdout>");
                output = &cout;
        }
        else
@@ -209,9 +209,25 @@ int main(int argc, char *argv[])
                }
 
                output = &outputFile;
+               
+               int len = strlen(outputFileName);
+               char *src, *dst, *tmp = (char*)malloc((len+1)*2);
+
+               for (src = outputFileName, dst = tmp; *src; ++src)
+               {
+                       if (*src == '\\')
+                       {
+                               *dst++ = *src;
+                       }
+                       *dst++ = *src;
+               }
+               *dst = '\0';
+               
+               outputFileName = tmp;
        }
 
        parse(*input, *output);
+       free(outputFileName);
        return 0;
 
 }