]> git.lyx.org Git - lyx.git/blobdiff - src/lyxrow_funcs.C
fix mathed crash
[lyx.git] / src / lyxrow_funcs.C
index 446e53979fc21b253cf5e40d24b3c79219deff68..e4cd8c26ddd1cd767e0b52edb5716cb9ee24f8a9 100644 (file)
@@ -24,31 +24,16 @@ using std::min;
 using std::endl;
 
 
-bool isParEnd(Paragraph const & par, Row const & row)
-{
-       return row.end() == par.size();
-}
-
-
-pos_type lastPos(Paragraph const & par, Row const & row)
-{
-       if (par.empty())
-               return 0;
-       pos_type pos = row.end() - 1;
-       if (pos == par.size())
-               --pos;
-       return pos;
-}
-
-
 int numberOfSeparators(Paragraph const & par, Row const & row)
 {
-       pos_type const last = lastPos(par, row);
+       pos_type const first = max(row.pos(), par.beginOfBody());
+       pos_type const last = row.endpos() - 1;
        int n = 0;
-       pos_type p = max(row.pos(), par.beginningOfBody());
-       for ( ; p < last; ++p)
+       for (pos_type p = first; p < last; ++p) {
                if (par.isSeparator(p))
                        ++n;
+       }
+
        return n;
 }
 
@@ -57,7 +42,7 @@ int numberOfSeparators(Paragraph const & par, Row const & row)
 // an anonymous namespace there. (Lgb)
 int numberOfHfills(Paragraph const & par, Row const & row)
 {
-       pos_type const last = lastPos(par, row);
+       pos_type const last = row.endpos() - 1;
        pos_type first = row.pos();
 
        // hfill *DO* count at the beginning of paragraphs!
@@ -66,7 +51,7 @@ int numberOfHfills(Paragraph const & par, Row const & row)
                        ++first;
        }
 
-       first = max(first, par.beginningOfBody());
+       first = max(first, par.beginOfBody());
 
        int n = 0;
 
@@ -84,7 +69,7 @@ int numberOfHfills(Paragraph const & par, Row const & row)
 // an anonymous namespace there. (Lgb)
 int numberOfLabelHfills(Paragraph const & par, Row const & row)
 {
-       pos_type last = lastPos(par, row);
+       pos_type last = row.endpos() - 1;
        pos_type first = row.pos();
 
        // hfill *DO* count at the beginning of paragraphs!
@@ -93,7 +78,7 @@ int numberOfLabelHfills(Paragraph const & par, Row const & row)
                        ++first;
        }
 
-       last = min(last, par.beginningOfBody());
+       last = min(last, par.beginOfBody());
        int n = 0;
 
        // last, because the end is ignored
@@ -113,18 +98,19 @@ bool hfillExpansion(Paragraph const & par, Row const & row, pos_type pos)
 
        // at the end of a row it does not count
        // unless another hfill exists on the line
-       if (pos >= lastPos(par, row))
+       if (pos >= row.endpos()) {
                for (pos_type i = row.pos(); i < pos && !par.isHfill(i); ++i)
                        return false;
+       }
 
        // at the beginning of a row it does not count, if it is not
        // the first row of a paragaph
-       if (row.isParStart())
+       if (row.pos() == 0)
                return true;
 
        // in some labels it does not count
        if (par.layout()->margintype != MARGIN_MANUAL
-           && pos < par.beginningOfBody())
+           && pos < par.beginOfBody())
                return false;
 
        // if there is anything between the first char of the row and