--- a/trunk/doc/todo.txt
+++ b/trunk/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.2.  最近更新: 2008年8月
+*todo.txt*      For Vim version 7.2.  最近更新: 2009年4月
 		  VIM 参考手册	  by Bram Moolenaar
@@ -32,30 +32,125 @@
 ----------------------- 已知漏洞和当前工作 --------------------------
-":pedit %" with a BufReadPre autocommand causes the cursor to move to the
-first line. (Ingo Karkat, 2008 Jul 1)  Ian Kelling is working on this.
-Have a look at patch for utf-8 line breaking. (Yongwei Wu, 2008 Mar 1, Mar 23)
+In Visual block mode, "O" changes end of block in first comment of screen.c,
+only two lines selected.
+Patch for :scscope and :lcscope completion. (Dominique Pelle, 2009 Mar 21)
+Wrong Visual Block selection size reported when 'wrap' is on and 'showbreak'
+is not empty. (Eduardo Daudt Flach, 2009 Feb 12)
+Dynamic Folding support for 2html.vim. (Benjamin Fritz, 2009 Feb 12)
+Patch to add "focusonly" to 'scrollopt', so that scrollbind also applies in
+window that doesn't have focus. (Jonathon Mah, 2009 Jan 12)
+Needs more work.
+Patch for completion of ":find" arguments. (Nazri Ramliy, 2009 Feb 22, 26)
+8   For ":find" and ":sfind" expand files found in 'path'.
+Needs more work.
+Problem with <script> mappings (Andy Wokula, 2009 Mar 8)
+Cursorline highlighting combines with Search ('hlsearch') but not with
+SpellBad. (Jim Karsten, 2009 Mar 18)
+Folds messed up in other tab page. (Vlad Irnov, 2009 Mar 17)
+":he ctrl_u" can be auto-corrected to ":he ctrl-u".
+Win32: patch for cross compile xxd and GvimExt. (Markus Heidelberg, 2009 Mar
+18)  Also update INSTALLpc.txt?
+Win32 GUI: last message from startup doesn't show up when there is an echoerr
+command. (Cyril Slobin, 2009 Mar 13)
+Win32: use different args for SearchPath()? (Yasuhiro Matsumoto, 2009 Jan 30)
+Win32: completion of file name ":e c:\!test" results in ":e c:\\!test", which
+does not work. (Nieko Maatjes, 2009 Jan 8, Ingo Karkat, 2009 Jan 22)
+Directory wrong in session file, caused by ":lcd" in BufEnter autocommand.
+(Felix Kater, 2009 Mar 3)
+Using ~ works OK on 'a' with composing char, but not on 0x0418  with composing
+char 0x0301. (Tony Mechelynck, 2009 Mar 4)
+Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish
+messages, even though locale is not supported.  But ":lang messages
+es_ES.utf-8" gives an error and doesn't switch messages. (Dominique Pelle,
+2009 Jan 26)
+Should make 'ignorecase' global-local, so that it makes sense setting it from
+a modeline.
+Consider making YankRing or something else that keeps a list of yanked text
+part of standard Vim.  The "1 to "9 registers are not sufficient.
 netrw: dragging status line causes selection of entry.  Should check row
 number to be below last visible line.
+Make do_do_join() work faster.  Could at least do a binary search way of doing
+this.  Hint from Dominique Pelle, Dec 10; Lee Naish, Dec 11.
+Patch from Milan Vancura, 2008 Dec 22.  Update 2009 Jan 7 in two parts.
+After doing "su" $HOME can be the old user's home, thus ~root/file is not
+correct.  Don't use it in the swap file.
+Completion for ":buf" doesn't work properly on Win32 when 'shellslash' is off.
+(Henrik Ohman, 2009, Jan 29)
+Allow patches to add something to version.c, like with an official patch, so
+that :version output shows which patches have been applied.
+Have a look at patch for utf-8 line breaking. (Yongwei Wu, 2008 Mar 1, Mar 23)
+Now at: http://vimgadgets.sourceforge.net/liblinebreak/
+Disable setting 'encoding' from a modeline?  It usually causes problems, can't
+do any good.  (Patch from Patrick Texier, 2008 Dec 9)
+When changing 'encoding' convert all the swap file names, so that we can
+still delete them.  Also convert all buffer file names?
+Update src/testdir/main.aap.
+"vim -c 'sniff connect'" hangs Vim. (Dominique Pelle, 2008 Dec 7)
+Something wrong with session that has "cd" commands and "badd", in such a way
+that Vim doesn't find the edited file in the buffer list, causing the
+ATTENTION message?  (Tony Mechelynck, 2008 Dec 1)
+Also: swap files are in ~/tmp/  One has relative file name ".mozilla/...".
+Add v:motion_force. (Kana Natsuno, 2008 Dec 6)
+Redraw problem when appending digraph causes line to wrap. (James Vega, 2007
+Sep 18)  Patch by Ian Kelling, 2008 Aug 8.
 Runtime files for Clojure. (Toralf Wittner, 2008 Jun 25)
-Patch to add extra argument to glob() and globpath() to ignore 'wildignore'.
-(Ingo Karkat, 2008 Jun 25)
+MS-Windows: editing the first, empty buffer, 'ffs' set to "unix,dos", ":enew"
+doesn't set 'ff' to "unix".  (Ben Fritz, 2008 Dec 5) Reusing the old buffer
+probably causes this.
+'scrollbind' is not respected when deleting lines or undo. (Milan Vancura,
+1009 Jan 16)
 Crash with dragn-n-drop of file combined with netrw (Marius Gedminas, 2008 Jun
 11)  I can't reproduce it.  It's probably caused by a handle_drop() call
 in combination with autocommands that invoke a ":redraw" command.
 Another valgrind output Jun 30.
-When reallocating cmdline xp_pattern becomes invalid.  Move expand_T xpc into
-ccline?  (Dominique Pelle)
+":pedit %" with a BufReadPre autocommand causes the cursor to move to the
+first line. (Ingo Karkat, 2008 Jul 1)  Ian Kelling is working on this.
 Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3
 laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1)
 Works OK with Vim in an xterm.
+On Unix "glob('does not exist~')" returns the string.  Without the "~" it
+doesn't. (John Little, 2008 Nov 9)
+Shell expansion returns unexpanded string?
+Don't use shell when "~" is not at the start?
 When using ":e ++enc=foo file" and the file is already loaded with
 'fileencoding' set to "bar", then do_ecmd() uses that buffer, even though the
@@ -64,7 +159,20 @@
 Unfinished patch by Ian Kelling, 2008 Jul 11.  Followup Jul 14, need to have
 another look at it.
+Patch for c.vim and cpp.vim syntax files. (Chung-chieh Shan, 2008 Nov 26)
+Win32:  ":dis +" shows nothing, but "+p does insert text.  Problem with "* and
+"+ being the same thing?
+You can type ":w ++bad=x fname", but the ++bad argument is ignored.  Give an
+error message?  Or is this easy to implement?  (Nathan Stratton Treadway, 2008
+Aug 20)  This is in ucs2bytes(), search for 0xBF.  Using the ++bad argument is
+at the other match for 0xBF.
 Fix for matchparen HL doesn't work.  beep.
+When adding "-complete=file" to a user command this also changes how the
+argument is processed for <f-args>. (Ivan Tishchenko, 2008 Aug 19)
 Win32: associating a type with Vim doesn't take care of space after a
 backslash? (Robert Vibrant, 2008 Jun 5)
@@ -75,6 +183,17 @@
 ":help s/~" jumps to *s/\~*, while ":help s/\~" doesn't find anything. (Tim
 Chase)  Fix by Ian Kelling, 2008 Jul 14.
+":colorscheme" without arguments should echo the current color scheme name.
+Patch for colorscheme submenu. (Juergen Kraemer, 2008 Aug 20)
+8   Some file systems are case-sensitive, some are not.  Turn
+    CASE_INSENSITIVE_FILENAME into an option, at least for completion.
+9   Make it possible to drag a tab page label to another position with the
+    mouse.
+Patch by Paul B. Mahol, 2008 Aug 29.
 Despite adding save_subexpr() this still doesn't work properly:
 Regexp: matchlist('12a4aaa', '^\(.\{-}\)\(\%5c\@<=a\+\)\(.\+\)\?')
@@ -82,7 +201,7 @@
 Backreference not cleared when retrying after \@<= fails?
 (Brett Stahlman, 2008 March 8)
-Patch for 2html.vim to avoid "&amp;nbsp;". (Markus Heidelberg, 2008 Jul 19)
+Problem with remote_send(). (Charles Campbell, 2008 Aug 12)
 Win32: remote editing fails when the current directory name contains "[".
 (Ivan Tishchenko, Liu Yubao)  Suggested patch by Chris Lubinski: Avoid
@@ -104,8 +223,13 @@
 Only happens with "gvim -geometry "160x26+4+27" -u NONE -U NONE prop.c".
 'lines' is 54. (2008 March 27)
+Problem with pointer wrapping around in getvcol(). (Wolfgang Kroworsch, 2008
+Oct 19)  Check for "col" being "MAXCOL" separately?
 Unexpectedly inserting a double quote. (Anton Woellert, 2008 Mar 23)
 Works OK when 'cmdheight' is 2.
+Test54 should not use shell commands.  Make it portable.
 The utf class table is missing some entries:
 	0x2212, minus sign 
@@ -119,6 +243,15 @@
 GUI: In Normal mode can't yank the modeless selection.  Make "gy" do this?
 Works like CTRL-Y in Command line mode.
+Patch for Ruby sockets. (todesking/Ariya Mizutani, 2008 Jul 1,24)
+Confirmed by Anton Sharonov, 2008 Dec 26.
+Mac: Move Carbon todo items to os_mac.txt.  Note that this version is frozen,
+try the Cocoa version.
+Mac: Patch to disable antialias. (LC Mi, 2008 Aug 23)  Tested on 10.5 and
 Mac: After a ":vsplit" the left scrollbar doesn't appear until 'columns' is
 changed or the window is resized.
@@ -136,11 +269,27 @@
 with %nn%nn, which is taken as two characters instead of one.
 Try to reproduce at work.
+Patch for default choice in file changed dialog. (Bjorn Winckler, 2008 Oct 19)
+Is there a way to list all the files first?
 Patch for redo register. (Ben Schmidt, 2007 Oct 19)
 Await response to question to make the register writable.
+src/testdir/Make_dos.mak: not all tests are included, e.g., test49, without a
+remark why.
 Problem with 'ts' set to 9 and 'showbreak' to ">>>". (Matthew Winn, 2007 Oct
+try/catch not working for argument of return. (Matt Wozniski, 2008 Sep 15)
+":tab help" always opens a new tab, while ":help" re-uses an existing window.
+Would be more consistent when an existing tab is re-used. (Tony Mechelynck)
+":tab drop filename" doesn't work nicely when "filename" is open in a window
+in another tab. (Tony Mechelynck, 2009 Feb 13)
+Add ":nofold".  Range will apply without expanding to closed fold.
 Including NFA regexp code:
 Use "\%#= to set the engine: 0 = automatic, 1 = backtracking, 2 = new.
@@ -162,6 +311,9 @@
 C syntax: {} inside () causes following {} to be highlighted as error.
 (Michalis Giannakidis, 2006 Jun 1)
+Can't easily close the help window, like ":pc" closes the preview window and
+":ccl" closes the quickfix window.  Add ":hclose". (Chris Gaal)
 When 'diffopt' has "context:0" a single deleted line causes two folds to merge
 and mess up syncing. (Austin Jennings, 2008 Jan 31)
@@ -172,10 +324,18 @@
 'foldcolumn' in modeline applied to wrong window when using a session. (Teemu
 Likonen, March 19)
+Test 54 uses shell commands, that doesn't work on non-Unix systems.  Use some
+other way to test buffer-local autocommands.
 The documentation mentions the priority for ":2match" and ":3match", but it
 appears the last one wins. (John Beckett, 2008 Jul 22)  Caused by adding
 matchadd()?  Suggested patch by John, 2008 Jul 24.
+When 'encoding' is utf-8 the command line is redrawn as a whole on every
+character typed. (Tyler Spivey, 2008 Sep 3)  Only redraw cmdline for
+'arabicshape' when there is a character on the command line for which
+(ARABIC_CHAR(u8c)) is TRUE.
 Replace ccomplete.vim by cppcomplete.vim from www.vim.org?  script 1520
 by Vissale Neang.  (Martin Stubenschrott)
@@ -194,9 +354,6 @@
 Problem with compound words?  (Bert, 2008 May 6)
 No warning for when flags are defined after they are used in an affix.
-With Visual selection, "r" and then CTRL-C  Visual mode is stopped but the
-highlighting is not removed.
 Screen redrawing when continuously updating the buffer and resizing the
 terminal. (Yakov Lerner, 2006 Sept 7)
@@ -207,6 +364,9 @@
 that may fail (e.g., sizeof(int)). (Blaine, 2007 Aug 21)
 When opening quickfix window, disable spell checking?
+Problem with ".add" files when using two languages and restarting Vim. (Raul
+Coronado, 2008 Oct 30)
 Popup menu redraw: Instead of first redrawing the text and then drawing the
 popup menu over it, first draw the new popup menu, remember its position and
@@ -216,12 +376,12 @@
 When the popup menu is close to the edge of the window it is truncated.  Patch
 to anchor the popup menu in a different way. (James Vega, 2008 Jul 30)
-Spell checking: Add a way to specify punctuation characters.  Add the
-superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
 Windows 98: pasting from the clipboard with text from another application has
 a trailing NUL.  (Joachim Hofmann)  Perhaps the length specified for CF_TEXT
 isn't right?
+When a register contains illegal bytes, writing viminfo in utf-8 and reading
+it back doesn't result in utf-8. (Devin Bayer)
 Command line 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
@@ -241,6 +401,9 @@
 However, for backwards compatibility escaping might be necessary.  Check if
 the user put quotes around the expanded item?
+Error E324 can be given when a cron script has wiped out our temp directory.
+Give a clear error message about this (and tell them not to wipe out /tmp).
 Color for cUserLabel should differ from case label, so that a mistake in a
 switch list is noticed:
     switch (i)
@@ -256,22 +419,20 @@
 go to Insert mode and add a few lines.  Then backspacing every other time
 moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
-Redraw problem when appending digraph causes line to wrap. (James Vega, 2007
-Sep 18)  Patch by Ian Kelling, 2008 Aug 8.
 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.
     Update 2007 May 22 for Vim 7.1
+    Update 2008 Dec 2008 for Vim 7.2.xx (Sharonov)
+Win32: Can't complete shell command names.  Why is setting xp_context in
+set_one_cmd_context() inside #ifndef BACKSLASH_IN_FILENAME?
 Win32: Patch for convert_filterW(). (Taro Muraoka, 2007 Mar 2)
 Win32: Patch for cscope external command. (Mike Williams, 2007 Aug 7)
-":cscope find f  filename" doesn't work because of the extra space. (Ethan
 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.
@@ -294,9 +455,6 @@
 Win32: using CTRL-S in Insert mode doesn't remove the "+" from the tab pages
 label.  (Tsakiridis, 2007 Feb 18)  Patch from Ian Kelling, 2008 Aug 6.
-When 'bomb' is changed the window title is updated to show/hide a "+", but the
-tab page label isn't. (Patrick Texier, 2008 Jun 24)
 Win32: using "gvim --remote-tab-silent fname" sometimes gives an empty screen
 with the more prompt.  Caused by setting the guitablabel?  (Thomas Michael
 Engelke, 2007 Dec 20 - 2008 Jan 17)
@@ -309,9 +467,24 @@
 Win32: patch for fullscreen mode. (Liushaolin, 2008 April 17)
+Win32: When 'shell' is cmd.exe this command fails:
+	echo system('"c:/path/echo.exe" "foo bar"')
+Should we set the default for 'shellxquote' to a double quote, when 'shell'
+contains "cmd" in the tail?  (Benjamin Fritz, 2008 Oct 13)
+Also set 'shellcmdflag' to include /s.
+Win32: When there is 4 Gbyte of memory mch_avail_mem() doesn't work properly.
+Unfished patch by Jelle Geerts, 2008 Aug 24.
+Let mch_avail_mem() return Kbyte instead?
+Win32: With two monitors, gvim partly on both, and adding/removing a scrollbar
+Vim resizes and moves to one of the monitors. (Chris Monkiewicz, 2008 Oct)
 When file b is a link to file a and editing b twice you get the correct
 warning for existing swap file, but when trying to recover it doesn't find the
-swapfile. (Matt Wozniski, 2008 Aug 5)
+swapfile. (Matt Wozniski, 2008 Aug 5)  Patch by Ian Kelling, 2008 Aug 11.
+Another patch by James Vega, 2008 Aug 20, again 2008 Sep 3.
+Also solves: Problem finding swap file for recovery. (Gautam Iyer, 2006 May 16)
 Pressing the 'pastetoggle' key doesn't update the statusline. (Jan Christoph
 Ebersbach, 2008 Feb 1)
@@ -329,12 +502,13 @@
 If the variable "g:x#y#z" exists completion after ":echo g:x#" doesn't work.
+When using input() in a loop and then ":echo" the display column isn't right.
+(Benjamin Fritz, 2008 Aug 28)  Patch by Ben Schmidt, 2008 Sep 2.
 F1 - F4 in an xterm produce a different escape sequence when used with a
 modifier key.  Need to catch three different sequences.  Use K_ZF1, like
 K_ZHOME? (Dickey, 2007 Dec 2)
-Problem finding swap file for recovery. (Gautam Iyer, 2006 May 16)
 UTF-8: mapping a multi-byte key where the second byte is 0x80 doesn't appear
 to work. (Tony Mechelynck, 2007 March 2)
@@ -356,10 +530,10 @@
 Problem with cursorcolumn highlighting and folds. (John Mullin, 2008 Jul 18)
-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'.
+Patch to dynamically load Python on Solaris. (Danek Duvall, 2009 Feb 16)
+Needs more work.
 The need_fileinfo flag is messy.  Instead make the message right away and put
 it in keep_msg?
@@ -371,7 +545,8 @@
 Test 61 fails sometimes.  This is a timing problem: "sleep 2" sometimes takes
 longer than 2 seconds.
-Changing 'guifont' in the console causes an unnecessary redraw.
+Using ":au CursorMoved * cmd" invokes mch_FullName(), which can be slow.
+Can this be avoided? (Thomas Waba, 2008 Aug 24)
 "vim -C" often has 'nocompatible', because it's set in some startup script.
 Set 'compatible' after startup is done?  Patch by James Vega, 2008 Feb 7.
@@ -395,10 +570,17 @@
 Another problem is that file_pat_to_reg_pat() doesn't recognize "\\", so "\\(" 
 will be seen as a path separator plus "\(".
+When doing ":quit" the Netbeans "killed" event isn't sent.  (Xavier de Gaye,
+2008 Nov 10)  call netbeans_file_closed() at the end of buf_freeall(), or in
+all places where buf_freeall() is called?
 ":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.
+When unloading a buffer in a BufHidden autocommand the hidden flag is reset?
+(Bob Hiestand, 2008 Aug 26, Aug 27)
 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)
@@ -409,25 +591,43 @@
 argument list or opening each file in a separate tab.
 (Erik Falor, 2008 May 21, 2008 Jun 26)
+Gvimext patch to support wide file names. (Szabolcs Horvat 2008 Sep 10)
 GUI: When combining fg en bg make sure they are not equal.
+Spell checking: Add a way to specify punctuation characters.  Add the
+superscript numbers by default: 0x2070, 0xb9, 0xb2, 0xb3, 0x2074 - 0x2079.
+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".
 Use different pt_br dictionary for spell checking. (Jackson A. Aquino, 2006
 Jun 5)
+Use different romanian dictionary for spell checking. (Andrei Popescu, Nov
+2008)  Use http://downloads.sourceforge.net/rospell/ro_RO.3.2.zip
+Or the hunspell-ro.3.2.tar.gz file, it also has a iso-8859-2 list.
+In a C file with spell checking, in "% integer" "nteger" is seen as an error,
+but "]s" doesn't find it.  "nteger" by itself is found. (Ralf Wildenhues, 2008
+Jul 22)
+There should be something about spell checking in the user manual.
+Spell menu: When using the Popup menu to select a replacement word,
+":spellrepeat" doesn't work.  SpellReplace() uses setline().  Can it use "z="
+somehow?  Or use a new function.
 Mac: Using gvim: netrw window disappears. (Nick Lo, 2006 Jun 21)
-When 'ff' is "mac" then "ga" on a ^J shows 0x0d instead of 0x0a.  Compare with
-using "ga" on a NUL when 'ff' is "unix". (Andy Wokula, 2008 Jul 16)
+Mac: OS/X 10.4 with Python 2.5 installed: configure finds an extra argument
+that breaks the build. (Brian Victor, 2008 Sep 1)
 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').
 The generated vim.bat can avoid the loop for NT. (Carl Zmola, 2006 Sep 3)
-In a C file with spell checking, in "% integer" "nteger" is seen as an error,
-but "]s" doesn't find it.  "nteger" by itself is found. (Ralf Wildenhues, 2008
-Jul 22)
 Session file creation: 'autochdir' causes trouble.  Keep it off until after
 loading all files.
@@ -445,10 +645,6 @@
 background make.  ":bgcancel" interrupts it.
 A.Politz may work on this.
-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
 These two abbreviations don't give the same result:
 	let asdfasdf = "xyz\<Left>"
 	cabbr XXX <C-R>=asdfasdf<CR>
@@ -490,6 +686,10 @@
 dying?  Also relevant when running in a console.
 Accessing file#var in a function should not need the g: prepended.
+When exiting detects a modified buffer, instead of opening the buffer in the
+current tab, use an existing tab, if possible.  Like finding a window where
+the buffer is displayed. (Antonios Tsakiridis)
 When ":cn" moves to an error in the same line the message isn't shortened.
 Only skip shortening for ":cc"?
@@ -533,8 +733,6 @@
 Does multi-byte printing with ":hardcopy" work?  Add remark in documentation
 about this.
-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.
@@ -542,11 +740,23 @@
 Problem with 'cdpath' on MS-Windows when a directory is equal to $HOME. (2006
 Jul 26, Gary Johnson)
+Using UTF-8 character with ":command" does not work properly. (Matt Wosniski,
+2008 Sep 29)
 In the Netbeans interface add a "vimeval" function, so that the other side can
 check the result of has("patch13").
+Cursor line at bottom of window instead of halfway after saving view and
+restoring.  Only with 'nowrap'. (Robert Webb, 2008 Aug 25)
 Add command modifier that skips wildcard expansion, so that you don't need to
 put backslashes before special chars, only for white space.
+Syntax HL: open two windows on the same C code, delete a ")" in one window,
+resulting in highlighted "{" in that window, not in the other.
+In mswin.vim: Instead of mapping <C-V> for Insert mode in a complicated way,
+can it be done like ":imap <C-V> <MiddleMouse>" without negative side effects?
 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?
@@ -554,6 +764,11 @@
 GTK: when the Tab pages bar appears or disappears while the window is
 maximized the window is no longer maximized.  Patch that has some idea but
 doesn't work from Geoffrey Antos, 2008 May 5.
+Also: the window may no longer fit on the screen, thus the command line is not
+GTK: when setting 'columns' in a startup script and doing ":vertical diffsplit"
+the window isn't redrawn properly, see two vertical bars.
 The magic clipboard format "VimClipboard2" appears in several places.  Should
 be only one.
@@ -612,10 +827,6 @@
 Syntax HL: When using "nextgroup" and the group has an empty match, there is
 no search at that position for another match. (Lukas Mai, 2008 April 11)
-Spell menu: When using the Popup menu to select a replacement word,
-":spellrepeat" doesn't work.  SpellReplace() uses setline().  Can it use "z="
-somehow?  Or use a new function.
 In gvim the backspace key produces a backspace character, but on Linux the
 VERASE key is Delete.  Set VERASE to Backspace? (patch by Stephane Chazelas,
 2007 Oct 16)
@@ -630,8 +841,26 @@
 Create a gvimtutor.1 file and change Makefiles to install it.
+When 'encoding' is utf-8 typing text at the end of the line causes previously
+typed characters to be redrawn.  Caused by patch 7.1.329. (Tyler Spivey, 2008
+Sep 3, 11)
+When Vim in an xterm owns the selection and the user does ":shell" Vim doesn't
+respond to selection requests.  Invoking XtDisownSelection() before executing
+the shell doesn't help.  Would require forking and doing a message loop, like
+what happens for the GUI.
+X11: Putting more than about 262040 characters of text on the clipboard and
+pasting it in another Vim doesn't work.  (Dominique Pelle, 2008 Aug 21-23)
+clip_x11_request_selection_cb() is called with zero value and length.
+Also: Get an error message from free() in the process that owns the selection.
+Seems to happen when the selection is requested the second time, but before
+clip_x11_convert_selection_cb() is invoked, thus in X library code.
 Vim 7.3:
+-    STARTUPTIME is difficult to enable.  Use --startuptime=fname argument?
+     Does this require a configure check?
 -   Add patch for 'relativenumber' option?  Markus Heidelberg, 2008 Jun 27.
 -   Add blowfish encryption.  Openssl has an implementation.  Also by Paul
     Kocher (LGPL), close to original.  Mohsin also has some ideas.
@@ -641,6 +870,7 @@
 	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.
+- Patch for Lisp support with ECL (Mikael Jansson, 2008 Oct 25)
@@ -671,6 +901,8 @@
     vimtutor.vim. (Jan Minar, 2008 Jul 20)
 -   When fsync() fails there is no hint about what went wrong.  Patch by Ben
     Schmidt, 2008 Jul 22.
+-   testdir/Make_dos_sh.mak for running tests with MingW. (Bill Mccarthy, 2008
+    Sep 13)
@@ -1222,8 +1454,6 @@
 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
@@ -1240,6 +1470,13 @@
     CTRL-Q.  Add an option for it?
 -   When using e_secure in do_one_cmd() mention the command being executed,
     otherwise it's not clear where it comes from.
+-   When the quickfix window is open and executing ":echo 'hello'" using the
+    Command-line window, the text is immediately removed by the redrawing.
+    (Michael Henry, 2008 Nov 1)
+    Generic solution: When redrawing while there is a message on the
+    cmdline, don't erase the display but draw over the existing text.
+    Other solution, redraw after closing the cmdline window, before executing
+    the command.
 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
@@ -1385,8 +1622,6 @@
 8   With 'virtualedit' set and 'selection' "exclusive", a Visual selection
     that ends in or after a tab, "d" doesn't delete (part of) the tab.
     (Helmut Stiegler)
-8   With 'virtualedit' set, a blockwise Visual selection that starts and ends
-    in a tab, "<" shifts too much. (Helmut Stiegler)
 9   When jumping to a tag, the search pattern is put in the history.  When
     'magic' is on, the pattern may not work.  Translate the pattern depending
     on p_magic when putting it in the history?  Alternative: Store value of
@@ -1618,6 +1853,11 @@
 没有放到 Vim 7.0 里的功能:
+-   Using ":exe edit fname" has escaping problems.  Use ":edit ++(fname)".
+    Thus use "++=" to give arguments as expressions, comma separated as if
+    calling a function.
+    With options: ":edit ++(['!', '++enc=abc'], ['+/pat'], fname)".
+    Alternative: Make a function for Ex commands: cmd_edit().
 -   Add COLUMN NUMBERS to ":" commands ":line1,line2[col1,col2]cmd".  Block
     can be selected with CTRL-V.  Allow '$' (end of line) for col2.
 -   Add DEBUGGER INTERFACE.  Implementation for gdb by Xavier de Gaye.
@@ -1642,10 +1882,13 @@
 -   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.
+-   Scroll commands by screen line. g CTRL-E and g CTRL-Y ?  Requires the
+    first line to be able to start halfway.
 -   Running a shell command from the GUI still has limitations.  Look into how
     the terminal emulator of the Vim shell project can help:
--   Add Lua interface? (Wolfgang Oertl)
+-   Add Lua interface? (Wolfgang Oertl) patch by Luis Carvalho, 2008 Sep 5
+	Patch for Make_ming.mak from Paul Moore (2008 Sep 1)
 8   Add a command to jump to a certain kind of tag.  Allow the user to specify
     values for the optional fields.  E.g., ":tag size type=m".
     Also allow specifying the file and command, so that the result of
@@ -1741,8 +1984,6 @@
 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
@@ -1792,7 +2033,6 @@
     Add CHECKCOMPOUNDCASE: when compounding make leading capital lower case.
     How is it supposed to work?
-8   implement using CHECKCOMPOUNDPATTERN: match words with sl_comppat[].
 -   Add a command the repeats ]s and z=, showing the misspelled word in its
     context.  Thus to spell-check a whole file.
 -   suggestion for "KG" to "kg" when it's keepcase.
@@ -1815,8 +2055,6 @@
     - COMPOUNDROOT -> COMPOUNDED?  For a word that already is a compound word
 	    Or use COMPOUNDED2, COMPOUNDED3, etc.
-8   Alternate Dutch word list at www.nederlandsewoorden.nl (use script to
-    obtain).  But new Myspell wordlist will come (Hagen)
 -   CIRCUMFIX: when a word uses a prefix marked with the CIRCUMFIX flag, then
     the word must also have a suffix marked with the CIRCUMFIX flag.  It's a
     bit primitive, since only one flag is used, which doesn't allow matching
@@ -1986,14 +2224,10 @@
     Support CTRL-K _{mnemonic}_
 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
     at a multi-byte character >= 0x100.
--   Do we need the reverse of 'keymap', like 'langmap' but with files and
-    multi-byte characters?  E.g., when using a Russian keyboard.
 -   Add the possibility to enter mappings which are used whenever normal text
     could be entered.  E.g., for "f" command.  But not in Normal mode.  Sort
     of opposite of 'langmap'.  Use ":tmap" command?
@@ -2543,6 +2777,9 @@
 8   Use a mechanism similar to omni completion to figure out the kind of tab
     for CTRL-] and jump to the appropriate matching tag (if there are
+    Alternative: be able to define a function that takes the tag name and uses
+    taglist() to find the right location.  With indication of using CTRL-] so
+    that the context can be taken into account. (Robert Webb)
 7   Can CTRL-] (jump to tag) include a following "." and "->" to restrict the
     number of possible matches? Check tags file for an item that has members.
     (Flemming Madsen)
@@ -2702,6 +2939,12 @@
 -   Put autocommand event names in a hashtable for faster lookup?
+8   When the SwapExists event is triggered, provide information about the
+    swap file, e.g., whether the process is running, file was modified, etc.
+    Must be possible to check the situation that it's probably OK to delete
+    the swap file. (Marc Merlin)
+8   When all the patterns for an event are "*" there is no need to expand
+    buffer names to a full path.  This can be slow for NFS.
 7   For autocommand events that trigger multiple times per buffer (e.g.,
     CursorHold), go through the list once and cache the result for a specific
     buffer.  Invalidate the cache when adding/deleting autocommands or
@@ -2933,7 +3176,6 @@
 -   For 'wildmenu': Simplify "../bar" when possible.
 -   When using <Up> in wildmenu mode for a submenu, should go back to the
     current menu, not the first one.  E.g., ":emenu File.Save<Up>".
-8   For ":find" and ":sfind" expand files found in 'path'.
 8   When using backtick expansion, the external command may write a greeting
     message.  Add an option or commands to remove lines that match a regexp?
 7   When listing matches of files, display the common path separately from the
@@ -3001,6 +3243,8 @@
         cout << "a"
                 << ") :"
                 << "y";
+9   "} else" causes following lines to be indented too much. (Rouben
+    Rostamian, 2008 Aug 30)
 8   Lisp indenting: "\\" confuses the indenter. (Dorai Sitaram, 2006 May 17)
 8   Why are continuation lines outside of a {} block not indented?  E.g.:
 	long_type foo =
@@ -3309,6 +3553,8 @@
     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?
+9   Add "v" offset: "/pat/v": search for pattern and start Visual mode on the
+    matching text.
 8   Add a mechanism for recursiveness: "\@(([^()]*\@g[^()]*)\)".  \@g stands
     for "go recursive here" and \@( \) marks the recursive part.
     Perl does it this way:
@@ -3319,6 +3565,9 @@
 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
+8   When using an expression for ":s", set the match position in a v:
+    variable.  So that you can do ":%s/^/\=v:lnum/" to put a line number
+    before each line.
 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
@@ -3330,7 +3579,7 @@
 7   Add an option to accept a match at the cursor position.  Also for
     search(). (Brett)
 7   Add a flag to "/pat/" to discard an error.  Useful to continue a mapping
-    when a search fails.  Could be "/pat/E" (e is already used for an offset).
+    when a search fails.  Could be "/pat/E" (e is already used for end offset).
 7   Add pattern item to use properties of Unicode characters.  In Perl it's
     "\p{L}" for a letter.  See Regular Expression Pocket Reference.
 8   Would it be possible to allow ":23,45/pat/flags" to search for "pat" in
@@ -3442,7 +3691,9 @@
     storing the differences.
 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.
+-   Persistent undo: store undo in a file.  Patch by Jordan Lewis, 2009 Feb
+    20.
+    Older ideas:
     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
     keep undo: "3h", "1d", "2w", "1y", etc.  For the file use dot and
@@ -3835,14 +4086,15 @@
     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".
+7   Allow a window not to have a statusline.  Makes it possible to use a
+    window as a buffer-tab selection.
+8   Allow non-active windows to have a different statusline. (Yakov Lerner)
 6   Python interface: add vim.message() function. (Michal Vitecek, 2002 Nov 5)
 7   Support using ":vert" with User commands.  Add expandable items <vert>.
     Do the same for ":browse" and ":confirm"?
     For ":silent" and ":debug" apply to the whole user command.
     More general: need a way to access command modifiers in a user command.
     Assign them to a v: variable?
-7   Allow a window not to have a statusline.  Makes it possible to use a
-    window as a buffer-tab selection.
 7   Add an invisible buffer which can be edited.  For use in scripts that want
     to manipulate text without changing the window layout.
 8   Add a command to revert to the saved version of file; undo or redo until
@@ -3907,12 +4159,6 @@
 3   Make "2d%" work like "d%d%" instead of "d2%"?
 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
-    back (older file) and "]n" to go forward (newer file) (like ^O and ^I for
-    jumps). (Webb)  Use ":files" and ":ls" to list the files in history order.
-7   Add a history of recently accessed buffer.	Maybe make "2 CTRL-^" jump to
-    the 2nd previously visited buffer, "3 CTRL-^" to the third, etc.  Or use
-    "3 g CTRL-^" for this?
 -   Add code to disable the CAPS key when going from Insert to Normal mode.
 -   Set date/protection/etc. of the patchfile the same as the original file.
 -   Use growarray for termcodes[] in term.c
@@ -4098,7 +4344,7 @@
 -   Updatescript() can be done faster with a string instead of a char.
 -   Screen updating is inefficient with CTRL-F and CTRL-B when there are long
--   Uppercase characters in ex commands can be made lowercase?
+-   Uppercase characters in Ex commands can be made lowercase?
 8   Add option to show characters in text not as "|A" but as decimal ("^129"),
     hex ("\x81") or octal ("\201") or meta (M-x).  Nvi has the 'octal' option
     to switch from hex to octal.  Vile can show unprintable characters in hex
@@ -4158,7 +4404,7 @@
     for use in macro's and the like.
 -   Keep output from listings in a window, so you can have a look at it while
     working in another window.  Put cmdline in a separate window?
--   Add possibility to put output of ex commands in a buffer or file, e.g. for
+-   Add possibility to put output of Ex commands in a buffer or file, e.g. for
     ":set all".  ":r :set all"?
 -   'edit' option: When off changing the buffer is not possible (Really
     read-only mode).