diff --git a/preprocessor/Statement.cc b/preprocessor/Statement.cc index 649d99a5bec12e15fb5e2d1513c7856cfc8cd462..4017d99591e8fc008eae804b020797c52f688cd5 100644 --- a/preprocessor/Statement.cc +++ b/preprocessor/Statement.cc @@ -103,43 +103,26 @@ NativeStatement::computingPass() string newstr = ""; sregex date_expr = sregex::compile( "-?[0-9]+[Mm](1[0-2]|[1-9])|-?[0-9]+[Qq][1-4]|-?[0-9]+[Ww]([1-4][0-9]|5[0-2]|[1-9])" ); string format( "dynDate('$&')" ); - size_t length, i, lastidx, commentidx; - length = lastidx = 0; - for (i = 0; i < apostrophes.size(); i++) + size_t lastidx = 0; + for (size_t i = 0; i < apostrophes.size(); i++) if (apostrophes[i] == 0) skip = true; else - { - if (skip) - { - skip = false; - newstr.append(native_statement.substr(lastidx, apostrophes[i] - lastidx)); - } - else - { - length = apostrophes[i] - lastidx; - commentidx = native_statement.substr(lastidx, length).find("%", 0); - if (commentidx != string::npos) - length = commentidx; - - newstr.append(regex_replace(native_statement.substr(lastidx, length), date_expr, format)); - if (commentidx != string::npos) - { - lastidx += commentidx; - while (i++ < apostrophes.size()) - { - newstr.append(native_statement.substr(lastidx, apostrophes[i] - lastidx)); - lastidx = apostrophes[i]; - } - native_statement = newstr; - return; - } - skip = true; - } - lastidx = apostrophes[i]; - } - length = native_statement.length() - lastidx; - commentidx = native_statement.substr(lastidx, length).find("%", 0); + if (skip) + { + newstr.append(native_statement.substr(lastidx, apostrophes[i] - lastidx)); + lastidx = apostrophes[i]; + skip = false; + } + else + { + newstr.append(regex_replace(native_statement.substr(lastidx, apostrophes[i] - lastidx), + date_expr, format)); + lastidx = apostrophes[i]; + skip = true; + } + size_t length = native_statement.length() - lastidx; + size_t commentidx = native_statement.substr(lastidx, length).find("%", 0); if (commentidx != string::npos) length = commentidx;