diff --git a/src/ChangeLog b/src/ChangeLog index 0dc5809ceb..aa9e3b4502 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2005-01-20 Angus Leeming + + * output_latex.C (TeXOnePar, TeXEnvironment): prevent crash when + printing diagnostic data by not dereferecing an iterator past the + end. + 2005-01-19 Asger Ottar Alstrup * buffer.C (readHeader): use "&&" rather than "and". @@ -7,7 +13,7 @@ 2005-01-19 Angus Leeming * lyx_main.C (error_handler, init): protect SIGHUP with - #ifndef _WIN32 guards. + #ifdef SIGHUP guards. 2005-01-19 Jean-Marc Lasgouttes diff --git a/src/output_latex.C b/src/output_latex.C index 3fb0fe5d3d..d1ea46e50d 100644 --- a/src/output_latex.C +++ b/src/output_latex.C @@ -190,8 +190,9 @@ TeXEnvironment(Buffer const & buf, texrow.newline(); } - lyxerr[Debug::LATEX] << "TeXEnvironment...done " << &*par << endl; - return par; // ale970302 + if (par != paragraphs.end() && lyxerr.debugging(Debug::LATEX)) + lyxerr << "TeXEnvironment...done " << &*par << endl; + return par; } @@ -416,7 +417,7 @@ paragraphs); } } - if (boost::next(pit) == const_cast(paragraphs).end() + if (boost::next(pit) == paragraphs.end() && language->babel() != doc_language->babel()) { // Since \selectlanguage write the language to the aux file, // we need to reset the language at the end of footnote or @@ -443,7 +444,9 @@ paragraphs); texrow.newline(); } - lyxerr[Debug::LATEX] << "TeXOnePar...done " << &*boost::next(pit) << endl; + if (boost::next(pit) != paragraphs.end() && + lyxerr.debugging(Debug::LATEX)) + lyxerr << "TeXOnePar...done " << &*boost::next(pit) << endl; return ++pit; }