From a9983dfac2b5df4d80ffa93e31fc55a96c8636ec Mon Sep 17 00:00:00 2001 From: Georg Baum Date: Mon, 24 Jul 2006 11:08:44 +0000 Subject: [PATCH] Fix bug 2616 * src/LaTeX.C (LaTeX::deplog): Add the toc file to the dependencies if a line \tf@toc=\write# is present in the log file, since miktex does not write the line \openout# = `sample.toc'. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14496 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/LaTeX.C | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/LaTeX.C b/src/LaTeX.C index 0a4308e79d..b2866bbd21 100644 --- a/src/LaTeX.C +++ b/src/LaTeX.C @@ -756,10 +756,17 @@ void LaTeX::deplog(DepTable & head) static regex reg3("No file ([^ ]+)\\..*"); static regex reg4("\\\\openout[0-9]+.*=.*`([^ ]+)'\\..*"); // If an index should be created, MikTex does not write a line like - // \openout# = 'sample,idx'. - // but intstead only a line like this into the log: + // \openout# = 'sample.idx'. + // but instead only a line like this into the log: // Writing index file sample.idx static regex reg5("Writing index file ([^ ]+).*"); + // If a toc should be created, MikTex does not write a line like + // \openout# = `sample.toc'. + // but only a line like this into the log: + // \tf@toc=\write# + // This line is also written by tetex. + // This line is not present if no toc should be created. + static regex miktexTocReg("\\\\tf@toc=\\\\write.*"); ifstream ifs(logfile.c_str()); while (ifs) { @@ -793,15 +800,16 @@ void LaTeX::deplog(DepTable & head) first = what[0].second; handleFoundFile(what.str(1), head); } - } else if (regex_match(token, sub, reg2)) { + } else if (regex_match(token, sub, reg2)) handleFoundFile(sub.str(1), head); - } else if (regex_match(token, sub, reg3)) { + else if (regex_match(token, sub, reg3)) handleFoundFile(sub.str(1), head); - } else if (regex_match(token, sub, reg4)) { + else if (regex_match(token, sub, reg4)) handleFoundFile(sub.str(1), head); - } else if (regex_match(token, sub, reg5)) { + else if (regex_match(token, sub, reg5)) handleFoundFile(sub.str(1), head); - } + else if (regex_match(token, sub, miktexTocReg)) + handleFoundFile(changeExtension(file, ".toc"), head); } // Make sure that the main .tex file is in the dependancy file. -- 2.39.2