X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFont.cpp;h=ea1b8c17a37ca14c4ad873c7dfc2ca15f69842ac;hb=38a3692a0fce8b0531cef794a08d179e9e33ac33;hp=78b79ed8c2faf12f77c8d3a060e9cec779995611;hpb=897436efbb9bd641b61467d185a2dfae9839e575;p=lyx.git diff --git a/src/Font.cpp b/src/Font.cpp index 78b79ed8c2..ea1b8c17a3 100644 --- a/src/Font.cpp +++ b/src/Font.cpp @@ -40,6 +40,7 @@ using support::subst; using std::endl; using std::string; using std::ostream; +using std::pair; #ifndef CXX_GLOBAL_CSTD using std::strlen; @@ -756,6 +757,14 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams, base.language()->lang() == "farsi") { os << "\\textLR{"; count += 8; + } else if (language()->lang() == "arabic_arabi") { + os << "\\textAR{"; + count += 8; + } else if (!isRightToLeft() && + base.language()->lang() == "arabic_arabi") { + os << "\\textLR{"; + count += 8; + // currently the remaining RTL languages are arabic_arabtex and hebrew } else if (isRightToLeft() != prev.isRightToLeft()) { if (isRightToLeft()) { os << "\\R{"; @@ -777,12 +786,12 @@ int Font::latexWriteStartChanges(odocstream & os, BufferParams const & bparams, } if (language()->encoding()->package() == Encoding::CJK) { - int const c = switchEncoding(os, bparams, + pair const c = switchEncoding(os, bparams, runparams.moving_arg, *(runparams.encoding), *(language()->encoding())); - if (c > 0) { + if (c.first) { open_encoding_ = true; - count += c; + count += c.second; runparams.encoding = language()->encoding(); } } @@ -935,11 +944,11 @@ int Font::latexWriteEndChanges(odocstream & os, BufferParams const & bparams, // We need to close the encoding even if it does not change // to do correct environment nesting Encoding const * const ascii = encodings.getFromLyXName("ascii"); - int const c = switchEncoding(os, bparams, + pair const c = switchEncoding(os, bparams, runparams.moving_arg, *(runparams.encoding), *ascii); - BOOST_ASSERT(c > 0); - count += c; + BOOST_ASSERT(c.first); + count += c.second; runparams.encoding = ascii; open_encoding_ = false; }