*
* 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-1999
+ * This file is Copyright 1996-2001
* Lars Gullik Bjønnes
*
* ======================================================
#include "LString.h"
#include "DepTable.h"
#include <vector>
+#include <set>
#include <boost/utility.hpp>
-class MiniBuffer;
+class LyXFunc;
///
class TeXErrors {
Errors errors;
};
+class Aux_Info {
+public:
+ ///
+ Aux_Info() {}
+ ///
+ string aux_file;
+ ///
+ std::set<string> citations;
+ ///
+ std::set<string> databases;
+ ///
+ std::set<string> styles;
+};
+
+
+///
+inline
+bool operator==(Aux_Info const & a, Aux_Info const & o)
+{
+ return a.aux_file == o.aux_file &&
+ a.citations == o.citations &&
+ a.databases == o.databases &&
+ a.styles == o.styles;
+}
+
///
-class LaTeX : public noncopyable {
+inline
+bool operator!=(Aux_Info const & a, Aux_Info const & o)
+{
+ return !(a == o);
+}
+
+
+///
+class LaTeX : boost::noncopyable {
public:
/** Return values from scanLogFile() and run() (to come)
///
TOO_MANY_ERRORS = 4096,
///
+ ERROR_RERUN = 8192,
+ ///
ERRORS = TEX_ERROR + LATEX_ERROR,
///
WARNINGS = TEX_WARNING + LATEX_WARNING + PACKAGE_WARNING
virtual ~LaTeX() {}
/// runs LaTeX several times
- int run(TeXErrors &, MiniBuffer *);
+ int run(TeXErrors &, LyXFunc *);
///
int getNumErrors() { return num_errors;}
bool runMakeIndex(string const &);
///
- bool scanAux(DepTable &);
+ std::vector<Aux_Info> const scanAuxFiles(string const &);
+
+ ///
+ Aux_Info const scanAuxFile(string const &);
+
+ ///
+ void scanAuxFile(string const &, Aux_Info &);
///
- bool runBibTeX(string const &, DepTable &);
+ void updateBibtexDependencies(DepTable &,
+ std::vector<Aux_Info> const &);
+
+ ///
+ bool runBibTeX(std::vector<Aux_Info> const &);
///
void deleteFilesOnError() const;