]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeX.cpp
Routines for calculating numerical labels for BibTeX citations.
[lyx.git] / src / LaTeX.cpp
index f0a33ff8e7b5062379ee7552b94289ce31fa5b46..db2037f8d2f4edeca588dfc09aa257998ad40f2d 100644 (file)
@@ -50,8 +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
 
 namespace {
@@ -148,7 +146,7 @@ int LaTeX::run(TeXErrors & terr)
        // We know that this function will only be run if the lyx buffer
        // has been changed. We also know that a newly written .tex file
        // is always different from the previous one because of the date
-       // in it. However it seems safe to run latex (at least) on time
+       // in it. However it seems safe to run latex (at least) one time
        // each time the .tex file changes.
 {
        int scanres = NO_ERRORS;
@@ -414,6 +412,9 @@ bool LaTeX::runMakeIndex(string const & f, OutputParams const & runparams,
 {
        string tmp = runparams.use_japanese ?
                lyxrc.jindex_command : lyxrc.index_command;
+       
+       if (!runparams.index_command.empty())
+               tmp = runparams.index_command;
 
        LYXERR(Debug::LATEX,
                "idx file has been made, running index processor ("
@@ -570,6 +571,9 @@ bool LaTeX::runBibTeX(vector<AuxInfo> 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(
@@ -666,7 +670,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.
 
@@ -1020,7 +1026,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();