Included patch for persistent undo.  Lots of changes and added test.
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 1ef885a..f41e0f4 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -773,6 +773,8 @@
 			RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN),
 EX(CMD_rubyfile,	"rubyfile",	ex_rubyfile,
 			RANGE|FILE1|NEEDARG|CMDWIN),
+EX(CMD_rundo,		"rundo",	ex_rundo,
+			NEEDARG|EXTRA|XFILE),
 EX(CMD_rviminfo,	"rviminfo",	ex_viminfo,
 			BANG|FILE1|TRLBAR|CMDWIN),
 EX(CMD_substitute,	"substitute",	do_sub,
@@ -1061,6 +1063,8 @@
 			BANG|FILE1|ARGOPT|DFLALL|TRLBAR),
 EX(CMD_wsverb,		"wsverb",	ex_wsverb,
 			EXTRA|NOTADR|NEEDARG),
+EX(CMD_wundo,		"wundo",	ex_wundo,
+			BANG|NEEDARG|EXTRA|XFILE),
 EX(CMD_wviminfo,	"wviminfo",	ex_viminfo,
 			BANG|FILE1|TRLBAR|CMDWIN),
 EX(CMD_xit,		"xit",		ex_exit,