redo with crude cursor position and corrections to undo part