]> git.lyx.org Git - lyx.git/blobdiff - src/texrow.C
Really fix start_of_appendix output
[lyx.git] / src / texrow.C
index 2e3bd01fc2252e14058985fd552bf8ad647b9400..9e1b10e5634be4c4215564b96f0e1d039a0f4d85 100644 (file)
@@ -1,29 +1,27 @@
 /**
  * \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 <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:
@@ -31,64 +29,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 +64,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,14 +78,6 @@ 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());