]> git.lyx.org Git - lyx.git/blobdiff - src/Buffer.cpp
- UI support for the LaTeX-package undertilde, fileformat change, fixed the remaining...
[lyx.git] / src / Buffer.cpp
index a96e46c0d96d7cb20098bbb898edf88b4f88987d..071c5312cfa25f885b46bfc769aebd5d0f63cac1 100644 (file)
@@ -128,7 +128,7 @@ namespace {
 
 // Do not remove the comment below, so we get merge conflict in
 // independent branches. Instead add your own.
-int const LYX_FORMAT = 413; // rgh: html_css_as_file
+int const LYX_FORMAT = 415; //uwestoehr : support for package undertilde (bug 6622)
 
 typedef map<string, bool> DepClean;
 typedef map<docstring, pair<InsetLabel const *, Buffer::References> > RefCache;
@@ -337,9 +337,9 @@ Buffer::Impl::Impl(Buffer * owner, FileName const & file, bool readonly_,
        : owner_(owner), lyx_clean(true), bak_clean(true), unnamed(false),
          read_only(readonly_), filename(file), file_fully_loaded(false),
          toc_backend(owner), macro_lock(false), timestamp_(0), checksum_(0),
-         wa_(0), gui_(0), undo_(*owner), preview_loader_(0),
-         bibinfo_cache_valid_(false), bibfile_cache_valid_(false),
-         cite_labels_valid_(false), cloned_buffer_(cloned_buffer),
+         wa_(0), gui_(0), undo_(*owner), bibinfo_cache_valid_(false), 
+         bibfile_cache_valid_(false), cite_labels_valid_(false), 
+         preview_loader_(0), cloned_buffer_(cloned_buffer),
          doing_export(false), parent_buffer(0)
 {
        if (!cloned_buffer_) {
@@ -2647,6 +2647,12 @@ ListOfBuffers Buffer::getChildren() const
 {
        ListOfBuffers v;
        collectChildren(v, false);
+       // Make sure we have not included ourselves.
+       ListOfBuffers::iterator bit = find(v.begin(), v.end(), this);
+       if (bit != v.end()) {
+               LYXERR0("Recursive include detected in `" << fileName() << "'.");
+               v.erase(bit);
+       }
        return v;
 }
 
@@ -2655,6 +2661,12 @@ ListOfBuffers Buffer::getDescendents() const
 {
        ListOfBuffers v;
        collectChildren(v, true);
+       // Make sure we have not included ourselves.
+       ListOfBuffers::iterator bit = find(v.begin(), v.end(), this);
+       if (bit != v.end()) {
+               LYXERR0("Recursive include detected in `" << fileName() << "'.");
+               v.erase(bit);
+       }
        return v;
 }
 
@@ -3482,6 +3494,8 @@ bool Buffer::doExport(string const & format, bool put_in_tempdir,
                        runparams.flavor = OutputParams::PDFLATEX;
                else if (backend_format == "luatex")
                        runparams.flavor = OutputParams::LUATEX;
+               else if (backend_format == "dviluatex")
+                       runparams.flavor = OutputParams::DVILUATEX;
                else if (backend_format == "xetex")
                        runparams.flavor = OutputParams::XETEX;
        }