On Fri, 2006-05-19 at 00:17 +0200, Jean-Marc Lasgouttes wrote:
> >>>>> "Martin" == Martin Vermeer <[EMAIL PROTECTED]> writes:
> 
> Martin> This appears to fix the bug in my limited testing (I couldn't
> Martin> reproduce the bug in the test file, only in the enum example)
> 
> Yes, it looks reasonable and it works. Please apply to trunk and
> branch.
> 
> Now the next problem (with or without the patch). Load attached file,
> select part of 1st par and part of 2nd, Delete ==> crash!

Jean-Marc, I owe you a beer for this one. Or several. Non-virtual ones.

See patch (and you will understand why).

- Martin


Index: paragraph_pimpl.C
===================================================================
--- paragraph_pimpl.C	(revision 13826)
+++ paragraph_pimpl.C	(working copy)
@@ -371,10 +371,10 @@
 
 	if (tracking()) {
 		Change::Type changetype(changes_->lookup(pos).type);
-		changes_->record(Change(Change::DELETED), pos);
 
 		// only allow the actual removal if it was /new/ text
 		if (changetype != Change::INSERTED) {
+			changes_->record(Change(Change::DELETED), pos);
 			if (pos < size() && owner_->isInset(pos))
 				owner_->getInset(pos)->markErased(true);
 			return false;

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to