return success_;
}
- else if (t.cat() == catOther)
- cell->push_back(MathAtom(new InsetMathChar(t.character())));
+ else if (t.cat() == catOther) {
+ char_type c = t.character();
+ if (c < 0x80 || mode_ & Parse::VERBATIM
+ || !(mode_ & Parse::USETEXT)) {
+ cell->push_back(MathAtom(new InsetMathChar(c)));
+ } else {
+ MathAtom at = createInsetMath("text");
+ at.nucleus()->cell(0).push_back(MathAtom(new InsetMathChar(t.character())));
+ while (nextToken().cat() == catOther
+ && nextToken().character() >= 0x80) {
+ c = getToken().character();
+ at.nucleus()->cell(0).push_back(MathAtom(new InsetMathChar(c)));
+ }
+ cell->push_back(at);
+ }
+ }
else if (t.cat() == catComment) {
docstring s;