diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 13016f6..a1c85f2 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0.  Last change: 2006 May 07
+*todo.txt*      For Vim version 7.1a.  Last change: 2007 May 05
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,9 +30,476 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Patch to make virtcol([123, '$']) do the right thing. (Michael Schaap)
+
+Insert mode completion: CTRL-N and CTRL-P work differently and they both don't
+work as expected. (Bernhard Walle, 2007 Feb 27)
+
+glob() doesn't work correctly with single quotes and 'shell' set to /bin/sh.
+(Adri Verhoef, Charles Campbell 2007 Mar 26)
+
+Splitting quickfix window messes up window layout. (Marius Gedminas, 2007 Apr
+25)
+
+Replace ccomplete.vim by cppcomplete.vim from www.vim.org?  script 1520
+(Martin Stubenschrott)
+    ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
+
+Making the German sharp s uppercase doesn't work properly: one character less
+is uppercased in "gUe".
+Also: latin2 has the same character but it isn't uppercased there.
+
+Mac: After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
+changed or the window is resized.
+
+Mac: Patch for Mac GUI tabline. (Nicolas Weber, 2006 Jul 18, Update 2007 Feb)
+    New update v6 ~/tmp/guitab.v6.diff (Kyle Wheeler)
+
+When 'virtualedit' is set a "p" of a block just past the end of the line
+inserts before the cursor. (Engelke)
+
+Using Aap to build Vim: add remarks about how to set personal preferences.
+Example on http://www.calmar.ws/tmp/aap.html
+
+GTK: 'bsdir' doesn't work.  Sometimes get a "gtk critical error".
+Moved some code to append file name to further down in gui_gtk.c
+gui_mch_browse(), but "last" value of 'bsdir' still doesn't work.
+
+C syntax: "#define x {"  The macro should terminate at the end of the line,
+not continue in the next line. (Kelvin Lee, 2006 May 24)
+
+C syntax: {} inside () causes following {} to be highlighted as error.
+(Michalis Giannakidis, 2006 Jun 1)
+
+Gnome improvements: Edward Catmur, 2007 Jan 7
+    Also use Save/Discard for other GUIs
+
+New PHP syntax file, use it? (Peter Hodge)
+
+'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
+Likonen, March 19)
+
+Syntax highlighting wrong for transparent region. (Doug Kearns, 2007 Feb 26)
+
+More AmigaOS4 patches. (Peter Bengtsson, Nov 9)
+
+Add v:searchforward variable.  Patch by Yakov Lerner, 2006 Nov 18.
+
+Redraw problem in loop. (Yakov Lerner, 2006 Sep 7)
+
+Add option settings to help ftplugin. (David Eggum, 2006 Dec 18)
+
+Use new dutch wordlist for spelling?  http://www.opentaal.org/
+See remarks from Adri, 2007 Feb 9.
+
+When opening quickfix window, disable spell checking?
+
+Win32: When 'encoding' is "latin1" 'ignorecase' doesn't work for characters
+with umlaut. (Joachim Hofmann)  toupper_tab[] and tolower_tab[] are not filled
+properly?
+
+Completion: Scanning for tags doesn't check for typed key now and then?
+Hangs for about 5 seconds.  Appears to be caused by finding include files with
+"foo/**" in 'path'.  (Kalisiak, 2006 July 15)
+
+Completion: When 'completeopt' has "longest" and there is one match the
+message is "back at original" and typing a char doesn't leave completion mode.
+(Igor Prischepoff, 2006 Oct 5)
+
+Completion: When using CTRL-X O and there is only "struct." before the cursor,
+typing one char to reduce the matches, then BS completion stops.  Should keep
+completion if still no less than what we started with.
+
+Completion: don't stop completion when typing a space when completing full
+lines?  Also when completing file names?  Only stop completion when there are
+no matches?
+After using BS completion only stops when typing a space.  Many people want to
+stop at non-word characters, e.g., '('.  Add an option for this?  Or check
+vim_iswordc() before calling ins_compl_addleader()?
+
+searchpos() doesn't use match under cursor at start of line. (Viktor
+Kojouharov, 2006 Nov 16)
+
+When FEAT_BYTEOFF is defined but FEAT_NETBEANS_INTG is not compiling fails.
+Add FEAT_BYTEOFF to the check at line 1180 in feature.h
+
+Color for cUserLabel should differ from case label, so that a mistake in a
+switch list is noticed:
+    switch (i)
+    {
+    case 1:
+    foobar:
+    }
+
+":s" command removes combining characters. (Ron Aaron, 2006 May 17, 2006 Dec 7)
+
+Look at http://www.gtk-server.org/ .  It has a Vim script implementation.
+
+Changes for Win32 makefile. (Mike Williams, 2007 Jan 22, Alexei Alexandrov,
+2007 Feb 8)
+
+Patch for Win32 clipboard under Cygwin. (Frodak Baksik, Feb 15)
+    Sutcliffe says it works well.
+
+Win32: Patch for convert_filterW(). (Taro Muraoka, 2007 Mar 2)
+
+Win32: XPM support only works with path without spaces.  Patch by Mathias
+Michaelis, 2006 Jun 9.  Another patch for more path names, 2006 May 31.
+New version: http://members.tcnet.ch/michaelis/vim/patches.zip (also for other
+patches by Mathias, see mail Feb 22)
+
+Win32: compiling with normal features and OLE fails.  Patch by Mathias
+Michaelis, 2006 Jun 4.
+
+Win32: echo doesn't work for gvim.exe.mnf.  Use inline file.  Patch by Mathias
+Michaelis.  http://groups.yahoo.com/group/vimdev/message/43765
+Patch that includes this and does more by George Reilly, 2007 Feb 12
+
+Win16: include patches to make Win16 version work. (Vince Negri, 2006 May 22)
+
+Win32: after "[I" showing matches, scroll wheel messes up screen. (Tsakiridis,
+2007 Feb 18)
+
+Win32: using CTRL-S in Insert mode doesn't remove the "+" from the tab pages
+label.  (Tsakiridis, 2007 Feb 18)
+
+Win32: remote editing doesn't work when the current directory name contains
+"[]". (Ivan Tishchenko, 2007 March 1)
+
+Win64: diff.exe crashes on Win64. (Julianne Bailey, 2006 Dec 12)
+Build another diff.exe somehow?
+
+Win64: Seek error in swap file for a very big file (3 Gbyte).  Check storing
+pointer in long and seek offset in 64 bit var.
+
+When doing "gvim --remote-tab foo" while gvim is minimized the tab pages line
+only shows the current label, not the others.
+
+Problem finding swap file for recovery. (Gautam Iyer, 2006 May 16)
+
+When setting 'keymap' twice the b:keymap_name variable isn't set. (Milan
+Berta, 2007 Mar 9)  Has something to do with 'iminsert'.
+
+Problem with CursorHoldI?  (Max Dyckhoff, 2006 Nov 10)
+
+UTF-8: mapping a multi-byte key where the second byte is 0x80 doesn't appear
+to work. (Tony Mechelynck, 2007 March 2)
+
+The str2special() function doesn't handle multi-byte characters properly.
+Patch from Vladimir Vichniakov, 2007 Apr 24.
+find_special_key() also has this problem.
+
+In debug mode, using CTRL-R = to evaluate a function causes stepping through
+the function. (Hari Krishna Dara, 2006 Jun 28)
+
+":let &shiftwidth = 'asdf'" doesn't produce an error message.
+
+C++ indenting wrong with "=". (James Kanze, 2007 Jan 26)
+
+"zug" reports wrong file. problem with Namebuff? (Lawrence Kesteloot, 2006 Sep
+10)
+
+":lockvar" should use copyID to avoid endless loop.
+
+Gvim: dialog for closing Vim should check if Vim is busy writing a file.  Then
+use a different dialog: "busy saving, really quit? yes / no".
+
+Win32: editing remote file d:\a[1]\aa.txt doesn't work. (Liu Yubao, 2006 May
+29)
+
+"zw" doesn't appear to work. (Luis A Florit, 2006 Jun 23, 24)
+
+"dw" in a line with one character deletes the line.  Vi and nvi don't do this.
+Is it intentional or not? (Kjell Arne Rekaa)
+
+Check other interfaces for changing curbuf in a wrong way.  Patch like for
+if_ruby.c.
+
+Spell checking in popup menu: If the only problem is the case of the first
+character, don't offer "ignore" and "add to word list".
+
+":helpgrep" should use the directory from 'helpfile'.
+
+The need_fileinfo flag is messy.  Instead make the message right away and put
+it in keep_msg?
+
+More-prompt is skipped when doing this; (Randall W. Morris, Jun 17)
+    :au
+    <Space>
+    b
+    <Space>
+
+Editing a file remotely that matches 'wildignore' results in a "no match"
+error.  Should only happen when there are wildards, not when giving the file
+name literally, and esp. if there is only one name.
+
+When 'expandtab' is set then a Tab copied for 'copyindent' is expanded to
+spaces, even when 'preserveindent' is set. (Alexei Alexandrov, Mar 7)
+
 Test 61 fails sometimes.  This is a timing problem: "sleep 2" sometimes takes
 longer than 2 seconds.
 
+VMS: while editing a file found in complex, Vim will save file into the first
+directory of the path and not to the original location of the file.
+(Zoltan Arpadffy)
+
+input() completion should not insert a backslash to escape a space in a file
+name?
+
+getpos()/setpos() don't include curswant.  getpos() could return a fifth
+element.  setpos() could accept an optional fifth element.
+
+Ruby completion is insecure.  Can this be fixed?
+
+":confirm w" does give a prompt when 'readonly' is set, but not when the file
+permissions are read-only.  Both can be overruled by ":w!" thus it would be
+logical to get a prompt for both. (Michael Schaap)
+
+When 'backupskip' is set from $TEMP special characters need to be escaped.
+(patch by Grembowietz, 2007 Feb 26, not quite right)
+Another problem is that file_pat_to_reg_pat() doesn't recognize "\\", so "\\(" 
+will be seen as a path separator plus "\(".
+
+":python os.chdir('/tmp')" makes short buffer names invalid. (Xavier de Gaye)
+Check directory and call shorten_fnames()?
+
+aucmd_prepbuf() should also use a window in another tab page.
+
+Substituting an area with a line break with almost the same area does change
+the Visual area.  Can this be fixed? (James Vega, 2006 Sept 15)
+
+Windows installer could add a "open in new tab of existing Vim" menu entry.
+
+:s/e/E/l not only lists but also shows line number.  Is that right?
+(Yakov Lerner, 2006 Jul 27)
+
+GUI: When combining fg en bg make sure they are not equal.
+
+Use different pt_br dictionary for spell checking. (Jackson A. Aquino, 2006
+Jun 5)
+
+Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
+
+When 'bomb' is set or reset the file should be considered modified. (Tony
+Mechelynck)  Handle like 'endofline'.
+
+Add an option to specify the character to use when a double-width character is
+moved to the next line.  Default '>', set to a space to blank it out.  Check
+that char is single width when it's set (compare with 'listchars').
+
+Update main.aap for installing on the Mac.
+
+The generated vim.bat can avoid the loop for NT. (Carl Zmola, 2006 Sep 3)
+
+Session file creation: 'autochdir' causes trouble.  Keep it off until after
+loading all files.
+
+C completion: doesn't work after aa[0]->, where aa is an array of structures.
+(W. de Hoog, 2006 Aug 12)
+
+The spellfile plugin checks for a writable "spell" directory.  A user may have
+a writable runtime directory without a "spell" directory, it could be created
+then.
+
+These two abbreviations don't give the same result:
+	let asdfasdf = "xyz\<Left>"
+	cabbr XXX <C-R>=asdfasdf<CR>
+	cabbr YYY xyz<Left>
+
+Michael Dietrich: maximized gvim sometimes displays output of external command
+partly. (2006 Dec 7)
+
+In FileChangedShell command it's no longer allowed to switch to another
+buffer.  But the changed buffer may differ from the current buffer, how to
+reload it then?
+
+New syntax files for fstab and resolv from Radu Dineiu, David Necas did
+previous version.
+
+For Aap: include a config.arg.example file with hints how to use config.arg.
+
+Linux distributions:
+- Suggest compiling xterm with --enable-tcap-query, so that nr of colors is
+  known to Vim.  88 colors instead of 16 works better.  See ":help
+  xfree-xterm".
+- Suggest including bare "vi" and "vim" with X11, syntax, etc.
+
+Completion menu: For a wrapping line, completing a long file name, only the
+start of the path is shown in the menu.  Should move the menu to the right to
+show more text of the completions.  Shorten the items that don't fit in the
+middle?
+
+When running inside screen it's possible to kill the X server and restart it
+(using pty's the program can keep on running).  Vim dies because it looses the
+connection to the X server.  Can Vim simply quit using the X server instead of
+dying?  Also relevant when running in a console.
+
+Accessing file#var in a function should not need the g: prepended.
+
+When ":cn" moves to an error in the same line the message isn't shortened.
+Only skip shortening for ":cc"?
+
+Win32: The matchparen plugin doesn't update the match when scrolling with the
+mouse wheel. (Ilya Bobir, 2006 Jun 27)
+
+Write "making vim work better" for the docs (mostly pointers): *nice*
+    - sourcing $VIMRUNTIME/vimrc_example.vim
+    - setting 'mouse' to "a"
+    - getting colors in xterm
+    - compiling Vim with X11, GUI, etc.
+
+Problem with ":call" and dictionary function. Hari Krishna Dara, Charles
+Campbell 2006 Jul 06.
+
+Syntax HL error caused by "containedin". (Peter Hodge, 2006 Oct 6)
+
+GTK: When maximizing Vim the result is slightly smaller, the filler border is
+not there, and the "maximize" button is still there.  Clicking it again does
+give a maximized window. (Darren Hiebert)
+Problem is that gui_mch_set_text_area_pos() is invoked to change the text area
+size, which causes the toplevel window to resize.  When doing this while the
+size is already right the filler remains there.
+Detect using the maximize button (GdkWindowState bit
+GDK_WINDOW_STATE_MAXIMIZED) and set it again?
+
+Another resizing problem when setting 'columns' and 'lines' to a very large
+number. (Tony Mechelynck, 2007 Feb 6)
+
+Mutt files are not always recognized.  Change pattern to include
+non-alphanumeric characters. (Gary Johnson, 2006 Jul 25)
+
+Problem with using :redir in user command completion function? (Hari Krishna
+Dara, 2006 June 21)
+
+After starting Vim, using '0 to jump somewhere in a file, ":sp" doesn't center
+the cursor line.  It works OK after some other commands.
+
+Screen redrawing when continuously updating the buffer and resizing the
+terminal. (Yakov Lerner, 2006 Sept 7)
+
+Win32: Is it possible to have both postscript and Win32 printing?
+Does multi-byte printing with ":hardcopy" work?  Add remark in documentation
+about this.
+
+'thesaurus' doesn't work when 'infercase' is set. (Mohsin, 2006 May 30)
+
+There should be something about spell checking in the user manual.
+
+Check: Running Vim in a console and still having connect to the X server for
+copy/paste: is stopping the X server handled gracefully?  Should catch the X
+error and stop using the connection to the server.
+
+Problem with 'cdpath' on MS-Windows when a directory is equal to $HOME. (2006
+Jul 26, Gary Johnson)
+
+In the Netbeans interface add a "vimeval" function, so that the other side can
+check the result of has("patch13").
+
+":py" asks for an argument, ":py asd" then gives the error that ":py" isn't
+implemented.  Should already happen for ":py".
+
+Add command modifier that skips wildcard expansion, so that you don't need to
+put backslashes before special chars, only for white space.
+
+Win32 GUI: confirm() with zero default should not have a choice selected.
+
+Win32: When the GUI tab pages line is displayed Vim jumps from the secondary
+to the primary monitor. (Afton Lewis, 2007 Mar 9)  Old resizing problem?
+
+GTK GUI: When the completion popup menu is used scrolling another window by
+the scrollbar is OK, but using the scroll wheel it behaves line <Enter>.
+
+"cit" used on <foo></foo> deletes <foo>.  Should not delete anything and start
+insertion, like "ci'" does on "". (Michal Bozon)
+
+Allow more than 3 ":match" items.
+
+The magic clipboard format "VimClipboard2" appears in several places.  Should
+be only one.
+
+It's difficult to debug numbered functions (function in a Dictionary).  Print
+the function name before resolving it to a number?
+	let d = {}
+	fun! d.foo()
+	  echo "here"
+	endfun
+	call d.foo(9)
+
+Add a mark for the other end of the Visual area (VIsual pos).  '< and '> are
+only set after Visual moded is ended.
+
+Small problem displaying diff filler line when opening windows with a script.
+(David Luyer, 2007 Mar 1 ~/Mail/oldmail/mool/in.15872 )
+
+When pattern for ":sort" is empty, use last search pattern.  Allows trying out
+the pattern first. (Brian McKee)
+
+Is it allowed that 'backupext' is empty?  Problems when backup is in same dir
+as original file?  If it's OK don't compare with 'patchmode'. (Thierry Closen)
+
+Patch for supporting count before CR in quickfix window. (AOYAMA Shotaro, 2007
+Jan 1)
+
+Patch for adding ":lscscope". (Navdeep Parhar, 2007 Apr 26; update Apr 28)
+
+Patch for improving regexp speed by not freeing memory. (Alexei Alexandrov,
+2007 Feb 6)
+
+xterm should be able to pass focus changes to Vim, so that Vim can check for
+buffers that changed.  Perhaps in misc.c, function selectwindow().
+Xterm 224 supports it!
+
+Omni completion takes the wrong structure for variable arguments. (Bill
+McCarthy, 2007 Feb 18)
+
+When completing from another file that uses a different encoding completion
+text has the wrong encoding.  E.g., when 'encoding' is utf-8 and file is
+latin1.  Example from Gombault Damien, 2007 Mar 24.
+
+Completing ":echohl" argument should include "None". (Ori Avtalion)
+
+
+Vim 7.2:
+-   Search offset doesn't work for multibyte character.  Patch from Yukihiro
+    Nakadaira, 2006 Jul 18.
+    Changes the offset from counting bytes to counting characters.
+-   Rename the tutor files from tutor.gr.* to tutor.el.*.  Greece vs Greek.
+    Make all tutor files available in utf-8.
+-   Remove ! for ":cgetfile" and ":lgetfile". (patch from Yegappan Lakshmanan,
+    2007 Mar 9)
+-   Add blowfish encryption.  Openssl has an implementation.  Also by Paul
+    Kocher (LGPL), close to original.  Mohsin also has some ideas.
+    Take four bytes and turn them into unsigned to avoid byte-order problems.
+    Need to buffer up to 7 bytes to align on 8 byte boundaries.
+-   Rename doc/sql.vim doc/ft_sql.vim.
+-   Change "command-line" to "[Command Line]" for the command line buffer
+    name in ex_window().
+-   Move including fcntl.h to vim.h, before O_NOFOLLOW, and remove it from all
+    .c files.
+-   ":{range}source": source the lines from the file.
+	You can already yank lines and use :@" to execute them.
+	Most of do_source() would not be used, need a new function.
+	It's easy when not doing breakpoints or profiling.
+
+
+Patches:
+-   Add 'cscopeignorecase' option. (Liang Wenzhi, 2006 Sept 3)
+-   Argument for feedkeys() to prepend to typeahead (Yakov Lerner, 2006 Oct
+    21)
+-   Load intl.dll too, not only libintl.dll. (Mike Williams, 2006 May 9, docs
+    patch May 10)
+-   Extra argument to strtrans() to translate special keys to their name (Eric
+    Arnold, 2006 May 22)
+-   'threglookexp' option: only match with first word in thesaurus file.
+    (Jakson A. Aquino, 2006 Jun 14)
+-   Mac: indicate whether a buffer was modified. (Nicolas Weber, 2006 Jun 30)
+-   Allow negative 'nrwidth' for left aligning. (Nathan Laredo, 2006 Aug 16)
+-   ml_append_string(): efficiently append to an existing line. (Brad
+    Beveridge, 2006 Aug 26)  Use in some situations, e.g., when pasting a
+    character at a time?
+-   gettabvar() and settabvar() functions. (Yegappan Lakshmanan, 2006 Sep 8)
+-   recognize hex numbers better. (Mark Manning, 2006 Sep 13)
+
 
 Awaiting updated patches:
 9   Mac unicode patch (Da Woon Jung, Eckehard Berns):
@@ -44,6 +511,8 @@
     - With 'nopaste' pasting is wrong, with 'paste' Command-V doesn't work.
       (Alan Schmitt)
     - remove 'macatsui' option when this has been fixed.
+    - when 'macatsui' is off should we always convert to "macroman" and ignore
+      'termencoding'?
 9   HTML indenting can be slow.  Caused by using searchpair().  Can search()
     be used instead?
 8   Win32: Add minidump generation. (George Reilly, 2006 Apr 24)
@@ -89,6 +558,8 @@
 			    (2003 May 13)
     raisewin()		raise gvim window (see HierAssist patch for
 			    Tcl implementation ~/vim/HierAssist/ )
+    taglist()		add argument to specify maximum number of matches.
+			useful for interactive things or completion.
 7   Make globpath() also work with upwards search. (Brian Medley)
 7   Add patch from Benoit Cerrina to integrate Vim and Perl functions
     better.  Now also works for Ruby (2001 Nov 10)
@@ -211,6 +682,8 @@
 Win32 GUI known bugs:
 -   Win32: tearoff menu window should have a scrollbar when it's taller than
     the screen.
+8   non-ASCII font names don't work.  Need to convert from 'encoding' and use
+    the wide functions.
 8   On Windows 98 the unicows library is needed to support functions with UCS2
     file names.  Can we load unicows.dll dynamically?
 8   When the primary monitor is below or right of the secondary monitor and
@@ -252,7 +725,6 @@
     mouse position.  Catch WM_MOUSEACTIVATE. (Luevelsmeyer)
 8   Win32: When mouse is hidden and in the toolbar, moving it won't make it
     appear. (Sami Salonen)
-8   Windows NT: writing to aux.* makes Vim hang. (Acevedo)
 8   Win32 GUI: With maximized window, ":set go-=r" doesn't use the space that
     comes available. (Poucet)  It works OK on Win 98 but doesn't work on Win
     NT 4.0.  Leaves a grey area where the scrollbar was.  ":set go+=r" also
@@ -569,12 +1041,16 @@
 8   Inputting Unicode characters does not work in the terminal.  They appear
     to arrive as upper and lower bytes. (David Brown, 2004 April 17)
 8   Typing Unicode characters doesn't work at all in the GUI.
+8   inputdialog() doesn't resize when giving more text lines. (David Fishburn,
+    2006 Sept 28)
 9   Problems in Carbon version for OS X: (Benji Fisher)
     - keyboard shortcuts in the menus get lost.
 8   The Vim/About menu doesn't work.
 8   ":gui" doesn't fork.  Enabling the code in gui.c to fork causes a SEGV.
 8   Define vim_mkdir() for Macintosh.
 8   Define mch_writable() for Macintosh.
+8   Some file systems are case-sensitive, some are not.  Turn
+    CASE_INSENSITIVE_FILENAME into an option, at least for completion.
 9   When DiskLock is running, using a swap file causes a crash.  Appears to be
     a problem with writing a file that starts with a dot. (Giacalone)
 9   On G3 Mac, OS version 8, control strip causes characters messed up when
@@ -587,6 +1063,10 @@
 
 
 "Small" problems:
+-   When using e_secure in do_one_cmd() mention the command being executed,
+    otherwise it's not clear where it comes from.
+8   When disabling FEAT_CMDL_COMPL compilation fails.  Would need to avoid
+    using parse_compl_arg() in eval.c and uc_scan_attr().
 9   For Turkish vim_tolower() and vim_toupper() also need to use utf_
     functions for characters below 0x80. (Sertacyildiz)
 9   When the last edited file is a help file, using '0 in a new Vim doesn't
@@ -606,11 +1086,10 @@
 8   When redirecting and using ":silent" the current column for displaying and
     redirection can be different.  Use a separate variable to hold the column
     for redirection.
-7   There is no way to change directory and go back without changing the local
-    and/or global directory.  Add a way to find out if the current window uses
-    a local directory.  Add cdcmd() that returns ":cd" or ":lcd"?
 7   The messages for "vim --help" and "vim --version" don't use
     'termencoding'.
+-   Could the hit-enter prompt be avoided when a message only overlaps the
+    'showcmd' area?  Clear that area when the next cmd is typed.
 8   When 'scrollbind' is set, a window won't scroll horizontally if the cursor
     line is too short.  Add a word in 'scrollopt' to allow moving the cursor
     to longer line that is visible.  A similar thing is done for the GUI when
@@ -629,6 +1108,7 @@
 8   When doing Insert mode completion a mapping cannot recursively call
     edit(), because the completion information is global.  Put everything in
     an allocated structure?
+6   Python: ":py raw_input('prompt')" doesn't work. (Manu Hack)
 8   Command line completion: buffers "foo.txt" and "../b/foo.txt", completing
     ":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
 7   Output for ":scriptnames" and ":breaklist" should shorten the file names:
@@ -650,9 +1130,6 @@
 7   "[p" doesn't work in Visual mode. (David Brown)
 7   The Cygwin and MingW makefiles define "PC", but it's not used anywhere.
     Remove? (Dan Sharp)
-9   The argument <f-args> of a user command doesn't handle backslashes
-    properly.  "Cmd \ e" is one argument, "Cmd \\ e" still is one argument.
-    "Cmd \  e" is two arguments, first one ending in space. (Kontra Gergely)
 9   User commands use the context of the script they were defined in.  This
     causes a "s:var" argument to unexpectedly use a variable in the defining
     script, not the calling script.  Add an argument to ":command":
@@ -684,6 +1161,8 @@
     flag to to the command.  Same for ":snomagic". (Johan Spetz)
 8   Using ":s" in a function changes the previous replacement string.  Save
     "old_sub" in save_search_patterns()?
+8   Should allow multi-byte characters for the delimiter: ":s+a+b+" where "+"
+    is a multi-byte character.
 8   When appending to a file and 'patchmode' isn't empty, a backup file is
     always written, even when the original file already exists.
 7   When using "daw" on the last word in a file and this is a single letter,
@@ -699,6 +1178,8 @@
     'foldlevel' is set from 'foldlevelstart'.
 8   Also store the line number with the script ID and use it for ":verbose",
     so that "set nocompatible" is found when it changes other option values.
+    When an option is set indirectly mention the command?  E.g. when
+    ":diffsplit" sets 'foldmethod'.
 8   In the fileformat dialog, "Cancel" isn't translated.  Add a global
     variable for this. (Eduardo Fernandez)
 9   When editing a file with 'readonly' set, there is no check for an existing
@@ -831,6 +1312,8 @@
 8   Dragging the status line doesn't scroll but redraw.
 9   Evaluating 'statusline' in build_stl_str_hl() does not properly check for
     reaching the end of the available buffer.
+    Patch to dynamically allocate the buffer for % items. (Eric Arnold, 2006
+    May 14)
 8   When performing incremental search, should abort searching as soon as a
     character is typed.
 8   When the value of $MAKE contains a path, configure can't handle this.
@@ -890,6 +1373,7 @@
     XtOpenDisplay() prints this directly, there is no way to avoid it.
 -   X windows: Setting 'guifontset' to an illegal value sometimes crashes Vim.
     This is caused by a fault in a X library function, can't be solved in Vim.
+-   Win32 tcl: has("tcl") hangs when the tcl84.dll is from cygwin.
 -   Motif: When adding a menu item "Find this &Symbol", the "s" in "this" will
     be underlined, instead of in "Symbol".  Motif doesn't let us specify which
     character gets the highlighting.
@@ -987,6 +1471,7 @@
     198 standard http://www.jcp.org/en/jsr/detail?id=198.
     Eclim does it: http://eclim.sourceforge.net/  (Eric Van Dewoestine)
     Plugin that uses a terminal emulator: http://vimplugin.sf.net
+    And another one: http://www.satokar.com/viplugin/index.php
 -   STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is.
     Especially when using the scrollbar.  Typing a cursor-movement command
     scrolls back to where the cursor is.
@@ -1003,6 +1488,8 @@
 
 
 Documentation:
+8   List of Vim runtime directories.  dotvim.txt from Charles Campbell, 2007
+    Feb 20.
 8   The GUI help should explain the Find and Find/Replace dialogs.  Add a link
     to it from ":promptrepl" and ":promptfind".
 8   List of options should mention whether environment variables are expanded
@@ -1084,6 +1571,10 @@
 
 Tab pages:
 9   GUI implementation for the tab pages line for other systems.
+7   GUI: Control over the appearance of the text in the labels (bold, color,
+    font, etc.)
+9   Make it possible to drag a tab page label to another position with the
+    mouse.
 8   Make GUI menu in tab pages line configurable.  Like the popup menu.
 8   balloons for the tab page labels that are shortened to show the full path.
 8   :tabmove +N	 move tab page N pages forward
@@ -1095,15 +1586,27 @@
 8   Add local options for each tab page?  E.g., 'diffopt' could differ between
     tab pages.
 7   Add local highlighting for each tab page?
+7   Add local directory for tab pages?  How would this interfere with
+    window-local directories?
 
 
 Spell checking:
+-   Support more regions? Caolan McNamara argues it's needed for es_XX.
+    https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=219777    
+-   Unicode defines another quote character: 0x2019.  Use it as an equivalent
+    of a single quote, thus use it as a word character like a quote and match
+    with words, replacing the curly quote with a single quote.
+-   Could filter &eacute; things for HTML before doing spell checking.
+    Similarly for TeX.
 -   The Hungarian spell file uses four extra characters in the FOL/UPP/LOW
     items than other spell files with the ISO-8859-2 encoding, that causes
     problem when changing 'spelllang'.  There is no obvious way to fix this.
 -   Considering Hunspell 1.1.4:
     What does MAXNGRAMSUGS do?
     Is COMPLEXPREFIXES necessary when we have flags for affixes?
+-   There is no Finnish spell checking file.  For openoffic Voikko is now
+    used, which is based on Malaga: http://home.arcor.de/bjoern-beutel/malaga/
+    (Teemu Likonen)
 8   ":mkspell" still takes much too long in Hungarian dictionary from
     hunspell.  Only solution appears to be to postpone secondary suffixes.
 8   Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
@@ -1190,7 +1693,11 @@
 Folding:
     (commands still available: zI zJ zK zp zP zq zQ zV zy zY;
     secondary: zB zS zT zZ, z=)
+8   Vertical folds: looks like vertically split windows, but the cursor moves
+    through the vertical separator, separator moves when scrolling.
 8   Add "z/" and "z?" for searching in not folded text only.
+9   Add search pattern item to only match in closed or open fold and/or fold
+    with certain level.  Allows doing ":g/pat/cmd" to work on closed folds.
 8   Add different highlighting for a fold line depending on the fold level.
     (Noel Henson)
 7   Use "++--", "+++--" for different levels instead of "+---" "+----".
@@ -1292,6 +1799,7 @@
 7   In "-- INSERT (lang) --" show the name of the keymap used instead of
     "lang". (Ilya Dogolazky)
 -   Make 'langmap' accept multi-byte characters.
+	Patch from Konstantin Korikov, 2006 Oct 15.
 -   Make 'breakat' accept multi-byte characters.  Problem: can't use a lookup
     table anymore (breakat_flags[]).
     Simplistic solution: when 'formatoptions' contains "m" also break a line
@@ -1317,8 +1825,8 @@
 -   Win32: when 'printfont' is empty use 'guifont'.
 -   Unix: Use some dialog box to do the obvious settings (paper size, printer
     name, portrait/landscape, etc).
--   PostScript: only works for 7-bit ASCII and EBCDIC.  Should support
-    different 'encoding' values somehow.
+-   PostScript: Only works for text that can be converted to an 8-bit
+    character set.  How to support Unicode fully?
 -   Allow specifying the paper size, instead of using a standard size.  Same
     units as for the margins.
 -   Support right-to-left text?
@@ -1338,6 +1846,9 @@
 8   When editing a new file without a name and giving it a name (by writing
     it) and 'filetype' is not set, detect the filetype.  Avoid doing it for
     ":wq file".
+7   For "nextgroup" we have skipwhite, skipnl and skipempty.  It would be
+    really nice to be able to skip with a pattern.  Or skip with a syntax
+    group. (Nikolai Weibull, 2007 Feb 27)
 8   Make conversion to HTML faster (Write it in C or pre-compile the script).
 9   There is still a redraw bug somewhere.  Probably because a cached state is
     used in a wrong way.  I can't reproduce it...
@@ -1415,6 +1926,9 @@
 8   When using a regexp for "contains=", should delay matching with it until
     redrawing happens.  Set a flag when a group is added, check this flag when
     highlighting starts.
+8   Some terminals can display colors like the GUI.  Add some setting to use
+    GUI colors for the terminal?  With something to define the escape
+    sequence.
 7   It's possible for an item to be transparent, so that the colors of an item
     lower on the stack is used.  Also do this with highlighting, so that the
     user can set transparent highlighting?  E.g. a number in a C comment would
@@ -1483,24 +1997,14 @@
 
 
 Built-in script language:
-9   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 install the scripts in the user's directories.
-      Use findfile(), so that only file names need to be given:
-	script plugin/myscript.vim
-	script autoload/mylib.vim
-	script autoload/yourlib.vim
-	helpfile doc/myscript.txt
-      For the "helpfile" item ":helptags" is run.
 7   Execute a function with standard option values.  No need to save and
     restore option values.  Especially useful for new options.  Problem: how
     to avoid a performance penalty (esp. for string options)?
 8   Add referring to key options with "&t_xx".  Both for "echo &t_xx" and
     ":let &t_xx =".  Useful for making portable mappings.
--   Add "{range}source": execute lines from a buffer.
-    Alternative: Allow range for ":exec", pass it on to the executed command.
-    (Webb)
-    You can already yank lines and use :@" to execute them.
+-   Add ":let var ?= value", conditional assignment.  Patch by Dave Eggum,
+    2006 Dec 11.
+-   range for ":exec", pass it on to the executed command.  (Webb)
 7   ":include" command: just like ":source" but doesn't start a new scriptID?
     Will be tricky for the list of script names.
 8   Have a look at VSEL.  Would it be useful to include? (Bigham)
@@ -1523,7 +2027,16 @@
        file belongs to a sourced script?
 7   Add argument to winwidth() to subtract the space taken by 'foldcolumn',
     signs and/or 'number'.
+6   Add ++ and -- operators?  They only work on variables (lvals), how to
+    implement this?
 8   Add functions:
+	has(":command")		Check if ":command" works.  compare function
+				with "ex_ni".  E.g. for ":simalt".
+	system()		With a List argument.  Bypasses the shell, use
+				exec() directly.  (Bob Hiestand)
+	escape()		Add argument to specify what to escape with.
+	modestack()		Instead of just the current mode return the
+				stack of Insert / CTRL-O / :normal things.
 	realname()		Get user name (first, last, full)
 				user_fullname() patch by Nikolai Weibull, Nov
 				3 2002
@@ -1561,7 +2074,8 @@
     column and line number?  col("'0") currently returns zero.
 8   argc() returns 0 when using "vim -t tag".  How to detect that no file was
     specified in any way?  To be able to jump to the last edited file.
-8   Pass the executable name to the Vim scripts in some way.  As v:argv0?
+8   Pass the command line arguments to Vim scripts in some way.  As v:args
+    List?  Or extra parameter to argv()?
 8   Add command arguments with three dashes, passed on to Vim scripts.
 7   Add optional arguments to user functions:
 	:func myFunc(arg1, arg2, arg3 = "blah", arg4 = 17)
@@ -1571,6 +2085,7 @@
 8   The "= register should be writable, if followed by the name of a variable,
     option or environment variable.
 8   ":let &option" should list the value of the option.
+8   ":let Func().foo = value" should work, also when "foo" doesn't exist.
 7   Add synIDlist(), making the whole list of syntax items on the syntax stack
     available as a List.
 8   Add autocommand-event for when a variable is changed:
@@ -1606,6 +2121,9 @@
 Performance:
 7   For strings up to 3 bytes don't allocate memory, use v_list itself as a
     character array.  Use VAR_SSTRING (short string).
+8   Instead of loading rgb.txt every time a color wasn't recognized load it
+    once and keep it in memory.  Move the code to a common place to avoid
+    repeating it in various system files.
 8   Turn b_syn_ic and b_syn_containedin into b_syn_flags.
 9   Loading menu.vim still takes quite a bit of time.  How to make it faster?
 8   in_id_list() takes much time for syntax highlighting.  Cache the result?
@@ -1719,6 +2237,8 @@
 -   Delete message after new command has been entered and have waited for key.
     Perhaps after ten seconds?
 -   Make message history available in "msg" variables: msg1, msg2, .. msg9.
+8   When reading from stdin allow suppressing the "reading from stdin"
+    message.
 9   Check handling of overwriting of messages and delays:
     Very wrong: errors while redrawing cause endless loop.
     When switching to another file and screen scrolls because of the long
@@ -1840,6 +2360,9 @@
     before the previous ":tag" command. (Webb)
 -   When doing "[^I" or "[^D" add position to tag stack.
 -   Add command to put current position to tag stack: ":tpush".
+-   Add functions to save and restore the tag stack?  Or a command to switch
+    to another tag stack?  So that you can do something else and come back to
+    what you were working on.
 7   When using CTRL-] on someClass::someMethod, separate class from method and
     use ":ta class:someClass someMethod".
     Include C++ tags changes (Bertin).	Change "class::func" tag into "func"
@@ -2000,6 +2523,8 @@
 8   Autocommand for when modified files have been found, when getting input
     focus again (e.g., FileChangedFocus).
     Check when: getting focus, jumping to another buffer, ...
+7   Autocommand for when an option is changed.  Match buffer name or option
+    name?
 8   Autocommands should not change registers.  And marks?  And the jumplist?
     And anything else?  Add a command to save and restore these things.
 8   Add autocommands, user functions and user commands to ":mkvimrc".
@@ -2029,6 +2554,7 @@
     *Leave	    - Leaving a mode (in pair with the above *Enter)
     VimLeaveCheck    - Before Vim decides to exit, so that it can be cancelled
 		      when exiting isn't a good idea.
+    CursorHoldC     - CursorHold while command-line editing
     WinMoved	    - when windows have been moved around, e.g, ":wincmd J"
     CmdUndefined    - Like FuncUndefined but for user commands.
     SearchPost	    - After doing a search command (e.g. to do "M")
@@ -2053,7 +2579,10 @@
 		      the position and number of inserted/deleted lines, so
 		      that marks can be updated.  HierAssist has patch to add
 		      BufChangePre, BufChangePost and RevertBuf. (Shah)
-    WinResized	    - When a window has been resized
+    ViewChanged	    - triggered when the text scrolls and when the window size
+		      changes.
+    WinResized	    - After a window has been resized
+    WinClose	    - Just before closing a window
 -   Write the file now and then ('autosave'):
 				  *'autosave'* *'as'* *'noautosave'* *'noas'*
     'autosave' 'aw' number  (default 0)
@@ -2070,8 +2599,6 @@
 	  Should work for Java (Eclipse does this), Python, Tcl, etc.
 	  Richard Emberson mentioned working on an interface to Java.
 	- Check Readline for its completion interface.
-	- Use ctags for other languages.  Writing a file could trigger running
-	  ctags, merging the tags of the changed file.
 -   Ideas from others:
 	http://www.wholetomato.com/
 	http://www.vim.org/scripts/script.php?script_id=747
@@ -2106,6 +2633,12 @@
 8   Add option to set different behavior for Insert mode completion:
     - ignore/match case
     - different characters than 'iskeyword'
+8   Add option 'isexpand', containing characters when doing expansion (so that
+    "." and "\" can be included, without changing 'iskeyword'). (Goldfarb)
+    Also: 'istagword': characters used for CTRL-].
+    When 'isexpand' or 'istagword' are empty, use 'iskeyword'.
+    Alternative: Use a pattern so that start and end of a keyword can be
+    defined, only allow dash in the middle, etc.
 8   Add a command to undo the completion, go back to the original text.
 7   Completion of an abbreviation: Can leave letters out, like what Instant
     text does: www.textware.com
@@ -2136,10 +2669,6 @@
 -   CTRL-X CTRL-F: Use 'path' to find completions.
 -   CTRL-X CTRL-F: Option to use forward slashes on MS-Windows?
 -   CTRL-X CTRL-F: Don't replace "$VIM" with the actual value. (Kelly)
-8   Add option 'isexpand', containing characters when doing expansion (so that
-    "." and "\" can be included, without changing 'iskeyword'). (Goldfarb)
-    Also: 'istagword': characters used for CTRL-].
-    When 'isexpand' or 'istagword' are empty, use 'iskeyword'.
 -   Allow listing all matches in some way (and picking one from the list).
 
 
@@ -2255,6 +2784,7 @@
 
 
 'cindent', 'smartindent':
+8   Lisp indenting: "\\" confuses the indenter. (Dorai Sitaram, 2006 May 17)
 8   Java: Inside an anonymous class, after an "else" or "try" the indent is
     too small. (Vincent Bergbauer)
     Problem of using {} inside (), 'cindent' doesn't work then.
@@ -2265,6 +2795,11 @@
 			    "asdf"
 			}
 		    );
+6   Add 'cino' flag for this function argument layout: (Spencer Collyer)
+	    func( arg1
+	        , arg2
+		, arg3
+		);
 7   Add separate "(0" option into inside/outside a function (Zellner):
 	func(
 	   int x)	// indent like "(4"
@@ -2439,7 +2974,6 @@
 6   In non-Block mode, "I" should insert the same text in front of each line,
     before the first non-blank, "gI" in column 1.
 6   In non-Block mode, "A" should append the same text after each line.
-6   ":'<,'>source" should read the selected lines and ":source" them.
 6   When in blockwise visual selection (CTRL-V), allow cursor to be placed
     right of the line.  Could also allow cursor to be placed anywhere on a TAB
     or other special character.
@@ -2549,7 +3083,9 @@
 Searching:
 8   Add "g/" and "gb" to search for a pattern in the Visually selected text?
     "g?" is already used for rot13.
+    The vis.vim script has a ":S" command that does something like this.
     Can use "g/" in Normal mode, uses the '< to '> area.
+    Use "&/" for searching the text in the Visual area?
 8   Add a mechanism for recursiveness: "\@(([^()]*\@g[^()]*)\)".  \@g stands
     for "go recursive here" and \@( \) marks the recursive part.
     Perl does it this way:
@@ -2557,6 +3093,9 @@
     Here $paren is evaluated when it's encountered.  This is like a regexp
     inside a regexp.  In the above terms it would be:
 	    \@((\([^()]\|\@g\)*)\)
+8   Show the progress every second.  Could use the code that checks for CTRL-C
+    to find out how much time has passed.  Or use SIGALRM.  Where to show the
+    number?
 7   Support for approximate-regexps to find similar words (agrep
     http://www.tgries.de/agrep/ tre: http://laurikari.net/tre/index.html).
 8   Add an item for a big character range, so that one can search for a
@@ -2661,6 +3200,13 @@
 
 
 Undo:
+8   Undo tree: visually show the tree somehow (Damian Conway)
+    Show only the leaves, indicating how many changed from the branch and the
+    timestamp?
+    Put branch with most recent change on the left, older changes get more
+    indent?
+8   Search for pattern in undo tree, showing when it happened and the text
+    state, so that you can jump to it.
 -   Persistent undo: store undo in a file.
     Use timestamps, so that a version a certain time ago can be found and info
     before some time/date can be flushed. 'undopersist' gives maximum time to
@@ -3033,8 +3579,13 @@
     next <li>, ]< to next </li>, [< to previous </li>.
 8   Add ":rename" command: rename the file of the current buffer and rename
     the buffer.  Buffer may be modified.
+7   Instead of filtering errors with a shell script it should be possible to
+    do this with Vim script.  A function that filters the raw text that comes
+    from the 'makeprg'?
 -   Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
     Govindachar)
+7   Add a command that goes back to the position from before jumping to the
+    first quickfix location.  ":cbefore"?
 6   In the quickfix window statusline add the command used to get the list of
     errors, e.g. ":make foo", ":grep something *.c".
 6   Python interface: add vim.message() function. (Michal Vitecek, 2002 Nov 5)
@@ -3047,7 +3598,6 @@
     to manipulate text without changing the window layout.
 8   Add a command to revert to the saved version of file; undo or redo until
     all changes are gone.
-7   Add a ":cpfile", go in the other direction as ":cnfile".
 6   "vim -q -" should read the list of errors from stdin. (Gautam Mudunuri)
 8   Add "--remote-fail": When contacting the server fails, exit Vim.
     Add "--remote-self": When contacting the server fails, do it in this Vim.
@@ -3068,7 +3618,6 @@
     etc.  Combinations of Alt, Ctrl and Shift are also possible.  Recognize
     these to avoid inserting the raw byte sequence, handle like the key
     without modifier (unless mapped).
-8   Add ":breakdel *": delete all breakpoints.
 7   Support ":browse edit" in console, using explorer.vim?
 6   Add "gG": like what "gj" is to "j": go to the N'th window line.
 8   Add command like ":normal" that accepts <Key> notation like ":map".
@@ -3107,13 +3656,6 @@
 7   Have a look at viH (Hellenic or Greek version of Vim).  But a solution
     outside of Vim might be satisfactory (Haritsis).
 3   Make "2d%" work like "d%d%" instead of "d2%"?
-8   Make "more" prompt accept command characters, like "hit-enter" prompt?
-    Or extend it with more commands, like "less": 'b' for back, 'j' for one
-    line down, etc.
-8   For the "--more--" prompt, support the 'b'ack command for more commands.
-    Possible implementation: Do it at a very low level, caching the lines that
-    are on the screen (with highlight attributes).  Avoids that changes have
-    to be made for all functions that list something.
 7   "g CTRL-O" jumps back to last used buffer.	Skip CTRL-O jumps in the same
     buffer.  Make jumplist remember the last ten accessed buffers?
 -   Keep a list of most recently used files for each window, use "[o" to go
@@ -3146,8 +3688,6 @@
     of the files.  Only check when an event occurs (e.g., character typed,
     mouse moved).  Useful for non-GUI versions where keyboard focus isn't
     noticeable.
-9   When using ":w <fname>" it's possible that this file is loaded in another
-    buffer.  Give a warning right away, don't wait for a shell command.
 -   Make 'smartcase' work even though 'ic' isn't set (Webb).
 7   When formatting text, allow to break the line at a number of characters.
     Use an option for this: 'breakchars'?  Useful for formatting Fortran code.
@@ -3156,8 +3696,8 @@
     paragraphs).  Complements the '2' flag.  Use '>' flag when larger indent
     starts a new paragraph, use '<' flag when smaller indent starts a new
     paragraph.	Both start a new paragraph on any indent change.
-7   Add a way to define an item list with a pattern in 'formatoptions'.  The
-    'n' flag doesn't work for "6.3" or "6a.".
+8   The 'a' flag in 'formatoptions' is too dangerous.  In some way only do
+    auto-formatting in specific regions, e.g. defined by syntax highlighting.
 8   Allow using a trailing space to signal a paragraph that continues on the
     next line (MIME text/plain; format=flowed, RFC 2646).  Can be used for
     continuous formatting.  Could use 'autoformat' option, which specifies a
@@ -3358,8 +3898,6 @@
 -   Amiga: test for 'w' flag when reading a file.
 -   :table command (Webb)
 -   Add new operator: clear, make area white (replace with spaces): "g ".
--   Make it possible for a user to define a new operator.  Implementation with
-    internal scripting language or Perl?
 -   Add command to ":read" a file at a certain column (blockwise read?).
 -   Add sort of replace mode where case is taken from the old text (Goldfarb).
 -   Allow multiple arguments for ":read", read all the files.
