I may be reading wrongly the code, but but seems to me that rowbreakpoint
sets row.endpos() to a value larger ny 1 than it should.

I.e. (text.C:LyXText::rowBreakPoint)

        if (width < 0) {
                row.endpos(pit->size() + 1);
                return;
        }


or below

pos_type const last = pit->size();
pos_type point = last;

if (pos == last) {
        row.endpos(last + 1);
        return;
}

There's more evidence that this was on purpose (lyxrow_funcs.C):

pos_type lastPos(Paragraph const & par, Row const & row)
{
        if (par.empty())
                return 0;
        pos_type pos = row.endpos() - 1;
        if (pos == par.size())
                --pos;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this shouldn't be here
        return pos;
}


I don't understand what's happening. Shouldn't row.endpos() be par->size()
if the par is small enough? Someone can explain to the thicko here?

Alfredo


Reply via email to