static docstring const number_seperators = from_ascii(".,:");
if (cur.current_font.fontInfo().number() == FONT_ON) {
- if (!isDigit(c) && !contains(number_operators, c) &&
+ if (!isDigitASCII(c) && !contains(number_operators, c) &&
!(contains(number_seperators, c) &&
cur.pos() != 0 &&
cur.pos() != cur.lastpos() &&
tm.displayFont(pit, cur.pos() - 1).fontInfo().number() == FONT_ON)
)
number(cur); // Set current_font.number to OFF
- } else if (isDigit(c) &&
+ } else if (isDigitASCII(c) &&
cur.real_current_font.isVisibleRightToLeft()) {
number(cur); // Set current_font.number to ON
spit += cur.pit();
Buffer & b = *cur.buffer();
cur.paragraph().eraseChar(cur.pos(), b.params().trackChanges);
+
if (!plist.empty()) {
+ // see bug 7319
+ // we clear the cache so that we won't get conflicts with labels
+ // that get pasted into the buffer. we should update this before
+ // its being empty matters. if not (i.e., if we encounter bugs),
+ // then this should instead be:
+ // cur.buffer().updateBuffer();
+ // but we'll try the cheaper solution here.
+ cur.buffer()->clearReferenceCache();
+
// ERT paragraphs have the Language latex_language.
// This is invalid outside of ERT, so we need to
// change it to the buffer language.
// restore position
cur.pit() = min(cur.lastpit(), spit);
cur.pos() = min(cur.lastpos(), spos);
- } else
- cur.forceBufferUpdate();
+ }
+
+ cur.forceBufferUpdate();
// Ensure the current language is set correctly (bug 6292)
cur.text()->setCursor(cur, cur.pit(), cur.pos());
}
if (!name.empty())
- // FIXME refstyle
- // We should allow customization of the separator or else change it
text = name + ':' + text;
return text;
}
+void Text::forToc(docstring & os, size_t maxlen, bool shorten) const
+{
+ LASSERT(maxlen > 10, maxlen = 30);
+ for (size_t i = 0; i != pars_.size() && os.length() < maxlen; ++i)
+ pars_[i].forToc(os, maxlen);
+ if (shorten && os.length() >= maxlen)
+ os = os.substr(0, maxlen - 3) + from_ascii("...");
+}
+
void Text::charsTranspose(Cursor & cur)
{