From d7af145e720d6508d5e6d3010efc69e51d5acf9b Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Spitzm=C3=BCller?= Date: Tue, 18 Sep 2007 13:38:30 +0000 Subject: [PATCH] * src/LaTeX.cpp (scanLogFile): - parse file:line:error style messages (bug 4222) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20335 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/LaTeX.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/LaTeX.cpp b/src/LaTeX.cpp index b580242029..dbf369ea11 100644 --- a/src/LaTeX.cpp +++ b/src/LaTeX.cpp @@ -610,6 +610,8 @@ int LaTeX::scanLogFile(TeXErrors & terr) LYXERR(Debug::LATEX) << "Log file: " << tmp << endl; FileName const fn = FileName(makeAbsPath(tmp)); ifstream ifs(fn.toFilesystemEncoding().c_str()); + bool fle_style; + static regex file_line_error(".+\\.\\D+:[0-9]+: (.+)"); string token; while (getline(ifs, token)) { @@ -619,12 +621,16 @@ int LaTeX::scanLogFile(TeXErrors & terr) // \r's afterwards, since we need to remove them anyway. token = subst(token, '\0', '\r'); token = subst(token, "\r", ""); + smatch sub; LYXERR(Debug::LATEX) << "Log line: " << token << endl; if (token.empty()) continue; + if (contains(token, "file:line:error style messages enabled")) + fle_style = true; + if (prefixIs(token, "LaTeX Warning:") || prefixIs(token, "! pdfTeX warning")) { // Here shall we handle different @@ -668,12 +674,17 @@ int LaTeX::scanLogFile(TeXErrors & terr) << "We should rerun." << endl; retval |= RERUN; } - } else if (prefixIs(token, "! ")) { - // Ok, we have something that looks like a TeX Error - // but what do we really have. + } else if (prefixIs(token, "! ") || + fle_style && regex_match(token, sub, file_line_error)) { + // Ok, we have something that looks like a TeX Error + // but what do we really have. // Just get the error description: - string desc(token, 2); + string desc; + if (prefixIs(token, "! ")) + desc = string(token, 2); + else if (fle_style) + desc = sub.str(); if (contains(token, "LaTeX Error:")) retval |= LATEX_ERROR; // get the next line -- 2.39.5