using std::ostream;
void breakParagraph(BufferParams const & bparams,
- Paragraph * par,
+ ParagraphList::iterator par,
pos_type pos,
int flag)
{
- // create a new paragraph
- Paragraph * tmp = new Paragraph(par);
+ // create a new paragraph, and insert into the list
+ Paragraph * tmp = new Paragraph(&*par);
// without doing that we get a crash when typing <Return> at the
// end of a paragraph
tmp->layout(bparams.getLyXTextClass().defaultLayout());
Change::Type change(par->lookupChange(i));
par->cutIntoMinibuffer(bparams, i);
if (tmp->insertFromMinibuffer(j - pos)) {
- tmp->pimpl_->setChange(j - pos, change);
+ tmp->setChange(j - pos, change);
++j;
}
}
for (i = pos_end; i >= pos; --i) {
- par->pimpl_->eraseIntern(i);
+ par->eraseIntern(i);
}
}
void breakParagraphConservative(BufferParams const & bparams,
- Paragraph * par,
+ ParagraphList::iterator par,
pos_type pos)
{
// create a new paragraph
- Paragraph * tmp = new Paragraph(par);
- tmp->makeSameLayout(par);
+ Paragraph * tmp = new Paragraph(&*par);
+ tmp->makeSameLayout(&*par);
// When can pos > Last()?
// I guess pos == Last() is possible.
}
-void mergeParagraph(BufferParams const & bparams, Paragraph * par)
+void mergeParagraph(Buffer * buf, ParagraphList::iterator par)
{
- Paragraph * the_next = par->next();
+ BufferParams const & bparams = buf->params;
+
+ ParagraphList::iterator the_next = boost::next(par);
// first the DTP-stuff
par->params().lineBottom(the_next->params().lineBottom());
++j;
}
- // delete the next paragraph
- Paragraph * ppar = the_next->previous();
- Paragraph * npar = the_next->next();
- delete the_next;
- ppar->next(npar);
+ buf->paragraphs.erase(the_next);
}
#endif
-Paragraph * TeXDeeper(Buffer const * buf,
- BufferParams const & bparams,
- Paragraph * pit,
- ostream & os, TexRow & texrow)
+ParagraphList::iterator
+TeXDeeper(Buffer const * buf,
+ BufferParams const & bparams,
+ ParagraphList::iterator pit,
+ ostream & os, TexRow & texrow)
{
- lyxerr[Debug::LATEX] << "TeXDeeper... " << pit << endl;
- Paragraph * par = pit;
+ lyxerr[Debug::LATEX] << "TeXDeeper... " << &*pit << endl;
+ ParagraphList::iterator par = pit;
- while (par && par->params().depth() == pit->params().depth()) {
+ while (par != buf->paragraphs.end()&& par->params().depth() == pit->params().depth()) {
if (par->layout()->isEnvironment()) {
par = TeXEnvironment(buf, bparams, par,
os, texrow);
os, texrow, false);
}
}
- lyxerr[Debug::LATEX] << "TeXDeeper...done " << par << endl;
+ lyxerr[Debug::LATEX] << "TeXDeeper...done " << &*par << endl;
return par;
}
-Paragraph * TeXEnvironment(Buffer const * buf,
- BufferParams const & bparams,
- Paragraph * pit,
- ostream & os, TexRow & texrow)
+ParagraphList::iterator
+TeXEnvironment(Buffer const * buf,
+ BufferParams const & bparams,
+ ParagraphList::iterator pit,
+ ostream & os, TexRow & texrow)
{
- lyxerr[Debug::LATEX] << "TeXEnvironment... " << pit << endl;
+ lyxerr[Debug::LATEX] << "TeXEnvironment... " << &*pit << endl;
LyXLayout_ptr const & style = pit->layout();
<< style->latexparam() << '\n';
texrow.newline();
}
- Paragraph * par = pit;
+ ParagraphList::iterator par = pit;
do {
par = TeXOnePar(buf, bparams, par, os, texrow, false);
- if (par && par->params().depth() > pit->params().depth()) {
+ if (par != buf->paragraphs.end()&& par->params().depth() > pit->params().depth()) {
if (par->layout()->isParagraph()) {
// Thinko!
}
par = TeXDeeper(buf, bparams, par, os, texrow);
}
- } while (par
+ } while (par != buf->paragraphs.end()
&& par->layout() == pit->layout()
&& par->params().depth() == pit->params().depth()
&& par->params().leftIndent() == pit->params().leftIndent());
texrow.newline();
}
- lyxerr[Debug::LATEX] << "TeXEnvironment...done " << par << endl;
+ lyxerr[Debug::LATEX] << "TeXEnvironment...done " << &*par << endl;
return par; // ale970302
}
} // end namespace
-Paragraph * TeXOnePar(Buffer const * buf,
- BufferParams const & bparams,
- Paragraph * pit,
- ostream & os, TexRow & texrow,
- bool moving_arg)
+ParagraphList::iterator
+TeXOnePar(Buffer const * buf,
+ BufferParams const & bparams,
+ ParagraphList::iterator pit,
+ ostream & os, TexRow & texrow,
+ bool moving_arg)
{
- lyxerr[Debug::LATEX] << "TeXOnePar... " << pit << endl;
+ lyxerr[Debug::LATEX] << "TeXOnePar... " << &*pit << endl;
Inset const * in = pit->inInset();
bool further_blank_line = false;
LyXLayout_ptr style;
}
if (!pit->params().spacing().isDefault()
- && (!pit->previous() || !pit->previous()->hasSameLayout(pit))) {
+ && (!pit->previous() || !pit->previous()->hasSameLayout(&*pit))) {
os << pit->params().spacing().writeEnvirBegin() << '\n';
texrow.newline();
}
}
if (!pit->params().spacing().isDefault()
- && (!pit->next() || !pit->next()->hasSameLayout(pit))) {
+ && (!pit->next() || !pit->next()->hasSameLayout(&*pit))) {
os << pit->params().spacing().writeEnvirEnd() << '\n';
texrow.newline();
}
}
lyxerr[Debug::LATEX] << "TeXOnePar...done " << pit->next() << endl;
- return pit->next();
+ return ++pit;
}