X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeX.cpp;h=1910b1dc7a7c317f77f9549bad4d5109b86ad10c;hb=821e2764074c58791988e220ffa774fea926959a;hp=efeb1469c1ba15fc45c44a263e8840d0f5287fe3;hpb=e7bb71ff4ebf16351ab238b5cb7514173dd4f84d;p=lyx.git diff --git a/src/LaTeX.cpp b/src/LaTeX.cpp index efeb1469c1..1910b1dc7a 100644 --- a/src/LaTeX.cpp +++ b/src/LaTeX.cpp @@ -17,13 +17,14 @@ #include "BufferList.h" #include "LaTeX.h" -#include "support/gettext.h" #include "LyXRC.h" -#include "support/debug.h" #include "DepTable.h" -#include "support/filetools.h" +#include "support/debug.h" #include "support/convert.h" +#include "support/FileName.h" +#include "support/filetools.h" +#include "support/gettext.h" #include "support/lstrings.h" #include "support/Systemcall.h" #include "support/os.h" @@ -593,6 +594,12 @@ int LaTeX::scanLogFile(TeXErrors & terr) if (contains(token, "Rerun to get cross-references")) { retval |= RERUN; LYXERR(Debug::LATEX, "We should rerun."); + // package clefval needs 2 latex runs before bibtex + } else if (contains(token, "Value of") + && contains(token, "on page") + && contains(token, "undefined")) { + retval |= ERROR_RERUN; + LYXERR(Debug::LATEX, "Force rerun."); } else if (contains(token, "Citation") && contains(token, "on page") && contains(token, "undefined")) { @@ -744,12 +751,12 @@ bool handleFoundFile(string const & ff, DepTable & head) // (1) foundfile is an // absolute path and should // be inserted. - if (absolutePath(foundfile)) { + FileName absname(foundfile); + if (absname.isAbsolute()) { LYXERR(Debug::DEPEND, "AbsolutePath file: " << foundfile); // On initial insert we want to do the update at once // since this file cannot be a file generated by // the latex run. - FileName absname(foundfile); if (!insertIfExists(absname, head)) { // check for spaces string strippedfile = foundfile; @@ -772,7 +779,7 @@ bool handleFoundFile(string const & ff, DepTable & head) } string onlyfile = onlyFilename(foundfile); - FileName absname(makeAbsPath(onlyfile)); + absname = makeAbsPath(onlyfile); // check for spaces while (contains(foundfile, ' ')) {