#include <config.h>
-#include <algorithm>
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
#include "texrow.h"
-#include "paragraph.h"
#include "debug.h"
+#include <algorithm>
+
using std::find_if;
using std::for_each;
using std::endl;
namespace {
-
+
/// function object returning true when row number is found
class same_rownumber {
public:
bool operator()(TexRow::RowList::value_type const & vt) const {
return vt.rownumber() == row_;
}
-
+
private:
int row_;
};
if (vt.id() != id_ || vt.pos() >= pos_)
return;
vt.pos(vt.pos() + 1);
-
+
lyxerr[Debug::INFO]
<< "TeXRow::increasePos: ideally this "
"should never happen..." << endl;
int id_;
int pos_;
};
-
-} // namespace anon
-
+} // namespace anon
+
+
void TexRow::reset()
{
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);
}
bool TexRow::getIdFromRow(int row, int & id, int & pos) const
{
RowList::const_iterator cit =
- find_if(rowlist.begin(), rowlist.end(),
+ find_if(rowlist.begin(), rowlist.end(),
same_rownumber(row));
-
+
if (cit != rowlist.end()) {
id = cit->id();
pos = cit->pos();
void TexRow::increasePos(int id, int pos)
{
- RowList::iterator it = rowlist.begin();
- RowList::iterator end = rowlist.end();
- for_each(it, end, increase_pos(id, pos));
+ for_each(rowlist.begin(), rowlist.end(), increase_pos(id, pos));
}