The branch, 2.0.x, has been updated.

- Log -----------------------------------------------------------------

commit ab66c18a9d7f39c766795b78dc0ba84076a82d4b
Author: Julien Rioux <[email protected]>
Date:   Sat Dec 3 22:58:38 2011 +0000

    Remove the .aux and .bbl files when we switch the citation engine or style.

diff --git a/src/Buffer.cpp b/src/Buffer.cpp
index ac4f018..40e650c 100644
--- a/src/Buffer.cpp
+++ b/src/Buffer.cpp
@@ -2052,6 +2052,24 @@ bool Buffer::citeLabelsValid() const
 }
 
 
+void Buffer::removeBiblioTempFiles() const
+{
+       // We remove files that contain LaTeX commands specific to the
+       // particular bibliographic style being used, in order to avoid
+       // LaTeX errors when we switch style.
+       FileName const aux_file(addName(temppath(), 
changeExtension(latexName(),".aux")));
+       FileName const bbl_file(addName(temppath(), 
changeExtension(latexName(),".bbl")));
+       LYXERR(Debug::FILES, "Removing the .aux file " << aux_file);
+       aux_file.removeFile();
+       LYXERR(Debug::FILES, "Removing the .bbl file " << bbl_file);
+       bbl_file.removeFile();
+       // Also for the parent buffer
+       Buffer const * const pbuf = parent();
+       if (pbuf)
+               pbuf->removeBiblioTempFiles();
+}
+
+
 bool Buffer::isDepClean(string const & name) const
 {
        DepClean::const_iterator const it = d->dep_clean.find(name);
diff --git a/src/Buffer.h b/src/Buffer.h
index 410cb97..7d48cb6 100644
--- a/src/Buffer.h
+++ b/src/Buffer.h
@@ -475,6 +475,9 @@ public:
        ///
        void getLabelList(std::vector<docstring> &) const;
 
+       /// This removes the .aux and .bbl files from the temp dir.
+       void removeBiblioTempFiles() const;
+
        ///
        void changeLanguage(Language const * from, Language const * to);
 
diff --git a/src/frontends/qt4/GuiDocument.cpp 
b/src/frontends/qt4/GuiDocument.cpp
index 600e4f2..315c321 100644
--- a/src/frontends/qt4/GuiDocument.cpp
+++ b/src/frontends/qt4/GuiDocument.cpp
@@ -2214,6 +2214,8 @@ void GuiDocument::applyView()
        else
                bp_.bibtex_command = bibtex_command + " " + bibtex_options;
 
+       buffer().removeBiblioTempFiles();
+
        // Indices
        indicesModule->apply(bp_);
 
diff --git a/src/insets/InsetBibtex.cpp b/src/insets/InsetBibtex.cpp
index 16dbfb2..abc7e0f 100644
--- a/src/insets/InsetBibtex.cpp
+++ b/src/insets/InsetBibtex.cpp
@@ -57,14 +57,17 @@ namespace os = support::os;
 InsetBibtex::InsetBibtex(Buffer * buf, InsetCommandParams const & p)
        : InsetCommand(buf, p)
 {
-       buffer().invalidateBibfileCache();
+       buffer().invalidateBibinfoCache();
+       buffer().removeBiblioTempFiles();
 }
 
 
 InsetBibtex::~InsetBibtex()
 {
-       if (isBufferLoaded())
+       if (isBufferLoaded()) {
                buffer().invalidateBibfileCache();
+               buffer().removeBiblioTempFiles();
+       }
 }
 
 
@@ -107,6 +110,7 @@ void InsetBibtex::doDispatch(Cursor & cur, FuncRequest & 
cmd)
                cur.recordUndo();
                setParams(p);
                buffer().invalidateBibfileCache();
+               buffer().removeBiblioTempFiles();
                cur.forceBufferUpdate();
                break;
        }

-----------------------------------------------------------------------

Summary of changes:
 src/Buffer.cpp                    |   18 ++++++++++++++++++
 src/Buffer.h                      |    3 +++
 src/frontends/qt4/GuiDocument.cpp |    2 ++
 src/insets/InsetBibtex.cpp        |    8 ++++++--
 4 files changed, 29 insertions(+), 2 deletions(-)


hooks/post-receive
-- 
The LyX Source Repository

Reply via email to