diff --git a/util/cpp/skip.c b/util/cpp/skip.c index de2be7eb7..3416b7541 100644 --- a/util/cpp/skip.c +++ b/util/cpp/skip.c @@ -62,6 +62,28 @@ skipline() LoadChar(c); while (class(c) != STNL && c != EOI) { + if (class(c) == STSTR || class(c) == STCHAR) { + register int stopc = c; + int escaped; + do { + escaped = 0; + LoadChar(c); + if (class(c) == STNL || c == EOI) { + break; + } + if (c == '\\') { + LoadChar(c); + if (c == '\n') { + ++LineNumber; + } + else escaped = 1; + } + } while (escaped || c != stopc); + if (class(c) != STNL && c != EOI) { + LoadChar(c); + } + continue; + } if (c == '\\') { LoadChar(c); if (class(c) == STNL)