* Licence details can be found in the file COPYING.
*
* \author Matthias Ettrich
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
* \author John Levon
*
* Full author contact details are available in file CREDITS.
void TexRow::start(int id, int pos)
{
+ if (started)
+ return;
+
lastid = id;
lastpos = pos;
+ started = true;
}
int const id = lastid;
RowList::value_type tmp(id, lastpos);
rowlist.push_back(tmp);
+ started = false;
}
+void TexRow::newlines(int num_lines)
+{
+ for (int i = 0; i < num_lines; ++i) {
+ newline();
+ }
+}
bool TexRow::getIdFromRow(int row, int & id, int & pos) const
{
int TexRow::getRowFromIdPos(int id, int pos) const
{
- int bestrow = 0;
bool foundid = false;
- // this loop finds the last *nonempty* row whith the same id
+ // this loop finds the last *nonempty* row with the same id
// and position <= pos
- for (unsigned r = 0, n = rowlist.size(); r != n; ++r) {
- if (rowlist[r].id() == id && rowlist[r].pos() <= pos) {
+ RowList::const_iterator bestrow = rowlist.begin();
+ RowList::const_iterator it = rowlist.begin();
+ RowList::const_iterator const end = rowlist.end();
+ for (; it != end; ++it) {
+ if (it->id() == id && it->pos() <= pos) {
foundid = true;
- if (rowlist[bestrow].id() != id || rowlist[r].pos() > rowlist[bestrow].pos())
- bestrow = r;
+ if (bestrow->id() != id || it->pos() > bestrow->pos())
+ bestrow = it;
} else if (foundid)
break;
}
if (!foundid)
return rowlist.size();
- return bestrow;
+ return distance(rowlist.begin(), bestrow) + 1;
}