#include "LaTeXFeatures.h"
#include "Layout.h"
#include "OutputParams.h"
+#include "output_docbook.h"
#include "ParIterator.h"
#include "TextClass.h"
#include "TocBackend.h"
}
-void InsetFoot::updateBuffer(ParIterator const & it, UpdateType utype)
+void InsetFoot::updateBuffer(ParIterator const & it, UpdateType utype, bool const deleted)
{
BufferParams const & bp = buffer().masterBuffer()->params();
Counters & cnts = bp.documentClass().counters();
docstring const & count = il.counter();
custom_label_ = translateIfPossible(il.labelstring());
- Paragraph const & par = it.paragraph();
- if (!par.isDeleted(it.pos())) {
- if (cnts.hasCounter(count))
- cnts.step(count, utype);
+ int val = cnts.value(count);
+ if (cnts.hasCounter(count)) {
+ cnts.step(count, utype);
custom_label_ += ' ' + cnts.theCounter(count, lang->code());
+ if (deleted)
+ // un-step after deleted counter
+ cnts.set(count, val);
} else
custom_label_ += ' ' + from_ascii("#");
setLabel(custom_label_);
- InsetCollapsible::updateBuffer(it, utype);
+ InsetCollapsible::updateBuffer(it, utype, deleted);
if (utype == OutputUpdate)
cnts.restoreLastCounter();
}
}
-int InsetFoot::docbook(odocstream & os, OutputParams const & runparams) const
+void InsetFoot::docbook(XMLStream & xs, OutputParams const & runparams) const
{
- os << "<footnote>";
- int const i = InsetText::docbook(os, runparams);
- os << "</footnote>";
-
- return i;
+ OutputParams rp = runparams;
+ rp.docbook_force_pars = true;
+ rp.docbook_in_par = false;
+ InsetText::docbook(xs, rp);
}