]> granicus.if.org Git - re2c/commitdiff
Fix #163
authorPaulo Custodio <pauloscustodio@gmail.com>
Fri, 11 Nov 2016 21:32:34 +0000 (21:32 +0000)
committerUlya Trofimovich <skvadrik@gmail.com>
Fri, 11 Nov 2016 22:11:28 +0000 (22:11 +0000)
The previous fix to #163 (a51c7c8) was not working properly, simplified and fixed.

re2c/src/codegen/output.cc

index ef57ad6615280b1155b08c451ab7b714237bf509..2f24ec8aa795e585a58cd38919cdfbc351a652bc 100644 (file)
@@ -100,14 +100,11 @@ OutputFile & OutputFile::wraw (const char * s, size_t n)
 
        // convert CR LF to LF
        for (const char *p = s; p < e; ++p) {
-               if (*p == '\n') continue;
-
-               std::streamsize l = p - s;
-               if (p > s && p[-1] == '\r') --l;
-               o.write(s, l);
-               s = p;
+               if (p[0] == '\r' && p + 1 < e && p[1] == '\n')
+                       ; // skip CR before LF
+               else
+                       o.write(p, 1);
        }
-       o.write(s, e - s);
 
        return *this;
 }