]> git.lyx.org Git - features.git/blobdiff - src/Paragraph.cpp
FindAdv: Handle latex-output for comment-environment
[features.git] / src / Paragraph.cpp
index da97d12ccd86bbeb8b3efdd7670092aa50b7b007..be133b12c5cebb3788fac6622c21bbba361033b1 100644 (file)
@@ -1535,9 +1535,9 @@ void Paragraph::Private::validate(LaTeXFeatures & features) const
                        else if (features.runparams().main_fontenc != "T1"
                                 || ((&owner_->getFontSettings(bp, i))->language()->internalFontEncoding()))
                                features.require("textquotedbl");
-               } else if (ci.textfeature() && contains(ci.textpreamble(), '=')) {
+               } else if (ci.textFeature() && contains(ci.textPreamble(), '=')) {
                        // features that depend on the font or input encoding
-                       string feats = ci.textpreamble();
+                       string feats = ci.textPreamble();
                        string fontenc = (&owner_->getFontSettings(bp, i))->language()->fontenc(bp);
                        if (fontenc.empty())
                                fontenc = features.runparams().main_fontenc;
@@ -2367,8 +2367,8 @@ int Paragraph::Private::startTeXParParams(BufferParams const & bparams,
            && !layout_->pass_thru
            && curAlign != LYX_ALIGN_CENTER) {
                if (!owner_->empty()
-                   && (owner_->isInset(0)
-                       && owner_->getInset(0)->lyxCode() == VSPACE_CODE))
+                   && owner_->getInset(0)
+                   && owner_->getInset(0)->lyxCode() == VSPACE_CODE)
                        // If the paragraph starts with a vspace, the \\noindent
                        // needs to come after that (as it leaves vmode).
                        // If the paragraph consists only of the vspace,
@@ -2510,7 +2510,7 @@ void Paragraph::latex(BufferParams const & bparams,
        OutputParams const & runparams,
        int start_pos, int end_pos, bool force) const
 {
-       LYXERR(Debug::LATEX, "Paragraph::latex...     " << this);
+       LYXERR(Debug::OUTFILE, "Paragraph::latex...     " << this);
 
        // FIXME This check should not be needed. Perhaps issue an
        // error if it triggers.
@@ -2539,9 +2539,10 @@ void Paragraph::latex(BufferParams const & bparams,
        pos_type body_pos = beginOfBody();
        unsigned int column = 0;
 
-       // If we are inside an non inheritFont() inset, the outerfont is the default font
+       // If we are inside an non inheritFont() inset,
+       // the outerfont is the buffer's main font
        Font const real_outerfont =
-               inInset().inheritFont() ? outerfont : Font(bparams.documentClass().defaultfont());
+               inInset().inheritFont() ? outerfont : Font(bparams.getFont());
 
        if (body_pos > 0) {
                // the optional argument is kept in curly brackets in
@@ -2642,7 +2643,7 @@ void Paragraph::latex(BufferParams const & bparams,
                if (runparams.for_searchAdv == OutputParams::NoSearch)
                        output_changes = bparams.output_changes;
                else
-                       output_changes = (runparams.for_searchAdv == OutputParams::SearchWithDeleted);
+                       output_changes = ((runparams.for_searchAdv & OutputParams::SearchWithDeleted) != 0);
                if (c == META_INSET
                    && i >= start_pos && (end_pos == -1 || i < end_pos)) {
                        if (isDeleted(i))
@@ -2787,12 +2788,12 @@ void Paragraph::latex(BufferParams const & bparams,
                                column += Changes::latexMarkChange(os, bparams,
                                        Change(Change::UNCHANGED), Change(Change::DELETED), rp);
                        }
-                       open_font = false;
                        // Has the language been closed in the latexWriteEndChanges() call above?
                        langClosed = running_font.language() != basefont.language()
                                        && running_font.language() != nextfont.language()
                                        && (running_font.language()->encoding()->package() != Encoding::CJK);
                        running_font = basefont;
+                       open_font &= !langClosed;
                }
 
                // if necessary, close language environment before opening CJK
@@ -2805,7 +2806,8 @@ void Paragraph::latex(BufferParams const & bparams,
                        string end_tag = subst(lang_end_command, "$$lang", running_lang);
                        os << from_ascii(end_tag);
                        column += end_tag.length();
-                       popLanguageName();
+                       if (!languageStackEmpty())
+                               popLanguageName();
                }
 
                // Switch file encoding if necessary (and allowed)
@@ -2893,7 +2895,7 @@ void Paragraph::latex(BufferParams const & bparams,
                                }
                        } else {
                                running_font = current_font;
-                               open_font = !langClosed;
+                               open_font &= !langClosed;
                        }
                }
 
@@ -3125,7 +3127,7 @@ void Paragraph::latex(BufferParams const & bparams,
                os << setEncoding(prev_encoding->iconvName());
        }
 
-       LYXERR(Debug::LATEX, "Paragraph::latex... done " << this);
+       LYXERR(Debug::OUTFILE, "Paragraph::latex... done " << this);
 }