- bool moving_arg = runparams.moving_arg;
- // If we switch from/to CJK, we need to switch anyway, despite custom inputenc,
- // except if we use CJKutf8 or explicitely set inputenc to a CJK encoding
- bool const from_to_cjk =
- ((oldEnc.package() == Encoding::CJK && newEnc.package() != Encoding::CJK)
- || (oldEnc.package() != Encoding::CJK && newEnc.package() == Encoding::CJK))
- && bparams.encoding().iconvName() != "UTF8"
- && bparams.encoding().package() != Encoding::CJK;
- if (!force && !from_to_cjk
- && ((bparams.inputenc != "auto" && bparams.inputenc != "default") || moving_arg))
- return make_pair(false, 0);
-
- // Do nothing if the encoding is unchanged.
- if (oldEnc.name() == newEnc.name())
+ // Do not switch, if the encoding is unchanged or switching is not supported.
+ if (oldEnc.name() == newEnc.name()
+ || oldEnc.package() == Encoding::japanese
+ || oldEnc.package() == Encoding::none
+ || newEnc.package() == Encoding::none
+ || runparams.for_search)