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.

Reply via email to