}
-lyx::pos_type Paragraph::getEndPosOfFontSpan(lyx::pos_type pos) const
+std::pair<lyx::pos_type, lyx::pos_type> Paragraph::getFontSpan(lyx::pos_type pos) const
{
BOOST_ASSERT(pos <= size());
+ lyx::pos_type start = 0;
Pimpl::FontList::const_iterator cit = pimpl_->fontlist.begin();
Pimpl::FontList::const_iterator end = pimpl_->fontlist.end();
- for (; cit != end; ++cit)
+ for (; cit != end; ++cit) {
if (cit->pos() >= pos)
- return cit->pos();
+ return std::make_pair(start, cit->pos());
+ start = cit->pos() + 1;
+ }
// This should not happen, but if so, we take no chances.
//lyxerr << "Paragraph::getEndPosOfFontSpan: This should not happen!"
// << endl;
- return pos;
+ return std::make_pair(pos, pos);
}
int i = 0;
while (!empty() && (isNewline(0) || isLineSeparator(0))) {
- pimpl_->eraseIntern(0);
+ // Set Change::Type to Change::INSERTED to quietly remove it
+ setChange(0, Change::INSERTED);
+ erase(0);
++i;
}
{
if (!insetlist.empty()) {
InsetBase * inset = insetlist.begin()->inset;
- if (inset->lyxCode() == InsetBase::BIBTEX_CODE)
+ if (inset->lyxCode() == InsetBase::BIBITEM_CODE)
return static_cast<InsetBibitem *>(inset);
}
return 0;
// Needed if there is an optional argument but no contents.
if (body_pos > 0 && body_pos == size()) {
- os << "]~";
+ os << "}]~";
return_value = false;
}