diff --git a/src/frontends/qt4/LaTeXHighlighter.cpp b/src/frontends/qt4/LaTeXHighlighter.cpp index f8e498f97d..00f8064af9 100644 --- a/src/frontends/qt4/LaTeXHighlighter.cpp +++ b/src/frontends/qt4/LaTeXHighlighter.cpp @@ -13,14 +13,9 @@ #include "LaTeXHighlighter.h" #include "qt_helpers.h" -#include "support/lassert.h" - #include #include - -using namespace lyx::support; - namespace lyx { namespace frontend { @@ -73,9 +68,7 @@ void LaTeXHighlighter::highlightBlock(QString const & text) // otherwise, start search from 'begin disp math' if (previousBlockState() != 1) startIndex = text.indexOf(exprStartDispMath); - // We try to avoid infinite loops... - static size_t max_loop = 1000; - for (size_t i = 0; i != max_loop; ++i) { + while (startIndex >= 0) { int endIndex = text.indexOf(exprEndDispMath, startIndex); int length; if (endIndex == -1) { @@ -86,23 +79,15 @@ void LaTeXHighlighter::highlightBlock(QString const & text) } setFormat(startIndex, length, mathFormat); startIndex = text.indexOf(exprStartDispMath, startIndex + length); - if (startIndex == -1) - break; } - LASSERT(startIndex == -1, return); - // \whatever static const QRegExp exprKeyword("\\\\[A-Za-z]+"); index = text.indexOf(exprKeyword); - for (size_t i = 0; i != max_loop; ++i) { + while (index >= 0) { int length = exprKeyword.matchedLength(); setFormat(index, length, keywordFormat); index = text.indexOf(exprKeyword, index + length); - if (index == -1) - break; } - LASSERT(index == -1, return); - // %comment // Treat a line as a comment starting at a percent sign // * that is the first character in a line @@ -112,29 +97,22 @@ void LaTeXHighlighter::highlightBlock(QString const & text) QRegExp exprComment("(?:^|[^\\\\])(?:\\\\\\\\)*(%).*$"); text.indexOf(exprComment); index = exprComment.pos(1); - for (size_t i = 0; i != max_loop; ++i) { + while (index >= 0) { int const length = exprComment.matchedLength() - (index - exprComment.pos(0)); setFormat(index, length, commentFormat); text.indexOf(exprComment, index + length); index = exprComment.pos(1); - if (index == -1) - break; } - LASSERT(index == -1, return); - // QString lyxwarn = qt_("LyX Warning: "); QRegExp exprWarning("<" + lyxwarn + "[^<]*>"); index = text.indexOf(exprWarning); - for (size_t i = 0; i != max_loop; ++i) { + while (index >= 0) { int length = exprWarning.matchedLength(); setFormat(index, length, warningFormat); index = text.indexOf(exprWarning, index + length); - if (index == -1) - break; } - LASSERT(index == -1, return); } } // namespace frontend