Included patch for persistent undo.  Lots of changes and added test.
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index 06a7662..0ace4cc 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -1032,6 +1032,10 @@
   call append("$", "cmdwinheight\theight of the command-line window")
   call <SID>OptionG("cwh", &cwh)
 endif
+call append("$", "undofile\tautomatically save and restore undo history")
+call <SID>BinOptionG("udf", &udf)
+call append("$", "undodir\tlist of directories for undo files")
+call <SID>OptionG("udir", &udir)
 
 
 call <SID>Header("executing external commands")