]> git.lyx.org Git - lyx.git/blobdiff - src/paragraph_pimpl.C
* src/frontends/qt4/ui/QPrefCygwinPathUi.ui:
[lyx.git] / src / paragraph_pimpl.C
index 21436798c52a7facb9bf633eb001b8ab161975c6..09feac95344b09d5e7e0bc9c718948d147b6d64d 100644 (file)
@@ -62,6 +62,10 @@ size_t const phrases_nr = sizeof(special_phrases)/sizeof(special_phrase);
 bool isEncoding(BufferParams const & bparams, LyXFont const & font,
                string const & encoding)
 {
+       // We do ignore bparams.inputenc == "default" here because characters
+       // in this encoding could be treated by TeX as something different,
+       // e.g. if they are inside a CJK environment. See also
+       // http://bugzilla.lyx.org/show_bug.cgi?id=3043.
        return (bparams.inputenc == encoding
                || (bparams.inputenc == "auto"
                    && font.language()->encoding()->latexName() == encoding));
@@ -151,7 +155,7 @@ void Paragraph::Pimpl::setChange(pos_type pos, Change const & change)
 }
 
 
-Change const Paragraph::Pimpl::lookupChange(pos_type pos) const
+Change const Paragraph::Pimpl::lookupChange(pos_type pos) const
 {
        BOOST_ASSERT(pos >= 0 && pos <= size());
 
@@ -386,7 +390,7 @@ void Paragraph::Pimpl::simpleTeXBlanks(odocstream & os, TexRow & texrow,
        if (style.pass_thru)
                return;
 
-       if (column > lyxrc.ascii_linelen
+       if (column > lyxrc.plaintext_linelen
            && i
            && getChar(i - 1) != ' '
            && (i < size() - 1)
@@ -483,7 +487,8 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const & buf,
                                os << '\n';
                        } else {
                                if (open_font) {
-                                       column += running_font.latexWriteEndChanges(os, basefont, basefont);
+                                       column += running_font.latexWriteEndChanges(
+                                               os, basefont, basefont, bparams);
                                        open_font = false;
                                }
                                basefont = owner_->getLayoutFont(bparams, outerfont);
@@ -536,10 +541,8 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const & buf,
 #endif
                // some insets cannot be inside a font change command
                if (open_font && inset->noFontChange()) {
-                       column +=running_font.
-                               latexWriteEndChanges(os,
-                                                    basefont,
-                                                    basefont);
+                       column += running_font.latexWriteEndChanges(
+                                       os, basefont, basefont, bparams);
                        open_font = false;
                        basefont = owner_->getLayoutFont(bparams, outerfont);
                        running_font = basefont;
@@ -663,7 +666,9 @@ void Paragraph::Pimpl::simpleTeXSpecialChars(Buffer const & buf,
                case 0x20ac:    // EURO SIGN
                        if (isEncoding(bparams, font, "latin9")
                            || isEncoding(bparams, font, "cp1251")
-                           || isEncoding(bparams, font, "utf8")) {
+                           || isEncoding(bparams, font, "utf8")
+                           || isEncoding(bparams, font, "latin10")
+                           || isEncoding(bparams, font, "cp858")) {
                                os.put(c);
                        } else {
                                os << "\\texteuro{}";