X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLaTeX.C;h=a8106ccf2fd5f4ff3f811f22d8e967b8834441c5;hb=15a0218c0fbd310587456f1342f051a663a69d64;hp=968d15845b59b2bc9fe19027e6ddaaf7f4ad6e4c;hpb=3d4b640a42be227ba23b1b14b2924f06fba2e738;p=lyx.git diff --git a/src/LaTeX.C b/src/LaTeX.C index 968d15845b..a8106ccf2f 100644 --- a/src/LaTeX.C +++ b/src/LaTeX.C @@ -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 * * ====================================================== @@ -29,9 +29,9 @@ #include "support/LRegex.h" #include "support/LSubstring.h" #include "bufferlist.h" -#include "minibuffer.h" #include "gettext.h" #include "lyx_gui_misc.h" +#include "lyxfunc.h" using std::ifstream; using std::getline; @@ -106,7 +106,7 @@ void LaTeX::deleteFilesOnError() const } -int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) +int LaTeX::run(TeXErrors & terr, LyXFunc * lfun) // 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 @@ -173,8 +173,15 @@ int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) bibtex_info_old = scanAuxFiles(aux_file); ++count; - lyxerr[Debug::LATEX] << "Run #" << count << endl; - WriteStatus(minib, string(_("LaTeX run number ")) + tostr(count)); + lyxerr[Debug::LATEX] << "Run #" << count << endl; + 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()(); scanres = scanLogFile(terr); if (scanres & ERROR_RERUN) { @@ -207,7 +214,8 @@ int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) if (head.haschanged(OnlyFilename(ChangeExtension(file, ".idx")))) { // no checks for now lyxerr[Debug::LATEX] << "Running MakeIndex." << endl; - WriteStatus(minib, _("Running MakeIndex.")); + if (lfun) lfun->Dispatch(LFUN_MESSAGE, _("Running MakeIndex.")); +// WriteStatus(minib, _("Running MakeIndex.")); rerun = runMakeIndex(OnlyFilename(ChangeExtension(file, ".idx"))); } @@ -219,7 +227,8 @@ int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) // tags is found -> run bibtex and set rerun = true; // no checks for now lyxerr[Debug::LATEX] << "Running BibTeX." << endl; - WriteStatus(minib, _("Running BibTeX.")); + if (lfun) lfun->Dispatch(LFUN_MESSAGE, _("Running BibTeX.")); + //WriteStatus(minib, _("Running BibTeX.")); updateBibtexDependencies(head, bibtex_info); rerun |= runBibTeX(bibtex_info); } else if (!had_depfile) @@ -247,8 +256,14 @@ int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) << "Dep. file has changed or rerun requested" << endl; lyxerr[Debug::LATEX] << "Run #" << count << endl; - WriteStatus(minib, - string(_("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()(); scanres = scanLogFile(terr); if (scanres & ERRORS) { @@ -275,7 +290,8 @@ int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) if (head.haschanged(OnlyFilename(ChangeExtension(file, ".idx")))) { // no checks for now lyxerr[Debug::LATEX] << "Running MakeIndex." << endl; - WriteStatus(minib, _("Running MakeIndex.")); + if (lfun) lfun->Dispatch(LFUN_MESSAGE, _("Running MakeIndex.")); + //WriteStatus(minib, _("Running MakeIndex.")); rerun = runMakeIndex(OnlyFilename(ChangeExtension(file, ".idx"))); } @@ -296,7 +312,13 @@ int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) rerun = false; ++count; lyxerr[Debug::LATEX] << "Run #" << count << endl; - WriteStatus(minib, string(_("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()(); scanres = scanLogFile(terr); if (scanres & ERRORS) { @@ -605,9 +627,9 @@ void LaTeX::deplog(DepTable & head) // files used by the LaTeX run. The files are then entered into the // dependency file. - string logfile = OnlyFilename(ChangeExtension(file, ".log")); + string const logfile = OnlyFilename(ChangeExtension(file, ".log")); - LRegex reg1(")* *\\(([^ \\)]+).*"); + LRegex reg1("\\)* *\\(([^ )]+).*"); LRegex reg2("File: ([^ ]+).*"); LRegex reg3("No file ([^ ]+)\\..*"); LRegex reg4("\\\\openout[0-9]+.*=.*`([^ ]+)'\\..*"); @@ -663,7 +685,8 @@ void LaTeX::deplog(DepTable & head) // On initial insert we want to do the update at once // since this file can not be a file generated by // the latex run. - head.insert(foundfile, true); + if (FileInfo(foundfile).exist()) + head.insert(foundfile, true); } // (2) foundfile is in the tmpdir @@ -696,4 +719,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); }