#include "insets/InsetBibitem.h"
#include "insets/InsetOptArg.h"
+#include "support/lassert.h"
#include "support/convert.h"
#include "support/debug.h"
#include "support/gettext.h"
}
Dimension const & d = row.dimension();
- char_type const b[] = { row.sel_beg, row.sel_end, d.wid, d.asc, d.des};
- // Each of the variable to process is 4 bytes: 4x5 = 20
- crc.process_bytes(b, 20);
+ char_type const b[] = { row.sel_beg, row.sel_end,
+ row.left_margin_sel, row.right_margin_sel, d.wid, d.asc, d.des};
+ // Each of the variable to process is 4 bytes: 4x7 = 28
+ crc.process_bytes(b, 28);
return crc.checksum();
}
Row & ParagraphMetrics::getRow(pos_type pos, bool boundary)
{
- BOOST_ASSERT(!rows().empty());
+ LASSERT(!rows().empty(), /**/);
// If boundary is set we should return the row on which
// the character before is inside.
Row const & ParagraphMetrics::getRow(pos_type pos, bool boundary) const
{
- BOOST_ASSERT(!rows().empty());
+ LASSERT(!rows().empty(), /**/);
// If boundary is set we should return the row on which
// the character before is inside.
size_t ParagraphMetrics::pos2row(pos_type pos) const
{
- BOOST_ASSERT(!rows().empty());
+ LASSERT(!rows().empty(), /**/);
RowList::const_iterator rit = rows_.end();
RowList::const_iterator const begin = rows_.begin();
char_type c = par_->getChar(pos);
+ if (c == '\t')
+ return 4 * theFontMetrics(font).width(' ');
+
if (!isPrintable(c))
return theFontMetrics(font).width(c);
if (!par_->isHfill(pos))
return false;
- BOOST_ASSERT(pos >= row.pos() && pos < row.endpos());
+ LASSERT(pos >= row.pos() && pos < row.endpos(), /**/);
// expand at the end of a row only if there is another hfill on the same row
if (pos == row.endpos() - 1) {