]> git.lyx.org Git - lyx.git/blobdiff - src/LaTeX.C
Remove unused font variable which caused a warning.
[lyx.git] / src / LaTeX.C
index 0dea3ae567cdb16c619b04aa7f2f1aa7f75e43e6..5a83f1d9e44dd65aa8c552a6991f1063877de4cf 100644 (file)
@@ -3,9 +3,9 @@
  * 
  *           LyX, The Document Processor        
  *          Copyright 1995 Matthias Ettrich
- *           Copyright 1995-2000 The LyX Team.
+ *           Copyright 1995-2001 The LyX Team.
  *
- *           This file is Copyright 1996-2000
+ *           This file is Copyright 1996-2001
  *           Lars Gullik Bjønnes
  *
  * ====================================================== 
@@ -174,7 +174,12 @@ int LaTeX::run(TeXErrors & terr, LyXFunc * lfun)
 
        ++count;
        lyxerr[Debug::LATEX] << "Run #" << count << endl;
-       lfun->Dispatch(LFUN_MESSAGE, _("LaTeX run number") + ' ' + tostr(count));
+       if (lfun) {
+               ostringstream str;
+               str << _("LaTeX run number") << ' ' << count;
+               lfun->dispatch(LFUN_MESSAGE, str.str().c_str());
+       }
+       
        
        //WriteStatus(lfun, string(_("LaTeX run number ")) + tostr(count));
        this->operator()();
@@ -209,7 +214,7 @@ int LaTeX::run(TeXErrors & terr, LyXFunc * lfun)
        if (head.haschanged(OnlyFilename(ChangeExtension(file, ".idx")))) {
                // no checks for now
                lyxerr[Debug::LATEX] << "Running MakeIndex." << endl;
-               lfun->Dispatch(LFUN_MESSAGE, _("Running MakeIndex."));
+               if (lfun) lfun->dispatch(LFUN_MESSAGE, _("Running MakeIndex."));
 //             WriteStatus(minib, _("Running MakeIndex."));
                rerun = runMakeIndex(OnlyFilename(ChangeExtension(file, ".idx")));
        }
@@ -222,7 +227,7 @@ int LaTeX::run(TeXErrors & terr, LyXFunc * lfun)
                // tags is found -> run bibtex and set rerun = true;
                // no checks for now
                lyxerr[Debug::LATEX] << "Running BibTeX." << endl;
-               lfun->Dispatch(LFUN_MESSAGE, _("Running BibTeX."));
+               if (lfun) lfun->dispatch(LFUN_MESSAGE, _("Running BibTeX."));
                //WriteStatus(minib, _("Running BibTeX."));
                updateBibtexDependencies(head, bibtex_info);
                rerun |= runBibTeX(bibtex_info);
@@ -251,7 +256,12 @@ int LaTeX::run(TeXErrors & terr, LyXFunc * lfun)
                        << "Dep. file has changed or rerun requested" << endl;
                lyxerr[Debug::LATEX]
                        << "Run #" << count << endl;
-               lfun->Dispatch(LFUN_MESSAGE, _("LaTeX run number") + ' ' + tostr(count));
+               if (lfun) {
+                       ostringstream str;
+                       str << _("LaTeX run number") << ' ' << count;
+                       lfun->dispatch(LFUN_MESSAGE, str.str().c_str());
+               }
+               
 //             WriteStatus(minib,
 //                         string(_("LaTeX run number ")) + tostr(count));
                this->operator()();
@@ -280,7 +290,7 @@ int LaTeX::run(TeXErrors & terr, LyXFunc * lfun)
        if (head.haschanged(OnlyFilename(ChangeExtension(file, ".idx")))) {
                // no checks for now
                lyxerr[Debug::LATEX] << "Running MakeIndex." << endl;
-               lfun->Dispatch(LFUN_MESSAGE, _("Running MakeIndex."));
+               if (lfun) lfun->dispatch(LFUN_MESSAGE, _("Running MakeIndex."));
                //WriteStatus(minib, _("Running MakeIndex."));
                rerun = runMakeIndex(OnlyFilename(ChangeExtension(file, ".idx")));
        }
@@ -302,7 +312,12 @@ int LaTeX::run(TeXErrors & terr, LyXFunc * lfun)
                rerun = false;
                ++count;
                lyxerr[Debug::LATEX] << "Run #" << count << endl;
-               lfun->Dispatch(LFUN_MESSAGE, _("LaTeX run numger") + ' ' + tostr(count));
+               if (lfun) {
+                       ostringstream str;
+                       str << _("LaTeX run number") << ' ' << count;
+                       lfun->dispatch(LFUN_MESSAGE, str.str().c_str());
+               }
+               
 //             WriteStatus(minib, string(_("LaTeX run number ")) + tostr(count));
                this->operator()();
                scanres = scanLogFile(terr);
@@ -392,6 +407,7 @@ void LaTeX::scanAuxFile(string const & file, Aux_Info & aux_info)
        LRegex reg4("\\\\@input\\{([^}]+)\\}");
 
        while (getline(ifs, token)) {
+               token = strip(token, '\r');
                if (reg1.exact_match(token)) {
                        LRegex::SubMatches const & sub = reg1.exec(token);
                        string data = LSubstring(token, sub[1].first,
@@ -526,8 +542,20 @@ int LaTeX::scanLogFile(TeXErrors & terr)
                                }
                        } else if (contains(token, "run BibTeX")) {
                                retval |= UNDEF_CIT;
-                       } else if (contains(token, "Rerun LaTeX.")) {
-                               // at least longtable.sty might use this.
+                       } else if (contains(token, "Rerun LaTeX") ||
+                                  contains(token, "Rerun to get")) {
+                               // at least longtable.sty and bibtopic.sty
+                               // might use this.
+                               lyxerr[Debug::LATEX]
+                                       << "We should rerun." << endl;
+                               retval |= RERUN;
+                       }
+               } else if (prefixIs(token, "(")) {
+                       if (contains(token, "Rerun LaTeX") ||
+                           contains(token, "Rerun to get")) {
+                               // Used by natbib
+                               lyxerr[Debug::LATEX]
+                                       << "We should rerun." << endl;
                                retval |= RERUN;
                        }
                } else if (prefixIs(token, "! ")) {
@@ -614,7 +642,7 @@ void LaTeX::deplog(DepTable & head)
 
        string const logfile = OnlyFilename(ChangeExtension(file, ".log"));
 
-       LRegex reg1(")* *\\(([^ \\)]+).*");
+       LRegex reg1("\\)* *\\(([^ )]+).*");
        LRegex reg2("File: ([^ ]+).*");
        LRegex reg3("No file ([^ ]+)\\..*");
        LRegex reg4("\\\\openout[0-9]+.*=.*`([^ ]+)'\\..*");
@@ -630,6 +658,7 @@ void LaTeX::deplog(DepTable & head)
                string foundfile;
                string token;
                getline(ifs, token);
+               token = strip(token, '\r');
                if (token.empty()) continue;
                
                if (reg1.exact_match(token)) {
@@ -704,4 +733,7 @@ void LaTeX::deplog(DepTable & head)
                                << "Not a file or we are unable to find it."
                                << endl;
        }
+
+       // Make sure that the main .tex file is in the dependancy file.
+       head.insert(OnlyFilename(file), true);
 }