Patches for Vim - Vi IMproved 9.0

The files in this directory contain source code changes to fix problems
in a released version of Vim.  Each file also contains an explanation of
the problem that is fixed, like the message that was sent to the vim-dev
maillist.

The best is to apply the patches in sequence.  This avoids problems when
a patch depends on a previous patch. 

Before patching, change to the top Vim directory, where the "src" and
"runtime" directories are located.
Depending on the version of "patch" that you use, you may have add an
argument to make it patch the right file:
        patch -p < 9.0.0001
        patch -p0 < 9.0.0001

After applying a patch, you need to compile Vim.  There are no patches
for binaries.

Checksums for the patch files can be found in the file MD5SUMS.


Individual patches for Vim 9.0:

  SIZE  NAME      FIXES
 10943  9.0.0001  Travis CI is no longer used
  7187  9.0.0002  map functionality outside of map.c
 13500  9.0.0003  functions are global while they could be local
  3161  9.0.0004  plural messages not translated properly
  1987  9.0.0005  hare files are not recognized
  7042  9.0.0006  not all Visual Basic files are recognized
 23035  9.0.0007  no support for double, dotted and dashed underlines
  6874  9.0.0008  cannot specify the variable name for "xxd -i"
  2278  9.0.0009  going past the end of a menu item with only modifier
  3026  9.0.0010  returning 0 for has('patch-9.0.0') is inconsistent
  1982  9.0.0011  reading beyond the end of the line with put command
  5607  9.0.0012  signature files not detected properly
 22831  9.0.0013  reproducing memory access errors can be difficult
  2178  9.0.0014  missing part of the test override change
  2455  9.0.0015  with EXITFREE defined terminal menus are not cleared
  6026  9.0.0016  comparing line pointer for 'breakindent' is not reliable
  1968  9.0.0017  accessing memory beyond the end of the line
  2237  9.0.0018  going over the end of the typahead
  2038  9.0.0019  timers test not run where possible
  2512  9.0.0020  with some completion reading past end of string
  3392  9.0.0021  invalid memory access when adding word to spell word list
  1537  9.0.0022  spell test fails
  7528  9.0.0023  on Solaris timer_create() exists but does not work
  1807  9.0.0024  may access part of typeahead buf that isn't filled
  2411  9.0.0025  accessing beyond allocated memory with the cmdline window
  2597  9.0.0026  accessing freed memory with diff put
 28245  9.0.0027  the command line test is getting quite big
  3048  9.0.0028  MS-Windows: tests fail if there is a "runtime" directory
  4014  9.0.0029  the bitmaps/vim.ico file is not in the distribution
  1834  9.0.0030  matchfuzzy test depends on path of current directory
  6659  9.0.0031  <cmod> of user command does not have correct verbose value
  3962  9.0.0032  in the quickfix window 'cursorline' overrules QuickFixLine
  2617  9.0.0033  on a Belgian keyboard CTRL-[ does not work
  3121  9.0.0034  spell tests do not always clear the word list
  2749  9.0.0035  spell dump may go beyond end of an array
 43198  9.0.0036  'fillchars' cannot have window-local values
  1806  9.0.0037  build error
  3496  9.0.0038  'listchars' test fails
  1584  9.0.0039  not all systems have GDK_KEY_dead_circumflex
 15109  9.0.0040  use of set_chars_option() is confusing
  5565  9.0.0041  a couple of filetype patterns do not have "*" before "/etc"
  1498  9.0.0042  missing change for filetype detection
  3054  9.0.0043  insufficient testing for bracket commands
  4013  9.0.0044  typos in comments, wrapping lines
  8646  9.0.0045  reading past end of completion with a long line
  2228  9.0.0046  reading past end of completion with duplicate match
  2821  9.0.0047  using freed memory with recursive substitute
 21444  9.0.0048  cursor in wrong column with mouse click after concealed text
  2452  9.0.0049  csv and tsv files are not recognized
  1553  9.0.0050  split else-if is confusing
  2767  9.0.0051  using CTRL-C wih :append may hang Vim
  3201  9.0.0052  "zG" may throw an error if invalid character follows
  2194  9.0.0053  E1281 not tested with the old regexp engine
  1608  9.0.0054  compiler warning for size_t to int conversion
  4433  9.0.0055  bitbake files are not detected
  2158  9.0.0056  wrong line number reported when :cexpr fails in :def function
  2009  9.0.0057  has('patch-xxx') returns true
  8298  9.0.0058  Win32: cannot test low level events
 11801  9.0.0059  test file has wrong name 
  2022  9.0.0060  accessing uninitialized memory when completing long line
  5900  9.0.0061  ml_get error with nested autocommand
  1889  9.0.0062  compiler warnings for signed/unsigned char
 57792  9.0.0063  too many type casts for dict_get functions
  2537  9.0.0064  confusing error when using "q:" in command line window
  6470  9.0.0065  cross-compiling doesn't work because of timer_create check
  2828  9.0.0066  switching window uneccarily when getting buffer options
 76728  9.0.0067  cannot show virtual text
  1896  9.0.0068  build fails with tiny features
  1595  9.0.0069  leaking memory when using text prop with inserted text
  2892  9.0.0070  using utfc_ptr2char_len() when length is negative
  2635  9.0.0071  command overlaps with printed text in scrollback
  1617  9.0.0072  compiler warning for uninitialized variable
  3866  9.0.0073  too many files recognized as bsdl
  2538  9.0.0074  Coverity warns for double free
  2021  9.0.0075  some compilers warn for using an uninitialized variable
  2302  9.0.0076  no test for what patch 8.1.1424 fixes
  4067  9.0.0077  wrong restored cursor position if switching window in autocmd
  4153  9.0.0078  star register is unexpectedly changed when deleting
  3168  9.0.0079  error in autoload script not reported for 'foldexpr'
  2242  9.0.0080  compiler warning for size_t to int conversion
  2614  9.0.0081  command line completion of user command may have duplicates
  3965  9.0.0082  cannot interrupt global command from command line
  8265  9.0.0083  ModeChanged event not triggered when leaving cmdline window
  2596  9.0.0084  using "terraform" filetype for .tfvars file is bad
  2232  9.0.0085  ":write" fails after ":file name" and then ":edit"
  2801  9.0.0086  tabline is not redrawn when entering command line
  9266  9.0.0087  MS-Windows: CTRL-[ on Belgian keyboard does not work like Esc
  2810  9.0.0088  pattern for detecting bitbake files is not sufficient
  2771  9.0.0089  fuzzy argument completion doesn't work for shell commands
  3448  9.0.0090  no error when assigning bool to a string option
  1571  9.0.0091  duplicate error number
  3344  9.0.0092  plugins cannot change v:completed_item
  2610  9.0.0093  sway config files are recognized as i3config
  3305  9.0.0094  cursor restored unexpected with nested autocommand
  3211  9.0.0095  conditions are always true
  9909  9.0.0096  flag "new_value_alloced" is always true
  3080  9.0.0097  long quickfix line is truncated for :clist
  4463  9.0.0098  missing include file in timer_create configure check
  6440  9.0.0099  scrollback can be wrong after redrawing the command line
  1791  9.0.0100  get hit-enter prompt for system() when '!' is in 'guioptions'
  2794  9.0.0101  invalid memory access in diff mode with "dp" and undo
  1977  9.0.0102  reading past end of line with insert mode completion
 10290  9.0.0103  if running configure with cached results -lrt may be missing
  2192  9.0.0104  going beyond allocated memory when evaluating string constant
  4082  9.0.0105  illegal memory access when pattern starts with illegal byte
  1965  9.0.0106  illegal byte regexp test doesn't fail when fix is reversed
  1679  9.0.0107  condition always has the same value
  3603  9.0.0108  configure check for timer_create may give wrong error
  3041  9.0.0109  writing over the end of a buffer on stack
  6200  9.0.0110  help tag generation picks up words in code examples
  3507  9.0.0111  "nocombine" is missing from synIDattr()
  2215  9.0.0112  MS-Windows: test fails because file already exists
  3585  9.0.0113  has() is not strict about parsing the patch version
 20547  9.0.0114  the command line takes up space even when not used
  3596  9.0.0115  when 'cmdheight' is zero pressing ':' may scroll a window
  4387  9.0.0116  virtual text not displayed if 'signcolumn' is "yes"
  4359  9.0.0117  text of removed textprop with text is not freed
  5408  9.0.0118  no test for what patch 9.0.0115 fixes
  2331  9.0.0119  tiny chance that creating a backup file fails
  2374  9.0.0120  MS-Windows GUI: cannot use AltGr + Space
 25626  9.0.0121  cannot put virtual text after or below a line
  2021  9.0.0122  breakindent test fails
  1599  9.0.0123  cannot build with small features
 20585  9.0.0124  code has more indent than needed
  3234  9.0.0125  cursor positioned wrong with virtual text after the line
  3110  9.0.0126  expanding file names fails in dir with more than 255 entries
  1607  9.0.0127  unused variable
  2669  9.0.0128  Coverity complains about possible double free
  1558  9.0.0129  compiler warning for int/size_t usage
  5275  9.0.0130  cursor position wrong when inserting around virtual text
  4402  9.0.0131  virtual text with Tab is not displayed correctly
  9119  9.0.0132  multi-byte characters in virtual text not handled correctly
  8894  9.0.0133  virtual text after line moves to joined line
  2416  9.0.0134  no test for text property with column zero
  2321  9.0.0135  comment about tabpage line above the wrong code
  2556  9.0.0136  after CTRL-Left-mouse click a mouse scroll also has CTRL
  1489  9.0.0137  debugger test may fail when $CWD is very long
  4083  9.0.0138  not enough characters accepted for 'spellfile'
 19135  9.0.0139  truncating virtual text after a line not implemented
  3634  9.0.0140  execute() does not use the "legacy" command modifier
  3107  9.0.0141  "delmenu" does not remove autocmmands
  4144  9.0.0142  crash when adding and removing virtual text
  7209  9.0.0143  cursor positioned after virtual text in empty line
  6648  9.0.0144  text property cannot override 'cursorline' highlight
  9354  9.0.0145  substitute that joins lines drops text properties
  4116  9.0.0146  missing part of change for "override" flag
  3791  9.0.0147  cursor positioned wrong after two "below" text properties
  3348  9.0.0148  a "below" aligned text property gets 'showbreak' displayed
  2744  9.0.0149  test for fuzzy completion fails sometimes
  4119  9.0.0150  error for using #{ in an expression is a bit confusing
 73530  9.0.0151  a "below" aligned text property does not work with 'nowrap'
  1616  9.0.0152  warning for unused argument in small build
 85848  9.0.0153  no fold and sign column for virtual text with "below" align
 10213  9.0.0154  text properties wrong after splitting a line
  7252  9.0.0155  text properties "right" and "after" wrong with 'nowrap'
  5883  9.0.0156  giving E1170 only in an expression is confusing
  5456  9.0.0157  'showbreak' displayed below truncated "after" text prop
  6984  9.0.0158  with 'nowrap' "below" property not displayed correctly
  1981  9.0.0159  cannot build with small features
  1612  9.0.0160  some diff mode tests fail
  1692  9.0.0161  warning for uninitialized variable
  3263  9.0.0162  text property "below" gets indent if 'breakindent' is set
  2771  9.0.0163  text property not adjusted for text inserted with "p"
  2051  9.0.0164  using freed memory with put command
 10170  9.0.0165  looking up a text property type by ID is slow
  2762  9.0.0166  when using text properties line text length computed twice
  2445  9.0.0167  checking for text properties could be a bit more efficient
 12352  9.0.0168  cursor positioned wrong with two virtual text properties
  2982  9.0.0169  insufficient testing for line2byte() with text properties
  4918  9.0.0170  various minor code formatting issues
  1929  9.0.0171  quickfix line highlight is overruled by 'cursorline'
  2292  9.0.0172  trying to allocate zero bytes
  1718  9.0.0173  assert fails only on MS-Windows
  2230  9.0.0174  no error for using "#{ comment" in a compiled function
  3698  9.0.0175  spell checking for capital not working with trailing space
  5960  9.0.0176  checking character options is duplicated and incomplete
  3553  9.0.0177  cursor position wrong with 'virtualedit' and mouse click
 12603  9.0.0178  cursor position wrong with virtual text before Tab
 10693  9.0.0179  cursor pos wrong with wrapping virtual text in empty line
  1599  9.0.0180  stray logfile appears when running tests
  8334  9.0.0181  textprop test with line2byte() fails on MS-Windows
  2585  9.0.0182  quarto files are not recognized
  4622  9.0.0183  extra space after virtual text when 'linebreak' is set
  2851  9.0.0184  virtual text prop highlight continues after truncation
  5393  9.0.0185  virtual text does not show if text prop at same position
 10322  9.0.0186  virtual text without highlighting does not show
  2194  9.0.0187  command line height changes when maximizing window height
  2491  9.0.0188  strange effects when using "text_align" with non-zero column
  2050  9.0.0189  invalid memory access for text prop without highlight
  6751  9.0.0190  the way 'cmdheight' can be made zero is inconsistent
  3834  9.0.0191  messages test fails; window size incorrect
  2600  9.0.0192  possible invalid memory access when 'cmdheight' is zero
 11352  9.0.0193  search and match highlight interfere with virtual text
  5895  9.0.0194  cursor displayed in wrong position after removing text prop
  2540  9.0.0195  metafun files are not recogized
 17289  9.0.0196  finding value in list may require a for loop
  2045  9.0.0197  astro files are not detected
  2284  9.0.0198  ml_get error when switching buffer in Visual mode
  5503  9.0.0199  cursor position wrong with two right-aligned virtual texts
  8402  9.0.0200  cursor wrong if 'nowrap' and two right aligned text props
  6257  9.0.0201  CursorLine highlight overrules virtual text highlight
 10832  9.0.0202  code and help for indexof() is not ideal
  7107  9.0.0203  confusing variable name
  5210  9.0.0204  indexof() may leak memory
  8258  9.0.0205  cursor in wrong position when inserting after virtual text
175700  9.0.0206  redraw flags are not named specifically
  2859  9.0.0207  stacktrace not shown when debugging
  5593  9.0.0208  the override flag has no effect for virtual text
  2383  9.0.0209  build error with small features
  7914  9.0.0210  'list' mode does not work properly with virtual text
  2315  9.0.0211  invalid memory access when compiling :lockvar
  2221  9.0.0212  invalid memory access when compiling :unlet
  3090  9.0.0213  using freed memory with error in assert argument
 11813  9.0.0214  splitting a line may duplicate virtual text
  1732  9.0.0215  not passing APC_INDENT flag
  2211  9.0.0216  undo earlier test sometimes fails on MS-Windows
  4327  9.0.0217  'shellslash' works differently when sourcing a script again
  2922  9.0.0218  reading before the start of the line
  4005  9.0.0219  cannot make a funcref with "s:func" in a def function
  3758  9.0.0220  invalid memory access with for loop over NULL string
  3307  9.0.0221  accessing freed memory if compiling nested function fails
 14260  9.0.0222  no good reason why text objects are only in larger builds
  1750  9.0.0223  typo in diffmode test
  2841  9.0.0224  Using NULL pointer when skipping compiled code
  8498  9.0.0225  using freed memory with multiple line breaks in expression
  1744  9.0.0226  job_start() test may fail under valgrind
  1826  9.0.0227  cannot read error message when abort() is called
  3601  9.0.0228  crash when pattern looks below the last line
  7271  9.0.0229  Vim9: error message for missing type is not clear
  8754  9.0.0230  no error for comma missing in list in :def function
  3663  9.0.0231  expanding "**" may loop forever with directory links
  2439  9.0.0232  test with BufNewFile autocmd is flaky
 16452  9.0.0233  removing multiple text properties takes many calls
  3115  9.0.0234  cannot make difference between :normal end and argument char
  3539  9.0.0235  'autoshelldir' does not work with chunked respose
  2162  9.0.0236  popup menu not removed when 'wildmenu' reset while visible
  1521  9.0.0237  Mac: cannot build if dispatch.h is not available
  2690  9.0.0238  Shift-Tab shows matches on cmdline when 'wildmenu' is off
  1646  9.0.0239  build failure without the +wildmenu feature
  2485  9.0.0240  crash when using ":mkspell" with an empty .dic file
  3716  9.0.0241  "make install" does not install shared syntax file
  2533  9.0.0242  "make install" still fails
