X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2FInsetMathString.cpp;h=44aad43c805075d3176fa88d4fe670ba1e1222a0;hb=872c71ffa61e52918a12c847ef7f87b10741d75a;hp=98b641a72655d922a37acce871b696727d5e8aab;hpb=ab9de435b4083c53f60cb89f7b27c4c340db7551;p=lyx.git diff --git a/src/mathed/InsetMathString.cpp b/src/mathed/InsetMathString.cpp index 98b641a726..44aad43c80 100644 --- a/src/mathed/InsetMathString.cpp +++ b/src/mathed/InsetMathString.cpp @@ -119,7 +119,9 @@ void InsetMathString::write(WriteStream & os) const char_type const c = *cit; docstring command(1, c); try { - if (c < 0x80 || Encodings::latexMathChar(c, mathmode, os.encoding(), command)) { + bool termination = false; + if (isASCII(c) || + Encodings::latexMathChar(c, mathmode, os.encoding(), command, termination)) { if (os.textMode()) { if (in_forced_mode) { // we were inside \lyxmathsym @@ -127,12 +129,12 @@ void InsetMathString::write(WriteStream & os) const os.textMode(false); in_forced_mode = false; } - if (c >= 0x80 && os.textMode()) { + if (!isASCII(c) && os.textMode()) { os << "\\ensuremath{"; os.textMode(false); in_forced_mode = true; } - } else if (c < 0x80 && in_forced_mode) { + } else if (isASCII(c) && in_forced_mode) { // we were inside \ensuremath os << '}'; os.textMode(true); @@ -152,10 +154,9 @@ void InsetMathString::write(WriteStream & os) const os << command; // We may need a space if the command contains a macro // and the last char is ASCII. - if (lyx::support::contains(command, '\\') - && isAlphaASCII(command[command.size() - 1])) + if (termination) os.pendingSpace(true); - } catch (EncodingException & e) { + } catch (EncodingException const & e) { switch (os.output()) { case WriteStream::wsDryrun: { os << "<" << _("LyX Warning: ")