X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftexrow.C;h=ee4b7410946a3fc08e4f3d1ad2676a1e2d9bb4b7;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=2e3bd01fc2252e14058985fd552bf8ad647b9400;hpb=50a25e9a76d753f5229b4fca1076e242a99af467;p=lyx.git diff --git a/src/texrow.C b/src/texrow.C index 2e3bd01fc2..ee4b741094 100644 --- a/src/texrow.C +++ b/src/texrow.C @@ -1,29 +1,30 @@ /** * \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 +#include "texrow.h" +#include "debug.h" + #include -#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 { - + /// function object returning true when row number is found class same_rownumber { public: @@ -31,64 +32,33 @@ public: bool operator()(TexRow::RowList::value_type const & vt) const { return vt.rownumber() == row_; } - + private: int row_; }; +} // namespace anon -/// 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 - - 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); } @@ -97,9 +67,9 @@ void TexRow::newline() 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(); @@ -111,16 +81,11 @@ bool TexRow::getIdFromRow(int row, int & id, int & pos) const } -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)); -} - - TexRow & TexRow::operator+=(TexRow const & tr) { rowlist.insert(rowlist.end(), tr.rowlist.begin(), tr.rowlist.end()); return *this; } + + +} // namespace lyx