/**
* \file texrow.C
- * Copyright 1995-2002 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
* \author Matthias Ettrich
+ * \author Lars Gullik Bjønnes
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
+#include "texrow.h"
+#include "debug.h"
+
#include <algorithm>
-#ifdef __GNUG__
-#pragma implementation
-#endif
-#include "texrow.h"
-#include "paragraph.h"
-#include "debug.h"
+namespace lyx {
using std::find_if;
-using std::for_each;
-using std::endl;
+
namespace {
int row_;
};
-
-/// increment the pos value of the argument if the par id
-/// is the same, and the pos parameter is larger
-class increase_pos {
-public:
- increase_pos(int id, int pos)
- : id_(id), pos_(pos) {}
-
- void operator()(TexRow::RowList::value_type & vt) const {
- if (vt.id() != id_ || vt.pos() >= pos_)
- return;
- vt.pos(vt.pos() + 1);
-
- lyxerr[Debug::INFO]
- << "TeXRow::increasePos: ideally this "
- "should never happen..." << endl;
-
- // FIXME: When verified to work this clause should be deleted.
- if (id_ == vt.id() && pos_ == vt.pos()) {
- lyxerr[Debug::INFO]
- << "TexRow::increasePos: this should happen "
- "maximum one time for each run of "
- "increasePos!" << endl;
- }
- }
-
-private:
- int id_;
- int pos_;
-};
-
} // namespace anon
{
rowlist.clear();
count = 0;
- lastpar = 0;
+ lastid = -1;
lastpos = -1;
}
-void TexRow::start(Paragraph * par, int pos)
+void TexRow::start(int id, int pos)
{
- lastpar = par;
+ lastid = id;
lastpos = pos;
}
void TexRow::newline()
{
- int const id = lastpar ? lastpar->id() : -1;
+ int const id = lastid;
RowList::value_type tmp(id, lastpos, ++count);
rowlist.push_back(tmp);
}
}
-void TexRow::increasePos(int id, int pos)
-{
- for_each(rowlist.begin(), rowlist.end(), increase_pos(id, pos));
-}
-
-
TexRow & TexRow::operator+=(TexRow const & tr)
{
rowlist.insert(rowlist.end(), tr.rowlist.begin(), tr.rowlist.end());
return *this;
}
+
+
+} // namespace lyx