X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeX.cpp;h=49968ffdc8a6884995b4f53ff166c66fe09b7b05;hb=27d580b5c057d565b9b4b50c811f6e1fab7f1246;hp=d7fe03f770a8833156eb5956de7d3950785752b2;hpb=26b361417d9bbc08df944d150086618d06559117;p=lyx.git diff --git a/src/LaTeX.cpp b/src/LaTeX.cpp index d7fe03f770..49968ffdc8 100644 --- a/src/LaTeX.cpp +++ b/src/LaTeX.cpp @@ -50,7 +50,6 @@ namespace os = support::os; // different way. // - the makeindex style files should be taken care of with // the dependency mechanism. -// - makeindex commandline options should be supported // - somewhere support viewing of bibtex and makeindex log files. // - we should perhaps also scan the bibtex log file @@ -412,13 +411,23 @@ int LaTeX::startscript() bool LaTeX::runMakeIndex(string const & f, OutputParams const & runparams, string const & params) { - LYXERR(Debug::LATEX, - "idx file has been made, running makeindex on file " << f); string tmp = runparams.use_japanese ? lyxrc.jindex_command : lyxrc.index_command; - tmp += ' '; + + if (!runparams.index_command.empty()) + tmp = runparams.index_command; + + LYXERR(Debug::LATEX, + "idx file has been made, running index processor (" + << tmp << ") on file " << f); tmp = subst(tmp, "$$lang", runparams.document_language); + if (runparams.use_indices) { + tmp = lyxrc.splitindex_command + " -m " + quoteName(tmp); + LYXERR(Debug::LATEX, + "Multiple indices. Using splitindex command: " << tmp); + } + tmp += ' '; tmp += quoteName(f); tmp += params; Systemcall one; @@ -563,6 +572,9 @@ bool LaTeX::runBibTeX(vector const & bibtex_info, string tmp = runparams.use_japanese ? lyxrc.jbibtex_command : lyxrc.bibtex_command; + + if (!runparams.bibtex_command.empty()) + tmp = runparams.bibtex_command; tmp += " "; // onlyFilename() is needed for cygwin tmp += quoteName(onlyFilename(removeExtension( @@ -659,7 +671,9 @@ int LaTeX::scanLogFile(TeXErrors & terr) retval |= RERUN; } } else if (prefixIs(token, "! ") - || (fle_style && regex_match(token, sub, file_line_error))) { + || (fle_style + && regex_match(token, sub, file_line_error) + && !contains(token, "pdfTeX warning"))) { // Ok, we have something that looks like a TeX Error // but what do we really have. @@ -778,12 +792,13 @@ bool handleFoundFile(string const & ff, DepTable & head) // (1) foundfile is an // absolute path and should // be inserted. - FileName absname(foundfile); - if (absname.isAbsolute()) { + FileName absname; + if (FileName::isAbsolute(foundfile)) { 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. + absname.set(foundfile); if (!insertIfExists(absname, head)) { // check for spaces string strippedfile = foundfile; @@ -1012,7 +1027,7 @@ void LaTeX::deplog(DepTable & head) // where "File: file.ext" would be skipped if (regex_match(token, sub, reg6)) { // search for strings in (...) - static regex reg6_1("\\(([^()]+)(.).*"); + static regex reg6_1("\\(([^()]+)(.)"); smatch what; string::const_iterator first = token.begin(); string::const_iterator end = token.end();