See http://bugzilla.lyx.org/show_bug.cgi?id=2616 for details. This goes in on monday if nobody objects.
Georg Log: Fix bug 2616 * src/LaTeX.C (LaTeX::deplog): Add the toc file to the dependencies if a line [EMAIL PROTECTED] is present in the log file, since miktex does not write the line \openout# = `sample.toc'.
Index: src/LaTeX.C =================================================================== --- src/LaTeX.C (Revision 14491) +++ src/LaTeX.C (Arbeitskopie) @@ -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: + // [EMAIL PROTECTED] + // This line is also written by tetex. + // This line is not present if no toc should be created. + static regex miktexTocReg("[EMAIL PROTECTED]"); 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.