summaryrefslogtreecommitdiffstats
path: root/runtime/doc/version9.txt
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-06-20 11:17:32 +0100
committerBram Moolenaar <Bram@vim.org>2022-06-20 11:17:32 +0100
commitd799daa660b8821943cbe1682f00da9e812dd48c (patch)
tree1d08e90a0a11ca9aced21d776ea98944622ec5f1 /runtime/doc/version9.txt
parente366ed4f2c6fa8cb663f1b9599b39d57ddbd8a2a (diff)
Update runtime files
Diffstat (limited to 'runtime/doc/version9.txt')
-rw-r--r--runtime/doc/version9.txt4370
1 files changed, 4362 insertions, 8 deletions
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index 7d5c2585ea..b9713b3952 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -1,4 +1,4 @@
-*version9.txt* For Vim version 8.2. Last change: 2022 Mar 08
+*version9.txt* For Vim version 8.2. Last change: 2022 Jun 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -7,9 +7,9 @@
*vim-9.0* *vim-9* *version-9.0* *version9.0*
Welcome to Vim 9! Several years have passed since the previous release.
A large number of bugs have been fixed, many nice features have been added
-and Vim9 script syntax is introduced. This file mentions all the new items
-and changes to existing features since Vim 8.2.0. The patches up to Vim 8.2
-can be found here: |vim-8.2|.
+and Vim9 script syntax has been introduced. This file mentions all the new
+things and changes to existing features since Vim 8.2.0. The patches up to Vim
+8.2 can be found here: |vim-8.2|.
Use this command to see the full version and features information of the Vim
program you are using: >
@@ -35,7 +35,7 @@ See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and
You can find an overview of the most important changes (according to Martin
Tournoij) on this site: https://www.arp242.net/vimlog/
-
+ *Sven-Guckes*
Vim version 9.0 is dedicated to Sven Guckes, who passed away in February 2022
when the release was being prepared. Sven was a long time supporter of Vim.
He registered the vim.org domain and created the first Vim website. We will
@@ -75,7 +75,9 @@ Options: ~
'autoshelldir' change directory to the shell's current directory
'cdhome' change directory to the home directory by ":cd"
+'cinscopedecls' words that are recognized by 'cino-g'
'guiligatures' GTK GUI: ASCII characters that can form shapes
+'mousemoveevent' report mouse moves with <MouseMove>
'quickfixtextfunc' function for the text in the quickfix window
'spelloptions' options for spell checking
'thesaurusfunc' function to be used for thesaurus completion
@@ -116,6 +118,9 @@ Ex command modifiers: ~
New and extended functions: ~
|assert_nobeep()| assert that a command does not cause a beep
+|autocmd_add()| add a list of autocmds and groups
+|autocmd_delete()| delete a list of autocmds and groups
+|autocmd_get()| return a list of autocmds
|blob2list()| get a list of numbers from a blob
|charclass()| class of a character
|charcol()| character number of the cursor or a mark
@@ -132,13 +137,16 @@ New and extended functions: ~
|fullcommand()| get full command name
|getcharpos()| get character position of cursor, mark, etc.
|getcharstr()| get a character from the user as a string
+|getcmdcompltype()| return current cmdline completion type
|getcursorcharpos()| get character position of the cursor
|getmarklist()| list of global/local marks
|getreginfo()| get information about a register
|gettext()| lookup message translation
|hlget()| get highlight group attributes
|hlset()| set highlight group attributes
+|isabsolutepath()| check if a path is absolute
|list2blob()| get a blob from a list of numbers
+|maplist()| list of all mappings, a dict for each
|mapnew()| make a new List with changed items
|mapset()| restore a mapping
|matchfuzzy()| fuzzy matches a string in a list of strings
@@ -164,6 +172,7 @@ New and extended functions: ~
|test_unknown()| return a value with unknown type
|test_void()| return a value with void type
|typename()| type of a variable as text
+|virtcol2col()| byte index of a character on screen
|win_gettype()| get type of window
|win_move_separator()| move window vertical separator
|win_move_statusline()| move window status line
@@ -193,10 +202,17 @@ New autocommand events: ~
|ModeChanged| after changing the mode
|SigUSR1| after the SIGUSR1 signal has been detected
|WinClosed| after closing a window
+|WinScrolled| after scrolling or resizing a window
|VimSuspend| when suspending Vim
|VimResume| when Vim is resumed after being suspended
+New operator: ~
+
+|>>| bitwise right shift
+|<<| bitwise left shift
+|??| falsy operator
+
New runtime files: ~
Too many to list here.
@@ -205,17 +221,128 @@ Too many to list here.
INCOMPATIBLE CHANGES *incompatible-9*
These changes are incompatible with previous releases. Check this list if you
-run into a problem when upgrading from Vim 8.2.0 to 9.0.
+run into a problem when upgrading from Vim 8.2 to 9.0.
TODO
==============================================================================
IMPROVEMENTS *improvements-9*
+Various small and useful improvements have been made since Vim 8.2. Here is a
+collection of changes that are worth mentioning.
+
Many memory leaks, invalid memory accesses and crashes have been fixed.
-See the list of patches below.
+See the list of patches below: |bug-fixes-9|.
-TODO
+Support for Vim expression evaluation in a string. |interp-string|
+Support for evaluating Vim expressions in a heredoc. |:let-heredoc|
+
+Display the command line completion matches in a popup menu. 'wildoptions'
+
+Support for fuzzy matching a string in a List of strings. |fuzzy-matching|
+
+Fuzzy completion support for command line completion using 'wildoptions'.
+
+Fuzzy match support for |:vimgrep|.
+
+Support for "lsp" channel mode to simplify LSP server RPC communication
+|language-server-protocol|.
+
+Support for sourcing lines from the current buffer. |:source-range|
+
+Support for stopping profiling a Vim script: `:profile stop` and dumping the
+report to a file: `:profile dump` . |:profile|
+
+Argument completion support for the |:scriptnames|, |:profile|, |:profdel|,
+|:breakadd| and |:breakdel| commands.
+
+Support for using a funcref/lambda value with the 'foldtext', 'completefunc',
+'omnifunc', 'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc',
+'imactivatefunc' and 'imstatusfunc' options.
+
+Support for using multibyte items with the 'fillchars', 'stl' and 'stlnc'
+options.
+
+Support for xchacha20 encryption method 'cryptmethod'
+
+Spell check current word with |z=| even when 'spell' is off.
+
+Support for executing Ex commands in a map without changing the current mode
+|<Cmd>| and |<ScriptCmd>|.
+
+A large number of tests have been added to verify the Vim functionality. Most
+of the old style tests have been converted to new style tests using the new
+style assert_* functions.
+
+Add optional error code to |:cquit|.
+
+Support for using a Unix domain socket with a |channel|.
+
+IPv6 support in channels |channel-address|.
+
+Call Vim functions from Lua (vim.call('func', 'arg')).
+
+Add unsigned to 'nrformats'.
+
+Allow setting underline color in terminal.
+
+Expand script ID using expand('<SID>'). |expand()|
+
+Jump to the last accessed tab page using |g<Tab>|.
+
+Locale aware sorting using |:sort| and |sort()|.
+
+Hide cursor when sleeping using |:sleep!|.
+
+Detect focus events in terminal (|FocusGained| and |FocusLost|).
+
+Highlight leading spaces when 'list' is set (|'listchars'|)
+
+Support for looping over a string using |:for|.
+
+Don't reset 'wrap' for diff windows when "followwrap" is set in 'diffopt'.
+
+Support for re-evaluating the 'statusline' expression as a statusline format
+string (%{expr})
+
+Add |zp| and |zP| to paste in block mode without adding trailing white space.
+Add |zy| to yank without trailing white space in block mode.
+
+Add \%.l, \%<.l and \%>.l atoms to match the line the cursor is currently on.
+See |/\%l| for more information.
+
+Add "list" to 'breakindentopt' to add additional indent for lines that match
+a numbered or bulleted list. Add "column" to 'breakindentopt' to indent
+soft-wrapped lines at a specific column.
+
+Add "multispace" to 'listchars' to show two or more spaces no matter where
+they appear.
+
+Add |hl-CursorLineSign| and |hl-CursorLineFold| default highlight groups to
+adjust sign highlighting for 'cursorline'.
+
+Add the |hl-CurSearch| default highlight group for the current search match.
+
+Support directly setting the 'balloonexpr', 'foldexpr', 'formatexpr',
+'includeexpr', 'printexpr', 'patchexpr', 'indentexpr', 'modelineexpr',
+'diffexpr' and 'printexpr' options to a script-local function.
+
+Add the 'P' command in visual mode to paste text in visual mode without
+yanking the deleted text to the unnamed register.
+
+Add "timeout" to 'spellsuggest' to limit the searching time for spell
+suggestions.
+
+Add support for parsing the end line number (%e) and end column number
+(%k) using 'errorformat'.
+
+Add support for logging on Vim startup (|--log|).
+
+Add "/" in 'formatoptions' to stop inserting // when using "o" on a line with
+inline comment.
+
+
+TODO: more
==============================================================================
COMPILE TIME CHANGES *compile-changes-9*
@@ -26920,9 +27047,4236 @@ Solution: Include the script ID in the partial name.
Files: src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c,
src/vim9type.c, src/testdir/test_vim9_import.vim
+Patch 8.2.4430
+Problem: GTK: crash when using 'guiligatures' and reading from stdin.
+Solution: Make a copy of the message. (Amon Sha, closes #9719, closes #9814)
+Files: src/fileio.c
+
+Patch 8.2.4431
+Problem: Unnecessary condition when assigning to a variable.
+Solution: Remove the condition.
+Files: src/evalvars.c
+
+Patch 8.2.4432 (after 8.2.4428)
+Problem: Cannot use settabvar() while the cmdline window is open.
+Solution: Only give an error when actually switching tabpage.
+ (closes #9813)
+Files: src/window.c
+
+Patch 8.2.4433
+Problem: CI: cannot see interface versions for MS-Windows.
+Solution: List the interface versions. (Ken Takata, closes #9811)
+Files: .github/workflows/ci.yml
+
+Patch 8.2.4434
+Problem: Duplicate check for cmdline window.
+Solution: Remove the second check. (Sean Dewar, closes #9816)
+Files: src/window.c
+
+Patch 8.2.4435
+Problem: Dead code in checking map() arguments. (Dominique Pellé)
+Solution: Remove the first return statement. (closes #9815)
+Files: src/evalfunc.c
+
+Patch 8.2.4436
+Problem: Crash with weird 'vartabstop' value.
+Solution: Check for running into the end of the line.
+Files: src/indent.c, src/testdir/test_vartabs.vim
+
+Patch 8.2.4437
+Problem: Vartabs test fails on MS-Windows.
+Solution: Use iso8859-1 'encoding'. (Ken Takata, closes #9818)
+Files: src/testdir/test_vartabs.vim
+
+Patch 8.2.4438
+Problem: Crash on exit when using cmdline window.
+Solution: Reset "cmdwin_type" before exiting. (closes #9817)
+Files: src/ui.c, src/testdir/test_exit.vim
+
+Patch 8.2.4439
+Problem: Accepting "iso8859" 'encoding' as "iso-8859-".
+Solution: use "iso8859" as "iso-8859-1".
+Files: src/mbyte.c, src/testdir/test_options.vim
+
+Patch 8.2.4440
+Problem: Crash with specific regexp pattern and string.
+Solution: Stop at the start of the string.
+Files: src/regexp_bt.c, src/testdir/test_regexp_utf8.vim
+
+Patch 8.2.4441
+Problem: Vim9: function argument of filter() not checked like map().
+Solution: Also check the function argument of filter().
+Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim
+
+Patch 8.2.4442 (after 8.2.4438)
+Problem: Test for error reading input fails on MS-Windows.
+Solution: Don't run the test on MS-Windows.
+Files: src/testdir/test_exit.vim
+
+Patch 8.2.4443 (after 8.2.4440)
+Problem: Regexp pattern test fails on Mac.
+Solution: Do not use a swapfile for the buffer.
+Files: src/testdir/test_regexp_utf8.vim
+
+Patch 8.2.4444
+Problem: Beep caused by test. ASAN reports leaks.
+Solution: Do not put a NL at the end of the script. Make the text work on
+ MS-Windows. Do not run the test with ASAN.
+Files: src/testdir/test_exit.vim
+
+Patch 8.2.4445
+Problem: Exit test fails on MS-Windows anyway.
+Solution: Skip the test on MS-Windows.
+Files: src/testdir/test_exit.vim
+
+Patch 8.2.4446
+Problem: Vim9: cannot refer to a global function like a local one.
+Solution: When g:name is not a variable but a function, use a function
+ reference. (closes #9826)
+Files: src/vim9execute.c, src/testdir/test_vim9_builtin.vim
+
+Patch 8.2.4447
+Problem: Vim9: can still use s:var in a compiled function.
+Solution: Disallow using s:var for Vim9 script. (closes #9824)
+Files: runtime/doc/vim9.txt, src/vim9expr.c, src/vim9compile.c,
+ src/testdir/test_vim9_assign.vim
+
+Patch 8.2.4448 (after 8.2.4447)
+Problem: Filetype detection is failing.
+Solution: Do not use "s:" where it is no longer allowed.
+Files: runtime/autoload/dist/ft.vim,
+
+Patch 8.2.4449
+Problem: vim9: function argument of sort() not checked at compile time.
+Solution: Add a compile time check.
+Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim
+
+Patch 8.2.4450 (after 8.2.4449)
+Problem: List sort test fails.
+Solution: Pass a valid "how" argument.
+Files: src/testdir/test_listdict.vim
+
+Patch 8.2.4451 (after 8.2.4450)
+Problem: sort() fails when ignoring case.
+Solution: Accept a number one argument in sort().
+Files: src/evalfunc.c, src/testdir/test_listdict.vim
+
+Patch 8.2.4452
+Problem: Test for what 8.2.4436 fixes does not check for regression.
+Solution: Set several options. (Ken Takata, closes #9830)
+Files: src/testdir/test_vartabs.vim
+
+Patch 8.2.4453
+Problem: :helpgrep may free an option that was not allocated. (Yegappan
+ Lakshmanan)
+Solution: Check if the value was allocated.
+Files: src/option.c, src/proto/option.pro, src/quickfix.c,
+ src/testdir/test_quickfix.vim
+
+Patch 8.2.4454
+Problem: Resetting cmdwin_type only for one situation.
+Solution: Reset cmdwin_type before closing windows. (closes #9822)
+Files: src/ui.c, src/window.c, src/testdir/test_exit.vim
+
+Patch 8.2.4455
+Problem: Accepting one and zero for the second sort() argument is strange.
+Solution: Disallow using one and zero in Vim9 script.
+Files: runtime/doc/builtin.txt, src/evalfunc.c, src/list.c,
+ src/testdir/test_listdict.vim
+
+Patch 8.2.4456
+Problem: Terminal test may fail on some machines.
+Solution: Increase wait time. (Zdenek Dohnal, closes #9834)
+Files: src/testdir/test_terminal.vim
+
+Patch 8.2.4457
+Problem: The GPM library can only be linked statically.
+Solution: Make it possible to load the GPM library dynamically. (Damien)
+Files: runtime/doc/various.txt, src/config.h.in, src/configure.ac,
+ src/Makefile, src/evalfunc.c, src/feature.h, src/os_unix.c,
+ src/proto/os_unix.pro, src/version.c
+
+Patch 8.2.4458
+Problem: Vim9: compiling filter() call fails with funcref that has unknown
+ arguments.
+Solution: Do not check the arguments if they are unknown at compile time.
+ (closes #9835)
+Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim
+
+Patch 8.2.4459
+Problem: Vim9: compiling sort() call fails with a funcref that has unknown
+ arguments.
+Solution: Do not check the arguments if they are unknown at compile time.
+ (closes #9835)
+Files: src/evalfunc.c, src/testdir/test_vim9_builtin.vim
+
+Patch 8.2.4460
+Problem: Vim9: wrong error for defining dict function.
+Solution: Explicitly check for trying to define a dict function.
+ (closes 9827)
+Files: src/errors.h, src/userfunc.c, src/vim9compile.c,
+ src/testdir/test_vim9_func.vim
+
+Patch 8.2.4461
+Problem: MS-Windows: garbage characters on stdout with VIMDLL.
+Solution: Don't call gui_focus_change() when about to quit. (Ken Takata,
+ closes #9840)
+Files: src/gui_w32.c
+
+Patch 8.2.4462
+Problem: Not enough testing for quickfix code.
+Solution: Add more tests. Fix uncovered problem. (Yegappan Lakshmanan,
+ closes #9839)
+Files: src/quickfix.c, src/window.c, src/testdir/test_makeencoding.vim,
+ src/testdir/test_quickfix.vim
+
+Patch 8.2.4463
+Problem: Completion only uses strict matching.
+Solution: Add the "fuzzy" item for 'wildoptions'. (Yegappan Lakshmanan,
+ closes #9803)
+Files: runtime/doc/options.txt, src/buffer.c, src/cmdexpand.c,
+ src/option.c, src/option.h, src/optionstr.c,
+ src/proto/cmdexpand.pro, src/proto/option.pro,
+ src/proto/search.pro, src/search.c, src/structs.h,
+ src/testdir/gen_opt_test.vim, src/testdir/test_cmdline.vim
+
+Patch 8.2.4464
+Problem: Dtrace files are recognized as filetype D.
+Solution: Add a pattern for Dtrace files. (Teubel György, closes #9841)
+ Add some more testing.
+Files: runtime/autoload/dist/ft.vim, runtime/filetype.vim,
+ src/testdir/test_filetype.vim
+
+Patch 8.2.4465
+Problem: Fuzzy completion does not order matches properly.
+Solution: Do not use regular expression match. (Yegappan Lakshmanan,
+ closes #9843)
+Files: src/cmdexpand.c, src/search.c, src/testdir/test_cmdline.vim
+
+Patch 8.2.4466
+Problem: MS-Windows: illegal memory access in installer when using
+ "create-directories" as the final argument.
+Solution: Check the argument count. (Cam Sinclair, closes #9844)
+Files: src/dosinst.c
+
+Patch 8.2.4467
+Problem: Running filetype test leaves file behind.
+Solution: Delete the file.
+Files: src/testdir/test_filetype.vim
+
+Patch 8.2.4468
+Problem: Coverity warns for uninitialized struct member.
+Solution: Set color.index to zero.
+Files: src/terminal.c
+
+Patch 8.2.4469
+Problem: Coverity warns for uninitialized variable.
+Solution: Set the value to zero.
+Files: src/ex_getln.c
+
+Patch 8.2.4470
+Problem: Coverity warns for uninitialized variable.
+Solution: Set can_spell to zero.
+Files: src/drawline.c
+
+Patch 8.2.4471
+Problem: Coverity warns for uninitialized variable.
+Solution: Set flags to zero.
+Files: src/vim9cmds.c
+
+Patch 8.2.4472
+Problem: Coverity warns for use of a freed function name.
+Solution: Only check an autoload name when is prefixed.
+Files: src/userfunc.c
+
+Patch 8.2.4473
+Problem: Coverity warnds for not checking return value of ftell().
+Solution: Bail out if ftell() returns a negative value.
+Files: src/spellfile.c
+
+Patch 8.2.4474
+Problem: Memory allocation failures not tested in quickfix code.
+Solution: Add alloc IDs and tests. (Yegappan Lakshmanan, closes #9848)
+Files: src/alloc.h, src/quickfix.c, src/vim.h,
+ src/testdir/test_quickfix.vim
+
+Patch 8.2.4475
+Problem: Fuzzy cmdline completion does not work for lower case.
+Solution: Also use fuzzy completion for lower case input. (Yegappan
+ Lakshmanan, closes #9849)
+Files: src/cmdexpand.c, src/testdir/test_cmdline.vim
+
+Patch 8.2.4476
+Problem: Operator name spelled wrong.
+Solution: Change trinary to ternary. (Goc Dundar, closes #9850)
+Files: src/testdir/test_expr.vim, src/testdir/test_vim9_expr.vim,
+ src/testdir/test_vimscript.vim
+
+Patch 8.2.4477
+Problem: Crash when using fuzzy completion.
+Solution: Temporary fix: put back regexp. (closes #9851)
+Files: src/cmdexpand.c
+
+Patch 8.2.4478
+Problem: Crash when using fuzzy completion.
+Solution: Temporary fix: put back regexp. (closes #9852, closes #9851)
+Files: src/cmdexpand.c, src/testdir/test_cmdline.vim
+
+Patch 8.2.4479
+Problem: No fuzzy completieon for maps and abbreviations.
+Solution: Fuzzy complete maps and abbreviations. (Yegappan Lakshmanan,
+ closes #9856)
+Files: src/cmdexpand.c, src/map.c, src/proto/map.pro, src/search.c,
+ src/testdir/test_cmdline.vim
+
+Patch 8.2.4480
+Problem: Suspending with CTRL-Z does not work on Android.
+Solution: Do not handle SIGTSTP. (closes #9854)
+Files: src/os_unix.c
+
+Patch 8.2.4481
+Problem: Cmdline popup menu not removed when 'lazyredraw' is set.
+Solution: Temporarily reset 'lazyredraw' when removing the popup menu.
+ (closes #9857)
+Files: src/cmdexpand.c, src/testdir/test_cmdline.vim,
+ src/testdir/dumps/Test_wildmenu_pum_41.dump
+
+Patch 8.2.4482
+Problem: No fuzzy cmdline completion for user defined completion.
+Solution: Add fuzzy completion for user defined completion. (Yegappan
+ Lakshmanan, closes #9858)
+Files: src/cmdexpand.c, src/testdir/test_cmdline.vim
+
+Patch 8.2.4483
+Problem: Command completion makes two rounds to collect matches.
+Solution: Use a growarray to collect matches. (Yegappan Lakshmanan,
+ closes #9860)
+Files: src/buffer.c, src/cmdexpand.c, src/map.c,
+ src/testdir/test_cmdline.vim
+
+Patch 8.2.4484
+Problem: Vim9: some error messages are not tested.
+Solution: Add a few more test cases. Delete dead code.
+Files: src/vim9execute.c, src/testdir/test_vim9_assign.vim,
+ src/testdir/test_vim9_expr.vim, src/testdir/test_vim9_func.vim
+
+Patch 8.2.4485
+Problem: Compiler warning for uninitialized variable.
+Solution: Initialize the variable. (John Marriott)
+Files: src/cmdexpand.c
+
+Patch 8.2.4486
+Problem: MS-Windows GUI: slow scrolling with maximized window.
+Solution: Use a better way to check the window is on screen. (Ken Takata,
+ closes #9865)
+Files: src/gui_w32.c
+
+Patch 8.2.4487
+Problem: Vim9: cannot compare with v:null.
+Solution: Allow comparing anything with v:null. (closes #9866)
+Files: src/vim9instr.c, src/typval.c, src/proto/typval.pro,
+ src/vim9.h, src/vim9execute.c, src/evalvars.c,
+ src/testdir/test_vim9_expr.vim,
+ src/testdir/test_vim9_disassemble.vim
+
+Patch 8.2.4488 (after 8.2.4487)
+Problem: Build error with +eval but without +channel or +job.
+Solution: Add #ifdef. (John Marriott)
+Files: src/typval.c
+
+Patch 8.2.4489 (after 8.2.4487)
+Problem: Failing test for comparing v:null with number.
+Solution: Allow comparing v:null with number in legacy script.
+ (Ken Takata, closes #9873) Also do this for float.
+Files: src/typval.c, src/testdir/test_vimscript.vim
+
+Patch 8.2.4490
+Problem: Terminal focus reporting only works for xterm-like terminals.
+ (Jonathan Rascher)
+Solution: Remove the "focus_mode" flag. (closes #9859)
+Files: src/term.c
+
+Patch 8.2.4491
+Problem: MS-Windows makefile dependencies are outdated.
+Solution: Update dependencies. (Ken Takata, closes #9876)
+Files: src/Make_cyg_ming.mak, src/Make_mvc.mak
+
+Patch 8.2.4492
+Problem: No error if an option is given an invalid value with
+ ":let &opt = val".
+Solution: Give the error. (closes #9864)
+Files: src/evalvars.c, src/testdir/test_options.vim
+
+Patch 8.2.4493 (after 8.2.4492)
+Problem: Options test fails in the GUI.
+Solution: Do not save and restore 'term'.
+Files: src/testdir/gen_opt_test.vim
+
+Patch 8.2.4494
+Problem: The find_tags() function is much too long.
+Solution: Refactor the function. (Yegappan Lakshmanan, closes #9869)
+Files: src/quickfix.c, src/tag.c, src/testdir/test_tagjump.vim
+
+Patch 8.2.4495
+Problem: Help test fails in 24 line terminal.
+Solution: Use up to 23 lines for text.
+Files: src/testdir/test_help.vim
+
+Patch 8.2.4496 (after 8.2.4494)
+Problem: Coverity gives warnings after tags code refactoring.
+Solution: Avoid the warnings. (Yegappan Lakshmanan, closes #9882)
+Files: src/tag.c
+
+Patch 8.2.4497
+Problem: Wrong color for half of wide character next to pum scrollbar.
+Solution: Redraw the screen cell with the right color. (closes #9874)
+Files: src/screen.c, src/testdir/test_ins_complete.vim,
+ src/testdir/dumps/Test_scrollbar_on_wide_char.dump
+
+Patch 8.2.4498
+Problem: Using <Plug> with "noremap" does not work.
+Solution: Always remap <Plug>. (closes #9879, closes #9789)
+Files: runtime/doc/map.txt, src/getchar.c, src/testdir/test_mapping.vim
+
+Patch 8.2.4499
+Problem: Vim9: at the script level declarations leak from try block to
+ catch and finally block.
+Solution: End the block and start a new one. (closes #9883)
+Files: src/ex_eval.c, src/testdir/test_vim9_script.vim
+
+Patch 8.2.4500
+Problem: Vim9: can declare a global variable on the command line.
+Solution: Disallow declaring a variable on the command line. (closes #9881)
+Files: src/errors.h, src/evalvars.c, src/testdir/test_vim9_assign.vim,
+ src/testdir/test_vim9_script.vim,
+ src/testdir/dumps/Test_vim9_reject_declaration.dump
+
+Patch 8.2.4501
+Problem: With 'showbreak' set and after the end of the line the cursor
+ may be displayed in the wrong position.
+Solution: Do not apply 'showbreak' after the end of the line. (closes #9884)
+Files: src/charset.c, src/testdir/test_breakindent.vim,
+ src/testdir/dumps/Test_cursor_position_with_showbreak.dump
+
+Patch 8.2.4502
+Problem: In the GUI a modifier is not recognized for the key typed after
+ CTRL-X, which may result in a mapping to be used. (Daniel
+ Steinberg)
+Solution: Recognize a modifier starting with CSI. (closes #9889)
+Files: src/getchar.c, src/testdir/test_ins_complete.vim
+
+Patch 8.2.4503
+Problem: Vim9: there is no point in supporting :Print and :mode.
+Solution: Do not recognize :Print and :mode as commands. (closes #9870)
+Files: src/ex_docmd.c, src/testdir/test_vim9_script.vim
+
+Patch 8.2.4504
+Problem: When there is a partially matching map and modifyOtherKeys is
+ active a full map may not work.
+Solution: Only simplify modifiers when there is no matching mapping.
+ (closes #8792)
+Files: src/getchar.c, src/testdir/test_termcodes.vim
+
+Patch 8.2.4505
+Problem: Vim9: outdated "autocmd nested" still works.
+Solution: Do not accept the :autocmd argument "nested" without "++" in Vim9
+ script.
+Files: src/autocmd.c, src/errors.h, src/testdir/test_autocmd.vim
+
+Patch 8.2.4506
+Problem: "pattern not found" for :global is not an error message.
+Solution: In Vim9 script make this an actual error, so that try/catch can be
+ used as expected.
+Files: src/ex_cmds.c, src/errors.h, src/testdir/test_global.vim
+
+Patch 8.2.4507 (after 8.2.4506)
+Problem: Test fails because of new error message.
+Solution: Avoid the test fails.
+Files: src/testdir/test_vim9_cmd.vim
+
+Patch 8.2.4508
+Problem: Vim9: cannot assign to a global variable on the command line.
+Solution: Allow using :vim9cmd for assignment on the command line.
+Files: src/evalvars.c, src/testdir/test_vim9_script.vim,
+ src/testdir/dumps/Test_vim9_reject_declaration.dump,
+ src/testdir/dumps/Test_vim9_reject_declaration_1.dump,
+ src/testdir/dumps/Test_vim9_reject_declaration_2.dump
+
+Patch 8.2.4509
+Problem: Vim9: can declare a variable with ":va".
+Solution: Disallow using ":va", require using ":var".
+Files: src/evalvars.c, src/errors.h, src/vim9compile.c,
+ src/testdir/test_vim9_assign.vim
+
+Patch 8.2.4510
+Problem: Vim9: shortening commands leads to confusing script.
+Solution: In Vim9 script require at least ":cont" for ":continue", "const"
+ instead of "cons", "break" instead of "brea", "catch" instead of
+ "cat", "else" instead of "el" "elseif" instead of "elsei" "endfor"
+ instead of "endfo" "endif" instead of "en" "endtry" instead of
+ "endt", "finally" instead of "fina", "throw" instead of "th",
+ "while" instead of "wh".
+Files: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/evalvars.c,
+ src/vim9compile.c, src/testdir/test_vim9_script.vim
+
+Patch 8.2.4511
+Problem: Filetype test fails.
+Solution: Change "endw" to "endwhile".
+Files: runtime/autoload/dist/ft.vim
+
+Patch 8.2.4512
+Problem: The find_tags_in_file() function is much too long.
+Solution: Refactor into multiple smaller functions. (Yegappan Lakshmanan,
+ closes #9892)
+Files: Filelist, src/Makefile, src/quickfix.c, src/tag.c,
+ src/testdir/test83-tags2, src/testdir/test83-tags3,
+ src/testdir/test_tagjump.vim
+
+Patch 8.2.4513
+Problem: Window-local directory is not applied if 'acd' fails.
+Solution: Don't call do_autochdir(). (closes #9891)
+Files: src/window.c, src/testdir/test_autochdir.vim
+
+Patch 8.2.4514
+Problem: Vim9: some flow commands can be shortened.
+Solution: Also require using the full name for ":return", ":enddef",
+ ":continue", ":export" and ":import".
+Files: src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c,
+ src/testdir/test_vim9_script.vim
+
+Patch 8.2.4515
+Problem: Old subsitute syntax is still supported.
+Solution: Disallow using backslash after ":s" in Vim9 script.
+Files: src/ex_cmds.c, src/errors.h, src/testdir/test_substitute.vim
+
+Patch 8.2.4516 (after 8.2.4515)
+Problem: Build failure without the +eval feature.
+Solution: Move error message outside of #ifdef.
+Files: src/errors.h
+
+Patch 8.2.4517
+Problem: MS-Windows: cannot specify location of sodium library.
+Solution: Allow for using a path for SODIUM. (Ken Takata, closes #9896)
+Files: src/Make_cyg_ming.mak
+
+Patch 8.2.4518
+Problem: The binary tag search feature is always enabled.
+Solution: Remove the #ifdefs. Add a few more tests. (Yegappan Lakshmanan,
+ closes #9893)
+Files: src/evalfunc.c, src/feature.h, src/tag.c, src/version.c,
+ src/testdir/test_tagjump.vim, src/testdir/test_taglist.vim
+
+Patch 8.2.4519
+Problem: Vim9: Can still use ":fini" and ":finis" for ":finish".
+Solution: Require using ":finish".
+Files: src/ex_cmds.h, src/testdir/test_vim9_script.vim
+
+Patch 8.2.4520
+Problem: Using wrong highlight for cursor line number.
+Solution: Take filler lines into account when using CursorLineNr.
+ (closes #9897)
+Files: src/drawline.c, src/testdir/test_diffmode.vim,
+ src/testdir/dumps/Test_diff_with_cursorline_number_01.dump,
+ src/testdir/dumps/Test_diff_with_cursorline_number_02.dump
+
+Patch 8.2.4521 (after 8.2.4520)
+Problem: Build failure without the +diff feature. (John Marriott)
+Solution: Define filler+lines if not declaring it.
+Files: src/drawline.c
+
+Patch 8.2.4522 (after 8.2.4492)
+Problem: GUI test fails with Motif. (Dominique Pellé)
+Solution: Remove using an invalid value for 'guifontset'.
+Files: src/testdir/test_gui.vim
+
+Patch 8.2.4523
+Problem: When gvim is started maximized the 'window' option isn't set
+ properly. (Christian J. Robinson)
+Solution: Check if 'windows' was already set or not. (Ken Takata,
+ closes #9904)
+Files: src/term.c
+
+Patch 8.2.4524
+Problem: MS-Windows: cannot build with some sodium libraries.
+Solution: Make the DLL name configuragle. Add build instructions.
+ (Ken Takata, closes #9905)
+Files: src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak,
+ src/crypt.c
+
+Patch 8.2.4525
+Problem: Some GUI tests don't work on Athena.
+Solution: Skip tests that won't work. (Yegappan Lakshmanan, closes #9902)
+Files: src/testdir/test_gui.vim
+
+Patch 8.2.4526
+Problem: Vim9: cannot set variables to a null value.
+Solution: Add null_list, null_job, etc.
+Files: runtime/doc/vim9.txt, src/eval.c, src/proto/eval.pro,
+ src/vim9expr.c, src/vim9script.c, src/vim9instr.c,
+ src/vim9compile.c, src/vim9execute.c, src/vim9.h, src/vim9type.c,
+ src/evalvars.c, src/testdir/test_vim9_assign.vim,
+ src/testdir/test_vim9_disassemble.vim,
+ src/testdir/test_vim9_func.vim, src/testdir/test_expr.vim
+
+Patch 8.2.4527
+Problem: The Athena GUI is old and does not work well.
+Solution: Remove the Athena GUI from configure to find out who still wants
+ support for this GUI.
+Files: src/configure.ac, src/auto/configure, src/Makefile
+
+Patch 8.2.4528
+Problem: Crash when using null_function for a partial.
+Solution: Don't call fname_trans_sid() with NULL. (closes #9908)
+Files: src/userfunc.c, src/testdir/test_vim9_func.vim
+
+Patch 8.2.4529
+Problem: Vim9: comparing partial with function fails.
+Solution: Support this comparison. Avoid a crash. (closes #9909)
+ Add more test cases.
+Files: src/vim9instr.c, src/userfunc.c, src/vim9type.c,
+ src/testdir/test_vim9_builtin.vim, src/testdir/test_vim9_expr.vim,
+ src/testdir/test_vim9_func.vim, src/testdir/test_vimscript.vim
+
+Patch 8.2.4530
+Problem: Making comparison with null work changes legacy behavior.
+Solution: Only use the better comparison in Vim9 script. (closes #9910)
+Files: src/typval.c, src/testdir/test_expr.vim
+
+Patch 8.2.4531
+Problem: LGTM warnings for condition always true and buffer size too small.
+Solution: Remove the useless condition. Make the buffer larger. (Goc
+ Dundar, closes #9914)
+Files: src/charset.c, src/term.c
+
+Patch 8.2.4532
+Problem: Suspending with CTRL-Z does not work on OpenBSD.
+Solution: Adjust #ifdef for SIGTSTP. (Stuart Henderson, closes #9912)
+Files: src/os_unix.c
+
+Patch 8.2.4533
+Problem: Vim9: no test that after assigning null the type is still checked.
+Solution: Add a test.
+Files: src/testdir/test_vim9_assign.vim
+
+Patch 8.2.4534
+Problem: Vim9: "is" operator with empty string and null returns true.
+Solution: Consider empty string and null to be different for "is".
+Files: src/typval.c, src/vim9execute.c, src/testdir/test_vim9_expr.vim
+
+Patch 8.2.4535
+Problem: Filename modifer ":8" removes the filename.
+Solution: Use strncpy() instead of vim_strncpy(). (Christian Brabandt,
+ closes #9918, closes #8600)
+Files: src/filepath.c, src/testdir/test_shortpathname.vim
+
+Patch 8.2.4536 (after 8.2.4534)
+Problem: Debugger test fails when breaking on expression.
+Solution: Compare strings with "==" instead of "is".
+Files: src/debugger.c
+
+Patch 8.2.4537
+Problem: Output from linter and language server shows up in git.
+Solution: Add patterns to .gitignore. (Goc Dundar, closes #9925)
+Files: .gitignore
+
+Patch 8.2.4538
+Problem: The find_tags_in_file() function is too long.
+Solution: Refactor into smaller functions. (Yegappan Lakshmanan,
+ closes #9920)
+Files: src/tag.c, src/testdir/test_tagjump.vim
+
+Patch 8.2.4539
+Problem: When comparing special v:none and v:null are handled the same when
+ compiling.
+Solution: Pass more information so that v:none can be handled differently at
+ compile time. (issue #9923)
+Files: src/vim9instr.c, src/vim9compile.c, src/globals.h,
+ src/testdir/test_vim9_expr.vim
+
+Patch 8.2.4540
+Problem: Line number for error is off by one.
+Solution: Remember the line number of the comparison. (closes #9923)
+Files: src/eval.c, src/testdir/test_vim9_expr.vim
+
+Patch 8.2.4541
+Problem: Crash in debugger when a variable is not available in the current
+ block.
+Solution: Check for a NULL name. (closes #9926)
+Files: src/vim9execute.c, src/testdir/test_debugger.vim
+
+Patch 8.2.4542
+Problem: Vim9: "break" inside try/catch not handled correctly.
+Solution: First jump to :endtry. (closes #9927)
+Files: src/vim9cmds.c, src/vim9.h, src/testdir/test_vim9_script.vim
+
+Patch 8.2.4543
+Problem: Coverity warning for refactored tag search code.
+Solution: Avoid the warnings. Update comments. Add one more test case.
+ (Yegappan Lakshmanan, closes #9928)
+Files: src/tag.c, src/testdir/test_tagjump.vim
+
+Patch 8.2.4544
+Problem: Coverity warnings for not using returned value.
+Solution: Assign to vim_ignored.
+Files: src/tag.c
+
+Patch 8.2.4545
+Problem: MS-Windows: the installed icon is low resolution.
+Solution: Use a better icon. Install vim.ico. (Christian Brabandt,
+ closes #9931, closes #9930)
+Files: Filelist, nsis/gvim.nsi, src/vim.ico, runtime/bitmaps/vim.ico
+
+Patch 8.2.4546
+Problem: Duplicate #undef.
+Solution: Remove one #undef. (closes #9932)
+Files: src/regexp_nfa.c
+
+Patch 8.2.4547
+Problem: The neXTaw GUI is old and does not work well.
+Solution: Remove the neXTaw GUI from configure to find out who still wants
+ support for this GUI.
+Files: src/configure.ac, src/auto/configure, src/Makefile
+
+Patch 8.2.4548
+Problem: Script-local function is deleted when used in a funcref.
+Solution: Do not consider a function starting with "<SNR>" reference
+ counted. (closes #9916, closes #9820)
+Files: src/userfunc.c, src/testdir/test_vim9_func.vim
+
+Patch 8.2.4549
+Problem: Cannot build with Motif and editres. (Tony Mechelynck)
+Solution: Fix configure mistake.
+Files: src/configure.ac, src/auto/configure
+
+Patch 8.2.4550
+Problem: Motif: cannot set the color of the scrollbar thumb.
+Solution: Remove #ifdef.
+Files: src/gui_motif.c
+
+Patch 8.2.4551
+Problem: When mapping <Esc> terminal codes are not recognized.
+Solution: Specifically recognize a mapping with just <Esc> and check for
+ terminal codes even though there is no partial mapping.
+ (closes #9903)
+Files: src/getchar.c, src/testdir/test