Hi,<br><br>i'm the author of the (bad ;)) undo/apply patch kindly
posted by Leslie. Just few words about that patch... i'm the author of
QTParted, inside that software i used the same way for made Undo/Apply,
however i think that with Parted 2.0 and the decision of move inside
util.[hc] api the &quot;macro partitioning function&quot; it is time to study how
to integrate this stuff inside libparted...<br><br>The
main reason is that when the &quot;macro function&quot; will be inside util.* it
will be much difficult to implement in a GUI all this without rewrite a
lot of code of libparted... and this is evil! ;)
<br><br>With this patch i want just show you that with very few code
it is possible to port undo/apply inside libparted (of course i'm
talking of libparted 2.0, 'cause i will break binary compatibility of
some structures like PedDevice)... the trick is to make a &quot;list of
PedDisk&quot;, after every operation i will made a clone of the Disk... just
to save every &quot;state&quot; first and after an operation. When you undo i
just delete the last disk... when you apply... i will commit the
operation saved in the list.
<br><br>In that patch i wrote the code only for &quot;rm&quot; and &quot;mkpart&quot;,
inside QTParted i wrote the code also for &quot;resize&quot;, &quot;move&quot; and other
common operation... but just to show you how it work i patched only rm
and mkpart (so in my patched version the other function of parted are
broken)...<br><br>You can play with rm and mkpart, undo and the changes will be committed only when you give &quot;apply&quot; command in parted...
<br><br><br>Of course the list of operation is not well implemented, my
implementation was done in a hurry, but if you think that it is
interesting i will join your team and i'll start to work about this
stuff...<br><br>That's all,
<br><br>regards,<br><span><br>Vanni Brutto</span>