]> git.lyx.org Git - features.git/blobdiff - src/Paragraph.cpp
FindAdv: Handling of '%' in searched string while not ignoring format
[features.git] / src / Paragraph.cpp
index 48b8519cd77b640af6fdcfc64bf99b3ad9853c4a..434e515ccb8101296b9d5492fbe65915ddf42b45 100644 (file)
@@ -1209,10 +1209,10 @@ void Paragraph::Private::latexSpecialChar(otexstream & os,
 {
        char_type const c = owner_->getUChar(bparams, runparams, i);
 
-       if (style.pass_thru || runparams.pass_thru || (runparams.for_searchAdv != OutputParams::NoSearch)
+       if (style.pass_thru || runparams.pass_thru || (runparams.for_search != OutputParams::NoSearch)
            || contains(style.pass_thru_chars, c)
            || contains(runparams.pass_thru_chars, c)) {
-               if (runparams.for_searchAdv != OutputParams::NoSearch) {
+               if (runparams.for_search != OutputParams::NoSearch) {
                        if (c == '\\')
                                os << "\\\\";
                        else if (c == '{')
@@ -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.
@@ -2640,10 +2640,10 @@ void Paragraph::latex(BufferParams const & bparams,
 
                // Check whether a display math inset follows
                bool output_changes;
-               if (runparams.for_searchAdv == OutputParams::NoSearch)
+               if (runparams.for_search == OutputParams::NoSearch)
                        output_changes = bparams.output_changes;
                else
-                       output_changes = (runparams.for_searchAdv == OutputParams::SearchWithDeleted);
+                       output_changes = ((runparams.for_search & OutputParams::SearchWithDeleted) != 0);
                if (c == META_INSET
                    && i >= start_pos && (end_pos == -1 || i < end_pos)) {
                        if (isDeleted(i))
@@ -3127,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);
 }
 
 
@@ -4560,7 +4560,6 @@ void Paragraph::changeCase(BufferParams const & bparams, pos_type pos,
        }
 }
 
-
 int Paragraph::find(docstring const & str, bool cs, bool mw,
                pos_type start_pos, bool del) const
 {
@@ -4585,7 +4584,14 @@ int Paragraph::find(docstring const & str, bool cs, bool mw,
                        if (!inset->isLetter() && !inset->isChar())
                                break;
                        odocstringstream os;
-                       inset->toString(os);
+                       if (inset->lyxCode() == lyx::QUOTE_CODE) {
+                               OutputParams op(0);
+                               op.for_search = OutputParams::SearchQuick;
+                               inset->plaintext(os, op);
+                       }
+                       else {
+                               inset->toString(os);
+                       }
                        docstring const insetstring = os.str();
                        if (!insetstring.empty()) {
                                int const insetstringsize = insetstring.length();
@@ -4601,9 +4607,10 @@ int Paragraph::find(docstring const & str, bool cs, bool mw,
                }
                if (nonmatch || i == strsize)
                        break;
-               if (cs && str[i] != d->text_[pos])
+               char_type dp = d->text_[pos];
+               if (cs && str[i] != dp)
                        break;
-               if (!cs && uppercase(str[i]) != uppercase(d->text_[pos]))
+               if (!cs && uppercase(str[i]) != uppercase(dp))
                        break;
        }