]> git.lyx.org Git - lyx.git/commitdiff
Cleanup in order to better understand bug 3043 and 3561.
authorAbdelrazak Younes <younes@lyx.org>
Mon, 7 May 2007 17:10:10 +0000 (17:10 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Mon, 7 May 2007 17:10:10 +0000 (17:10 +0000)
* switchEncoding(): simplify return logic (transform 'and -> do' to 'or ->return')

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18224 a592a061-630c-0410-9148-cb99ea01b6c8

src/output_latex.cpp

index 6c4db442405d427765166f15b0f1c5e87a68b667..152fd89e09b242b471d9210f5448572e39926a61 100644 (file)
@@ -603,46 +603,54 @@ int switchEncoding(odocstream & os, BufferParams const & bparams,
                    bool moving_arg, Encoding const & oldEnc,
                    Encoding const & newEnc)
 {
+       if ((bparams.inputenc != "auto" || moving_arg)
+               && bparams.inputenc != "default")
+               return 0;
+
+       // Do nothing if the encoding is unchanged.
+       if (oldEnc.name() == newEnc.name())
+               return 0;
+
        // FIXME We ignore encoding switches from/to encodings that do
        // neither support the inputenc package nor the CJK package here.
        // This does of course only work in special cases (e.g. switch from
        // tis620-0 to latin1, but the text in latin1 contains ASCII only,
        // but it is the best we can do
-       if (((bparams.inputenc == "auto" && !moving_arg) ||
-            bparams.inputenc == "default") &&
-           oldEnc.name() != newEnc.name() &&
-           oldEnc.package() != Encoding::none &&
-           newEnc.package() != Encoding::none) {
-               LYXERR(Debug::LATEX) << "Changing LaTeX encoding from "
-                                    << oldEnc.name() << " to "
-                                    << newEnc.name() << endl;
-               os << setEncoding(newEnc.iconvName());
-               if (bparams.inputenc != "default") {
-                       docstring const inputenc(from_ascii(newEnc.latexName()));
-                       switch (newEnc.package()) {
-                               case Encoding::none:
-                                       break;
-                               case Encoding::inputenc: {
-                                       int count = inputenc.length();
-                                       if (oldEnc.package() == Encoding::CJK) {
-                                               os << "\\end{CJK}";
-                                               count += 9;
-                                       }
-                                       os << "\\inputencoding{" << inputenc << '}';
-                                       return count + 16;
-                               }
-                               case Encoding::CJK: {
-                                       int count = inputenc.length();
-                                       if (oldEnc.package() == Encoding::CJK) {
-                                               os << "\\end{CJK}";
-                                               count += 9;
-                                       }
-                                       os << "\\begin{CJK}{" << inputenc << "}{}";
-                                       return count + 15;
-                               }
+       if (oldEnc.package() == Encoding::none
+               || newEnc.package() == Encoding::none)
+               return 0;
+
+       LYXERR(Debug::LATEX) << "Changing LaTeX encoding from "
+               << oldEnc.name() << " to "
+               << newEnc.name() << endl;
+       os << setEncoding(newEnc.iconvName());
+       if (bparams.inputenc == "default")
+               return 0;
+
+       docstring const inputenc(from_ascii(newEnc.latexName()));
+       switch (newEnc.package()) {
+               case Encoding::none:
+                       return 0;
+               case Encoding::inputenc: {
+                       int count = inputenc.length();
+                       if (oldEnc.package() == Encoding::CJK) {
+                               os << "\\end{CJK}";
+                               count += 9;
+                       }
+                       os << "\\inputencoding{" << inputenc << '}';
+                       return count + 16;
+                }
+               case Encoding::CJK: {
+                       int count = inputenc.length();
+                       if (oldEnc.package() == Encoding::CJK) {
+                               os << "\\end{CJK}";
+                               count += 9;
                        }
+                       os << "\\begin{CJK}{" << inputenc << "}{}";
+                       return count + 15;
                }
        }
+       // Dead code to avoid a warning:
        return 0;
 }