commit 8fac7d70355fefb8c777aeeeb971660b020adf4c Author: Richard Kimberly Heck <rikih...@lyx.org> Date: Sat May 6 15:29:16 2023 -0400
If the ending delimiter is at the end of the file, then the test pimpl_->is will return false no matter what. So we need a different way to check if the delimiter was found. --- src/Lexer.cpp | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Lexer.cpp b/src/Lexer.cpp index c6402ae..ab052f5 100644 --- a/src/Lexer.cpp +++ b/src/Lexer.cpp @@ -690,6 +690,7 @@ docstring Lexer::getLongString(docstring const & endtoken) docstring str; docstring prefix; bool firstline = true; + bool foundend = false; while (pimpl_->is) { //< eatLine only reads from is, not from pushTok if (!eatLine()) @@ -701,8 +702,10 @@ docstring Lexer::getLongString(docstring const & endtoken) LYXERR(Debug::PARSER, "LongString: `" << tmpstr << '\''); // We do a case independent comparison, like searchKeyword does. - if (compare_no_case(token, endtoken) == 0) + if (compare_no_case(token, endtoken) == 0) { + foundend = true; break; + } if (firstline) { size_t i = tmpstr.find_first_not_of(from_ascii(" \t")); @@ -720,7 +723,7 @@ docstring Lexer::getLongString(docstring const & endtoken) str += tmpstr + '\n'; } - if (!pimpl_->is) + if (!foundend) printError("Long string not ended by `" + to_utf8(endtoken) + '\''); return str; -- lyx-cvs mailing list lyx-cvs@lists.lyx.org http://lists.lyx.org/mailman/listinfo/lyx-cvs