diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 04da892..0a0ec6e 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Mar 15
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Mar 18
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,22 +30,21 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-"gq" should always leave the cursor after the formatted text, also when using
-'formatprg'.
+Fix for executable new file also in 6.3.
 
-More commands like ":argadd" that should not have COUNT?
+Installing manual pages: FreeBSD includes encoding "it.ISO8859-1".  Install in
+"it" and "it.ISO8859-1"?
+Russian manual needs to be in UTF-8 for RedHat, KOI8-R for Gentoo.
+UTF-8 files from Ragosin (18 March).
 
 - Added "undercurl" highlight attribute.  Based on a patch from Marcin Dalecki.
   Docs for "guisp=Red"
-  Should add another byte for attributes, 200 types is not enough.
-  Implement "undercurl" for printing.
+  Added another byte for attributes, 200 types is not enough.
 
 Mac unicode patch (Da Woon Jung):
 - selecting proportional font breaks display
 - UTF-8 text causes display problems.  Font replacement causes this.
 
-Changes to mode bits in mch_open() also in Vim 6.3? (Bjoern Voigt)
-
 autoload:
 - Add a Vim script in $VIMRUNTIME/tools that takes a file with a list of
   script names and a help file and produces a script that can be sourced to
@@ -66,6 +65,7 @@
 PLANNED FOR VERSION 7.0:
 
 -   Add SPELLCHECKER, with easy to add support for many languages.
+    - Highlighting: SpellBad, SpellRare, SpellDialect
     - Need wordlists for many languages; "language pack"
     - Commands required:
 	enable/disable spellchecking: 'spell' option (local to win)
@@ -74,7 +74,8 @@
 	add word to private dict: wrong and OK (in popup menu for evim)
 	    :spell good <word>	    zg
 	    :spell wrong <word>	    zw
-    - Highlighting: SpellBad, SpellRare, SpellDialect
+	[s  move to previous spell error  [S also rare word
+	]s  move to next spell error      ]S also rare word
     - "engspchk" from Charles Campbell is a good starting point.
     - Do not use an external program like ispell or aspell: too slow and
       doesn't work everywhere.
@@ -217,6 +218,8 @@
 -   In a :s command multi-byte characters should also be upper/lower cased
     with \u, \U, etc.
 
+Adjust src/main.aap for installing manpages like in Makefile.
+
 Support ":set syntax=cpp.doxygen"?  Suggested patch by Michael Geddes (9 Aug
 2004).  Should also work for 'filetype'.
 
@@ -1366,6 +1369,7 @@
 
 
 Printing:
+7   Implement "undercurl" for printing.
 -   Add "page width" to wrap long lines.
 -   Win32: use a font dialog for setting 'printfont'.  Can reuse the code for
     the 'guifont' dialog, put the common code in a separate function.
@@ -2620,6 +2624,8 @@
     "g?" is already used for rot13.
 8   Add a mechanism for recursiveness: "\(([^()]*\@@[^()]*)\)\@r".  \@@ stands
     for "go recursive here" and \@r marks the recursive atom.
+8   Add an item for a big character range, so that one can search for a
+    chinese character: \z[234-1234]  or \z[XX-YY] or \z[0x23-0x234].
 7   Add an item stack to allow matching ().  One side is "push X on
     the stack if previous atom matched".  Other side is "match with top of
     stack, pop it when it matches".  Use "\@pX" and "\@m"?
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index ec5a9c9..d8ac666 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Mar 15
+*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Mar 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -580,6 +580,9 @@
 the two forms that xterm can send their codes in and still handle all possible
 modifiers.
 
+getwinvar() now also works to obtain a buffer-local option from the specified
+window.
+
 ==============================================================================
 COMPILE TIME CHANGES					*compile-changes-7*
 
@@ -950,9 +953,6 @@
 Diff mode failed when $DIFF_OPTIONS was set in the environment.  Unset it
 before invoking "diff".
 
-When renaming a file is done by making a copy (accross file systems), set the
-permissions and ACL of the copy to those of the original file.
-
 Completion didn't work after ":argdo", ":windo" and ":bufdo".  Also for ":set
 &l:opt" and ":set &g:opt". (Peter Winters)
 
@@ -966,8 +966,25 @@
 character, let it put K_CURSORHOLD in the input buffer.
 
 Removed the "COUNT" flag from ":argadd", to avoid ":argadd 1*" to be used like
-":1argadd *".
+":1argadd *".  Same for ":argdelete" and ":argedit".
 
 Avoid that $LANG is used for the menus when LC_MESSAGES is "en_US".
 
+Added backslashes before dashes in the vim.1 manual page to make the appear as
+real dashes. (Pierr Habouzit)
+
+Where "gq" left the cursor depended on the value of 'formatprg'.  Now "gq"
+always leaves the cursor at the last line of the formatted text.
+
+When editing a compressed file, such as "changelog.Debian.gz" file, filetype
+detection may try to check the contents of the file while it's still
+compressed.  Skip setting 'filetype' for compressed files until they have been
+decompressed.  Required for patterns that end in a "*".
+
+Starting with an argument "+cmd" or "-S script" causes the cursor the be moved
+to the first line.  That breaks a BufReadPost autocommand that uses g`".
+Don't move the cursor if it's somewhere past the first line.
+
+"gg=G" while 'modifiable' is off was uninterruptable.
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/xxd.man b/runtime/doc/xxd.man
index 00d75da..894dfea 100644
--- a/runtime/doc/xxd.man
+++ b/runtime/doc/xxd.man
@@ -82,17 +82,17 @@
               allowed anywhere.
 
        -seek offset
-              When  used  after  -r : revert with <offset> added to file posi-
-              tions found in hexdump.
+              When used after -r: revert with <offset> added to file positions
+              found in hexdump.
 
        -s [+][-]seek
-              start at <seek> bytes abs. (or rel.) infile offset.  + indicates
-              that  the  seek  is  relative to the current stdin file position
-              (meaningless when not reading from stdin).  - indicates that the
-              seek  should  be  that many characters from the end of the input
-              (or if combined with
-               + : before  the  current  stdin  file  position).   Without  -s
-              option, xxd starts at the current file position.
+              start at <seek> bytes abs. (or rel.) infile offset.   +  fRindi-
+              cates  that the seek is relative to the current stdin file posi-
+              tion (meaningless when not reading  from  stdin).   -  indicates
+              that the seek should be that many characters from the end of the
+              input (or if combined with +:  before  the  current  stdin  file
+              position).   Without  -s  option, xxd starts at the current file
+              position.
 
        -u     use upper case hex letters. Default is lower case.
 
@@ -101,20 +101,20 @@
 
 CAVEATS
        xxd -r has some builtin magic while evaluating line number information.
-       If the output file is seekable, then the linenumbers at  the  start  of
-       each  hexdump  line may be out of order, lines may be missing, or over-
-       lapping. In these cases xxd will lseek(2) to the next position. If  the
-       output  file  is  not  seekable,  only  gaps are allowed, which will be
+       If  the  output  file is seekable, then the linenumbers at the start of
+       each hexdump line may be out of order, lines may be missing,  or  over-
+       lapping.  In these cases xxd will lseek(2) to the next position. If the
+       output file is not seekable, only  gaps  are  allowed,  which  will  be
        filled by null-bytes.
 
        xxd -r never generates parse errors. Garbage is silently skipped.
 
-       When editing hexdumps, please note that xxd -r skips everything on  the
+       When  editing hexdumps, please note that xxd -r skips everything on the
        input line after reading enough columns of hexadecimal data (see option
-       -c). This also means, that changes to the printable ascii  (or  ebcdic)
-       columns  are  always  ignored.  Reverting a plain (or postscript) style
-       hexdump with xxd -r -p does not depend on the correct  number  of  col-
-       umns.  Here  anything  that  looks  like a pair of hex-digits is inter-
+       -c).  This  also means, that changes to the printable ascii (or ebcdic)
+       columns are always ignored. Reverting a  plain  (or  postscript)  style
+       hexdump  with  xxd  -r -p does not depend on the correct number of col-
+       umns. Here anything that looks like a  pair  of  hex-digits  is  inter-
        preted.
 
        Note the difference between
@@ -122,28 +122,28 @@
        and
        % xxd -i < file
 
-       xxd -s +seek may be different from xxd -s seek , as lseek(2) is used to
+       xxd  -s +seek may be different from xxd -s seek, as lseek(2) is used to
        "rewind" input.  A '+' makes a difference if the input source is stdin,
-       and if stdin's file position is not at the start of  the  file  by  the
-       time  xxd  is  started and given its input.  The following examples may
+       and  if  stdin's  file  position is not at the start of the file by the
+       time xxd is started and given its input.  The  following  examples  may
        help to clarify (or further confuse!)...
 
-       Rewind stdin before reading; needed because the `cat' has already  read
+       Rewind  stdin before reading; needed because the `cat' has already read
        to the end of stdin.
        % sh -c 'cat > plain_copy; xxd -s 0 > hex_copy' < file
 
-       Hexdump  from  file  position  0x480 (=1024+128) onwards.  The `+' sign
+       Hexdump from file position 0x480 (=1024+128)  onwards.   The  `+'  sign
        means "relative to the current position", thus the `128' adds to the 1k
        where dd left off.
-       %  sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet'
+       % sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +128 >  hex_snippet'
        < file
 
        Hexdump from file position 0x100 ( = 1024-768) on.
        % sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet'
        < file
 
-       However,  this is a rare situation and the use of `+' is rarely needed.
-       The author prefers to monitor the  effect  of  xxd  with  strace(1)  or
+       However, this is a rare situation and the use of `+' is rarely  needed.
+       The  author  prefers  to  monitor  the  effect of xxd with strace(1) or
        truss(1), whenever -s is used.
 
 EXAMPLES
@@ -187,7 +187,7 @@
        % xxd -s 0x36 -l 13 -c 13 xxd.1
        0000036: 3235 7468 204d 6179 2031 3939 36  25th May 1996
 
-       Create  a  65537 byte file with all bytes 0x00, except for the last one
+       Create a 65537 byte file with all bytes 0x00, except for the  last  one
        which is 'A' (hex 0x41).
        % echo '010000: 41' | xxd -r > file
 
@@ -197,7 +197,7 @@
        *
        000fffc: 0000 0000 40                   ....A
 
-       Create a 1 byte file containing a single  'A'  character.   The  number
+       Create  a  1  byte  file containing a single 'A' character.  The number
        after '-r -s' adds to the linenumbers found in the file; in effect, the
        leading bytes are suppressed.
        % echo '010000: 41' | xxd -r -s -0x10000 > file
@@ -239,7 +239,7 @@
        uuencode(1), uudecode(1), patch(1)
 
 WARNINGS
-       The  tools  weirdness matches its creators brain.  Use entirely at your
+       The tools weirdness matches its creators brain.  Use entirely  at  your
        own risk. Copy files. Trace it. Become a wizard.
 
 VERSION
