From: Patrick Lam (plam@plam.lcs.mit.edu)
Date: Wed Apr 24 2002 - 02:03:12 EDT
On Tue, Apr 23, 2002 at 10:40:48PM -0700, Paul Rohr wrote:
> Oh no. Please don't tell me "infinite undo" is broken. That's the first,
> most important AbiWord feature that Jeff and I got working back in the 0.1.x
> days.
I broke it earlier and fixed it now.
It turns out that no one except for File | Revert to Saved was using
the undo method in pd_Document with an argument that was not 1, so
that this behaviour was broken. I made it work almost properly, by
counting how many undos the piece table report, and looping until the
piece table fails to undo, or until the proper number of undoes has
been done.
But if the undo routine did more undos than requested, then the code,
as I originally fixed it, would get a negative number in a UT_uint32;
it therefore undoes the whole document away (because it's trying to do
4 billion undoes). This is a pretty subtle issue and just a quick
test won't reveal the problem. We need regression tests.
I have committed code to use UT_sint32 instead, but that's not in
1.0.0, so that kind of sucks.
pat
This archive was generated by hypermail 2.1.4 : Wed Apr 24 2002 - 02:04:40 EDT