commit 13cb7da11d04bba9fb4af5e538ca2332a5341b71
Author: Tommaso Cucinotta <[email protected]>
Date: Thu Mar 27 23:12:56 2014 +0000
Merged Paragraph::stringify into asString().
diff --git a/src/Paragraph.cpp b/src/Paragraph.cpp
index ed0ddd0..3751cfd 100644
--- a/src/Paragraph.cpp
+++ b/src/Paragraph.cpp
@@ -3347,7 +3347,7 @@ docstring Paragraph::asString(int options) const
}
-docstring Paragraph::asString(pos_type beg, pos_type end, int options) const
+docstring Paragraph::asString(pos_type beg, pos_type end, int options, const
OutputParams *runparams) const
{
odocstringstream os;
@@ -3364,9 +3364,14 @@ docstring Paragraph::asString(pos_type beg, pos_type
end, int options) const
|| (c == '\n' && (options & AS_STR_NEWLINES)))
os.put(c);
else if (c == META_INSET && (options & AS_STR_INSETS)) {
- getInset(i)->toString(os);
- if (getInset(i)->asInsetMath())
- os << " ";
+ if (c == META_INSET && (options & AS_STR_PLAINTEXT)) {
+ LASSERT(runparams != 0, return docstring());
+ getInset(i)->plaintext(os, *runparams);
+ } else {
+ getInset(i)->toString(os);
+ if (getInset(i)->asInsetMath())
+ os << " ";
+ }
}
}
@@ -3392,33 +3397,6 @@ void Paragraph::forOutliner(docstring & os, size_t
maxlen) const
}
-docstring Paragraph::stringify(pos_type beg, pos_type end, int options,
- OutputParams const & runparams) const
-{
- odocstringstream os;
-
- if (beg == 0
- && options & AS_STR_LABEL
- && !d->params_.labelString().empty())
- os << d->params_.labelString() << ' ';
-
- OutputParams op = runparams;
- op.for_search = true;
-
- for (pos_type i = beg; i < end; ++i) {
- char_type const c = d->text_[i];
- if (isPrintable(c) || c == '\t'
- || (c == '\n' && (options & AS_STR_NEWLINES)))
- os.put(c);
- else if (c == META_INSET && (options & AS_STR_INSETS)) {
- getInset(i)->plaintext(os, op);
- }
- }
-
- return os.str();
-}
-
-
void Paragraph::setInsetOwner(Inset const * inset)
{
d->inset_owner_ = inset;
diff --git a/src/Paragraph.h b/src/Paragraph.h
index ba62f9b..587612d 100644
--- a/src/Paragraph.h
+++ b/src/Paragraph.h
@@ -127,7 +127,8 @@ enum AsStringParameter
AS_STR_LABEL = 1, ///< Prefix with paragraph label.
AS_STR_INSETS = 2, ///< Go into insets.
AS_STR_NEWLINES = 4, ///< Get also newline characters.
- AS_STR_SKIPDELETE = 8 ///< Skip deleted text in change tracking.
+ AS_STR_SKIPDELETE = 8, ///< Skip deleted text in change tracking.
+ AS_STR_PLAINTEXT = 16 ///< Don't export formatting when descending into
insets.
};
@@ -173,17 +174,15 @@ public:
/// asString(AS_STR_LABEL | AS_STR_INSETS)
/// asString(AS_STR_INSETS)
docstring asString(int options = AS_STR_NONE) const;
- ///
+
+ /// Convert the paragraph to a string.
+ /// \note If options includes AS_STR_PLAINTEXT, then runparams must be
!= 0
docstring asString(pos_type beg, pos_type end,
- int options = AS_STR_NONE) const;
+ int options = AS_STR_NONE,
+ const OutputParams *runparams = 0) const;
///
void forOutliner(docstring &, size_t maxlen) const;
- /// Extract only the explicitly visible text (without any formatting),
- /// descending into insets
- docstring stringify(pos_type beg, pos_type end, int options,
- OutputParams const & runparams) const;
-
///
void write(std::ostream &, BufferParams const &,
depth_type & depth) const;
diff --git a/src/lyxfind.cpp b/src/lyxfind.cpp
index 75f0412..1b32ae3 100644
--- a/src/lyxfind.cpp
+++ b/src/lyxfind.cpp
@@ -782,14 +782,17 @@ static docstring stringifySearchBuffer(Buffer & buffer,
FindAndReplaceOptions co
runparams.flavor = OutputParams::LATEX;
runparams.linelen = 100000; //lyxrc.plaintext_linelen;
runparams.dryrun = true;
+ runparams.for_search = true;
for (pos_type pit = pos_type(0); pit <
(pos_type)buffer.paragraphs().size(); ++pit) {
Paragraph const & par = buffer.paragraphs().at(pit);
LYXERR(Debug::FIND, "Adding to search string: '"
- << par.stringify(pos_type(0), par.size(),
- AS_STR_INSETS, runparams)
+ << par.asString(pos_type(0), par.size(),
+ AS_STR_INSETS | AS_STR_PLAINTEXT,
+ &runparams)
<< "'");
- str += par.stringify(pos_type(0), par.size(),
- AS_STR_INSETS, runparams);
+ str += par.asString(pos_type(0), par.size(),
+ AS_STR_INSETS | AS_STR_PLAINTEXT,
+ &runparams);
}
}
return str;
@@ -1040,7 +1043,9 @@ docstring stringifyFromCursor(DocIterator const & cur,
int len)
runparams.dryrun = true;
LYXERR(Debug::FIND, "Stringifying with cur: "
<< cur << ", from pos: " << cur.pos() << ", end: " <<
end);
- return par.stringify(cur.pos(), end, AS_STR_INSETS, runparams);
+ return par.asString(cur.pos(), end,
+ AS_STR_INSETS | AS_STR_PLAINTEXT,
+ &runparams);
} else if (cur.inMathed()) {
docstring s;
CursorSlice cs = cur.top();