InsetIterator const i_end = inset_iterator_end(in);
for (InsetIterator it = inset_iterator_begin(in); it != i_end; ++it) {
- // Insets store buffer references so need updating.
- // FIXME This code can probably be deleted. The insets will get copied
- // when they are pasted, at which point their buffer_ members will get
- // set back to zero.
+ // Even though this will also be done later, it has to be done here
+ // since, e.g., InsetLabel::updateCommand() is going to try to access
+ // the buffer() member.
it->setBuffer(const_cast<Buffer &>(buffer));
-
switch (it->lyxCode()) {
-
+
case LABEL_CODE: {
// check for duplicates
InsetCommand & lab = static_cast<InsetCommand &>(*it);
pit = last_paste;
pos = pars[last_paste].size();
+ // FIXME Should we do it here, or should we let updateLabels() do it?
// Set paragraph buffers. It's important to do this right away
// before something calls Inset::buffer() and causes a crash.
for (pit_type p = startpit; p <= pit; ++p)
pars[p].setBuffer(const_cast<Buffer &>(buffer));
-
// Join (conditionally) last pasted paragraph with next one, i.e.,
// the tail of the spliced document paragraph
if (!empty && last_paste + 1 != pit_type(pars.size())) {