bool operator==(ParagraphList::iterator const & i1,
- ParagraphList::iterator const & i2)
+ ParagraphList::iterator const & i2)
{
return &(*const_cast<ParagraphList::iterator&>(i1))
== &(*const_cast<ParagraphList::iterator&>(i2));
bool operator!=(ParagraphList::iterator const & i1,
- ParagraphList::iterator const & i2)
+ ParagraphList::iterator const & i2)
{
return !(i1 == i2);
}
{}
+ParagraphList::iterator
+ParagraphList::insert(ParagraphList::iterator it, Paragraph * par)
+{
+ if (it != end()) {
+ Paragraph * prev = it->previous();
+ par->next(&*it);
+ par->previous(prev);
+ prev->next(par);
+ it->previous(par);
+ } else {
+ // Find last par.
+ Paragraph * last = parlist;
+ while (last->next())
+ last = last->next();
+ last->next(par);
+ par->previous(last);
+ }
+ return iterator(par);
+}
+
+
void ParagraphList::clear()
{
while (parlist) {
}
-ParagraphList::iterator ParagraphList::begin()
+void ParagraphList::erase(ParagraphList::iterator it)
+{
+ Paragraph * prev = it->previous();
+ Paragraph * next = it->next();
+
+ if (prev)
+ prev->next(next);
+ if (next)
+ next->previous(prev);
+
+ delete &*it;
+}
+
+
+ParagraphList::iterator ParagraphList::begin()
{
return iterator(parlist);
}