From e6d063c4317b298bd4f14a4b15f97d37f2291c17 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Lars=20Gullik=20Bj=C3=B8nnes?= Date: Fri, 28 Apr 2000 20:03:21 +0000 Subject: [PATCH] a couple of small fixes + a fix for the error in bibtex files problem git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@706 a592a061-630c-0410-9148-cb99ea01b6c8 --- ChangeLog | 12 ++++++++++++ src/LaTeX.C | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- src/LaTeX.h | 3 +++ src/lyx_cb.C | 4 +++- src/lyx_main.C | 3 ++- 5 files changed, 66 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3e35fef347..0e42f40eb4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2000-04-28 Lars Gullik Bjønnes + + * src/lyx_main.C (easyParse): use lyxerr instead of cerr. + + * src/lyx_cb.C: add using std::reverse; + + * src/LaTeX.C (run): on error always run deleteFilesOnError before + returning. + + * src/LaTeX.[Ch] (deleteFilesOnError): new method. unlinks some + selected files. Should fix repeated errors from generated files. + 2000-04-27 Dekel Tsur * src/lyx_cb.C (TocUpdateCB): Reverse strings for Hebrew paragraphs diff --git a/src/LaTeX.C b/src/LaTeX.C index fb15bb739a..eb552063a9 100644 --- a/src/LaTeX.C +++ b/src/LaTeX.C @@ -98,6 +98,31 @@ LaTeX::LaTeX(string const & latex, string const & f, string const & p) } +void LaTeX::deleteFilesOnError() const +{ + // currently just a dummy function. + + // What files do we have to delete? + + // This will at least make latex do all the runs + ::unlink(depfile.c_str()); + + // but the reason for the error might be in a generated file... + + // bibtex file + string bbl = ChangeExtension(file, ".bbl", true); + ::unlink(bbl.c_str()); + + // makeindex file + string ind = ChangeExtension(file, ".ind", true); + ::unlink(ind.c_str()); + + // Also remove the aux file + string aux = ChangeExtension(file, ".aux", true); + ::unlink(aux.c_str()); +} + + int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) // 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 @@ -151,7 +176,11 @@ int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) minib->Store(); this->operator()(); scanres = scanLogFile(terr); - if (scanres & LaTeX::ERRORS) return scanres; // return on error + if (scanres & LaTeX::ERRORS) { + deleteFilesOnError(); + return scanres; // return on error + } + run_bibtex = scanAux(head); if (run_bibtex) lyxerr[Debug::DEPEND] @@ -164,6 +193,7 @@ int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) ++count; lyxerr[Debug::DEPEND] << "Dependency file does not exist" << endl; + lyxerr[Debug::LATEX] << "Run #" << count << endl; head.insert(file, true); @@ -171,7 +201,11 @@ int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) minib->Store(); this->operator()(); scanres = scanLogFile(terr); - if (scanres & LaTeX::ERRORS) return scanres; // return on error + if (scanres & LaTeX::ERRORS) { + deleteFilesOnError(); + return scanres; // return on error + } + } // update the dependencies. @@ -232,7 +266,11 @@ int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) minib->Store(); this->operator()(); scanres = scanLogFile(terr); - if (scanres & LaTeX::ERRORS) return scanres; // return on error + if (scanres & LaTeX::ERRORS) { + deleteFilesOnError(); + return scanres; // return on error + } + // update the depedencies deplog(head); // reads the latex log head.update(); @@ -278,7 +316,11 @@ int LaTeX::run(TeXErrors & terr, MiniBuffer * minib) minib->Store(); this->operator()(); scanres = scanLogFile(terr); - if (scanres & LaTeX::ERRORS) return scanres; // return on error + if (scanres & LaTeX::ERRORS) { + deleteFilesOnError(); + return scanres; // return on error + } + // keep this updated head.update(); } diff --git a/src/LaTeX.h b/src/LaTeX.h index c9f5c9f1ce..5af4adbeba 100644 --- a/src/LaTeX.h +++ b/src/LaTeX.h @@ -180,6 +180,9 @@ protected: /// bool runBibTeX(string const &, DepTable &); + + /// + void deleteFilesOnError() const; /// string cmd; diff --git a/src/lyx_cb.C b/src/lyx_cb.C index cefd98ae82..7ba99c9ecd 100644 --- a/src/lyx_cb.C +++ b/src/lyx_cb.C @@ -55,6 +55,7 @@ using std::cout; using std::ios; using std::istream_iterator; using std::pair; +using std::reverse; extern Combox * combo_language; extern Combox * combo_language2; @@ -3239,7 +3240,8 @@ extern "C" void TocUpdateCB(FL_OBJECT *, long) ++i; } if (par->isRightToLeftPar()) - reverse(line+pos0,line+pos); + reverse(line + pos0, line + pos); + line[pos] = '\0'; fl_add_browser_line(fd_form_toc->browser_toc, line); diff --git a/src/lyx_main.C b/src/lyx_main.C index 500200cfd6..37a7e05dc2 100644 --- a/src/lyx_main.C +++ b/src/lyx_main.C @@ -602,7 +602,8 @@ bool LyX::easyParse(int * argc, char * argv[]) --i; // After shift, check this number again. batch_command = "buffer-import " + type + " " + file; - cerr << "batch_command: " << batch_command << endl; + lyxerr << "batch_command: " + << batch_command << endl; } else lyxerr << _("Missing type [eg latex, " -- 2.39.2