Libundo is a simple, easy-to-use library which
manages recording and playback of undo/redo
information for application developers. It is
designed to be simple to plug in to existing
applications and require only a minimal amount of
support code to be written to support multi-level
undo/redo.