X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeX.cpp;h=6003772cbb4dd071a81f5bc13fe78e456ea74f9b;hb=2f271f61bcd514da3ab5b44d2b7bf61e12ac0c44;hp=efa764b18b1ad56c0ca42783549c4a4563de1118;hpb=b89cc942eb458284f40f4d4e7db58890c3288979;p=lyx.git diff --git a/src/LaTeX.cpp b/src/LaTeX.cpp index efa764b18b..6003772cbb 100644 --- a/src/LaTeX.cpp +++ b/src/LaTeX.cpp @@ -17,15 +17,15 @@ #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/lyxlib.h" #include "support/Systemcall.h" #include "support/os.h" @@ -159,7 +159,7 @@ int LaTeX::run(TeXErrors & terr) bool rerun = false; // rerun requested // The class LaTeX does not know the temp path. - theBufferList().updateIncludedTeXfiles(getcwd().absFilename(), + theBufferList().updateIncludedTeXfiles(FileName::getcwd().absFilename(), runparams); // Never write the depfile if an error was encountered. @@ -261,7 +261,7 @@ int LaTeX::run(TeXErrors & terr) if (head.haschanged(idxfile)) { // no checks for now LYXERR(Debug::LATEX, "Running MakeIndex."); - message(_("Running MakeIndex.")); + message(_("Running Index Processor.")); // onlyFilename() is needed for cygwin rerun |= runMakeIndex(onlyFilename(idxfile.absFilename()), runparams); @@ -335,7 +335,7 @@ int LaTeX::run(TeXErrors & terr) if (head.haschanged(idxfile)) { // no checks for now LYXERR(Debug::LATEX, "Running MakeIndex."); - message(_("Running MakeIndex.")); + message(_("Running Index Processor.")); // onlyFilename() is needed for cygwin rerun = runMakeIndex(onlyFilename(changeExtension( file.absFilename(), ".idx")), runparams); @@ -416,12 +416,14 @@ bool LaTeX::runMakeIndexNomencl(FileName const & file, { LYXERR(Debug::LATEX, "Running MakeIndex for nomencl."); message(_("Running MakeIndex for nomencl.")); + string tmp = lyxrc.nomencl_command + ' '; // onlyFilename() is needed for cygwin - string const nomenclstr = " -s nomencl.ist -o " + tmp += quoteName(onlyFilename(changeExtension(file.absFilename(), nlo))); + tmp += " -o " + onlyFilename(changeExtension(file.toFilesystemEncoding(), nls)); - return runMakeIndex( - onlyFilename(changeExtension(file.absFilename(), nlo)), - runparams, nomenclstr); + Systemcall one; + one.startscript(Systemcall::Wait, tmp); + return true; } @@ -594,6 +596,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")) { @@ -745,12 +753,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; @@ -773,7 +781,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, ' ')) {