current_change_number_ = 0;
}
- void setRange(FontSpan const fp, SpellChecker::Result state)
+ void setRange(FontSpan const & fp, SpellChecker::Result state)
{
Ranges result;
RangesIterator et = ranges_.end();
string script;
pair<docstring, bool> latex = encoding.latexChar(c);
docstring nextlatex;
- if (next != '\0' && next != META_INSET)
+ bool nexttipas = false;
+ string nexttipashortcut;
+ if (next != '\0' && next != META_INSET) {
nextlatex = encoding.latexChar(next).first;
+ if (runparams.inIPA) {
+ nexttipashortcut = Encodings::TIPAShortcut(next);
+ nexttipas = !nexttipashortcut.empty();
+ }
+ }
bool tipas = false;
if (runparams.inIPA) {
string const tipashortcut = Encodings::TIPAShortcut(c);
column += writeScriptChars(os, latex.first,
running_change, encoding, i) - 1;
else if (latex.second
- && !prefixIs(nextlatex, '\\')
- && !prefixIs(nextlatex, '{')
- && !prefixIs(nextlatex, '}')
+ && ((!prefixIs(nextlatex, '\\')
+ && !prefixIs(nextlatex, '{')
+ && !prefixIs(nextlatex, '}'))
+ || (nexttipas
+ && !prefixIs(from_ascii(nexttipashortcut), '\\')))
&& !tipas) {
// Prevent eating of a following
// space or command corruption by
if (features.runparams().flavor == OutputParams::HTML
&& layout_->htmltitle()) {
- features.setHTMLTitle(owner_->asString(AS_STR_INSETS));
+ features.setHTMLTitle(owner_->asString(AS_STR_INSETS | AS_STR_SKIPDELETE));
}
// check the params.