aaaa ! bbbb @ cccc #
1. when cursor at position "#", call `undo', cursor jump to "@"
2. when cursor at position "@", call `undo-redo', text "cccc" restore,
but cursor still remain in "@", don't move to "#".
my workaround fow now:
in function primitive-undo :
change L3624 to : `(goto-char (+ pos (length string)))`